From 67c05a962b14afcdbca1a97fa65dd2b678275d59 Mon Sep 17 00:00:00 2001 From: Bernhard Bonigl Date: Sun, 22 Feb 2015 17:50:59 +0100 Subject: [PATCH] Add a creative bolt that's used for shooting crossbows without ammo in creative, just like the vanilla arrows for the bows #1233 --- .../java/tconstruct/weaponry/TinkerWeaponry.java | 16 ++++++++++++++++ .../tconstruct/weaponry/weapons/Crossbow.java | 6 ++++++ 2 files changed, 22 insertions(+) diff --git a/src/main/java/tconstruct/weaponry/TinkerWeaponry.java b/src/main/java/tconstruct/weaponry/TinkerWeaponry.java index 2b3f685e..f83a3fa0 100644 --- a/src/main/java/tconstruct/weaponry/TinkerWeaponry.java +++ b/src/main/java/tconstruct/weaponry/TinkerWeaponry.java @@ -77,6 +77,7 @@ public class TinkerWeaponry { // Ammo public static AmmoItem arrowAmmo; public static AmmoItem boltAmmo; + public static ItemStack creativeBolt; // Tool Parts public static Item bowstring; @@ -142,6 +143,21 @@ public class TinkerWeaponry { MinecraftForge.EVENT_BUS.register(weaponryHandler); FMLCommonHandler.instance().bus().register(weaponryHandler); + + // "vanilla" bolt: + // iron-tipped wood-shaft with feather fletching + ItemStack headStack = DualMaterialToolPart.createDualMaterial(boltAmmo.getHeadItem(), TinkerTools.MaterialID.Wood, TinkerTools.MaterialID.Iron); + ItemStack handleStack = new ItemStack(boltAmmo.getAccessoryItem(), 1, 0); // feather fletchling + + ItemStack tool = ToolBuilder.instance.buildTool(headStack, handleStack, null, null, ""); + if (tool != null) + { + tool.getTagCompound().getCompoundTag("InfiTool").setBoolean("Built", true); + creativeBolt = tool; + } + else + TConstruct.logger.error("Couldn't build basic Tinker Bolt for creative crossbow shootnig"); + proxy.init(); } diff --git a/src/main/java/tconstruct/weaponry/weapons/Crossbow.java b/src/main/java/tconstruct/weaponry/weapons/Crossbow.java index 024ab4d4..84d8d06e 100644 --- a/src/main/java/tconstruct/weaponry/weapons/Crossbow.java +++ b/src/main/java/tconstruct/weaponry/weapons/Crossbow.java @@ -1,5 +1,8 @@ package tconstruct.weaponry.weapons; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.init.Items; import tconstruct.TConstruct; import tconstruct.library.TConstructRegistry; import tconstruct.weaponry.TinkerWeaponry; @@ -261,6 +264,9 @@ public class Crossbow extends ProjectileWeapon { return stack; } + if(player.capabilities.isCreativeMode && TinkerWeaponry.creativeBolt != null) + return TinkerWeaponry.creativeBolt.copy(); + return null; }