diff options
Diffstat (limited to 'client/scripts/player.gd')
| -rw-r--r-- | client/scripts/player.gd | 25 | 
1 files changed, 23 insertions, 2 deletions
| diff --git a/client/scripts/player.gd b/client/scripts/player.gd index a304fe29..796a1480 100644 --- a/client/scripts/player.gd +++ b/client/scripts/player.gd @@ -11,7 +11,13 @@ var mesh = preload("res://scenes/player.tscn").instantiate()  var hand: Node3D = null -func _init(id: int, new_name: String, pos: Vector2, _character: int): +var _anim_angle: float = 0.0 + +const HAND_BASE_POSITION: Vector3 = Vector3(0, .25, .4) + +@onready var character: Character = $Player/Character + +func _init(_id: int, new_name: String, pos: Vector2, _character: int, new_game: Game):  	add_child(mesh)  	position_ = pos  	name = new_name @@ -19,7 +25,22 @@ func _init(id: int, new_name: String, pos: Vector2, _character: int):  func update_position(new_position: Vector2, new_rotation: float):  	position_ = new_position -	rotation.y = new_rotation +	rotation_ = new_rotation + +func set_item(i: Item): +	i.owned_by = hand_base +	if i == null: +		push_error("tile is null") +	hand = i +	character.play_animation("hold") + +func remove_item() -> Item: +	var i = hand +	if i == null: +		push_error("holding nothing") +	hand = null +	character.play_animation("idle") +	return i  func take_item(tile: Floor):  	if hand != null: | 
