Fixed up the Tile Entity mess a bit, still need to look at the CableBus stuff a bit though.

This commit is contained in:
Gunther De Wachter
2017-06-30 17:22:06 +02:00
parent 10e050c35b
commit 49a6df5bc7
44 changed files with 167 additions and 77 deletions
@@ -74,6 +74,8 @@ class BlockDefinitionBuilder implements IBlockBuilder
private CreativeTabs creativeTab = CreativeTab.instance;
private Class<? extends AEBaseTile> teClass;
private boolean disableItem = false;
private Function<Block, ItemBlock> itemFactory;
@@ -144,6 +146,12 @@ class BlockDefinitionBuilder implements IBlockBuilder
return this;
}
@Override
public IBlockBuilder tileEntity(Class<? extends AEBaseTile> tileEntityClass) {
teClass = tileEntityClass;
return this;
}
@Override
public IBlockBuilder useCustomItemModel()
{
@@ -222,6 +230,9 @@ class BlockDefinitionBuilder implements IBlockBuilder
if( block instanceof AEBaseTileBlock )
{
AEBaseTileBlock tileBlock = (AEBaseTileBlock) block;
// Fallback?
if ( teClass != null )
tileBlock.setTileEntity( teClass );
blockRendering.apply( factory, block, tileBlock.getTileEntityClass() );
}
else
@@ -238,13 +249,14 @@ class BlockDefinitionBuilder implements IBlockBuilder
if( block instanceof AEBaseTileBlock )
{
AEBaseTileBlock tileBlock = (AEBaseTileBlock) block;
if( teClass != null )
tileBlock.setTileEntity( teClass );
factory.addPreInit( side -> {
Class<? extends AEBaseTile> tileEntityClass = tileBlock.getTileEntityClass();
AEBaseTile.registerTileItem( tileEntityClass, new BlockStackSrc( block, 0, ActivityState.Enabled ) );
AEBaseTile.registerTileItem( teClass, new BlockStackSrc( block, 0, ActivityState.Enabled ) );
// TODO: Change after transition phase
Platform.registerTileEntityWithAlternatives( tileEntityClass, AppEng.MOD_ID.toLowerCase() + ":" + registryName, registryName );
GameRegistry.registerTileEntity( teClass, AppEng.MOD_ID.toLowerCase() + ":" + registryName);
} );
return (T) new TileDefinition( registryName, (AEBaseTileBlock) block, item );
@@ -22,6 +22,7 @@ package appeng.bootstrap;
import java.util.function.BiConsumer;
import java.util.function.Function;
import appeng.tile.AEBaseTile;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
@@ -45,6 +46,8 @@ public interface IBlockBuilder
IBlockBuilder rendering( BlockRenderingCustomizer callback );
IBlockBuilder tileEntity( Class<? extends AEBaseTile> teClass );
/**
* Don't register an item for this block.
*/