Update to the latest forge, fix issues with the dirt chest book not functioning correctly and fix the inventory item not using the correct chest model.

This commit is contained in:
alexbegt 2019-01-09 20:34:14 -05:00
parent 49a097283a
commit 5eee1e224c
16 changed files with 176 additions and 130 deletions

1
.gitignore vendored
View File

@ -6,6 +6,7 @@ build/
eclipse/ eclipse/
bin/ bin/
repo/ repo/
out/
/run/ /run/
.settings/ .settings/
#IDEA files from Gradle #IDEA files from Gradle

View File

@ -46,39 +46,34 @@ compileJava {
minecraft { minecraft {
mappings channel: 'snapshot', version: mappings_version mappings channel: 'snapshot', version: mappings_version
// default run configurations. runs {
// these can be tweaked, removed, or duplicated as needed. client = {
runConfig { main "net.minecraftforge.userdev.UserdevLauncher"
name = "Minecraft Client" workingDirectory = project.file("run").canonicalPath
main = "net.minecraftforge.userdev.UserdevLauncher" environment "target", "fmluserdevclient"
ideaModuleName = "${project.name}_main" environment "assetDirectory", downloadAssets.output.absolutePath
workingDirectory = project.file("run").canonicalPath environment "FORGE_VERSION", forge_version
environment "target", "fmluserdevclient" environment "FORGE_GROUP", forge_group
environment "assetDirectory", downloadAssets.output.absolutePath environment "MCP_VERSION", mappings_version
environment "FORGE_VERSION", forge_version environment "MC_VERSION", minecraft_version
environment "FORGE_GROUP", forge_group environment "MOD_CLASSES", "${sourceSets.main.output.resourcesDir}${File.pathSeparator}${sourceSets.main.output.classesDirs.join(File.pathSeparator)}"
environment "MCP_VERSION", mappings_version }
environment "MC_VERSION", minecraft_version server = {
environment "MOD_CLASSES", "${sourceSets.main.output.resourcesDir}${File.pathSeparator}${sourceSets.main.output.classesDirs.join(File.pathSeparator)}" main "net.minecraftforge.userdev.UserdevLauncher"
} workingDirectory = project.file("run").canonicalPath
environment "target", "fmluserdevserver"
runConfig { environment "assetDirectory", downloadAssets.output.absolutePath
name = "Minecraft Server" environment "FORGE_VERSION", forge_version
main = "net.minecraftforge.userdev.UserdevLauncher" environment "FORGE_GROUP", forge_group
ideaModuleName = "${project.name}_main" environment "MCP_VERSION", mappings_version
workingDirectory = project.file("run").canonicalPath environment "MC_VERSION", minecraft_version
environment "target", "fmluserdevserver" environment "MOD_CLASSES", "${sourceSets.main.output.resourcesDir}${File.pathSeparator}${sourceSets.main.output.classesDirs.join(File.pathSeparator)}"
environment "assetDirectory", downloadAssets.output.absolutePath }
environment "FORGE_VERSION", forge_version
environment "FORGE_GROUP", forge_group
environment "MCP_VERSION", mappings_version
environment "MC_VERSION", minecraft_version
environment "MOD_CLASSES", "${sourceSets.main.output.resourcesDir}${File.pathSeparator}${sourceSets.main.output.classesDirs.join(File.pathSeparator)}"
} }
} }
dependencies { dependencies {
minecraft 'net.minecraftforge.test:userdev:' + minecraft_version + '-' + forge_version minecraft 'net.minecraftforge.test:forge:' + minecraft_version + '-' + forge_version
compile 'net.minecraftforge.test:forge:' + minecraft_version + '-' + forge_version + ':launcher' compile 'net.minecraftforge.test:forge:' + minecraft_version + '-' + forge_version + ':launcher'
} }

View File

@ -7,7 +7,7 @@ minecraft_version=1.13
minecraft_version_toml=13 minecraft_version_toml=13
# Forge Version Information # Forge Version Information
forge_version=24.0.58-1.13-pre forge_version=24.0.61-1.13-pre
forge_version_toml=24 forge_version_toml=24
forge_group=net.minecraftforge.test forge_group=net.minecraftforge.test

View File

@ -0,0 +1,64 @@
package cpw.mods.ironchest.client.renderer;
import cpw.mods.ironchest.common.blocks.BlockChest;
import cpw.mods.ironchest.common.blocks.IronChestType;
import cpw.mods.ironchest.common.tileentity.TileEntityCopperChest;
import cpw.mods.ironchest.common.tileentity.TileEntityCrystalChest;
import cpw.mods.ironchest.common.tileentity.TileEntityDiamondChest;
import cpw.mods.ironchest.common.tileentity.TileEntityDirtChest;
import cpw.mods.ironchest.common.tileentity.TileEntityGoldChest;
import cpw.mods.ironchest.common.tileentity.TileEntityIronChest;
import cpw.mods.ironchest.common.tileentity.TileEntityObsidianChest;
import cpw.mods.ironchest.common.tileentity.TileEntitySilverChest;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.tileentity.TileEntityItemStackRenderer;
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
public class TileEntityIronChestItemRenderer extends TileEntityItemStackRenderer
{
private static final TileEntityIronChest IRON_CHEST = new TileEntityIronChest();
private static final TileEntityGoldChest GOLD_CHEST = new TileEntityGoldChest();
private static final TileEntityDiamondChest DIAMOND_CHEST = new TileEntityDiamondChest();
private static final TileEntityCopperChest COPPER_CHEST = new TileEntityCopperChest();
private static final TileEntitySilverChest SILVER_CHEST = new TileEntitySilverChest();
private static final TileEntityCrystalChest CRYSTAL_CHEST = new TileEntityCrystalChest();
private static final TileEntityObsidianChest OBSIDIAN_CHEST = new TileEntityObsidianChest();
private static final TileEntityDirtChest DIRT_CHEST = new TileEntityDirtChest();
private static final TileEntityIronChest[] CHESTS = { IRON_CHEST, GOLD_CHEST, DIAMOND_CHEST, COPPER_CHEST, SILVER_CHEST, CRYSTAL_CHEST, OBSIDIAN_CHEST,
DIRT_CHEST };
public static TileEntityIronChestItemRenderer instance = new TileEntityIronChestItemRenderer();
@Override
public void renderByItem(ItemStack itemStackIn)
{
Item item = itemStackIn.getItem();
if (Block.getBlockFromItem(item) instanceof BlockChest)
{
IronChestType typeOut = BlockChest.getTypeFromItem(item);
if (typeOut == null)
{
TileEntityRendererDispatcher.instance.renderAsItem(IRON_CHEST);
}
else
{
TileEntityRendererDispatcher.instance.renderAsItem(CHESTS[typeOut.ordinal()]);
}
}
else
{
super.renderByItem(itemStackIn);
}
}
}

View File

@ -13,8 +13,8 @@ package cpw.mods.ironchest.client.renderer;
import com.google.common.primitives.SignedBytes; import com.google.common.primitives.SignedBytes;
import cpw.mods.ironchest.common.blocks.BlockChest; import cpw.mods.ironchest.common.blocks.BlockChest;
import cpw.mods.ironchest.common.blocks.IronChestType; import cpw.mods.ironchest.common.blocks.IronChestType;
import cpw.mods.ironchest.common.core.IronChestBlocks;
import cpw.mods.ironchest.common.tileentity.TileEntityCrystalChest; import cpw.mods.ironchest.common.tileentity.TileEntityCrystalChest;
import cpw.mods.ironchest.common.tileentity.TileEntityIronChest;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager;
@ -64,15 +64,18 @@ public class TileEntityIronChestRenderer<T extends TileEntity & IChestLid> exten
GlStateManager.enableDepthTest(); GlStateManager.enableDepthTest();
GlStateManager.depthFunc(515); GlStateManager.depthFunc(515);
GlStateManager.depthMask(true); GlStateManager.depthMask(true);
IBlockState iblockstate = tileEntityIn.hasWorld() ?
tileEntityIn.getBlockState() : TileEntityIronChest tileEntity = (TileEntityIronChest) tileEntityIn;
(IBlockState) IronChestBlocks.ironChestBlock.getDefaultState().with(BlockChest.FACING, EnumFacing.NORTH);
IronChestType chesttype = IronChestType.IRON; IBlockState iBlockState = tileEntity.hasWorld() ?
IronChestType typeNew = BlockChest.getTypeFromBlock(iblockstate.getBlock()); tileEntity.getBlockState() :
(IBlockState) tileEntity.getBlockToUse().getDefaultState().with(BlockChest.FACING, EnumFacing.SOUTH);
IronChestType chestType = IronChestType.IRON;
IronChestType typeNew = BlockChest.getTypeFromBlock(iBlockState.getBlock());
if (typeNew != null) if (typeNew != null)
{ {
chesttype = typeNew; chestType = typeNew;
} }
if (destroyStage >= 0) if (destroyStage >= 0)
@ -86,12 +89,12 @@ public class TileEntityIronChestRenderer<T extends TileEntity & IChestLid> exten
} }
else else
{ {
this.bindTexture(chesttype.modelTexture); this.bindTexture(chestType.modelTexture);
} }
GlStateManager.pushMatrix(); GlStateManager.pushMatrix();
if (chesttype == IronChestType.CRYSTAL) if (chestType == IronChestType.CRYSTAL)
{ {
GlStateManager.disableCull(); GlStateManager.disableCull();
} }
@ -100,7 +103,7 @@ public class TileEntityIronChestRenderer<T extends TileEntity & IChestLid> exten
GlStateManager.translatef((float) x, (float) y + 1.0F, (float) z + 1.0F); GlStateManager.translatef((float) x, (float) y + 1.0F, (float) z + 1.0F);
GlStateManager.scalef(1.0F, -1.0F, -1.0F); GlStateManager.scalef(1.0F, -1.0F, -1.0F);
float f = iblockstate.get(BlockChest.FACING).getHorizontalAngle(); float f = iBlockState.get(BlockChest.FACING).getHorizontalAngle();
if (Math.abs(f) > 1.0E-5D) if (Math.abs(f) > 1.0E-5D)
{ {
GlStateManager.translatef(0.5F, 0.5F, 0.5F); GlStateManager.translatef(0.5F, 0.5F, 0.5F);
@ -108,7 +111,7 @@ public class TileEntityIronChestRenderer<T extends TileEntity & IChestLid> exten
GlStateManager.translatef(-0.5F, -0.5F, -0.5F); GlStateManager.translatef(-0.5F, -0.5F, -0.5F);
} }
if (chesttype.isTransparent()) if (chestType.isTransparent())
{ {
GlStateManager.scalef(1F, 0.99F, 1F); GlStateManager.scalef(1F, 0.99F, 1F);
} }
@ -116,7 +119,7 @@ public class TileEntityIronChestRenderer<T extends TileEntity & IChestLid> exten
this.rotateChestLid(tileEntityIn, partialTicks, model); this.rotateChestLid(tileEntityIn, partialTicks, model);
model.renderAll(); model.renderAll();
if (chesttype == IronChestType.CRYSTAL) if (chestType == IronChestType.CRYSTAL)
{ {
GlStateManager.enableCull(); GlStateManager.enableCull();
} }
@ -131,8 +134,8 @@ public class TileEntityIronChestRenderer<T extends TileEntity & IChestLid> exten
GlStateManager.matrixMode(5888); GlStateManager.matrixMode(5888);
} }
if (chesttype.isTransparent() if (chestType.isTransparent()
&& tileEntityIn.getDistanceSq(this.rendererDispatcher.entityX, this.rendererDispatcher.entityY, this.rendererDispatcher.entityZ) < 128d) && tileEntity.getDistanceSq(this.rendererDispatcher.entityX, this.rendererDispatcher.entityY, this.rendererDispatcher.entityZ) < 128d)
{ {
this.random.setSeed(254L); this.random.setSeed(254L);
@ -143,7 +146,7 @@ public class TileEntityIronChestRenderer<T extends TileEntity & IChestLid> exten
float blockScale = 0.70F; float blockScale = 0.70F;
float timeD = (float) (360D * (System.currentTimeMillis() & 0x3FFFL) / 0x3FFFL) - partialTicks; float timeD = (float) (360D * (System.currentTimeMillis() & 0x3FFFL) / 0x3FFFL) - partialTicks;
if (((TileEntityCrystalChest) tileEntityIn).getTopItems().get(1).isEmpty()) if (((TileEntityCrystalChest) tileEntity).getTopItems().get(1).isEmpty())
{ {
shift = 8; shift = 8;
blockScale = 0.85F; blockScale = 0.85F;
@ -155,7 +158,7 @@ public class TileEntityIronChestRenderer<T extends TileEntity & IChestLid> exten
customitem.setWorld(this.getWorld()); customitem.setWorld(this.getWorld());
customitem.hoverStart = 0F; customitem.hoverStart = 0F;
for (ItemStack item : ((TileEntityCrystalChest) tileEntityIn).getTopItems()) for (ItemStack item : ((TileEntityCrystalChest) tileEntity).getTopItems())
{ {
if (shift > shifts.length || shift > 8) if (shift > shifts.length || shift > 8)
{ {

View File

@ -10,6 +10,7 @@
******************************************************************************/ ******************************************************************************/
package cpw.mods.ironchest.common.core; package cpw.mods.ironchest.common.core;
import cpw.mods.ironchest.client.renderer.TileEntityIronChestItemRenderer;
import cpw.mods.ironchest.common.blocks.BlockChest; import cpw.mods.ironchest.common.blocks.BlockChest;
import cpw.mods.ironchest.common.blocks.BlockCopperChest; import cpw.mods.ironchest.common.blocks.BlockCopperChest;
import cpw.mods.ironchest.common.blocks.BlockCrystalChest; import cpw.mods.ironchest.common.blocks.BlockCrystalChest;
@ -23,12 +24,15 @@ import cpw.mods.ironchest.common.items.ItemChest;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.Item.Builder;
import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.registries.IForgeRegistry; import net.minecraftforge.registries.IForgeRegistry;
public class IronChestBlocks public class IronChestBlocks
{ {
public static Builder itemBuilder;
public static BlockChest ironChestBlock; public static BlockChest ironChestBlock;
public static Item ironChestItemBlock; public static Item ironChestItemBlock;
@ -86,13 +90,15 @@ public class IronChestBlocks
{ {
IForgeRegistry<Item> itemRegistry = event.getRegistry(); IForgeRegistry<Item> itemRegistry = event.getRegistry();
itemRegistry.register(ironChestItemBlock = new ItemChest(ironChestBlock, (new Item.Builder()).group(IronChestCreativeTabs.IRON_CHESTS))); itemBuilder = (new Builder()).group(IronChestCreativeTabs.IRON_CHESTS).setTEISR(() -> TileEntityIronChestItemRenderer::new);
itemRegistry.register(goldChestItemBlock = new ItemChest(goldChestBlock, (new Item.Builder()).group(IronChestCreativeTabs.IRON_CHESTS)));
itemRegistry.register(diamondChestItemBlock = new ItemChest(diamondChestBlock, (new Item.Builder()).group(IronChestCreativeTabs.IRON_CHESTS))); itemRegistry.register(ironChestItemBlock = new ItemChest(ironChestBlock, itemBuilder));
itemRegistry.register(copperChestItemBlock = new ItemChest(copperChestBlock, (new Item.Builder()).group(IronChestCreativeTabs.IRON_CHESTS))); itemRegistry.register(goldChestItemBlock = new ItemChest(goldChestBlock, itemBuilder));
itemRegistry.register(silverChestItemBlock = new ItemChest(silverChestBlock, (new Item.Builder()).group(IronChestCreativeTabs.IRON_CHESTS))); itemRegistry.register(diamondChestItemBlock = new ItemChest(diamondChestBlock, itemBuilder));
itemRegistry.register(crystalChestItemBlock = new ItemChest(crystalChestBlock, (new Item.Builder()).group(IronChestCreativeTabs.IRON_CHESTS))); itemRegistry.register(copperChestItemBlock = new ItemChest(copperChestBlock, itemBuilder));
itemRegistry.register(obsidianChestItemBlock = new ItemChest(obsidianChestBlock, (new Item.Builder()).group(IronChestCreativeTabs.IRON_CHESTS))); itemRegistry.register(silverChestItemBlock = new ItemChest(silverChestBlock, itemBuilder));
itemRegistry.register(dirtChestItemBlock = new ItemChest(dirtChestBlock, (new Item.Builder()).group(IronChestCreativeTabs.IRON_CHESTS))); itemRegistry.register(crystalChestItemBlock = new ItemChest(crystalChestBlock, itemBuilder));
itemRegistry.register(obsidianChestItemBlock = new ItemChest(obsidianChestBlock, itemBuilder));
itemRegistry.register(dirtChestItemBlock = new ItemChest(dirtChestBlock, itemBuilder));
} }
} }

View File

@ -107,30 +107,6 @@ public class IronChestEntityType
IronChestEntityType.OBSIDIAN_CHEST = (TileEntityType<?>) e.getValue(new ResourceLocation("ironchest", "obsidian_chest")); IronChestEntityType.OBSIDIAN_CHEST = (TileEntityType<?>) e.getValue(new ResourceLocation("ironchest", "obsidian_chest"));
} }
/*
@SubscribeEvent
public void onTileEntityRegistry(final RegistryEvent.Register<TileEntityType<?>> e)
{
System.out.println("hello from onTileEntityRegistry");
IronChestEntityType.IRON_CHEST = registerTileEntityType(e.getRegistry(), register("iron_chest", TileEntityType.Builder.create(TileEntityIronChest::new)), "iron_chest");
IronChestEntityType.GOLD_CHEST = registerTileEntityType(e.getRegistry(), register("gold_chest", TileEntityType.Builder.create(TileEntityGoldChest::new)), "gold_chest");
IronChestEntityType.DIAMOND_CHEST = registerTileEntityType(e.getRegistry(), register("diamond_chest", TileEntityType.Builder.create(TileEntityDiamondChest::new)), "diamond_chest");
IronChestEntityType.CRYSTAL_CHEST = registerTileEntityType(e.getRegistry(), register("crystal_chest", TileEntityType.Builder.create(TileEntityCrystalChest::new)), "crystal_chest");
IronChestEntityType.DIRT_CHEST = registerTileEntityType(e.getRegistry(), register("dirt_chest", TileEntityType.Builder.create(TileEntityDirtChest::new)), "dirt_chest");
IronChestEntityType.COPPER_CHEST = registerTileEntityType(e.getRegistry(), register("copper_chest", TileEntityType.Builder.create(TileEntityCopperChest::new)), "copper_chest");
IronChestEntityType.SILVER_CHEST = registerTileEntityType(e.getRegistry(), register("silver_chest", TileEntityType.Builder.create(TileEntitySilverChest::new)), "silver_chest");
IronChestEntityType.OBSIDIAN_CHEST = registerTileEntityType(e.getRegistry(), register("obsidian_chest", TileEntityType.Builder.create(TileEntityObsidianChest::new)), "obsidian_chest");
IronChestEntityType.IRON_CHEST = e.getRegistry().getValue(new ResourceLocation("ironchest", "iron_chest"));
IronChestEntityType.GOLD_CHEST = e.getRegistry().getValue(new ResourceLocation("ironchest", "gold_chest"));
IronChestEntityType.DIAMOND_CHEST = e.getRegistry().getValue(new ResourceLocation("ironchest", "diamond_chest"));
IronChestEntityType.CRYSTAL_CHEST = e.getRegistry().getValue(new ResourceLocation("ironchest", "crystal_chest"));
IronChestEntityType.DIRT_CHEST = e.getRegistry().getValue(new ResourceLocation("ironchest", "dirt_chest"));
IronChestEntityType.COPPER_CHEST = e.getRegistry().getValue(new ResourceLocation("ironchest", "copper_chest"));
IronChestEntityType.SILVER_CHEST = e.getRegistry().getValue(new ResourceLocation("ironchest", "silver_chest"));
IronChestEntityType.OBSIDIAN_CHEST = e.getRegistry().getValue(new ResourceLocation("ironchest", "obsidian_chest"));
}*/
protected static <T extends TileEntityType<?>> T registerTileEntityType(IForgeRegistry<TileEntityType<?>> registry, T tileEntityType, String name) protected static <T extends TileEntityType<?>> T registerTileEntityType(IForgeRegistry<TileEntityType<?>> registry, T tileEntityType, String name)
{ {
register(registry, tileEntityType, new ResourceLocation("ironchest", name)); register(registry, tileEntityType, new ResourceLocation("ironchest", name));
@ -160,7 +136,7 @@ public class IronChestEntityType
} }
} }
TileEntityType<T> tileentitytype = builder.build(type); TileEntityType<T> tileEntityType = builder.build(type);
return tileentitytype; return tileEntityType;
} }
} }

View File

@ -11,11 +11,12 @@
package cpw.mods.ironchest.common.tileentity; package cpw.mods.ironchest.common.tileentity;
import cpw.mods.ironchest.common.blocks.IronChestType; import cpw.mods.ironchest.common.blocks.IronChestType;
import cpw.mods.ironchest.common.core.IronChestBlocks;
public class TileEntityCopperChest extends TileEntityIronChest public class TileEntityCopperChest extends TileEntityIronChest
{ {
public TileEntityCopperChest() public TileEntityCopperChest()
{ {
super(IronChestEntityType.COPPER_CHEST, IronChestType.COPPER); super(IronChestEntityType.COPPER_CHEST, IronChestType.COPPER, IronChestBlocks.copperChestBlock);
} }
} }

View File

@ -11,6 +11,7 @@
package cpw.mods.ironchest.common.tileentity; package cpw.mods.ironchest.common.tileentity;
import cpw.mods.ironchest.common.blocks.IronChestType; import cpw.mods.ironchest.common.blocks.IronChestType;
import cpw.mods.ironchest.common.core.IronChestBlocks;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -32,7 +33,7 @@ public class TileEntityCrystalChest extends TileEntityIronChest
public TileEntityCrystalChest() public TileEntityCrystalChest()
{ {
super(IronChestEntityType.CRYSTAL_CHEST, IronChestType.CRYSTAL); super(IronChestEntityType.CRYSTAL_CHEST, IronChestType.CRYSTAL, IronChestBlocks.crystalChestBlock);
this.topStacks = NonNullList.<ItemStack>withSize(8, ItemStack.EMPTY); this.topStacks = NonNullList.<ItemStack>withSize(8, ItemStack.EMPTY);
} }

View File

@ -11,11 +11,12 @@
package cpw.mods.ironchest.common.tileentity; package cpw.mods.ironchest.common.tileentity;
import cpw.mods.ironchest.common.blocks.IronChestType; import cpw.mods.ironchest.common.blocks.IronChestType;
import cpw.mods.ironchest.common.core.IronChestBlocks;
public class TileEntityDiamondChest extends TileEntityIronChest public class TileEntityDiamondChest extends TileEntityIronChest
{ {
public TileEntityDiamondChest() public TileEntityDiamondChest()
{ {
super(IronChestEntityType.DIAMOND_CHEST, IronChestType.DIAMOND); super(IronChestEntityType.DIAMOND_CHEST, IronChestType.DIAMOND, IronChestBlocks.diamondChestBlock);
} }
} }

View File

@ -11,6 +11,7 @@
package cpw.mods.ironchest.common.tileentity; package cpw.mods.ironchest.common.tileentity;
import cpw.mods.ironchest.common.blocks.IronChestType; import cpw.mods.ironchest.common.blocks.IronChestType;
import cpw.mods.ironchest.common.core.IronChestBlocks;
import net.minecraft.client.resources.I18n; import net.minecraft.client.resources.I18n;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.Items; import net.minecraft.init.Items;
@ -24,26 +25,20 @@ public class TileEntityDirtChest extends TileEntityIronChest
{ {
private static ItemStack dirtChest9000GuideBook = new ItemStack(Items.WRITTEN_BOOK); private static ItemStack dirtChest9000GuideBook = new ItemStack(Items.WRITTEN_BOOK);
static private static boolean bookDataCreated = false;
{
dirtChest9000GuideBook.setTagInfo("author", new NBTTagString("cpw"));
dirtChest9000GuideBook.setTagInfo("title", new NBTTagString(I18n.format("book.ironchest.dirtchest9000.title")));
NBTTagList pages = new NBTTagList();
pages.add(new NBTTagString(ITextComponent.Serializer.toJson(new TextComponentString(I18n.format("book.ironchest.dirtchest9000.page1")))));
pages.add(new NBTTagString(ITextComponent.Serializer.toJson(new TextComponentString(I18n.format("book.ironchest.dirtchest9000.page2")))));
pages.add(new NBTTagString(ITextComponent.Serializer.toJson(new TextComponentString(I18n.format("book.ironchest.dirtchest9000.page3")))));
pages.add(new NBTTagString(ITextComponent.Serializer.toJson(new TextComponentString(I18n.format("book.ironchest.dirtchest9000.page4")))));
pages.add(new NBTTagString(ITextComponent.Serializer.toJson(new TextComponentString(I18n.format("book.ironchest.dirtchest9000.page5")))));
dirtChest9000GuideBook.setTagInfo("pages", pages);
}
public TileEntityDirtChest() public TileEntityDirtChest()
{ {
super(IronChestEntityType.DIRT_CHEST, IronChestType.DIRTCHEST9000); super(IronChestEntityType.DIRT_CHEST, IronChestType.DIRTCHEST9000, IronChestBlocks.dirtChestBlock);
if (!bookDataCreated)
{
createBookData();
}
} }
@Override @Override
public void wasPlaced(EntityLivingBase entityliving, ItemStack itemStack) public void wasPlaced(EntityLivingBase entityLivingBase, ItemStack itemStack)
{ {
if (!(itemStack.hasTag() && itemStack.getTag().getBoolean("dirtchest"))) if (!(itemStack.hasTag() && itemStack.getTag().getBoolean("dirtchest")))
{ {
@ -59,4 +54,22 @@ public class TileEntityDirtChest extends TileEntityIronChest
this.getItems().set(0, ItemStack.EMPTY); this.getItems().set(0, ItemStack.EMPTY);
} }
} }
public static void createBookData()
{
dirtChest9000GuideBook.setTagInfo("author", new NBTTagString("cpw"));
dirtChest9000GuideBook.setTagInfo("title", new NBTTagString(I18n.format("book.ironchest.dirtchest9000.title")));
NBTTagList pages = new NBTTagList();
pages.add(new NBTTagString(ITextComponent.Serializer.toJson(new TextComponentString(I18n.format("book.ironchest.dirtchest9000.page1")))));
pages.add(new NBTTagString(ITextComponent.Serializer.toJson(new TextComponentString(I18n.format("book.ironchest.dirtchest9000.page2")))));
pages.add(new NBTTagString(ITextComponent.Serializer.toJson(new TextComponentString(I18n.format("book.ironchest.dirtchest9000.page3")))));
pages.add(new NBTTagString(ITextComponent.Serializer.toJson(new TextComponentString(I18n.format("book.ironchest.dirtchest9000.page4")))));
pages.add(new NBTTagString(ITextComponent.Serializer.toJson(new TextComponentString(I18n.format("book.ironchest.dirtchest9000.page5")))));
dirtChest9000GuideBook.setTagInfo("pages", pages);
bookDataCreated = true;
}
} }

View File

@ -11,11 +11,12 @@
package cpw.mods.ironchest.common.tileentity; package cpw.mods.ironchest.common.tileentity;
import cpw.mods.ironchest.common.blocks.IronChestType; import cpw.mods.ironchest.common.blocks.IronChestType;
import cpw.mods.ironchest.common.core.IronChestBlocks;
public class TileEntityGoldChest extends TileEntityIronChest public class TileEntityGoldChest extends TileEntityIronChest
{ {
public TileEntityGoldChest() public TileEntityGoldChest()
{ {
super(IronChestEntityType.GOLD_CHEST, IronChestType.GOLD); super(IronChestEntityType.GOLD_CHEST, IronChestType.GOLD, IronChestBlocks.goldChestBlock);
} }
} }

View File

@ -13,6 +13,7 @@ package cpw.mods.ironchest.common.tileentity;
import cpw.mods.ironchest.common.blocks.BlockChest; import cpw.mods.ironchest.common.blocks.BlockChest;
import cpw.mods.ironchest.common.blocks.BlockIronChest; import cpw.mods.ironchest.common.blocks.BlockIronChest;
import cpw.mods.ironchest.common.blocks.IronChestType; import cpw.mods.ironchest.common.blocks.IronChestType;
import cpw.mods.ironchest.common.core.IronChestBlocks;
import cpw.mods.ironchest.common.gui.ContainerIronChest; import cpw.mods.ironchest.common.gui.ContainerIronChest;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
@ -61,17 +62,19 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements IChes
private int ticksSinceSync; private int ticksSinceSync;
private IronChestType chestType; private IronChestType chestType;
private Block blockToUse;
public TileEntityIronChest() public TileEntityIronChest()
{ {
this(IronChestEntityType.IRON_CHEST, IronChestType.IRON); this(IronChestEntityType.IRON_CHEST, IronChestType.IRON, IronChestBlocks.ironChestBlock);
} }
protected TileEntityIronChest(TileEntityType<?> typeIn, IronChestType chestTypeIn) protected TileEntityIronChest(TileEntityType<?> typeIn, IronChestType chestTypeIn, Block blockToUseIn)
{ {
super(typeIn); super(typeIn);
this.chestType = chestTypeIn; this.chestType = chestTypeIn;
this.chestContents = NonNullList.<ItemStack>withSize(chestTypeIn.size, ItemStack.EMPTY); this.chestContents = NonNullList.<ItemStack>withSize(chestTypeIn.size, ItemStack.EMPTY);
this.blockToUse = blockToUseIn;
} }
@Override @Override
@ -363,4 +366,9 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements IChes
return 0; return 0;
} }
public Block getBlockToUse()
{
return this.blockToUse;
}
} }

View File

@ -11,11 +11,12 @@
package cpw.mods.ironchest.common.tileentity; package cpw.mods.ironchest.common.tileentity;
import cpw.mods.ironchest.common.blocks.IronChestType; import cpw.mods.ironchest.common.blocks.IronChestType;
import cpw.mods.ironchest.common.core.IronChestBlocks;
public class TileEntityObsidianChest extends TileEntityIronChest public class TileEntityObsidianChest extends TileEntityIronChest
{ {
public TileEntityObsidianChest() public TileEntityObsidianChest()
{ {
super(IronChestEntityType.OBSIDIAN_CHEST, IronChestType.OBSIDIAN); super(IronChestEntityType.OBSIDIAN_CHEST, IronChestType.OBSIDIAN, IronChestBlocks.obsidianChestBlock);
} }
} }

View File

@ -11,11 +11,12 @@
package cpw.mods.ironchest.common.tileentity; package cpw.mods.ironchest.common.tileentity;
import cpw.mods.ironchest.common.blocks.IronChestType; import cpw.mods.ironchest.common.blocks.IronChestType;
import cpw.mods.ironchest.common.core.IronChestBlocks;
public class TileEntitySilverChest extends TileEntityIronChest public class TileEntitySilverChest extends TileEntityIronChest
{ {
public TileEntitySilverChest() public TileEntitySilverChest()
{ {
super(IronChestEntityType.SILVER_CHEST, IronChestType.SILVER); super(IronChestEntityType.SILVER_CHEST, IronChestType.SILVER, IronChestBlocks.silverChestBlock);
} }
} }

View File

@ -1,26 +0,0 @@
package mcp;
import javax.annotation.Nonnull;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import javax.annotation.meta.TypeQualifierDefault;
/**
* This annotation can be applied to a package, class or method to indicate that
* the method in that element are nonnull by default unless there is:
* <ul>
* <li>An explicit nullness annotation
* <li>The method overrides a method in a superclass (in which case the
* annotation of the corresponding method in the superclass applies)
* <li> there is a default parameter annotation applied to a more tightly nested
* element.
* </ul>
*
*/
@Documented
@Nonnull
@TypeQualifierDefault(ElementType.METHOD) // Note: This is a copy of javax.annotation.ParametersAreNonnullByDefault with target changed to METHOD
@Retention(RetentionPolicy.RUNTIME)
public @interface MethodsReturnNonnullByDefault {}