summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-01-29 18:28:37 +0000
committerOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-01-29 18:28:37 +0000
commit73ca377dc01f859dabd7b07738cb7aeb762272b1 (patch)
tree9c0acccbfbf78e813fb838ab566c96a40c5f36bb /java
parent06f62473f0622efe6decc32b70516a7c5d3d3572 (diff)
Made lots of changes
Diffstat (limited to 'java')
-rw-r--r--java/darkknight/jewelrycraft/CommonProxy.java9
-rw-r--r--java/darkknight/jewelrycraft/CreativeTabNecklaces.java39
-rw-r--r--java/darkknight/jewelrycraft/CreativeTabRings.java38
-rw-r--r--java/darkknight/jewelrycraft/JewelrycraftMod.java31
-rw-r--r--java/darkknight/jewelrycraft/block/BlockDisplayer.java73
-rw-r--r--java/darkknight/jewelrycraft/block/BlockHandPedestal.java124
-rw-r--r--java/darkknight/jewelrycraft/block/BlockJewelrsCraftingTable.java141
-rw-r--r--java/darkknight/jewelrycraft/block/BlockList.java41
-rw-r--r--java/darkknight/jewelrycraft/block/BlockMoltenMetal.java2
-rw-r--r--java/darkknight/jewelrycraft/block/BlockShadowEye.java81
-rw-r--r--java/darkknight/jewelrycraft/block/BlockShadowHand.java92
-rw-r--r--java/darkknight/jewelrycraft/block/BlockSmelter.java84
-rw-r--r--java/darkknight/jewelrycraft/client/ClientProxy.java39
-rw-r--r--java/darkknight/jewelrycraft/client/GuiGuide.java2
-rw-r--r--java/darkknight/jewelrycraft/client/GuiJewelry.java32
-rw-r--r--java/darkknight/jewelrycraft/config/ConfigHandler.java2
-rw-r--r--java/darkknight/jewelrycraft/container/ContainerJewelryTab.java65
-rw-r--r--java/darkknight/jewelrycraft/container/GuiHandler.java5
-rw-r--r--java/darkknight/jewelrycraft/container/GuiTabJewelsAndModifiers.java14
-rw-r--r--java/darkknight/jewelrycraft/container/GuiTabNecklaces.java139
-rw-r--r--java/darkknight/jewelrycraft/container/GuiTabRings.java160
-rw-r--r--java/darkknight/jewelrycraft/container/JewelryInventory.java118
-rw-r--r--java/darkknight/jewelrycraft/container/SlotRing.java33
-rw-r--r--java/darkknight/jewelrycraft/events/BucketHandler.java10
-rw-r--r--java/darkknight/jewelrycraft/events/EntityEventHandler.java158
-rw-r--r--java/darkknight/jewelrycraft/events/KeyBindings.java32
-rw-r--r--java/darkknight/jewelrycraft/events/ScreenHandler.java57
-rw-r--r--java/darkknight/jewelrycraft/item/ItemCrystal.java16
-rw-r--r--java/darkknight/jewelrycraft/item/ItemMoltenMetalBucket.java13
-rw-r--r--java/darkknight/jewelrycraft/item/ItemNecklace.java59
-rw-r--r--java/darkknight/jewelrycraft/item/ItemRing.java80
-rw-r--r--java/darkknight/jewelrycraft/lib/Reference.java2
-rw-r--r--java/darkknight/jewelrycraft/model/ModelHandPedestal.java148
-rw-r--r--java/darkknight/jewelrycraft/model/ModelShadowEye.java176
-rw-r--r--java/darkknight/jewelrycraft/model/ModelShadowHand.java161
-rw-r--r--java/darkknight/jewelrycraft/network/PacketKeyPressEvent.java46
-rw-r--r--java/darkknight/jewelrycraft/network/PacketRequestPlayerInfo.java35
-rw-r--r--java/darkknight/jewelrycraft/network/PacketSendPlayerInfo.java43
-rw-r--r--java/darkknight/jewelrycraft/particles/EntityFlatShadowFX.java82
-rw-r--r--java/darkknight/jewelrycraft/particles/EntityShadowsFX.java87
-rw-r--r--java/darkknight/jewelrycraft/renders/ItemRender.java46
-rw-r--r--java/darkknight/jewelrycraft/renders/TileEntityDisplayerRender.java164
-rw-r--r--java/darkknight/jewelrycraft/renders/TileEntityHandPedestalRender.java97
-rw-r--r--java/darkknight/jewelrycraft/renders/TileEntityJewelrsCraftingTableRender.java53
-rw-r--r--java/darkknight/jewelrycraft/renders/TileEntityMolderRender.java26
-rw-r--r--java/darkknight/jewelrycraft/renders/TileEntityShadowEyeRender.java80
-rw-r--r--java/darkknight/jewelrycraft/renders/TileEntityShadowHandRender.java90
-rw-r--r--java/darkknight/jewelrycraft/renders/TileEntitySmelterRender.java137
-rw-r--r--java/darkknight/jewelrycraft/tileentity/TileEntityAltar.java4
-rw-r--r--java/darkknight/jewelrycraft/tileentity/TileEntityDisplayer.java18
-rw-r--r--java/darkknight/jewelrycraft/tileentity/TileEntityHandPedestal.java68
-rw-r--r--java/darkknight/jewelrycraft/tileentity/TileEntityJewelrsCraftingTable.java97
-rw-r--r--java/darkknight/jewelrycraft/tileentity/TileEntityShadowEye.java275
-rw-r--r--java/darkknight/jewelrycraft/tileentity/TileEntityShadowHand.java74
-rw-r--r--java/darkknight/jewelrycraft/tileentity/TileEntitySmelter.java18
-rw-r--r--java/darkknight/jewelrycraft/util/JewelryNBT.java110
-rw-r--r--java/darkknight/jewelrycraft/util/JewelrycraftUtil.java41
-rw-r--r--java/darkknight/jewelrycraft/worldGen/village/ComponentJewelry.java10
-rw-r--r--java/darkknight/jewelrycraft/worldGen/village/JCTrades.java16
59 files changed, 3180 insertions, 813 deletions
diff --git a/java/darkknight/jewelrycraft/CommonProxy.java b/java/darkknight/jewelrycraft/CommonProxy.java
index 8ce261b..2b9b8dc 100644
--- a/java/darkknight/jewelrycraft/CommonProxy.java
+++ b/java/darkknight/jewelrycraft/CommonProxy.java
@@ -1,9 +1,14 @@
package darkknight.jewelrycraft;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.world.World;
+import cpw.mods.fml.common.network.IGuiHandler;
+import darkknight.jewelrycraft.client.GuiJewelry;
+import darkknight.jewelrycraft.container.ContainerJewelryTab;
+
public class CommonProxy
{
public void registerRenderers()
{
-
}
-}
+} \ No newline at end of file
diff --git a/java/darkknight/jewelrycraft/CreativeTabNecklaces.java b/java/darkknight/jewelrycraft/CreativeTabNecklaces.java
deleted file mode 100644
index 77e8844..0000000
--- a/java/darkknight/jewelrycraft/CreativeTabNecklaces.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package darkknight.jewelrycraft;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import darkknight.jewelrycraft.item.ItemList;
-import darkknight.jewelrycraft.util.JewelrycraftUtil;
-
-import net.minecraft.creativetab.CreativeTabs;
-import net.minecraft.init.Items;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraftforge.oredict.OreDictionary;
-
-public class CreativeTabNecklaces extends CreativeTabs
-{
- public CreativeTabNecklaces(String par2Str)
- {
- super(par2Str);
- }
-
- @Override
- public Item getTabIconItem()
- {
- return ItemList.necklace;
- }
-
- @SuppressWarnings(
- { "rawtypes", "unchecked" })
- public void displayAllReleventItems(List par1List)
- {
- for (int i = 0; i < JewelrycraftUtil.metal.size(); i++)
- for (int j = 0; j < JewelrycraftUtil.modifiers.size(); j++)
- for (int k = 0; k < JewelrycraftUtil.jewel.size(); k++)
- par1List.add(ItemList.necklace.getModifiedItemStack(JewelrycraftUtil.metal.get(i).copy(), JewelrycraftUtil.modifiers.get(j).copy(), JewelrycraftUtil.jewel.get(k).copy()));
- }
-
-}
diff --git a/java/darkknight/jewelrycraft/CreativeTabRings.java b/java/darkknight/jewelrycraft/CreativeTabRings.java
deleted file mode 100644
index 21b432e..0000000
--- a/java/darkknight/jewelrycraft/CreativeTabRings.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package darkknight.jewelrycraft;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import net.minecraft.creativetab.CreativeTabs;
-import net.minecraft.init.Items;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraftforge.oredict.OreDictionary;
-import darkknight.jewelrycraft.item.ItemList;
-import darkknight.jewelrycraft.util.JewelrycraftUtil;
-
-public class CreativeTabRings extends CreativeTabs
-{
- public CreativeTabRings(String par2Str)
- {
- super(par2Str);
- }
-
- @Override
- public Item getTabIconItem()
- {
- return ItemList.ring;
- }
-
- @SuppressWarnings(
- { "rawtypes", "unchecked" })
- public void displayAllReleventItems(List par1List)
- {
- for (int i = 0; i < JewelrycraftUtil.metal.size(); i++)
- for (int j = 0; j < JewelrycraftUtil.modifiers.size(); j++)
- for (int k = 0; k < JewelrycraftUtil.jewel.size(); k++)
- par1List.add(ItemList.ring.getModifiedItemStack(JewelrycraftUtil.metal.get(i).copy(), JewelrycraftUtil.modifiers.get(j).copy(), JewelrycraftUtil.jewel.get(k).copy()));
- }
-
-}
diff --git a/java/darkknight/jewelrycraft/JewelrycraftMod.java b/java/darkknight/jewelrycraft/JewelrycraftMod.java
index cabc36f..a7c0746 100644
--- a/java/darkknight/jewelrycraft/JewelrycraftMod.java
+++ b/java/darkknight/jewelrycraft/JewelrycraftMod.java
@@ -14,16 +14,13 @@ import java.util.logging.Logger;
import net.minecraft.client.Minecraft;
import net.minecraft.creativetab.CreativeTabs;
-import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.gen.structure.MapGenStructureIO;
import net.minecraftforge.common.MinecraftForge;
-import net.minecraftforge.fluids.FluidContainerRegistry;
-import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData;
-import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;
+import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
@@ -40,14 +37,21 @@ import cpw.mods.fml.common.registry.VillagerRegistry;
import cpw.mods.fml.relauncher.Side;
import darkknight.jewelrycraft.block.BlockList;
import darkknight.jewelrycraft.config.ConfigHandler;
+import darkknight.jewelrycraft.container.ContainerJewelryTab;
import darkknight.jewelrycraft.container.GuiHandler;
+import darkknight.jewelrycraft.container.JewelryInventory;
import darkknight.jewelrycraft.events.BucketHandler;
import darkknight.jewelrycraft.events.EntityEventHandler;
+import darkknight.jewelrycraft.events.KeyBindings;
+import darkknight.jewelrycraft.events.ScreenHandler;
import darkknight.jewelrycraft.item.ItemList;
import darkknight.jewelrycraft.lib.Reference;
import darkknight.jewelrycraft.network.PacketClearColorCache;
+import darkknight.jewelrycraft.network.PacketKeyPressEvent;
import darkknight.jewelrycraft.network.PacketRequestLiquidData;
+import darkknight.jewelrycraft.network.PacketRequestPlayerInfo;
import darkknight.jewelrycraft.network.PacketSendLiquidData;
+import darkknight.jewelrycraft.network.PacketSendPlayerInfo;
import darkknight.jewelrycraft.recipes.CraftingRecipes;
import darkknight.jewelrycraft.util.JewelrycraftUtil;
import darkknight.jewelrycraft.worldGen.Generation;
@@ -69,8 +73,6 @@ public class JewelrycraftMod
public static final Logger logger = Logger.getLogger("Jewelrycraft");
public static File dir;
- // TODO Look at how you did in ChowTime for files
-
public static CreativeTabs jewelrycraft = new CreativeTabs("JewelryCraft")
{
@Override
@@ -79,14 +81,14 @@ public class JewelrycraftMod
return Item.getItemFromBlock(BlockList.jewelCraftingTable);
}
};
- public static CreativeTabs rings = new CreativeTabRings("Rings");
- public static CreativeTabs necklaces = new CreativeTabNecklaces("Necklaces");
public static CreativeTabs liquids = new CreativeTabLiquids("Liquids");
public static NBTTagCompound saveData = new NBTTagCompound();
public static NBTTagCompound clientData = new NBTTagCompound();
public static File liquidsConf;
public static SimpleNetworkWrapper netWrapper;
+ public static boolean fancyRender;
+ public static JewelryInventory jewelry = new JewelryInventory();
@EventHandler
public void preInit(FMLPreInitializationEvent e) throws IOException
@@ -107,35 +109,40 @@ public class JewelrycraftMod
}
catch (Throwable e2)
{
- logger.severe("Error registering Jewelrycraft Structures with Vanilla Minecraft: this is expected in versions earlier than 1.7.2");
+ logger.severe("Error registering Jewelrycraft Structures with Vanilla Minecraft: this is expected in versions earlier than 1.7.10");
}
MinecraftForge.EVENT_BUS.register(new EntityEventHandler());
+ if (FMLCommonHandler.instance().getSide() == Side.CLIENT) MinecraftForge.EVENT_BUS.register(new ScreenHandler(Minecraft.getMinecraft()));
MinecraftForge.EVENT_BUS.register(BucketHandler.INSTANCE);
BucketHandler.INSTANCE.buckets.put(BlockList.moltenMetal, ItemList.bucket);
- proxy.registerRenderers();
ModMetadata metadata = e.getModMetadata();
List<String> authorList = new ArrayList<String>();
authorList.add("DarkKnight (or sor1n)");
authorList.add("bspkrs");
+ authorList.add("domi1819");
dir = e.getModConfigurationDirectory();
+ proxy.registerRenderers();
netWrapper = NetworkRegistry.INSTANCE.newSimpleChannel(Reference.MODID);
-
netWrapper.registerMessage(PacketRequestLiquidData.class, PacketRequestLiquidData.class, 0, Side.SERVER);
netWrapper.registerMessage(PacketSendLiquidData.class, PacketSendLiquidData.class, 1, Side.CLIENT);
netWrapper.registerMessage(PacketClearColorCache.class, PacketClearColorCache.class, 2, Side.CLIENT);
+ netWrapper.registerMessage(PacketKeyPressEvent.class, PacketKeyPressEvent.class, 3, Side.SERVER);
+ netWrapper.registerMessage(PacketRequestPlayerInfo.class, PacketRequestPlayerInfo.class, 4, Side.SERVER);
+ netWrapper.registerMessage(PacketSendPlayerInfo.class, PacketSendPlayerInfo.class, 5, Side.CLIENT);
metadata.autogenerated = false;
metadata.authorList = authorList;
- metadata.url = "https://github.com/sor1n/Modjam-Mod";
+ metadata.url = "https://github.com/sor1n/Jewelrycraft";
}
@EventHandler
public void init(FMLInitializationEvent e)
{
GameRegistry.registerWorldGenerator(new Generation(), 0);
+ if (FMLCommonHandler.instance().getSide() == Side.CLIENT) FMLCommonHandler.instance().bus().register(new KeyBindings());
new GuiHandler();
}
diff --git a/java/darkknight/jewelrycraft/block/BlockDisplayer.java b/java/darkknight/jewelrycraft/block/BlockDisplayer.java
index 333cc94..6b029b9 100644
--- a/java/darkknight/jewelrycraft/block/BlockDisplayer.java
+++ b/java/darkknight/jewelrycraft/block/BlockDisplayer.java
@@ -61,35 +61,68 @@ public class BlockDisplayer extends BlockContainer
{
TileEntityDisplayer te = (TileEntityDisplayer) world.getTileEntity(i, j, k);
ItemStack item = entityPlayer.inventory.getCurrentItem();
- if (te != null && item != null && item != new ItemStack(Item.getItemById(0), 0, 0) && !world.isRemote)
+ if (te != null)
{
- if (!te.hasObject)
+ if (item != null && item != new ItemStack(Item.getItemById(0), 0, 0) && !world.isRemote)
{
- te.object = item.copy();
- te.object.stackSize = 1;
- te.quantity += item.stackSize;
- te.hasObject = true;
- if (!entityPlayer.capabilities.isCreativeMode) item.stackSize = 0;
- te.isDirty = true;
- te.markDirty();
- }
- else if (te.object.getItem() == item.getItem() && te.object != null && te.object != new ItemStack(Item.getItemById(0), 0, 0) && te.object.getItemDamage() == item.getItemDamage())
- {
- if (te.object.hasTagCompound() && item.hasTagCompound() && te.object.getTagCompound().equals(item.getTagCompound()))
+ if (!te.hasObject)
{
+ te.object = item.copy();
te.quantity += item.stackSize;
- te.object.stackSize = 1;
+ te.hasObject = true;
if (!entityPlayer.capabilities.isCreativeMode) item.stackSize = 0;
te.isDirty = true;
te.markDirty();
}
- else if (!te.object.hasTagCompound() && !item.hasTagCompound())
+ else if (te.object.getItem() == item.getItem() && te.object != null && te.object != new ItemStack(Item.getItemById(0), 0, 0) && te.object.getItemDamage() == item.getItemDamage())
{
- te.quantity += item.stackSize;
- te.object.stackSize = 1;
- if (!entityPlayer.capabilities.isCreativeMode) item.stackSize = 0;
+ if (te.object.hasTagCompound() && item.hasTagCompound() && te.object.getTagCompound().equals(item.getTagCompound()))
+ {
+ te.quantity += item.stackSize;
+ if (!entityPlayer.capabilities.isCreativeMode) entityPlayer.inventory.decrStackSize(entityPlayer.inventory.currentItem, item.stackSize);
+ te.isDirty = true;
+ te.markDirty();
+ }
+ else if (!te.object.hasTagCompound() && !item.hasTagCompound())
+ {
+ te.quantity += item.stackSize;
+ if (!entityPlayer.capabilities.isCreativeMode) entityPlayer.inventory.decrStackSize(entityPlayer.inventory.currentItem, item.stackSize);
+ te.isDirty = true;
+ te.markDirty();
+ }
+ }
+ }
+ else if (item == null || item == new ItemStack(Item.getItemById(0), 0, 0))
+ {
+ if (!entityPlayer.capabilities.isCreativeMode)
+ {
+ for (int inv = 0; inv < entityPlayer.inventory.getSizeInventory(); inv++)
+ {
+ item = entityPlayer.inventory.getStackInSlot(inv);
+ if (item != null && te.object.getItem() == item.getItem() && te.object != null && te.object != new ItemStack(Item.getItemById(0), 0, 0) && te.object.getItemDamage() == item.getItemDamage())
+ {
+ if (te.object.hasTagCompound() && item.hasTagCompound() && te.object.getTagCompound().equals(item.getTagCompound()))
+ {
+ te.quantity += item.stackSize;
+ if (!entityPlayer.capabilities.isCreativeMode) entityPlayer.inventory.decrStackSize(inv, item.stackSize);
+ te.isDirty = true;
+ te.markDirty();
+ }
+ else if (!te.object.hasTagCompound() && !item.hasTagCompound())
+ {
+ te.quantity += item.stackSize;
+ if (!entityPlayer.capabilities.isCreativeMode) entityPlayer.inventory.decrStackSize(inv, item.stackSize);
+ te.isDirty = true;
+ te.markDirty();
+ }
+ }
+ }
+ }
+ else if(te.hasObject && te.object.getItem() != null)
+ {
+ te.quantity += 64;
te.isDirty = true;
- te.markDirty();
+ te.markDirty();
}
}
}
@@ -104,7 +137,7 @@ public class BlockDisplayer extends BlockContainer
{
if (te.hasObject && te.object != null && te.object != new ItemStack(Item.getItemById(0), 0, 0) && player.inventory.addItemStackToInventory(te.object))
{
- if (player.isSneaking())
+ if (!player.isSneaking())
{
if (te.quantity > te.object.getMaxStackSize())
{
diff --git a/java/darkknight/jewelrycraft/block/BlockHandPedestal.java b/java/darkknight/jewelrycraft/block/BlockHandPedestal.java
new file mode 100644
index 0000000..95fecfc
--- /dev/null
+++ b/java/darkknight/jewelrycraft/block/BlockHandPedestal.java
@@ -0,0 +1,124 @@
+package darkknight.jewelrycraft.block;
+
+import java.util.Random;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.BlockContainer;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.item.EntityItem;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.MathHelper;
+import net.minecraft.world.IBlockAccess;
+import net.minecraft.world.World;
+import darkknight.jewelrycraft.tileentity.TileEntityHandPedestal;
+
+public class BlockHandPedestal extends BlockContainer
+{
+ Random rand = new Random();
+
+ protected BlockHandPedestal(Material par2Material)
+ {
+ super(par2Material);
+ this.setBlockBounds(0.2F, 0F, 0.2F, 0.8F, 1.0F, 0.8F);
+ }
+
+ @Override
+ public TileEntity createNewTileEntity(World world, int var2)
+ {
+ return new TileEntityHandPedestal();
+ }
+
+ @Override
+ public boolean renderAsNormalBlock()
+ {
+ return false;
+ }
+
+ @Override
+ public boolean shouldSideBeRendered(IBlockAccess iblockaccess, int i, int j, int k, int l)
+ {
+ return false;
+ }
+
+ @Override
+ public boolean isOpaqueCube()
+ {
+ return false;
+ }
+
+ @Override
+ public int getRenderType()
+ {
+ return -1;
+ }
+
+ @Override
+ public boolean onBlockActivated(World world, int i, int j, int k, EntityPlayer entityPlayer, int par6, float par7, float par8, float par9)
+ {
+ TileEntityHandPedestal te = (TileEntityHandPedestal) world.getTileEntity(i, j, k);
+ ItemStack item = entityPlayer.inventory.getCurrentItem();
+ if (te != null)
+ {
+ if (!te.hasObject && item != null && item != new ItemStack(Item.getItemById(0), 0, 0) && !world.isRemote)
+ {
+ te.object = item.copy();
+ te.object.stackSize = 1;
+ te.hasObject = true;
+ if (!entityPlayer.capabilities.isCreativeMode) item.stackSize--;
+ te.isDirty = true;
+ te.markDirty();
+ }
+ else if(entityPlayer.isSneaking())
+ {
+ if(entityPlayer.inventory.addItemStackToInventory(te.object))
+ {
+ te.hasObject = false;
+ te.object = new ItemStack(Item.getItemById(0), 0, 0);
+ }
+ }
+ te.isDirty = true;
+ te.markDirty();
+ }
+ return true;
+ }
+
+ public void dropItem(World world, double x, double y, double z, ItemStack stack)
+ {
+ EntityItem entityitem = new EntityItem(world, x + 0.5D, y + 1.5D, z + 0.5D, stack);
+ entityitem.motionX = 0;
+ entityitem.motionZ = 0;
+ entityitem.motionY = 0.11000000298023224D;
+ world.spawnEntityInWorld(entityitem);
+ }
+
+ public void breakBlock(World world, int i, int j, int k, Block block, int par6)
+ {
+ TileEntityHandPedestal te = (TileEntityHandPedestal) world.getTileEntity(i, j, k);
+
+ if (te != null && te.hasObject)
+ {
+ dropItem(te.getWorldObj(), (double) te.xCoord, (double) te.yCoord, (double) te.zCoord, te.object);
+ world.removeTileEntity(i, j, k);
+ }
+
+ super.breakBlock(world, i, j, k, block, par6);
+ }
+
+ @Override
+ public void onBlockPlacedBy(World world, int i, int j, int k, EntityLivingBase entityLiving, ItemStack par6ItemStack)
+ {
+ int rotation = MathHelper.floor_double(entityLiving.rotationYaw * 8.0F / 360.0F + 0.5D) & 7;
+ world.setBlockMetadataWithNotify(i, j, k, rotation, 2);
+ }
+
+ @Override
+ public void registerBlockIcons(IIconRegister icon)
+ {
+ this.blockIcon = icon.registerIcon("minecraft:stonebrick");
+ }
+}
diff --git a/java/darkknight/jewelrycraft/block/BlockJewelrsCraftingTable.java b/java/darkknight/jewelrycraft/block/BlockJewelrsCraftingTable.java
index 1c65970..f9dfc67 100644
--- a/java/darkknight/jewelrycraft/block/BlockJewelrsCraftingTable.java
+++ b/java/darkknight/jewelrycraft/block/BlockJewelrsCraftingTable.java
@@ -50,94 +50,28 @@ public class BlockJewelrsCraftingTable extends BlockContainer
ItemStack item = entityPlayer.inventory.getCurrentItem();
if (te != null && !world.isRemote)
{
- if (!te.hasEndItem && !te.hasJewelry && item != null && JewelrycraftUtil.isJewelry(item))
- {
- if (te.hasModifier && te.hasJewel && item.hasTagCompound() && item.getTagCompound().hasKey("modifier") && item.getTagCompound().hasKey("jewel")) entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage.Jewelrycraft.table.jewelrymodifiedfull")));
- else if (te.hasJewel && item.hasTagCompound() && item.getTagCompound().hasKey("jewel")) entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage.Jewelrycraft.table.jewelrycontainsjewel")));
- else if (te.hasModifier && item.hasTagCompound() && item.getTagCompound().hasKey("modifier")) entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage.Jewelrycraft.table.jewelrycontainsmodifier")));
- else
- {
- te.jewelry = item.copy();
- te.hasJewelry = true;
- if (!entityPlayer.capabilities.isCreativeMode) --item.stackSize;
- entityPlayer.inventory.markDirty();
- world.setTileEntity(i, j, k, te);
- te.isDirty = true;
- te.markDirty();
- }
- }
- if (!te.hasEndItem && !te.hasModifier && item != null && JewelrycraftUtil.isModifier(item))
- {
- if (te.hasJewelry && te.jewelry.hasTagCompound() && te.jewelry.getTagCompound().hasKey("modifier")) entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage.Jewelrycraft.table.jewelrycontainsmodifier")));
- else
- {
- te.modifier = item.copy();
- te.modifier.stackSize = 1;
- te.hasModifier = true;
- if (!entityPlayer.capabilities.isCreativeMode) --item.stackSize;
- entityPlayer.inventory.markDirty();
- world.setTileEntity(i, j, k, te);
- te.isDirty = true;
- te.markDirty();
- }
- }
- if (!te.hasEndItem && !te.hasJewel && item != null && JewelrycraftUtil.isJewel(item))
- {
- if (te.hasJewelry && te.jewelry.hasTagCompound() && te.jewelry.getTagCompound().hasKey("jewel")) entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage.Jewelrycraft.table.jewelrycontainsjewel")));
- else
- {
- te.jewel = item.copy();
- te.jewel.stackSize = 1;
- te.hasJewel = true;
- if (!entityPlayer.capabilities.isCreativeMode) --item.stackSize;
- entityPlayer.inventory.markDirty();
- world.setTileEntity(i, j, k, te);
- te.isDirty = true;
- te.markDirty();
- }
- }
- if (te.timer <= 0 && !te.hasEndItem && te.hasJewelry && (te.hasModifier || te.hasJewel))
- {
- te.timer = ConfigHandler.jewelryCraftingTime;
- te.angle = 0;
- }
if (te.hasEndItem && item != null) entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage.Jewelrycraft.table.hasenditem")));
-
- if (te.hasModifier && entityPlayer.isSneaking())
+ if (!te.hasEndItem && !te.hasJewelry && item != null && JewelrycraftUtil.isJewelry(item))
{
- dropItem(world, (double) te.xCoord, (double) te.yCoord, (double) te.zCoord, te.modifier.copy());
- te.modifier = new ItemStack(Item.getItemById(0), 0, 0);
- te.hasModifier = false;
- te.timer = 0;
- te.angle = 0F;
+ te.jewelry = item.copy();
+ te.hasJewelry = true;
+ if (!entityPlayer.capabilities.isCreativeMode) --item.stackSize;
te.isDirty = true;
- te.markDirty();
- world.markBlockForUpdate(i, j, k);
- world.setTileEntity(i, j, k, te);
}
- if (te.hasJewelry && entityPlayer.isSneaking())
+ if (!te.hasEndItem && !te.hasGem && item != null && JewelrycraftUtil.isGem(item))
{
- dropItem(world, (double) te.xCoord, (double) te.yCoord, (double) te.zCoord, te.jewelry.copy());
- te.jewelry = new ItemStack(Item.getItemById(0), 0, 0);
- te.hasJewelry = false;
- te.timer = 0;
- te.angle = 0F;
+ te.gem = item.copy();
+ te.gem.stackSize = 1;
+ te.hasGem = true;
+ if (!entityPlayer.capabilities.isCreativeMode) --item.stackSize;
te.isDirty = true;
- te.markDirty();
- world.markBlockForUpdate(i, j, k);
- world.setTileEntity(i, j, k, te);
}
- if (te.hasJewel && entityPlayer.isSneaking())
+ if (!te.hasEndItem && te.hasJewelry && te.hasGem && !te.crafting)
{
- dropItem(world, (double) te.xCoord, (double) te.yCoord, (double) te.zCoord, te.jewel.copy());
- te.jewel = new ItemStack(Item.getItemById(0), 0, 0);
- te.hasJewel = false;
- te.timer = 0;
- te.angle = 0F;
+ te.carving = ConfigHandler.jewelryCraftingTime;
+ te.angle = 0;
+ te.crafting = true;
te.isDirty = true;
- te.markDirty();
- world.markBlockForUpdate(i, j, k);
- world.setTileEntity(i, j, k, te);
}
}
return true;
@@ -157,9 +91,8 @@ public class BlockJewelrsCraftingTable extends BlockContainer
TileEntityJewelrsCraftingTable te = (TileEntityJewelrsCraftingTable) world.getTileEntity(i, j, k);
if (te != null)
{
- if (te.hasModifier) dropItem(world, (double) te.xCoord, (double) te.yCoord, (double) te.zCoord, te.modifier.copy());
if (te.hasJewelry) dropItem(world, (double) te.xCoord, (double) te.yCoord, (double) te.zCoord, te.jewelry.copy());
- if (te.hasJewel) dropItem(world, (double) te.xCoord, (double) te.yCoord, (double) te.zCoord, te.jewel.copy());
+ if (te.hasGem) dropItem(world, (double) te.xCoord, (double) te.yCoord, (double) te.zCoord, te.gem.copy());
if (te.hasEndItem) dropItem(te.getWorldObj(), (double) te.xCoord, (double) te.yCoord, (double) te.zCoord, te.endItem.copy());
world.removeTileEntity(i, j, k);
}
@@ -179,20 +112,42 @@ public class BlockJewelrsCraftingTable extends BlockContainer
TileEntityJewelrsCraftingTable te = (TileEntityJewelrsCraftingTable) world.getTileEntity(i, j, k);
if (te != null && !world.isRemote)
{
- if (te.hasEndItem)
+ if (player.isSneaking())
{
- dropItem(te.getWorldObj(), (double) te.xCoord, (double) te.yCoord, (double) te.zCoord, te.endItem.copy());
- te.endItem = new ItemStack(Item.getItemById(0), 0, 0);
- te.hasEndItem = false;
- te.isDirty = true;
- te.markDirty();
- world.markBlockForUpdate(i, j, k);
- world.setTileEntity(i, j, k, te);
+ if (te.hasJewelry)
+ {
+ dropItem(world, (double) te.xCoord, (double) te.yCoord, (double) te.zCoord, te.jewelry.copy());
+ te.jewelry = new ItemStack(Item.getItemById(0), 0, 0);
+ te.hasJewelry = false;
+ te.carving = -1;
+ te.crafting = false;
+ te.angle = 0F;
+ te.isDirty = true;
+ }
+ if (te.hasGem)
+ {
+ dropItem(world, (double) te.xCoord, (double) te.yCoord, (double) te.zCoord, te.gem.copy());
+ te.gem = new ItemStack(Item.getItemById(0), 0, 0);
+ te.hasGem = false;
+ te.carving = -1;
+ te.crafting = false;
+ te.angle = 0F;
+ te.isDirty = true;
+ }
+ }
+ else
+ {
+ if (te.hasEndItem)
+ {
+ dropItem(te.getWorldObj(), (double) te.xCoord, (double) te.yCoord, (double) te.zCoord, te.endItem.copy());
+ te.endItem = new ItemStack(Item.getItemById(0), 0, 0);
+ te.hasEndItem = false;
+ te.isDirty = true;
+ }
+ else if (te.hasJewelry && te.hasGem && te.carving > 0 && te.jewelry != null) player.addChatMessage(new ChatComponentText(StatCollector.translateToLocalFormatted("chatmessage.Jewelrycraft.table.iscrafting", te.jewelry.getDisplayName()) + " (" + ((ConfigHandler.jewelryCraftingTime - te.carving) * 100 / ConfigHandler.jewelryCraftingTime) + "%)"));
+ else if (!te.hasGem) player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage.Jewelrycraft.table.missinggem")));
+ else if (!te.hasJewelry) player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage.Jewelrycraft.table.missingjewelry")));
}
- else if (te.hasJewelry && (te.hasModifier || te.hasJewel) && te.timer > 0 && te.jewelry != null) player.addChatMessage(new ChatComponentText(StatCollector.translateToLocalFormatted("chatmessage.Jewelrycraft.table.iscrafting", te.jewelry.getDisplayName()) + " (" + ((ConfigHandler.jewelryCraftingTime - te.timer) * 100 / ConfigHandler.jewelryCraftingTime) + "%)"));
- else if ((!te.hasModifier || !te.hasJewel) && !te.hasJewelry) player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage.Jewelrycraft.table.missingjewelryandmodifierorjewel")));
- else if (!te.hasJewelry) player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage.Jewelrycraft.table.missingjewelry")));
- else if (!te.hasModifier || !te.hasJewel) player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage.Jewelrycraft.table.missingmodifierorjewel")));
}
}
diff --git a/java/darkknight/jewelrycraft/block/BlockList.java b/java/darkknight/jewelrycraft/block/BlockList.java
index 75efbaa..b244a19 100644
--- a/java/darkknight/jewelrycraft/block/BlockList.java
+++ b/java/darkknight/jewelrycraft/block/BlockList.java
@@ -10,20 +10,16 @@ import darkknight.jewelrycraft.JewelrycraftMod;
import darkknight.jewelrycraft.tileentity.TileEntityAltar;
import darkknight.jewelrycraft.tileentity.TileEntityBlockShadow;
import darkknight.jewelrycraft.tileentity.TileEntityDisplayer;
+import darkknight.jewelrycraft.tileentity.TileEntityHandPedestal;
import darkknight.jewelrycraft.tileentity.TileEntityJewelrsCraftingTable;
import darkknight.jewelrycraft.tileentity.TileEntityMolder;
+import darkknight.jewelrycraft.tileentity.TileEntityShadowEye;
+import darkknight.jewelrycraft.tileentity.TileEntityShadowHand;
import darkknight.jewelrycraft.tileentity.TileEntitySmelter;
public class BlockList
{
- public static Block shadowOre;
- public static Block glow;
- public static Block smelter;
- public static Block molder;
- public static Block displayer;
- public static Block jewelCraftingTable;
- public static Block shadowBlock;
- public static Block jewelAltar;
+ public static Block shadowOre, glow, smelter, molder, displayer, jewelCraftingTable, shadowBlock, shadowEye, jewelAltar, handPedestal, shadowHand;
public static BlockMoltenMetal moltenMetal;
public static Fluid moltenMetalFluid;
@@ -33,14 +29,17 @@ public class BlockList
{
if (!isInitialized)
{
- shadowOre = new BlockJCOre().setHardness(3.0F).setResistance(5.0F).setStepSound(Block.soundTypeStone).setBlockTextureName("jewelrycraft:oreShadow").setBlockName("Jewelrycraft.oreShadow").setCreativeTab(JewelrycraftMod.jewelrycraft);
+ shadowOre = new BlockJCOre().setHardness(3.0F).setResistance(5.0F).setStepSound(Block.soundTypePiston).setBlockTextureName("jewelrycraft:oreShadow").setBlockName("Jewelrycraft.oreShadow").setCreativeTab(JewelrycraftMod.jewelrycraft);
glow = new BlockGlow().setBlockName("Jewelrycraft.glow").setLightLevel(1F);
- smelter = new BlockSmelter(Material.rock).setHardness(5.0F).setResistance(6.0F).setStepSound(Block.soundTypeStone).setBlockName("Jewelrycraft.smelter").setCreativeTab(JewelrycraftMod.jewelrycraft);
- molder = new BlockMolder(Material.rock).setHardness(5.0F).setResistance(6.0F).setStepSound(Block.soundTypeStone).setBlockName("Jewelrycraft.molder").setCreativeTab(JewelrycraftMod.jewelrycraft);
+ smelter = new BlockSmelter().setHardness(5.0F).setResistance(6.0F).setStepSound(Block.soundTypePiston).setBlockName("Jewelrycraft.smelter").setCreativeTab(JewelrycraftMod.jewelrycraft);
+ molder = new BlockMolder(Material.rock).setHardness(5.0F).setResistance(6.0F).setStepSound(Block.soundTypePiston).setBlockName("Jewelrycraft.molder").setCreativeTab(JewelrycraftMod.jewelrycraft);
displayer = new BlockDisplayer(Material.iron).setHardness(5.0F).setResistance(6.0F).setStepSound(Block.soundTypeMetal).setBlockName("Jewelrycraft.displayer").setCreativeTab(JewelrycraftMod.jewelrycraft);
- jewelCraftingTable = new BlockJewelrsCraftingTable(Material.rock).setHardness(3.0F).setResistance(5.0F).setStepSound(Block.soundTypeStone).setBlockName("Jewelrycraft.jewelCraftingTable").setCreativeTab(JewelrycraftMod.jewelrycraft);
+ jewelCraftingTable = new BlockJewelrsCraftingTable(Material.rock).setHardness(3.0F).setResistance(5.0F).setStepSound(Block.soundTypePiston).setBlockName("Jewelrycraft.jewelCraftingTable").setCreativeTab(JewelrycraftMod.jewelrycraft);
shadowBlock = new BlockShadow().setHardness(5.0F).setResistance(7.0F).setStepSound(Block.soundTypeMetal).setBlockTextureName("jewelrycraft:blockShadow").setBlockName("Jewelrycraft.blockShadow").setCreativeTab(JewelrycraftMod.jewelrycraft);
jewelAltar = new BlockJewelAltar().setHardness(5.0F).setResistance(2.0F).setStepSound(Block.soundTypeMetal).setBlockTextureName("jewelrycraft:altar").setBlockName("Jewelrycraft.altar").setCreativeTab(JewelrycraftMod.jewelrycraft);
+ shadowEye = new BlockShadowEye().setHardness(5.0F).setResistance(6.0F).setStepSound(Block.soundTypePiston).setBlockName("Jewelrycraft.shadowEye").setCreativeTab(JewelrycraftMod.jewelrycraft);
+ handPedestal = new BlockHandPedestal(Material.rock).setHardness(5.0F).setResistance(6.0F).setStepSound(Block.soundTypePiston).setBlockName("Jewelrycraft.handPedestal").setCreativeTab(JewelrycraftMod.jewelrycraft);
+ shadowHand = new BlockShadowHand(Material.rock).setStepSound(Block.soundTypePiston).setBlockName("Jewelrycraft.shadowHand").setCreativeTab(JewelrycraftMod.jewelrycraft).setBlockUnbreakable();
GameRegistry.registerBlock(shadowOre, "shadowOre");
GameRegistry.registerBlock(shadowBlock, "shadowBlock");
@@ -49,13 +48,19 @@ public class BlockList
GameRegistry.registerBlock(jewelCraftingTable, "jewelCraftingTable");
GameRegistry.registerBlock(displayer, "Displayer");
GameRegistry.registerBlock(jewelAltar, "Altar");
+ GameRegistry.registerBlock(shadowEye, "Shadow Eye");
+ GameRegistry.registerBlock(handPedestal, "Stone Bricks Pedestal");
+ GameRegistry.registerBlock(shadowHand, "Shadow Hand");
- GameRegistry.registerTileEntity(TileEntitySmelter.class, "30");
- GameRegistry.registerTileEntity(TileEntityMolder.class, "31");
- GameRegistry.registerTileEntity(TileEntityJewelrsCraftingTable.class, "32");
- GameRegistry.registerTileEntity(TileEntityDisplayer.class, "33");
- GameRegistry.registerTileEntity(TileEntityBlockShadow.class, "34");
- GameRegistry.registerTileEntity(TileEntityAltar.class, "35");
+ GameRegistry.registerTileEntity(TileEntitySmelter.class, "jewelrycraft:smelter");
+ GameRegistry.registerTileEntity(TileEntityMolder.class, "jewelrycraft:molder");
+ GameRegistry.registerTileEntity(TileEntityJewelrsCraftingTable.class, "jewelrycraft:table");
+ GameRegistry.registerTileEntity(TileEntityDisplayer.class, "jewelrycraft:displayer");
+ GameRegistry.registerTileEntity(TileEntityBlockShadow.class, "jewelrycraft:blockShadow");
+ GameRegistry.registerTileEntity(TileEntityAltar.class, "jewelrycraft:altar");
+ GameRegistry.registerTileEntity(TileEntityShadowEye.class, "jewelrycraft:shadowEye");
+ GameRegistry.registerTileEntity(TileEntityHandPedestal.class, "jewelrycraft:handPedestal");
+ GameRegistry.registerTileEntity(TileEntityShadowHand.class, "jewelrycraft:shadowHand");
moltenMetalFluid = new Fluid("metal.molten").setLuminosity(15).setDensity(3000).setTemperature(2000).setViscosity(6000);
if (!FluidRegistry.registerFluid(moltenMetalFluid)) moltenMetalFluid = FluidRegistry.getFluid("metal.molten");
diff --git a/java/darkknight/jewelrycraft/block/BlockMoltenMetal.java b/java/darkknight/jewelrycraft/block/BlockMoltenMetal.java
index 9c1daea..f005e04 100644
--- a/java/darkknight/jewelrycraft/block/BlockMoltenMetal.java
+++ b/java/darkknight/jewelrycraft/block/BlockMoltenMetal.java
@@ -43,6 +43,7 @@ public class BlockMoltenMetal extends BlockFluidClassic
super(fluid, material);
setBlockName("Jewelrycraft.moltenMetal");
this.setQuantaPerBlock(5);
+ this.setRenderPass(1);
setLightLevel(15f);
}
@@ -247,7 +248,6 @@ public class BlockMoltenMetal extends BlockFluidClassic
{
itemID = Integer.parseInt(splitData[0]);
itemDamage = Integer.parseInt(splitData[1]);
-
JewelryNBT.addMetal(item, new ItemStack(Item.getItemById(itemID), 1, itemDamage));
}
catch (Exception e)
diff --git a/java/darkknight/jewelrycraft/block/BlockShadowEye.java b/java/darkknight/jewelrycraft/block/BlockShadowEye.java
new file mode 100644
index 0000000..94ece2a
--- /dev/null
+++ b/java/darkknight/jewelrycraft/block/BlockShadowEye.java
@@ -0,0 +1,81 @@
+package darkknight.jewelrycraft.block;
+
+import java.util.Random;
+
+import net.minecraft.block.BlockContainer;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.MathHelper;
+import net.minecraft.world.IBlockAccess;
+import net.minecraft.world.World;
+import darkknight.jewelrycraft.tileentity.TileEntityShadowEye;
+
+public class BlockShadowEye extends BlockContainer
+{
+ Random rand = new Random();
+
+ protected BlockShadowEye()
+ {
+ super(Material.rock);
+ }
+
+ @Override
+ public TileEntity createNewTileEntity(World world, int var2)
+ {
+ return new TileEntityShadowEye();
+ }
+
+ @Override
+ public boolean renderAsNormalBlock()
+ {
+ return false;
+ }
+
+ @Override
+ public boolean shouldSideBeRendered(IBlockAccess iblockaccess, int i, int j, int k, int l)
+ {
+ return false;
+ }
+
+ @Override
+ public boolean isOpaqueCube()
+ {
+ return false;
+ }
+
+ @Override
+ public int getRenderType()
+ {
+ return -1;
+ }
+
+ @Override
+ public boolean onBlockActivated(World world, int i, int j, int k, EntityPlayer entityPlayer, int par6, float par7, float par8, float par9)
+ {
+ TileEntityShadowEye tile = (TileEntityShadowEye)world.getTileEntity(i, j, k);
+ tile.active = true;
+ return true;
+ }
+
+ @Override
+ public void onBlockClicked(World world, int i, int j, int k, EntityPlayer player)
+ {
+ }
+
+ @Override
+ public void onBlockPlacedBy(World world, int i, int j, int k, EntityLivingBase entityLiving, ItemStack par6ItemStack)
+ {
+ int rotation = MathHelper.floor_double(entityLiving.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
+ world.setBlockMetadataWithNotify(i, j, k, rotation, 2);
+ }
+
+ @Override
+ public void registerBlockIcons(IIconRegister icon)
+ {
+ this.blockIcon = icon.registerIcon("minecraft:stonebrick");
+ }
+}
diff --git a/java/darkknight/jewelrycraft/block/BlockShadowHand.java b/java/darkknight/jewelrycraft/block/BlockShadowHand.java
new file mode 100644
index 0000000..2af6d02
--- /dev/null
+++ b/java/darkknight/jewelrycraft/block/BlockShadowHand.java
@@ -0,0 +1,92 @@
+package darkknight.jewelrycraft.block;
+
+import java.util.Random;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.BlockContainer;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.item.EntityItem;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.MathHelper;
+import net.minecraft.world.IBlockAccess;
+import net.minecraft.world.World;
+import darkknight.jewelrycraft.tileentity.TileEntityShadowHand;
+
+public class BlockShadowHand extends BlockContainer
+{
+ Random rand = new Random();
+
+ protected BlockShadowHand(Material par2Material)
+ {
+ super(par2Material);
+ this.setBlockBounds(0.2F, 0F, 0.2F, 0.8F, 1.0F, 0.8F);
+ }
+
+ @Override
+ public TileEntity createNewTileEntity(World world, int var2)
+ {
+ return new TileEntityShadowHand();
+ }
+
+ @Override
+ public boolean renderAsNormalBlock()
+ {
+ return false;
+ }
+
+ @Override
+ public boolean shouldSideBeRendered(IBlockAccess iblockaccess, int i, int j, int k, int l)
+ {
+ return false;
+ }
+
+ @Override
+ public boolean isOpaqueCube()
+ {
+ return false;
+ }
+
+ @Override
+ public int getRenderType()
+ {
+ return -1;
+ }
+
+ public void dropItem(World world, double x, double y, double z, ItemStack stack)
+ {
+ EntityItem entityitem = new EntityItem(world, x + 0.5D, y + 1.5D, z + 0.5D, stack);
+ entityitem.motionX = 0;
+ entityitem.motionZ = 0;
+ entityitem.motionY = 0.11000000298023224D;
+ world.spawnEntityInWorld(entityitem);
+ }
+
+ public void breakBlock(World world, int i, int j, int k, Block block, int par6)
+ {
+ TileEntityShadowHand te = (TileEntityShadowHand) world.getTileEntity(i, j, k);
+
+ if (te != null && te.hasObject)
+ {
+ dropItem(te.getWorldObj(), (double) te.xCoord, (double) te.yCoord, (double) te.zCoord, te.object);
+ world.removeTileEntity(i, j, k);
+ }
+
+ super.breakBlock(world, i, j, k, block, par6);
+ }
+
+ @Override
+ public void onBlockPlacedBy(World world, int i, int j, int k, EntityLivingBase entityLiving, ItemStack par6ItemStack)
+ {
+ int rotation = MathHelper.floor_double(entityLiving.rotationYaw * 8.0F / 360.0F + 0.5D) & 7;
+ world.setBlockMetadataWithNotify(i, j, k, rotation, 2);
+ }
+
+ @Override
+ public void registerBlockIcons(IIconRegister icon)
+ {
+ this.blockIcon = icon.registerIcon("minecraft:coal_block");
+ }
+}
diff --git a/java/darkknight/jewelrycraft/block/BlockSmelter.java b/java/darkknight/jewelrycraft/block/BlockSmelter.java
index b64f142..71ba64b 100644
--- a/java/darkknight/jewelrycraft/block/BlockSmelter.java
+++ b/java/darkknight/jewelrycraft/block/BlockSmelter.java
@@ -9,6 +9,7 @@ import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@@ -31,9 +32,9 @@ public class BlockSmelter extends BlockContainer
{
Random rand = new Random();
- protected BlockSmelter(Material par2Material)
+ public BlockSmelter()
{
- super(par2Material);
+ super(Material.rock);
}
@Override
@@ -90,12 +91,14 @@ public class BlockSmelter extends BlockContainer
{
TileEntitySmelter te = (TileEntitySmelter) world.getTileEntity(i, j, k);
ItemStack item = entityPlayer.inventory.getCurrentItem();
- if(te != null && te.hasMoltenMetal && te.quantity >= 0.9f && !te.pouring && item != null && item.getItem() == Items.bucket)
+ if (te != null && te.hasMoltenMetal && te.quantity >= 0.9f && !te.pouring && item != null && item.getItem() == Items.bucket)
{
te.quantity = 0f;
te.hasMoltenMetal = false;
ItemStack metalBucket = new ItemStack(ItemList.bucket, 1);
- JewelryNBT.addMetal(metalBucket, te.moltenMetal);
+ ItemStack ingot = te.moltenMetal;
+ if (Item.getIdFromItem(ingot.getItem()) == Block.getIdFromBlock(Blocks.stained_glass) || Item.getIdFromItem(ingot.getItem()) == Block.getIdFromBlock(Blocks.stained_glass_pane) || Item.getIdFromItem(ingot.getItem()) == Block.getIdFromBlock(Blocks.stained_hardened_clay) || Item.getIdFromItem(ingot.getItem()) == Block.getIdFromBlock(Blocks.wool) || Item.getIdFromItem(ingot.getItem()) == Block.getIdFromBlock(Blocks.carpet)) ingot.setItemDamage(15 - ingot.getItemDamage());
+ JewelryNBT.addMetal(metalBucket, ingot);
--item.stackSize;
entityPlayer.inventory.addItemStackToInventory(metalBucket);
te.isDirty = true;
@@ -106,56 +109,53 @@ public class BlockSmelter extends BlockContainer
int index = -1;
for (int a = 0; a < JewelrycraftUtil.jamcraftPlayers.size(); a++)
if (entityPlayer.getDisplayName().equals(JewelrycraftUtil.jamcraftPlayers.get(a))) index = a;
- boolean canPlace = item != null && (JewelrycraftUtil.isMetal(item) || JewelrycraftUtil.isOre(item) || index != -1);
+ boolean canPlace = (item != null && (JewelrycraftUtil.isMetal(item) || JewelrycraftUtil.isOre(item) || index >= 0));
boolean isOre = false;
boolean oreCoincidesWithMetal = false;
- if(item != null && Item.getIdFromItem(item.getItem()) != 0) isOre = JewelrycraftUtil.isOre(item);
- if(isOre && te.moltenMetal != null && item != null && Item.getIdFromItem(te.moltenMetal.getItem()) != 0)
- oreCoincidesWithMetal = te.moltenMetal.getItem().equals(JewelrycraftUtil.getIngotFromOre(item.getItem()).getItem()) && te.moltenMetal.getItemDamage() == JewelrycraftUtil.getIngotFromOre(item.getItem()).getItemDamage();
- if (!te.hasMetal && !te.hasMoltenMetal && !te.pouring && item != null && canPlace)
+ boolean itemCoincidesWithMetal = false;
+ boolean itemCoincidesWithMoltenMetal = false;
+ boolean overflow = false;
+ if (item != null && item.getItem() != null)
{
- entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocalFormatted("chatmessage.Jewelrycraft.smelter.nowsmeltingingot", item.getDisplayName())));
- te.metal = item.copy();
- te.metal.stackSize = 1;
- te.hasMetal = true;
- te.melting = ConfigHandler.ingotMeltingTime;
- if (!entityPlayer.capabilities.isCreativeMode) --item.stackSize;
- te.isDirty = true;
- }
- else if (te.hasMetal && !te.hasMoltenMetal && item != null && canPlace && item.getUnlocalizedName().equals(te.metal.getUnlocalizedName()) && (!isOre && te.metal.stackSize < 9 || isOre && te.metal.stackSize < 4))
- {
- entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocalFormatted("Smelting extra " + (isOre ? "ores" : "ingots") + " (" + (te.metal.stackSize + 1) + ")")));
- te.metal.stackSize++;
- if (!entityPlayer.capabilities.isCreativeMode) --item.stackSize;
- te.isDirty = true;
- }
- else if (!te.hasMetal && te.hasMoltenMetal && item != null && canPlace && ((!isOre && item.getUnlocalizedName().equals(te.moltenMetal.getUnlocalizedName()) && te.moltenMetal.stackSize < 9) || (isOre && oreCoincidesWithMetal && te.moltenMetal.stackSize < 8)))
- {
- entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocalFormatted("Smelting extra " + (isOre ? "ore" : "ingot") + ".")));
- te.metal = item.copy();
- te.metal.stackSize = 1;
- te.hasMetal = true;
- te.melting = ConfigHandler.ingotMeltingTime;
- if (!entityPlayer.capabilities.isCreativeMode) --item.stackSize;
- te.isDirty = true;
+ isOre = JewelrycraftUtil.isOre(item);
+ if (te.metal != null && te.metal.getItem() != null) itemCoincidesWithMetal = item.getItem().equals(te.metal.getItem()) && item.getItemDamage() == te.metal.getItemDamage();
+ if (te.moltenMetal != null && te.moltenMetal.getItem() != null)
+ {
+ itemCoincidesWithMoltenMetal = item.getItem().equals(te.moltenMetal.getItem()) && item.getItemDamage() == te.moltenMetal.getItemDamage();
+ if (isOre) oreCoincidesWithMetal = te.moltenMetal.getItem().equals(JewelrycraftUtil.getIngotFromOre(item.getItem()).getItem()) && te.moltenMetal.getItemDamage() == JewelrycraftUtil.getIngotFromOre(item.getItem()).getItemDamage();
+ }
+ overflow = isOre ? (te.metal.stackSize * 0.2f + te.quantity < 0.8f) : (te.metal.stackSize * 0.1f + te.quantity < 0.9f);
}
- else if (te.hasMetal && te.hasMoltenMetal && item != null && canPlace && item.getUnlocalizedName().equals(te.moltenMetal.getUnlocalizedName()))
+ boolean isValid = te.hasMoltenMetal ? itemCoincidesWithMoltenMetal : true;
+ if (te.quantity < 0.9f && !te.pouring && canPlace && isValid)
{
- if ((!isOre && te.moltenMetal.stackSize < 9 && te.metal.stackSize < 9 && (te.metal.stackSize + te.moltenMetal.stackSize) < 9) || (isOre && oreCoincidesWithMetal && te.metal.stackSize*2 < 9 && (te.metal.stackSize*2 + te.moltenMetal.stackSize) < 9))
+ boolean check = isOre ? (oreCoincidesWithMetal && te.quantity < 0.8f) : itemCoincidesWithMoltenMetal;
+ boolean check2 = isOre ? oreCoincidesWithMetal : itemCoincidesWithMetal;
+ if ((!te.hasMetal && !te.hasMoltenMetal) || (!te.hasMetal && te.hasMoltenMetal && check))
+ {
+ entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocalFormatted("chatmessage.Jewelrycraft.smelter.nowsmeltingingot", item.getDisplayName())));
+ te.metal = item.copy();
+ te.metal.stackSize = 1;
+ te.hasMetal = true;
+ te.melting = ConfigHandler.ingotMeltingTime;
+ if (!entityPlayer.capabilities.isCreativeMode) --item.stackSize;
+ te.isDirty = true;
+ }
+ else if ((te.hasMetal && te.hasMoltenMetal && check2 && overflow) || (te.hasMetal && !te.hasMoltenMetal && itemCoincidesWithMetal && overflow))
{
- entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocalFormatted("Smelting extra ingots (" + (te.metal.stackSize + 1) + ")")));
+ entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocalFormatted("Smelting extra " + (isOre ? "ores" : "ingots") + " (" + (te.metal.stackSize + 1) + ")")));
te.metal.stackSize++;
te.hasMetal = true;
te.melting = ConfigHandler.ingotMeltingTime;
if (!entityPlayer.capabilities.isCreativeMode) --item.stackSize;
te.isDirty = true;
}
+ te.isDirty = true;
}
- else if ((te.hasMetal || te.hasMoltenMetal) && item != null && canPlace && ((te.moltenMetal != null && te.moltenMetal.stackSize > 0 && item.getUnlocalizedName().equals(te.moltenMetal.getUnlocalizedName())) || (te.metal != null && te.metal.stackSize > 0 && item.getUnlocalizedName().equals(te.metal.getUnlocalizedName()))) && ((te.moltenMetal != null && te.moltenMetal.stackSize >= 9) || (te.metal != null && te.metal.stackSize >= 9))) entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("Smelter is at full capacity.")));
- else if (te.hasMetal && !te.hasMoltenMetal && item != null && canPlace) entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocalFormatted("chatmessage.Jewelrycraft.smelter.alreadyhasingot", te.metal.getDisplayName())));
- else if (te.hasMoltenMetal && Item.getIdFromItem(te.moltenMetal.getItem()) > 0) entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocalFormatted("chatmessage.Jewelrycraft.smelter.hasmolteningot", te.moltenMetal.getDisplayName())));
- else if (item != null && !item.getUnlocalizedName().toLowerCase().contains("ingot") && canPlace) entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage.Jewelrycraft.smelter.itemrenamedtoingot")));
- else if (item != null && (!item.getUnlocalizedName().toLowerCase().contains("ingot") || item.getUnlocalizedName().toLowerCase().contains("mold"))) entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage.Jewelrycraft.smelter.itemneedstobeingot")));
+ else if (item == null && te.hasMoltenMetal && te.moltenMetal.getItem() != null) entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocalFormatted("chatmessage.Jewelrycraft.smelter.hasmolteningot", te.moltenMetal.getDisplayName())));
+ else if (item != null && (te.hasMetal || te.hasMoltenMetal) && !itemCoincidesWithMoltenMetal && te.quantity < 0.9f) entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("Item does not match contents!")));
+ else if (item != null && !item.getUnlocalizedName().toLowerCase().contains("ingot") && te.quantity < 0.9f) entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage.Jewelrycraft.smelter.itemrenamedtoingot")));
+ else if (item != null && te.quantity >= 0.9f) entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("Smelter is at full capacity.")));
if (te.hasMetal && entityPlayer.isSneaking())
{
@@ -164,7 +164,7 @@ public class BlockSmelter extends BlockContainer
te.melting = -1;
te.isDirty = true;
}
- if (te != null) world.setTileEntity(i, j, k, te);
+ world.setTileEntity(i, j, k, te);
}
return true;
}
diff --git a/java/darkknight/jewelrycraft/client/ClientProxy.java b/java/darkknight/jewelrycraft/client/ClientProxy.java
index e086e94..8593b58 100644
--- a/java/darkknight/jewelrycraft/client/ClientProxy.java
+++ b/java/darkknight/jewelrycraft/client/ClientProxy.java
@@ -1,11 +1,34 @@
package darkknight.jewelrycraft.client;
+import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation;
+import net.minecraftforge.client.MinecraftForgeClient;
import cpw.mods.fml.client.registry.ClientRegistry;
import cpw.mods.fml.common.registry.VillagerRegistry;
import darkknight.jewelrycraft.CommonProxy;
-import darkknight.jewelrycraft.renders.*;
-import darkknight.jewelrycraft.tileentity.*;
+import darkknight.jewelrycraft.block.BlockList;
+import darkknight.jewelrycraft.model.ModelDisplayer;
+import darkknight.jewelrycraft.model.ModelHandPedestal;
+import darkknight.jewelrycraft.model.ModelJewlersCraftingBench;
+import darkknight.jewelrycraft.model.ModelMolder;
+import darkknight.jewelrycraft.model.ModelShadowEye;
+import darkknight.jewelrycraft.model.ModelShadowHand;
+import darkknight.jewelrycraft.model.ModelSmelter;
+import darkknight.jewelrycraft.renders.ItemRender;
+import darkknight.jewelrycraft.renders.TileEntityDisplayerRender;
+import darkknight.jewelrycraft.renders.TileEntityHandPedestalRender;
+import darkknight.jewelrycraft.renders.TileEntityJewelrsCraftingTableRender;
+import darkknight.jewelrycraft.renders.TileEntityMolderRender;
+import darkknight.jewelrycraft.renders.TileEntityShadowEyeRender;
+import darkknight.jewelrycraft.renders.TileEntityShadowHandRender;
+import darkknight.jewelrycraft.renders.TileEntitySmelterRender;
+import darkknight.jewelrycraft.tileentity.TileEntityDisplayer;
+import darkknight.jewelrycraft.tileentity.TileEntityHandPedestal;
+import darkknight.jewelrycraft.tileentity.TileEntityJewelrsCraftingTable;
+import darkknight.jewelrycraft.tileentity.TileEntityMolder;
+import darkknight.jewelrycraft.tileentity.TileEntityShadowEye;
+import darkknight.jewelrycraft.tileentity.TileEntityShadowHand;
+import darkknight.jewelrycraft.tileentity.TileEntitySmelter;
public class ClientProxy extends CommonProxy
{
@@ -16,6 +39,18 @@ public class ClientProxy extends CommonProxy
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMolder.class, new TileEntityMolderRender());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityJewelrsCraftingTable.class, new TileEntityJewelrsCraftingTableRender());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDisplayer.class, new TileEntityDisplayerRender());
+ ClientRegistry.bindTileEntitySpecialRenderer(TileEntityShadowEye.class, new TileEntityShadowEyeRender());
+ ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHandPedestal.class, new TileEntityHandPedestalRender());
+ ClientRegistry.bindTileEntitySpecialRenderer(TileEntityShadowHand.class, new TileEntityShadowHandRender());
+
+ MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.displayer), new ItemRender(new TileEntityDisplayerRender(), new TileEntityDisplayer(), new ModelDisplayer()));
+ MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.jewelCraftingTable), new ItemRender(new TileEntityJewelrsCraftingTableRender(), new TileEntityJewelrsCraftingTable(), new ModelJewlersCraftingBench()));
+ MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.smelter), new ItemRender(new TileEntitySmelterRender(), new TileEntitySmelter(), new ModelSmelter()));
+ MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.molder), new ItemRender(new TileEntityMolderRender(), new TileEntityMolder(), new ModelMolder()));
+ MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.shadowEye), new ItemRender(new TileEntityShadowEyeRender(), new TileEntityShadowEye(), new ModelShadowEye()));
+ MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.handPedestal), new ItemRender(new TileEntityHandPedestalRender(), new TileEntityHandPedestal(), new ModelHandPedestal()));
+ MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.shadowHand), new ItemRender(new TileEntityShadowHandRender(), new TileEntityShadowHand(), new ModelShadowHand()));
+
VillagerRegistry.instance().registerVillagerSkin(3000, new ResourceLocation("jewelrycraft", "textures/entities/jeweler.png"));
}
}
diff --git a/java/darkknight/jewelrycraft/client/GuiGuide.java b/java/darkknight/jewelrycraft/client/GuiGuide.java
index cf562a8..6112d5d 100644
--- a/java/darkknight/jewelrycraft/client/GuiGuide.java
+++ b/java/darkknight/jewelrycraft/client/GuiGuide.java
@@ -41,7 +41,7 @@ public class GuiGuide extends GuiContainer
this.world = world;
tabs = new GuiTab[]
- { new GuiTabBlocks(0), new GuiTabItems(1), new GuiTabJewelsAndModifiers(2), new GuiTabRings(3), new GuiTabNecklaces(4) };
+ { new GuiTabBlocks(0), new GuiTabItems(1), new GuiTabJewelsAndModifiers(2)};
activeTab = tabs[0];
}
diff --git a/java/darkknight/jewelrycraft/client/GuiJewelry.java b/java/darkknight/jewelrycraft/client/GuiJewelry.java
new file mode 100644
index 0000000..bbc6236
--- /dev/null
+++ b/java/darkknight/jewelrycraft/client/GuiJewelry.java
@@ -0,0 +1,32 @@
+package darkknight.jewelrycraft.client;
+
+import org.lwjgl.opengl.GL11;
+
+import darkknight.jewelrycraft.container.ContainerJewelryTab;
+import darkknight.jewelrycraft.container.ContainerRingChest;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.inventory.GuiContainer;
+import net.minecraft.util.ResourceLocation;
+
+public class GuiJewelry extends GuiContainer
+{
+ public GuiJewelry(ContainerJewelryTab containerJewelryTab)
+ {
+ super(containerJewelryTab);
+ xSize = 194;
+ ySize = 166;
+ }
+
+ @Override
+ public void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY)
+ {
+ GL11.glColor3f(1, 1, 1);
+ Minecraft.getMinecraft().getTextureManager().bindTexture(new ResourceLocation("jewelrycraft", "textures/gui/jewelry_tab.png"));
+ drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
+ }
+
+ @Override
+ public void drawGuiContainerForegroundLayer(int mouseX, int mouseY)
+ {
+ }
+}
diff --git a/java/darkknight/jewelrycraft/config/ConfigHandler.java b/java/darkknight/jewelrycraft/config/ConfigHandler.java
index 1a165ae..ec7f0c1 100644
--- a/java/darkknight/jewelrycraft/config/ConfigHandler.java
+++ b/java/darkknight/jewelrycraft/config/ConfigHandler.java
@@ -5,7 +5,7 @@ import cpw.mods.fml.common.event.FMLPreInitializationEvent;
public class ConfigHandler
{
- private static Configuration config;
+ public static Configuration config;
public static int ingotCoolingTime = 100;
public static int ingotMeltingTime = 1500;
public static int jewelryCraftingTime = 1000;
diff --git a/java/darkknight/jewelrycraft/container/ContainerJewelryTab.java b/java/darkknight/jewelrycraft/container/ContainerJewelryTab.java
new file mode 100644
index 0000000..e33976a
--- /dev/null
+++ b/java/darkknight/jewelrycraft/container/ContainerJewelryTab.java
@@ -0,0 +1,65 @@
+package darkknight.jewelrycraft.container;
+
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.inventory.Container;
+import net.minecraft.inventory.Slot;
+import net.minecraft.item.ItemStack;
+import darkknight.jewelrycraft.JewelrycraftMod;
+
+public class ContainerJewelryTab extends Container
+{
+ public ContainerJewelryTab(EntityPlayer player, InventoryPlayer inv)
+ {
+ int x, y;
+ // Rings
+ for (x = 0; x <= 9; x++)
+ this.addSlotToContainer(new SlotRing(new JewelryInventory(), x, 8 + x * 18, 7));
+
+ // Hotbar
+ for (x = 0; x < 9; ++x)
+ this.addSlotToContainer(new Slot(inv, x, 17 + x * 18, 142));
+
+ // Inventory
+ for (x = 0; x < 3; ++x)
+ for (y = 0; y < 9; ++y)
+ this.addSlotToContainer(new Slot(inv, 9 + y + x * 9, 17 + y * 18, 84 + x * 18));
+
+ }
+
+ @Override
+ public boolean canInteractWith(EntityPlayer player)
+ {
+ return true;
+ }
+
+ @Override
+ public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int par2)
+ {
+ ItemStack itemstack = null;
+ Slot slot = (Slot) this.inventorySlots.get(par2);
+
+// if (slot != null && slot.getHasStack())
+// {
+// ItemStack itemstack1 = slot.getStack();
+// itemstack = itemstack1.copy();
+//
+// if (par2 < 27)
+// {
+// if (!this.mergeItemStack(itemstack1, 27, this.inventorySlots.size(), true)) { return null; }
+// }
+// else if (!this.mergeItemStack(itemstack1, 0, 27, false)) { return null; }
+//
+// if (itemstack1.stackSize == 0)
+// {
+// slot.putStack((ItemStack) null);
+// }
+// else
+// {
+// slot.onSlotChanged();
+// }
+// }
+//
+ return itemstack;
+ }
+}
diff --git a/java/darkknight/jewelrycraft/container/GuiHandler.java b/java/darkknight/jewelrycraft/container/GuiHandler.java
index cd9d72e..7773a38 100644
--- a/java/darkknight/jewelrycraft/container/GuiHandler.java
+++ b/java/darkknight/jewelrycraft/container/GuiHandler.java
@@ -7,6 +7,7 @@ import cpw.mods.fml.common.network.IGuiHandler;
import cpw.mods.fml.common.network.NetworkRegistry;
import darkknight.jewelrycraft.JewelrycraftMod;
import darkknight.jewelrycraft.client.GuiGuide;
+import darkknight.jewelrycraft.client.GuiJewelry;
import darkknight.jewelrycraft.client.GuiRingChest;
public class GuiHandler implements IGuiHandler
@@ -25,6 +26,8 @@ public class GuiHandler implements IGuiHandler
return new ContainerRingChest(player.inventory, (TileEntityChest) world.getTileEntity(x, y, z));
case 1:
return new ContainerGuide();
+ case 2:
+ return new ContainerJewelryTab(player, player.inventory);
default:
return null;
}
@@ -39,6 +42,8 @@ public class GuiHandler implements IGuiHandler
return new GuiRingChest((ContainerRingChest) getServerGuiElement(ID, player, world, x, y, z));
case 1:
return new GuiGuide((ContainerGuide) getServerGuiElement(ID, player, world, x, y, z), world);
+ case 2:
+ return new GuiJewelry(new ContainerJewelryTab(player, player.inventory));
default:
return null;
}
diff --git a/java/darkknight/jewelrycraft/container/GuiTabJewelsAndModifiers.java b/java/darkknight/jewelrycraft/container/GuiTabJewelsAndModifiers.java
index d7f552d..d586348 100644
--- a/java/darkknight/jewelrycraft/container/GuiTabJewelsAndModifiers.java
+++ b/java/darkknight/jewelrycraft/container/GuiTabJewelsAndModifiers.java
@@ -13,7 +13,7 @@ public class GuiTabJewelsAndModifiers extends GuiTab
{
public GuiTabJewelsAndModifiers(int id)
{
- super("Jewels, modifiers and ingots", id);
+ super("Gems, modifiers and ingots", id);
}
public ItemStack getIcon()
@@ -26,14 +26,14 @@ public class GuiTabJewelsAndModifiers extends GuiTab
{
int xPos = (page % 2 == 0) ? 107 : -35;
for (int i = (page - 1) * 9; i < page * 9; i++)
- if (i < JewelrycraftUtil.jewel.size())
+ if (i < JewelrycraftUtil.gem.size())
{
- gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Jewels", gui.getLeft() + xPos + 40, gui.getTop(), 0);
- gui.renderItem(JewelrycraftUtil.jewel.get(i), gui.getLeft() + xPos + 10, gui.getTop() + 22 + 16 * (i - 9 * (page - 1)), 30f);
- gui.getFont().drawString(JewelrycraftUtil.jewel.get(i).getDisplayName(), gui.getLeft() + xPos + 20, gui.getTop() + 12 + 16 * (i - 9 * (page - 1)), 0);
+ gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Gems", gui.getLeft() + xPos + 40, gui.getTop(), 0);
+ gui.renderItem(JewelrycraftUtil.gem.get(i), gui.getLeft() + xPos + 10, gui.getTop() + 22 + 16 * (i - 9 * (page - 1)), 30f);
+ gui.getFont().drawString(JewelrycraftUtil.gem.get(i).getDisplayName(), gui.getLeft() + xPos + 20, gui.getTop() + 12 + 16 * (i - 9 * (page - 1)), 0);
GL11.glDisable(GL11.GL_LIGHTING);
}
- page -= (JewelrycraftUtil.jewel.size() / 9 + 1);
+ page -= (JewelrycraftUtil.gem.size() / 9 + 1);
for (int i = (page - 1) * 9; i < page * 9; i++)
{
if (i < JewelrycraftUtil.modifiers.size() && page > 0)
@@ -59,7 +59,7 @@ public class GuiTabJewelsAndModifiers extends GuiTab
public int getMaxPages()
{
- return JewelrycraftUtil.jewel.size() / 9 + JewelrycraftUtil.modifiers.size() / 9 + JewelrycraftUtil.metal.size() / 9 + 2;
+ return JewelrycraftUtil.gem.size() / 9 + JewelrycraftUtil.modifiers.size() / 9 + JewelrycraftUtil.metal.size() / 9 + 2;
}
@Override
diff --git a/java/darkknight/jewelrycraft/container/GuiTabNecklaces.java b/java/darkknight/jewelrycraft/container/GuiTabNecklaces.java
index 08e93c9..531de4a 100644
--- a/java/darkknight/jewelrycraft/container/GuiTabNecklaces.java
+++ b/java/darkknight/jewelrycraft/container/GuiTabNecklaces.java
@@ -4,7 +4,6 @@ import java.util.ArrayList;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
-import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import darkknight.jewelrycraft.client.GuiGuide;
@@ -26,7 +25,7 @@ public class GuiTabNecklaces extends GuiTab
{
ItemStack it = new ItemStack(ItemList.necklace);
JewelryNBT.addMetal(it, new ItemStack(Items.iron_ingot));
- JewelryNBT.addJewel(it, new ItemStack(Blocks.redstone_block));
+ JewelryNBT.addGem(it, new ItemStack(Blocks.redstone_block));
return it;
}
@@ -34,7 +33,7 @@ public class GuiTabNecklaces extends GuiTab
public void drawBackground(GuiGuide gui, int x, int y, int page)
{
ArrayList<String> text = new ArrayList<String>();
- ArrayList<ItemStack> jewels = new ArrayList<ItemStack>();
+ ArrayList<ItemStack> gems = new ArrayList<ItemStack>();
ItemStack item = new ItemStack(ItemList.necklace);
int xPos = (page % 2 == 0) ? 107 : -35;
switch (page)
@@ -46,9 +45,9 @@ public class GuiTabNecklaces extends GuiTab
if (values > JewelrycraftUtil.metal.size() - 1) values = 0;
JewelryNBT.addMetal(item, JewelrycraftUtil.metal.get(values).copy());
- JewelryNBT.addJewel(item, new ItemStack(Items.ender_pearl));
+ JewelryNBT.addGem(item, new ItemStack(Items.ender_pearl));
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "Ender Pearl");
+ text.add(EnumChatFormatting.DARK_GREEN + "gem: " + EnumChatFormatting.BLACK + "Ender Pearl");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "None");
text.add(EnumChatFormatting.DARK_GREEN + "Ingot: " + EnumChatFormatting.BLACK + "Any");
text.add(" This ring teleports");
@@ -80,10 +79,10 @@ public class GuiTabNecklaces extends GuiTab
if (values > JewelrycraftUtil.metal.size() - 1) values = 0;
JewelryNBT.addMetal(item, JewelrycraftUtil.metal.get(values).copy());
- JewelryNBT.addJewel(item, new ItemStack(Items.ender_pearl));
- JewelryNBT.addModifier(item, new ItemStack(Items.bed));
+ JewelryNBT.addGem(item, new ItemStack(Items.ender_pearl));
+ JewelryNBT.addModifiers(item, JewelrycraftUtil.addRandomModifiers());
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "Ender Pearl");
+ text.add(EnumChatFormatting.DARK_GREEN + "gem: " + EnumChatFormatting.BLACK + "Ender Pearl");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "Bed");
text.add(EnumChatFormatting.DARK_GREEN + "Ingot: " + EnumChatFormatting.BLACK + "Any");
text.add(" Just like the other");
@@ -109,10 +108,10 @@ public class GuiTabNecklaces extends GuiTab
Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text);
break;
case 5:
- jewels.add(null);
- jewels.add(new ItemStack(Items.diamond));
- jewels.add(new ItemStack(Items.emerald));
- jewels.add(new ItemStack(Items.nether_star));
+ gems.add(null);
+ gems.add(new ItemStack(Items.diamond));
+ gems.add(new ItemStack(Items.emerald));
+ gems.add(new ItemStack(Items.nether_star));
if (del == 0)
{
@@ -122,13 +121,13 @@ public class GuiTabNecklaces extends GuiTab
del++;
if (del >= 300) del = 0;
if (values > JewelrycraftUtil.metal.size() - 1) values = 0;
- if (jValues > jewels.size() - 1) jValues = 0;
+ if (jValues > gems.size() - 1) jValues = 0;
JewelryNBT.addMetal(item, JewelrycraftUtil.metal.get(values).copy());
- JewelryNBT.addJewel(item, jewels.get(jValues));
- JewelryNBT.addModifier(item, new ItemStack(Items.blaze_powder));
+ JewelryNBT.addGem(item, gems.get(jValues));
+ JewelryNBT.addModifiers(item, JewelrycraftUtil.addRandomModifiers());
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "None, Diamond");
+ text.add(EnumChatFormatting.DARK_GREEN + "gem: " + EnumChatFormatting.BLACK + "None, Diamond");
text.add("Emerald or Nether Star");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "Blaze Powder");
text.add(EnumChatFormatting.DARK_GREEN + "Ingot: " + EnumChatFormatting.BLACK + "Any");
@@ -142,21 +141,21 @@ public class GuiTabNecklaces extends GuiTab
Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), item, text, 50f, 0, -10, false, 45, 0);
break;
case 6:
- text.add("Depending on the jewel");
+ text.add("Depending on the gem");
text.add("used, you and the");
text.add("others get " + EnumChatFormatting.DARK_RED + "Fire");
text.add(EnumChatFormatting.DARK_RED + "Resistance" + EnumChatFormatting.BLACK + " I if you");
- text.add("haven't got any jewel,");
+ text.add("haven't got any gem,");
text.add("II for Diamond,");
text.add("III for Emerald and");
text.add("VIII for Nether Star.");
Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text);
break;
case 7:
- jewels.add(null);
- jewels.add(new ItemStack(Items.diamond));
- jewels.add(new ItemStack(Items.emerald));
- jewels.add(new ItemStack(Items.nether_star));
+ gems.add(null);
+ gems.add(new ItemStack(Items.diamond));
+ gems.add(new ItemStack(Items.emerald));
+ gems.add(new ItemStack(Items.nether_star));
if (del == 0)
{
@@ -166,13 +165,13 @@ public class GuiTabNecklaces extends GuiTab
del++;
if (del >= 300) del = 0;
if (values > JewelrycraftUtil.metal.size() - 1) values = 0;
- if (jValues > jewels.size() - 1) jValues = 0;
+ if (jValues > gems.size() - 1) jValues = 0;
JewelryNBT.addMetal(item, JewelrycraftUtil.metal.get(values).copy());
- JewelryNBT.addJewel(item, jewels.get(jValues));
- JewelryNBT.addModifier(item, new ItemStack(Items.sugar));
+ JewelryNBT.addGem(item, gems.get(jValues));
+ JewelryNBT.addModifiers(item, JewelrycraftUtil.addRandomModifiers());
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "None, Diamond");
+ text.add(EnumChatFormatting.DARK_GREEN + "gem: " + EnumChatFormatting.BLACK + "None, Diamond");
text.add("Emerald or Nether Star");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "Sugar");
text.add(EnumChatFormatting.DARK_GREEN + "Ingot: " + EnumChatFormatting.BLACK + "Any");
@@ -186,20 +185,20 @@ public class GuiTabNecklaces extends GuiTab
Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), item, text, 50f, 0, -10, false, 45, 0);
break;
case 8:
- text.add("Depending on the jewel");
+ text.add("Depending on the gem");
text.add("used, you and the");
text.add("others get " + EnumChatFormatting.DARK_RED + "Speed" + EnumChatFormatting.BLACK + " I");
text.add("if you haven't got any");
- text.add("jewel, II for Diamond,");
+ text.add("gem, II for Diamond,");
text.add("III for Emerald and");
text.add("VIII for Nether Star.");
Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text);
break;
case 9:
- jewels.add(null);
- jewels.add(new ItemStack(Items.diamond));
- jewels.add(new ItemStack(Items.emerald));
- jewels.add(new ItemStack(Items.nether_star));
+ gems.add(null);
+ gems.add(new ItemStack(Items.diamond));
+ gems.add(new ItemStack(Items.emerald));
+ gems.add(new ItemStack(Items.nether_star));
if (del == 0)
{
@@ -209,13 +208,13 @@ public class GuiTabNecklaces extends GuiTab
del++;
if (del >= 300) del = 0;
if (values > JewelrycraftUtil.metal.size() - 1) values = 0;
- if (jValues > jewels.size() - 1) jValues = 0;
+ if (jValues > gems.size() - 1) jValues = 0;
JewelryNBT.addMetal(item, JewelrycraftUtil.metal.get(values).copy());
- JewelryNBT.addJewel(item, jewels.get(jValues));
- JewelryNBT.addModifier(item, new ItemStack(Items.iron_pickaxe));
+ JewelryNBT.addGem(item, gems.get(jValues));
+ JewelryNBT.addModifiers(item, JewelrycraftUtil.addRandomModifiers());
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "None, Diamond");
+ text.add(EnumChatFormatting.DARK_GREEN + "gem: " + EnumChatFormatting.BLACK + "None, Diamond");
text.add("Emerald or Nether Star");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "Iron Pickaxe");
text.add(EnumChatFormatting.DARK_GREEN + "Ingot: " + EnumChatFormatting.BLACK + "Any");
@@ -229,20 +228,20 @@ public class GuiTabNecklaces extends GuiTab
Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), item, text, 50f, 0, -10, false, 45, 0);
break;
case 10:
- text.add("Depending on the jewel");
+ text.add("Depending on the gem");
text.add("used, you and the");
text.add("others get " + EnumChatFormatting.DARK_RED + "Haste" + EnumChatFormatting.BLACK + " I");
text.add("if you haven't got any");
- text.add("jewel, II for Diamond,");
+ text.add("gem, II for Diamond,");
text.add("III for Emerald and");
text.add("VIII for Nether Star.");
Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text);
break;
case 11:
- jewels.add(null);
- jewels.add(new ItemStack(Items.diamond));
- jewels.add(new ItemStack(Items.emerald));
- jewels.add(new ItemStack(Items.nether_star));
+ gems.add(null);
+ gems.add(new ItemStack(Items.diamond));
+ gems.add(new ItemStack(Items.emerald));
+ gems.add(new ItemStack(Items.nether_star));
if (del == 0)
{
@@ -252,13 +251,13 @@ public class GuiTabNecklaces extends GuiTab
del++;
if (del >= 300) del = 0;
if (values > JewelrycraftUtil.metal.size() - 1) values = 0;
- if (jValues > jewels.size() - 1) jValues = 0;
+ if (jValues > gems.size() - 1) jValues = 0;
JewelryNBT.addMetal(item, JewelrycraftUtil.metal.get(values).copy());
- JewelryNBT.addJewel(item, jewels.get(jValues));
- JewelryNBT.addModifier(item, new ItemStack(Items.feather));
+ JewelryNBT.addGem(item, gems.get(jValues));
+ JewelryNBT.addModifiers(item, JewelrycraftUtil.addRandomModifiers());
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "None, Diamond");
+ text.add(EnumChatFormatting.DARK_GREEN + "gem: " + EnumChatFormatting.BLACK + "None, Diamond");
text.add("Emerald or Nether Star");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "Feather");
text.add(EnumChatFormatting.DARK_GREEN + "Ingot: " + EnumChatFormatting.BLACK + "Any");
@@ -272,20 +271,20 @@ public class GuiTabNecklaces extends GuiTab
Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), item, text, 50f, 0, -10, false, 45, 0);
break;
case 12:
- text.add("Depending on the jewel");
+ text.add("Depending on the gem");
text.add("used, you and the");
text.add("others get " + EnumChatFormatting.DARK_RED + "Jump Boost");
text.add("I if you haven't got any");
- text.add("jewel, II for Diamond,");
+ text.add("gem, II for Diamond,");
text.add("III for Emerald and");
text.add("VIII for Nether Star.");
Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text);
break;
case 13:
- jewels.add(null);
- jewels.add(new ItemStack(Items.diamond));
- jewels.add(new ItemStack(Items.emerald));
- jewels.add(new ItemStack(Items.nether_star));
+ gems.add(null);
+ gems.add(new ItemStack(Items.diamond));
+ gems.add(new ItemStack(Items.emerald));
+ gems.add(new ItemStack(Items.nether_star));
if (del == 0)
{
@@ -295,13 +294,13 @@ public class GuiTabNecklaces extends GuiTab
del++;
if (del >= 300) del = 0;
if (values > JewelrycraftUtil.metal.size() - 1) values = 0;
- if (jValues > jewels.size() - 1) jValues = 0;
+ if (jValues > gems.size() - 1) jValues = 0;
JewelryNBT.addMetal(item, JewelrycraftUtil.metal.get(values).copy());
- JewelryNBT.addJewel(item, jewels.get(jValues));
- JewelryNBT.addModifier(item, new ItemStack(Items.potionitem, 1, 8270));
+ JewelryNBT.addGem(item, gems.get(jValues));
+ JewelryNBT.addModifiers(item, JewelrycraftUtil.addRandomModifiers());
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "None, Diamond");
+ text.add(EnumChatFormatting.DARK_GREEN + "gem: " + EnumChatFormatting.BLACK + "None, Diamond");
text.add("Emerald or Nether Star");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "8min Potion of");
text.add("Invisibility");
@@ -316,20 +315,20 @@ public class GuiTabNecklaces extends GuiTab
break;
case 14:
text.add("right click with it.");
- text.add("Depending on the jewel");
+ text.add("Depending on the gem");
text.add("used, you and the");
text.add("others get " + EnumChatFormatting.DARK_RED + "Invisibility" + EnumChatFormatting.BLACK + " I");
text.add("if you haven't got any");
- text.add("jewel, II for Diamond,");
+ text.add("gem, II for Diamond,");
text.add("III for Emerald and");
text.add("VIII for Nether Star.");
Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text);
break;
case 15:
- jewels.add(null);
- jewels.add(new ItemStack(Items.diamond));
- jewels.add(new ItemStack(Items.emerald));
- jewels.add(new ItemStack(Items.nether_star));
+ gems.add(null);
+ gems.add(new ItemStack(Items.diamond));
+ gems.add(new ItemStack(Items.emerald));
+ gems.add(new ItemStack(Items.nether_star));
if (del == 0)
{
@@ -339,13 +338,13 @@ public class GuiTabNecklaces extends GuiTab
del++;
if (del >= 300) del = 0;
if (values > JewelrycraftUtil.metal.size() - 1) values = 0;
- if (jValues > jewels.size() - 1) jValues = 0;
+ if (jValues > gems.size() - 1) jValues = 0;
JewelryNBT.addMetal(item, JewelrycraftUtil.metal.get(values).copy());
- JewelryNBT.addJewel(item, jewels.get(jValues));
- JewelryNBT.addModifier(item, new ItemStack(Items.dye, 1, 15));
+ JewelryNBT.addGem(item, gems.get(jValues));
+ JewelryNBT.addModifiers(item, JewelrycraftUtil.addRandomModifiers());
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "None, Diamond");
+ text.add(EnumChatFormatting.DARK_GREEN + "gem: " + EnumChatFormatting.BLACK + "None, Diamond");
text.add("Emerald or Nether Star");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "Bone Meal");
text.add(EnumChatFormatting.DARK_GREEN + "Ingot: " + EnumChatFormatting.BLACK + "Any");
@@ -359,7 +358,7 @@ public class GuiTabNecklaces extends GuiTab
Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), item, text, 50f, 0, -10, false, 45, 0);
break;
case 16:
- text.add("determined by the jewel");
+ text.add("determined by the gem");
text.add("used. For none, the");
text.add("area is a block, diamond");
text.add("is 3x3, emerald 5x5 and");
@@ -375,10 +374,10 @@ public class GuiTabNecklaces extends GuiTab
break;
case 17:
JewelryNBT.addMetal(item, new ItemStack(ItemList.shadowIngot));
- JewelryNBT.addJewel(item, new ItemStack(Items.nether_star));
- JewelryNBT.addModifier(item, new ItemStack(Items.diamond_pickaxe));
+ JewelryNBT.addGem(item, new ItemStack(Items.nether_star));
+ JewelryNBT.addModifiers(item, JewelrycraftUtil.addRandomModifiers());
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "Nether Star");
+ text.add(EnumChatFormatting.DARK_GREEN + "gem: " + EnumChatFormatting.BLACK + "Nether Star");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "Diamond Pick");
text.add(EnumChatFormatting.DARK_GREEN + "Ingot: " + EnumChatFormatting.BLACK + "Shadow Ingot");
text.add(" This will break all");
diff --git a/java/darkknight/jewelrycraft/container/GuiTabRings.java b/java/darkknight/jewelrycraft/container/GuiTabRings.java
index 5a924f0..1e30659 100644
--- a/java/darkknight/jewelrycraft/container/GuiTabRings.java
+++ b/java/darkknight/jewelrycraft/container/GuiTabRings.java
@@ -25,7 +25,7 @@ public class GuiTabRings extends GuiTab
{
ItemStack it = new ItemStack(ItemList.ring);
JewelryNBT.addMetal(it, new ItemStack(Items.gold_ingot));
- JewelryNBT.addJewel(it, new ItemStack(Items.ender_pearl));
+ JewelryNBT.addGem(it, new ItemStack(Items.ender_pearl));
return it;
}
@@ -33,7 +33,7 @@ public class GuiTabRings extends GuiTab
public void drawBackground(GuiGuide gui, int x, int y, int page)
{
ArrayList<String> text = new ArrayList<String>();
- ArrayList<ItemStack> jewels = new ArrayList<ItemStack>();
+ ArrayList<ItemStack> Gems = new ArrayList<ItemStack>();
ItemStack item = new ItemStack(ItemList.ring);
int xPos = (page % 2 == 0) ? 107 : -35;
switch (page)
@@ -45,9 +45,9 @@ public class GuiTabRings extends GuiTab
if (values > JewelrycraftUtil.metal.size() - 1) values = 0;
JewelryNBT.addMetal(item, JewelrycraftUtil.metal.get(values).copy());
- JewelryNBT.addJewel(item, new ItemStack(Items.ender_pearl));
+ JewelryNBT.addGem(item, new ItemStack(Items.ender_pearl));
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "Ender Pearl");
+ text.add(EnumChatFormatting.DARK_GREEN + "Gem: " + EnumChatFormatting.BLACK + "Ender Pearl");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "None");
text.add(EnumChatFormatting.DARK_GREEN + "Ingot: " + EnumChatFormatting.BLACK + "Any");
text.add(" This ring allows you");
@@ -82,15 +82,15 @@ public class GuiTabRings extends GuiTab
if (values > JewelrycraftUtil.metal.size() - 1) values = 0;
JewelryNBT.addMetal(item, JewelrycraftUtil.metal.get(values).copy());
- JewelryNBT.addJewel(item, new ItemStack(Items.ender_pearl));
- JewelryNBT.addModifier(item, new ItemStack(Items.bed));
+ JewelryNBT.addGem(item, new ItemStack(Items.ender_pearl));
+ JewelryNBT.addModifiers(item, JewelrycraftUtil.addRandomModifiers());
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "Ender Pearl");
+ text.add(EnumChatFormatting.DARK_GREEN + "Gem: " + EnumChatFormatting.BLACK + "Ender Pearl");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "Bed");
text.add(EnumChatFormatting.DARK_GREEN + "Ingot: " + EnumChatFormatting.BLACK + "Any");
text.add(" Just like the other");
text.add("ring that had only an");
- text.add("ender pearl as a jewel,");
+ text.add("ender pearl as a Gem,");
text.add("by adding a bed as a");
text.add("modifier to it you can");
text.add("travel between");
@@ -113,10 +113,10 @@ public class GuiTabRings extends GuiTab
Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text);
break;
case 5:
- jewels.add(null);
- jewels.add(new ItemStack(Items.diamond));
- jewels.add(new ItemStack(Items.emerald));
- jewels.add(new ItemStack(Items.nether_star));
+ Gems.add(null);
+ Gems.add(new ItemStack(Items.diamond));
+ Gems.add(new ItemStack(Items.emerald));
+ Gems.add(new ItemStack(Items.nether_star));
if (del == 0)
{
@@ -126,13 +126,13 @@ public class GuiTabRings extends GuiTab
del++;
if (del >= 300) del = 0;
if (values > JewelrycraftUtil.metal.size() - 1) values = 0;
- if (jValues > jewels.size() - 1) jValues = 0;
+ if (jValues > Gems.size() - 1) jValues = 0;
JewelryNBT.addMetal(item, JewelrycraftUtil.metal.get(values).copy());
- JewelryNBT.addJewel(item, jewels.get(jValues));
- JewelryNBT.addModifier(item, new ItemStack(Items.blaze_powder));
+ JewelryNBT.addGem(item, Gems.get(jValues));
+ JewelryNBT.addModifiers(item, JewelrycraftUtil.addRandomModifiers());
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "None, Diamond");
+ text.add(EnumChatFormatting.DARK_GREEN + "Gem: " + EnumChatFormatting.BLACK + "None, Diamond");
text.add("Emerald or Nether Star");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "Blaze Powder");
text.add(EnumChatFormatting.DARK_GREEN + "Ingot: " + EnumChatFormatting.BLACK + "Any");
@@ -142,22 +142,22 @@ public class GuiTabRings extends GuiTab
text.add("inventory. To deactivate");
text.add("it simply right click with");
text.add("it. Depending on the");
- text.add("jewel you used, you");
+ text.add("Gem you used, you");
Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), item, text, 50f, 0, -10, false, 45, 0);
break;
case 6:
text.add("get " + EnumChatFormatting.DARK_RED + "Fire Resistance" + EnumChatFormatting.BLACK + " I");
text.add("if you haven't got any");
- text.add("jewel, II for Diamond,");
+ text.add("Gem, II for Diamond,");
text.add("III for Emerald and");
text.add("VIII for Nether Star.");
Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text);
break;
case 7:
- jewels.add(null);
- jewels.add(new ItemStack(Items.diamond));
- jewels.add(new ItemStack(Items.emerald));
- jewels.add(new ItemStack(Items.nether_star));
+ Gems.add(null);
+ Gems.add(new ItemStack(Items.diamond));
+ Gems.add(new ItemStack(Items.emerald));
+ Gems.add(new ItemStack(Items.nether_star));
if (del == 0)
{
@@ -167,13 +167,13 @@ public class GuiTabRings extends GuiTab
del++;
if (del >= 300) del = 0;
if (values > JewelrycraftUtil.metal.size() - 1) values = 0;
- if (jValues > jewels.size() - 1) jValues = 0;
+ if (jValues > Gems.size() - 1) jValues = 0;
JewelryNBT.addMetal(item, JewelrycraftUtil.metal.get(values).copy());
- JewelryNBT.addJewel(item, jewels.get(jValues));
- JewelryNBT.addModifier(item, new ItemStack(Items.sugar));
+ JewelryNBT.addGem(item, Gems.get(jValues));
+ JewelryNBT.addModifiers(item, JewelrycraftUtil.addRandomModifiers());
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "None, Diamond");
+ text.add(EnumChatFormatting.DARK_GREEN + "Gem: " + EnumChatFormatting.BLACK + "None, Diamond");
text.add("Emerald or Nether Star");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "Sugar");
text.add(EnumChatFormatting.DARK_GREEN + "Ingot: " + EnumChatFormatting.BLACK + "Any");
@@ -183,22 +183,22 @@ public class GuiTabRings extends GuiTab
text.add("To deactivate it simply");
text.add("right click with it.");
text.add("Depending on the");
- text.add("jewel you used, you");
+ text.add("Gem you used, you");
Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), item, text, 50f, 0, -10, false, 45, 0);
break;
case 8:
text.add("get " + EnumChatFormatting.DARK_RED + "Speed" + EnumChatFormatting.BLACK + " I if you");
- text.add("haven't got any jewel,");
+ text.add("haven't got any Gem,");
text.add("II for Diamond,");
text.add("III for Emerald and");
text.add("VIII for Nether Star.");
Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text);
break;
case 9:
- jewels.add(null);
- jewels.add(new ItemStack(Items.diamond));
- jewels.add(new ItemStack(Items.emerald));
- jewels.add(new ItemStack(Items.nether_star));
+ Gems.add(null);
+ Gems.add(new ItemStack(Items.diamond));
+ Gems.add(new ItemStack(Items.emerald));
+ Gems.add(new ItemStack(Items.nether_star));
if (del == 0)
{
@@ -208,13 +208,13 @@ public class GuiTabRings extends GuiTab
del++;
if (del >= 300) del = 0;
if (values > JewelrycraftUtil.metal.size() - 1) values = 0;
- if (jValues > jewels.size() - 1) jValues = 0;
+ if (jValues > Gems.size() - 1) jValues = 0;
JewelryNBT.addMetal(item, JewelrycraftUtil.metal.get(values).copy());
- JewelryNBT.addJewel(item, jewels.get(jValues));
- JewelryNBT.addModifier(item, new ItemStack(Items.iron_pickaxe));
+ JewelryNBT.addGem(item, Gems.get(jValues));
+ JewelryNBT.addModifiers(item, JewelrycraftUtil.addRandomModifiers());
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "None, Diamond");
+ text.add(EnumChatFormatting.DARK_GREEN + "Gem: " + EnumChatFormatting.BLACK + "None, Diamond");
text.add("Emerald or Nether Star");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "Iron Pickaxe");
text.add(EnumChatFormatting.DARK_GREEN + "Ingot: " + EnumChatFormatting.BLACK + "Any");
@@ -224,22 +224,22 @@ public class GuiTabRings extends GuiTab
text.add("To deactivate it simply");
text.add("right click with it.");
text.add("Depending on the");
- text.add("jewel you used, you");
+ text.add("Gem you used, you");
Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), item, text, 50f, 0, -10, false, 45, 0);
break;
case 10:
text.add("get " + EnumChatFormatting.DARK_RED + "Haste" + EnumChatFormatting.BLACK + " I if you");
- text.add("haven't got any jewel,");
+ text.add("haven't got any Gem,");
text.add("II for Diamond,");
text.add("III for Emerald and");
text.add("VIII for Nether Star.");
Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text);
break;
case 11:
- jewels.add(null);
- jewels.add(new ItemStack(Items.diamond));
- jewels.add(new ItemStack(Items.emerald));
- jewels.add(new ItemStack(Items.nether_star));
+ Gems.add(null);
+ Gems.add(new ItemStack(Items.diamond));
+ Gems.add(new ItemStack(Items.emerald));
+ Gems.add(new ItemStack(Items.nether_star));
if (del == 0)
{
@@ -249,13 +249,13 @@ public class GuiTabRings extends GuiTab
del++;
if (del >= 300) del = 0;
if (values > JewelrycraftUtil.metal.size() - 1) values = 0;
- if (jValues > jewels.size() - 1) jValues = 0;
+ if (jValues > Gems.size() - 1) jValues = 0;
JewelryNBT.addMetal(item, JewelrycraftUtil.metal.get(values).copy());
- JewelryNBT.addJewel(item, jewels.get(jValues));
- JewelryNBT.addModifier(item, new ItemStack(Items.feather));
+ JewelryNBT.addGem(item, Gems.get(jValues));
+ JewelryNBT.addModifiers(item, JewelrycraftUtil.addRandomModifiers());
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "None, Diamond");
+ text.add(EnumChatFormatting.DARK_GREEN + "Gem: " + EnumChatFormatting.BLACK + "None, Diamond");
text.add("Emerald or Nether Star");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "Feather");
text.add(EnumChatFormatting.DARK_GREEN + "Ingot: " + EnumChatFormatting.BLACK + "Any");
@@ -269,20 +269,20 @@ public class GuiTabRings extends GuiTab
Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), item, text, 50f, 0, -10, false, 45, 0);
break;
case 12:
- text.add("Depending on the jewel");
+ text.add("Depending on the Gem");
text.add("you used, you get");
text.add(EnumChatFormatting.DARK_RED + "Jump Boost" + EnumChatFormatting.BLACK + " I if you");
- text.add("haven't got any jewel,");
+ text.add("haven't got any Gem,");
text.add("II for Diamond,");
text.add("III for Emerald and");
text.add("VIII for Nether Star.");
Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text);
break;
case 13:
- jewels.add(null);
- jewels.add(new ItemStack(Items.diamond));
- jewels.add(new ItemStack(Items.emerald));
- jewels.add(new ItemStack(Items.nether_star));
+ Gems.add(null);
+ Gems.add(new ItemStack(Items.diamond));
+ Gems.add(new ItemStack(Items.emerald));
+ Gems.add(new ItemStack(Items.nether_star));
if (del == 0)
{
@@ -292,13 +292,13 @@ public class GuiTabRings extends GuiTab
del++;
if (del >= 300) del = 0;
if (values > JewelrycraftUtil.metal.size() - 1) values = 0;
- if (jValues > jewels.size() - 1) jValues = 0;
+ if (jValues > Gems.size() - 1) jValues = 0;
JewelryNBT.addMetal(item, JewelrycraftUtil.metal.get(values).copy());
- JewelryNBT.addJewel(item, jewels.get(jValues));
- JewelryNBT.addModifier(item, new ItemStack(Items.potionitem, 1, 8270));
+ JewelryNBT.addGem(item, Gems.get(jValues));
+ JewelryNBT.addModifiers(item, JewelrycraftUtil.addRandomModifiers());
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "None, Diamond");
+ text.add(EnumChatFormatting.DARK_GREEN + "Gem: " + EnumChatFormatting.BLACK + "None, Diamond");
text.add("Emerald or Nether Star");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "8min Potion of");
text.add("Invisibility");
@@ -313,10 +313,10 @@ public class GuiTabRings extends GuiTab
break;
case 14:
text.add("right click with it.");
- text.add("Depending on the jewel");
+ text.add("Depending on the Gem");
text.add("you used, you get");
text.add(EnumChatFormatting.DARK_RED + "Invisibility" + EnumChatFormatting.BLACK + " I if you");
- text.add("haven't got any jewel,");
+ text.add("haven't got any Gem,");
text.add("II for Diamond,");
text.add("III for Emerald and");
text.add("VIII for Nether Star.");
@@ -329,10 +329,10 @@ public class GuiTabRings extends GuiTab
if (values > JewelrycraftUtil.metal.size() - 1) values = 0;
JewelryNBT.addMetal(item, JewelrycraftUtil.metal.get(values).copy());
- JewelryNBT.addJewel(item, new ItemStack(Items.nether_star));
- JewelryNBT.addModifier(item, new ItemStack(Items.book));
+ JewelryNBT.addGem(item, new ItemStack(Items.nether_star));
+ JewelryNBT.addModifiers(item, JewelrycraftUtil.addRandomModifiers());
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "Nether Star");
+ text.add(EnumChatFormatting.DARK_GREEN + "Gem: " + EnumChatFormatting.BLACK + "Nether Star");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "Book");
text.add(EnumChatFormatting.DARK_GREEN + "Ingot: " + EnumChatFormatting.BLACK + "Any");
text.add(" This has the power");
@@ -438,10 +438,10 @@ public class GuiTabRings extends GuiTab
if (values > JewelrycraftUtil.metal.size() - 1) values = 0;
JewelryNBT.addMetal(item, JewelrycraftUtil.metal.get(values).copy());
- JewelryNBT.addJewel(item, new ItemStack(Items.ender_pearl));
- JewelryNBT.addModifier(item, new ItemStack(Blocks.chest));
+ JewelryNBT.addGem(item, new ItemStack(Items.ender_pearl));
+ JewelryNBT.addModifiers(item, JewelrycraftUtil.addRandomModifiers());
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "Ender Pearl");
+ text.add(EnumChatFormatting.DARK_GREEN + "Gem: " + EnumChatFormatting.BLACK + "Ender Pearl");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "Chest");
text.add(EnumChatFormatting.DARK_GREEN + "Ingot: " + EnumChatFormatting.BLACK + "Any");
text.add(" This ring can link");
@@ -476,10 +476,10 @@ public class GuiTabRings extends GuiTab
if (values > JewelrycraftUtil.metal.size() - 1) values = 0;
JewelryNBT.addMetal(item, JewelrycraftUtil.metal.get(values).copy());
- JewelryNBT.addJewel(item, new ItemStack(Blocks.obsidian));
- JewelryNBT.addModifier(item, new ItemStack(Items.ender_eye));
+ JewelryNBT.addGem(item, new ItemStack(Blocks.obsidian));
+ JewelryNBT.addModifiers(item, JewelrycraftUtil.addRandomModifiers());
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "Obsidian");
+ text.add(EnumChatFormatting.DARK_GREEN + "Gem: " + EnumChatFormatting.BLACK + "Obsidian");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "Eye of Ender");
text.add(EnumChatFormatting.DARK_GREEN + "Ingot: " + EnumChatFormatting.BLACK + "Any");
text.add(" This ring is connected");
@@ -496,10 +496,10 @@ public class GuiTabRings extends GuiTab
if (values > JewelrycraftUtil.metal.size() - 1) values = 0;
JewelryNBT.addMetal(item, JewelrycraftUtil.metal.get(values).copy());
- JewelryNBT.addJewel(item, new ItemStack(Items.nether_star));
- JewelryNBT.addModifier(item, new ItemStack(Blocks.chest));
+ JewelryNBT.addGem(item, new ItemStack(Items.nether_star));
+ JewelryNBT.addModifiers(item, JewelrycraftUtil.addRandomModifiers());
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "Nether Star");
+ text.add(EnumChatFormatting.DARK_GREEN + "Gem: " + EnumChatFormatting.BLACK + "Nether Star");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "Chest");
text.add(EnumChatFormatting.DARK_GREEN + "Ingot: " + EnumChatFormatting.BLACK + "Any");
text.add(" This ring can store");
@@ -527,13 +527,13 @@ public class GuiTabRings extends GuiTab
del++;
if (del >= 300) del = 0;
if (values > JewelrycraftUtil.metal.size() - 1) values = 0;
- if (jValues > JewelrycraftUtil.jewel.size() - 1) jValues = 0;
+ if (jValues > JewelrycraftUtil.gem.size() - 1) jValues = 0;
JewelryNBT.addMetal(item, JewelrycraftUtil.metal.get(values).copy());
- JewelryNBT.addJewel(item, JewelrycraftUtil.jewel.get(jValues).copy());
- JewelryNBT.addModifier(item, new ItemStack(Items.dye, 1, 15));
+ JewelryNBT.addGem(item, JewelrycraftUtil.gem.get(jValues).copy());
+ JewelryNBT.addModifiers(item, JewelrycraftUtil.addRandomModifiers());
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "Any");
+ text.add(EnumChatFormatting.DARK_GREEN + "Gem: " + EnumChatFormatting.BLACK + "Any");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "Bone Meal");
text.add(EnumChatFormatting.DARK_GREEN + "Ingot: " + EnumChatFormatting.BLACK + "Any");
text.add(" While having it in");
@@ -565,10 +565,10 @@ public class GuiTabRings extends GuiTab
if (values > JewelrycraftUtil.metal.size() - 1) values = 0;
JewelryNBT.addMetal(item, JewelrycraftUtil.metal.get(values).copy());
- JewelryNBT.addJewel(item, new ItemStack(Items.ender_pearl));
- JewelryNBT.addModifier(item, new ItemStack(Items.diamond_pickaxe));
+ JewelryNBT.addGem(item, new ItemStack(Items.ender_pearl));
+ JewelryNBT.addModifiers(item, JewelrycraftUtil.addRandomModifiers());
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "Ender Pearl");
+ text.add(EnumChatFormatting.DARK_GREEN + "Gem: " + EnumChatFormatting.BLACK + "Ender Pearl");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "Diamond Pick");
text.add(EnumChatFormatting.DARK_GREEN + "Ingot: " + EnumChatFormatting.BLACK + "Any");
text.add(" You can right click");
@@ -583,10 +583,10 @@ public class GuiTabRings extends GuiTab
break;
case 30:
JewelryNBT.addMetal(item, new ItemStack(ItemList.shadowIngot));
- JewelryNBT.addJewel(item, new ItemStack(Items.nether_star));
- JewelryNBT.addModifier(item, new ItemStack(Items.diamond_pickaxe));
+ JewelryNBT.addGem(item, new ItemStack(Items.nether_star));
+ JewelryNBT.addModifiers(item, JewelrycraftUtil.addRandomModifiers());
- text.add(EnumChatFormatting.DARK_GREEN + "Jewel: " + EnumChatFormatting.BLACK + "Nether Star");
+ text.add(EnumChatFormatting.DARK_GREEN + "Gem: " + EnumChatFormatting.BLACK + "Nether Star");
text.add(EnumChatFormatting.DARK_GREEN + "Modifier: " + EnumChatFormatting.BLACK + "Diamond Pick");
text.add(EnumChatFormatting.DARK_GREEN + "Ingot: " + EnumChatFormatting.BLACK + "Shadow Ingot");
text.add(" Right clicking with");
diff --git a/java/darkknight/jewelrycraft/container/JewelryInventory.java b/java/darkknight/jewelrycraft/container/JewelryInventory.java
new file mode 100644
index 0000000..05accfa
--- /dev/null
+++ b/java/darkknight/jewelrycraft/container/JewelryInventory.java
@@ -0,0 +1,118 @@
+package darkknight.jewelrycraft.container;
+
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.inventory.IInventory;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.nbt.NBTTagList;
+
+public class JewelryInventory implements IInventory
+{
+ public ItemStack[] inventory = new ItemStack[18];
+ public JewelryInventory()
+ {
+ }
+
+ @Override
+ public int getSizeInventory()
+ {
+ return inventory.length;
+ }
+
+ @Override
+ public ItemStack getStackInSlot(int slot)
+ {
+ return inventory[slot];
+ }
+
+ @Override
+ public ItemStack decrStackSize(int slot, int amount)
+ {
+ ItemStack stack = getStackInSlot(slot);
+ if (stack != null)
+ {
+ if (stack.stackSize > amount)
+ {
+ stack = stack.splitStack(amount);
+ markDirty();
+ }
+ else
+ {
+ setInventorySlotContents(slot, null);
+ }
+ }
+
+ return stack;
+ }
+
+ @Override
+ public ItemStack getStackInSlotOnClosing(int slot)
+ {
+ ItemStack stack = getStackInSlot(slot);
+ setInventorySlotContents(slot, null);
+ return stack;
+ }
+
+ @Override
+ public void setInventorySlotContents(int slot, ItemStack stack)
+ {
+ inventory[slot] = stack;
+ if (stack != null && stack.stackSize > getInventoryStackLimit())
+ {
+ stack.stackSize = getInventoryStackLimit();
+ }
+ markDirty();
+ }
+
+ @Override
+ public String getInventoryName()
+ {
+ return "Jewelry";
+ }
+
+ @Override
+ public boolean hasCustomInventoryName()
+ {
+ return false;
+ }
+
+ @Override
+ public int getInventoryStackLimit()
+ {
+ return 1;
+ }
+
+ @Override
+ public void markDirty()
+ {
+ for (int i = 0; i < getSizeInventory(); ++i)
+ {
+ if (getStackInSlot(i) != null && getStackInSlot(i).stackSize == 0)
+ {
+ inventory[i] = null;
+ }
+ }
+ }
+
+ @Override
+ public boolean isUseableByPlayer(EntityPlayer player)
+ {
+ return true;
+ }
+
+ @Override
+ public void openInventory()
+ {
+ }
+
+ @Override
+ public void closeInventory()
+ {
+ }
+
+ @Override
+ public boolean isItemValidForSlot(int slot, ItemStack stack)
+ {
+ return true;
+ }
+} \ No newline at end of file
diff --git a/java/darkknight/jewelrycraft/container/SlotRing.java b/java/darkknight/jewelrycraft/container/SlotRing.java
new file mode 100644
index 0000000..3207301
--- /dev/null
+++ b/java/darkknight/jewelrycraft/container/SlotRing.java
@@ -0,0 +1,33 @@
+package darkknight.jewelrycraft.container;
+
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.inventory.IInventory;
+import net.minecraft.inventory.Slot;
+import net.minecraft.item.ItemStack;
+import darkknight.jewelrycraft.item.ItemRing;
+
+public class SlotRing extends Slot
+{
+ public SlotRing(IInventory tile, int slotID, int x, int y)
+ {
+ super(tile, slotID, x, y);
+ }
+
+ @Override
+ public boolean isItemValid(ItemStack stack)
+ {
+ return stack.getItem() instanceof ItemRing;
+ }
+
+ @Override
+ public ItemStack decrStackSize(int amount)
+ {
+ return super.decrStackSize(amount);
+ }
+
+ @Override
+ public boolean canTakeStack(EntityPlayer player)
+ {
+ return true;
+ }
+}
diff --git a/java/darkknight/jewelrycraft/events/BucketHandler.java b/java/darkknight/jewelrycraft/events/BucketHandler.java
index ec0b280..6eef59b 100644
--- a/java/darkknight/jewelrycraft/events/BucketHandler.java
+++ b/java/darkknight/jewelrycraft/events/BucketHandler.java
@@ -36,12 +36,9 @@ public class BucketHandler
@SubscribeEvent
public void onBucketFill(FillBucketEvent event)
- {
-
- ItemStack result = fillCustomBucket(event.world, event.target);
-
- if (result == null) return;
-
+ {
+ ItemStack result = fillCustomBucket(event.world, event.target);
+ if (result == null) return;
event.result = result;
event.setResult(Result.ALLOW);
}
@@ -67,7 +64,6 @@ public class BucketHandler
{
itemID = Integer.parseInt(splitData[0]);
itemDamage = Integer.parseInt(splitData[1]);
-
JewelryNBT.addMetal(item, new ItemStack(Item.getItemById(itemID), 1, itemDamage));
}
catch (Exception e)
diff --git a/java/darkknight/jewelrycraft/events/EntityEventHandler.java b/java/darkknight/jewelrycraft/events/EntityEventHandler.java
index ed7c3e7..c791d74 100644
--- a/java/darkknight/jewelrycraft/events/EntityEventHandler.java
+++ b/java/darkknight/jewelrycraft/events/EntityEventHandler.java
@@ -6,24 +6,31 @@ import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
-import net.minecraft.client.Minecraft;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompressedStreamTools;
import net.minecraft.nbt.NBTTagCompound;
+import net.minecraftforge.client.event.EntityViewRenderEvent;
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
+import net.minecraftforge.event.entity.living.LivingDeathEvent;
+import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent;
import net.minecraftforge.event.world.WorldEvent;
+
+import org.lwjgl.opengl.GL11;
+
import cpw.mods.fml.common.FMLCommonHandler;
-import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import darkknight.jewelrycraft.JewelrycraftMod;
+import darkknight.jewelrycraft.container.JewelryInventory;
import darkknight.jewelrycraft.item.ItemList;
+import darkknight.jewelrycraft.lib.Reference;
import darkknight.jewelrycraft.network.PacketClearColorCache;
import darkknight.jewelrycraft.util.BlockUtils;
+import darkknight.jewelrycraft.util.JewelrycraftUtil;
import darkknight.jewelrycraft.util.PlayerUtils;
/**
@@ -32,11 +39,8 @@ import darkknight.jewelrycraft.util.PlayerUtils;
public class EntityEventHandler
{
- public static final String OPENBLOCKS_PERSIST_TAG = "Jewelrycraft";
- public static final String GIVEN_GUIDE_TAG = "givenGuive";
@SubscribeEvent
- @SideOnly(Side.SERVER)
public void onEntityJoinWorld(EntityJoinWorldEvent event)
{
if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP) event.entity);
@@ -48,7 +52,7 @@ public class EntityEventHandler
EntityPlayer player = (EntityPlayer) entity;
NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft");
- boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean(GIVEN_GUIDE_TAG);
+ boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide");
if (shouldGiveManual)
{
ItemStack manual = new ItemStack(ItemList.guide);
@@ -56,8 +60,107 @@ public class EntityEventHandler
{
BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual);
}
- persistTag.setBoolean(GIVEN_GUIDE_TAG, true);
+ persistTag.setBoolean("givenGuide", true);
}
+
+ boolean render = persistTag.getBoolean("fancyRender");
+ JewelrycraftMod.fancyRender = render;
+ // System.out.println("FancyRender: " + JewelrycraftMod.fancyRender
+ // + " Render:" + render);
+ }
+ }
+
+ @SubscribeEvent
+ public void onEntityUpdate(LivingUpdateEvent event)
+ {
+ final Entity entity = event.entity;
+ if (!entity.worldObj.isRemote && entity instanceof EntityPlayer)
+ {
+ EntityPlayer player = (EntityPlayer) entity;
+ NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft");
+ for (String l : JewelrycraftUtil.curses.keySet())
+ if (!persistTag.hasKey(l) || player.getHealth() >= 19F) persistTag.setInteger(l, -1);
+ if (!player.isDead && player.getHealth() > 0F && player.getHealth() < 19F) persistTag.setInteger(Reference.MODNAME + ":" + "Blind", 0);
+ // boolean render = persistTag.getBoolean("fancyRender");
+ // System.out.println("FancyRender: " + JewelrycraftMod.fancyRender
+ // + " Render:" + render);
+ // circle(player.worldObj, player.posX, player.posY, player.posZ,
+ // 4);
+ }
+ if (entity instanceof EntityPlayer)
+ {
+ EntityPlayer player = (EntityPlayer) entity;
+ NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft");
+ persistTag.setBoolean("fancyRender", JewelrycraftMod.fancyRender);
+ }
+ }
+
+ // public static void circle(World world, double x, double y, double z, int
+ // radius)
+ // {
+ // for (int i = 0; i < radius; i++)
+ // for (int j = 0; j < radius; j++)
+ // for (int k = 0; k < radius; k++)
+ // {
+ // double distance = (radius - i) * (radius - i) + (radius - j) * (radius -
+ // j) + (radius - k) * (radius - k);
+ //
+ // if (distance - 1 == (radius * radius) || distance - 2 == (radius *
+ // radius))
+ // {
+ // Minecraft.getMinecraft().effectRenderer.addEffect(new
+ // EntityShadowsFX(world, x + i - radius + 1F, y + j - radius / 2 - 1.5f, z
+ // + k - radius + 1F, 2F, 0.05F));
+ // Minecraft.getMinecraft().effectRenderer.addEffect(new
+ // EntityShadowsFX(world, x - i + radius - 1F, y + j - radius / 2 - 1.5f, z
+ // + k - radius + 1F, 2F, 0.05F));
+ //
+ // Minecraft.getMinecraft().effectRenderer.addEffect(new
+ // EntityShadowsFX(world, x + i - radius + 1F, y + j - radius / 2 - 1.5f, z
+ // - k + radius - 1F, 2F, 0.05F));
+ // Minecraft.getMinecraft().effectRenderer.addEffect(new
+ // EntityShadowsFX(world, x - i + radius - 1F, y + j - radius / 2 - 1.5f, z
+ // - k + radius - 1F, 2F, 0.05F));
+ // }
+ // }
+ //
+ // for (int i = 0; i < radius; i++)
+ // for (int j = radius - 1; j >= 0; j--)
+ // for (int k = 0; k < radius; k++)
+ // {
+ // double distance = (radius - i) * (radius - i) + (radius - j) * (radius -
+ // j) + (radius - k) * (radius - k);
+ //
+ // if (distance - 1 == (radius * radius) || distance - 2 == (radius *
+ // radius))
+ // {
+ // Minecraft.getMinecraft().effectRenderer.addEffect(new
+ // EntityShadowsFX(world, x + i - radius + 1F, y - j + radius / 2 + 0.5f, z
+ // + k - radius + 1F, 2F, 0.05F));
+ // Minecraft.getMinecraft().effectRenderer.addEffect(new
+ // EntityShadowsFX(world, x - i + radius - 1F, y - j + radius / 2 + 0.5f, z
+ // + k - radius + 1F, 2F, 0.05F));
+ //
+ // Minecraft.getMinecraft().effectRenderer.addEffect(new
+ // EntityShadowsFX(world, x + i - radius + 1F, y - j + radius / 2 + 0.5f, z
+ // - k + radius - 1F, 2F, 0.05F));
+ // Minecraft.getMinecraft().effectRenderer.addEffect(new
+ // EntityShadowsFX(world, x - i + radius - 1F, y - j + radius / 2 + 0.5f, z
+ // - k + radius - 1F, 2F, 0.05F));
+ // }
+ // }
+ // }
+
+ @SubscribeEvent
+ public void onEntityDead(LivingDeathEvent event)
+ {
+ final Entity entity = event.entity;
+ if (!entity.worldObj.isRemote && entity instanceof EntityPlayer)
+ {
+ EntityPlayer player = (EntityPlayer) entity;
+ NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft");
+ for (String l : JewelrycraftUtil.curses.keySet())
+ if (persistTag.getInteger(l) == 0) persistTag.setInteger(l, -1);
}
}
@@ -115,4 +218,45 @@ public class EntityEventHandler
}
}
}
+
+ @SubscribeEvent
+ @SideOnly(Side.CLIENT)
+ public void fogColors(EntityViewRenderEvent.FogColors event)
+ {
+ if (event.entity instanceof EntityPlayer)
+ {
+ EntityPlayer player = (EntityPlayer) event.entity;
+ NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft");
+ if (persistTag.getBoolean("nearStartedRitual"))
+ {
+ event.red = 0f;
+ event.green = 0f;
+ event.blue = 0f;
+ }
+ }
+ if (event.isCancelable()) event.setCanceled(true);
+ }
+
+ @SubscribeEvent
+ @SideOnly(Side.CLIENT)
+ public void fogDensity(EntityViewRenderEvent.FogDensity event)
+ {
+ }
+
+ @SubscribeEvent
+ @SideOnly(Side.CLIENT)
+ public void renderFog(EntityViewRenderEvent.RenderFogEvent event)
+ {
+ if (event.entity instanceof EntityPlayer)
+ {
+ EntityPlayer player = (EntityPlayer) event.entity;
+ NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft");
+ if (persistTag.getBoolean("nearStartedRitual"))
+ {
+ GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP);
+ GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F);
+ }
+ }
+ if (event.isCancelable()) event.setCanceled(true);
+ }
} \ No newline at end of file
diff --git a/java/darkknight/jewelrycraft/events/KeyBindings.java b/java/darkknight/jewelrycraft/events/KeyBindings.java
new file mode 100644
index 0000000..462be0c
--- /dev/null
+++ b/java/darkknight/jewelrycraft/events/KeyBindings.java
@@ -0,0 +1,32 @@
+package darkknight.jewelrycraft.events;
+
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.settings.KeyBinding;
+
+import org.lwjgl.input.Keyboard;
+
+import cpw.mods.fml.client.registry.ClientRegistry;
+import cpw.mods.fml.common.eventhandler.SubscribeEvent;
+import cpw.mods.fml.common.gameevent.InputEvent;
+import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
+import darkknight.jewelrycraft.JewelrycraftMod;
+import darkknight.jewelrycraft.network.PacketKeyPressEvent;
+
+public class KeyBindings
+{
+ public static KeyBinding render = new KeyBinding("Pretty Render", Keyboard.KEY_Z, "Jewelrycraft");
+ public static KeyBinding inventory = new KeyBinding("Jewelry Inventory", Keyboard.KEY_J, "Jewelrycraft");
+
+ public KeyBindings()
+ {
+ ClientRegistry.registerKeyBinding(render);
+ ClientRegistry.registerKeyBinding(inventory);
+ }
+
+ @SubscribeEvent
+ public void onKeyInput(InputEvent.KeyInputEvent event)
+ {
+ if (render.isPressed()) JewelrycraftMod.fancyRender = !JewelrycraftMod.fancyRender;
+ if (inventory.isPressed()) JewelrycraftMod.netWrapper.sendToServer(new PacketKeyPressEvent(0));
+ }
+} \ No newline at end of file
diff --git a/java/darkknight/jewelrycraft/events/ScreenHandler.java b/java/darkknight/jewelrycraft/events/ScreenHandler.java
new file mode 100644
index 0000000..300968a
--- /dev/null
+++ b/java/darkknight/jewelrycraft/events/ScreenHandler.java
@@ -0,0 +1,57 @@
+package darkknight.jewelrycraft.events;
+
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.Gui;
+import net.minecraft.client.gui.GuiChat;
+import net.minecraft.client.settings.KeyBinding;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.ResourceLocation;
+import net.minecraftforge.client.event.RenderGameOverlayEvent;
+import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType;
+
+import org.lwjgl.input.Keyboard;
+
+import cpw.mods.fml.client.FMLClientHandler;
+import cpw.mods.fml.client.registry.ClientRegistry;
+import cpw.mods.fml.common.eventhandler.SubscribeEvent;
+import cpw.mods.fml.common.gameevent.InputEvent.KeyInputEvent;
+import darkknight.jewelrycraft.JewelrycraftMod;
+import darkknight.jewelrycraft.config.ConfigHandler;
+import darkknight.jewelrycraft.network.PacketRequestPlayerInfo;
+import darkknight.jewelrycraft.util.JewelrycraftUtil;
+import darkknight.jewelrycraft.util.PlayerUtils;
+
+public class ScreenHandler extends Gui
+{
+ private Minecraft mc;
+
+ public static NBTTagCompound tagCache;
+ public static int cooldown;
+
+ public ScreenHandler(Minecraft mc)
+ {
+ super();
+ this.mc = mc;
+ }
+
+ @SubscribeEvent
+ public void onEntityJoinWorld(RenderGameOverlayEvent event)
+ {
+ if (cooldown == 0)
+ {
+ JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
+ cooldown = 500;
+ }
+ else cooldown--;
+
+ if (event.isCancelable() || event.type != ElementType.EXPERIENCE || tagCache == null) return;
+ mc.renderEngine.bindTexture(new ResourceLocation("jewelrycraft", "textures/gui/curses1.png"));
+ for (String l : JewelrycraftUtil.curses.keySet())
+ if (tagCache.getInteger(l) > -1){
+ int tag = JewelrycraftUtil.curses.get(l) + 1;
+ int size = 32;
+ this.drawTexturedModalRect(2 + size * tag, 2, tag % size * size, tag / size * size, size, size);
+ }
+ }
+} \ No newline at end of file
diff --git a/java/darkknight/jewelrycraft/item/ItemCrystal.java b/java/darkknight/jewelrycraft/item/ItemCrystal.java
index 8c3e938..e044385 100644
--- a/java/darkknight/jewelrycraft/item/ItemCrystal.java
+++ b/java/darkknight/jewelrycraft/item/ItemCrystal.java
@@ -2,13 +2,23 @@ package darkknight.jewelrycraft.item;
import java.util.List;
+import net.minecraft.block.Block;
+import net.minecraft.block.BlockSkull;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntitySkull;
import net.minecraft.util.IIcon;
+import net.minecraft.util.MathHelper;
+import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+import darkknight.jewelrycraft.util.JewelryNBT;
public class ItemCrystal extends Item
{
@@ -47,6 +57,12 @@ public class ItemCrystal extends Item
return pass == 0 ? itemIcon : overlay;
}
+ public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int i, int j, int k, int side, float par8, float par9, float par10)
+ {
+ //System.out.println(world.getBlockMetadata(i, j, k));
+ return true;
+ }
+
@SuppressWarnings(
{ "unchecked", "rawtypes" })
public void getSubItems(Item par1, CreativeTabs par2CreativeTabs, List par3List)
diff --git a/java/darkknight/jewelrycraft/item/ItemMoltenMetalBucket.java b/java/darkknight/jewelrycraft/item/ItemMoltenMetalBucket.java
index 1b3fd1f..c4c0a2f 100644
--- a/java/darkknight/jewelrycraft/item/ItemMoltenMetalBucket.java
+++ b/java/darkknight/jewelrycraft/item/ItemMoltenMetalBucket.java
@@ -5,6 +5,7 @@ import java.io.IOException;
import javax.imageio.ImageIO;
+import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.texture.IIconRegister;
@@ -129,7 +130,6 @@ public class ItemMoltenMetalBucket extends Item
}
catch (IOException e)
{
- // TODO Auto-generated catch block
e.printStackTrace();
}
}
@@ -284,7 +284,16 @@ public class ItemMoltenMetalBucket extends Item
public String getItemStackDisplayName(ItemStack stack)
{
- if (JewelryNBT.ingot(stack) != null) return (StatCollector.translateToLocal(this.getUnlocalizedNameInefficiently(stack) + ".name")).trim() + " " + JewelryNBT.ingot(stack).getDisplayName().replace("Ingot", " ").trim();
+ if (JewelryNBT.ingot(stack) != null){
+ ItemStack ingot = JewelryNBT.ingot(stack);
+ if(Item.getIdFromItem(ingot.getItem()) == Block.getIdFromBlock(Blocks.stained_glass)
+ || Item.getIdFromItem(ingot.getItem()) == Block.getIdFromBlock(Blocks.stained_glass_pane)
+ || Item.getIdFromItem(ingot.getItem()) == Block.getIdFromBlock(Blocks.stained_hardened_clay)
+ || Item.getIdFromItem(ingot.getItem()) == Block.getIdFromBlock(Blocks.wool)
+ || Item.getIdFromItem(ingot.getItem()) == Block.getIdFromBlock(Blocks.carpet))
+ ingot.setItemDamage(15 - ingot.getItemDamage());
+ return (StatCollector.translateToLocal(this.getUnlocalizedNameInefficiently(stack) + ".name")).trim() + " " + ingot.getDisplayName().replace("Ingot", " ").trim();
+ }
return ("" + StatCollector.translateToLocal(this.getUnlocalizedNameInefficiently(stack) + ".name")).trim() + " Metal";
}
}
diff --git a/java/darkknight/jewelrycraft/item/ItemNecklace.java b/java/darkknight/jewelrycraft/item/ItemNecklace.java
index 0d548e0..c6bfbbc 100644
--- a/java/darkknight/jewelrycraft/item/ItemNecklace.java
+++ b/java/darkknight/jewelrycraft/item/ItemNecklace.java
@@ -1,14 +1,13 @@
package darkknight.jewelrycraft.item;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block;
-import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
@@ -26,10 +25,11 @@ import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import darkknight.jewelrycraft.util.JewelryNBT;
+import darkknight.jewelrycraft.util.JewelrycraftUtil;
public class ItemNecklace extends Item
{
- public IIcon jewel;
+ public IIcon gem;
private double amplifier;
int index = 0;
@@ -42,7 +42,7 @@ public class ItemNecklace extends Item
public void registerIcons(IIconRegister iconRegister)
{
itemIcon = iconRegister.registerIcon("jewelrycraft:necklace");
- jewel = iconRegister.registerIcon("jewelrycraft:jewelNecklace");
+ gem = iconRegister.registerIcon("jewelrycraft:jewelNecklace");
}
@Override
@@ -68,7 +68,7 @@ public class ItemNecklace extends Item
public IIcon getIcon(ItemStack stack, int pass)
{
if (pass == 0) return itemIcon;
- if (pass == 1 && JewelryNBT.jewel(stack) != null) return jewel;
+ if (pass == 1 && JewelryNBT.gem(stack) != null) return gem;
return itemIcon;
}
@@ -88,7 +88,7 @@ public class ItemNecklace extends Item
if (JewelryNBT.playerPosX(stack) != -1 && JewelryNBT.playerPosY(stack) != -1 && JewelryNBT.playerPosZ(stack) != -1)
{
double posX = JewelryNBT.playerPosX(stack), posY = JewelryNBT.playerPosY(stack), posZ = JewelryNBT.playerPosZ(stack);
- if (JewelryNBT.isJewelX(stack, new ItemStack(Items.ender_pearl)) && JewelryNBT.isModifierX(stack, new ItemStack(Items.bed)) && JewelryNBT.dimension(stack) != -2 && JewelryNBT.dimName(stack) != null)
+ if (JewelryNBT.isGemX(stack, new ItemStack(Items.ender_pearl)) && JewelryNBT.isModifierX(stack, new ItemStack(Items.bed)) && JewelryNBT.dimension(stack) != -2 && JewelryNBT.dimName(stack) != null)
{
int dimension = JewelryNBT.dimension(stack);
for (int i = 1; i <= 20; i++)
@@ -110,12 +110,12 @@ public class ItemNecklace extends Item
}
else player.addChatMessage(new ChatComponentText("You can't teleport to these coordonates! You need to be in the same dimension they were set!"));
}
- else if (JewelryNBT.isJewelX(stack, new ItemStack(Items.ender_pearl)) && JewelryNBT.isModifierX(stack, new ItemStack(Items.bed)) && JewelryNBT.dimension(stack) == -2 && JewelryNBT.playerPosX(stack) == -1 && JewelryNBT.playerPosY(stack) == -1 && JewelryNBT.playerPosZ(stack) == -1)
+ else if (JewelryNBT.isGemX(stack, new ItemStack(Items.ender_pearl)) && JewelryNBT.isModifierX(stack, new ItemStack(Items.bed)) && JewelryNBT.dimension(stack) == -2 && JewelryNBT.playerPosX(stack) == -1 && JewelryNBT.playerPosY(stack) == -1 && JewelryNBT.playerPosZ(stack) == -1)
{
JewelryNBT.addCoordonatesAndDimension(stack, player.posX, player.posY, player.posZ, world.provider.dimensionId, world.provider.getDimensionName());
JewelryNBT.addFakeEnchantment(stack);
}
- else if (JewelryNBT.isJewelX(stack, new ItemStack(Items.ender_pearl)) && !JewelryNBT.hasTag(stack, "modifier") && JewelryNBT.playerPosX(stack) == -1 && JewelryNBT.playerPosY(stack) == -1 && JewelryNBT.playerPosZ(stack) == -1)
+ else if (JewelryNBT.isGemX(stack, new ItemStack(Items.ender_pearl)) && !JewelryNBT.hasTag(stack, "modifier") && JewelryNBT.playerPosX(stack) == -1 && JewelryNBT.playerPosY(stack) == -1 && JewelryNBT.playerPosZ(stack) == -1)
{
JewelryNBT.addCoordonatesAndDimension(stack, player.posX, player.posY, player.posZ, world.provider.dimensionId, world.provider.getDimensionName());
JewelryNBT.addFakeEnchantment(stack);
@@ -141,7 +141,7 @@ public class ItemNecklace extends Item
// player, EntityLivingBase entity)
// {
// if (!player.worldObj.isRemote && entity instanceof EntityLivingBase &&
- // JewelryNBT.isJewelX(stack, new ItemStack(Item.netherStar)) &&
+ // JewelryNBT.isGemX(stack, new ItemStack(Item.netherStar)) &&
// JewelryNBT.isModifierX(stack, new ItemStack(Block.chest)) &&
// JewelryNBT.entity(stack, player) == null){
// JewelryNBT.addEntity(stack, entity);
@@ -158,16 +158,17 @@ public class ItemNecklace extends Item
*/
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean par4)
{
- if (stack.hasTagCompound())
+ if (stack.hasTagCompound() && par4)
{
ItemStack ingot = JewelryNBT.ingot(stack);
if (ingot != null && Item.getIdFromItem(JewelryNBT.ingot(stack).getItem()) > 0) list.add("Ingot: " + EnumChatFormatting.YELLOW + ingot.getDisplayName());
- ItemStack jewel = JewelryNBT.jewel(stack);
- if (jewel != null) list.add("Jewel: " + EnumChatFormatting.BLUE + jewel.getDisplayName());
+ ItemStack gem = JewelryNBT.gem(stack);
+ if (gem != null) list.add("Gem: " + EnumChatFormatting.BLUE + gem.getDisplayName());
- ItemStack modifier = JewelryNBT.modifier(stack);
- if (modifier != null) list.add("Modifier: " + EnumChatFormatting.DARK_PURPLE + modifier.getDisplayName());
+ ArrayList<ItemStack> modifier = JewelryNBT.modifier(stack);
+ if(!modifier.isEmpty()) list.add("Modifiers: ");
+ for(int i = 0; i < modifier.size(); i++) list.add(EnumChatFormatting.DARK_PURPLE + modifier.get(i).getDisplayName() + " x" + modifier.get(i).stackSize);
double playerPosX = JewelryNBT.playerPosX(stack), playerPosY = JewelryNBT.playerPosY(stack), playerPosZ = JewelryNBT.playerPosZ(stack);
if (playerPosX != -1 && playerPosY != -1 && playerPosZ != -1) list.add(EnumChatFormatting.YELLOW + "X: " + EnumChatFormatting.GRAY + (int) playerPosX + EnumChatFormatting.YELLOW + " Y: " + EnumChatFormatting.GRAY + (int) playerPosY + EnumChatFormatting.YELLOW + " Z: " + EnumChatFormatting.GRAY + (int) playerPosZ);
@@ -205,17 +206,17 @@ public class ItemNecklace extends Item
// int colorI = JewelryNBT.ingotColor(stack);
// if(colorI != -1) list.add("Ingot Color: " + colorI);
//
- // int colorJ = JewelryNBT.jewelColor(stack);
- // if(colorJ != -1) list.add("Jewel Color: " + colorJ);
+ // int colorJ = JewelryNBT.gemColor(stack);
+ // if(colorJ != -1) list.add("gem Color: " + colorJ);
}
}
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int i, int j, int k, int side, float par8, float par9, float par10)
{
amplifier = 0;
- if (JewelryNBT.isJewelX(stack, new ItemStack(Items.diamond))) amplifier = 1D;
- else if (JewelryNBT.isJewelX(stack, new ItemStack(Items.emerald))) amplifier = 2D;
- else if (JewelryNBT.isJewelX(stack, new ItemStack(Items.nether_star))) amplifier = 5D;
+ if (JewelryNBT.isGemX(stack, new ItemStack(Items.diamond))) amplifier = 1D;
+ else if (JewelryNBT.isGemX(stack, new ItemStack(Items.emerald))) amplifier = 2D;
+ else if (JewelryNBT.isGemX(stack, new ItemStack(Items.nether_star))) amplifier = 5D;
if (!world.isRemote)
{
@@ -226,7 +227,7 @@ public class ItemNecklace extends Item
for (int x = (int) -1; x <= 1; x++)
for (int z = (int) -1; z <= 1; z++)
- if (JewelryNBT.isModifierX(stack, new ItemStack(Items.diamond_pickaxe)) && JewelryNBT.isJewelX(stack, new ItemStack(Items.nether_star)) && JewelryNBT.isIngotX(stack, new ItemStack(ItemList.shadowIngot))) if ((side == 0 || side == 1) && j > 0 && world.getBlock(i, j + x, k + z) != Blocks.air && world.getBlock(i + x, j, k + z).getBlockHardness(world, i + x, j, k + z) > 0F) world.func_147480_a(i + x, j, k + z, true);
+ if (JewelryNBT.isModifierX(stack, new ItemStack(Items.diamond_pickaxe)) && JewelryNBT.isGemX(stack, new ItemStack(Items.nether_star)) && JewelryNBT.isIngotX(stack, new ItemStack(ItemList.shadowIngot))) if ((side == 0 || side == 1) && j > 0 && world.getBlock(i, j + x, k + z) != Blocks.air && world.getBlock(i + x, j, k + z).getBlockHardness(world, i + x, j, k + z) > 0F) world.func_147480_a(i + x, j, k + z, true);
else if ((side == 2 || side == 3) && j + x > 0 && world.getBlock(i, j + x, k + z) != Blocks.air && world.getBlock(i + z, j + x, k).getBlockHardness(world, i + z, j + x, k) > 0F) world.func_147480_a(i + z, j + x, k, true);
else if ((side == 4 || side == 5) && j + x > 0 && world.getBlock(i, j + x, k + z) != Blocks.air && world.getBlock(i, j + x, k + z).getBlockHardness(world, i, j + x, k + z) > 0F) world.func_147480_a(i, j + x, k + z, true);
}
@@ -241,9 +242,9 @@ public class ItemNecklace extends Item
EntityPlayer entityplayer = (EntityPlayer) entity;
int posX = (int) Math.floor(entityplayer.posX), posY = (int) Math.floor(entityplayer.posY), posZ = (int) Math.floor(entityplayer.posZ);
- if (JewelryNBT.isJewelX(stack, new ItemStack(Items.diamond))) amplifier = 1D;
- else if (JewelryNBT.isJewelX(stack, new ItemStack(Items.emerald))) amplifier = 2D;
- else if (JewelryNBT.isJewelX(stack, new ItemStack(Items.nether_star))) amplifier = 5D;
+ if (JewelryNBT.isGemX(stack, new ItemStack(Items.diamond))) amplifier = 1D;
+ else if (JewelryNBT.isGemX(stack, new ItemStack(Items.emerald))) amplifier = 2D;
+ else if (JewelryNBT.isGemX(stack, new ItemStack(Items.nether_star))) amplifier = 5D;
if (JewelryNBT.isModifierX(stack, new ItemStack(Items.dye, 1, 15)) && world.getBlock(posX, posY - 1, posZ) == Blocks.farmland) for (int i = (int) -amplifier; i <= amplifier; i++)
for (int j = (int) -amplifier; j <= amplifier; j++)
@@ -256,7 +257,7 @@ public class ItemNecklace extends Item
{
if (JewelryNBT.isModifierX(stack, new ItemStack(Items.blaze_powder))) ((EntityLivingBase) entities.get(i)).addPotionEffect(new PotionEffect(Potion.fireResistance.id, 4, 0, true));
else if (JewelryNBT.isModifierX(stack, new ItemStack(Items.sugar))) ((EntityLivingBase) entities.get(i)).addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 4, 0, true));
- else if (JewelryNBT.isModifierX(stack, new ItemStack(Items.iron_pickaxe)) && !JewelryNBT.isJewelX(stack, new ItemStack(Items.ender_pearl))) ((EntityLivingBase) entities.get(i)).addPotionEffect(new PotionEffect(Potion.digSpeed.id, 4, 0, true));
+ else if (JewelryNBT.isModifierX(stack, new ItemStack(Items.iron_pickaxe)) && !JewelryNBT.isGemX(stack, new ItemStack(Items.ender_pearl))) ((EntityLivingBase) entities.get(i)).addPotionEffect(new PotionEffect(Potion.digSpeed.id, 4, 0, true));
else if (JewelryNBT.isModifierX(stack, new ItemStack(Items.feather)))
{
((EntityLivingBase) entities.get(i)).addPotionEffect(new PotionEffect(Potion.jump.id, 4, 0, true));
@@ -268,14 +269,14 @@ public class ItemNecklace extends Item
}
}
- public ItemStack getModifiedItemStack(ItemStack ingot, ItemStack modifier, ItemStack jewel)
+ public ItemStack getModifiedItemStack(ItemStack ingot, ItemStack modifier, ItemStack gem)
{
ItemStack itemstack = new ItemStack(this);
JewelryNBT.addMetal(itemstack, ingot);
- JewelryNBT.addModifier(itemstack, modifier);
- JewelryNBT.addJewel(itemstack, jewel);
- if (JewelryNBT.isModifierEffectType(itemstack) && !(JewelryNBT.isJewelX(itemstack, new ItemStack(Items.ender_pearl)) && JewelryNBT.isModifierX(itemstack, new ItemStack(Items.iron_pickaxe)))) JewelryNBT.addMode(itemstack, "Activated");
- if (JewelryNBT.isJewelX(itemstack, new ItemStack(Items.nether_star)) && JewelryNBT.isModifierX(itemstack, new ItemStack(Items.book))) JewelryNBT.addMode(itemstack, "Disenchant");
+ JewelryNBT.addModifiers(itemstack, JewelrycraftUtil.addRandomModifiers());
+ JewelryNBT.addGem(itemstack, gem);
+// if (JewelryNBT.isModifierEffectType(itemstack) && !(JewelryNBT.isGemX(itemstack, new ItemStack(Items.ender_pearl)) && JewelryNBT.isModifierX(itemstack, new ItemStack(Items.iron_pickaxe)))) JewelryNBT.addMode(itemstack, "Activated");
+ if (JewelryNBT.isGemX(itemstack, new ItemStack(Items.nether_star)) && JewelryNBT.isModifierX(itemstack, new ItemStack(Items.book))) JewelryNBT.addMode(itemstack, "Disenchant");
return itemstack;
}
}
diff --git a/java/darkknight/jewelrycraft/item/ItemRing.java b/java/darkknight/jewelrycraft/item/ItemRing.java
index 55d4fc9..ac05e73 100644
--- a/java/darkknight/jewelrycraft/item/ItemRing.java
+++ b/java/darkknight/jewelrycraft/item/ItemRing.java
@@ -2,6 +2,7 @@ package darkknight.jewelrycraft.item;
import java.awt.image.BufferedImage;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -20,7 +21,6 @@ import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.monster.EntityIronGolem;
import net.minecraft.entity.monster.EntitySnowman;
import net.minecraft.entity.player.EntityPlayer;
@@ -47,10 +47,11 @@ import cpw.mods.fml.relauncher.SideOnly;
import darkknight.jewelrycraft.JewelrycraftMod;
import darkknight.jewelrycraft.block.BlockList;
import darkknight.jewelrycraft.util.JewelryNBT;
+import darkknight.jewelrycraft.util.JewelrycraftUtil;
public class ItemRing extends Item
{
- public IIcon jewel;
+ public IIcon gem;
private int amplifier, cooldown = 0;
int index = 0;
@@ -63,7 +64,7 @@ public class ItemRing extends Item
public void registerIcons(IIconRegister iconRegister)
{
itemIcon = iconRegister.registerIcon("jewelrycraft:ring");
- jewel = iconRegister.registerIcon("jewelrycraft:jewelRing");
+ gem = iconRegister.registerIcon("jewelrycraft:jewelRing");
}
@Override
@@ -89,7 +90,7 @@ public class ItemRing extends Item
public IIcon getIcon(ItemStack stack, int pass)
{
if (pass == 0) return itemIcon;
- if (pass == 1 && JewelryNBT.jewel(stack) != null) return jewel;
+ if (pass == 1 && JewelryNBT.gem(stack) != null) return gem;
return itemIcon;
}
@@ -134,9 +135,9 @@ public class ItemRing extends Item
}
JewelryNBT.addIngotColor(stack, icon.getRGB(x, y));
}
- else if (pass == 1 && stack != null && JewelryNBT.jewel(stack) != null && JewelryNBT.jewel(stack).getIconIndex() != null && JewelryNBT.jewelColor(stack) == 16777215)
+ else if (pass == 1 && stack != null && JewelryNBT.gem(stack) != null && JewelryNBT.gem(stack).getIconIndex() != null && JewelryNBT.gem(stack) != null)
{
- IIcon itemIcon = JewelryNBT.jewel(stack).getItem().getIconFromDamage(JewelryNBT.jewel(stack).getItemDamage());
+ IIcon itemIcon = JewelryNBT.gem(stack).getItem().getIconFromDamage(JewelryNBT.gem(stack).getItemDamage());
String jewelIconName = itemIcon.getIconName();
x = 0;
y = 0;
@@ -148,7 +149,7 @@ public class ItemRing extends Item
texture = jewelIconName.substring(jewelIconName.lastIndexOf(":") + 1) + ".png";
ResourceLocation jewelLoc = null;
- if (JewelryNBT.jewel(stack).getUnlocalizedName().contains("item")) jewelLoc = new ResourceLocation(domain, "textures/items/" + texture);
+ if (JewelryNBT.gem(stack).getUnlocalizedName().contains("item")) jewelLoc = new ResourceLocation(domain, "textures/items/" + texture);
else jewelLoc = new ResourceLocation(domain, "textures/blocks/" + texture);
icon = ImageIO.read(rm.getResource(jewelLoc).getInputStream());
@@ -169,11 +170,11 @@ public class ItemRing extends Item
}
else ok = 1;
}
- if (JewelryNBT.jewel(stack).getItem().getColorFromItemStack(JewelryNBT.jewel(stack), 1) == 16777215) JewelryNBT.addJewelColor(stack, icon.getRGB(x, y));
- else JewelryNBT.addJewelColor(stack, JewelryNBT.jewel(stack).getItem().getColorFromItemStack(JewelryNBT.jewel(stack), 1));
+ if (JewelryNBT.gem(stack).getItem().getColorFromItemStack(JewelryNBT.gem(stack), 1) == 16777215) JewelryNBT.addGemColor(stack, icon.getRGB(x, y));
+ else JewelryNBT.addGemColor(stack, JewelryNBT.gem(stack).getItem().getColorFromItemStack(JewelryNBT.gem(stack), 1));
}
if (pass == 0 && JewelryNBT.ingot(stack) != null) return JewelryNBT.ingotColor(stack);
- if (pass == 1 && JewelryNBT.jewel(stack) != null) return JewelryNBT.jewelColor(stack);
+ if (pass == 1 && JewelryNBT.gem(stack) != null) return JewelryNBT.gemColor(stack);
else if (JewelryNBT.ingot(stack) != null) return JewelryNBT.ingotColor(stack);
return 16777215;
}
@@ -186,7 +187,7 @@ public class ItemRing extends Item
public String getItemStackDisplayName(ItemStack stack)
{
- if (JewelryNBT.ingot(stack) != null && JewelryNBT.jewel(stack) != null && JewelryNBT.modifier(stack) == null && JewelryNBT.isJewelX(stack, new ItemStack(Items.diamond)) && JewelryNBT.isIngotX(stack, new ItemStack(Items.gold_ingot))) return "Wedding Ring";
+ if (JewelryNBT.ingot(stack) != null && JewelryNBT.gem(stack) != null && JewelryNBT.modifier(stack) == null && JewelryNBT.isGemX(stack, new ItemStack(Items.diamond)) && JewelryNBT.isIngotX(stack, new ItemStack(Items.gold_ingot))) return "Wedding Ring";
else if (JewelryNBT.ingot(stack) != null && Item.getIdFromItem(JewelryNBT.ingot(stack).getItem()) > 0) return JewelryNBT.ingot(stack).getDisplayName().replace("Ingot", " ").trim() + " " + ("" + StatCollector.translateToLocal(this.getUnlocalizedNameInefficiently(stack) + ".name")).trim();
return ("" + StatCollector.translateToLocal(this.getUnlocalizedNameInefficiently(stack) + ".name")).trim();
}
@@ -198,7 +199,7 @@ public class ItemRing extends Item
if (JewelryNBT.playerPosX(stack) != -1 && JewelryNBT.playerPosY(stack) != -1 && JewelryNBT.playerPosZ(stack) != -1)
{
double posX = JewelryNBT.playerPosX(stack), posY = JewelryNBT.playerPosY(stack), posZ = JewelryNBT.playerPosZ(stack);
- if (JewelryNBT.isJewelX(stack, new ItemStack(Items.ender_pearl)) && JewelryNBT.isModifierX(stack, new ItemStack(Items.bed)) && JewelryNBT.dimension(stack) != -2 && JewelryNBT.dimName(stack) != null)
+ if (JewelryNBT.isGemX(stack, new ItemStack(Items.ender_pearl)) && JewelryNBT.isModifierX(stack, new ItemStack(Items.bed)) && JewelryNBT.dimension(stack) != -2 && JewelryNBT.dimName(stack) != null)
{
int dimension = JewelryNBT.dimension(stack);
for (int i = 1; i <= 20; i++)
@@ -218,17 +219,17 @@ public class ItemRing extends Item
}
else player.addChatMessage(new ChatComponentText("You can't teleport to these coordonates! You need to be in the same dimension they were set!"));
}
- else if (JewelryNBT.isJewelX(stack, new ItemStack(Items.ender_pearl)) && JewelryNBT.isModifierX(stack, new ItemStack(Items.bed)) && JewelryNBT.dimension(stack) == -2 && JewelryNBT.playerPosX(stack) == -1 && JewelryNBT.playerPosY(stack) == -1 && JewelryNBT.playerPosZ(stack) == -1)
+ else if (JewelryNBT.isGemX(stack, new ItemStack(Items.ender_pearl)) && JewelryNBT.isModifierX(stack, new ItemStack(Items.bed)) && JewelryNBT.dimension(stack) == -2 && JewelryNBT.playerPosX(stack) == -1 && JewelryNBT.playerPosY(stack) == -1 && JewelryNBT.playerPosZ(stack) == -1)
{
JewelryNBT.addCoordonatesAndDimension(stack, player.posX, player.posY, player.posZ, world.provider.dimensionId, world.provider.getDimensionName());
JewelryNBT.addFakeEnchantment(stack);
}
- else if (JewelryNBT.isJewelX(stack, new ItemStack(Blocks.obsidian)) && JewelryNBT.isModifierX(stack, new ItemStack(Items.ender_eye)))
+ else if (JewelryNBT.isGemX(stack, new ItemStack(Blocks.obsidian)) && JewelryNBT.isModifierX(stack, new ItemStack(Items.ender_eye)))
{
InventoryEnderChest inventoryenderchest = player.getInventoryEnderChest();
player.displayGUIChest(inventoryenderchest);
}
- else if (JewelryNBT.isJewelX(stack, new ItemStack(Items.ender_pearl)) && JewelryNBT.isModifierX(stack, new ItemStack(Blocks.chest)))
+ else if (JewelryNBT.isGemX(stack, new ItemStack(Items.ender_pearl)) && JewelryNBT.isModifierX(stack, new ItemStack(Blocks.chest)))
{
int i = JewelryNBT.blockCoordX(stack), j = JewelryNBT.blockCoordY(stack), k = JewelryNBT.blockCoordZ(stack);
if (player.getDistance(i + 0.5F, j + 0.5F, k + 0.5F) <= 128 && i != -1 && j != -1 && k != -1)
@@ -243,7 +244,7 @@ public class ItemRing extends Item
else if (i != -1 && j != -1 && k != -1) player.addChatMessage(new ChatComponentText("Chest out of range! You need to be " + ((int) player.getDistance(i + 0.5F, j + 0.5F, k + 0.5F) - 127) + " blocks closer."));
else player.addChatMessage(new ChatComponentText("You need to link the ring with a chest first, before using it!"));
}
- else if (JewelryNBT.isJewelX(stack, new ItemStack(Items.ender_pearl)) && !JewelryNBT.hasTag(stack, "modifier") && JewelryNBT.playerPosX(stack) == -1 && JewelryNBT.playerPosY(stack) == -1 && JewelryNBT.playerPosZ(stack) == -1)
+ else if (JewelryNBT.isGemX(stack, new ItemStack(Items.ender_pearl)) && !JewelryNBT.hasTag(stack, "modifier") && JewelryNBT.playerPosX(stack) == -1 && JewelryNBT.playerPosY(stack) == -1 && JewelryNBT.playerPosZ(stack) == -1)
{
JewelryNBT.addCoordonatesAndDimension(stack, player.posX, player.posY, player.posZ, world.provider.dimensionId, world.provider.getDimensionName());
JewelryNBT.addFakeEnchantment(stack);
@@ -275,7 +276,7 @@ public class ItemRing extends Item
@Override
public boolean itemInteractionForEntity(ItemStack stack, EntityPlayer player, EntityLivingBase entity)
{
- if (!player.worldObj.isRemote && entity instanceof EntityLivingBase && JewelryNBT.isJewelX(stack, new ItemStack(Items.nether_star)) && JewelryNBT.isModifierX(stack, new ItemStack(Blocks.chest)) && JewelryNBT.entity(stack, player) == null)
+ if (!player.worldObj.isRemote && entity instanceof EntityLivingBase && JewelryNBT.isGemX(stack, new ItemStack(Items.nether_star)) && JewelryNBT.isModifierX(stack, new ItemStack(Blocks.chest)) && JewelryNBT.entity(stack, player) == null)
{
JewelryNBT.addEntity(stack, entity);
JewelryNBT.addEntityID(stack, entity);
@@ -291,16 +292,17 @@ public class ItemRing extends Item
*/
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean par4)
{
- if (stack.hasTagCompound() && stack.getDisplayName() != "Wedding Ring")
+ if (stack.hasTagCompound() && par4 && stack.getDisplayName() != "Wedding Ring")
{
ItemStack ingot = JewelryNBT.ingot(stack);
if (ingot != null && Item.getIdFromItem(JewelryNBT.ingot(stack).getItem()) > 0) list.add("Ingot: " + EnumChatFormatting.YELLOW + ingot.getDisplayName());
- ItemStack jewel = JewelryNBT.jewel(stack);
- if (jewel != null) list.add("Jewel: " + EnumChatFormatting.BLUE + jewel.getDisplayName());
+ ItemStack gem = JewelryNBT.gem(stack);
+ if (gem != null) list.add("Gem: " + EnumChatFormatting.BLUE + gem.getDisplayName());
- ItemStack modifier = JewelryNBT.modifier(stack);
- if (modifier != null) list.add("Modifier: " + EnumChatFormatting.DARK_PURPLE + modifier.getDisplayName());
+ ArrayList<ItemStack> modifier = JewelryNBT.modifier(stack);
+ if(!modifier.isEmpty()) list.add("Modifiers: ");
+ for(int i = 0; i < modifier.size(); i++) list.add(EnumChatFormatting.DARK_PURPLE + modifier.get(i).getDisplayName() + " x" + modifier.get(i).stackSize);
double playerPosX = JewelryNBT.playerPosX(stack), playerPosY = JewelryNBT.playerPosY(stack), playerPosZ = JewelryNBT.playerPosZ(stack);
if (playerPosX != -1 && playerPosY != -1 && playerPosZ != -1) list.add(EnumChatFormatting.YELLOW + "X: " + EnumChatFormatting.GRAY + (int) playerPosX + EnumChatFormatting.YELLOW + " Y: " + EnumChatFormatting.GRAY + (int) playerPosY + EnumChatFormatting.YELLOW + " Z: " + EnumChatFormatting.GRAY + (int) playerPosZ);
@@ -338,7 +340,7 @@ public class ItemRing extends Item
// int colorI = JewelryNBT.ingotColor(stack);
// if(colorI != -1) list.add("Ingot Color: " + colorI);
//
- // int colorJ = JewelryNBT.jewelColor(stack);
+ // int colorJ = JewelryNBT.gemColor(stack);
// if(colorJ != -1) list.add("Jewel Color: " + colorJ);
}
}
@@ -346,9 +348,9 @@ public class ItemRing extends Item
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int i, int j, int k, int side, float par8, float par9, float par10)
{
amplifier = 0;
- if (JewelryNBT.isJewelX(stack, new ItemStack(Items.diamond))) amplifier = 1;
- else if (JewelryNBT.isJewelX(stack, new ItemStack(Items.emerald))) amplifier = 2;
- else if (JewelryNBT.isJewelX(stack, new ItemStack(Items.nether_star))) amplifier = 7;
+ if (JewelryNBT.isGemX(stack, new ItemStack(Items.diamond))) amplifier = 1;
+ else if (JewelryNBT.isGemX(stack, new ItemStack(Items.emerald))) amplifier = 2;
+ else if (JewelryNBT.isGemX(stack, new ItemStack(Items.nether_star))) amplifier = 7;
if (!world.isRemote)
{
@@ -360,10 +362,10 @@ public class ItemRing extends Item
world.spawnEntityInWorld(entity);
JewelryNBT.removeEntity(stack);
}
- if (JewelryNBT.isJewelX(stack, new ItemStack(Items.ender_pearl)) && JewelryNBT.isModifierX(stack, new ItemStack(Blocks.chest)) && world.getBlock(i, j, k) == Blocks.chest) JewelryNBT.addBlockCoordonates(stack, i, j, k);
+ if (JewelryNBT.isGemX(stack, new ItemStack(Items.ender_pearl)) && JewelryNBT.isModifierX(stack, new ItemStack(Blocks.chest)) && world.getBlock(i, j, k) == Blocks.chest) JewelryNBT.addBlockCoordonates(stack, i, j, k);
onItemRightClick(stack, world, player);
if (JewelryNBT.isModifierX(stack, new ItemStack(Items.dye, 1, 15))) world.scheduleBlockUpdate(i, j, k, world.getBlock(i, j, k), 7 - amplifier);
- if (JewelryNBT.isModifierX(stack, new ItemStack(Items.diamond_pickaxe)) && JewelryNBT.isJewelX(stack, new ItemStack(Items.ender_pearl)))
+ if (JewelryNBT.isModifierX(stack, new ItemStack(Items.diamond_pickaxe)) && JewelryNBT.isGemX(stack, new ItemStack(Items.ender_pearl)))
{
if (JewelryNBT.hasTag(stack, "blockID") && !used)
{
@@ -396,7 +398,7 @@ public class ItemRing extends Item
world.setBlock(i, j, k, Block.getBlockById(0));
}
}
- if (JewelryNBT.isModifierX(stack, new ItemStack(Items.diamond_pickaxe)) && JewelryNBT.isJewelX(stack, new ItemStack(Items.nether_star)) && JewelryNBT.isIngotX(stack, new ItemStack(ItemList.shadowIngot)) && j > 0 && world.getBlock(i, j, k).getBlockHardness(world, i, j, k) > 0F) world.func_147480_a(i, j, k, true);
+ if (JewelryNBT.isModifierX(stack, new ItemStack(Items.diamond_pickaxe)) && JewelryNBT.isGemX(stack, new ItemStack(Items.nether_star)) && JewelryNBT.isIngotX(stack, new ItemStack(ItemList.shadowIngot)) && j > 0 && world.getBlock(i, j, k).getBlockHardness(world, i, j, k) > 0F) world.func_147480_a(i, j, k, true);
}
return true;
}
@@ -426,9 +428,9 @@ public class ItemRing extends Item
EntityPlayer entityplayer = (EntityPlayer) entity;
int posX = (int) Math.floor(entityplayer.posX), posY = (int) Math.floor(entityplayer.posY), posZ = (int) Math.floor(entityplayer.posZ);
- if (JewelryNBT.isJewelX(stack, new ItemStack(Items.diamond))) amplifier = 1;
- else if (JewelryNBT.isJewelX(stack, new ItemStack(Items.emerald))) amplifier = 2;
- else if (JewelryNBT.isJewelX(stack, new ItemStack(Items.nether_star))) amplifier = 7;
+ if (JewelryNBT.isGemX(stack, new ItemStack(Items.diamond))) amplifier = 1;
+ else if (JewelryNBT.isGemX(stack, new ItemStack(Items.emerald))) amplifier = 2;
+ else if (JewelryNBT.isGemX(stack, new ItemStack(Items.nether_star))) amplifier = 7;
if (JewelryNBT.isModifierX(stack, new ItemStack(Items.dye, 1, 15)) && world.getBlock(posX, posY - 1, posZ) == Blocks.farmland) world.setBlockMetadataWithNotify(posX, posY - 1, posZ, 1, 7);
@@ -440,7 +442,7 @@ public class ItemRing extends Item
entityplayer.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 4, amplifier, true));
entityplayer.addExhaustion(0.05f * amplifier);
}
- else if (JewelryNBT.isModifierX(stack, new ItemStack(Items.iron_pickaxe)) && entityplayer != null && !JewelryNBT.isJewelX(stack, new ItemStack(Items.ender_pearl))) entityplayer.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 4, amplifier, true));
+ else if (JewelryNBT.isModifierX(stack, new ItemStack(Items.iron_pickaxe)) && entityplayer != null && !JewelryNBT.isGemX(stack, new ItemStack(Items.ender_pearl))) entityplayer.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 4, amplifier, true));
else if (JewelryNBT.isModifierX(stack, new ItemStack(Items.feather)) && entityplayer != null)
{
entityplayer.addPotionEffect(new PotionEffect(Potion.jump.id, 4, amplifier, true));
@@ -461,7 +463,7 @@ public class ItemRing extends Item
}
else if (JewelryNBT.isModifierX(stack, new ItemStack(Items.potionitem, 1, 8270)) && entityplayer != null) entityplayer.addPotionEffect(new PotionEffect(Potion.invisibility.id, 4, amplifier, true));
}
- if (entityplayer.inventory.getCurrentItem() != null && JewelryNBT.isJewelX(stack, new ItemStack(Items.nether_star)) && JewelryNBT.isModifierX(stack, new ItemStack(Items.book)) && entityplayer.inventory.getCurrentItem().getItem() == stack.getItem())
+ if (entityplayer.inventory.getCurrentItem() != null && JewelryNBT.isGemX(stack, new ItemStack(Items.nether_star)) && JewelryNBT.isModifierX(stack, new ItemStack(Items.book)) && entityplayer.inventory.getCurrentItem().getItem() == stack.getItem())
{
ItemStack item = null;
if (entityplayer.inventory.currentItem + 1 <= 8 && entityplayer.inventory.getStackInSlot(entityplayer.inventory.currentItem + 1) != null && entityplayer.inventory.getStackInSlot(entityplayer.inventory.currentItem + 1).isItemEnchanted()) item = entityplayer.inventory.getStackInSlot(entityplayer.inventory.currentItem + 1);
@@ -538,14 +540,14 @@ public class ItemRing extends Item
}
}
- public ItemStack getModifiedItemStack(ItemStack ingot, ItemStack modifier, ItemStack jewel)
+ public ItemStack getModifiedItemStack(ItemStack ingot, ItemStack modifier, ItemStack gem)
{
ItemStack itemstack = new ItemStack(this);
JewelryNBT.addMetal(itemstack, ingot);
- JewelryNBT.addModifier(itemstack, modifier);
- JewelryNBT.addJewel(itemstack, jewel);
- if (JewelryNBT.isModifierEffectType(itemstack) && !(JewelryNBT.isJewelX(itemstack, new ItemStack(Items.ender_pearl)) && JewelryNBT.isModifierX(itemstack, new ItemStack(Items.iron_pickaxe)))) JewelryNBT.addMode(itemstack, "Activated");
- if (JewelryNBT.isJewelX(itemstack, new ItemStack(Items.nether_star)) && JewelryNBT.isModifierX(itemstack, new ItemStack(Items.book))) JewelryNBT.addMode(itemstack, "Disenchant");
+ JewelryNBT.addModifiers(itemstack, JewelrycraftUtil.addRandomModifiers());
+ JewelryNBT.addGem(itemstack, gem);
+// if (JewelryNBT.isModifierEffectType(itemstack) && !(JewelryNBT.isGemX(itemstack, new ItemStack(Items.ender_pearl)) && JewelryNBT.isModifierX(itemstack, new ItemStack(Items.iron_pickaxe)))) JewelryNBT.addMode(itemstack, "Activated");
+ if (JewelryNBT.isGemX(itemstack, new ItemStack(Items.nether_star)) && JewelryNBT.isModifierX(itemstack, new ItemStack(Items.book))) JewelryNBT.addMode(itemstack, "Disenchant");
return itemstack;
}
diff --git a/java/darkknight/jewelrycraft/lib/Reference.java b/java/darkknight/jewelrycraft/lib/Reference.java
index 9460584..24e8751 100644
--- a/java/darkknight/jewelrycraft/lib/Reference.java
+++ b/java/darkknight/jewelrycraft/lib/Reference.java
@@ -4,6 +4,6 @@ public class Reference
{
public static final String MODID = "Jewelrycraft";
public static final String MODNAME = "Jewelrycraft";
- public static final String VERSION = "1.4.2";
+ public static final String VERSION = "1.5";
public static final String PACKET_CHANNEL = "Jewelrycraft";
}
diff --git a/java/darkknight/jewelrycraft/model/ModelHandPedestal.java b/java/darkknight/jewelrycraft/model/ModelHandPedestal.java
new file mode 100644
index 0000000..072d186
--- /dev/null
+++ b/java/darkknight/jewelrycraft/model/ModelHandPedestal.java
@@ -0,0 +1,148 @@
+package darkknight.jewelrycraft.model;
+
+import net.minecraft.client.model.ModelBase;
+import net.minecraft.client.model.ModelRenderer;
+import net.minecraft.entity.Entity;
+
+public class ModelHandPedestal extends ModelBase
+{
+ //fields
+ ModelRenderer finger1;
+ ModelRenderer finger2;
+ ModelRenderer finger3;
+ ModelRenderer finger4;
+ ModelRenderer finger5;
+ ModelRenderer finger6;
+ ModelRenderer finger7;
+ ModelRenderer finger8;
+ ModelRenderer finger9;
+ ModelRenderer finger10;
+ ModelRenderer Base;
+ ModelRenderer Base2;
+ ModelRenderer Base3;
+ ModelRenderer Palm;
+
+ public ModelHandPedestal()
+ {
+ textureWidth = 64;
+ textureHeight = 32;
+
+ finger1 = new ModelRenderer(this, 0, 0);
+ finger1.addBox(-1.5F, -4.5F, -9F, 2, 4, 3);
+ finger1.setRotationPoint(0F, 10F, 0F);
+ finger1.setTextureSize(64, 32);
+ finger1.mirror = true;
+ setRotation(finger1, -0.2094395F, 0.7853982F, 0F);
+ finger2 = new ModelRenderer(this, 0, 0);
+ finger2.addBox(-2.5F, -4.5F, -9F, 2, 4, 3);
+ finger2.setRotationPoint(0F, 10F, 0F);
+ finger2.setTextureSize(64, 32);
+ finger2.mirror = true;
+ setRotation(finger2, -0.2094395F, 0.0872665F, 0F);
+ finger3 = new ModelRenderer(this, 0, 0);
+ finger3.addBox(0.5F, -4.5F, -9F, 2, 4, 3);
+ finger3.setRotationPoint(0F, 10F, 0F);
+ finger3.setTextureSize(64, 32);
+ finger3.mirror = true;
+ setRotation(finger3, -0.2094395F, -0.0872665F, 0F);
+ finger4 = new ModelRenderer(this, 0, 0);
+ finger4.addBox(-0.5F, -4.5F, -9F, 2, 4, 3);
+ finger4.setRotationPoint(0F, 10F, 0F);
+ finger4.setTextureSize(64, 32);
+ finger4.mirror = true;
+ setRotation(finger4, -0.2094395F, -0.7853982F, 0F);
+ finger5 = new ModelRenderer(this, 0, 0);
+ finger5.addBox(-1F, -4.5F, 5F, 2, 4, 3);
+ finger5.setRotationPoint(0F, 10F, 0F);
+ finger5.setTextureSize(64, 32);
+ finger5.mirror = true;
+ setRotation(finger5, 0.2094395F, 0F, 0F);
+ finger6 = new ModelRenderer(this, 0, 0);
+ finger6.addBox(-1.5F, -0.5F, -9F, 2, 3, 5);
+ finger6.setRotationPoint(0F, 10F, 0F);
+ finger6.setTextureSize(64, 32);
+ finger6.mirror = true;
+ setRotation(finger6, -0.2094395F, 0.7853982F, 0F);
+ finger7 = new ModelRenderer(this, 0, 0);
+ finger7.addBox(-2.5F, -0.5F, -9F, 2, 3, 5);
+ finger7.setRotationPoint(0F, 10F, 0F);
+ finger7.setTextureSize(64, 32);
+ finger7.mirror = true;
+ setRotation(finger7, -0.2094395F, 0.0872665F, 0F);
+ finger8 = new ModelRenderer(this, 0, 0);
+ finger8.addBox(0.5F, -0.5F, -9F, 2, 3, 5);
+ finger8.setRotationPoint(0F, 10F, 0F);
+ finger8.setTextureSize(64, 32);
+ finger8.mirror = true;
+ setRotation(finger8, -0.2094395F, -0.0872665F, 0F);
+ finger9 = new ModelRenderer(this, 0, 0);
+ finger9.addBox(-0.5F, -0.5F, -9F, 2, 3, 5);
+ finger9.setRotationPoint(0F, 10F, 0F);
+ finger9.setTextureSize(64, 32);
+ finger9.mirror = true;
+ setRotation(finger9, -0.2094395F, -0.7853982F, 0F);
+ finger10 = new ModelRenderer(this, 0, 0);
+ finger10.addBox(-1F, -0.5F, 3F, 2, 3, 5);
+ finger10.setRotationPoint(0F, 10F, 0F);
+ finger10.setTextureSize(64, 32);
+ finger10.mirror = true;
+ setRotation(finger10, 0.2094395F, 0F, 0F);
+ Base = new ModelRenderer(this, 0, 0);
+ Base.addBox(-6F, 4F, -6F, 12, 4, 12);
+ Base.setRotationPoint(0F, 16F, 0F);
+ Base.setTextureSize(64, 32);
+ Base.mirror = true;
+ setRotation(Base, 0F, 0F, 0F);
+ Base2 = new ModelRenderer(this, 0, 0);
+ Base2.addBox(-4F, 0F, -4F, 8, 4, 8);
+ Base2.setRotationPoint(0F, 16F, 0F);
+ Base2.setTextureSize(64, 32);
+ Base2.mirror = true;
+ setRotation(Base2, 0F, 0F, 0F);
+ Base3 = new ModelRenderer(this, 0, 0);
+ Base3.addBox(-3F, -4F, -3F, 6, 4, 6);
+ Base3.setRotationPoint(0F, 16F, 0F);
+ Base3.setTextureSize(64, 32);
+ Base3.mirror = true;
+ setRotation(Base3, 0F, 0F, 0F);
+ Palm = new ModelRenderer(this, 0, 0);
+ Palm.addBox(-4F, -8F, -4F, 8, 4, 8);
+ Palm.setRotationPoint(0F, 16F, 0F);
+ Palm.setTextureSize(64, 32);
+ Palm.mirror = true;
+ setRotation(Palm, 0F, 0F, 0F);
+ }
+
+ public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
+ {
+ super.render(entity, f, f1, f2, f3, f4, f5);
+ setRotationAngles(f, f1, f2, f3, f4, f5);
+ finger1.render(f5);
+ finger2.render(f5);
+ finger3.render(f5);
+ finger4.render(f5);
+ finger5.render(f5);
+ finger6.render(f5);
+ finger7.render(f5);
+ finger8.render(f5);
+ finger9.render(f5);
+ finger10.render(f5);
+ Base.render(f5);
+ Base2.render(f5);
+ Base3.render(f5);
+ Palm.render(f5);
+ }
+
+ private void setRotation(ModelRenderer model, float x, float y, float z)
+ {
+ model.rotateAngleX = x;
+ model.rotateAngleY = y;
+ model.rotateAngleZ = z;
+ }
+
+ public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5)
+ {
+ super.setRotationAngles(f, f1, f2, f3, f4, f5, null);
+ }
+
+}
diff --git a/java/darkknight/jewelrycraft/model/ModelShadowEye.java b/java/darkknight/jewelrycraft/model/ModelShadowEye.java
new file mode 100644
index 0000000..3f48b79
--- /dev/null
+++ b/java/darkknight/jewelrycraft/model/ModelShadowEye.java
@@ -0,0 +1,176 @@
+// Date: 9/26/2014 1:50:53 PM
+// Template version 1.1
+// Java generated by Techne
+// Keep in mind that you still need to fill in some blanks
+// - ZeuX
+
+package darkknight.jewelrycraft.model;
+
+import net.minecraft.client.model.ModelBase;
+import net.minecraft.client.model.ModelRenderer;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.boss.EntityWither;
+import net.minecraft.util.MathHelper;
+
+public class ModelShadowEye extends ModelBase
+{
+ // fields
+ ModelRenderer Eye;
+ ModelRenderer Platform1;
+ ModelRenderer Platform2;
+ ModelRenderer Atachement1;
+ ModelRenderer Atachement2;
+ ModelRenderer Cable1;
+ ModelRenderer Cable2;
+ ModelRenderer Cable3;
+ ModelRenderer Cable4;
+ float field_82221_e, field_82220_d;
+
+ public ModelShadowEye()
+ {
+ textureWidth = 64;
+ textureHeight = 32;
+
+ Eye = new ModelRenderer(this, 0, 0);
+ Eye.addBox(-3.5F, -3.5F, -3.5F, 7, 7, 7);
+ Eye.setRotationPoint(0F, 17.5F, 0F);
+ Eye.setTextureSize(64, 32);
+ Eye.mirror = true;
+ setRotation(Eye, 0F, 0F, 0F);
+ Platform1 = new ModelRenderer(this, 0, 14);
+ Platform1.addBox(0F, 0F, 0F, 2, 2, 16);
+ Platform1.setRotationPoint(-1F, 11F, -8F);
+ Platform1.setTextureSize(64, 32);
+ Platform1.mirror = true;
+ setRotation(Platform1, 0F, 0F, 0F);
+ Platform2 = new ModelRenderer(this, 0, 14);
+ Platform2.addBox(0F, 0F, 0F, 2, 2, 16);
+ Platform2.setRotationPoint(-1F, 22F, -8F);
+ Platform2.setTextureSize(64, 32);
+ Platform2.mirror = true;
+ setRotation(Platform2, 0F, 0F, 0F);
+ Atachement1 = new ModelRenderer(this, 38, 0);
+ Atachement1.addBox(0F, 0F, 0F, 2, 2, 5);
+ Atachement1.setRotationPoint(-1F, 17F, -12F);
+ Atachement1.setTextureSize(64, 32);
+ Atachement1.mirror = true;
+ setRotation(Atachement1, 0F, 0F, 0F);
+ Atachement2 = new ModelRenderer(this, 38, 0);
+ Atachement2.addBox(0F, 0F, 0F, 2, 2, 5);
+ Atachement2.setRotationPoint(-1F, 17F, 7F);
+ Atachement2.setTextureSize(64, 32);
+ Atachement2.mirror = true;
+ setRotation(Atachement2, 0F, 0F, 0F);
+ Cable1 = new ModelRenderer(this, 29, 0);
+ Cable1.addBox(0F, 0F, 0F, 2, 6, 2);
+ Cable1.setRotationPoint(-1F, 12F, 4.2F);
+ Cable1.setTextureSize(64, 32);
+ Cable1.mirror = true;
+ setRotation(Cable1, 0.2617994F, 0F, 0F);
+ Cable2 = new ModelRenderer(this, 29, 0);
+ Cable2.addBox(0F, 0F, -1F, 2, 6, 2);
+ Cable2.setRotationPoint(-1F, 12F, -5.2F);
+ Cable2.setTextureSize(64, 32);
+ Cable2.mirror = true;
+ setRotation(Cable2, -0.2617994F, 0F, 0F);
+ Cable3 = new ModelRenderer(this, 29, 0);
+ Cable3.addBox(0F, 0F, 0F, 2, 6, 2);
+ Cable3.setRotationPoint(-1F, 23F, -3.9F);
+ Cable3.setTextureSize(64, 32);
+ Cable3.mirror = true;
+ setRotation(Cable3, -2.792527F, 0F, 0F);
+ Cable4 = new ModelRenderer(this, 29, 0);
+ Cable4.addBox(0F, 0F, -1F, 2, 6, 2);
+ Cable4.setRotationPoint(-1F, 23F, 4.9F);
+ Cable4.setTextureSize(64, 32);
+ Cable4.mirror = true;
+ setRotation(Cable4, 2.792527F, 0F, 0F);
+ }
+
+ public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
+ {
+ Eye.render(f5);
+ Platform1.render(f5);
+ Platform2.render(f5);
+ Atachement1.render(f5);
+ Atachement2.render(f5);
+ Cable1.render(f5);
+ Cable2.render(f5);
+ Cable3.render(f5);
+ Cable4.render(f5);
+ if (entity != null)
+ {
+ float x = (float) (f - entity.posX);
+ float y = (float) (f1 - entity.posY);
+ float z = (float) (f2 - entity.posZ);
+ if (f4 == 4)
+ {
+ if (f3 == 0)
+ {
+ if (z < 0)
+ {
+ Eye.rotateAngleY = (float) Math.asin(x / (Math.sqrt(x * x + z * z))) + 135f;
+ Eye.rotateAngleZ = (float) -Math.asin((y + 1) / (Math.sqrt(y * y + 4 * 4)));
+ }
+ else
+ {
+ Eye.rotateAngleY = (float) -Math.asin(x / (Math.sqrt(x * x + z * z)));
+ Eye.rotateAngleZ = (float) Math.asin((y + 1) / (Math.sqrt(y * y + 4 * 4)));
+ }
+ }
+ if (f3 == 1)
+ {
+ if (x < 0)
+ {
+ Eye.rotateAngleY = (float) -Math.asin(z / (Math.sqrt(x * x + z * z)));
+ Eye.rotateAngleZ = (float) Math.asin((y + 1) / (Math.sqrt(y * y + 4 * 4)));
+ }
+ else
+ {
+ Eye.rotateAngleY = (float) Math.asin(z / (Math.sqrt(x * x + z * z))) + 135f;
+ Eye.rotateAngleZ = (float) -Math.asin((y + 1) / (Math.sqrt(y * y + 4 * 4)));
+ }
+ }
+ if (f3 == 2)
+ {
+ if (z < 0)
+ {
+ Eye.rotateAngleY = (float) Math.asin(x / (Math.sqrt(x * x + z * z)));
+ Eye.rotateAngleZ = (float) Math.asin((y + 1) / (Math.sqrt(y * y + 4 * 4)));
+ }
+ else
+ {
+ Eye.rotateAngleY = (float) -Math.asin(x / (Math.sqrt(x * x + z * z))) + 135f;
+ Eye.rotateAngleZ = (float) -Math.asin((y + 1) / (Math.sqrt(y * y + 4 * 4)));
+ }
+ }
+ if (f3 == 3)
+ {
+ if (x < 0)
+ {
+ Eye.rotateAngleY = (float) -Math.asin(z / (Math.sqrt(x * x + z * z))) + 135f;
+ Eye.rotateAngleZ = (float) -Math.asin((y + 1) / (Math.sqrt(y * y + 4 * 4)));
+ }
+ else
+ {
+ Eye.rotateAngleY = (float) Math.asin(z / (Math.sqrt(x * x + z * z)));
+ Eye.rotateAngleZ = (float) Math.asin((y + 1) / (Math.sqrt(y * y + 4 * 4)));
+ }
+ }
+ }
+ else
+ {
+ Eye.rotateAngleY = 0f;
+ Eye.rotateAngleZ = 0f;
+ }
+ }
+ }
+
+ private void setRotation(ModelRenderer model, float x, float y, float z)
+ {
+ model.rotateAngleX = x;
+ model.rotateAngleY = y;
+ model.rotateAngleZ = z;
+ }
+}
diff --git a/java/darkknight/jewelrycraft/model/ModelShadowHand.java b/java/darkknight/jewelrycraft/model/ModelShadowHand.java
new file mode 100644
index 0000000..4e187f0
--- /dev/null
+++ b/java/darkknight/jewelrycraft/model/ModelShadowHand.java
@@ -0,0 +1,161 @@
+package darkknight.jewelrycraft.model;
+
+import org.lwjgl.opengl.GL11;
+
+import net.minecraft.client.model.ModelBase;
+import net.minecraft.client.model.ModelRenderer;
+import net.minecraft.entity.Entity;
+
+public class ModelShadowHand extends ModelBase
+{
+ //fields
+ ModelRenderer finger1;
+ ModelRenderer finger2;
+ ModelRenderer finger3;
+ ModelRenderer finger4;
+ ModelRenderer finger5;
+ ModelRenderer finger6;
+ ModelRenderer finger7;
+ ModelRenderer finger8;
+ ModelRenderer finger9;
+ ModelRenderer finger10;
+ ModelRenderer Base;
+ ModelRenderer Base2;
+ ModelRenderer Base3;
+ ModelRenderer Palm;
+
+ public ModelShadowHand()
+ {
+ textureWidth = 64;
+ textureHeight = 32;
+
+ finger1 = new ModelRenderer(this, 0, 0);
+ finger1.addBox(-1.5F, -4.5F, -9F, 2, 4, 3);
+ finger1.setRotationPoint(0F, 10F, 0F);
+ finger1.setTextureSize(64, 32);
+ finger1.mirror = true;
+ setRotation(finger1, -0.2094395F, 0.7853982F, 0F);
+ finger2 = new ModelRenderer(this, 0, 0);
+ finger2.addBox(-2.5F, -4.5F, -9F, 2, 4, 3);
+ finger2.setRotationPoint(0F, 10F, 0F);
+ finger2.setTextureSize(64, 32);
+ finger2.mirror = true;
+ setRotation(finger2, -0.2094395F, 0.0872665F, 0F);
+ finger3 = new ModelRenderer(this, 0, 0);
+ finger3.addBox(0.5F, -4.5F, -9F, 2, 4, 3);
+ finger3.setRotationPoint(0F, 10F, 0F);
+ finger3.setTextureSize(64, 32);
+ finger3.mirror = true;
+ setRotation(finger3, -0.2094395F, -0.0872665F, 0F);
+ finger4 = new ModelRenderer(this, 0, 0);
+ finger4.addBox(-0.5F, -4.5F, -9F, 2, 4, 3);
+ finger4.setRotationPoint(0F, 10F, 0F);
+ finger4.setTextureSize(64, 32);
+ finger4.mirror = true;
+ setRotation(finger4, -0.2094395F, -0.7853982F, 0F);
+ finger5 = new ModelRenderer(this, 0, 0);
+ finger5.addBox(-1F, -4.5F, 5F, 2, 4, 3);
+ finger5.setRotationPoint(0F, 10F, 0F);
+ finger5.setTextureSize(64, 32);
+ finger5.mirror = true;
+ setRotation(finger5, 0.2094395F, 0F, 0F);
+ finger6 = new ModelRenderer(this, 0, 0);
+ finger6.addBox(-1.5F, -0.5F, -9F, 2, 3, 5);
+ finger6.setRotationPoint(0F, 10F, 0F);
+ finger6.setTextureSize(64, 32);
+ finger6.mirror = true;
+ setRotation(finger6, -0.2094395F, 0.7853982F, 0F);
+ finger7 = new ModelRenderer(this, 0, 0);
+ finger7.addBox(-2.5F, -0.5F, -9F, 2, 3, 5);
+ finger7.setRotationPoint(0F, 10F, 0F);
+ finger7.setTextureSize(64, 32);
+ finger7.mirror = true;
+ setRotation(finger7, -0.2094395F, 0.0872665F, 0F);
+ finger8 = new ModelRenderer(this, 0, 0);
+ finger8.addBox(0.5F, -0.5F, -9F, 2, 3, 5);
+ finger8.setRotationPoint(0F, 10F, 0F);
+ finger8.setTextureSize(64, 32);
+ finger8.mirror = true;
+ setRotation(finger8, -0.2094395F, -0.0872665F, 0F);
+ finger9 = new ModelRenderer(this, 0, 0);
+ finger9.addBox(-0.5F, -0.5F, -9F, 2, 3, 5);
+ finger9.setRotationPoint(0F, 10F, 0F);
+ finger9.setTextureSize(64, 32);
+ finger9.mirror = true;
+ setRotation(finger9, -0.2094395F, -0.7853982F, 0F);
+ finger10 = new ModelRenderer(this, 0, 0);
+ finger10.addBox(-1F, -0.5F, 3F, 2, 3, 5);
+ finger10.setRotationPoint(0F, 10F, 0F);
+ finger10.setTextureSize(64, 32);
+ finger10.mirror = true;
+ setRotation(finger10, 0.2094395F, 0F, 0F);
+ Base = new ModelRenderer(this, 0, 0);
+ Base.addBox(-3F, 6F, -3F, 6, 2, 6);
+ Base.setRotationPoint(0F, 16F, 0F);
+ Base.setTextureSize(64, 32);
+ Base.mirror = true;
+ setRotation(Base, 0F, 0F, 0F);
+ Base2 = new ModelRenderer(this, 0, 15);
+ Base2.addBox(-2F, 0F, -2F, 4, 6, 4);
+ Base2.setRotationPoint(0F, 16F, 0F);
+ Base2.setTextureSize(64, 32);
+ Base2.mirror = true;
+ setRotation(Base2, 0F, 0F, 0F);
+ Base3 = new ModelRenderer(this, 28, 0);
+ Base3.addBox(-3F, -4F, -3F, 6, 4, 6);
+ Base3.setRotationPoint(0F, 16F, 0F);
+ Base3.setTextureSize(64, 32);
+ Base3.mirror = true;
+ setRotation(Base3, 0F, 0F, 0F);
+ Palm = new ModelRenderer(this, 0, 0);
+ Palm.addBox(-4F, -8F, -4F, 8, 4, 8);
+ Palm.setRotationPoint(0F, 16F, 0F);
+ Palm.setTextureSize(64, 32);
+ Palm.mirror = true;
+ setRotation(Palm, 0F, 0F, 0F);
+ }
+
+ public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
+ {
+ GL11.glPushMatrix();
+ switch ((int)f)
+ {
+ default:
+ GL11.glTranslatef(0.15f, 0.0f, 0.0f);
+ GL11.glTranslatef(0.0f, 0.25f, 0.0f);
+ GL11.glTranslatef(0.0f, 0.0f, 0.06f);
+ GL11.glRotatef(35f, 0, 0, 1);
+ GL11.glRotatef(-15f, 1, 0, 1);
+ break;
+ //case 1: GL11.glRotatef(10f, 0, 0, 1);
+ }
+ finger1.render(f5);
+ GL11.glPopMatrix();
+ finger2.render(f5);
+ finger3.render(f5);
+ finger4.render(f5);
+ finger5.render(f5);
+ finger6.render(f5);
+ finger7.render(f5);
+ finger8.render(f5);
+ finger9.render(f5);
+ finger10.render(f5);
+ Base.render(f5);
+ Base2.render(f5);
+ Base3.render(f5);
+ Palm.render(f5);
+ }
+
+ private void setRotation(ModelRenderer model, float x, float y, float z)
+ {
+ model.rotateAngleX = x;
+ model.rotateAngleY = y;
+ model.rotateAngleZ = z;
+ }
+
+ public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5)
+ {
+ super.setRotationAngles(f, f1, f2, f3, f4, f5, null);
+ }
+
+}
diff --git a/java/darkknight/jewelrycraft/network/PacketKeyPressEvent.java b/java/darkknight/jewelrycraft/network/PacketKeyPressEvent.java
new file mode 100644
index 0000000..c810efd
--- /dev/null
+++ b/java/darkknight/jewelrycraft/network/PacketKeyPressEvent.java
@@ -0,0 +1,46 @@
+package darkknight.jewelrycraft.network;
+
+import io.netty.buffer.ByteBuf;
+import net.minecraft.entity.player.EntityPlayer;
+import cpw.mods.fml.common.network.ByteBufUtils;
+import cpw.mods.fml.common.network.simpleimpl.IMessage;
+import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
+import cpw.mods.fml.common.network.simpleimpl.MessageContext;
+import darkknight.jewelrycraft.JewelrycraftMod;
+
+public class PacketKeyPressEvent implements IMessage, IMessageHandler<PacketKeyPressEvent, IMessage>
+{
+ public int actionID;
+
+ public PacketKeyPressEvent(int id)
+ {
+ actionID = id;
+ }
+
+ public PacketKeyPressEvent()
+ {
+ }
+
+ @Override
+ public IMessage onMessage(PacketKeyPressEvent message, MessageContext ctx)
+ {
+ EntityPlayer sender = ctx.getServerHandler().playerEntity;
+
+ // Jewelry inventory
+ if (message.actionID == 0) sender.openGui(JewelrycraftMod.instance, 2, sender.worldObj, (int)sender.posX, (int)sender.posY, (int)sender.posZ);
+
+ return null;
+ }
+
+ @Override
+ public void fromBytes(ByteBuf buf)
+ {
+ actionID = buf.readInt();
+ }
+
+ @Override
+ public void toBytes(ByteBuf buf)
+ {
+ buf.writeInt(actionID);
+ }
+}
diff --git a/java/darkknight/jewelrycraft/network/PacketRequestPlayerInfo.java b/java/darkknight/jewelrycraft/network/PacketRequestPlayerInfo.java
new file mode 100644
index 0000000..ca74675
--- /dev/null
+++ b/java/darkknight/jewelrycraft/network/PacketRequestPlayerInfo.java
@@ -0,0 +1,35 @@
+package darkknight.jewelrycraft.network;
+
+import java.util.HashMap;
+
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.nbt.NBTTagCompound;
+import io.netty.buffer.ByteBuf;
+import cpw.mods.fml.common.network.ByteBufUtils;
+import cpw.mods.fml.common.network.simpleimpl.IMessage;
+import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
+import cpw.mods.fml.common.network.simpleimpl.MessageContext;
+import darkknight.jewelrycraft.util.PlayerUtils;
+
+public class PacketRequestPlayerInfo implements IMessage, IMessageHandler<PacketRequestPlayerInfo, IMessage>
+{
+ public PacketRequestPlayerInfo()
+ {
+ }
+
+ @Override
+ public IMessage onMessage(PacketRequestPlayerInfo message, MessageContext ctx)
+ {
+ return new PacketSendPlayerInfo(PlayerUtils.getModPlayerPersistTag(ctx.getServerHandler().playerEntity, "Jewelrycraft"));
+ }
+
+ @Override
+ public void fromBytes(ByteBuf buf)
+ {
+ }
+
+ @Override
+ public void toBytes(ByteBuf buf)
+ {
+ }
+}
diff --git a/java/darkknight/jewelrycraft/network/PacketSendPlayerInfo.java b/java/darkknight/jewelrycraft/network/PacketSendPlayerInfo.java
new file mode 100644
index 0000000..77d0b74
--- /dev/null
+++ b/java/darkknight/jewelrycraft/network/PacketSendPlayerInfo.java
@@ -0,0 +1,43 @@
+package darkknight.jewelrycraft.network;
+
+import io.netty.buffer.ByteBuf;
+import net.minecraft.nbt.NBTTagCompound;
+import cpw.mods.fml.common.network.ByteBufUtils;
+import cpw.mods.fml.common.network.simpleimpl.IMessage;
+import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
+import cpw.mods.fml.common.network.simpleimpl.MessageContext;
+import darkknight.jewelrycraft.events.ScreenHandler;
+
+public class PacketSendPlayerInfo implements IMessage, IMessageHandler<PacketSendPlayerInfo, IMessage>
+{
+ public NBTTagCompound tagCompound;
+
+ public PacketSendPlayerInfo(NBTTagCompound tagCompound)
+ {
+ this.tagCompound = tagCompound;
+ }
+
+ public PacketSendPlayerInfo()
+ {
+ }
+
+ @Override
+ public IMessage onMessage(PacketSendPlayerInfo message, MessageContext ctx)
+ {
+ ScreenHandler.tagCache = message.tagCompound;
+
+ return null;
+ }
+
+ @Override
+ public void fromBytes(ByteBuf buf)
+ {
+ tagCompound = ByteBufUtils.readTag(buf);
+ }
+
+ @Override
+ public void toBytes(ByteBuf buf)
+ {
+ ByteBufUtils.writeTag(buf, tagCompound);
+ }
+}
diff --git a/java/darkknight/jewelrycraft/particles/EntityFlatShadowFX.java b/java/darkknight/jewelrycraft/particles/EntityFlatShadowFX.java
new file mode 100644
index 0000000..923947e
--- /dev/null
+++ b/java/darkknight/jewelrycraft/particles/EntityFlatShadowFX.java
@@ -0,0 +1,82 @@
+package darkknight.jewelrycraft.particles;
+
+import java.util.Iterator;
+import java.util.List;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.particle.EntityFX;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLiving;
+import net.minecraft.entity.projectile.EntityThrowable;
+import net.minecraft.util.AxisAlignedBB;
+import net.minecraft.util.DamageSource;
+import net.minecraft.util.MathHelper;
+import net.minecraft.util.ResourceLocation;
+import net.minecraft.world.World;
+
+import org.lwjgl.opengl.GL11;
+
+public class EntityFlatShadowFX extends EntityFX
+{
+ float moteParticleScale;
+
+ public EntityFlatShadowFX(World world, double x, double y, double z, float size, float maxAge)
+ {
+ super(world, x, y, z, 0D, 0D, 0D);
+ particleMaxAge = (int) (28D / (Math.random() * 0.3D + 0.7D) * maxAge);
+ particleGravity = 0F;
+ motionX = motionY = motionZ = 0;
+ particleScale = size;
+ noClip = true;
+ setSize(0.1F, 0.1F);
+ }
+
+ @Override
+ public void renderParticle(Tessellator tessellator, float partialTicks, float minX, float minY, float minZ, float maxX, float maxZ)
+ {
+ tessellator.draw();
+ ResourceLocation particle = new ResourceLocation("jewelrycraft", "textures/particle/shadows.png");
+ Minecraft.getMinecraft().renderEngine.bindTexture(particle);
+ tessellator.startDrawingQuads();
+ GL11.glEnable(GL11.GL_BLEND);
+ GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
+ GL11.glDepthMask(false);
+ float scale = 1F * particleScale;
+ float x = (float) (posX - interpPosX);
+ float y = (float) (posX - interpPosY);
+ float z = (float) (posZ - interpPosZ);
+ tessellator.setColorRGBA_F(0F, 0F, 0F, 1F);
+ tessellator.addVertexWithUV(x - minX * scale - maxX * scale, y + minY * scale, z - minZ * scale - maxZ * scale, 0, 0);
+ tessellator.addVertexWithUV(x - minX * scale + maxX * scale, y + minY * scale, z - minZ * scale + maxZ * scale, 1, 0);
+ tessellator.addVertexWithUV(x + minX * scale + maxX * scale, y + minY * scale, z + minZ * scale + maxZ * scale, 1, 1);
+ tessellator.addVertexWithUV(x + minX * scale - maxX * scale, y + minY * scale, z + minZ * scale - maxZ * scale, 0, 1);
+ tessellator.draw();
+ GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
+ GL11.glDisable(GL11.GL_BLEND);
+ GL11.glDepthMask(true);
+ tessellator.startDrawingQuads();
+ }
+
+ @Override
+ public void onUpdate()
+ {
+ this.prevPosX = this.posX;
+ this.prevPosY = this.posY;
+ this.prevPosZ = this.posZ;
+ motionX = motionY = motionZ = 0;
+
+ if (this.particleAge++ >= this.particleMaxAge)
+ {
+ this.setDead();
+ }
+ }
+
+ public int getFXLayer()
+ {
+ return 0;
+ }
+
+}
diff --git a/java/darkknight/jewelrycraft/particles/EntityShadowsFX.java b/java/darkknight/jewelrycraft/particles/EntityShadowsFX.java
new file mode 100644
index 0000000..dea107b
--- /dev/null
+++ b/java/darkknight/jewelrycraft/particles/EntityShadowsFX.java
@@ -0,0 +1,87 @@
+package darkknight.jewelrycraft.particles;
+
+import java.util.Iterator;
+import java.util.List;
+
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.particle.EntityFX;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.projectile.EntityThrowable;
+import net.minecraft.util.AxisAlignedBB;
+import net.minecraft.util.DamageSource;
+import net.minecraft.util.ResourceLocation;
+import net.minecraft.world.World;
+
+import org.lwjgl.opengl.GL11;
+
+public class EntityShadowsFX extends EntityFX
+{
+ float moteParticleScale;
+
+ public EntityShadowsFX(World world, double x, double y, double z, float size, float maxAge)
+ {
+ super(world, x, y, z, 0D, 0D, 0D);
+ particleMaxAge = (int) (28D / (Math.random() * 0.3D + 0.7D) * maxAge);
+ particleGravity = 0F;
+ motionX = motionY = motionZ = 0;
+ particleScale *= size;
+ moteParticleScale = particleScale;
+ noClip = true;
+ setSize(0.01F, 0.01F);
+ }
+
+ @Override
+ public void renderParticle(Tessellator tessellator, float partialTicks, float minX, float minY, float minZ, float maxX, float maxZ)
+ {
+ tessellator.draw();
+ ResourceLocation particle = new ResourceLocation("jewelrycraft", "textures/particle/shadows.png");
+ Minecraft.getMinecraft().renderEngine.bindTexture(particle);
+ GL11.glColor4f(1, 1, 1, 1);
+ tessellator.startDrawingQuads();
+ tessellator.setBrightness(this.getBrightnessForRender(0));
+ float scale = 0.1F * particleScale;
+ float x = (float) (posX - interpPosX);
+ float y = (float) (posY - interpPosY);
+ float z = (float) (posZ - interpPosZ);
+ tessellator.setColorRGBA_F(0F, 0F, 0F, 0.5F);
+ tessellator.addVertexWithUV(x - minX * scale - maxX * scale, y - minY * scale, z - minZ * scale - maxZ * scale, 0, 0);
+ tessellator.addVertexWithUV(x - minX * scale + maxX * scale, y + minY * scale, z - minZ * scale + maxZ * scale, 1, 0);
+ tessellator.addVertexWithUV(x + minX * scale + maxX * scale, y + minY * scale, z + minZ * scale + maxZ * scale, 1, 1);
+ tessellator.addVertexWithUV(x + minX * scale - maxX * scale, y - minY * scale, z + minZ * scale - maxZ * scale, 0, 1);
+ tessellator.draw();
+ tessellator.startDrawingQuads();
+ }
+
+ public void onUpdate()
+ {
+ this.prevPosX = this.posX;
+ this.prevPosY = this.posY;
+ this.prevPosZ = this.posZ;
+ motionX = motionY = motionZ = 0;
+
+ if (this.particleAge++ >= this.particleMaxAge)
+ {
+ this.setDead();
+ }
+ AxisAlignedBB axisalignedbb = this.boundingBox.expand(16.0D, 16.0D, 16.0D);
+ List list1 = this.worldObj.getEntitiesWithinAABB(Entity.class, axisalignedbb);
+ if (!this.worldObj.isRemote && list1 != null && !list1.isEmpty())
+ {
+ Iterator iterator = list1.iterator();
+
+ while (iterator.hasNext())
+ {
+ Entity entity = (Entity) iterator.next();
+ if (entity != null && this.posX <= entity.posX + 0.5F && this.posX >= entity.posX - 0.5F && this.posZ <= entity.posZ + 0.5F && this.posZ >= entity.posZ - 0.5F) entity.attackEntityFrom(DamageSource.anvil, 100F);
+ if (entity instanceof EntityThrowable) ((EntityThrowable)entity).setDead();
+ }
+ }
+ }
+
+ public int getFXLayer()
+ {
+ return 2;
+ }
+
+}
diff --git a/java/darkknight/jewelrycraft/renders/ItemRender.java b/java/darkknight/jewelrycraft/renders/ItemRender.java
new file mode 100644
index 0000000..847766f
--- /dev/null
+++ b/java/darkknight/jewelrycraft/renders/ItemRender.java
@@ -0,0 +1,46 @@
+package darkknight.jewelrycraft.renders;
+
+import org.lwjgl.opengl.GL11;
+
+import net.minecraft.client.model.ModelBase;
+import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraftforge.client.IItemRenderer;
+
+public class ItemRender implements IItemRenderer
+{
+ TileEntitySpecialRenderer render;
+ public TileEntity entity;
+ ModelBase model;
+
+ public ItemRender(TileEntitySpecialRenderer render, TileEntity entity, ModelBase model)
+ {
+ this.entity = entity;
+ this.render = render;
+ this.model = model;
+ }
+
+ @Override
+ public boolean handleRenderType(ItemStack item, ItemRenderType type)
+ {
+ return true;
+ }
+
+ @Override
+ public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper)
+ {
+ return true;
+ }
+
+ @Override
+ public void renderItem(ItemRenderType type, ItemStack item, Object... data)
+ {
+ if (type == IItemRenderer.ItemRenderType.ENTITY) {
+ GL11.glRotatef(180f, 0f, 1f, 0f);
+ GL11.glTranslatef(-0.5f, -0.5f, -0.4f);
+ }
+ this.render.renderTileEntityAt(this.entity, 0.0D, 0.0D, 0.0D, 0.0F);
+ }
+
+}
diff --git a/java/darkknight/jewelrycraft/renders/TileEntityDisplayerRender.java b/java/darkknight/jewelrycraft/renders/TileEntityDisplayerRender.java
index f1b25b5..997955e 100644
--- a/java/darkknight/jewelrycraft/renders/TileEntityDisplayerRender.java
+++ b/java/darkknight/jewelrycraft/renders/TileEntityDisplayerRender.java
@@ -1,8 +1,9 @@
package darkknight.jewelrycraft.renders;
import java.awt.Color;
+import java.util.HashMap;
+import java.util.List;
-import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.renderer.OpenGlHelper;
@@ -14,11 +15,10 @@ import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
-import net.minecraft.item.ItemMap;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.ResourceLocation;
-import net.minecraft.world.World;
import org.lwjgl.opengl.GL11;
@@ -29,6 +29,27 @@ public class TileEntityDisplayerRender extends TileEntitySpecialRenderer
{
ModelDisplayer displayer = new ModelDisplayer();
String texture = "textures/tileentities/Displayer.png";
+ HashMap<EnumChatFormatting, Integer> colors = new HashMap<EnumChatFormatting, Integer>()
+ {
+ {
+ put(EnumChatFormatting.AQUA, 5636095);
+ put(EnumChatFormatting.BLACK, 0);
+ put(EnumChatFormatting.BLUE, 5592575);
+ put(EnumChatFormatting.DARK_AQUA, 43690);
+ put(EnumChatFormatting.DARK_BLUE, 170);
+ put(EnumChatFormatting.DARK_GRAY, 5592405);
+ put(EnumChatFormatting.DARK_GREEN, 43520);
+ put(EnumChatFormatting.DARK_PURPLE, 11141290);
+ put(EnumChatFormatting.DARK_RED, 11141120);
+ put(EnumChatFormatting.GOLD, 16755200);
+ put(EnumChatFormatting.GRAY, 11184810);
+ put(EnumChatFormatting.GREEN, 5635925);
+ put(EnumChatFormatting.LIGHT_PURPLE, 16733695);
+ put(EnumChatFormatting.RED, 16733525);
+ put(EnumChatFormatting.WHITE, 16777215);
+ put(EnumChatFormatting.YELLOW, 16777045);
+ }
+ };
@Override
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float scale)
@@ -36,73 +57,94 @@ public class TileEntityDisplayerRender extends TileEntitySpecialRenderer
GL11.glPushMatrix();
GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F);
TileEntityDisplayer disp = (TileEntityDisplayer) te;
- int block = disp.getBlockMetadata();
-
ResourceLocation blockTexture = new ResourceLocation("jewelrycraft", texture);
Minecraft.getMinecraft().renderEngine.bindTexture(blockTexture);
GL11.glPushMatrix();
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
displayer.render((Entity) null, disp.ringTranslation1, disp.ringTranslation2, disp.ringTranslation3, 0.0F, 0.0F, 0.0625F);
- if (disp != null && disp.hasObject && disp.object != null && disp.object != new ItemStack(Item.getItemById(0), 0, 0))
- {
- int ind = -3;
- GL11.glPushMatrix();
- renderLabel(disp.object.getDisplayName(), 0F, (-0.171F) * ind, 0F, block, disp, Color.YELLOW.getRGB());
- GL11.glPopMatrix();
- ind++;
- GL11.glPushMatrix();
- renderLabel(Integer.toString(disp.quantity), 0F, (-0.171F) * ind, 0F, block, disp, Color.GRAY.getRGB());
- GL11.glPopMatrix();
- ind++;
- EntityPlayer player = te.getWorldObj().getClosestPlayer(te.xCoord, te.yCoord, te.zCoord, 50D);
- if (disp.object.getItem() != Items.map && player != null && disp.object.getTooltip(player, true) != null)
+ try
+ {
+ int block = disp.getBlockMetadata();
+ if (disp != null && disp.hasObject && disp.object != null && disp.object.getItem() != null && disp.object != new ItemStack(Item.getItemById(0), 0, 0))
{
- for (int i = 1; i < disp.object.getTooltip(player, true).size(); i++)
+ int ind = -3;
+ GL11.glPushMatrix();
+ EntityItem entityitem = new EntityItem(te.getWorldObj(), 0.0D, 0.0D, 0.0D, disp.object);
+ entityitem.hoverStart = 0.0F;
+ disp.object.stackSize = 1;
+ GL11.glRotatef(180F, 1F, 0F, 0F);
+ GL11.glTranslatef(0.0F, -0.6F + disp.ringTranslation1 / 5, 0F);
+ GL11.glRotatef(disp.rotAngle, 0F, 1F, 0F);
+ if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
+ else
{
- if (disp.object.getTooltip(player, true).get(i).toString() != "")
+ GL11.glRotatef(180F, 0F, 1F, 0F);
+ RenderManager.instance.options.fancyGraphics = true;
+ int i = 15728880;
+ int j = i % 65536;
+ int k = i / 65536;
+ OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) j / 1.0F, (float) k / 1.0F);
+ RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
+ RenderManager.instance.options.fancyGraphics = false;
+ }
+ EntityPlayer player = te.getWorldObj().getClosestPlayer(te.xCoord, te.yCoord, te.zCoord, 5D);
+ GL11.glPopMatrix();
+ GL11.glPushMatrix();
+ if (player != null) renderLabel(disp.object.getDisplayName(), 0F, (-0.171F) * ind, 0F, block, disp, colors.get(disp.object.getRarity().rarityColor));
+ GL11.glPopMatrix();
+ ind++;
+ if (player != null && disp.quantity > 1)
+ {
+ GL11.glPushMatrix();
+ renderLabel("x" + Integer.toString(disp.quantity), 0F, (-0.171F) * ind, 0F, block, disp, Color.GRAY.getRGB());
+ GL11.glPopMatrix();
+ ind++;
+ }
+ if (disp.object.getItem() != Items.map && player != null && disp.object.getTooltip(player, true) != null)
+ {
+ List tooltips = disp.object.getTooltip(player, true);
+ if (disp.infoIndex + 5 > tooltips.size()) disp.infoIndex = 1;
+ if (tooltips.size() < 5)
+ {
+ for (int i = 1; i < tooltips.size(); i++)
+ {
+ String tooltip = tooltips.get(i).toString();
+ FontRenderer fontrenderer = RenderManager.instance.getFontRenderer();
+ if (tooltip != "")
+ {
+ GL11.glPushMatrix();
+ renderLabel(tooltip, 0F, (-0.171F) * ind, 0F, block, disp, Color.GRAY.getRGB());
+ GL11.glPopMatrix();
+ ind++;
+ }
+ }
+ }
+ else
{
- GL11.glPushMatrix();
- renderLabel(disp.object.getTooltip(player, true).get(i).toString(), 0F, (-0.171F) * ind, 0F, block, disp, Color.GRAY.getRGB());
- GL11.glPopMatrix();
- ind++;
+ for (int i = disp.infoIndex; i < disp.infoIndex + 5; i++)
+ {
+ String tooltip = tooltips.get(i).toString();
+ FontRenderer fontrenderer = RenderManager.instance.getFontRenderer();
+ if (tooltip != "")
+ {
+ GL11.glPushMatrix();
+ renderLabel(tooltip, 0F, (-0.171F) * ind, 0F, block, disp, Color.GRAY.getRGB());
+ GL11.glPopMatrix();
+ ind++;
+ }
+ }
}
}
}
- GL11.glPushMatrix();
- GL11.glDisable(GL11.GL_LIGHTING);
- EntityItem entityitem = new EntityItem(te.getWorldObj(), 0.0D, 0.0D, 0.0D, disp.object);
- entityitem.hoverStart = 0.0F;
- disp.object.stackSize = 1;
- GL11.glRotatef(180F, 1F, 0F, 0F);
- GL11.glTranslatef(0.0F, -0.6F + disp.ringTranslation1 / 5, 0F);
- GL11.glRotatef(disp.rotAngle, 0F, 1F, 0F);
- if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
- else
- {
- GL11.glRotatef(180F, 0F, 1F, 0F);
- RenderManager.instance.options.fancyGraphics = true;
- RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
- RenderManager.instance.options.fancyGraphics = false;
- }
- GL11.glEnable(GL11.GL_LIGHTING);
- GL11.glPopMatrix();
+ }
+ catch (Exception e)
+ {
}
GL11.glPopMatrix();
GL11.glPopMatrix();
}
- public void adjustLightFixture(World world, int i, int j, int k, Block block)
- {
- Tessellator tess = Tessellator.instance;
- float brightness = block.getLightOpacity(world, i, j, k);
- int skyLight = world.getLightBrightnessForSkyBlocks(i, j, k, 0);
- int modulousModifier = skyLight % 65536;
- int divModifier = skyLight / 65536;
- tess.setColorOpaque_F(brightness, brightness, brightness);
- OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) modulousModifier, divModifier);
- }
-
protected void renderLabel(String par2Str, double x, double y, double z, int metadata, TileEntity te, int color)
{
FontRenderer fontrenderer = RenderManager.instance.getFontRenderer();
@@ -124,10 +166,10 @@ public class TileEntityDisplayerRender extends TileEntitySpecialRenderer
int j = fontrenderer.getStringWidth(par2Str) / 2;
tessellator.startDrawingQuads();
tessellator.setColorRGBA_F(0.0F, 0.2F, 0.2F, 0.9F);
- tessellator.addVertex((double) (-33.333 - 0), -1D, 0.1D);
- tessellator.addVertex((double) (-33.333 - 0), 8D, 0.1D);
- tessellator.addVertex((double) (33.333 + 0), 8D, 0.1D);
- tessellator.addVertex((double) (33.333 + 0), -1D, 0.1D);
+ tessellator.addVertex((double) (-33.333 - 0), 0D, 0.1D);
+ tessellator.addVertex((double) (-33.333 - 0), 9D, 0.1D);
+ tessellator.addVertex((double) (33.333 + 0), 9D, 0.1D);
+ tessellator.addVertex((double) (33.333 + 0), 0D, 0.1D);
tessellator.draw();
if ((fontrenderer.getStringWidth(par2Str) / 2) > 20) var17 = 0.9F / fontrenderer.getStringWidth(par2Str);
else var17 = var14;
@@ -138,13 +180,17 @@ public class TileEntityDisplayerRender extends TileEntitySpecialRenderer
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glScalef(var17 * 70F, 1F, 0F);
- fontrenderer.drawString(par2Str.replaceFirst("§0", "§r").replaceFirst("§1", "§r").replaceFirst("§2", "§r").replaceFirst("§3", "§r").replaceFirst("§4", "§r").replaceFirst("§5", "§r").replaceFirst("§6", "§r").replaceFirst("§7", "§r").replaceFirst("§8", "§r").replaceFirst("§9", "§r").replaceFirst("§a", "§r").replaceFirst("§b", "§r").replaceFirst("§c", "§r").replaceFirst("§d", "§r").replaceFirst("§e", "§r").replaceFirst("§f", "§r"), -j, 0, 65536 * (red / 2) + 256 * (green / 2) + blue / 2);
+ int i = 15728880;
+ int t = i % 65536;
+ int k = i / 65536;
+ OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) t / 1.0F, (float) k / 1.0F);
+ fontrenderer.drawString(par2Str.replaceFirst("§0", "§r").replaceFirst("§1", "§r").replaceFirst("§2", "§r").replaceFirst("§3", "§r").replaceFirst("§4", "§r").replaceFirst("§5", "§r").replaceFirst("§6", "§r").replaceFirst("§7", "§r").replaceFirst("§8", "§r").replaceFirst("§9", "§r").replaceFirst("§a", "§r").replaceFirst("§b", "§r").replaceFirst("§c", "§r").replaceFirst("§d", "§r").replaceFirst("§e", "§r").replaceFirst("§f", "§r"), -j, 0, 65536 * (red > 170 ? (red - 170) : 0) + 256 * (green > 170 ? (green - 170) : 0) + (blue > 170 ? (blue - 170) : 0));
GL11.glPopMatrix();
GL11.glTranslatef((float) x - 1f, (float) y - 1f, (float) z - 1F);
GL11.glScalef(var17 * 70F, 1F, 0F);
fontrenderer.drawString(par2Str, -j, 0, color);
- GL11.glEnable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_BLEND);
+ GL11.glEnable(GL11.GL_LIGHTING);
GL11.glPopMatrix();
}
diff --git a/java/darkknight/jewelrycraft/renders/TileEntityHandPedestalRender.java b/java/darkknight/jewelrycraft/renders/TileEntityHandPedestalRender.java
new file mode 100644
index 0000000..2721966
--- /dev/null
+++ b/java/darkknight/jewelrycraft/renders/TileEntityHandPedestalRender.java
@@ -0,0 +1,97 @@
+package darkknight.jewelrycraft.renders;
+
+import java.awt.Color;
+
+import net.minecraft.block.Block;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.FontRenderer;
+import net.minecraft.client.renderer.OpenGlHelper;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.client.renderer.entity.RenderManager;
+import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.item.EntityItem;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Items;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemMap;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.ResourceLocation;
+import net.minecraft.world.World;
+
+import org.lwjgl.opengl.GL11;
+
+import darkknight.jewelrycraft.model.ModelDisplayer;
+import darkknight.jewelrycraft.model.ModelHandPedestal;
+import darkknight.jewelrycraft.tileentity.TileEntityHandPedestal;
+
+public class TileEntityHandPedestalRender extends TileEntitySpecialRenderer
+{
+ ModelHandPedestal model = new ModelHandPedestal();
+ String texture = "textures/tileentities/BricksPedestal.png";
+
+ @Override
+ public void renderTileEntityAt(TileEntity te, double x, double y, double z, float scale)
+ {
+ GL11.glPushMatrix();
+ GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F);
+ TileEntityHandPedestal tile = (TileEntityHandPedestal) te;
+
+ ResourceLocation blockTexture = new ResourceLocation("jewelrycraft", texture);
+ Minecraft.getMinecraft().renderEngine.bindTexture(blockTexture);
+
+ GL11.glPushMatrix();
+ GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
+ try
+ {
+ int block = tile.getBlockMetadata();
+ if (block == 0) GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F);
+ else if (block == 1) GL11.glRotatef(225F, 0.0F, 1.0F, 0.0F);
+ else if (block == 2) GL11.glRotatef(270F, 0.0F, 1.0F, 0.0F);
+ else if (block == 3) GL11.glRotatef(315F, 0.0F, 1.0F, 0.0F);
+ else if (block == 4) GL11.glRotatef(0F, 0.0F, 1.0F, 0.0F);
+ else if (block == 5) GL11.glRotatef(45F, 0.0F, 1.0F, 0.0F);
+ else if (block == 6) GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
+ else if (block == 7) GL11.glRotatef(135F, 0.0F, 1.0F, 0.0F);
+ }
+ catch (Exception e)
+ {
+ }
+ model.render((Entity) null, 0, 0, 0, 0.0F, 0.0F, 0.0625F);
+ if (tile != null && tile.hasObject && tile.object != null && tile.object != new ItemStack(Item.getItemById(0), 0, 0))
+ {
+ GL11.glPushMatrix();
+ GL11.glDisable(GL11.GL_LIGHTING);
+ EntityItem entityitem = new EntityItem(te.getWorldObj(), 0.0D, 0.0D, 0.0D, tile.object);
+ entityitem.hoverStart = 0.0F;
+ tile.object.stackSize = 1;
+ GL11.glTranslatef(0.0F, 0.4F, 0.2F);
+ GL11.glRotatef(180F, 1F, 0F, 0F);
+ GL11.glRotatef(90F, 1F, 0F, 0F);
+ if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
+ else
+ {
+ GL11.glRotatef(180F, 0F, 1F, 0F);
+ RenderManager.instance.options.fancyGraphics = true;
+ RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
+ RenderManager.instance.options.fancyGraphics = false;
+ }
+ GL11.glEnable(GL11.GL_LIGHTING);
+ GL11.glPopMatrix();
+ }
+ GL11.glPopMatrix();
+ GL11.glPopMatrix();
+ }
+
+ public void adjustLightFixture(World world, int i, int j, int k, Block block)
+ {
+ Tessellator tess = Tessellator.instance;
+ float brightness = block.getLightOpacity(world, i, j, k);
+ int skyLight = world.getLightBrightnessForSkyBlocks(i, j, k, 0);
+ int modulousModifier = skyLight % 65536;
+ int divModifier = skyLight / 65536;
+ tess.setColorOpaque_F(brightness, brightness, brightness);
+ OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) modulousModifier, divModifier);
+ }
+} \ No newline at end of file
diff --git a/java/darkknight/jewelrycraft/renders/TileEntityJewelrsCraftingTableRender.java b/java/darkknight/jewelrycraft/renders/TileEntityJewelrsCraftingTableRender.java
index df63e9d..78d9e50 100644
--- a/java/darkknight/jewelrycraft/renders/TileEntityJewelrsCraftingTableRender.java
+++ b/java/darkknight/jewelrycraft/renders/TileEntityJewelrsCraftingTableRender.java
@@ -29,18 +29,28 @@ public class TileEntityJewelrsCraftingTableRender extends TileEntitySpecialRende
ResourceLocation blockTexture = new ResourceLocation("jewelrycraft", texture);
Minecraft.getMinecraft().renderEngine.bindTexture(blockTexture);
- int block = te.getBlockMetadata();
TileEntityJewelrsCraftingTable jt = (TileEntityJewelrsCraftingTable) te;
GL11.glPushMatrix();
- if (block == 0) GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
- else if (block == 1)
+ GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
+ try
+ {
+ int block = te.getBlockMetadata();
+ if (block == 1) GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
+ else if (block == 2)
+ {
+ GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
+ GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F);
+ }
+ else if (block == 3)
+ {
+ GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
+ GL11.glRotatef(180F, 1.0F, 0.0F, 1.0F);
+ }
+ }
+ catch (Exception e)
{
- GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
- GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
}
- else if (block == 2) GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F);
- else if (block == 3) GL11.glRotatef(180F, 1.0F, 0.0F, 1.0F);
modelTable.render((Entity) null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
if (jt != null)
@@ -55,7 +65,7 @@ public class TileEntityJewelrsCraftingTableRender extends TileEntitySpecialRende
GL11.glRotatef(180F, 1F, 0F, 0F);
GL11.glScalef(0.5F, 0.5F, 0.5F);
- GL11.glTranslatef(0.0F, -1.6F, 0.6F);
+ GL11.glTranslatef(0.55F, -1.5F, -0.45F);
GL11.glRotatef(jt.angle, 0F, 1F, 0F);
if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
else
@@ -93,34 +103,11 @@ public class TileEntityJewelrsCraftingTableRender extends TileEntitySpecialRende
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glPopMatrix();
}
- if (jt.hasModifier && jt.modifier.getIconIndex().getIconName() != "")
- {
- GL11.glPushMatrix();
- GL11.glDisable(GL11.GL_LIGHTING);
- EntityItem entityitem = new EntityItem(te.getWorldObj(), 0.0D, 0.0D, 0.0D, jt.modifier);
- entityitem.getEntityItem().stackSize = 1;
- entityitem.hoverStart = 0.0F;
-
- GL11.glRotatef(180F, 1F, 0F, 0F);
- GL11.glScalef(0.5F, 0.5F, 0.5F);
- GL11.glTranslatef(0.55F, -1.5F, -0.45F);
- GL11.glRotatef(jt.angle, 0F, 1F, 0F);
- if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
- else
- {
- GL11.glRotatef(180F, 0F, 1F, 0F);
- RenderManager.instance.options.fancyGraphics = true;
- RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
- RenderManager.instance.options.fancyGraphics = false;
- }
- GL11.glEnable(GL11.GL_LIGHTING);
- GL11.glPopMatrix();
- }
- if (jt.hasJewel && jt.jewel.getIconIndex().getIconName() != "")
+ if (jt.hasGem && jt.gem.getIconIndex().getIconName() != "")
{
GL11.glPushMatrix();
GL11.glDisable(GL11.GL_LIGHTING);
- EntityItem entityitem = new EntityItem(te.getWorldObj(), 0.0D, 0.0D, 0.0D, jt.jewel);
+ EntityItem entityitem = new EntityItem(te.getWorldObj(), 0.0D, 0.0D, 0.0D, jt.gem);
entityitem.getEntityItem().stackSize = 1;
entityitem.hoverStart = 0.0F;
diff --git a/java/darkknight/jewelrycraft/renders/TileEntityMolderRender.java b/java/darkknight/jewelrycraft/renders/TileEntityMolderRender.java
index eabd25c..ce11078 100644
--- a/java/darkknight/jewelrycraft/renders/TileEntityMolderRender.java
+++ b/java/darkknight/jewelrycraft/renders/TileEntityMolderRender.java
@@ -25,7 +25,6 @@ import net.minecraft.world.World;
public class TileEntityMolderRender extends TileEntitySpecialRenderer
{
ModelMolder modelMolder = new ModelMolder();
- String texture = "textures/tileentities/Molder.png";
@Override
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float scale)
@@ -33,20 +32,27 @@ public class TileEntityMolderRender extends TileEntitySpecialRenderer
GL11.glPushMatrix();
GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F);
TileEntityMolder me = (TileEntityMolder) te;
-
+ String texture = "textures/tileentities/Molder.png";
ResourceLocation blockTexture = new ResourceLocation("jewelrycraft", texture);
Minecraft.getMinecraft().renderEngine.bindTexture(blockTexture);
- int block = me.getBlockMetadata();
-
GL11.glPushMatrix();
- if (block == 0) GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
- else if (block == 1)
+ GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
+ try
+ {
+ int block = me.getBlockMetadata();
+ if (block == 1) GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
+ else if (block == 2){
+ GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
+ GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F);
+ }
+ else if (block == 3){
+ GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
+ GL11.glRotatef(180F, 1.0F, 0.0F, 1.0F);
+ }
+ }
+ catch (Exception e)
{
- GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
- GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
}
- else if (block == 2) GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F);
- else if (block == 3) GL11.glRotatef(180F, 1.0F, 0.0F, 1.0F);
modelMolder.render((Entity) null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
if (me != null)
{
diff --git a/java/darkknight/jewelrycraft/renders/TileEntityShadowEyeRender.java b/java/darkknight/jewelrycraft/renders/TileEntityShadowEyeRender.java
new file mode 100644
index 0000000..1365f37
--- /dev/null
+++ b/java/darkknight/jewelrycraft/renders/TileEntityShadowEyeRender.java
@@ -0,0 +1,80 @@
+package darkknight.jewelrycraft.renders;
+
+import net.minecraft.block.Block;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.renderer.OpenGlHelper;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.ResourceLocation;
+import net.minecraft.world.World;
+
+import org.lwjgl.opengl.GL11;
+
+import darkknight.jewelrycraft.model.ModelShadowEye;
+import darkknight.jewelrycraft.tileentity.TileEntityDisplayer;
+import darkknight.jewelrycraft.tileentity.TileEntityShadowEye;
+
+public class TileEntityShadowEyeRender extends TileEntitySpecialRenderer
+{
+ ModelShadowEye eye = new ModelShadowEye();
+
+ @Override
+ public void renderTileEntityAt(TileEntity te, double x, double y, double z, float scale)
+ {
+ GL11.glPushMatrix();
+ GL11.glTranslatef((float) x + 0.5F, (float) y + 1.6F, (float) z + 0.5F);
+
+ TileEntityShadowEye eyeS = (TileEntityShadowEye) te;
+
+ String texture = "textures/tileentities/ShadowEye" + eyeS.opening + ".png";
+ ResourceLocation blockTexture = new ResourceLocation("jewelrycraft", texture);
+ Minecraft.getMinecraft().renderEngine.bindTexture(blockTexture);
+
+ GL11.glPushMatrix();
+ GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
+ try
+ {
+ int block = te.getBlockMetadata();
+ if (block == 0) GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
+ else if (block == 1){
+ GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
+ GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F);
+ }
+ else if (block == 2){
+ GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
+ GL11.glRotatef(180F, 1.0F, 0.0F, 1.0F);
+ }
+ }
+ catch (Exception e)
+ {
+ }
+
+ try
+ {
+ EntityPlayer player = te.getWorldObj().getClosestPlayer(te.xCoord, te.yCoord, te.zCoord, 16D);
+ if (player != null) eye.render(player, te.xCoord, te.yCoord, te.zCoord, te.blockMetadata, eyeS.opening, 0.0625F);
+ }
+ catch (Exception e)
+ {
+ eye.render((Entity) null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
+ }
+
+ GL11.glPopMatrix();
+ GL11.glPopMatrix();
+ }
+
+ public void adjustLightFixture(World world, int i, int j, int k, Block block)
+ {
+ Tessellator tess = Tessellator.instance;
+ float brightness = block.getLightOpacity(world, i, j, k);
+ int skyLight = world.getLightBrightnessForSkyBlocks(i, j, k, 0);
+ int modulousModifier = skyLight % 65536;
+ int divModifier = skyLight / 65536;
+ tess.setColorOpaque_F(brightness, brightness, brightness);
+ OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) modulousModifier, divModifier);
+ }
+
+}
diff --git a/java/darkknight/jewelrycraft/renders/TileEntityShadowHandRender.java b/java/darkknight/jewelrycraft/renders/TileEntityShadowHandRender.java
new file mode 100644
index 0000000..c6595a4
--- /dev/null
+++ b/java/darkknight/jewelrycraft/renders/TileEntityShadowHandRender.java
@@ -0,0 +1,90 @@
+package darkknight.jewelrycraft.renders;
+
+import net.minecraft.block.Block;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.renderer.OpenGlHelper;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.client.renderer.entity.RenderManager;
+import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.item.EntityItem;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.ResourceLocation;
+import net.minecraft.world.World;
+
+import org.lwjgl.opengl.GL11;
+
+import darkknight.jewelrycraft.model.ModelShadowHand;
+import darkknight.jewelrycraft.tileentity.TileEntityShadowHand;
+
+public class TileEntityShadowHandRender extends TileEntitySpecialRenderer
+{
+ ModelShadowHand model = new ModelShadowHand();
+ String texture = "textures/tileentities/ShadowHand.png";
+
+ @Override
+ public void renderTileEntityAt(TileEntity te, double x, double y, double z, float scale)
+ {
+ GL11.glPushMatrix();
+ GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F);
+ TileEntityShadowHand tile = (TileEntityShadowHand) te;
+
+ ResourceLocation blockTexture = new ResourceLocation("jewelrycraft", texture);
+ Minecraft.getMinecraft().renderEngine.bindTexture(blockTexture);
+
+ GL11.glPushMatrix();
+ GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
+ try
+ {
+ int block = tile.getBlockMetadata();
+ if (block == 0) GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F);
+ else if (block == 1) GL11.glRotatef(225F, 0.0F, 1.0F, 0.0F);
+ else if (block == 2) GL11.glRotatef(270F, 0.0F, 1.0F, 0.0F);
+ else if (block == 3) GL11.glRotatef(315F, 0.0F, 1.0F, 0.0F);
+ else if (block == 4) GL11.glRotatef(0F, 0.0F, 1.0F, 0.0F);
+ else if (block == 5) GL11.glRotatef(45F, 0.0F, 1.0F, 0.0F);
+ else if (block == 6) GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
+ else if (block == 7) GL11.glRotatef(135F, 0.0F, 1.0F, 0.0F);
+ }
+ catch (Exception e)
+ {
+ }
+ if (tile != null) model.render((Entity) null, tile.grip, 0, 0, 0.0F, 0.0F, 0.0625F);
+ if (tile != null && tile.hasObject && tile.object != null && tile.object != new ItemStack(Item.getItemById(0), 0, 0))
+ {
+ GL11.glPushMatrix();
+ GL11.glDisable(GL11.GL_LIGHTING);
+ EntityItem entityitem = new EntityItem(te.getWorldObj(), 0.0D, 0.0D, 0.0D, tile.object);
+ entityitem.hoverStart = 0.0F;
+ tile.object.stackSize = 1;
+ GL11.glTranslatef(0.0F, 0.4F, 0.2F);
+ GL11.glRotatef(180F, 1F, 0F, 0F);
+ GL11.glRotatef(90F, 1F, 0F, 0F);
+ if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
+ else
+ {
+ GL11.glRotatef(180F, 0F, 1F, 0F);
+ RenderManager.instance.options.fancyGraphics = true;
+ RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
+ RenderManager.instance.options.fancyGraphics = false;
+ }
+ GL11.glEnable(GL11.GL_LIGHTING);
+ GL11.glPopMatrix();
+ }
+ GL11.glPopMatrix();
+ GL11.glPopMatrix();
+ }
+
+ public void adjustLightFixture(World world, int i, int j, int k, Block block)
+ {
+ Tessellator tess = Tessellator.instance;
+ float brightness = block.getLightOpacity(world, i, j, k);
+ int skyLight = world.getLightBrightnessForSkyBlocks(i, j, k, 0);
+ int modulousModifier = skyLight % 65536;
+ int divModifier = skyLight / 65536;
+ tess.setColorOpaque_F(brightness, brightness, brightness);
+ OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) modulousModifier, divModifier);
+ }
+} \ No newline at end of file
diff --git a/java/darkknight/jewelrycraft/renders/TileEntitySmelterRender.java b/java/darkknight/jewelrycraft/renders/TileEntitySmelterRender.java
index c8f94f7..0ce030e 100644
--- a/java/darkknight/jewelrycraft/renders/TileEntitySmelterRender.java
+++ b/java/darkknight/jewelrycraft/renders/TileEntitySmelterRender.java
@@ -1,7 +1,5 @@
package darkknight.jewelrycraft.renders;
-import java.io.IOException;
-
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.OpenGlHelper;
@@ -12,18 +10,16 @@ import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.init.Blocks;
-import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.util.ResourceLocation;
-import net.minecraft.world.World;
import org.lwjgl.opengl.GL11;
-import darkknight.jewelrycraft.block.BlockList;
-import darkknight.jewelrycraft.block.BlockMoltenMetal;
+import darkknight.jewelrycraft.JewelrycraftMod;
+import darkknight.jewelrycraft.config.ConfigHandler;
import darkknight.jewelrycraft.item.ItemList;
import darkknight.jewelrycraft.model.ModelSmelter;
import darkknight.jewelrycraft.tileentity.TileEntitySmelter;
@@ -32,7 +28,6 @@ import darkknight.jewelrycraft.util.JewelryNBT;
public class TileEntitySmelterRender extends TileEntitySpecialRenderer
{
ModelSmelter modelSmelter = new ModelSmelter();
- String texture = "textures/tileentities/Smelter.png";
public static final float p = 1 / 16, p3 = 3 * p, p13 = 13 * p, p15 = 15 * p;
@@ -41,70 +36,60 @@ public class TileEntitySmelterRender extends TileEntitySpecialRenderer
{
GL11.glPushMatrix();
GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F);
-
+ String texture = "textures/tileentities/Smelter.png";
ResourceLocation blockTexture = new ResourceLocation("jewelrycraft", texture);
Minecraft.getMinecraft().renderEngine.bindTexture(blockTexture);
TileEntitySmelter st = (TileEntitySmelter) te;
- int block = te.getBlockMetadata();
-
- GL11.glPushMatrix();
- if (block == 0) GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
- else if (block == 1)
+ GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
+ try
+ {
+ int block = te.getBlockMetadata();
+ if (block == 1) GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
+ else if (block == 2)
+ {
+ GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
+ GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F);
+ }
+ else if (block == 3)
+ {
+ GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
+ GL11.glRotatef(180F, 1.0F, 0.0F, 1.0F);
+ }
+ }
+ catch (Exception e)
{
- GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
- GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
}
- else if (block == 2) GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F);
- else if (block == 3) GL11.glRotatef(180F, 1.0F, 0.0F, 1.0F);
-
modelSmelter.render((Entity) null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
- GL11.glPushMatrix();
- GL11.glDisable(GL11.GL_LIGHTING);
- EntityItem entityitem = new EntityItem(te.getWorldObj(), 0.0D, 0.0D, 0.0D, new ItemStack(Blocks.lava));
- entityitem.getEntityItem().stackSize = 1;
- entityitem.hoverStart = 0.0F;
-
- GL11.glPushMatrix();
- GL11.glPopMatrix();
-
- Tessellator t = Tessellator.instance;
- float minU, minV, maxU, maxV;
- IIcon lava = Blocks.lava.getIcon(1, 0);
-
- t.setBrightness(15728864);
-
- int meta = te.getWorldObj().getBlockMetadata(te.xCoord, te.yCoord, te.zCoord);
-
- minU = lava.getMinU();
- minV = lava.getMinV();
- maxU = lava.getMaxU();
- maxV = lava.getMaxV();
- /*
- * maxU = lava.getInterpolatedU(10); maxV = lava.getInterpolatedV(14);
- */
-
- t.startDrawingQuads();
-
- t.addVertexWithUV(te.xCoord, te.yCoord + p15, te.zCoord, minU, minV);
- t.addVertexWithUV(te.xCoord, te.yCoord + p15, te.zCoord + 1, minU, maxV);
- t.addVertexWithUV(te.xCoord + 1, te.yCoord + p15, te.zCoord + 1, maxU, maxV);
- t.addVertexWithUV(te.xCoord + 1, te.yCoord + p15, te.zCoord, maxU, minV);
-
- t.draw();
-
- GL11.glTranslatef(-0F, 1.25F, -0.345F);
- GL11.glScalef(1.2F, 1.0F, 1.7F);
- GL11.glRotatef(90F, 1F, 0F, 0f);
- RenderItem.renderInFrame = true;
- RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
- RenderItem.renderInFrame = false;
+ if (scale != 0)
+ {
+ GL11.glPushMatrix();
+ GL11.glDisable(GL11.GL_LIGHTING);
+ if (JewelrycraftMod.fancyRender)
+ {
+ GL11.glEnable(GL11.GL_BLEND);
+ OpenGlHelper.glBlendFunc(1, 1, 0, 0);
+ }
+ EntityItem entityitem = new EntityItem(te.getWorldObj(), 0.0D, 0.0D, 0.0D, new ItemStack(Blocks.lava, 1, 1));
+ entityitem.hoverStart = 0.0F;
+ GL11.glTranslatef(-0F, 1.25F, -0.345F);
+ GL11.glScalef(1.2F, 1.0F, 1.7F);
+ GL11.glRotatef(90F, 1F, 0F, 0f);
+ RenderItem.renderInFrame = true;
+ int i = 15728880;
+ int j = i % 65536;
+ int k = i / 65536;
+ OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) j / 1.0F, (float) k / 1.0F);
+ RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
+ RenderItem.renderInFrame = false;
+ if (JewelrycraftMod.fancyRender) GL11.glDisable(GL11.GL_BLEND);
+ GL11.glEnable(GL11.GL_LIGHTING);
+ GL11.glPopMatrix();
+ }
- GL11.glEnable(GL11.GL_LIGHTING);
- GL11.glPopMatrix();
if (st != null)
{
- if (st.hasMetal && st.metal != null && st.metal != new ItemStack(Item.getItemById(0), 0, 0) && st.metal.getIconIndex() != null && st.metal.getIconIndex().getIconName() != "")
+ if (st.hasMetal && st.metal != null && st.metal.getItem() != null)
{
GL11.glPushMatrix();
GL11.glDisable(GL11.GL_LIGHTING);
@@ -127,40 +112,34 @@ public class TileEntitySmelterRender extends TileEntitySpecialRenderer
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glPopMatrix();
}
- if (st.hasMoltenMetal && st.moltenMetal != null && Item.getIdFromItem(st.moltenMetal.getItem()) > 0 && !st.moltenMetal.equals(new ItemStack(Item.getItemById(0), 0, 0)))
+ if (st.hasMoltenMetal && st.moltenMetal != null && st.moltenMetal.getItem() != null)
{
GL11.glPushMatrix();
GL11.glDisable(GL11.GL_LIGHTING);
+ if (JewelrycraftMod.fancyRender)
+ {
+ GL11.glEnable(GL11.GL_BLEND);
+ OpenGlHelper.glBlendFunc(1, 1, 0, 0);
+ }
ItemStack metal = new ItemStack(ItemList.metal);
- JewelryNBT.addMetal(metal, new ItemStack(st.moltenMetal.getItem(), 1, st.moltenMetal.getItemDamage()));
+ ItemStack stack = new ItemStack(st.moltenMetal.getItem(), 1, st.moltenMetal.getItemDamage());
+ if (Item.getIdFromItem(stack.getItem()) == Block.getIdFromBlock(Blocks.stained_glass) || Item.getIdFromItem(stack.getItem()) == Block.getIdFromBlock(Blocks.stained_glass_pane) || Item.getIdFromItem(stack.getItem()) == Block.getIdFromBlock(Blocks.stained_hardened_clay) || Item.getIdFromItem(stack.getItem()) == Block.getIdFromBlock(Blocks.wool) || Item.getIdFromItem(stack.getItem()) == Block.getIdFromBlock(Blocks.carpet)) stack.setItemDamage(15 - stack.getItemDamage());
+ JewelryNBT.addMetal(metal, stack);
EntityItem moltenMetal = new EntityItem(te.getWorldObj(), 0.0D, 0.0D, 0.0D, metal);
moltenMetal.getEntityItem().stackSize = 1;
moltenMetal.hoverStart = 0.0F;
- GL11.glTranslatef(-0F, 1.05f - .4F * st.quantity, -0.14F);
- GL11.glScalef(0.72F, 1F, 0.85F);
+ GL11.glTranslatef(-0F, 1.00f - .4F * st.quantity, -0.14F);
+ GL11.glScalef(0.71F, 1F, 0.84F);
GL11.glRotatef(90F, 1F, 0F, 0f);
RenderItem.renderInFrame = true;
RenderManager.instance.renderEntityWithPosYaw(moltenMetal, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
RenderItem.renderInFrame = false;
+ if (JewelrycraftMod.fancyRender) GL11.glDisable(GL11.GL_BLEND);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glPopMatrix();
}
}
-
- GL11.glPopMatrix();
GL11.glPopMatrix();
}
-
- public void adjustLightFixture(World world, int i, int j, int k, Block block)
- {
- Tessellator tess = Tessellator.instance;
- float brightness = block.getLightOpacity(world, i, j, k);
- int skyLight = world.getLightBrightnessForSkyBlocks(i, j, k, 0);
- int modulousModifier = skyLight % 65536;
- int divModifier = skyLight / 65536;
- tess.setColorOpaque_F(brightness, brightness, brightness);
- OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) modulousModifier, divModifier);
- }
-
}
diff --git a/java/darkknight/jewelrycraft/tileentity/TileEntityAltar.java b/java/darkknight/jewelrycraft/tileentity/TileEntityAltar.java
index 4226471..6a43cb3 100644
--- a/java/darkknight/jewelrycraft/tileentity/TileEntityAltar.java
+++ b/java/darkknight/jewelrycraft/tileentity/TileEntityAltar.java
@@ -70,7 +70,7 @@ public class TileEntityAltar extends TileEntity
List entitiesN = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(xCoord - 0.5D, yCoord + 1D, zCoord - 0.5D, xCoord + 1.5D, yCoord + 2D, zCoord + 1.5D));
if (object.getUnlocalizedName().contains("ring"))
{
- if (JewelryNBT.isJewelX(object, new ItemStack(Items.ender_pearl)) && JewelryNBT.dimension(object) != -2 && JewelryNBT.playerPosX(object) != -1 && JewelryNBT.playerPosY(object) != -1 && JewelryNBT.playerPosZ(object) != -1)
+ if (JewelryNBT.isGemX(object, new ItemStack(Items.ender_pearl)) && JewelryNBT.dimension(object) != -2 && JewelryNBT.playerPosX(object) != -1 && JewelryNBT.playerPosY(object) != -1 && JewelryNBT.playerPosZ(object) != -1)
{
double posX = JewelryNBT.playerPosX(object), posY = JewelryNBT.playerPosY(object), posZ = JewelryNBT.playerPosZ(object);
int dimension = JewelryNBT.dimension(object);
@@ -111,7 +111,7 @@ public class TileEntityAltar extends TileEntity
}
else if (object.getUnlocalizedName().contains("necklace"))
{
- if (JewelryNBT.isJewelX(object, new ItemStack(Items.ender_pearl)) && JewelryNBT.dimension(object) != -2 && JewelryNBT.playerPosX(object) != -1 && JewelryNBT.playerPosY(object) != -1 && JewelryNBT.playerPosZ(object) != -1)
+ if (JewelryNBT.isGemX(object, new ItemStack(Items.ender_pearl)) && JewelryNBT.dimension(object) != -2 && JewelryNBT.playerPosX(object) != -1 && JewelryNBT.playerPosY(object) != -1 && JewelryNBT.playerPosZ(object) != -1)
{
double posX = JewelryNBT.playerPosX(object), posY = JewelryNBT.playerPosY(object), posZ = JewelryNBT.playerPosZ(object);
int dimension = JewelryNBT.dimension(object);
diff --git a/java/darkknight/jewelrycraft/tileentity/TileEntityDisplayer.java b/java/darkknight/jewelrycraft/tileentity/TileEntityDisplayer.java
index d027e6a..7a678e2 100644
--- a/java/darkknight/jewelrycraft/tileentity/TileEntityDisplayer.java
+++ b/java/darkknight/jewelrycraft/tileentity/TileEntityDisplayer.java
@@ -1,5 +1,7 @@
package darkknight.jewelrycraft.tileentity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.inventory.IInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@@ -13,15 +15,16 @@ public class TileEntityDisplayer extends TileEntity
public float ringTranslation1, ringTranslation2, ringTranslation3, rotAngle;
public boolean isDescending1, isDescending2, isDescending3, isDirty, hasObject;
public ItemStack object;
- public int quantity;
+ public int quantity, infoIndex, timer = 0;
public TileEntityDisplayer()
{
- this.ringTranslation1 = 0;
- this.ringTranslation2 = 0;
- this.ringTranslation3 = 0;
+ this.ringTranslation1 = 0.6f;
+ this.ringTranslation2 = 0.3f;
+ this.ringTranslation3 = 0.0f;
this.rotAngle = 0;
this.quantity = 0;
+ this.infoIndex = 1;
this.isDescending1 = false;
this.isDescending2 = false;
this.isDescending3 = false;
@@ -39,6 +42,7 @@ public class TileEntityDisplayer extends TileEntity
nbt.setFloat("translation3", ringTranslation3);
nbt.setFloat("angle", rotAngle);
nbt.setInteger("quantity", quantity);
+ nbt.setInteger("infoIndex", infoIndex);
nbt.setBoolean("descending1", isDescending1);
nbt.setBoolean("descending2", isDescending2);
nbt.setBoolean("descending3", isDescending3);
@@ -57,6 +61,7 @@ public class TileEntityDisplayer extends TileEntity
this.ringTranslation3 = nbt.getFloat("translation3");
this.rotAngle = nbt.getFloat("angle");
this.quantity = nbt.getInteger("quantity");
+ this.infoIndex = nbt.getInteger("infoIndex");
this.isDescending1 = nbt.getBoolean("descending1");
this.isDescending2 = nbt.getBoolean("descending2");
this.isDescending3 = nbt.getBoolean("descending3");
@@ -90,6 +95,11 @@ public class TileEntityDisplayer extends TileEntity
if (isDescending3) ringTranslation3 -= 0.03;
if (rotAngle < 360F) rotAngle += 6F;
if (rotAngle >= 360F) rotAngle = 0F;
+ timer++;
+ if(timer >= 20){
+ infoIndex++;
+ timer = 0;
+ }
}
public Packet getDescriptionPacket()
diff --git a/java/darkknight/jewelrycraft/tileentity/TileEntityHandPedestal.java b/java/darkknight/jewelrycraft/tileentity/TileEntityHandPedestal.java
new file mode 100644
index 0000000..f42ad75
--- /dev/null
+++ b/java/darkknight/jewelrycraft/tileentity/TileEntityHandPedestal.java
@@ -0,0 +1,68 @@
+package darkknight.jewelrycraft.tileentity;
+
+import java.util.List;
+
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.network.NetworkManager;
+import net.minecraft.network.Packet;
+import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
+import net.minecraft.tileentity.TileEntity;
+
+public class TileEntityHandPedestal extends TileEntity
+{
+ public boolean isDirty, hasObject;
+ public ItemStack object = new ItemStack(Item.getItemById(0), 0, 0);
+
+ public TileEntityHandPedestal()
+ {
+ this.isDirty = false;
+ this.hasObject = false;
+ }
+
+ @Override
+ public void writeToNBT(NBTTagCompound nbt)
+ {
+ super.writeToNBT(nbt);
+ nbt.setBoolean("hasObject", hasObject);
+ NBTTagCompound tag = new NBTTagCompound();
+ this.object.writeToNBT(tag);
+ nbt.setTag("object", tag);
+ }
+
+ @Override
+ public void readFromNBT(NBTTagCompound nbt)
+ {
+ super.readFromNBT(nbt);
+ this.hasObject = nbt.getBoolean("hasObject");
+ this.object = new ItemStack(Item.getItemById(0), 0, 0);
+ this.object.readFromNBT(nbt.getCompoundTag("object"));
+ }
+
+ @Override
+ public void updateEntity()
+ {
+ super.updateEntity();
+ if (isDirty)
+ {
+ worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
+ isDirty = false;
+ }
+ //System.out.println(Item.getIdFromItem(object.getItem()));
+ }
+
+ public Packet getDescriptionPacket()
+ {
+ NBTTagCompound nbttagcompound = new NBTTagCompound();
+ this.writeToNBT(nbttagcompound);
+ return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 1, nbttagcompound);
+ }
+
+ @Override
+ public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet)
+ {
+ readFromNBT(packet.func_148857_g());
+ worldObj.func_147479_m(xCoord, yCoord, zCoord);
+ }
+}
diff --git a/java/darkknight/jewelrycraft/tileentity/TileEntityJewelrsCraftingTable.java b/java/darkknight/jewelrycraft/tileentity/TileEntityJewelrsCraftingTable.java
index fd2290a..5e91624 100644
--- a/java/darkknight/jewelrycraft/tileentity/TileEntityJewelrsCraftingTable.java
+++ b/java/darkknight/jewelrycraft/tileentity/TileEntityJewelrsCraftingTable.java
@@ -1,5 +1,8 @@
package darkknight.jewelrycraft.tileentity;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.multiplayer.WorldClient;
+import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@@ -7,28 +10,31 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.Packet;
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.MathHelper;
import darkknight.jewelrycraft.config.ConfigHandler;
+import darkknight.jewelrycraft.particles.EntityShadowsFX;
import darkknight.jewelrycraft.util.JewelryNBT;
public class TileEntityJewelrsCraftingTable extends TileEntity
{
- public boolean hasJewelry, hasModifier, hasEndItem, isDirty, hasJewel;
- public ItemStack jewelry, modifier, endItem, jewel;
- public int timer, effect;
+ public boolean hasJewelry, hasEndItem, isDirty, hasGem, crafting;
+ public ItemStack jewelry, endItem, gem;
+ public int carving, effect;
public float angle;
public TileEntityJewelrsCraftingTable()
{
this.jewelry = new ItemStack(Item.getItemById(0), 0, 0);
- this.modifier = new ItemStack(Item.getItemById(0), 0, 0);
this.endItem = new ItemStack(Item.getItemById(0), 0, 0);
- this.jewel = new ItemStack(Item.getItemById(0), 0, 0);
+ this.gem = new ItemStack(Item.getItemById(0), 0, 0);
this.hasJewelry = false;
- this.hasModifier = false;
this.hasEndItem = false;
- this.hasJewel = false;
- this.timer = 0;
+ this.hasGem = false;
+ this.crafting = false;
+ this.carving = 0;
this.effect = 0;
this.angle = 0;
this.isDirty = false;
@@ -39,25 +45,22 @@ public class TileEntityJewelrsCraftingTable extends TileEntity
{
super.writeToNBT(nbt);
nbt.setBoolean("hasJewelry", hasJewelry);
- nbt.setBoolean("hasModifier", hasModifier);
nbt.setBoolean("hasEndItem", hasEndItem);
- nbt.setBoolean("hasJewel", hasJewel);
- nbt.setInteger("timer", timer);
+ nbt.setBoolean("hasJewel", hasGem);
+ nbt.setBoolean("crafting", crafting);
+ nbt.setInteger("timer", carving);
nbt.setInteger("effect", effect);
nbt.setFloat("angle", angle);
- NBTTagCompound tag = new NBTTagCompound();
NBTTagCompound tag1 = new NBTTagCompound();
NBTTagCompound tag2 = new NBTTagCompound();
NBTTagCompound tag3 = new NBTTagCompound();
- this.jewelry.writeToNBT(tag);
- nbt.setTag("jewelry", tag);
- this.modifier.writeToNBT(tag1);
- nbt.setTag("modifier", tag1);
+ this.jewelry.writeToNBT(tag1);
+ nbt.setTag("jewelry", tag1);
this.endItem.writeToNBT(tag2);
nbt.setTag("endItem", tag2);
- this.jewel.writeToNBT(tag3);
+ this.gem.writeToNBT(tag3);
nbt.setTag("jewel", tag3);
}
@@ -66,21 +69,19 @@ public class TileEntityJewelrsCraftingTable extends TileEntity
{
super.readFromNBT(nbt);
this.hasJewelry = nbt.getBoolean("hasJewelry");
- this.hasModifier = nbt.getBoolean("hasModifier");
this.hasEndItem = nbt.getBoolean("hasEndItem");
- this.hasJewel = nbt.getBoolean("hasJewel");
+ this.hasGem = nbt.getBoolean("hasJewel");
+ this.crafting = nbt.getBoolean("crafting");
- this.timer = nbt.getInteger("timer");
+ this.carving = nbt.getInteger("timer");
this.effect = nbt.getInteger("effect");
this.angle = nbt.getFloat("angle");
this.jewelry = new ItemStack(Item.getItemById(0), 0, 0);
this.jewelry.readFromNBT(nbt.getCompoundTag("jewelry"));
- this.modifier = new ItemStack(Item.getItemById(0), 0, 0);
- this.modifier.readFromNBT(nbt.getCompoundTag("modifier"));
this.endItem = new ItemStack(Item.getItemById(0), 0, 0);
this.endItem.readFromNBT(nbt.getCompoundTag("endItem"));
- this.jewel = new ItemStack(Item.getItemById(0), 0, 0);
- this.jewel.readFromNBT(nbt.getCompoundTag("jewel"));
+ this.gem = new ItemStack(Item.getItemById(0), 0, 0);
+ this.gem.readFromNBT(nbt.getCompoundTag("jewel"));
}
@Override
@@ -94,34 +95,46 @@ public class TileEntityJewelrsCraftingTable extends TileEntity
}
if (angle < 360F) angle += 3F;
else angle = 0F;
- if (this.hasJewelry && (this.hasModifier || this.hasJewel) && !this.hasEndItem)
+
+ if (carving > 0) System.out.println(carving);
+ if (this.hasJewelry && this.hasGem && !this.hasEndItem && crafting)
{
- if (timer > 0)
+ if (carving > 0) carving--;
+ if (crafting)
{
- timer--;
- for (int l = 0; l < ConfigHandler.jewelryCraftingTime / (timer + 2); ++l)
+ for (int l = 0; l < ConfigHandler.jewelryCraftingTime / (carving + 2); ++l)
{
- if (this.getBlockMetadata() == 0) this.worldObj.spawnParticle("witchMagic", xCoord + 0.5F, (double) yCoord + 0.8F, zCoord + 0.2F, 0.0D, 0.0D, 0.0D);
- if (this.getBlockMetadata() == 1) this.worldObj.spawnParticle("witchMagic", xCoord + 0.8F, (double) yCoord + 0.8F, zCoord + 0.5F, 0.0D, 0.0D, 0.0D);
- if (this.getBlockMetadata() == 2) this.worldObj.spawnParticle("witchMagic", xCoord + 0.5F, (double) yCoord + 0.8F, zCoord + 0.8F, 0.0D, 0.0D, 0.0D);
- if (this.getBlockMetadata() == 3) this.worldObj.spawnParticle("witchMagic", xCoord + 0.2F, (double) yCoord + 0.8F, zCoord + 0.5F, 0.0D, 0.0D, 0.0D);
+ if (this.getBlockMetadata() == 0) this.worldObj.spawnParticle("instantSpell", xCoord + 0.5F, (double) yCoord + 0.8F, zCoord + 0.2F, 0.0D, 0.0D, 0.0D);
+ if (this.getBlockMetadata() == 1) this.worldObj.spawnParticle("instantSpell", xCoord + 0.8F, (double) yCoord + 0.8F, zCoord + 0.5F, 0.0D, 0.0D, 0.0D);
+ if (this.getBlockMetadata() == 2) this.worldObj.spawnParticle("instantSpell", xCoord + 0.5F, (double) yCoord + 0.8F, zCoord + 0.8F, 0.0D, 0.0D, 0.0D);
+ if (this.getBlockMetadata() == 3) this.worldObj.spawnParticle("instantSpell", xCoord + 0.2F, (double) yCoord + 0.8F, zCoord + 0.5F, 0.0D, 0.0D, 0.0D);
+
}
}
- if (timer == 0)
+ if (carving == 0)
{
this.hasEndItem = true;
this.endItem = jewelry.copy();
- if (hasModifier && modifier != new ItemStack(Item.getItemById(0), 0, 0)) JewelryNBT.addModifier(endItem, modifier);
- if (hasJewel && jewel != new ItemStack(Item.getItemById(0), 0, 0)) JewelryNBT.addJewel(endItem, jewel);
- if (hasJewel && hasModifier && JewelryNBT.isJewelX(endItem, new ItemStack(Items.nether_star)) && JewelryNBT.isModifierX(endItem, new ItemStack(Items.book))) JewelryNBT.addMode(endItem, "Disenchant");
- if (hasModifier && JewelryNBT.isModifierEffectType(endItem)) JewelryNBT.addMode(endItem, "Activated");
+ if (hasGem && gem != new ItemStack(Item.getItemById(0), 0, 0))
+ {
+ if (!JewelryNBT.hasTag(jewelry, "gem"))
+ {
+ JewelryNBT.addGem(endItem, gem);
+ this.hasGem = false;
+ this.gem = new ItemStack(Item.getItemById(0), 0, 0);
+ }
+ else
+ {
+ ItemStack aux = JewelryNBT.gem(jewelry);
+ JewelryNBT.addGem(endItem, gem);
+ gem = aux.copy();
+ }
+ }
this.hasJewelry = false;
this.jewelry = new ItemStack(Item.getItemById(0), 0, 0);
- this.hasModifier = false;
- this.modifier = new ItemStack(Item.getItemById(0), 0, 0);
- this.hasJewel = false;
- this.jewel = new ItemStack(Item.getItemById(0), 0, 0);
- timer = -1;
+ carving = -1;
+ crafting = false;
+ isDirty = true;
}
}
}
diff --git a/java/darkknight/jewelrycraft/tileentity/TileEntityShadowEye.java b/java/darkknight/jewelrycraft/tileentity/TileEntityShadowEye.java
new file mode 100644
index 0000000..0aff8df
--- /dev/null
+++ b/java/darkknight/jewelrycraft/tileentity/TileEntityShadowEye.java
@@ -0,0 +1,275 @@
+package darkknight.jewelrycraft.tileentity;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import net.minecraft.client.Minecraft;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.network.NetworkManager;
+import net.minecraft.network.Packet;
+import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+import darkknight.jewelrycraft.block.BlockHandPedestal;
+import darkknight.jewelrycraft.block.BlockList;
+import darkknight.jewelrycraft.particles.EntityShadowsFX;
+import darkknight.jewelrycraft.util.JewelryNBT;
+import darkknight.jewelrycraft.util.PlayerUtils;
+
+public class TileEntityShadowEye extends TileEntity
+{
+ public int opening, timer, t = 20;
+ public boolean active;
+ public int field_145926_a;
+ public float field_145933_i;
+ public float field_145931_j;
+ public float field_145930_m;
+ public float field_145927_n;
+ public ArrayList<ItemStack> pedestalItems = new ArrayList<ItemStack>();
+
+ public TileEntityShadowEye()
+ {
+ this.opening = 1;
+ this.timer = 20;
+ this.active = false;
+ }
+
+ @Override
+ public void writeToNBT(NBTTagCompound nbt)
+ {
+ super.writeToNBT(nbt);
+ nbt.setInteger("opening", opening);
+ nbt.setInteger("timer", timer);
+ nbt.setBoolean("active", active);
+ }
+
+ @Override
+ public void readFromNBT(NBTTagCompound nbt)
+ {
+ super.readFromNBT(nbt);
+ this.opening = nbt.getInteger("opening");
+ this.timer = nbt.getInteger("timer");
+ this.active = nbt.getBoolean("active");
+ }
+
+ @Override
+ public void updateEntity()
+ {
+ super.updateEntity();
+ boolean valid = isValidStructure(worldObj, xCoord, yCoord, zCoord, blockMetadata);
+ if (active) timer--;
+ if (opening == 4 && timer <= 0)
+ {
+ active = false;
+ }
+ if (!active && timer <= 0 && opening != 1)
+ {
+ if (t > 0) t--;
+ if (t <= 0)
+ {
+ opening--;
+ t = 20;
+ }
+ }
+ if (opening == 4)
+ {
+ addData(worldObj, xCoord, yCoord, zCoord);
+ TileEntityHandPedestal target = (TileEntityHandPedestal) worldObj.getTileEntity(xCoord, yCoord - 3, zCoord);
+ if (target != null && target.object != null && target.object.getItem() != null) JewelryNBT.addModifiers(target.object, pedestalItems);
+ }
+ if (active && timer <= 0)
+ {
+ if (opening < 4)
+ {
+ opening++;
+ timer = 20;
+ }
+ if (valid && opening == 4) timer = 200;
+ else if (!valid)
+ {
+ active = false;
+ timer = -1;
+ }
+ }
+ EntityPlayer player1 = this.worldObj.getClosestPlayer(xCoord, yCoord, zCoord, 7F);
+ if (player1 != null)
+ {
+ NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player1, "Jewelrycraft");
+ persistTag.setBoolean("nearStartedRitual", false);
+ }
+ if (active && opening == 4)
+ {
+ float din = 6F;
+ int i = Minecraft.getMinecraft().gameSettings.particleSetting;
+
+ for (float x = -din; x <= din; x += 0.2F)
+ for (float z = -din; z <= din; z += 0.2F)
+ if (x * x + z * z >= din * din - 1 && x * x + z * z <= din * din + 1) Minecraft.getMinecraft().effectRenderer.addEffect(new EntityShadowsFX(worldObj, xCoord + x + 0.5F, yCoord - 0.5F, zCoord + z + 0.5F, 15F, 0.04F - 0.01F * i));
+
+ for (int l = 0; l <= 2 - i; l++)
+ worldObj.spawnParticle("depthsuspend", xCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), yCoord - 2F + worldObj.rand.nextFloat(), zCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), 0, 0, 0);
+ EntityPlayer player = this.worldObj.getClosestPlayer(xCoord, yCoord, zCoord, 6F);
+ if (player != null)
+ {
+ NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft");
+ persistTag.setBoolean("nearStartedRitual", true);
+ }
+ }
+ try
+ {
+ // System.out.println(pedestalItems);
+ }
+ catch (Exception e)
+ {
+ // System.out.println(e);
+ }
+ }
+
+ public boolean isValidStructure(World world, int x, int y, int z, int metadata)
+ {
+ if (world.getBlockMetadata(x, y, z) == 0 || world.getBlockMetadata(x, y, z) == 2)
+ {
+ // Layers from top to bottom
+ // 1st Layer
+ if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false;
+ if (world.getBlock(x + 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x + 1, y + 1, z) != 5) return false;
+ if (world.getBlock(x - 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x - 1, y + 1, z) != 5) return false;
+ // 2nd Layer
+ if (world.getBlock(x + 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 2, y, z) != 1) return false;
+ if (world.getBlock(x + 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 1, y, z) != 4) return false;
+ if (world.getBlock(x - 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 1, y, z) != 5) return false;
+ if (world.getBlock(x - 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 2, y, z) != 0) return false;
+ // 3rd Layer
+ if (world.getBlock(x + 2, y - 1, z) != Blocks.stonebrick) return false;
+ if (world.getBlock(x - 2, y - 1, z) != Blocks.stonebrick) return false;
+ // 4th Layer
+ if (world.getBlock(x + 2, y - 2, z) != Blocks.stonebrick) return false;
+ if (world.getBlock(x - 2, y - 2, z) != Blocks.stonebrick) return false;
+ // 5th Layer
+ if (world.getBlock(x + 2, y - 3, z) != Blocks.stonebrick) return false;
+ if (world.getBlock(x - 2, y - 3, z) != Blocks.stonebrick) return false;
+ }
+ else if (world.getBlockMetadata(x, y, z) == 1 || world.getBlockMetadata(x, y, z) == 3)
+ {
+ // Layers from top to bottom
+ // 1st Layer
+ if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false;
+ if (world.getBlock(x, y + 1, z + 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z + 1) != 5) return false;
+ if (world.getBlock(x, y + 1, z - 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z - 1) != 5) return false;
+ // 2nd Layer
+ if (world.getBlock(x, y, z + 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 2) != 3) return false;
+ if (world.getBlock(x, y, z + 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 1) != 6) return false;
+ if (world.getBlock(x, y, z - 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 1) != 7) return false;
+ if (world.getBlock(x, y, z - 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 2) != 2) return false;
+ // 3rd Layer
+ if (world.getBlock(x, y - 1, z + 2) != Blocks.stonebrick) return false;
+ if (world.getBlock(x, y - 1, z - 2) != Blocks.stonebrick) return false;
+ // 4th Layer
+ if (world.getBlock(x, y - 2, z + 2) != Blocks.stonebrick) return false;
+ if (world.getBlock(x, y - 2, z - 2) != Blocks.stonebrick) return false;
+ // 5th Layer
+ if (world.getBlock(x, y - 3, z + 2) != Blocks.stonebrick) return false;
+ if (world.getBlock(x, y - 3, z - 2) != Blocks.stonebrick) return false;
+ }
+ // 3rd Layer
+ if (world.getBlock(x - 4, y - 1, z - 4) != BlockList.shadowBlock) return false;
+ if (world.getBlock(x - 4, y - 1, z + 4) != BlockList.shadowBlock) return false;
+ if (world.getBlock(x + 4, y - 1, z - 4) != BlockList.shadowBlock) return false;
+ if (world.getBlock(x + 4, y - 1, z + 4) != BlockList.shadowBlock) return false;
+ // 4th Layer
+ if (world.getBlock(x - 4, y - 2, z - 4) != Blocks.stonebrick) return false;
+ if (world.getBlock(x - 4, y - 2, z + 4) != Blocks.stonebrick) return false;
+ if (world.getBlock(x + 4, y - 2, z - 4) != Blocks.stonebrick) return false;
+ if (world.getBlock(x + 4, y - 2, z + 4) != Blocks.stonebrick) return false;
+ // 5th Layer
+ // Pillars
+ if (world.getBlock(x - 4, y - 3, z - 4) != Blocks.stonebrick) return false;
+ if (world.getBlock(x - 4, y - 3, z + 4) != Blocks.stonebrick) return false;
+ if (world.getBlock(x + 4, y - 3, z - 4) != Blocks.stonebrick) return false;
+ if (world.getBlock(x + 4, y - 3, z + 4) != Blocks.stonebrick) return false;
+ // Pedestals
+ if (!(world.getBlock(x, y - 3, z) instanceof BlockHandPedestal)) return false;
+ if (world.getBlock(x - 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z + 2) != 1) return false;
+ if (world.getBlock(x - 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x - 5, y - 3, z) != 2) return false;
+ if (world.getBlock(x - 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z - 2) != 3) return false;
+
+ if (world.getBlock(x - 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z - 4) != 3) return false;
+ if (world.getBlock(x, y - 3, z - 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z - 5) != 4) return false;
+ if (world.getBlock(x + 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z - 4) != 5) return false;
+
+ if (world.getBlock(x + 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z - 2) != 5) return false;
+ if (world.getBlock(x + 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x + 5, y - 3, z) != 6) return false;
+ if (world.getBlock(x + 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z + 2) != 7) return false;
+
+ if (world.getBlock(x + 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z + 4) != 7) return false;
+ if (world.getBlock(x, y - 3, z + 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z + 5) != 0) return false;
+ if (world.getBlock(x - 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z + 4) != 1) return false;
+ return true;
+ }
+
+ public void addData(World world, int x, int y, int z)
+ {
+ pedestalItems.clear();
+ // addPedestalInfo((TileEntityHandPedestal) world.getTileEntity(x, y -
+ // 3, z));
+ addPedestalInfo((TileEntityHandPedestal) world.getTileEntity(x + 2, y - 3, z - 4));
+ addPedestalInfo((TileEntityHandPedestal) world.getTileEntity(x - 4, y - 3, z + 2));
+ addPedestalInfo((TileEntityHandPedestal) world.getTileEntity(x, y - 3, z - 5));
+ addPedestalInfo((TileEntityHandPedestal) world.getTileEntity(x - 2, y - 3, z - 4));
+ addPedestalInfo((TileEntityHandPedestal) world.getTileEntity(x - 4, y - 3, z - 2));
+ addPedestalInfo((TileEntityHandPedestal) world.getTileEntity(x - 5, y - 3, z));
+ addPedestalInfo((TileEntityHandPedestal) world.getTileEntity(x + 4, y - 3, z - 2));
+ addPedestalInfo((TileEntityHandPedestal) world.getTileEntity(x + 5, y - 3, z));
+ addPedestalInfo((TileEntityHandPedestal) world.getTileEntity(x + 4, y - 3, z + 2));
+ addPedestalInfo((TileEntityHandPedestal) world.getTileEntity(x + 2, y - 3, z + 4));
+ addPedestalInfo((TileEntityHandPedestal) world.getTileEntity(x, y - 3, z + 5));
+ addPedestalInfo((TileEntityHandPedestal) world.getTileEntity(x - 2, y - 3, z + 4));
+ }
+
+ public void addPedestalInfo(TileEntityHandPedestal pedestal)
+ {
+ System.out.println(pedestalItems);
+ if (pedestal != null && pedestal.object != null && pedestal.object.getItem() != null)
+ {
+ if (pedestalItems.isEmpty()) pedestalItems.add(pedestal.object.copy());
+ else
+ {
+ boolean hasItem = false;
+ int index = 0;
+ for (int ind = 0; ind < pedestalItems.size() && !hasItem; ind++)
+ {
+ if (pedestal.object.getItem().equals(pedestalItems.get(ind).getItem()) && pedestal.object.getItemDamage() == pedestalItems.get(ind).getItemDamage())
+ {
+ index = ind;
+ hasItem = true;
+ if (pedestal.object.hasTagCompound() && pedestalItems.get(ind).hasTagCompound() && !pedestal.object.getTagCompound().equals(pedestalItems.get(ind).getTagCompound())) hasItem = false;
+ }
+ }
+ if (!hasItem) pedestalItems.add(pedestal.object.copy());
+ else
+ {
+ ItemStack object = pedestalItems.get(index).copy();
+ object.stackSize++;
+ pedestalItems.set(index, object);
+ }
+ }
+ }
+ }
+
+ public Packet getDescriptionPacket()
+ {
+ NBTTagCompound nbttagcompound = new NBTTagCompound();
+ this.writeToNBT(nbttagcompound);
+ return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 1, nbttagcompound);
+ }
+
+ @Override
+ public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet)
+ {
+ readFromNBT(packet.func_148857_g());
+ worldObj.func_147479_m(xCoord, yCoord, zCoord);
+ }
+}
diff --git a/java/darkknight/jewelrycraft/tileentity/TileEntityShadowHand.java b/java/darkknight/jewelrycraft/tileentity/TileEntityShadowHand.java
new file mode 100644
index 0000000..1a274ec
--- /dev/null
+++ b/java/darkknight/jewelrycraft/tileentity/TileEntityShadowHand.java
@@ -0,0 +1,74 @@
+package darkknight.jewelrycraft.tileentity;
+
+import java.util.List;
+
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.network.NetworkManager;
+import net.minecraft.network.Packet;
+import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
+import net.minecraft.tileentity.TileEntity;
+
+public class TileEntityShadowHand extends TileEntity
+{
+ public boolean isDirty, hasObject;
+ public ItemStack object = new ItemStack(Item.getItemById(0), 0, 0);
+ public float grip;
+
+ public TileEntityShadowHand()
+ {
+ this.isDirty = false;
+ this.hasObject = false;
+ this.grip = 0f;
+ }
+
+ @Override
+ public void writeToNBT(NBTTagCompound nbt)
+ {
+ super.writeToNBT(nbt);
+ nbt.setBoolean("hasObject", hasObject);
+ nbt.setFloat("Grip", grip);
+ NBTTagCompound tag = new NBTTagCompound();
+ this.object.writeToNBT(tag);
+ nbt.setTag("object", tag);
+ }
+
+ @Override
+ public void readFromNBT(NBTTagCompound nbt)
+ {
+ super.readFromNBT(nbt);
+ this.hasObject = nbt.getBoolean("hasObject");
+ this.grip = nbt.getFloat("Grip");
+ this.object = new ItemStack(Item.getItemById(0), 0, 0);
+ this.object.readFromNBT(nbt.getCompoundTag("object"));
+ }
+
+ @Override
+ public void updateEntity()
+ {
+ super.updateEntity();
+ if (isDirty)
+ {
+ worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
+ isDirty = false;
+ }
+ if(grip <= 10f) grip++;
+ else grip = 0;
+ //System.out.println(Item.getIdFromItem(object.getItem()));
+ }
+
+ public Packet getDescriptionPacket()
+ {
+ NBTTagCompound nbttagcompound = new NBTTagCompound();
+ this.writeToNBT(nbttagcompound);
+ return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 1, nbttagcompound);
+ }
+
+ @Override
+ public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet)
+ {
+ readFromNBT(packet.func_148857_g());
+ worldObj.func_147479_m(xCoord, yCoord, zCoord);
+ }
+}
diff --git a/java/darkknight/jewelrycraft/tileentity/TileEntitySmelter.java b/java/darkknight/jewelrycraft/tileentity/TileEntitySmelter.java
index 3330bd2..22d0465 100644
--- a/java/darkknight/jewelrycraft/tileentity/TileEntitySmelter.java
+++ b/java/darkknight/jewelrycraft/tileentity/TileEntitySmelter.java
@@ -106,15 +106,15 @@ public class TileEntitySmelter extends TileEntity
if (melting == 0)
{
this.hasMetal = false;
- if(!isOre) this.moltenMetal = metal;
- else{
+ if (!isOre) this.moltenMetal = metal;
+ else
+ {
this.moltenMetal = JewelrycraftUtil.getIngotFromOre(metal.getItem());
- moltenMetal.stackSize*=2;
+ moltenMetal.stackSize *= 2;
}
-// System.out.println(JewelrycraftUtil.getIngotFromOre(metal) + " | " + JewelrycraftUtil.ores + " | " + JewelrycraftUtil.oreToIngot);
this.hasMoltenMetal = true;
- if(!isOre) this.quantity = 0.1f * metal.stackSize;
- else this.quantity = 0.2f * metal.stackSize;
+ if (!isOre) this.quantity = 0.1f * metal.stackSize;
+ else this.quantity = 0.2f * metal.stackSize;
this.metal = new ItemStack(Item.getItemById(0), 0, 0);
melting = -1;
this.isDirty = true;
@@ -127,9 +127,9 @@ public class TileEntitySmelter extends TileEntity
if (melting == 0)
{
this.hasMetal = false;
- if(!isOre) this.moltenMetal.stackSize += this.metal.stackSize;
- else this.moltenMetal.stackSize += this.metal.stackSize*2;
- if(!isOre) this.quantity += 0.1f * metal.stackSize;
+ if (!isOre) this.moltenMetal.stackSize += this.metal.stackSize;
+ else this.moltenMetal.stackSize += this.metal.stackSize * 2;
+ if (!isOre) this.quantity += 0.1f * metal.stackSize;
else this.quantity += 0.2f * metal.stackSize;
this.metal = new ItemStack(Item.getItemById(0), 0, 0);
melting = -1;
diff --git a/java/darkknight/jewelrycraft/util/JewelryNBT.java b/java/darkknight/jewelrycraft/util/JewelryNBT.java
index 11ffc83..db2c321 100644
--- a/java/darkknight/jewelrycraft/util/JewelryNBT.java
+++ b/java/darkknight/jewelrycraft/util/JewelryNBT.java
@@ -1,12 +1,14 @@
package darkknight.jewelrycraft.util;
+import java.util.ArrayList;
import java.util.List;
+import java.util.Random;
+import darkknight.jewelrycraft.item.ItemRing;
import net.minecraft.block.Block;
import net.minecraft.entity.EntityList;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@@ -43,12 +45,12 @@ public class JewelryNBT
*
* @param item
* The item you want to add the NBT data on
- * @param jewel
- * The jewel you want to add on the item
+ * @param gem
+ * The gem you want to add on the item
*/
- public static void addJewel(ItemStack item, ItemStack jewel)
+ public static void addGem(ItemStack item, ItemStack gem)
{
- if (jewel != null)
+ if (gem != null)
{
NBTTagCompound itemStackData;
if (item.hasTagCompound()) itemStackData = item.getTagCompound();
@@ -57,9 +59,9 @@ public class JewelryNBT
itemStackData = new NBTTagCompound();
item.setTagCompound(itemStackData);
}
- NBTTagCompound jewelNBT = new NBTTagCompound();
- jewel.writeToNBT(jewelNBT);
- itemStackData.setTag("jewel", jewelNBT);
+ NBTTagCompound gemNBT = new NBTTagCompound();
+ gem.writeToNBT(gemNBT);
+ itemStackData.setTag("gem", gemNBT);
}
}
@@ -70,7 +72,7 @@ public class JewelryNBT
* @param modifier
* The modifier you want to add on the item
*/
- public static void addModifier(ItemStack item, ItemStack modifier)
+ public static void addModifiers(ItemStack item, ArrayList<ItemStack> modifier)
{
if (modifier != null)
{
@@ -81,9 +83,13 @@ public class JewelryNBT
itemStackData = new NBTTagCompound();
item.setTagCompound(itemStackData);
}
- NBTTagCompound modifierNBT = new NBTTagCompound();
- modifier.writeToNBT(modifierNBT);
- itemStackData.setTag("modifier", modifierNBT);
+ for (int i = 0; i < modifier.size(); i++)
+ {
+ NBTTagCompound modifierNBT = new NBTTagCompound();
+ modifier.get(i).writeToNBT(modifierNBT);
+ itemStackData.setTag("modifier" + i, modifierNBT);
+ }
+ itemStackData.setInteger("modifierSize", modifier.size());
}
}
@@ -255,7 +261,8 @@ public class JewelryNBT
itemStackData.setTag("ingotColor", colors);
}
- public static void addJewelColor(ItemStack item, int color)
+ // TODO
+ public static void addGemColor(ItemStack item, int color)
{
NBTTagCompound itemStackData;
if (item.hasTagCompound()) itemStackData = item.getTagCompound();
@@ -265,8 +272,8 @@ public class JewelryNBT
item.setTagCompound(itemStackData);
}
NBTTagCompound colors = new NBTTagCompound();
- colors.setInteger("jewelColor", color);
- itemStackData.setTag("jewelColor", colors);
+ colors.setInteger("gemColor", color);
+ itemStackData.setTag("gemColor", colors);
}
@SuppressWarnings("rawtypes")
@@ -329,21 +336,19 @@ public class JewelryNBT
return false;
}
- public static boolean isJewelX(ItemStack stack, ItemStack jewel)
+ public static boolean isGemX(ItemStack stack, ItemStack gem)
{
- if (jewel(stack) != null && jewel(stack).getItem() == jewel.getItem() && jewel(stack).getItemDamage() == jewel.getItemDamage()) return true;
+ if (gem(stack) != null && gem(stack).getItem() == gem.getItem() && gem(stack).getItemDamage() == gem.getItemDamage()) return true;
return false;
}
public static boolean isModifierX(ItemStack stack, ItemStack modifier)
{
- if (modifier(stack) != null && modifier(stack).getItem() == modifier.getItem() && modifier(stack).getItemDamage() == modifier.getItemDamage()) return true;
- return false;
- }
-
- public static boolean isModifierEffectType(ItemStack stack)
- {
- if (modifier(stack) != null && (isModifierX(stack, new ItemStack(Items.blaze_powder)) || isModifierX(stack, new ItemStack(Items.sugar)) || isModifierX(stack, new ItemStack(Items.iron_pickaxe)) || isModifierX(stack, new ItemStack(Items.feather)) || isModifierX(stack, new ItemStack(Items.potionitem, 1, 8270)))) return true;
+ if (modifier(stack) != null)
+ {
+ ArrayList<ItemStack> list = modifier(stack);
+ for(int i = 0; i < list.size(); i++) if(list.get(i).getItem() == modifier.getItem() && list.get(i).getItemDamage() == modifier.getItemDamage()) return true;
+ }
return false;
}
@@ -379,26 +384,50 @@ public class JewelryNBT
// TODO Return components based on NBT
- public static ItemStack jewel(ItemStack stack)
+ public static ItemStack gem(ItemStack stack)
+ {
+ if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound() && stack.getTagCompound().hasKey("gem"))
+ {
+ NBTTagCompound jewelNBT = (NBTTagCompound) stack.getTagCompound().getTag("gem");
+ ItemStack gem = new ItemStack(Item.getItemById(0), 0, 0);
+ gem.readFromNBT(jewelNBT);
+ return gem;
+ }
+ return null;
+ }
+
+ public static ArrayList<ItemStack> gems(ItemStack stack)
{
- if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound() && stack.getTagCompound().hasKey("jewel"))
+ if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound() && stack.getTagCompound().hasKey("gemNumber"))
{
- NBTTagCompound jewelNBT = (NBTTagCompound) stack.getTagCompound().getTag("jewel");
- ItemStack jewel = new ItemStack(Item.getItemById(0), 0, 0);
- jewel.readFromNBT(jewelNBT);
- return jewel;
+ int no = stack.getTagCompound().getInteger("gemNumber");
+ ArrayList<ItemStack> gems = new ArrayList<ItemStack>();
+ for (int i = 1; i <= no; i++)
+ {
+ NBTTagCompound gemNBT = (NBTTagCompound) stack.getTagCompound().getTag("gem" + i);
+ ItemStack gem = new ItemStack(Item.getItemById(0), 0, 0);
+ gem.readFromNBT(gemNBT);
+ gems.add(gem);
+ }
+ return gems;
}
return null;
}
- public static ItemStack modifier(ItemStack stack)
+ //TODO Modifier
+ public static ArrayList<ItemStack> modifier(ItemStack stack)
{
- if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound() && stack.getTagCompound().hasKey("modifier"))
+ if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound())
{
- NBTTagCompound modifierNBT = (NBTTagCompound) stack.getTagCompound().getTag("modifier");
- ItemStack modifier = new ItemStack(Item.getItemById(0), 0, 0);
- modifier.readFromNBT(modifierNBT);
- return modifier;
+ int size = stack.getTagCompound().getInteger("modifierSize");
+ ArrayList<ItemStack> list = new ArrayList<ItemStack>();
+ for(int i = 0; i < size; i++){
+ ItemStack modifier = new ItemStack(Item.getItemById(0), 0, 0);
+ NBTTagCompound modifierNBT = (NBTTagCompound) stack.getTagCompound().getTag("modifier" + i);
+ modifier.readFromNBT(modifierNBT);
+ list.add(modifier);
+ }
+ return list;
}
return null;
}
@@ -582,12 +611,13 @@ public class JewelryNBT
return 16777215;
}
- public static int jewelColor(ItemStack stack)
+ // TODO
+ public static int gemColor(ItemStack stack)
{
- if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound() && stack.getTagCompound().hasKey("jewelColor"))
+ if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound() && stack.getTagCompound().hasKey("gemColor"))
{
- NBTTagCompound colors = (NBTTagCompound) stack.getTagCompound().getTag("jewelColor");
- int color = colors.getInteger("jewelColor");
+ NBTTagCompound colors = (NBTTagCompound) stack.getTagCompound().getTag("gemColor");
+ int color = colors.getInteger("gemColor");
return color;
}
return 16777215;
diff --git a/java/darkknight/jewelrycraft/util/JewelrycraftUtil.java b/java/darkknight/jewelrycraft/util/JewelrycraftUtil.java
index 7c938e4..9a45bfd 100644
--- a/java/darkknight/jewelrycraft/util/JewelrycraftUtil.java
+++ b/java/darkknight/jewelrycraft/util/JewelrycraftUtil.java
@@ -11,14 +11,16 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
import darkknight.jewelrycraft.item.ItemList;
+import darkknight.jewelrycraft.lib.Reference;
public class JewelrycraftUtil
{
public static ArrayList<ItemStack> modifiers = new ArrayList<ItemStack>();
- public static ArrayList<ItemStack> jewel = new ArrayList<ItemStack>();
+ public static ArrayList<ItemStack> gem = new ArrayList<ItemStack>();
public static ArrayList<ItemStack> jewelry = new ArrayList<ItemStack>();
public static ArrayList<ItemStack> metal = new ArrayList<ItemStack>();
public static ArrayList<ItemStack> ores = new ArrayList<ItemStack>();
+ public static HashMap<String, Integer> curses = new HashMap<String, Integer>();
public static HashMap<Item, ItemStack> oreToIngot = new HashMap<Item, ItemStack>();
public static ArrayList<String> jamcraftPlayers = new ArrayList<String>();
public static Random rand = new Random();
@@ -43,18 +45,25 @@ public class JewelrycraftUtil
// Jewels
for (int i = 0; i < 16; i++)
- jewel.add(new ItemStack(ItemList.crystal, 1, i));
- jewel.add(new ItemStack(Blocks.redstone_block));
- jewel.add(new ItemStack(Blocks.lapis_block));
- jewel.add(new ItemStack(Blocks.obsidian));
- jewel.add(new ItemStack(Items.diamond));
- jewel.add(new ItemStack(Items.emerald));
- jewel.add(new ItemStack(Items.ender_pearl));
- jewel.add(new ItemStack(Items.nether_star));
+ gem.add(new ItemStack(ItemList.crystal, 1, i));
+ gem.add(new ItemStack(Blocks.redstone_block));
+ gem.add(new ItemStack(Blocks.lapis_block));
+ gem.add(new ItemStack(Blocks.obsidian));
+ gem.add(new ItemStack(Items.diamond));
+ gem.add(new ItemStack(Items.emerald));
+ gem.add(new ItemStack(Items.ender_pearl));
+ gem.add(new ItemStack(Items.nether_star));
// Jewelry
jewelry.add(new ItemStack(ItemList.ring));
jewelry.add(new ItemStack(ItemList.necklace));
+
+ // Curses
+ curses.put(Reference.MODNAME + ":" + "Blind", 0);
+ curses.put(Reference.MODNAME + ":" + "Weak", 1);
+ curses.put(Reference.MODNAME + ":" + "Anemic", 2);
+ curses.put(Reference.MODNAME + ":" + "Scared", 3);
+ curses.put(Reference.MODNAME + ":" + "Brave", 4);
}
public static void jamcrafters()
@@ -79,6 +88,16 @@ public class JewelrycraftUtil
jamcraftPlayers.add("direwolf20");
}
+ public static ArrayList<ItemStack> addRandomModifiers()
+ {
+ ArrayList<ItemStack> list = new ArrayList<ItemStack>();
+ for(int i = 0; i < new Random().nextInt(modifiers.size()); i++)
+ {
+ list.add(modifiers.get(new Random().nextInt(modifiers.size())));
+ }
+ return list;
+ }
+
public static void addMetals()
{
int index = 0;
@@ -119,9 +138,9 @@ public class JewelrycraftUtil
return false;
}
- public static boolean isJewel(ItemStack item)
+ public static boolean isGem(ItemStack item)
{
- Iterator<ItemStack> i = jewel.iterator();
+ Iterator<ItemStack> i = gem.iterator();
while (i.hasNext())
{
diff --git a/java/darkknight/jewelrycraft/worldGen/village/ComponentJewelry.java b/java/darkknight/jewelrycraft/worldGen/village/ComponentJewelry.java
index 706282a..aadc084 100644
--- a/java/darkknight/jewelrycraft/worldGen/village/ComponentJewelry.java
+++ b/java/darkknight/jewelrycraft/worldGen/village/ComponentJewelry.java
@@ -233,7 +233,7 @@ public class ComponentJewelry extends StructureVillagePieces.House1
TileEntityChest chest = (TileEntityChest) world.getTileEntity(i1, j1, k1);
while (chest != null && t > 0)
{
- ItemStack jewels = JewelrycraftUtil.jewel.get(random.nextInt(JewelrycraftUtil.jewel.size()));
+ ItemStack jewels = JewelrycraftUtil.gem.get(random.nextInt(JewelrycraftUtil.gem.size()));
chest.func_145976_a("Jeweler's Chest");
if (random.nextBoolean()) chest.setInventorySlotContents(random.nextInt(chest.getSizeInventory()), JewelrycraftUtil.modifiers.get(random.nextInt(JewelrycraftUtil.modifiers.size())));
else if (jewels.getItem() == Items.nether_star && ConfigHandler.generateVillageNetherstar) chest.setInventorySlotContents(random.nextInt(chest.getSizeInventory()), jewels);
@@ -291,10 +291,10 @@ public class ComponentJewelry extends StructureVillagePieces.House1
{
ItemStack ring = new ItemStack(ItemList.ring);
JewelryNBT.addMetal(ring, JewelrycraftUtil.metal.get(random.nextInt(JewelrycraftUtil.metal.size())));
- JewelryNBT.addModifier(ring, JewelrycraftUtil.modifiers.get(random.nextInt(JewelrycraftUtil.modifiers.size())));
- JewelryNBT.addJewel(ring, JewelrycraftUtil.jewel.get(random.nextInt(JewelrycraftUtil.jewel.size())));
- if (JewelryNBT.isModifierEffectType(ring)) JewelryNBT.addMode(ring, "Activated");
- if (JewelryNBT.isJewelX(ring, new ItemStack(Items.nether_star)) && JewelryNBT.isModifierX(ring, new ItemStack(Items.book))) JewelryNBT.addMode(ring, "Disenchant");
+ JewelryNBT.addModifiers(ring, JewelrycraftUtil.addRandomModifiers());
+ JewelryNBT.addGem(ring, JewelrycraftUtil.gem.get(random.nextInt(JewelrycraftUtil.gem.size())));
+// if (JewelryNBT.isModifierEffectType(ring)) JewelryNBT.addMode(ring, "Activated");
+ if (JewelryNBT.isGemX(ring, new ItemStack(Items.nether_star)) && JewelryNBT.isModifierX(ring, new ItemStack(Items.book))) JewelryNBT.addMode(ring, "Disenchant");
displayer.object = ring;
displayer.quantity = 1;
displayer.hasObject = true;
diff --git a/java/darkknight/jewelrycraft/worldGen/village/JCTrades.java b/java/darkknight/jewelrycraft/worldGen/village/JCTrades.java
index 7cec830..bddf7b3 100644
--- a/java/darkknight/jewelrycraft/worldGen/village/JCTrades.java
+++ b/java/darkknight/jewelrycraft/worldGen/village/JCTrades.java
@@ -114,10 +114,10 @@ public class JCTrades implements IVillageTradeHandler
}
case 9:
{
- int end = random.nextInt(JewelrycraftUtil.jewel.size());
- result = JewelrycraftUtil.jewel.get(end);
- result.stackSize = 1 + random.nextInt(JewelrycraftUtil.jewel.size() - end);
- if (JewelrycraftUtil.jewel.size() - 1 - end >= 1)
+ int end = random.nextInt(JewelrycraftUtil.gem.size());
+ result = JewelrycraftUtil.gem.get(end);
+ result.stackSize = 1 + random.nextInt(JewelrycraftUtil.gem.size() - end);
+ if (JewelrycraftUtil.gem.size() - 1 - end >= 1)
{
int value = end;
if (value > 64) value = 64;
@@ -143,10 +143,10 @@ public class JCTrades implements IVillageTradeHandler
{
result = new ItemStack(ItemList.ring, 1, 0);
JewelryNBT.addMetal(result, JewelrycraftUtil.metal.get(random.nextInt(JewelrycraftUtil.metal.size())));
- JewelryNBT.addModifier(result, JewelrycraftUtil.modifiers.get(random.nextInt(JewelrycraftUtil.modifiers.size())));
- JewelryNBT.addJewel(result, JewelrycraftUtil.jewel.get(random.nextInt(JewelrycraftUtil.jewel.size())));
- if (JewelryNBT.isModifierEffectType(result)) JewelryNBT.addMode(result, "Activated");
- if (JewelryNBT.isJewelX(result, new ItemStack(Items.nether_star)) && JewelryNBT.isModifierX(result, new ItemStack(Items.book))) JewelryNBT.addMode(result, "Disenchant");
+ JewelryNBT.addModifiers(result, JewelrycraftUtil.addRandomModifiers());
+ JewelryNBT.addGem(result, JewelrycraftUtil.gem.get(random.nextInt(JewelrycraftUtil.gem.size())));
+// if (JewelryNBT.isModifierEffectType(result)) JewelryNBT.addMode(result, "Activated");
+ if (JewelryNBT.isGemX(result, new ItemStack(Items.nether_star)) && JewelryNBT.isModifierX(result, new ItemStack(Items.book))) JewelryNBT.addMode(result, "Disenchant");
ingredient = new ItemStack(Items.emerald, 16 + random.nextInt(20));
ingredient2 = new ItemStack(Blocks.emerald_block, 5 + random.nextInt(5));
}