]> Untitled Git - frog-ninja.git/blob - player/model.gd
05564a8e969b30b9ed0723510e9e971b4f8d9a4b
[frog-ninja.git] / player / model.gd
1 extends Node
2 class_name PlayerModel
3
4 @onready var player: Player = $".."
5 @onready var camera: Camera3D = %camera
6
7 @onready var moves: Dictionary = {
8         "idle": $Idle,
9         "walk": $Walk,
10         "dash": $Dash
11 }
12 var current_move: Move
13
14
15 ###
16
17 func _ready() -> void:
18         current_move = moves["idle"]
19         
20         # assign player object to each move
21         for move in moves.values():
22                 move.player = player
23                 move.camera = camera
24
25
26 func update(input: InputPacket, delta: float):
27         var relevent_move = current_move.should_enter(input)
28         if not relevent_move.is_empty():
29                 switch_to(relevent_move)
30         current_move.update(input, delta)
31
32
33 func switch_to(state: String):
34         current_move.on_exit_state()
35         current_move = moves[state]
36         current_move.on_enter_state()