diff --git a/.gitignore b/.gitignore index 3a2f51b..33bf501 100755 --- a/.gitignore +++ b/.gitignore @@ -6,10 +6,11 @@ build/ eclipse/ bin/ repo/ +out/ /run/ .settings/ #IDEA files from Gradle .idea/ /*.iml /*.ipr -/*.iws +/*.iws \ No newline at end of file diff --git a/build.gradle b/build.gradle index 4bfeecd..0ef8e4c 100755 --- a/build.gradle +++ b/build.gradle @@ -45,40 +45,35 @@ compileJava { minecraft { mappings channel: 'snapshot', version: mappings_version - - // default run configurations. - // these can be tweaked, removed, or duplicated as needed. - runConfig { - name = "Minecraft Client" - main = "net.minecraftforge.userdev.UserdevLauncher" - ideaModuleName = "${project.name}_main" - workingDirectory = project.file("run").canonicalPath - environment "target", "fmluserdevclient" - 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)}" - } - - runConfig { - name = "Minecraft Server" - main = "net.minecraftforge.userdev.UserdevLauncher" - ideaModuleName = "${project.name}_main" - workingDirectory = project.file("run").canonicalPath - environment "target", "fmluserdevserver" - 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)}" + + runs { + client = { + main "net.minecraftforge.userdev.UserdevLauncher" + workingDirectory = project.file("run").canonicalPath + environment "target", "fmluserdevclient" + 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)}" + } + server = { + main "net.minecraftforge.userdev.UserdevLauncher" + workingDirectory = project.file("run").canonicalPath + environment "target", "fmluserdevserver" + 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 { - 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' } diff --git a/gradle.properties b/gradle.properties index 27fea03..ffb6a46 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,7 @@ minecraft_version=1.13 minecraft_version_toml=13 # Forge Version Information -forge_version=24.0.58-1.13-pre +forge_version=24.0.61-1.13-pre forge_version_toml=24 forge_group=net.minecraftforge.test diff --git a/src/main/java/cpw/mods/ironchest/client/renderer/TileEntityIronChestItemRenderer.java b/src/main/java/cpw/mods/ironchest/client/renderer/TileEntityIronChestItemRenderer.java new file mode 100644 index 0000000..e961c53 --- /dev/null +++ b/src/main/java/cpw/mods/ironchest/client/renderer/TileEntityIronChestItemRenderer.java @@ -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); + } + } +} diff --git a/src/main/java/cpw/mods/ironchest/client/renderer/TileEntityIronChestRenderer.java b/src/main/java/cpw/mods/ironchest/client/renderer/TileEntityIronChestRenderer.java index 5348999..fa806af 100644 --- a/src/main/java/cpw/mods/ironchest/client/renderer/TileEntityIronChestRenderer.java +++ b/src/main/java/cpw/mods/ironchest/client/renderer/TileEntityIronChestRenderer.java @@ -13,8 +13,8 @@ package cpw.mods.ironchest.client.renderer; import com.google.common.primitives.SignedBytes; import cpw.mods.ironchest.common.blocks.BlockChest; 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.TileEntityIronChest; import net.minecraft.block.state.IBlockState; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GlStateManager; @@ -64,15 +64,18 @@ public class TileEntityIronChestRenderer exten GlStateManager.enableDepthTest(); GlStateManager.depthFunc(515); GlStateManager.depthMask(true); - IBlockState iblockstate = tileEntityIn.hasWorld() ? - tileEntityIn.getBlockState() : - (IBlockState) IronChestBlocks.ironChestBlock.getDefaultState().with(BlockChest.FACING, EnumFacing.NORTH); - IronChestType chesttype = IronChestType.IRON; - IronChestType typeNew = BlockChest.getTypeFromBlock(iblockstate.getBlock()); + + TileEntityIronChest tileEntity = (TileEntityIronChest) tileEntityIn; + + IBlockState iBlockState = tileEntity.hasWorld() ? + tileEntity.getBlockState() : + (IBlockState) tileEntity.getBlockToUse().getDefaultState().with(BlockChest.FACING, EnumFacing.SOUTH); + IronChestType chestType = IronChestType.IRON; + IronChestType typeNew = BlockChest.getTypeFromBlock(iBlockState.getBlock()); if (typeNew != null) { - chesttype = typeNew; + chestType = typeNew; } if (destroyStage >= 0) @@ -86,12 +89,12 @@ public class TileEntityIronChestRenderer exten } else { - this.bindTexture(chesttype.modelTexture); + this.bindTexture(chestType.modelTexture); } GlStateManager.pushMatrix(); - if (chesttype == IronChestType.CRYSTAL) + if (chestType == IronChestType.CRYSTAL) { GlStateManager.disableCull(); } @@ -100,7 +103,7 @@ public class TileEntityIronChestRenderer exten GlStateManager.translatef((float) x, (float) y + 1.0F, (float) z + 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) { GlStateManager.translatef(0.5F, 0.5F, 0.5F); @@ -108,7 +111,7 @@ public class TileEntityIronChestRenderer exten GlStateManager.translatef(-0.5F, -0.5F, -0.5F); } - if (chesttype.isTransparent()) + if (chestType.isTransparent()) { GlStateManager.scalef(1F, 0.99F, 1F); } @@ -116,7 +119,7 @@ public class TileEntityIronChestRenderer exten this.rotateChestLid(tileEntityIn, partialTicks, model); model.renderAll(); - if (chesttype == IronChestType.CRYSTAL) + if (chestType == IronChestType.CRYSTAL) { GlStateManager.enableCull(); } @@ -131,8 +134,8 @@ public class TileEntityIronChestRenderer exten GlStateManager.matrixMode(5888); } - if (chesttype.isTransparent() - && tileEntityIn.getDistanceSq(this.rendererDispatcher.entityX, this.rendererDispatcher.entityY, this.rendererDispatcher.entityZ) < 128d) + if (chestType.isTransparent() + && tileEntity.getDistanceSq(this.rendererDispatcher.entityX, this.rendererDispatcher.entityY, this.rendererDispatcher.entityZ) < 128d) { this.random.setSeed(254L); @@ -143,7 +146,7 @@ public class TileEntityIronChestRenderer exten float blockScale = 0.70F; 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; blockScale = 0.85F; @@ -155,7 +158,7 @@ public class TileEntityIronChestRenderer exten customitem.setWorld(this.getWorld()); customitem.hoverStart = 0F; - for (ItemStack item : ((TileEntityCrystalChest) tileEntityIn).getTopItems()) + for (ItemStack item : ((TileEntityCrystalChest) tileEntity).getTopItems()) { if (shift > shifts.length || shift > 8) { diff --git a/src/main/java/cpw/mods/ironchest/common/core/IronChestBlocks.java b/src/main/java/cpw/mods/ironchest/common/core/IronChestBlocks.java index 9c399a2..cf1faa6 100644 --- a/src/main/java/cpw/mods/ironchest/common/core/IronChestBlocks.java +++ b/src/main/java/cpw/mods/ironchest/common/core/IronChestBlocks.java @@ -10,6 +10,7 @@ ******************************************************************************/ 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.BlockCopperChest; 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.material.Material; import net.minecraft.item.Item; +import net.minecraft.item.Item.Builder; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.registries.IForgeRegistry; public class IronChestBlocks { + public static Builder itemBuilder; + public static BlockChest ironChestBlock; public static Item ironChestItemBlock; @@ -86,13 +90,15 @@ public class IronChestBlocks { IForgeRegistry itemRegistry = event.getRegistry(); - itemRegistry.register(ironChestItemBlock = new ItemChest(ironChestBlock, (new Item.Builder()).group(IronChestCreativeTabs.IRON_CHESTS))); - 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(copperChestItemBlock = new ItemChest(copperChestBlock, (new Item.Builder()).group(IronChestCreativeTabs.IRON_CHESTS))); - itemRegistry.register(silverChestItemBlock = new ItemChest(silverChestBlock, (new Item.Builder()).group(IronChestCreativeTabs.IRON_CHESTS))); - itemRegistry.register(crystalChestItemBlock = new ItemChest(crystalChestBlock, (new Item.Builder()).group(IronChestCreativeTabs.IRON_CHESTS))); - itemRegistry.register(obsidianChestItemBlock = new ItemChest(obsidianChestBlock, (new Item.Builder()).group(IronChestCreativeTabs.IRON_CHESTS))); - itemRegistry.register(dirtChestItemBlock = new ItemChest(dirtChestBlock, (new Item.Builder()).group(IronChestCreativeTabs.IRON_CHESTS))); + itemBuilder = (new Builder()).group(IronChestCreativeTabs.IRON_CHESTS).setTEISR(() -> TileEntityIronChestItemRenderer::new); + + itemRegistry.register(ironChestItemBlock = new ItemChest(ironChestBlock, itemBuilder)); + itemRegistry.register(goldChestItemBlock = new ItemChest(goldChestBlock, itemBuilder)); + itemRegistry.register(diamondChestItemBlock = new ItemChest(diamondChestBlock, itemBuilder)); + itemRegistry.register(copperChestItemBlock = new ItemChest(copperChestBlock, itemBuilder)); + itemRegistry.register(silverChestItemBlock = new ItemChest(silverChestBlock, itemBuilder)); + itemRegistry.register(crystalChestItemBlock = new ItemChest(crystalChestBlock, itemBuilder)); + itemRegistry.register(obsidianChestItemBlock = new ItemChest(obsidianChestBlock, itemBuilder)); + itemRegistry.register(dirtChestItemBlock = new ItemChest(dirtChestBlock, itemBuilder)); } } diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/IronChestEntityType.java b/src/main/java/cpw/mods/ironchest/common/tileentity/IronChestEntityType.java index dcb9124..c9d78c2 100644 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/IronChestEntityType.java +++ b/src/main/java/cpw/mods/ironchest/common/tileentity/IronChestEntityType.java @@ -107,30 +107,6 @@ public class IronChestEntityType IronChestEntityType.OBSIDIAN_CHEST = (TileEntityType) e.getValue(new ResourceLocation("ironchest", "obsidian_chest")); } - /* - @SubscribeEvent - public void onTileEntityRegistry(final RegistryEvent.Register> 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 registerTileEntityType(IForgeRegistry> registry, T tileEntityType, String name) { register(registry, tileEntityType, new ResourceLocation("ironchest", name)); @@ -160,7 +136,7 @@ public class IronChestEntityType } } - TileEntityType tileentitytype = builder.build(type); - return tileentitytype; + TileEntityType tileEntityType = builder.build(type); + return tileEntityType; } } diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityCopperChest.java b/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityCopperChest.java index 8c637c2..59bc6b0 100644 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityCopperChest.java +++ b/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityCopperChest.java @@ -11,11 +11,12 @@ package cpw.mods.ironchest.common.tileentity; import cpw.mods.ironchest.common.blocks.IronChestType; +import cpw.mods.ironchest.common.core.IronChestBlocks; public class TileEntityCopperChest extends TileEntityIronChest { public TileEntityCopperChest() { - super(IronChestEntityType.COPPER_CHEST, IronChestType.COPPER); + super(IronChestEntityType.COPPER_CHEST, IronChestType.COPPER, IronChestBlocks.copperChestBlock); } } diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityCrystalChest.java b/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityCrystalChest.java index 6ccfec0..85f877c 100644 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityCrystalChest.java +++ b/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityCrystalChest.java @@ -11,6 +11,7 @@ package cpw.mods.ironchest.common.tileentity; import cpw.mods.ironchest.common.blocks.IronChestType; +import cpw.mods.ironchest.common.core.IronChestBlocks; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -32,7 +33,7 @@ public class TileEntityCrystalChest extends TileEntityIronChest public TileEntityCrystalChest() { - super(IronChestEntityType.CRYSTAL_CHEST, IronChestType.CRYSTAL); + super(IronChestEntityType.CRYSTAL_CHEST, IronChestType.CRYSTAL, IronChestBlocks.crystalChestBlock); this.topStacks = NonNullList.withSize(8, ItemStack.EMPTY); } diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityDiamondChest.java b/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityDiamondChest.java index 85c29d5..75fadc0 100644 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityDiamondChest.java +++ b/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityDiamondChest.java @@ -11,11 +11,12 @@ package cpw.mods.ironchest.common.tileentity; import cpw.mods.ironchest.common.blocks.IronChestType; +import cpw.mods.ironchest.common.core.IronChestBlocks; public class TileEntityDiamondChest extends TileEntityIronChest { public TileEntityDiamondChest() { - super(IronChestEntityType.DIAMOND_CHEST, IronChestType.DIAMOND); + super(IronChestEntityType.DIAMOND_CHEST, IronChestType.DIAMOND, IronChestBlocks.diamondChestBlock); } } diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityDirtChest.java b/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityDirtChest.java index 858a8d0..56bec1a 100644 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityDirtChest.java +++ b/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityDirtChest.java @@ -11,6 +11,7 @@ package cpw.mods.ironchest.common.tileentity; import cpw.mods.ironchest.common.blocks.IronChestType; +import cpw.mods.ironchest.common.core.IronChestBlocks; import net.minecraft.client.resources.I18n; import net.minecraft.entity.EntityLivingBase; import net.minecraft.init.Items; @@ -24,26 +25,20 @@ public class TileEntityDirtChest extends TileEntityIronChest { private static ItemStack dirtChest9000GuideBook = new ItemStack(Items.WRITTEN_BOOK); - static - { - 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); - } + private static boolean bookDataCreated = false; public TileEntityDirtChest() { - super(IronChestEntityType.DIRT_CHEST, IronChestType.DIRTCHEST9000); + super(IronChestEntityType.DIRT_CHEST, IronChestType.DIRTCHEST9000, IronChestBlocks.dirtChestBlock); + + if (!bookDataCreated) + { + createBookData(); + } } @Override - public void wasPlaced(EntityLivingBase entityliving, ItemStack itemStack) + public void wasPlaced(EntityLivingBase entityLivingBase, ItemStack itemStack) { if (!(itemStack.hasTag() && itemStack.getTag().getBoolean("dirtchest"))) { @@ -59,4 +54,22 @@ public class TileEntityDirtChest extends TileEntityIronChest 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; + } } diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityGoldChest.java b/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityGoldChest.java index d20aff4..805abc1 100644 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityGoldChest.java +++ b/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityGoldChest.java @@ -11,11 +11,12 @@ package cpw.mods.ironchest.common.tileentity; import cpw.mods.ironchest.common.blocks.IronChestType; +import cpw.mods.ironchest.common.core.IronChestBlocks; public class TileEntityGoldChest extends TileEntityIronChest { public TileEntityGoldChest() { - super(IronChestEntityType.GOLD_CHEST, IronChestType.GOLD); + super(IronChestEntityType.GOLD_CHEST, IronChestType.GOLD, IronChestBlocks.goldChestBlock); } } diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityIronChest.java b/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityIronChest.java index b7d7c20..3afd372 100644 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityIronChest.java +++ b/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityIronChest.java @@ -13,6 +13,7 @@ package cpw.mods.ironchest.common.tileentity; import cpw.mods.ironchest.common.blocks.BlockChest; import cpw.mods.ironchest.common.blocks.BlockIronChest; import cpw.mods.ironchest.common.blocks.IronChestType; +import cpw.mods.ironchest.common.core.IronChestBlocks; import cpw.mods.ironchest.common.gui.ContainerIronChest; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; @@ -61,17 +62,19 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements IChes private int ticksSinceSync; private IronChestType chestType; + private Block blockToUse; 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); this.chestType = chestTypeIn; this.chestContents = NonNullList.withSize(chestTypeIn.size, ItemStack.EMPTY); + this.blockToUse = blockToUseIn; } @Override @@ -363,4 +366,9 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements IChes return 0; } + + public Block getBlockToUse() + { + return this.blockToUse; + } } diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityObsidianChest.java b/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityObsidianChest.java index c59a8b2..e50b8a3 100644 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityObsidianChest.java +++ b/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntityObsidianChest.java @@ -11,11 +11,12 @@ package cpw.mods.ironchest.common.tileentity; import cpw.mods.ironchest.common.blocks.IronChestType; +import cpw.mods.ironchest.common.core.IronChestBlocks; public class TileEntityObsidianChest extends TileEntityIronChest { public TileEntityObsidianChest() { - super(IronChestEntityType.OBSIDIAN_CHEST, IronChestType.OBSIDIAN); + super(IronChestEntityType.OBSIDIAN_CHEST, IronChestType.OBSIDIAN, IronChestBlocks.obsidianChestBlock); } } diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntitySilverChest.java b/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntitySilverChest.java index 74bfa9c..5980103 100644 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntitySilverChest.java +++ b/src/main/java/cpw/mods/ironchest/common/tileentity/TileEntitySilverChest.java @@ -11,11 +11,12 @@ package cpw.mods.ironchest.common.tileentity; import cpw.mods.ironchest.common.blocks.IronChestType; +import cpw.mods.ironchest.common.core.IronChestBlocks; public class TileEntitySilverChest extends TileEntityIronChest { public TileEntitySilverChest() { - super(IronChestEntityType.SILVER_CHEST, IronChestType.SILVER); + super(IronChestEntityType.SILVER_CHEST, IronChestType.SILVER, IronChestBlocks.silverChestBlock); } } diff --git a/src/main/java/mcp/MethodsReturnNonnullByDefault.java b/src/main/java/mcp/MethodsReturnNonnullByDefault.java deleted file mode 100644 index 485bb9d..0000000 --- a/src/main/java/mcp/MethodsReturnNonnullByDefault.java +++ /dev/null @@ -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: - *
    - *
  • An explicit nullness annotation - *
  • The method overrides a method in a superclass (in which case the - * annotation of the corresponding method in the superclass applies) - *
  • there is a default parameter annotation applied to a more tightly nested - * element. - *
- * - */ -@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 {} \ No newline at end of file