Rework scripts to work for single tileset

This commit is contained in:
2023-12-13 15:32:02 +01:00
parent adbd84a2fd
commit 20aee8ffae
4 changed files with 283 additions and 380 deletions

View File

@@ -1,10 +1,9 @@
import json
import os.path
from extract_common import *
writer = ExtractFileWriter("")
writer.include("<breeze.h>")
writer = ExtractFileWriter("game_tileset")
def extract_by_property(tiles, key):
@@ -21,13 +20,39 @@ def extract_by_property(tiles, key):
content = open("../rawAssets/game.tsj").read()
tiles = json.loads(content)["tiles"]
terrain = extract_by_property(tiles, "terrain")
building = extract_by_property(tiles, "building")
entity = extract_by_property(tiles, "entity")
print(terrain)
writer.output(f"// This file was generated by: {__file__}\n\n")
terrain_tiles = extract_by_property(tiles, "terrain")
building_tiles = extract_by_property(tiles, "building")
entity_tiles = extract_by_property(tiles, "entity")
writer.header_guard_start()
script_name = os.path.basename(__file__)
writer.output(f"// This file was generated by: {script_name}\n\n")
writer.include("<breeze.h>")
writer.include("<string.h>")
writer.empty_line()
writer.output_anim_sequence_struct()
writer.output_anim_frame_struct()
terrain_writer = EnumWriter(writer, "terrain", terrain_tiles)
building_writer = EnumWriter(writer, "building", building_tiles)
entity_writer = EnumWriter(writer, "entity", entity_tiles)
terrain_writer.output_enum()
terrain_writer.output_tile_has_anim("terrainHasAnimation")
terrain_writer.output_tile_anim_sequence("terrainGetAnimationSequence")
terrain_writer.output_tile_anim_frame("terrainGetAnimationFrame")
writer.empty_line()
building_writer.output_enum()
building_writer.output_tile_to_enum("getTileBuilding")
building_writer.output_enum_to_tile("getBuildingTile")
building_writer.output_str_to_enum("getBuildingFromStr")
building_writer.output_enum_to_str("getBuildingStr")
building_writer.output_enum_tile_size("getBuildingSize")
writer.empty_line()
writer.header_guard_stop()
writer.to_file("../game/game_tileset.h")