diff --git a/art/generated/textures/all/PROMPTS.md b/art/generated/textures/all/PROMPTS.md new file mode 100644 index 0000000..0ba97a6 --- /dev/null +++ b/art/generated/textures/all/PROMPTS.md @@ -0,0 +1,88 @@ +# All remaining high-res textures (2026-11-07) + +Generated in one go with fal.ai; `batch.py` holds every prompt, `process.py` turns the raw +pictures into the game's tiles (`HD_VARS`, `HD_DECALS` and the reinforced wall's set in +`src/gfx.rs`; the files go to `assets/textures/hd/` and `assets/textures/reinforced-v*.png`). + +- Tiles: `fal-ai/flux-2-pro`, `image_size: square_hd`, `seed: 4300` (temple, library and altar a + second time with `seed: 4301` and the prompts now in `batch.py`: the first ones had a large + central motif with a frame). Prompt = the texture's sentence followed by the floor style text + (`STYLE`) or the wall style text (`WALL`). +- Objects (treasury heaps, mushrooms, the core shard; upright billboards in the game): + `fal-ai/nano-banana-pro`, `aspect_ratio: 1:1`, `resolution: 1K`, the sentence followed by + `OBJ_STYLE`. + +Processing (`process.py`): a margin is cropped off (frames, vignettes; for walls with small +stones it also makes the stones bigger), then `tools/make_tile.py --variants ` gives as +many tiles as the kind has atlas cells (one seamless tile for single cells), at 64x64 and +128x128; the objects go through `tools/make_decal.py` (the shard with `--strict`: its red is +close to the magenta). + +Floor style text: + +```text +Seamless tileable square texture, viewed straight from above (orthographic top-down, no perspective), flat even lighting, no shadows, no vignette, no border, no text. Hand-painted pixel art style for a dark-fantasy dungeon strategy game: chunky clear shapes, crisp edges, limited muted palette, readable at small size. A uniform all-over pattern evenly spread from edge to edge, no frame, no centre motif; it continues seamlessly across all four edges. +``` + +Wall style text: + +```text +Seamless tileable square texture of a wall surface seen straight on (orthographic, no perspective), flat even lighting, no shadows, no vignette, no border, no text. Hand-painted pixel art style for a dark-fantasy dungeon strategy game: chunky clear shapes, crisp edges, limited muted palette, readable at small size. A uniform all-over pattern evenly spread from edge to edge; it continues seamlessly across all four edges. +``` + +Object style text: + +```text +Side view, standing on the bottom edge of the image and filling most of its width, hand-painted pixel art for a dark-fantasy dungeon game, crisp edges, a dark outline. The background is a completely flat pure magenta (#FF00FF) everywhere else - no floor, no shadow on the ground, no frame, no text. +``` + +## Tiles + +| name | style | prompt | +|---|---|---| +| reinforced | WALL | A castle wall of the dungeon master: roughly squared grey stone blocks laid in regular horizontal courses like a medieval castle wall, blocks of varying length in every course, rough chiselled faces with tool marks and slightly chipped edges, thin dark mortar with a faint dark-crimson tint; ordered, solid and heavy, not bricks. | +| fortwall | WALL | A holy knights' fortress wall: pale grey-white dressed ashlar stone blocks in neat regular courses with thin blue-grey mortar, clean and orderly. | +| steel | WALL | A wall of dark riveted iron plates with rows of round rivets along the seams, a little rust and soot. | +| obsidian | STYLE | Cooled lava rock: black and very dark purple volcanic glass with smooth glassy facets and a few thin faintly glowing orange seams. | +| face | WALL | A cut vertical face of packed brown earth with small stones and roots, slightly uneven. | +| treasury | STYLE | The floor of a treasure vault: polished dark stone flagstones with inlaid golden bands and a few scattered gold coins. | +| lair | STYLE | A monster lair floor: packed earth covered with scattered straw, old furs, a few bones and dirty rags. | +| farm | STYLE | A mushroom garden floor: dark moist soil in tilled furrows with tiny sprouting mushrooms and spores. | +| training | STYLE | A training hall floor: worn wooden planks with sawdust, scuff marks and a few dark stains. | +| library | STYLE | A repeating herringbone parquet of dark wooden boards, worn, with a few faint scratched arcane symbols and ink stains - no carpet, no large motif, no border. | +| torture | STYLE | A torture chamber floor: dark stained flagstones with rusty iron drain grates and a few chain links. | +| temple | STYLE | A repeating pattern of small black and dark-red marble mosaic tiles in a simple geometric all-over pattern, with thin faint golden lines between some tiles - no large motif, no circle, no border. | +| prison | STYLE | A prison floor: damp dark flagstones with small puddles, rusty drain grates and a little old straw. | +| graveyard | STYLE | Graveyard ground: dark loose earth, grave soil, patches of moss, pebbles and a few tiny bones. | +| guardpost | STYLE | A guard post floor: heavy grey flagstones with a dark-red painted stripe pattern and boot scuffs. | +| arena | STYLE | An arena floor: raked pale sand with dark blood stains and footprints. | +| altar | STYLE | A repeating pattern of polished black marble slabs of equal size with thin blood-red veins running through them - no large motif, no border, no frame. | +| forge | STYLE | A forge floor: sooty dark flagstones with iron filings, bits of slag and thin faintly glowing orange cracks. | +| aerie | STYLE | A giant bird nest floor: straw, twigs and a few large feathers spread over grey stone. | +| core | STYLE | The floor around an evil master's soul core: dark obsidian-like stone with thin glowing red veins and fragments of a carved ritual circle. | +| portal | STYLE | The floor around a demon portal: dark violet stone with faintly glowing purple runes and magic cracks. | +| gate | STYLE | The floor before a holy order's gate: pale white limestone slabs with small inlaid blue-and-gold sun symbols. | +| hero | STYLE | The floor of a knights' castle hall: pale grey cut stone slabs, clean and regular, a little worn. | +| bridge | STYLE | Wooden bridge planks laid side by side, weathered brown wood with iron nails and small gaps between the planks. | +| stonebridge | STYLE | A stone bridge surface: big grey stone slabs with sooty, heat-darkened edges. | +| grass | STYLE | Short green meadow grass with a few tiny flowers and clover. | +| snow | STYLE | Fresh white snow on the ground with soft drifts, a few footprints and tiny ice crystals. | +| moss | STYLE | Dark stones overgrown with teal moss and a few glowing cyan spores. | +| leaves | STYLE | Dense tree foliage: many dark and light green leaves, seen close. | +| bark | WALL | Rough brown tree bark with deep vertical furrows. | +| stem | WALL | The surface of a giant pale mushroom stem: creamy white with soft vertical ribs and fibres. | +| cap | STYLE | The surface of a giant violet mushroom cap with round softly glowing pale spots. | + +## Objects + +| name | prompt | +|---|---| +| coins | A heap of gold coins, a dome-shaped pile of shining gold coins with a few gems. | +| silver | A neat pile of shining silver ingots stacked in rows. | +| ruby | A heap of cut red rubies, sparkling. | +| diamond | A heap of cut clear pale-blue diamonds, sparkling. | +| mushroom | A cluster of three edible dungeon mushrooms of different sizes with brown caps and pale stems. | +| shard | A large jagged shard of a glowing red crystal, broken off a soul core, glowing from inside. | + +The reinforced wall of the pixel-art atlas is drawn in code (`T_REINF` in `gen_atlas`: courses of +6, 5 and 5 pixels cut into blocks of 5-9 pixels). diff --git a/art/generated/textures/all/aerie-raw.png b/art/generated/textures/all/aerie-raw.png new file mode 100644 index 0000000..f2ff22a Binary files /dev/null and b/art/generated/textures/all/aerie-raw.png differ diff --git a/art/generated/textures/all/aerie-v128-preview.png b/art/generated/textures/all/aerie-v128-preview.png new file mode 100644 index 0000000..8220b3c Binary files /dev/null and b/art/generated/textures/all/aerie-v128-preview.png differ diff --git a/art/generated/textures/all/aerie-v128.png b/art/generated/textures/all/aerie-v128.png new file mode 100644 index 0000000..24347c5 Binary files /dev/null and b/art/generated/textures/all/aerie-v128.png differ diff --git a/art/generated/textures/all/aerie-v64-preview.png b/art/generated/textures/all/aerie-v64-preview.png new file mode 100644 index 0000000..c9c59dc Binary files /dev/null and b/art/generated/textures/all/aerie-v64-preview.png differ diff --git a/art/generated/textures/all/aerie-v64.png b/art/generated/textures/all/aerie-v64.png new file mode 100644 index 0000000..277acc5 Binary files /dev/null and b/art/generated/textures/all/aerie-v64.png differ diff --git a/art/generated/textures/all/altar-raw.png b/art/generated/textures/all/altar-raw.png new file mode 100644 index 0000000..3f758c9 Binary files /dev/null and b/art/generated/textures/all/altar-raw.png differ diff --git a/art/generated/textures/all/altar-v128-preview.png b/art/generated/textures/all/altar-v128-preview.png new file mode 100644 index 0000000..e2dbf25 Binary files /dev/null and b/art/generated/textures/all/altar-v128-preview.png differ diff --git a/art/generated/textures/all/altar-v128.png b/art/generated/textures/all/altar-v128.png new file mode 100644 index 0000000..791f7db Binary files /dev/null and b/art/generated/textures/all/altar-v128.png differ diff --git a/art/generated/textures/all/altar-v64-preview.png b/art/generated/textures/all/altar-v64-preview.png new file mode 100644 index 0000000..0638afa Binary files /dev/null and b/art/generated/textures/all/altar-v64-preview.png differ diff --git a/art/generated/textures/all/altar-v64.png b/art/generated/textures/all/altar-v64.png new file mode 100644 index 0000000..d1cdfc4 Binary files /dev/null and b/art/generated/textures/all/altar-v64.png differ diff --git a/art/generated/textures/all/arena-raw.png b/art/generated/textures/all/arena-raw.png new file mode 100644 index 0000000..b3e8116 Binary files /dev/null and b/art/generated/textures/all/arena-raw.png differ diff --git a/art/generated/textures/all/arena-v128-preview.png b/art/generated/textures/all/arena-v128-preview.png new file mode 100644 index 0000000..b6f2c2c Binary files /dev/null and b/art/generated/textures/all/arena-v128-preview.png differ diff --git a/art/generated/textures/all/arena-v128.png b/art/generated/textures/all/arena-v128.png new file mode 100644 index 0000000..d5fba12 Binary files /dev/null and b/art/generated/textures/all/arena-v128.png differ diff --git a/art/generated/textures/all/arena-v64-preview.png b/art/generated/textures/all/arena-v64-preview.png new file mode 100644 index 0000000..ce74912 Binary files /dev/null and b/art/generated/textures/all/arena-v64-preview.png differ diff --git a/art/generated/textures/all/arena-v64.png b/art/generated/textures/all/arena-v64.png new file mode 100644 index 0000000..cfc6d53 Binary files /dev/null and b/art/generated/textures/all/arena-v64.png differ diff --git a/art/generated/textures/all/bark-128-preview.png b/art/generated/textures/all/bark-128-preview.png new file mode 100644 index 0000000..71bac23 Binary files /dev/null and b/art/generated/textures/all/bark-128-preview.png differ diff --git a/art/generated/textures/all/bark-128.png b/art/generated/textures/all/bark-128.png new file mode 100644 index 0000000..b12da40 Binary files /dev/null and b/art/generated/textures/all/bark-128.png differ diff --git a/art/generated/textures/all/bark-64-preview.png b/art/generated/textures/all/bark-64-preview.png new file mode 100644 index 0000000..aec9160 Binary files /dev/null and b/art/generated/textures/all/bark-64-preview.png differ diff --git a/art/generated/textures/all/bark-64.png b/art/generated/textures/all/bark-64.png new file mode 100644 index 0000000..7425a8a Binary files /dev/null and b/art/generated/textures/all/bark-64.png differ diff --git a/art/generated/textures/all/bark-raw.png b/art/generated/textures/all/bark-raw.png new file mode 100644 index 0000000..738bcba Binary files /dev/null and b/art/generated/textures/all/bark-raw.png differ diff --git a/art/generated/textures/all/bark-v128.png b/art/generated/textures/all/bark-v128.png new file mode 100644 index 0000000..b12da40 Binary files /dev/null and b/art/generated/textures/all/bark-v128.png differ diff --git a/art/generated/textures/all/bark-v64.png b/art/generated/textures/all/bark-v64.png new file mode 100644 index 0000000..7425a8a Binary files /dev/null and b/art/generated/textures/all/bark-v64.png differ diff --git a/art/generated/textures/all/batch.py b/art/generated/textures/all/batch.py new file mode 100644 index 0000000..a7566d4 --- /dev/null +++ b/art/generated/textures/all/batch.py @@ -0,0 +1,59 @@ +# The high-res textures generated in one go (2026-11-07): (name, prompt). See PROMPTS.md. +STYLE = ("Seamless tileable square texture, viewed straight from above (orthographic top-down, no perspective), " + "flat even lighting, no shadows, no vignette, no border, no text. Hand-painted pixel art style for a " + "dark-fantasy dungeon strategy game: chunky clear shapes, crisp edges, limited muted palette, readable at small size. " + "A uniform all-over pattern evenly spread from edge to edge, no frame, no centre motif; it continues seamlessly across all four edges.") +WALL = ("Seamless tileable square texture of a wall surface seen straight on (orthographic, no perspective), flat even lighting, no shadows, " + "no vignette, no border, no text. Hand-painted pixel art style for a dark-fantasy dungeon strategy game: chunky clear shapes, crisp edges, " + "limited muted palette, readable at small size. A uniform all-over pattern evenly spread from edge to edge; it continues seamlessly across all four edges.") +TEX = { + # walls + "reinforced": (WALL, "A castle wall of the dungeon master: roughly squared grey stone blocks laid in regular horizontal courses like a medieval castle wall, " + "blocks of varying length in every course, rough chiselled faces with tool marks and slightly chipped edges, thin dark mortar with a faint " + "dark-crimson tint; ordered, solid and heavy, not bricks."), + "fortwall": (WALL, "A holy knights' fortress wall: pale grey-white dressed ashlar stone blocks in neat regular courses with thin blue-grey mortar, clean and orderly."), + "steel": (WALL, "A wall of dark riveted iron plates with rows of round rivets along the seams, a little rust and soot."), + "obsidian": (STYLE, "Cooled lava rock: black and very dark purple volcanic glass with smooth glassy facets and a few thin faintly glowing orange seams."), + "face": (WALL, "A cut vertical face of packed brown earth with small stones and roots, slightly uneven."), + # rooms + "treasury": (STYLE, "The floor of a treasure vault: polished dark stone flagstones with inlaid golden bands and a few scattered gold coins."), + "lair": (STYLE, "A monster lair floor: packed earth covered with scattered straw, old furs, a few bones and dirty rags."), + "farm": (STYLE, "A mushroom garden floor: dark moist soil in tilled furrows with tiny sprouting mushrooms and spores."), + "training": (STYLE, "A training hall floor: worn wooden planks with sawdust, scuff marks and a few dark stains."), + "library": (STYLE, "A repeating herringbone parquet of dark wooden boards, worn, with a few faint scratched arcane symbols and ink stains - no carpet, no large motif, no border."), + "torture": (STYLE, "A torture chamber floor: dark stained flagstones with rusty iron drain grates and a few chain links."), + "temple": (STYLE, "A repeating pattern of small black and dark-red marble mosaic tiles in a simple geometric all-over pattern, with thin faint golden lines between some tiles - no large motif, no circle, no border."), + "prison": (STYLE, "A prison floor: damp dark flagstones with small puddles, rusty drain grates and a little old straw."), + "graveyard": (STYLE, "Graveyard ground: dark loose earth, grave soil, patches of moss, pebbles and a few tiny bones."), + "guardpost": (STYLE, "A guard post floor: heavy grey flagstones with a dark-red painted stripe pattern and boot scuffs."), + "arena": (STYLE, "An arena floor: raked pale sand with dark blood stains and footprints."), + "altar": (STYLE, "A repeating pattern of polished black marble slabs of equal size with thin blood-red veins running through them - no large motif, no border, no frame."), + "forge": (STYLE, "A forge floor: sooty dark flagstones with iron filings, bits of slag and thin faintly glowing orange cracks."), + "aerie": (STYLE, "A giant bird nest floor: straw, twigs and a few large feathers spread over grey stone."), + # special floors + "core": (STYLE, "The floor around an evil master's soul core: dark obsidian-like stone with thin glowing red veins and fragments of a carved ritual circle."), + "portal": (STYLE, "The floor around a demon portal: dark violet stone with faintly glowing purple runes and magic cracks."), + "gate": (STYLE, "The floor before a holy order's gate: pale white limestone slabs with small inlaid blue-and-gold sun symbols."), + "hero": (STYLE, "The floor of a knights' castle hall: pale grey cut stone slabs, clean and regular, a little worn."), + # bridges + "bridge": (STYLE, "Wooden bridge planks laid side by side, weathered brown wood with iron nails and small gaps between the planks."), + "stonebridge": (STYLE, "A stone bridge surface: big grey stone slabs with sooty, heat-darkened edges."), + # above ground + "grass": (STYLE, "Short green meadow grass with a few tiny flowers and clover."), + "snow": (STYLE, "Fresh white snow on the ground with soft drifts, a few footprints and tiny ice crystals."), + "moss": (STYLE, "Dark stones overgrown with teal moss and a few glowing cyan spores."), + "leaves": (STYLE, "Dense tree foliage: many dark and light green leaves, seen close."), + "bark": (WALL, "Rough brown tree bark with deep vertical furrows."), + "stem": (WALL, "The surface of a giant pale mushroom stem: creamy white with soft vertical ribs and fibres."), + "cap": (STYLE, "The surface of a giant violet mushroom cap with round softly glowing pale spots."), +} +OBJ_STYLE = ("Side view, standing on the bottom edge of the image and filling most of its width, hand-painted pixel art for a dark-fantasy dungeon game, " + "crisp edges, a dark outline. The background is a completely flat pure magenta (#FF00FF) everywhere else - no floor, no shadow on the ground, no frame, no text.") +OBJ = { + "coins": "A heap of gold coins, a dome-shaped pile of shining gold coins with a few gems.", + "silver": "A neat pile of shining silver ingots stacked in rows.", + "ruby": "A heap of cut red rubies, sparkling.", + "diamond": "A heap of cut clear pale-blue diamonds, sparkling.", + "mushroom": "A cluster of three edible dungeon mushrooms of different sizes with brown caps and pale stems.", + "shard": "A large jagged shard of a glowing red crystal, broken off a soul core, glowing from inside.", +} diff --git a/art/generated/textures/all/bridge-raw.png b/art/generated/textures/all/bridge-raw.png new file mode 100644 index 0000000..cefcd37 Binary files /dev/null and b/art/generated/textures/all/bridge-raw.png differ diff --git a/art/generated/textures/all/bridge-v128-preview.png b/art/generated/textures/all/bridge-v128-preview.png new file mode 100644 index 0000000..4d538e1 Binary files /dev/null and b/art/generated/textures/all/bridge-v128-preview.png differ diff --git a/art/generated/textures/all/bridge-v128.png b/art/generated/textures/all/bridge-v128.png new file mode 100644 index 0000000..4977c01 Binary files /dev/null and b/art/generated/textures/all/bridge-v128.png differ diff --git a/art/generated/textures/all/bridge-v64-preview.png b/art/generated/textures/all/bridge-v64-preview.png new file mode 100644 index 0000000..4e67a12 Binary files /dev/null and b/art/generated/textures/all/bridge-v64-preview.png differ diff --git a/art/generated/textures/all/bridge-v64.png b/art/generated/textures/all/bridge-v64.png new file mode 100644 index 0000000..e0dfacc Binary files /dev/null and b/art/generated/textures/all/bridge-v64.png differ diff --git a/art/generated/textures/all/cap-128-preview.png b/art/generated/textures/all/cap-128-preview.png new file mode 100644 index 0000000..1ae0baf Binary files /dev/null and b/art/generated/textures/all/cap-128-preview.png differ diff --git a/art/generated/textures/all/cap-128.png b/art/generated/textures/all/cap-128.png new file mode 100644 index 0000000..e5a36f6 Binary files /dev/null and b/art/generated/textures/all/cap-128.png differ diff --git a/art/generated/textures/all/cap-64-preview.png b/art/generated/textures/all/cap-64-preview.png new file mode 100644 index 0000000..2e9d572 Binary files /dev/null and b/art/generated/textures/all/cap-64-preview.png differ diff --git a/art/generated/textures/all/cap-64.png b/art/generated/textures/all/cap-64.png new file mode 100644 index 0000000..aeab73f Binary files /dev/null and b/art/generated/textures/all/cap-64.png differ diff --git a/art/generated/textures/all/cap-raw.png b/art/generated/textures/all/cap-raw.png new file mode 100644 index 0000000..ed32bcb Binary files /dev/null and b/art/generated/textures/all/cap-raw.png differ diff --git a/art/generated/textures/all/cap-v128.png b/art/generated/textures/all/cap-v128.png new file mode 100644 index 0000000..e5a36f6 Binary files /dev/null and b/art/generated/textures/all/cap-v128.png differ diff --git a/art/generated/textures/all/cap-v64.png b/art/generated/textures/all/cap-v64.png new file mode 100644 index 0000000..aeab73f Binary files /dev/null and b/art/generated/textures/all/cap-v64.png differ diff --git a/art/generated/textures/all/core-raw.png b/art/generated/textures/all/core-raw.png new file mode 100644 index 0000000..5464688 Binary files /dev/null and b/art/generated/textures/all/core-raw.png differ diff --git a/art/generated/textures/all/core-v128-preview.png b/art/generated/textures/all/core-v128-preview.png new file mode 100644 index 0000000..306d6e3 Binary files /dev/null and b/art/generated/textures/all/core-v128-preview.png differ diff --git a/art/generated/textures/all/core-v128.png b/art/generated/textures/all/core-v128.png new file mode 100644 index 0000000..388d026 Binary files /dev/null and b/art/generated/textures/all/core-v128.png differ diff --git a/art/generated/textures/all/core-v64-preview.png b/art/generated/textures/all/core-v64-preview.png new file mode 100644 index 0000000..eb56818 Binary files /dev/null and b/art/generated/textures/all/core-v64-preview.png differ diff --git a/art/generated/textures/all/core-v64.png b/art/generated/textures/all/core-v64.png new file mode 100644 index 0000000..492a360 Binary files /dev/null and b/art/generated/textures/all/core-v64.png differ diff --git a/art/generated/textures/all/face-128-preview.png b/art/generated/textures/all/face-128-preview.png new file mode 100644 index 0000000..96cb80e Binary files /dev/null and b/art/generated/textures/all/face-128-preview.png differ diff --git a/art/generated/textures/all/face-128.png b/art/generated/textures/all/face-128.png new file mode 100644 index 0000000..73fc1f9 Binary files /dev/null and b/art/generated/textures/all/face-128.png differ diff --git a/art/generated/textures/all/face-64-preview.png b/art/generated/textures/all/face-64-preview.png new file mode 100644 index 0000000..96de0ce Binary files /dev/null and b/art/generated/textures/all/face-64-preview.png differ diff --git a/art/generated/textures/all/face-64.png b/art/generated/textures/all/face-64.png new file mode 100644 index 0000000..8c0a9d6 Binary files /dev/null and b/art/generated/textures/all/face-64.png differ diff --git a/art/generated/textures/all/face-raw.png b/art/generated/textures/all/face-raw.png new file mode 100644 index 0000000..75477a6 Binary files /dev/null and b/art/generated/textures/all/face-raw.png differ diff --git a/art/generated/textures/all/face-v128.png b/art/generated/textures/all/face-v128.png new file mode 100644 index 0000000..73fc1f9 Binary files /dev/null and b/art/generated/textures/all/face-v128.png differ diff --git a/art/generated/textures/all/face-v64.png b/art/generated/textures/all/face-v64.png new file mode 100644 index 0000000..8c0a9d6 Binary files /dev/null and b/art/generated/textures/all/face-v64.png differ diff --git a/art/generated/textures/all/farm-raw.png b/art/generated/textures/all/farm-raw.png new file mode 100644 index 0000000..fffabea Binary files /dev/null and b/art/generated/textures/all/farm-raw.png differ diff --git a/art/generated/textures/all/farm-v128-preview.png b/art/generated/textures/all/farm-v128-preview.png new file mode 100644 index 0000000..fadb461 Binary files /dev/null and b/art/generated/textures/all/farm-v128-preview.png differ diff --git a/art/generated/textures/all/farm-v128.png b/art/generated/textures/all/farm-v128.png new file mode 100644 index 0000000..a1e90c0 Binary files /dev/null and b/art/generated/textures/all/farm-v128.png differ diff --git a/art/generated/textures/all/farm-v64-preview.png b/art/generated/textures/all/farm-v64-preview.png new file mode 100644 index 0000000..582a0e2 Binary files /dev/null and b/art/generated/textures/all/farm-v64-preview.png differ diff --git a/art/generated/textures/all/farm-v64.png b/art/generated/textures/all/farm-v64.png new file mode 100644 index 0000000..64e57da Binary files /dev/null and b/art/generated/textures/all/farm-v64.png differ diff --git a/art/generated/textures/all/forge-raw.png b/art/generated/textures/all/forge-raw.png new file mode 100644 index 0000000..2136301 Binary files /dev/null and b/art/generated/textures/all/forge-raw.png differ diff --git a/art/generated/textures/all/forge-v128-preview.png b/art/generated/textures/all/forge-v128-preview.png new file mode 100644 index 0000000..1b0c5d6 Binary files /dev/null and b/art/generated/textures/all/forge-v128-preview.png differ diff --git a/art/generated/textures/all/forge-v128.png b/art/generated/textures/all/forge-v128.png new file mode 100644 index 0000000..0417b45 Binary files /dev/null and b/art/generated/textures/all/forge-v128.png differ diff --git a/art/generated/textures/all/forge-v64-preview.png b/art/generated/textures/all/forge-v64-preview.png new file mode 100644 index 0000000..6785666 Binary files /dev/null and b/art/generated/textures/all/forge-v64-preview.png differ diff --git a/art/generated/textures/all/forge-v64.png b/art/generated/textures/all/forge-v64.png new file mode 100644 index 0000000..4c87276 Binary files /dev/null and b/art/generated/textures/all/forge-v64.png differ diff --git a/art/generated/textures/all/fortwall-raw.png b/art/generated/textures/all/fortwall-raw.png new file mode 100644 index 0000000..2f169f4 Binary files /dev/null and b/art/generated/textures/all/fortwall-raw.png differ diff --git a/art/generated/textures/all/fortwall-v128-preview.png b/art/generated/textures/all/fortwall-v128-preview.png new file mode 100644 index 0000000..4e8f0c5 Binary files /dev/null and b/art/generated/textures/all/fortwall-v128-preview.png differ diff --git a/art/generated/textures/all/fortwall-v128.png b/art/generated/textures/all/fortwall-v128.png new file mode 100644 index 0000000..0b53385 Binary files /dev/null and b/art/generated/textures/all/fortwall-v128.png differ diff --git a/art/generated/textures/all/fortwall-v64-preview.png b/art/generated/textures/all/fortwall-v64-preview.png new file mode 100644 index 0000000..32518ae Binary files /dev/null and b/art/generated/textures/all/fortwall-v64-preview.png differ diff --git a/art/generated/textures/all/fortwall-v64.png b/art/generated/textures/all/fortwall-v64.png new file mode 100644 index 0000000..d309d12 Binary files /dev/null and b/art/generated/textures/all/fortwall-v64.png differ diff --git a/art/generated/textures/all/gate-raw.png b/art/generated/textures/all/gate-raw.png new file mode 100644 index 0000000..08d3549 Binary files /dev/null and b/art/generated/textures/all/gate-raw.png differ diff --git a/art/generated/textures/all/gate-v128-preview.png b/art/generated/textures/all/gate-v128-preview.png new file mode 100644 index 0000000..4cc8db9 Binary files /dev/null and b/art/generated/textures/all/gate-v128-preview.png differ diff --git a/art/generated/textures/all/gate-v128.png b/art/generated/textures/all/gate-v128.png new file mode 100644 index 0000000..2dd5b82 Binary files /dev/null and b/art/generated/textures/all/gate-v128.png differ diff --git a/art/generated/textures/all/gate-v64-preview.png b/art/generated/textures/all/gate-v64-preview.png new file mode 100644 index 0000000..3263aba Binary files /dev/null and b/art/generated/textures/all/gate-v64-preview.png differ diff --git a/art/generated/textures/all/gate-v64.png b/art/generated/textures/all/gate-v64.png new file mode 100644 index 0000000..6d01a85 Binary files /dev/null and b/art/generated/textures/all/gate-v64.png differ diff --git a/art/generated/textures/all/grass-raw.png b/art/generated/textures/all/grass-raw.png new file mode 100644 index 0000000..471cf7b Binary files /dev/null and b/art/generated/textures/all/grass-raw.png differ diff --git a/art/generated/textures/all/grass-v128-preview.png b/art/generated/textures/all/grass-v128-preview.png new file mode 100644 index 0000000..fd5e7f8 Binary files /dev/null and b/art/generated/textures/all/grass-v128-preview.png differ diff --git a/art/generated/textures/all/grass-v128.png b/art/generated/textures/all/grass-v128.png new file mode 100644 index 0000000..43351b2 Binary files /dev/null and b/art/generated/textures/all/grass-v128.png differ diff --git a/art/generated/textures/all/grass-v64-preview.png b/art/generated/textures/all/grass-v64-preview.png new file mode 100644 index 0000000..4f98915 Binary files /dev/null and b/art/generated/textures/all/grass-v64-preview.png differ diff --git a/art/generated/textures/all/grass-v64.png b/art/generated/textures/all/grass-v64.png new file mode 100644 index 0000000..c959057 Binary files /dev/null and b/art/generated/textures/all/grass-v64.png differ diff --git a/art/generated/textures/all/graveyard-raw.png b/art/generated/textures/all/graveyard-raw.png new file mode 100644 index 0000000..622c39d Binary files /dev/null and b/art/generated/textures/all/graveyard-raw.png differ diff --git a/art/generated/textures/all/graveyard-v128-preview.png b/art/generated/textures/all/graveyard-v128-preview.png new file mode 100644 index 0000000..3175a6c Binary files /dev/null and b/art/generated/textures/all/graveyard-v128-preview.png differ diff --git a/art/generated/textures/all/graveyard-v128.png b/art/generated/textures/all/graveyard-v128.png new file mode 100644 index 0000000..05fef1d Binary files /dev/null and b/art/generated/textures/all/graveyard-v128.png differ diff --git a/art/generated/textures/all/graveyard-v64-preview.png b/art/generated/textures/all/graveyard-v64-preview.png new file mode 100644 index 0000000..9235ea9 Binary files /dev/null and b/art/generated/textures/all/graveyard-v64-preview.png differ diff --git a/art/generated/textures/all/graveyard-v64.png b/art/generated/textures/all/graveyard-v64.png new file mode 100644 index 0000000..fb895a5 Binary files /dev/null and b/art/generated/textures/all/graveyard-v64.png differ diff --git a/art/generated/textures/all/guardpost-raw.png b/art/generated/textures/all/guardpost-raw.png new file mode 100644 index 0000000..1ca450e Binary files /dev/null and b/art/generated/textures/all/guardpost-raw.png differ diff --git a/art/generated/textures/all/guardpost-v128-preview.png b/art/generated/textures/all/guardpost-v128-preview.png new file mode 100644 index 0000000..69f9470 Binary files /dev/null and b/art/generated/textures/all/guardpost-v128-preview.png differ diff --git a/art/generated/textures/all/guardpost-v128.png b/art/generated/textures/all/guardpost-v128.png new file mode 100644 index 0000000..e12632c Binary files /dev/null and b/art/generated/textures/all/guardpost-v128.png differ diff --git a/art/generated/textures/all/guardpost-v64-preview.png b/art/generated/textures/all/guardpost-v64-preview.png new file mode 100644 index 0000000..fcfc258 Binary files /dev/null and b/art/generated/textures/all/guardpost-v64-preview.png differ diff --git a/art/generated/textures/all/guardpost-v64.png b/art/generated/textures/all/guardpost-v64.png new file mode 100644 index 0000000..e1a4ebd Binary files /dev/null and b/art/generated/textures/all/guardpost-v64.png differ diff --git a/art/generated/textures/all/hero-raw.png b/art/generated/textures/all/hero-raw.png new file mode 100644 index 0000000..a53b571 Binary files /dev/null and b/art/generated/textures/all/hero-raw.png differ diff --git a/art/generated/textures/all/hero-v128-preview.png b/art/generated/textures/all/hero-v128-preview.png new file mode 100644 index 0000000..50982ff Binary files /dev/null and b/art/generated/textures/all/hero-v128-preview.png differ diff --git a/art/generated/textures/all/hero-v128.png b/art/generated/textures/all/hero-v128.png new file mode 100644 index 0000000..8d8bb3d Binary files /dev/null and b/art/generated/textures/all/hero-v128.png differ diff --git a/art/generated/textures/all/hero-v64-preview.png b/art/generated/textures/all/hero-v64-preview.png new file mode 100644 index 0000000..6cebb25 Binary files /dev/null and b/art/generated/textures/all/hero-v64-preview.png differ diff --git a/art/generated/textures/all/hero-v64.png b/art/generated/textures/all/hero-v64.png new file mode 100644 index 0000000..2879475 Binary files /dev/null and b/art/generated/textures/all/hero-v64.png differ diff --git a/art/generated/textures/all/lair-raw.png b/art/generated/textures/all/lair-raw.png new file mode 100644 index 0000000..80e3452 Binary files /dev/null and b/art/generated/textures/all/lair-raw.png differ diff --git a/art/generated/textures/all/lair-v128-preview.png b/art/generated/textures/all/lair-v128-preview.png new file mode 100644 index 0000000..3a2afda Binary files /dev/null and b/art/generated/textures/all/lair-v128-preview.png differ diff --git a/art/generated/textures/all/lair-v128.png b/art/generated/textures/all/lair-v128.png new file mode 100644 index 0000000..3431e1e Binary files /dev/null and b/art/generated/textures/all/lair-v128.png differ diff --git a/art/generated/textures/all/lair-v64-preview.png b/art/generated/textures/all/lair-v64-preview.png new file mode 100644 index 0000000..399ee03 Binary files /dev/null and b/art/generated/textures/all/lair-v64-preview.png differ diff --git a/art/generated/textures/all/lair-v64.png b/art/generated/textures/all/lair-v64.png new file mode 100644 index 0000000..85e9e39 Binary files /dev/null and b/art/generated/textures/all/lair-v64.png differ diff --git a/art/generated/textures/all/leaves-raw.png b/art/generated/textures/all/leaves-raw.png new file mode 100644 index 0000000..bc82f31 Binary files /dev/null and b/art/generated/textures/all/leaves-raw.png differ diff --git a/art/generated/textures/all/leaves-v128-preview.png b/art/generated/textures/all/leaves-v128-preview.png new file mode 100644 index 0000000..dc5d450 Binary files /dev/null and b/art/generated/textures/all/leaves-v128-preview.png differ diff --git a/art/generated/textures/all/leaves-v128.png b/art/generated/textures/all/leaves-v128.png new file mode 100644 index 0000000..c127c5c Binary files /dev/null and b/art/generated/textures/all/leaves-v128.png differ diff --git a/art/generated/textures/all/leaves-v64-preview.png b/art/generated/textures/all/leaves-v64-preview.png new file mode 100644 index 0000000..08274f2 Binary files /dev/null and b/art/generated/textures/all/leaves-v64-preview.png differ diff --git a/art/generated/textures/all/leaves-v64.png b/art/generated/textures/all/leaves-v64.png new file mode 100644 index 0000000..349c02a Binary files /dev/null and b/art/generated/textures/all/leaves-v64.png differ diff --git a/art/generated/textures/all/library-raw.png b/art/generated/textures/all/library-raw.png new file mode 100644 index 0000000..149f990 Binary files /dev/null and b/art/generated/textures/all/library-raw.png differ diff --git a/art/generated/textures/all/library-v128-preview.png b/art/generated/textures/all/library-v128-preview.png new file mode 100644 index 0000000..7c7203d Binary files /dev/null and b/art/generated/textures/all/library-v128-preview.png differ diff --git a/art/generated/textures/all/library-v128.png b/art/generated/textures/all/library-v128.png new file mode 100644 index 0000000..b63ac41 Binary files /dev/null and b/art/generated/textures/all/library-v128.png differ diff --git a/art/generated/textures/all/library-v64-preview.png b/art/generated/textures/all/library-v64-preview.png new file mode 100644 index 0000000..5024b84 Binary files /dev/null and b/art/generated/textures/all/library-v64-preview.png differ diff --git a/art/generated/textures/all/library-v64.png b/art/generated/textures/all/library-v64.png new file mode 100644 index 0000000..1bc38b5 Binary files /dev/null and b/art/generated/textures/all/library-v64.png differ diff --git a/art/generated/textures/all/moss-raw.png b/art/generated/textures/all/moss-raw.png new file mode 100644 index 0000000..1203fcb Binary files /dev/null and b/art/generated/textures/all/moss-raw.png differ diff --git a/art/generated/textures/all/moss-v128-preview.png b/art/generated/textures/all/moss-v128-preview.png new file mode 100644 index 0000000..9ed017d Binary files /dev/null and b/art/generated/textures/all/moss-v128-preview.png differ diff --git a/art/generated/textures/all/moss-v128.png b/art/generated/textures/all/moss-v128.png new file mode 100644 index 0000000..7b4ed49 Binary files /dev/null and b/art/generated/textures/all/moss-v128.png differ diff --git a/art/generated/textures/all/moss-v64-preview.png b/art/generated/textures/all/moss-v64-preview.png new file mode 100644 index 0000000..4f2fa94 Binary files /dev/null and b/art/generated/textures/all/moss-v64-preview.png differ diff --git a/art/generated/textures/all/moss-v64.png b/art/generated/textures/all/moss-v64.png new file mode 100644 index 0000000..fafdec2 Binary files /dev/null and b/art/generated/textures/all/moss-v64.png differ diff --git a/art/generated/textures/all/obj-coins-128-preview.png b/art/generated/textures/all/obj-coins-128-preview.png new file mode 100644 index 0000000..464e643 Binary files /dev/null and b/art/generated/textures/all/obj-coins-128-preview.png differ diff --git a/art/generated/textures/all/obj-coins-128.png b/art/generated/textures/all/obj-coins-128.png new file mode 100644 index 0000000..a952786 Binary files /dev/null and b/art/generated/textures/all/obj-coins-128.png differ diff --git a/art/generated/textures/all/obj-coins-64-preview.png b/art/generated/textures/all/obj-coins-64-preview.png new file mode 100644 index 0000000..2c21ed6 Binary files /dev/null and b/art/generated/textures/all/obj-coins-64-preview.png differ diff --git a/art/generated/textures/all/obj-coins-64.png b/art/generated/textures/all/obj-coins-64.png new file mode 100644 index 0000000..26165c3 Binary files /dev/null and b/art/generated/textures/all/obj-coins-64.png differ diff --git a/art/generated/textures/all/obj-coins-raw.png b/art/generated/textures/all/obj-coins-raw.png new file mode 100644 index 0000000..ea3c8ee Binary files /dev/null and b/art/generated/textures/all/obj-coins-raw.png differ diff --git a/art/generated/textures/all/obj-diamond-128-preview.png b/art/generated/textures/all/obj-diamond-128-preview.png new file mode 100644 index 0000000..04a749e Binary files /dev/null and b/art/generated/textures/all/obj-diamond-128-preview.png differ diff --git a/art/generated/textures/all/obj-diamond-128.png b/art/generated/textures/all/obj-diamond-128.png new file mode 100644 index 0000000..e55ea08 Binary files /dev/null and b/art/generated/textures/all/obj-diamond-128.png differ diff --git a/art/generated/textures/all/obj-diamond-64-preview.png b/art/generated/textures/all/obj-diamond-64-preview.png new file mode 100644 index 0000000..0a7dcd7 Binary files /dev/null and b/art/generated/textures/all/obj-diamond-64-preview.png differ diff --git a/art/generated/textures/all/obj-diamond-64.png b/art/generated/textures/all/obj-diamond-64.png new file mode 100644 index 0000000..6c4cf4c Binary files /dev/null and b/art/generated/textures/all/obj-diamond-64.png differ diff --git a/art/generated/textures/all/obj-diamond-raw.png b/art/generated/textures/all/obj-diamond-raw.png new file mode 100644 index 0000000..306ead0 Binary files /dev/null and b/art/generated/textures/all/obj-diamond-raw.png differ diff --git a/art/generated/textures/all/obj-mushroom-128-preview.png b/art/generated/textures/all/obj-mushroom-128-preview.png new file mode 100644 index 0000000..dfd8548 Binary files /dev/null and b/art/generated/textures/all/obj-mushroom-128-preview.png differ diff --git a/art/generated/textures/all/obj-mushroom-128.png b/art/generated/textures/all/obj-mushroom-128.png new file mode 100644 index 0000000..51345a1 Binary files /dev/null and b/art/generated/textures/all/obj-mushroom-128.png differ diff --git a/art/generated/textures/all/obj-mushroom-64-preview.png b/art/generated/textures/all/obj-mushroom-64-preview.png new file mode 100644 index 0000000..05ebd7e Binary files /dev/null and b/art/generated/textures/all/obj-mushroom-64-preview.png differ diff --git a/art/generated/textures/all/obj-mushroom-64.png b/art/generated/textures/all/obj-mushroom-64.png new file mode 100644 index 0000000..ad63498 Binary files /dev/null and b/art/generated/textures/all/obj-mushroom-64.png differ diff --git a/art/generated/textures/all/obj-mushroom-raw.png b/art/generated/textures/all/obj-mushroom-raw.png new file mode 100644 index 0000000..4f3be9d Binary files /dev/null and b/art/generated/textures/all/obj-mushroom-raw.png differ diff --git a/art/generated/textures/all/obj-ruby-128-preview.png b/art/generated/textures/all/obj-ruby-128-preview.png new file mode 100644 index 0000000..add4151 Binary files /dev/null and b/art/generated/textures/all/obj-ruby-128-preview.png differ diff --git a/art/generated/textures/all/obj-ruby-128.png b/art/generated/textures/all/obj-ruby-128.png new file mode 100644 index 0000000..7ad0c3b Binary files /dev/null and b/art/generated/textures/all/obj-ruby-128.png differ diff --git a/art/generated/textures/all/obj-ruby-64-preview.png b/art/generated/textures/all/obj-ruby-64-preview.png new file mode 100644 index 0000000..cf58ba5 Binary files /dev/null and b/art/generated/textures/all/obj-ruby-64-preview.png differ diff --git a/art/generated/textures/all/obj-ruby-64.png b/art/generated/textures/all/obj-ruby-64.png new file mode 100644 index 0000000..69c2074 Binary files /dev/null and b/art/generated/textures/all/obj-ruby-64.png differ diff --git a/art/generated/textures/all/obj-ruby-raw.png b/art/generated/textures/all/obj-ruby-raw.png new file mode 100644 index 0000000..14c2613 Binary files /dev/null and b/art/generated/textures/all/obj-ruby-raw.png differ diff --git a/art/generated/textures/all/obj-shard-128-preview.png b/art/generated/textures/all/obj-shard-128-preview.png new file mode 100644 index 0000000..9f558ee Binary files /dev/null and b/art/generated/textures/all/obj-shard-128-preview.png differ diff --git a/art/generated/textures/all/obj-shard-128.png b/art/generated/textures/all/obj-shard-128.png new file mode 100644 index 0000000..0526afe Binary files /dev/null and b/art/generated/textures/all/obj-shard-128.png differ diff --git a/art/generated/textures/all/obj-shard-64-preview.png b/art/generated/textures/all/obj-shard-64-preview.png new file mode 100644 index 0000000..34634d8 Binary files /dev/null and b/art/generated/textures/all/obj-shard-64-preview.png differ diff --git a/art/generated/textures/all/obj-shard-64.png b/art/generated/textures/all/obj-shard-64.png new file mode 100644 index 0000000..bec1a6e Binary files /dev/null and b/art/generated/textures/all/obj-shard-64.png differ diff --git a/art/generated/textures/all/obj-shard-raw.png b/art/generated/textures/all/obj-shard-raw.png new file mode 100644 index 0000000..33c43ce Binary files /dev/null and b/art/generated/textures/all/obj-shard-raw.png differ diff --git a/art/generated/textures/all/obj-silver-128-preview.png b/art/generated/textures/all/obj-silver-128-preview.png new file mode 100644 index 0000000..1570d95 Binary files /dev/null and b/art/generated/textures/all/obj-silver-128-preview.png differ diff --git a/art/generated/textures/all/obj-silver-128.png b/art/generated/textures/all/obj-silver-128.png new file mode 100644 index 0000000..098920c Binary files /dev/null and b/art/generated/textures/all/obj-silver-128.png differ diff --git a/art/generated/textures/all/obj-silver-64-preview.png b/art/generated/textures/all/obj-silver-64-preview.png new file mode 100644 index 0000000..24969e6 Binary files /dev/null and b/art/generated/textures/all/obj-silver-64-preview.png differ diff --git a/art/generated/textures/all/obj-silver-64.png b/art/generated/textures/all/obj-silver-64.png new file mode 100644 index 0000000..ef3732a Binary files /dev/null and b/art/generated/textures/all/obj-silver-64.png differ diff --git a/art/generated/textures/all/obj-silver-raw.png b/art/generated/textures/all/obj-silver-raw.png new file mode 100644 index 0000000..55d5253 Binary files /dev/null and b/art/generated/textures/all/obj-silver-raw.png differ diff --git a/art/generated/textures/all/obsidian-raw.png b/art/generated/textures/all/obsidian-raw.png new file mode 100644 index 0000000..122c086 Binary files /dev/null and b/art/generated/textures/all/obsidian-raw.png differ diff --git a/art/generated/textures/all/obsidian-v128-preview.png b/art/generated/textures/all/obsidian-v128-preview.png new file mode 100644 index 0000000..5dc0d7b Binary files /dev/null and b/art/generated/textures/all/obsidian-v128-preview.png differ diff --git a/art/generated/textures/all/obsidian-v128.png b/art/generated/textures/all/obsidian-v128.png new file mode 100644 index 0000000..2090683 Binary files /dev/null and b/art/generated/textures/all/obsidian-v128.png differ diff --git a/art/generated/textures/all/obsidian-v64-preview.png b/art/generated/textures/all/obsidian-v64-preview.png new file mode 100644 index 0000000..3384fd4 Binary files /dev/null and b/art/generated/textures/all/obsidian-v64-preview.png differ diff --git a/art/generated/textures/all/obsidian-v64.png b/art/generated/textures/all/obsidian-v64.png new file mode 100644 index 0000000..654aad5 Binary files /dev/null and b/art/generated/textures/all/obsidian-v64.png differ diff --git a/art/generated/textures/all/portal-raw.png b/art/generated/textures/all/portal-raw.png new file mode 100644 index 0000000..f9a3bf4 Binary files /dev/null and b/art/generated/textures/all/portal-raw.png differ diff --git a/art/generated/textures/all/portal-v128-preview.png b/art/generated/textures/all/portal-v128-preview.png new file mode 100644 index 0000000..7a65b6d Binary files /dev/null and b/art/generated/textures/all/portal-v128-preview.png differ diff --git a/art/generated/textures/all/portal-v128.png b/art/generated/textures/all/portal-v128.png new file mode 100644 index 0000000..ad16ed3 Binary files /dev/null and b/art/generated/textures/all/portal-v128.png differ diff --git a/art/generated/textures/all/portal-v64-preview.png b/art/generated/textures/all/portal-v64-preview.png new file mode 100644 index 0000000..98ee06c Binary files /dev/null and b/art/generated/textures/all/portal-v64-preview.png differ diff --git a/art/generated/textures/all/portal-v64.png b/art/generated/textures/all/portal-v64.png new file mode 100644 index 0000000..bf6d11c Binary files /dev/null and b/art/generated/textures/all/portal-v64.png differ diff --git a/art/generated/textures/all/prison-raw.png b/art/generated/textures/all/prison-raw.png new file mode 100644 index 0000000..d416a96 Binary files /dev/null and b/art/generated/textures/all/prison-raw.png differ diff --git a/art/generated/textures/all/prison-v128-preview.png b/art/generated/textures/all/prison-v128-preview.png new file mode 100644 index 0000000..b1dea43 Binary files /dev/null and b/art/generated/textures/all/prison-v128-preview.png differ diff --git a/art/generated/textures/all/prison-v128.png b/art/generated/textures/all/prison-v128.png new file mode 100644 index 0000000..fed8b3d Binary files /dev/null and b/art/generated/textures/all/prison-v128.png differ diff --git a/art/generated/textures/all/prison-v64-preview.png b/art/generated/textures/all/prison-v64-preview.png new file mode 100644 index 0000000..240cc3b Binary files /dev/null and b/art/generated/textures/all/prison-v64-preview.png differ diff --git a/art/generated/textures/all/prison-v64.png b/art/generated/textures/all/prison-v64.png new file mode 100644 index 0000000..cd99864 Binary files /dev/null and b/art/generated/textures/all/prison-v64.png differ diff --git a/art/generated/textures/all/process.py b/art/generated/textures/all/process.py new file mode 100644 index 0000000..373d5cf --- /dev/null +++ b/art/generated/textures/all/process.py @@ -0,0 +1,33 @@ +# Turns the raw pictures into the game's high-res tiles (run from this folder with Pillow): +# (name, variants (1: one seamless tile), crop margin as a share of the picture, brightness) +import subprocess, sys +from PIL import Image +T = '../../../../tools/make_tile.py' +D = '../../../../tools/make_decal.py' +TILES = [ + ('reinforced', 5, 0.25, 1.15), ('fortwall', 4, 0.25, 1.0), ('steel', 4, 0.2, 1.1), ('obsidian', 4, 0.15, 1.0), ('face', 1, 0.15, 1.0), + ('treasury', 4, 0.12, 1.1), ('lair', 4, 0.1, 1.0), ('farm', 4, 0.1, 1.1), ('training', 4, 0.18, 1.1), ('library', 4, 0.18, 1.25), + ('torture', 4, 0.15, 1.15), ('temple', 4, 0.12, 1.2), ('prison', 4, 0.12, 1.1), ('graveyard', 4, 0.1, 1.1), ('guardpost', 4, 0.12, 1.0), + ('arena', 4, 0.12, 1.0), ('altar', 4, 0.08, 1.3), ('forge', 4, 0.12, 1.1), ('aerie', 4, 0.15, 1.0), + ('core', 4, 0.12, 1.1), ('portal', 4, 0.12, 1.15), ('gate', 4, 0.15, 1.0), ('hero', 4, 0.2, 1.0), + ('bridge', 2, 0.15, 1.1), ('stonebridge', 2, 0.15, 1.0), + ('grass', 4, 0.1, 1.0), ('snow', 4, 0.15, 1.0), ('moss', 4, 0.1, 1.1), ('leaves', 2, 0.1, 1.0), + ('bark', 1, 0.1, 1.0), ('stem', 1, 0.1, 1.0), ('cap', 1, 0.1, 1.0), +] +OBJS = ['coins', 'silver', 'ruby', 'diamond', 'mushroom', 'shard'] +P = [sys.executable, '-I'] +for name, n, m, br in TILES: + im = Image.open(f'{name}-raw.png').convert('RGB') + w = im.width + im.crop((int(w * m), int(w * m), int(w * (1 - m)), int(w * (1 - m)))).save(f'/tmp/{name}-crop.png') + for size, colors, band in [(256, 48, 28), (128, 32, 14)]: + if n > 1: + subprocess.run(P + [T, f'/tmp/{name}-crop.png', name, '--size', str(size), '--colors', str(colors), '--band', str(band), '--variants', str(n), '--bright', str(br)], check=True, capture_output=True) + else: + # one tile of size/2: the whole picture made seamless at that size + subprocess.run(P + [T, f'/tmp/{name}-crop.png', name, '--size', str(size // 2), '--colors', str(colors), '--band', str(band // 2), '--bright', str(br)], check=True, capture_output=True) + Image.open(f'{name}-{size // 2}.png').save(f'{name}-v{size // 2}.png') +for name in OBJS: + for size in (64, 128): + subprocess.run(P + [D, f'obj-{name}-raw.png', f'obj-{name}', '--size', str(size)] + (['--strict'] if name == 'shard' else []), check=True, capture_output=True) +print('done') diff --git a/art/generated/textures/all/reinforced-raw.png b/art/generated/textures/all/reinforced-raw.png new file mode 100644 index 0000000..59099a7 Binary files /dev/null and b/art/generated/textures/all/reinforced-raw.png differ diff --git a/art/generated/textures/all/reinforced-v128-preview.png b/art/generated/textures/all/reinforced-v128-preview.png new file mode 100644 index 0000000..bb55c9e Binary files /dev/null and b/art/generated/textures/all/reinforced-v128-preview.png differ diff --git a/art/generated/textures/all/reinforced-v128.png b/art/generated/textures/all/reinforced-v128.png new file mode 100644 index 0000000..3befb0b Binary files /dev/null and b/art/generated/textures/all/reinforced-v128.png differ diff --git a/art/generated/textures/all/reinforced-v64-preview.png b/art/generated/textures/all/reinforced-v64-preview.png new file mode 100644 index 0000000..b790b93 Binary files /dev/null and b/art/generated/textures/all/reinforced-v64-preview.png differ diff --git a/art/generated/textures/all/reinforced-v64.png b/art/generated/textures/all/reinforced-v64.png new file mode 100644 index 0000000..0143fb4 Binary files /dev/null and b/art/generated/textures/all/reinforced-v64.png differ diff --git a/art/generated/textures/all/snow-raw.png b/art/generated/textures/all/snow-raw.png new file mode 100644 index 0000000..14a51c3 Binary files /dev/null and b/art/generated/textures/all/snow-raw.png differ diff --git a/art/generated/textures/all/snow-v128-preview.png b/art/generated/textures/all/snow-v128-preview.png new file mode 100644 index 0000000..87ba490 Binary files /dev/null and b/art/generated/textures/all/snow-v128-preview.png differ diff --git a/art/generated/textures/all/snow-v128.png b/art/generated/textures/all/snow-v128.png new file mode 100644 index 0000000..28c1340 Binary files /dev/null and b/art/generated/textures/all/snow-v128.png differ diff --git a/art/generated/textures/all/snow-v64-preview.png b/art/generated/textures/all/snow-v64-preview.png new file mode 100644 index 0000000..97cc884 Binary files /dev/null and b/art/generated/textures/all/snow-v64-preview.png differ diff --git a/art/generated/textures/all/snow-v64.png b/art/generated/textures/all/snow-v64.png new file mode 100644 index 0000000..4410441 Binary files /dev/null and b/art/generated/textures/all/snow-v64.png differ diff --git a/art/generated/textures/all/steel-raw.png b/art/generated/textures/all/steel-raw.png new file mode 100644 index 0000000..de3fd38 Binary files /dev/null and b/art/generated/textures/all/steel-raw.png differ diff --git a/art/generated/textures/all/steel-v128-preview.png b/art/generated/textures/all/steel-v128-preview.png new file mode 100644 index 0000000..9c7da19 Binary files /dev/null and b/art/generated/textures/all/steel-v128-preview.png differ diff --git a/art/generated/textures/all/steel-v128.png b/art/generated/textures/all/steel-v128.png new file mode 100644 index 0000000..3d0c96f Binary files /dev/null and b/art/generated/textures/all/steel-v128.png differ diff --git a/art/generated/textures/all/steel-v64-preview.png b/art/generated/textures/all/steel-v64-preview.png new file mode 100644 index 0000000..f179498 Binary files /dev/null and b/art/generated/textures/all/steel-v64-preview.png differ diff --git a/art/generated/textures/all/steel-v64.png b/art/generated/textures/all/steel-v64.png new file mode 100644 index 0000000..7cec17f Binary files /dev/null and b/art/generated/textures/all/steel-v64.png differ diff --git a/art/generated/textures/all/stem-128-preview.png b/art/generated/textures/all/stem-128-preview.png new file mode 100644 index 0000000..d641b14 Binary files /dev/null and b/art/generated/textures/all/stem-128-preview.png differ diff --git a/art/generated/textures/all/stem-128.png b/art/generated/textures/all/stem-128.png new file mode 100644 index 0000000..bb5c65e Binary files /dev/null and b/art/generated/textures/all/stem-128.png differ diff --git a/art/generated/textures/all/stem-64-preview.png b/art/generated/textures/all/stem-64-preview.png new file mode 100644 index 0000000..1c0fc4e Binary files /dev/null and b/art/generated/textures/all/stem-64-preview.png differ diff --git a/art/generated/textures/all/stem-64.png b/art/generated/textures/all/stem-64.png new file mode 100644 index 0000000..f22259a Binary files /dev/null and b/art/generated/textures/all/stem-64.png differ diff --git a/art/generated/textures/all/stem-raw.png b/art/generated/textures/all/stem-raw.png new file mode 100644 index 0000000..ae51082 Binary files /dev/null and b/art/generated/textures/all/stem-raw.png differ diff --git a/art/generated/textures/all/stem-v128.png b/art/generated/textures/all/stem-v128.png new file mode 100644 index 0000000..bb5c65e Binary files /dev/null and b/art/generated/textures/all/stem-v128.png differ diff --git a/art/generated/textures/all/stem-v64.png b/art/generated/textures/all/stem-v64.png new file mode 100644 index 0000000..f22259a Binary files /dev/null and b/art/generated/textures/all/stem-v64.png differ diff --git a/art/generated/textures/all/stonebridge-raw.png b/art/generated/textures/all/stonebridge-raw.png new file mode 100644 index 0000000..6bcdece Binary files /dev/null and b/art/generated/textures/all/stonebridge-raw.png differ diff --git a/art/generated/textures/all/stonebridge-v128-preview.png b/art/generated/textures/all/stonebridge-v128-preview.png new file mode 100644 index 0000000..6b1588c Binary files /dev/null and b/art/generated/textures/all/stonebridge-v128-preview.png differ diff --git a/art/generated/textures/all/stonebridge-v128.png b/art/generated/textures/all/stonebridge-v128.png new file mode 100644 index 0000000..0b68b9b Binary files /dev/null and b/art/generated/textures/all/stonebridge-v128.png differ diff --git a/art/generated/textures/all/stonebridge-v64-preview.png b/art/generated/textures/all/stonebridge-v64-preview.png new file mode 100644 index 0000000..4b3e1ea Binary files /dev/null and b/art/generated/textures/all/stonebridge-v64-preview.png differ diff --git a/art/generated/textures/all/stonebridge-v64.png b/art/generated/textures/all/stonebridge-v64.png new file mode 100644 index 0000000..41ff401 Binary files /dev/null and b/art/generated/textures/all/stonebridge-v64.png differ diff --git a/art/generated/textures/all/temple-raw.png b/art/generated/textures/all/temple-raw.png new file mode 100644 index 0000000..92997a9 Binary files /dev/null and b/art/generated/textures/all/temple-raw.png differ diff --git a/art/generated/textures/all/temple-v128-preview.png b/art/generated/textures/all/temple-v128-preview.png new file mode 100644 index 0000000..6a8fa59 Binary files /dev/null and b/art/generated/textures/all/temple-v128-preview.png differ diff --git a/art/generated/textures/all/temple-v128.png b/art/generated/textures/all/temple-v128.png new file mode 100644 index 0000000..c52aeb5 Binary files /dev/null and b/art/generated/textures/all/temple-v128.png differ diff --git a/art/generated/textures/all/temple-v64-preview.png b/art/generated/textures/all/temple-v64-preview.png new file mode 100644 index 0000000..359391e Binary files /dev/null and b/art/generated/textures/all/temple-v64-preview.png differ diff --git a/art/generated/textures/all/temple-v64.png b/art/generated/textures/all/temple-v64.png new file mode 100644 index 0000000..4722d67 Binary files /dev/null and b/art/generated/textures/all/temple-v64.png differ diff --git a/art/generated/textures/all/torture-raw.png b/art/generated/textures/all/torture-raw.png new file mode 100644 index 0000000..1ffdff9 Binary files /dev/null and b/art/generated/textures/all/torture-raw.png differ diff --git a/art/generated/textures/all/torture-v128-preview.png b/art/generated/textures/all/torture-v128-preview.png new file mode 100644 index 0000000..c37b975 Binary files /dev/null and b/art/generated/textures/all/torture-v128-preview.png differ diff --git a/art/generated/textures/all/torture-v128.png b/art/generated/textures/all/torture-v128.png new file mode 100644 index 0000000..14bc94b Binary files /dev/null and b/art/generated/textures/all/torture-v128.png differ diff --git a/art/generated/textures/all/torture-v64-preview.png b/art/generated/textures/all/torture-v64-preview.png new file mode 100644 index 0000000..febab5d Binary files /dev/null and b/art/generated/textures/all/torture-v64-preview.png differ diff --git a/art/generated/textures/all/torture-v64.png b/art/generated/textures/all/torture-v64.png new file mode 100644 index 0000000..b4d00db Binary files /dev/null and b/art/generated/textures/all/torture-v64.png differ diff --git a/art/generated/textures/all/training-raw.png b/art/generated/textures/all/training-raw.png new file mode 100644 index 0000000..44403e9 Binary files /dev/null and b/art/generated/textures/all/training-raw.png differ diff --git a/art/generated/textures/all/training-v128-preview.png b/art/generated/textures/all/training-v128-preview.png new file mode 100644 index 0000000..f920207 Binary files /dev/null and b/art/generated/textures/all/training-v128-preview.png differ diff --git a/art/generated/textures/all/training-v128.png b/art/generated/textures/all/training-v128.png new file mode 100644 index 0000000..8e8ebb0 Binary files /dev/null and b/art/generated/textures/all/training-v128.png differ diff --git a/art/generated/textures/all/training-v64-preview.png b/art/generated/textures/all/training-v64-preview.png new file mode 100644 index 0000000..6ab087b Binary files /dev/null and b/art/generated/textures/all/training-v64-preview.png differ diff --git a/art/generated/textures/all/training-v64.png b/art/generated/textures/all/training-v64.png new file mode 100644 index 0000000..0147f73 Binary files /dev/null and b/art/generated/textures/all/training-v64.png differ diff --git a/art/generated/textures/all/treasury-raw.png b/art/generated/textures/all/treasury-raw.png new file mode 100644 index 0000000..6f57674 Binary files /dev/null and b/art/generated/textures/all/treasury-raw.png differ diff --git a/art/generated/textures/all/treasury-v128-preview.png b/art/generated/textures/all/treasury-v128-preview.png new file mode 100644 index 0000000..97f6081 Binary files /dev/null and b/art/generated/textures/all/treasury-v128-preview.png differ diff --git a/art/generated/textures/all/treasury-v128.png b/art/generated/textures/all/treasury-v128.png new file mode 100644 index 0000000..cc94262 Binary files /dev/null and b/art/generated/textures/all/treasury-v128.png differ diff --git a/art/generated/textures/all/treasury-v64-preview.png b/art/generated/textures/all/treasury-v64-preview.png new file mode 100644 index 0000000..7eb1b17 Binary files /dev/null and b/art/generated/textures/all/treasury-v64-preview.png differ diff --git a/art/generated/textures/all/treasury-v64.png b/art/generated/textures/all/treasury-v64.png new file mode 100644 index 0000000..3b2279b Binary files /dev/null and b/art/generated/textures/all/treasury-v64.png differ diff --git a/assets/textures/hd/aerie-v128.png b/assets/textures/hd/aerie-v128.png new file mode 100644 index 0000000..24347c5 Binary files /dev/null and b/assets/textures/hd/aerie-v128.png differ diff --git a/assets/textures/hd/aerie-v64.png b/assets/textures/hd/aerie-v64.png new file mode 100644 index 0000000..277acc5 Binary files /dev/null and b/assets/textures/hd/aerie-v64.png differ diff --git a/assets/textures/hd/altar-v128.png b/assets/textures/hd/altar-v128.png new file mode 100644 index 0000000..791f7db Binary files /dev/null and b/assets/textures/hd/altar-v128.png differ diff --git a/assets/textures/hd/altar-v64.png b/assets/textures/hd/altar-v64.png new file mode 100644 index 0000000..d1cdfc4 Binary files /dev/null and b/assets/textures/hd/altar-v64.png differ diff --git a/assets/textures/hd/arena-v128.png b/assets/textures/hd/arena-v128.png new file mode 100644 index 0000000..d5fba12 Binary files /dev/null and b/assets/textures/hd/arena-v128.png differ diff --git a/assets/textures/hd/arena-v64.png b/assets/textures/hd/arena-v64.png new file mode 100644 index 0000000..cfc6d53 Binary files /dev/null and b/assets/textures/hd/arena-v64.png differ diff --git a/assets/textures/hd/bark-v128.png b/assets/textures/hd/bark-v128.png new file mode 100644 index 0000000..b12da40 Binary files /dev/null and b/assets/textures/hd/bark-v128.png differ diff --git a/assets/textures/hd/bark-v64.png b/assets/textures/hd/bark-v64.png new file mode 100644 index 0000000..7425a8a Binary files /dev/null and b/assets/textures/hd/bark-v64.png differ diff --git a/assets/textures/hd/bridge-v128.png b/assets/textures/hd/bridge-v128.png new file mode 100644 index 0000000..4977c01 Binary files /dev/null and b/assets/textures/hd/bridge-v128.png differ diff --git a/assets/textures/hd/bridge-v64.png b/assets/textures/hd/bridge-v64.png new file mode 100644 index 0000000..e0dfacc Binary files /dev/null and b/assets/textures/hd/bridge-v64.png differ diff --git a/assets/textures/hd/cap-v128.png b/assets/textures/hd/cap-v128.png new file mode 100644 index 0000000..e5a36f6 Binary files /dev/null and b/assets/textures/hd/cap-v128.png differ diff --git a/assets/textures/hd/cap-v64.png b/assets/textures/hd/cap-v64.png new file mode 100644 index 0000000..aeab73f Binary files /dev/null and b/assets/textures/hd/cap-v64.png differ diff --git a/assets/textures/hd/core-v128.png b/assets/textures/hd/core-v128.png new file mode 100644 index 0000000..388d026 Binary files /dev/null and b/assets/textures/hd/core-v128.png differ diff --git a/assets/textures/hd/core-v64.png b/assets/textures/hd/core-v64.png new file mode 100644 index 0000000..492a360 Binary files /dev/null and b/assets/textures/hd/core-v64.png differ diff --git a/assets/textures/hd/face-v128.png b/assets/textures/hd/face-v128.png new file mode 100644 index 0000000..73fc1f9 Binary files /dev/null and b/assets/textures/hd/face-v128.png differ diff --git a/assets/textures/hd/face-v64.png b/assets/textures/hd/face-v64.png new file mode 100644 index 0000000..8c0a9d6 Binary files /dev/null and b/assets/textures/hd/face-v64.png differ diff --git a/assets/textures/hd/farm-v128.png b/assets/textures/hd/farm-v128.png new file mode 100644 index 0000000..a1e90c0 Binary files /dev/null and b/assets/textures/hd/farm-v128.png differ diff --git a/assets/textures/hd/farm-v64.png b/assets/textures/hd/farm-v64.png new file mode 100644 index 0000000..64e57da Binary files /dev/null and b/assets/textures/hd/farm-v64.png differ diff --git a/assets/textures/hd/forge-v128.png b/assets/textures/hd/forge-v128.png new file mode 100644 index 0000000..0417b45 Binary files /dev/null and b/assets/textures/hd/forge-v128.png differ diff --git a/assets/textures/hd/forge-v64.png b/assets/textures/hd/forge-v64.png new file mode 100644 index 0000000..4c87276 Binary files /dev/null and b/assets/textures/hd/forge-v64.png differ diff --git a/assets/textures/hd/fortwall-v128.png b/assets/textures/hd/fortwall-v128.png new file mode 100644 index 0000000..0b53385 Binary files /dev/null and b/assets/textures/hd/fortwall-v128.png differ diff --git a/assets/textures/hd/fortwall-v64.png b/assets/textures/hd/fortwall-v64.png new file mode 100644 index 0000000..d309d12 Binary files /dev/null and b/assets/textures/hd/fortwall-v64.png differ diff --git a/assets/textures/hd/gate-v128.png b/assets/textures/hd/gate-v128.png new file mode 100644 index 0000000..2dd5b82 Binary files /dev/null and b/assets/textures/hd/gate-v128.png differ diff --git a/assets/textures/hd/gate-v64.png b/assets/textures/hd/gate-v64.png new file mode 100644 index 0000000..6d01a85 Binary files /dev/null and b/assets/textures/hd/gate-v64.png differ diff --git a/assets/textures/hd/grass-v128.png b/assets/textures/hd/grass-v128.png new file mode 100644 index 0000000..43351b2 Binary files /dev/null and b/assets/textures/hd/grass-v128.png differ diff --git a/assets/textures/hd/grass-v64.png b/assets/textures/hd/grass-v64.png new file mode 100644 index 0000000..c959057 Binary files /dev/null and b/assets/textures/hd/grass-v64.png differ diff --git a/assets/textures/hd/graveyard-v128.png b/assets/textures/hd/graveyard-v128.png new file mode 100644 index 0000000..05fef1d Binary files /dev/null and b/assets/textures/hd/graveyard-v128.png differ diff --git a/assets/textures/hd/graveyard-v64.png b/assets/textures/hd/graveyard-v64.png new file mode 100644 index 0000000..fb895a5 Binary files /dev/null and b/assets/textures/hd/graveyard-v64.png differ diff --git a/assets/textures/hd/guardpost-v128.png b/assets/textures/hd/guardpost-v128.png new file mode 100644 index 0000000..e12632c Binary files /dev/null and b/assets/textures/hd/guardpost-v128.png differ diff --git a/assets/textures/hd/guardpost-v64.png b/assets/textures/hd/guardpost-v64.png new file mode 100644 index 0000000..e1a4ebd Binary files /dev/null and b/assets/textures/hd/guardpost-v64.png differ diff --git a/assets/textures/hd/hero-v128.png b/assets/textures/hd/hero-v128.png new file mode 100644 index 0000000..8d8bb3d Binary files /dev/null and b/assets/textures/hd/hero-v128.png differ diff --git a/assets/textures/hd/hero-v64.png b/assets/textures/hd/hero-v64.png new file mode 100644 index 0000000..2879475 Binary files /dev/null and b/assets/textures/hd/hero-v64.png differ diff --git a/assets/textures/hd/lair-v128.png b/assets/textures/hd/lair-v128.png new file mode 100644 index 0000000..3431e1e Binary files /dev/null and b/assets/textures/hd/lair-v128.png differ diff --git a/assets/textures/hd/lair-v64.png b/assets/textures/hd/lair-v64.png new file mode 100644 index 0000000..85e9e39 Binary files /dev/null and b/assets/textures/hd/lair-v64.png differ diff --git a/assets/textures/hd/leaves-v128.png b/assets/textures/hd/leaves-v128.png new file mode 100644 index 0000000..c127c5c Binary files /dev/null and b/assets/textures/hd/leaves-v128.png differ diff --git a/assets/textures/hd/leaves-v64.png b/assets/textures/hd/leaves-v64.png new file mode 100644 index 0000000..349c02a Binary files /dev/null and b/assets/textures/hd/leaves-v64.png differ diff --git a/assets/textures/hd/library-v128.png b/assets/textures/hd/library-v128.png new file mode 100644 index 0000000..b63ac41 Binary files /dev/null and b/assets/textures/hd/library-v128.png differ diff --git a/assets/textures/hd/library-v64.png b/assets/textures/hd/library-v64.png new file mode 100644 index 0000000..1bc38b5 Binary files /dev/null and b/assets/textures/hd/library-v64.png differ diff --git a/assets/textures/hd/moss-v128.png b/assets/textures/hd/moss-v128.png new file mode 100644 index 0000000..7b4ed49 Binary files /dev/null and b/assets/textures/hd/moss-v128.png differ diff --git a/assets/textures/hd/moss-v64.png b/assets/textures/hd/moss-v64.png new file mode 100644 index 0000000..fafdec2 Binary files /dev/null and b/assets/textures/hd/moss-v64.png differ diff --git a/assets/textures/hd/obj-coins-128.png b/assets/textures/hd/obj-coins-128.png new file mode 100644 index 0000000..a952786 Binary files /dev/null and b/assets/textures/hd/obj-coins-128.png differ diff --git a/assets/textures/hd/obj-coins-64.png b/assets/textures/hd/obj-coins-64.png new file mode 100644 index 0000000..26165c3 Binary files /dev/null and b/assets/textures/hd/obj-coins-64.png differ diff --git a/assets/textures/hd/obj-diamond-128.png b/assets/textures/hd/obj-diamond-128.png new file mode 100644 index 0000000..e55ea08 Binary files /dev/null and b/assets/textures/hd/obj-diamond-128.png differ diff --git a/assets/textures/hd/obj-diamond-64.png b/assets/textures/hd/obj-diamond-64.png new file mode 100644 index 0000000..6c4cf4c Binary files /dev/null and b/assets/textures/hd/obj-diamond-64.png differ diff --git a/assets/textures/hd/obj-mushroom-128.png b/assets/textures/hd/obj-mushroom-128.png new file mode 100644 index 0000000..51345a1 Binary files /dev/null and b/assets/textures/hd/obj-mushroom-128.png differ diff --git a/assets/textures/hd/obj-mushroom-64.png b/assets/textures/hd/obj-mushroom-64.png new file mode 100644 index 0000000..ad63498 Binary files /dev/null and b/assets/textures/hd/obj-mushroom-64.png differ diff --git a/assets/textures/hd/obj-ruby-128.png b/assets/textures/hd/obj-ruby-128.png new file mode 100644 index 0000000..7ad0c3b Binary files /dev/null and b/assets/textures/hd/obj-ruby-128.png differ diff --git a/assets/textures/hd/obj-ruby-64.png b/assets/textures/hd/obj-ruby-64.png new file mode 100644 index 0000000..69c2074 Binary files /dev/null and b/assets/textures/hd/obj-ruby-64.png differ diff --git a/assets/textures/hd/obj-shard-128.png b/assets/textures/hd/obj-shard-128.png new file mode 100644 index 0000000..0526afe Binary files /dev/null and b/assets/textures/hd/obj-shard-128.png differ diff --git a/assets/textures/hd/obj-shard-64.png b/assets/textures/hd/obj-shard-64.png new file mode 100644 index 0000000..bec1a6e Binary files /dev/null and b/assets/textures/hd/obj-shard-64.png differ diff --git a/assets/textures/hd/obj-silver-128.png b/assets/textures/hd/obj-silver-128.png new file mode 100644 index 0000000..098920c Binary files /dev/null and b/assets/textures/hd/obj-silver-128.png differ diff --git a/assets/textures/hd/obj-silver-64.png b/assets/textures/hd/obj-silver-64.png new file mode 100644 index 0000000..ef3732a Binary files /dev/null and b/assets/textures/hd/obj-silver-64.png differ diff --git a/assets/textures/hd/obsidian-v128.png b/assets/textures/hd/obsidian-v128.png new file mode 100644 index 0000000..2090683 Binary files /dev/null and b/assets/textures/hd/obsidian-v128.png differ diff --git a/assets/textures/hd/obsidian-v64.png b/assets/textures/hd/obsidian-v64.png new file mode 100644 index 0000000..654aad5 Binary files /dev/null and b/assets/textures/hd/obsidian-v64.png differ diff --git a/assets/textures/hd/portal-v128.png b/assets/textures/hd/portal-v128.png new file mode 100644 index 0000000..ad16ed3 Binary files /dev/null and b/assets/textures/hd/portal-v128.png differ diff --git a/assets/textures/hd/portal-v64.png b/assets/textures/hd/portal-v64.png new file mode 100644 index 0000000..bf6d11c Binary files /dev/null and b/assets/textures/hd/portal-v64.png differ diff --git a/assets/textures/hd/prison-v128.png b/assets/textures/hd/prison-v128.png new file mode 100644 index 0000000..fed8b3d Binary files /dev/null and b/assets/textures/hd/prison-v128.png differ diff --git a/assets/textures/hd/prison-v64.png b/assets/textures/hd/prison-v64.png new file mode 100644 index 0000000..cd99864 Binary files /dev/null and b/assets/textures/hd/prison-v64.png differ diff --git a/assets/textures/hd/snow-v128.png b/assets/textures/hd/snow-v128.png new file mode 100644 index 0000000..28c1340 Binary files /dev/null and b/assets/textures/hd/snow-v128.png differ diff --git a/assets/textures/hd/snow-v64.png b/assets/textures/hd/snow-v64.png new file mode 100644 index 0000000..4410441 Binary files /dev/null and b/assets/textures/hd/snow-v64.png differ diff --git a/assets/textures/hd/steel-v128.png b/assets/textures/hd/steel-v128.png new file mode 100644 index 0000000..3d0c96f Binary files /dev/null and b/assets/textures/hd/steel-v128.png differ diff --git a/assets/textures/hd/steel-v64.png b/assets/textures/hd/steel-v64.png new file mode 100644 index 0000000..7cec17f Binary files /dev/null and b/assets/textures/hd/steel-v64.png differ diff --git a/assets/textures/hd/stem-v128.png b/assets/textures/hd/stem-v128.png new file mode 100644 index 0000000..bb5c65e Binary files /dev/null and b/assets/textures/hd/stem-v128.png differ diff --git a/assets/textures/hd/stem-v64.png b/assets/textures/hd/stem-v64.png new file mode 100644 index 0000000..f22259a Binary files /dev/null and b/assets/textures/hd/stem-v64.png differ diff --git a/assets/textures/hd/stonebridge-v128.png b/assets/textures/hd/stonebridge-v128.png new file mode 100644 index 0000000..0b68b9b Binary files /dev/null and b/assets/textures/hd/stonebridge-v128.png differ diff --git a/assets/textures/hd/stonebridge-v64.png b/assets/textures/hd/stonebridge-v64.png new file mode 100644 index 0000000..41ff401 Binary files /dev/null and b/assets/textures/hd/stonebridge-v64.png differ diff --git a/assets/textures/hd/temple-v128.png b/assets/textures/hd/temple-v128.png new file mode 100644 index 0000000..c52aeb5 Binary files /dev/null and b/assets/textures/hd/temple-v128.png differ diff --git a/assets/textures/hd/temple-v64.png b/assets/textures/hd/temple-v64.png new file mode 100644 index 0000000..4722d67 Binary files /dev/null and b/assets/textures/hd/temple-v64.png differ diff --git a/assets/textures/hd/torture-v128.png b/assets/textures/hd/torture-v128.png new file mode 100644 index 0000000..14bc94b Binary files /dev/null and b/assets/textures/hd/torture-v128.png differ diff --git a/assets/textures/hd/torture-v64.png b/assets/textures/hd/torture-v64.png new file mode 100644 index 0000000..b4d00db Binary files /dev/null and b/assets/textures/hd/torture-v64.png differ diff --git a/assets/textures/hd/training-v128.png b/assets/textures/hd/training-v128.png new file mode 100644 index 0000000..8e8ebb0 Binary files /dev/null and b/assets/textures/hd/training-v128.png differ diff --git a/assets/textures/hd/training-v64.png b/assets/textures/hd/training-v64.png new file mode 100644 index 0000000..0147f73 Binary files /dev/null and b/assets/textures/hd/training-v64.png differ diff --git a/assets/textures/hd/treasury-v128.png b/assets/textures/hd/treasury-v128.png new file mode 100644 index 0000000..cc94262 Binary files /dev/null and b/assets/textures/hd/treasury-v128.png differ diff --git a/assets/textures/hd/treasury-v64.png b/assets/textures/hd/treasury-v64.png new file mode 100644 index 0000000..3b2279b Binary files /dev/null and b/assets/textures/hd/treasury-v64.png differ diff --git a/assets/textures/reinforced-v128.png b/assets/textures/reinforced-v128.png index b524996..3befb0b 100644 Binary files a/assets/textures/reinforced-v128.png and b/assets/textures/reinforced-v128.png differ diff --git a/assets/textures/reinforced-v64.png b/assets/textures/reinforced-v64.png index 5e27982..0143fb4 100644 Binary files a/assets/textures/reinforced-v64.png and b/assets/textures/reinforced-v64.png differ diff --git a/src/gfx.rs b/src/gfx.rs index b3584fb..d5a37d9 100644 --- a/src/gfx.rs +++ b/src/gfx.rs @@ -357,11 +357,66 @@ const HD_TILES: [(u32, u32, &[u8], &[u8]); 2] = [ // 128x128 ones, weights) pub const T_HDSET: u32 = 224; -// the floor decals (wear and tear laid over plain floors) in the high-res style: transparent -// pictures for their cells (cell, 64x64, 128x128) -const HD_DECALS: [(u32, &[u8], &[u8]); 2] = [ +// the decals (wear and tear laid over plain floors) and the upright objects (treasury heaps, +// mushrooms, the core shard) in the high-res style: transparent pictures for their cells +// (cell, 64x64, 128x128) +macro_rules! hd_obj { + ($id:expr, $name:literal) => { + ($id, include_bytes!(concat!("../assets/textures/hd/obj-", $name, "-64.png")), include_bytes!(concat!("../assets/textures/hd/obj-", $name, "-128.png"))) + }; +} +const HD_DECALS: [(u32, &[u8], &[u8]); 8] = [ (D_RUBBLE, include_bytes!("../assets/textures/decal-rubble.png"), include_bytes!("../assets/textures/decal-rubble-128.png")), (D_CRACK, include_bytes!("../assets/textures/decal-crack.png"), include_bytes!("../assets/textures/decal-crack-128.png")), + hd_obj!(D_COINS, "coins"), + hd_obj!(D_SILVER, "silver"), + hd_obj!(D_RUBY, "ruby"), + hd_obj!(D_DIAMOND, "diamond"), + hd_obj!(D_MUSHROOM, "mushroom"), + hd_obj!(D_SHARD, "shard"), +]; + +// Everything else in the world (see art/generated/textures/all/): a kind's own cells get as many +// variants as it has cells, tiles that fit together in any order (one seamless border, different +// middles), and a tile picks one by its position. (first cell, cells, 64x64 tiles side by side, +// 128x128 ones) +macro_rules! hd_var { + ($id:expr, $n:expr, $name:literal) => { + ($id, $n, include_bytes!(concat!("../assets/textures/hd/", $name, "-v64.png")), include_bytes!(concat!("../assets/textures/hd/", $name, "-v128.png"))) + }; +} +const HD_VARS: [(u32, u32, &[u8], &[u8]); 31] = [ + hd_var!(T_FORTWALL, 4, "fortwall"), + hd_var!(T_STEEL, 4, "steel"), + hd_var!(T_OBSIDIAN, 4, "obsidian"), + hd_var!(T_FACE_EARTH, 1, "face"), + hd_var!(T_TREASURY, 4, "treasury"), + hd_var!(T_LAIR, 4, "lair"), + hd_var!(T_FARM, 4, "farm"), + hd_var!(T_TRAINING, 4, "training"), + hd_var!(T_LIBRARY, 4, "library"), + hd_var!(T_TORTURE, 4, "torture"), + hd_var!(T_TEMPLE, 4, "temple"), + hd_var!(T_PRISON, 4, "prison"), + hd_var!(T_GRAVEYARD, 4, "graveyard"), + hd_var!(T_GUARDPOST, 4, "guardpost"), + hd_var!(T_ARENA, 4, "arena"), + hd_var!(T_ALTAR, 4, "altar"), + hd_var!(T_FORGE, 4, "forge"), + hd_var!(T_AERIE, 4, "aerie"), + hd_var!(T_COREFLOOR, 4, "core"), + hd_var!(T_PORTALFLOOR, 4, "portal"), + hd_var!(T_GATEFLOOR, 4, "gate"), + hd_var!(T_HEROFLOOR, 4, "hero"), + hd_var!(T_BRIDGE, 2, "bridge"), + hd_var!(T_STONEBRIDGE, 2, "stonebridge"), + hd_var!(T_GRASS, 4, "grass"), + hd_var!(T_SNOW, 4, "snow"), + hd_var!(T_MOSS, 4, "moss"), + hd_var!(T_LEAVES, 2, "leaves"), + hd_var!(T_BARK, 1, "bark"), + hd_var!(T_STEM, 1, "stem"), + hd_var!(T_CAP, 1, "cap"), ]; const HD_SETS: [(u32, u32, u32, &[u8], &[u8], [u32; 5]); 12] = [ (T_CLAIM, 4, T_HDSET, include_bytes!("../assets/textures/floor-player.png"), include_bytes!("../assets/textures/floor-player-128.png"), [1; 5]), @@ -392,6 +447,11 @@ pub fn hd_tile(id: u32, x: i32, z: i32) -> u32 { r -= wk; } } + if let Some(&(base, n, _, _)) = HD_VARS.iter().find(|&&(base, n, _, _)| (base..base + n).contains(&id)) { + let h = (x as u32).wrapping_mul(2_654_435_761) ^ (z as u32).wrapping_mul(40_503); + let h = (h ^ (h >> 15)).wrapping_mul(0x2c1b_3c6d); + return base + (h >> 9) % n; + } match HD_TILES.iter().find(|&&(base, n, _, _)| (base..base + n).contains(&id)) { Some(&(base, 4, _, _)) => base + (x & 1) as u32 + (z & 1) as u32 * 2, _ => id, @@ -434,6 +494,18 @@ fn gen_hd_atlas(tile: u32) -> Image { } } } + for &(base, n, png, png2) in HD_VARS.iter() { + let src = Image::from_file_with_format(if tile == HD_TILE2 { png2 } else { png }, Some(ImageFormat::Png)).expect("hd variants"); + for v in 0..n { + let id = base + v; + let (ox, oy) = ((id % ATLAS_COLS) * tile, (id / ATLAS_COLS) * tile); + for y in 0..tile { + for x in 0..tile { + img.set_pixel(ox + x, oy + y, src.get_pixel(v * tile + x, y)); + } + } + } + } for &(id, png, png2) in HD_DECALS.iter() { let src = Image::from_file_with_format(if tile == HD_TILE2 { png2 } else { png }, Some(ImageFormat::Png)).expect("hd decal"); let (ox, oy) = ((id % ATLAS_COLS) * tile, (id / ATLAS_COLS) * tile); @@ -653,41 +725,47 @@ fn gen_atlas() -> Image { }); // reinforced walls: masonry in dark stone with the player's red mortar for v in 0..4u32 { - // reinforced wall: roughly hewn grey stones of different sizes (a jittered grid of - // stone centres, their borders the mortar; wrapped, so the cell is seamless), dark mortar - // with a crimson tint, the upper rim of every stone lit, the lower rim in shadow + // reinforced wall: a castle wall of roughly squared grey blocks in regular courses (three + // courses of 6, 5 and 5 pixels, every course cut into blocks of 5-9 pixels at its own places; + // wrapped, so the cell is seamless), dark mortar with a crimson tint, the top of every + // block lit, its bottom in shadow, now and then a chipped corner cv.cell(T_REINF + v, |x, y| { - // (distance to the nearest centre, to the second nearest, the nearest stone, its centre's y) - let mut best = (99.0f32, 99.0f32, 0i32, 0.0f32); - for gy in 0..3 { - for gx in 0..3 { - let cx = gx as f32 * 5.33 + 1.0 + (hash(gx, gy, v + 95) % 4) as f32; - let cy = gy as f32 * 5.33 + 1.0 + (hash(gy, gx, v + 96) % 4) as f32; - for wx in [-16.0f32, 0.0, 16.0] { - for wy in [-16.0f32, 0.0, 16.0] { - // stones a little wider than high, like coursed rubble - let (dx, dy) = ((x as f32 + 0.5 - cx - wx) * 0.8, y as f32 + 0.5 - cy - wy); - let d = (dx * dx + dy * dy).sqrt(); - if d < best.0 { - best = (d, best.0, gy * 3 + gx, cy + wy); - } else if d < best.1 { - best.1 = d; - } - } - } + let (row, ry, rh) = match y { + 0..=5 => (0, y, 6), + 6..=10 => (1, y - 6, 5), + _ => (2, y - 11, 5), + }; + // the course's cuts: from an offset on, blocks of 5-9 pixels around the cell + let off = (hash(row, 1, v + 95) % 6) as i32; + let mut cuts = vec![off]; + let mut c = off; + let mut k = 0; + loop { + c += 5 + (hash(row, k, v + 96) % 5) as i32; + k += 1; + if c > off + 16 - 4 { + break; } + cuts.push(c); } - let (d1, d2, id, cy) = best; - if d2 - d1 < 0.9 { - return Some(shade((44, 30, 34), (rnd(x, y, v + 97) * 8.0) as i32)); + let xs = (x - off).rem_euclid(16) + off; + let block = cuts.iter().filter(|&&q| q <= xs).count() as i32; + let start = cuts[(block - 1).max(0) as usize]; + let end = cuts.get(block as usize).copied().unwrap_or(off + 16); + let mortar = ry == rh - 1 || xs == end - 1; + let chip = (xs == start || xs == end - 2) && (ry == 0 || ry == rh - 2) && hash(row * 7 + block, ry, v + 97) % 4 == 0; + if mortar || chip { + return Some(shade((46, 30, 34), (rnd(x, y, v + 98) * 8.0) as i32)); } - let tone = (hash(id, 7, v + 98) % 5) as i32 * 5 - 10; - let rim = if d2 - d1 < 2.0 { - if (y as f32 + 0.5) < cy { 14 } else { -14 } + let tone = (hash(row * 11 + block, 3, v + 99) % 5) as i32 * 5 - 10; + let face = if ry == 0 { + 12 + } else if ry == rh - 2 { + -8 } else { 0 }; - Some(shade((92, 90, 96), tone + rim + (rnd(x, y, v + 99) * 10.0) as i32 - 5)) + Some(shade((92, 90, 96), tone + face + (rnd(x, y, v + 100) * 10.0) as i32 - 5)) }); // torture chamber: dark stones with rusty iron grates cv.cell(T_TORTURE + v, |x, y| { @@ -2800,7 +2878,7 @@ mod hd_atlas_tests { (p.r, p.g, p.b, p.a) }; // a cell without an own texture: the 16x16 one scaled up - let (cx, cy) = ((T_TREASURY % ATLAS_COLS) * 16, (T_TREASURY / ATLAS_COLS) * 16); + let (cx, cy) = ((T_PUMPKIN % ATLAS_COLS) * 16, (T_PUMPKIN / ATLAS_COLS) * 16); for (x, y) in [(0, 0), (5, 9), (15, 15)] { assert_eq!(px(&hd, (cx + x) * k + 2, (cy + y) * k + 1), px(&small, cx + x, cy + y)); } @@ -2828,6 +2906,18 @@ mod hd_atlas_tests { } } } + // the variants: as many tiles as the kind has cells, every cell filled + for &(base, n, png, png2) in HD_VARS.iter() { + for tile in [HD_TILE, HD_TILE2] { + let src = Image::from_file_with_format(if tile == HD_TILE2 { png2 } else { png }, Some(ImageFormat::Png)).unwrap(); + assert_eq!((src.width as u32, src.height as u32), (n * tile, tile), "cell {base}"); + } + for z in 0..8 { + for x in 0..8 { + assert!((base..base + n).contains(&hd_tile(base, x, z))); + } + } + } // the decals: transparent around their pictures for &(id, _, _) in HD_DECALS.iter() { for tile in [HD_TILE, HD_TILE2] { @@ -2854,7 +2944,7 @@ mod hd_atlas_tests { // the liquids: four variants by position; others stay assert_eq!(hd_tile(T_WATER + 3, 0, 0), T_WATER); assert_eq!(hd_tile(T_LAVA, 1, 1), T_LAVA + 3); - assert_eq!(hd_tile(T_TREASURY + 2, 1, 0), T_TREASURY + 2); + assert_eq!(hd_tile(T_PUMPKIN + 2, 1, 0), T_PUMPKIN + 2); } } diff --git a/tools/make_decal.py b/tools/make_decal.py index 503bdef..875de93 100644 --- a/tools/make_decal.py +++ b/tools/make_decal.py @@ -6,7 +6,8 @@ alpha made hard (pixels are either there or not, like the rest of the pixel art) Usage: make_decal.py raw.png out_prefix --size 128 [--gray] ---gray neutral grey (a dark crack whose lines took on the magenta of the background) +--gray neutral grey (a dark crack whose lines took on the magenta of the background) +--strict key out only nearly pure magenta (for pink or red pictures) Writes out_prefix-.png and out_prefix--preview.png (on a grey floor, scaled up 3x). Needs Pillow. @@ -22,6 +23,7 @@ def main(): ap.add_argument("out") ap.add_argument("--size", type=int, default=128) ap.add_argument("--gray", action="store_true") + ap.add_argument("--strict", action="store_true") a = ap.parse_args() img = Image.open(a.raw).convert("RGBA") @@ -29,7 +31,7 @@ def main(): for y in range(img.height): for x in range(img.width): r, g, b, _ = px[x, y] - if r > g + 40 and b > g + 40: + if (r > 200 and b > 200 and g < 90) if a.strict else (r > g + 40 and b > g + 40): px[x, y] = (0, 0, 0, 0) # premultiplied scaling: transparent pixels add nothing to the colour small = img.resize((a.size, a.size), Image.BOX)