summaryrefslogtreecommitdiff
path: root/src/main/java/darkknight/jewelrycraft/item
diff options
context:
space:
mode:
authorOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-06-08 23:18:07 +0100
committerOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-06-08 23:18:07 +0100
commitd17826bf67eec6de4561041832670d18074655e8 (patch)
treedb7f098e9f106cae008a03e0ad666e1c41abddbd /src/main/java/darkknight/jewelrycraft/item
parent8d4cf31c5fa874876a3dcbefdc0826b08f8d807d (diff)
Improved Hearts and Added Spawn Eggs for them.
Diffstat (limited to 'src/main/java/darkknight/jewelrycraft/item')
-rw-r--r--src/main/java/darkknight/jewelrycraft/item/ItemList.java135
-rw-r--r--src/main/java/darkknight/jewelrycraft/item/ItemSpawnEgg.java177
-rw-r--r--src/main/java/darkknight/jewelrycraft/item/render/BraceletRender.java5
3 files changed, 250 insertions, 67 deletions
diff --git a/src/main/java/darkknight/jewelrycraft/item/ItemList.java b/src/main/java/darkknight/jewelrycraft/item/ItemList.java
index 064ee58..49c6679 100644
--- a/src/main/java/darkknight/jewelrycraft/item/ItemList.java
+++ b/src/main/java/darkknight/jewelrycraft/item/ItemList.java
@@ -1,66 +1,69 @@
-package darkknight.jewelrycraft.item;
-
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraftforge.oredict.OreDictionary;
-import cpw.mods.fml.common.event.FMLPreInitializationEvent;
-import cpw.mods.fml.common.registry.GameRegistry;
-import darkknight.jewelrycraft.JewelrycraftMod;
-import darkknight.jewelrycraft.util.Variables;
-
-public class ItemList
-{
- public static Item thiefGloves;
- public static Item shadowIngot;
- public static Item molds;
- public static Item clayMolds;
- public static ItemRing ring;
- public static ItemNecklace necklace;
- public static ItemBracelet bracelet;
- public static ItemEarrings earrings;
- public static Item guide;
- public static Item jewelryModifier;
- public static ItemMoltenMetalBucket bucket;
- public static ItemMoltenMetal metal;
- public static Item goldObj;
- public static Item structureGen;
- private static boolean isInitialized = false;
-
- /**
- * @param e
- */
- public static void preInit(FMLPreInitializationEvent e)
- {
- thiefGloves = new ItemThiefGloves().setUnlocalizedName(Variables.MODID + ".thiefGloves").setTextureName(Variables.MODID + ":thiefGloves").setCreativeTab(JewelrycraftMod.jewelrycraft);
- shadowIngot = new Item().setUnlocalizedName(Variables.MODID + ".ingotShadow").setTextureName(Variables.MODID + ":ingotShadow").setCreativeTab(JewelrycraftMod.jewelrycraft);
- molds = new ItemMolds().setUnlocalizedName(Variables.MODID + ".mold").setTextureName("Mold").setCreativeTab(JewelrycraftMod.jewelrycraft);
- clayMolds = new ItemClayMolds().setUnlocalizedName(Variables.MODID + ".mold").setTextureName("Mold").setCreativeTab(JewelrycraftMod.jewelrycraft);
- ring = (ItemRing)new ItemRing().setUnlocalizedName(Variables.MODID + ".ring").setTextureName(Variables.MODID + ":ring").setCreativeTab(JewelrycraftMod.jewelrycraft);
- necklace = (ItemNecklace)new ItemNecklace().setUnlocalizedName(Variables.MODID + ".necklace").setTextureName(Variables.MODID + ":necklace").setCreativeTab(JewelrycraftMod.jewelrycraft);
- bracelet = (ItemBracelet)new ItemBracelet().setUnlocalizedName(Variables.MODID + ".bracelet").setTextureName(Variables.MODID + ":bracelet").setCreativeTab(JewelrycraftMod.jewelrycraft);
- earrings = (ItemEarrings)new ItemEarrings().setUnlocalizedName(Variables.MODID + ".earrings").setTextureName(Variables.MODID + ":earrings").setCreativeTab(JewelrycraftMod.jewelrycraft);
- guide = new ItemGuide().setUnlocalizedName(Variables.MODID + ".guide").setTextureName(Variables.MODID + ":guide").setCreativeTab(JewelrycraftMod.jewelrycraft);
- bucket = (ItemMoltenMetalBucket)new ItemMoltenMetalBucket().setUnlocalizedName(Variables.MODID + ".bucket");
- metal = (ItemMoltenMetal)new ItemMoltenMetal().setUnlocalizedName(Variables.MODID + ".bucket");
- jewelryModifier = new ItemJewelryModifier().setUnlocalizedName(Variables.MODID + ".jewelryModifier").setTextureName(Variables.MODID + ":jewelryModifier").setCreativeTab(JewelrycraftMod.jewelrycraft);
- goldObj = new ItemGoldObj().setUnlocalizedName(Variables.MODID + ".goldObject");
- structureGen = new ItemStructureGen().setUnlocalizedName(Variables.MODID + ".structureGen").setTextureName(Variables.MODID + ":structureGen").setCreativeTab(JewelrycraftMod.jewelrycraft);
-
- GameRegistry.registerItem(thiefGloves, "thiefGloves");
- GameRegistry.registerItem(shadowIngot, "shadowIngot");
- GameRegistry.registerItem(molds, "molds");
- GameRegistry.registerItem(clayMolds, "clayMolds");
- GameRegistry.registerItem(ring, "ring");
- GameRegistry.registerItem(necklace, "necklace");
- GameRegistry.registerItem(bracelet, "bracelet");
- GameRegistry.registerItem(earrings, "earrings");
- GameRegistry.registerItem(guide, "guide");
- GameRegistry.registerItem(bucket, "moltenMetalBucket");
- GameRegistry.registerItem(metal, "moltenMetal");
- GameRegistry.registerItem(jewelryModifier, "jewelryModifier");
- GameRegistry.registerItem(goldObj, "goldObject");
- GameRegistry.registerItem(structureGen, "structureGen");
-
- OreDictionary.registerOre("ingotShadow", new ItemStack(ItemList.shadowIngot));
- }
-}
+package darkknight.jewelrycraft.item;
+
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.oredict.OreDictionary;
+import cpw.mods.fml.common.event.FMLPreInitializationEvent;
+import cpw.mods.fml.common.registry.GameRegistry;
+import darkknight.jewelrycraft.JewelrycraftMod;
+import darkknight.jewelrycraft.util.Variables;
+
+public class ItemList
+{
+ public static Item thiefGloves;
+ public static Item shadowIngot;
+ public static Item molds;
+ public static Item clayMolds;
+ public static ItemRing ring;
+ public static ItemNecklace necklace;
+ public static ItemBracelet bracelet;
+ public static ItemEarrings earrings;
+ public static Item guide;
+ public static Item jewelryModifier;
+ public static ItemMoltenMetalBucket bucket;
+ public static ItemMoltenMetal metal;
+ public static Item goldObj;
+ public static Item structureGen;
+ public static Item spawnEgg;
+ private static boolean isInitialized = false;
+
+ /**
+ * @param e
+ */
+ public static void preInit(FMLPreInitializationEvent e)
+ {
+ thiefGloves = new ItemThiefGloves().setUnlocalizedName(Variables.MODID + ".thiefGloves").setTextureName(Variables.MODID + ":thiefGloves").setCreativeTab(JewelrycraftMod.jewelrycraft);
+ shadowIngot = new Item().setUnlocalizedName(Variables.MODID + ".ingotShadow").setTextureName(Variables.MODID + ":ingotShadow").setCreativeTab(JewelrycraftMod.jewelrycraft);
+ molds = new ItemMolds().setUnlocalizedName(Variables.MODID + ".mold").setTextureName("Mold").setCreativeTab(JewelrycraftMod.jewelrycraft);
+ clayMolds = new ItemClayMolds().setUnlocalizedName(Variables.MODID + ".mold").setTextureName("Mold").setCreativeTab(JewelrycraftMod.jewelrycraft);
+ ring = (ItemRing)new ItemRing().setUnlocalizedName(Variables.MODID + ".ring").setTextureName(Variables.MODID + ":ring").setCreativeTab(JewelrycraftMod.jewelrycraft);
+ necklace = (ItemNecklace)new ItemNecklace().setUnlocalizedName(Variables.MODID + ".necklace").setTextureName(Variables.MODID + ":necklace").setCreativeTab(JewelrycraftMod.jewelrycraft);
+ bracelet = (ItemBracelet)new ItemBracelet().setUnlocalizedName(Variables.MODID + ".bracelet").setTextureName(Variables.MODID + ":bracelet").setCreativeTab(JewelrycraftMod.jewelrycraft);
+ earrings = (ItemEarrings)new ItemEarrings().setUnlocalizedName(Variables.MODID + ".earrings").setTextureName(Variables.MODID + ":earrings").setCreativeTab(JewelrycraftMod.jewelrycraft);
+ guide = new ItemGuide().setUnlocalizedName(Variables.MODID + ".guide").setTextureName(Variables.MODID + ":guide").setCreativeTab(JewelrycraftMod.jewelrycraft);
+ bucket = (ItemMoltenMetalBucket)new ItemMoltenMetalBucket().setUnlocalizedName(Variables.MODID + ".bucket");
+ metal = (ItemMoltenMetal)new ItemMoltenMetal().setUnlocalizedName(Variables.MODID + ".bucket");
+ jewelryModifier = new ItemJewelryModifier().setUnlocalizedName(Variables.MODID + ".jewelryModifier").setTextureName(Variables.MODID + ":jewelryModifier").setCreativeTab(JewelrycraftMod.jewelrycraft);
+ goldObj = new ItemGoldObj().setUnlocalizedName(Variables.MODID + ".goldObject");
+ structureGen = new ItemStructureGen().setUnlocalizedName(Variables.MODID + ".structureGen").setTextureName(Variables.MODID + ":structureGen").setCreativeTab(JewelrycraftMod.jewelrycraft);
+ spawnEgg = new ItemSpawnEgg().setUnlocalizedName(Variables.MODID + ".monsterPlacer").setTextureName("spawn_egg");
+
+ GameRegistry.registerItem(thiefGloves, "thiefGloves");
+ GameRegistry.registerItem(shadowIngot, "shadowIngot");
+ GameRegistry.registerItem(molds, "molds");
+ GameRegistry.registerItem(clayMolds, "clayMolds");
+ GameRegistry.registerItem(ring, "ring");
+ GameRegistry.registerItem(necklace, "necklace");
+ GameRegistry.registerItem(bracelet, "bracelet");
+ GameRegistry.registerItem(earrings, "earrings");
+ GameRegistry.registerItem(guide, "guide");
+ GameRegistry.registerItem(bucket, "moltenMetalBucket");
+ GameRegistry.registerItem(metal, "moltenMetal");
+ GameRegistry.registerItem(jewelryModifier, "jewelryModifier");
+ GameRegistry.registerItem(goldObj, "goldObject");
+ GameRegistry.registerItem(structureGen, "structureGen");
+ GameRegistry.registerItem(spawnEgg, "spawnEgg");
+
+ OreDictionary.registerOre("ingotShadow", new ItemStack(ItemList.shadowIngot));
+ }
+}
diff --git a/src/main/java/darkknight/jewelrycraft/item/ItemSpawnEgg.java b/src/main/java/darkknight/jewelrycraft/item/ItemSpawnEgg.java
new file mode 100644
index 0000000..708c69c
--- /dev/null
+++ b/src/main/java/darkknight/jewelrycraft/item/ItemSpawnEgg.java
@@ -0,0 +1,177 @@
+package darkknight.jewelrycraft.item;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.EntityLiving;
+import net.minecraft.entity.IEntityLivingData;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemMonsterPlacer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.Facing;
+import net.minecraft.util.MathHelper;
+import net.minecraft.util.MovingObjectPosition;
+import net.minecraft.util.MovingObjectPosition.MovingObjectType;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import darkknight.jewelrycraft.entities.EntityHeart;
+import darkknight.jewelrycraft.util.Variables;
+
+/**
+ * @author Betweenlands
+ */
+public class ItemSpawnEgg extends ItemMonsterPlacer {
+ private static final Map<Short, EggData> eggTypes = new LinkedHashMap<Short, EggData>();
+
+ public static void registerSpawnEgg(Class<? extends EntityLiving> entity, String entityName, int id, int eggBackgroundColor, int eggForegroundColor) {
+ eggTypes.put((short) id, new EggData(id, entityName, entity, eggBackgroundColor, eggForegroundColor));
+ }
+
+ private static EggData getEggData(ItemStack is) {
+ return eggTypes.get((short) is.getItemDamage());
+ }
+
+ public ItemSpawnEgg() {
+ setHasSubtypes(true);
+ setCreativeTab(CreativeTabs.tabMisc);
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack is) {
+ String s = StatCollector.translateToLocal(getUnlocalizedName() + ".name").trim();
+ String mob = "";
+
+ EggData egg = getEggData(is);
+ if (egg != null) mob = StatCollector.translateToLocal("entity." + Variables.MODID + "." + egg.entityName + ".name");
+
+ return String.format(s, mob);
+ }
+
+ @Override
+ public boolean onItemUse(ItemStack is, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) {
+ if (world.isRemote) return true;
+
+ Block block = world.getBlock(x, y, z);
+ x += Facing.offsetsXForSide[side];
+ y += Facing.offsetsYForSide[side];
+ z += Facing.offsetsZForSide[side];
+
+ EggData egg = getEggData(is);
+ if (egg != null) {
+ egg.spawnMob(world, x + 0.5D, y + (side == 1 && block != null && block.getRenderType() == 11 ? 0.5D : 0D), z + 0.5D, is);
+
+ if (!player.capabilities.isCreativeMode) --is.stackSize;
+ }
+
+ return true;
+ }
+
+ @Override
+ public ItemStack onItemRightClick(ItemStack is, World world, EntityPlayer player) {
+ if (world.isRemote) return is;
+
+ MovingObjectPosition mop = getMovingObjectPositionFromPlayer(world, player, true);
+
+ if (mop != null && mop.typeOfHit == MovingObjectType.BLOCK) {
+ int x = mop.blockX, y = mop.blockY, z = mop.blockZ;
+
+ if (!world.canMineBlock(player, x, y, z) || !player.canPlayerEdit(x, y, z, mop.sideHit, is)) return is;
+
+ if (world.getBlock(x, y, z).getMaterial() == Material.water) {
+ EggData egg = getEggData(is);
+ if (egg != null) {
+ egg.spawnMob(world, x, y, z, is);
+
+ if (!player.capabilities.isCreativeMode) --is.stackSize;
+ }
+ }
+ }
+
+ return is;
+ }
+
+ public static EntityLiving getEntity(World world, double x, double y, double z, ItemStack is) {
+ EggData egg = getEggData(is);
+ return egg.spawnMob(world, x, y, z, is);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public int getColorFromItemStack(ItemStack is, int pass) {
+ EggData egg = getEggData(is);
+ return egg != null ? pass == 0 ? egg.primaryColor : egg.secondaryColor : 16777215;
+ }
+
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item id, CreativeTabs tab, List list) {
+ for (Short s : eggTypes.keySet())
+ list.add(new ItemStack(id, 1, s));
+ }
+
+ static class EggData {
+ private final short id;
+ String entityName;
+ private final Class<? extends EntityLiving> entityClass;
+ int primaryColor;
+ int secondaryColor;
+
+ EggData(int id, String entityName, Class<? extends EntityLiving> entityClass, int[] rgbPrimaryColor, int[] rgbSecondaryColor) {
+ this(id, entityName, entityClass, rgbPrimaryColor[0] << 16 | rgbPrimaryColor[1] << 8 | rgbPrimaryColor[2], rgbSecondaryColor[0] << 16 | rgbSecondaryColor[1] << 8 | rgbSecondaryColor[2]);
+ }
+
+ EggData(int id, String entityName, Class<? extends EntityLiving> entityClass, int primaryColor, int secondaryColor) {
+ this.id = (short) id;
+ this.entityName = entityName;
+ this.entityClass = entityClass;
+ this.primaryColor = primaryColor;
+ this.secondaryColor = secondaryColor;
+ }
+
+ public EntityLiving spawnMob(World world, double x, double y, double z, ItemStack is) {
+ EntityLiving e = null;
+
+ try {
+ e = entityClass.getConstructor(World.class).newInstance(world);
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ return null;
+ }
+
+ if (e == null) return null;
+
+ if (e instanceof EntityHeart) {
+ if (id == 2) ((EntityHeart) e).setType("White");
+ else if (id == 3) ((EntityHeart) e).setType("Blue");
+ else if (id == 4) ((EntityHeart) e).setType("Black");
+ else if (id == 6) ((EntityHeart) e).setType("White");
+ else if (id == 7) ((EntityHeart) e).setType("Blue");
+ else if (id == 8) ((EntityHeart) e).setType("Black");
+ else ((EntityHeart) e).setType("Red");
+ }
+ e.setLocationAndAngles(x, y, z, MathHelper.wrapAngleTo180_float(world.rand.nextFloat() * 360F), 0F);
+ e.rotationYawHead = e.rotationYaw;
+ e.renderYawOffset = e.rotationYaw;
+ e.onSpawnWithEgg((IEntityLivingData) null);
+ world.spawnEntityInWorld(e);
+ e.playLivingSound();
+
+ if (is.hasDisplayName()) e.setCustomNameTag(is.getDisplayName());
+
+ return e;
+ }
+
+ @Override
+ public int hashCode() {
+ return id;
+ }
+ }
+}
diff --git a/src/main/java/darkknight/jewelrycraft/item/render/BraceletRender.java b/src/main/java/darkknight/jewelrycraft/item/render/BraceletRender.java
index 047cd93..bdec55d 100644
--- a/src/main/java/darkknight/jewelrycraft/item/render/BraceletRender.java
+++ b/src/main/java/darkknight/jewelrycraft/item/render/BraceletRender.java
@@ -3,9 +3,12 @@ package darkknight.jewelrycraft.item.render;
import net.minecraft.client.Minecraft;
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 org.lwjgl.opengl.GL11;
+
import cpw.mods.fml.common.Loader;
import darkknight.jewelrycraft.model.ModelBracelet;
import darkknight.jewelrycraft.util.Variables;
@@ -25,7 +28,7 @@ public class BraceletRender extends TileEntitySpecialRenderer
GL11.glPushMatrix();
Minecraft.getMinecraft().renderEngine.bindTexture(texture);
if ((float)z != -1) bracelet.render(entity, 0F, 0F, 0F, (float)z, f, 1.0F);
- if (Loader.isModLoaded("alpaca")){
+ if (Loader.isModLoaded("alpaca") && fiskfille.alpaca.AlpacaAPI.isAlpacaClient((EntityPlayer)entity)){
GL11.glTranslatef(1F, 0F, -9F);
GL11.glRotatef(25F, 1F, 0F, 0F);
GL11.glRotatef(-25F, 0F, 1F, 0F);