From 4a2defb2b8fbc1fcbe856394be0fbcfebbef5ab9 Mon Sep 17 00:00:00 2001 From: Bernhard Bonigl Date: Tue, 6 Jan 2015 20:01:05 +0100 Subject: [PATCH] Nothing to see here --- resources/assets/tinker/lang/en_US.lang | 1 + .../textures/items/broadsword/boneana.png | Bin 0 -> 386 bytes .../items/broadsword/boneana_split.png | Bin 0 -> 430 bytes .../tconstruct/weaponry/TinkerWeaponry.java | 11 +++- .../tconstruct/weaponry/WeaponryHandler.java | 58 ++++++++++++++++++ .../tconstruct/weaponry/items/Boneana.java | 45 ++++++++++++++ 6 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 resources/assets/tinker/textures/items/broadsword/boneana.png create mode 100644 resources/assets/tinker/textures/items/broadsword/boneana_split.png create mode 100644 src/main/java/tconstruct/weaponry/items/Boneana.java diff --git a/resources/assets/tinker/lang/en_US.lang b/resources/assets/tinker/lang/en_US.lang index 8368d7a6aff..76659bed1f0 100644 --- a/resources/assets/tinker/lang/en_US.lang +++ b/resources/assets/tinker/lang/en_US.lang @@ -949,6 +949,7 @@ manual.page.tool1=Crafting Parts tool.glassarrows=Glass Arrows tool.glassarrows.lore=Crafted by a legendary Glassmaker +tool.boneana.lore=It sounded like a good idea back then tool.baneofpigs=Bane of Pigs tool.infiminer=InfiMiner diff --git a/resources/assets/tinker/textures/items/broadsword/boneana.png b/resources/assets/tinker/textures/items/broadsword/boneana.png new file mode 100644 index 0000000000000000000000000000000000000000..f87bc7982ce7602b49c1b58760f9723df7f12c0c GIT binary patch literal 386 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKVD$8KaSX8#TzYV?mrS6{v4`LJ zuN~}H5)e$hp&j8WaH;QG)6~|zu}O=ymw7z$v8>&7r$Kyzw8zG>Yt1hb%$QG$%`4_A zwcY>b5SLP2&yz}?3(-0GYd(Gcu|4w;gK60I7gwEQ|GA#de!fhQ`N|Y+;hK(DSIe`O zPt82SU>XFHwd}9yfbt)nVv%1o$2~kQD$d%xS7O2S9YzP+HJ(r84}81D$X8;)bO`_A z44A-kxPlW~ro_#VGjQ;i{IWad|ILuA#=UFT%%3?gp+Qdi%Wj|ZwHHpV?~jVKH{N@I z!PewOd8PU875eNuH|;Uldx)X;?!75HRyU?Sk9t+IPwO;yFf-eWO;)LO5BI)n3%0WP zvrI?dhgWjJ-M_YW?{hNK(!B2X*J%KiIkUZpOaCt%88_qJ0fxW*^$z~KAD$QV$N+{d NgQu&X%Q~loCIHY|t!e-O literal 0 HcmV?d00001 diff --git a/resources/assets/tinker/textures/items/broadsword/boneana_split.png b/resources/assets/tinker/textures/items/broadsword/boneana_split.png new file mode 100644 index 0000000000000000000000000000000000000000..a5918660d0f2fe0be85099e007bdba318589a814 GIT binary patch literal 430 zcmV;f0a5;mP)LawQFVV6u5PgLrl{VEz9ioUbP$Dg3P$$qQW|MPT#0)bs zN+5LMF5W%woXh+11WAlj3dXGe4|q7+=AQzLj7GQp=E(e3AVeKzUQT2orG%m=Fftk^ z`m2a6?xJfI19#Ohv%Yo#Bb)GMb1@ZNZlYDYME9eNh4o|Mi6jGENJm*nN9mqhrCHW) zXZUoj@$r0zeY+UYh5sKI8I5|f;-$CCG0KjEwj^Z70r4v>t(@ZiY6E(*A_7nFo2^Ek zy^e$Gy8s{%PrV3tiK?m?3DIigIXN|rf*}x3J&QqI2;XRsL9?Et-8Xr#zsE2>vUL++ z;E7+o5}WlL=~$uWFu-2GYvqol$#1(k)a(Wf&J+MRJUYQ!)kN>p9Qlp?kV6@a+CHp* Y0MRm6fCG4*oB#j-07*qoM6N<$g1;xS^Z)<= literal 0 HcmV?d00001 diff --git a/src/main/java/tconstruct/weaponry/TinkerWeaponry.java b/src/main/java/tconstruct/weaponry/TinkerWeaponry.java index 0eca3311861..9b68ff886a1 100644 --- a/src/main/java/tconstruct/weaponry/TinkerWeaponry.java +++ b/src/main/java/tconstruct/weaponry/TinkerWeaponry.java @@ -44,6 +44,7 @@ import tconstruct.weaponry.ammo.BoltAmmo; import tconstruct.library.tools.DualMaterialToolPart; import tconstruct.weaponry.entity.*; +import tconstruct.weaponry.items.Boneana; import tconstruct.weaponry.items.GlassArrows; import tconstruct.weaponry.items.WeaponryPattern; import tconstruct.library.weaponry.AmmoItem; @@ -92,6 +93,10 @@ public class TinkerWeaponry { public static Pattern woodPattern; public static Pattern metalPattern; + // legendary weapons? + public static GlassArrows glassArrows; + public static Boneana boneana; + // other stuff public static Random random = new Random(); @@ -262,7 +267,11 @@ private void addPartRecipies() private void registerLegendaries() { - GameRegistry.registerItem(new GlassArrows(), "GlassArrows"); + glassArrows = new GlassArrows(); + boneana = new Boneana(); + + GameRegistry.registerItem(glassArrows, "GlassArrows"); + GameRegistry.registerItem(boneana, "Boneana"); } private void registerMaterials() diff --git a/src/main/java/tconstruct/weaponry/WeaponryHandler.java b/src/main/java/tconstruct/weaponry/WeaponryHandler.java index d837ff36463..7f657c05dfb 100644 --- a/src/main/java/tconstruct/weaponry/WeaponryHandler.java +++ b/src/main/java/tconstruct/weaponry/WeaponryHandler.java @@ -1,7 +1,13 @@ package tconstruct.weaponry; import cpw.mods.fml.common.eventhandler.Event; +import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.gameevent.PlayerEvent; +import net.minecraft.init.Items; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.nbt.NBTTagString; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; import tconstruct.armor.player.TPlayerStats; import tconstruct.library.crafting.PatternBuilder; import tconstruct.library.event.PartBuilderEvent; @@ -357,4 +363,56 @@ public void weaponryPartCast(SmelteryCastEvent.CastingTable event) { if (TConstructRegistry.getBowMaterial(mat) == null) event.setResult(Event.Result.DENY); } + + // high priority because we want to do these checks on unmodified stacks + @SubscribeEvent(priority = EventPriority.HIGH) + public void boneanaParts(ToolBuildEvent event) { + if(event.headStack == null || event.handleStack == null || event.accessoryStack != null || event.extraStack != null) + return; + + // golden carrot + bone + if(event.headStack.getItem() == Items.golden_carrot && event.handleStack.getItem() == Items.bone) + { + // golden carrot must be named banana + if(!event.headStack.hasTagCompound() || !event.headStack.getTagCompound().hasKey("display") || + !event.headStack.getTagCompound().getCompoundTag("display").hasKey("Name") || + !event.headStack.getTagCompound().getCompoundTag("display").getString("Name").toLowerCase().equals("banana")) + return; + event.name = '\u2400' + "Bonæna"; // the \u2400 is a non-printable unicode character so you can't just type it + event.headStack = new ItemStack(TinkerTools.swordBlade, 1, TinkerTools.MaterialID.Bone); + event.handleStack = new ItemStack(TinkerTools.toolRod, 1, TinkerTools.MaterialID.Bone); + event.accessoryStack = new ItemStack(TinkerTools.wideGuard, 1, TinkerTools.MaterialID.Bone); + } + } + + @SubscribeEvent(priority = EventPriority.HIGH) + public void boneanaBuilding(ToolCraftEvent.NormalTool event) { + // is it a boneana? + if("\u00A7f\u2400Bonæna".equals(event.toolTag.getCompoundTag("display").getString("Name"))) + { + // set correct name + event.toolTag.getCompoundTag("display").setString("Name", EnumChatFormatting.YELLOW + "Bonæna"); + // lore! + NBTTagList lore = new NBTTagList(); + lore.appendTag(new NBTTagString(StatCollector.translateToLocal("tool.boneana.lore"))); + event.toolTag.getCompoundTag("display").setTag("Lore", lore); + + // let's polish it up a bit! + NBTTagCompound tag = event.toolTag.getCompoundTag("InfiTool"); + tag.setBoolean("Special", true); + tag.setInteger("Attack", 4); + tag.setInteger("TotalDurability", 600); + tag.setInteger("BaseDurability", 600); + tag.setFloat("Shoddy", -2.0f); + tag.setInteger("MiningSpeed", 1); + tag.setInteger("HarvestLevel", 0); + + tag.setInteger("Modifiers", 0); + + ItemStack weapon = new ItemStack(TinkerWeaponry.boneana); + weapon.setTagCompound(event.toolTag); + event.overrideResult(weapon); + event.setResult(Event.Result.ALLOW); + } + } } diff --git a/src/main/java/tconstruct/weaponry/items/Boneana.java b/src/main/java/tconstruct/weaponry/items/Boneana.java new file mode 100644 index 00000000000..b5d6391ca84 --- /dev/null +++ b/src/main/java/tconstruct/weaponry/items/Boneana.java @@ -0,0 +1,45 @@ +package tconstruct.weaponry.items; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import tconstruct.items.tools.Broadsword; +import tconstruct.library.tools.AbilityHelper; +import tconstruct.util.Reference; + +import java.util.List; + +public class Boneana extends Broadsword { + private IIcon brokenIcon; + + @Override + public void registerIcons(IIconRegister iconRegister) { + itemIcon = iconRegister.registerIcon(Reference.resource("broadsword/boneana")); + brokenIcon = iconRegister.registerIcon(Reference.resource("broadsword/boneana_split")); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(ItemStack stack, int renderPass) { + if(!stack.hasTagCompound() || !stack.getTagCompound().hasKey("InfiTool")) + return emptyIcon; + + if(stack.getTagCompound().getCompoundTag("InfiTool").getBoolean("Broken")) + return brokenIcon; + return itemIcon; + } + + @Override + public String getLocalizedToolName() { + return "Bonæna"; + } + + @Override + public void getSubItems(Item id, CreativeTabs tab, List list) { + // you are not welcome here >:C + } +}