diff --git a/src/main/scala/li/cil/oc/integration/mcmp/MCMultiPart.scala b/src/main/scala/li/cil/oc/integration/mcmp/MCMultiPart.scala index 00ee92361..613e3e34b 100644 --- a/src/main/scala/li/cil/oc/integration/mcmp/MCMultiPart.scala +++ b/src/main/scala/li/cil/oc/integration/mcmp/MCMultiPart.scala @@ -3,16 +3,11 @@ package li.cil.oc.integration.mcmp import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api -import li.cil.oc.client.renderer.block.ModelInitialization import mcmultipart.item.PartPlacementWrapper import mcmultipart.multipart.MultipartRegistry -import net.minecraft.client.resources.model.IBakedModel import net.minecraft.client.resources.model.ModelResourceLocation -import net.minecraft.util.RegistrySimple -import net.minecraftforge.client.event.ModelBakeEvent -import net.minecraftforge.common.MinecraftForge -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent -import net.minecraftforge.fml.common.eventhandler.EventPriority +import net.minecraftforge.fml.common.FMLCommonHandler +import net.minecraftforge.fml.relauncher.Side object MCMultiPart { final val CableMultipartLocation = new ModelResourceLocation(Settings.resourceDomain + ":" + Constants.BlockName.Cable, "multipart") @@ -28,17 +23,8 @@ object MCMultiPart { new PartPlacementWrapper(api.Items.get(Constants.BlockName.Cable).createItemStack(1), PartFactory).register(PartFactory.PartTypeCable) new PartPlacementWrapper(api.Items.get(Constants.BlockName.Print).createItemStack(1), PartFactory).register(PartFactory.PartTypePrint) - MinecraftForge.EVENT_BUS.register(this) - } - - @SubscribeEvent(priority = EventPriority.LOW) - def onModelBake(e: ModelBakeEvent): Unit = { - val registry = e.modelRegistry.asInstanceOf[RegistrySimple[ModelResourceLocation, IBakedModel]] - - // Replace default cable model with part model to properly handle connection - // rendering to multipart cables. - registry.putObject(ModelInitialization.CableBlockLocation, PartCableModel) - registry.putObject(CableMultipartLocation, PartCableModel) - registry.putObject(PrintMultipartLocation, PartPrintModel) + if (FMLCommonHandler.instance.getSide == Side.CLIENT) { + MCMultiPartClient.init() + } } } diff --git a/src/main/scala/li/cil/oc/integration/mcmp/MCMultiPartClient.scala b/src/main/scala/li/cil/oc/integration/mcmp/MCMultiPartClient.scala new file mode 100644 index 000000000..33bd2b40f --- /dev/null +++ b/src/main/scala/li/cil/oc/integration/mcmp/MCMultiPartClient.scala @@ -0,0 +1,27 @@ +package li.cil.oc.integration.mcmp + +import li.cil.oc.client.renderer.block.ModelInitialization +import net.minecraft.client.resources.model.IBakedModel +import net.minecraft.client.resources.model.ModelResourceLocation +import net.minecraft.util.RegistrySimple +import net.minecraftforge.client.event.ModelBakeEvent +import net.minecraftforge.common.MinecraftForge +import net.minecraftforge.fml.common.eventhandler.EventPriority +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent + +object MCMultiPartClient { + def init(): Unit = { + MinecraftForge.EVENT_BUS.register(this) + } + + @SubscribeEvent(priority = EventPriority.LOW) + def onModelBake(e: ModelBakeEvent): Unit = { + val registry = e.modelRegistry.asInstanceOf[RegistrySimple[ModelResourceLocation, IBakedModel]] + + // Replace default cable model with part model to properly handle connection + // rendering to multipart cables. + registry.putObject(ModelInitialization.CableBlockLocation, PartCableModel) + registry.putObject(MCMultiPart.CableMultipartLocation, PartCableModel) + registry.putObject(MCMultiPart.PrintMultipartLocation, PartPrintModel) + } +}