import sys from constants import TILE_WIDTH_HEIGHT ENTITY_TYPE_MAP = { 'templates/NPC.tx': 'ENTITY_TYPE_NPC', } def parseEntity(obj, chunkData): if 'type' in obj: if obj['type'] not in ENTITY_TYPE_MAP: print(f"Unknown entity type: {obj['type']}") return None entType = ENTITY_TYPE_MAP[obj['type']] elif 'template' in obj: if obj['template'] not in ENTITY_TYPE_MAP: print(f"Unknown entity template: {obj['template']}") return None entType = ENTITY_TYPE_MAP[obj['template']] else: return None if 'properties' not in obj: obj['properties'] = {} obj['localX'] = obj['x'] - (chunkData['topLeftTileX'] * TILE_WIDTH_HEIGHT) obj['localY'] = obj['y'] - (chunkData['topLeftTileY'] * TILE_WIDTH_HEIGHT) obj['dir'] = 'ENTITY_DIR_SOUTH' obj['type'] = entType # Handle per-type properties if entType == 'ENTITY_TYPE_NPC': obj['data'] = {} obj['data']['npc'] = {} obj['data']['npc']['interactType'] = 'NPC_INTERACT_TYPE_TEXT' obj['data']['npc']['text'] = '"test"' return obj