diff --git a/src/main/java/assets/hbm/textures/gui/processing/gui_book.png b/src/main/java/assets/hbm/textures/gui/processing/gui_book.png new file mode 100755 index 000000000..b28597f0b Binary files /dev/null and b/src/main/java/assets/hbm/textures/gui/processing/gui_book.png differ diff --git a/src/main/java/assets/hbm/textures/items/rod_of_discord.png b/src/main/java/assets/hbm/textures/items/rod_of_discord.png new file mode 100644 index 000000000..25a7b5d5c Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/rod_of_discord.png differ diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index a86a35a0c..133c53e44 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1709,6 +1709,8 @@ public class ModItems { public static Item wand_s; public static Item wand_d; + public static Item rod_of_discord; + public static Item cape_test; public static Item cape_radiation; public static Item cape_gasmask; @@ -3367,6 +3369,8 @@ public class ModItems { wand_s = new ItemWandS().setUnlocalizedName("wand_s").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setFull3D().setTextureName(RefStrings.MODID + ":wand_s"); wand_d = new ItemWandD().setUnlocalizedName("wand_d").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setFull3D().setTextureName(RefStrings.MODID + ":wand_d"); + rod_of_discord = new ItemDiscord().setUnlocalizedName("rod_of_discord").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setFull3D().setTextureName(RefStrings.MODID + ":rod_of_discord"); + nuke_starter_kit = new ItemStarterKit().setUnlocalizedName("nuke_starter_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nuke_starter_kit"); nuke_advanced_kit = new ItemStarterKit().setUnlocalizedName("nuke_advanced_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nuke_advanced_kit"); nuke_commercially_kit = new ItemStarterKit().setUnlocalizedName("nuke_commercially_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nuke_commercially_kit"); @@ -5716,6 +5720,7 @@ public class ModItems { GameRegistry.registerItem(wand, wand.getUnlocalizedName()); GameRegistry.registerItem(wand_s, wand_s.getUnlocalizedName()); GameRegistry.registerItem(wand_d, wand_d.getUnlocalizedName()); + GameRegistry.registerItem(rod_of_discord, rod_of_discord.getUnlocalizedName()); //GameRegistry.registerItem(analyzer, analyzer.getUnlocalizedName()); //GameRegistry.registerItem(remote, remote.getUnlocalizedName()); GameRegistry.registerItem(euphemium_stopper, euphemium_stopper.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/tool/ItemDiscord.java b/src/main/java/com/hbm/items/tool/ItemDiscord.java new file mode 100644 index 000000000..9f5dbcb03 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemDiscord.java @@ -0,0 +1,59 @@ +package com.hbm.items.tool; + +import java.util.List; + +import com.hbm.lib.Library; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.MovingObjectPosition.MovingObjectType; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class ItemDiscord extends Item { + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + MovingObjectPosition pos = Library.rayTrace(player, 100, 1); + + if(pos.typeOfHit == MovingObjectType.BLOCK) { + + if(!world.isRemote) { + + if(player.isRiding()) + player.mountEntity(null); + + ForgeDirection dir = ForgeDirection.getOrientation(pos.sideHit); + + world.playSoundEffect(player.posX, player.posY, player.posZ, "mob.endermen.portal", 1.0F, 1.0F); + + player.setPositionAndUpdate(pos.hitVec.xCoord + dir.offsetX, pos.hitVec.yCoord + dir.offsetY - 1, pos.hitVec.zCoord + dir.offsetZ); + + world.playSoundEffect(player.posX, player.posY, player.posZ, "mob.endermen.portal", 1.0F, 1.0F); + player.fallDistance = 0.0F; + } + + for (int i = 0; i < 32; ++i) + world.spawnParticle("portal", player.posX, player.posY + player.getRNG().nextDouble() * 2.0D, player.posZ, player.getRNG().nextGaussian(), 0.0D, player.getRNG().nextGaussian()); + } + + return stack; + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + + list.add(EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "I've seen the Rod of Discord and honestly"); + list.add(EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "it's not as amazing as people say."); + list.add(""); + list.add(EnumChatFormatting.RED + "" + EnumChatFormatting.ITALIC + "Rod of Discord is crucial in so many boss fights."); + list.add(EnumChatFormatting.RED + "" + EnumChatFormatting.ITALIC + "Imagine getting coiled by worm bosses."); + list.add(""); + list.add(EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "Oh, you mean the terraria item."); + list.add(EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "Idk about that thing."); + } +}