TehStoneMan Posted June 26, 2019 Posted June 26, 2019 (edited) OK, now that I have my TileEntity working, I can't get it to render. As far as I can tell, the renderer is being registered, or at least there are no errors to say otherwise, but the renderer does not appear to be called. @Mod( ModInfo.MOD_ID ) public class BetterStorage { .... public BetterStorage() { ... FMLJavaModLoadingContext.get().getModEventBus().addListener( ClientEvents::clientStartup ); ... } } public class ClientEvents { public static void clientStartup( final FMLClientSetupEvent event ) { // do something that can only be done on the client BetterStorage.LOGGER.info( "==== Got game settings {} ====", event.getMinecraftSupplier().get().gameSettings ); // <-- Does output to log ClientRegistry.bindTileEntitySpecialRenderer( TileEntityLocker.class, new TileEntityLockerRenderer() ); } } @OnlyIn( Dist.CLIENT ) public class TileEntityLockerRenderer extends TileEntityRenderer< TileEntityLocker > { ... @Override public void render( TileEntityLocker tileEntityLocker, double x, double y, double z, float partialTicks, int destroyStage ) { BetterStorage.LOGGER.info( "Rendering Locker" ); ... } } Edited June 30, 2019 by TehStoneMan Quote My mods: http://www.curse.com/mc-mods/minecraft/225548-greenscreen http://mods.curse.com/mc-mods/minecraft/238981-cash-craft
TehStoneMan Posted June 26, 2019 Author Posted June 26, 2019 The TE is registered. I did have a problem with that, but was solved in another thread. What difference does removing @OnlyIn make? Quote My mods: http://www.curse.com/mc-mods/minecraft/225548-greenscreen http://mods.curse.com/mc-mods/minecraft/238981-cash-craft
TehStoneMan Posted June 26, 2019 Author Posted June 26, 2019 @Mod.EventBusSubscriber( bus = Mod.EventBusSubscriber.Bus.MOD ) public class RegistryEventHandler { @SubscribeEvent public static void onTileEntityRegistry( final RegistryEvent.Register< TileEntityType< ? > > event ) { final IForgeRegistry< TileEntityType< ? > > registry = event.getRegistry(); registry.register( TileEntityType.Builder.create( TileEntityLocker::new ).build( null ).setRegistryName( ModInfo.MOD_ID, "locker" ) ); } } @ObjectHolder( ModInfo.MOD_ID ) public final class BetterStorageTileEntityTypes { @ObjectHolder( "locker" ) public static TileEntityType< TileEntityLocker > LOCKER; } public class TileEntityLocker extends TileEntityLockable { protected int ticksSinceSync; public TileEntityLocker( TileEntityType< ? > tileEntityTypeIn ) { super( tileEntityTypeIn ); } public TileEntityLocker() { super( BetterStorageTileEntityTypes.LOCKER ); } } Quote My mods: http://www.curse.com/mc-mods/minecraft/225548-greenscreen http://mods.curse.com/mc-mods/minecraft/238981-cash-craft
TehStoneMan Posted June 30, 2019 Author Posted June 30, 2019 I finally figured out the problem - When registering the TileEntity, I needed to include the block it was connected to. @Mod.EventBusSubscriber( bus = Mod.EventBusSubscriber.Bus.MOD ) public class RegistryEventHandler { @SubscribeEvent public static void onTileEntityRegistry( final RegistryEvent.Register< TileEntityType< ? > > event ) { final IForgeRegistry< TileEntityType< ? > > registry = event.getRegistry(); registry.register( TileEntityType.Builder.create( TileEntityLocker::new, BetterStorageBlocks.LOCKER ).build( null ).setRegistryName( ModInfo.MOD_ID, "locker" ) ); // /\- Need list of blocks that use this TileEntity } } 1 Quote My mods: http://www.curse.com/mc-mods/minecraft/225548-greenscreen http://mods.curse.com/mc-mods/minecraft/238981-cash-craft
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.