diff --git a/build.gradle b/build.gradle index 74b42103a..b2ee7bb7f 100644 --- a/build.gradle +++ b/build.gradle @@ -124,8 +124,8 @@ dependencies { //runtimeOnly fg.deobf("dev.emi:emi-forge:${deps.emi}") runtimeOnly fg.deobf("curse.maven:spark-361579:${deps.spark}") - //implementation fg.deobf("org.violetmoon.zeta:Zeta:1.0-21") - implementation fg.deobf("curse.maven:zeta-968868:5594191") + //implementation fg.deobf("org.violetmoon.zeta:Zeta:1.0-24f") + implementation fg.deobf("curse.maven:zeta-968868:5594814") implementation fg.deobf("com.github.glitchfiend:TerraBlender-forge:${deps.terrablender}") implementation fg.deobf("curse.maven:jei-238222:${deps.jei}") implementation fg.deobf("curse.maven:flan-forge-493246:${deps.flan}") diff --git a/src/main/java/org/violetmoon/quark/addons/oddities/module/MagnetsModule.java b/src/main/java/org/violetmoon/quark/addons/oddities/module/MagnetsModule.java index 9722e28b6..3de4255c6 100644 --- a/src/main/java/org/violetmoon/quark/addons/oddities/module/MagnetsModule.java +++ b/src/main/java/org/violetmoon/quark/addons/oddities/module/MagnetsModule.java @@ -97,11 +97,6 @@ public final void register(ZRegister event) { event.getRegistry().register(repulsorParticle, "repulsor", Registries.PARTICLE_TYPE); } - @LoadEvent - public final void clientSetup(ZClientSetup event) { - BlockEntityRenderers.register(magnetizedBlockType, MagnetizedBlockRenderer::new); - } - @PlayEvent public void tickStart(ZLevelTick.Start event) { MagnetSystem.tick(true, event.getLevel()); @@ -122,4 +117,13 @@ public void crawlDigest(ZRecipeCrawl.Digest event) { MagnetSystem.onDigest(event); } + @ZetaLoadModule(clientReplacement = true) + public static final class Client extends MagnetsModule { + + @LoadEvent + public void clientSetup(ZClientSetup event) { + BlockEntityRenderers.register(magnetizedBlockType, MagnetizedBlockRenderer::new); + } + } + } diff --git a/src/main/java/org/violetmoon/quark/addons/oddities/module/MatrixEnchantingModule.java b/src/main/java/org/violetmoon/quark/addons/oddities/module/MatrixEnchantingModule.java index f392356b5..6c3904b65 100644 --- a/src/main/java/org/violetmoon/quark/addons/oddities/module/MatrixEnchantingModule.java +++ b/src/main/java/org/violetmoon/quark/addons/oddities/module/MatrixEnchantingModule.java @@ -188,12 +188,6 @@ public void addAdditionalHints(ZGatherHints event) { event.accept(matrixEnchanter.asItem(), comp); } - @LoadEvent - public final void clientSetup(ZClientSetup event) { - MenuScreens.register(menuType, MatrixEnchantingScreen::new); - BlockEntityRenderers.register(blockEntityType, MatrixEnchantingTableRenderer::new); - } - @PlayEvent public void onBlockPlaced(ZBlock.EntityPlace event) { if(event.getPlacedBlock().getBlock().equals(Blocks.ENCHANTING_TABLE) && automaticallyConvert) @@ -271,6 +265,13 @@ private void parseInfluences() { @ZetaLoadModule(clientReplacement = true) public static class Client extends MatrixEnchantingModule { + + @LoadEvent + public final void clientSetup(ZClientSetup event) { + MenuScreens.register(menuType, MatrixEnchantingScreen::new); + BlockEntityRenderers.register(blockEntityType, MatrixEnchantingTableRenderer::new); + } + @PlayEvent public void onTooltip(ZItemTooltip event) { ItemStack stack = event.getItemStack(); diff --git a/src/main/java/org/violetmoon/quark/content/automation/module/CrafterModule.java b/src/main/java/org/violetmoon/quark/content/automation/module/CrafterModule.java index 5becb211f..91b77a291 100644 --- a/src/main/java/org/violetmoon/quark/content/automation/module/CrafterModule.java +++ b/src/main/java/org/violetmoon/quark/content/automation/module/CrafterModule.java @@ -55,8 +55,12 @@ public final void register(ZRegister event) { Quark.ZETA.registry.register(blockEntityType, "crafter", Registries.BLOCK_ENTITY_TYPE); } - @LoadEvent - public final void clientSetup(ZClientSetup event) { - event.enqueueWork(() -> MenuScreens.register(menuType, CrafterScreen::new)); + @ZetaLoadModule(clientReplacement = true) + public static final class Client extends CrafterModule { + + @LoadEvent + public void clientSetup(ZClientSetup event) { + event.enqueueWork(() -> MenuScreens.register(menuType, CrafterScreen::new)); + } } } diff --git a/src/main/java/org/violetmoon/quark/content/automation/module/FeedingTroughModule.java b/src/main/java/org/violetmoon/quark/content/automation/module/FeedingTroughModule.java index 81f8726c1..1b41246b9 100644 --- a/src/main/java/org/violetmoon/quark/content/automation/module/FeedingTroughModule.java +++ b/src/main/java/org/violetmoon/quark/content/automation/module/FeedingTroughModule.java @@ -191,10 +191,6 @@ public final void register(ZRegister event) { event.getRegistry().register(menuType, "feeding_trough", Registries.MENU); } - @LoadEvent - public final void clientSetup(ZClientSetup event) { - event.enqueueWork(() -> MenuScreens.register(menuType, TroughScreen::new)); - } private static final class TroughPointer { private final BlockPos pos; @@ -310,4 +306,15 @@ private static FakePlayer getOrCreateFakePlayer(ServerLevel serverLevel){ return any.get(); } } + + + @ZetaLoadModule(clientReplacement = true) + public static final class Client extends FeedingTroughModule{ + + @LoadEvent + public void clientSetup(ZClientSetup event) { + event.enqueueWork(() -> MenuScreens.register(menuType, TroughScreen::new)); + } + } + } diff --git a/src/main/java/org/violetmoon/quark/content/building/block/CelebratoryLampBlock.java b/src/main/java/org/violetmoon/quark/content/building/block/CelebratoryLampBlock.java new file mode 100644 index 000000000..42b63177c --- /dev/null +++ b/src/main/java/org/violetmoon/quark/content/building/block/CelebratoryLampBlock.java @@ -0,0 +1,27 @@ +package org.violetmoon.quark.content.building.block; + +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.BlockGetter; +import org.jetbrains.annotations.Nullable; +import org.violetmoon.zeta.block.ZetaBlock; +import org.violetmoon.zeta.module.ZetaModule; + +import java.util.List; + +public class CelebratoryLampBlock extends ZetaBlock { + + public CelebratoryLampBlock(String regname, @Nullable ZetaModule module, Properties properties) { + super(regname, module, properties); + } + + @Override + public void appendHoverText(ItemStack pStack, @Nullable BlockGetter pLevel, List pTooltip, TooltipFlag pFlag) { + super.appendHoverText(pStack, pLevel, pTooltip, pFlag); + if (pFlag.isAdvanced()) { + pTooltip.add(1, Component.translatable("quark.misc.celebration").withStyle(ChatFormatting.GRAY)); + } + } +} diff --git a/src/main/java/org/violetmoon/quark/content/building/module/CelebratoryLampsModule.java b/src/main/java/org/violetmoon/quark/content/building/module/CelebratoryLampsModule.java index ea6882079..b0705e1c1 100644 --- a/src/main/java/org/violetmoon/quark/content/building/module/CelebratoryLampsModule.java +++ b/src/main/java/org/violetmoon/quark/content/building/module/CelebratoryLampsModule.java @@ -1,19 +1,13 @@ package org.violetmoon.quark.content.building.module; -import net.minecraft.ChatFormatting; -import net.minecraft.network.chat.Component; import net.minecraft.world.item.CreativeModeTabs; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; -import org.violetmoon.zeta.block.ZetaBlock; +import org.violetmoon.quark.content.building.block.CelebratoryLampBlock; import org.violetmoon.zeta.config.Config; import org.violetmoon.zeta.event.bus.LoadEvent; -import org.violetmoon.zeta.event.bus.PlayEvent; import org.violetmoon.zeta.event.load.ZRegister; -import org.violetmoon.zeta.event.play.ZItemTooltip; import org.violetmoon.zeta.module.ZetaLoadModule; import org.violetmoon.zeta.module.ZetaModule; @@ -23,25 +17,12 @@ public class CelebratoryLampsModule extends ZetaModule { @Config public static int lightLevel = 15; - private static Block stone_lamp, stone_brick_lamp; + public static Block stone_lamp, stone_brick_lamp; @LoadEvent public final void register(ZRegister event) { - stone_lamp = new ZetaBlock("stone_lamp", this, Block.Properties.copy(Blocks.STONE).lightLevel(s -> lightLevel)).setCreativeTab(CreativeModeTabs.BUILDING_BLOCKS); - stone_brick_lamp = new ZetaBlock("stone_brick_lamp", this, Block.Properties.copy(Blocks.STONE_BRICKS).lightLevel(s -> lightLevel)).setCreativeTab(CreativeModeTabs.BUILDING_BLOCKS); - } - - @ZetaLoadModule(clientReplacement = true) - public static class Client extends CelebratoryLampsModule { - @PlayEvent - public void onTooltip(ZItemTooltip event) { - if(event.getFlags().isAdvanced()) { - ItemStack stack = event.getItemStack(); - Item item = stack.getItem(); - if(item == stone_lamp.asItem() || item == stone_brick_lamp.asItem()) - event.getToolTip().add(1, Component.translatable("quark.misc.celebration").withStyle(ChatFormatting.GRAY)); - } - } + stone_lamp = new CelebratoryLampBlock("stone_lamp", this, Block.Properties.copy(Blocks.STONE).lightLevel(s -> lightLevel)).setCreativeTab(CreativeModeTabs.BUILDING_BLOCKS); + stone_brick_lamp = new CelebratoryLampBlock("stone_brick_lamp", this, Block.Properties.copy(Blocks.STONE_BRICKS).lightLevel(s -> lightLevel)).setCreativeTab(CreativeModeTabs.BUILDING_BLOCKS); } } diff --git a/src/main/java/org/violetmoon/quark/content/building/module/GlassItemFrameModule.java b/src/main/java/org/violetmoon/quark/content/building/module/GlassItemFrameModule.java index 04346011b..fb087be6a 100644 --- a/src/main/java/org/violetmoon/quark/content/building/module/GlassItemFrameModule.java +++ b/src/main/java/org/violetmoon/quark/content/building/module/GlassItemFrameModule.java @@ -65,13 +65,15 @@ public final void register(ZRegister event) { CreativeTabManager.endDaisyChain(); } - @LoadEvent - public final void clientSetup(ZClientSetup event) { - EntityRenderers.register(glassFrameEntity, GlassItemFrameRenderer::new); - } @ZetaLoadModule(clientReplacement = true) public static class Client extends GlassItemFrameModule { + + @LoadEvent + public final void clientSetup(ZClientSetup event) { + EntityRenderers.register(glassFrameEntity, GlassItemFrameRenderer::new); + } + @LoadEvent public void registerAdditionalModels(ZAddModels event) { event.register(new ModelResourceLocation(Quark.MOD_ID, "extra/glass_item_frame", "inventory")); diff --git a/src/main/java/org/violetmoon/quark/content/building/module/MorePottedPlantsModule.java b/src/main/java/org/violetmoon/quark/content/building/module/MorePottedPlantsModule.java index 609e8e5f9..cafdd1b16 100644 --- a/src/main/java/org/violetmoon/quark/content/building/module/MorePottedPlantsModule.java +++ b/src/main/java/org/violetmoon/quark/content/building/module/MorePottedPlantsModule.java @@ -4,6 +4,8 @@ import java.util.List; import java.util.Map; +import net.minecraft.client.color.block.BlockColors; +import org.violetmoon.zeta.client.event.load.ZAddBlockColorHandlers; import org.violetmoon.zeta.client.event.load.ZClientSetup; import org.violetmoon.zeta.event.bus.LoadEvent; import org.violetmoon.zeta.event.load.ZRegister; @@ -69,12 +71,16 @@ private FlowerPotBlock add(ZRegister event, Block block, String name) { return event.getVariantRegistry().addFlowerPot(block, name, Functions.identity()); } - @LoadEvent - public final void clientSetup(ZClientSetup event) { - for(Block b : tintedBlocks.keySet()) { - BlockState tState = tintedBlocks.get(b).defaultBlockState(); - BlockColor color = (state, worldIn, pos, tintIndex) -> Minecraft.getInstance().getBlockColors().getColor(tState, worldIn, pos, tintIndex); - Minecraft.getInstance().getBlockColors().register(color, b); + @ZetaLoadModule(clientReplacement = true) + public static final class Client extends MorePottedPlantsModule { + @LoadEvent + public void registerColors(ZAddBlockColorHandlers event) { + for(Block b : tintedBlocks.keySet()) { + BlockState tState = tintedBlocks.get(b).defaultBlockState(); + BlockColors blockColors = event.getBlockColors(); + BlockColor color = (state, worldIn, pos, tintIndex) -> blockColors.getColor(tState, worldIn, pos, tintIndex); + event.register(color, b); + } } } diff --git a/src/main/java/org/violetmoon/quark/content/building/module/MoreStoneVariantsModule.java b/src/main/java/org/violetmoon/quark/content/building/module/MoreStoneVariantsModule.java index aed7f5e55..7328b823d 100644 --- a/src/main/java/org/violetmoon/quark/content/building/module/MoreStoneVariantsModule.java +++ b/src/main/java/org/violetmoon/quark/content/building/module/MoreStoneVariantsModule.java @@ -17,8 +17,8 @@ import org.violetmoon.zeta.config.ConfigFlagManager; import org.violetmoon.zeta.event.bus.LoadEvent; import org.violetmoon.zeta.event.bus.PlayEvent; +import org.violetmoon.zeta.event.load.ZGatherAdditionalFlags; import org.violetmoon.zeta.event.load.ZRegister; -import org.violetmoon.zeta.event.play.loading.ZGatherAdditionalFlags; import org.violetmoon.zeta.module.ZetaLoadModule; import org.violetmoon.zeta.module.ZetaModule; import org.violetmoon.zeta.registry.CreativeTabManager; @@ -60,7 +60,7 @@ public final void register(ZRegister event) { instance = this; } - @PlayEvent + @LoadEvent public final void moreFlags(ZGatherAdditionalFlags event) { ConfigFlagManager manager = event.flagManager(); manager.putFlag(this, "granite", true); @@ -103,6 +103,8 @@ private void add(ZRegister event, String name, MapColor color, SoundType sound, event.getVariantRegistry().addSlabStairsWall(bricks, null); CreativeTabManager.endDaisyChain(); + + } } diff --git a/src/main/java/org/violetmoon/quark/content/building/module/StoolsModule.java b/src/main/java/org/violetmoon/quark/content/building/module/StoolsModule.java index f4f62042f..cbbe7120b 100644 --- a/src/main/java/org/violetmoon/quark/content/building/module/StoolsModule.java +++ b/src/main/java/org/violetmoon/quark/content/building/module/StoolsModule.java @@ -80,9 +80,13 @@ public void itemUsed(ZRightClickBlock event) { } } - @LoadEvent - public final void clientSetup(ZClientSetup event) { + @ZetaLoadModule(clientReplacement = true) + public static class Client extends StoolsModule { + + @LoadEvent + public final void clientSetup(ZClientSetup event) { EntityRenderers.register(stoolEntity, StoolEntityRenderer::new); } + } } diff --git a/src/main/java/org/violetmoon/quark/content/management/module/ExpandedItemInteractionsModule.java b/src/main/java/org/violetmoon/quark/content/management/module/ExpandedItemInteractionsModule.java index 26ad0e7a3..40a994413 100644 --- a/src/main/java/org/violetmoon/quark/content/management/module/ExpandedItemInteractionsModule.java +++ b/src/main/java/org/violetmoon/quark/content/management/module/ExpandedItemInteractionsModule.java @@ -93,11 +93,6 @@ public final void register(ZRegister event) { Quark.ZETA.registry.register(heldShulkerBoxMenuType, "held_shulker_box", Registries.MENU); } - @LoadEvent - public final void clientSetup(ZClientSetup event) { - MenuScreens.register(heldShulkerBoxMenuType, HeldShulkerBoxScreen::new); - } - @LoadEvent public final void configChanged(ZConfigChanged event) { staticEnabled = enabled; @@ -374,6 +369,12 @@ private static ItemStack tryAddToShulkerBox(Player player, ItemStack shulkerBox, @ZetaLoadModule(clientReplacement = true) public static class Client extends ExpandedItemInteractionsModule { + + @LoadEvent + public final void clientSetup(ZClientSetup event) { + MenuScreens.register(heldShulkerBoxMenuType, HeldShulkerBoxScreen::new); + } + @PlayEvent public void gatherTooltip(ZRenderTooltip.GatherComponents.Low event) { if(!enableArmorInteraction && (!enableShulkerBoxInteraction || !allowOpeningShulkerBoxes)) diff --git a/src/main/java/org/violetmoon/quark/content/mobs/module/CrabsModule.java b/src/main/java/org/violetmoon/quark/content/mobs/module/CrabsModule.java index c5101edfa..bb3ec9b3d 100644 --- a/src/main/java/org/violetmoon/quark/content/mobs/module/CrabsModule.java +++ b/src/main/java/org/violetmoon/quark/content/mobs/module/CrabsModule.java @@ -153,8 +153,12 @@ public final void setup(ZCommonSetup event) { crabSpawnableTag = BlockTags.create(new ResourceLocation(Quark.MOD_ID, "crab_spawnable")); } - @LoadEvent - public final void clientSetup(ZClientSetup event) { - EntityRenderers.register(crabType, CrabRenderer::new); + @ZetaLoadModule(clientReplacement = true) + public static class Client extends CrabsModule { + + @LoadEvent + public final void clientSetup(ZClientSetup event) { + EntityRenderers.register(crabType, CrabRenderer::new); + } } } diff --git a/src/main/java/org/violetmoon/quark/content/mobs/module/ShibaModule.java b/src/main/java/org/violetmoon/quark/content/mobs/module/ShibaModule.java index 9265d4cb2..ed97f0ef9 100644 --- a/src/main/java/org/violetmoon/quark/content/mobs/module/ShibaModule.java +++ b/src/main/java/org/violetmoon/quark/content/mobs/module/ShibaModule.java @@ -69,9 +69,15 @@ public final void entityAttrs(ZEntityAttributeCreation e) { e.put(shibaType, Wolf.createAttributes().build()); } - @LoadEvent - public final void clientSetup(ZClientSetup event) { - EntityRenderers.register(shibaType, ShibaRenderer::new); + @ZetaLoadModule(clientReplacement = true) + public static class Client extends ShibaModule { + + @LoadEvent + public final void clientSetup(ZClientSetup event) { + EntityRenderers.register(shibaType, ShibaRenderer::new); + } } + + } diff --git a/src/main/java/org/violetmoon/quark/content/mobs/module/StonelingsModule.java b/src/main/java/org/violetmoon/quark/content/mobs/module/StonelingsModule.java index 21027af50..c945648eb 100755 --- a/src/main/java/org/violetmoon/quark/content/mobs/module/StonelingsModule.java +++ b/src/main/java/org/violetmoon/quark/content/mobs/module/StonelingsModule.java @@ -78,9 +78,13 @@ public final void entityAttrs(ZEntityAttributeCreation e) { e.put(stonelingType, Stoneling.prepareAttributes().build()); } - @LoadEvent - public final void clientSetup(ZClientSetup event) { - EntityRenderers.register(stonelingType, StonelingRenderer::new); + @ZetaLoadModule(clientReplacement = true) + public static class Client extends StonelingsModule { + @LoadEvent + public final void clientSetup(ZClientSetup event) { + EntityRenderers.register(stonelingType, StonelingRenderer::new); + } + } } diff --git a/src/main/java/org/violetmoon/quark/content/mobs/module/ToretoiseModule.java b/src/main/java/org/violetmoon/quark/content/mobs/module/ToretoiseModule.java index 63c92556d..ad8694b64 100644 --- a/src/main/java/org/violetmoon/quark/content/mobs/module/ToretoiseModule.java +++ b/src/main/java/org/violetmoon/quark/content/mobs/module/ToretoiseModule.java @@ -84,9 +84,13 @@ public final void entityAttrs(ZEntityAttributeCreation e) { e.put(toretoiseType, Toretoise.prepareAttributes().build()); } - @LoadEvent - public final void clientSetup(ZClientSetup event) { - EntityRenderers.register(toretoiseType, ToretoiseRenderer::new); - } + @ZetaLoadModule(clientReplacement = true) + public static class Client extends ToretoiseModule { + @LoadEvent + public final void clientSetup(ZClientSetup event) { + EntityRenderers.register(toretoiseType, ToretoiseRenderer::new); + } + + } } diff --git a/src/main/java/org/violetmoon/quark/content/mobs/module/WraithModule.java b/src/main/java/org/violetmoon/quark/content/mobs/module/WraithModule.java index e92196b1e..1e9e3120f 100644 --- a/src/main/java/org/violetmoon/quark/content/mobs/module/WraithModule.java +++ b/src/main/java/org/violetmoon/quark/content/mobs/module/WraithModule.java @@ -120,15 +120,21 @@ public final void setup(ZCommonSetup event) { soulBeadTargetTag = TagKey.create(Registries.STRUCTURE, new ResourceLocation(Quark.MOD_ID, "soul_bead_target")); } - @LoadEvent - public final void clientSetup(ZClientSetup event) { - EntityRenderers.register(wraithType, WraithRenderer::new); - EntityRenderers.register(soulBeadType, SoulBeadRenderer::new); - } @LoadEvent public final void configChanged(ZConfigChanged event) { validWraithSounds = wraithSounds.stream().filter((s) -> s.split("\\|").length == 3).collect(Collectors.toList()); } + @ZetaLoadModule(clientReplacement = true) + public static class Client extends WraithModule { + + @LoadEvent + public final void clientSetup(ZClientSetup event) { + EntityRenderers.register(wraithType, WraithRenderer::new); + EntityRenderers.register(soulBeadType, SoulBeadRenderer::new); + } + } + + } diff --git a/src/main/java/org/violetmoon/quark/content/tools/module/ParrotEggsModule.java b/src/main/java/org/violetmoon/quark/content/tools/module/ParrotEggsModule.java index 735334799..c464f39bf 100644 --- a/src/main/java/org/violetmoon/quark/content/tools/module/ParrotEggsModule.java +++ b/src/main/java/org/violetmoon/quark/content/tools/module/ParrotEggsModule.java @@ -121,11 +121,6 @@ public final void configChanged(ZConfigChanged event) { isEnabled = this.enabled; } - @LoadEvent - public final void clientSetup(ZClientSetup event) { - EntityRenderers.register(parrotEggType, ThrownItemRenderer::new); - } - @PlayEvent public void entityInteract(ZPlayerInteract.EntityInteract event) { Entity e = event.getTarget(); @@ -190,6 +185,12 @@ private Parrot.Variant getResultingEggColor(Parrot parrot) { @ZetaLoadModule(clientReplacement = true) public static class Client extends ParrotEggsModule { + + @LoadEvent + public final void clientSetup(ZClientSetup event) { + EntityRenderers.register(parrotEggType, ThrownItemRenderer::new); + } + @Nullable public static ResourceLocation getTextureForParrot(Parrot parrot) { if(!isEnabled || !enableKotobirb) diff --git a/src/main/java/org/violetmoon/quark/content/tools/module/SkullPikesModule.java b/src/main/java/org/violetmoon/quark/content/tools/module/SkullPikesModule.java index e7ace70ab..612af087c 100644 --- a/src/main/java/org/violetmoon/quark/content/tools/module/SkullPikesModule.java +++ b/src/main/java/org/violetmoon/quark/content/tools/module/SkullPikesModule.java @@ -62,11 +62,6 @@ public final void setup(ZCommonSetup event) { pikeTrophiesTag = BlockTags.create(new ResourceLocation(Quark.MOD_ID, "pike_trophies")); } - @LoadEvent - public final void clientSetup(ZClientSetup event) { - EntityRenderers.register(skullPikeType, SkullPikeRenderer::new); - } - @PlayEvent public void onPlaceBlock(ZBlock.EntityPlace event) { BlockState state = event.getPlacedBlock(); @@ -98,4 +93,14 @@ public void onMonsterAppear(ZEntityJoinLevel event) { MiscUtil.addGoalJustAfterLatestWithPriority(monster.goalSelector, 3, new RunAwayFromPikesGoal(monster, (float) pikeRange, 1.0D, 1.2D)); } } + + @ZetaLoadModule(clientReplacement = true) + public static class Client extends SkullPikesModule { + + @LoadEvent + public final void clientSetup(ZClientSetup event) { + EntityRenderers.register(skullPikeType, SkullPikeRenderer::new); + } + + } }