added project with nerabochie cows

This commit is contained in:
arrrtemida
2025-08-22 17:16:22 +05:00
commit 0d3f195aff
147 changed files with 5060 additions and 0 deletions

View File

@ -0,0 +1,48 @@
class_name NodeStateMachine
extends Node
@export var initial_node_state : NodeState
var node_states : Dictionary = {}
var current_node_state : NodeState
var current_node_state_name : String
func _ready() -> void:
for child in get_children():
if child is NodeState:
node_states[child.name.to_lower()] = child
child.transition.connect(transition_to)
if initial_node_state:
initial_node_state._on_enter()
current_node_state = initial_node_state
current_node_state_name = current_node_state.name.to_lower()
func _process(delta : float) -> void:
if current_node_state:
current_node_state._on_process(delta)
func _physics_process(delta: float) -> void:
if current_node_state:
current_node_state._on_physics_process(delta)
current_node_state._on_next_transitions()
func transition_to(node_state_name : String) -> void:
if node_state_name == current_node_state.name.to_lower():
return
var new_node_state = node_states.get(node_state_name.to_lower())
if !new_node_state:
return
if current_node_state:
current_node_state._on_exit()
new_node_state._on_enter()
current_node_state = new_node_state
current_node_state_name = current_node_state.name.to_lower()
print("Current State: ", current_node_state_name)