diff --git a/src/main/java/com/cricketcraft/chisel/block/BlockPresent.java b/src/main/java/com/cricketcraft/chisel/block/BlockPresent.java index 583ec06b..b51caff4 100644 --- a/src/main/java/com/cricketcraft/chisel/block/BlockPresent.java +++ b/src/main/java/com/cricketcraft/chisel/block/BlockPresent.java @@ -38,6 +38,7 @@ import cpw.mods.fml.relauncher.SideOnly; public class BlockPresent extends BlockContainer implements ICarvable { private final Random random = new Random(); + private String textureLocation; public CarvableHelper carverHelper; private boolean isChristmas = true; @@ -73,7 +74,23 @@ public class BlockPresent extends BlockContainer implements ICarvable { public ResourceLocation getResourceSingle(int metadata) { if (isChristmas) { switch (metadata) { + case 0: + return new ResourceLocation(Chisel.MOD_ID, "textures/blocks/present/giftboxBlack.png"); case 1: + return new ResourceLocation(Chisel.MOD_ID, "textures/blocks/present/giftboxBlue.png"); + case 2: + return new ResourceLocation(Chisel.MOD_ID, "textures/blocks/present/giftboxCyan.png"); + case 3: + return new ResourceLocation(Chisel.MOD_ID, "textures/blocks/present/giftboxGreen.png"); + case 4: + return new ResourceLocation(Chisel.MOD_ID, "textures/blocks/present/giftboxOrange.png"); + case 5: + return new ResourceLocation(Chisel.MOD_ID, "textures/blocks/present/giftboxPink.png"); + case 6: + return new ResourceLocation(Chisel.MOD_ID, "textures/blocks/present/giftboxPurple.png"); + case 7: + return new ResourceLocation(Chisel.MOD_ID, "textures/blocks/present/giftboxYellow.png"); + case 8: return new ResourceLocation(Chisel.MOD_ID, "textures/blocks/present/red.png"); default: return null; diff --git a/src/main/java/com/cricketcraft/chisel/block/tileentity/TileEntityAutoChisel.java b/src/main/java/com/cricketcraft/chisel/block/tileentity/TileEntityAutoChisel.java index 7cf95308..84a7d7f6 100644 --- a/src/main/java/com/cricketcraft/chisel/block/tileentity/TileEntityAutoChisel.java +++ b/src/main/java/com/cricketcraft/chisel/block/tileentity/TileEntityAutoChisel.java @@ -92,11 +92,11 @@ public class TileEntityAutoChisel extends TileEntity implements ISidedInventory } if(isFaster){ - if(!worldObj.isRemote && worldObj.getWorldTime() % 10 == 0){ + if(!worldObj.isRemote && worldObj.getWorldTime() % 20 == 0){ doTransaction(); } } else { - if(!worldObj.isRemote && worldObj.getWorldTime() % 20 == 0){ + if(!worldObj.isRemote && worldObj.getWorldTime() % 40 == 0){ doTransaction(); } } @@ -105,7 +105,7 @@ public class TileEntityAutoChisel extends TileEntity implements ISidedInventory } private void doTransaction(){ - if(!(isSlotNull(BASE) && !(isSlotNull(TARGET)))){ + if(inventory[BASE] != null && inventory[TARGET] != null){ if(inventory[BASE].getItem() instanceof ItemBlock && inventory[TARGET].getItem() instanceof ItemBlock){ Block base = Block.getBlockFromItem(inventory[BASE].getItem()); Block target = Block.getBlockFromItem(inventory[TARGET].getItem()); @@ -116,13 +116,13 @@ public class TileEntityAutoChisel extends TileEntity implements ISidedInventory if(baseCarvable.carverHelper.variations.contains(target)){ if(isStackMode){ if(inventory[BASE].stackSize == inventory[BASE].getMaxStackSize()){ - if(isSlotNull(OUTPUT)){ + if(inventory[OUTPUT] == null){ inventory[OUTPUT] = inventory[BASE]; inventory[BASE] = null; } } } else { - if(isSlotNull(OUTPUT)){ + if(inventory[OUTPUT] == null){ inventory[OUTPUT] = new ItemStack(base, 1, inventory[BASE].getItemDamage()); inventory[BASE].stackSize--; } else if(inventory[BASE].stackSize != 0){ @@ -137,13 +137,13 @@ public class TileEntityAutoChisel extends TileEntity implements ISidedInventory if(targetCarvable.carverHelper.variations.contains(base)){ if(isStackMode){ if(inventory[BASE].stackSize == inventory[BASE].getMaxStackSize()){ - if(isSlotNull(OUTPUT)){ + if(inventory[OUTPUT] == null){ inventory[OUTPUT] = inventory[BASE]; inventory[BASE] = null; } } } else { - if(isSlotNull(OUTPUT)){ + if(inventory[OUTPUT] == null){ inventory[OUTPUT] = new ItemStack(base, 1, inventory[BASE].getItemDamage()); inventory[BASE].stackSize--; } else if(inventory[BASE].stackSize != 0){ @@ -157,14 +157,6 @@ public class TileEntityAutoChisel extends TileEntity implements ISidedInventory } } - private boolean isSlotNull(int slot){ - if(inventory[slot] == null){ - return true; - } else { - return false; - } - } - @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); diff --git a/src/main/java/com/cricketcraft/chisel/client/render/item/ItemPresentRenderer.java b/src/main/java/com/cricketcraft/chisel/client/render/item/ItemPresentRenderer.java index 50bd7463..220a3223 100644 --- a/src/main/java/com/cricketcraft/chisel/client/render/item/ItemPresentRenderer.java +++ b/src/main/java/com/cricketcraft/chisel/client/render/item/ItemPresentRenderer.java @@ -1,5 +1,7 @@ package com.cricketcraft.chisel.client.render.item; +import com.cricketcraft.chisel.block.BlockPresent; +import net.minecraft.block.Block; import net.minecraft.client.model.ModelChest; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; @@ -13,7 +15,7 @@ import cpw.mods.fml.client.FMLClientHandler; public class ItemPresentRenderer implements IItemRenderer { private final ModelChest model = new ModelChest(); - + private final BlockPresent present = new BlockPresent(); @Override public boolean handleRenderType(ItemStack item, ItemRenderType type) { return type != ItemRenderType.FIRST_PERSON_MAP; @@ -26,7 +28,7 @@ public class ItemPresentRenderer implements IItemRenderer { @Override public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - FMLClientHandler.instance().getClient().renderEngine.bindTexture(new ResourceLocation(Chisel.MOD_ID, "textures/blocks/present/red.png")); + FMLClientHandler.instance().getClient().renderEngine.bindTexture(present.getResourceSingle(item.getItemDamage())); switch (type) { case ENTITY: renderBlock(0.0F, 0.0F, 0.0F); diff --git a/src/main/java/com/cricketcraft/chisel/client/render/tile/RenderPresent.java b/src/main/java/com/cricketcraft/chisel/client/render/tile/RenderPresent.java index 5a135cfe..0fb1c775 100644 --- a/src/main/java/com/cricketcraft/chisel/client/render/tile/RenderPresent.java +++ b/src/main/java/com/cricketcraft/chisel/client/render/tile/RenderPresent.java @@ -35,9 +35,9 @@ public class RenderPresent extends TileEntityChestRenderer { Block block = present.getBlockType(); i = present.getBlockMetadata(); - if (block instanceof BlockChest && i == 0) { + if (block instanceof BlockPresent && i == 0) { try { - ((BlockChest) block).func_149954_e(present.getWorldObj(), present.xCoord, present.yCoord, present.zCoord); + ((BlockPresent) block).changeMetadataBasedOffSpecs(present.getWorldObj(), present.xCoord, present.yCoord, present.zCoord); } catch (ClassCastException e) { FMLLog.severe("[Chisel 2] Attempted to render a present at %d, %d, %d that was not a present", present.xCoord, present.yCoord, present.zCoord); } @@ -53,10 +53,10 @@ public class RenderPresent extends TileEntityChestRenderer { if (present.adjacentChestXPos == null && present.adjacentChestZPos == null) { modelchest = this.chest; - this.bindTexture(blockPresent.getResourceSingle(1)); + this.bindTexture(blockPresent.getResourceSingle(present.getBlockMetadata())); } else { modelchest = this.doubleChest; - this.bindTexture(blockPresent.getResourceDouble(1)); + this.bindTexture(blockPresent.getResourceDouble(present.getBlockMetadata())); } GL11.glPushMatrix(); diff --git a/src/main/java/com/cricketcraft/chisel/init/ModBlocks.java b/src/main/java/com/cricketcraft/chisel/init/ModBlocks.java index 6dc018a7..d6742f81 100644 --- a/src/main/java/com/cricketcraft/chisel/init/ModBlocks.java +++ b/src/main/java/com/cricketcraft/chisel/init/ModBlocks.java @@ -6,6 +6,7 @@ import com.cricketcraft.chisel.block.*; import com.cricketcraft.chisel.carving.CarvableHelper; import com.cricketcraft.chisel.carving.CarvableVariation; import com.cricketcraft.chisel.carving.Carving; +import com.cricketcraft.chisel.client.render.item.ItemPresentRenderer; import com.cricketcraft.chisel.item.ItemCarvable; import com.cricketcraft.chisel.item.ItemMarbleSlab; import cpw.mods.fml.common.registry.GameRegistry; @@ -76,7 +77,7 @@ public class ModBlocks { public static BlockVoidstonePillar voidstonePillar; public static BlockVoidstonePillar2 voidstonePillar2; public static Block autoChisel; - public static BlockPresent present; + public static BlockPresent[] present = new BlockPresent[16]; public static BlockSnakestone snakestone; public static BlockSnakestone sandSnakestone; public static BlockSnakestoneObsidian obsidianSnakestone; @@ -1338,14 +1339,7 @@ public class ModBlocks { } if (Configurations.featureEnabled("chest")) { - //TODO: will be done at winter time - present = (BlockPresent) new BlockPresent().setHardness(2.5F).setStepSound(Block.soundTypeWood); Carving.chisel.addVariation("chest", Blocks.chest, 0, 0); - present.carverHelper.addVariation(StatCollector.translateToLocal("tile.present.0.desc"), 0, present, 1); - present.carverHelper.addVariation(StatCollector.translateToLocal("tile.present.1.desc"), 1, present, 1); - present.carverHelper.addVariation(StatCollector.translateToLocal("tile.present.2.desc"), 2, present, 1); - present.carverHelper.addVariation(StatCollector.translateToLocal("tile.present.3.desc"), 3, present, 1); - present.carverHelper.register(present, "present"); Carving.chisel.registerOre("chest", "chest"); } diff --git a/src/main/java/com/cricketcraft/chisel/proxy/ClientProxy.java b/src/main/java/com/cricketcraft/chisel/proxy/ClientProxy.java index 8c99dff8..229bf41a 100644 --- a/src/main/java/com/cricketcraft/chisel/proxy/ClientProxy.java +++ b/src/main/java/com/cricketcraft/chisel/proxy/ClientProxy.java @@ -58,7 +58,7 @@ public class ClientProxy extends CommonProxy ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPresent.class, new RenderPresent()); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.autoChisel), new ItemAutoChiselRenderer()); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.present), new ItemPresentRenderer()); + //MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.present), new ItemPresentRenderer()); RenderingRegistry.registerEntityRenderingHandler(EntityCloudInABottle.class, new RenderSnowball(ModItems.itemCloudInABottle)); RenderingRegistry.registerEntityRenderingHandler(EntityBallOMoss.class, new RenderSnowball(ModItems.itemBallOMoss)); diff --git a/src/main/resources/assets/chisel/textures/autochisel-gui.png b/src/main/resources/assets/chisel/textures/autochisel-gui.png index a090d583..563c5838 100644 Binary files a/src/main/resources/assets/chisel/textures/autochisel-gui.png and b/src/main/resources/assets/chisel/textures/autochisel-gui.png differ