Unofficial site, not affiliated with modrinth.com.What is this?
Моды/Structure Gel API
Structure Gel API

Structure Gel API

An API for simplifying the developer end of creating generated structures.

4.2M
104
  • Structure Gel API v2.20.0

    release27 января 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 IStructureGel interface 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:gel block tag. If the block in the tag is actually a StructureGelBlock, 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 GelPortalBlock class 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.

    Registries

    • Added two new registries; structure_gel:gel_spread_behavior and structure_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_type and structure_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.SGRegistries for 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.Static now contains a Holder.Reference for the object registered.
    • Registrar.Static can 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.
    • Added updated handling for block and item registry.
    • See com.legacy.structure_gel.core.registry.SGRegistries for 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 StringRepresentable enums 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 the axis property was left as the default. It will now display minecraft:oak_log in that case. This is especially visible with blocks that have a large number of states, such as fences
    • 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 State property not functioning as expected
    • Retain State has 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 fill command.

    Replace Tool

    • Added the Copy States property
      • 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 + c in game while holding the clone tool will manually re-copy the selected region
    • Pressing ctrl + v in 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_structure to update the file location in a Structure Block to the 1.21 format where the structures folder is renamed to structure (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 Blocks option allows selecting which blocks to show
      • The Show Invisible Blocks option can dramatically decrease your fps on large selections. This can help by only showing what you care about.

    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!

  • Structure Gel API v2.18.0

    release17 марта 2024 г.

    1.20.4-v2.18.0

    RegisterArmorTrimTexturesEvent

    • Added registerSprite(ResourceLocation) for registering a direct texture that isn't standard armor with a _leggings suffix.

    Building Tool

    • Added more replace options to more tool modes.
    • Added Replaceable as a replace option. Replaces blocks that could be replaced by a player when placing a block, such as short grass and blocks in the #minecraft:replaceable tag.

    Fixes

    • The Building Tool and Data Handler no longer allow objects disabled through feature flags.
  • Structure Gel API v2.16.1

    release17 марта 2024 г.

    1.20.1-v2.16.1

    RegisterArmorTrimTexturesEvent

    • Added registerSprite(ResourceLocation) for registering a direct texture that isn't standard armor with a _leggings suffix.
  • Structure Gel API v2.17.2

    release4 февраля 2024 г.

    1.20.4-v2.17.2

    Fixes

    Fixed a crash when connecting to servers

  • Structure Gel API v2.17.1

    release17 января 2024 г.

    1.20.4-v2.17.1

    Updated NeoForge version as well as minor updates and fixes.

    Building Tool

    • Added the delete key as a keybind for tool modes to use.
      • Currently only used by the fill tool to delete all blocks in the selection.

    Fixes

    • Fixed en_us.lang using • instead of \u2022.
  • Structure Gel API v2.17.0

    release11 января 2024 г.

    1.20.4-v2.17.0

    Ported to 1.20.4 and now on NeoForge

    General Changes

    • Removed old IForgeRegistry methods. Vanilla registries are used now.

    Registries

    • All custom registries have been moved to proper NeoForge registries stored within com.legacy.structure_gel.api.registry.StructureGelRegistries and their respective events have been removed.
      • DataHandlerType
      • LootTableAlias
      • DynamicSpawnerType
      • JigsawCapabilityType

    Registrar

    • General optimizations to registry behavior. Removed a number of redundant checks.
    • RegistrarHandler.BlockHandler returns Registrar.BlockRef instead of Registrar.Static.
      • BlockRef implements ItemLike and has a defaultBlockState() method.
    • Added RegistrarHandler.ItemHandler
      • Similar to BlockHandler but specific to Items.
      • Creates Registrar.ItemRef instead of Registrar.Static.
        • ItemRef implements ItemLike and has a defaultInstance() method.
    • Removed RegistrarDatapackEntriesProvider
      • Use new DatapackBuiltinEntriesProvider(packOutput, gatherDataEvent.getLookupProvider(), RegistrarHandler.injectRegistries(new RegistrySetBuilder()), Set.of(my_mod_id));
    • Added @RegistrarHolder
      • Class annotation that allows Structure Gel to find and load RegistrarHandler fields within it.
      • RegistarHandlers must be public and static to be accessible. An exception will be thrown if this is not the case.
      • RegistarHandlers are registered during RegisterEvent during EventPriority.HIGHEST. If you have RegisterEvent listeners at this priority, mod load order may prevent this from working properly.

    Jigsaw Capability

    • Recieved a major refactor to better organize the data.
      • JigsawCapability.IJigsawCapability -> JigsawCapability
      • JigsawCapability.JigsawType -> JigsawCapabilityType

    Building Tool

    • Added Fuzzy as an option to the Extend tool.

    GelPortal block

    • Thanks to BlockType codec requirements, this is now an abstract class.
      • The GelTeleporter factory that was previously passed as an argument is now an abstract method getTeleporter(ServerLevel, GelPortalBlock)
    • Now has some handling for when the Axis property isn't present to allow not including it.

    Data Handlers

    • Fixed text boxes not always losing focus in the GUI.
    • Tab-navigation no longer autocompletes the first option for text boxes that suggest a field if nothing was typed.
    • Control + Pick Block now also copies if the block was waterlogged and if it should connect to other blocks.
    • Updated hover-tooltips (see below).

    Rendering

    • Updated how hover-tooltips work for Jigsaws, Structure Blocks, and Data Handlers.
      • The display name now renders with transparency, so it doesn't get cut off when it goes into a block.
      • The display name also adjusts its offset according to what side of the block you're looking at, and if that side of the block is exposed.

    Commands

    • Added /structure_gel nv to toggle night vision
      • Has optional arguments for players and if the effect should be added or removed

    Misc Internal Changes

    • Mixins are now located in their own package based on environment side.
      • client, common, and server (unused currently)
    • Packets are now located in their own package based on direction.
      • c_to_s, s_to_c, and bi_directional
    • Redid several mixins to utilize MixinExtras for better cross-mod compat.
    • ExtendedJigsawPlacement has been removed. All logic is handled through mixins to the vanilla JigsawStructure and JigsawPlacement.
    • GelTemplate has beem moved to the api package.
  • Structure Gel API v2.16.0

    release22 декабря 2023 г.

    1.20.1-v2.16.0

    LoadStructureTemplateEvent

    • New event that fires after a StructureTemplate loads.
    • Contains methods to modify the blocks and entities within the template.

    Gel Blocks

    • Now automatically perform their function without needing to implement the structure processor or use a specific StructurePiece type.
      • If the processor is already present, it will still use that.
      • This will not be done when loading a template through Structure Blocks or the place template command.

    IModifyState

    • Any TemplateStructurePiece that extends IModifyState will now work with it as long as the postProcess method isn't overwritten.

    Data Handler

    • All handlers can now mark blocks for post processing in the Properties menu.
      • Useful for making sure water flows after being placed, or updating fence connections for neighboring structures.
      • The position marked for post processing will be the position of the data handler itself, with the applied offset.
    • Added structure_gel:empty as an empty data handler.
      • Its primary function is to set an offset and mark a position for post processing.
      • This is not used by default if the data handler can't be loaded from nbt.
    • Fixed the structure_gel:block_state using structure_gel:chest for its data parser.

    Building Tool

    • The Shape tool now has Hollow Cube, Cube Frame, Pyramid, and Cone.
      • Changing the shape now uses a selection panel instead of clicking to cycle to the next value.
    • The Fill tool now supports all the shapes from the Shape tool for fine control over shapes (replaces the old Mode property).
    • The Clone tool now temporarily saves its selected region into a clipboard.
      • This allows for cloning to an area far away, regardless of the source being loaded.
      • The region is not actually saved to the item itself, but rather to an external file in the dimension's data folder..
      • This results in drastic client performance improvements, especially for large selections.
    • The Replace tool now has a "Fuzzy" property that allows only replacing directly attached neighbors or diagonal neighbors.
    • Fixed a number of vertex sorting issues with the Clone tool.
    • Translatable text values in the GUI's now scroll like vanilla options buttons.
    • Action history is no longer stored in a level capability. It has been moved to SavedData files to allow for more dynamic loading.

    Block Entities

    • Added IRotatable interface.
      • Allows a block entity to be rotated and mirroed when placed in a structure.
      • Contains void mirror(Mirror) and void rotate(Rotate).
      • Supported by vanilla's StructureTemplate (mixin), GelTemplate, relavent data handlers, and relavent Building Tool modes.

    Misc

    • Added an abstract item interface: StructureFinderItem
      • Contains basic methods to get/set located structure info within itself.
    • Improved performance with data handler processing.
    • Some registry events have been deprecated. They will become NeoForge registries in 1.20.4.
  • Structure Gel API v2.15.1

    release26 ноября 2023 г.

    1.20.1-v2.15.1

    Data Handler

    • Now preserves block state values when giving the player a copy after using the generate button.
    • Fixed item frames potentially causing a world lockup.
  • Structure Gel API v2.15.0

    release18 октября 2023 г.

    1.20.1-v2.15.0

    Building Tool

    • Fixed the replace tool not maintaining block states with things like stairs.

    Data Handler

    • Added an option for the data handler to not connect to fences, walls, etc.
  • Structure Gel API v2.4.8

    release18 октября 2023 г.

    1.18.2-v2.4.8

    • Fixed a world gen lockup with entity data handlers.
  • Structure Gel API v2.14.0

    release23 сентября 2023 г.

    1.20.1-v2.14.0

    Building Tool

    • The Flood tool now has a radius and replace property.

      • Replace can be "Air" or "Air and Liquid" and defaults to "Air and Liquid" (was "Air" only).
      • Radius can range from 0-200 and defaults to 80 (was 64).
    • The Extend tool now has a radius and replace property.

      • Replace can be "Air" or "Air and Liquid" and defaults to "Air and Liquid" (was "Air" only).
      • Radius can range from 0-200 and defaults to 80 (was 64).
    • The size of the currently selected region is displayed above the hotbar and in the selection edit GUI.

      • The line tool displays its length instead.
    • The blocks in your current pallete are displayed in the bottom right corner of the screen.

      Gui Update
    • The size of a selection can now be edited in the GUI with text boxes.

      • This assumes you're changing the positive most corner of the selection box. If a full selection box doesn't exist, one will be created from your position, or a point.
    • The line tool selection can be edited by grabbing the "corner" position of the selection points.

    • Holding right and left click allows the building tool to spam operations.

      • Actions that happen as a result of spamming are grouped into one undo/redo.
    • Color coded some text values related to positions.

    • Dramatically improved the visuals of some renders.

      • This also improves performance.
      Rendering updates

    General

    • Added more utility methods to VoxelShapeUtil.

    Fixes

    • The clone building tool wasn't updating the render when you rotate or mirror.
    • The building tool render wasn't displaying right away when you join a world.
    • Keybinds weren't working when mapped to mouse buttons.
  • Structure Gel API v2.7.3

    release23 сентября 2023 г.

    Fixes

    • Fixed an issue that could cause a world lockup when creating an entity through a data handler.
  • Structure Gel API v2.13.1

    release25 августа 2023 г.

    1.20.1-v2.13.1

    Data Handlers

    • Data handlers now support position offsets.
      • Position offsets are handled as left, up, and forwards, from the perspective of the data handler.
      • The offset position is rendered in world.
    • Updated the Data Handler GUI to be more organized.
    • Data handlers can be waterlogged in the GUI now.
    • Data Handlers are now in the dragon_immune and wither_immune block tags.

    Building Tool Rendering

    • Optimized the rendering logic.
    • Rendering in Shape, Replace, or Clone mode now works with a proper culling system, which should make it look nicer.
    • Renders now have shading to improve their visibility.

    Before and After render_update

    Fixes

    • Fixed the building tool not working with negative reach values properly.
    • Fixed the building tool's message for the new reach distance showing an incorrect value.
    • Fixed building tool rendering in Fabulous graphics to match fast/fancy.
    • Fixed a crash when a mod's dependency is missing.
  • Structure Gel API v2.13.0

    release23 августа 2023 г.

    Updated to 1.20.1, general code cleanup with deprecated data, armor trims can be registered to the texture atlas.

    A full changelog can be found here: https://gitlab.com/modding-legacy/structure-gel-api/-/blob/1.20.1/changelogs/1.20.1-v2.13.0.md

  • Structure Gel API v2.12.0

    release24 мая 2023 г.

    Нет описания изменений

  • Structure Gel API v2.7.2

    release24 мая 2023 г.

    Нет описания изменений

1

Совместимость

Minecraft: Java Edition

Платформы

Поддерживаемые окружения

Клиент и сервер

Сведения

Лицензия:
Опубликован:3 года назад
Обновлён:1 год назад
ID проекта:
Главная