Remove the persistent blood-decal system

Strip only the floor/wall blood-splat decals added in 981ebf1, keeping the
older death-spray, spear-wound spurt, and "Blood & Gore" toggle:

- Delete blood_decals.gd + shader, the Gore autoload (gore.gd), and
  tests/blood_decals_test.gd
- Drop the Gore autoload and the Blood DP section
- Remove all Gore.splat() call sites (matador.gd, bear.gd, player.gd);
  the _blood_burst spray and _spawn_blood spurt stay
- game_shell no longer spawns a per-level decal pool
- Update level_switch test + run_tests.sh accordingly

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CmG3mQGVXZUPDVapmdbWZ1
This commit is contained in:
2026-09-04 22:41:00 +03:00
parent 79ea5bb2be
commit 400ae24f92
16 changed files with 2 additions and 369 deletions
+2 -7
View File
@@ -53,13 +53,8 @@ func _run() -> void:
# Shell survives and hosts exactly one level module.
var level_root: Node = scene.get_node_or_null("LevelRoot")
_ok(level_root != null, "shell has a LevelRoot")
# LevelRoot holds the module plus the level's blood-splat pool; exactly one of them
# is the geometry module (the other is BloodDecals).
var module_children := 0
if level_root != null:
for child: Node in level_root.get_children():
if not child.is_in_group(&"blood_decals"):
module_children += 1
# LevelRoot holds exactly the one level module.
var module_children := level_root.get_child_count() if level_root != null else 0
_ok(module_children == 1, "exactly one level module loaded")
_ok(not get_nodes_in_group(&"player").is_empty(), "player (shell) present")