diff options
Diffstat (limited to 'client/player')
-rw-r--r-- | client/player/controllable_player.gd | 6 | ||||
-rw-r--r-- | client/player/marker.gd | 2 | ||||
-rw-r--r-- | client/player/player.gd | 15 |
3 files changed, 14 insertions, 9 deletions
diff --git a/client/player/controllable_player.gd b/client/player/controllable_player.gd index 4c157349..bb9c75e8 100644 --- a/client/player/controllable_player.gd +++ b/client/player/controllable_player.gd @@ -32,7 +32,7 @@ func _ready(): add_child(timer) timer.start() timer.connect("timeout", func(): - Multiplayer.send_position(Vector2(position.x, position.z), rotation.y) + Multiplayer.send_position(position_, rotation_) ) func _process(delta): @@ -53,7 +53,7 @@ func _process(delta): func update(dt: float, input: Vector2): var direction = input.limit_length(1.); - rotation.y = atan2(self.facing.x, self.facing.y); + rotation_ = atan2(self.facing.x, self.facing.y); if direction.length() > 0.1: self.facing = direction + (self.facing - direction) * exp(-dt * 10.); self.velocity_ += direction * dt * PLAYER_SPEED; @@ -76,7 +76,7 @@ func collide(dt: float): self.position_ += (PLAYER_SIZE - d) * grad; self.velocity_ -= grad * grad.dot(self.velocity_) - + for player: Player in game.players.values(): var diff = self.position_ - player.position_ var d = diff.length() diff --git a/client/player/marker.gd b/client/player/marker.gd index fa11ff98..6e3e6ffa 100644 --- a/client/player/marker.gd +++ b/client/player/marker.gd @@ -16,7 +16,7 @@ class_name Marker extends Node3D -@onready var _cube: MeshInstance3D = $Cubew +@onready var _cube: MeshInstance3D = $Cube func set_interactive(val: bool): var mat: ShaderMaterial = _cube.get_active_material(0) diff --git a/client/player/player.gd b/client/player/player.gd index 423855e9..b8982aa7 100644 --- a/client/player/player.gd +++ b/client/player/player.gd @@ -22,11 +22,15 @@ const PLAYER_SIZE: float = 0.4 const SPEED: float = 25. var game: Game +var rotation_ = 0. +var rotation_anim = 0. var position_ = Vector2(0, 0) +var position_anim = Vector2(0, 0) -var mesh = preload("res://scenes/player.tscn").instantiate() +var mesh = preload("res://player/player.tscn").instantiate() -var hand: Node3D = null +var hand: Item = null +var hand_base: Node3D = Node3D.new() var _anim_angle: float = 0.0 @@ -40,6 +44,9 @@ func _init(_id: int, new_name: String, pos: Vector2, _character: int, new_game: name = new_name game = new_game + hand_base.position = HAND_BASE_POSITION + add_child(hand_base) + func update_position(new_position: Vector2, new_rotation: float): position_ = new_position rotation_ = new_rotation @@ -63,9 +70,7 @@ func take_item(tile: Floor): if hand != null: push_error("already holding an item") var i = tile.take_item() - if i == null: - push_error("tile is null") - hand = i + set_item(i) func put_item(tile: Floor): var i = remove_item() |