diff options
Diffstat (limited to 'client/scripts/game.gd')
-rw-r--r-- | client/scripts/game.gd | 46 |
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) |