diff options
| author | OnyxDarkKnight <sor1n.iliutza16@gmail.com> | 2014-03-08 22:16:06 +0200 |
|---|---|---|
| committer | OnyxDarkKnight <sor1n.iliutza16@gmail.com> | 2014-03-08 22:16:06 +0200 |
| commit | 3e0556ee7aadfbb7695f87063662a9ca0d28175f (patch) | |
| tree | 3a5ab57ce1e64e002fc22e16e91ae62a573d5f45 /common/darkknight/jewelrycraft/item/ItemRing.java | |
| parent | 05b5b13256c420568d1f07ed634dfd47509d53f2 (diff) | |
Lots of new things
Diffstat (limited to 'common/darkknight/jewelrycraft/item/ItemRing.java')
| -rw-r--r-- | common/darkknight/jewelrycraft/item/ItemRing.java | 94 |
1 files changed, 68 insertions, 26 deletions
diff --git a/common/darkknight/jewelrycraft/item/ItemRing.java b/common/darkknight/jewelrycraft/item/ItemRing.java index 184d3f3..bb09d69 100644 --- a/common/darkknight/jewelrycraft/item/ItemRing.java +++ b/common/darkknight/jewelrycraft/item/ItemRing.java @@ -64,11 +64,11 @@ public class ItemRing extends Item } @SideOnly(Side.CLIENT) - public int getColorFromItemStack(ItemStack par1ItemStack, int pass) + public int getColorFromItemStack(ItemStack stack, int pass) { try { - return color(par1ItemStack, pass); + return color(stack, pass); } catch (IOException e) { @@ -79,7 +79,8 @@ public class ItemRing extends Item public Icon getIcon(ItemStack stack, int pass) { - if (JewelryNBT.jewel(stack) != null) return pass == 0 ? itemIcon : jewel; + if(pass == 0) return itemIcon; + if(pass == 1 && JewelryNBT.jewel(stack) != null) return jewel; return itemIcon; } @@ -87,7 +88,8 @@ public class ItemRing extends Item { String domain = "", texture; ResourceManager rm = Minecraft.getMinecraft().getResourceManager(); - if (pass == 1 && JewelryNBT.ingot(stack) != null && JewelryNBT.jewel(stack) == null) + int x=0, y=0, ok = 0; + if (pass == 0 && JewelryNBT.ingot(stack) != null) { 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(); else domain = "minecraft"; @@ -96,30 +98,52 @@ public class ItemRing extends Item 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()); - return bufferedimage.getRGB(9, 9); + 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) x++; + if(x>=bufferedimage.getTileWidth()-1 && y<bufferedimage.getTileWidth()-1){ + x=0; + y++; + } + if(x == bufferedimage.getTileWidth()-1 && y==bufferedimage.getTileWidth()-1)ok=1; + } + else ok=1; + } + JewelryNBT.addIngotColor(stack, bufferedimage.getRGB(x, y)); } - else if (JewelryNBT.ingot(stack) != null && JewelryNBT.jewel(stack) != null) + else if (pass == 1 && JewelryNBT.jewel(stack) != null) { - if (pass == 1) - { - if (JewelryNBT.jewel(stack).getIconIndex().getIconName().substring(0, JewelryNBT.jewel(stack).getIconIndex().getIconName().indexOf(":") + 1) != "") domain = JewelryNBT.jewel(stack).getIconIndex().getIconName().substring(0, JewelryNBT.jewel(stack).getIconIndex().getIconName().indexOf(":") + 1).replace(":", " ").trim(); - else domain = "minecraft"; - texture = JewelryNBT.jewel(stack).getIconIndex().getIconName().substring(JewelryNBT.jewel(stack).getIconIndex().getIconName().lastIndexOf(":") + 1) + ".png"; - ResourceLocation jewelLoc = null; - if (JewelryNBT.jewel(stack).getUnlocalizedName().contains("item")) jewelLoc = new ResourceLocation(domain, "textures/items/" + texture); - else jewelLoc = new ResourceLocation(domain, "textures/blocks/" + texture); - BufferedImage bufferedimage = ImageIO.read(rm.getResource(jewelLoc).getInputStream()); - return bufferedimage.getRGB(9, 4); - } - 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(); + x = 0; y = 0; ok=0; + if (JewelryNBT.jewel(stack).getIconIndex().getIconName().substring(0, JewelryNBT.jewel(stack).getIconIndex().getIconName().indexOf(":") + 1) != "") domain = JewelryNBT.jewel(stack).getIconIndex().getIconName().substring(0, JewelryNBT.jewel(stack).getIconIndex().getIconName().indexOf(":") + 1).replace(":", " ").trim(); else domain = "minecraft"; - texture = JewelryNBT.ingot(stack).getIconIndex().getIconName().substring(JewelryNBT.ingot(stack).getIconIndex().getIconName().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()); - return bufferedimage.getRGB(9, 9); + texture = JewelryNBT.jewel(stack).getIconIndex().getIconName().substring(JewelryNBT.jewel(stack).getIconIndex().getIconName().lastIndexOf(":") + 1) + ".png"; + ResourceLocation jewelLoc = null; + if (JewelryNBT.jewel(stack).getUnlocalizedName().contains("item")) jewelLoc = new ResourceLocation(domain, "textures/items/" + texture); + else jewelLoc = new ResourceLocation(domain, "textures/blocks/" + texture); + BufferedImage bufferedimage = ImageIO.read(rm.getResource(jewelLoc).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) x++; + if(x>=bufferedimage.getTileWidth()-1 && y<bufferedimage.getTileWidth()-1){ + x=0; + y++; + } + if(x == bufferedimage.getTileWidth()-1 && y==bufferedimage.getTileWidth()-1)ok=1; + } + else ok=1; + } + if(JewelryNBT.jewel(stack).getItem().getColorFromItemStack(JewelryNBT.jewel(stack), 1) == 16777215) JewelryNBT.addJewelColor(stack, bufferedimage.getRGB(x, y)); + else JewelryNBT.addJewelColor(stack, JewelryNBT.jewel(stack).getItem().getColorFromItemStack(JewelryNBT.jewel(stack), 1)); } + if(pass == 0 && JewelryNBT.ingot(stack) != null) return JewelryNBT.ingotColor(stack); + if(pass == 1 && JewelryNBT.jewel(stack) != null) return JewelryNBT.jewelColor(stack); + else if(JewelryNBT.ingot(stack) != null) return JewelryNBT.ingotColor(stack); return 16777215; } @@ -204,7 +228,7 @@ public class ItemRing extends Item @Override public boolean itemInteractionForEntity(ItemStack stack, EntityPlayer player, EntityLivingBase entity) { - if (!player.worldObj.isRemote && JewelryNBT.isJewelX(stack, new ItemStack(Item.netherStar)) && JewelryNBT.isModifierX(stack, new ItemStack(Block.chest)) && JewelryNBT.entity(stack, player) == null){ + if (!player.worldObj.isRemote && entity instanceof EntityLivingBase && JewelryNBT.isJewelX(stack, new ItemStack(Item.netherStar)) && JewelryNBT.isModifierX(stack, new ItemStack(Block.chest)) && JewelryNBT.entity(stack, player) == null){ JewelryNBT.addEntity(stack, entity); JewelryNBT.addEntityID(stack, entity); entity.setDead(); @@ -247,6 +271,12 @@ public class ItemRing extends Item String modeN = JewelryNBT.modeName(stack); if(modeN != null) list.add("Mode: " + modeN); + +// 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); } } @@ -255,7 +285,7 @@ public class ItemRing extends Item if (!world.isRemote) { EntityLivingBase entity = JewelryNBT.entity(stack, player); - if(entity != null){ + if(entity != null && entity instanceof EntityLivingBase){ entity.setLocationAndAngles(i + 0.5D, j + 1D, k + 0.5D, MathHelper.wrapAngleTo180_float(world.rand.nextFloat() * 360.0F), 0.0F); world.spawnEntityInWorld(entity); JewelryNBT.removeEntity(stack); @@ -403,4 +433,16 @@ public class ItemRing extends Item } } } + + public ItemStack getModifiedItemStack(ItemStack ingot, ItemStack modifier, ItemStack jewel) + { + ItemStack itemstack = new ItemStack(this); + JewelryNBT.addMetal(itemstack, ingot); + JewelryNBT.addModifier(itemstack, modifier); + JewelryNBT.addJewel(itemstack, jewel); + if(JewelryNBT.isModifierEffectType(itemstack)) 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; + } } |
