fix: runtime-load actor sprites (was preload) — stale import cache no longer breaks scripts

A stale/incomplete Godot import cache made preload() of the sprite
textures fail at COMPILE time, killing the actor scripts entirely —
no movement, no draw, near-black screen (reported on the Mac editor
after pull). Switching preload -> runtime load() degrades a missing
texture to an invisible sprite instead of a dead script; movement and
logic always survive. Committed state was verified sound via fresh
clone (imports + main scene + smoke all clean); this hardens against
the cross-machine cache-lag failure mode. Smoke 3/3 green.
This commit is contained in:
2026-08-14 22:50:53 -07:00
parent 5ba185f775
commit 62e86f906f
3 changed files with 8 additions and 10 deletions
+2 -3
View File
@@ -9,16 +9,15 @@ extends Area2D
@export var knockback := 220.0
@export var lifetime := 0.8
const SPRITE := preload("res://assets/sprites_ph/slug_ph.png")
var direction := Vector2.RIGHT
func _ready() -> void:
add_to_group("projectiles")
rotation = direction.angle()
# Runtime load, not preload — resilient to a stale import cache.
var spr := Sprite2D.new()
spr.texture = SPRITE
spr.texture = load("res://assets/sprites_ph/slug_ph.png")
add_child(spr)
body_entered.connect(_on_body_entered)
+4 -4
View File
@@ -16,14 +16,14 @@ var hull: float
var _dash := Vector2.ZERO
const SPRITE := preload("res://assets/sprites_ph/m03_ph.png")
func _ready() -> void:
add_to_group("mech")
hull = hull_max
# Runtime load (not preload): a stale/incomplete import cache must
# degrade to an invisible sprite, never a script-compile failure
# that would kill movement too.
var spr := Sprite2D.new()
spr.texture = SPRITE
spr.texture = load("res://assets/sprites_ph/m03_ph.png")
add_child(spr)
+2 -3
View File
@@ -4,8 +4,6 @@ extends Area2D
## levels). Drifts to the mech inside the magnet radius, collected on
## contact, fades out if ignored. Constructed in code, no scene.
const SPRITE := preload("res://assets/sprites_ph/scrap_ph.png")
var value := 1
var magnet_radius := 70.0
var drift_speed := 150.0
@@ -25,8 +23,9 @@ func _ready() -> void:
sh.radius = 6.0
cs.shape = sh
add_child(cs)
# Runtime load, not preload — resilient to a stale import cache.
_sprite = Sprite2D.new()
_sprite.texture = SPRITE
_sprite.texture = load("res://assets/sprites_ph/scrap_ph.png")
add_child(_sprite)
body_entered.connect(_on_body_entered)