Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 15 additions & 3 deletions ASSET_CREDITS.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,16 @@ This record complements [`LICENSE`](LICENSE) and [`LICENSE-ASSETS.md`](LICENSE-A
| --- | --- | --- |
| Jesse Schramm | Extinguished-torch textures | Included |
| Xefensor | Gameplay screenshots dated 2026-07-18 | Repository documentation |
| Xefensor, with drawing instruction and review from Codex | Hand-drawn Aender Sand texture created in Krita | Original replacement included; 2026-08-14 |
| OpenAI image generation, directed and processed by Codex | Aender wood-family placeholder textures: planks, stripped log, sapling, door, trapdoor, signs, boats, and derived model atlases | AI-generated placeholder; 2026-07-22 |
| OpenAI image generation, directed and processed by Codex | Aender Chronolith block and Aender Eye/Gale Core spawn-egg placeholder textures | AI-generated placeholder; 2026-07-22 |
| OpenAI image generation, directed and processed by Codex | Experimental Aender Desert placeholder textures: Aender sand, sandstone, and cactus | AI-generated placeholder; 2026-07-22 |
| OpenAI image generation, directed and processed by Codex | Experimental Aender Desert placeholder textures: Aender sand, sandstone, and cactus | AI-generated placeholders; Aender Sand superseded on 2026-08-14 |
| OpenAI image generation, directed and processed by Codex | Aenderite Ore, Raw Aenderite, and Aenderite Ingot placeholder textures | AI-generated placeholder; 2026-07-22 |
| Future original artists | Final replacements for provisional Aender and other development assets | To be credited when work is accepted |

## Provisional And Generated Assets

The current Aender visuals include AI-generated textures and other provisional development assets. They exist to test terrain, lighting, blocks, portals, and gameplay while original artwork is developed.
The current Aender visuals include AI-generated textures and other provisional development assets. They exist to test terrain, lighting, blocks, portals, and gameplay while original artwork is developed. Aender Sand is the first accepted hand-drawn replacement for one of these generated textures.

These assets are explicitly **placeholders** and do not represent the intended final visual identity. Placeholder status does not grant permission to extract or reuse them; the asset license still applies.

Expand All @@ -26,10 +27,21 @@ The Aender wood-family placeholders were generated specifically for Retold from

The Aender Chronolith and spawn-egg placeholders were generated specifically for Retold from prompts describing original purple time-rune stone, a green-eyed Aender egg, and a pale cyan/gold Gale Core egg. Mechanical post-processing removed chroma-key backgrounds and reduced the sources to 16x16 game textures. No Minecraft texture pixels were used in these files.

The experimental Aender Desert placeholders were generated specifically for Retold from prompts describing original deep denim energy sand, medium periwinkle layered sandstone with a separate smoother top face, and lavender ribbed cactus material. Mechanical post-processing reduced the generated material sources to 16x16 game textures and derived the cactus top from the original generated cactus material. Developer-provided inverted-desert screenshots were used only as color, mood, and block-face-layout references; no pixels from them or from Minecraft textures were included.
The experimental Aender Desert placeholders were generated specifically for Retold from prompts describing original deep denim energy sand, medium periwinkle layered sandstone with a separate smoother top face, and lavender ribbed cactus material. Mechanical post-processing reduced the generated material sources to 16x16 game textures and derived the cactus top from the original generated cactus material. Developer-provided inverted-desert screenshots were used only as color, mood, and block-face-layout references; no pixels from them or from Minecraft textures were included. The generated Aender Sand texture is retained only in Git history: Xefensor replaced the active file with an original hand-drawn Krita texture on 2026-08-14.

The Aenderite placeholders were generated specifically for Retold from prompts describing muted mint-green and deep teal mineral chips, a raw mineral lump, and a refined ingot. Mechanical post-processing removed chroma-key backgrounds and reduced the item sources to 16x16. The ore pattern was rebuilt as original pixel clusters over Retold's existing animated Aender Stone base and repeated across all animation frames. A developer-provided End Portal Frame image was used only as a green-palette reference; no pixels or frame geometry from that image or from Minecraft textures were included.

## AI Texture Audit

The active PNG textures explicitly credited as OpenAI-generated were audited against their introduction commits on 2026-08-14. Companion JSON and `.mcmeta` files are implementation metadata and are not counted as creative textures. Of the 24 credited generated PNGs, 23 remain active AI-generated placeholders and one has been replaced:

| Batch | Active AI-generated placeholder files | Replacement status |
| --- | --- | --- |
| Aender wood family | `block/aender_door_bottom.png`, `block/aender_door_top.png`, `block/aender_hanging_sign.png`, `block/aender_planks.png`, `block/aender_sapling.png`, `block/aender_sign.png`, `block/aender_trapdoor.png`, `block/stripped_aender_log.png`, `block/stripped_aender_log_top.png`, `entity/boat/aender.png`, `entity/chest_boat/aender.png`, `item/aender_boat.png`, `item/aender_chest_boat.png` | 13 placeholders remain |
| Chronolith and spawn eggs | `block/aender_chronolith.png`, `item/aender_eye_spawn_egg.png`, `item/gale_core_spawn_egg.png` | 3 placeholders remain |
| Aender Desert | `block/aender_cactus_side.png`, `block/aender_cactus_top.png`, `block/aender_sandstone.png`, `block/aender_sandstone_top.png` | The generated `block/aender_sand.png` was replaced by Xefensor's hand-drawn texture; 4 placeholders remain |
| Aenderite | `block/aenderite_ore.png`, `item/raw_aenderite.png`, `item/aenderite_ingot.png` | 3 placeholders remain |

## Third-Party Material

Minecraft, NeoForge, and other third-party names, APIs, templates, or materials remain subject to their own terms. NeoForge MDK template files identified by `TEMPLATE_LICENSE.txt` retain that license.
Expand Down
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,23 +18,28 @@ Each release should be readable in two passes:
- Mending can no longer be newly generated by Librarian trades or random loot. Existing Mending items continue to function, and commands and Creative mode retain the enchantment.
- Unenchanted Diamond tools and Spears now have only 64 durability, while unenchanted Diamond armor has leather-like 6x durability. Diamond Horse and Nautilus Armor now use 96 durability before enchanting and 528 afterward, and lose durability from real hits like other armor. Any enchantment—including a curse by itself—immediately restores full Diamond durability; removing every enchantment makes the item fragile again. A heavily damaged item stripped beyond that fragile limit retains one final use instead of becoming invalid immediately.
- Wolf Armor and every Horse and Nautilus Armor material can now be enchanted with the same enchantment pool as a Chestplate. Each uses the enchanting value of its own armor material. Protection enchantments now affect damage absorbed by Wolf Armor as well as ordinary animal health damage; Fire Protection also retains its normal shorter-burning effect.
- Replaced the AI-generated Aender Sand placeholder with Xefensor's original hand-drawn texture.
- Natural Aender grass, soil, stone, and sand now use deterministic per-block texture variants matching their vanilla counterparts, reducing obvious repeated terrain patterns.
- The End no longer produces its periodic celestial flashes, temporary brightness pulses, or delayed flash sounds. Retold's generated End sky remains unchanged.
- Trial Chambers, Ancient Cities, and the Deep Dark no longer generate in newly explored terrain. Their blocks, items, mobs, biomes, and already-generated content remain available.
- Ruined Nether portals no longer generate with loot chests.
- Unknown enchantments on items and enchanted books now show only their three-glyph SGA inscription and level. After a player learns a spell by successfully transferring it from a book, its ordinary readable name returns and the SGA word remains directly below it. Multi-enchanted items reveal each spell independently.
- The enchanting table now replaces random bookshelf-powered offers with deterministic spell writing. Insert an item and three lapis, enter three SGA glyphs, choose level I-V, and write the enchantment for five experience levels per requested enchantment level. The editor supports physical A-Z, Backspace, number-row/keypad 1-5, and Enter controls, with duplicate submission blocked while a cast is pending. Invalid or incompatible attempts consume nothing and share one low-note/red-highlight rejection cue without revealing why they failed. Learned table-eligible spells appear in a paginated item-aware list with maximum levels, can refill their glyph word, and disable unsupported levels. A successful cast clears the inscription and briefly highlights the changed item; successfully deducing a new valid word teaches it.
- Refined the villager recipe-teaching interface with a dedicated emerald-toned panel, consistent spacing, a centered teaching slot, wrapped status and guidance text, aligned cost and action controls, and clear ready/success/rejection highlights. Enter or keypad Enter can activate an available lesson, successful teaching plays a Villager confirmation sound, and rejected stale requests play the Villager refusal sound.
- Fixed standing tamed Wolves failing to defend an attacked owner or attack a mob their owner hit. Owner defense now overrides an ordinary food or skeleton target while retaining vanilla sitting, ally, PvP, and Creeper exclusions.

### Technical

- Added the 48-durability Flint Multi-tool, Flint Spear, and provisional Steel material with data-driven mining, repair, common-ingot, Spear, enchantment-family, and armor tags. A global loot modifier supplies scaled Sticks from leaves and woody bushes, and placed-feature overrides reduce both ordinary and Dripstone Copper attempts from sixteen to six per chunk. Data-driven chest and Villager-trade overrides enforce fixed acquisition tiers without per-player state, while enchantment tags remove Mending from new trade/random-loot generation. Exact Wooden/Stone recipes are removed during recipe loading; Armorer, Toolsmith, and Weaponsmith lessons follow the material ladder. Focused GameTests cover scaled Stick supply, acquisition tables and prices, Mending source removal, reduced Copper placement, Campfire behavior, harvest tiers, Spear/starter/equipment crafting, station processing, and Furnace availability.
- Added tag-driven dynamic Diamond durability through a narrow `ItemStack.getMaxDamage` hook and a named progression policy. Diamond Horse and Nautilus Armor receive a 528-durability component and server-side BODY-slot wear from non-bypassing hits. Focused coverage enumerates all twelve enchantable Diamond items and verifies fragile values, enchantment restoration, removal regression, real animal-armor wear, vanilla-tag preservation, and the over-damaged stripped-item safeguard.
- Added data-driven Chestplate enchantment compatibility and material-matched enchantability components for all twelve vanilla animal armors. A Wolf-specific incoming-damage bridge applies vanilla enchantment protection before Wolf Armor's special durability-absorption path bypasses ordinary living-entity mitigation. Focused coverage verifies every supported-enchantment set plus equipped Protection-family mitigation, Fire Protection burn duration, Thorns, Unbreaking, Mending, Binding, and Vanishing behavior across Wolf, Horse, and Nautilus armor paths.
- Added vanilla-style randomized Y rotations for Aender Grass, Aender Soil, and Aender Sand, plus normal and mirrored model variants for Aender Stone. Directional, crafted, and natural blocks whose vanilla counterparts keep a fixed model remain unchanged.
- Added a client-only vanilla-End hook that clears `EndFlashState` after level construction, suppressing all flash rendering, lightmap, and sound paths while preserving the End skybox and leaving other End-style dimensions untouched.
- Replaced the vanilla Trial Chamber and Ancient City biome tags with empty tags so the structures remain registered but have no eligible generation biomes. A narrow Overworld biome-builder hook omits the Deep Dark mapping from the default climate preset without unregistering the biome. Added focused GameTest coverage for each boundary.
- Added a ruined-portal placement processor that omits template chests without affecting chests or other containers elsewhere, with focused GameTest coverage.
- Added the first Retold enchanting-learning route: completing an anvil operation with an enchanted book now records every book enchantment that actually transferred to or improved the output. Multi-enchantment books update persisted per-player knowledge in one synchronized transaction; incompatible and unchanged enchantments remain unknown. All 43 currently registered enchantments now have unique three-concept words drawn from a fixed 26-concept SGA vocabulary. The validated datapack spell catalog synchronizes to clients on join and reload, while both client catalog and knowledge snapshots clear on disconnect. A client tooltip transformer preserves unrelated and unmapped lines while applying knowledge-aware SGA presentation. Added a server-authoritative table request/menu transaction with active-container validation, atomic costs, vanilla enchantment eligibility/compatibility, plain-book conversion, synchronized item/lapis slots, and successful-cast learning. Vanilla random offer buttons and bookshelf power are disabled; anvil results and costs remain unchanged.
- Replaced the teaching panel's disabled-button backdrop with code-rendered panel and slot surfaces. Preview text now remains as translatable components across the version-2 network protocol, and explicit server outcomes drive client feedback. Client and server duplicate guards prevent repeated payment, learning, or Villager XP from rapid requests; focused GameTests cover transaction edge cases and payload round trips. Fixed a client crash caused by trying to inject into `MerchantScreen`'s inherited `containerTick` method; the feedback timer now uses a valid override.
- Added explicit `OWNER_DEFENSE` combat-target ownership and five-second owner interaction memory to the controlled predator combat path. The focused Wolf GameTest covers real mob damage to the owner, owner-selected targets, and replacement of lower-priority combat ownership.

## 0.4.0 - 2026-08-05

Expand Down
1 change: 1 addition & 0 deletions docs/internal/design_implementation_status.md
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,7 @@ Largest missing or partial design areas:
| Design item | Status | Current implementation |
| --- | --- | --- |
| Living reactive mobs | Partial / broad | Full Retold AI system exists; see AI doc. |
| Tamed predators defend their owner | Implemented / needs in-game verification | `RetoldControlledCombatEvents` now reads both recent owner-attacker and owner-attacked memories before continuing lower-priority combat. A standing tamed Wolf uses explicit `OWNER_DEFENSE` target ownership, which remains protected from hunger cleanup and bypasses territorial warning like direct violence. Vanilla sitting, owner/allied-tame, PvP, Armor Stand, Ghast, and Creeper exclusions remain intact through `isOrderedToSit`, `wantsToAttack`, and the global target policy. The exact Wolf GameTest covers real damage to the owner, the owner selecting a target, and owner defense replacing ordinary combat; natural pursuit and multiplayer remain unverified. |
| Passive mobs flee damage sources | Implemented / developer in-game verified | `RetoldControlledFleeEvents` now immediately gives its shared land-prey and fish set remembered `FLEE` movement after every successful health-damaging hit. Causing entities cover Zombie/player/melee attacks, direct source positions cover projectiles and explosions, and source-less environmental damage uses a random panic direction. Predators, defenders, and species with specialized danger owners retain those behaviors. An integrated GameTest covers Zombie, player, environmental, aquatic, and Wolf non-regression cases; the per-mob danger phase now inflicts real damage on shared-flee profiles. The developer reported the ordered natural passive-flee acceptance pass works on 2026-08-03. Dedicated-server, multiplayer, profiler, existing-world, and exhaustive every-species verification remain unconfirmed. |
| Mobs interact with each other, not only player | Partial | Factions, predator/prey, herd panic, pack behavior, assist systems. |
| Herd and school ecology | Partial / implemented core, developer in-game verified | `RetoldAnimalSocialGroups` now gives Cows and Mooshrooms one bovine range group, retains the mixed equine and llama groups, and keeps other ordinary land herds species-specific. Cod, Salmon, Tropical Fish, and Pufferfish use data-driven `AQUATIC_SCHOOL` profiles; isolated members acquire low-priority `AQUATIC_SCHOOL`/`REGROUP` ownership, use cached exact-species scans, and require a real reachable aquatic path toward the school center. Squid and Glow Squid use `LOOSE_AQUATIC_GROUP` profiles and share successful-damage panic only with their exact species through one bounded cached broadcast plus the existing receiver-side fallback. GameTests cover group compatibility and a persisted mixed bovine range, exact-species fish routing, cross-species exclusion, and Squid/Glow Squid panic isolation. On 2026-08-03, the developer reported that the ordered natural acceptance pass works, including the land-group boundaries, exact-species schools, mixed-fish panic, exact-species Squid panic, bucketed fish, crowding, vertical water obstacles, and route recovery. This does not establish multiplayer, dedicated-server, long-session, or existing-world behavior. Fish diets, seagrass/kelp consumption, Squid hunger, migration, and the player-defined domesticated enclosure/range mechanism remain unspecified or unimplemented and must not be inferred from these profiles. |
Expand Down
Loading