Reorganize into role-based folders and consolidate art
Move every script and scene into role-based directories (actors/, systems/, ui/, levels/, props/) and all raw art under art/ (grouped by role, snake_case, Extract-Textures GLBs), dropping Blender version-suffix noise. Filenames are snake_case (PascalCase reserved for class_name) to avoid case-insensitive filesystem aliasing on the web/macOS targets. Routes the bull's hits through the typed DamageEvent pipeline and wires the bull's abilities to the Fx library. Updates CLAUDE.md's folder-layout overview to match. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CCyaJPTHCH9EDthpf4A5Sj
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
extends SceneTree
|
||||
## Bakes an animated-billboard sprite sheet from the existing clapping crowd figure
|
||||
## (Animations/mees_plaksutab.glb, clip "ArmatureAction") so a whole stand of
|
||||
## (art/anim/crowd_clap.glb, clip "ArmatureAction") so a whole stand of
|
||||
## spectators can render as camera-facing quads in one draw call instead of 72 skinned
|
||||
## skeletons. Renders FRAMES evenly-spaced poses from a front orthographic camera on a
|
||||
## transparent background and packs them into a single-row atlas.
|
||||
@@ -8,13 +8,13 @@ extends SceneTree
|
||||
## Needs a display — script mode renders to a real window (headless is blank):
|
||||
## godot --script tools/bake_crowd_sheet.gd
|
||||
##
|
||||
## Output: res://Assets/crowd_clap_sheet.png — FRAMES cells wide, TWO rows: the top row
|
||||
## Output: res://art/textures/crowd_clap_sheet.png — FRAMES cells wide, TWO rows: the top row
|
||||
## is the front view, the bottom row is the back view. The crowd shader picks the row
|
||||
## with FRONT_FACING so spectators show their backs when the camera is behind them.
|
||||
|
||||
const SRC := "res://Animations/mees_plaksutab.glb"
|
||||
const SRC := "res://art/anim/crowd_clap.glb"
|
||||
const CLIP := &"ArmatureAction"
|
||||
const OUT := "res://Assets/crowd_clap_sheet.png"
|
||||
const OUT := "res://art/textures/crowd_clap_sheet.png"
|
||||
const FRAMES := 8
|
||||
const CELL_H := 192 # sprite cell height in px; width derived from the figure aspect
|
||||
const PAD := 1.12 # framing margin around the figure's bounds
|
||||
|
||||
@@ -24,7 +24,7 @@ func _run() -> void:
|
||||
root.add_child(we)
|
||||
|
||||
var crowd := MultiMeshInstance3D.new()
|
||||
crowd.set_script(load("res://crowd_billboards.gd"))
|
||||
crowd.set_script(load("res://systems/crowd/crowd_billboards.gd"))
|
||||
crowd.set("source_path", NodePath()) # force the generated fallback stand
|
||||
crowd.set("fallback_count", 90)
|
||||
root.add_child(crowd)
|
||||
|
||||
@@ -13,7 +13,7 @@ func _init() -> void:
|
||||
|
||||
func _run() -> void:
|
||||
DirAccess.make_dir_recursive_absolute(OUT)
|
||||
var ps := load("res://scene.tscn") as PackedScene
|
||||
var ps := load("res://levels/game_shell.tscn") as PackedScene
|
||||
var scene := ps.instantiate()
|
||||
root.add_child(scene)
|
||||
current_scene = scene
|
||||
|
||||
@@ -13,7 +13,7 @@ func _init() -> void:
|
||||
|
||||
func _run() -> void:
|
||||
DirAccess.make_dir_recursive_absolute(OUT)
|
||||
var scene := (load("res://scene.tscn") as PackedScene).instantiate()
|
||||
var scene := (load("res://levels/game_shell.tscn") as PackedScene).instantiate()
|
||||
root.add_child(scene)
|
||||
current_scene = scene
|
||||
|
||||
|
||||
Reference in New Issue
Block a user