Im Moment versuche ich, die modularen Konstruktionen zu kapieren. Bei den modularen Bahnhöfen (modular_station.con) stolpere ich innerhalb der updateFn() über folgendes Konstrukt:
...
local slotId2Coord = { }
...
result.GetCoord = function(slotId)
return slotId2Coord[slotId]
end
...
Für mich, der ich im Pascal/Modula-2/C/C++-Universum groß geworden ist, sieht das so aus, daß in result eine riesige Struktur zurückgegeben wird, die unter anderem die Funktion GetCoord enthält. Diese sollte dann auch außerhalb des Kontextes von updateFn aufrufbar sein, sonst brauche ich sie ja nicht zurückzugeben. Außerhalb dieses Kontextes ist aber die lokale Variable slotId2Coord nicht definiert, es kommt also, weil lua wenig meckert, irgend ein Mist zurück.
Frage: Verstehe ich die Lebensdauer von slotId2Coord falsch oder ist das ein Bug (der vielleicht nicht zuschlägt, weil niemand GetCoord aufruft)?