Skip to content

Importing and Exporting

NebSeniah edited this page Jun 5, 2026 · 15 revisions

System Summary

The user can import the level from a folder stored locally on their computer, they can also export a level to this folder to enable easy sharing of all assets and data.


Connected Systems

Connecting Systems:

Related Controls

Key(s): \ (UK:#)

  • Temporary key for saving to Level01 Key(s): ]
  • Temporary key for loading from Level01

Bugs

None


Feature List / Breakdown of Features

New Level Creation:

  • Create file structure for new level at specified location in user's Roaming folder
  • Copy over all default assets into the files so the user can easily see what they should change. Exporting:
  • Copy over all player data into a JSON file and save it.
  • Copy over all tile data into a CSV file, including rotation if applicable, then save it. Importing:
  • Read a JSON file and set up the player's properties to match the data.
  • Read a CSV file and copy all of it's data into the current tileSet, including rotations
  • If the player is present, make sure the EditorManager knows it

CSV Structure:

  • Exact copy of the tileSet, with the tiles being represented by their ID integer (-1 for no tile, 0 solid, etc.)
  • All sceneCollections additionally have a vertical bar separating their entity's ID and what scene they are.
  • All slopes additionally have a vertical bar separating their ID from their rotation when applicable JSON Structure:
  • Enemy data goes first
    • Stores location of enemy in tileSet
    • Stores all associated enemy properties
  • Player data is next
    • Stores all player properties

Future Work / Risks

Future Work:

  1. Importing doesn't change world size yet since we don't have a level of a different size to test with.
  2. Without enemies being implemented, they aren't included in the JSON yet.
  3. A proper menu with buttons to save/load from.
  4. Copy assets from the specified import to replace current sprites and assets, not done since I'm not sure of the final structure inside the Godot project yet.

Risks:

  • Adding more information requires adding more to save.

Miscellaneous Notes

A place for miscellaneous notes pertaining to this system.

  • None

Clone this wiki locally