aboutsummaryrefslogtreecommitdiff
path: root/client/map/tiles/floor.gd
diff options
context:
space:
mode:
Diffstat (limited to 'client/map/tiles/floor.gd')
-rw-r--r--client/map/tiles/floor.gd60
1 files changed, 2 insertions, 58 deletions
diff --git a/client/map/tiles/floor.gd b/client/map/tiles/floor.gd
index c5089feb..6a158c67 100644
--- a/client/map/tiles/floor.gd
+++ b/client/map/tiles/floor.gd
@@ -14,66 +14,10 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
class_name Floor
-extends Node3D
-
-var base = Node3D.new()
-var item: Item = null
-var item_base: Node3D
-
-enum Facing {
- NEG_Y = 0,
- NEG_X = 1,
- Y = 2,
- X = 3,
-}
+extends Tile
func _init(rename: String, _neighbors: Array):
+ super(rename, _neighbors)
var floor_tile = load("res://map/tiles/floor.tscn").instantiate()
floor_tile.position += Vector3(0.5, 0, 0.5)
add_child(floor_tile)
- base.name = "Base"
- base.position += Vector3(0.5, 0, 0.5)
- add_child(base)
- self.name = rename
- var item_base_ = Node3D.new()
- # this method is supposed to be overriden
- @warning_ignore("static_called_on_instance")
- item_base_.position = interact_target()
- item_base_.name = "ItemBase"
- base.add_child(item_base_)
- item_base = item_base_
-
-func turn_facing(facing: Facing):
- base.rotate_y(facing * 0.5 * PI + PI)
-
-# defines where items go when interacting
-static func interact_target() -> Vector3:
- return Vector3(0, 0, 0)
-
-# actions when interacting, e.g. animations
-func interact():
- pass
-
-func progress(p: float, warn: bool):
- if item != null:
- item.progress(p, warn)
-
-func finish(warn: bool):
- if item != null:
- item.finish(warn)
-
-func put_item(i: Item):
- if item != null:
- push_error("already holding an item")
- set_item(i)
-
-func set_item(i: Item):
- if item != null:
- item.queue_free()
- item = i
- i.owned_by = item_base
-
-func take_item() -> Item:
- var i = item
- item = null
- return i