From 0ef6a00aa79f022e5bd56b3f77e6861bbecf6d94 Mon Sep 17 00:00:00 2001 From: OnyxDarkKnight Date: Thu, 13 Aug 2015 21:12:11 +0100 Subject: Added a new structure, a new curse, achievements, challenges, curses entry in the guide; reworked liquids to be tile entities, cleaned the structures code, potion code and... you know what? I improved and changed so much stuff that I literally forgot what I did... --- .../jewelrycraft/item/ItemBaseJewelry.java | 4 +- .../darkknight/jewelrycraft/item/ItemGuide.java | 56 +++++++------ .../jewelrycraft/item/ItemJewelryModifier.java | 52 +++++++----- .../darkknight/jewelrycraft/item/ItemList.java | 9 +- .../jewelrycraft/item/ItemMoltenMetalBucket.java | 95 ++++------------------ .../jewelrycraft/item/ItemStructureGen.java | 18 +++- .../darkknight/jewelrycraft/item/ItemTest.java | 54 ++++++++++++ 7 files changed, 155 insertions(+), 133 deletions(-) create mode 100644 src/main/java/darkknight/jewelrycraft/item/ItemTest.java (limited to 'src/main/java/darkknight/jewelrycraft/item') diff --git a/src/main/java/darkknight/jewelrycraft/item/ItemBaseJewelry.java b/src/main/java/darkknight/jewelrycraft/item/ItemBaseJewelry.java index f5dafb8..a67a274 100644 --- a/src/main/java/darkknight/jewelrycraft/item/ItemBaseJewelry.java +++ b/src/main/java/darkknight/jewelrycraft/item/ItemBaseJewelry.java @@ -111,7 +111,7 @@ public abstract class ItemBaseJewelry extends Item public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, float amount) { for(ModifierEffects mod: ModifierEffects.getEffects()) - return JewelryNBT.doesModifierExist(item, mod.getModifier()) ? mod.onPlayerAttackedCacellable(item, player, source, this, amount) : false; + if(JewelryNBT.doesModifierExist(item, mod.getModifier())) return mod.onPlayerAttackedCacellable(item, player, source, this, amount); return false; } @@ -124,7 +124,7 @@ public abstract class ItemBaseJewelry extends Item public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, float amount) { for(ModifierEffects mod: ModifierEffects.getEffects()) - return JewelryNBT.doesModifierExist(item, mod.getModifier()) ? mod.onEntityAttackedCacellable(item, player, target, this, amount) : false; + if(JewelryNBT.doesModifierExist(item, mod.getModifier())) return mod.onEntityAttackedCacellable(item, player, target, this, amount); return false; } diff --git a/src/main/java/darkknight/jewelrycraft/item/ItemGuide.java b/src/main/java/darkknight/jewelrycraft/item/ItemGuide.java index 9c2f627..ce42093 100644 --- a/src/main/java/darkknight/jewelrycraft/item/ItemGuide.java +++ b/src/main/java/darkknight/jewelrycraft/item/ItemGuide.java @@ -1,28 +1,30 @@ -package darkknight.jewelrycraft.item; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.PlayerEvent.Clone; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.api.IJewelryItem; - -public class ItemGuide extends Item -{ - public ItemGuide() - { - super(); - } - - @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) - { - if (world.isRemote) player.openGui(JewelrycraftMod.instance, 1, player.worldObj, 0, 0, 0); - return stack; - } +package darkknight.jewelrycraft.item; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.DamageSource; +import net.minecraft.world.World; +import net.minecraftforge.event.entity.player.PlayerEvent.Clone; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.achievements.AchievementsList; +import darkknight.jewelrycraft.api.IJewelryItem; + +public class ItemGuide extends Item +{ + public ItemGuide() + { + super(); + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) + { + if (world.isRemote) player.openGui(JewelrycraftMod.instance, 1, player.worldObj, 0, 0, 0); + player.addStat(AchievementsList.openGuide, 1); + return stack; + } } \ No newline at end of file diff --git a/src/main/java/darkknight/jewelrycraft/item/ItemJewelryModifier.java b/src/main/java/darkknight/jewelrycraft/item/ItemJewelryModifier.java index 0ffed2c..c8fbb9d 100644 --- a/src/main/java/darkknight/jewelrycraft/item/ItemJewelryModifier.java +++ b/src/main/java/darkknight/jewelrycraft/item/ItemJewelryModifier.java @@ -1,23 +1,31 @@ -package darkknight.jewelrycraft.item; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import darkknight.jewelrycraft.JewelrycraftMod; - -public class ItemJewelryModifier extends Item -{ - public ItemJewelryModifier() - { - super(); - } - - @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) - { - if (!world.isRemote && player.capabilities.isCreativeMode) player.openGui(JewelrycraftMod.instance, 3, world, 0, 0, 0); - return stack; - } +package darkknight.jewelrycraft.item; + +import java.util.List; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import darkknight.jewelrycraft.JewelrycraftMod; + +public class ItemJewelryModifier extends Item +{ + public ItemJewelryModifier() + { + super(); + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) + { + if (!world.isRemote && player.capabilities.isCreativeMode) player.openGui(JewelrycraftMod.instance, 3, world, 0, 0, 0); + return stack; + } + + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean par4) + { + list.add(EnumChatFormatting.GRAY + "Creative Only"); + } } \ No newline at end of file diff --git a/src/main/java/darkknight/jewelrycraft/item/ItemList.java b/src/main/java/darkknight/jewelrycraft/item/ItemList.java index 49c6679..0105d4a 100644 --- a/src/main/java/darkknight/jewelrycraft/item/ItemList.java +++ b/src/main/java/darkknight/jewelrycraft/item/ItemList.java @@ -1,12 +1,12 @@ 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; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; public class ItemList { @@ -25,6 +25,7 @@ public class ItemList public static Item goldObj; public static Item structureGen; public static Item spawnEgg; + public static Item testItem; private static boolean isInitialized = false; /** @@ -47,6 +48,7 @@ public class ItemList 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"); + testItem = new ItemTest().setUnlocalizedName(Variables.MODID + ".test"); GameRegistry.registerItem(thiefGloves, "thiefGloves"); GameRegistry.registerItem(shadowIngot, "shadowIngot"); @@ -63,6 +65,7 @@ public class ItemList GameRegistry.registerItem(goldObj, "goldObject"); GameRegistry.registerItem(structureGen, "structureGen"); GameRegistry.registerItem(spawnEgg, "spawnEgg"); + GameRegistry.registerItem(testItem, "testItem"); OreDictionary.registerOre("ingotShadow", new ItemStack(ItemList.shadowIngot)); } diff --git a/src/main/java/darkknight/jewelrycraft/item/ItemMoltenMetalBucket.java b/src/main/java/darkknight/jewelrycraft/item/ItemMoltenMetalBucket.java index d376648..869af26 100644 --- a/src/main/java/darkknight/jewelrycraft/item/ItemMoltenMetalBucket.java +++ b/src/main/java/darkknight/jewelrycraft/item/ItemMoltenMetalBucket.java @@ -1,52 +1,37 @@ package darkknight.jewelrycraft.item; import java.io.IOException; - +import cpw.mods.fml.common.eventhandler.Event; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.block.BlockList; +import darkknight.jewelrycraft.tileentity.TileEntityMoltenMetal; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.Variables; import net.minecraft.block.Block; import net.minecraft.block.material.Material; -import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.texture.IIconRegister; 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.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.StatCollector; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.player.FillBucketEvent; -import cpw.mods.fml.common.eventhandler.Event; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.network.PacketRequestLiquidData; -import darkknight.jewelrycraft.network.PacketSendLiquidData; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.Variables; public class ItemMoltenMetalBucket extends Item { - public IIcon liquid; + public IIcon liquid; - /** - * - */ public ItemMoltenMetalBucket() { maxStackSize = 1; } - /** - * Called whenever this item is equipped and the right mouse button is - * pressed. Args: itemStack, world, entityPlayer - * - * @param stack - * @param par2World - * @param par3EntityPlayer - * @return - */ @Override public ItemStack onItemRightClick(ItemStack stack, World par2World, EntityPlayer par3EntityPlayer) { boolean flag = BlockList.moltenMetal == Blocks.air; @@ -75,11 +60,11 @@ public class ItemMoltenMetalBucket extends Item { } else { if (BlockList.moltenMetal == Blocks.air) return new ItemStack(Items.bucket); if (movingobjectposition.sideHit == 0) --j; - if (movingobjectposition.sideHit == 1) ++j; - if (movingobjectposition.sideHit == 2) --k; - if (movingobjectposition.sideHit == 3) ++k; - if (movingobjectposition.sideHit == 4) --i; - if (movingobjectposition.sideHit == 5) ++i; + else if (movingobjectposition.sideHit == 1) ++j; + else if (movingobjectposition.sideHit == 2) --k; + else if (movingobjectposition.sideHit == 3) ++k; + else if (movingobjectposition.sideHit == 4) --i; + else if (movingobjectposition.sideHit == 5) ++i; if (!par3EntityPlayer.canPlayerEdit(i, j, k, movingobjectposition.sideHit, stack)) return stack; if (tryPlaceContainedLiquid(par2World, i, j, k, stack) && !par3EntityPlayer.capabilities.isCreativeMode) return new ItemStack(Items.bucket); } @@ -88,12 +73,6 @@ public class ItemMoltenMetalBucket extends Item { } } - /** - * @param p_150910_1_ - * @param p_150910_2_ - * @param p_150910_3_ - * @return - */ private ItemStack func_150910_a(ItemStack p_150910_1_, EntityPlayer p_150910_2_, Item p_150910_3_) { if (p_150910_2_.capabilities.isCreativeMode) return p_150910_1_; else if (--p_150910_1_.stackSize <= 0) return new ItemStack(p_150910_3_); @@ -103,18 +82,7 @@ public class ItemMoltenMetalBucket extends Item { } } - /** - * Attempts to place the liquid contained inside the bucket. - * - * @param world - * @param x - * @param y - * @param z - * @param stack - * @return - * @throws IOException - */ - public boolean tryPlaceContainedLiquid(World world, int x, int y, int z, ItemStack stack) { + public static boolean tryPlaceContainedLiquid(World world, int x, int y, int z, ItemStack stack) { if (BlockList.moltenMetal == Blocks.air) return false; else { Material material = world.getBlock(x, y, z).getMaterial(); @@ -122,30 +90,20 @@ public class ItemMoltenMetalBucket extends Item { if (!world.isAirBlock(x, y, z) && !flag) return false; else if (stack != null && JewelryNBT.ingot(stack) != null) { if (!world.isRemote && flag && !material.isLiquid()) world.func_147480_a(x, y, z, true); - if (world.isRemote) { - JewelrycraftMod.saveData.setString(x + " " + y + " " + z + " " + world.provider.dimensionId, Item.getIdFromItem(JewelryNBT.ingot(stack).getItem()) + ":" + JewelryNBT.ingot(stack).getItemDamage()); - JewelrycraftMod.netWrapper.sendToAll(new PacketSendLiquidData(world.provider.dimensionId, x, y, z, Item.getIdFromItem(JewelryNBT.ingot(stack).getItem()), JewelryNBT.ingot(stack).getItemDamage())); - } world.setBlock(x, y, z, BlockList.moltenMetal, 0, 3); + TileEntity moltenLiquid = world.getTileEntity(x, y, z); + if(moltenLiquid instanceof TileEntityMoltenMetal) ((TileEntityMoltenMetal) moltenLiquid).setMetal(JewelryNBT.ingot(stack)); return true; } else return false; } } - /** - * @param iconRegister - */ @Override public void registerIcons(IIconRegister iconRegister) { itemIcon = iconRegister.registerIcon("bucket_empty"); liquid = iconRegister.registerIcon(Variables.MODID + ":bucketOverlay"); } - /** - * @param stack - * @param pass - * @return - */ @Override @SideOnly(Side.CLIENT) public int getColorFromItemStack(ItemStack stack, int pass) { @@ -153,19 +111,11 @@ public class ItemMoltenMetalBucket extends Item { return 16777215; } - /** - * @return - */ @Override public boolean requiresMultipleRenderPasses() { return true; } - /** - * @param stack - * @param pass - * @return - */ @Override public IIcon getIcon(ItemStack stack, int pass) { if (pass == 0) return itemIcon; @@ -173,27 +123,18 @@ public class ItemMoltenMetalBucket extends Item { return itemIcon; } - /** - * @param ingot - * @return - */ public ItemStack getModifiedItemStack(ItemStack ingot) { ItemStack itemstack = new ItemStack(this); JewelryNBT.addMetal(itemstack, ingot); return itemstack; } - /** - * @param stack - * @return - */ @Override public String getItemStackDisplayName(ItemStack stack) { try { if (JewelryNBT.ingot(stack) != null) { ItemStack ingot = JewelryNBT.ingot(stack); if (ingot != null) { - if (Item.getIdFromItem(ingot.getItem()) == Block.getIdFromBlock(Blocks.stained_glass) || 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(getUnlocalizedNameInefficiently(stack) + ".name").trim() + " " + ingot.getDisplayName().replace("Ingot", " ").trim(); } else return StatCollector.translateToLocal("bucket.unknown"); } diff --git a/src/main/java/darkknight/jewelrycraft/item/ItemStructureGen.java b/src/main/java/darkknight/jewelrycraft/item/ItemStructureGen.java index 25f5f4d..33ffd3d 100644 --- a/src/main/java/darkknight/jewelrycraft/item/ItemStructureGen.java +++ b/src/main/java/darkknight/jewelrycraft/item/ItemStructureGen.java @@ -4,8 +4,17 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; import net.minecraft.world.World; + +import java.util.ArrayList; +import java.util.List; + +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.util.JewelryNBT; import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.Variables; public class ItemStructureGen extends Item { @@ -19,7 +28,7 @@ public class ItemStructureGen extends Item @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - if (!world.isRemote){ + if (!world.isRemote && player.capabilities.isCreativeMode){ if (!player.isSneaking()){ if (no < JewelrycraftUtil.structures.size() - 1) no++; else no = 0; @@ -36,7 +45,12 @@ public class ItemStructureGen extends Item @Override public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int par1, float par2, float par3, float par4) { - JewelrycraftUtil.structures.get(no).generate(world, itemRand, x, y + 1, z); + if(player.capabilities.isCreativeMode) JewelrycraftUtil.structures.get(no).generate(world, world.getBiomeGenForCoords(x, z), itemRand, x, y + 1, z); return true; } + + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean par4) + { + list.add(EnumChatFormatting.GRAY + "Creative Only"); + } } \ No newline at end of file diff --git a/src/main/java/darkknight/jewelrycraft/item/ItemTest.java b/src/main/java/darkknight/jewelrycraft/item/ItemTest.java new file mode 100644 index 0000000..e7dbb33 --- /dev/null +++ b/src/main/java/darkknight/jewelrycraft/item/ItemTest.java @@ -0,0 +1,54 @@ +package darkknight.jewelrycraft.item; + +import java.util.List; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +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.ItemFood; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.util.StatCollector; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.api.Curse; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.Variables; + +public class ItemTest extends Item +{ + @SideOnly (Side.CLIENT) + private IIcon[] icons; + + public ItemTest() + { + super(); + setHasSubtypes(true); + } + + @Override + @SideOnly (Side.CLIENT) + public IIcon getIconFromDamage(int damage) + { + int j = MathHelper.clamp_int(damage, 0, Curse.getCurseList().size() - 1); + return icons[j]; + } + + public void getSubItems(Item par1, CreativeTabs par2CreativeTabs, List par3List) + { + for(int j = 0; j < Curse.getCurseList().size(); ++j) + par3List.add(new ItemStack(par1, 1, j)); + } + + public void registerIcons(IIconRegister par1IconRegister) + { + icons = new IIcon[Curse.getCurseList().size()]; + for(int i = 0; i < Curse.getCurseList().size(); ++i) + icons[i] = par1IconRegister.registerIcon(Variables.MODID + ":" + "testItem_" + i); + } +} -- cgit v1.2.3