diff --git a/src/main/java/appeng/bootstrap/TileEntityBuilder.java b/src/main/java/appeng/bootstrap/TileEntityBuilder.java index e3162674f..6e8d04184 100644 --- a/src/main/java/appeng/bootstrap/TileEntityBuilder.java +++ b/src/main/java/appeng/bootstrap/TileEntityBuilder.java @@ -1,6 +1,7 @@ package appeng.bootstrap; import appeng.block.AEBaseTileBlock; +import appeng.bootstrap.components.IClientSetupComponent; import appeng.bootstrap.components.ITileEntityRegistrationComponent; import appeng.bootstrap.definitions.TileEntityDefinition; import appeng.core.AppEng; @@ -8,10 +9,9 @@ import appeng.core.features.AEFeature; import appeng.core.features.ActivityState; import appeng.core.features.BlockStackSrc; import appeng.tile.AEBaseTile; -import appeng.util.Platform; + import com.google.common.base.Preconditions; import net.minecraft.block.Block; -import net.minecraft.client.renderer.tileentity.TileEntityRenderer; import net.minecraft.tileentity.TileEntityType; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -22,7 +22,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.EnumSet; import java.util.List; -import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Supplier; @@ -90,8 +89,6 @@ public class TileEntityBuilder { type.setRegistryName(AppEng.MOD_ID, registryName); registry.register(type); - DistExecutor.runWhenOn(Dist.CLIENT, () -> this::registerClient); - AEBaseTile.registerTileItem( tileClass, new BlockStackSrc(blocks.get(0), ActivityState.Enabled)); @@ -104,18 +101,19 @@ public class TileEntityBuilder { } }); + DistExecutor.runWhenOn( Dist.CLIENT, () -> this::buildClient ); return new TileEntityDefinition(this::addBlock); } @OnlyIn(Dist.CLIENT) - private void registerClient() { - - if (tileEntityRendering.tileEntityRenderer != null) { - ClientRegistry.bindTileEntityRenderer(type, tileEntityRendering.tileEntityRenderer); - } - + private void buildClient() { + this.factory.addBootstrapComponent( (IClientSetupComponent) ()-> { + if (tileEntityRendering.tileEntityRenderer != null) { + ClientRegistry.bindTileEntityRenderer(type, tileEntityRendering.tileEntityRenderer); + } + }); } private void addBlock(Block block) { diff --git a/src/main/java/appeng/core/AppEng.java b/src/main/java/appeng/core/AppEng.java index 477455a89..5806785b9 100644 --- a/src/main/java/appeng/core/AppEng.java +++ b/src/main/java/appeng/core/AppEng.java @@ -24,6 +24,7 @@ import java.io.File; import appeng.bootstrap.components.IBlockRegistrationComponent; import appeng.bootstrap.components.IClientSetupComponent; import appeng.client.ClientHelper; +import appeng.client.render.model.GlassModelLoader; import appeng.core.features.AEFeature; import appeng.server.ServerHelper; import net.minecraft.block.Block; @@ -33,8 +34,10 @@ import net.minecraft.item.Item; import net.minecraft.particles.ParticleType; import net.minecraft.stats.StatType; import net.minecraft.tileentity.TileEntityType; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.client.model.ModelLoaderRegistry; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.eventbus.api.Event; @@ -122,7 +125,7 @@ public final class AppEng private void clientSetup(FMLClientSetupEvent event) { final ApiDefinitions definitions = Api.INSTANCE.definitions(); definitions.getRegistry().getBootstrapComponents( IClientSetupComponent.class ).forEachRemaining(IClientSetupComponent::setup); - + ModelLoaderRegistry.registerLoader(new ResourceLocation(AppEng.MOD_ID, "glass"), GlassModelLoader.INSTANCE); } diff --git a/src/main/java/appeng/core/Registration.java b/src/main/java/appeng/core/Registration.java index aef2c2f42..a7a5e46e1 100644 --- a/src/main/java/appeng/core/Registration.java +++ b/src/main/java/appeng/core/Registration.java @@ -51,8 +51,6 @@ final class Registration { public Registration() { - ModelLoaderRegistry.registerLoader(new ResourceLocation(AppEng.MOD_ID, "glass"), GlassModelLoader.INSTANCE); - AeStats.register(); }