summaryrefslogtreecommitdiffstats
path: root/player.gd
diff options
context:
space:
mode:
authorJan Tuomi <jan@jantuomi.fi>2025-11-29 12:20:32 +0200
committerJan Tuomi <jan@jantuomi.fi>2025-11-29 12:20:32 +0200
commit3c3d0c3bfd9bac15b4406318c27a91954c3e7697 (patch)
tree028d8f5f7bb89aa14b4674cdc42eb30c53adbde7 /player.gd
parent121c3ca9c0080005bdeebc6827aecf2b36721286 (diff)
Store player ref in state scripts
Diffstat (limited to 'player.gd')
-rw-r--r--player.gd24
1 files changed, 10 insertions, 14 deletions
diff --git a/player.gd b/player.gd
index 7ae89f6..a7cb2f3 100644
--- a/player.gd
+++ b/player.gd
@@ -7,7 +7,9 @@ extends CharacterBody2D
@export var jump_held_coef: float
@export var hook_distance_max: float
-var state: PlayerState = PlayerStateInit.new()
+var state: PlayerState = PlayerStateInit.new(self)
+@onready var anim_sp: AnimatedSprite2D = $AnimatedSprite2D
+
var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
func get_facing() -> int:
@@ -18,36 +20,30 @@ func get_facing() -> int:
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
- state._handle(self, delta)
+ state._handle(delta)
func _physics_process(delta: float):
- state._handle_physics(self, delta)
+ state._handle_physics(delta)
#region movement type setters
func set_movement_normal():
- state = PlayerStateNormal.new()
+ state = PlayerStateNormal.new(self)
func set_movement_forced(dir: String):
if state is PlayerStateForced: return
-
- var psf: PlayerStateForced = PlayerStateForced.new()
- psf.initialize(self, dir)
- state = psf
+
+ state = PlayerStateForced.new(self, dir)
func set_movement_curve(curve: Curve2D, c_speed: float, c_reverse: bool):
if state is PlayerStateCurve: return
- var psc: PlayerStateCurve = PlayerStateCurve.new()
- psc.initialize(self, curve, c_speed, c_reverse)
- state = psc
+ state = PlayerStateCurve.new(self, curve, c_speed, c_reverse)
func set_movement_hanging(target: Node2D, hang_dist: float):
if state is PlayerStateHanging: return
if not PlayerStateHanging.can_hang_from(self, target): return
- var psh: PlayerStateHanging = PlayerStateHanging.new()
- psh.initialize(self, target, hang_dist)
- state = psh
+ state = PlayerStateHanging.new(self, target, hang_dist)
#endregion
func handle_action_input():