90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!

Structure Gel API v2.17.0

Changelog

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.

Files

structure_gel-1.20.4-2.17.0.jar(954.04 KiB) Primary Download

Project members

Modding Legacy

Modding Legacy

Organization

KingPhygieBoo

Contributor

SilverDavidMC

Programmer

Details

Licensed ARR
Published a year ago
Updated 5 months ago