Add Iron Shulker Boxes, which function just like regular shulker boxes but with all the extra features the chest variants have. This version of the mod also has a reorganized code package (still in cpw.mods.ironchest) and resources have been moved around.

This commit is contained in:
alexbegt 2017-06-11 12:50:47 -04:00
parent 82f9d7cf8f
commit 0ce5748dae
230 changed files with 5726 additions and 761 deletions

View File

@ -33,7 +33,7 @@ repositories {
}
dependencies {
deobfCompile "mezz.jei:jei_1.11.2:4.2.7.241"
deobfCompile "mezz.jei:jei_1.11.2:4.3.5.277"
}
// This is our group. I'm cpw.mods
@ -43,8 +43,8 @@ archivesBaseName = "ironchest"
// Setup the forge minecraft plugin data. Specify the preferred forge/minecraft version here
minecraft {
version = "1.11.2-13.20.0.2252"
mappings = "snapshot_20161118"
version = "1.11.2-13.20.0.2299"
mappings = "snapshot_20170519"
runDir = "run"
}

View File

@ -12,22 +12,23 @@ package cpw.mods.ironchest;
import java.util.Properties;
import javax.annotation.Nonnull;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation;
import cpw.mods.ironchest.common.CommonProxy;
import cpw.mods.ironchest.common.ICContent;
import cpw.mods.ironchest.common.network.MessageCrystalChestSync;
import cpw.mods.ironchest.common.network.MessageCrystalShulkerSync;
import cpw.mods.ironchest.common.util.MissingMappingsHandler;
import cpw.mods.ironchest.common.util.OcelotsSitOnChestsHandler;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.Mod.Instance;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLMissingMappingsEvent;
import net.minecraftforge.fml.common.event.FMLMissingMappingsEvent.MissingMapping;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.network.NetworkRegistry;
import net.minecraftforge.fml.common.registry.ForgeRegistries;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper;
import net.minecraftforge.fml.relauncher.Side;
@Mod(modid = IronChest.MOD_ID, name = "Iron Chests", dependencies = "required-after:forge@[13.19.0.2142,)", acceptedMinecraftVersions = "[1.11, 1.12)")
public class IronChest
@ -37,12 +38,10 @@ public class IronChest
@Instance(IronChest.MOD_ID)
public static IronChest instance;
@SidedProxy(clientSide = "cpw.mods.ironchest.client.ClientProxy", serverSide = "cpw.mods.ironchest.CommonProxy")
@SidedProxy(clientSide = "cpw.mods.ironchest.client.ClientProxy", serverSide = "cpw.mods.ironchest.common.CommonProxy")
public static CommonProxy proxy;
public static BlockIronChest ironChestBlock;
public static ItemIronChest ironChestItemBlock;
public static final SimpleNetworkWrapper packetHandler = NetworkRegistry.INSTANCE.newSimpleChannel(MOD_ID);
@EventHandler
public void preInit(FMLPreInitializationEvent event)
@ -55,122 +54,28 @@ public class IronChest
String minor = properties.getProperty("IronChest.build.minor.number");
String rev = properties.getProperty("IronChest.build.revision.number");
String build = properties.getProperty("IronChest.build.number");
event.getModMetadata().version = String.format("%s.%s.%s build %s", major, minor, rev, build);
}
ChestChangerType.buildItems();
ironChestBlock = GameRegistry.register(new BlockIronChest());
ironChestItemBlock = GameRegistry.register(new ItemIronChest(ironChestBlock));
ICContent.preInit();
for (IronChestType typ : IronChestType.VALUES)
{
if (typ.clazz != null)
{
GameRegistry.registerTileEntity(typ.clazz, "IronChest." + typ.name());
}
}
IronChestType.registerBlocksAndRecipes(ironChestBlock);
ChestChangerType.generateRecipes();
NetworkRegistry.INSTANCE.registerGuiHandler(instance, proxy);
proxy.registerRenderInformation();
MinecraftForge.EVENT_BUS.register(new OcelotsSitOnChestsHandler());
}
@EventHandler
public void init(FMLInitializationEvent event)
{
int messageId = 0;
packetHandler.registerMessage(MessageCrystalChestSync.Handler.class, MessageCrystalChestSync.class, messageId++, Side.CLIENT);
packetHandler.registerMessage(MessageCrystalShulkerSync.Handler.class, MessageCrystalShulkerSync.class, messageId++, Side.CLIENT);
}
@EventHandler
public void onMissingMappings(FMLMissingMappingsEvent event)
{
for (MissingMapping mapping : event.get())
{
if (mapping.resourceLocation.getResourceDomain().equals(IronChest.MOD_ID))
{
@Nonnull
String path = mapping.resourceLocation.getResourcePath();
if (path.endsWith("blockironchest"))
{
path = path.replace("blockironchest", "iron_chest");
ResourceLocation newRes = new ResourceLocation(mapping.resourceLocation.getResourceDomain(), path);
Block block = ForgeRegistries.BLOCKS.getValue(newRes);
if (block != null)
{
if (mapping.type == GameRegistry.Type.BLOCK)
{
mapping.remap(block);
}
else
{
mapping.remap(Item.getItemFromBlock(block));
}
}
}
if (path.endsWith("irongoldupgrade"))
{
path = path.replace("irongoldupgrade", "iron_gold_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("golddiamondupgrade"))
{
path = path.replace("golddiamondupgrade", "gold_diamond_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("coppersilverupgrade"))
{
path = path.replace("coppersilverupgrade", "copper_silver_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("silvergoldupgrade"))
{
path = path.replace("silvergoldupgrade", "silver_gold_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("copperironupgrade"))
{
path = path.replace("copperironupgrade", "copper_iron_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("diamondcrystalupgrade"))
{
path = path.replace("diamondcrystalupgrade", "diamond_crystal_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("woodironupgrade"))
{
path = path.replace("woodironupgrade", "wood_iron_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("woodcopperupgrade"))
{
path = path.replace("woodcopperupgrade", "wood_copper_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("diamondobsidianupgrade"))
{
path = path.replace("diamondobsidianupgrade", "diamond_obsidian_upgrade");
replaceUpgradeItem(path, mapping);
}
}
}
}
private static void replaceUpgradeItem(String path, MissingMapping mapping)
{
ResourceLocation newRes = new ResourceLocation(mapping.resourceLocation.getResourceDomain(), path);
Item item = ForgeRegistries.ITEMS.getValue(newRes);
if (item != null)
{
mapping.remap(item);
}
MissingMappingsHandler.onMissingMappings(event);
}
}

View File

@ -1,22 +0,0 @@
package cpw.mods.ironchest;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class ValidatingSlot extends Slot
{
private IronChestType type;
public ValidatingSlot(IInventory inventoryIn, int slotIndex, int xPosition, int yPosition, IronChestType type)
{
super(inventoryIn, slotIndex, xPosition, yPosition);
this.type = type;
}
@Override
public boolean isItemValid(ItemStack stack)
{
return this.type.acceptsStack(stack);
}
}

View File

@ -10,11 +10,21 @@
******************************************************************************/
package cpw.mods.ironchest.client;
import cpw.mods.ironchest.ChestChangerType;
import cpw.mods.ironchest.CommonProxy;
import cpw.mods.ironchest.IronChest;
import cpw.mods.ironchest.IronChestType;
import cpw.mods.ironchest.TileEntityIronChest;
import cpw.mods.ironchest.client.gui.chest.GUIChest;
import cpw.mods.ironchest.client.gui.shulker.GUIShulkerChest;
import cpw.mods.ironchest.client.renderer.chest.TileEntityIronChestRenderer;
import cpw.mods.ironchest.client.renderer.shulker.TileEntityIronShulkerBoxRenderer;
import cpw.mods.ironchest.common.CommonProxy;
import cpw.mods.ironchest.common.ICContent;
import cpw.mods.ironchest.common.blocks.chest.IronChestType;
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.tileentity.chest.TileEntityIronChest;
import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
@ -33,7 +43,8 @@ public class ClientProxy extends CommonProxy
@Override
public void registerRenderInformation()
{
Item chestItem = Item.getItemFromBlock(IronChest.ironChestBlock);
// Chests Start
Item chestItem = Item.getItemFromBlock(ICContent.ironChestBlock);
for (IronChestType type : IronChestType.values())
{
@ -53,19 +64,60 @@ public class ClientProxy extends CommonProxy
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 : ICContent.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 (IronShulkerBoxType type : IronShulkerBoxType.values())
{
ClientRegistry.bindTileEntitySpecialRenderer(type.clazz, new TileEntityIronShulkerBoxRenderer());
}
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
}
@Override
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
{
TileEntity te = world.getTileEntity(new BlockPos(x, y, z));
if (te != null && te instanceof TileEntityIronChest)
{
return GUIChest.GUI.buildGUI(IronChestType.values()[ID], player.inventory, (TileEntityIronChest) te);
}
else if (te != null && te instanceof TileEntityIronShulkerBox)
{
return GUIShulkerChest.GUI.buildGUI(IronShulkerBoxType.values()[ID], player.inventory, (TileEntityIronShulkerBox) te);
}
else
{
return null;
}
}
@Override
public World getClientWorld()
{
return Minecraft.getMinecraft().world;
}
}

View File

@ -8,11 +8,11 @@
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.client;
package cpw.mods.ironchest.client.gui.chest;
import cpw.mods.ironchest.ContainerIronChest;
import cpw.mods.ironchest.IronChestType;
import cpw.mods.ironchest.TileEntityIronChest;
import cpw.mods.ironchest.common.blocks.chest.IronChestType;
import cpw.mods.ironchest.common.gui.chest.ContainerIronChest;
import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.inventory.Container;
@ -91,10 +91,12 @@ public class GUIChest extends GuiContainer
protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY)
{
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
// new "bind tex"
this.mc.getTextureManager().bindTexture(this.type.guiResourceList.location);
int x = (this.width - this.xSize) / 2;
int y = (this.height - this.ySize) / 2;
this.drawTexturedModalRect(x, y, 0, 0, this.xSize, this.ySize);
}
}

View File

@ -0,0 +1,102 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.client.gui.shulker;
import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType;
import cpw.mods.ironchest.common.gui.shulker.ContainerIronShulkerBox;
import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.IInventory;
import net.minecraft.util.ResourceLocation;
public class GUIShulkerChest extends GuiContainer
{
public enum ResourceList
{
//@formatter:off
IRON(new ResourceLocation("ironchest", "textures/gui/iron_container.png")),
COPPER(new ResourceLocation("ironchest", "textures/gui/copper_container.png")),
SILVER(new ResourceLocation("ironchest", "textures/gui/silver_container.png")),
GOLD(new ResourceLocation("ironchest", "textures/gui/gold_container.png")),
DIAMOND(new ResourceLocation("ironchest", "textures/gui/diamond_container.png"));
//@formatter:on
public final ResourceLocation location;
ResourceList(ResourceLocation loc)
{
this.location = loc;
}
}
public enum GUI
{
//@formatter:off
IRON(184, 202, ResourceList.IRON, IronShulkerBoxType.IRON),
GOLD(184, 256, ResourceList.GOLD, IronShulkerBoxType.GOLD),
DIAMOND(238, 256, ResourceList.DIAMOND, IronShulkerBoxType.DIAMOND),
COPPER(184, 184, ResourceList.COPPER, IronShulkerBoxType.COPPER),
SILVER(184, 238, ResourceList.SILVER, IronShulkerBoxType.SILVER),
CRYSTAL(238, 256, ResourceList.DIAMOND, IronShulkerBoxType.CRYSTAL),
OBSIDIAN(238, 256, ResourceList.DIAMOND,IronShulkerBoxType.OBSIDIAN);
//@formatter:on
private int xSize;
private int ySize;
private ResourceList guiResourceList;
private IronShulkerBoxType mainType;
GUI(int xSize, int ySize, ResourceList guiResourceList, IronShulkerBoxType mainType)
{
this.xSize = xSize;
this.ySize = ySize;
this.guiResourceList = guiResourceList;
this.mainType = mainType;
}
protected Container makeContainer(IInventory player, IInventory shulker)
{
return new ContainerIronShulkerBox(player, shulker, this.mainType, this.xSize, this.ySize);
}
public static GUIShulkerChest buildGUI(IronShulkerBoxType type, IInventory playerInventory, TileEntityIronShulkerBox shulkerInventory)
{
return new GUIShulkerChest(values()[shulkerInventory.getType().ordinal()], playerInventory, shulkerInventory);
}
}
private GUI type;
private GUIShulkerChest(GUI type, IInventory player, IInventory shulker)
{
super(type.makeContainer(player, shulker));
this.type = type;
this.xSize = type.xSize;
this.ySize = type.ySize;
this.allowUserInput = false;
}
@Override
protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY)
{
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
this.mc.getTextureManager().bindTexture(this.type.guiResourceList.location);
int x = (this.width - this.xSize) / 2;
int y = (this.height - this.ySize) / 2;
this.drawTexturedModalRect(x, y, 0, 0, this.xSize, this.ySize);
}
}

View File

@ -8,16 +8,16 @@
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.client;
package cpw.mods.ironchest.client.renderer.chest;
import java.util.Random;
import com.google.common.primitives.SignedBytes;
import cpw.mods.ironchest.BlockIronChest;
import cpw.mods.ironchest.IronChest;
import cpw.mods.ironchest.IronChestType;
import cpw.mods.ironchest.TileEntityIronChest;
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.tileentity.chest.TileEntityIronChest;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.ModelChest;
@ -36,8 +36,9 @@ public class TileEntityIronChestRenderer extends TileEntitySpecialRenderer<TileE
private ModelChest model;
private static float[][] shifts = { { 0.3F, 0.45F, 0.3F }, { 0.7F, 0.45F, 0.3F }, { 0.3F, 0.45F, 0.7F }, { 0.7F, 0.45F, 0.7F }, { 0.3F, 0.1F, 0.3F },
{ 0.7F, 0.1F, 0.3F }, { 0.3F, 0.1F, 0.7F }, { 0.7F, 0.1F, 0.7F }, { 0.5F, 0.32F, 0.5F } };
//@formatter:off
private static float[][] shifts = { { 0.3F, 0.45F, 0.3F }, { 0.7F, 0.45F, 0.3F }, { 0.3F, 0.45F, 0.7F }, { 0.7F, 0.45F, 0.7F }, { 0.3F, 0.1F, 0.3F }, { 0.7F, 0.1F, 0.3F }, { 0.3F, 0.1F, 0.7F }, { 0.7F, 0.1F, 0.7F }, { 0.5F, 0.32F, 0.5F } };
//@formatter:on
private static EntityItem customitem = new EntityItem(null);
@ -60,7 +61,7 @@ public class TileEntityIronChestRenderer extends TileEntitySpecialRenderer<TileE
EnumFacing facing = EnumFacing.SOUTH;
IronChestType type = te.getType();
if (te.hasWorld() && te.getWorld().getBlockState(te.getPos()).getBlock() == IronChest.ironChestBlock)
if (te.hasWorld() && te.getWorld().getBlockState(te.getPos()).getBlock() == ICContent.ironChestBlock)
{
facing = te.getFacing();
IBlockState state = te.getWorld().getBlockState(te.getPos());
@ -203,8 +204,7 @@ public class TileEntityIronChestRenderer extends TileEntitySpecialRenderer<TileE
if (this.itemRenderer == null)
{
this.itemRenderer = new RenderEntityItem(Minecraft.getMinecraft().getRenderManager(), Minecraft.getMinecraft().getRenderItem())
{
this.itemRenderer = new RenderEntityItem(Minecraft.getMinecraft().getRenderManager(), Minecraft.getMinecraft().getRenderItem()) {
@Override
public int getModelCount(ItemStack stack)
{

View File

@ -0,0 +1,238 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.client.renderer.shulker;
import java.util.Random;
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.TileEntityIronShulkerBox;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.ModelShulker;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.entity.RenderEntityItem;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.ResourceLocation;
public class TileEntityIronShulkerBoxRenderer extends TileEntitySpecialRenderer<TileEntityIronShulkerBox>
{
private Random random;
private RenderEntityItem itemRenderer;
private final ModelShulker model;
//@formatter:off
private static float[][] shifts = { { 0.3F, 0.45F, 0.3F }, { 0.7F, 0.45F, 0.3F }, { 0.3F, 0.45F, 0.7F }, { 0.7F, 0.45F, 0.7F }, { 0.3F, 0.1F, 0.3F }, { 0.7F, 0.1F, 0.3F }, { 0.3F, 0.1F, 0.7F }, { 0.7F, 0.1F, 0.7F }, { 0.5F, 0.32F, 0.5F } };
//@formatter:on
private static EntityItem customitem = new EntityItem(null);
public TileEntityIronShulkerBoxRenderer()
{
this.model = new ModelShulker();
this.random = new Random();
}
@Override
public void renderTileEntityAt(TileEntityIronShulkerBox te, double x, double y, double z, float partialTicks, int destroyStage)
{
if (te == null || te.isInvalid())
{
return;
}
EnumFacing facing = EnumFacing.UP;
IronShulkerBoxType type = te.getType();
if (te.hasWorld())
{
IBlockState iblockstate = this.getWorld().getBlockState(te.getPos());
if (iblockstate.getBlock() instanceof BlockIronShulkerBox)
{
facing = te.getFacing();
type = iblockstate.getValue(BlockIronShulkerBox.VARIANT_PROP);
}
}
GlStateManager.enableDepth();
GlStateManager.depthFunc(515);
GlStateManager.depthMask(true);
GlStateManager.disableCull();
if (destroyStage >= 0)
{
this.bindTexture(DESTROY_STAGES[destroyStage]);
GlStateManager.matrixMode(5890);
GlStateManager.pushMatrix();
GlStateManager.scale(4.0F, 4.0F, 1.0F);
GlStateManager.translate(0.0625F, 0.0625F, 0.0625F);
GlStateManager.matrixMode(5888);
}
else
{
//@formatter:off
ResourceLocation rs = new ResourceLocation("ironchest", "textures/model/shulker/" + te.getColor().getName() + "/shulker_" + te.getColor().getName() + type.modelTexture);
//@formatter:on
this.bindTexture(rs);
}
GlStateManager.pushMatrix();
GlStateManager.enableRescaleNormal();
if (destroyStage < 0)
{
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
}
GlStateManager.translate((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F);
GlStateManager.scale(1.0F, -1.0F, -1.0F);
GlStateManager.translate(0.0F, 1.0F, 0.0F);
GlStateManager.scale(0.9995F, 0.9995F, 0.9995F);
GlStateManager.translate(0.0F, -1.0F, 0.0F);
switch (facing)
{
case DOWN:
GlStateManager.translate(0.0F, 2.0F, 0.0F);
GlStateManager.rotate(180.0F, 1.0F, 0.0F, 0.0F);
case UP:
default:
break;
case NORTH:
GlStateManager.translate(0.0F, 1.0F, 1.0F);
GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
GlStateManager.rotate(180.0F, 0.0F, 0.0F, 1.0F);
break;
case SOUTH:
GlStateManager.translate(0.0F, 1.0F, -1.0F);
GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
break;
case WEST:
GlStateManager.translate(-1.0F, 1.0F, 0.0F);
GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
GlStateManager.rotate(-90.0F, 0.0F, 0.0F, 1.0F);
break;
case EAST:
GlStateManager.translate(1.0F, 1.0F, 0.0F);
GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
GlStateManager.rotate(90.0F, 0.0F, 0.0F, 1.0F);
}
this.model.base.render(0.0625F);
GlStateManager.translate(0.0F, -te.getProgress(partialTicks) * 0.5F, 0.0F);
GlStateManager.rotate(270.0F * te.getProgress(partialTicks), 0.0F, 1.0F, 0.0F);
this.model.lid.render(0.0625F);
GlStateManager.enableCull();
GlStateManager.disableRescaleNormal();
GlStateManager.popMatrix();
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
if (destroyStage >= 0)
{
GlStateManager.matrixMode(5890);
GlStateManager.popMatrix();
GlStateManager.matrixMode(5888);
}
if (type == IronShulkerBoxType.CRYSTAL)
{
GlStateManager.enableCull();
}
if (type.isTransparent() && te.getDistanceSq(this.rendererDispatcher.entityX, this.rendererDispatcher.entityY, this.rendererDispatcher.entityZ) < 128d)
{
this.random.setSeed(254L);
float shiftX;
float shiftY;
float shiftZ;
int shift = 0;
float blockScale = 0.70F;
float timeD = (float) (360D * (System.currentTimeMillis() & 0x3FFFL) / 0x3FFFL) - partialTicks;
if (te.getTopItems().get(1).isEmpty())
{
shift = 8;
blockScale = 0.85F;
}
GlStateManager.pushMatrix();
GlStateManager.translate((float) x, (float) y, (float) z);
customitem.setWorld(this.getWorld());
customitem.hoverStart = 0F;
for (ItemStack item : te.getTopItems())
{
if (shift > shifts.length)
{
break;
}
if (item.isEmpty())
{
shift++;
continue;
}
shiftX = shifts[shift][0];
shiftY = shifts[shift][1];
shiftZ = shifts[shift][2];
shift++;
GlStateManager.pushMatrix();
GlStateManager.translate(shiftX, shiftY, shiftZ);
GlStateManager.rotate(timeD, 0F, 1F, 0F);
GlStateManager.scale(blockScale, blockScale, blockScale);
customitem.setEntityItemStack(item);
if (this.itemRenderer == null)
{
this.itemRenderer = new RenderEntityItem(Minecraft.getMinecraft().getRenderManager(), Minecraft.getMinecraft().getRenderItem()) {
@Override
public int getModelCount(ItemStack stack)
{
return SignedBytes.saturatedCast(Math.min(stack.getCount() / 32, 15) + 1);
}
@Override
public boolean shouldBob()
{
return false;
}
@Override
public boolean shouldSpreadItems()
{
return true;
}
};
}
this.itemRenderer.doRender(customitem, 0D, 0D, 0D, 0F, partialTicks);
GlStateManager.popMatrix();
}
GlStateManager.popMatrix();
}
}
}

View File

@ -8,8 +8,12 @@
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest;
package cpw.mods.ironchest.common;
import cpw.mods.ironchest.common.gui.chest.ContainerIronChest;
import cpw.mods.ironchest.common.gui.shulker.ContainerIronShulkerBox;
import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest;
import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos;
@ -32,14 +36,27 @@ public class CommonProxy implements IGuiHandler
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
{
TileEntity te = world.getTileEntity(new BlockPos(x, y, z));
if (te != null && te instanceof TileEntityIronChest)
{
TileEntityIronChest icte = (TileEntityIronChest) te;
return new ContainerIronChest(player.inventory, icte, icte.getType(), 0, 0);
}
else if (te != null && te instanceof TileEntityIronShulkerBox)
{
TileEntityIronShulkerBox icte = (TileEntityIronShulkerBox) te;
return new ContainerIronShulkerBox(player.inventory, icte, icte.getType(), 0, 0);
}
else
{
return null;
}
}
public World getClientWorld()
{
return null;
}
}

View File

@ -0,0 +1,222 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common;
import java.util.List;
import com.google.common.collect.Lists;
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.crafting.IronShulkerBoxColoring;
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.util.BehaviorDispenseIronShulkerBox;
import cpw.mods.ironchest.common.util.CreativeTab;
import net.minecraft.block.Block;
import net.minecraft.block.BlockDispenser;
import net.minecraft.block.BlockShulkerBox;
import net.minecraft.init.Blocks;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.oredict.RecipeSorter;
import net.minecraftforge.oredict.RecipeSorter.Category;
public class ICContent
{
public static CreativeTab tabGeneral = new CreativeTab("IronChest", new ItemStack(Item.getItemFromBlock(Blocks.SLIME_BLOCK)));
public static BlockIronChest ironChestBlock;
public static ItemIronChest ironChestItemBlock;
public static BlockIronShulkerBox ironShulkerBoxWhiteBlock;
public static BlockIronShulkerBox ironShulkerBoxOrangeBlock;
public static BlockIronShulkerBox ironShulkerBoxMagentaBlock;
public static BlockIronShulkerBox ironShulkerBoxLightBlueBlock;
public static BlockIronShulkerBox ironShulkerBoxYellowBlock;
public static BlockIronShulkerBox ironShulkerBoxLimeBlock;
public static BlockIronShulkerBox ironShulkerBoxPinkBlock;
public static BlockIronShulkerBox ironShulkerBoxGrayBlock;
public static BlockIronShulkerBox ironShulkerBoxSilverBlock;
public static BlockIronShulkerBox ironShulkerBoxCyanBlock;
public static BlockIronShulkerBox ironShulkerBoxPurpleBlock;
public static BlockIronShulkerBox ironShulkerBoxBlueBlock;
public static BlockIronShulkerBox ironShulkerBoxBrownBlock;
public static BlockIronShulkerBox ironShulkerBoxGreenBlock;
public static BlockIronShulkerBox ironShulkerBoxRedBlock;
public static BlockIronShulkerBox ironShulkerBoxBlackBlock;
public static ItemIronShulkerBox ironShulkerBoxWhiteItemBlock;
public static ItemIronShulkerBox ironShulkerBoxOrangeItemBlock;
public static ItemIronShulkerBox ironShulkerBoxMagentaItemBlock;
public static ItemIronShulkerBox ironShulkerBoxLightBlueItemBlock;
public static ItemIronShulkerBox ironShulkerBoxYellowItemBlock;
public static ItemIronShulkerBox ironShulkerBoxLimeItemBlock;
public static ItemIronShulkerBox ironShulkerBoxPinkItemBlock;
public static ItemIronShulkerBox ironShulkerBoxGrayItemBlock;
public static ItemIronShulkerBox ironShulkerBoxSilverItemBlock;
public static ItemIronShulkerBox ironShulkerBoxCyanItemBlock;
public static ItemIronShulkerBox ironShulkerBoxPurpleItemBlock;
public static ItemIronShulkerBox ironShulkerBoxBlueItemBlock;
public static ItemIronShulkerBox ironShulkerBoxBrownItemBlock;
public static ItemIronShulkerBox ironShulkerBoxGreenItemBlock;
public static ItemIronShulkerBox ironShulkerBoxRedItemBlock;
public static ItemIronShulkerBox ironShulkerBoxBlackItemBlock;
public static final List<Block> SHULKER_BLOCKS = Lists.newArrayList();
public static final List<ItemBlock> SHULKER_ITEM_BLOCKS = Lists.newArrayList();
public static final List<Block> VANILLA_SHULKER_BLOCKS = Lists.newArrayList();
public static final List<EnumDyeColor> VANILLA_SHULKER_COLORS = Lists.newArrayList();
public static void preInit()
{
// Chests Start
ChestChangerType.buildItems();
ironChestBlock = GameRegistry.register(new BlockIronChest());
ironChestItemBlock = GameRegistry.register(new ItemIronChest(ironChestBlock));
for (IronChestType typ : IronChestType.VALUES)
{
if (typ.clazz != null)
{
GameRegistry.registerTileEntity(typ.clazz, "IronChest." + typ.name());
}
}
IronChestType.registerBlocksAndRecipes(ironChestBlock);
ChestChangerType.generateRecipes();
// Chests End
// Shulkers Start
setVanillaShulkerList();
ShulkerBoxChangerType.buildItems();
registerShulkerBlocks();
registerShulkerItemBlocks();
for (IronShulkerBoxType typ : IronShulkerBoxType.VALUES)
{
if (typ.clazz != null)
{
GameRegistry.registerTileEntity(typ.clazz, "IronShulkerBox." + typ.name());
}
}
for (int i = 0; i < ICContent.SHULKER_BLOCKS.size(); i++)
{
IronShulkerBoxType.registerBlocksAndRecipes((BlockIronShulkerBox) SHULKER_BLOCKS.get(i), (BlockShulkerBox) VANILLA_SHULKER_BLOCKS.get(i));
}
for (ItemBlock block : SHULKER_ITEM_BLOCKS)
{
BlockDispenser.DISPENSE_BEHAVIOR_REGISTRY.putObject(block, new BehaviorDispenseIronShulkerBox());
}
GameRegistry.addRecipe(new IronShulkerBoxColoring());
RecipeSorter.register(IronChest.MOD_ID, IronShulkerBoxColoring.class, Category.SHAPELESS, "after:forge:shapelessore");
ShulkerBoxChangerType.generateRecipes();
// Shulkers End
tabGeneral.setDisplayIcon(new ItemStack(ironChestBlock, 1, IronChestType.IRON.ordinal()));
}
private static void registerShulkerBlocks()
{
SHULKER_BLOCKS.add(ironShulkerBoxWhiteBlock = GameRegistry.register(new BlockIronShulkerBox(EnumDyeColor.WHITE)));
SHULKER_BLOCKS.add(ironShulkerBoxOrangeBlock = GameRegistry.register(new BlockIronShulkerBox(EnumDyeColor.ORANGE)));
SHULKER_BLOCKS.add(ironShulkerBoxMagentaBlock = GameRegistry.register(new BlockIronShulkerBox(EnumDyeColor.MAGENTA)));
SHULKER_BLOCKS.add(ironShulkerBoxLightBlueBlock = GameRegistry.register(new BlockIronShulkerBox(EnumDyeColor.LIGHT_BLUE)));
SHULKER_BLOCKS.add(ironShulkerBoxYellowBlock = GameRegistry.register(new BlockIronShulkerBox(EnumDyeColor.YELLOW)));
SHULKER_BLOCKS.add(ironShulkerBoxLimeBlock = GameRegistry.register(new BlockIronShulkerBox(EnumDyeColor.LIME)));
SHULKER_BLOCKS.add(ironShulkerBoxPinkBlock = GameRegistry.register(new BlockIronShulkerBox(EnumDyeColor.PINK)));
SHULKER_BLOCKS.add(ironShulkerBoxGrayBlock = GameRegistry.register(new BlockIronShulkerBox(EnumDyeColor.GRAY)));
SHULKER_BLOCKS.add(ironShulkerBoxSilverBlock = GameRegistry.register(new BlockIronShulkerBox(EnumDyeColor.SILVER)));
SHULKER_BLOCKS.add(ironShulkerBoxCyanBlock = GameRegistry.register(new BlockIronShulkerBox(EnumDyeColor.CYAN)));
SHULKER_BLOCKS.add(ironShulkerBoxPurpleBlock = GameRegistry.register(new BlockIronShulkerBox(EnumDyeColor.PURPLE)));
SHULKER_BLOCKS.add(ironShulkerBoxBlueBlock = GameRegistry.register(new BlockIronShulkerBox(EnumDyeColor.BLUE)));
SHULKER_BLOCKS.add(ironShulkerBoxBrownBlock = GameRegistry.register(new BlockIronShulkerBox(EnumDyeColor.BROWN)));
SHULKER_BLOCKS.add(ironShulkerBoxGreenBlock = GameRegistry.register(new BlockIronShulkerBox(EnumDyeColor.GREEN)));
SHULKER_BLOCKS.add(ironShulkerBoxRedBlock = GameRegistry.register(new BlockIronShulkerBox(EnumDyeColor.RED)));
SHULKER_BLOCKS.add(ironShulkerBoxBlackBlock = GameRegistry.register(new BlockIronShulkerBox(EnumDyeColor.BLACK)));
}
private static void registerShulkerItemBlocks()
{
//@formatter:off
SHULKER_ITEM_BLOCKS.add(ironShulkerBoxWhiteItemBlock = GameRegistry.register(new ItemIronShulkerBox(ironShulkerBoxWhiteBlock, EnumDyeColor.WHITE)));
SHULKER_ITEM_BLOCKS.add(ironShulkerBoxOrangeItemBlock = GameRegistry.register(new ItemIronShulkerBox(ironShulkerBoxOrangeBlock, EnumDyeColor.ORANGE)));
SHULKER_ITEM_BLOCKS.add(ironShulkerBoxMagentaItemBlock = GameRegistry.register(new ItemIronShulkerBox(ironShulkerBoxMagentaBlock, EnumDyeColor.MAGENTA)));
SHULKER_ITEM_BLOCKS.add(ironShulkerBoxLightBlueItemBlock = GameRegistry.register(new ItemIronShulkerBox(ironShulkerBoxLightBlueBlock, EnumDyeColor.LIGHT_BLUE)));
SHULKER_ITEM_BLOCKS.add(ironShulkerBoxYellowItemBlock = GameRegistry.register(new ItemIronShulkerBox(ironShulkerBoxYellowBlock, EnumDyeColor.YELLOW)));
SHULKER_ITEM_BLOCKS.add(ironShulkerBoxLimeItemBlock = GameRegistry.register(new ItemIronShulkerBox(ironShulkerBoxLimeBlock, EnumDyeColor.LIME)));
SHULKER_ITEM_BLOCKS.add(ironShulkerBoxPinkItemBlock = GameRegistry.register(new ItemIronShulkerBox(ironShulkerBoxPinkBlock, EnumDyeColor.PINK)));
SHULKER_ITEM_BLOCKS.add(ironShulkerBoxGrayItemBlock = GameRegistry.register(new ItemIronShulkerBox(ironShulkerBoxGrayBlock, EnumDyeColor.GRAY)));
SHULKER_ITEM_BLOCKS.add(ironShulkerBoxSilverItemBlock = GameRegistry.register(new ItemIronShulkerBox(ironShulkerBoxSilverBlock, EnumDyeColor.SILVER)));
SHULKER_ITEM_BLOCKS.add(ironShulkerBoxCyanItemBlock = GameRegistry.register(new ItemIronShulkerBox(ironShulkerBoxCyanBlock, EnumDyeColor.CYAN)));
SHULKER_ITEM_BLOCKS.add(ironShulkerBoxPurpleItemBlock = GameRegistry.register(new ItemIronShulkerBox(ironShulkerBoxPurpleBlock, EnumDyeColor.PURPLE)));
SHULKER_ITEM_BLOCKS.add(ironShulkerBoxBlueItemBlock = GameRegistry.register(new ItemIronShulkerBox(ironShulkerBoxBlueBlock, EnumDyeColor.BLUE)));
SHULKER_ITEM_BLOCKS.add(ironShulkerBoxBrownItemBlock = GameRegistry.register(new ItemIronShulkerBox(ironShulkerBoxBrownBlock, EnumDyeColor.BROWN)));
SHULKER_ITEM_BLOCKS.add(ironShulkerBoxGreenItemBlock = GameRegistry.register(new ItemIronShulkerBox(ironShulkerBoxGreenBlock, EnumDyeColor.GREEN)));
SHULKER_ITEM_BLOCKS.add(ironShulkerBoxRedItemBlock = GameRegistry.register(new ItemIronShulkerBox(ironShulkerBoxRedBlock, EnumDyeColor.RED)));
SHULKER_ITEM_BLOCKS.add(ironShulkerBoxBlackItemBlock = GameRegistry.register(new ItemIronShulkerBox(ironShulkerBoxBlackBlock, EnumDyeColor.BLACK)));
//@formatter:on
}
private static void setVanillaShulkerList()
{
VANILLA_SHULKER_BLOCKS.add(Blocks.WHITE_SHULKER_BOX);
VANILLA_SHULKER_BLOCKS.add(Blocks.ORANGE_SHULKER_BOX);
VANILLA_SHULKER_BLOCKS.add(Blocks.MAGENTA_SHULKER_BOX);
VANILLA_SHULKER_BLOCKS.add(Blocks.LIGHT_BLUE_SHULKER_BOX);
VANILLA_SHULKER_BLOCKS.add(Blocks.YELLOW_SHULKER_BOX);
VANILLA_SHULKER_BLOCKS.add(Blocks.LIME_SHULKER_BOX);
VANILLA_SHULKER_BLOCKS.add(Blocks.PINK_SHULKER_BOX);
VANILLA_SHULKER_BLOCKS.add(Blocks.GRAY_SHULKER_BOX);
VANILLA_SHULKER_BLOCKS.add(Blocks.SILVER_SHULKER_BOX);
VANILLA_SHULKER_BLOCKS.add(Blocks.CYAN_SHULKER_BOX);
VANILLA_SHULKER_BLOCKS.add(Blocks.PURPLE_SHULKER_BOX);
VANILLA_SHULKER_BLOCKS.add(Blocks.BLUE_SHULKER_BOX);
VANILLA_SHULKER_BLOCKS.add(Blocks.BROWN_SHULKER_BOX);
VANILLA_SHULKER_BLOCKS.add(Blocks.GREEN_SHULKER_BOX);
VANILLA_SHULKER_BLOCKS.add(Blocks.RED_SHULKER_BOX);
VANILLA_SHULKER_BLOCKS.add(Blocks.BLACK_SHULKER_BOX);
VANILLA_SHULKER_COLORS.add(EnumDyeColor.WHITE);
VANILLA_SHULKER_COLORS.add(EnumDyeColor.ORANGE);
VANILLA_SHULKER_COLORS.add(EnumDyeColor.MAGENTA);
VANILLA_SHULKER_COLORS.add(EnumDyeColor.LIGHT_BLUE);
VANILLA_SHULKER_COLORS.add(EnumDyeColor.YELLOW);
VANILLA_SHULKER_COLORS.add(EnumDyeColor.LIME);
VANILLA_SHULKER_COLORS.add(EnumDyeColor.PINK);
VANILLA_SHULKER_COLORS.add(EnumDyeColor.GRAY);
VANILLA_SHULKER_COLORS.add(EnumDyeColor.SILVER);
VANILLA_SHULKER_COLORS.add(EnumDyeColor.CYAN);
VANILLA_SHULKER_COLORS.add(EnumDyeColor.PURPLE);
VANILLA_SHULKER_COLORS.add(EnumDyeColor.BLUE);
VANILLA_SHULKER_COLORS.add(EnumDyeColor.BROWN);
VANILLA_SHULKER_COLORS.add(EnumDyeColor.GREEN);
VANILLA_SHULKER_COLORS.add(EnumDyeColor.RED);
VANILLA_SHULKER_COLORS.add(EnumDyeColor.BLACK);
}
}

View File

@ -1,5 +1,17 @@
package cpw.mods.ironchest;
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.ai;
import cpw.mods.ironchest.common.ICContent;
import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.ai.EntityAIOcelotSit;
@ -30,7 +42,7 @@ public class IronChestAIOcelotSit extends EntityAIOcelotSit
IBlockState iblockstate = worldIn.getBlockState(pos);
Block block = iblockstate.getBlock();
if (block == IronChest.ironChestBlock)
if (block == ICContent.ironChestBlock)
{
TileEntity tileentity = worldIn.getTileEntity(pos);

View File

@ -8,8 +8,13 @@
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest;
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.tileentity.chest.TileEntityIronChest;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyEnum;
@ -20,7 +25,6 @@ import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.InventoryHelper;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@ -34,6 +38,7 @@ import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.Explosion;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.ILockableContainer;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@ -47,13 +52,12 @@ public class BlockIronChest extends Block
public BlockIronChest()
{
super(Material.IRON);
this.setRegistryName(new ResourceLocation(IronChest.MOD_ID, "iron_chest"));
this.setDefaultState(this.blockState.getBaseState().withProperty(VARIANT_PROP, IronChestType.IRON));
this.setHardness(3.0F);
this.setUnlocalizedName("IronChest");
this.setCreativeTab(CreativeTabs.DECORATIONS);
this.setCreativeTab(ICContent.tabGeneral);
}
@Override
@ -80,6 +84,18 @@ public class BlockIronChest extends Block
return EnumBlockRenderType.ENTITYBLOCK_ANIMATED;
}
@Nullable
public ILockableContainer getLockableContainer(World worldIn, BlockPos pos)
{
return this.getContainer(worldIn, pos, false);
}
@Nullable
public ILockableContainer getContainer(World worldIn, BlockPos pos, boolean allowBlocking)
{
return null;
}
@Override
//@formatter:off
public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing heldItem, float side, float hitX, float hitY)
@ -103,6 +119,7 @@ public class BlockIronChest extends Block
}
playerIn.openGui(IronChest.instance, ((TileEntityIronChest) te).getType().ordinal(), worldIn, pos.getX(), pos.getY(), pos.getZ());
return true;
}
@ -160,11 +177,14 @@ public class BlockIronChest extends Block
public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
{
TileEntity te = worldIn.getTileEntity(pos);
if (te != null && te instanceof TileEntityIronChest)
{
TileEntityIronChest teic = (TileEntityIronChest) te;
teic.wasPlaced(placer, stack);
teic.setFacing(placer.getHorizontalFacing().getOpposite());
worldIn.notifyBlockUpdate(pos, state, state, 3);
}
}
@ -186,6 +206,7 @@ public class BlockIronChest extends Block
InventoryHelper.dropInventoryItems(worldIn, pos, tileentity);
}
super.breakBlock(worldIn, pos, state);
}
@ -193,14 +214,17 @@ public class BlockIronChest extends Block
public float getExplosionResistance(World world, BlockPos pos, Entity exploder, Explosion explosion)
{
TileEntity te = world.getTileEntity(pos);
if (te instanceof TileEntityIronChest)
{
TileEntityIronChest teic = (TileEntityIronChest) te;
if (teic.getType().isExplosionResistant())
{
return 10000F;
}
}
return super.getExplosionResistance(world, pos, exploder, explosion);
}
@ -211,14 +235,9 @@ public class BlockIronChest extends Block
}
@Override
public int getComparatorInputOverride(IBlockState blockState, World world, BlockPos pos)
public int getComparatorInputOverride(IBlockState blockState, World worldIn, BlockPos pos)
{
TileEntity te = world.getTileEntity(pos);
if (te instanceof IInventory)
{
return Container.calcRedstoneFromInventory((IInventory) te);
}
return 0;
return Container.calcRedstone(worldIn.getTileEntity(pos));
}
private static final EnumFacing[] validRotationAxes = new EnumFacing[] { EnumFacing.UP, EnumFacing.DOWN };
@ -236,14 +255,18 @@ public class BlockIronChest extends Block
{
return false;
}
if (axis == EnumFacing.UP || axis == EnumFacing.DOWN)
{
TileEntity tileEntity = worldObj.getTileEntity(pos);
if (tileEntity instanceof TileEntityIronChest)
{
TileEntityIronChest icte = (TileEntityIronChest) tileEntity;
icte.rotateAround();
}
return true;
}
return false;
@ -254,7 +277,9 @@ public class BlockIronChest extends Block
public boolean eventReceived(IBlockState state, World worldIn, BlockPos pos, int id, int param)
{
super.eventReceived(state, worldIn, pos, id, param);
TileEntity tileentity = worldIn.getTileEntity(pos);
return tileentity != null && tileentity.receiveClientEvent(id, param);
}
}

View File

@ -8,12 +8,21 @@
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest;
package cpw.mods.ironchest.common.blocks.chest;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import cpw.mods.ironchest.common.gui.chest.slot.ValidatingChestSlot;
import cpw.mods.ironchest.common.tileentity.chest.TileEntityCopperChest;
import cpw.mods.ironchest.common.tileentity.chest.TileEntityCrystalChest;
import cpw.mods.ironchest.common.tileentity.chest.TileEntityDiamondChest;
import cpw.mods.ironchest.common.tileentity.chest.TileEntityDirtChest;
import cpw.mods.ironchest.common.tileentity.chest.TileEntityGoldChest;
import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest;
import cpw.mods.ironchest.common.tileentity.chest.TileEntityObsidianChest;
import cpw.mods.ironchest.common.tileentity.chest.TileEntitySilverChest;
import net.minecraft.init.Blocks;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
@ -71,7 +80,7 @@ public enum IronChestType implements IStringSerializable
this.size = size;
this.rowLength = rowLength;
this.tieredChest = tieredChest;
this.modelTexture = new ResourceLocation("ironchest", "textures/model/" + modelTexture);
this.modelTexture = new ResourceLocation("ironchest", "textures/model/chest/" + modelTexture);
this.matList = Collections.unmodifiableCollection(mats);
this.clazz = clazz;
this.recipes = Collections.unmodifiableCollection(Arrays.asList(recipes));
@ -119,11 +128,13 @@ public enum IronChestType implements IStringSerializable
public static void registerBlocksAndRecipes(BlockIronChest blockResult)
{
Object previous = "chestWood";
for (IronChestType typ : values())
{
generateRecipesForType(blockResult, previous, typ);
ItemStack chest = new ItemStack(blockResult, 1, typ.ordinal());
// if (typ.isValidForCreativeMode()) GameRegistry.registerCustomItemStack(typ.friendlyName, chest);//TODO fix this!!
if (typ.tieredChest)
{
previous = chest;
@ -137,12 +148,17 @@ public enum IronChestType implements IStringSerializable
{
String[] recipeSplit = new String[] { recipe.substring(0, 3), recipe.substring(3, 6), recipe.substring(6, 9) };
Object mainMaterial = null;
for (String mat : type.matList)
{
mainMaterial = translateOreName(mat);
//@formatter:off
addRecipe(new ItemStack(blockResult, 1, type.ordinal()), recipeSplit, 'm', mainMaterial, 'P', previousTier, /* previous tier of chest */
'G', "blockGlass", 'C', "chestWood", '0', new ItemStack(blockResult, 1, 0), /* Iron Chest */
addRecipe(new ItemStack(blockResult, 1, type.ordinal()), recipeSplit,
'm', mainMaterial,
'P', previousTier, /* previous tier of chest */
'G', "blockGlass",
'C', "chestWood",
'0', new ItemStack(blockResult, 1, 0), /* Iron Chest */
'1', new ItemStack(blockResult, 1, 1), /* Gold Chest */
'2', new ItemStack(blockResult, 1, 2), /* Diamond Chest */
'3', new ItemStack(blockResult, 1, 3), /* Copper Chest */
@ -162,12 +178,14 @@ public enum IronChestType implements IStringSerializable
{
return Blocks.DIRT;
}
return mat;
}
public static void addRecipe(ItemStack is, Object... parts)
{
ShapedOreRecipe oreRecipe = new ShapedOreRecipe(is, parts);
GameRegistry.addRecipe(oreRecipe);
}
@ -193,7 +211,7 @@ public enum IronChestType implements IStringSerializable
public Slot makeSlot(IInventory chestInventory, int index, int x, int y)
{
return new ValidatingSlot(chestInventory, index, x, y, this);
return new ValidatingChestSlot(chestInventory, index, x, y, this);
}
private static final Item DIRT_ITEM = Item.getItemFromBlock(Blocks.DIRT);

View File

@ -0,0 +1,493 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.blocks.shulker;
import java.util.List;
import cpw.mods.ironchest.IronChest;
import cpw.mods.ironchest.common.ICContent;
import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox;
import net.minecraft.block.Block;
import net.minecraft.block.material.EnumPushReaction;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ItemStackHelper;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
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;
import net.minecraft.util.text.translation.I18n;
import net.minecraft.world.Explosion;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@SuppressWarnings("deprecation")
public class BlockIronShulkerBox extends Block
{
public static final PropertyEnum<IronShulkerBoxType> VARIANT_PROP = PropertyEnum.create("variant", IronShulkerBoxType.class);
private final EnumDyeColor color;
private EnumFacing facingDirection;
public BlockIronShulkerBox(EnumDyeColor colorIn)
{
super(Material.IRON);
this.color = colorIn;
this.setRegistryName(new ResourceLocation(IronChest.MOD_ID, "iron_shulker_box_" + colorIn.getName()));
this.setUnlocalizedName("IronShulkerBox" + colorIn.getName());
this.setDefaultState(this.blockState.getBaseState().withProperty(VARIANT_PROP, IronShulkerBoxType.IRON));
this.setHardness(3.0F);
this.setCreativeTab(ICContent.tabGeneral);
}
/**
* Used to determine ambient occlusion and culling when rebuilding chunks for render
*/
@Override
public boolean isOpaqueCube(IBlockState state)
{
return false;
}
@Override
public boolean causesSuffocation(IBlockState state)
{
return true;
}
@Override
public boolean isFullCube(IBlockState state)
{
return false;
}
@Override
@SideOnly(Side.CLIENT)
public boolean hasCustomBreakingProgress(IBlockState state)
{
return true;
}
/**
* The type of render function called. MODEL for mixed tesr and static model, MODELBLOCK_ANIMATED for TESR-only, LIQUID for vanilla liquids, INVISIBLE to skip all rendering
*/
@Override
public EnumBlockRenderType getRenderType(IBlockState state)
{
return EnumBlockRenderType.ENTITYBLOCK_ANIMATED;
}
@Override
//@formatter:off
public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing heldItem, float side, float hitX, float hitY)
//@formatter:on
{
if (worldIn.isRemote)
{
return true;
}
else if (playerIn.isSpectator())
{
return true;
}
else
{
TileEntity tileentity = worldIn.getTileEntity(pos);
if (tileentity instanceof TileEntityIronShulkerBox)
{
EnumFacing enumfacing = ((TileEntityIronShulkerBox) tileentity).getFacing();
boolean flag;
if (((TileEntityIronShulkerBox) tileentity).getAnimationStatus() == TileEntityIronShulkerBox.AnimationStatus.CLOSED)
{
//@formatter:off
AxisAlignedBB axisalignedbb = FULL_BLOCK_AABB.addCoord(0.5F * enumfacing.getFrontOffsetX(), 0.5F * enumfacing.getFrontOffsetY(), 0.5F * enumfacing.getFrontOffsetZ()).contract(enumfacing.getFrontOffsetX(), enumfacing.getFrontOffsetY(), enumfacing.getFrontOffsetZ());
//@formatter:on
flag = !worldIn.collidesWithAnyBlock(axisalignedbb.offset(pos.offset(enumfacing)));
}
else
{
flag = true;
}
if (flag)
{
//@formatter:off
playerIn.openGui(IronChest.instance, ((TileEntityIronShulkerBox) tileentity).getType().ordinal(), worldIn, pos.getX(), pos.getY(), pos.getZ());
//@formatter:on
}
return true;
}
else
{
return false;
}
}
}
@Override
public boolean hasTileEntity(IBlockState state)
{
return true;
}
@Override
public TileEntity createTileEntity(World world, IBlockState state)
{
return state.getValue(VARIANT_PROP).makeEntity(this.color);
}
@Override
@SideOnly(Side.CLIENT)
public void getSubBlocks(Item itemIn, CreativeTabs tab, NonNullList<ItemStack> list)
{
for (IronShulkerBoxType type : IronShulkerBoxType.VALUES)
{
if (type.isValidForCreativeMode())
{
list.add(new ItemStack(itemIn, 1, type.ordinal()));
}
}
}
@Override
public IBlockState getStateFromMeta(int meta)
{
return this.getDefaultState().withProperty(VARIANT_PROP, IronShulkerBoxType.VALUES[meta]);
}
@Override
public int getMetaFromState(IBlockState blockState)
{
return blockState.getValue(VARIANT_PROP).ordinal();
}
@Override
protected BlockStateContainer createBlockState()
{
return new BlockStateContainer(this, VARIANT_PROP);
}
@Override
//@formatter:off
public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
//@formatter:on
{
this.facingDirection = facing;
return super.getStateForPlacement(worldIn, pos, facing, hitX, hitY, hitZ, meta, placer);
}
@Override
public void onBlockAdded(World world, BlockPos pos, IBlockState state)
{
super.onBlockAdded(world, pos, state);
world.notifyBlockUpdate(pos, state, state, 3);
}
/**
* Called by ItemBlocks after a block is set in the world, to allow post-place logic
*/
@Override
public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
{
if (stack.hasDisplayName())
{
TileEntity tileentity = worldIn.getTileEntity(pos);
if (tileentity instanceof TileEntityIronShulkerBox)
{
((TileEntityIronShulkerBox) tileentity).setCustomName(stack.getDisplayName());
((TileEntityIronShulkerBox) tileentity).setFacing(facingDirection);
worldIn.notifyBlockUpdate(pos, state, state, 3);
}
}
else
{
TileEntity tileentity = worldIn.getTileEntity(pos);
if (tileentity instanceof TileEntityIronShulkerBox)
{
TileEntityIronShulkerBox teic = (TileEntityIronShulkerBox) tileentity;
teic.setFacing(facingDirection);
worldIn.notifyBlockUpdate(pos, state, state, 3);
}
}
}
@Override
public int damageDropped(IBlockState state)
{
return state.getValue(VARIANT_PROP).ordinal();
}
@Override
public void onBlockHarvested(World worldIn, BlockPos pos, IBlockState state, EntityPlayer player)
{
TileEntityIronShulkerBox tileentityironshulkerbox = (TileEntityIronShulkerBox) worldIn.getTileEntity(pos);
tileentityironshulkerbox.setDestroyedByCreativePlayer(player.capabilities.isCreativeMode);
tileentityironshulkerbox.fillWithLoot(player);
}
/**
* Spawns this Block's drops into the World as EntityItems.
*/
@Override
public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, IBlockState state, float chance, int fortune)
{
}
/**
* Called serverside after this block is replaced with another in Chunk, but before the Tile Entity is updated
*/
@Override
public void breakBlock(World worldIn, BlockPos pos, IBlockState state)
{
TileEntity tileentity = worldIn.getTileEntity(pos);
if (tileentity instanceof TileEntityIronShulkerBox)
{
TileEntityIronShulkerBox tileentityironshulkerbox = (TileEntityIronShulkerBox) tileentity;
if (!tileentityironshulkerbox.isCleared() && tileentityironshulkerbox.shouldDrop())
{
if (!tileentityironshulkerbox.beenUpgraded())
{
ItemStack itemstack = new ItemStack(Item.getItemFromBlock(this), 1, state.getValue(VARIANT_PROP).ordinal());
NBTTagCompound nbttagcompound = new NBTTagCompound();
NBTTagCompound nbttagcompound1 = new NBTTagCompound();
nbttagcompound.setTag("BlockEntityTag", ((TileEntityIronShulkerBox) tileentity).saveToNbt(nbttagcompound1));
itemstack.setTagCompound(nbttagcompound);
if (tileentityironshulkerbox.hasCustomName())
{
itemstack.setStackDisplayName(tileentityironshulkerbox.getName());
tileentityironshulkerbox.setCustomName("");
}
spawnAsEntity(worldIn, pos, itemstack);
}
}
worldIn.updateComparatorOutputLevel(pos, state.getBlock());
}
super.breakBlock(worldIn, pos, state);
}
@Override
public float getExplosionResistance(World world, BlockPos pos, Entity exploder, Explosion explosion)
{
TileEntity te = world.getTileEntity(pos);
if (te instanceof TileEntityIronShulkerBox)
{
TileEntityIronShulkerBox teic = (TileEntityIronShulkerBox) te;
if (teic.getType().isExplosionResistant())
{
return 10000F;
}
}
return super.getExplosionResistance(world, pos, exploder, explosion);
}
@Override
@SideOnly(Side.CLIENT)
public void addInformation(ItemStack stack, EntityPlayer player, List<String> tooltip, boolean advanced)
{
super.addInformation(stack, player, tooltip, advanced);
NBTTagCompound nbttagcompound = stack.getTagCompound();
if (nbttagcompound != null && nbttagcompound.hasKey("BlockEntityTag", 10))
{
NBTTagCompound nbttagcompound1 = nbttagcompound.getCompoundTag("BlockEntityTag");
if (nbttagcompound1.hasKey("LootTable", 8))
{
tooltip.add("???????");
}
if (nbttagcompound1.hasKey("Items", 9))
{
if (nbttagcompound1.hasKey("ShulkerBoxSize", 3))
{
NonNullList<ItemStack> nonnulllist = NonNullList.<ItemStack> withSize(nbttagcompound1.getInteger("ShulkerBoxSize"), ItemStack.EMPTY);
ItemStackHelper.loadAllItems(nbttagcompound1, nonnulllist);
int i = 0;
int j = 0;
for (ItemStack itemstack : nonnulllist)
{
if (!itemstack.isEmpty())
{
++j;
if (i <= 4)
{
++i;
tooltip.add(String.format("%s x%d", new Object[] { itemstack.getDisplayName(), Integer.valueOf(itemstack.getCount()) }));
}
}
}
if (j - i > 0)
{
//@formatter:off
tooltip.add(String.format(TextFormatting.ITALIC + I18n.translateToLocal("container.shulkerBox.more"), new Object[] {Integer.valueOf(j - i)}));
//@formatter:on
}
}
}
}
}
@Override
public EnumPushReaction getMobilityFlag(IBlockState state)
{
return EnumPushReaction.DESTROY;
}
@Override
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
{
TileEntity tileentity = source.getTileEntity(pos);
return tileentity instanceof TileEntityIronShulkerBox ? ((TileEntityIronShulkerBox) tileentity).getBoundingBox() : FULL_BLOCK_AABB;
}
@Override
public boolean hasComparatorInputOverride(IBlockState state)
{
return true;
}
@Override
public int getComparatorInputOverride(IBlockState blockState, World worldIn, BlockPos pos)
{
return Container.calcRedstoneFromInventory((IInventory) worldIn.getTileEntity(pos));
}
@Override
public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state)
{
ItemStack itemstack = super.getItem(worldIn, pos, state);
TileEntityIronShulkerBox tileentityironshulkerbox = (TileEntityIronShulkerBox) worldIn.getTileEntity(pos);
NBTTagCompound nbttagcompound = tileentityironshulkerbox.saveToNbt(new NBTTagCompound());
if (!nbttagcompound.hasNoTags())
{
itemstack.setTagInfo("BlockEntityTag", nbttagcompound);
}
return itemstack;
}
public static Block getBlockByColor(EnumDyeColor colorIn)
{
switch (colorIn)
{
case WHITE:
return ICContent.ironShulkerBoxWhiteBlock;
case ORANGE:
return ICContent.ironShulkerBoxOrangeBlock;
case MAGENTA:
return ICContent.ironShulkerBoxMagentaBlock;
case LIGHT_BLUE:
return ICContent.ironShulkerBoxLightBlueBlock;
case YELLOW:
return ICContent.ironShulkerBoxYellowBlock;
case LIME:
return ICContent.ironShulkerBoxLimeBlock;
case PINK:
return ICContent.ironShulkerBoxPinkBlock;
case GRAY:
return ICContent.ironShulkerBoxGrayBlock;
case SILVER:
return ICContent.ironShulkerBoxSilverBlock;
case CYAN:
return ICContent.ironShulkerBoxCyanBlock;
case PURPLE:
default:
return ICContent.ironShulkerBoxPurpleBlock;
case BLUE:
return ICContent.ironShulkerBoxBlueBlock;
case BROWN:
return ICContent.ironShulkerBoxBrownBlock;
case GREEN:
return ICContent.ironShulkerBoxGreenBlock;
case RED:
return ICContent.ironShulkerBoxRedBlock;
case BLACK:
return ICContent.ironShulkerBoxBlackBlock;
}
}
public static ItemStack getColoredItemStack(EnumDyeColor colorIn, int damageIn)
{
return new ItemStack(getBlockByColor(colorIn), 1, damageIn);
}
@SideOnly(Side.CLIENT)
public static EnumDyeColor getColorFromBlock(Block blockIn)
{
return blockIn instanceof BlockIronShulkerBox ? ((BlockIronShulkerBox) blockIn).getColor() : EnumDyeColor.PURPLE;
}
@SideOnly(Side.CLIENT)
public EnumDyeColor getColor()
{
return this.color;
}
@Override
@Deprecated
public boolean eventReceived(IBlockState state, World worldIn, BlockPos pos, int id, int param)
{
super.eventReceived(state, worldIn, pos, id, param);
TileEntity tileentity = worldIn.getTileEntity(pos);
return tileentity != null && tileentity.receiveClientEvent(id, param);
}
}

View File

@ -0,0 +1,233 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.blocks.shulker;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import cpw.mods.ironchest.common.gui.shulker.slot.ValidatingShulkerBoxSlot;
import cpw.mods.ironchest.common.tileentity.shulker.TileEntityCopperShulkerBox;
import cpw.mods.ironchest.common.tileentity.shulker.TileEntityCrystalShulkerBox;
import cpw.mods.ironchest.common.tileentity.shulker.TileEntityDiamondShulkerBox;
import cpw.mods.ironchest.common.tileentity.shulker.TileEntityGoldShulkerBox;
import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox;
import cpw.mods.ironchest.common.tileentity.shulker.TileEntityObsidianShulkerBox;
import cpw.mods.ironchest.common.tileentity.shulker.TileEntitySilverShulkerBox;
import net.minecraft.block.BlockShulkerBox;
import net.minecraft.init.Blocks;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IStringSerializable;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.oredict.ShapedOreRecipe;
public enum IronShulkerBoxType implements IStringSerializable
{
//@formatter:off
IRON(54, 9, true, "_iron.png", TileEntityIronShulkerBox.class, 184, 202, Arrays.asList("ingotIron", "ingotRefinedIron"), "mmmmPmmmm", "mGmG3GmGm"),
GOLD(81, 9, true, "_gold.png", TileEntityGoldShulkerBox.class, 184, 256, Collections.singleton("ingotGold"), "mmmmPmmmm", "mGmG4GmGm"),
DIAMOND(108, 12, true, "_diamond.png", TileEntityDiamondShulkerBox.class, 184, 256, Collections.singleton("gemDiamond"), "GGGmPmGGG", "GGGG4Gmmm"),
COPPER(45, 9, false, "_copper.png", TileEntityCopperShulkerBox.class, 184, 184, Collections.singleton("ingotCopper"), "mmmmCmmmm"),
SILVER(72, 9, false, "_silver.png", TileEntitySilverShulkerBox.class, 184, 238, Collections.singleton("ingotSilver"), "mmmm3mmmm", "mGmG0GmGm"),
CRYSTAL(108, 12, true, "_crystal.png", TileEntityCrystalShulkerBox.class, 238, 256, Collections.singleton("blockGlass"), "GGGGPGGGG"),
OBSIDIAN(108, 12, false, "_obsidian.png", TileEntityObsidianShulkerBox.class, 238, 256, Collections.singleton("obsidian"), "mmmm2mmmm"),
VANILLA(0, 0, false, "", null, 0, 0, Collections.singleton("shulkerBox"));
//@formatter:on
public static final IronShulkerBoxType VALUES[] = values();
public final String name;
public final int size;
public final int rowLength;
public final boolean tieredChest;
public final String modelTexture;
public final Class<? extends TileEntityIronShulkerBox> clazz;
public final int xSize;
public final int ySize;
public final Collection<String> matList;
public final Collection<String> recipes;
private String breakTexture;
//@formatter:off
IronShulkerBoxType(int size, int rowLength, boolean tieredChest, String modelTexture, Class<? extends TileEntityIronShulkerBox> clazz, int xSize, int ySize, Collection<String> mats, String... recipes)
//@formatter:on
{
this.name = this.name().toLowerCase();
this.size = size;
this.rowLength = rowLength;
this.tieredChest = tieredChest;
this.modelTexture = modelTexture;
this.clazz = clazz;
this.xSize = xSize;
this.ySize = ySize;
this.matList = Collections.unmodifiableCollection(mats);
this.recipes = Collections.unmodifiableCollection(Arrays.asList(recipes));
}
@Override
public String getName()
{
return this.name;
}
public String getBreakTexture()
{
if (this.breakTexture == null)
{
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";
}
}
}
return this.breakTexture;
}
public static void registerBlocksAndRecipes(BlockIronShulkerBox blockResult, BlockShulkerBox shulkerBox)
{
Object previous = shulkerBox;
for (IronShulkerBoxType typ : values())
{
generateRecipesForType(blockResult, previous, typ);
ItemStack chest = new ItemStack(blockResult, 1, typ.ordinal());
if (typ.tieredChest)
{
previous = chest;
}
}
}
public static void generateRecipesForType(BlockIronShulkerBox blockResult, Object previousTier, IronShulkerBoxType type)
{
for (String recipe : type.recipes)
{
String[] recipeSplit = new String[] { recipe.substring(0, 3), recipe.substring(3, 6), recipe.substring(6, 9) };
Object mainMaterial = null;
for (String mat : type.matList)
{
mainMaterial = translateOreName(mat);
//@formatter:off
addRecipe(new ItemStack(blockResult, 1, type.ordinal()), recipeSplit,
'm', mainMaterial,
'P', previousTier, /* previous tier of chest */
'G', "blockGlass",
'C', "chestWood",
'0', new ItemStack(blockResult, 1, 0), /* Iron Chest */
'1', new ItemStack(blockResult, 1, 1), /* Gold Chest */
'2', new ItemStack(blockResult, 1, 2), /* Diamond Chest */
'3', new ItemStack(blockResult, 1, 3), /* Copper Chest */
'4', new ItemStack(blockResult, 1, 4) /* Silver Chest */
);
//@formatter:on
}
}
}
public static Object translateOreName(String mat)
{
if (mat.equals("shulkerBox"))
{
return Blocks.PURPLE_SHULKER_BOX;
}
if (mat.equals("obsidian"))
{
return Blocks.OBSIDIAN;
}
return mat;
}
public static void addRecipe(ItemStack is, Object... parts)
{
ShapedOreRecipe oreRecipe = new ShapedOreRecipe(is, parts);
GameRegistry.addRecipe(oreRecipe);
}
public int getRowCount()
{
return this.size / this.rowLength;
}
public boolean isTransparent()
{
return this == CRYSTAL;
}
public boolean isValidForCreativeMode()
{
return this != VANILLA;
}
public boolean isExplosionResistant()
{
return this == OBSIDIAN;
}
public Slot makeSlot(IInventory chestInventory, int index, int x, int y)
{
return new ValidatingShulkerBoxSlot(chestInventory, index, x, y);
}
public TileEntityIronShulkerBox makeEntity(EnumDyeColor colorIn)
{
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;
}
}
}

View File

@ -0,0 +1,136 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.crafting;
import cpw.mods.ironchest.common.blocks.shulker.BlockIronShulkerBox;
import net.minecraft.block.Block;
import net.minecraft.init.Items;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.util.NonNullList;
import net.minecraft.world.World;
public class IronShulkerBoxColoring implements IRecipe
{
public IronShulkerBoxColoring()
{
}
/**
* Used to check if a recipe matches current crafting inventory
*/
@Override
public boolean matches(InventoryCrafting inv, World worldIn)
{
int i = 0;
int j = 0;
for (int k = 0; k < inv.getSizeInventory(); ++k)
{
ItemStack itemstack = inv.getStackInSlot(k);
if (!itemstack.isEmpty())
{
if (Block.getBlockFromItem(itemstack.getItem()) instanceof BlockIronShulkerBox)
{
++i;
}
else
{
if (itemstack.getItem() != Items.DYE)
{
return false;
}
++j;
}
if (j > 1 || i > 1)
{
return false;
}
}
}
return i == 1 && j == 1;
}
/**
* Returns an Item that is the result of this recipe
*/
@Override
public ItemStack getCraftingResult(InventoryCrafting inv)
{
ItemStack itemstack = ItemStack.EMPTY;
ItemStack itemstack1 = ItemStack.EMPTY;
for (int i = 0; i < inv.getSizeInventory(); ++i)
{
ItemStack itemstack2 = inv.getStackInSlot(i);
if (!itemstack2.isEmpty())
{
if (Block.getBlockFromItem(itemstack2.getItem()) instanceof BlockIronShulkerBox)
{
itemstack = itemstack2;
}
else if (itemstack2.getItem() == Items.DYE)
{
itemstack1 = itemstack2;
}
}
}
ItemStack itemstack3 = BlockIronShulkerBox.getColoredItemStack(EnumDyeColor.byDyeDamage(itemstack1.getMetadata()), itemstack.getMetadata());
if (itemstack.hasTagCompound())
{
itemstack3.setTagCompound(itemstack.getTagCompound().copy());
}
return itemstack3;
}
/**
* Returns the size of the recipe area
*/
@Override
public int getRecipeSize()
{
return 10;
}
@Override
public ItemStack getRecipeOutput()
{
return ItemStack.EMPTY;
}
@Override
public NonNullList<ItemStack> getRemainingItems(InventoryCrafting inv)
{
NonNullList<ItemStack> nonnulllist = NonNullList.<ItemStack> withSize(inv.getSizeInventory(), ItemStack.EMPTY);
for (int i = 0; i < nonnulllist.size(); ++i)
{
ItemStack itemstack = inv.getStackInSlot(i);
if (itemstack.getItem().hasContainerItem(itemstack))
{
nonnulllist.set(i, new ItemStack(itemstack.getItem().getContainerItem()));
}
}
return nonnulllist;
}
}

View File

@ -8,8 +8,9 @@
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest;
package cpw.mods.ironchest.common.gui.chest;
import cpw.mods.ironchest.common.blocks.chest.IronChestType;
import invtweaks.api.container.ChestContainer;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
@ -108,11 +109,13 @@ public class ContainerIronChest extends Container
}
int leftCol = (xSize - 162) / 2 + 1;
for (int playerInvRow = 0; playerInvRow < 3; playerInvRow++)
{
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));
}
}

View File

@ -0,0 +1,33 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.gui.chest.slot;
import cpw.mods.ironchest.common.blocks.chest.IronChestType;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class ValidatingChestSlot extends Slot
{
private IronChestType type;
public ValidatingChestSlot(IInventory inventoryIn, int slotIndex, int xPosition, int yPosition, IronChestType type)
{
super(inventoryIn, slotIndex, xPosition, yPosition);
this.type = type;
}
@Override
public boolean isItemValid(ItemStack stack)
{
return this.type.acceptsStack(stack);
}
}

View File

@ -0,0 +1,138 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.gui.shulker;
import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType;
import invtweaks.api.container.ChestContainer;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
@ChestContainer(isLargeChest = true)
public class ContainerIronShulkerBox extends Container
{
private IronShulkerBoxType type;
private EntityPlayer player;
private IInventory inventory;
public ContainerIronShulkerBox(IInventory playerInventory, IInventory shulkerBoxInventory, IronShulkerBoxType type, int xSize, int ySize)
{
this.inventory = shulkerBoxInventory;
this.player = ((InventoryPlayer) playerInventory).player;
this.type = type;
shulkerBoxInventory.openInventory(this.player);
this.layoutContainer(playerInventory, shulkerBoxInventory, type, xSize, ySize);
}
protected void layoutContainer(IInventory playerInventory, IInventory shulkerBoxInventory, IronShulkerBoxType type, int xSize, int ySize)
{
for (int chestRow = 0; chestRow < type.getRowCount(); chestRow++)
{
for (int chestCol = 0; chestCol < type.rowLength; chestCol++)
{
this.addSlotToContainer(type.makeSlot(shulkerBoxInventory, chestCol + chestRow * type.rowLength, 12 + chestCol * 18, 8 + chestRow * 18));
}
}
int leftCol = (xSize - 162) / 2 + 1;
for (int playerInvRow = 0; playerInvRow < 3; playerInvRow++)
{
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
}
}
for (int hotbarSlot = 0; hotbarSlot < 9; hotbarSlot++)
{
this.addSlotToContainer(new Slot(playerInventory, hotbarSlot, leftCol + hotbarSlot * 18, ySize - 24));
}
}
public EntityPlayer getPlayer()
{
return this.player;
}
/**
* Determines whether supplied player can use this container
*/
@Override
public boolean canInteractWith(EntityPlayer playerIn)
{
return this.inventory.isUsableByPlayer(playerIn);
}
/**
* Take a stack from the specified inventory slot.
*/
@Override
public ItemStack transferStackInSlot(EntityPlayer playerIn, int index)
{
ItemStack itemstack = ItemStack.EMPTY;
Slot slot = this.inventorySlots.get(index);
if (slot != null && slot.getHasStack())
{
ItemStack itemstack1 = slot.getStack();
itemstack = itemstack1.copy();
if (index < this.type.size)
{
if (!this.mergeItemStack(itemstack1, this.type.size, this.inventorySlots.size(), true))
{
return ItemStack.EMPTY;
}
}
else if (!this.mergeItemStack(itemstack1, 0, this.type.size, false))
{
return ItemStack.EMPTY;
}
if (itemstack1.isEmpty())
{
slot.putStack(ItemStack.EMPTY);
}
else
{
slot.onSlotChanged();
}
}
return itemstack;
}
/**
* Called when the container is closed.
*/
@Override
public void onContainerClosed(EntityPlayer playerIn)
{
super.onContainerClosed(playerIn);
this.inventory.closeInventory(playerIn);
}
@ChestContainer.RowSizeCallback
public int getNumColumns()
{
return this.type.rowLength;
}
}

View File

@ -0,0 +1,34 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.gui.shulker.slot;
import cpw.mods.ironchest.common.blocks.shulker.BlockIronShulkerBox;
import net.minecraft.block.Block;
import net.minecraft.block.BlockShulkerBox;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class ValidatingShulkerBoxSlot extends Slot
{
public ValidatingShulkerBoxSlot(IInventory inventoryIn, int slotIndex, int xPosition, int yPosition)
{
super(inventoryIn, slotIndex, xPosition, yPosition);
}
@Override
public boolean isItemValid(ItemStack stack)
{
//@formatter:off
return !(Block.getBlockFromItem(stack.getItem()) instanceof BlockIronShulkerBox) && !(Block.getBlockFromItem(stack.getItem()) instanceof BlockShulkerBox);
//@formatter:on
}
}

View File

@ -4,17 +4,19 @@
* <p>
* Contributors: cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest;
package cpw.mods.ironchest.common.items;
import static cpw.mods.ironchest.IronChestType.COPPER;
import static cpw.mods.ironchest.IronChestType.CRYSTAL;
import static cpw.mods.ironchest.IronChestType.DIAMOND;
import static cpw.mods.ironchest.IronChestType.GOLD;
import static cpw.mods.ironchest.IronChestType.IRON;
import static cpw.mods.ironchest.IronChestType.OBSIDIAN;
import static cpw.mods.ironchest.IronChestType.SILVER;
import static cpw.mods.ironchest.IronChestType.WOOD;
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;
import static cpw.mods.ironchest.common.blocks.chest.IronChestType.GOLD;
import static cpw.mods.ironchest.common.blocks.chest.IronChestType.IRON;
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.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.registry.GameRegistry;
@ -22,15 +24,15 @@ import net.minecraftforge.fml.common.registry.GameRegistry;
public enum ChestChangerType
{
//@formatter:off
IRONGOLD(IRON, GOLD, "iron_gold_upgrade", "mmm", "msm", "mmm"),
GOLDDIAMOND(GOLD, DIAMOND, "gold_diamond_upgrade", "GGG", "msm", "GGG"),
COPPERSILVER(COPPER, SILVER, "copper_silver_upgrade", "mmm", "msm", "mmm"),
SILVERGOLD(SILVER, GOLD, "silver_gold_upgrade", "mGm", "GsG", "mGm"),
COPPERIRON(COPPER, IRON, "copper_iron_upgrade", "mGm", "GsG", "mGm"),
DIAMONDCRYSTAL(DIAMOND, CRYSTAL, "diamond_crystal_upgrade", "GGG", "GOG", "GGG"),
WOODIRON(WOOD, IRON, "wood_iron_upgrade", "mmm", "msm", "mmm"),
WOODCOPPER(WOOD, COPPER, "wood_copper_upgrade", "mmm", "msm", "mmm"),
DIAMONDOBSIDIAN(DIAMOND, OBSIDIAN, "diamond_obsidian_upgrade", "mmm", "mGm", "mmm");
IRON_GOLD(IRON, GOLD, "iron_gold_chest_upgrade", "mmm", "msm", "mmm"),
GOLD_DIAMOND(GOLD, DIAMOND, "gold_diamond_chest_upgrade", "GGG", "msm", "GGG"),
COPPER_SILVER(COPPER, SILVER, "copper_silver_chest_upgrade", "mmm", "msm", "mmm"),
SILVER_GOLD(SILVER, GOLD, "silver_gold_chest_upgrade", "mGm", "GsG", "mGm"),
COPPER_IRON(COPPER, IRON, "copper_iron_chest_upgrade", "mGm", "GsG", "mGm"),
DIAMOND_CRYSTAL(DIAMOND, CRYSTAL, "diamond_crystal_chest_upgrade", "GGG", "GOG", "GGG"),
WOOD_IRON(WOOD, IRON, "wood_iron_chest_upgrade", "mmm", "msm", "mmm"),
WOOD_COPPER(WOOD, COPPER, "wood_copper_chest_upgrade", "mmm", "msm", "mmm"),
DIAMOND_OBSIDIAN(DIAMOND, OBSIDIAN, "diamond_obsidian_chest_upgrade", "mmm", "mGm", "mmm");
//@formatter:on
public static final ChestChangerType[] VALUES = values();
@ -57,8 +59,11 @@ public enum ChestChangerType
public ItemChestChanger buildItem()
{
this.item = new ItemChestChanger(this);
this.item.setRegistryName(this.itemName);
GameRegistry.register(this.item);
return this.item;
}

View File

@ -0,0 +1,101 @@
/*******************************************************************************
* 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
* <p>
* Contributors: cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.items;
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;
import static cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType.GOLD;
import static cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType.IRON;
import static cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType.OBSIDIAN;
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.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.registry.GameRegistry;
public enum ShulkerBoxChangerType
{
//@formatter:off
IRON_GOLD(IRON, GOLD, "iron_gold_shulker_upgrade", "mmm", "msm", "mmm"),
GOLD_DIAMOND(GOLD, DIAMOND, "gold_diamond_shulker_upgrade", "GGG", "msm", "GGG"),
COPPER_SILVER(COPPER, SILVER, "copper_silver_shulker_upgrade", "mmm", "msm", "mmm"),
SILVER_GOLD(SILVER, GOLD, "silver_gold_shulker_upgrade", "mGm", "GsG", "mGm"),
COPPER_IRON(COPPER, IRON, "copper_iron_shulker_upgrade", "mGm", "GsG", "mGm"),
DIAMOND_CRYSTAL(DIAMOND, CRYSTAL, "diamond_crystal_shulker_upgrade", "GGG", "GOG", "GGG"),
VANILLA_IRON(VANILLA, IRON, "vanilla_iron_shulker_upgrade", "mmm", "msm", "mmm"),
VANILLA_COPPER(VANILLA, COPPER, "vanilla_copper_shulker_upgrade", "mmm", "msm", "mmm"),
DIAMOND_OBSIDIAN(DIAMOND, OBSIDIAN, "diamond_obsidian_shulker_upgrade", "mmm", "mGm", "mmm");
//@formatter:on
public static final ShulkerBoxChangerType[] VALUES = values();
public final IronShulkerBoxType source;
public final IronShulkerBoxType target;
public final String itemName;
public ItemShulkerBoxChanger item;
private String[] recipe;
ShulkerBoxChangerType(IronShulkerBoxType source, IronShulkerBoxType target, String itemName, String... recipe)
{
this.source = source;
this.target = target;
this.itemName = itemName;
this.recipe = recipe;
}
public boolean canUpgrade(IronShulkerBoxType from)
{
return from == this.source;
}
public ItemShulkerBoxChanger buildItem()
{
this.item = new ItemShulkerBoxChanger(this);
this.item.setRegistryName(this.itemName);
GameRegistry.register(this.item);
return this.item;
}
public void addRecipes()
{
for (String sourceMat : this.source.matList)
{
for (String targetMat : this.target.matList)
{
Object targetMaterial = IronShulkerBoxType.translateOreName(targetMat);
Object sourceMaterial = IronShulkerBoxType.translateOreName(sourceMat);
//@formatter:off
IronShulkerBoxType.addRecipe(new ItemStack(this.item), this.recipe, 'm', targetMaterial, 's', sourceMaterial, 'G', "blockGlass", 'O', Blocks.OBSIDIAN);
//@formatter:on
}
}
}
public static void buildItems()
{
for (ShulkerBoxChangerType type : VALUES)
{
type.buildItem();
}
}
public static void generateRecipes()
{
for (ShulkerBoxChangerType item : VALUES)
{
item.addRecipes();
}
}
}

View File

@ -8,13 +8,19 @@
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest;
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.items.ChestChangerType;
import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest;
import cpw.mods.ironchest.common.util.ItemTooltip;
import net.minecraft.block.BlockChest;
import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityChest;
@ -25,7 +31,7 @@ import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
public class ItemChestChanger extends Item
public class ItemChestChanger extends ItemTooltip
{
public final ChestChangerType type;
@ -33,15 +39,17 @@ public class ItemChestChanger extends Item
{
this.type = type;
this.setMaxStackSize(1);
this.setUnlocalizedName("ironchest:" + type.name());
this.setCreativeTab(CreativeTabs.MISC);
this.setUnlocalizedName("ironchest.chest." + type.name().toLowerCase(Locale.US));
this.setCreativeTab(ICContent.tabGeneral);
}
/**
* Called when a Block is right-clicked with this Item
*/
@Override
public EnumActionResult onItemUse(EntityPlayer playerIn, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
//@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);
@ -59,7 +67,9 @@ public class ItemChestChanger extends Item
}
else
{
if (worldIn.getBlockState(pos) != IronChest.ironChestBlock.getStateFromMeta(IronChestType.valueOf(this.type.source.getName().toUpperCase()).ordinal()))
//@formatter:off
if (worldIn.getBlockState(pos) != ICContent.ironChestBlock.getStateFromMeta(IronChestType.valueOf(this.type.source.getName().toUpperCase()).ordinal()))
//@formatter:on
{
return EnumActionResult.PASS;
}
@ -120,7 +130,7 @@ public class ItemChestChanger extends Item
worldIn.removeTileEntity(pos);
worldIn.setBlockToAir(pos);
IBlockState iblockstate = IronChest.ironChestBlock.getDefaultState().withProperty(BlockIronChest.VARIANT_PROP, this.type.target);
IBlockState iblockstate = ICContent.ironChestBlock.getDefaultState().withProperty(BlockIronChest.VARIANT_PROP, this.type.target);
worldIn.setTileEntity(pos, newchest);
worldIn.setBlockState(pos, iblockstate, 3);

View File

@ -8,8 +8,12 @@
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest;
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 net.minecraft.block.Block;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
@ -20,8 +24,8 @@ public class ItemIronChest extends ItemBlock
public ItemIronChest(Block block)
{
super(block);
this.setRegistryName(new ResourceLocation(IronChest.MOD_ID, "iron_chest"));
this.setRegistryName(new ResourceLocation(IronChest.MOD_ID, "iron_chest"));
this.setMaxDamage(0);
this.setHasSubtypes(true);
}
@ -35,6 +39,6 @@ public class ItemIronChest extends ItemBlock
@Override
public String getUnlocalizedName(ItemStack itemstack)
{
return "tile.ironchest:" + IronChestType.VALUES[itemstack.getMetadata()].name();
return "tile.ironchest.chest." + IronChestType.VALUES[itemstack.getMetadata()].name().toLowerCase(Locale.US);
}
}

View File

@ -0,0 +1,49 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
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
{
private final String colorName;
public ItemIronShulkerBox(Block block, EnumDyeColor colorIn)
{
super(block);
this.setRegistryName(new ResourceLocation(IronChest.MOD_ID, "iron_shulker_box_" + colorIn.getName()));
this.setMaxDamage(0);
this.setHasSubtypes(true);
this.setMaxStackSize(1);
this.colorName = colorIn.getName();
}
@Override
public int getMetadata(int meta)
{
return meta;
}
@Override
public String getUnlocalizedName(ItemStack itemstack)
{
return "tile.ironchest.shulker_box." + IronShulkerBoxType.VALUES[itemstack.getMetadata()].name().toLowerCase(Locale.US) + "." + this.colorName;
}
}

View File

@ -0,0 +1,213 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
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.items.ShulkerBoxChangerType;
import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox;
import cpw.mods.ironchest.common.util.ItemTooltip;
import net.minecraft.block.Block;
import net.minecraft.block.BlockShulkerBox;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityShulkerBox;
import net.minecraft.util.EnumActionResult;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
public class ItemShulkerBoxChanger extends ItemTooltip
{
public final ShulkerBoxChangerType type;
public ItemShulkerBoxChanger(ShulkerBoxChangerType type)
{
this.type = type;
this.setMaxStackSize(1);
this.setUnlocalizedName("ironchest.shulker_box." + type.name().toLowerCase(Locale.US));
this.setCreativeTab(ICContent.tabGeneral);
}
public EnumDyeColor getColorFromTileEntity(TileEntity te, World worldIn)
{
if (te != null)
{
if (te instanceof TileEntityIronShulkerBox)
{
TileEntityIronShulkerBox ironShulkerBox = (TileEntityIronShulkerBox) te;
Block ironShulkerBoxBlock = worldIn.getBlockState(ironShulkerBox.getPos()).getBlock();
for (int i = 0; i < ICContent.SHULKER_BLOCKS.size(); i++)
{
if (ICContent.SHULKER_BLOCKS.get(i) == ironShulkerBoxBlock)
{
return ICContent.VANILLA_SHULKER_COLORS.get(i);
}
}
}
else if (te instanceof TileEntityShulkerBox)
{
TileEntityShulkerBox shulkerBox = (TileEntityShulkerBox) te;
Block shulkerBoxBlock = worldIn.getBlockState(shulkerBox.getPos()).getBlock();
for (int i = 0; i < ICContent.VANILLA_SHULKER_BLOCKS.size(); i++)
{
if (ICContent.VANILLA_SHULKER_BLOCKS.get(i) == shulkerBoxBlock)
{
return ICContent.VANILLA_SHULKER_COLORS.get(i);
}
}
}
}
return EnumDyeColor.PURPLE;
}
/**
* 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);
if (worldIn.isRemote)
{
return EnumActionResult.PASS;
}
if (this.type.canUpgrade(IronShulkerBoxType.VANILLA))
{
if (!(worldIn.getBlockState(pos).getBlock() instanceof BlockShulkerBox))
{
return EnumActionResult.PASS;
}
}
else
{
if ((worldIn.getBlockState(pos).getBlock() instanceof BlockIronShulkerBox))
{
//@formatter:off
if (worldIn.getBlockState(pos) != ((BlockIronShulkerBox) worldIn.getBlockState(pos).getBlock()).getStateFromMeta(IronShulkerBoxType.valueOf(this.type.source.getName().toUpperCase()).ordinal()))
//@formatter:on
{
return EnumActionResult.PASS;
}
}
else
{
return EnumActionResult.PASS;
}
}
TileEntity te = worldIn.getTileEntity(pos);
TileEntityIronShulkerBox newShulkerBox = new TileEntityIronShulkerBox();
NonNullList<ItemStack> shulkerBoxContents = NonNullList.<ItemStack> withSize(27, ItemStack.EMPTY);
EnumFacing shulkerBoxFacing = EnumFacing.UP;
EnumDyeColor shulkerBoxColor = EnumDyeColor.PURPLE;
if (te != null)
{
if (te instanceof TileEntityIronShulkerBox)
{
shulkerBoxContents = ((TileEntityIronShulkerBox) te).getItems();
shulkerBoxFacing = ((TileEntityIronShulkerBox) te).getFacing();
shulkerBoxColor = getColorFromTileEntity(te, worldIn);
((TileEntityIronShulkerBox) te).setHasBeenUpgraded();
newShulkerBox = this.type.target.makeEntity(shulkerBoxColor);
if (newShulkerBox == null)
{
return EnumActionResult.PASS;
}
}
else if (te instanceof TileEntityShulkerBox)
{
IBlockState shulkerBoxState = worldIn.getBlockState(pos);
shulkerBoxFacing = shulkerBoxState.getValue(BlockShulkerBox.FACING);
TileEntityShulkerBox shulkerBox = (TileEntityShulkerBox) te;
if (!this.type.canUpgrade(IronShulkerBoxType.VANILLA))
{
return EnumActionResult.PASS;
}
shulkerBoxContents = NonNullList.<ItemStack> withSize(shulkerBox.getSizeInventory(), ItemStack.EMPTY);
for (int i = 0; i < shulkerBoxContents.size(); i++)
{
shulkerBoxContents.set(i, shulkerBox.getStackInSlot(i));
}
shulkerBoxColor = getColorFromTileEntity(te, worldIn);
shulkerBox.clear();
shulkerBox.setDestroyedByCreativePlayer(true);
newShulkerBox = this.type.target.makeEntity(shulkerBoxColor);
}
}
te.updateContainingBlockInfo();
worldIn.setBlockToAir(pos);
IBlockState iblockstate = null;
if (ICContent.SHULKER_BLOCKS.get(shulkerBoxColor.getMetadata()) != null)
{
Block block = ICContent.SHULKER_BLOCKS.get(shulkerBoxColor.getMetadata());
iblockstate = block.getDefaultState().withProperty(BlockIronShulkerBox.VARIANT_PROP, this.type.target);
}
else
{
return EnumActionResult.PASS;
}
worldIn.setTileEntity(pos, newShulkerBox);
worldIn.setBlockState(pos, iblockstate, 3);
worldIn.notifyBlockUpdate(pos, iblockstate, iblockstate, 3);
TileEntity te2 = worldIn.getTileEntity(pos);
if (te2 instanceof TileEntityIronShulkerBox)
{
((TileEntityIronShulkerBox) te2).setContents(shulkerBoxContents);
((TileEntityIronShulkerBox) te2).setFacing(shulkerBoxFacing);
}
if (!playerIn.capabilities.isCreativeMode)
{
itemstack.shrink(1);
}
return EnumActionResult.SUCCESS;
}
}

View File

@ -0,0 +1,93 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.network;
import cpw.mods.ironchest.IronChest;
import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest;
import io.netty.buffer.ByteBuf;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.network.ByteBufUtils;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
public class MessageCrystalChestSync implements IMessage
{
int dimension;
BlockPos pos;
private NonNullList<ItemStack> topStacks;
public MessageCrystalChestSync(TileEntityIronChest tile, NonNullList<ItemStack> stack)
{
this.dimension = tile.getWorld().provider.getDimension();
this.pos = tile.getPos();
this.topStacks = stack;
}
public MessageCrystalChestSync()
{
}
@Override
public void fromBytes(ByteBuf buf)
{
this.dimension = buf.readInt();
this.pos = new BlockPos(buf.readInt(), buf.readInt(), buf.readInt());
int size = buf.readInt();
this.topStacks = NonNullList.<ItemStack> withSize(size, ItemStack.EMPTY);
for (int i = 0; i < size; i++)
{
ItemStack itemstack = ByteBufUtils.readItemStack(buf);
this.topStacks.set(i, itemstack);
}
}
@Override
public void toBytes(ByteBuf buf)
{
buf.writeInt(this.dimension);
buf.writeInt(this.pos.getX());
buf.writeInt(this.pos.getY());
buf.writeInt(this.pos.getZ());
buf.writeInt(this.topStacks.size());
for (ItemStack stack : this.topStacks)
{
ByteBufUtils.writeItemStack(buf, stack);
}
}
public static class Handler implements IMessageHandler<MessageCrystalChestSync, IMessage>
{
@Override
public IMessage onMessage(MessageCrystalChestSync message, MessageContext ctx)
{
World world = IronChest.proxy.getClientWorld();
if (world != null)
{
TileEntity tile = world.getTileEntity(message.pos);
if (tile instanceof TileEntityIronChest)
((TileEntityIronChest) tile).receiveMessageFromServer(message.topStacks);
}
return null;
}
}
}

View File

@ -0,0 +1,93 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.network;
import cpw.mods.ironchest.IronChest;
import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox;
import io.netty.buffer.ByteBuf;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.network.ByteBufUtils;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
public class MessageCrystalShulkerSync implements IMessage
{
int dimension;
BlockPos pos;
private NonNullList<ItemStack> topStacks;
public MessageCrystalShulkerSync(TileEntityIronShulkerBox tile, NonNullList<ItemStack> stack)
{
this.dimension = tile.getWorld().provider.getDimension();
this.pos = tile.getPos();
this.topStacks = stack;
}
public MessageCrystalShulkerSync()
{
}
@Override
public void fromBytes(ByteBuf buf)
{
this.dimension = buf.readInt();
this.pos = new BlockPos(buf.readInt(), buf.readInt(), buf.readInt());
int size = buf.readInt();
this.topStacks = NonNullList.<ItemStack> withSize(size, ItemStack.EMPTY);
for (int i = 0; i < size; i++)
{
ItemStack itemstack = ByteBufUtils.readItemStack(buf);
this.topStacks.set(i, itemstack);
}
}
@Override
public void toBytes(ByteBuf buf)
{
buf.writeInt(this.dimension);
buf.writeInt(this.pos.getX());
buf.writeInt(this.pos.getY());
buf.writeInt(this.pos.getZ());
buf.writeInt(this.topStacks.size());
for (ItemStack stack : this.topStacks)
{
ByteBufUtils.writeItemStack(buf, stack);
}
}
public static class Handler implements IMessageHandler<MessageCrystalShulkerSync, IMessage>
{
@Override
public IMessage onMessage(MessageCrystalShulkerSync message, MessageContext ctx)
{
World world = IronChest.proxy.getClientWorld();
if (world != null)
{
TileEntity tile = world.getTileEntity(message.pos);
if (tile instanceof TileEntityIronShulkerBox)
((TileEntityIronShulkerBox) tile).receiveMessageFromServer(message.topStacks);
}
return null;
}
}
}

View File

@ -8,7 +8,9 @@
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest;
package cpw.mods.ironchest.common.tileentity.chest;
import cpw.mods.ironchest.common.blocks.chest.IronChestType;
public class TileEntityCopperChest extends TileEntityIronChest
{

View File

@ -8,7 +8,9 @@
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest;
package cpw.mods.ironchest.common.tileentity.chest;
import cpw.mods.ironchest.common.blocks.chest.IronChestType;
public class TileEntityCrystalChest extends TileEntityIronChest
{

View File

@ -8,7 +8,9 @@
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest;
package cpw.mods.ironchest.common.tileentity.chest;
import cpw.mods.ironchest.common.blocks.chest.IronChestType;
public class TileEntityDiamondChest extends TileEntityIronChest
{

View File

@ -1,5 +1,6 @@
package cpw.mods.ironchest;
package cpw.mods.ironchest.common.tileentity.chest;
import cpw.mods.ironchest.common.blocks.chest.IronChestType;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
@ -15,13 +16,13 @@ public class TileEntityDirtChest extends TileEntityIronChest
static
{
dirtChest9000GuideBook.setTagInfo("author", new NBTTagString("cpw"));
dirtChest9000GuideBook.setTagInfo("title", new NBTTagString(I18n.translateToLocal("book.ironchest:dirtchest9000.title")));
dirtChest9000GuideBook.setTagInfo("title", new NBTTagString(I18n.translateToLocal("book.ironchest.dirtchest9000.title")));
NBTTagList pages = new NBTTagList();
pages.appendTag(new NBTTagString(I18n.translateToLocal("book.ironchest:dirtchest9000.page1")));
pages.appendTag(new NBTTagString(I18n.translateToLocal("book.ironchest:dirtchest9000.page2")));
pages.appendTag(new NBTTagString(I18n.translateToLocal("book.ironchest:dirtchest9000.page3")));
pages.appendTag(new NBTTagString(I18n.translateToLocal("book.ironchest:dirtchest9000.page4")));
pages.appendTag(new NBTTagString(I18n.translateToLocal("book.ironchest:dirtchest9000.page5")));
pages.appendTag(new NBTTagString(I18n.translateToLocal("book.ironchest.dirtchest9000.page1")));
pages.appendTag(new NBTTagString(I18n.translateToLocal("book.ironchest.dirtchest9000.page2")));
pages.appendTag(new NBTTagString(I18n.translateToLocal("book.ironchest.dirtchest9000.page3")));
pages.appendTag(new NBTTagString(I18n.translateToLocal("book.ironchest.dirtchest9000.page4")));
pages.appendTag(new NBTTagString(I18n.translateToLocal("book.ironchest.dirtchest9000.page5")));
dirtChest9000GuideBook.setTagInfo("pages", pages);
}

View File

@ -8,7 +8,9 @@
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest;
package cpw.mods.ironchest.common.tileentity.chest;
import cpw.mods.ironchest.common.blocks.chest.IronChestType;
public class TileEntityGoldChest extends TileEntityIronChest
{

View File

@ -8,11 +8,17 @@
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest;
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.ICContent;
import cpw.mods.ironchest.common.blocks.chest.BlockIronChest;
import cpw.mods.ironchest.common.blocks.chest.IronChestType;
import cpw.mods.ironchest.common.gui.chest.ContainerIronChest;
import cpw.mods.ironchest.common.network.MessageCrystalChestSync;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
@ -31,13 +37,14 @@ import net.minecraft.util.NonNullList;
import net.minecraft.util.SoundCategory;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraftforge.common.util.Constants;
import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint;
public class TileEntityIronChest extends TileEntityLockableLoot implements ITickable
{
/** Chest Contents */
public NonNullList<ItemStack> chestContents;
/** Crystal chest top stacks */
/** Crystal Chest top stacks */
private NonNullList<ItemStack> topStacks;
/** The current angle of the lid (between 0 and 1) */
@ -113,7 +120,7 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick
{
IBlockState state = this.world.getBlockState(this.pos);
if (state.getBlock() == IronChest.ironChestBlock)
if (state.getBlock() == ICContent.ironChestBlock)
{
type = state.getValue(BlockIronChest.VARIANT_PROP);
}
@ -163,7 +170,7 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick
{
ItemStack tempCopyStack = tempCopy.get(j);
if (ItemStack.areItemsEqual(tempCopyStack, itemStack))
if (ItemStack.areItemsEqualIgnoreDurability(tempCopyStack, itemStack))
{
if (itemStack.getCount() != tempCopyStack.getCount())
{
@ -250,6 +257,8 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick
this.world.notifyBlockUpdate(this.pos, iblockstate, iblockstate, 3);
}
sendTopStacksPacket();
}
@Override
@ -338,15 +347,17 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick
public void update()
{
// Resynchronizes clients with the server state
if (this.world != null && !this.world.isRemote && this.numPlayersUsing != 0
&& (this.ticksSinceSync + this.pos.getX() + this.pos.getY() + this.pos.getZ()) % 200 == 0)
//@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
{
this.numPlayersUsing = 0;
float f = 5.0F;
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: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
{
if (player.openContainer instanceof ContainerIronChest)
{
@ -357,7 +368,7 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick
if (this.world != null && !this.world.isRemote && this.ticksSinceSync < 0)
{
this.world.addBlockEvent(this.pos, IronChest.ironChestBlock, 3, ((this.numPlayersUsing << 3) & 0xF8) | (this.facing.ordinal() & 0x7));
this.world.addBlockEvent(this.pos, ICContent.ironChestBlock, 3, ((this.numPlayersUsing << 3) & 0xF8) | (this.facing.ordinal() & 0x7));
}
if (!this.world.isRemote && this.inventoryTouched)
@ -455,9 +466,9 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick
++this.numPlayersUsing;
this.world.addBlockEvent(this.pos, IronChest.ironChestBlock, 1, this.numPlayersUsing);
this.world.notifyNeighborsOfStateChange(this.pos, IronChest.ironChestBlock, false);
this.world.notifyNeighborsOfStateChange(this.pos.down(), IronChest.ironChestBlock, false);
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);
}
}
@ -473,9 +484,9 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick
--this.numPlayersUsing;
this.world.addBlockEvent(this.pos, IronChest.ironChestBlock, 1, this.numPlayersUsing);
this.world.notifyNeighborsOfStateChange(this.pos, IronChest.ironChestBlock, false);
this.world.notifyNeighborsOfStateChange(this.pos.down(), IronChest.ironChestBlock, false);
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);
}
}
@ -491,10 +502,6 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick
compound.setByte("facing", (byte) this.facing.ordinal());
NonNullList<ItemStack> stacks = this.buildItemStackDataList();
ItemStackHelper.saveAllItems(compound, stacks);
return new SPacketUpdateTileEntity(this.pos, 0, compound);
}
@ -506,29 +513,6 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick
NBTTagCompound compound = pkt.getNbtCompound();
this.facing = EnumFacing.VALUES[compound.getByte("facing")];
NonNullList<ItemStack> stacks = NonNullList.<ItemStack> withSize(this.getTopItems().size(), ItemStack.EMPTY);
ItemStackHelper.loadAllItems(compound, stacks);
if (this.getType().isTransparent())
{
int pos = 0;
for (int i = 0; i < this.getTopItems().size(); i++)
{
if (!stacks.get(pos).isEmpty())
{
this.getTopItems().set(i, stacks.get(pos));
}
else
{
this.getTopItems().set(i, ItemStack.EMPTY);
}
pos++;
}
}
}
}
@ -570,7 +554,7 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick
{
this.setFacing(this.facing.rotateY());
this.world.addBlockEvent(this.pos, IronChest.ironChestBlock, 2, this.facing.ordinal());
this.world.addBlockEvent(this.pos, ICContent.ironChestBlock, 2, this.facing.ordinal());
}
public void wasPlaced(EntityLivingBase entityliving, ItemStack stack)
@ -592,7 +576,7 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick
@Override
public String getGuiID()
{
return "IronChest:" + this.getType().name();
return "IronChest:" + this.getType().name() + "_chest";
}
@Override
@ -608,7 +592,7 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick
}
@Override
protected NonNullList<ItemStack> getItems()
public NonNullList<ItemStack> getItems()
{
return this.chestContents;
}
@ -631,4 +615,17 @@ public class TileEntityIronChest extends TileEntityLockableLoot implements ITick
return true;
}
protected void sendTopStacksPacket()
{
NonNullList<ItemStack> 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<ItemStack> topStacks)
{
this.topStacks = topStacks;
}
}

View File

@ -1,4 +1,6 @@
package cpw.mods.ironchest;
package cpw.mods.ironchest.common.tileentity.chest;
import cpw.mods.ironchest.common.blocks.chest.IronChestType;
public class TileEntityObsidianChest extends TileEntityIronChest
{

View File

@ -8,7 +8,9 @@
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest;
package cpw.mods.ironchest.common.tileentity.chest;
import cpw.mods.ironchest.common.blocks.chest.IronChestType;
public class TileEntitySilverChest extends TileEntityIronChest
{

View File

@ -0,0 +1,29 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.tileentity.shulker;
import javax.annotation.Nullable;
import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType;
import net.minecraft.item.EnumDyeColor;
public class TileEntityCopperShulkerBox extends TileEntityIronShulkerBox
{
public TileEntityCopperShulkerBox()
{
this(null);
}
public TileEntityCopperShulkerBox(@Nullable EnumDyeColor colorIn)
{
super(colorIn, IronShulkerBoxType.COPPER);
}
}

View File

@ -0,0 +1,29 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.tileentity.shulker;
import javax.annotation.Nullable;
import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType;
import net.minecraft.item.EnumDyeColor;
public class TileEntityCrystalShulkerBox extends TileEntityIronShulkerBox
{
public TileEntityCrystalShulkerBox()
{
this(null);
}
public TileEntityCrystalShulkerBox(@Nullable EnumDyeColor colorIn)
{
super(colorIn, IronShulkerBoxType.CRYSTAL);
}
}

View File

@ -0,0 +1,29 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.tileentity.shulker;
import javax.annotation.Nullable;
import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType;
import net.minecraft.item.EnumDyeColor;
public class TileEntityDiamondShulkerBox extends TileEntityIronShulkerBox
{
public TileEntityDiamondShulkerBox()
{
this(null);
}
public TileEntityDiamondShulkerBox(@Nullable EnumDyeColor colorIn)
{
super(colorIn, IronShulkerBoxType.DIAMOND);
}
}

View File

@ -0,0 +1,29 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.tileentity.shulker;
import javax.annotation.Nullable;
import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType;
import net.minecraft.item.EnumDyeColor;
public class TileEntityGoldShulkerBox extends TileEntityIronShulkerBox
{
public TileEntityGoldShulkerBox()
{
this(null);
}
public TileEntityGoldShulkerBox(@Nullable EnumDyeColor colorIn)
{
super(colorIn, IronShulkerBoxType.GOLD);
}
}

View File

@ -0,0 +1,795 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
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.network.MessageCrystalShulkerSync;
import net.minecraft.block.Block;
import net.minecraft.block.BlockShulkerBox;
import net.minecraft.block.material.EnumPushReaction;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
import net.minecraft.entity.MoverType;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.init.SoundEvents;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.inventory.ItemStackHelper;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.play.server.SPacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntityLockableLoot;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.ITickable;
import net.minecraft.util.NonNullList;
import net.minecraft.util.SoundCategory;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements ITickable, ISidedInventory
{
private final int[] SLOTS;
/** Shulker Box Contents */
private NonNullList<ItemStack> items;
/** Crystal Shulker Boxes top stacks */
private NonNullList<ItemStack> 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;
private AnimationStatus animationStatus;
private float progress;
private float progressOld;
private EnumDyeColor color;
private boolean destroyedByCreativePlayer;
private boolean hasBeenUpgraded;
/** The Variant of the Shulker Box (Not Color) */
private IronShulkerBoxType shulkerBoxType;
public TileEntityIronShulkerBox()
{
this(null);
}
public TileEntityIronShulkerBox(@Nullable EnumDyeColor colorIn)
{
this(colorIn, IronShulkerBoxType.IRON);
}
public TileEntityIronShulkerBox(@Nullable EnumDyeColor colorIn, IronShulkerBoxType typeIn)
{
super();
this.shulkerBoxType = typeIn;
this.SLOTS = new int[typeIn.size];
this.items = NonNullList.<ItemStack> withSize(typeIn.size, ItemStack.EMPTY);
this.topStacks = NonNullList.<ItemStack> withSize(8, ItemStack.EMPTY);
this.animationStatus = AnimationStatus.CLOSED;
this.color = colorIn;
this.facing = EnumFacing.UP;
this.hasBeenUpgraded = false;
}
public void setContents(NonNullList<ItemStack> contents)
{
this.items = NonNullList.<ItemStack> withSize(this.getType().size, ItemStack.EMPTY);
for (int i = 0; i < contents.size(); i++)
{
if (i < this.items.size())
{
this.getItems().set(i, contents.get(i));
}
}
this.inventoryTouched = true;
}
@Override
public int getSizeInventory()
{
return this.getItems().size();
}
public EnumFacing getFacing()
{
return this.facing;
}
public IronShulkerBoxType getType()
{
IronShulkerBoxType type = IronShulkerBoxType.IRON;
if (this.hasWorld())
{
IBlockState state = this.world.getBlockState(this.pos);
if (state.getBlock() instanceof BlockIronShulkerBox)
{
type = state.getValue(BlockIronShulkerBox.VARIANT_PROP);
}
}
return type;
}
@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();
}
protected void sortTopStacks()
{
if (!this.getType().isTransparent() || (this.world != null && this.world.isRemote))
{
return;
}
NonNullList<ItemStack> tempCopy = NonNullList.<ItemStack> 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<ItemStack>() {
@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();
}
/**
* Get the name of this object. For players this returns their username
*/
@Override
public String getName()
{
return this.hasCustomName() ? this.customName : this.getType().name();
}
@Override
public void readFromNBT(NBTTagCompound compound)
{
super.readFromNBT(compound);
this.loadFromNbt(compound);
}
@Override
public NBTTagCompound writeToNBT(NBTTagCompound compound)
{
super.writeToNBT(compound);
return this.saveToNbt(compound);
}
public void loadFromNbt(NBTTagCompound compound)
{
this.items = NonNullList.<ItemStack> withSize(this.getSizeInventory(), ItemStack.EMPTY);
if (!this.checkLootAndRead(compound) && compound.hasKey("Items", 9))
{
ItemStackHelper.loadAllItems(compound, this.items);
}
if (compound.hasKey("CustomName", 8))
{
this.customName = compound.getString("CustomName");
}
this.facing = EnumFacing.VALUES[compound.getByte("facing")];
this.sortTopStacks();
}
public NBTTagCompound saveToNbt(NBTTagCompound compound)
{
if (!this.checkLootAndWrite(compound))
{
ItemStackHelper.saveAllItems(compound, this.items, false);
}
compound.setInteger("ShulkerBoxSize", this.getSizeInventory());
compound.setByte("facing", (byte) this.facing.ordinal());
if (this.hasCustomName())
{
compound.setString("CustomName", this.customName);
}
if (!compound.hasKey("Lock") && this.isLocked())
{
this.getLockCode().toNBT(compound);
}
return compound;
}
/**
* Returns the maximum stack size for a inventory slot. Seems to always be 64, possibly will be extended.
*/
@Override
public int getInventoryStackLimit()
{
return 64;
}
/**
* Like the old updateEntity(), except more generic.
*/
@Override
public void update()
{
this.updateAnimation();
if (this.animationStatus == AnimationStatus.OPENING || this.animationStatus == AnimationStatus.CLOSING)
{
this.moveCollidedEntities();
}
if (this.world != null && !this.world.isRemote && this.ticksSinceSync < 0)
{
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++;
}
protected void updateAnimation()
{
this.progressOld = this.progress;
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;
this.progress = 0.0F;
}
break;
case OPENED:
this.progress = 1.0F;
}
}
public AnimationStatus getAnimationStatus()
{
return this.animationStatus;
}
public AxisAlignedBB getBoundingBox()
{
return this.getBoundingBox(this.getFacing());
}
public AxisAlignedBB getBoundingBox(EnumFacing facing)
{
//@formatter:off
return Block.FULL_BLOCK_AABB.addCoord(0.5F * this.getProgress(1.0F) * facing.getFrontOffsetX(), 0.5F * this.getProgress(1.0F) * facing.getFrontOffsetY(), 0.5F * this.getProgress(1.0F) * facing.getFrontOffsetZ());
//@formatter:on
}
private AxisAlignedBB getTopBoundingBox(EnumFacing facing)
{
EnumFacing enumfacing = facing.getOpposite();
return this.getBoundingBox(facing).contract(enumfacing.getFrontOffsetX(), enumfacing.getFrontOffsetY(), enumfacing.getFrontOffsetZ());
}
private void moveCollidedEntities()
{
IBlockState iblockstate = this.world.getBlockState(this.getPos());
if (iblockstate.getBlock() instanceof BlockIronShulkerBox)
{
EnumFacing enumfacing = this.getFacing();
AxisAlignedBB axisalignedbb = this.getTopBoundingBox(enumfacing).offset(this.pos);
List<Entity> list = this.world.getEntitiesWithinAABBExcludingEntity((Entity) null, axisalignedbb);
if (!list.isEmpty())
{
for (int i = 0; i < list.size(); ++i)
{
Entity entity = list.get(i);
if (entity.getPushReaction() != EnumPushReaction.IGNORE)
{
double d0 = 0.0D;
double d1 = 0.0D;
double d2 = 0.0D;
AxisAlignedBB axisalignedbb1 = entity.getEntityBoundingBox();
switch (enumfacing.getAxis())
{
case X:
if (enumfacing.getAxisDirection() == EnumFacing.AxisDirection.POSITIVE)
{
d0 = axisalignedbb.maxX - axisalignedbb1.minX;
}
else
{
d0 = axisalignedbb1.maxX - axisalignedbb.minX;
}
d0 = d0 + 0.01D;
break;
case Y:
if (enumfacing.getAxisDirection() == EnumFacing.AxisDirection.POSITIVE)
{
d1 = axisalignedbb.maxY - axisalignedbb1.minY;
}
else
{
d1 = axisalignedbb1.maxY - axisalignedbb.minY;
}
d1 = d1 + 0.01D;
break;
case Z:
if (enumfacing.getAxisDirection() == EnumFacing.AxisDirection.POSITIVE)
{
d2 = axisalignedbb.maxZ - axisalignedbb1.minZ;
}
else
{
d2 = axisalignedbb1.maxZ - axisalignedbb.minZ;
}
d2 = d2 + 0.01D;
}
//@formatter:off
entity.move(MoverType.SHULKER_BOX, d0 * enumfacing.getFrontOffsetX(), d1 * enumfacing.getFrontOffsetY(), d2 * enumfacing.getFrontOffsetZ());
//@formatter:on
}
}
}
}
}
@Override
public boolean receiveClientEvent(int id, int type)
{
if (id == 1)
{
this.openCount = type;
if (type == 0)
{
this.animationStatus = AnimationStatus.CLOSING;
}
if (type == 1)
{
this.animationStatus = AnimationStatus.OPENING;
}
return true;
}
else if (id == 2)
{
this.facing = EnumFacing.VALUES[type];
return true;
}
else if (id == 3)
{
this.facing = EnumFacing.VALUES[type & 0x7];
this.openCount = (type & 0xF8) >> 3;
return true;
}
else
{
return super.receiveClientEvent(id, type);
}
}
@Override
public void openInventory(EntityPlayer player)
{
if (!player.isSpectator())
{
if (this.openCount < 0)
{
this.openCount = 0;
}
++this.openCount;
this.world.addBlockEvent(this.pos, this.getBlockType(), 1, this.openCount);
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
}
}
}
@Override
public void closeInventory(EntityPlayer player)
{
if (!player.isSpectator())
{
--this.openCount;
this.world.addBlockEvent(this.pos, this.getBlockType(), 1, this.openCount);
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
}
}
}
public void setFacing(EnumFacing facing)
{
this.facing = facing;
}
@Override
@Nullable
public SPacketUpdateTileEntity getUpdatePacket()
{
NBTTagCompound compound = new NBTTagCompound();
compound.setByte("facing", (byte) this.facing.ordinal());
return new SPacketUpdateTileEntity(this.pos, 0, compound);
}
@Override
public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt)
{
if (pkt.getTileEntityType() == 0)
{
NBTTagCompound compound = pkt.getNbtCompound();
this.facing = EnumFacing.VALUES[compound.getByte("facing")];
}
}
public NonNullList<ItemStack> buildItemStackDataList()
{
if (this.getType().isTransparent())
{
NonNullList<ItemStack> sortList = NonNullList.<ItemStack> 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.<ItemStack> withSize(this.getTopItems().size(), ItemStack.EMPTY);
}
@Override
public Container createContainer(InventoryPlayer playerInventory, EntityPlayer playerIn)
{
this.fillWithLoot(playerIn);
return new ContainerIronShulkerBox(playerInventory, this, this.shulkerBoxType, this.shulkerBoxType.xSize, this.shulkerBoxType.ySize);
}
@Override
public String getGuiID()
{
return "IronChest:" + this.getType().name() + "_shulker_box";
}
@Override
public boolean canRenderBreaking()
{
return true;
}
@Override
public NBTTagCompound getUpdateTag()
{
return this.writeToNBT(new NBTTagCompound());
}
@Override
public NonNullList<ItemStack> getItems()
{
return this.items;
}
public NonNullList<ItemStack> getTopItems()
{
return this.topStacks;
}
@Override
public boolean isEmpty()
{
for (ItemStack itemstack : this.items)
{
if (!itemstack.isEmpty())
{
return false;
}
}
return true;
}
@Override
public int[] getSlotsForFace(EnumFacing side)
{
return SLOTS;
}
/**
* Returns true if automation can insert the given item in the given slot from the given side.
*/
@Override
public boolean canInsertItem(int index, ItemStack itemStackIn, EnumFacing direction)
{
//@formatter:off
return !(Block.getBlockFromItem(itemStackIn.getItem()) instanceof BlockIronShulkerBox) && !(Block.getBlockFromItem(itemStackIn.getItem()) instanceof BlockShulkerBox);
//@formatter:on
}
/**
* Returns true if automation can extract the given item in the given slot from the given side.
*/
@Override
public boolean canExtractItem(int index, ItemStack stack, EnumFacing direction)
{
return true;
}
@Override
public void clear()
{
this.hasBeenCleared = true;
super.clear();
}
public boolean isCleared()
{
return this.hasBeenCleared;
}
public void setHasBeenUpgraded()
{
this.hasBeenUpgraded = true;
}
public boolean beenUpgraded()
{
return this.hasBeenUpgraded;
}
public float getProgress(float partialTicks)
{
return this.progressOld + (this.progress - this.progressOld) * partialTicks;
}
@SideOnly(Side.CLIENT)
public EnumDyeColor getColor()
{
if (this.color == null)
{
this.color = BlockIronShulkerBox.getColorFromBlock(this.getBlockType());
}
return this.color;
}
public boolean isDestroyedByCreativePlayer()
{
return this.destroyedByCreativePlayer;
}
public void setDestroyedByCreativePlayer(boolean destoryedByCreativeUser)
{
this.destroyedByCreativePlayer = destoryedByCreativeUser;
}
public boolean shouldDrop()
{
return !this.isDestroyedByCreativePlayer() || !this.isEmpty() || this.hasCustomName() || this.lootTable != null;
}
protected void sendTopStacksPacket()
{
NonNullList<ItemStack> 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<ItemStack> topStacks)
{
this.topStacks = topStacks;
}
public static enum AnimationStatus
{
CLOSED, OPENING, OPENED, CLOSING;
}
}

View File

@ -0,0 +1,29 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.tileentity.shulker;
import javax.annotation.Nullable;
import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType;
import net.minecraft.item.EnumDyeColor;
public class TileEntityObsidianShulkerBox extends TileEntityIronShulkerBox
{
public TileEntityObsidianShulkerBox()
{
this(null);
}
public TileEntityObsidianShulkerBox(@Nullable EnumDyeColor colorIn)
{
super(colorIn, IronShulkerBoxType.OBSIDIAN);
}
}

View File

@ -0,0 +1,29 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.tileentity.shulker;
import javax.annotation.Nullable;
import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType;
import net.minecraft.item.EnumDyeColor;
public class TileEntitySilverShulkerBox extends TileEntityIronShulkerBox
{
public TileEntitySilverShulkerBox()
{
this(null);
}
public TileEntitySilverShulkerBox(@Nullable EnumDyeColor colorIn)
{
super(colorIn, IronShulkerBoxType.SILVER);
}
}

View File

@ -0,0 +1,64 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.util;
import cpw.mods.ironchest.common.blocks.shulker.BlockIronShulkerBox;
import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType;
import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox;
import net.minecraft.block.Block;
import net.minecraft.block.BlockDispenser;
import net.minecraft.block.state.IBlockState;
import net.minecraft.dispenser.IBlockSource;
import net.minecraft.entity.Entity;
import net.minecraft.init.Bootstrap.BehaviorDispenseOptional;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
public class BehaviorDispenseIronShulkerBox extends BehaviorDispenseOptional
{
@Override
protected ItemStack dispenseStack(IBlockSource source, ItemStack stack)
{
Block block = Block.getBlockFromItem(stack.getItem());
World world = source.getWorld();
EnumFacing enumfacing = source.getBlockState().getValue(BlockDispenser.FACING);
BlockPos blockpos = source.getBlockPos().offset(enumfacing);
this.successful = world.mayPlace(block, blockpos, false, EnumFacing.DOWN, (Entity) null);
if (this.successful)
{
EnumFacing enumfacing1 = world.isAirBlock(blockpos.down()) ? enumfacing : EnumFacing.UP;
IBlockState iblockstate = block.getDefaultState().withProperty(BlockIronShulkerBox.VARIANT_PROP, IronShulkerBoxType.VALUES[stack.getMetadata()]);
world.setBlockState(blockpos, iblockstate);
TileEntity tileentity = world.getTileEntity(blockpos);
ItemStack itemstack = stack.splitStack(1);
((TileEntityIronShulkerBox) tileentity).setFacing(enumfacing1);
if (itemstack.hasTagCompound())
{
((TileEntityIronShulkerBox) tileentity).loadFromNbt(itemstack.getTagCompound().getCompoundTag("BlockEntityTag"));
}
if (itemstack.hasDisplayName())
{
((TileEntityIronShulkerBox) tileentity).setCustomName(itemstack.getDisplayName());
}
world.updateComparatorOutputLevel(blockpos, iblockstate.getBlock());
}
return stack;
}
}

View File

@ -0,0 +1,55 @@
/*******************************************************************************
* 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
* <p>
* 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;
}
}

View File

@ -0,0 +1,71 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.util;
import java.util.List;
import com.google.common.collect.Lists;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.util.text.translation.I18n;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@SuppressWarnings("deprecation")
public class ItemTooltip extends Item
{
@Override
@SideOnly(Side.CLIENT)
public void addInformation(ItemStack stack, EntityPlayer playerIn, List<String> tooltip, boolean advanced)
{
addOptionalTooltip(stack, tooltip);
super.addInformation(stack, playerIn, tooltip, advanced);
}
public static void addOptionalTooltip(ItemStack stack, List<String> tooltip)
{
if (I18n.canTranslate(stack.getUnlocalizedName() + ".tooltip"))
{
tooltip.addAll(getTooltips(TextFormatting.GRAY.toString() + translateRecursive(stack.getUnlocalizedName() + ".tooltip")));
}
else if (I18n.canTranslate(stack.getUnlocalizedName() + ".tooltip"))
{
tooltip.addAll(getTooltips(TextFormatting.GRAY.toString() + translateRecursive(stack.getUnlocalizedName() + ".tooltip")));
}
}
public static String translateRecursive(String key, Object... params)
{
return I18n.translateToLocal(I18n.translateToLocalFormatted(key, params));
}
public static List<String> getTooltips(String text)
{
List<String> list = Lists.newLinkedList();
if (text == null)
return list;
int j = 0;
int k;
while ((k = text.indexOf("\\n", j)) >= 0)
{
list.add(text.substring(j, k));
j = k + 2;
}
list.add(text.substring(j, text.length()));
return list;
}
}

View File

@ -0,0 +1,190 @@
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.util;
import javax.annotation.Nonnull;
import cpw.mods.ironchest.IronChest;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.common.event.FMLMissingMappingsEvent;
import net.minecraftforge.fml.common.event.FMLMissingMappingsEvent.MissingMapping;
import net.minecraftforge.fml.common.registry.ForgeRegistries;
import net.minecraftforge.fml.common.registry.GameRegistry;
public class MissingMappingsHandler
{
public static void onMissingMappings(FMLMissingMappingsEvent event)
{
for (MissingMapping mapping : event.get())
{
if (mapping.resourceLocation.getResourceDomain().equals(IronChest.MOD_ID))
{
@Nonnull
String path = mapping.resourceLocation.getResourcePath();
replaceOldChest(path, mapping);
replaceOldUpgrades(path, mapping);
replaceNewUpgrades(path, mapping);
}
}
}
private static void replaceOldChest(String path, MissingMapping mapping)
{
if (path.endsWith("blockironchest"))
{
path = path.replace("blockironchest", "iron_chest");
ResourceLocation newRes = new ResourceLocation(mapping.resourceLocation.getResourceDomain(), path);
Block block = ForgeRegistries.BLOCKS.getValue(newRes);
if (block != null)
{
if (mapping.type == GameRegistry.Type.BLOCK)
{
mapping.remap(block);
}
else
{
mapping.remap(Item.getItemFromBlock(block));
}
}
}
}
private static void replaceOldUpgrades(String path, MissingMapping mapping)
{
if (path.endsWith("irongoldupgrade"))
{
path = path.replace("irongoldupgrade", "iron_gold_chest_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("golddiamondupgrade"))
{
path = path.replace("golddiamondupgrade", "gold_diamond_chest_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("coppersilverupgrade"))
{
path = path.replace("coppersilverupgrade", "copper_silver_chest_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("silvergoldupgrade"))
{
path = path.replace("silvergoldupgrade", "silver_gold_chest_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("copperironupgrade"))
{
path = path.replace("copperironupgrade", "copper_iron_chest_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("diamondcrystalupgrade"))
{
path = path.replace("diamondcrystalupgrade", "diamond_crystal_chest_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("woodironupgrade"))
{
path = path.replace("woodironupgrade", "wood_iron_chest_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("woodcopperupgrade"))
{
path = path.replace("woodcopperupgrade", "wood_copper_chest_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("diamondobsidianupgrade"))
{
path = path.replace("diamondobsidianupgrade", "diamond_obsidian_chest_upgrade");
replaceUpgradeItem(path, mapping);
}
}
private static void replaceNewUpgrades(String path, MissingMapping mapping)
{
if (path.endsWith("iron_gold_upgrade"))
{
path = path.replace("iron_gold_upgrade", "iron_gold_chest_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("gold_diamond_upgrade"))
{
path = path.replace("gold_diamond_upgrade", "gold_diamond_chest_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("copper_silver_upgrade"))
{
path = path.replace("copper_silver_upgrade", "copper_silver_chest_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("silver_gold_upgrade"))
{
path = path.replace("silver_gold_upgrade", "silver_gold_chest_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("copper_iron_upgrade"))
{
path = path.replace("copper_iron_upgrade", "copper_iron_chest_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("diamond_crystal_upgrade"))
{
path = path.replace("diamond_crystal_upgrade", "diamond_crystal_chest_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("wood_iron_upgrade"))
{
path = path.replace("wood_iron_upgrade", "wood_iron_chest_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("wood_copper_upgrade"))
{
path = path.replace("wood_copper_upgrade", "wood_copper_chest_upgrade");
replaceUpgradeItem(path, mapping);
}
if (path.endsWith("diamond_obsidian_upgrade"))
{
path = path.replace("diamond_obsidian_upgrade", "diamond_obsidian_chest_upgrade");
replaceUpgradeItem(path, mapping);
}
}
private static void replaceUpgradeItem(String path, MissingMapping mapping)
{
ResourceLocation newRes = new ResourceLocation(mapping.resourceLocation.getResourceDomain(), path);
Item item = ForgeRegistries.ITEMS.getValue(newRes);
if (item != null)
{
mapping.remap(item);
}
}
}

View File

@ -1,7 +1,18 @@
package cpw.mods.ironchest;
/*******************************************************************************
* 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
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
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;
import net.minecraft.entity.passive.EntityOcelot;

View File

@ -9,49 +9,49 @@
"iron": {
"textures": {
"particle": "ironchest:blocks/iron_break",
"texture": "ironchest:model/iron_chest"
"texture": "ironchest:model/chest/iron_chest"
}
},
"gold": {
"textures": {
"particle": "ironchest:blocks/gold_break",
"texture": "ironchest:model/gold_chest"
"texture": "ironchest:model/chest/gold_chest"
}
},
"diamond": {
"textures": {
"particle": "ironchest:blocks/diamond_break",
"texture": "ironchest:model/diamond_chest"
"texture": "ironchest:model/chest/diamond_chest"
}
},
"copper": {
"textures": {
"particle": "ironchest:blocks/copper_break",
"texture": "ironchest:model/copper_chest"
"texture": "ironchest:model/chest/copper_chest"
}
},
"silver": {
"textures": {
"particle": "ironchest:blocks/silver_break",
"texture": "ironchest:model/silver_chest"
"texture": "ironchest:model/chest/silver_chest"
}
},
"crystal": {
"textures": {
"particle": "ironchest:blocks/crystal_break",
"texture": "ironchest:model/crystal_chest"
"texture": "ironchest:model/chest/crystal_chest"
}
},
"obsidian": {
"textures": {
"particle": "minecraft:blocks/obsidian",
"texture": "ironchest:model/obsidian_chest"
"texture": "ironchest:model/chest/obsidian_chest"
}
},
"dirtchest9000": {
"textures": {
"particle": "minecraft:blocks/dirt",
"texture": "ironchest:model/dirt_chest"
"texture": "ironchest:model/chest/dirt_chest"
}
},
"wood": {

View File

@ -6,49 +6,49 @@
},
"variants": {
"variant": {
"copper_silver_upgrade": {
"copper_silver_chest_upgrade": {
"textures": {
"layer0": "ironchest:items/copper_silver_upgrade"
"layer0": "ironchest:items/chest/copper_silver_upgrade"
}
},
"diamond_crystal_upgrade": {
"diamond_crystal_chest_upgrade": {
"textures": {
"layer0": "ironchest:items/diamond_crystal_upgrade"
"layer0": "ironchest:items/chest/diamond_crystal_upgrade"
}
},
"diamond_obsidian_upgrade": {
"diamond_obsidian_chest_upgrade": {
"textures": {
"layer0": "ironchest:items/diamond_obsidian_upgrade"
"layer0": "ironchest:items/chest/diamond_obsidian_upgrade"
}
},
"gold_diamond_upgrade": {
"gold_diamond_chest_upgrade": {
"textures": {
"layer0": "ironchest:items/gold_diamond_upgrade"
"layer0": "ironchest:items/chest/gold_diamond_upgrade"
}
},
"iron_gold_upgrade": {
"iron_gold_chest_upgrade": {
"textures": {
"layer0": "ironchest:items/iron_gold_upgrade"
"layer0": "ironchest:items/chest/iron_gold_upgrade"
}
},
"silver_gold_upgrade": {
"silver_gold_chest_upgrade": {
"textures": {
"layer0": "ironchest:items/silver_gold_upgrade"
"layer0": "ironchest:items/chest/silver_gold_upgrade"
}
},
"wood_copper_upgrade": {
"wood_copper_chest_upgrade": {
"textures": {
"layer0": "ironchest:items/wood_copper_upgrade"
"layer0": "ironchest:items/chest/wood_copper_upgrade"
}
},
"wood_iron_upgrade": {
"wood_iron_chest_upgrade": {
"textures": {
"layer0": "ironchest:items/wood_iron_upgrade"
"layer0": "ironchest:items/chest/wood_iron_upgrade"
}
},
"copper_iron_upgrade": {
"copper_iron_chest_upgrade": {
"textures": {
"layer0": "ironchest:items/copper_iron_upgrade"
"layer0": "ironchest:items/chest/copper_iron_upgrade"
}
}
}

View File

@ -0,0 +1,59 @@
{
"forge_marker":1,
"defaults":{
"model":"ironchest:iron_shulker_box",
"transform":"forge:default-block"
},
"variants":{
"variant":{
"iron":{
"textures":{
"particle":"ironchest:blocks/iron_break",
"texture":"ironchest:model/shulker/black/shulker_black_iron"
}
},
"gold":{
"textures":{
"particle":"ironchest:blocks/gold_break",
"texture":"ironchest:model/shulker/black/shulker_black_gold"
}
},
"diamond":{
"textures":{
"particle":"ironchest:blocks/diamond_break",
"texture":"ironchest:model/shulker/black/shulker_black_diamond"
}
},
"copper":{
"textures":{
"particle":"ironchest:blocks/copper_break",
"texture":"ironchest:model/shulker/black/shulker_black_copper"
}
},
"silver":{
"textures":{
"particle":"ironchest:blocks/silver_break",
"texture":"ironchest:model/shulker/black/shulker_black_silver"
}
},
"crystal":{
"textures":{
"particle":"ironchest:blocks/crystal_break",
"texture":"ironchest:model/shulker/black/shulker_black_crystal"
}
},
"obsidian":{
"textures":{
"particle":"minecraft:blocks/obsidian",
"texture":"ironchest:model/shulker/black/shulker_black_obsidian"
}
},
"vanilla":{
"textures":{
"particle":"minecraft:blocks/shulker_top_black",
"texture":"minecraft:entity/shulker/shulker_black"
}
}
}
}
}

View File

@ -0,0 +1,59 @@
{
"forge_marker":1,
"defaults":{
"model":"ironchest:iron_shulker_box",
"transform":"forge:default-block"
},
"variants":{
"variant":{
"iron":{
"textures":{
"particle":"ironchest:blocks/iron_break",
"texture":"ironchest:model/shulker/blue/shulker_blue_iron"
}
},
"gold":{
"textures":{
"particle":"ironchest:blocks/gold_break",
"texture":"ironchest:model/shulker/blue/shulker_blue_gold"
}
},
"diamond":{
"textures":{
"particle":"ironchest:blocks/diamond_break",
"texture":"ironchest:model/shulker/blue/shulker_blue_diamond"
}
},
"copper":{
"textures":{
"particle":"ironchest:blocks/copper_break",
"texture":"ironchest:model/shulker/blue/shulker_blue_copper"
}
},
"silver":{
"textures":{
"particle":"ironchest:blocks/silver_break",
"texture":"ironchest:model/shulker/blue/shulker_blue_silver"
}
},
"crystal":{
"textures":{
"particle":"ironchest:blocks/crystal_break",
"texture":"ironchest:model/shulker/blue/shulker_blue_crystal"
}
},
"obsidian":{
"textures":{
"particle":"minecraft:blocks/obsidian",
"texture":"ironchest:model/shulker/blue/shulker_blue_obsidian"
}
},
"vanilla":{
"textures":{
"particle":"minecraft:blocks/shulker_top_blue",
"texture":"minecraft:entity/shulker/shulker_blue"
}
}
}
}
}

View File

@ -0,0 +1,59 @@
{
"forge_marker":1,
"defaults":{
"model":"ironchest:iron_shulker_box",
"transform":"forge:default-block"
},
"variants":{
"variant":{
"iron":{
"textures":{
"particle":"ironchest:blocks/iron_break",
"texture":"ironchest:model/shulker/brown/shulker_brown_iron"
}
},
"gold":{
"textures":{
"particle":"ironchest:blocks/gold_break",
"texture":"ironchest:model/shulker/brown/shulker_brown_gold"
}
},
"diamond":{
"textures":{
"particle":"ironchest:blocks/diamond_break",
"texture":"ironchest:model/shulker/brown/shulker_brown_diamond"
}
},
"copper":{
"textures":{
"particle":"ironchest:blocks/copper_break",
"texture":"ironchest:model/shulker/brown/shulker_brown_copper"
}
},
"silver":{
"textures":{
"particle":"ironchest:blocks/silver_break",
"texture":"ironchest:model/shulker/brown/shulker_brown_silver"
}
},
"crystal":{
"textures":{
"particle":"ironchest:blocks/crystal_break",
"texture":"ironchest:model/shulker/brown/shulker_brown_crystal"
}
},
"obsidian":{
"textures":{
"particle":"minecraft:blocks/obsidian",
"texture":"ironchest:model/shulker/brown/shulker_brown_obsidian"
}
},
"vanilla":{
"textures":{
"particle":"minecraft:blocks/shulker_top_brown",
"texture":"minecraft:entity/shulker/shulker_brown"
}
}
}
}
}

View File

@ -0,0 +1,59 @@
{
"forge_marker":1,
"defaults":{
"model":"ironchest:iron_shulker_box",
"transform":"forge:default-block"
},
"variants":{
"variant":{
"iron":{
"textures":{
"particle":"ironchest:blocks/iron_break",
"texture":"ironchest:model/shulker/cyan/shulker_cyan_iron"
}
},
"gold":{
"textures":{
"particle":"ironchest:blocks/gold_break",
"texture":"ironchest:model/shulker/cyan/shulker_cyan_gold"
}
},
"diamond":{
"textures":{
"particle":"ironchest:blocks/diamond_break",
"texture":"ironchest:model/shulker/cyan/shulker_cyan_diamond"
}
},
"copper":{
"textures":{
"particle":"ironchest:blocks/copper_break",
"texture":"ironchest:model/shulker/cyan/shulker_cyan_copper"
}
},
"silver":{
"textures":{
"particle":"ironchest:blocks/silver_break",
"texture":"ironchest:model/shulker/cyan/shulker_cyan_silver"
}
},
"crystal":{
"textures":{
"particle":"ironchest:blocks/crystal_break",
"texture":"ironchest:model/shulker/cyan/shulker_cyan_crystal"
}
},
"obsidian":{
"textures":{
"particle":"minecraft:blocks/obsidian",
"texture":"ironchest:model/shulker/cyan/shulker_cyan_obsidian"
}
},
"vanilla":{
"textures":{
"particle":"minecraft:blocks/shulker_top_cyan",
"texture":"minecraft:entity/shulker/shulker_cyan"
}
}
}
}
}

View File

@ -0,0 +1,59 @@
{
"forge_marker":1,
"defaults":{
"model":"ironchest:iron_shulker_box",
"transform":"forge:default-block"
},
"variants":{
"variant":{
"iron":{
"textures":{
"particle":"ironchest:blocks/iron_break",
"texture":"ironchest:model/shulker/gray/shulker_gray_iron"
}
},
"gold":{
"textures":{
"particle":"ironchest:blocks/gold_break",
"texture":"ironchest:model/shulker/gray/shulker_gray_gold"
}
},
"diamond":{
"textures":{
"particle":"ironchest:blocks/diamond_break",
"texture":"ironchest:model/shulker/gray/shulker_gray_diamond"
}
},
"copper":{
"textures":{
"particle":"ironchest:blocks/copper_break",
"texture":"ironchest:model/shulker/gray/shulker_gray_copper"
}
},
"silver":{
"textures":{
"particle":"ironchest:blocks/silver_break",
"texture":"ironchest:model/shulker/gray/shulker_gray_silver"
}
},
"crystal":{
"textures":{
"particle":"ironchest:blocks/crystal_break",
"texture":"ironchest:model/shulker/gray/shulker_gray_crystal"
}
},
"obsidian":{
"textures":{
"particle":"minecraft:blocks/obsidian",
"texture":"ironchest:model/shulker/gray/shulker_gray_obsidian"
}
},
"vanilla":{
"textures":{
"particle":"minecraft:blocks/shulker_top_gray",
"texture":"minecraft:entity/shulker/shulker_gray"
}
}
}
}
}

View File

@ -0,0 +1,59 @@
{
"forge_marker":1,
"defaults":{
"model":"ironchest:iron_shulker_box",
"transform":"forge:default-block"
},
"variants":{
"variant":{
"iron":{
"textures":{
"particle":"ironchest:blocks/iron_break",
"texture":"ironchest:model/shulker/green/shulker_green_iron"
}
},
"gold":{
"textures":{
"particle":"ironchest:blocks/gold_break",
"texture":"ironchest:model/shulker/green/shulker_green_gold"
}
},
"diamond":{
"textures":{
"particle":"ironchest:blocks/diamond_break",
"texture":"ironchest:model/shulker/green/shulker_green_diamond"
}
},
"copper":{
"textures":{
"particle":"ironchest:blocks/copper_break",
"texture":"ironchest:model/shulker/green/shulker_green_copper"
}
},
"silver":{
"textures":{
"particle":"ironchest:blocks/silver_break",
"texture":"ironchest:model/shulker/green/shulker_green_silver"
}
},
"crystal":{
"textures":{
"particle":"ironchest:blocks/crystal_break",
"texture":"ironchest:model/shulker/green/shulker_green_crystal"
}
},
"obsidian":{
"textures":{
"particle":"minecraft:blocks/obsidian",
"texture":"ironchest:model/shulker/green/shulker_green_obsidian"
}
},
"vanilla":{
"textures":{
"particle":"minecraft:blocks/shulker_top_green",
"texture":"minecraft:entity/shulker/shulker_green"
}
}
}
}
}

View File

@ -0,0 +1,59 @@
{
"forge_marker":1,
"defaults":{
"model":"ironchest:iron_shulker_box",
"transform":"forge:default-block"
},
"variants":{
"variant":{
"iron":{
"textures":{
"particle":"ironchest:blocks/iron_break",
"texture":"ironchest:model/shulker/light_blue/shulker_light_blue_iron"
}
},
"gold":{
"textures":{
"particle":"ironchest:blocks/gold_break",
"texture":"ironchest:model/shulker/light_blue/shulker_light_blue_gold"
}
},
"diamond":{
"textures":{
"particle":"ironchest:blocks/diamond_break",
"texture":"ironchest:model/shulker/light_blue/shulker_light_blue_diamond"
}
},
"copper":{
"textures":{
"particle":"ironchest:blocks/copper_break",
"texture":"ironchest:model/shulker/light_blue/shulker_light_blue_copper"
}
},
"silver":{
"textures":{
"particle":"ironchest:blocks/silver_break",
"texture":"ironchest:model/shulker/light_blue/shulker_light_blue_silver"
}
},
"crystal":{
"textures":{
"particle":"ironchest:blocks/crystal_break",
"texture":"ironchest:model/shulker/light_blue/shulker_light_blue_crystal"
}
},
"obsidian":{
"textures":{
"particle":"minecraft:blocks/obsidian",
"texture":"ironchest:model/shulker/light_blue/shulker_light_blue_obsidian"
}
},
"vanilla":{
"textures":{
"particle":"minecraft:blocks/shulker_top_light_blue",
"texture":"minecraft:entity/shulker/shulker_light_blue"
}
}
}
}
}

View File

@ -0,0 +1,59 @@
{
"forge_marker":1,
"defaults":{
"model":"ironchest:iron_shulker_box",
"transform":"forge:default-block"
},
"variants":{
"variant":{
"iron":{
"textures":{
"particle":"ironchest:blocks/iron_break",
"texture":"ironchest:model/shulker/lime/shulker_lime_iron"
}
},
"gold":{
"textures":{
"particle":"ironchest:blocks/gold_break",
"texture":"ironchest:model/shulker/lime/shulker_lime_gold"
}
},
"diamond":{
"textures":{
"particle":"ironchest:blocks/diamond_break",
"texture":"ironchest:model/shulker/lime/shulker_lime_diamond"
}
},
"copper":{
"textures":{
"particle":"ironchest:blocks/copper_break",
"texture":"ironchest:model/shulker/lime/shulker_lime_copper"
}
},
"silver":{
"textures":{
"particle":"ironchest:blocks/silver_break",
"texture":"ironchest:model/shulker/lime/shulker_lime_silver"
}
},
"crystal":{
"textures":{
"particle":"ironchest:blocks/crystal_break",
"texture":"ironchest:model/shulker/lime/shulker_lime_crystal"
}
},
"obsidian":{
"textures":{
"particle":"minecraft:blocks/obsidian",
"texture":"ironchest:model/shulker/lime/shulker_lime_obsidian"
}
},
"vanilla":{
"textures":{
"particle":"minecraft:blocks/shulker_top_lime",
"texture":"minecraft:entity/shulker/shulker_lime"
}
}
}
}
}

View File

@ -0,0 +1,59 @@
{
"forge_marker":1,
"defaults":{
"model":"ironchest:iron_shulker_box",
"transform":"forge:default-block"
},
"variants":{
"variant":{
"iron":{
"textures":{
"particle":"ironchest:blocks/iron_break",
"texture":"ironchest:model/shulker/magenta/shulker_magenta_iron"
}
},
"gold":{
"textures":{
"particle":"ironchest:blocks/gold_break",
"texture":"ironchest:model/shulker/magenta/shulker_magenta_gold"
}
},
"diamond":{
"textures":{
"particle":"ironchest:blocks/diamond_break",
"texture":"ironchest:model/shulker/magenta/shulker_magenta_diamond"
}
},
"copper":{
"textures":{
"particle":"ironchest:blocks/copper_break",
"texture":"ironchest:model/shulker/magenta/shulker_magenta_copper"
}
},
"silver":{
"textures":{
"particle":"ironchest:blocks/silver_break",
"texture":"ironchest:model/shulker/magenta/shulker_magenta_silver"
}
},
"crystal":{
"textures":{
"particle":"ironchest:blocks/crystal_break",
"texture":"ironchest:model/shulker/magenta/shulker_magenta_crystal"
}
},
"obsidian":{
"textures":{
"particle":"minecraft:blocks/obsidian",
"texture":"ironchest:model/shulker/magenta/shulker_magenta_obsidian"
}
},
"vanilla":{
"textures":{
"particle":"minecraft:blocks/shulker_top_magenta",
"texture":"minecraft:entity/shulker/shulker_magenta"
}
}
}
}
}

View File

@ -0,0 +1,59 @@
{
"forge_marker":1,
"defaults":{
"model":"ironchest:iron_shulker_box",
"transform":"forge:default-block"
},
"variants":{
"variant":{
"iron":{
"textures":{
"particle":"ironchest:blocks/iron_break",
"texture":"ironchest:model/shulker/orange/shulker_orange_iron"
}
},
"gold":{
"textures":{
"particle":"ironchest:blocks/gold_break",
"texture":"ironchest:model/shulker/orange/shulker_orange_gold"
}
},
"diamond":{
"textures":{
"particle":"ironchest:blocks/diamond_break",
"texture":"ironchest:model/shulker/orange/shulker_orange_diamond"
}
},
"copper":{
"textures":{
"particle":"ironchest:blocks/copper_break",
"texture":"ironchest:model/shulker/orange/shulker_orange_copper"
}
},
"silver":{
"textures":{
"particle":"ironchest:blocks/silver_break",
"texture":"ironchest:model/shulker/orange/shulker_orange_silver"
}
},
"crystal":{
"textures":{
"particle":"ironchest:blocks/crystal_break",
"texture":"ironchest:model/shulker/orange/shulker_orange_crystal"
}
},
"obsidian":{
"textures":{
"particle":"minecraft:blocks/obsidian",
"texture":"ironchest:model/shulker/orange/shulker_orange_obsidian"
}
},
"vanilla":{
"textures":{
"particle":"minecraft:blocks/shulker_top_orange",
"texture":"minecraft:entity/shulker/shulker_orange"
}
}
}
}
}

View File

@ -0,0 +1,59 @@
{
"forge_marker":1,
"defaults":{
"model":"ironchest:iron_shulker_box",
"transform":"forge:default-block"
},
"variants":{
"variant":{
"iron":{
"textures":{
"particle":"ironchest:blocks/iron_break",
"texture":"ironchest:model/shulker/pink/shulker_pink_iron"
}
},
"gold":{
"textures":{
"particle":"ironchest:blocks/gold_break",
"texture":"ironchest:model/shulker/pink/shulker_pink_gold"
}
},
"diamond":{
"textures":{
"particle":"ironchest:blocks/diamond_break",
"texture":"ironchest:model/shulker/pink/shulker_pink_diamond"
}
},
"copper":{
"textures":{
"particle":"ironchest:blocks/copper_break",
"texture":"ironchest:model/shulker/pink/shulker_pink_copper"
}
},
"silver":{
"textures":{
"particle":"ironchest:blocks/silver_break",
"texture":"ironchest:model/shulker/pink/shulker_pink_silver"
}
},
"crystal":{
"textures":{
"particle":"ironchest:blocks/crystal_break",
"texture":"ironchest:model/shulker/pink/shulker_pink_crystal"
}
},
"obsidian":{
"textures":{
"particle":"minecraft:blocks/obsidian",
"texture":"ironchest:model/shulker/pink/shulker_pink_obsidian"
}
},
"vanilla":{
"textures":{
"particle":"minecraft:blocks/shulker_top_pink",
"texture":"minecraft:entity/shulker/shulker_pink"
}
}
}
}
}

View File

@ -0,0 +1,59 @@
{
"forge_marker":1,
"defaults":{
"model":"ironchest:iron_shulker_box",
"transform":"forge:default-block"
},
"variants":{
"variant":{
"iron":{
"textures":{
"particle":"ironchest:blocks/iron_break",
"texture":"ironchest:model/shulker/purple/shulker_purple_iron"
}
},
"gold":{
"textures":{
"particle":"ironchest:blocks/gold_break",
"texture":"ironchest:model/shulker/purple/shulker_purple_gold"
}
},
"diamond":{
"textures":{
"particle":"ironchest:blocks/diamond_break",
"texture":"ironchest:model/shulker/purple/shulker_purple_diamond"
}
},
"copper":{
"textures":{
"particle":"ironchest:blocks/copper_break",
"texture":"ironchest:model/shulker/purple/shulker_purple_copper"
}
},
"silver":{
"textures":{
"particle":"ironchest:blocks/silver_break",
"texture":"ironchest:model/shulker/purple/shulker_purple_silver"
}
},
"crystal":{
"textures":{
"particle":"ironchest:blocks/crystal_break",
"texture":"ironchest:model/shulker/purple/shulker_purple_crystal"
}
},
"obsidian":{
"textures":{
"particle":"minecraft:blocks/obsidian",
"texture":"ironchest:model/shulker/purple/shulker_purple_obsidian"
}
},
"vanilla":{
"textures":{
"particle":"minecraft:blocks/shulker_top_purple",
"texture":"minecraft:entity/shulker/shulker_purple"
}
}
}
}
}

View File

@ -0,0 +1,59 @@
{
"forge_marker":1,
"defaults":{
"model":"ironchest:iron_shulker_box",
"transform":"forge:default-block"
},
"variants":{
"variant":{
"iron":{
"textures":{
"particle":"ironchest:blocks/iron_break",
"texture":"ironchest:model/shulker/red/shulker_red_iron"
}
},
"gold":{
"textures":{
"particle":"ironchest:blocks/gold_break",
"texture":"ironchest:model/shulker/red/shulker_red_gold"
}
},
"diamond":{
"textures":{
"particle":"ironchest:blocks/diamond_break",
"texture":"ironchest:model/shulker/red/shulker_red_diamond"
}
},
"copper":{
"textures":{
"particle":"ironchest:blocks/copper_break",
"texture":"ironchest:model/shulker/red/shulker_red_copper"
}
},
"silver":{
"textures":{
"particle":"ironchest:blocks/silver_break",
"texture":"ironchest:model/shulker/red/shulker_red_silver"
}
},
"crystal":{
"textures":{
"particle":"ironchest:blocks/crystal_break",
"texture":"ironchest:model/shulker/red/shulker_red_crystal"
}
},
"obsidian":{
"textures":{
"particle":"minecraft:blocks/obsidian",
"texture":"ironchest:model/shulker/red/shulker_red_obsidian"
}
},
"vanilla":{
"textures":{
"particle":"minecraft:blocks/shulker_top_red",
"texture":"minecraft:entity/shulker/shulker_red"
}
}
}
}
}

View File

@ -0,0 +1,59 @@
{
"forge_marker":1,
"defaults":{
"model":"ironchest:iron_shulker_box",
"transform":"forge:default-block"
},
"variants":{
"variant":{
"iron":{
"textures":{
"particle":"ironchest:blocks/iron_break",
"texture":"ironchest:model/shulker/silver/shulker_silver_iron"
}
},
"gold":{
"textures":{
"particle":"ironchest:blocks/gold_break",
"texture":"ironchest:model/shulker/silver/shulker_silver_gold"
}
},
"diamond":{
"textures":{
"particle":"ironchest:blocks/diamond_break",
"texture":"ironchest:model/shulker/silver/shulker_silver_diamond"
}
},
"copper":{
"textures":{
"particle":"ironchest:blocks/copper_break",
"texture":"ironchest:model/shulker/silver/shulker_silver_copper"
}
},
"silver":{
"textures":{
"particle":"ironchest:blocks/silver_break",
"texture":"ironchest:model/shulker/silver/shulker_silver_silver"
}
},
"crystal":{
"textures":{
"particle":"ironchest:blocks/crystal_break",
"texture":"ironchest:model/shulker/silver/shulker_silver_crystal"
}
},
"obsidian":{
"textures":{
"particle":"minecraft:blocks/obsidian",
"texture":"ironchest:model/shulker/silver/shulker_silver_obsidian"
}
},
"vanilla":{
"textures":{
"particle":"minecraft:blocks/shulker_top_silver",
"texture":"minecraft:entity/shulker/shulker_silver"
}
}
}
}
}

View File

@ -0,0 +1,56 @@
{
"forge_marker":1,
"defaults":{
"model":"builtin/generated",
"transform":"forge:default-item"
},
"variants":{
"variant":{
"copper_silver_shulker_upgrade":{
"textures":{
"layer0":"ironchest:items/shulker/copper_silver_upgrade"
}
},
"diamond_crystal_shulker_upgrade":{
"textures":{
"layer0":"ironchest:items/shulker/diamond_crystal_upgrade"
}
},
"diamond_obsidian_shulker_upgrade":{
"textures":{
"layer0":"ironchest:items/shulker/diamond_obsidian_upgrade"
}
},
"gold_diamond_shulker_upgrade":{
"textures":{
"layer0":"ironchest:items/shulker/gold_diamond_upgrade"
}
},
"iron_gold_shulker_upgrade":{
"textures":{
"layer0":"ironchest:items/shulker/iron_gold_upgrade"
}
},
"silver_gold_shulker_upgrade":{
"textures":{
"layer0":"ironchest:items/shulker/silver_gold_upgrade"
}
},
"vanilla_copper_shulker_upgrade":{
"textures":{
"layer0":"ironchest:items/shulker/vanilla_copper_upgrade"
}
},
"vanilla_iron_shulker_upgrade":{
"textures":{
"layer0":"ironchest:items/shulker/vanilla_iron_upgrade"
}
},
"copper_iron_shulker_upgrade":{
"textures":{
"layer0":"ironchest:items/shulker/copper_iron_upgrade"
}
}
}
}
}

View File

@ -0,0 +1,59 @@
{
"forge_marker":1,
"defaults":{
"model":"ironchest:iron_shulker_box",
"transform":"forge:default-block"
},
"variants":{
"variant":{
"iron":{
"textures":{
"particle":"ironchest:blocks/iron_break",
"texture":"ironchest:model/shulker/white/shulker_white_iron"
}
},
"gold":{
"textures":{
"particle":"ironchest:blocks/gold_break",
"texture":"ironchest:model/shulker/white/shulker_white_gold"
}
},
"diamond":{
"textures":{
"particle":"ironchest:blocks/diamond_break",
"texture":"ironchest:model/shulker/white/shulker_white_diamond"
}
},
"copper":{
"textures":{
"particle":"ironchest:blocks/copper_break",
"texture":"ironchest:model/shulker/white/shulker_white_copper"
}
},
"silver":{
"textures":{
"particle":"ironchest:blocks/silver_break",
"texture":"ironchest:model/shulker/white/shulker_white_silver"
}
},
"crystal":{
"textures":{
"particle":"ironchest:blocks/crystal_break",
"texture":"ironchest:model/shulker/white/shulker_white_crystal"
}
},
"obsidian":{
"textures":{
"particle":"minecraft:blocks/obsidian",
"texture":"ironchest:model/shulker/white/shulker_white_obsidian"
}
},
"vanilla":{
"textures":{
"particle":"minecraft:blocks/shulker_top_white",
"texture":"minecraft:entity/shulker/shulker_white"
}
}
}
}
}

View File

@ -0,0 +1,59 @@
{
"forge_marker":1,
"defaults":{
"model":"ironchest:iron_shulker_box",
"transform":"forge:default-block"
},
"variants":{
"variant":{
"iron":{
"textures":{
"particle":"ironchest:blocks/iron_break",
"texture":"ironchest:model/shulker/yellow/shulker_yellow_iron"
}
},
"gold":{
"textures":{
"particle":"ironchest:blocks/gold_break",
"texture":"ironchest:model/shulker/yellow/shulker_yellow_gold"
}
},
"diamond":{
"textures":{
"particle":"ironchest:blocks/diamond_break",
"texture":"ironchest:model/shulker/yellow/shulker_yellow_diamond"
}
},
"copper":{
"textures":{
"particle":"ironchest:blocks/copper_break",
"texture":"ironchest:model/shulker/yellow/shulker_yellow_copper"
}
},
"silver":{
"textures":{
"particle":"ironchest:blocks/silver_break",
"texture":"ironchest:model/shulker/yellow/shulker_yellow_silver"
}
},
"crystal":{
"textures":{
"particle":"ironchest:blocks/crystal_break",
"texture":"ironchest:model/shulker/yellow/shulker_yellow_crystal"
}
},
"obsidian":{
"textures":{
"particle":"minecraft:blocks/obsidian",
"texture":"ironchest:model/shulker/yellow/shulker_yellow_obsidian"
}
},
"vanilla":{
"textures":{
"particle":"minecraft:blocks/shulker_top_yellow",
"texture":"minecraft:entity/shulker/shulker_yellow"
}
}
}
}
}

View File

@ -1,17 +1,21 @@
tile.ironchest:IRON.name=Železná truhla
tile.ironchest:GOLD.name=Zlatá truhla
tile.ironchest:DIAMOND.name=Diamantová truhla
tile.ironchest:COPPER.name=Měděná truhla
tile.ironchest:SILVER.name=Stříbrná truhla
tile.ironchest:CRYSTAL.name=Krystalová truhla
tile.ironchest:OBSIDIAN.name=Obsidiánová truhla
################
# Chests #
################
item.ironchest:IRONGOLD.name=Vylepšení železné truhly na zlatou
item.ironchest:GOLDDIAMOND.name=Vylepšení zlaté truhly na diamantovou
item.ironchest:COPPERSILVER.name=Vylepšení měděné truhly na stříbrnou
item.ironchest:SILVERGOLD.name=Vylepšení stříbrné truhly na zlatou
item.ironchest:COPPERIRON.name=Vylepšení měděné truhly na železnou
item.ironchest:DIAMONDCRYSTAL.name=Vylepšení diamantové truhly na krystalovou
item.ironchest:WOODIRON.name=Vylepšení dřevěné truhly na železnou
item.ironchest:WOODCOPPER.name=Vylepšení dřevěné truhly na měděnou
item.ironchest:DIAMONDOBSIDIAN.name=Vylepšení diamantové truhly na obsidiánovou
tile.ironchest.chest.iron.name=Železná truhla
tile.ironchest.chest.gold.name=Zlatá truhla
tile.ironchest.chest.diamond.name=Diamantová truhla
tile.ironchest.chest.copper.name=Měděná truhla
tile.ironchest.chest.silver.name=Stříbrná truhla
tile.ironchest.chest.crystal.name=Krystalová truhla
tile.ironchest.chest.obsidian.name=Obsidiánová truhla
item.ironchest.chest.iron_gold.name=Vylepšení železné truhly na zlatou
item.ironchest.chest.gold_diamond.name=Vylepšení zlaté truhly na diamantovou
item.ironchest.chest.copper_silver.name=Vylepšení měděné truhly na stříbrnou
item.ironchest.chest.silver_gold.name=Vylepšení stříbrné truhly na zlatou
item.ironchest.chest.copper_iron.name=Vylepšení měděné truhly na železnou
item.ironchest.chest.diamond_crystal.name=Vylepšení diamantové truhly na krystalovou
item.ironchest.chest.wood_iron.name=Vylepšení dřevěné truhly na železnou
item.ironchest.chest.wood_copper.name=Vylepšení dřevěné truhly na měděnou
item.ironchest.chest.diamond_obsidian.name=Vylepšení diamantové truhly na obsidiánovou

View File

@ -1,17 +1,21 @@
tile.ironchest:IRON.name=Jern Kiste
tile.ironchest:GOLD.name=Guld Kiste
tile.ironchest:DIAMOND.name=Diamant Kiste
tile.ironchest:COPPER.name=Kobber Kiste
tile.ironchest:SILVER.name=Sølv Kiste
tile.ironchest:CRYSTAL.name=Krystal Kiste
tile.ironchest:OBSIDIAN.name=Obsidian Kiste
################
# Chests #
################
item.ironchest:IRONGOLD.name=Jern til Guld Kiste Opgradering
item.ironchest:GOLDDIAMOND.name=Guld til Diamant Kiste Opgradering
item.ironchest:COPPERSILVER.name=Kobber til Sølv Kiste Opgradering
item.ironchest:SILVERGOLD.name=Sølv til Guld Kiste Opgradering
item.ironchest:COPPERIRON.name=Kobber til Jern Kiste Opgradering
item.ironchest:DIAMONDCRYSTAL.name=Diamant til Krystal Kiste Opgradering
item.ironchest:WOODIRON.name=Træ til Jern Kiste Opgradering
item.ironchest:WOODCOPPER.name=Træ til Kobber Kiste Opgradering
item.ironchest:DIAMONDOBSIDIAN.name=Diamant til Obsidian Kiste Opgradering
tile.ironchest.chest.iron.name=Jern Kiste
tile.ironchest.chest.gold.name=Guld Kiste
tile.ironchest.chest.diamond.name=Diamant Kiste
tile.ironchest.chest.copper.name=Kobber Kiste
tile.ironchest.chest.silver.name=Sølv Kiste
tile.ironchest.chest.crystal.name=Krystal Kiste
tile.ironchest.chest.obsidian.name=Obsidian Kiste
item.ironchest.chest.iron_gold.name=Jern til Guld Kiste Opgradering
item.ironchest.chest.gold_diamond.name=Guld til Diamant Kiste Opgradering
item.ironchest.chest.copper_silver.name=Kobber til Sølv Kiste Opgradering
item.ironchest.chest.silver_gold.name=Sølv til Guld Kiste Opgradering
item.ironchest.chest.copper_iron.name=Kobber til Jern Kiste Opgradering
item.ironchest.chest.diamond_crystal.name=Diamant til Krystal Kiste Opgradering
item.ironchest.chest.wood_iron.name=Træ til Jern Kiste Opgradering
item.ironchest.chest.wood_copper.name=Træ til Kobber Kiste Opgradering
item.ironchest.chest.diamond_obsidian.name=Diamant til Obsidian Kiste Opgradering

View File

@ -1,25 +1,29 @@
tile.ironchest:IRON.name=Eisentruhe
tile.ironchest:GOLD.name=Goldtruhe
tile.ironchest:DIAMOND.name=Diamanttruhe
tile.ironchest:COPPER.name=Kupfertruhe
tile.ironchest:SILVER.name=Silbertruhe
tile.ironchest:CRYSTAL.name=Kristalltruhe
tile.ironchest:OBSIDIAN.name=Obsidiantruhe
tile.ironchest:DIRTCHEST9000.name=DirtChest 9000!
################
# Chests #
################
item.ironchest:IRONGOLD.name=Eisen-zu-Goldtruhen-Upgrade
item.ironchest:GOLDDIAMOND.name=Gold-zu-Diamanttruhen-Upgrade
item.ironchest:COPPERSILVER.name=Kupfer-zu-Silbertruhen-Upgrade
item.ironchest:SILVERGOLD.name=Silber-zu-Goldtruhen-Upgrade
item.ironchest:COPPERIRON.name=Kupfer-zu-Eisentruhen-Upgrade
item.ironchest:DIAMONDCRYSTAL.name=Diamant-zu-Kristalltruhen-Upgrade
item.ironchest:WOODIRON.name=Holz-zu-Eisentruhen-Upgrade
item.ironchest:WOODCOPPER.name=Holz-zu-Kupfertruhen-Upgrade
item.ironchest:DIAMONDOBSIDIAN.name=Diamant-zu-Obsidiantruhen-Upgrade
tile.ironchest.chest.iron.name=Eisentruhe
tile.ironchest.chest.gold.name=Goldtruhe
tile.ironchest.chest.diamond.name=Diamanttruhe
tile.ironchest.chest.copper.name=Kupfertruhe
tile.ironchest.chest.silver.name=Silbertruhe
tile.ironchest.chest.crystal.name=Kristalltruhe
tile.ironchest.chest.obsidian.name=Obsidiantruhe
tile.ironchest.chest.dirtchest9000.name=DirtChest 9000!
book.ironchest:dirtchest9000.title=Wie du deine neue DirtChest 9000 nutzt!
book.ironchest:dirtchest9000.page1=Willkommen zu Ihrer neuen DirtChest 9000! Wir hoffen, dass Sie viele freudige Jahre genießen werden, wenn Sie Ihre Erd-Stacks in unserem nützlichen Speichergerät lagern.
book.ironchest:dirtchest9000.page2=Nutzung: Werfen Sie einfach den Erd-Stack Ihrer Wahl in den äußerst rezeptiven Slot und genießen Sie die Annehmlichkeit, diese Erde für Sie verfügbar zu haben, jedes mal, wenn Sie diese Truhe passieren!
book.ironchest:dirtchest9000.page3=Wir hoffen, Sie haben das Durchgehen dieser Bedienungsanleitung genossen, und hoffen, dass sie sich weiterhin entscheiden werden, in Zukunft unsere Produkte zu nutzen! Mit freundlichen Grüßen, Die DirtChest 9000 manual writers incorporated.
book.ironchest:dirtchest9000.page4=Garantie: Dieses Produkt hat keine Garantie jeglicher Sorte. Ihre Erde könnte nicht gespeichert werden, er könnte langsam in die Umwelt gesaugt werden, oder stattdessen könnte das Produkt gar nichts machen.
book.ironchest:dirtchest9000.page5=DirtChest 9000 ist freundlich zur Umwelt. Bitte entsorgen Sie diesen Guide verantwortungsbewusst, und tun sie nicht, was Sie immer tun und schmeißen ihn in irgendwelche Lava. Wir würden sehr traurig sein.
item.ironchest.chest.iron_gold.name=Eisen-zu-Goldtruhen-Upgrade
item.ironchest.chest.gold_diamond.name=Gold-zu-Diamanttruhen-Upgrade
item.ironchest.chest.copper_silver.name=Kupfer-zu-Silbertruhen-Upgrade
item.ironchest.chest.silver_gold.name=Silber-zu-Goldtruhen-Upgrade
item.ironchest.chest.copper_iron.name=Kupfer-zu-Eisentruhen-Upgrade
item.ironchest.chest.diamond_crystal.name=Diamant-zu-Kristalltruhen-Upgrade
item.ironchest.chest.wood_iron.name=Holz-zu-Eisentruhen-Upgrade
item.ironchest.chest.wood_copper.name=Holz-zu-Kupfertruhen-Upgrade
item.ironchest.chest.diamond_obsidian.name=Diamant-zu-Obsidiantruhen-Upgrade
book.ironchest.dirtchest9000.title=Wie du deine neue DirtChest 9000 nutzt!
book.ironchest.dirtchest9000.page1=Willkommen zu Ihrer neuen DirtChest 9000! Wir hoffen, dass Sie viele freudige Jahre genießen werden, wenn Sie Ihre Erd-Stacks in unserem nützlichen Speichergerät lagern.
book.ironchest.dirtchest9000.page2=Nutzung: Werfen Sie einfach den Erd-Stack Ihrer Wahl in den äußerst rezeptiven Slot und genießen Sie die Annehmlichkeit, diese Erde für Sie verfügbar zu haben, jedes mal, wenn Sie diese Truhe passieren!
book.ironchest.dirtchest9000.page3=Wir hoffen, Sie haben das Durchgehen dieser Bedienungsanleitung genossen, und hoffen, dass sie sich weiterhin entscheiden werden, in Zukunft unsere Produkte zu nutzen! Mit freundlichen Grüßen, Die DirtChest 9000 manual writers incorporated.
book.ironchest.dirtchest9000.page4=Garantie: Dieses Produkt hat keine Garantie jeglicher Sorte. Ihre Erde könnte nicht gespeichert werden, er könnte langsam in die Umwelt gesaugt werden, oder stattdessen könnte das Produkt gar nichts machen.
book.ironchest.dirtchest9000.page5=DirtChest 9000 ist freundlich zur Umwelt. Bitte entsorgen Sie diesen Guide verantwortungsbewusst, und tun sie nicht, was Sie immer tun und schmeißen ihn in irgendwelche Lava. Wir würden sehr traurig sein.

View File

@ -1,17 +1,21 @@
tile.ironchest:IRON.name=Σιδερένιο Σεντούκι
tile.ironchest:GOLD.name=Χρυσό Σεντούκι
tile.ironchest:DIAMOND.name=Διαμαντένιο Σεντούκι
tile.ironchest:COPPER.name=Χάλκινο Σεντούκι
tile.ironchest:SILVER.name=Ασημένιο Σεντούκι
tile.ironchest:CRYSTAL.name=Κρυστάλλινο Σεντούκι
tile.ironchest:OBSIDIAN.name=Σεντούκι Οψιδιανού
################
# Chests #
################
item.ironchest:IRONGOLD.name=Αναβάθμιση από Σιδερένιο σε Χρυσό Σεντούκι
item.ironchest:GOLDDIAMOND.name=Αναβάθμιση από Χρυσό σε Διαμαντένιο Σεντούκι
item.ironchest:COPPERSILVER.name=Αναβάθμιση από Χάλκινο σε Ασημένιο Σεντούκι
item.ironchest:SILVERGOLD.name=Αναβάθμιση από Ασημένιο σε Χρυσό Σεντούκι
item.ironchest:COPPERIRON.name=Αναβάθμιση από Χάλκινο σε Σιδερένιο Σεντούκι
item.ironchest:DIAMONDCRYSTAL.name=Αναβάθμιση από Διαμαντένιο σε Κρυστάλλινο Σεντούκι
item.ironchest:WOODIRON.name=Αναβάθμιση από Ξύλινο σε Σιδερένιο Σεντούκι
item.ironchest:WOODCOPPER.name=Αναβάθμιση από Ξύλινο σε Χάλκινο Σεντούκι
item.ironchest:DIAMONDOBSIDIAN.name=Αναβάθμιση από Διαμαντένιο σε Σεντούκι Οψιδιανού
tile.ironchest.chest.iron.name=Σιδερένιο Σεντούκι
tile.ironchest.chest.gold.name=Χρυσό Σεντούκι
tile.ironchest.chest.diamond.name=Διαμαντένιο Σεντούκι
tile.ironchest.chest.copper.name=Χάλκινο Σεντούκι
tile.ironchest.chest.silver.name=Ασημένιο Σεντούκι
tile.ironchest.chest.crystal.name=Κρυστάλλινο Σεντούκι
tile.ironchest.chest.obsidian.name=Σεντούκι Οψιδιανού
item.ironchest.chest.iron_gold.name=Αναβάθμιση από Σιδερένιο σε Χρυσό Σεντούκι
item.ironchest.chest.gold_diamond.name=Αναβάθμιση από Χρυσό σε Διαμαντένιο Σεντούκι
item.ironchest.chest.copper_silver.name=Αναβάθμιση από Χάλκινο σε Ασημένιο Σεντούκι
item.ironchest.chest.silver_gold.name=Αναβάθμιση από Ασημένιο σε Χρυσό Σεντούκι
item.ironchest.chest.copper_iron.name=Αναβάθμιση από Χάλκινο σε Σιδερένιο Σεντούκι
item.ironchest.chest.diamond_crystal.name=Αναβάθμιση από Διαμαντένιο σε Κρυστάλλινο Σεντούκι
item.ironchest.chest.wood_iron.name=Αναβάθμιση από Ξύλινο σε Σιδερένιο Σεντούκι
item.ironchest.chest.wood_copper.name=Αναβάθμιση από Ξύλινο σε Χάλκινο Σεντούκι
item.ironchest.chest.diamond_obsidian.name=Αναβάθμιση από Διαμαντένιο σε Σεντούκι Οψιδιανού

View File

@ -1,25 +1,29 @@
tile.ironchest:IRON.name=Steel Coffer
tile.ironchest:GOLD.name=Gold Coffer
tile.ironchest:DIAMOND.name=Diamond Coffer
tile.ironchest:COPPER.name=Copper Coffer
tile.ironchest:SILVER.name=Silver Coffer
tile.ironchest:CRYSTAL.name=Shinin' Coffer
tile.ironchest:OBSIDIAN.name=Coffer o' tears
tile.ironchest:DIRTCHEST9000.name=FilthCoffer 9000!
################
# Chests #
################
item.ironchest:IRONGOLD.name=Steel to Gold Coffer Upgradin'
item.ironchest:GOLDDIAMOND.name=Gold to Diamond Coffer Upgradin'
item.ironchest:COPPERSILVER.name=Copper to Silver Coffer Upgradin'
item.ironchest:SILVERGOLD.name=Silver to Gold Coffer Upgradin'
item.ironchest:COPPERIRON.name=Copper to Steel Coffer Upgradin'
item.ironchest:DIAMONDCRYSTAL.name=Diamond to Shinin' Coffer Upgradin'
item.ironchest:WOODIRON.name=Timber to Steel Coffer Upgradin'
item.ironchest:WOODCOPPER.name=Wood to Copper Coffer Upgradin'
item.ironchest:DIAMONDOBSIDIAN.name=Diamond to Coffer o' Tears Upgradin'
tile.ironchest.chest.iron.name=Steel Coffer
tile.ironchest.chest.gold.name=Gold Coffer
tile.ironchest.chest.diamond.name=Diamond Coffer
tile.ironchest.chest.copper.name=Copper Coffer
tile.ironchest.chest.silver.name=Silver Coffer
tile.ironchest.chest.crystal.name=Shinin' Coffer
tile.ironchest.chest.obsidian.name=Coffer o' tears
tile.ironchest.chest.dirtchest9000.name=FilthCoffer 9000!
book.ironchest:dirtchest9000.title=How to use yer FilthCoffer 9000!
book.ironchest:dirtchest9000.page1=Welcome to yer new FilthCoffer 9000! We hope ye will enjoy many happy years of storing yer filth wit yer coffer .
book.ironchest:dirtchest9000.page2=Usage: simply put yer filth in yer slot and yer got yerself some filth any time ye need it!
book.ironchest:dirtchest9000.page3=We hope you have enjoyed reviewing this instruction manual, and hope you will consider using our products in future! Kind regards, The DirtChest 9000 manual writers incorporated.
book.ironchest:dirtchest9000.page4=Warranty: We can't keep yer filth from pirates. Yer filth may not be stored, it may slowly return to yer world, or it may stay in yer coffer.
book.ironchest:dirtchest9000.page5=FilthCoffer 9000 is kind to yer voyage. Throw yer paper in a coffer near by wit yer booty, and don't just chuck it into some molten rock. We wouldn't be the happiest o' pirates.
item.ironchest.chest.iron_gold.name=Steel to Gold Coffer Upgradin'
item.ironchest.chest.gold_diamond.name=Gold to Diamond Coffer Upgradin'
item.ironchest.chest.copper_silver.name=Copper to Silver Coffer Upgradin'
item.ironchest.chest.silver_gold.name=Silver to Gold Coffer Upgradin'
item.ironchest.chest.copper_iron.name=Copper to Steel Coffer Upgradin'
item.ironchest.chest.diamond_crystal.name=Diamond to Shinin' Coffer Upgradin'
item.ironchest.chest.wood_iron.name=Timber to Steel Coffer Upgradin'
item.ironchest.chest.wood_copper.name=Wood to Copper Coffer Upgradin'
item.ironchest.chest.diamond_obsidian.name=Diamond to Coffer o' Tears Upgradin'
book.ironchest.dirtchest9000.title=How to use yer FilthCoffer 9000!
book.ironchest.dirtchest9000.page1=Welcome to yer new FilthCoffer 9000! We hope ye will enjoy many happy years of storing yer filth wit yer coffer .
book.ironchest.dirtchest9000.page2=Usage: simply put yer filth in yer slot and yer got yerself some filth any time ye need it!
book.ironchest.dirtchest9000.page3=We hope you have enjoyed reviewing this instruction manual, and hope you will consider using our products in future! Kind regards, The DirtChest 9000 manual writers incorporated.
book.ironchest.dirtchest9000.page4=Warranty: We can't keep yer filth from pirates. Yer filth may not be stored, it may slowly return to yer world, or it may stay in yer coffer.
book.ironchest.dirtchest9000.page5=FilthCoffer 9000 is kind to yer voyage. Throw yer paper in a coffer near by wit yer booty, and don't just chuck it into some molten rock. We wouldn't be the happiest o' pirates.

View File

@ -1,25 +1,177 @@
tile.ironchest:IRON.name=Iron Chest
tile.ironchest:GOLD.name=Gold Chest
tile.ironchest:DIAMOND.name=Diamond Chest
tile.ironchest:COPPER.name=Copper Chest
tile.ironchest:SILVER.name=Silver Chest
tile.ironchest:CRYSTAL.name=Crystal Chest
tile.ironchest:OBSIDIAN.name=Obsidian Chest
tile.ironchest:DIRTCHEST9000.name=DirtChest 9000!
################
# Chests #
################
item.ironchest:IRONGOLD.name=Iron to Gold Chest Upgrade
item.ironchest:GOLDDIAMOND.name=Gold to Diamond Chest Upgrade
item.ironchest:COPPERSILVER.name=Copper to Silver Chest Upgrade
item.ironchest:SILVERGOLD.name=Silver to Gold Chest Upgrade
item.ironchest:COPPERIRON.name=Copper to Iron Chest Upgrade
item.ironchest:DIAMONDCRYSTAL.name=Diamond to Crystal Chest Upgrade
item.ironchest:WOODIRON.name=Wood to Iron Chest Upgrade
item.ironchest:WOODCOPPER.name=Wood to Copper Chest Upgrade
item.ironchest:DIAMONDOBSIDIAN.name=Diamond to Obsidian Chest Upgrade
tile.ironchest.chest.iron.name=Iron Chest
tile.ironchest.chest.gold.name=Gold Chest
tile.ironchest.chest.diamond.name=Diamond Chest
tile.ironchest.chest.copper.name=Copper Chest
tile.ironchest.chest.silver.name=Silver Chest
tile.ironchest.chest.crystal.name=Crystal Chest
tile.ironchest.chest.obsidian.name=Obsidian Chest
tile.ironchest.chest.dirtchest9000.name=DirtChest 9000!
book.ironchest:dirtchest9000.title=How to use your DirtChest 9000!
book.ironchest:dirtchest9000.page1="Welcome to your new DirtChest 9000! We hope you will enjoy many happy years of storing your stack of dirt in our storage utility."
book.ironchest:dirtchest9000.page2="Usage: simply insert the stack of dirt of your choice into the highly receptive slot and enjoy the great convenience of having that dirt available to you, any time you pass by this chest!"
book.ironchest:dirtchest9000.page3="We hope you have enjoyed reviewing this instruction manual, and hope you will consider using our products in future! Kind regards, The DirtChest 9000 manual writers incorporated."
book.ironchest:dirtchest9000.page4="Warranty: This product has no warranty of any kind. Your dirt may not be stored, it may slowly leech into the environment, or alternatively, it may not do anything at all."
book.ironchest:dirtchest9000.page5="DirtChest 9000 is kind to the environment. Please dispose of this guide book responsibly, and do not whatever you do just chuck it into some lava. We would be very sad."
item.ironchest.chest.iron_gold.name=Iron to Gold Chest Upgrade
item.ironchest.chest.gold_diamond.name=Gold to Diamond Chest Upgrade
item.ironchest.chest.copper_silver.name=Copper to Silver Chest Upgrade
item.ironchest.chest.silver_gold.name=Silver to Gold Chest Upgrade
item.ironchest.chest.copper_iron.name=Copper to Iron Chest Upgrade
item.ironchest.chest.diamond_crystal.name=Diamond to Crystal Chest Upgrade
item.ironchest.chest.wood_iron.name=Wood to Iron Chest Upgrade
item.ironchest.chest.wood_copper.name=Wood to Copper Chest Upgrade
item.ironchest.chest.diamond_obsidian.name=Diamond to Obsidian Chest Upgrade
book.ironchest.dirtchest9000.title=How to use your DirtChest 9000!
book.ironchest.dirtchest9000.page1="Welcome to your new DirtChest 9000! We hope you will enjoy many happy years of storing your stack of dirt in our storage utility."
book.ironchest.dirtchest9000.page2="Usage: simply insert the stack of dirt of your choice into the highly receptive slot and enjoy the great convenience of having that dirt available to you, any time you pass by this chest!"
book.ironchest.dirtchest9000.page3="We hope you have enjoyed reviewing this instruction manual, and hope you will consider using our products in future! Kind regards, The DirtChest 9000 manual writers incorporated."
book.ironchest.dirtchest9000.page4="Warranty: This product has no warranty of any kind. Your dirt may not be stored, it may slowly leech into the environment, or alternatively, it may not do anything at all."
book.ironchest.dirtchest9000.page5="DirtChest 9000 is kind to the environment. Please dispose of this guide book responsibly, and do not whatever you do just chuck it into some lava. We would be very sad."
#######################
# Shulker Boxes #
#######################
tile.ironchest.shulker_box.iron.white.name=White Iron Shulker Box
tile.ironchest.shulker_box.iron.orange.name=Orange Iron Shulker Box
tile.ironchest.shulker_box.iron.magenta.name=Magenta Iron Shulker Box
tile.ironchest.shulker_box.iron.light_blue.name=Light Blue Iron Shulker Box
tile.ironchest.shulker_box.iron.yellow.name=Yellow Iron Shulker Box
tile.ironchest.shulker_box.iron.lime.name=Lime Iron Shulker Box
tile.ironchest.shulker_box.iron.pink.name=Pink Iron Shulker Box
tile.ironchest.shulker_box.iron.gray.name=Gray Iron Shulker Box
tile.ironchest.shulker_box.iron.silver.name=Silver Iron Shulker Box
tile.ironchest.shulker_box.iron.cyan.name=Cyan Iron Shulker Box
tile.ironchest.shulker_box.iron.purple.name=Purple Iron Shulker Box
tile.ironchest.shulker_box.iron.blue.name=Blue Iron Shulker Box
tile.ironchest.shulker_box.iron.brown.name=Brown Iron Shulker Box
tile.ironchest.shulker_box.iron.green.name=Green Iron Shulker Box
tile.ironchest.shulker_box.iron.red.name=Red Iron Shulker Box
tile.ironchest.shulker_box.iron.black.name=Black Iron Shulker Box
tile.ironchest.shulker_box.gold.white.name=White Gold Shulker Box
tile.ironchest.shulker_box.gold.orange.name=Orange Gold Shulker Box
tile.ironchest.shulker_box.gold.magenta.name=Magenta Gold Shulker Box
tile.ironchest.shulker_box.gold.light_blue.name=Light Blue Gold Shulker Box
tile.ironchest.shulker_box.gold.yellow.name=Yellow Gold Shulker Box
tile.ironchest.shulker_box.gold.lime.name=Lime Gold Shulker Box
tile.ironchest.shulker_box.gold.pink.name=Pink Gold Shulker Box
tile.ironchest.shulker_box.gold.gray.name=Gray Gold Shulker Box
tile.ironchest.shulker_box.gold.silver.name=Silver Gold Shulker Box
tile.ironchest.shulker_box.gold.cyan.name=Cyan Gold Shulker Box
tile.ironchest.shulker_box.gold.purple.name=Purple Gold Shulker Box
tile.ironchest.shulker_box.gold.blue.name=Blue Gold Shulker Box
tile.ironchest.shulker_box.gold.brown.name=Brown Gold Shulker Box
tile.ironchest.shulker_box.gold.green.name=Green Gold Shulker Box
tile.ironchest.shulker_box.gold.red.name=Red Gold Shulker Box
tile.ironchest.shulker_box.gold.black.name=Black Gold Shulker Box
tile.ironchest.shulker_box.diamond.white.name=White Diamond Shulker Box
tile.ironchest.shulker_box.diamond.orange.name=Orange Diamond Shulker Box
tile.ironchest.shulker_box.diamond.magenta.name=Magenta Diamond Shulker Box
tile.ironchest.shulker_box.diamond.light_blue.name=Light Blue Diamond Shulker Box
tile.ironchest.shulker_box.diamond.yellow.name=Yellow Diamond Shulker Box
tile.ironchest.shulker_box.diamond.lime.name=Lime Diamond Shulker Box
tile.ironchest.shulker_box.diamond.pink.name=Pink Diamond Shulker Box
tile.ironchest.shulker_box.diamond.gray.name=Gray Diamond Shulker Box
tile.ironchest.shulker_box.diamond.silver.name=Silver Diamond Shulker Box
tile.ironchest.shulker_box.diamond.cyan.name=Cyan Diamond Shulker Box
tile.ironchest.shulker_box.diamond.purple.name=Purple Diamond Shulker Box
tile.ironchest.shulker_box.diamond.blue.name=Blue Diamond Shulker Box
tile.ironchest.shulker_box.diamond.brown.name=Brown Diamond Shulker Box
tile.ironchest.shulker_box.diamond.green.name=Green Diamond Shulker Box
tile.ironchest.shulker_box.diamond.red.name=Red Diamond Shulker Box
tile.ironchest.shulker_box.diamond.black.name=Black Diamond Shulker Box
tile.ironchest.shulker_box.copper.white.name=White Copper Shulker Box
tile.ironchest.shulker_box.copper.orange.name=Orange Copper Shulker Box
tile.ironchest.shulker_box.copper.magenta.name=Magenta Copper Shulker Box
tile.ironchest.shulker_box.copper.light_blue.name=Light Blue Copper Shulker Box
tile.ironchest.shulker_box.copper.yellow.name=Yellow Copper Shulker Box
tile.ironchest.shulker_box.copper.lime.name=Lime Copper Shulker Box
tile.ironchest.shulker_box.copper.pink.name=Pink Copper Shulker Box
tile.ironchest.shulker_box.copper.gray.name=Gray Copper Shulker Box
tile.ironchest.shulker_box.copper.silver.name=Silver Copper Shulker Box
tile.ironchest.shulker_box.copper.cyan.name=Cyan Copper Shulker Box
tile.ironchest.shulker_box.copper.purple.name=Purple Copper Shulker Box
tile.ironchest.shulker_box.copper.blue.name=Blue Copper Shulker Box
tile.ironchest.shulker_box.copper.brown.name=Brown Copper Shulker Box
tile.ironchest.shulker_box.copper.green.name=Green Copper Shulker Box
tile.ironchest.shulker_box.copper.red.name=Red Copper Shulker Box
tile.ironchest.shulker_box.copper.black.name=Black Copper Shulker Box
tile.ironchest.shulker_box.silver.white.name=White Silver Shulker Box
tile.ironchest.shulker_box.silver.orange.name=Orange Silver Shulker Box
tile.ironchest.shulker_box.silver.magenta.name=Magenta Silver Shulker Box
tile.ironchest.shulker_box.silver.light_blue.name=Light Blue Silver Shulker Box
tile.ironchest.shulker_box.silver.yellow.name=Yellow Silver Shulker Box
tile.ironchest.shulker_box.silver.lime.name=Lime Silver Shulker Box
tile.ironchest.shulker_box.silver.pink.name=Pink Silver Shulker Box
tile.ironchest.shulker_box.silver.gray.name=Gray Silver Shulker Box
tile.ironchest.shulker_box.silver.silver.name=Silver Silver Shulker Box
tile.ironchest.shulker_box.silver.cyan.name=Cyan Silver Shulker Box
tile.ironchest.shulker_box.silver.purple.name=Purple Silver Shulker Box
tile.ironchest.shulker_box.silver.blue.name=Blue Silver Shulker Box
tile.ironchest.shulker_box.silver.brown.name=Brown Silver Shulker Box
tile.ironchest.shulker_box.silver.green.name=Green Silver Shulker Box
tile.ironchest.shulker_box.silver.red.name=Red Silver Shulker Box
tile.ironchest.shulker_box.silver.black.name=Black Silver Shulker Box
tile.ironchest.shulker_box.crystal.white.name=White Crystal Shulker Box
tile.ironchest.shulker_box.crystal.orange.name=Orange Crystal Shulker Box
tile.ironchest.shulker_box.crystal.magenta.name=Magenta Crystal Shulker Box
tile.ironchest.shulker_box.crystal.light_blue.name=Light Blue Crystal Shulker Box
tile.ironchest.shulker_box.crystal.yellow.name=Yellow Crystal Shulker Box
tile.ironchest.shulker_box.crystal.lime.name=Lime Crystal Shulker Box
tile.ironchest.shulker_box.crystal.pink.name=Pink Crystal Shulker Box
tile.ironchest.shulker_box.crystal.gray.name=Gray Crystal Shulker Box
tile.ironchest.shulker_box.crystal.silver.name=Silver Crystal Shulker Box
tile.ironchest.shulker_box.crystal.cyan.name=Cyan Crystal Shulker Box
tile.ironchest.shulker_box.crystal.purple.name=Purple Crystal Shulker Box
tile.ironchest.shulker_box.crystal.blue.name=Blue Crystal Shulker Box
tile.ironchest.shulker_box.crystal.brown.name=Brown Crystal Shulker Box
tile.ironchest.shulker_box.crystal.green.name=Green Crystal Shulker Box
tile.ironchest.shulker_box.crystal.red.name=Red Crystal Shulker Box
tile.ironchest.shulker_box.crystal.black.name=Black Crystal Shulker Box
tile.ironchest.shulker_box.obsidian.white.name=White Obsidian Shulker Box
tile.ironchest.shulker_box.obsidian.orange.name=Orange Obsidian Shulker Box
tile.ironchest.shulker_box.obsidian.magenta.name=Magenta Obsidian Shulker Box
tile.ironchest.shulker_box.obsidian.light_blue.name=Light Blue Obsidian Shulker Box
tile.ironchest.shulker_box.obsidian.yellow.name=Yellow Obsidian Shulker Box
tile.ironchest.shulker_box.obsidian.lime.name=Lime Obsidian Shulker Box
tile.ironchest.shulker_box.obsidian.pink.name=Pink Obsidian Shulker Box
tile.ironchest.shulker_box.obsidian.gray.name=Gray Obsidian Shulker Box
tile.ironchest.shulker_box.obsidian.silver.name=Silver Obsidian Shulker Box
tile.ironchest.shulker_box.obsidian.cyan.name=Cyan Obsidian Shulker Box
tile.ironchest.shulker_box.obsidian.purple.name=Purple Obsidian Shulker Box
tile.ironchest.shulker_box.obsidian.blue.name=Blue Obsidian Shulker Box
tile.ironchest.shulker_box.obsidian.brown.name=Brown Obsidian Shulker Box
tile.ironchest.shulker_box.obsidian.green.name=Green Obsidian Shulker Box
tile.ironchest.shulker_box.obsidian.red.name=Red Obsidian Shulker Box
tile.ironchest.shulker_box.obsidian.black.name=Black Obsidian Shulker Box
item.ironchest.shulker_box.iron_gold.name=Iron to Gold Shulker Box Upgrade
item.ironchest.shulker_box.iron_gold.tooltip=Used to upgrade a Iron Shulker Box to a Gold Shulker Box\nThe color of the Shulker Box will stay the same.
item.ironchest.shulker_box.gold_diamond.name=Gold to Diamond Shulker Box Upgrade
item.ironchest.shulker_box.gold_diamond.tooltip=Used to upgrade a Gold Shulker Box to a Diamond Shulker Box\nThe color of the Shulker Box will stay the same.
item.ironchest.shulker_box.copper_silver.name=Copper to Silver Shulker Box Upgrade
item.ironchest.shulker_box.copper_silver.tooltip=Used to upgrade a Copper Shulker Box to a Silver Shulker Box\nThe color of the Shulker Box will stay the same.
item.ironchest.shulker_box.silver_gold.name=Silver to Gold Shulker Box Upgrade
item.ironchest.shulker_box.silver_gold.tooltip=Used to upgrade a Silver Shulker Box to a Gold Shulker Box\nThe color of the Shulker Box will stay the same.
item.ironchest.shulker_box.copper_iron.name=Copper to Iron Shulker Box Upgrade
item.ironchest.shulker_box.copper_iron.tooltip=Used to upgrade a Copper Shulker Box to a Iron Shulker Box\nThe color of the Shulker Box will stay the same.
item.ironchest.shulker_box.diamond_crystal.name=Diamond to Crystal Shulker Box Upgrade
item.ironchest.shulker_box.diamond_crystal.tooltip=Used to upgrade a Diamond Shulker Box to a Crystal Shulker Box\nThe color of the Shulker Box will stay the same.
item.ironchest.shulker_box.vanilla_iron.name=Vanilla to Iron Shulker Box Upgrade
item.ironchest.shulker_box.vanilla_iron.tooltip=Used to upgrade a Vanilla Shulker Box to a Iron Shulker Box\nThe color of the Shulker Box will stay the same.
item.ironchest.shulker_box.vanilla_copper.name=Vanilla to Copper Shulker Box Upgrade
item.ironchest.shulker_box.vanilla_copper.tooltip=Used to upgrade a Vanilla Shulker Box to a Copper Shulker Box\nThe color of the Shulker Box will stay the same.
item.ironchest.shulker_box.diamond_obsidian.name=Diamond to Obsidian Shulker Box Upgrade
item.ironchest.shulker_box.diamond_obsidian.tooltip=Used to upgrade a Diamond Shulker Box to a Obsidian Shulker Box\nThe color of the Shulker Box will stay the same.
##############
# GUIs #
##############
itemGroup.IronChest=Iron Chests

View File

@ -1,17 +1,21 @@
tile.ironchest:IRON.name=Cofre de Hierro
tile.ironchest:GOLD.name=Cofre de Oro
tile.ironchest:DIAMOND.name=Cofre de Diamante
tile.ironchest:COPPER.name=Cofre de Cobre
tile.ironchest:SILVER.name=Cofre de Plata
tile.ironchest:CRYSTAL.name=Cofre de Cristal
tile.ironchest:OBSIDIAN.name=Cofre de Obsidiana
################
# Chests #
################
item.ironchest:IRONGOLD.name=Mejora de Cofre de Hierro a Oro
item.ironchest:GOLDDIAMOND.name=Mejora de Cofre de Oro a Diamante
item.ironchest:COPPERSILVER.name=Mejora de Cofre de Cobre a Plata
item.ironchest:SILVERGOLD.name=Mejora de Cofre de Plata a Oro
item.ironchest:COPPERIRON.name=Mejora de Cofre de Cobre a Hierro
item.ironchest:DIAMONDCRYSTAL.name=Mejora de Cofre de Diamante a Cristal
item.ironchest:WOODIRON.name=Mejora de Cofre de Madera a Hierro
item.ironchest:WOODCOPPER.name=Mejora de Cofre de Madera a Cobre
item.ironchest:DIAMONDOBSIDIAN.name=Mejora de Cofre de Diamante a Obsidiana
tile.ironchest.chest.iron.name=Cofre de Hierro
tile.ironchest.chest.gold.name=Cofre de Oro
tile.ironchest.chest.diamond.name=Cofre de Diamante
tile.ironchest.chest.copper.name=Cofre de Cobre
tile.ironchest.chest.silver.name=Cofre de Plata
tile.ironchest.chest.crystal.name=Cofre de Cristal
tile.ironchest.chest.obsidian.name=Cofre de Obsidiana
item.ironchest.chest.iron_gold.name=Mejora de Cofre de Hierro a Oro
item.ironchest.chest.gold_diamond.name=Mejora de Cofre de Oro a Diamante
item.ironchest.chest.copper_silver.name=Mejora de Cofre de Cobre a Plata
item.ironchest.chest.silver_gold.name=Mejora de Cofre de Plata a Oro
item.ironchest.chest.copper_iron.name=Mejora de Cofre de Cobre a Hierro
item.ironchest.chest.diamond_crystal.name=Mejora de Cofre de Diamante a Cristal
item.ironchest.chest.wood_iron.name=Mejora de Cofre de Madera a Hierro
item.ironchest.chest.wood_copper.name=Mejora de Cofre de Madera a Cobre
item.ironchest.chest.diamond_obsidian.name=Mejora de Cofre de Diamante a Obsidiana

View File

@ -1,18 +1,22 @@
tile.ironchest:IRON.name=Raudkirst
tile.ironchest:GOLD.name=Kuldkirst
tile.ironchest:DIAMOND.name=Teemantkirst
tile.ironchest:COPPER.name=Vaskkirst
tile.ironchest:SILVER.name=Hõbekirst
tile.ironchest:CRYSTAL.name=Kristallkirst
tile.ironchest:OBSIDIAN.name=Obsidiaankirst
tile.ironchest:DIRTCHEST9000.name=Muldkirst 9000!
################
# Chests #
################
item.ironchest:IRONGOLD.name=Raudkirst kuld kirstuks
item.ironchest:GOLDDIAMOND.name=Kuldkirst teemandist kirstuks
item.ironchest:COPPERSILVER.name=Vaskkirst hõbedast kirstuks
item.ironchest:SILVERGOLD.name=Hõbekirst kullast kirstuks
item.ironchest:COPPERIRON.name=Vaskkirst rauast kirstuks
item.ironchest:DIAMONDCRYSTAL.name=Teemantkirst kristallist kirstuks
item.ironchest:WOODIRON.name=Puukirst rauast kirstuks
item.ironchest:WOODCOPPER.name=Puukirst vasest kirstuks
item.ironchest:DIAMONDOBSIDIAN.name=Teemantkirst obsidiaanist kirstuks
tile.ironchest.chest.iron.name=Raudkirst
tile.ironchest.chest.gold.name=Kuldkirst
tile.ironchest.chest.diamond.name=Teemantkirst
tile.ironchest.chest.copper.name=Vaskkirst
tile.ironchest.chest.silver.name=Hõbekirst
tile.ironchest.chest.crystal.name=Kristallkirst
tile.ironchest.chest.obsidian.name=Obsidiaankirst
tile.ironchest.chest.dirtchest9000.name=Muldkirst 9000!
item.ironchest.chest.iron_gold.name=Raudkirst kuld kirstuks
item.ironchest.chest.gold_diamond.name=Kuldkirst teemandist kirstuks
item.ironchest.chest.copper_silver.name=Vaskkirst hõbedast kirstuks
item.ironchest.chest.silver_gold.name=Hõbekirst kullast kirstuks
item.ironchest.chest.copper_iron.name=Vaskkirst rauast kirstuks
item.ironchest.chest.diamond_crystal.name=Teemantkirst kristallist kirstuks
item.ironchest.chest.wood_iron.name=Puukirst rauast kirstuks
item.ironchest.chest.wood_copper.name=Puukirst vasest kirstuks
item.ironchest.chest.diamond_obsidian.name=Teemantkirst obsidiaanist kirstuks

View File

@ -1,25 +1,29 @@
tile.ironchest:IRON.name=Coffre en fer
tile.ironchest:GOLD.name=Coffre en or
tile.ironchest:DIAMOND.name=Coffre en diamant
tile.ironchest:COPPER.name=Coffre en cuivre
tile.ironchest:SILVER.name=Coffre en argent
tile.ironchest:CRYSTAL.name=Coffre en cristal
tile.ironchest:OBSIDIAN.name=Coffre en obsidienne
tile.ironchest:DIRTCHEST9000.name=DirtChest 9000 !
################
# Chests #
################
item.ironchest:IRONGOLD.name=Upgrade de coffre en fer à l'or
item.ironchest:GOLDDIAMOND.name=Upgrade de coffre en or au diamant
item.ironchest:COPPERSILVER.name=Upgrade de coffre en cuivre à l'argent
item.ironchest:SILVERGOLD.name=Upgrade de coffre en argent à l'or
item.ironchest:COPPERIRON.name=Upgrade de coffre en cuivre au fer
item.ironchest:DIAMONDCRYSTAL.name=Upgrade de coffre en diamant au cristal
item.ironchest:WOODIRON.name=Upgrade de coffre en bois au fer
item.ironchest:WOODCOPPER.name=Upgrade de coffre en bois au cuivre
item.ironchest:DIAMONDOBSIDIAN.name=Upgrade de coffre en diamant à l'obsidienne
tile.ironchest.chest.iron.name=Coffre en fer
tile.ironchest.chest.gold.name=Coffre en or
tile.ironchest.chest.diamond.name=Coffre en diamant
tile.ironchest.chest.copper.name=Coffre en cuivre
tile.ironchest.chest.silver.name=Coffre en argent
tile.ironchest.chest.crystal.name=Coffre en cristal
tile.ironchest.chest.obsidian.name=Coffre en obsidienne
tile.ironchest.chest.dirtchest9000.name=DirtChest 9000 !
book.ironchest:dirtchest9000.title=Comment utiliser votre DirtChest 9000 !
book.ironchest:dirtchest9000.page1=Bienvenue à votre nouveau DirtChest 9000 ! Nous espérons que vous apprécierez les innombrables années heureuses à emmagasiner votre stack de terre dans notre utilitaire de stockage.
book.ironchest:dirtchest9000.page2=Utilisation : insérez tout simplement le stack de terre de votre choix dans la case hautement réceptive et appréciez l'immense commodité d'avoir cette terre disponible à portée de la main, à tout moment où vous passez devant ce coffre !
book.ironchest:dirtchest9000.page3=Nous espérons que vous avez apprécié faire la critique de ce manuel d'instruction, et espérons que vous allez considérer utiliser nos produits dans le futur ! Nos meilleures salutations, les rédacteurs du manuel DirtChest 9000 inc.
book.ironchest:dirtchest9000.page4=Garantie : ce produit n'a aucune garantie quelconque. Votre terre peut ne pas être stockée, elle peut se fondre lentement dans l'environnement, ou encore, elle peut ne rien faire du tout.
book.ironchest:dirtchest9000.page5=DirtChest 9000 respecte l'environnement. Veuillez disposer de ce guide de manière responsable, et quoique vous fassiez, ne le balancez juste pas dans de la lave. Nous en serions attristés.
item.ironchest.chest.iron_gold.name=Upgrade de coffre en fer à l'or
item.ironchest.chest.gold_diamond.name=Upgrade de coffre en or au diamant
item.ironchest.chest.copper_silver.name=Upgrade de coffre en cuivre à l'argent
item.ironchest.chest.silver_gold.name=Upgrade de coffre en argent à l'or
item.ironchest.chest.copper_iron.name=Upgrade de coffre en cuivre au fer
item.ironchest.chest.diamond_crystal.name=Upgrade de coffre en diamant au cristal
item.ironchest.chest.wood_iron.name=Upgrade de coffre en bois au fer
item.ironchest.chest.wood_copper.name=Upgrade de coffre en bois au cuivre
item.ironchest.chest.diamond_obsidian.name=Upgrade de coffre en diamant à l'obsidienne
book.ironchest.dirtchest9000.title=Comment utiliser votre DirtChest 9000 !
book.ironchest.dirtchest9000.page1=Bienvenue à votre nouveau DirtChest 9000 ! Nous espérons que vous apprécierez les innombrables années heureuses à emmagasiner votre stack de terre dans notre utilitaire de stockage.
book.ironchest.dirtchest9000.page2=Utilisation : insérez tout simplement le stack de terre de votre choix dans la case hautement réceptive et appréciez l'immense commodité d'avoir cette terre disponible à portée de la main, à tout moment où vous passez devant ce coffre !
book.ironchest.dirtchest9000.page3=Nous espérons que vous avez apprécié faire la critique de ce manuel d'instruction, et espérons que vous allez considérer utiliser nos produits dans le futur ! Nos meilleures salutations, les rédacteurs du manuel DirtChest 9000 inc.
book.ironchest.dirtchest9000.page4=Garantie : ce produit n'a aucune garantie quelconque. Votre terre peut ne pas être stockée, elle peut se fondre lentement dans l'environnement, ou encore, elle peut ne rien faire du tout.
book.ironchest.dirtchest9000.page5=DirtChest 9000 respecte l'environnement. Veuillez disposer de ce guide de manière responsable, et quoique vous fassiez, ne le balancez juste pas dans de la lave. Nous en serions attristés.

View File

@ -1,19 +1,21 @@
#fr_FR translated by robin4002
################
# Chests #
################
tile.ironchest:IRON.name=Coffre en Fer
tile.ironchest:GOLD.name=Coffre en Or
tile.ironchest:DIAMOND.name=Coffre en Diamant
tile.ironchest:COPPER.name=Coffre en Cuivre
tile.ironchest:SILVER.name=Coffre en Argent
tile.ironchest:CRYSTAL.name=Coffre en Cristal
tile.ironchest:OBSIDIAN.name=Coffre en Obsidienne
tile.ironchest.chest.iron.name=Coffre en Fer
tile.ironchest.chest.gold.name=Coffre en Or
tile.ironchest.chest.diamond.name=Coffre en Diamant
tile.ironchest.chest.copper.name=Coffre en Cuivre
tile.ironchest.chest.silver.name=Coffre en Argent
tile.ironchest.chest.crystal.name=Coffre en Cristal
tile.ironchest.chest.obsidian.name=Coffre en Obsidienne
item.ironchest:IRONGOLD.name=Amélioration de coffre en fer à or
item.ironchest:GOLDDIAMOND.name=Amélioration de coffre en or à diamant
item.ironchest:COPPERSILVER.name=Amélioration de coffre en cuivre à argent
item.ironchest:SILVERGOLD.name=Amélioration de coffre en argent à or
item.ironchest:COPPERIRON.name=Amélioration de coffre en cuivre à fer
item.ironchest:DIAMONDCRYSTAL.name=Amélioration de coffre en diamant à crital
item.ironchest:WOODIRON.name=Amélioration de coffre en bois à fer
item.ironchest:WOODCOPPER.name=Amélioration de coffre en bois à cuivre
item.ironchest:DIAMONDOBSIDIAN.name=Amélioration de coffre en diamant à obsidienne
item.ironchest.chest.iron_gold.name=Amélioration de coffre en fer à or
item.ironchest.chest.gold_diamond.name=Amélioration de coffre en or à diamant
item.ironchest.chest.copper_silver.name=Amélioration de coffre en cuivre à argent
item.ironchest.chest.silver_gold.name=Amélioration de coffre en argent à or
item.ironchest.chest.copper_iron.name=Amélioration de coffre en cuivre à fer
item.ironchest.chest.diamond_crystal.name=Amélioration de coffre en diamant à crital
item.ironchest.chest.wood_iron.name=Amélioration de coffre en bois à fer
item.ironchest.chest.wood_copper.name=Amélioration de coffre en bois à cuivre
item.ironchest.chest.diamond_obsidian.name=Amélioration de coffre en diamant à obsidienne

View File

@ -1,25 +1,29 @@
tile.ironchest:IRON.name=Vas láda
tile.ironchest:GOLD.name=Arany láda
tile.ironchest:DIAMOND.name=Gyémánt láda
tile.ironchest:COPPER.name=Réz láda
tile.ironchest:SILVER.name=Ezüst láda
tile.ironchest:CRYSTAL.name=Kristály láda
tile.ironchest:OBSIDIAN.name=Obszidián láda
tile.ironchest:DIRTCHEST9000.name=DirtChest 9000!
################
# Chests #
################
item.ironchest:IRONGOLD.name=Vasról arany ládára bővítő
item.ironchest:GOLDDIAMOND.name=Aranyról gyémánt ládára bővítő
item.ironchest:COPPERSILVER.name=Rézről ezüst ládára bővítő
item.ironchest:SILVERGOLD.name=Ezüstről arany ládára bővítő
item.ironchest:COPPERIRON.name=Részről vas ládára bővítő
item.ironchest:DIAMONDCRYSTAL.name=Gyémántról kristály ládára bővítő
item.ironchest:WOODIRON.name=Normálról (fa) vas ládára bővítő
item.ironchest:WOODCOPPER.name=Normálról (fa) réz ládára bővítő
item.ironchest:DIAMONDOBSIDIAN.name=Gyémántról obszidián ládára bővítő
tile.ironchest.chest.iron.name=Vas láda
tile.ironchest.chest.gold.name=Arany láda
tile.ironchest.chest.diamond.name=Gyémánt láda
tile.ironchest.chest.copper.name=Réz láda
tile.ironchest.chest.silver.name=Ezüst láda
tile.ironchest.chest.crystal.name=Kristály láda
tile.ironchest.chest.obsidian.name=Obszidián láda
tile.ironchest.chest.dirtchest9000.name=DirtChest 9000!
book.ironchest:dirtchest9000.title=Hogyan használd a DirtChest 9000-et!
book.ironchest:dirtchest9000.page1=Üdvözöl az új DirtChest 9000! Reméljük sok boldog évig élvezni fogod egy halom föld tárólásának eme vadiúj módját.
book.ironchest:dirtchest9000.page2=Használat: egyszerűen pakolj bele egy halom földet eme különlegesen érzékeny tárolóegységbe és élvezd a kényelmet, hogy egy halom föld mindig rendelkezésedre fog állni, bármikor nyitod is ki ezt a ládát.
book.ironchest:dirtchest9000.page3=Reméljük, hogy élvezted eme kézikönyv olvasgatását, és megfontolod más termékünk használatát is a jövöben. Üdvözlettel: A DirtChest 9000 kézikönyv írói.
book.ironchest:dirtchest9000.page4=Garancia: Ez a termék nem rendelkezik semmiféle garanciával. A belepakolt föld lehet, hogy nem is kerül tárolásra, elszivárog a környezetbe, vagy az is lehetséges hogy nem történik vele semmi.
book.ironchest:dirtchest9000.page5=A DirtChest 9000 környezetbarát termék. Kérjül fokozottan ügyelj erre a kézikönyv megsemmisitésekor, és semmiképpen se dobd lávába. Akkor ugyanis nagyon szomorúak leszünk.
item.ironchest.chest.iron_gold.name=Vasról arany ládára bővítő
item.ironchest.chest.gold_diamond.name=Aranyról gyémánt ládára bővítő
item.ironchest.chest.copper_silver.name=Rézről ezüst ládára bővítő
item.ironchest.chest.silver_gold.name=Ezüstről arany ládára bővítő
item.ironchest.chest.copper_iron.name=Részről vas ládára bővítő
item.ironchest.chest.diamond_crystal.name=Gyémántról kristály ládára bővítő
item.ironchest.chest.wood_iron.name=Normálról (fa) vas ládára bővítő
item.ironchest.chest.wood_copper.name=Normálról (fa) réz ládára bővítő
item.ironchest.chest.diamond_obsidian.name=Gyémántról obszidián ládára bővítő
book.ironchest.dirtchest9000.title=Hogyan használd a DirtChest 9000-et!
book.ironchest.dirtchest9000.page1=Üdvözöl az új DirtChest 9000! Reméljük sok boldog évig élvezni fogod egy halom föld tárólásának eme vadiúj módját.
book.ironchest.dirtchest9000.page2=Használat: egyszerűen pakolj bele egy halom földet eme különlegesen érzékeny tárolóegységbe és élvezd a kényelmet, hogy egy halom föld mindig rendelkezésedre fog állni, bármikor nyitod is ki ezt a ládát.
book.ironchest.dirtchest9000.page3=Reméljük, hogy élvezted eme kézikönyv olvasgatását, és megfontolod más termékünk használatát is a jövöben. Üdvözlettel: A DirtChest 9000 kézikönyv írói.
book.ironchest.dirtchest9000.page4=Garancia: Ez a termék nem rendelkezik semmiféle garanciával. A belepakolt föld lehet, hogy nem is kerül tárolásra, elszivárog a környezetbe, vagy az is lehetséges hogy nem történik vele semmi.
book.ironchest.dirtchest9000.page5=A DirtChest 9000 környezetbarát termék. Kérjül fokozottan ügyelj erre a kézikönyv megsemmisitésekor, és semmiképpen se dobd lávába. Akkor ugyanis nagyon szomorúak leszünk.

View File

@ -1,25 +1,29 @@
tile.ironchest:IRON.name=Baule di ferro
tile.ironchest:GOLD.name=Baule d'oro
tile.ironchest:DIAMOND.name=Baule di diamante
tile.ironchest:COPPER.name=Baule di rame
tile.ironchest:SILVER.name=Baule d'argento
tile.ironchest:CRYSTAL.name=Baule di cristallo
tile.ironchest:OBSIDIAN.name=Baule di ossidiana
tile.ironchest:DIRTCHEST9000.name=DirtChest 9000!
################
# Chests #
################
item.ironchest:IRONGOLD.name=Potenziamento da ferro a oro
item.ironchest:GOLDDIAMOND.name=Potenziamento da oro a diamante
item.ironchest:COPPERSILVER.name=Potenziamento da rame a argento
item.ironchest:SILVERGOLD.name=Potenziamento da argento a oro
item.ironchest:COPPERIRON.name=Potenziamento da rame a ferro
item.ironchest:DIAMONDCRYSTAL.name=Potenziamento da diamante a cristallo
item.ironchest:WOODIRON.name=Potenziamento da legno a ferro
item.ironchest:WOODCOPPER.name=Potenziamento da legno a rame
item.ironchest:DIAMONDOBSIDIAN.name=Potenziamento da diamante a ossidiana
tile.ironchest.chest.iron.name=Baule di ferro
tile.ironchest.chest.gold.name=Baule d'oro
tile.ironchest.chest.diamond.name=Baule di diamante
tile.ironchest.chest.copper.name=Baule di rame
tile.ironchest.chest.silver.name=Baule d'argento
tile.ironchest.chest.crystal.name=Baule di cristallo
tile.ironchest.chest.obsidian.name=Baule di ossidiana
tile.ironchest.chest.dirtchest9000.name=DirtChest 9000!
book.ironchest:dirtchest9000.title=Come usare la tua DirtChest 9000!
book.ironchest:dirtchest9000.page1=Benvenuto alla tua nuova DirtChest 9000! Speriamo che possiate godere di molti anni felici in cui imagazzinate grandi quantità di terra nei nostri contenitori.
book.ironchest:dirtchest9000.page2=Uso: inserisci uno stack di terra nello slot e goditi la grande convenienza di avere della terra a tua disposizione ogni volta che passi vicino alla cassa!
book.ironchest:dirtchest9000.page3=Speriamo che questo manuale vi sia stato utile, e speriamo che prenderete in considerazione usare i nostri prodotti in futuro ! I migliori saluti, i scrittori del manuale per la DirtChest 9000.
book.ironchest:dirtchest9000.page4=Garanzia: Questo prodotto non ha nessuna garanzia di alcun tipo. La tua terra potrebbe non essere imagazzinata, potrebbe lentamente fuoriuscire nell'ambiente, oppure, non farà niente.
book.ironchest:dirtchest9000.page5=La DirtChest 9000 è amico dell'ambiente. Per favore conservate questo libro in un modo responsabile, e non buttatelo nella lava come un oggetto qualsiasi. Saremmo veramente tristi.
item.ironchest.chest.iron_gold.name=Potenziamento da ferro a oro
item.ironchest.chest.gold_diamond.name=Potenziamento da oro a diamante
item.ironchest.chest.copper_silver.name=Potenziamento da rame a argento
item.ironchest.chest.silver_gold.name=Potenziamento da argento a oro
item.ironchest.chest.copper_iron.name=Potenziamento da rame a ferro
item.ironchest.chest.diamond_crystal.name=Potenziamento da diamante a cristallo
item.ironchest.chest.wood_iron.name=Potenziamento da legno a ferro
item.ironchest.chest.wood_copper.name=Potenziamento da legno a rame
item.ironchest.chest.diamond_obsidian.name=Potenziamento da diamante a ossidiana
book.ironchest.dirtchest9000.title=Come usare la tua DirtChest 9000!
book.ironchest.dirtchest9000.page1=Benvenuto alla tua nuova DirtChest 9000! Speriamo che possiate godere di molti anni felici in cui imagazzinate grandi quantità di terra nei nostri contenitori.
book.ironchest.dirtchest9000.page2=Uso: inserisci uno stack di terra nello slot e goditi la grande convenienza di avere della terra a tua disposizione ogni volta che passi vicino alla cassa!
book.ironchest.dirtchest9000.page3=Speriamo che questo manuale vi sia stato utile, e speriamo che prenderete in considerazione usare i nostri prodotti in futuro ! I migliori saluti, i scrittori del manuale per la DirtChest 9000.
book.ironchest.dirtchest9000.page4=Garanzia: Questo prodotto non ha nessuna garanzia di alcun tipo. La tua terra potrebbe non essere imagazzinata, potrebbe lentamente fuoriuscire nell'ambiente, oppure, non farà niente.
book.ironchest.dirtchest9000.page5=La DirtChest 9000 è amico dell'ambiente. Per favore conservate questo libro in un modo responsabile, e non buttatelo nella lava come un oggetto qualsiasi. Saremmo veramente tristi.

View File

@ -1,25 +1,29 @@
tile.ironchest:IRON.name=철 상자
tile.ironchest:GOLD.name=금 상자
tile.ironchest:DIAMOND.name=다이아몬드 상자
tile.ironchest:COPPER.name=구리 상자
tile.ironchest:SILVER.name=은 상자
tile.ironchest:CRYSTAL.name=수정 상자
tile.ironchest:OBSIDIAN.name=흑요석 상자
tile.ironchest:DIRTCHEST9000.name=흙 상자 9000!
################
# Chests #
################
item.ironchest:IRONGOLD.name=철 상자를 금 상자로 업그레이드
item.ironchest:GOLDDIAMOND.name=금 상자를 다이아몬드 상자로 업그레이드
item.ironchest:COPPERSILVER.name=구리 상자를 은 상자로 업그레이드
item.ironchest:SILVERGOLD.name=은 상자를 금 상자로 업그레이드
item.ironchest:COPPERIRON.name=구리 상자를 철 상자로 업그레이드
item.ironchest:DIAMONDCRYSTAL.name=다이아몬드 상자를 수정 상자로 업그레이드
item.ironchest:WOODIRON.name=나무 상자를 철 상자로 업그레이드
item.ironchest:WOODCOPPER.name=나무 상자를 구리 상자로 업그레이드
item.ironchest:DIAMONDOBSIDIAN.name=다이아몬드 상자를 흑요석 상자로 업그레이드
tile.ironchest.chest.iron.name=철 상자
tile.ironchest.chest.gold.name=금 상자
tile.ironchest.chest.diamond.name=다이아몬드 상자
tile.ironchest.chest.copper.name=구리 상자
tile.ironchest.chest.silver.name=은 상자
tile.ironchest.chest.crystal.name=수정 상자
tile.ironchest.chest.obsidian.name=흑요석 상자
tile.ironchest.chest.dirtchest9000.name=흙 상자 9000!
book.ironchest:dirtchest9000.title=흙 상자 9000을 사용하는 방법!
book.ironchest:dirtchest9000.page1=새로운 흙 상자 9000을 사용하게 되신 것을 환영합니다! 우리는 당신이 이 저장 도구에서 흙들을 많은 해 동안 행복하게 저장하기를 기원합니다.
item.ironchest.chest.iron_gold.name=철 상자를 금 상자로 업그레이드
item.ironchest.chest.gold_diamond.name=금 상자를 다이아몬드 상자로 업그레이드
item.ironchest.chest.copper_silver.name=구리 상자를 은 상자로 업그레이드
item.ironchest.chest.silver_gold.name=은 상자를 금 상자로 업그레이드
item.ironchest.chest.copper_iron.name=구리 상자를 철 상자로 업그레이드
item.ironchest.chest.diamond_crystal.name=다이아몬드 상자를 수정 상자로 업그레이드
item.ironchest.chest.wood_iron.name=나무 상자를 철 상자로 업그레이드
item.ironchest.chest.wood_copper.name=나무 상자를 구리 상자로 업그레이드
item.ironchest.chest.diamond_obsidian.name=다이아몬드 상자를 흑요석 상자로 업그레이드
book.ironchest.dirtchest9000.title=흙 상자 9000을 사용하는 방법!
book.ironchest.dirtchest9000.page1=새로운 흙 상자 9000을 사용하게 되신 것을 환영합니다! 우리는 당신이 이 저장 도구에서 흙들을 많은 해 동안 행복하게 저장하기를 기원합니다.
사용법: 단순히 흙 뭉치들을 아이템 슬롯에 넣고 이 상자를 지나갈 때마다 언제나 당신에게 제공되어지는 흙들의 편리함을 누리세요!
book.ironchest:dirtchest9000.page3=우리는 당신이 이 사용설명서를 즐겁게 읽었고, 나중에 이 제품을 사용하기를 바랍니다! 흙 상자 9000 매뉴얼
book.ironchest:dirtchest9000.page4=주의: 이 제품에는 어떤 종류의 보증도 하지 않습니다 당신의 흙들은 저장되지 않을 수도 있습니다. 그러면 이 흙 상자는 천천히 환경 속으로 돌아가거나, 혹은 아무것도 하지 않을 것입니다.
book.ironchest:dirtchest9000.page5=흙 상자 9000은 환경 친화적입니다. 가이드북의 처분에는 책임이 따릅니다, 그러니 어떠한 경우라도 용암에 버리지 마세요. 우리는 매우 슬플 것입니다.
book.ironchest.dirtchest9000.page3=우리는 당신이 이 사용설명서를 즐겁게 읽었고, 나중에 이 제품을 사용하기를 바랍니다! 흙 상자 9000 매뉴얼
book.ironchest.dirtchest9000.page4=주의: 이 제품에는 어떤 종류의 보증도 하지 않습니다 당신의 흙들은 저장되지 않을 수도 있습니다. 그러면 이 흙 상자는 천천히 환경 속으로 돌아가거나, 혹은 아무것도 하지 않을 것입니다.
book.ironchest.dirtchest9000.page5=흙 상자 9000은 환경 친화적입니다. 가이드북의 처분에는 책임이 따릅니다, 그러니 어떠한 경우라도 용암에 버리지 마세요. 우리는 매우 슬플 것입니다.

View File

@ -1,25 +1,29 @@
tile.ironchest:IRON.name=Jernkiste
tile.ironchest:GOLD.name=Gullkiste
tile.ironchest:DIAMOND.name=Diamantkiste
tile.ironchest:COPPER.name=Kobberkiste
tile.ironchest:SILVER.name=Sølvkiste
tile.ironchest:CRYSTAL.name=Krystallkiste
tile.ironchest:OBSIDIAN.name=Obsidiankiste
tile.ironchest:DIRTCHEST9000.name=JordKiste 9000!
################
# Chests #
################
item.ironchest:IRONGOLD.name=Jern til Gull Kisteoppgradering
item.ironchest:GOLDDIAMOND.name=Gull til Diamant Kisteoppgradering
item.ironchest:COPPERSILVER.name=Kobber til Sølv Kisteoppgradering
item.ironchest:SILVERGOLD.name=Sølv til Gull Kisteoppgradering
item.ironchest:COPPERIRON.name=Kobber til Jern Kisteoppgradering
item.ironchest:DIAMONDCRYSTAL.name=Diamant til Krystall Kisteoppgradering
item.ironchest:WOODIRON.name=Tre til Jern Kisteoppgradering
item.ironchest:WOODCOPPER.name=Tre til Kobber Kisteoppgradering
item.ironchest:DIAMONDOBSIDIAN.name=Diamant til Obsidian Kisteoppgradering
tile.ironchest.chest.iron.name=Jernkiste
tile.ironchest.chest.gold.name=Gullkiste
tile.ironchest.chest.diamond.name=Diamantkiste
tile.ironchest.chest.copper.name=Kobberkiste
tile.ironchest.chest.silver.name=Sølvkiste
tile.ironchest.chest.crystal.name=Krystallkiste
tile.ironchest.chest.obsidian.name=Obsidiankiste
tile.ironchest.chest.dirtchest9000.name=JordKiste 9000!
book.ironchest:dirtchest9000.title=Hvordan bruker din JordKiste 9000!
book.ironchest:dirtchest9000.page1=Velkommen til din nye JordKiste9000! Vi håper du vil nyte mange lykkelige år med lagring av din stabel av jord i vå lager verktøy.
book.ironchest:dirtchest9000.page2=Bruk: bare å sette bunken med jord av ditt valg i den svært mottakelige sporet og nyte den store fordelen med åa den jorden tilgjengelig for deg, nådu passerer denne kisten!
book.ironchest:dirtchest9000.page3=Vi håper du har hatt en god fornøyelse gjennom denne bruksanvisningen, og hår du vil vurdere å bruke vå produkter i fremtiden! Vennlig hilsen, JordKiste9000 manual forfattere innarbeidet.
book.ironchest:dirtchest9000.page4=Garanti: Dette produktet har ingen garantier av noe slag. Din jord kan ikke lagres, det kan sakte lekke ut i miljøet, eller alternativt, kan det ikke gjøre noe i det hele tatt.
book.ironchest:dirtchest9000.page5=JordKiste 9000 er snill mot miljøet. Vennligst ta hånd om denne veileder boken ansvarlig, og hva du enn gjør ikke kast den inn i noe lav. Vi ville bli veldig trist.
item.ironchest.chest.iron_gold.name=Jern til Gull Kisteoppgradering
item.ironchest.chest.gold_diamond.name=Gull til Diamant Kisteoppgradering
item.ironchest.chest.copper_silver.name=Kobber til Sølv Kisteoppgradering
item.ironchest.chest.silver_gold.name=Sølv til Gull Kisteoppgradering
item.ironchest.chest.copper_iron.name=Kobber til Jern Kisteoppgradering
item.ironchest.chest.diamond_crystal.name=Diamant til Krystall Kisteoppgradering
item.ironchest.chest.wood_iron.name=Tre til Jern Kisteoppgradering
item.ironchest.chest.wood_copper.name=Tre til Kobber Kisteoppgradering
item.ironchest.chest.diamond_obsidian.name=Diamant til Obsidian Kisteoppgradering
book.ironchest.dirtchest9000.title=Hvordan bruker din JordKiste 9000!
book.ironchest.dirtchest9000.page1=Velkommen til din nye JordKiste9000! Vi håper du vil nyte mange lykkelige år med lagring av din stabel av jord i vå lager verktøy.
book.ironchest.dirtchest9000.page2=Bruk: bare å sette bunken med jord av ditt valg i den svært mottakelige sporet og nyte den store fordelen med åa den jorden tilgjengelig for deg, nådu passerer denne kisten!
book.ironchest.dirtchest9000.page3=Vi håper du har hatt en god fornøyelse gjennom denne bruksanvisningen, og hår du vil vurdere å bruke vå produkter i fremtiden! Vennlig hilsen, JordKiste9000 manual forfattere innarbeidet.
book.ironchest.dirtchest9000.page4=Garanti: Dette produktet har ingen garantier av noe slag. Din jord kan ikke lagres, det kan sakte lekke ut i miljøet, eller alternativt, kan det ikke gjøre noe i det hele tatt.
book.ironchest.dirtchest9000.page5=JordKiste 9000 er snill mot miljøet. Vennligst ta hånd om denne veileder boken ansvarlig, og hva du enn gjør ikke kast den inn i noe lav. Vi ville bli veldig trist.

View File

@ -1,25 +1,25 @@
tile.ironchest:IRON.name=Ijzeren Kist
tile.ironchest:GOLD.name=Gouden Kist
tile.ironchest:DIAMOND.name=Diamanten Kist
tile.ironchest:COPPER.name=Koperen Kist
tile.ironchest:SILVER.name=Zilveren Kist
tile.ironchest:CRYSTAL.name=Kristallen Kist
tile.ironchest:OBSIDIAN.name=Obsidiaanen Kist
tile.ironchest:DIRTCHEST9000.name=Aarden Kist 9000!
tile.ironchest.chest.iron.name=Ijzeren Kist
tile.ironchest.chest.gold.name=Gouden Kist
tile.ironchest.chest.diamond.name=Diamanten Kist
tile.ironchest.chest.copper.name=Koperen Kist
tile.ironchest.chest.silver.name=Zilveren Kist
tile.ironchest.chest.crystal.name=Kristallen Kist
tile.ironchest.chest.obsidian.name=Obsidiaanen Kist
tile.ironchest.chest.dirtchest9000.name=Aarden Kist 9000!
item.ironchest:IRONGOLD.name=Ijzeren naar Gouden Kist Transformatie
item.ironchest:GOLDDIAMOND.name=Gouden naar Diamanten Kist Transformatie
item.ironchest:COPPERSILVER.name=Koperen naar Zilveren Kist Transformatie
item.ironchest:SILVERGOLD.name=Zilveren naar Gouden Kist Transformatie
item.ironchest:COPPERIRON.name=Koperen naar Ijzeren Kist Transformatie
item.ironchest:DIAMONDCRYSTAL.name=Diamanten naar Kristallen Kist Transformatie
item.ironchest:WOODIRON.name=Houten naar Ijzeren Kist Transformatie
item.ironchest:WOODCOPPER.name=Houten naar Koperen Kist Transformatie
item.ironchest:DIAMONDOBSIDIAN.name=Diamanten naar Obsidiaanen Kist Transformatie
item.ironchest.chest.iron_gold.name=Ijzeren naar Gouden Kist Transformatie
item.ironchest.chest.gold_diamond.name=Gouden naar Diamanten Kist Transformatie
item.ironchest.chest.copper_silver.name=Koperen naar Zilveren Kist Transformatie
item.ironchest.chest.silver_gold.name=Zilveren naar Gouden Kist Transformatie
item.ironchest.chest.copper_iron.name=Koperen naar Ijzeren Kist Transformatie
item.ironchest.chest.diamond_crystal.name=Diamanten naar Kristallen Kist Transformatie
item.ironchest.chest.wood_iron.name=Houten naar Ijzeren Kist Transformatie
item.ironchest.chest.wood_copper.name=Houten naar Koperen Kist Transformatie
item.ironchest.chest.diamond_obsidian.name=Diamanten naar Obsidiaanen Kist Transformatie
book.ironchest:dirtchest9000.title=Hoe gebruik je uw Aarden Kist 9000!
book.ironchest:dirtchest9000.page1=Welkom voor uw nieuwe Aarden Kist 9000! We hopen dat je veel geluk zal beleven om uw hoop aarde te bewaren in onze stokeer faciliteit.
book.ironchest:dirtchest9000.page2=Gebruik: Plaats simpelweg uw hoop aarde naar uw keuze in de zeer ontvankelijke gleuf en geniet van de geriefelijkheid om dat hoop aarde altijd beschikbaar tot u te hebben, wanneer dan ook!
book.ironchest:dirtchest9000.page3=We hopen dat u heeft genoten om deze handleiding te lezen en we hopen dat u overweegt om onze producten in de toekomst te gebruiken! Met vriendelijke groeten, De Aarden Kist 9000 Handleiding Auteurs.
book.ironchest:dirtchest9000.page4=Garantie: Deze product biedt geen enkele garantie. Uw aarde kan mogenlijk niet gestockeerd worden, het kan langzaam verdampen of het kan ook helemaal niks doen.
book.ironchest:dirtchest9000.page5=Aarden Kist 9000 is mileuvriendelijk. Gelieve deze handleiding verantwoordlijk te ontdoen en gooi het niet zomaar in wat lava. We zouden zeer verdrietig zijn.
book.ironchest.dirtchest9000.title=Hoe gebruik je uw Aarden Kist 9000!
book.ironchest.dirtchest9000.page1=Welkom voor uw nieuwe Aarden Kist 9000! We hopen dat je veel geluk zal beleven om uw hoop aarde te bewaren in onze stokeer faciliteit.
book.ironchest.dirtchest9000.page2=Gebruik: Plaats simpelweg uw hoop aarde naar uw keuze in de zeer ontvankelijke gleuf en geniet van de geriefelijkheid om dat hoop aarde altijd beschikbaar tot u te hebben, wanneer dan ook!
book.ironchest.dirtchest9000.page3=We hopen dat u heeft genoten om deze handleiding te lezen en we hopen dat u overweegt om onze producten in de toekomst te gebruiken! Met vriendelijke groeten, De Aarden Kist 9000 Handleiding Auteurs.
book.ironchest.dirtchest9000.page4=Garantie: Deze product biedt geen enkele garantie. Uw aarde kan mogenlijk niet gestockeerd worden, het kan langzaam verdampen of het kan ook helemaal niks doen.
book.ironchest.dirtchest9000.page5=Aarden Kist 9000 is mileuvriendelijk. Gelieve deze handleiding verantwoordlijk te ontdoen en gooi het niet zomaar in wat lava. We zouden zeer verdrietig zijn.

View File

@ -1,17 +1,21 @@
tile.ironchest:IRON.name=Żelazna skrzynia
tile.ironchest:GOLD.name=Złota skrzynia
tile.ironchest:DIAMOND.name=Diamentowa skrzynia
tile.ironchest:COPPER.name=Miedziana skrzynia
tile.ironchest:SILVER.name=Srebrna skrzynia
tile.ironchest:CRYSTAL.name=Kryształowa skrzynia
tile.ironchest:OBSIDIAN.name=Obsydianowa skrzynia
################
# Chests #
################
item.ironchest:IRONGOLD.name=Ulepszenie żelaznej skrzyni na złotą
item.ironchest:GOLDDIAMOND.name=Ulepszenie złotej skrzyni na diamentową
item.ironchest:COPPERSILVER.name=Ulepszenie miedzianej skrzyni na srebrną
item.ironchest:SILVERGOLD.name=Ulepszenie srebrnej skrzyni na złotą
item.ironchest:COPPERIRON.name=Ulepszenie miedzianej skrzyni na żelazną
item.ironchest:DIAMONDCRYSTAL.name=Ulepszenie diamentowej skrzyni na kryształową
item.ironchest:WOODIRON.name=Ulepszenie drewnianej skrzyni na żelazną
item.ironchest:WOODCOPPER.name=Ulepszenie drewnianej skrzyni na miedzianą
item.ironchest:DIAMONDOBSIDIAN.name=Ulepszenie diamentowej skrzyni na obsydianową
tile.ironchest.chest.iron.name=Żelazna skrzynia
tile.ironchest.chest.gold.name=Złota skrzynia
tile.ironchest.chest.diamond.name=Diamentowa skrzynia
tile.ironchest.chest.copper.name=Miedziana skrzynia
tile.ironchest.chest.silver.name=Srebrna skrzynia
tile.ironchest.chest.crystal.name=Kryształowa skrzynia
tile.ironchest.chest.obsidian.name=Obsydianowa skrzynia
item.ironchest.chest.iron_gold.name=Ulepszenie żelaznej skrzyni na złotą
item.ironchest.chest.gold_diamond.name=Ulepszenie złotej skrzyni na diamentową
item.ironchest.chest.copper_silver.name=Ulepszenie miedzianej skrzyni na srebrną
item.ironchest.chest.silver_gold.name=Ulepszenie srebrnej skrzyni na złotą
item.ironchest.chest.copper_iron.name=Ulepszenie miedzianej skrzyni na żelazną
item.ironchest.chest.diamond_crystal.name=Ulepszenie diamentowej skrzyni na kryształową
item.ironchest.chest.wood_iron.name=Ulepszenie drewnianej skrzyni na żelazną
item.ironchest.chest.wood_copper.name=Ulepszenie drewnianej skrzyni na miedzianą
item.ironchest.chest.diamond_obsidian.name=Ulepszenie diamentowej skrzyni na obsydianową

View File

@ -1,25 +1,29 @@
tile.ironchest:IRON.name=Baú de Ferro
tile.ironchest:GOLD.name=Baú de Ouro
tile.ironchest:DIAMOND.name=Baú de Diamante
tile.ironchest:COPPER.name=Baú de Cobre
tile.ironchest:SILVER.name=Baú de Prata
tile.ironchest:CRYSTAL.name=Baú de Cristal
tile.ironchest:OBSIDIAN.name=Baú de Obsidiana
tile.ironchest:DIRTCHEST9000.name=BaúDeSujeira 9000!
################
# Chests #
################
item.ironchest:IRONGOLD.name=Aprimoramento de Baú de Ferro para Ouro
item.ironchest:GOLDDIAMOND.name=Aprimoramento de Baú de Ouro para Diamante
item.ironchest:COPPERSILVER.name=Aprimoramento de Baú de Cobre para Prata
item.ironchest:SILVERGOLD.name=Aprimoramento de Baú de Prata para Ouro
item.ironchest:COPPERIRON.name=Aprimoramento de Baú de Cobre para Ferro
item.ironchest:DIAMONDCRYSTAL.name=Aprimoramento de Baú de Diamante para Cristal
item.ironchest:WOODIRON.name=Aprimoramento de Baú de Madeira para Ferro
item.ironchest:WOODCOPPER.name=Aprimoramento de Baú de Madeira para Cobre
item.ironchest:DIAMONDOBSIDIAN.name=Aprimoramento de Baú de Diamante para Obsidiana
tile.ironchest.chest.iron.name=Baú de Ferro
tile.ironchest.chest.gold.name=Baú de Ouro
tile.ironchest.chest.diamond.name=Baú de Diamante
tile.ironchest.chest.copper.name=Baú de Cobre
tile.ironchest.chest.silver.name=Baú de Prata
tile.ironchest.chest.crystal.name=Baú de Cristal
tile.ironchest.chest.obsidian.name=Baú de Obsidiana
tile.ironchest.chest.dirtchest9000.name=BaúDeSujeira 9000!
book.ironchest:dirtchest9000.title=Como utilizar seu BaúDeSujeira 9000!
book.ironchest:dirtchest9000.page1=Bem-vindo ao seu novo BaúDeSujeira 9000! Esperamos que desfrute de muitos anos felizes de armazenagem de sua pilha de sujeira em nosso utilitário de armazenamento.
book.ironchest:dirtchest9000.page2=Uso: basta inserir o monte de sujeira de sua escolha no slot altamente receptivo e apreciar a grande conveniência de ter essa sujeira disponíveis para você, a qualquer momento que você passar pelo baú!
book.ironchest:dirtchest9000.page3=Esperamos que tenham gostado de rever este manual de instruções, e espero que você considere o uso de nossos produtos no futuro! Atenciosamente, manual do BaúDeSujeira 9000 escritores incorporados.
book.ironchest:dirtchest9000.page4=Garantia: Este produto não tem qualquer tipo de garantia. Sua sujeira pode não ser armazenada, pode vazar lentamente para o ambiente, ou alternativamente, pode não fazer absolutamente nada.
book.ironchest:dirtchest9000.page5=BaúDeSujeira 9000 é bom para o meio ambiente. Elimine este guia de forma responsável, e não o que você faz apenas lançando-o em alguma lava. Ficaríamos muito triste.
item.ironchest.chest.iron_gold.name=Aprimoramento de Baú de Ferro para Ouro
item.ironchest.chest.gold_diamond.name=Aprimoramento de Baú de Ouro para Diamante
item.ironchest.chest.copper_silver.name=Aprimoramento de Baú de Cobre para Prata
item.ironchest.chest.silver_gold.name=Aprimoramento de Baú de Prata para Ouro
item.ironchest.chest.copper_iron.name=Aprimoramento de Baú de Cobre para Ferro
item.ironchest.chest.diamond_crystal.name=Aprimoramento de Baú de Diamante para Cristal
item.ironchest.chest.wood_iron.name=Aprimoramento de Baú de Madeira para Ferro
item.ironchest.chest.wood_copper.name=Aprimoramento de Baú de Madeira para Cobre
item.ironchest.chest.diamond_obsidian.name=Aprimoramento de Baú de Diamante para Obsidiana
book.ironchest.dirtchest9000.title=Como utilizar seu BaúDeSujeira 9000!
book.ironchest.dirtchest9000.page1=Bem-vindo ao seu novo BaúDeSujeira 9000! Esperamos que desfrute de muitos anos felizes de armazenagem de sua pilha de sujeira em nosso utilitário de armazenamento.
book.ironchest.dirtchest9000.page2=Uso: basta inserir o monte de sujeira de sua escolha no slot altamente receptivo e apreciar a grande conveniência de ter essa sujeira disponíveis para você, a qualquer momento que você passar pelo baú!
book.ironchest.dirtchest9000.page3=Esperamos que tenham gostado de rever este manual de instruções, e espero que você considere o uso de nossos produtos no futuro! Atenciosamente, manual do BaúDeSujeira 9000 escritores incorporados.
book.ironchest.dirtchest9000.page4=Garantia: Este produto não tem qualquer tipo de garantia. Sua sujeira pode não ser armazenada, pode vazar lentamente para o ambiente, ou alternativamente, pode não fazer absolutamente nada.
book.ironchest.dirtchest9000.page5=BaúDeSujeira 9000 é bom para o meio ambiente. Elimine este guia de forma responsável, e não o que você faz apenas lançando-o em alguma lava. Ficaríamos muito triste.

View File

@ -1,17 +1,21 @@
tile.ironchest:IRON.name=Baú de Ferro
tile.ironchest:GOLD.name=Baú de Ouro
tile.ironchest:DIAMOND.name=Baú de Diamante
tile.ironchest:COPPER.name=Baú de Cobre
tile.ironchest:SILVER.name=Baú de Prata
tile.ironchest:CRYSTAL.name=Baú de Cristal
tile.ironchest:OBSIDIAN.name=Baú de Obsidiana
################
# Chests #
################
item.ironchest:IRONGOLD.name=Melhoria de Baú de Ferro para Ouro
item.ironchest:GOLDDIAMOND.name=Melhoria de Baú de Ouro para Diamante
item.ironchest:COPPERSILVER.name=Melhoria de Baú de Cobre para Prata
item.ironchest:SILVERGOLD.name=Melhoria de Baú de Prata para Ouro
item.ironchest:COPPERIRON.name=Melhoria de Baú de Cobre para Ferro
item.ironchest:DIAMONDCRYSTAL.name=Melhoria de Baú de Diamante para Cristal
item.ironchest:WOODIRON.name=Melhoria de Baú de Madeira para Ferro
item.ironchest:WOODCOPPER.name=Melhoria de Baú de Madeira para Cobre
item.ironchest:DIAMONDOBSIDIAN.name=Melhoria de Baú de Diamante para Obsidiana
tile.ironchest.chest.iron.name=Baú de Ferro
tile.ironchest.chest.gold.name=Baú de Ouro
tile.ironchest.chest.diamond.name=Baú de Diamante
tile.ironchest.chest.copper.name=Baú de Cobre
tile.ironchest.chest.silver.name=Baú de Prata
tile.ironchest.chest.crystal.name=Baú de Cristal
tile.ironchest.chest.obsidian.name=Baú de Obsidiana
item.ironchest.chest.iron_gold.name=Melhoria de Baú de Ferro para Ouro
item.ironchest.chest.gold_diamond.name=Melhoria de Baú de Ouro para Diamante
item.ironchest.chest.copper_silver.name=Melhoria de Baú de Cobre para Prata
item.ironchest.chest.silver_gold.name=Melhoria de Baú de Prata para Ouro
item.ironchest.chest.copper_iron.name=Melhoria de Baú de Cobre para Ferro
item.ironchest.chest.diamond_crystal.name=Melhoria de Baú de Diamante para Cristal
item.ironchest.chest.wood_iron.name=Melhoria de Baú de Madeira para Ferro
item.ironchest.chest.wood_copper.name=Melhoria de Baú de Madeira para Cobre
item.ironchest.chest.diamond_obsidian.name=Melhoria de Baú de Diamante para Obsidiana

View File

@ -1,17 +1,21 @@
tile.ironchest:IRON.name=Железный сундук
tile.ironchest:GOLD.name=Золотой сундук
tile.ironchest:DIAMOND.name=Алмазный сундук
tile.ironchest:COPPER.name=Медный сундук
tile.ironchest:SILVER.name=Серебряный сундук
tile.ironchest:CRYSTAL.name=Кристальный сундук
tile.ironchest:OBSIDIAN.name=Обсидиановый сундук
################
# Chests #
################
item.ironchest:IRONGOLD.name=Улучшение из железного в золотой сундук
item.ironchest:GOLDDIAMOND.name=Улучшение из золотого в алмазный сундук
item.ironchest:COPPERSILVER.name=Улучшение из медного в серебряный сундук
item.ironchest:SILVERGOLD.name=Улучшение из серебряного в золотой сундук
item.ironchest:COPPERIRON.name=Улучшение из медного в железный сундук
item.ironchest:DIAMONDCRYSTAL.name=Улучшение из алмазного в кристальный сундук
item.ironchest:WOODIRON.name=Улучшение из деревянного в железный сундук
item.ironchest:WOODCOPPER.name=Улучшение из деревянного в медный сундук
item.ironchest:DIAMONDOBSIDIAN.name=Улучшение из алмазного в обсидиановый сундук
tile.ironchest.chest.iron.name=Железный сундук
tile.ironchest.chest.gold.name=Золотой сундук
tile.ironchest.chest.diamond.name=Алмазный сундук
tile.ironchest.chest.copper.name=Медный сундук
tile.ironchest.chest.silver.name=Серебряный сундук
tile.ironchest.chest.crystal.name=Кристальный сундук
tile.ironchest.chest.obsidian.name=Обсидиановый сундук
item.ironchest.chest.iron_gold.name=Улучшение из железного в золотой сундук
item.ironchest.chest.gold_diamond.name=Улучшение из золотого в алмазный сундук
item.ironchest.chest.copper_silver.name=Улучшение из медного в серебряный сундук
item.ironchest.chest.silver_gold.name=Улучшение из серебряного в золотой сундук
item.ironchest.chest.copper_iron.name=Улучшение из медного в железный сундук
item.ironchest.chest.diamond_crystal.name=Улучшение из алмазного в кристальный сундук
item.ironchest.chest.wood_iron.name=Улучшение из деревянного в железный сундук
item.ironchest.chest.wood_copper.name=Улучшение из деревянного в медный сундук
item.ironchest.chest.diamond_obsidian.name=Улучшение из алмазного в обсидиановый сундук

View File

@ -1,17 +1,21 @@
tile.ironchest:IRON.name=Järnkista
tile.ironchest:GOLD.name=Guldkista
tile.ironchest:DIAMOND.name=Diamantkista
tile.ironchest:COPPER.name=Kopparkista
tile.ironchest:SILVER.name=Silverkista
tile.ironchest:CRYSTAL.name=Kristallkista
tile.ironchest:OBSIDIAN.name=Obsidiankista
################
# Chests #
################
item.ironchest:IRONGOLD.name=Järn till Guld Kistuppgradering
item.ironchest:GOLDDIAMOND.name=Guld till Diamant Kistuppgradering
item.ironchest:COPPERSILVER.name=Koppar till Silver Kistuppgradering
item.ironchest:SILVERGOLD.name=Silver till Guld Kistuppgradering
item.ironchest:COPPERIRON.name=Koppar till Järn Kistuppgradering
item.ironchest:DIAMONDCRYSTAL.name=Diamant till Kristal Kistuppgradering
item.ironchest:WOODIRON.name=Trä till Järn Kistuppgradering
item.ironchest:WOODCOPPER.name=Trä till Koppar Kistuppgradering
item.ironchest:DIAMONDOBSIDIAN.name=Diamant till Obsidian Kistuppgradering
tile.ironchest.chest.iron.name=Järnkista
tile.ironchest.chest.gold.name=Guldkista
tile.ironchest.chest.diamond.name=Diamantkista
tile.ironchest.chest.copper.name=Kopparkista
tile.ironchest.chest.silver.name=Silverkista
tile.ironchest.chest.crystal.name=Kristallkista
tile.ironchest.chest.obsidian.name=Obsidiankista
item.ironchest.chest.iron_gold.name=Järn till Guld Kistuppgradering
item.ironchest.chest.gold_diamond.name=Guld till Diamant Kistuppgradering
item.ironchest.chest.copper_silver.name=Koppar till Silver Kistuppgradering
item.ironchest.chest.silver_gold.name=Silver till Guld Kistuppgradering
item.ironchest.chest.copper_iron.name=Koppar till Järn Kistuppgradering
item.ironchest.chest.diamond_crystal.name=Diamant till Kristal Kistuppgradering
item.ironchest.chest.wood_iron.name=Trä till Järn Kistuppgradering
item.ironchest.chest.wood_copper.name=Trä till Koppar Kistuppgradering
item.ironchest.chest.diamond_obsidian.name=Diamant till Obsidian Kistuppgradering

View File

@ -1,25 +1,29 @@
tile.ironchest:IRON.name=Demir Sandık
tile.ironchest:GOLD.name=Altın Sandık
tile.ironchest:DIAMOND.name=Elmas Sandık
tile.ironchest:COPPER.name=Bakır Sandık
tile.ironchest:SILVER.name=Gümüş Sandık
tile.ironchest:CRYSTAL.name=Kristal Sandık
tile.ironchest:OBSIDIAN.name=Obsidyen Sandık
tile.ironchest:DIRTCHEST9000.name=Toprak Sandık-9000!
################
# Chests #
################
item.ironchest:IRONGOLD.name=Demir Sandığı Altın Sandığa Yükselt
item.ironchest:GOLDDIAMOND.name=Altın Sandığı Elmas Sandığa Yükselt
item.ironchest:COPPERSILVER.name=Bakır Sandığı Gümüş Sandığa Yükselt
item.ironchest:SILVERGOLD.name=Gümüş Sandığı Altın Sandığa Yükselt
item.ironchest:COPPERIRON.name=Bakır Sandığı Demir Sandığa Yükselt
item.ironchest:DIAMONDCRYSTAL.name=Elmas Sandığı Kristal Sandığa Yükselt
item.ironchest:WOODIRON.name=Tahta Sandığı Demir Sandığa Yükselt
item.ironchest:WOODCOPPER.name=Tahta Sandığı Bakır Sandığa Yükselt
item.ironchest:DIAMONDOBSIDIAN.name=Elmas Sandığı Obsidyen Sandığa Yükselt
tile.ironchest.chest.iron.name=Demir Sandık
tile.ironchest.chest.gold.name=Altın Sandık
tile.ironchest.chest.diamond.name=Elmas Sandık
tile.ironchest.chest.copper.name=Bakır Sandık
tile.ironchest.chest.silver.name=Gümüş Sandık
tile.ironchest.chest.crystal.name=Kristal Sandık
tile.ironchest.chest.obsidian.name=Obsidyen Sandık
tile.ironchest.chest.dirtchest9000.name=Toprak Sandık-9000!
book.ironchest:dirtchest9000.title=Toprak Sandık-9000 Kullanım Kılavuzu
book.ironchest:dirtchest9000.page1=Yeni sandık olan Toprak Sandık-9000 yaptığınız için teşekkürler.Bu sandık ile topraklarınızı depolayabilirsiniz.
book.ironchest:dirtchest9000.page2=Kullanımı: 64 adet toprak alarak içine koyunuz. Böylece sadece toprak depolanır.
book.ironchest:dirtchest9000.page3=Biz bu kılavuzu gözden keyif aldık umuyoruz, ve gelecekte ürünlerimizi kullanmayı düşünün umuyoruz! Saygılarımızla, dahil DirtChest 9000 manuel yazar.
book.ironchest:dirtchest9000.page4=Garanti: Bu ürün herhangi bir garanti vardır. Sizin kir depolanabilir değil, yavaş yavaş çevreye sülük olabilir, ya da alternatif olarak, hiç bir şey yapamazsınız.
book.ironchest:dirtchest9000.page5=Toprak Sandık-9000 çevreye türüdür. Sorumlu bu rehber kitap imha edin ve ne olursa olsun sadece bazı lav içine ayna yok yok. Bizim için çok üzücü olacaktır.
item.ironchest.chest.iron_gold.name=Demir Sandığı Altın Sandığa Yükselt
item.ironchest.chest.gold_diamond.name=Altın Sandığı Elmas Sandığa Yükselt
item.ironchest.chest.copper_silver.name=Bakır Sandığı Gümüş Sandığa Yükselt
item.ironchest.chest.silver_gold.name=Gümüş Sandığı Altın Sandığa Yükselt
item.ironchest.chest.copper_iron.name=Bakır Sandığı Demir Sandığa Yükselt
item.ironchest.chest.diamond_crystal.name=Elmas Sandığı Kristal Sandığa Yükselt
item.ironchest.chest.wood_iron.name=Tahta Sandığı Demir Sandığa Yükselt
item.ironchest.chest.wood_copper.name=Tahta Sandığı Bakır Sandığa Yükselt
item.ironchest.chest.diamond_obsidian.name=Elmas Sandığı Obsidyen Sandığa Yükselt
book.ironchest.dirtchest9000.title=Toprak Sandık-9000 Kullanım Kılavuzu
book.ironchest.dirtchest9000.page1=Yeni sandık olan Toprak Sandık-9000 yaptığınız için teşekkürler.Bu sandık ile topraklarınızı depolayabilirsiniz.
book.ironchest.dirtchest9000.page2=Kullanımı: 64 adet toprak alarak içine koyunuz. Böylece sadece toprak depolanır.
book.ironchest.dirtchest9000.page3=Biz bu kılavuzu gözden keyif aldık umuyoruz, ve gelecekte ürünlerimizi kullanmayı düşünün umuyoruz! Saygılarımızla, dahil DirtChest 9000 manuel yazar.
book.ironchest.dirtchest9000.page4=Garanti: Bu ürün herhangi bir garanti vardır. Sizin kir depolanabilir değil, yavaş yavaş çevreye sülük olabilir, ya da alternatif olarak, hiç bir şey yapamazsınız.
book.ironchest.dirtchest9000.page5=Toprak Sandık-9000 çevreye türüdür. Sorumlu bu rehber kitap imha edin ve ne olursa olsun sadece bazı lav içine ayna yok yok. Bizim için çok üzücü olacaktır.

View File

@ -1,25 +1,29 @@
tile.ironchest:IRON.name=铁箱子
tile.ironchest:GOLD.name=金箱子
tile.ironchest:DIAMOND.name=钻石箱子
tile.ironchest:COPPER.name=铜箱子
tile.ironchest:SILVER.name=银箱子
tile.ironchest:CRYSTAL.name=水晶箱子
tile.ironchest:OBSIDIAN.name=黑曜石箱子
tile.ironchest:DIRTCHEST9000.name=泥箱子9000!
################
# Chests #
################
item.ironchest:IRONGOLD.name=升级:铁>金
item.ironchest:GOLDDIAMOND.name=升级:金>钻石
item.ironchest:COPPERSILVER.name=升级:铜>银
item.ironchest:SILVERGOLD.name=升级:银>金
item.ironchest:COPPERIRON.name=升级:铜>铁
item.ironchest:DIAMONDCRYSTAL.name=升级:钻石>水晶
item.ironchest:WOODIRON.name=升级:木>铁
item.ironchest:WOODCOPPER.name=升级:木>铜
item.ironchest:DIAMONDOBSIDIAN.name=升级:钻石>黑曜石
tile.ironchest.chest.iron.name=铁箱子
tile.ironchest.chest.gold.name=金箱子
tile.ironchest.chest.diamond.name=钻石箱子
tile.ironchest.chest.copper.name=铜箱子
tile.ironchest.chest.silver.name=银箱子
tile.ironchest.chest.crystal.name=水晶箱子
tile.ironchest.chest.obsidian.name=黑曜石箱子
tile.ironchest.chest.dirtchest9000.name=泥箱子9000!
book.ironchest:dirtchest9000.title=傻瓜也一定会用的泥箱子9000!
book.ironchest:dirtchest9000.page1=欢迎使用这台全新的泥箱子9000!希望你能愉快地常年使用我们的设备来储存(大量)泥土(大雾)。
book.ironchest:dirtchest9000.page2=使用方法: 把一组泥土丢进去就行了。每次您经过的时候都可以打开它(很方便地)取出来用。
book.ironchest:dirtchest9000.page3=希望您阅读本手册愉快并选择使用我们的产品。作为泥箱子9000手册作者我谨向您致以诚挚问候。
book.ironchest:dirtchest9000.page4=质量保障: 恕本产品不提供任何质量保障。您的泥土或者能安全存储其内,或者会逐渐流失到环境中,或者什么也不会发生。(读者:我了个去!)
book.ironchest:dirtchest9000.page5=泥箱子9000十分环保。请小心收藏好本手册如果您随手丢进岩浆的话我们可会伤心的。
item.ironchest.chest.iron_gold.name=升级:铁>金
item.ironchest.chest.gold_diamond.name=升级:金>钻石
item.ironchest.chest.copper_silver.name=升级:铜>银
item.ironchest.chest.silver_gold.name=升级:银>金
item.ironchest.chest.copper_iron.name=升级:铜>铁
item.ironchest.chest.diamond_crystal.name=升级:钻石>水晶
item.ironchest.chest.wood_iron.name=升级:木>铁
item.ironchest.chest.wood_copper.name=升级:木>铜
item.ironchest.chest.diamond_obsidian.name=升级:钻石>黑曜石
book.ironchest.dirtchest9000.title=傻瓜也一定会用的泥箱子9000!
book.ironchest.dirtchest9000.page1=欢迎使用这台全新的泥箱子9000!希望你能愉快地常年使用我们的设备来储存(大量)泥土(大雾)。
book.ironchest.dirtchest9000.page2=使用方法: 把一组泥土丢进去就行了。每次您经过的时候都可以打开它(很方便地)取出来用。
book.ironchest.dirtchest9000.page3=希望您阅读本手册愉快并选择使用我们的产品。作为泥箱子9000手册作者我谨向您致以诚挚问候。
book.ironchest.dirtchest9000.page4=质量保障: 恕本产品不提供任何质量保障。您的泥土或者能安全存储其内,或者会逐渐流失到环境中,或者什么也不会发生。(读者:我了个去!)
book.ironchest.dirtchest9000.page5=泥箱子9000十分环保。请小心收藏好本手册如果您随手丢进岩浆的话我们可会伤心的。

View File

@ -1,25 +1,29 @@
tile.ironchest:IRON.name=鐵箱
tile.ironchest:GOLD.name=黃金箱
tile.ironchest:DIAMOND.name=鑽石箱
tile.ironchest:COPPER.name=銅箱
tile.ironchest:SILVER.name=銀箱
tile.ironchest:CRYSTAL.name=水晶箱
tile.ironchest:OBSIDIAN.name=黑曜石箱
tile.ironchest:DIRTCHEST9000.name=泥土箱9000!
################
# Chests #
################
item.ironchest:IRONGOLD.name=鐵箱升級成金箱
item.ironchest:GOLDDIAMOND.name=金箱升級成鑽石箱
item.ironchest:COPPERSILVER.name=銅箱升級成銀箱
item.ironchest:SILVERGOLD.name=銀箱升級成金箱
item.ironchest:COPPERIRON.name=銅箱升級成鐵箱
item.ironchest:DIAMONDCRYSTAL.name=鑽石箱升級成水晶箱
item.ironchest:WOODIRON.name=木箱升級成鐵箱
item.ironchest:WOODCOPPER.name=木箱升級成銅箱
item.ironchest:DIAMONDOBSIDIAN.name=鑽石箱升級成黑曜石箱
tile.ironchest.chest.iron.name=鐵箱
tile.ironchest.chest.gold.name=黃金箱
tile.ironchest.chest.diamond.name=鑽石箱
tile.ironchest.chest.copper.name=銅箱
tile.ironchest.chest.silver.name=銀箱
tile.ironchest.chest.crystal.name=水晶箱
tile.ironchest.chest.obsidian.name=黑曜石箱
tile.ironchest.chest.dirtchest9000.name=泥土箱9000!
book.ironchest:dirtchest9000.title=笨蛋也一定會用的泥土箱9000!
book.ironchest:dirtchest9000.page1=歡迎使用這台全新的泥土箱9000!希望你能愉快地常年使用我們的設備來儲存泥土。
book.ironchest:dirtchest9000.page2=使用方法:把一組泥土丟進去就行了。每次您經過的時候都可以打開它很方便地取出來用。
book.ironchest:dirtchest9000.page3=希望您閱讀本手冊愉快並選擇使用我們的產品。作為泥土箱9000手冊作者我謹向您致以誠摯問候。
book.ironchest:dirtchest9000.page4=質量保障:恕本產品不提供任何質量保障。您的泥土或許能安全存儲其內,或許會逐漸流失到環境中,或者什麼也不會發生。
book.ironchest:dirtchest9000.page5=泥土箱9000十分環保。請小心收藏好本手冊如果您隨手丟進岩漿的話我們可會傷心的。
item.ironchest.chest.iron_gold.name=鐵箱升級成金箱
item.ironchest.chest.gold_diamond.name=金箱升級成鑽石箱
item.ironchest.chest.copper_silver.name=銅箱升級成銀箱
item.ironchest.chest.silver_gold.name=銀箱升級成金箱
item.ironchest.chest.copper_iron.name=銅箱升級成鐵箱
item.ironchest.chest.diamond_crystal.name=鑽石箱升級成水晶箱
item.ironchest.chest.wood_iron.name=木箱升級成鐵箱
item.ironchest.chest.wood_copper.name=木箱升級成銅箱
item.ironchest.chest.diamond_obsidian.name=鑽石箱升級成黑曜石箱
book.ironchest.dirtchest9000.title=笨蛋也一定會用的泥土箱9000!
book.ironchest.dirtchest9000.page1=歡迎使用這台全新的泥土箱9000!希望你能愉快地常年使用我們的設備來儲存泥土。
book.ironchest.dirtchest9000.page2=使用方法:把一組泥土丟進去就行了。每次您經過的時候都可以打開它很方便地取出來用。
book.ironchest.dirtchest9000.page3=希望您閱讀本手冊愉快並選擇使用我們的產品。作為泥土箱9000手冊作者我謹向您致以誠摯問候。
book.ironchest.dirtchest9000.page4=質量保障:恕本產品不提供任何質量保障。您的泥土或許能安全存儲其內,或許會逐漸流失到環境中,或者什麼也不會發生。
book.ironchest.dirtchest9000.page5=泥土箱9000十分環保。請小心收藏好本手冊如果您隨手丟進岩漿的話我們可會傷心的。

View File

@ -1,7 +1,7 @@
{
"parent": "block/block",
"textures": {
"texture": "ironchest:model/copper_chest"
"texture": "ironchest:model/chest/copper_chest"
},
"elements": [
{ "from": [ 1, 0, 1 ],

View File

@ -0,0 +1,152 @@
{
"parent": "block/block",
"textures": {
"texture": "ironchest:model/shulker/purple/shulker_purple_copper"
},
"elements": [
{ "from": [ 1, 0, 0 ],
"to": [ 15, 4, 1 ],
"faces": {
"north": { "uv": [ 0.25, 12, 3.75, 13 ], "texture": "#texture" }
}
},
{ "from": [ 4, 4, 0 ],
"to": [ 12, 8, 1 ],
"faces": {
"north": { "uv": [ 1, 11, 3, 12 ], "texture": "#texture" }
}
},
{ "from": [ 1, 4, 0 ],
"to": [ 4, 8, 1 ],
"faces": {
"north": { "uv": [ 3, 6, 3.75, 7 ], "texture": "#texture" }
}
},
{ "from": [ 12, 4, 0 ],
"to": [ 15, 8, 1 ],
"faces": {
"north": { "uv": [ 0.25, 6, 1, 7 ], "texture": "#texture" }
}
},
{ "from": [ 1, 8, 0 ],
"to": [ 15, 16, 1 ],
"faces": {
"north": { "uv": [ 0.25, 4, 3.75, 6 ], "texture": "#texture" }
}
},
{ "from": [ 15, 0, 0 ],
"to": [ 16, 4, 16 ],
"faces": {
"north": { "uv": [ 0, 12, 0.25, 13 ], "texture": "#texture" },
"east": { "uv": [ 4, 12, 8, 13 ], "texture": "#texture" },
"south": { "uv": [ 11.75, 12, 12, 13 ], "texture": "#texture" }
}
},
{ "from": [ 15, 4, 4 ],
"to": [ 16, 8, 12 ],
"faces": {
"east": { "uv": [ 5, 11, 7, 12 ], "texture": "#texture" }
}
},
{ "from": [ 15, 4, 0 ],
"to": [ 16, 8, 4 ],
"faces": {
"north": { "uv": [ 0, 6, 0.25, 7 ], "texture": "#texture" },
"east": { "uv": [ 7, 6, 8, 7 ], "texture": "#texture" }
}
},
{ "from": [ 15, 4, 12 ],
"to": [ 16, 8, 16 ],
"faces": {
"east": { "uv": [ 4, 6, 5, 7 ], "texture": "#texture" },
"south": { "uv": [ 11.75, 6, 12, 7 ], "texture": "#texture" }
}
},
{ "from": [ 15, 8, 0 ],
"to": [ 16, 16, 16 ],
"faces": {
"north": { "uv": [ 0, 4, 0.25, 6 ], "texture": "#texture" },
"east": { "uv": [ 4, 4, 8, 6 ], "texture": "#texture" },
"south": { "uv": [ 11.75, 4, 12, 6 ], "texture": "#texture" }
}
},
{ "from": [ 1, 0, 15 ],
"to": [ 15, 4, 16 ],
"faces": {
"south": { "uv": [ 8.25, 12, 11.75, 13 ], "texture": "#texture" }
}
},
{ "from": [ 4, 4, 15 ],
"to": [ 12, 8, 16 ],
"faces": {
"south": { "uv": [ 9, 11, 11, 12 ], "texture": "#texture" }
}
},
{ "from": [ 12, 4, 15 ],
"to": [ 15, 8, 16 ],
"faces": {
"south": { "uv": [ 11, 6, 11.75, 7 ], "texture": "#texture" }
}
},
{ "from": [ 1, 4, 15 ],
"to": [ 4, 8, 16 ],
"faces": {
"south": { "uv": [ 8.25, 6, 9, 7 ], "texture": "#texture" }
}
},
{ "from": [ 1, 8, 15 ],
"to": [ 15, 16, 16 ],
"faces": {
"south": { "uv": [ 8.25, 4, 11.75, 6 ], "texture": "#texture" }
}
},
{ "from": [ 0, 0, 0 ],
"to": [ 1, 4, 16 ],
"faces": {
"north": { "uv": [ 3.75, 12, 4, 13 ], "texture": "#texture" },
"south": { "uv": [ 8, 12, 8.25, 13 ], "texture": "#texture" },
"west": { "uv": [ 12, 12, 16, 13 ], "texture": "#texture" }
}
},
{ "from": [ 0, 4, 4 ],
"to": [ 1, 8, 12 ],
"faces": {
"west": { "uv": [ 13, 11, 15, 12 ], "texture": "#texture" }
}
},
{ "from": [ 0, 4, 12 ],
"to": [ 1, 8, 16 ],
"faces": {
"south": { "uv": [ 8, 6, 8.25, 7 ], "texture": "#texture" },
"west": { "uv": [ 15, 6, 16, 7 ], "texture": "#texture" }
}
},
{ "from": [ 0, 4, 0 ],
"to": [ 1, 8, 4 ],
"faces": {
"north": { "uv": [ 3.75, 6, 4, 7 ], "texture": "#texture" },
"west": { "uv": [ 12, 6, 13, 7 ], "texture": "#texture" }
}
},
{ "from": [ 0, 8, 0 ],
"to": [ 1, 16, 16 ],
"faces": {
"north": { "uv": [ 3.75, 4, 4, 6 ], "texture": "#texture" },
"south": { "uv": [ 8, 4, 8.25, 6 ], "texture": "#texture" },
"west": { "uv": [ 12, 4, 16, 6 ], "texture": "#texture" }
}
},
{ "from": [ 0, 16, 0 ],
"to": [ 16, 16, 16 ],
"faces": {
"up": { "uv": [ 4, 0, 8, 4 ], "texture": "#texture" }
}
},
{ "from": [ 0, 0, 0 ],
"to": [ 16, 0, 16 ],
"faces": {
"down": { "uv": [ 8, 7, 12, 11 ], "texture": "#texture" }
}
}
]
}

Some files were not shown because too many files have changed in this diff Show More