diff options
Diffstat (limited to 'addons/hexgrid/Tile.gd')
-rw-r--r-- | addons/hexgrid/Tile.gd | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/addons/hexgrid/Tile.gd b/addons/hexgrid/Tile.gd new file mode 100644 index 0000000..b9463eb --- /dev/null +++ b/addons/hexgrid/Tile.gd @@ -0,0 +1,49 @@ +#warning-ignore-all:unused_argument +extends Node2D + +class_name Tile, "res://addons/hexgrid/Tile.png" + +var coords : Vector2 +var blocked : bool +var on_map : bool = false + +var acc : int +var f : float +var parent : Tile +var road_march : bool +var search_count : int + +func configure(p : Vector2, c: Vector2, o :Array) -> void: + position = p + coords = c + on_map = true + for t in o: + var s :Sprite = Sprite.new() + s.texture = load(t) + s.visible = false + add_child(s) + visible = false + +# is there a road with given orientation that drives out of that Tile +func has_road(orientation : int) -> bool: + print("Tile#has_road() must be overriden in a subclass") + return false + +# is the line of sight blocked from a Tile to another, d beeing the distance between from and to, +# dt beeing the distance between from and this Tile +func block_los(from : Tile, to : Tile, d : float, dt : float) -> bool: + print("Tile#block_los() must be overriden in a subclass") + return false + +func enable_overlay(i :int, v : bool) -> void: + get_child(i).visible = v + if v: visible = true + else : + visible = false + for o in get_children(): + if o.visible: + visible = true + break + +func is_overlay_on(i) -> bool: + return get_child(i).visible |