Groundworks 0.5.12
Curse Maven Snippet
What's new
Players
- Assemblies: holding an Assembly's Key, the preview draws the whole structure of real blocks, resting on the aimed face and facing you, and one click places all of it, the Key last, paid from the main inventory and free in creative. It is refused whole, placing nothing and taking nothing, when a position holds a block the shape doesn't take, telling you so, or when the inventory falls short, naming what is missing. It is refused whole too, and the preview draws it refused, when the Key wouldn't stand on the shape laid round it, as a cactus won't beside a block. Air, water, grass and other blocks a placement overwrites count free, and a block of the shape already standing at its position stays, uncharged. Sneak-placing a Key places it alone, as vanilla does. Once placed, its blocks are ordinary blocks, broken one at a time. (#55)
- A pack's Assembly naming a block tag the game doesn't know, such as a misspelt one, is skipped with a line in the log naming it and the tag, rather than loading and asking for its default block everywhere; fix the tag and
/reloadloads it. (#61) - Scaffolding opted in by a pack is drawn and placed where vanilla places it, past the reach of the scaffolding holding it up, where it falls, instead of being drawn refused there. (#66)
- An Assembly's Key is drawn and placed as it will stand among the blocks laid round it: a pack's torch Key hangs on a wall its shape builds, and a door Key with a block of its shape over it is refused whole, drawn refused, placing and taking nothing. Should vanilla still refuse the Key once the rest is laid, as when the shape spawns a golem in its way, the click takes back what it laid and you pay only for what is gone, the golem's blocks, never the Key; you are told the Key couldn't be placed. No path leaves an Assembly built without its Key. (#65)
- You can stand inside the Assembly you place, as you must to aim at the middle of a beacon's 7×7 or 9×9 pyramid: your own body no longer refuses it, nor draws it refused in the preview. Once it is laid you are lifted straight up to the first place you fit, normally on top of it, and take no suffocation damage. A mob or another player in the way still refuses it whole. (#67)
- Next Assembly (
V) steps the held Key through its Assemblies and the Key alone, and round, and Reverse Next Assembly (Shift+V) steps back; the preview redraws. The stack remembers its choice. A fresh stack starts on the Key's first Assembly, or on the Key alone where its declaration says so, and on the Key alone it places as vanilla does. (#58) - An Assembly's position may take any block of a tag: it is filled as uniformly as the inventory allows, from the block you hold most of first, and the preview draws the block each position will get. In creative, where blocks never run out, every position of a tag takes the block of it you hold most of, uncharged, and only when you hold none of the tag its default. A block the tag takes already standing there stays, uncharged. A position an Assembly keeps empty is cleared of grass and other blocks a placement overwrites, keeping any water, and a block there that a placement can't overwrite refuses the Assembly whole. (#56, #68)
- Rotate and Reverse Rotate turn a drawn Assembly about its Key a quarter at a time, even when the Key's own block has no facing, as a beacon's has none; the preview redraws turned and the click places what is drawn. (#57)
- The preview outlines in amber each block an Assembly's click will clear from a position it keeps empty, the grass beside a golem's legs or a flower inside a portal frame, and both halves of tall grass, so its going is no surprise. Air, and water the clearing keeps, aren't outlined, nor is anything while the Assembly is drawn refused. (#62)
- Vanilla's Assemblies ship with Groundworks. A beacon places its pyramid, level 1 to 4 (3×3 to 9×9), of any beacon base blocks; in creative, of the base block you hold most of, or iron when you hold none. A conduit places its 16-block ring, standing upright across your view so it can be set on the sea floor, or its full 42-block frame, of prismarine, prismarine bricks, dark prismarine or sea lanterns, its inside kept for water. A carved pumpkin places an iron golem, the spaces beside its head and legs kept clear, or a snow golem, and the golem spawns. Obsidian places obsidian until Next Assembly switches it to a nether portal frame, ten obsidian without corners, placed unlit. (#59)
- A carved pumpkin also places a copper golem: one copper block of any oxidation stage, waxed or not, under the pumpkin, filled from the copper block you hold most of, in creative too, and plain copper when you hold none. The golem spawns and vanilla turns the block into the matching copper chest. It comes third in Next Assembly's order: the iron golem, the snow golem, the copper golem, then the carved pumpkin alone, so a fresh carved pumpkin still starts on the iron golem. (#63)
Consumers
- An Assembly is declared as data, a JSON file under
data/<namespace>/groundworks/assembly/: its shape as layers of strings, bottom first, a legend of block ids, the letter that marks its Key, andstarts_alone;AssemblyShape's javadoc sets the format and its frame, a Footprint's, and a block takes its default state turned with the shape, so stairs, facing north by default, face forward, away from the player. A Key places its Assemblies once a Consumer states it a Key (#64), as the vanilla Consumer does for the block taggroundworks:assembly_keys. A malformed declaration, or one naming a block with no item to pay for it with, such as fire or water, is logged with its id and skipped,/reloadreads them again, and the server sends them to each client.Placements.planForserves an Assembly's plan, refused with the newRefusal.Assemblyreasons,TAKENas aRefusal.Atits position andKEY_WOULD_NOT_STANDas one at the Key's, asked of the Key's survival on the shape laid round it, where its item says it must survive. (#55) - The held stack's choice is the data component
groundworks:assembly_choice, an index into its Key's Assemblies by id with the Key alone last, absent on the starting choice;starts_aloneon any of a Key's declarations starts a fresh stack on the Key alone. Thenext_assemblypayload carries a press to the server, and the key mappingskey.groundworks.next_assemblyandkey.groundworks.reverse_next_assemblyjoin Groundworks' category. (#58) - An Assembly's legend letter may name a block tag with the block a position gets where the inventory gives none,
{"tag": "<tag>", "default": "<block>"}, or a position kept empty,"empty"; the Key's letter still names a block.AssemblyShape.fillis the uniform fill, and its free fill, creative's, gives every position of a tag the member held most of, or the default where none is held, and an empty position taken refuses asTAKENat it. (#56, #68) - A declaration whose legend names a block tag the game doesn't know, such as a misspelt one, is logged with its id and the tag and skipped, checked against the tags of the same reload, so
/reloadafter fixing it loads it; a tag that exists with no blocks is no error. (#61) Rotate.isRotatable(Player, ItemStack)also counts a held Key with an Assembly drawn, unless the player sneaks, which places the Key alone;Rotate.isRotatable(ItemStack)still answers for the block alone. (#57)PlacementPlangainsclears, the positions a plan empties without placing there, as an Assembly's empty positions holding grass, which the preview outlines; the three-argument constructor still builds a plan clearing nothing, and a record pattern on it now takes four components. (#62)groundworks:assembly_keysships withminecraft:beacon,minecraft:conduit,minecraft:carved_pumpkinandminecraft:obsidian, and vanilla's declarations underdata/groundworks/groundworks/assembly/:beacon/level_1tolevel_4,conduit/frame_16andframe_42,golem/ironandgolem/snow, andnether_portal, which starts on the Key alone. A pack overrides one by its id, or drops a Key from the tag. The new block taggroundworks:conduit_frame_blocksholds the blocks a conduit's frame takes. (#59)- Vanilla's copper golem ships as
golem/z_copper, its body any block ofminecraft:copperwithminecraft:copper_blockas the default; its id sorts aftergolem/ironandgolem/snowso it comes third. (#63) - An Assembly's Key is planned through its item's own placement,
BlockItem#getPlacementState, asked of a read-only level as the shape will stand, so a Key's state, room and survival read the blocks the shape lays;TAKENat the Key's position now also means it has no room or no state for placement there once the rest is laid. Light, heightmaps and entities are still read from the world as it stands. A Key vanilla refuses once the rest is laid has the laying taken back, and only what didn't come back, as blocks a golem took into itself, is charged. (#65) Assemblies.keys(Predicate<? super Block>)states which blocks are Keys, asPlacements.optInstates an Opt-in, andAssemblies.isKey(Block)asks it; a block is a Key when any statement says so. The vanilla Consumer states its Keys fromgroundworks:assembly_keys, so a pack or a Consumer still makes a Key with a tag entry and no code. (#64)
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include
This mod has no related projects

