diff --git a/Fabric/src/main/java/dev/upcraft/sparkweave/fabric/entrypoint/Client.java b/Fabric/src/main/java/dev/upcraft/sparkweave/fabric/entrypoint/Client.java index fa01bcb..473e84a 100644 --- a/Fabric/src/main/java/dev/upcraft/sparkweave/fabric/entrypoint/Client.java +++ b/Fabric/src/main/java/dev/upcraft/sparkweave/fabric/entrypoint/Client.java @@ -8,10 +8,7 @@ import dev.upcraft.sparkweave.client.event.RegisterItemPropertiesEventImpl; import dev.upcraft.sparkweave.entrypoint.EntrypointHelper; import dev.upcraft.sparkweave.fabric.client.command.ClientRootCommand; -import dev.upcraft.sparkweave.fabric.impl.registry.RegisterBlockEntityRenderersEventImpl; -import dev.upcraft.sparkweave.fabric.impl.registry.RegisterEntityRenderersEventImpl; -import dev.upcraft.sparkweave.fabric.impl.registry.RegisterMenuScreensEventImpl; -import dev.upcraft.sparkweave.fabric.impl.registry.RegisterParticleFactoriesEventImpl; +import dev.upcraft.sparkweave.fabric.impl.registry.*; import dev.upcraft.sparkweave.validation.TranslationChecker; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.api.EnvType; @@ -64,6 +61,7 @@ public Collection getFabricDependencies() { RegisterBlockEntityRenderersEvent.EVENT.invoker().registerBlockEntityRenderers(new RegisterBlockEntityRenderersEventImpl()); RegisterEntityRenderersEvent.EVENT.invoker().registerEntityRenderers(new RegisterEntityRenderersEventImpl()); + RegisterLayerDefinitionsEvent.EVENT.invoker().registerModelLayers(new RegisterLayerDefinitionsEventImpl()); RegisterItemPropertiesEvent.EVENT.invoker().registerItemProperties(new RegisterItemPropertiesEventImpl()); RegisterMenuScreensEvent.EVENT.invoker().registerMenuScreens(new RegisterMenuScreensEventImpl()); RegisterParticleFactoriesEvent.EVENT.invoker().registerParticleFactories(new RegisterParticleFactoriesEventImpl()); diff --git a/Fabric/src/main/java/dev/upcraft/sparkweave/fabric/impl/registry/RegisterLayerDefinitionsEventImpl.java b/Fabric/src/main/java/dev/upcraft/sparkweave/fabric/impl/registry/RegisterLayerDefinitionsEventImpl.java new file mode 100644 index 0000000..720f410 --- /dev/null +++ b/Fabric/src/main/java/dev/upcraft/sparkweave/fabric/impl/registry/RegisterLayerDefinitionsEventImpl.java @@ -0,0 +1,16 @@ +package dev.upcraft.sparkweave.fabric.impl.registry; + +import dev.upcraft.sparkweave.api.client.event.RegisterLayerDefinitionsEvent; +import net.fabricmc.fabric.api.client.rendering.v1.EntityModelLayerRegistry; +import net.minecraft.client.model.geom.ModelLayerLocation; +import net.minecraft.client.model.geom.builders.LayerDefinition; + +import java.util.function.Supplier; + +public class RegisterLayerDefinitionsEventImpl implements RegisterLayerDefinitionsEvent { + + @Override + public void registerModelLayers(ModelLayerLocation layerLocation, Supplier supplier) { + EntityModelLayerRegistry.registerModelLayer(layerLocation, supplier::get); + } +} diff --git a/NeoForge/src/main/java/dev/upcraft/sparkweave/neoforge/event/client/ClientModBusRegistryEvents.java b/NeoForge/src/main/java/dev/upcraft/sparkweave/neoforge/event/client/ClientModBusRegistryEvents.java index 08e5531..5460399 100644 --- a/NeoForge/src/main/java/dev/upcraft/sparkweave/neoforge/event/client/ClientModBusRegistryEvents.java +++ b/NeoForge/src/main/java/dev/upcraft/sparkweave/neoforge/event/client/ClientModBusRegistryEvents.java @@ -37,4 +37,9 @@ public static void onRegisterParticles(RegisterParticleProvidersEvent event) { RegisterParticleFactoriesEvent.EVENT.invoker().registerParticleFactories(new RegisterParticleFactoriesEventImpl(event)); } + @SubscribeEvent + public static void onRegisterLayerDefinitions(EntityRenderersEvent.RegisterLayerDefinitions event) { + RegisterLayerDefinitionsEvent.EVENT.invoker().registerModelLayers(event::registerLayerDefinition); + } + }