Phase 6: Pokémon machines (five cores, shells as data)
Adrian (2026-10-31): a Large Furnace where a Fire Pokémon heats real furnaces (hoppers in and out), our own Electric generator, no upkeep; then a drop synthesizer (FE into full drop rolls, looting tiers), a sacrifice altar (level tiers, rare candies only from Lv 80) and a rebirth chamber (Lv 100 -> shiny Lv 1 first stage, three perfect IVs, moves kept, Ability Patch so the hidden ability is optional). - machine/: data-driven 3x3x3 shells (window spots for glass, free spot under the core), checked in four rotations; the Pokémon walks in from the party and lives in the core; breaking core or shell sends it home (party, else PC, offline too); a real Cobblemon entity copy is shown in the chamber (no AI, invulnerable, uncatchable, never saved). - Heat Core keeps vanilla furnaces lit and faster; Dynamo Core makes and pushes FE; Synthesis Core takes FE and rolls drops into a hopper- extractable buffer; Altar Core sacrifices on a confirmed sneak-use; Rebirth Core runs on server time. - Recipes, casing tags, block loot, textures (tools/machine_assets.py), models, blockstates, names. - Self-tests: in/out, refusal, shell and core breaks (PC when full), chunk unload, server restart, and each machine's work. - Docs: design, balance table, Phase 6 checklist; Phase 5 approved. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
5cae9252c3
commit
0877a6a179
75 files changed
+2321
-7
No files matched your search
@@ -228,6 +228,39 @@ Adrian asked for existing mods for the multiblocks, or at least their logic. Pha
|
||||
|
||||
For the Pokémon inside, the best prior art is already in the pack: Poke Power's Power Block (MIT, [source](https://github.com/Matthiesen-dev/poke-power)) stores Pokémon with their owner, returns them on break, saves and syncs them, and renders the model in the block. Study it (and Cobblemon's Pasture Block, as the roadmap says); don't depend on it.
|
||||
|
||||
## Phase 6: Pokémon machines (Adrian, 2026-10-31)
|
||||
|
||||
Adrian's choices: the Large Furnace has a Fire Pokémon heat real furnaces, and hoppers must work in and out; an Electric generator making Forge Energy is built too (alongside Poke Power's Power Block); machine work costs the Pokémon nothing. Then three more (Adrian, 2026-10-31): a drop synthesizer that turns a lot of energy into what the Pokémon inside would drop, faster with more energy, with a full drop roll and tiers that add looting; a sacrifice altar that trades a high-level Pokémon for hard-to-get items, rare candies only above the highest natural level, lower tiers too; and a rebirth chamber that turns a Lv 100 Pokémon into a shiny Lv 1 after a long time.
|
||||
|
||||
**Shape.** Every machine is a 3×3×3 shell with the machine's core block in the middle of one wall and air in the centre, where the Pokémon stands. The block under the core is free (a hopper can go there), and the middle of each side wall and the top centre are window spots that may be glass instead of casing, to see the Pokémon. The shell is data (`datapacks/core/data/cobblesurvival/machines/<id>.json`: layers bottom to top, a key per character listing the blocks allowed, the core and the chamber marked), checked in all four horizontal rotations around the core every second. Casing is a block tag per machine, so the casing is the materials gate:
|
||||
|
||||
| Machine | Core | Casing | Pokémon |
|
||||
| --- | --- | --- | --- |
|
||||
| Large Furnace | Heat Core | `#cobblesurvival:heat_casing`: bricks, mud bricks, deepslate bricks | any Fire type |
|
||||
| Generator | Dynamo Core | `#cobblesurvival:dynamo_casing`: copper blocks (any weathering, waxed or not, cut or not) | any Electric type |
|
||||
| Drop Synthesizer | Synthesis Core | `#cobblesurvival:synthesis_casing`: iron, gold, diamond or netherite blocks; the lowest metal present sets the tier | any Pokémon |
|
||||
| Sacrifice Altar | Altar Core | `#cobblesurvival:altar_casing`: obsidian, crying obsidian, blackstone, polished blackstone bricks | Lv 20 or more |
|
||||
| Rebirth Chamber | Rebirth Core | `#cobblesurvival:rebirth_casing`: amethyst, quartz and calcite blocks | Lv 100 |
|
||||
|
||||
|
||||
**A Pokémon goes in** when its owner sends it out near the core and uses the core with an empty hand: the nearest of their sent-out Pokémon that fits walks in (it leaves the party and its data is kept in the core). Using the core again takes it out, back to the party or else the PC. Sneak-use shows the machine's state. Breaking the core or any part of the shell sends the Pokémon back to its owner, online or not. The core is the only place the Pokémon exists while inside, so nothing can be duplicated by breaking and inserting at once.
|
||||
|
||||
**What's shown** is a real Cobblemon Pokémon entity, a copy, standing in the chamber: scaled to fit, no AI, invulnerable, silent, uncatchable, and it can't be battled or used. It's never kept in the world save: one loaded from disk is dropped, and the core puts a fresh one there.
|
||||
|
||||
**Large Furnace.** Furnaces, blast furnaces and smokers (`#cobblesurvival:machine_furnaces`) standing against the outside of the shell burn without fuel while they have something to cook, and cook faster. They stay ordinary vanilla blocks, so their screens, recipes and hoppers work as always (input from above, output from below). How many are heated and how fast depend on the Pokémon's level and Special Attack (numbers in the data file and `docs/balance.md`).
|
||||
|
||||
**Drop Synthesizer.** Takes Forge Energy into the Synthesis Core (from a Dynamo Core or cables) and, for every so much energy, rolls the Pokémon's own drop table once, as if it had been defeated. The shell's tier adds looting: iron none, gold I, diamond II, netherite III (more of each drop, rare drops likelier). It takes energy up to a cap per tick, so more energy makes it faster. What it makes waits in the core (nine stacks; it stops when full) for a hopper under the core, or pipes from other mods on any side; breaking the core drops it.
|
||||
|
||||
**Sacrifice Altar.** Sneak-use the Altar Core with the Pokémon inside to see what it would give, sneak-use again within five seconds to sacrifice it: the Pokémon is gone for good and the rewards go to the owner. The highest level tier reached decides the reward: Exp. Candies from Lv 20, Ability Capsules from Lv 65, rare candies only from Lv 80 (above the highest natural level: Basalt Furnace Lv 70, guardians Lv 75), an Ability Patch from Lv 90, a nether star at Lv 100; a Lv 100 Dragon type also gives a dragon egg.
|
||||
|
||||
**Rebirth Chamber.** A Lv 100 Pokémon put in starts a long rebirth (placeholder: two hours of server time, also while the chunk is unloaded). Then it is the first stage of its line at Lv 1 and shiny, keeps its nickname, original trainer, held item and every move it learned, gets three of its IVs set to 31 (no IV ever goes down), and keeps its ability; an Ability Patch comes with it, so taking the hidden ability is the player's choice. Taking it out before the end cancels the rebirth.
|
||||
|
||||
**Cores** are crafted (soft gates by material): Heat Core from bricks, iron and a blast furnace; Dynamo Core from copper blocks, redstone and a thunder stone; Synthesis Core from iron and redstone blocks, hoppers and a crafter; Altar Core from obsidian, gold blocks and an echo shard; Rebirth Core from amethyst blocks, diamonds and a shiny stone. Their textures are drawn by `tools/machine_assets.py`.
|
||||
|
||||
Self-tests (`MachineTests`): in and out, wrong Pokémon refused, broken shell and broken core (to the PC when the party is full), chunk unload, server restart, and each machine's work (a furnace fed and emptied by hoppers without fuel, a Poke Power cable charged by a Dynamo Core, Magikarp's salmon through a hopper under a gold Synthesis Core, a confirmed sacrifice with a Lv 100 Dragonite's rewards, a rebirth from Charizard to a shiny Lv 1 Charmander with its moves and ability).
|
||||
|
||||
**Generator.** The Dynamo Core stores Forge Energy and pushes it to whatever touches the core and takes energy (cables, machines from other mods); its output per tick depends on the Pokémon's level and Special Attack, in line with Poke Power's 50 FE per level.
|
||||
|
||||
## Open decisions for Adrian (proceeding with the default, flagged)
|
||||
|
||||
| Decision | Default used for now |
|
||||
|
||||
Reference in new issue
Block a user