From c972af3aab327f45fad092de2d5ba9922a240e9d Mon Sep 17 00:00:00 2001 From: LikeLakers2 <1008889+LikeLakers2@users.noreply.github.com> Date: Mon, 24 Sep 2018 18:54:35 -0400 Subject: [PATCH] Re-add the proper Grid.gd and Pawn.gd files --- .../grid_movement/grid/Grid.gd | 36 +++++++++++++++++++ .../grid_movement/pawns/Pawn.gd | 11 ++++++ 2 files changed, 47 insertions(+) create mode 100644 2d/role_playing_game/grid_movement/grid/Grid.gd create mode 100644 2d/role_playing_game/grid_movement/pawns/Pawn.gd diff --git a/2d/role_playing_game/grid_movement/grid/Grid.gd b/2d/role_playing_game/grid_movement/grid/Grid.gd new file mode 100644 index 00000000..4072c6ed --- /dev/null +++ b/2d/role_playing_game/grid_movement/grid/Grid.gd @@ -0,0 +1,36 @@ +extends TileMap + +enum CELL_TYPES { ACTOR, OBSTACLE, OBJECT } +export(NodePath) var dialogue_ui + +func _ready(): + for child in get_children(): + set_cellv(world_to_map(child.position), child.type) + + +func get_cell_pawn(cell, type = ACTOR): + for node in get_children(): + if node.type != type: + continue + if world_to_map(node.position) == cell: + return(node) + + +func request_move(pawn, direction): + var cell_start = world_to_map(pawn.position) + var cell_target = cell_start + direction + + var cell_tile_id = get_cellv(cell_target) + match cell_tile_id: + -1: + set_cellv(cell_target, ACTOR) + set_cellv(cell_start, -1) + return map_to_world(cell_target) + cell_size / 2 + OBJECT, ACTOR: + var target_pawn = get_cell_pawn(cell_target, cell_tile_id) + print("Cell %s contains %s" % [cell_target, target_pawn.name]) + + if not target_pawn.has_node("DialoguePlayer"): + return + get_node(dialogue_ui).show_dialogue(pawn, target_pawn.get_node("DialoguePlayer")) + diff --git a/2d/role_playing_game/grid_movement/pawns/Pawn.gd b/2d/role_playing_game/grid_movement/pawns/Pawn.gd new file mode 100644 index 00000000..02619e75 --- /dev/null +++ b/2d/role_playing_game/grid_movement/pawns/Pawn.gd @@ -0,0 +1,11 @@ +extends Node2D + +enum CELL_TYPES { ACTOR, OBSTACLE, OBJECT } +export(CELL_TYPES) var type = ACTOR + +var active = true setget set_active + +func set_active(value): + active = value + set_process(value) + set_process_input(value)