123456789101112131415161718192021222324252627282930313233343536 |
- extends TileMap
- enum CELL_TYPES { EMPTY = -1, ACTOR, OBSTACLE, OBJECT}
- func _ready():
- for child in get_children():
- set_cellv(world_to_map(child.position), child.type)
- func get_cell_pawn(coordinates):
- for node in get_children():
- if world_to_map(node.position) == coordinates:
- return(node)
- func request_move(pawn, direction):
- var cell_start = world_to_map(pawn.position)
- var cell_target = cell_start + direction
-
- var cell_target_type = get_cellv(cell_target)
- match cell_target_type:
- EMPTY:
- return update_pawn_position(pawn, cell_start, cell_target)
- OBJECT:
- var object_pawn = get_cell_pawn(cell_target)
- object_pawn.queue_free()
- return update_pawn_position(pawn, cell_start, cell_target)
- ACTOR:
- var pawn_name = get_cell_pawn(cell_target).name
- print("Cell %s contains %s" % [cell_target, pawn_name])
- func update_pawn_position(pawn, cell_start, cell_target):
- set_cellv(cell_target, pawn.type)
- set_cellv(cell_start, EMPTY)
- return map_to_world(cell_target) + cell_size / 2
|