Flatten resources to gfx and sfx folders

This commit is contained in:
shweet committed 2026-11-13 00:48:36 -05:00
1 parent fdfea89373
commit 4fac37b7f5
46 files changed
+25 -25

No files matched your search

+10 -10
View File
@@ -28,11 +28,11 @@ Know that despite Anm2Ed supporting sounds for animations, don't expect these to
# Resources
There's two folders inside resources; "characters" and "font".
There's three folders inside resources; "characters", "common" and "font". Each character folder (and "common") holds its JSON files, a "gfx" folder with every graphic (anm2s and their spritesheets side by side) and an "sfx" folder with every sound. There are no deeper folders.
"font" holds the one font the whole game uses (Mali, under the SIL Open Font License; see its LICENSE.txt).
"common" holds files characters share (sounds, particles, the cursor and so on). Whenever a character names a file, the game looks in the character's folder first, then in "common", so a character can use anything there as is, or replace it by having its own file at the same path. This includes the taskbar's icons, `gfx/ui/icons.anm2`: one region per icon, named after its button (`talk`, `mood`, `spawn`, `autofeed`, `home`, `stats`, `catalog`, `settings`, `cheats`, `help`, plus whatever `icon`s the interaction types name). A character with its own `gfx/ui/icons.anm2` gets its own icons.
"common" holds files characters share (sounds, particles, the cursor and so on). Whenever a character names a file, the game looks in the character's folder first, then in "common", so a character can use anything there as is, or replace it by having its own file at the same path. This includes the taskbar's icons, `gfx/icons.anm2`: one region per icon, named after its button (`talk`, `mood`, `spawn`, `autofeed`, `home`, `stats`, `catalog`, `settings`, `cheats`, `help`, plus whatever `icon`s the interaction types name). A character with its own `gfx/icons.anm2` gets its own icons.
EVERYTHING ELSE is stored inside character folders in the "characters" folder; one folder per character, named however you like (the folder name is also the name of its save file). This has all data associated with characters. Think of characters more as tailored game experiences rather than literally being just the characters. Not only is there the character graphics, but backgrounds, items, parameters, etc. These are intensely customizable to suit whatever experience you'd like (within the confines of the engine, of course).
@@ -57,10 +57,10 @@ Some things aren't set in the data, they're always found at the same place or by
| What | Where |
|---|---|
| The character's anm2 | `gfx/character/character.anm2` |
| Select screen render and portrait | `gfx/preview/render.png` and `gfx/preview/portrait.png` (both optional) |
| The background | `gfx/areas/area.anm2`, with the world's bounds in its `Bounds` null and where items spawn in its `ItemSpawn` null |
| The cursor | `gfx/cursor/cursor.anm2`, with the animations `Default`, `Click`, `Hover` (over an item), `Grab` (an item), `Pan` (with middle mouse), `Zoom` (with the mouse wheel) and `Dispose` (right clicking an item) |
| The character's anm2 | `gfx/character.anm2` |
| Select screen render and portrait | `gfx/render.png` and `gfx/portrait.png` (both optional) |
| The background | `gfx/area.anm2`, with the world's bounds in its `Bounds` null and where items spawn in its `ItemSpawn` null |
| The cursor | `gfx/cursor.anm2`, with the animations `Default`, `Click`, `Hover` (over an item), `Grab` (an item), `Pan` (with middle mouse), `Zoom` (with the mouse wheel) and `Dispose` (right clicking an item) |
| Stage names | Stages are named `Stage1`, `Stage2` and so on. Past the first, the stage's name is added to every animation's name, and each stage's "How are you feeling?" dialogue is the pool of its name. |
| Dialogue when over capacity | An interaction plays its pool with `Full` added (e.g. `BellyRubFull`) instead, if there is one. |
@@ -160,7 +160,7 @@ The first expand area is treated as the belly: it breathes, jiggles when smacked
| `type` | string | (Areas only) The interaction type to use. |
| `null` | string | (Areas) The null in which the interact area can be triggered. |
| `layer` | string | The layer that the scale effect (e.g. smacks) applies to. |
| `icon` | string | The region of `gfx/ui/icons.anm2` shown on this type's taskbar button. |
| `icon` | string | The region of `gfx/icons.anm2` shown on this type's taskbar button. |
| `isHold` | bool | If true, the interaction is held rather than clicked once. |
| `cursorHover` | string | The animation the cursor will play when hovering over the interact area. |
| `cursorActive` | string | The animation the cursor will play when interacting. |
@@ -183,10 +183,10 @@ The first expand area is treated as the belly: it breathes, jiggles when smacked
| `gurgle` | Ambient sounds that play randomly based on capacity; see `gurgleChance`. |
### area
How items move in the background (`gfx/areas/area.anm2`): `gravity` (applied to items' velocities per tick), `friction` (applied when items are grounded or hit walls) and `airResistance`.
How items move in the background (`gfx/area.anm2`): `gravity` (applied to items' velocities per tick), `friction` (applied when items are grounded or hit walls) and `airResistance`.
### cursor
The cursor's sounds and particles. Its look is `gfx/cursor/cursor.anm2` (see "Fixed files and names").
The cursor's sounds and particles. Its look is `gfx/cursor.anm2` (see "Fixed files and names").
| Key | Meaning |
|---|---|
@@ -209,7 +209,7 @@ Has all items and their parameters, alongside additional behavior. Items share o
```json
{
"anm2": "gfx/items/item.anm2",
"anm2": "gfx/item.anm2",
"spawnDelay": 10,
"rarities": {"Common": {"weight": 1, "sound": "sfx/common.ogg"}},
"items": [