class EntityCreation: def __init__(self): self.entity_templates = { 'worker': { 'type': 'unit', 'name': 'Worker', 'health': 100, 'movable': True, 'speed': 40.0, 'gather_rate': 10, 'build_power': 5 }, 'barracks': { 'type': 'building', 'name': 'Barracks', 'health': 500, 'movable': False, 'build_time': 30.0 }, 'supply_depot': { 'type': 'building', 'name': 'Supply Depot', 'health': 400, 'movable': False, 'build_time': 20.0 }, 'mineral_field': { 'type': 'resource', 'name': 'Mineral Field', 'resources': {'minerals': 1500} } } def create_entity(self, state, create_cmd: dict) -> dict: entity_type = create_cmd.get('entity_type') position = create_cmd.get('position', (0, 0)) if entity_type not in self.entity_templates: return None entity_def = self.entity_templates[entity_type] entity = self.init_entity(entity_def, position) return { 'type': 'add_entity', 'entity': entity } def init_entity(self, entity_def: dict, position: tuple) -> dict: entity = entity_def.copy() entity['x'] = position[0] entity['y'] = position[1] if entity['type'] == 'unit': entity['id'] = self._generate_id() entity['state'] = 'idle' elif entity['type'] == 'building': entity['id'] = self._generate_id() entity['build_progress'] = 0.0 entity['completed'] = False elif entity['type'] == 'resource': entity['id'] = self._generate_id() return entity def _generate_id(self) -> int: return id(self)