✔ integrate editor deeper with games and the entity system @done (16-02-24 22:31) ✔ implement scripted entity deriving from C++ @done (16-02-11 22:13) > LevelScrObj has optional property dict (if available, used as property backing) > inheritance is implemented via metaobject insertion >> C++Ent -> metadict ===> C++Ent -> my_classdict -> metadict >> error in the case when my_classdict receives a different parent when it's already set >> interface could be third arg for CreateEntity > entity core is always C++, scripting is about property/behavior adjustments >> SGS -> C++ inheritance is thus not allowed > ScriptedItem must be turned into an entity > InfoEmitter could use a handle/wrapper object >> EDIT: integrated InfoEmitterSystem into level and all entities are optional emitters ✔ reorganize native systems to fit scripting systems better @done (16-02-15 09:53) ✔ implement transform hierarchies @done (16-02-22 23:42) ✔ sort out entity editing issues @done (16-02-15 09:55) > entities should have their properties always editable and accessible >> this is to allow faster editing & realtime preview X initial property set is still necessary though - some level objects are not entities X> it's a way to also create those objects X> they will need a visualization entity though >> EDIT: screw that, let's use chunks. >> entity data has disproportionately huge parsing/loading overhead anyway... >> let's find a way to generate that data with systems also ✔ implement editor entity enumeration from level script & game scripts @done (16-02-17 09:50) X currently undecided between ENT_*** class names and ENTCREATE_***/ENTARGS_*** functions >> chose MANUAL ENTITY REGISTRATION ✔ implement editor startup from game DLLs @done (16-02-16 09:28) > need to wrap the SDL DLL API > BaseGame should have "-editor"/"EDIT"/.. argparse, triggering... >> editor DLL loading >> game level object creation for preview >> and the replacement of the game class with editor class, init-ed using the level ✔ implement core of the new entity type (loading, saving, property editing) @done (16-02-18 09:38) ✔ implement editor entity preview @done (16-02-21 22:49) > just create entities and then copy their properties > original set of properties should still be owned by the editor entity >> to avoid the game entity from randomly messing up the data >> but it's something that might be reconsidered ✔ change editor file format to some kind of structured key-value store (SGSON?) @done (16-02-22 23:42) ✔ implement SGSON parser/writer @done (16-02-16 08:51) ✔ implement saving/loading functions @done (16-02-17 09:50) ✔ implement backwards compatibility @done (16-02-22 23:42) ✔ mesharray @done (16-02-22 23:42) ✔ cover, room @done (16-02-22 08:23) ✔ implement game system data processing to generate custom chunks @done (16-02-24 09:41) > pass editor data to game systems, let them create the compiled chunks they'll parse ✔ remove scripted entities and related hacks from editor @done (16-02-21 22:48) > with this new entity inheritance scheme, they won't be necessary any longer ✔ editor upgrade polish/finish @done (16-02-24 22:31) ✔ implement entity editor ext. rendering functions @done (16-02-22 00:46) ✔ implement unique ID generation @done (16-02-23 08:27) ✔ implement light/mesh/sample entity LGC registration @done (16-02-24 09:40) > register LGC as level system > add callbacks that would allow data to be gathered > for stability, use "XXXEntityToID" ✔ fix LGC cache / deletion issues @done (16-02-24 22:31)