
Structure Gel API
An API for simplifying the developer end of creating generated structures.
2.2M
91
Structure Gel API v2.20.0
release26 января 2025 г.1.21.4-v2.20.0
General Changes
- We're on 1.21.4. With that comes the general expected changes, like item data components.
Building Tool
- Clone: Now works across dimensions and players. You can hand another player a building tool and access their cloned region regardless of what dimension it's from.
- Added a nifty animation when the GUI opens :D
Gel Blocks
- Gel blocks have had their back end rewritten from scratch.
- Previously, Gel Blocks implemented the IStructureGelinterface to hook into the various spreading mechanics, used an enum of behaviors to determine the default spreading rules, and had a block state for how far it traveld. Most of this is gone.
- Gel spreading behavior is now registered under structure_gel:gel_spread_behavior.- This is how gel spreads along a specific axis, or along diagonals.
 
- Gel spreading restrictions can be registered under structure_gel:gel_spread_restriction.- This is how blue gel knows not to spread into exposed areas, or how orange gel knows to stop based on the item stack count.
 
- The distance gel spreads is now an absolute distance to the initial source instead of traveling and counting how many were placed, and reaches a sphere shape if fully expanded.
- This allows gel to spread more effectively in twisting hallways, and more reliably hit the corners of large rooms.
 
- Any block can be used as gel in a structure as long as it's added to the structure_gel:gelblock tag. If the block in the tag is actually aStructureGelBlock, it can customize what it places instead of defaulting to air.
Data Handler
- Changed how registry works so that a builder is what gets registered. See implemented data handlers for reference.
Dynamic Spawner
- Changed how registry works so that a builder is what gets registered.
GelPortalBlock
- Completely rewritten. Hopefully for the last time. The GelPortalBlockclass is abstract and requires the implementation of various methods to make the portal function properly (with similar behavior to a nether portal).- Ignition of the portal is handled by calling GelPortalBlock.tryIgnite.
- The dimension transition screen must be registered manually.
 
- Ignition of the portal is handled by calling 
Registries
- Added two new registries; structure_gel:gel_spread_behaviorandstructure_gel:gel_spread_restriction.- Used to control the behavior of Gel blocks. Custom values can be registered and implemented on your own custom Gel block.
 
- Changed the registry process of structure_gel:dynamic_spawner_typeandstructure_gel:data_handler_type.- The new registry approach instead works by registering a "factory" to create a Data Handler or Dynamic Spawner. Overall, the code is more builder-focused and simplified, with access to registry data to prepare for more registries moving to datapacks in vanilla.
- See com.legacy.structure_gel.core.registry.SGRegistriesfor how to register the new data.
 
Registrar
- Internal changes to how data is stored. The basic rules of "don't get a value before it was registered" still applies.
- Registrar.Staticnow contains a- Holder.Referencefor the object registered.
- Registrar.Staticcan be created with a name only using- RegistrarHandler.named(String).- In this case, a value must be assigned later through RegistrarHandler.addHandlerListener(Consumer<RegistrarHandler>).
- An error will be thrown if a static registrar is created by name only and never assigned a value.
 
- In this case, a value must be assigned later through 
- Added updated handling for block and item registry.
- See com.legacy.structure_gel.core.registry.SGRegistriesfor usage.
Structure Gel API v2.19.1
release21 июня 2024 г.1.20.4-v2.19.1
Data Handler
- Fixed cycle buttons in the GUI not starting at the correct default value
- Made adding StringRepresentableenums to the parser easier
Building Tool
- Fixed the selection edit screen not hovering buttons correctly
Structure Gel API v2.19.0
release2 июня 2024 г.1.20.4-v2.19.0
Building Tool
- Can now set if blocks placed will cause block updates or not
- This also supresses block and fluid ticks that occur when the block is placed (water won't flow, sand won't fall)
 
- Each mode shows up in the creative mode search tab
- The Building Tool palette screen no longer serializes default block state values when re-opening the screen
- If an oak log was set in the palette, it would previously display as minecraft:oak_log[axis=y], even if theaxisproperty was left as the default. It will now displayminecraft:oak_login that case. This is especially visible with blocks that have a large number of states, such as fences
 
- If an oak log was set in the palette, it would previously display as 
- Building Tool block palettes can be exported as a Block Palette item. This item can be dropped onto the Building Tool, like how you'd use a bundle, to set the palette.
Fill Tool
- Fixed the Retain Stateproperty not functioning as expected
- Retain Statehas been renamed to- Copy States- When True (default): Copies applicable block state values from the replaced block to the block being placed. This means stairs/slabs/fences/etc will have the same block states when replaced.
- When False: Places the block without any modifications. This is similar to the vanilla fillcommand.
 
Replace Tool
- Added the Copy Statesproperty- Defaults to true
 
Clone Tool
- Fixed pasted regions being hollowed out
- Can now also handle entities
- Improved the handling of internally saving captured regions for the Clone tool
- Regions with the same bounding box are not saved more than once. Only the latest copy will be saved
- This prevents multiple copies of the same selected region from completely filling your clipboard
- This breaks old clipboard data
 
- Pressing ctrl + cin game while holding the clone tool will manually re-copy the selected region
- Pressing ctrl + vin game while holding the clone tool will paste the copied region- This does not replace left click, it's just an alternative button press
 
- Improved the compile time of the render-preview
- If a render preview takes longer than 8 seconds to compile (freezing the game client in the process), the preview will be aborted. This timer can be adjusted in the config.
Move Tool
- Can now also handle entities
Commands
- Dramatically optimized the time to find Structure Blocks when using /structure_gel savestructures search
- Added /structure_gel debug- This will be used for miscellaneous commands that have a very specific function and won't need to be used often, if at all
- Currently used for /structure_gel debug update_structures_to_structureto update the file location in a Structure Block to the 1.21 format where thestructuresfolder is renamed tostructure(if applicable). It does so by finding and replacing the first instance of:structures/with:structure/in the resource location. This uses the exact same syntax as/structure_gel savestructures
 
- Commands affecting Structure Blocks display a Redstone Torch particle above the affected blocks
- Added /structure_gel ?to display the basic function of the other sub-commands
Structure Blocks
- The Show Invisible Blocksoption allows selecting which blocks to show- The Show Invisible Blocksoption can dramatically decrease your fps on large selections. This can help by only showing what you care about.
 
- The 
Misc
- Made a number of GUI changes to improve mouse scrolling and hovering
- Some GUIs have tooltips when elements are hovered over
- Dynamic spawner labels give extra info
- The Building Tool palette screen gives info when hovering over the item icon for a block
 
Structure Gel API v2.18.1
release21 апреля 2024 г.Added /structure_gel getfeatures command. Uses the same syntax as getstructures... but for features!
Structure Gel API v2.16.2
release21 апреля 2024 г.Added /structure_gel getfeatures command. Uses the same syntax as getstructures... but for features!
Совместимость
Детали
Лицензия:LicenseRef-All-Rights-Reserved
Опубликован:2 года назад
Обновлён:9 месяцев назад