
Editor:  
    ☐ Generate boiler-plate code when a new script is created
        ☐ Include setting the entity ID
        
    ✔ Add pure virtual ShowProperties method to EditorAsset @done(22-11-28 20:11)
    ✔ Script Editor Asset @done(22-11-14 18:19)
    ✔ Editor Assets need to switch to using UUIDs @critical @done(22-11-02 18:51)
    ✔ Remove Entity @done(22-10-14 18:28)
    ✔ Remove Component @done(22-10-14 18:28)
    ✔ Add Entity children @done(22-09-14 15:07)
    ✔ Entity Parent/Child hierarchy system @done(22-09-14 15:07)
    ✔ Give Entities a name property separate from the tag component @done(22-09-14 15:06)
    ☐ Add button to flip image assets vertically
    ☐ Design a custom editor style @low
    ☐ Save and unload world data when a new world is selected
    ✔ Load the selected world when double clicked on in the asset browser @done(22-07-05 14:29)
    ✔ Asset Location MUST be relative to the project root directory @critical @done(22-05-20 18:35)
    ✔ Switch to NFD dialogs @done(22-05-20 18:35)
    ✔ Come up with project directory structure @done (9/17/2021, 6:46:44 PM)
    ✔ Make the editor a separate module @high @done (11/1/2021, 2:24:35 PM)
    ✔ Implement Run Mode interface class @high @done (2/8/2022, 4:05:17 PM)
    ✔ Reference raw asset files in a "content" folder@high @done (3/3/2022, 3:15:32 PM)
    ✔ Platform independant file browsing @done (2/8/2022, 4:05:29 PM)
    ✔ Turn World into an editor asset that can be created @done(22-07-05 14:04)
    ✔ Store entities in the World object @done(22-07-06 17:53)
    ✔ Implement Saving/loading the World asset @done(22-07-06 17:53)
    ☐ Test the Asset Trashing system @high
    ☐ Add ability to browse and restore trashed assets
    ✔ Figure out how to make game asset types integrate with editor asset types @critical @done(22-06-27 13:32)
        - Probably just wrap the game object in an EditorAsset object if needed

    Asset Pipeline:
        ☐ Read through the contents folder and generate asset files in a custom format (useable by the engine)
        
    Panel System:
        ☐ Allow for saving custom panel layouts @low
    
    Raw Asset Importers:
        - Need classes to import raw resource files for the editor
        ✔ Raw Resource importer interface class (EditorAsset) @done (2/24/2022, 3:14:04 PM)
        ✔ Raw Image importer method @done (3/3/2022, 3:15:51 PM)
        ☐ Raw Sound importer method
        ☐ Raw font file importer method
        ✔ Tile Set @done (3/3/2022, 3:16:08 PM)
        ☐ Tile Map

    Project (Class for loading and tracking project data):
        ✔ Generate new project at given location @done (11/9/2021, 3:26:03 PM)
        ✔ Save project data @done (3/3/2022, 3:16:16 PM)
        ✔ Open existing project @done (2/8/2022, 4:05:42 PM)
    
    Content Manager:
        ✔ Switch to using LUUIDs for asset ids @critical @done(22-11-02 18:52)
        ✔ Design interface @done (2/24/2022, 3:15:39 PM)
        ✔ Generate new content file @done (2/24/2022, 3:16:00 PM)
        ✔ Load existing contents @done (3/3/2022, 3:16:21 PM)
        ✔ Save/Update contents file @done (3/3/2022, 3:16:23 PM)
    

    GUI Panels:
        World View:
            ☐ Add frame feature to center the camera on the selected entity
            ✔ Middle Mouse view dragging @done(22-09-08 15:45)
            ✔ Render the current world and display on view panel @done(22-09-08 15:45)
            ☐ Optional and adjustable grid display
            ☐ Toolbar with play/pause/stop buttons

        World Hierarchy (Tree View):
            ☐ If control is held while dropping entities, reorder the dropped entity instead of parenting
                - This will allow for reorganizing the hierarchy
            ☐ Add "move up" and "move down" options to the entity context menu
                - Another way to reorganize the hierarchy
            ✔ Do not show arrows on tree view items with no children @done(23-01-04 19:02)
            ✔ Handle showing Enities with children @high @done(22-10-14 18:29)
            ✔ Handle adding child entities @high @done(22-10-14 18:29)
                If an entity was right clicked on the new entity should be a child of the clicked entity
            ✔ Handle drag and dropping entities to change the child/parent relationships @high @done(22-10-14 18:46)

        Asset Viewer:
            ✔ Get references to the EditorAsset objects instead of the raw file locations @done(22-06-01 18:48)
            ☐ Put files into a table with columns for the file Properties
            ✔ Do not show arrows on tree view items with no children @done(23-01-04 19:02)
            ✔ Double click folders in content view to open @done(22-06-21 15:17)
            ✔ Drag and Drop asset files to move them to different folders @done(22-06-21 15:18)
            ✔ Add directory back button to content view @done(22-06-21 15:45)
            ☐ Add folder drag/drop
            ☐ Design the content area tool bar
            

        Properties:
            ✔ Implement showing components on selected Entity @done(22-07-06 17:53)

    Tools:
        Tile Map Editor:
            ✔ Switch to NFD dialogs (or move tile set import to the main editor) @high @done(22-05-23 16:01)
            ☐ Allow Tile Maps to be named
            ☐ Stamp system

            Tile Map Canvas:
                ☐ Clicking in a tile is inaccurate in the bottom-right corner of the tile
                ☐ Implement a proper camera system and do not use panel scrolling @high
                
                Implement drawing tiles:
                    ✔ Connect Selected Tile Set to the Canvas @done (3/11/2022, 6:11:07 PM)
                    ✔ Handle mouse clicking in update @done (3/11/2022, 6:11:09 PM)
                    ✔ Update current Map with current Tile on mouse click @done (3/11/2022, 6:11:12 PM)
                ✔ Tile map pallete @done (2/24/2022, 3:15:26 PM)
                ☐ Hideable grid
                ☐ Flood Fill
                ✔ Zoom ability @high @done (3/14/2022, 3:38:27 PM)
                ✔ Middle mouse button scrolling @done (3/14/2022, 3:38:43 PM)
                ☐ Add arrow images to the move region buttons @low


            Tile Set Viewer:
                ☐ Zoom
                ☐ Middle mouse scrolling


            ☐ Stamp creation
