A small status update.
ID files are properly generated now. Also, I finalized the vision of savegame compatibility feature, but it's quite complex and won't be properly implemented for at least a couple more versions.
Plugins overriding/overwriting values for existing data entries will probably be done with a filter/callback scripts. These will be called after data injections are done and identifiers allocated (so all entries are valid and no entries can be deleted/inserted at this point), but before actual compilation and script code injections. Hence it will be possible for a plugin to create a filter which will not override anything, but simply collect information about all game entries of a certain type, and generate a script code injection to initialize these entities during the game, or store some extra data about them etc.
Also still need to generate warnings when some data and/or code injections provided by the plugin are not actually used. Generally this means that injection point was lost, and may result in non-functioning plugin, so this warrants a warning to the modder.
Finally, introducing item modifiers as module entity warrants some modifications to the code, as the compiler no longer can assume all module files will be present for compilation. Otherwise, it's pretty straightforward.
Once all this is done, version 0.4 beta can be safely released, probably as two versions: one to be used with vanilla Module System (copy&compile), and another as a fully adapted Module System with all identifier and variable names translated to new syntax, ID-file being purely optional etc.
ID files are properly generated now. Also, I finalized the vision of savegame compatibility feature, but it's quite complex and won't be properly implemented for at least a couple more versions.
Plugins overriding/overwriting values for existing data entries will probably be done with a filter/callback scripts. These will be called after data injections are done and identifiers allocated (so all entries are valid and no entries can be deleted/inserted at this point), but before actual compilation and script code injections. Hence it will be possible for a plugin to create a filter which will not override anything, but simply collect information about all game entries of a certain type, and generate a script code injection to initialize these entities during the game, or store some extra data about them etc.
Also still need to generate warnings when some data and/or code injections provided by the plugin are not actually used. Generally this means that injection point was lost, and may result in non-functioning plugin, so this warrants a warning to the modder.
Finally, introducing item modifiers as module entity warrants some modifications to the code, as the compiler no longer can assume all module files will be present for compilation. Otherwise, it's pretty straightforward.
Once all this is done, version 0.4 beta can be safely released, probably as two versions: one to be used with vanilla Module System (copy&compile), and another as a fully adapted Module System with all identifier and variable names translated to new syntax, ID-file being purely optional etc.