freemode fishing tekton autoplay + static tekton throw fix

- Added tekton_fishing_autoplay.gd: plays both GLB animations simultaneously, looped
- Attached autoplay script to 3 fishing tekton instances in freemode.tscn
- Fixed static tekton throw: faces throw direction + plays throw animation
- Fixed AnimationPlayer path in tekton.gd for static turrets
- Fixed animation names (tekton_throw_tile -> ted_bones_001|Tekton Throwing Tiles|Anima_Layer)
- Fixed static_tekton_controller.gd idle resume
- Rebuilt animation-pack.res with new animations (holding_1, put_1, stun_1, etc.)
- Fixed GutBottomPanel.tscn broken UID
This commit is contained in:
2026-06-15 18:15:39 +08:00
parent 844ec194cb
commit 5354d8b30f
25 changed files with 242 additions and 156 deletions
+9 -6
View File
@@ -439,10 +439,12 @@ func spawn_tiles_around(count: int = 4):
play_animation("tekton_idle")
)
elif is_static_turret and not is_carried and not is_thrown:
play_animation("Armature|tekton_throw_tile")
play_animation("ted_bones_001|Tekton Throwing Tiles|Anima_Layer")
get_tree().create_timer(1.0).timeout.connect(func():
if not is_moving and not is_carried and not is_thrown:
play_animation("Armature|tekton_idle")
# No idle anim in static_tekton_mesh, just stop
var ap = get_node_or_null("Visuals/tekton/AnimationPlayer")
if ap: ap.stop()
)
print("[Tekton] Spawning %d tiles around %s" % [count, current_position])
@@ -557,12 +559,13 @@ func spawn_projectile_rpc(target_pos: Vector3, duration: float):
func play_animation(anim_name: String):
# Try specific user path first
var anim_player = get_node_or_null("Visuals/tekton/Armature/AnimationPlayer")
if is_static_turret:
anim_player = get_node_or_null("Visuals/static_tekton_mesh/tekton_throwing_tiles/AnimationPlayer")
# static_tekton_mesh.tscn has AnimationPlayer at root level
anim_player = get_node_or_null("Visuals/tekton/AnimationPlayer")
if not anim_player:
anim_player = get_node_or_null("Visuals/tekton_throwing_tiles/AnimationPlayer") # Check direct child just in case
anim_player = get_node_or_null("Visuals/AnimationPlayer")
# If not found, try finding recursive
if not anim_player:
anim_player = find_child("AnimationPlayer", true, false)