diff --git a/src/main/java/cpw/mods/ironchest/IronChest.java b/src/main/java/cpw/mods/ironchest/IronChest.java index 757cf84..45f0de2 100755 --- a/src/main/java/cpw/mods/ironchest/IronChest.java +++ b/src/main/java/cpw/mods/ironchest/IronChest.java @@ -13,7 +13,7 @@ package cpw.mods.ironchest; import java.util.Properties; import cpw.mods.ironchest.common.CommonProxy; -import cpw.mods.ironchest.common.ICContent; +import cpw.mods.ironchest.common.lib.BlockLists; import cpw.mods.ironchest.common.network.MessageCrystalChestSync; import cpw.mods.ironchest.common.network.MessageCrystalShulkerSync; import cpw.mods.ironchest.common.util.MissingMappingsHandler; @@ -57,8 +57,6 @@ public class IronChest event.getModMetadata().version = String.format("%s.%s.%s build %s", major, minor, rev, build); } - MinecraftForge.EVENT_BUS.register(new ICContent()); - proxy.preInit(); NetworkRegistry.INSTANCE.registerGuiHandler(instance, proxy); @@ -74,6 +72,8 @@ public class IronChest int messageId = 0; packetHandler.registerMessage(MessageCrystalChestSync.Handler.class, MessageCrystalChestSync.class, messageId++, Side.CLIENT); packetHandler.registerMessage(MessageCrystalShulkerSync.Handler.class, MessageCrystalShulkerSync.class, messageId++, Side.CLIENT); + + BlockLists.createShulkerItemList(); } } diff --git a/src/main/java/cpw/mods/ironchest/client/renderer/chest/TileEntityIronChestRenderer.java b/src/main/java/cpw/mods/ironchest/client/renderer/chest/TileEntityIronChestRenderer.java index 4a4c188..c466cab 100755 --- a/src/main/java/cpw/mods/ironchest/client/renderer/chest/TileEntityIronChestRenderer.java +++ b/src/main/java/cpw/mods/ironchest/client/renderer/chest/TileEntityIronChestRenderer.java @@ -14,9 +14,9 @@ import java.util.Random; import com.google.common.primitives.SignedBytes; -import cpw.mods.ironchest.common.ICContent; import cpw.mods.ironchest.common.blocks.chest.BlockIronChest; import cpw.mods.ironchest.common.blocks.chest.IronChestType; +import cpw.mods.ironchest.common.core.IronChestBlocks; import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest; import net.minecraft.block.state.IBlockState; import net.minecraft.client.Minecraft; @@ -61,7 +61,7 @@ public class TileEntityIronChestRenderer extends TileEntitySpecialRenderer - * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common; - -import cpw.mods.ironchest.IronChest; -import cpw.mods.ironchest.common.blocks.chest.BlockIronChest; -import cpw.mods.ironchest.common.blocks.chest.IronChestType; -import cpw.mods.ironchest.common.blocks.shulker.BlockIronShulkerBox; -import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; -import cpw.mods.ironchest.common.items.ChestChangerType; -import cpw.mods.ironchest.common.items.ShulkerBoxChangerType; -import cpw.mods.ironchest.common.items.chest.ItemIronChest; -import cpw.mods.ironchest.common.items.shulker.ItemIronShulkerBox; -import cpw.mods.ironchest.common.lib.BlockLists; -import cpw.mods.ironchest.common.util.BlockNames; -import cpw.mods.ironchest.common.util.CreativeTab; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.block.model.ModelResourceLocation; -import net.minecraft.init.Blocks; -import net.minecraft.item.EnumDyeColor; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.event.ModelRegistryEvent; -import net.minecraftforge.client.model.ModelLoader; -import net.minecraftforge.event.RegistryEvent.Register; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.registry.GameRegistry; -import net.minecraftforge.fml.common.registry.GameRegistry.ObjectHolder; - -@ObjectHolder(IronChest.MOD_ID) -public class ICContent -{ - //@formatter:off - public static CreativeTab tabGeneral = new CreativeTab("IronChest", new ItemStack(Item.getItemFromBlock(Blocks.SLIME_BLOCK))); - - @ObjectHolder(BlockNames.IRON_CHEST) - public static BlockIronChest ironChestBlock = new BlockIronChest(); - - @ObjectHolder(BlockNames.IRON_CHEST) - public static Item ironChestItemBlock = new ItemIronChest(ironChestBlock); - - @ObjectHolder(BlockNames.WHITE_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxWhiteBlock = new BlockIronShulkerBox(EnumDyeColor.WHITE); - @ObjectHolder(BlockNames.ORANGE_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxOrangeBlock = new BlockIronShulkerBox(EnumDyeColor.ORANGE); - @ObjectHolder(BlockNames.MAGENTA_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxMagentaBlock = new BlockIronShulkerBox(EnumDyeColor.MAGENTA); - @ObjectHolder(BlockNames.LIGHT_BLUE_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxLightBlueBlock = new BlockIronShulkerBox(EnumDyeColor.LIGHT_BLUE); - @ObjectHolder(BlockNames.YELLOW_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxYellowBlock = new BlockIronShulkerBox(EnumDyeColor.YELLOW); - @ObjectHolder(BlockNames.LIME_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxLimeBlock = new BlockIronShulkerBox(EnumDyeColor.LIME); - @ObjectHolder(BlockNames.PINK_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxPinkBlock = new BlockIronShulkerBox(EnumDyeColor.PINK); - @ObjectHolder(BlockNames.GRAY_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxGrayBlock = new BlockIronShulkerBox(EnumDyeColor.GRAY); - @ObjectHolder(BlockNames.SILVER_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxSilverBlock = new BlockIronShulkerBox(EnumDyeColor.SILVER); - @ObjectHolder(BlockNames.CYAN_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxCyanBlock = new BlockIronShulkerBox(EnumDyeColor.CYAN); - @ObjectHolder(BlockNames.PURPLE_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxPurpleBlock = new BlockIronShulkerBox(EnumDyeColor.PURPLE); - @ObjectHolder(BlockNames.BLUE_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxBlueBlock = new BlockIronShulkerBox(EnumDyeColor.BLUE); - @ObjectHolder(BlockNames.BROWN_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxBrownBlock = new BlockIronShulkerBox(EnumDyeColor.BROWN); - @ObjectHolder(BlockNames.GREEN_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxGreenBlock = new BlockIronShulkerBox(EnumDyeColor.GREEN); - @ObjectHolder(BlockNames.RED_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxRedBlock = new BlockIronShulkerBox(EnumDyeColor.RED); - @ObjectHolder(BlockNames.BLACK_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxBlackBlock = new BlockIronShulkerBox(EnumDyeColor.BLACK); - - @ObjectHolder(BlockNames.WHITE_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxWhiteItemBlock = new ItemIronShulkerBox(ironShulkerBoxWhiteBlock, EnumDyeColor.WHITE); - @ObjectHolder(BlockNames.ORANGE_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxOrangeItemBlock = new ItemIronShulkerBox(ironShulkerBoxOrangeBlock, EnumDyeColor.ORANGE); - @ObjectHolder(BlockNames.MAGENTA_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxMagentaItemBlock = new ItemIronShulkerBox(ironShulkerBoxMagentaBlock, EnumDyeColor.MAGENTA); - @ObjectHolder(BlockNames.LIGHT_BLUE_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxLightBlueItemBlock = new ItemIronShulkerBox(ironShulkerBoxLightBlueBlock, EnumDyeColor.LIGHT_BLUE); - @ObjectHolder(BlockNames.YELLOW_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxYellowItemBlock = new ItemIronShulkerBox(ironShulkerBoxYellowBlock, EnumDyeColor.YELLOW); - @ObjectHolder(BlockNames.LIME_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxLimeItemBlock = new ItemIronShulkerBox(ironShulkerBoxLimeBlock, EnumDyeColor.LIME); - @ObjectHolder(BlockNames.PINK_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxPinkItemBlock = new ItemIronShulkerBox(ironShulkerBoxPinkBlock, EnumDyeColor.PINK); - @ObjectHolder(BlockNames.GRAY_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxGrayItemBlock = new ItemIronShulkerBox(ironShulkerBoxGrayBlock, EnumDyeColor.GRAY); - @ObjectHolder(BlockNames.SILVER_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxSilverItemBlock = new ItemIronShulkerBox(ironShulkerBoxSilverBlock, EnumDyeColor.SILVER); - @ObjectHolder(BlockNames.CYAN_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxCyanItemBlock = new ItemIronShulkerBox(ironShulkerBoxCyanBlock, EnumDyeColor.CYAN); - @ObjectHolder(BlockNames.PURPLE_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxPurpleItemBlock = new ItemIronShulkerBox(ironShulkerBoxPurpleBlock, EnumDyeColor.PURPLE); - @ObjectHolder(BlockNames.BLUE_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxBlueItemBlock = new ItemIronShulkerBox(ironShulkerBoxBlueBlock, EnumDyeColor.BLUE); - @ObjectHolder(BlockNames.BROWN_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxBrownItemBlock = new ItemIronShulkerBox(ironShulkerBoxBrownBlock, EnumDyeColor.BROWN); - @ObjectHolder(BlockNames.GREEN_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxGreenItemBlock = new ItemIronShulkerBox(ironShulkerBoxGreenBlock, EnumDyeColor.GREEN); - @ObjectHolder(BlockNames.RED_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxRedItemBlock = new ItemIronShulkerBox(ironShulkerBoxRedBlock, EnumDyeColor.RED); - @ObjectHolder(BlockNames.BLACK_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxBlackItemBlock = new ItemIronShulkerBox(ironShulkerBoxBlackBlock, EnumDyeColor.BLACK); - //@formatter:on - - @SubscribeEvent - public void registerBlocks(Register event) - { - // Chests Start - event.getRegistry().register(ironChestBlock); - - for (IronChestType typ : IronChestType.VALUES) - { - if (typ.clazz != null) - { - GameRegistry.registerTileEntity(typ.clazz, "IronChest." + typ.name()); - } - } - - tabGeneral.setDisplayIcon(new ItemStack(ironChestBlock, 1, IronChestType.IRON.ordinal())); - // Chests End - - // Shulkers Start - BlockLists.createVanillaShulkerBlockList(); - - registerShulkerBlocks(event); - - for (IronShulkerBoxType typ : IronShulkerBoxType.VALUES) - { - if (typ.clazz != null) - { - GameRegistry.registerTileEntity(typ.clazz, "IronShulkerBox." + typ.name()); - } - } - - BlockLists.createIronShulkerBlockList(); - // Shulkers End - } - - @SubscribeEvent - public void registerItems(Register event) - { - // Chests Start - event.getRegistry().register(ironChestItemBlock); - - ChestChangerType.buildItems(event); - // Chests End - - // Shulkers Start - registerShulkerItemBlocks(event); - - ShulkerBoxChangerType.buildItems(event); - - BlockLists.createShulkerItemList(); - - BlockLists.registerBlockBehavior(); - // Shulkers End - } - - @SubscribeEvent - public void registerModels(ModelRegistryEvent event) - { - // Chests Start - Item chestItem = Item.getItemFromBlock(ICContent.ironChestBlock); - - for (IronChestType type : IronChestType.values()) - { - if (type != IronChestType.WOOD) - { - //@formatter:off - ModelLoader.setCustomModelResourceLocation(chestItem, type.ordinal(), new ModelResourceLocation(chestItem.getRegistryName(), "variant=" + type.getName())); - //@formatter:on - } - } - - for (ChestChangerType type : ChestChangerType.VALUES) - { - //@formatter:off - ModelLoader.setCustomModelResourceLocation(type.item, 0, new ModelResourceLocation(new ResourceLocation(IronChest.MOD_ID, "iron_chest_upgrades"), "variant=" + type.itemName.toLowerCase())); - //@formatter:on - } - // Chests End - - // Shulkers Start - for (Block shulker : BlockLists.SHULKER_BLOCKS) - { - Item shulkerBoxItem = Item.getItemFromBlock(shulker); - - for (IronShulkerBoxType type : IronShulkerBoxType.values()) - { - if (type != IronShulkerBoxType.VANILLA) - { - //@formatter:off - ModelLoader.setCustomModelResourceLocation(shulkerBoxItem, type.ordinal(), new ModelResourceLocation(shulkerBoxItem.getRegistryName(), "variant=" + type.getName())); - //@formatter:on - } - } - } - - for (ShulkerBoxChangerType type : ShulkerBoxChangerType.VALUES) - { - //@formatter:off - ModelLoader.setCustomModelResourceLocation(type.item, 0, new ModelResourceLocation(new ResourceLocation(IronChest.MOD_ID, "iron_shulker_box_upgrades"), "variant=" + type.itemName.toLowerCase())); - //@formatter:on - } - // Shulker End - } - - private static void registerShulkerBlocks(Register event) - { - event.getRegistry().registerAll(ironShulkerBoxWhiteBlock, ironShulkerBoxOrangeBlock, ironShulkerBoxMagentaBlock, ironShulkerBoxLightBlueBlock, ironShulkerBoxYellowBlock, ironShulkerBoxLimeBlock, ironShulkerBoxPinkBlock, ironShulkerBoxGrayBlock, ironShulkerBoxSilverBlock, ironShulkerBoxCyanBlock, ironShulkerBoxPurpleBlock, ironShulkerBoxBlueBlock, ironShulkerBoxBrownBlock, ironShulkerBoxGreenBlock, ironShulkerBoxRedBlock, ironShulkerBoxBlackBlock); - } - - private static void registerShulkerItemBlocks(Register event) - { - event.getRegistry().registerAll(ironShulkerBoxWhiteItemBlock, ironShulkerBoxOrangeItemBlock, ironShulkerBoxMagentaItemBlock, ironShulkerBoxLightBlueItemBlock, ironShulkerBoxYellowItemBlock, ironShulkerBoxLimeItemBlock, ironShulkerBoxPinkItemBlock, ironShulkerBoxGrayItemBlock, ironShulkerBoxSilverItemBlock, ironShulkerBoxCyanItemBlock, ironShulkerBoxPurpleItemBlock, ironShulkerBoxBlueItemBlock, ironShulkerBoxBrownItemBlock, ironShulkerBoxGreenItemBlock, ironShulkerBoxRedItemBlock, ironShulkerBoxBlackItemBlock); - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/ai/IronChestAIOcelotSit.java b/src/main/java/cpw/mods/ironchest/common/ai/IronChestAIOcelotSit.java index 11ea4e9..ee37910 100755 --- a/src/main/java/cpw/mods/ironchest/common/ai/IronChestAIOcelotSit.java +++ b/src/main/java/cpw/mods/ironchest/common/ai/IronChestAIOcelotSit.java @@ -10,7 +10,7 @@ ******************************************************************************/ package cpw.mods.ironchest.common.ai; -import cpw.mods.ironchest.common.ICContent; +import cpw.mods.ironchest.common.core.IronChestBlocks; import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; @@ -42,7 +42,7 @@ public class IronChestAIOcelotSit extends EntityAIOcelotSit IBlockState iblockstate = worldIn.getBlockState(pos); Block block = iblockstate.getBlock(); - if (block == ICContent.ironChestBlock) + if (block == IronChestBlocks.ironChestBlock) { TileEntity tileentity = worldIn.getTileEntity(pos); diff --git a/src/main/java/cpw/mods/ironchest/common/blocks/chest/BlockIronChest.java b/src/main/java/cpw/mods/ironchest/common/blocks/chest/BlockIronChest.java index 23db80e..dde7a1d 100755 --- a/src/main/java/cpw/mods/ironchest/common/blocks/chest/BlockIronChest.java +++ b/src/main/java/cpw/mods/ironchest/common/blocks/chest/BlockIronChest.java @@ -13,7 +13,7 @@ package cpw.mods.ironchest.common.blocks.chest; import javax.annotation.Nullable; import cpw.mods.ironchest.IronChest; -import cpw.mods.ironchest.common.ICContent; +import cpw.mods.ironchest.common.core.IronChestCreativeTabs; import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest; import cpw.mods.ironchest.common.util.BlockNames; import net.minecraft.block.Block; @@ -53,11 +53,11 @@ public class BlockIronChest extends Block { super(Material.IRON); - this.setRegistryName(new ResourceLocation(IronChest.MOD_ID, BlockNames.IRON_CHEST)); + this.setRegistryName(new ResourceLocation(BlockNames.IRON_CHEST)); this.setDefaultState(this.blockState.getBaseState().withProperty(VARIANT_PROP, IronChestType.IRON)); this.setHardness(3.0F); this.setUnlocalizedName("IronChest"); - this.setCreativeTab(ICContent.tabGeneral); + this.setCreativeTab(IronChestCreativeTabs.tabIronChests); } @Override diff --git a/src/main/java/cpw/mods/ironchest/common/blocks/shulker/BlockIronShulkerBox.java b/src/main/java/cpw/mods/ironchest/common/blocks/shulker/BlockIronShulkerBox.java index 77ccbb7..62bbd43 100644 --- a/src/main/java/cpw/mods/ironchest/common/blocks/shulker/BlockIronShulkerBox.java +++ b/src/main/java/cpw/mods/ironchest/common/blocks/shulker/BlockIronShulkerBox.java @@ -15,7 +15,8 @@ import java.util.List; import javax.annotation.Nullable; import cpw.mods.ironchest.IronChest; -import cpw.mods.ironchest.common.ICContent; +import cpw.mods.ironchest.common.core.IronChestBlocks; +import cpw.mods.ironchest.common.core.IronChestCreativeTabs; import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox; import net.minecraft.block.Block; import net.minecraft.block.material.EnumPushReaction; @@ -40,7 +41,6 @@ import net.minecraft.util.EnumBlockRenderType; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.NonNullList; -import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.TextFormatting; @@ -55,19 +55,21 @@ import net.minecraftforge.fml.relauncher.SideOnly; public class BlockIronShulkerBox extends Block { public static final PropertyEnum VARIANT_PROP = PropertyEnum.create("variant", IronShulkerBoxType.class); + private final EnumDyeColor color; + private EnumFacing facingDirection; - public BlockIronShulkerBox(EnumDyeColor colorIn) + public BlockIronShulkerBox(EnumDyeColor colorIn, String nameIn) { super(Material.IRON); this.color = colorIn; - this.setRegistryName(new ResourceLocation(IronChest.MOD_ID, "iron_shulker_box_" + colorIn.getName())); + this.setRegistryName(nameIn); this.setUnlocalizedName("IronShulkerBox" + colorIn.getName()); this.setDefaultState(this.blockState.getBaseState().withProperty(VARIANT_PROP, IronShulkerBoxType.IRON)); this.setHardness(3.0F); - this.setCreativeTab(ICContent.tabGeneral); + this.setCreativeTab(IronChestCreativeTabs.tabIronChests); } /** @@ -459,38 +461,38 @@ public class BlockIronShulkerBox extends Block switch (colorIn) { case WHITE: - return ICContent.ironShulkerBoxWhiteBlock; + return IronChestBlocks.ironShulkerBoxWhiteBlock; case ORANGE: - return ICContent.ironShulkerBoxOrangeBlock; + return IronChestBlocks.ironShulkerBoxOrangeBlock; case MAGENTA: - return ICContent.ironShulkerBoxMagentaBlock; + return IronChestBlocks.ironShulkerBoxMagentaBlock; case LIGHT_BLUE: - return ICContent.ironShulkerBoxLightBlueBlock; + return IronChestBlocks.ironShulkerBoxLightBlueBlock; case YELLOW: - return ICContent.ironShulkerBoxYellowBlock; + return IronChestBlocks.ironShulkerBoxYellowBlock; case LIME: - return ICContent.ironShulkerBoxLimeBlock; + return IronChestBlocks.ironShulkerBoxLimeBlock; case PINK: - return ICContent.ironShulkerBoxPinkBlock; + return IronChestBlocks.ironShulkerBoxPinkBlock; case GRAY: - return ICContent.ironShulkerBoxGrayBlock; + return IronChestBlocks.ironShulkerBoxGrayBlock; case SILVER: - return ICContent.ironShulkerBoxSilverBlock; + return IronChestBlocks.ironShulkerBoxSilverBlock; case CYAN: - return ICContent.ironShulkerBoxCyanBlock; + return IronChestBlocks.ironShulkerBoxCyanBlock; case PURPLE: default: - return ICContent.ironShulkerBoxPurpleBlock; + return IronChestBlocks.ironShulkerBoxPurpleBlock; case BLUE: - return ICContent.ironShulkerBoxBlueBlock; + return IronChestBlocks.ironShulkerBoxBlueBlock; case BROWN: - return ICContent.ironShulkerBoxBrownBlock; + return IronChestBlocks.ironShulkerBoxBrownBlock; case GREEN: - return ICContent.ironShulkerBoxGreenBlock; + return IronChestBlocks.ironShulkerBoxGreenBlock; case RED: - return ICContent.ironShulkerBoxRedBlock; + return IronChestBlocks.ironShulkerBoxRedBlock; case BLACK: - return ICContent.ironShulkerBoxBlackBlock; + return IronChestBlocks.ironShulkerBoxBlackBlock; } } @@ -521,4 +523,4 @@ public class BlockIronShulkerBox extends Block return tileentity != null && tileentity.receiveClientEvent(id, param); } -} \ No newline at end of file +} diff --git a/src/main/java/cpw/mods/ironchest/common/core/IronChestBlocks.java b/src/main/java/cpw/mods/ironchest/common/core/IronChestBlocks.java new file mode 100644 index 0000000..1721e8a --- /dev/null +++ b/src/main/java/cpw/mods/ironchest/common/core/IronChestBlocks.java @@ -0,0 +1,187 @@ +package cpw.mods.ironchest.common.core; + +import cpw.mods.ironchest.IronChest; +import cpw.mods.ironchest.common.blocks.chest.BlockIronChest; +import cpw.mods.ironchest.common.blocks.chest.IronChestType; +import cpw.mods.ironchest.common.blocks.shulker.BlockIronShulkerBox; +import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; +import cpw.mods.ironchest.common.items.chest.ItemIronChest; +import cpw.mods.ironchest.common.items.shulker.ItemIronShulkerBox; +import cpw.mods.ironchest.common.lib.BlockLists; +import cpw.mods.ironchest.common.util.BlockNames; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.block.model.ModelResourceLocation; +import net.minecraft.item.EnumDyeColor; +import net.minecraft.item.Item; +import net.minecraftforge.client.event.ModelRegistryEvent; +import net.minecraftforge.client.model.ModelLoader; +import net.minecraftforge.event.RegistryEvent.Register; +import net.minecraftforge.fml.common.Mod.EventBusSubscriber; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.registry.GameRegistry; +import net.minecraftforge.fml.common.registry.GameRegistry.ObjectHolder; +import net.minecraftforge.registries.IForgeRegistry; + +public class IronChestBlocks +{ + @ObjectHolder(BlockNames.IRON_CHEST) + public static BlockIronChest ironChestBlock; + + @ObjectHolder(BlockNames.IRON_CHEST) + public static Item ironChestItemBlock; + + //@formatter:off + @ObjectHolder(BlockNames.WHITE_SHULKER) + public static final BlockIronShulkerBox ironShulkerBoxWhiteBlock = null; + @ObjectHolder(BlockNames.ORANGE_SHULKER) + public static BlockIronShulkerBox ironShulkerBoxOrangeBlock; + @ObjectHolder(BlockNames.MAGENTA_SHULKER) + public static BlockIronShulkerBox ironShulkerBoxMagentaBlock; + @ObjectHolder(BlockNames.LIGHT_BLUE_SHULKER) + public static BlockIronShulkerBox ironShulkerBoxLightBlueBlock; + @ObjectHolder(BlockNames.YELLOW_SHULKER) + public static BlockIronShulkerBox ironShulkerBoxYellowBlock; + @ObjectHolder(BlockNames.LIME_SHULKER) + public static BlockIronShulkerBox ironShulkerBoxLimeBlock; + @ObjectHolder(BlockNames.PINK_SHULKER) + public static BlockIronShulkerBox ironShulkerBoxPinkBlock; + @ObjectHolder(BlockNames.GRAY_SHULKER) + public static BlockIronShulkerBox ironShulkerBoxGrayBlock; + @ObjectHolder(BlockNames.SILVER_SHULKER) + public static BlockIronShulkerBox ironShulkerBoxSilverBlock; + @ObjectHolder(BlockNames.CYAN_SHULKER) + public static BlockIronShulkerBox ironShulkerBoxCyanBlock; + @ObjectHolder(BlockNames.PURPLE_SHULKER) + public static BlockIronShulkerBox ironShulkerBoxPurpleBlock; + @ObjectHolder(BlockNames.BLUE_SHULKER) + public static BlockIronShulkerBox ironShulkerBoxBlueBlock; + @ObjectHolder(BlockNames.BROWN_SHULKER) + public static BlockIronShulkerBox ironShulkerBoxBrownBlock; + @ObjectHolder(BlockNames.GREEN_SHULKER) + public static BlockIronShulkerBox ironShulkerBoxGreenBlock; + @ObjectHolder(BlockNames.RED_SHULKER) + public static BlockIronShulkerBox ironShulkerBoxRedBlock; + @ObjectHolder(BlockNames.BLACK_SHULKER) + public static BlockIronShulkerBox ironShulkerBoxBlackBlock; + + @ObjectHolder(BlockNames.WHITE_SHULKER) + public static ItemIronShulkerBox ironShulkerBoxWhiteItemBlock; + @ObjectHolder(BlockNames.ORANGE_SHULKER) + public static ItemIronShulkerBox ironShulkerBoxOrangeItemBlock; + @ObjectHolder(BlockNames.MAGENTA_SHULKER) + public static ItemIronShulkerBox ironShulkerBoxMagentaItemBlock; + @ObjectHolder(BlockNames.LIGHT_BLUE_SHULKER) + public static ItemIronShulkerBox ironShulkerBoxLightBlueItemBlock; + @ObjectHolder(BlockNames.YELLOW_SHULKER) + public static ItemIronShulkerBox ironShulkerBoxYellowItemBlock; + @ObjectHolder(BlockNames.LIME_SHULKER) + public static ItemIronShulkerBox ironShulkerBoxLimeItemBlock; + @ObjectHolder(BlockNames.PINK_SHULKER) + public static ItemIronShulkerBox ironShulkerBoxPinkItemBlock; + @ObjectHolder(BlockNames.GRAY_SHULKER) + public static ItemIronShulkerBox ironShulkerBoxGrayItemBlock; + @ObjectHolder(BlockNames.SILVER_SHULKER) + public static ItemIronShulkerBox ironShulkerBoxSilverItemBlock; + @ObjectHolder(BlockNames.CYAN_SHULKER) + public static ItemIronShulkerBox ironShulkerBoxCyanItemBlock; + @ObjectHolder(BlockNames.PURPLE_SHULKER) + public static ItemIronShulkerBox ironShulkerBoxPurpleItemBlock; + @ObjectHolder(BlockNames.BLUE_SHULKER) + public static ItemIronShulkerBox ironShulkerBoxBlueItemBlock; + @ObjectHolder(BlockNames.BROWN_SHULKER) + public static ItemIronShulkerBox ironShulkerBoxBrownItemBlock; + @ObjectHolder(BlockNames.GREEN_SHULKER) + public static ItemIronShulkerBox ironShulkerBoxGreenItemBlock; + @ObjectHolder(BlockNames.RED_SHULKER) + public static ItemIronShulkerBox ironShulkerBoxRedItemBlock; + @ObjectHolder(BlockNames.BLACK_SHULKER) + public static ItemIronShulkerBox ironShulkerBoxBlackItemBlock; + //@formatter:on + + @EventBusSubscriber(modid = IronChest.MOD_ID) + public static class Registration + { + @SubscribeEvent + public static void registerBlocks(Register event) + { + IForgeRegistry blockRegistry = event.getRegistry(); + + // Chest Start + blockRegistry.register(new BlockIronChest()); + + for (IronChestType typ : IronChestType.VALUES) + { + if (typ.clazz != null) + { + GameRegistry.registerTileEntity(typ.clazz, "IronChest." + typ.name()); + } + } + // Chest End + + // Shulker Start + for (EnumDyeColor color : EnumDyeColor.values()) + { + blockRegistry.register(new BlockIronShulkerBox(color, BlockNames.SHULKER_NAMES[color.getMetadata()])); + } + + for (IronShulkerBoxType typ : IronShulkerBoxType.VALUES) + { + if (typ.clazz != null) + { + GameRegistry.registerTileEntity(typ.clazz, "IronShulkerBox." + typ.name()); + } + } + // Shulker End + } + + @SubscribeEvent + public static void registerItems(Register event) + { + BlockLists.createIronShulkerBlockList(); + + IForgeRegistry itemRegistry = event.getRegistry(); + + // Chest Start + itemRegistry.register(new ItemIronChest(IronChestBlocks.ironChestBlock)); + // Chest End + + // Shulker Start + for (EnumDyeColor color : EnumDyeColor.values()) + { + itemRegistry.register(new ItemIronShulkerBox(BlockLists.SHULKER_BLOCKS.get(color.getMetadata()), color)); + } + // Shulker End + } + + @SubscribeEvent + public static void registerModels(ModelRegistryEvent event) + { + // Chest Start + Item chestItem = Item.getItemFromBlock(IronChestBlocks.ironChestBlock); + + for (IronChestType type : IronChestType.values()) + { + if (type != IronChestType.WOOD) + { + ModelLoader.setCustomModelResourceLocation(chestItem, type.ordinal(), new ModelResourceLocation(chestItem.getRegistryName(), "variant=" + type.getName())); + } + } + // Chest End + + // Shulker Start + for (Block shulker : BlockLists.SHULKER_BLOCKS) + { + Item shulkerBoxItem = Item.getItemFromBlock(shulker); + + for (IronShulkerBoxType type : IronShulkerBoxType.values()) + { + if (type != IronShulkerBoxType.VANILLA) + { + ModelLoader.setCustomModelResourceLocation(shulkerBoxItem, type.ordinal(), new ModelResourceLocation(shulkerBoxItem.getRegistryName(), "variant=" + type.getName())); + } + } + } + // Shulker End + } + } +} diff --git a/src/main/java/cpw/mods/ironchest/common/core/IronChestCreativeTabs.java b/src/main/java/cpw/mods/ironchest/common/core/IronChestCreativeTabs.java new file mode 100644 index 0000000..ee3ca0d --- /dev/null +++ b/src/main/java/cpw/mods/ironchest/common/core/IronChestCreativeTabs.java @@ -0,0 +1,37 @@ +package cpw.mods.ironchest.common.core; + +import javax.annotation.Nonnull; + +import cpw.mods.ironchest.common.blocks.chest.IronChestType; +import cpw.mods.ironchest.common.util.CreativeTabItems; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.NonNullList; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +public final class IronChestCreativeTabs +{ + private IronChestCreativeTabs() + { + } + + public static final CreativeTabs tabIronChests = new CreativeTabs("ironchest") + { + @Override + @Nonnull + @SideOnly(Side.CLIENT) + public ItemStack getTabIconItem() + { + return new ItemStack(Item.getItemFromBlock(IronChestBlocks.ironChestBlock), 1, IronChestType.IRON.ordinal()); + } + + @SideOnly(Side.CLIENT) + @Override + public void displayAllRelevantItems(NonNullList listIn) + { + CreativeTabItems.getSubItems(listIn); + } + }; +} diff --git a/src/main/java/cpw/mods/ironchest/common/core/IronChestItems.java b/src/main/java/cpw/mods/ironchest/common/core/IronChestItems.java new file mode 100644 index 0000000..2e41373 --- /dev/null +++ b/src/main/java/cpw/mods/ironchest/common/core/IronChestItems.java @@ -0,0 +1,53 @@ +package cpw.mods.ironchest.common.core; + +import cpw.mods.ironchest.IronChest; +import cpw.mods.ironchest.common.items.ChestChangerType; +import cpw.mods.ironchest.common.items.ShulkerBoxChangerType; +import net.minecraft.client.renderer.block.model.ModelResourceLocation; +import net.minecraft.item.Item; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.ModelRegistryEvent; +import net.minecraftforge.client.model.ModelLoader; +import net.minecraftforge.event.RegistryEvent.Register; +import net.minecraftforge.fml.common.Mod.EventBusSubscriber; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.registries.IForgeRegistry; + +public class IronChestItems +{ + @EventBusSubscriber(modid = IronChest.MOD_ID) + public static class Registration + { + @SubscribeEvent + public static void registerItems(Register event) + { + IForgeRegistry itemRegistry = event.getRegistry(); + + // Chest Start + ChestChangerType.buildItems(itemRegistry); + // Chest End + + // Shulker Start + ShulkerBoxChangerType.buildItems(itemRegistry); + // Shulker End + } + + @SubscribeEvent + public static void registerModels(ModelRegistryEvent event) + { + // Chest Start + for (ChestChangerType type : ChestChangerType.VALUES) + { + ModelLoader.setCustomModelResourceLocation(type.item, 0, new ModelResourceLocation(new ResourceLocation(IronChest.MOD_ID, "iron_chest_upgrades"), "variant=" + type.itemName.toLowerCase())); + } + // Chest End + + // Shulker Start + for (ShulkerBoxChangerType type : ShulkerBoxChangerType.VALUES) + { + ModelLoader.setCustomModelResourceLocation(type.item, 0, new ModelResourceLocation(new ResourceLocation(IronChest.MOD_ID, "iron_shulker_box_upgrades"), "variant=" + type.itemName.toLowerCase())); + } + // Shulker End + } + } +} diff --git a/src/main/java/cpw/mods/ironchest/common/crafting/OreDictEntryExistsConditionFactory.java b/src/main/java/cpw/mods/ironchest/common/crafting/condition/OreDictEntryExistsConditionFactory.java similarity index 95% rename from src/main/java/cpw/mods/ironchest/common/crafting/OreDictEntryExistsConditionFactory.java rename to src/main/java/cpw/mods/ironchest/common/crafting/condition/OreDictEntryExistsConditionFactory.java index 6fb416d..1d7f20f 100644 --- a/src/main/java/cpw/mods/ironchest/common/crafting/OreDictEntryExistsConditionFactory.java +++ b/src/main/java/cpw/mods/ironchest/common/crafting/condition/OreDictEntryExistsConditionFactory.java @@ -8,7 +8,7 @@ * Contributors: * cpw - initial API and implementation ******************************************************************************/ -package cpw.mods.ironchest.common.crafting; +package cpw.mods.ironchest.common.crafting.condition; import java.util.function.BooleanSupplier; diff --git a/src/main/java/cpw/mods/ironchest/common/crafting/ShulkerBoxColorRecipeFactory.java b/src/main/java/cpw/mods/ironchest/common/crafting/recipe/ShulkerBoxColorRecipeFactory.java similarity index 98% rename from src/main/java/cpw/mods/ironchest/common/crafting/ShulkerBoxColorRecipeFactory.java rename to src/main/java/cpw/mods/ironchest/common/crafting/recipe/ShulkerBoxColorRecipeFactory.java index 966e677..fd097f5 100644 --- a/src/main/java/cpw/mods/ironchest/common/crafting/ShulkerBoxColorRecipeFactory.java +++ b/src/main/java/cpw/mods/ironchest/common/crafting/recipe/ShulkerBoxColorRecipeFactory.java @@ -8,7 +8,7 @@ * Contributors: * cpw - initial API and implementation ******************************************************************************/ -package cpw.mods.ironchest.common.crafting; +package cpw.mods.ironchest.common.crafting.recipe; import com.google.gson.JsonObject; diff --git a/src/main/java/cpw/mods/ironchest/common/crafting/ShulkerBoxRecipeFactory.java b/src/main/java/cpw/mods/ironchest/common/crafting/recipe/ShulkerBoxRecipeFactory.java similarity index 98% rename from src/main/java/cpw/mods/ironchest/common/crafting/ShulkerBoxRecipeFactory.java rename to src/main/java/cpw/mods/ironchest/common/crafting/recipe/ShulkerBoxRecipeFactory.java index bfd6452..925dac9 100644 --- a/src/main/java/cpw/mods/ironchest/common/crafting/ShulkerBoxRecipeFactory.java +++ b/src/main/java/cpw/mods/ironchest/common/crafting/recipe/ShulkerBoxRecipeFactory.java @@ -8,7 +8,7 @@ * Contributors: * cpw - initial API and implementation ******************************************************************************/ -package cpw.mods.ironchest.common.crafting; +package cpw.mods.ironchest.common.crafting.recipe; import javax.annotation.Nonnull; diff --git a/src/main/java/cpw/mods/ironchest/common/items/ChestChangerType.java b/src/main/java/cpw/mods/ironchest/common/items/ChestChangerType.java index 282be91..de0fa60 100755 --- a/src/main/java/cpw/mods/ironchest/common/items/ChestChangerType.java +++ b/src/main/java/cpw/mods/ironchest/common/items/ChestChangerType.java @@ -18,7 +18,7 @@ import static cpw.mods.ironchest.common.blocks.chest.IronChestType.WOOD; import cpw.mods.ironchest.common.blocks.chest.IronChestType; import cpw.mods.ironchest.common.items.chest.ItemChestChanger; import net.minecraft.item.Item; -import net.minecraftforge.event.RegistryEvent.Register; +import net.minecraftforge.registries.IForgeRegistry; public enum ChestChangerType { @@ -56,22 +56,22 @@ public enum ChestChangerType return from == this.source; } - public ItemChestChanger buildItem(Register event) + public ItemChestChanger buildItem(IForgeRegistry itemRegistry) { this.item = new ItemChestChanger(this); this.item.setRegistryName(this.itemName); - event.getRegistry().register(this.item); + itemRegistry.register(this.item); return this.item; } - public static void buildItems(Register event) + public static void buildItems(IForgeRegistry itemRegistry) { for (ChestChangerType type : VALUES) { - type.buildItem(event); + type.buildItem(itemRegistry); } } } diff --git a/src/main/java/cpw/mods/ironchest/common/items/ShulkerBoxChangerType.java b/src/main/java/cpw/mods/ironchest/common/items/ShulkerBoxChangerType.java index 4a1b0f1..9959d5d 100644 --- a/src/main/java/cpw/mods/ironchest/common/items/ShulkerBoxChangerType.java +++ b/src/main/java/cpw/mods/ironchest/common/items/ShulkerBoxChangerType.java @@ -18,7 +18,7 @@ import static cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType.VANILL import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; import cpw.mods.ironchest.common.items.shulker.ItemShulkerBoxChanger; import net.minecraft.item.Item; -import net.minecraftforge.event.RegistryEvent.Register; +import net.minecraftforge.registries.IForgeRegistry; public enum ShulkerBoxChangerType { @@ -56,22 +56,22 @@ public enum ShulkerBoxChangerType return from == this.source; } - public ItemShulkerBoxChanger buildItem(Register event) + public ItemShulkerBoxChanger buildItem(IForgeRegistry itemRegistry) { this.item = new ItemShulkerBoxChanger(this); this.item.setRegistryName(this.itemName); - event.getRegistry().register(this.item); + itemRegistry.register(this.item); return this.item; } - public static void buildItems(Register event) + public static void buildItems(IForgeRegistry itemRegistry) { for (ShulkerBoxChangerType type : VALUES) { - type.buildItem(event); + type.buildItem(itemRegistry); } } } diff --git a/src/main/java/cpw/mods/ironchest/common/items/chest/ItemChestChanger.java b/src/main/java/cpw/mods/ironchest/common/items/chest/ItemChestChanger.java index 0b59c91..8402c8f 100755 --- a/src/main/java/cpw/mods/ironchest/common/items/chest/ItemChestChanger.java +++ b/src/main/java/cpw/mods/ironchest/common/items/chest/ItemChestChanger.java @@ -12,9 +12,10 @@ package cpw.mods.ironchest.common.items.chest; import java.util.Locale; -import cpw.mods.ironchest.common.ICContent; import cpw.mods.ironchest.common.blocks.chest.BlockIronChest; import cpw.mods.ironchest.common.blocks.chest.IronChestType; +import cpw.mods.ironchest.common.core.IronChestBlocks; +import cpw.mods.ironchest.common.core.IronChestCreativeTabs; import cpw.mods.ironchest.common.items.ChestChangerType; import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest; import cpw.mods.ironchest.common.util.ItemTooltip; @@ -40,7 +41,7 @@ public class ItemChestChanger extends ItemTooltip this.type = type; this.setMaxStackSize(1); this.setUnlocalizedName("ironchest.chest." + type.name().toLowerCase(Locale.US)); - this.setCreativeTab(ICContent.tabGeneral); + this.setCreativeTab(IronChestCreativeTabs.tabIronChests); } /** @@ -68,7 +69,7 @@ public class ItemChestChanger extends ItemTooltip else { //@formatter:off - if (worldIn.getBlockState(pos) != ICContent.ironChestBlock.getStateFromMeta(IronChestType.valueOf(this.type.source.getName().toUpperCase()).ordinal())) + if (worldIn.getBlockState(pos) != IronChestBlocks.ironChestBlock.getStateFromMeta(IronChestType.valueOf(this.type.source.getName().toUpperCase()).ordinal())) //@formatter:on { return EnumActionResult.PASS; @@ -130,7 +131,7 @@ public class ItemChestChanger extends ItemTooltip worldIn.removeTileEntity(pos); worldIn.setBlockToAir(pos); - IBlockState iblockstate = ICContent.ironChestBlock.getDefaultState().withProperty(BlockIronChest.VARIANT_PROP, this.type.target); + IBlockState iblockstate = IronChestBlocks.ironChestBlock.getDefaultState().withProperty(BlockIronChest.VARIANT_PROP, this.type.target); worldIn.setTileEntity(pos, newchest); worldIn.setBlockState(pos, iblockstate, 3); diff --git a/src/main/java/cpw/mods/ironchest/common/items/chest/ItemIronChest.java b/src/main/java/cpw/mods/ironchest/common/items/chest/ItemIronChest.java index fb2dca7..4d35ba8 100755 --- a/src/main/java/cpw/mods/ironchest/common/items/chest/ItemIronChest.java +++ b/src/main/java/cpw/mods/ironchest/common/items/chest/ItemIronChest.java @@ -12,13 +12,10 @@ package cpw.mods.ironchest.common.items.chest; import java.util.Locale; -import cpw.mods.ironchest.IronChest; import cpw.mods.ironchest.common.blocks.chest.IronChestType; -import cpw.mods.ironchest.common.util.BlockNames; import net.minecraft.block.Block; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; public class ItemIronChest extends ItemBlock { @@ -26,7 +23,7 @@ public class ItemIronChest extends ItemBlock { super(block); - this.setRegistryName(new ResourceLocation(IronChest.MOD_ID, BlockNames.IRON_CHEST)); + this.setRegistryName(block.getRegistryName()); this.setMaxDamage(0); this.setHasSubtypes(true); } diff --git a/src/main/java/cpw/mods/ironchest/common/items/shulker/ItemIronShulkerBox.java b/src/main/java/cpw/mods/ironchest/common/items/shulker/ItemIronShulkerBox.java index d33a2a9..c5a5351 100644 --- a/src/main/java/cpw/mods/ironchest/common/items/shulker/ItemIronShulkerBox.java +++ b/src/main/java/cpw/mods/ironchest/common/items/shulker/ItemIronShulkerBox.java @@ -12,13 +12,11 @@ package cpw.mods.ironchest.common.items.shulker; import java.util.Locale; -import cpw.mods.ironchest.IronChest; import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; import net.minecraft.block.Block; import net.minecraft.item.EnumDyeColor; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; public class ItemIronShulkerBox extends ItemBlock { @@ -28,7 +26,7 @@ public class ItemIronShulkerBox extends ItemBlock { super(block); - this.setRegistryName(new ResourceLocation(IronChest.MOD_ID, "iron_shulker_box_" + colorIn.getName())); + this.setRegistryName(block.getRegistryName()); this.setMaxDamage(0); this.setHasSubtypes(true); this.setMaxStackSize(1); @@ -46,4 +44,4 @@ public class ItemIronShulkerBox extends ItemBlock { return "tile.ironchest.shulker_box." + IronShulkerBoxType.VALUES[itemstack.getMetadata()].name().toLowerCase(Locale.US) + "." + this.colorName; } -} \ No newline at end of file +} diff --git a/src/main/java/cpw/mods/ironchest/common/items/shulker/ItemShulkerBoxChanger.java b/src/main/java/cpw/mods/ironchest/common/items/shulker/ItemShulkerBoxChanger.java index 78634be..ce22c4a 100644 --- a/src/main/java/cpw/mods/ironchest/common/items/shulker/ItemShulkerBoxChanger.java +++ b/src/main/java/cpw/mods/ironchest/common/items/shulker/ItemShulkerBoxChanger.java @@ -12,9 +12,9 @@ package cpw.mods.ironchest.common.items.shulker; import java.util.Locale; -import cpw.mods.ironchest.common.ICContent; import cpw.mods.ironchest.common.blocks.shulker.BlockIronShulkerBox; import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; +import cpw.mods.ironchest.common.core.IronChestCreativeTabs; import cpw.mods.ironchest.common.items.ShulkerBoxChangerType; import cpw.mods.ironchest.common.lib.BlockLists; import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox; @@ -44,7 +44,7 @@ public class ItemShulkerBoxChanger extends ItemTooltip this.setMaxStackSize(1); this.setUnlocalizedName("ironchest.shulker_box." + type.name().toLowerCase(Locale.US)); - this.setCreativeTab(ICContent.tabGeneral); + this.setCreativeTab(IronChestCreativeTabs.tabIronChests); } public EnumDyeColor getColorFromTileEntity(TileEntity te, World worldIn) diff --git a/src/main/java/cpw/mods/ironchest/common/lib/BlockLists.java b/src/main/java/cpw/mods/ironchest/common/lib/BlockLists.java index 055e2f6..7b5cea8 100644 --- a/src/main/java/cpw/mods/ironchest/common/lib/BlockLists.java +++ b/src/main/java/cpw/mods/ironchest/common/lib/BlockLists.java @@ -4,7 +4,7 @@ import java.util.List; import com.google.common.collect.Lists; -import cpw.mods.ironchest.common.ICContent; +import cpw.mods.ironchest.common.core.IronChestBlocks; import cpw.mods.ironchest.common.util.BehaviorDispenseIronShulkerBox; import net.minecraft.block.Block; import net.minecraft.block.BlockDispenser; @@ -62,42 +62,46 @@ public class BlockLists public static void createIronShulkerBlockList() { - SHULKER_BLOCKS.add(ICContent.ironShulkerBoxWhiteBlock); - SHULKER_BLOCKS.add(ICContent.ironShulkerBoxOrangeBlock); - SHULKER_BLOCKS.add(ICContent.ironShulkerBoxMagentaBlock); - SHULKER_BLOCKS.add(ICContent.ironShulkerBoxLightBlueBlock); - SHULKER_BLOCKS.add(ICContent.ironShulkerBoxYellowBlock); - SHULKER_BLOCKS.add(ICContent.ironShulkerBoxLimeBlock); - SHULKER_BLOCKS.add(ICContent.ironShulkerBoxPinkBlock); - SHULKER_BLOCKS.add(ICContent.ironShulkerBoxGrayBlock); - SHULKER_BLOCKS.add(ICContent.ironShulkerBoxSilverBlock); - SHULKER_BLOCKS.add(ICContent.ironShulkerBoxCyanBlock); - SHULKER_BLOCKS.add(ICContent.ironShulkerBoxPurpleBlock); - SHULKER_BLOCKS.add(ICContent.ironShulkerBoxBlueBlock); - SHULKER_BLOCKS.add(ICContent.ironShulkerBoxBrownBlock); - SHULKER_BLOCKS.add(ICContent.ironShulkerBoxGreenBlock); - SHULKER_BLOCKS.add(ICContent.ironShulkerBoxRedBlock); - SHULKER_BLOCKS.add(ICContent.ironShulkerBoxBlackBlock); + BlockLists.createVanillaShulkerBlockList(); + + SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxWhiteBlock); + SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxOrangeBlock); + SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxMagentaBlock); + SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxLightBlueBlock); + SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxYellowBlock); + SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxLimeBlock); + SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxPinkBlock); + SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxGrayBlock); + SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxSilverBlock); + SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxCyanBlock); + SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxPurpleBlock); + SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxBlueBlock); + SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxBrownBlock); + SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxGreenBlock); + SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxRedBlock); + SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxBlackBlock); } public static void createShulkerItemList() { - SHULKER_ITEM_BLOCKS.add(ICContent.ironShulkerBoxWhiteItemBlock); - SHULKER_ITEM_BLOCKS.add(ICContent.ironShulkerBoxOrangeItemBlock); - SHULKER_ITEM_BLOCKS.add(ICContent.ironShulkerBoxMagentaItemBlock); - SHULKER_ITEM_BLOCKS.add(ICContent.ironShulkerBoxLightBlueItemBlock); - SHULKER_ITEM_BLOCKS.add(ICContent.ironShulkerBoxYellowItemBlock); - SHULKER_ITEM_BLOCKS.add(ICContent.ironShulkerBoxLimeItemBlock); - SHULKER_ITEM_BLOCKS.add(ICContent.ironShulkerBoxPinkItemBlock); - SHULKER_ITEM_BLOCKS.add(ICContent.ironShulkerBoxGrayItemBlock); - SHULKER_ITEM_BLOCKS.add(ICContent.ironShulkerBoxSilverItemBlock); - SHULKER_ITEM_BLOCKS.add(ICContent.ironShulkerBoxCyanItemBlock); - SHULKER_ITEM_BLOCKS.add(ICContent.ironShulkerBoxPurpleItemBlock); - SHULKER_ITEM_BLOCKS.add(ICContent.ironShulkerBoxBlueItemBlock); - SHULKER_ITEM_BLOCKS.add(ICContent.ironShulkerBoxBrownItemBlock); - SHULKER_ITEM_BLOCKS.add(ICContent.ironShulkerBoxGreenItemBlock); - SHULKER_ITEM_BLOCKS.add(ICContent.ironShulkerBoxRedItemBlock); - SHULKER_ITEM_BLOCKS.add(ICContent.ironShulkerBoxBlackItemBlock); + SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxWhiteItemBlock); + SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxOrangeItemBlock); + SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxMagentaItemBlock); + SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxLightBlueItemBlock); + SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxYellowItemBlock); + SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxLimeItemBlock); + SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxPinkItemBlock); + SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxGrayItemBlock); + SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxSilverItemBlock); + SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxCyanItemBlock); + SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxPurpleItemBlock); + SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxBlueItemBlock); + SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxBrownItemBlock); + SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxGreenItemBlock); + SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxRedItemBlock); + SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxBlackItemBlock); + + BlockLists.registerBlockBehavior(); } public static void registerBlockBehavior() diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityIronChest.java b/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityIronChest.java index 69b8e03..8248417 100755 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityIronChest.java +++ b/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityIronChest.java @@ -14,9 +14,9 @@ import java.util.Collections; import java.util.Comparator; import cpw.mods.ironchest.IronChest; -import cpw.mods.ironchest.common.ICContent; import cpw.mods.ironchest.common.blocks.chest.BlockIronChest; import cpw.mods.ironchest.common.blocks.chest.IronChestType; +import cpw.mods.ironchest.common.core.IronChestBlocks; import cpw.mods.ironchest.common.gui.chest.ContainerIronChest; import cpw.mods.ironchest.common.network.MessageCrystalChestSync; import net.minecraft.block.state.IBlockState; @@ -120,7 +120,7 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick { IBlockState state = this.world.getBlockState(this.pos); - if (state.getBlock() == ICContent.ironChestBlock) + if (state.getBlock() == IronChestBlocks.ironChestBlock) { type = state.getValue(BlockIronChest.VARIANT_PROP); } @@ -160,7 +160,8 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick int compressedIdx = 0; - mainLoop: for (int i = 0; i < this.getSizeInventory(); i++) + mainLoop: + for (int i = 0; i < this.getSizeInventory(); i++) { ItemStack itemStack = this.getItems().get(i); @@ -210,7 +211,8 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick this.hadStuff = true; - Collections.sort(tempCopy, new Comparator() { + Collections.sort(tempCopy, new Comparator() + { @Override public int compare(ItemStack stack1, ItemStack stack2) { @@ -368,7 +370,7 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick if (this.world != null && !this.world.isRemote && this.ticksSinceSync < 0) { - this.world.addBlockEvent(this.pos, ICContent.ironChestBlock, 3, ((this.numPlayersUsing << 3) & 0xF8) | (this.facing.ordinal() & 0x7)); + this.world.addBlockEvent(this.pos, IronChestBlocks.ironChestBlock, 3, ((this.numPlayersUsing << 3) & 0xF8) | (this.facing.ordinal() & 0x7)); } if (!this.world.isRemote && this.inventoryTouched) @@ -466,9 +468,9 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick ++this.numPlayersUsing; - this.world.addBlockEvent(this.pos, ICContent.ironChestBlock, 1, this.numPlayersUsing); - this.world.notifyNeighborsOfStateChange(this.pos, ICContent.ironChestBlock, false); - this.world.notifyNeighborsOfStateChange(this.pos.down(), ICContent.ironChestBlock, false); + this.world.addBlockEvent(this.pos, IronChestBlocks.ironChestBlock, 1, this.numPlayersUsing); + this.world.notifyNeighborsOfStateChange(this.pos, IronChestBlocks.ironChestBlock, false); + this.world.notifyNeighborsOfStateChange(this.pos.down(), IronChestBlocks.ironChestBlock, false); } } @@ -484,9 +486,9 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick --this.numPlayersUsing; - this.world.addBlockEvent(this.pos, ICContent.ironChestBlock, 1, this.numPlayersUsing); - this.world.notifyNeighborsOfStateChange(this.pos, ICContent.ironChestBlock, false); - this.world.notifyNeighborsOfStateChange(this.pos.down(), ICContent.ironChestBlock, false); + this.world.addBlockEvent(this.pos, IronChestBlocks.ironChestBlock, 1, this.numPlayersUsing); + this.world.notifyNeighborsOfStateChange(this.pos, IronChestBlocks.ironChestBlock, false); + this.world.notifyNeighborsOfStateChange(this.pos.down(), IronChestBlocks.ironChestBlock, false); } } @@ -554,7 +556,7 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick { this.setFacing(this.facing.rotateY()); - this.world.addBlockEvent(this.pos, ICContent.ironChestBlock, 2, this.facing.ordinal()); + this.world.addBlockEvent(this.pos, IronChestBlocks.ironChestBlock, 2, this.facing.ordinal()); } public void wasPlaced(EntityLivingBase entityliving, ItemStack stack) diff --git a/src/main/java/cpw/mods/ironchest/common/util/BlockNames.java b/src/main/java/cpw/mods/ironchest/common/util/BlockNames.java index 690486e..cf4123f 100644 --- a/src/main/java/cpw/mods/ironchest/common/util/BlockNames.java +++ b/src/main/java/cpw/mods/ironchest/common/util/BlockNames.java @@ -1,38 +1,42 @@ package cpw.mods.ironchest.common.util; +import cpw.mods.ironchest.IronChest; + public class BlockNames { - public static final String IRON_CHEST = "iron_chest"; + public static final String IRON_CHEST = IronChest.MOD_ID + ":iron_chest"; - public static final String WHITE_SHULKER = "iron_shulker_box_white"; + public static final String WHITE_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_white"; - public static final String ORANGE_SHULKER = "iron_shulker_box_orange"; + public static final String ORANGE_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_orange"; - public static final String MAGENTA_SHULKER = "iron_shulker_box_magenta"; + public static final String MAGENTA_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_magenta"; - public static final String LIGHT_BLUE_SHULKER = "iron_shulker_box_light_blue"; + public static final String LIGHT_BLUE_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_light_blue"; - public static final String YELLOW_SHULKER = "iron_shulker_box_yellow"; + public static final String YELLOW_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_yellow"; - public static final String LIME_SHULKER = "iron_shulker_box_lime"; + public static final String LIME_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_lime"; - public static final String PINK_SHULKER = "iron_shulker_box_pink"; + public static final String PINK_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_pink"; - public static final String GRAY_SHULKER = "iron_shulker_box_gray"; + public static final String GRAY_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_gray"; - public static final String SILVER_SHULKER = "iron_shulker_box_silver"; + public static final String SILVER_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_silver"; - public static final String CYAN_SHULKER = "iron_shulker_box_cyan"; + public static final String CYAN_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_cyan"; - public static final String PURPLE_SHULKER = "iron_shulker_box_purple"; + public static final String PURPLE_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_purple"; - public static final String BLUE_SHULKER = "iron_shulker_box_blue"; + public static final String BLUE_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_blue"; - public static final String BROWN_SHULKER = "iron_shulker_box_brown"; + public static final String BROWN_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_brown"; - public static final String GREEN_SHULKER = "iron_shulker_box_green"; + public static final String GREEN_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_green"; - public static final String RED_SHULKER = "iron_shulker_box_red"; + public static final String RED_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_red"; - public static final String BLACK_SHULKER = "iron_shulker_box_black"; + public static final String BLACK_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_black"; + + public static final String[] SHULKER_NAMES = { WHITE_SHULKER, ORANGE_SHULKER, MAGENTA_SHULKER, LIGHT_BLUE_SHULKER, YELLOW_SHULKER, LIME_SHULKER, PINK_SHULKER, GRAY_SHULKER, SILVER_SHULKER, CYAN_SHULKER, PURPLE_SHULKER, BLUE_SHULKER, BROWN_SHULKER, GREEN_SHULKER, RED_SHULKER, BLACK_SHULKER }; } diff --git a/src/main/java/cpw/mods/ironchest/common/util/CreativeTab.java b/src/main/java/cpw/mods/ironchest/common/util/CreativeTab.java deleted file mode 100644 index 5a3a384..0000000 --- a/src/main/java/cpw/mods/ironchest/common/util/CreativeTab.java +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.util; - -import javax.annotation.Nonnull; - -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class CreativeTab extends CreativeTabs -{ - private ItemStack icon; - - // a vanilla icon in case the other one isn't present - public CreativeTab(String label, ItemStack backupIcon) - { - super(label); - - this.icon = backupIcon; - } - - public void setDisplayIcon(ItemStack displayIcon) - { - if (!displayIcon.isEmpty()) - { - this.icon = displayIcon; - } - } - - @Nonnull - @SideOnly(Side.CLIENT) - @Override - public ItemStack getIconItemStack() - { - return icon; - } - - @Nonnull - @SideOnly(Side.CLIENT) - @Override - public ItemStack getTabIconItem() - { - return icon; - } -} \ No newline at end of file diff --git a/src/main/java/cpw/mods/ironchest/common/util/CreativeTabItems.java b/src/main/java/cpw/mods/ironchest/common/util/CreativeTabItems.java new file mode 100644 index 0000000..ad3bb91 --- /dev/null +++ b/src/main/java/cpw/mods/ironchest/common/util/CreativeTabItems.java @@ -0,0 +1,49 @@ +package cpw.mods.ironchest.common.util; + +import cpw.mods.ironchest.common.blocks.chest.IronChestType; +import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; +import cpw.mods.ironchest.common.core.IronChestBlocks; +import cpw.mods.ironchest.common.items.ChestChangerType; +import cpw.mods.ironchest.common.items.ShulkerBoxChangerType; +import cpw.mods.ironchest.common.lib.BlockLists; +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraft.util.NonNullList; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +public class CreativeTabItems +{ + @SideOnly(Side.CLIENT) + public static void getSubItems(NonNullList subItems) + { + for (ChestChangerType type : ChestChangerType.VALUES) + { + subItems.add(new ItemStack(type.item)); + } + + for (ShulkerBoxChangerType type : ShulkerBoxChangerType.VALUES) + { + subItems.add(new ItemStack(type.item)); + } + + for (IronChestType type : IronChestType.VALUES) + { + if (type.isValidForCreativeMode()) + { + subItems.add(new ItemStack(IronChestBlocks.ironChestBlock, 1, type.ordinal())); + } + } + + for (Block shulker : BlockLists.SHULKER_BLOCKS) + { + for (IronShulkerBoxType type : IronShulkerBoxType.VALUES) + { + if (type.isValidForCreativeMode()) + { + subItems.add(new ItemStack(shulker, 1, type.ordinal())); + } + } + } + } +} diff --git a/src/main/resources/assets/ironchest/lang/en_US.lang b/src/main/resources/assets/ironchest/lang/en_US.lang index 9abd9cb..cd57d90 100755 --- a/src/main/resources/assets/ironchest/lang/en_US.lang +++ b/src/main/resources/assets/ironchest/lang/en_US.lang @@ -174,4 +174,4 @@ item.ironchest.shulker_box.diamond_obsidian.tooltip=Used to upgrade a Diamond Sh # GUIs # ############## -itemGroup.IronChest=Iron Chests +itemGroup.ironchest=Iron Chests diff --git a/src/main/resources/assets/ironchest/recipes/_factories.json b/src/main/resources/assets/ironchest/recipes/_factories.json index ad1d91e..c8ba6c3 100644 --- a/src/main/resources/assets/ironchest/recipes/_factories.json +++ b/src/main/resources/assets/ironchest/recipes/_factories.json @@ -1,9 +1,9 @@ { "recipes": { - "shulker_box": "cpw.mods.ironchest.common.crafting.ShulkerBoxRecipeFactory", - "shulker_box_coloring": "cpw.mods.ironchest.common.crafting.ShulkerBoxColorRecipeFactory" + "shulker_box": "cpw.mods.ironchest.common.crafting.recipe.ShulkerBoxRecipeFactory", + "shulker_box_coloring": "cpw.mods.ironchest.common.crafting.recipe.ShulkerBoxColorRecipeFactory" }, "conditions": { - "ore_dict_entry_exists": "cpw.mods.ironchest.common.crafting.OreDictEntryExistsConditionFactory" + "ore_dict_entry_exists": "cpw.mods.ironchest.common.crafting.condition.OreDictEntryExistsConditionFactory" } } \ No newline at end of file