aboutsummaryrefslogtreecommitdiff
path: root/client/scripts/tiles
diff options
context:
space:
mode:
authornokoe <nokoe@mailbox.org>2024-06-22 21:43:35 +0200
committermetamuffin <metamuffin@disroot.org>2024-06-23 19:30:15 +0200
commite468cf085e0b23b3c5b359a672fccc6b8b7d4fc2 (patch)
treeafac68d560c2b02c5000b183921e2000b1d703d4 /client/scripts/tiles
parent2c5ced9a026012ef8fe890ff006d261148ce70f1 (diff)
downloadhurrycurry-e468cf085e0b23b3c5b359a672fccc6b8b7d4fc2.tar
hurrycurry-e468cf085e0b23b3c5b359a672fccc6b8b7d4fc2.tar.bz2
hurrycurry-e468cf085e0b23b3c5b359a672fccc6b8b7d4fc2.tar.zst
marker
Diffstat (limited to 'client/scripts/tiles')
-rw-r--r--client/scripts/tiles/floor.gd27
1 files changed, 27 insertions, 0 deletions
diff --git a/client/scripts/tiles/floor.gd b/client/scripts/tiles/floor.gd
index ba09d40b..0c4af8a0 100644
--- a/client/scripts/tiles/floor.gd
+++ b/client/scripts/tiles/floor.gd
@@ -2,6 +2,8 @@ class_name Floor
extends Node3D
var base = Node3D.new()
+var item: Item = null
+var item_base: Node3D
enum Facing {
NEG_Y = 0,
@@ -16,6 +18,11 @@ func _init(rename: String, _neighbors: Array):
base.position += Vector3(0.5, 0, 0.5)
add_child(base)
self.name = rename
+ var item_base_ = Node3D.new()
+ 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)
@@ -24,3 +31,23 @@ func tile_name(idx):
if idx == null:
return null
return Multiplayer.tile_names[idx]
+
+
+# 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 put_item(i: Item):
+ if item != null:
+ push_error("already holding an item")
+ item = i
+ i.owned_by = item_base
+
+func take_item() -> Item:
+ var i = item
+ item = null
+ return i