aboutsummaryrefslogtreecommitdiff
path: root/client/scripts/game.gd
diff options
context:
space:
mode:
Diffstat (limited to 'client/scripts/game.gd')
-rw-r--r--client/scripts/game.gd46
1 files changed, 45 insertions, 1 deletions
diff --git a/client/scripts/game.gd b/client/scripts/game.gd
index 0403e7c4..f363c894 100644
--- a/client/scripts/game.gd
+++ b/client/scripts/game.gd
@@ -2,7 +2,9 @@ class_name Game
extends Node3D
@onready var camera: FollowCamera = $FollowCamera
-@onready var map: Node3D = $Map
+@onready var map: Map = $Map
+@onready var marker: Node3D = $Marker
+var marker_target = Vector3(0,0,0)
var players := {}
# Called when the node enters the scene tree for the first time.
@@ -34,5 +36,47 @@ func _ready():
players.erase(id)
player.queue_free()
)
+
+ Multiplayer.connect("set_tile_item", func(tile: Vector2i, item: int):
+ var t: Floor = map.tile_by_pos[str(tile)]
+ var i = Item.new(item, t.item_base)
+ add_child(i)
+ i.name = Multiplayer.item_names[item]
+ t.put_item(i)
+ )
+
+ Multiplayer.connect("remove_tile_item", func(tile: Vector2i):
+ var t: Floor = map.tile_by_pos[str(tile)]
+ t.take_item().queue_free()
+ )
+
+ Multiplayer.connect("set_player_item", func(player: int, item: int):
+ var p: Player = players[player]
+ var i = Item.new(item, p.hand_base)
+ add_child(i)
+ i.name = Multiplayer.item_names[item]
+ p.set_item(i)
+ )
+
+ Multiplayer.connect("remove_player_item", func(player: int):
+ var p: Player = players[player]
+ p.remove_item().queue_free()
+ )
+
+ Multiplayer.connect("take_item", func(tile: Vector2i, player: int):
+ var t: Floor = map.tile_by_pos[str(tile)]
+ var p: Player = players[player]
+ p.take_item(t)
+ )
+
+ Multiplayer.connect("put_item", func(tile: Vector2i, player: int):
+ var t: FullTile = map.tile_by_pos[str(tile)]
+ var p: Player = players[player]
+ p.put_item(t)
+ )
Multiplayer.send_join("Blub", 1)
+
+
+func _process(delta):
+ marker.position = lerp(marker.position, marker_target, delta * 40.0)