9fa2e260f2
Terrain, actors, boss and bullets are sprites now, and four sounds play off server events. 548KB total across seven files, out of 3.9GB of source packs. - src/view/art.gd holds every atlas rect and sound path in one table, copied from the 0x72 pack's own tile_list. Scattering coordinates through draw calls would make re-cutting the atlas a hunt, and a wrong rect invisible. - Bullets get one MultiMesh per kind rather than one overall: a MultiMeshInstance2D carries a single texture and each kind needs a different region of the sheet. Four draw calls, no custom shader passing UVs through per-instance data. - src/view/sfx.gd is a 16-voice round-robin pool. Bullet-hell fire rates mean sounds overlap constantly, and identical sounds landing within two frames are collapsed so a ring hitting eight bullets is a bang rather than clipping. Every sound is triggered by a server event, never a local guess, so what you hear matches what happened. Audio was converted, not copied: the pack ships 24-bit/96kHz masters averaging 2MB. Downsampled to 16-bit/44.1kHz mono, silence-trimmed, and the shoot sound hard-capped to 0.30s -- it came out at 2.03s, against a fire cooldown of 0.12s, which would have smeared held fire into noise. tests/unit/test_art.gd checks what cannot be eyeballed here: every atlas rect lands inside its texture, every animation frame of a strip fits (the last frame is what runs off the sheet, not the first), there is a sprite per bullet kind and per enemy visual, and no sound is long enough to stack badly. A wrong atlas coordinate does not error -- it silently draws the wrong pixels. Licence sources recorded in docs/ASSETS.md now that they are known. All four are free versions and four rows still say "confirm at source": free itch packs vary on credit and commercial use, and there is no credits screen yet. 155 tests (was 146). check.sh, test.sh and smoke.sh pass.
41 lines
964 B
Plaintext
41 lines
964 B
Plaintext
[remap]
|
|
|
|
importer="texture"
|
|
type="CompressedTexture2D"
|
|
uid="uid://bircs55cjivvx"
|
|
path="res://.godot/imported/dungeon_tileset.png-32ddb268ab9db09e8f122db6a00ca77a.ctex"
|
|
metadata={
|
|
"vram_texture": false
|
|
}
|
|
|
|
[deps]
|
|
|
|
source_file="res://assets/sprites/dungeon_tileset.png"
|
|
dest_files=["res://.godot/imported/dungeon_tileset.png-32ddb268ab9db09e8f122db6a00ca77a.ctex"]
|
|
|
|
[params]
|
|
|
|
compress/mode=0
|
|
compress/high_quality=false
|
|
compress/lossy_quality=0.7
|
|
compress/uastc_level=0
|
|
compress/rdo_quality_loss=0.0
|
|
compress/hdr_compression=1
|
|
compress/normal_map=0
|
|
compress/channel_pack=0
|
|
mipmaps/generate=false
|
|
mipmaps/limit=-1
|
|
roughness/mode=0
|
|
roughness/src_normal=""
|
|
process/channel_remap/red=0
|
|
process/channel_remap/green=1
|
|
process/channel_remap/blue=2
|
|
process/channel_remap/alpha=3
|
|
process/fix_alpha_border=true
|
|
process/premult_alpha=false
|
|
process/normal_map_invert_y=false
|
|
process/hdr_as_srgb=false
|
|
process/hdr_clamp_exposure=false
|
|
process/size_limit=0
|
|
detect_3d/compress_to=1
|