package net.minecraftforge.test;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemBlock;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.registry.GameRegistry;
import org.apache.logging.log4j.Logger;
import javax.annotation.Nullable;
@Mod(modid = TileEntityLoadingTest.MOD_ID, name = "TileEntity#onLoad() test mod", version = "1.0")
public class TileEntityLoadingTest
{
static final String MOD_ID = "te_loading_test";
static final boolean DEBUG = false;
private static Logger logger;
private static final Block testBlock = new TestBlock();
@Mod.EventHandler
public static void preInit(FMLPreInitializationEvent event)
{
logger = event.getModLog();
GameRegistry.register(testBlock);
GameRegistry.register(new ItemBlock(testBlock).setRegistryName(testBlock.getRegistryName()));
GameRegistry.registerTileEntity(TestTE.class, testBlock.getRegistryName().toString());
}
public static class TestBlock extends Block
{
static final String NAME = "test_block";
TestBlock()
{
super(Material.ANVIL);
setRegistryName(NAME);
setUnlocalizedName(MOD_ID + "." + NAME);
setCreativeTab(CreativeTabs.BUILDING_BLOCKS);
}
@Override
public boolean hasTileEntity(IBlockState state)
{
return true;
}
@Nullable
@Override
public TileEntity createTileEntity(World world, IBlockState state)
{
return new TestTE();
}
}
public static class TestTE extends TileEntity
{
@Override
public void onLoad()
{
logger.info("World: " + world + ", Pos: " + pos + ", State: " + world.getBlockState(pos));
if (DEBUG) logger.trace("Stack trace:", new Exception());
}
}
}