diff --git a/src/main/java/cpw/mods/ironchest/client/ClientProxy.java b/src/main/java/cpw/mods/ironchest/client/ClientProxy.java index 369bfda..aef88ad 100755 --- a/src/main/java/cpw/mods/ironchest/client/ClientProxy.java +++ b/src/main/java/cpw/mods/ironchest/client/ClientProxy.java @@ -37,13 +37,17 @@ public class ClientProxy extends CommonProxy for (IronChestType type : IronChestType.values()) { if (type.clazz != null) + { ClientRegistry.bindTileEntitySpecialRenderer(type.clazz, new TileEntityIronChestRenderer()); + } } for (IronShulkerBoxType type : IronShulkerBoxType.values()) { if (type.clazz != null) + { ClientRegistry.bindTileEntitySpecialRenderer(type.clazz, new TileEntityIronShulkerBoxRenderer()); + } } } 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 952dc51..37bbcea 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 @@ -10,13 +10,11 @@ ******************************************************************************/ package cpw.mods.ironchest.client.renderer.chest; -import java.util.Random; - import com.google.common.primitives.SignedBytes; - 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.TileEntityCrystalChest; import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest; import net.minecraft.block.state.IBlockState; import net.minecraft.client.Minecraft; @@ -28,6 +26,8 @@ import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumFacing; +import java.util.Random; + public class TileEntityIronChestRenderer extends TileEntitySpecialRenderer { private Random random; @@ -105,31 +105,31 @@ public class TileEntityIronChestRenderer extends TileEntitySpecialRenderer shifts.length || shift > 8) { diff --git a/src/main/java/cpw/mods/ironchest/client/renderer/shulker/TileEntityIronShulkerBoxRenderer.java b/src/main/java/cpw/mods/ironchest/client/renderer/shulker/TileEntityIronShulkerBoxRenderer.java index 6e29cae..bd97d1c 100644 --- a/src/main/java/cpw/mods/ironchest/client/renderer/shulker/TileEntityIronShulkerBoxRenderer.java +++ b/src/main/java/cpw/mods/ironchest/client/renderer/shulker/TileEntityIronShulkerBoxRenderer.java @@ -16,6 +16,7 @@ import com.google.common.primitives.SignedBytes; import cpw.mods.ironchest.common.blocks.shulker.BlockIronShulkerBox; import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; +import cpw.mods.ironchest.common.tileentity.shulker.TileEntityCrystalShulkerBox; import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox; import net.minecraft.block.state.IBlockState; import net.minecraft.client.Minecraft; @@ -165,7 +166,7 @@ public class TileEntityIronShulkerBoxRenderer extends TileEntitySpecialRenderer< float blockScale = 0.70F; float timeD = (float) (360D * (System.currentTimeMillis() & 0x3FFFL) / 0x3FFFL) - partialTicks; - if (te.getTopItems().get(1).isEmpty()) + if (((TileEntityCrystalShulkerBox) te).getTopItems().get(1).isEmpty()) { shift = 8; blockScale = 0.85F; @@ -181,7 +182,7 @@ public class TileEntityIronShulkerBoxRenderer extends TileEntitySpecialRenderer< customItem.hoverStart = 0F; - for (ItemStack item : te.getTopItems()) + for (ItemStack item : ((TileEntityCrystalShulkerBox) te).getTopItems()) { if (shift > shifts.length || shift > 8) { 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 dd20b04..1d706fb 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 @@ -10,10 +10,6 @@ ******************************************************************************/ package cpw.mods.ironchest.common.blocks.chest; -import java.util.Random; - -import javax.annotation.Nullable; - import cpw.mods.ironchest.IronChest; import cpw.mods.ironchest.common.core.IronChestCreativeTabs; import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest; @@ -53,6 +49,9 @@ import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; +import javax.annotation.Nullable; +import java.util.Random; + public class BlockIronChest extends Block { public static final PropertyEnum VARIANT_PROP = PropertyEnum.create("variant", IronChestType.class); diff --git a/src/main/java/cpw/mods/ironchest/common/blocks/chest/IronChestType.java b/src/main/java/cpw/mods/ironchest/common/blocks/chest/IronChestType.java index 809d8d7..eecdac2 100755 --- a/src/main/java/cpw/mods/ironchest/common/blocks/chest/IronChestType.java +++ b/src/main/java/cpw/mods/ironchest/common/blocks/chest/IronChestType.java @@ -82,25 +82,25 @@ public enum IronChestType implements IStringSerializable { switch (this) { - case DIRTCHEST9000: - { - this.breakTexture = "minecraft:blocks/dirt"; - break; - } - case OBSIDIAN: - { - this.breakTexture = "minecraft:blocks/obsidian"; - break; - } - case WOOD: - { - this.breakTexture = "minecraft:blocks/planks_oak"; - break; - } - default: - { - this.breakTexture = "ironchest:blocks/" + this.getName() + "break"; - } + case DIRTCHEST9000: + { + this.breakTexture = "minecraft:blocks/dirt"; + break; + } + case OBSIDIAN: + { + this.breakTexture = "minecraft:blocks/obsidian"; + break; + } + case WOOD: + { + this.breakTexture = "minecraft:blocks/planks_oak"; + break; + } + default: + { + this.breakTexture = "ironchest:blocks/" + this.getName() + "break"; + } } } @@ -162,24 +162,24 @@ public enum IronChestType implements IStringSerializable { switch (this) { - case IRON: - return new TileEntityIronChest(); - case GOLD: - return new TileEntityGoldChest(); - case DIAMOND: - return new TileEntityDiamondChest(); - case COPPER: - return new TileEntityCopperChest(); - case SILVER: - return new TileEntitySilverChest(); - case CRYSTAL: - return new TileEntityCrystalChest(); - case OBSIDIAN: - return new TileEntityObsidianChest(); - case DIRTCHEST9000: - return new TileEntityDirtChest(); - default: - return null; + case IRON: + return new TileEntityIronChest(); + case GOLD: + return new TileEntityGoldChest(); + case DIAMOND: + return new TileEntityDiamondChest(); + case COPPER: + return new TileEntityCopperChest(); + case SILVER: + return new TileEntitySilverChest(); + case CRYSTAL: + return new TileEntityCrystalChest(); + case OBSIDIAN: + return new TileEntityObsidianChest(); + case DIRTCHEST9000: + return new TileEntityDirtChest(); + default: + return null; } } } 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 13294cb..a87c4d9 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 @@ -10,10 +10,6 @@ ******************************************************************************/ package cpw.mods.ironchest.common.blocks.shulker; -import java.util.List; - -import javax.annotation.Nullable; - import cpw.mods.ironchest.IronChest; import cpw.mods.ironchest.common.core.IronChestBlocks; import cpw.mods.ironchest.common.core.IronChestCreativeTabs; @@ -50,6 +46,9 @@ import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; +import javax.annotation.Nullable; +import java.util.List; + @SuppressWarnings("deprecation") public class BlockIronShulkerBox extends Block { @@ -390,7 +389,7 @@ public class BlockIronShulkerBox extends Block { if (nbttagcompound1.hasKey("ShulkerBoxSize", 3)) { - NonNullList nonnulllist = NonNullList. withSize(nbttagcompound1.getInteger("ShulkerBoxSize"), ItemStack.EMPTY); + NonNullList nonnulllist = NonNullList.withSize(nbttagcompound1.getInteger("ShulkerBoxSize"), ItemStack.EMPTY); ItemStackHelper.loadAllItems(nbttagcompound1, nonnulllist); int i = 0; int j = 0; @@ -418,7 +417,7 @@ public class BlockIronShulkerBox extends Block } else { - NonNullList nonnulllist = NonNullList. withSize(27, ItemStack.EMPTY); + NonNullList nonnulllist = NonNullList.withSize(27, ItemStack.EMPTY); ItemStackHelper.loadAllItems(nbttagcompound1, nonnulllist); int i = 0; int j = 0; @@ -493,39 +492,39 @@ public class BlockIronShulkerBox extends Block { switch (colorIn) { - case WHITE: - return IronChestBlocks.ironShulkerBoxWhiteBlock; - case ORANGE: - return IronChestBlocks.ironShulkerBoxOrangeBlock; - case MAGENTA: - return IronChestBlocks.ironShulkerBoxMagentaBlock; - case LIGHT_BLUE: - return IronChestBlocks.ironShulkerBoxLightBlueBlock; - case YELLOW: - return IronChestBlocks.ironShulkerBoxYellowBlock; - case LIME: - return IronChestBlocks.ironShulkerBoxLimeBlock; - case PINK: - return IronChestBlocks.ironShulkerBoxPinkBlock; - case GRAY: - return IronChestBlocks.ironShulkerBoxGrayBlock; - case SILVER: - return IronChestBlocks.ironShulkerBoxSilverBlock; - case CYAN: - return IronChestBlocks.ironShulkerBoxCyanBlock; - case PURPLE: - default: - return IronChestBlocks.ironShulkerBoxPurpleBlock; - case BLUE: - return IronChestBlocks.ironShulkerBoxBlueBlock; - case BROWN: - return IronChestBlocks.ironShulkerBoxBrownBlock; - case GREEN: - return IronChestBlocks.ironShulkerBoxGreenBlock; - case RED: - return IronChestBlocks.ironShulkerBoxRedBlock; - case BLACK: - return IronChestBlocks.ironShulkerBoxBlackBlock; + case WHITE: + return IronChestBlocks.ironShulkerBoxWhiteBlock; + case ORANGE: + return IronChestBlocks.ironShulkerBoxOrangeBlock; + case MAGENTA: + return IronChestBlocks.ironShulkerBoxMagentaBlock; + case LIGHT_BLUE: + return IronChestBlocks.ironShulkerBoxLightBlueBlock; + case YELLOW: + return IronChestBlocks.ironShulkerBoxYellowBlock; + case LIME: + return IronChestBlocks.ironShulkerBoxLimeBlock; + case PINK: + return IronChestBlocks.ironShulkerBoxPinkBlock; + case GRAY: + return IronChestBlocks.ironShulkerBoxGrayBlock; + case SILVER: + return IronChestBlocks.ironShulkerBoxSilverBlock; + case CYAN: + return IronChestBlocks.ironShulkerBoxCyanBlock; + case PURPLE: + default: + return IronChestBlocks.ironShulkerBoxPurpleBlock; + case BLUE: + return IronChestBlocks.ironShulkerBoxBlueBlock; + case BROWN: + return IronChestBlocks.ironShulkerBoxBrownBlock; + case GREEN: + return IronChestBlocks.ironShulkerBoxGreenBlock; + case RED: + return IronChestBlocks.ironShulkerBoxRedBlock; + case BLACK: + return IronChestBlocks.ironShulkerBoxBlackBlock; } } diff --git a/src/main/java/cpw/mods/ironchest/common/blocks/shulker/IronShulkerBoxType.java b/src/main/java/cpw/mods/ironchest/common/blocks/shulker/IronShulkerBoxType.java index af3383c..1fbf1fc 100644 --- a/src/main/java/cpw/mods/ironchest/common/blocks/shulker/IronShulkerBoxType.java +++ b/src/main/java/cpw/mods/ironchest/common/blocks/shulker/IronShulkerBoxType.java @@ -82,20 +82,20 @@ public enum IronShulkerBoxType implements IStringSerializable { switch (this) { - case OBSIDIAN: - { - this.breakTexture = "minecraft:blocks/obsidian"; - break; - } - case VANILLA: - { - this.breakTexture = "minecraft:blocks/planks_oak"; - break; - } - default: - { - this.breakTexture = "ironchest:blocks/" + this.getName() + "break"; - } + case OBSIDIAN: + { + this.breakTexture = "minecraft:blocks/obsidian"; + break; + } + case VANILLA: + { + this.breakTexture = "minecraft:blocks/planks_oak"; + break; + } + default: + { + this.breakTexture = "ironchest:blocks/" + this.getName() + "break"; + } } } @@ -131,22 +131,22 @@ public enum IronShulkerBoxType implements IStringSerializable { switch (this) { - case IRON: - return new TileEntityIronShulkerBox(colorIn); - case GOLD: - return new TileEntityGoldShulkerBox(colorIn); - case DIAMOND: - return new TileEntityDiamondShulkerBox(colorIn); - case COPPER: - return new TileEntityCopperShulkerBox(colorIn); - case SILVER: - return new TileEntitySilverShulkerBox(colorIn); - case CRYSTAL: - return new TileEntityCrystalShulkerBox(colorIn); - case OBSIDIAN: - return new TileEntityObsidianShulkerBox(colorIn); - default: - return null; + case IRON: + return new TileEntityIronShulkerBox(colorIn); + case GOLD: + return new TileEntityGoldShulkerBox(colorIn); + case DIAMOND: + return new TileEntityDiamondShulkerBox(colorIn); + case COPPER: + return new TileEntityCopperShulkerBox(colorIn); + case SILVER: + return new TileEntitySilverShulkerBox(colorIn); + case CRYSTAL: + return new TileEntityCrystalShulkerBox(colorIn); + case OBSIDIAN: + return new TileEntityObsidianShulkerBox(colorIn); + default: + return null; } } } diff --git a/src/main/java/cpw/mods/ironchest/common/config/Config.java b/src/main/java/cpw/mods/ironchest/common/config/Config.java index df56e7b..93838c7 100644 --- a/src/main/java/cpw/mods/ironchest/common/config/Config.java +++ b/src/main/java/cpw/mods/ironchest/common/config/Config.java @@ -1,11 +1,10 @@ package cpw.mods.ironchest.common.config; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - import cpw.mods.ironchest.IronChest; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; public final class Config { diff --git a/src/main/java/cpw/mods/ironchest/common/core/IronChestCreativeTabs.java b/src/main/java/cpw/mods/ironchest/common/core/IronChestCreativeTabs.java index ee3ca0d..0dc52dd 100644 --- a/src/main/java/cpw/mods/ironchest/common/core/IronChestCreativeTabs.java +++ b/src/main/java/cpw/mods/ironchest/common/core/IronChestCreativeTabs.java @@ -1,7 +1,5 @@ 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; @@ -11,6 +9,8 @@ import net.minecraft.util.NonNullList; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; +import javax.annotation.Nonnull; + public final class IronChestCreativeTabs { private IronChestCreativeTabs() diff --git a/src/main/java/cpw/mods/ironchest/common/crafting/condition/IsConfigOptionEnabledConditionFactory.java b/src/main/java/cpw/mods/ironchest/common/crafting/condition/IsConfigOptionEnabledConditionFactory.java index 335a4bf..4886c91 100644 --- a/src/main/java/cpw/mods/ironchest/common/crafting/condition/IsConfigOptionEnabledConditionFactory.java +++ b/src/main/java/cpw/mods/ironchest/common/crafting/condition/IsConfigOptionEnabledConditionFactory.java @@ -1,14 +1,13 @@ package cpw.mods.ironchest.common.crafting.condition; -import java.util.function.BooleanSupplier; - import com.google.gson.JsonObject; - import cpw.mods.ironchest.common.config.Config; import net.minecraft.util.JsonUtils; import net.minecraftforge.common.crafting.IConditionFactory; import net.minecraftforge.common.crafting.JsonContext; +import java.util.function.BooleanSupplier; + public class IsConfigOptionEnabledConditionFactory implements IConditionFactory { @Override @@ -18,10 +17,10 @@ public class IsConfigOptionEnabledConditionFactory implements IConditionFactory switch (configSetting) { - case "enableShulkerBoxRecipes": - return () -> Config.enableShulkerBoxRecipes; - default: - throw new RuntimeException(String.format("Invalid config setting: %s", configSetting)); + case "enableShulkerBoxRecipes": + return () -> Config.enableShulkerBoxRecipes; + default: + throw new RuntimeException(String.format("Invalid config setting: %s", configSetting)); } } } diff --git a/src/main/java/cpw/mods/ironchest/common/crafting/recipe/ShulkerBoxColorRecipeFactory.java b/src/main/java/cpw/mods/ironchest/common/crafting/recipe/ShulkerBoxColorRecipeFactory.java index 10a6b5a..c004a6c 100644 --- a/src/main/java/cpw/mods/ironchest/common/crafting/recipe/ShulkerBoxColorRecipeFactory.java +++ b/src/main/java/cpw/mods/ironchest/common/crafting/recipe/ShulkerBoxColorRecipeFactory.java @@ -11,7 +11,6 @@ package cpw.mods.ironchest.common.crafting.recipe; import com.google.gson.JsonObject; - import cpw.mods.ironchest.common.blocks.shulker.BlockIronShulkerBox; import net.minecraft.block.Block; import net.minecraft.init.Items; @@ -123,7 +122,7 @@ public class ShulkerBoxColorRecipeFactory implements IRecipeFactory @Override public NonNullList getRemainingItems(InventoryCrafting inv) { - NonNullList nonnulllist = NonNullList. withSize(inv.getSizeInventory(), ItemStack.EMPTY); + NonNullList nonnulllist = NonNullList.withSize(inv.getSizeInventory(), ItemStack.EMPTY); for (int i = 0; i < nonnulllist.size(); ++i) { diff --git a/src/main/java/cpw/mods/ironchest/common/crafting/recipe/ShulkerBoxRecipeFactory.java b/src/main/java/cpw/mods/ironchest/common/crafting/recipe/ShulkerBoxRecipeFactory.java index 32e2daa..bcbcd2e 100644 --- a/src/main/java/cpw/mods/ironchest/common/crafting/recipe/ShulkerBoxRecipeFactory.java +++ b/src/main/java/cpw/mods/ironchest/common/crafting/recipe/ShulkerBoxRecipeFactory.java @@ -10,10 +10,7 @@ ******************************************************************************/ package cpw.mods.ironchest.common.crafting.recipe; -import javax.annotation.Nonnull; - import com.google.gson.JsonObject; - import cpw.mods.ironchest.IronChest; import cpw.mods.ironchest.common.blocks.shulker.BlockIronShulkerBox; import net.minecraft.block.Block; @@ -28,6 +25,8 @@ import net.minecraftforge.common.crafting.IRecipeFactory; import net.minecraftforge.common.crafting.JsonContext; import net.minecraftforge.oredict.ShapedOreRecipe; +import javax.annotation.Nonnull; + public class ShulkerBoxRecipeFactory implements IRecipeFactory { @Override diff --git a/src/main/java/cpw/mods/ironchest/common/gui/chest/ContainerIronChest.java b/src/main/java/cpw/mods/ironchest/common/gui/chest/ContainerIronChest.java index 019045f..d13da2d 100755 --- a/src/main/java/cpw/mods/ironchest/common/gui/chest/ContainerIronChest.java +++ b/src/main/java/cpw/mods/ironchest/common/gui/chest/ContainerIronChest.java @@ -114,8 +114,7 @@ public class ContainerIronChest extends Container { for (int playerInvCol = 0; playerInvCol < 9; playerInvCol++) { - this.addSlotToContainer( - new Slot(playerInventory, playerInvCol + playerInvRow * 9 + 9, leftCol + playerInvCol * 18, ySize - (4 - playerInvRow) * 18 - 10)); + this.addSlotToContainer(new Slot(playerInventory, playerInvCol + playerInvRow * 9 + 9, leftCol + playerInvCol * 18, ySize - (4 - playerInvRow) * 18 - 10)); } } diff --git a/src/main/java/cpw/mods/ironchest/common/gui/shulker/ContainerIronShulkerBox.java b/src/main/java/cpw/mods/ironchest/common/gui/shulker/ContainerIronShulkerBox.java index 2d657e6..f0289a7 100644 --- a/src/main/java/cpw/mods/ironchest/common/gui/shulker/ContainerIronShulkerBox.java +++ b/src/main/java/cpw/mods/ironchest/common/gui/shulker/ContainerIronShulkerBox.java @@ -53,9 +53,7 @@ public class ContainerIronShulkerBox extends Container { for (int playerInvCol = 0; playerInvCol < 9; playerInvCol++) { - //@formatter:off this.addSlotToContainer(new Slot(playerInventory, playerInvCol + playerInvRow * 9 + 9, leftCol + playerInvCol * 18, ySize - (4 - playerInvRow) * 18 - 10)); - //@formatter:on } } diff --git a/src/main/java/cpw/mods/ironchest/common/gui/shulker/slot/ValidatingShulkerBoxSlot.java b/src/main/java/cpw/mods/ironchest/common/gui/shulker/slot/ValidatingShulkerBoxSlot.java index 9ce2211..8dfd18e 100644 --- a/src/main/java/cpw/mods/ironchest/common/gui/shulker/slot/ValidatingShulkerBoxSlot.java +++ b/src/main/java/cpw/mods/ironchest/common/gui/shulker/slot/ValidatingShulkerBoxSlot.java @@ -27,8 +27,6 @@ public class ValidatingShulkerBoxSlot extends Slot @Override public boolean isItemValid(ItemStack stack) { - //@formatter:off return !(Block.getBlockFromItem(stack.getItem()) instanceof BlockIronShulkerBox) && !(Block.getBlockFromItem(stack.getItem()) instanceof BlockShulkerBox); - //@formatter:on } } 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 de0fa60..23b9b72 100755 --- a/src/main/java/cpw/mods/ironchest/common/items/ChestChangerType.java +++ b/src/main/java/cpw/mods/ironchest/common/items/ChestChangerType.java @@ -6,6 +6,11 @@ ******************************************************************************/ package cpw.mods.ironchest.common.items; +import cpw.mods.ironchest.common.blocks.chest.IronChestType; +import cpw.mods.ironchest.common.items.chest.ItemChestChanger; +import net.minecraft.item.Item; +import net.minecraftforge.registries.IForgeRegistry; + import static cpw.mods.ironchest.common.blocks.chest.IronChestType.COPPER; import static cpw.mods.ironchest.common.blocks.chest.IronChestType.CRYSTAL; import static cpw.mods.ironchest.common.blocks.chest.IronChestType.DIAMOND; @@ -15,11 +20,6 @@ import static cpw.mods.ironchest.common.blocks.chest.IronChestType.OBSIDIAN; import static cpw.mods.ironchest.common.blocks.chest.IronChestType.SILVER; 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.registries.IForgeRegistry; - public enum ChestChangerType { //@formatter:off 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 9959d5d..5d6412c 100644 --- a/src/main/java/cpw/mods/ironchest/common/items/ShulkerBoxChangerType.java +++ b/src/main/java/cpw/mods/ironchest/common/items/ShulkerBoxChangerType.java @@ -6,6 +6,11 @@ ******************************************************************************/ package cpw.mods.ironchest.common.items; +import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; +import cpw.mods.ironchest.common.items.shulker.ItemShulkerBoxChanger; +import net.minecraft.item.Item; +import net.minecraftforge.registries.IForgeRegistry; + import static cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType.COPPER; import static cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType.CRYSTAL; import static cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType.DIAMOND; @@ -15,11 +20,6 @@ import static cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType.OBSIDI import static cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType.SILVER; import static cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType.VANILLA; -import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; -import cpw.mods.ironchest.common.items.shulker.ItemShulkerBoxChanger; -import net.minecraft.item.Item; -import net.minecraftforge.registries.IForgeRegistry; - public enum ShulkerBoxChangerType { //@formatter:off 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 8402c8f..b04953d 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 @@ -10,8 +10,6 @@ ******************************************************************************/ package cpw.mods.ironchest.common.items.chest; -import java.util.Locale; - import cpw.mods.ironchest.common.blocks.chest.BlockIronChest; import cpw.mods.ironchest.common.blocks.chest.IronChestType; import cpw.mods.ironchest.common.core.IronChestBlocks; @@ -32,6 +30,8 @@ import net.minecraft.util.NonNullList; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import java.util.Locale; + public class ItemChestChanger extends ItemTooltip { public final ChestChangerType type; @@ -48,9 +48,7 @@ public class ItemChestChanger extends ItemTooltip * Called when a Block is right-clicked with this Item */ @Override - //@formatter:off public EnumActionResult onItemUseFirst(EntityPlayer playerIn, World worldIn, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ, EnumHand hand) - //@formatter:on { ItemStack itemstack = playerIn.getHeldItem(hand); @@ -79,8 +77,10 @@ public class ItemChestChanger extends ItemTooltip TileEntity te = worldIn.getTileEntity(pos); TileEntityIronChest newchest = new TileEntityIronChest(); - NonNullList chestContents = NonNullList. withSize(27, ItemStack.EMPTY); + NonNullList chestContents = NonNullList.withSize(27, ItemStack.EMPTY); EnumFacing chestFacing = EnumFacing.DOWN; + boolean hasCustomName = false; + String customName = ""; if (te != null) { @@ -88,6 +88,13 @@ public class ItemChestChanger extends ItemTooltip { chestContents = ((TileEntityIronChest) te).getItems(); chestFacing = ((TileEntityIronChest) te).getFacing(); + + if (((TileEntityIronChest) te).hasCustomName()) + { + hasCustomName = true; + customName = ((TileEntityIronChest) te).getName(); + } + newchest = this.type.target.makeEntity(); if (newchest == null) @@ -110,13 +117,19 @@ public class ItemChestChanger extends ItemTooltip return EnumActionResult.PASS; } - chestContents = NonNullList. withSize(chest.getSizeInventory(), ItemStack.EMPTY); + chestContents = NonNullList.withSize(chest.getSizeInventory(), ItemStack.EMPTY); for (int i = 0; i < chestContents.size(); i++) { chestContents.set(i, chest.getStackInSlot(i)); } + if (chest.hasCustomName()) + { + hasCustomName = true; + customName = chest.getName(); + } + newchest = this.type.target.makeEntity(); } } @@ -144,6 +157,11 @@ public class ItemChestChanger extends ItemTooltip { ((TileEntityIronChest) te2).setContents(chestContents); ((TileEntityIronChest) te2).setFacing(chestFacing); + + if (hasCustomName) + { + ((TileEntityIronChest) te2).setCustomName(customName); + } } if (!playerIn.capabilities.isCreativeMode) 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 06acc4f..291fb64 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 @@ -10,13 +10,13 @@ ******************************************************************************/ package cpw.mods.ironchest.common.items.chest; -import java.util.Locale; - import cpw.mods.ironchest.common.blocks.chest.IronChestType; import net.minecraft.block.Block; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; +import java.util.Locale; + public class ItemIronChest extends ItemBlock { public ItemIronChest(Block block) 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 193afc2..9faed2b 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 @@ -10,14 +10,14 @@ ******************************************************************************/ package cpw.mods.ironchest.common.items.shulker; -import java.util.Locale; - 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 java.util.Locale; + public class ItemIronShulkerBox extends ItemBlock { private final String colorName; 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 ce22c4a..6fff708 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 @@ -10,8 +10,6 @@ ******************************************************************************/ package cpw.mods.ironchest.common.items.shulker; -import java.util.Locale; - import cpw.mods.ironchest.common.blocks.shulker.BlockIronShulkerBox; import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; import cpw.mods.ironchest.common.core.IronChestCreativeTabs; @@ -34,6 +32,8 @@ import net.minecraft.util.NonNullList; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import java.util.Locale; + public class ItemShulkerBoxChanger extends ItemTooltip { public final ShulkerBoxChangerType type; @@ -88,9 +88,7 @@ public class ItemShulkerBoxChanger extends ItemTooltip * Called when a Block is right-clicked with this Item */ @Override - //@formatter:off public EnumActionResult onItemUseFirst(EntityPlayer playerIn, World worldIn, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ, EnumHand hand) - //@formatter:on { ItemStack itemstack = playerIn.getHeldItem(hand); @@ -127,9 +125,11 @@ public class ItemShulkerBoxChanger extends ItemTooltip TileEntityIronShulkerBox newShulkerBox = new TileEntityIronShulkerBox(); - NonNullList shulkerBoxContents = NonNullList. withSize(27, ItemStack.EMPTY); + NonNullList shulkerBoxContents = NonNullList.withSize(27, ItemStack.EMPTY); EnumFacing shulkerBoxFacing = EnumFacing.UP; EnumDyeColor shulkerBoxColor = EnumDyeColor.PURPLE; + boolean hasCustomName = false; + String customName = ""; if (te != null) { @@ -140,6 +140,12 @@ public class ItemShulkerBoxChanger extends ItemTooltip shulkerBoxColor = getColorFromTileEntity(te, worldIn); ((TileEntityIronShulkerBox) te).setHasBeenUpgraded(); + if (((TileEntityIronShulkerBox) te).hasCustomName()) + { + hasCustomName = true; + customName = ((TileEntityIronShulkerBox) te).getName(); + } + newShulkerBox = this.type.target.makeEntity(shulkerBoxColor); if (newShulkerBox == null) @@ -158,13 +164,19 @@ public class ItemShulkerBoxChanger extends ItemTooltip return EnumActionResult.PASS; } - shulkerBoxContents = NonNullList. withSize(shulkerBox.getSizeInventory(), ItemStack.EMPTY); + shulkerBoxContents = NonNullList.withSize(shulkerBox.getSizeInventory(), ItemStack.EMPTY); for (int i = 0; i < shulkerBoxContents.size(); i++) { shulkerBoxContents.set(i, shulkerBox.getStackInSlot(i)); } + if (shulkerBox.hasCustomName()) + { + hasCustomName = true; + customName = shulkerBox.getName(); + } + shulkerBoxColor = getColorFromTileEntity(te, worldIn); shulkerBox.clear(); @@ -202,6 +214,11 @@ public class ItemShulkerBoxChanger extends ItemTooltip { ((TileEntityIronShulkerBox) te2).setContents(shulkerBoxContents); ((TileEntityIronShulkerBox) te2).setFacing(shulkerBoxFacing); + + if (hasCustomName) + { + ((TileEntityIronShulkerBox) te2).setCustomName(customName); + } } if (!playerIn.capabilities.isCreativeMode) 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 de195de..cf64d27 100644 --- a/src/main/java/cpw/mods/ironchest/common/lib/BlockLists.java +++ b/src/main/java/cpw/mods/ironchest/common/lib/BlockLists.java @@ -1,9 +1,6 @@ package cpw.mods.ironchest.common.lib; -import java.util.List; - import com.google.common.collect.Lists; - import cpw.mods.ironchest.common.core.IronChestBlocks; import cpw.mods.ironchest.common.util.BehaviorDispenseIronShulkerBox; import net.minecraft.block.Block; @@ -12,6 +9,8 @@ import net.minecraft.init.Blocks; import net.minecraft.item.EnumDyeColor; import net.minecraft.item.ItemBlock; +import java.util.List; + public class BlockLists { //@formatter:off diff --git a/src/main/java/cpw/mods/ironchest/common/lib/ICChestInventoryHandler.java b/src/main/java/cpw/mods/ironchest/common/lib/ICChestInventoryHandler.java index 0fc8ef7..d5d99c2 100644 --- a/src/main/java/cpw/mods/ironchest/common/lib/ICChestInventoryHandler.java +++ b/src/main/java/cpw/mods/ironchest/common/lib/ICChestInventoryHandler.java @@ -8,14 +8,14 @@ package cpw.mods.ironchest.common.lib; -import javax.annotation.Nonnull; - import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraftforge.items.IItemHandlerModifiable; import net.minecraftforge.items.ItemHandlerHelper; +import javax.annotation.Nonnull; + public class ICChestInventoryHandler implements IItemHandlerModifiable { TileEntityIronChest inv; @@ -41,29 +41,36 @@ public class ICChestInventoryHandler implements IItemHandlerModifiable public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) { if (stack.isEmpty()) + { return stack; + } + stack = stack.copy(); - if (!inv.isItemValidForSlot(slot, stack)) + if (!this.inv.isItemValidForSlot(slot, stack)) + { return stack; + } - int offsetSlot = slot; - ItemStack currentStack = inv.getItems().get(offsetSlot); + ItemStack currentStack = this.inv.getItems().get(slot); if (currentStack.isEmpty()) { - int accepted = Math.min(stack.getMaxStackSize(), inv.getInventoryStackLimit()); + int accepted = Math.min(stack.getMaxStackSize(), this.inv.getInventoryStackLimit()); + if (accepted < stack.getCount()) { if (!simulate) { - inv.getItems().set(offsetSlot, stack.splitStack(accepted)); - inv.markDirty(); + this.inv.getItems().set(slot, stack.splitStack(accepted)); + this.inv.markDirty(); + return stack; } else { stack.shrink(accepted); + return stack; } } @@ -71,18 +78,21 @@ public class ICChestInventoryHandler implements IItemHandlerModifiable { if (!simulate) { - inv.getItems().set(offsetSlot, stack); - inv.markDirty(); + this.inv.getItems().set(slot, stack); + this.inv.markDirty(); } + return ItemStack.EMPTY; } } else { - int accepted = Math.min(stack.getMaxStackSize(), inv.getInventoryStackLimit()) - currentStack.getCount(); + int accepted = Math.min(stack.getMaxStackSize(), this.inv.getInventoryStackLimit()) - currentStack.getCount(); if (accepted <= 0 || !ItemHandlerHelper.canItemStacksStack(stack, currentStack)) + { return stack; + } if (accepted < stack.getCount()) { @@ -90,13 +100,15 @@ public class ICChestInventoryHandler implements IItemHandlerModifiable { ItemStack newStack = stack.splitStack(accepted); newStack.grow(currentStack.getCount()); - inv.getItems().set(offsetSlot, newStack); - inv.markDirty(); + this.inv.getItems().set(slot, newStack); + this.inv.markDirty(); + return stack; } else { stack.shrink(accepted); + return stack; } } @@ -106,9 +118,10 @@ public class ICChestInventoryHandler implements IItemHandlerModifiable { ItemStack newStack = stack.copy(); newStack.grow(currentStack.getCount()); - inv.getItems().set(offsetSlot, newStack); - inv.markDirty(); + this.inv.getItems().set(slot, newStack); + this.inv.markDirty(); } + return ItemStack.EMPTY; } } @@ -118,45 +131,55 @@ public class ICChestInventoryHandler implements IItemHandlerModifiable public ItemStack extractItem(int slot, int amount, boolean simulate) { if (amount == 0) + { return ItemStack.EMPTY; + } - int offsetSlot = slot; - ItemStack currentStack = inv.getItems().get(offsetSlot); + ItemStack currentStack = this.inv.getItems().get(slot); if (currentStack.isEmpty()) + { return ItemStack.EMPTY; + } int extracted = Math.min(currentStack.getCount(), amount); ItemStack copy = currentStack.copy(); copy.setCount(extracted); + if (!simulate) { if (extracted < currentStack.getCount()) + { currentStack.shrink(extracted); + } else + { currentStack = ItemStack.EMPTY; - inv.getItems().set(offsetSlot, currentStack); - inv.markDirty(); + } + + this.inv.getItems().set(slot, currentStack); + this.inv.markDirty(); } + return copy; } @Override public int getSlotLimit(int slot) { - return getInv().getInventoryStackLimit(); + return this.getInv().getInventoryStackLimit(); } @Override public void setStackInSlot(int slot, @Nonnull ItemStack stack) { - inv.getItems().set(slot, stack); - inv.markDirty(); + this.inv.getItems().set(slot, stack); + this.inv.markDirty(); } public IInventory getInv() { - return inv; + return this.inv; } } diff --git a/src/main/java/cpw/mods/ironchest/common/lib/ICShulkerInventoryHandler.java b/src/main/java/cpw/mods/ironchest/common/lib/ICShulkerInventoryHandler.java index d402596..2992b83 100644 --- a/src/main/java/cpw/mods/ironchest/common/lib/ICShulkerInventoryHandler.java +++ b/src/main/java/cpw/mods/ironchest/common/lib/ICShulkerInventoryHandler.java @@ -8,14 +8,14 @@ package cpw.mods.ironchest.common.lib; -import javax.annotation.Nonnull; - import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraftforge.items.IItemHandlerModifiable; import net.minecraftforge.items.ItemHandlerHelper; +import javax.annotation.Nonnull; + public class ICShulkerInventoryHandler implements IItemHandlerModifiable { TileEntityIronShulkerBox inv; @@ -41,29 +41,36 @@ public class ICShulkerInventoryHandler implements IItemHandlerModifiable public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) { if (stack.isEmpty()) + { return stack; + } + stack = stack.copy(); - if (!inv.isItemValidForSlot(slot, stack)) + if (!this.inv.isItemValidForSlot(slot, stack)) + { return stack; + } - int offsetSlot = slot; - ItemStack currentStack = inv.getItems().get(offsetSlot); + ItemStack currentStack = this.inv.getItems().get(slot); if (currentStack.isEmpty()) { - int accepted = Math.min(stack.getMaxStackSize(), inv.getInventoryStackLimit()); + int accepted = Math.min(stack.getMaxStackSize(), this.inv.getInventoryStackLimit()); + if (accepted < stack.getCount()) { if (!simulate) { - inv.getItems().set(offsetSlot, stack.splitStack(accepted)); - inv.markDirty(); + this.inv.getItems().set(slot, stack.splitStack(accepted)); + this.inv.markDirty(); + return stack; } else { stack.shrink(accepted); + return stack; } } @@ -71,18 +78,21 @@ public class ICShulkerInventoryHandler implements IItemHandlerModifiable { if (!simulate) { - inv.getItems().set(offsetSlot, stack); - inv.markDirty(); + this.inv.getItems().set(slot, stack); + this.inv.markDirty(); } + return ItemStack.EMPTY; } } else { - int accepted = Math.min(stack.getMaxStackSize(), inv.getInventoryStackLimit()) - currentStack.getCount(); + int accepted = Math.min(stack.getMaxStackSize(), this.inv.getInventoryStackLimit()) - currentStack.getCount(); if (accepted <= 0 || !ItemHandlerHelper.canItemStacksStack(stack, currentStack)) + { return stack; + } if (accepted < stack.getCount()) { @@ -90,13 +100,15 @@ public class ICShulkerInventoryHandler implements IItemHandlerModifiable { ItemStack newStack = stack.splitStack(accepted); newStack.grow(currentStack.getCount()); - inv.getItems().set(offsetSlot, newStack); - inv.markDirty(); + this.inv.getItems().set(slot, newStack); + this.inv.markDirty(); + return stack; } else { stack.shrink(accepted); + return stack; } } @@ -106,9 +118,10 @@ public class ICShulkerInventoryHandler implements IItemHandlerModifiable { ItemStack newStack = stack.copy(); newStack.grow(currentStack.getCount()); - inv.getItems().set(offsetSlot, newStack); - inv.markDirty(); + this.inv.getItems().set(slot, newStack); + this.inv.markDirty(); } + return ItemStack.EMPTY; } } @@ -118,45 +131,55 @@ public class ICShulkerInventoryHandler implements IItemHandlerModifiable public ItemStack extractItem(int slot, int amount, boolean simulate) { if (amount == 0) + { return ItemStack.EMPTY; + } - int offsetSlot = slot; - ItemStack currentStack = inv.getItems().get(offsetSlot); + ItemStack currentStack = this.inv.getItems().get(slot); if (currentStack.isEmpty()) + { return ItemStack.EMPTY; + } int extracted = Math.min(currentStack.getCount(), amount); ItemStack copy = currentStack.copy(); copy.setCount(extracted); + if (!simulate) { if (extracted < currentStack.getCount()) + { currentStack.shrink(extracted); + } else + { currentStack = ItemStack.EMPTY; - inv.getItems().set(offsetSlot, currentStack); - inv.markDirty(); + } + + this.inv.getItems().set(slot, currentStack); + this.inv.markDirty(); } + return copy; } @Override public int getSlotLimit(int slot) { - return getInv().getInventoryStackLimit(); + return this.getInv().getInventoryStackLimit(); } @Override public void setStackInSlot(int slot, @Nonnull ItemStack stack) { - inv.getItems().set(slot, stack); - inv.markDirty(); + this.inv.getItems().set(slot, stack); + this.inv.markDirty(); } public IInventory getInv() { - return inv; + return this.inv; } } diff --git a/src/main/java/cpw/mods/ironchest/common/network/MessageCrystalChestSync.java b/src/main/java/cpw/mods/ironchest/common/network/MessageCrystalChestSync.java index 2772cea..a328077 100644 --- a/src/main/java/cpw/mods/ironchest/common/network/MessageCrystalChestSync.java +++ b/src/main/java/cpw/mods/ironchest/common/network/MessageCrystalChestSync.java @@ -11,6 +11,7 @@ package cpw.mods.ironchest.common.network; import cpw.mods.ironchest.IronChest; +import cpw.mods.ironchest.common.tileentity.chest.TileEntityCrystalChest; import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest; import io.netty.buffer.ByteBuf; import net.minecraft.item.ItemStack; @@ -26,14 +27,21 @@ import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; public class MessageCrystalChestSync implements IMessage { int dimension; + BlockPos pos; + private NonNullList topStacks; - public MessageCrystalChestSync(TileEntityIronChest tile, NonNullList stack) + public MessageCrystalChestSync(int dimensionId, BlockPos tilePos, NonNullList stackList) { - this.dimension = tile.getWorld().provider.getDimension(); - this.pos = tile.getPos(); - this.topStacks = stack; + this.dimension = dimensionId; + this.pos = tilePos; + this.topStacks = stackList; + } + + public MessageCrystalChestSync(TileEntityIronChest tile, NonNullList stacklist) + { + this(tile.getWorld().provider.getDimension(), tile.getPos(), stacklist); } public MessageCrystalChestSync() @@ -47,7 +55,7 @@ public class MessageCrystalChestSync implements IMessage this.pos = new BlockPos(buf.readInt(), buf.readInt(), buf.readInt()); int size = buf.readInt(); - this.topStacks = NonNullList. withSize(size, ItemStack.EMPTY); + this.topStacks = NonNullList.withSize(size, ItemStack.EMPTY); for (int i = 0; i < size; i++) { @@ -83,11 +91,13 @@ public class MessageCrystalChestSync implements IMessage { TileEntity tile = world.getTileEntity(message.pos); - if (tile instanceof TileEntityIronChest) - ((TileEntityIronChest) tile).receiveMessageFromServer(message.topStacks); + if (tile instanceof TileEntityCrystalChest) + { + ((TileEntityCrystalChest) tile).receiveMessageFromServer(message.topStacks); + } } return null; } } -} \ No newline at end of file +} diff --git a/src/main/java/cpw/mods/ironchest/common/network/MessageCrystalShulkerSync.java b/src/main/java/cpw/mods/ironchest/common/network/MessageCrystalShulkerSync.java index c1dd928..0147c36 100644 --- a/src/main/java/cpw/mods/ironchest/common/network/MessageCrystalShulkerSync.java +++ b/src/main/java/cpw/mods/ironchest/common/network/MessageCrystalShulkerSync.java @@ -11,6 +11,7 @@ package cpw.mods.ironchest.common.network; import cpw.mods.ironchest.IronChest; +import cpw.mods.ironchest.common.tileentity.shulker.TileEntityCrystalShulkerBox; import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox; import io.netty.buffer.ByteBuf; import net.minecraft.item.ItemStack; @@ -31,11 +32,16 @@ public class MessageCrystalShulkerSync implements IMessage private NonNullList topStacks; - public MessageCrystalShulkerSync(TileEntityIronShulkerBox tile, NonNullList stack) + public MessageCrystalShulkerSync(int dimensionId, BlockPos tilePos, NonNullList stackList) { - this.dimension = tile.getWorld().provider.getDimension(); - this.pos = tile.getPos(); - this.topStacks = stack; + this.dimension = dimensionId; + this.pos = tilePos; + this.topStacks = stackList; + } + + public MessageCrystalShulkerSync(TileEntityIronShulkerBox tile, NonNullList stacklist) + { + this(tile.getWorld().provider.getDimension(), tile.getPos(), stacklist); } public MessageCrystalShulkerSync() @@ -49,7 +55,7 @@ public class MessageCrystalShulkerSync implements IMessage this.pos = new BlockPos(buf.readInt(), buf.readInt(), buf.readInt()); int size = buf.readInt(); - this.topStacks = NonNullList. withSize(size, ItemStack.EMPTY); + this.topStacks = NonNullList.withSize(size, ItemStack.EMPTY); for (int i = 0; i < size; i++) { @@ -85,8 +91,10 @@ public class MessageCrystalShulkerSync implements IMessage { TileEntity tile = world.getTileEntity(message.pos); - if (tile instanceof TileEntityIronShulkerBox) - ((TileEntityIronShulkerBox) tile).receiveMessageFromServer(message.topStacks); + if (tile instanceof TileEntityCrystalShulkerBox) + { + ((TileEntityCrystalShulkerBox) tile).receiveMessageFromServer(message.topStacks); + } } return null; diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityCrystalChest.java b/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityCrystalChest.java index 5243be1..213edc6 100755 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityCrystalChest.java +++ b/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityCrystalChest.java @@ -10,20 +10,242 @@ ******************************************************************************/ package cpw.mods.ironchest.common.tileentity.chest; +import cpw.mods.ironchest.IronChest; import cpw.mods.ironchest.common.blocks.chest.IronChestType; +import cpw.mods.ironchest.common.network.MessageCrystalChestSync; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.NonNullList; import net.minecraft.util.datafix.DataFixer; import net.minecraft.util.datafix.FixTypes; import net.minecraft.util.datafix.walkers.ItemStackDataLists; +import net.minecraftforge.fml.common.network.NetworkRegistry; + +import java.util.Collections; public class TileEntityCrystalChest extends TileEntityIronChest { + /** Crystal Chest top stacks */ + private NonNullList topStacks; + + /** If the inventory got touched */ + private boolean inventoryTouched; + + /** If the inventory had items */ + private boolean hadStuff; + public TileEntityCrystalChest() { super(IronChestType.CRYSTAL); + this.topStacks = NonNullList.withSize(8, ItemStack.EMPTY); + } + + public NonNullList getTopItems() + { + return this.topStacks; + } + + @Override + public void setContents(NonNullList contents) + { + super.setContents(contents); + + this.inventoryTouched = true; + } + + @Override + public ItemStack getStackInSlot(int index) + { + this.fillWithLoot((EntityPlayer) null); + + this.inventoryTouched = true; + + return this.getItems().get(index); + } + + @Override + public void markDirty() + { + super.markDirty(); + + this.sortTopStacks(); + } + + @Override + public void readFromNBT(NBTTagCompound compound) + { + super.readFromNBT(compound); + + this.sortTopStacks(); + } + + @Override + public void update() + { + super.update(); + + if (!this.world.isRemote && this.inventoryTouched) + { + this.inventoryTouched = false; + + this.sortTopStacks(); + } + } + + protected void sortTopStacks() + { + if (!this.getType().isTransparent() || (this.world != null && this.world.isRemote)) + { + return; + } + + NonNullList tempCopy = NonNullList.withSize(this.getSizeInventory(), ItemStack.EMPTY); + + boolean hasStuff = false; + + int compressedIdx = 0; + + mainLoop: + for (int i = 0; i < this.getSizeInventory(); i++) + { + ItemStack itemStack = this.getItems().get(i); + + if (!itemStack.isEmpty()) + { + for (int j = 0; j < compressedIdx; j++) + { + ItemStack tempCopyStack = tempCopy.get(j); + + if (ItemStack.areItemsEqualIgnoreDurability(tempCopyStack, itemStack)) + { + if (itemStack.getCount() != tempCopyStack.getCount()) + { + tempCopyStack.grow(itemStack.getCount()); + } + + continue mainLoop; + } + } + + tempCopy.set(compressedIdx, itemStack.copy()); + + compressedIdx++; + + hasStuff = true; + } + } + + if (!hasStuff && this.hadStuff) + { + this.hadStuff = false; + + for (int i = 0; i < this.getTopItems().size(); i++) + { + this.getTopItems().set(i, ItemStack.EMPTY); + } + + if (this.world != null) + { + IBlockState iblockstate = this.world.getBlockState(this.pos); + + this.world.notifyBlockUpdate(this.pos, iblockstate, iblockstate, 3); + } + + return; + } + + this.hadStuff = true; + + Collections.sort(tempCopy, (stack1, stack2) -> { + if (stack1.isEmpty()) + { + return 1; + } + else if (stack2.isEmpty()) + { + return -1; + } + else + { + return stack2.getCount() - stack1.getCount(); + } + }); + + int p = 0; + + for (ItemStack element : tempCopy) + { + if (!element.isEmpty() && element.getCount() > 0) + { + if (p == this.getTopItems().size()) + { + break; + } + + this.getTopItems().set(p, element); + + p++; + } + } + + for (int i = p; i < this.getTopItems().size(); i++) + { + this.getTopItems().set(i, ItemStack.EMPTY); + } + + if (this.world != null) + { + IBlockState iblockstate = this.world.getBlockState(this.pos); + + this.world.notifyBlockUpdate(this.pos, iblockstate, iblockstate, 3); + } + + this.sendTopStacksPacket(); + } + + public NonNullList buildItemStackDataList() + { + if (this.getType().isTransparent()) + { + NonNullList sortList = NonNullList.withSize(this.getTopItems().size(), ItemStack.EMPTY); + + int pos = 0; + + for (ItemStack is : this.topStacks) + { + if (!is.isEmpty()) + { + sortList.set(pos, is); + } + else + { + sortList.set(pos, ItemStack.EMPTY); + } + + pos++; + } + + return sortList; + } + + return NonNullList.withSize(this.getTopItems().size(), ItemStack.EMPTY); + } + + protected void sendTopStacksPacket() + { + NonNullList stacks = this.buildItemStackDataList(); + IronChest.packetHandler.sendToAllAround(new MessageCrystalChestSync(this.getWorld().provider.getDimension(), this.getPos(), stacks), new NetworkRegistry.TargetPoint(world.provider.getDimension(), getPos().getX(), getPos().getY(), getPos().getZ(), 128)); + } + + public void receiveMessageFromServer(NonNullList topStacks) + { + this.topStacks = topStacks; } public static void registerFixesChest(DataFixer fixer) { fixer.registerWalker(FixTypes.BLOCK_ENTITY, new ItemStackDataLists(TileEntityCrystalChest.class, new String[] { "Items" })); } -} \ No newline at end of file +} 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 bbdb9fd..1524c90 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 @@ -10,16 +10,11 @@ ******************************************************************************/ package cpw.mods.ironchest.common.tileentity.chest; -import java.util.Collections; -import java.util.Comparator; - -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.core.IronChestBlocks; import cpw.mods.ironchest.common.gui.chest.ContainerIronChest; import cpw.mods.ironchest.common.lib.ICChestInventoryHandler; -import cpw.mods.ironchest.common.network.MessageCrystalChestSync; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -42,7 +37,6 @@ import net.minecraft.util.datafix.walkers.ItemStackDataLists; import net.minecraft.util.math.AxisAlignedBB; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.Constants; -import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; @@ -51,9 +45,6 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick /** Chest Contents */ public NonNullList chestContents; - /** Crystal Chest top stacks */ - private NonNullList topStacks; - /** The current angle of the lid (between 0 and 1) */ public float lidAngle; @@ -69,12 +60,6 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick /** Direction chest is facing */ private EnumFacing facing; - /** If the inventory got touched */ - private boolean inventoryTouched; - - /** If the inventory had items */ - private boolean hadStuff; - private String customName; private IronChestType chestType; @@ -88,14 +73,13 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick { super(); this.chestType = type; - this.chestContents = NonNullList. withSize(type.size, ItemStack.EMPTY); - this.topStacks = NonNullList. withSize(8, ItemStack.EMPTY); + this.chestContents = NonNullList.withSize(type.size, ItemStack.EMPTY); this.facing = EnumFacing.NORTH; } public void setContents(NonNullList contents) { - this.chestContents = NonNullList. withSize(this.getType().size, ItemStack.EMPTY); + this.chestContents = NonNullList.withSize(this.getType().size, ItemStack.EMPTY); for (int i = 0; i < contents.size(); i++) { @@ -104,8 +88,6 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick this.getItems().set(i, contents.get(i)); } } - - this.inventoryTouched = true; } @Override @@ -139,9 +121,7 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick @Override public ItemStack getStackInSlot(int index) { - this.fillWithLoot((EntityPlayer) null); - - this.inventoryTouched = true; + this.fillWithLoot(null); return this.getItems().get(index); } @@ -150,124 +130,6 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick public void markDirty() { super.markDirty(); - - this.sortTopStacks(); - } - - protected void sortTopStacks() - { - if (!this.getType().isTransparent() || (this.world != null && this.world.isRemote)) - { - return; - } - - NonNullList tempCopy = NonNullList. withSize(this.getSizeInventory(), ItemStack.EMPTY); - - boolean hasStuff = false; - - int compressedIdx = 0; - - mainLoop: - for (int i = 0; i < this.getSizeInventory(); i++) - { - ItemStack itemStack = this.getItems().get(i); - - if (!itemStack.isEmpty()) - { - for (int j = 0; j < compressedIdx; j++) - { - ItemStack tempCopyStack = tempCopy.get(j); - - if (ItemStack.areItemsEqualIgnoreDurability(tempCopyStack, itemStack)) - { - if (itemStack.getCount() != tempCopyStack.getCount()) - { - tempCopyStack.grow(itemStack.getCount()); - } - - continue mainLoop; - } - } - - tempCopy.set(compressedIdx, itemStack.copy()); - - compressedIdx++; - - hasStuff = true; - } - } - - if (!hasStuff && this.hadStuff) - { - this.hadStuff = false; - - for (int i = 0; i < this.getTopItems().size(); i++) - { - this.getTopItems().set(i, ItemStack.EMPTY); - } - - if (this.world != null) - { - IBlockState iblockstate = this.world.getBlockState(this.pos); - - this.world.notifyBlockUpdate(this.pos, iblockstate, iblockstate, 3); - } - - return; - } - - this.hadStuff = true; - - Collections.sort(tempCopy, new Comparator() - { - @Override - public int compare(ItemStack stack1, ItemStack stack2) - { - if (stack1.isEmpty()) - { - return 1; - } - else if (stack2.isEmpty()) - { - return -1; - } - else - { - return stack2.getCount() - stack1.getCount(); - } - } - }); - - int p = 0; - - for (ItemStack element : tempCopy) - { - if (!element.isEmpty() && element.getCount() > 0) - { - if (p == this.getTopItems().size()) - { - break; - } - - this.getTopItems().set(p, element); - - p++; - } - } - - for (int i = p; i < this.getTopItems().size(); i++) - { - this.getTopItems().set(i, ItemStack.EMPTY); - } - - if (this.world != null) - { - IBlockState iblockstate = this.world.getBlockState(this.pos); - - this.world.notifyBlockUpdate(this.pos, iblockstate, iblockstate, 3); - } - - sendTopStacksPacket(); } @Override @@ -293,7 +155,7 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick { super.readFromNBT(compound); - this.chestContents = NonNullList. withSize(this.getSizeInventory(), ItemStack.EMPTY); + this.chestContents = NonNullList.withSize(this.getSizeInventory(), ItemStack.EMPTY); if (compound.hasKey("CustomName", Constants.NBT.TAG_STRING)) { @@ -306,8 +168,6 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick } this.facing = EnumFacing.VALUES[compound.getByte("facing")]; - - this.sortTopStacks(); } @Override @@ -355,18 +215,17 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick @Override public void update() { + int x = this.pos.getX(); + int y = this.pos.getY(); + int z = this.pos.getZ(); + ++this.ticksSinceSync; + // Resynchronizes clients with the server state - //@formatter:off - if (this.world != null && !this.world.isRemote && this.numPlayersUsing != 0 && (this.ticksSinceSync + this.pos.getX() + this.pos.getY() + this.pos.getZ()) % 200 == 0) - //@formatter:on + if (this.world != null && !this.world.isRemote && this.numPlayersUsing != 0 && (this.ticksSinceSync + x + y + z) % 200 == 0) { this.numPlayersUsing = 0; - float f = 5.0F; - - //@formatter:off - for (EntityPlayer player : this.world.getEntitiesWithinAABB(EntityPlayer.class, new AxisAlignedBB(this.pos.getX() - f, this.pos.getY() - f, this.pos.getZ() - f, this.pos.getX() + 1 + f, this.pos.getY() + 1 + f, this.pos.getZ() + 1 + f))) - //@formatter:on + for (EntityPlayer player : this.world.getEntitiesWithinAABB(EntityPlayer.class, new AxisAlignedBB(x - 5.0F, y - 5.0F, z - 5.0F, x + 1 + 5.0F, y + 1 + 5.0F, z + 1 + 5.0F))) { if (player.openContainer instanceof ContainerIronChest) { @@ -380,26 +239,16 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick this.world.addBlockEvent(this.pos, IronChestBlocks.ironChestBlock, 3, ((this.numPlayersUsing << 3) & 0xF8) | (this.facing.ordinal() & 0x7)); } - if (!this.world.isRemote && this.inventoryTouched) - { - this.inventoryTouched = false; - - this.sortTopStacks(); - } - - this.ticksSinceSync++; - this.prevLidAngle = this.lidAngle; - float angle = 0.1F; if (this.numPlayersUsing > 0 && this.lidAngle == 0.0F) { - double x = this.pos.getX() + 0.5D; - double y = this.pos.getY() + 0.5D; - double z = this.pos.getZ() + 0.5D; + double soundX = x + 0.5D; + double soundY = y + 0.5D; + double soundZ = z + 0.5D; - this.world.playSound(null, x, y, z, SoundEvents.BLOCK_CHEST_OPEN, SoundCategory.BLOCKS, 0.5F, this.world.rand.nextFloat() * 0.1F + 0.9F); + this.world.playSound(null, soundX, soundY, soundZ, SoundEvents.BLOCK_CHEST_OPEN, SoundCategory.BLOCKS, 0.5F, this.world.rand.nextFloat() * 0.1F + 0.9F); } if (this.numPlayersUsing == 0 && this.lidAngle > 0.0F || this.numPlayersUsing > 0 && this.lidAngle < 1.0F) @@ -424,11 +273,11 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick if (this.lidAngle < maxAngle && currentAngle >= maxAngle) { - double x = this.pos.getX() + 0.5D; - double y = this.pos.getY() + 0.5D; - double z = this.pos.getZ() + 0.5D; + double soundX = x + 0.5D; + double soundY = y + 0.5D; + double soundZ = z + 0.5D; - this.world.playSound(null, x, y, z, SoundEvents.BLOCK_CHEST_CLOSE, SoundCategory.BLOCKS, 0.5F, this.world.rand.nextFloat() * 0.1F + 0.9F); + this.world.playSound(null, soundX, soundY, soundZ, SoundEvents.BLOCK_CHEST_CLOSE, SoundCategory.BLOCKS, 0.5F, this.world.rand.nextFloat() * 0.1F + 0.9F); } if (this.lidAngle < 0.0F) @@ -455,7 +304,7 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick this.numPlayersUsing = (type & 0xF8) >> 3; } - return true; + return super.receiveClientEvent(id, type); } @Override @@ -463,11 +312,6 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick { if (!player.isSpectator()) { - if (this.world == null) - { - return; - } - if (this.numPlayersUsing < 0) { this.numPlayersUsing = 0; @@ -477,7 +321,6 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick 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); } } @@ -486,16 +329,10 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick { if (!player.isSpectator()) { - if (this.world == null) - { - return; - } - --this.numPlayersUsing; 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); } } @@ -525,34 +362,6 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick } } - public NonNullList buildItemStackDataList() - { - if (this.getType().isTransparent()) - { - NonNullList sortList = NonNullList. withSize(this.getTopItems().size(), ItemStack.EMPTY); - - int pos = 0; - - for (ItemStack is : this.topStacks) - { - if (!is.isEmpty()) - { - sortList.set(pos, is); - } - else - { - sortList.set(pos, ItemStack.EMPTY); - } - - pos++; - } - - return sortList; - } - - return NonNullList. withSize(this.getTopItems().size(), ItemStack.EMPTY); - } - @Override public boolean isItemValidForSlot(int index, ItemStack stack) { @@ -598,7 +407,19 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick public NBTTagCompound getUpdateTag() { NBTTagCompound compound = super.getUpdateTag(); + + if (!this.checkLootAndWrite(compound)) + { + ItemStackHelper.saveAllItems(compound, this.chestContents); + } + compound.setByte("facing", (byte) this.facing.ordinal()); + + if (this.hasCustomName()) + { + compound.setString("CustomName", this.customName); + } + return compound; } @@ -608,11 +429,6 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick return this.chestContents; } - public NonNullList getTopItems() - { - return this.topStacks; - } - @Override public boolean isEmpty() { @@ -627,29 +443,18 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick return true; } - protected void sendTopStacksPacket() - { - NonNullList stacks = this.buildItemStackDataList(); - //@formatter:off - IronChest.packetHandler.sendToAllAround(new MessageCrystalChestSync(this, stacks), new TargetPoint(world.provider.getDimension(), getPos().getX(), getPos().getY(), getPos().getZ(), 128)); - //@formatter:on - } - - public void receiveMessageFromServer(NonNullList topStacks) - { - this.topStacks = topStacks; - } - public static void registerFixesChest(DataFixer fixer) { - fixer.registerWalker(FixTypes.BLOCK_ENTITY, new ItemStackDataLists(TileEntityIronChest.class, new String[] { "Items" })); + fixer.registerWalker(FixTypes.BLOCK_ENTITY, new ItemStackDataLists(TileEntityIronChest.class, "Items")); } @Override public boolean hasCapability(Capability capability, EnumFacing facing) { if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) + { return true; + } return super.hasCapability(capability, facing); } @@ -666,7 +471,9 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick public T getCapability(Capability capability, EnumFacing facing) { if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) - return (T) (itemHandler == null ? (itemHandler = createUnSidedHandler()) : itemHandler); + { + return (T) (this.itemHandler == null ? (this.itemHandler = this.createUnSidedHandler()) : this.itemHandler); + } return super.getCapability(capability, facing); } } diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityCopperShulkerBox.java b/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityCopperShulkerBox.java index 0deaf4b..277785b 100644 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityCopperShulkerBox.java +++ b/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityCopperShulkerBox.java @@ -10,14 +10,14 @@ ******************************************************************************/ package cpw.mods.ironchest.common.tileentity.shulker; -import javax.annotation.Nullable; - import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; import net.minecraft.item.EnumDyeColor; import net.minecraft.util.datafix.DataFixer; import net.minecraft.util.datafix.FixTypes; import net.minecraft.util.datafix.walkers.ItemStackDataLists; +import javax.annotation.Nullable; + public class TileEntityCopperShulkerBox extends TileEntityIronShulkerBox { public TileEntityCopperShulkerBox() diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityCrystalShulkerBox.java b/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityCrystalShulkerBox.java index 1ec467c..d6e9d00 100644 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityCrystalShulkerBox.java +++ b/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityCrystalShulkerBox.java @@ -10,16 +10,32 @@ ******************************************************************************/ package cpw.mods.ironchest.common.tileentity.shulker; -import javax.annotation.Nullable; - +import cpw.mods.ironchest.IronChest; import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; +import cpw.mods.ironchest.common.network.MessageCrystalShulkerSync; import net.minecraft.item.EnumDyeColor; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.NonNullList; import net.minecraft.util.datafix.DataFixer; import net.minecraft.util.datafix.FixTypes; import net.minecraft.util.datafix.walkers.ItemStackDataLists; +import net.minecraftforge.fml.common.network.NetworkRegistry; + +import javax.annotation.Nullable; +import java.util.Collections; public class TileEntityCrystalShulkerBox extends TileEntityIronShulkerBox { + /** Crystal Shulker Boxes top stacks */ + private NonNullList topStacks; + + /** If the inventory got touched */ + private boolean inventoryTouched; + + /** If the inventory had items */ + private boolean hadStuff; + public TileEntityCrystalShulkerBox() { this(null); @@ -28,10 +44,199 @@ public class TileEntityCrystalShulkerBox extends TileEntityIronShulkerBox public TileEntityCrystalShulkerBox(@Nullable EnumDyeColor colorIn) { super(colorIn, IronShulkerBoxType.CRYSTAL); + this.topStacks = NonNullList.withSize(8, ItemStack.EMPTY); + } + + @Override + public void setContents(NonNullList contents) + { + super.setContents(contents); + + this.inventoryTouched = true; + } + + @Override + public ItemStack getStackInSlot(int index) + { + this.fillWithLoot(null); + + this.inventoryTouched = true; + + return this.getItems().get(index); + } + + @Override + public void markDirty() + { + super.markDirty(); + + this.sortTopStacks(); + } + + @Override + public void loadFromNbt(NBTTagCompound compound) + { + super.loadFromNbt(compound); + + this.sortTopStacks(); + } + + @Override + public void update() + { + super.update(); + + if (!this.world.isRemote && this.inventoryTouched) + { + this.inventoryTouched = false; + + this.sortTopStacks(); + } + } + + protected void sortTopStacks() + { + if (!this.getType().isTransparent() || (this.world != null && this.world.isRemote)) + { + return; + } + + NonNullList tempCopy = NonNullList.withSize(this.getSizeInventory(), ItemStack.EMPTY); + + boolean hasStuff = false; + + int compressedIdx = 0; + + mainLoop: + for (int i = 0; i < this.getSizeInventory(); i++) + { + ItemStack itemStack = this.getItems().get(i); + + if (!itemStack.isEmpty()) + { + for (int j = 0; j < compressedIdx; j++) + { + ItemStack tempCopyStack = tempCopy.get(j); + + if (ItemStack.areItemsEqualIgnoreDurability(tempCopyStack, itemStack)) + { + if (itemStack.getCount() != tempCopyStack.getCount()) + { + tempCopyStack.grow(itemStack.getCount()); + } + + continue mainLoop; + } + } + + tempCopy.set(compressedIdx, itemStack.copy()); + + compressedIdx++; + + hasStuff = true; + } + } + + if (!hasStuff && this.hadStuff) + { + this.hadStuff = false; + + for (int i = 0; i < this.getTopItems().size(); i++) + { + this.getTopItems().set(i, ItemStack.EMPTY); + } + + return; + } + + this.hadStuff = true; + + Collections.sort(tempCopy, (stack1, stack2) -> { + if (stack1.isEmpty()) + { + return 1; + } + else if (stack2.isEmpty()) + { + return -1; + } + else + { + return stack2.getCount() - stack1.getCount(); + } + }); + + int p = 0; + + for (ItemStack element : tempCopy) + { + if (!element.isEmpty() && element.getCount() > 0) + { + if (p == this.getTopItems().size()) + { + break; + } + + this.getTopItems().set(p, element); + + p++; + } + } + + for (int i = p; i < this.getTopItems().size(); i++) + { + this.getTopItems().set(i, ItemStack.EMPTY); + } + + this.sendTopStacksPacket(); + } + + public NonNullList getTopItems() + { + return this.topStacks; + } + + public NonNullList buildItemStackDataList() + { + if (this.getType().isTransparent()) + { + NonNullList sortList = NonNullList.withSize(this.getTopItems().size(), ItemStack.EMPTY); + + int pos = 0; + + for (ItemStack is : this.topStacks) + { + if (!is.isEmpty()) + { + sortList.set(pos, is); + } + else + { + sortList.set(pos, ItemStack.EMPTY); + } + + pos++; + } + + return sortList; + } + + return NonNullList.withSize(this.getTopItems().size(), ItemStack.EMPTY); + } + + protected void sendTopStacksPacket() + { + NonNullList stacks = this.buildItemStackDataList(); + IronChest.packetHandler.sendToAllAround(new MessageCrystalShulkerSync(this.getWorld().provider.getDimension(), this.getPos(), stacks), new NetworkRegistry.TargetPoint(this.world.provider.getDimension(), this.getPos().getX(), this.getPos().getY(), this.getPos().getZ(), 128)); + } + + public void receiveMessageFromServer(NonNullList topStacks) + { + this.topStacks = topStacks; } public static void registerFixesShulkerBox(DataFixer fixer) { - fixer.registerWalker(FixTypes.BLOCK_ENTITY, new ItemStackDataLists(TileEntityCrystalShulkerBox.class, new String[] { "Items" })); + fixer.registerWalker(FixTypes.BLOCK_ENTITY, new ItemStackDataLists(TileEntityCrystalShulkerBox.class, "Items")); } } diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityDiamondShulkerBox.java b/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityDiamondShulkerBox.java index 5a549e0..33180ef 100644 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityDiamondShulkerBox.java +++ b/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityDiamondShulkerBox.java @@ -10,14 +10,14 @@ ******************************************************************************/ package cpw.mods.ironchest.common.tileentity.shulker; -import javax.annotation.Nullable; - import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; import net.minecraft.item.EnumDyeColor; import net.minecraft.util.datafix.DataFixer; import net.minecraft.util.datafix.FixTypes; import net.minecraft.util.datafix.walkers.ItemStackDataLists; +import javax.annotation.Nullable; + public class TileEntityDiamondShulkerBox extends TileEntityIronShulkerBox { public TileEntityDiamondShulkerBox() diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityGoldShulkerBox.java b/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityGoldShulkerBox.java index b38d743..24f8d37 100644 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityGoldShulkerBox.java +++ b/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityGoldShulkerBox.java @@ -10,14 +10,14 @@ ******************************************************************************/ package cpw.mods.ironchest.common.tileentity.shulker; -import javax.annotation.Nullable; - import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; import net.minecraft.item.EnumDyeColor; import net.minecraft.util.datafix.DataFixer; import net.minecraft.util.datafix.FixTypes; import net.minecraft.util.datafix.walkers.ItemStackDataLists; +import javax.annotation.Nullable; + public class TileEntityGoldShulkerBox extends TileEntityIronShulkerBox { public TileEntityGoldShulkerBox() diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityIronShulkerBox.java b/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityIronShulkerBox.java index f18ac19..cb64879 100644 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityIronShulkerBox.java +++ b/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityIronShulkerBox.java @@ -10,18 +10,10 @@ ******************************************************************************/ package cpw.mods.ironchest.common.tileentity.shulker; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - -import javax.annotation.Nullable; - -import cpw.mods.ironchest.IronChest; import cpw.mods.ironchest.common.blocks.shulker.BlockIronShulkerBox; import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; import cpw.mods.ironchest.common.gui.shulker.ContainerIronShulkerBox; import cpw.mods.ironchest.common.lib.ICShulkerInventoryHandler; -import cpw.mods.ironchest.common.network.MessageCrystalShulkerSync; import net.minecraft.block.Block; import net.minecraft.block.BlockShulkerBox; import net.minecraft.block.material.EnumPushReaction; @@ -50,12 +42,14 @@ import net.minecraft.util.datafix.FixTypes; import net.minecraft.util.datafix.walkers.ItemStackDataLists; import net.minecraft.util.math.AxisAlignedBB; import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; +import javax.annotation.Nullable; +import java.util.List; + public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements ITickable, ISidedInventory { private final int[] SLOTS; @@ -63,21 +57,12 @@ public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements /** Shulker Box Contents */ private NonNullList items; - /** Crystal Shulker Boxes top stacks */ - private NonNullList topStacks; - /** Direction Shulker ox is facing */ private EnumFacing facing; - /** If the inventory got touched */ - private boolean inventoryTouched; - /** Server sync counter (once per 20 ticks) */ private int ticksSinceSync; - /** If the inventory had items */ - private boolean hadStuff; - private boolean hasBeenCleared; private int openCount; @@ -115,8 +100,7 @@ public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements this.SLOTS = new int[typeIn.size]; - this.items = NonNullList. withSize(typeIn.size, ItemStack.EMPTY); - this.topStacks = NonNullList. withSize(8, ItemStack.EMPTY); + this.items = NonNullList.withSize(typeIn.size, ItemStack.EMPTY); this.animationStatus = AnimationStatus.CLOSED; this.color = colorIn; @@ -128,7 +112,7 @@ public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements public void setContents(NonNullList contents) { - this.items = NonNullList. withSize(this.getType().size, ItemStack.EMPTY); + this.items = NonNullList.withSize(this.getType().size, ItemStack.EMPTY); for (int i = 0; i < contents.size(); i++) { @@ -137,8 +121,6 @@ public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements this.getItems().set(i, contents.get(i)); } } - - this.inventoryTouched = true; } @Override @@ -172,9 +154,7 @@ public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements @Override public ItemStack getStackInSlot(int index) { - this.fillWithLoot((EntityPlayer) null); - - this.inventoryTouched = true; + this.fillWithLoot(null); return this.getItems().get(index); } @@ -183,110 +163,6 @@ public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements public void markDirty() { super.markDirty(); - - this.sortTopStacks(); - } - - protected void sortTopStacks() - { - if (!this.getType().isTransparent() || (this.world != null && this.world.isRemote)) - { - return; - } - - NonNullList tempCopy = NonNullList. withSize(this.getSizeInventory(), ItemStack.EMPTY); - - boolean hasStuff = false; - - int compressedIdx = 0; - - mainLoop: - for (int i = 0; i < this.getSizeInventory(); i++) - { - ItemStack itemStack = this.getItems().get(i); - - if (!itemStack.isEmpty()) - { - for (int j = 0; j < compressedIdx; j++) - { - ItemStack tempCopyStack = tempCopy.get(j); - - if (ItemStack.areItemsEqualIgnoreDurability(tempCopyStack, itemStack)) - { - if (itemStack.getCount() != tempCopyStack.getCount()) - { - tempCopyStack.grow(itemStack.getCount()); - } - - continue mainLoop; - } - } - - tempCopy.set(compressedIdx, itemStack.copy()); - - compressedIdx++; - - hasStuff = true; - } - } - - if (!hasStuff && this.hadStuff) - { - this.hadStuff = false; - - for (int i = 0; i < this.getTopItems().size(); i++) - { - this.getTopItems().set(i, ItemStack.EMPTY); - } - - return; - } - - this.hadStuff = true; - - Collections.sort(tempCopy, new Comparator() - { - @Override - public int compare(ItemStack stack1, ItemStack stack2) - { - if (stack1.isEmpty()) - { - return 1; - } - else if (stack2.isEmpty()) - { - return -1; - } - else - { - return stack2.getCount() - stack1.getCount(); - } - } - }); - - int p = 0; - - for (ItemStack element : tempCopy) - { - if (!element.isEmpty() && element.getCount() > 0) - { - if (p == this.getTopItems().size()) - { - break; - } - - this.getTopItems().set(p, element); - - p++; - } - } - - for (int i = p; i < this.getTopItems().size(); i++) - { - this.getTopItems().set(i, ItemStack.EMPTY); - } - - sendTopStacksPacket(); } /** @@ -316,7 +192,7 @@ public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements public void loadFromNbt(NBTTagCompound compound) { - this.items = NonNullList. withSize(this.getSizeInventory(), ItemStack.EMPTY); + this.items = NonNullList.withSize(this.getSizeInventory(), ItemStack.EMPTY); if (!this.checkLootAndRead(compound) && compound.hasKey("Items", 9)) { @@ -329,8 +205,6 @@ public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements } this.facing = EnumFacing.VALUES[compound.getByte("facing")]; - - this.sortTopStacks(); } public NBTTagCompound saveToNbt(NBTTagCompound compound) @@ -384,13 +258,6 @@ public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements this.world.addBlockEvent(this.pos, this.getBlockType(), 3, ((this.openCount << 3) & 0xF8) | (this.facing.ordinal() & 0x7)); } - if (!this.world.isRemote && this.inventoryTouched) - { - this.inventoryTouched = false; - - this.sortTopStacks(); - } - this.ticksSinceSync++; } @@ -400,32 +267,32 @@ public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements switch (this.animationStatus) { - case CLOSED: - this.progress = 0.0F; - break; - case OPENING: - this.progress += 0.1F; - - if (this.progress >= 1.0F) - { - this.moveCollidedEntities(); - this.animationStatus = AnimationStatus.OPENED; - this.progress = 1.0F; - } - - break; - case CLOSING: - this.progress -= 0.1F; - - if (this.progress <= 0.0F) - { - this.animationStatus = AnimationStatus.CLOSED; + case CLOSED: this.progress = 0.0F; - } + break; + case OPENING: + this.progress += 0.1F; - break; - case OPENED: - this.progress = 1.0F; + if (this.progress >= 1.0F) + { + this.moveCollidedEntities(); + this.animationStatus = AnimationStatus.OPENED; + this.progress = 1.0F; + } + + break; + case CLOSING: + this.progress -= 0.1F; + + if (this.progress <= 0.0F) + { + this.animationStatus = AnimationStatus.CLOSED; + this.progress = 0.0F; + } + + break; + case OPENED: + this.progress = 1.0F; } } @@ -461,7 +328,7 @@ public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements { EnumFacing enumfacing = this.getFacing(); AxisAlignedBB axisalignedbb = this.getTopBoundingBox(enumfacing).offset(this.pos); - List list = this.world.getEntitiesWithinAABBExcludingEntity((Entity) null, axisalignedbb); + List list = this.world.getEntitiesWithinAABBExcludingEntity(null, axisalignedbb); if (!list.isEmpty()) { @@ -478,49 +345,47 @@ public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements switch (enumfacing.getAxis()) { - case X: + case X: - if (enumfacing.getAxisDirection() == EnumFacing.AxisDirection.POSITIVE) - { - d0 = axisalignedbb.maxX - axisalignedbb1.minX; - } - else - { - d0 = axisalignedbb1.maxX - axisalignedbb.minX; - } + if (enumfacing.getAxisDirection() == EnumFacing.AxisDirection.POSITIVE) + { + d0 = axisalignedbb.maxX - axisalignedbb1.minX; + } + else + { + d0 = axisalignedbb1.maxX - axisalignedbb.minX; + } - d0 = d0 + 0.01D; - break; - case Y: + d0 = d0 + 0.01D; + break; + case Y: - if (enumfacing.getAxisDirection() == EnumFacing.AxisDirection.POSITIVE) - { - d1 = axisalignedbb.maxY - axisalignedbb1.minY; - } - else - { - d1 = axisalignedbb1.maxY - axisalignedbb.minY; - } + if (enumfacing.getAxisDirection() == EnumFacing.AxisDirection.POSITIVE) + { + d1 = axisalignedbb.maxY - axisalignedbb1.minY; + } + else + { + d1 = axisalignedbb1.maxY - axisalignedbb.minY; + } - d1 = d1 + 0.01D; - break; - case Z: + d1 = d1 + 0.01D; + break; + case Z: - if (enumfacing.getAxisDirection() == EnumFacing.AxisDirection.POSITIVE) - { - d2 = axisalignedbb.maxZ - axisalignedbb1.minZ; - } - else - { - d2 = axisalignedbb1.maxZ - axisalignedbb.minZ; - } + if (enumfacing.getAxisDirection() == EnumFacing.AxisDirection.POSITIVE) + { + d2 = axisalignedbb.maxZ - axisalignedbb1.minZ; + } + else + { + d2 = axisalignedbb1.maxZ - axisalignedbb.minZ; + } - d2 = d2 + 0.01D; + d2 = d2 + 0.01D; } - //@formatter:off entity.move(MoverType.SHULKER_BOX, d0 * enumfacing.getFrontOffsetX(), d1 * enumfacing.getFrontOffsetY(), d2 * enumfacing.getFrontOffsetZ()); - //@formatter:on } } } @@ -582,9 +447,7 @@ public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements if (this.openCount == 1) { - //@formatter:off - this.world.playSound((EntityPlayer) null, this.pos, SoundEvents.BLOCK_SHULKER_BOX_OPEN, SoundCategory.BLOCKS, 0.5F, this.world.rand.nextFloat() * 0.1F + 0.9F); - //@formatter:on + this.world.playSound(null, this.pos, SoundEvents.BLOCK_SHULKER_BOX_OPEN, SoundCategory.BLOCKS, 0.5F, this.world.rand.nextFloat() * 0.1F + 0.9F); } } } @@ -600,9 +463,7 @@ public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements if (this.openCount <= 0) { - //@formatter:off - this.world.playSound((EntityPlayer) null, this.pos, SoundEvents.BLOCK_SHULKER_BOX_CLOSE, SoundCategory.BLOCKS, 0.5F, this.world.rand.nextFloat() * 0.1F + 0.9F); - //@formatter:on + this.world.playSound(null, this.pos, SoundEvents.BLOCK_SHULKER_BOX_CLOSE, SoundCategory.BLOCKS, 0.5F, this.world.rand.nextFloat() * 0.1F + 0.9F); } } } @@ -634,34 +495,6 @@ public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements } } - public NonNullList buildItemStackDataList() - { - if (this.getType().isTransparent()) - { - NonNullList sortList = NonNullList. withSize(this.getTopItems().size(), ItemStack.EMPTY); - - int pos = 0; - - for (ItemStack is : this.topStacks) - { - if (!is.isEmpty()) - { - sortList.set(pos, is); - } - else - { - sortList.set(pos, ItemStack.EMPTY); - } - - pos++; - } - - return sortList; - } - - return NonNullList. withSize(this.getTopItems().size(), ItemStack.EMPTY); - } - @Override public Container createContainer(InventoryPlayer playerInventory, EntityPlayer playerIn) { @@ -686,7 +519,19 @@ public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements public NBTTagCompound getUpdateTag() { NBTTagCompound compound = super.getUpdateTag(); + + if (!this.checkLootAndWrite(compound)) + { + ItemStackHelper.saveAllItems(compound, this.items, false); + } + compound.setByte("facing", (byte) this.facing.ordinal()); + + if (this.hasCustomName()) + { + compound.setString("CustomName", this.customName); + } + return compound; } @@ -696,11 +541,6 @@ public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements return this.items; } - public NonNullList getTopItems() - { - return this.topStacks; - } - @Override public boolean isEmpty() { @@ -718,7 +558,7 @@ public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements @Override public int[] getSlotsForFace(EnumFacing side) { - return SLOTS; + return this.SLOTS; } /** @@ -821,27 +661,14 @@ public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements return ItemStack.EMPTY; } - protected void sendTopStacksPacket() + public enum AnimationStatus { - NonNullList stacks = this.buildItemStackDataList(); - //@formatter:off - IronChest.packetHandler.sendToAllAround(new MessageCrystalShulkerSync(this, stacks), new TargetPoint(world.provider.getDimension(), getPos().getX(), getPos().getY(), getPos().getZ(), 128)); - //@formatter:on - } - - public void receiveMessageFromServer(NonNullList topStacks) - { - this.topStacks = topStacks; - } - - public static enum AnimationStatus - { - CLOSED, OPENING, OPENED, CLOSING; + CLOSED, OPENING, OPENED, CLOSING } public static void registerFixesShulkerBox(DataFixer fixer) { - fixer.registerWalker(FixTypes.BLOCK_ENTITY, new ItemStackDataLists(TileEntityIronShulkerBox.class, new String[] { "Items" })); + fixer.registerWalker(FixTypes.BLOCK_ENTITY, new ItemStackDataLists(TileEntityIronShulkerBox.class, "Items")); } private IItemHandler itemHandler; @@ -857,7 +684,9 @@ public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements public T getCapability(Capability capability, EnumFacing facing) { if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) - return (T) (itemHandler == null ? (itemHandler = createUnSidedHandler()) : itemHandler); + { + return (T) (this.itemHandler == null ? (this.itemHandler = this.createUnSidedHandler()) : this.itemHandler); + } return super.getCapability(capability, facing); } diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityObsidianShulkerBox.java b/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityObsidianShulkerBox.java index 5b0b8d9..9d840a6 100644 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityObsidianShulkerBox.java +++ b/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityObsidianShulkerBox.java @@ -10,14 +10,14 @@ ******************************************************************************/ package cpw.mods.ironchest.common.tileentity.shulker; -import javax.annotation.Nullable; - import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; import net.minecraft.item.EnumDyeColor; import net.minecraft.util.datafix.DataFixer; import net.minecraft.util.datafix.FixTypes; import net.minecraft.util.datafix.walkers.ItemStackDataLists; +import javax.annotation.Nullable; + public class TileEntityObsidianShulkerBox extends TileEntityIronShulkerBox { public TileEntityObsidianShulkerBox() diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntitySilverShulkerBox.java b/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntitySilverShulkerBox.java index c1be64b..d97d2fa 100644 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntitySilverShulkerBox.java +++ b/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntitySilverShulkerBox.java @@ -10,14 +10,14 @@ ******************************************************************************/ package cpw.mods.ironchest.common.tileentity.shulker; -import javax.annotation.Nullable; - import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; import net.minecraft.item.EnumDyeColor; import net.minecraft.util.datafix.DataFixer; import net.minecraft.util.datafix.FixTypes; import net.minecraft.util.datafix.walkers.ItemStackDataLists; +import javax.annotation.Nullable; + public class TileEntitySilverShulkerBox extends TileEntityIronShulkerBox { public TileEntitySilverShulkerBox() diff --git a/src/main/java/cpw/mods/ironchest/common/util/ItemTooltip.java b/src/main/java/cpw/mods/ironchest/common/util/ItemTooltip.java index cff46e5..ce7b26b 100644 --- a/src/main/java/cpw/mods/ironchest/common/util/ItemTooltip.java +++ b/src/main/java/cpw/mods/ironchest/common/util/ItemTooltip.java @@ -10,12 +10,7 @@ ******************************************************************************/ package cpw.mods.ironchest.common.util; -import java.util.List; - -import javax.annotation.Nullable; - import com.google.common.collect.Lists; - import net.minecraft.client.util.ITooltipFlag; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -25,6 +20,9 @@ import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; +import javax.annotation.Nullable; +import java.util.List; + @SuppressWarnings("deprecation") public class ItemTooltip extends Item { @@ -58,7 +56,9 @@ public class ItemTooltip extends Item { List list = Lists.newLinkedList(); if (text == null) + { return list; + } int j = 0; int k; while ((k = text.indexOf("\\n", j)) >= 0) diff --git a/src/main/java/cpw/mods/ironchest/common/util/MissingMappingsHandler.java b/src/main/java/cpw/mods/ironchest/common/util/MissingMappingsHandler.java index 54bc69f..d593e85 100644 --- a/src/main/java/cpw/mods/ironchest/common/util/MissingMappingsHandler.java +++ b/src/main/java/cpw/mods/ironchest/common/util/MissingMappingsHandler.java @@ -10,8 +10,6 @@ ******************************************************************************/ package cpw.mods.ironchest.common.util; -import javax.annotation.Nonnull; - import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.util.ResourceLocation; @@ -20,6 +18,8 @@ import net.minecraftforge.event.RegistryEvent.MissingMappings.Mapping; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.registry.ForgeRegistries; +import javax.annotation.Nonnull; + public class MissingMappingsHandler { @SubscribeEvent diff --git a/src/main/java/cpw/mods/ironchest/common/util/OcelotsSitOnChestsHandler.java b/src/main/java/cpw/mods/ironchest/common/util/OcelotsSitOnChestsHandler.java index 1f28813..c86fb79 100755 --- a/src/main/java/cpw/mods/ironchest/common/util/OcelotsSitOnChestsHandler.java +++ b/src/main/java/cpw/mods/ironchest/common/util/OcelotsSitOnChestsHandler.java @@ -10,8 +10,6 @@ ******************************************************************************/ package cpw.mods.ironchest.common.util; -import java.util.HashSet; - import cpw.mods.ironchest.common.ai.IronChestAIOcelotSit; import net.minecraft.entity.ai.EntityAIOcelotSit; import net.minecraft.entity.ai.EntityAITasks.EntityAITaskEntry; @@ -19,6 +17,8 @@ import net.minecraft.entity.passive.EntityOcelot; import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import java.util.HashSet; + public class OcelotsSitOnChestsHandler { @SubscribeEvent