From 5fce447142b3c0f4a214ca7eb208d9e5c25e6377 Mon Sep 17 00:00:00 2001 From: OnyxDarkKnight Date: Sun, 23 Mar 2014 19:01:47 +0200 Subject: Added necklaces, Altar Block, new stuff, better Shadow Ingot texture --- common/darkknight/jewelrycraft/item/ItemRing.java | 262 +++++++++++++++++----- 1 file changed, 201 insertions(+), 61 deletions(-) (limited to 'common/darkknight/jewelrycraft/item/ItemRing.java') diff --git a/common/darkknight/jewelrycraft/item/ItemRing.java b/common/darkknight/jewelrycraft/item/ItemRing.java index bb09d69..368cde3 100644 --- a/common/darkknight/jewelrycraft/item/ItemRing.java +++ b/common/darkknight/jewelrycraft/item/ItemRing.java @@ -17,26 +17,20 @@ import darkknight.jewelrycraft.block.BlockList; import darkknight.jewelrycraft.util.JewelryNBT; import net.minecraft.block.Block; +import net.minecraft.block.BlockSkull; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.client.resources.ResourceManager; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; +import net.minecraft.enchantment.*; +import net.minecraft.entity.*; +import net.minecraft.entity.monster.EntityIronGolem; +import net.minecraft.entity.monster.EntitySnowman; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.InventoryEnderChest; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntityChest; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Icon; -import net.minecraft.util.MathHelper; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.StatCollector; +import net.minecraft.item.*; +import net.minecraft.potion.*; +import net.minecraft.tileentity.*; +import net.minecraft.util.*; import net.minecraft.world.World; public class ItemRing extends Item @@ -54,7 +48,7 @@ public class ItemRing extends Item public void registerIcons(IconRegister iconRegister) { itemIcon = iconRegister.registerIcon("jewelrycraft:ring"); - jewel = iconRegister.registerIcon("jewelrycraft:jewel"); + jewel = iconRegister.registerIcon("jewelrycraft:jewelRing"); } @Override @@ -88,57 +82,74 @@ public class ItemRing extends Item { String domain = "", texture; ResourceManager rm = Minecraft.getMinecraft().getResourceManager(); - int x=0, y=0, ok = 0; - if (pass == 0 && JewelryNBT.ingot(stack) != null) + BufferedImage icon; + int x=0, y=0, ok = 0, red, green, blue; + if (pass == 0 && JewelryNBT.ingot(stack) != null && JewelryNBT.ingotColor(stack) == 16777215) { - if (JewelryNBT.ingot(stack).getIconIndex().getIconName().substring(0, JewelryNBT.ingot(stack).getIconIndex().getIconName().indexOf(":") + 1) != "") domain = JewelryNBT.ingot(stack).getIconIndex().getIconName().substring(0, JewelryNBT.ingot(stack).getIconIndex().getIconName().indexOf(":") + 1).replace(":", " ").trim(); + String ingotIconName = JewelryNBT.ingot(stack).getIconIndex().getIconName(); + + if (ingotIconName.substring(0, ingotIconName.indexOf(":") + 1) != "") domain = ingotIconName.substring(0, ingotIconName.indexOf(":") + 1).replace(":", " ").trim(); else domain = "minecraft"; - texture = JewelryNBT.ingot(stack).getIconIndex().getIconName().substring(JewelryNBT.ingot(stack).getIconIndex().getIconName().lastIndexOf(":") + 1) + ".png"; + + texture = ingotIconName.substring(ingotIconName.lastIndexOf(":") + 1) + ".png"; ResourceLocation ingot = null; + if (JewelryNBT.ingot(stack).getUnlocalizedName().contains("item")) ingot = new ResourceLocation(domain, "textures/items/" + texture); else ingot = new ResourceLocation(domain, "textures/blocks/" + texture); - BufferedImage bufferedimage = ImageIO.read(rm.getResource(ingot).getInputStream()); - while(ok == 0){ - int red = (bufferedimage.getRGB(x, y) >> 16) & 0xFF; - int green = (bufferedimage.getRGB(x, y) >> 8) & 0xFF; - int blue = bufferedimage.getRGB(x, y) & 0xFF; - if((red <= 80 && green <=80 && blue <= 80) || (red >= 180 && green >= 180 && blue >= 180)){ - if(x=bufferedimage.getTileWidth()-1 && y> 16) & 0xFF; + green = (icon.getRGB(x, y) >> 8) & 0xFF; + blue = icon.getRGB(x, y) & 0xFF; + if((red <= 80 && green <=80 && blue <= 80) || (red >= 180 && green >= 180 && blue >= 180)) + { + if(x=icon.getTileWidth()-1 && y> 16) & 0xFF; - int green = (bufferedimage.getRGB(x, y) >> 8) & 0xFF; - int blue = bufferedimage.getRGB(x, y) & 0xFF; - if((red <= 80 && green <=80 && blue <= 80) || (red >= 180 && green >= 180 && blue >= 180)){ - if(x=bufferedimage.getTileWidth()-1 && y> 16) & 0xFF; + green = (icon.getRGB(x, y) >> 8) & 0xFF; + blue = icon.getRGB(x, y) & 0xFF; + if((red <= 80 && green <=80 && blue <= 80) || (red >= 180 && green >= 180 && blue >= 180)) + { + if(x=icon.getTileWidth()-1 && y 0 && world.getBlockId(i, j, k) != Block.bedrock.blockID) + world.destroyBlock(i, j, k, true); } return true; } @@ -317,27 +386,26 @@ public class ItemRing extends Item if(cooldown > 0) cooldown--; if (!world.isRemote){ 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(Item.diamond))) amplifier = 1; else if (JewelryNBT.isJewelX(stack, new ItemStack(Item.emerald))) amplifier = 2; else if (JewelryNBT.isJewelX(stack, new ItemStack(Item.netherStar))) amplifier = 7; + if(JewelryNBT.isModifierX(stack, new ItemStack(Item.dyePowder, 1, 15)) && world.getBlockId(posX, posY - 1, posZ) == Block.tilledField.blockID) + world.setBlockMetadataWithNotify(posX, posY - 1, posZ, 1, 2); + if(JewelryNBT.isModeX(stack, "Activated")) { if (JewelryNBT.isModifierX(stack, new ItemStack(Item.blazePowder)) && entityplayer != null) - { entityplayer.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 4, amplifier, true)); - entityplayer.addPotionEffect(new PotionEffect(Potion.weakness.id, 4, amplifier, true)); - } else if (JewelryNBT.isModifierX(stack, new ItemStack(Item.sugar)) && entityplayer != null) { entityplayer.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 4, amplifier, true)); entityplayer.addExhaustion(0.05f*amplifier); } - else if (JewelryNBT.isModifierX(stack, new ItemStack(Item.pickaxeIron)) && entityplayer != null) - { + else if (JewelryNBT.isModifierX(stack, new ItemStack(Item.pickaxeIron)) && entityplayer != null && !JewelryNBT.isJewelX(stack, new ItemStack(Item.enderPearl))) entityplayer.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 4, amplifier, true)); - entityplayer.addPotionEffect(new PotionEffect(Potion.resistance.id, 4, -2*amplifier, true)); - } else if (JewelryNBT.isModifierX(stack, new ItemStack(Item.feather)) && entityplayer != null) { entityplayer.addPotionEffect(new PotionEffect(Potion.jump.id, 4, amplifier, true)); @@ -440,9 +508,81 @@ public class ItemRing extends Item JewelryNBT.addMetal(itemstack, ingot); JewelryNBT.addModifier(itemstack, modifier); JewelryNBT.addJewel(itemstack, jewel); - if(JewelryNBT.isModifierEffectType(itemstack)) JewelryNBT.addMode(itemstack, "Activated"); + if(JewelryNBT.isModifierEffectType(itemstack) && !(JewelryNBT.isJewelX(itemstack, new ItemStack(Item.enderPearl)) && JewelryNBT.isModifierX(itemstack, new ItemStack(Item.pickaxeIron)))) JewelryNBT.addMode(itemstack, "Activated"); if(JewelryNBT.isJewelX(itemstack, new ItemStack(Item.netherStar)) && JewelryNBT.isModifierX(itemstack, new ItemStack(Item.book))) JewelryNBT.addMode(itemstack, "Disenchant"); return itemstack; } + + public void createGolems(World world, int i, int j, int k) + { + if (world.getBlockId(i, j - 1, k) == Block.blockSnow.blockID && world.getBlockId(i, j - 2, k) == Block.blockSnow.blockID) + { + if (!world.isRemote) + { + world.setBlock(i, j, k, 0, 0, 2); + world.setBlock(i, j - 1, k, 0, 0, 2); + world.setBlock(i, j - 2, k, 0, 0, 2); + EntitySnowman entitysnowman = new EntitySnowman(world); + entitysnowman.setLocationAndAngles((double)i + 0.5D, (double)j - 1.95D, (double)k + 0.5D, 0.0F, 0.0F); + world.spawnEntityInWorld(entitysnowman); + world.notifyBlockChange(i, j, k, 0); + world.notifyBlockChange(i, j - 1, k, 0); + world.notifyBlockChange(i, j - 2, k, 0); + } + + for (int l = 0; l < 120; ++l) + { + world.spawnParticle("snowshovel", (double)i + world.rand.nextDouble(), (double)(j - 2) + world.rand.nextDouble() * 2.5D, (double)k + world.rand.nextDouble(), 0.0D, 0.0D, 0.0D); + } + } + else if (world.getBlockId(i, j - 1, k) == Block.blockIron.blockID && world.getBlockId(i, j - 2, k) == Block.blockIron.blockID) + { + boolean flag = world.getBlockId(i - 1, j - 1, k) == Block.blockIron.blockID && world.getBlockId(i + 1, j - 1, k) == Block.blockIron.blockID; + boolean flag1 = world.getBlockId(i, j - 1, k - 1) == Block.blockIron.blockID && world.getBlockId(i, j - 1, k + 1) == Block.blockIron.blockID; + + if (flag || flag1) + { + world.setBlock(i, j, k, 0, 0, 2); + world.setBlock(i, j - 1, k, 0, 0, 2); + world.setBlock(i, j - 2, k, 0, 0, 2); + + if (flag) + { + world.setBlock(i - 1, j - 1, k, 0, 0, 2); + world.setBlock(i + 1, j - 1, k, 0, 0, 2); + } + else + { + world.setBlock(i, j - 1, k - 1, 0, 0, 2); + world.setBlock(i, j - 1, k + 1, 0, 0, 2); + } + + EntityIronGolem entityirongolem = new EntityIronGolem(world); + entityirongolem.setPlayerCreated(true); + entityirongolem.setLocationAndAngles((double)i + 0.5D, (double)j - 1.95D, (double)k + 0.5D, 0.0F, 0.0F); + world.spawnEntityInWorld(entityirongolem); + + for (int i1 = 0; i1 < 120; ++i1) + { + world.spawnParticle("snowballpoof", (double)i + world.rand.nextDouble(), (double)(j - 2) + world.rand.nextDouble() * 3.9D, (double)k + world.rand.nextDouble(), 0.0D, 0.0D, 0.0D); + } + + world.notifyBlockChange(i, j, k, 0); + world.notifyBlockChange(i, j - 1, k, 0); + world.notifyBlockChange(i, j - 2, k, 0); + + if (flag) + { + world.notifyBlockChange(i - 1, j - 1, k, 0); + world.notifyBlockChange(i + 1, j - 1, k, 0); + } + else + { + world.notifyBlockChange(i, j - 1, k - 1, 0); + world.notifyBlockChange(i, j - 1, k + 1, 0); + } + } + } + } } -- cgit v1.2.3