diff options
Diffstat (limited to 'java/darkknight')
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)); } |
