Building Gadgets

Building Gadgets

109M Downloads

BG1 to BG2 Feature Parity Request

Gloval opened this issue ยท 2 comments

commented

After discussing with Mikey about reimplementation in Building Gadgets 2 of features that were in Building Gadgets 1 per his request opening this Issue Ticket.

Features we would like to see return to the mod:

  1. Copy Capture limit increased from the 100,000 current limit to the 1,000,000 limit Building Gadget 1 had.
    This will allow for larger captures in a single JSON making it easier implement the build.
    Part of the issue for this is the Build Ghost Render when attempting to place/anchor the build overdriving Target PCs resources and causing a render crash for the client. While the render is nice, larger capture/builds would be more useful.

  2. Trapdoor state. When capturing a build with trapdoors they typically paste back in in a closed, horizontal, state. While a nuisance on tall builds this can be very frustrating.

  3. Framed Block/CopyCat block fill honoring. In Building Gadgets 1, These blocks would count in the materials list as a framed block and it's fill block and when pasted in the Frames would be filled by the gadget.

  4. Doors, beds and other 2 block vanilla and modded blocks being pasted in. This worked in later versoins of Building Gadgets 1 and would be nice to see it return. This is a lesser value reimplementation but can be quite frustrating depending on implementation.

  5. Build Mirroring. Very useful function when trying to use the gadget for expanding a build. Make one side of a house then copy, mirror, and paste in a symmetrical version to complete the build.

Will add to this if I remember any others.

commented

Dire! No close! :D

The plan

  1. Rework packets to use Neoforges / Minecrafts packet splitting system
    a. Minify the data being sent more
    b. Review the output data of the paste / schematic system to ensure it's not duplicating data in unneeded ways
  2. Extend supported state system to either be tag based or provider driven to easily add more support for states (this would include modded)
  3. This likely just needs first party support but I know the dev so I can likely get this fixed.
  4. This is the same as (2)
  5. This should be simple enough, we already have a PR for it :D Just need to review and merge in
commented

Knew I forgot one.

In 1.20 the JSON Code listed the materials list at the bottom of the script in a clean and understandable format that could be coped out and listed separately for easier collection in preperation of using a build.
In 1.21 this format was changed to be much longer and harder to parse out requiring substantial cleanup.

Examples

Exerpt from a 1.20 build: (Lists mod, block name and count)

"requiredItems": {
"create:polished_cut_tuff_wall": 85,
"minecraft:torch": 1,
"minecraft:lever": 4,
"irons_spellbooks:arcane_anvil": 1,

Exerpt from a 1.21 build: (Still lists mod, block and count but something changed addind extranious data)

"requiredItems": {
"integrateddynamics:Reference{ResourceKey[minecraft:item / integrateddynamics:menril_log]\u003dintegrateddynamics:menril_log}": 147,
"minecraft:Reference{ResourceKey[minecraft:item / minecraft:dark_oak_stairs]\u003dminecraft:dark_oak_stairs}": 196,
"minecraft:Reference{ResourceKey[minecraft:item / minecraft:oak_trapdoor]\u003dminecraft:oak_trapdoor}": 2,
"minecraft:Reference{ResourceKey[minecraft:item / minecraft:red_concrete]\u003dminecraft:red_concrete}": 1389,

This format is much better than the long form of a BG1 materials list from the "Copy to Clipboard" button in the gadget or pulled from the JSON code but if we could get back the consice list that would be great.