This commit is contained in:
mDiyo 2013-04-26 02:28:15 -07:00
parent 7b242f5141
commit 4c8b172068
150 changed files with 487 additions and 350 deletions

View File

@ -2,39 +2,53 @@ package mods.tinker.common;
public class CoordTuple public class CoordTuple
{ {
public final int x; public final int x;
public final int y; public final int y;
public final int z; public final int z;
public CoordTuple(int posX, int posY, int posZ) public CoordTuple(int posX, int posY, int posZ)
{ {
x = posX; x = posX;
y = posY; y = posY;
z = posZ; z = posZ;
} }
public boolean equals(CoordTuple coord) public boolean equalCoords (int posX, int posY, int posZ)
{ {
if (coord == null) if (this.x == posX && this.y == posY && this.z == posZ)
return false; return true;
else if (coord == this) else
return true; return false;
else if (coord.x == this.x && coord.y == this.y && coord.z == this.z) }
return true;
else @Override
return false; public boolean equals(Object obj)
} {
if (obj == null)
public boolean equals(int posX, int posY, int posZ) return false;
{
if (this.x == posX && this.y == posY && this.z == posZ) if(getClass() == obj.getClass())
return true; {
else CoordTuple coord = (CoordTuple)obj;
return false; if(this.x == coord.x && this.y == coord.y && this.z == coord.z)
} return true;
}
public String toString() return false;
{ }
return "X: "+x+", Y: "+y+", Z: "+z;
} @Override
public int hashCode ()
{
final int prime = 31;
int result = 1;
result = prime * result + x;
result = prime * result + y;
result = prime * result + z;
return result;
}
public String toString ()
{
return "X: " + x + ", Y: " + y + ", Z: " + z;
}
} }

View File

@ -182,6 +182,28 @@ Class: Melee Weapon</text>
</item> </item>
</page> </page>
<page type="toolpage">
<title>Dagger</title>
<text>The Dagger is a short weapon. It is light and usable as both a striking and throwing weapon.</text>
<text>Right-click: Throw Dagger
- Toss the item for a ranged attack
Class: Ranged/Melee Weapon</text>
<icon>daggerIcon</icon>
<item>
<text>Knife Blade</text>
<icon>knifeblade</icon>
</item>
<item>
<text>Tool Rod</text>
<icon>toolrod</icon>
</item>
<item>
<text>Crossbar</text>
<icon>crossbar</icon>
</item>
</page>
<page type="toolpage"> <page type="toolpage">
<title>Frying Pan</title> <title>Frying Pan</title>
<text>The Frying is a heavy weapon that uses sheer weight to stun foes or a place to cook your food. It is common to hunt pigs and cook them with the same pan.</text> <text>The Frying is a heavy weapon that uses sheer weight to stun foes or a place to cook your food. It is common to hunt pigs and cook them with the same pan.</text>
@ -237,6 +259,9 @@ Class: Lethal Joke Weapon</text>
- Awareness: Unknown</text> - Awareness: Unknown</text>
</page> </page>
<page type="blank">
</page>
<page type="materialstats"> <page type="materialstats">
<title>Wood</title> <title>Wood</title>
<icon>woodaxe</icon> <icon>woodaxe</icon>

View File

@ -107,6 +107,7 @@ public class PHConstruct
signHead = config.getItem("Tool Parts", "Sign Head", 14036).getInt(14036); signHead = config.getItem("Tool Parts", "Sign Head", 14036).getInt(14036);
lumberHead = config.getItem("Tool Parts", "Lumber Axe Head", 14037).getInt(14037); lumberHead = config.getItem("Tool Parts", "Lumber Axe Head", 14037).getInt(14037);
knifeBlade = config.getItem("Tool Parts", "Knife Blade", 14038).getInt(14038);
pickaxe = config.getItem("Tools", "Pickaxe", 14051).getInt(14051); pickaxe = config.getItem("Tools", "Pickaxe", 14051).getInt(14051);
shovel = config.getItem("Tools", "Shovel", 14052).getInt(14052); shovel = config.getItem("Tools", "Shovel", 14052).getInt(14052);
@ -181,12 +182,12 @@ public class PHConstruct
aluminumuMinY = config.get("Worldgen", "Aluminum Underground Min Y", 0).getInt(0); aluminumuMinY = config.get("Worldgen", "Aluminum Underground Min Y", 0).getInt(0);
aluminumuMaxY = config.get("Worldgen", "Aluminum Underground Max Y", 64).getInt(64); aluminumuMaxY = config.get("Worldgen", "Aluminum Underground Max Y", 64).getInt(64);
ironsRarity = config.get("Worldgen", "Iron Surface Rarity", 70).getInt(70); ironsRarity = config.get("Worldgen", "Iron Surface Rarity", 200).getInt(200);
goldsRarity = config.get("Worldgen", "Gold Surface Rarity", 200).getInt(200); goldsRarity = config.get("Worldgen", "Gold Surface Rarity", 500).getInt(500);
coppersRarity = config.get("Worldgen", "Copper Surface Rarity", 32).getInt(32); coppersRarity = config.get("Worldgen", "Copper Surface Rarity", 80).getInt(80);
tinsRarity = config.get("Worldgen", "Tin Surface Rarity", 32).getInt(32); tinsRarity = config.get("Worldgen", "Tin Surface Rarity", 80).getInt(80);
aluminumsRarity = config.get("Worldgen", "Aluminum Surface Rarity", 32).getInt(32); aluminumsRarity = config.get("Worldgen", "Aluminum Surface Rarity", 70).getInt(70);
cobaltsRarity = config.get("Worldgen", "Cobalt Surface Rarity", 400).getInt(400); cobaltsRarity = config.get("Worldgen", "Cobalt Surface Rarity", 1000).getInt(1000);
ironBushDensity = config.get("Worldgen", "Iron Bush Density", 1).getInt(1); ironBushDensity = config.get("Worldgen", "Iron Bush Density", 1).getInt(1);
goldBushDensity = config.get("Worldgen", "Gold Bush Density", 1).getInt(1); goldBushDensity = config.get("Worldgen", "Gold Bush Density", 1).getInt(1);
@ -292,6 +293,7 @@ public class PHConstruct
public static int largeGuard; public static int largeGuard;
public static int medGuard; public static int medGuard;
public static int crossbar; public static int crossbar;
public static int knifeBlade;
public static int pickaxeHead; public static int pickaxeHead;
public static int axeHead; public static int axeHead;

View File

@ -9,10 +9,12 @@ import mods.tinker.tconstruct.worldgen.village.VillageSmelteryHandler;
import mods.tinker.tconstruct.worldgen.village.VillageToolStationHandler; import mods.tinker.tconstruct.worldgen.village.VillageToolStationHandler;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.Init;
import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.Mod.PostInit; import cpw.mods.fml.common.Mod.PostInit;
import cpw.mods.fml.common.Mod.PreInit; import cpw.mods.fml.common.Mod.PreInit;
import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.network.NetworkMod;
@ -26,7 +28,7 @@ import cpw.mods.fml.common.registry.VillagerRegistry;
* @dependencies: IC2 API, EBXL API * @dependencies: IC2 API, EBXL API
*/ */
@Mod(modid = "TConstruct", name = "TConstruct", version = "1.5.1_1.3.0.3", dependencies = "required-after:Forge@[7.7.1.659,)") @Mod(modid = "TConstruct", name = "TConstruct", version = "1.5.1_1.3.2.dev1", dependencies = "required-after:Forge@[7.7.1.659,)")
@NetworkMod(serverSideRequired = false, clientSideRequired = true, channels = { "TConstruct" }, packetHandler = mods.tinker.tconstruct.TPacketHandler.class) @NetworkMod(serverSideRequired = false, clientSideRequired = true, channels = { "TConstruct" }, packetHandler = mods.tinker.tconstruct.TPacketHandler.class)
public class TConstruct public class TConstruct
{ {
@ -38,7 +40,7 @@ public class TConstruct
@Instance("TConstruct") @Instance("TConstruct")
public static TConstruct instance; public static TConstruct instance;
/* Proxies for sides, used for graphics processing */ /* Proxies for sides, used for graphics processing */
@SidedProxy(clientSide = "mods.tinker.tconstruct.client.TProxyClient", serverSide = "mods.tinker.tconstruct.server.TProxyServer") @SidedProxy(clientSide = "mods.tinker.tconstruct.client.TProxyClient", serverSide = "mods.tinker.tconstruct.TProxyCommon")
public static TProxyCommon proxy; public static TProxyCommon proxy;
@PreInit @PreInit
@ -77,6 +79,12 @@ public class TConstruct
//DimensionManager.unregisterProviderType(0); //DimensionManager.unregisterProviderType(0);
//DimensionManager.registerProviderType(0, OverworldProvider.class, true); //DimensionManager.registerProviderType(0, OverworldProvider.class, true);
} }
@Init
public void init (FMLInitializationEvent event)
{
content.intermodCommunication();
}
@PostInit @PostInit
public void postInit (FMLPostInitializationEvent evt) public void postInit (FMLPostInitializationEvent evt)

View File

@ -1,21 +1,87 @@
package mods.tinker.tconstruct; package mods.tinker.tconstruct;
import mods.tinker.common.*; import mods.tinker.common.IPattern;
import mods.tinker.common.RecipeRemover;
import mods.tinker.common.fancyitem.FancyEntityItem; import mods.tinker.common.fancyitem.FancyEntityItem;
import mods.tinker.tconstruct.blocks.EquipBlock;
import mods.tinker.tconstruct.blocks.*; import mods.tinker.tconstruct.blocks.GravelOre;
import mods.tinker.tconstruct.blocks.infiblocks.*; import mods.tinker.tconstruct.blocks.LavaTankBlock;
import mods.tinker.tconstruct.crafting.*; import mods.tinker.tconstruct.blocks.LiquidMetalFlowing;
import mods.tinker.tconstruct.entity.*; import mods.tinker.tconstruct.blocks.LiquidMetalStill;
import mods.tinker.tconstruct.blocks.MetalOre;
import mods.tinker.tconstruct.blocks.OreberryBush;
import mods.tinker.tconstruct.blocks.SearedBlock;
import mods.tinker.tconstruct.blocks.SmelteryBlock;
import mods.tinker.tconstruct.blocks.StoneTorch;
import mods.tinker.tconstruct.blocks.TConstructBlock;
import mods.tinker.tconstruct.blocks.TMetalBlock;
import mods.tinker.tconstruct.blocks.ToolStationBlock;
import mods.tinker.tconstruct.crafting.LiquidBlockCasting;
import mods.tinker.tconstruct.crafting.LiquidCasting;
import mods.tinker.tconstruct.crafting.PatternBuilder;
import mods.tinker.tconstruct.crafting.Smeltery;
import mods.tinker.tconstruct.crafting.ToolBuilder;
import mods.tinker.tconstruct.entity.BlueSlime;
import mods.tinker.tconstruct.entity.NitroCreeper;
import mods.tinker.tconstruct.entity.projectile.DaggerEntity; import mods.tinker.tconstruct.entity.projectile.DaggerEntity;
import mods.tinker.tconstruct.items.*; import mods.tinker.tconstruct.items.CraftingItem;
import mods.tinker.tconstruct.items.blocks.*; import mods.tinker.tconstruct.items.FilledBucket;
import mods.tinker.tconstruct.library.*; import mods.tinker.tconstruct.items.MetalPattern;
import mods.tinker.tconstruct.library.client.*; import mods.tinker.tconstruct.items.OreBerries;
import mods.tinker.tconstruct.logic.*; import mods.tinker.tconstruct.items.Pattern;
import mods.tinker.tconstruct.modifiers.*; import mods.tinker.tconstruct.items.PatternManual;
import mods.tinker.tconstruct.tools.*; import mods.tinker.tconstruct.items.StrangeFood;
import mods.tinker.tconstruct.items.TitleIcon;
import mods.tinker.tconstruct.items.ToolPart;
import mods.tinker.tconstruct.items.ToolShard;
import mods.tinker.tconstruct.items.blocks.CraftedSoilItemBlock;
import mods.tinker.tconstruct.items.blocks.GravelOreItem;
import mods.tinker.tconstruct.items.blocks.LavaTankItemBlock;
import mods.tinker.tconstruct.items.blocks.LiquidItemBlock;
import mods.tinker.tconstruct.items.blocks.MetalItemBlock;
import mods.tinker.tconstruct.items.blocks.MetalOreItemBlock;
import mods.tinker.tconstruct.items.blocks.OreberryBushItem;
import mods.tinker.tconstruct.items.blocks.OreberryBushSecondItem;
import mods.tinker.tconstruct.items.blocks.SearedTableItemBlock;
import mods.tinker.tconstruct.items.blocks.SmelteryItemBlock;
import mods.tinker.tconstruct.items.blocks.ToolStationItemBlock;
import mods.tinker.tconstruct.library.TConstructRegistry;
import mods.tinker.tconstruct.library.ToolCore;
import mods.tinker.tconstruct.library.client.TConstructClientRegistry;
import mods.tinker.tconstruct.logic.CastingBasinLogic;
import mods.tinker.tconstruct.logic.CastingTableLogic;
import mods.tinker.tconstruct.logic.FaucetLogic;
import mods.tinker.tconstruct.logic.FrypanLogic;
import mods.tinker.tconstruct.logic.LavaTankLogic;
import mods.tinker.tconstruct.logic.LiquidTextureLogic;
import mods.tinker.tconstruct.logic.MultiServantLogic;
import mods.tinker.tconstruct.logic.PartCrafterLogic;
import mods.tinker.tconstruct.logic.PatternChestLogic;
import mods.tinker.tconstruct.logic.PatternShaperLogic;
import mods.tinker.tconstruct.logic.SmelteryDrainLogic;
import mods.tinker.tconstruct.logic.SmelteryLogic;
import mods.tinker.tconstruct.logic.ToolStationLogic;
import mods.tinker.tconstruct.modifiers.ModAttack;
import mods.tinker.tconstruct.modifiers.ModBlaze;
import mods.tinker.tconstruct.modifiers.ModBoolean;
import mods.tinker.tconstruct.modifiers.ModDurability;
import mods.tinker.tconstruct.modifiers.ModElectric;
import mods.tinker.tconstruct.modifiers.ModExtraModifier;
import mods.tinker.tconstruct.modifiers.ModInteger;
import mods.tinker.tconstruct.modifiers.ModLapis;
import mods.tinker.tconstruct.modifiers.ModRedstone;
import mods.tinker.tconstruct.modifiers.ModRepair;
import mods.tinker.tconstruct.tools.Axe;
import mods.tinker.tconstruct.tools.BattleSign;
import mods.tinker.tconstruct.tools.Broadsword;
import mods.tinker.tconstruct.tools.Dagger;
import mods.tinker.tconstruct.tools.FryingPan;
import mods.tinker.tconstruct.tools.Longsword;
import mods.tinker.tconstruct.tools.Mattock;
import mods.tinker.tconstruct.tools.Pickaxe;
import mods.tinker.tconstruct.tools.PotionLauncher;
import mods.tinker.tconstruct.tools.Rapier;
import mods.tinker.tconstruct.tools.Shovel;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.material.MapColor; import net.minecraft.block.material.MapColor;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
@ -37,6 +103,7 @@ import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.ShapedOreRecipe; import net.minecraftforge.oredict.ShapedOreRecipe;
import net.minecraftforge.oredict.ShapelessOreRecipe; import net.minecraftforge.oredict.ShapelessOreRecipe;
import cpw.mods.fml.common.IFuelHandler; import cpw.mods.fml.common.IFuelHandler;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.GameRegistry;
@ -80,11 +147,13 @@ public class TContent implements IFuelHandler
public static Item pickaxeHead; public static Item pickaxeHead;
public static Item shovelHead; public static Item shovelHead;
public static Item axeHead; public static Item axeHead;
public static Item binding;
public static Item swordBlade; public static Item swordBlade;
public static Item wideGuard; public static Item wideGuard;
public static Item handGuard; public static Item handGuard;
public static Item crossbar; public static Item crossbar;
public static Item binding; public static Item knifeBlade;
public static Item frypanHead; public static Item frypanHead;
public static Item signHead; public static Item signHead;
@ -335,11 +404,13 @@ public class TContent implements IFuelHandler
pickaxeHead = new ToolPart(PHConstruct.pickaxeHead, "PickaxeHead", "_pickaxe_head").setUnlocalizedName("tconstruct.PickaxeHead"); pickaxeHead = new ToolPart(PHConstruct.pickaxeHead, "PickaxeHead", "_pickaxe_head").setUnlocalizedName("tconstruct.PickaxeHead");
shovelHead = new ToolPart(PHConstruct.shovelHead, "ShovelHead", "_shovel_head").setUnlocalizedName("tconstruct.ShovelHead"); shovelHead = new ToolPart(PHConstruct.shovelHead, "ShovelHead", "_shovel_head").setUnlocalizedName("tconstruct.ShovelHead");
axeHead = new ToolPart(PHConstruct.axeHead, "AxeHead", "_axe_head").setUnlocalizedName("tconstruct.AxeHead"); axeHead = new ToolPart(PHConstruct.axeHead, "AxeHead", "_axe_head").setUnlocalizedName("tconstruct.AxeHead");
binding = new ToolPart(PHConstruct.binding, "Binding", "_binding").setUnlocalizedName("tconstruct.Binding");
swordBlade = new ToolPart(PHConstruct.swordBlade, "SwordBlade", "_sword_blade").setUnlocalizedName("tconstruct.SwordBlade"); swordBlade = new ToolPart(PHConstruct.swordBlade, "SwordBlade", "_sword_blade").setUnlocalizedName("tconstruct.SwordBlade");
wideGuard = new ToolPart(PHConstruct.largeGuard, "LargeGuard", "_large_guard").setUnlocalizedName("tconstruct.LargeGuard"); wideGuard = new ToolPart(PHConstruct.largeGuard, "LargeGuard", "_large_guard").setUnlocalizedName("tconstruct.LargeGuard");
handGuard = new ToolPart(PHConstruct.medGuard, "MediumGuard", "_medium_guard").setUnlocalizedName("tconstruct.MediumGuard"); handGuard = new ToolPart(PHConstruct.medGuard, "MediumGuard", "_medium_guard").setUnlocalizedName("tconstruct.MediumGuard");
crossbar = new ToolPart(PHConstruct.crossbar, "Crossbar", "_crossbar").setUnlocalizedName("tconstruct.Crossbar"); crossbar = new ToolPart(PHConstruct.crossbar, "Crossbar", "_crossbar").setUnlocalizedName("tconstruct.Crossbar");
binding = new ToolPart(PHConstruct.binding, "Binding", "_binding").setUnlocalizedName("tconstruct.Binding"); knifeBlade = new ToolPart(PHConstruct.knifeBlade, "KnifeBlade", "_knife_blade").setUnlocalizedName("tconstruct.KnifeBlade");
frypanHead = new ToolPart(PHConstruct.frypanHead, "FrypanHead", "_frypan_head").setUnlocalizedName("tconstruct.FrypanHead"); frypanHead = new ToolPart(PHConstruct.frypanHead, "FrypanHead", "_frypan_head").setUnlocalizedName("tconstruct.FrypanHead");
signHead = new ToolPart(PHConstruct.signHead, "SignHead", "_battlesign_head").setUnlocalizedName("tconstruct.SignHead"); signHead = new ToolPart(PHConstruct.signHead, "SignHead", "_battlesign_head").setUnlocalizedName("tconstruct.SignHead");
@ -491,7 +562,7 @@ public class TContent implements IFuelHandler
RecipeRemover.removeShapedRecipes(removeTools);*/ RecipeRemover.removeShapedRecipes(removeTools);*/
patternOutputs = new Item[] { toolRod, pickaxeHead, shovelHead, axeHead, swordBlade, wideGuard, handGuard, crossbar, binding, frypanHead, signHead }; patternOutputs = new Item[] { toolRod, pickaxeHead, shovelHead, axeHead, swordBlade, wideGuard, handGuard, crossbar, binding, frypanHead, signHead, knifeBlade };
ToolBuilder tb = ToolBuilder.instance; ToolBuilder tb = ToolBuilder.instance;
tb.addToolRecipe(pickaxe, pickaxeHead, binding); tb.addToolRecipe(pickaxe, pickaxeHead, binding);
@ -503,7 +574,7 @@ public class TContent implements IFuelHandler
tb.addToolRecipe(frypan, frypanHead); tb.addToolRecipe(frypan, frypanHead);
tb.addToolRecipe(battlesign, signHead); tb.addToolRecipe(battlesign, signHead);
tb.addToolRecipe(mattock, axeHead, shovelHead); tb.addToolRecipe(mattock, axeHead, shovelHead);
tb.addToolRecipe(dagger, swordBlade); tb.addToolRecipe(dagger, knifeBlade, crossbar);
//tb.addToolRecipe(longbow, toolRod, toolRod); //tb.addToolRecipe(longbow, toolRod, toolRod);
//tb.addToolRecipe(lumberaxe, lumberHead); //tb.addToolRecipe(lumberaxe, lumberHead);
@ -801,6 +872,8 @@ public class TContent implements IFuelHandler
OreDictionary.registerOre("oreTin", new ItemStack(oreSlag, 1, 4)); OreDictionary.registerOre("oreTin", new ItemStack(oreSlag, 1, 4));
OreDictionary.registerOre("oreNaturalAluminum", new ItemStack(oreSlag, 1, 5)); OreDictionary.registerOre("oreNaturalAluminum", new ItemStack(oreSlag, 1, 5));
OreDictionary.registerOre("oreIron", new ItemStack(oreGravel, 1, 0));
OreDictionary.registerOre("oreGold", new ItemStack(oreGravel, 1, 1));
OreDictionary.registerOre("oreCobalt", new ItemStack(oreGravel, 1, 5)); OreDictionary.registerOre("oreCobalt", new ItemStack(oreGravel, 1, 5));
OreDictionary.registerOre("oreCopper", new ItemStack(oreGravel, 1, 2)); OreDictionary.registerOre("oreCopper", new ItemStack(oreGravel, 1, 2));
OreDictionary.registerOre("oreTin", new ItemStack(oreGravel, 1, 3)); OreDictionary.registerOre("oreTin", new ItemStack(oreGravel, 1, 3));
@ -856,6 +929,16 @@ public class TContent implements IFuelHandler
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(Block.pistonStickyBase), "slimeball", Block.pistonBase)); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(Block.pistonStickyBase), "slimeball", Block.pistonBase));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(Item.magmaCream), "slimeball", Item.blazePowder)); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(Item.magmaCream), "slimeball", Item.blazePowder));
} }
public void intermodCommunication()
{
FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(oreBerry, 1, 12));
FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(oreBerry, 1, 13));
FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(oreBerry, 1, 14));
FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(oreBerry, 1, 15));
FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(oreBerrySecond, 1, 12));
FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(oreBerrySecond, 1, 13));
}
public void modIntegration () public void modIntegration ()
{ {

View File

@ -121,13 +121,13 @@ public class TProxyCommon
"Copper", "Bronze", "Alumite", "Steel", "Blue Slime" }; "Copper", "Bronze", "Alumite", "Steel", "Blue Slime" };
public static final String[] materialTypes = new String[] { "ToolRod", "PickaxeHead", "ShovelHead", "AxeHead", "SwordBlade", "LargeGuard", "MediumGuard", "Crossbar", "Binding", "FrypanHead", public static final String[] materialTypes = new String[] { "ToolRod", "PickaxeHead", "ShovelHead", "AxeHead", "SwordBlade", "LargeGuard", "MediumGuard", "Crossbar", "Binding", "FrypanHead",
"SignHead", "LumberHead" }; "SignHead", "LumberHead", "KnifeBlade" };
public static final String[] materialNames = new String[] { " Rod", " Pickaxe Head", " Shovel Head", " Axe Head", " Sword Blade", " Wide Guard", " Hand Guard", " Crossbar", " Binding", " Pan", public static final String[] materialNames = new String[] { " Rod", " Pickaxe Head", " Shovel Head", " Axe Head", " Sword Blade", " Wide Guard", " Hand Guard", " Crossbar", " Binding", " Pan",
" Board", " Broad Axe Head" }; " Board", " Broad Axe Head", " Knife Blade" };
public static final String[] patterns = new String[] { "ingot", "rod", "pickaxe", "shovel", "axe", "swordblade", "largeguard", "mediumguard", "crossbar", "binding", "frypan", "sign" }; public static final String[] patterns = new String[] { "ingot", "rod", "pickaxe", "shovel", "axe", "swordblade", "largeguard", "mediumguard", "crossbar", "binding", "frypan", "sign", "knifeblade" };
public static final String[] patternNames = new String[] { "Ingot", "Tool Rod", "Pickaxe Head", "Shovel Head", "Axe Head", "Sword Blade", "Wide Guard", "Hand Guard", "Crossbar", "Tool Binding", public static final String[] patternNames = new String[] { "Ingot", "Tool Rod", "Pickaxe Head", "Shovel Head", "Axe Head", "Sword Blade", "Wide Guard", "Hand Guard", "Crossbar", "Tool Binding",
"Pan", "Board", "Broad Axe Head" }; "Pan", "Board", "Knife Blade" };
} }

View File

@ -258,7 +258,7 @@ public class OreberryBush extends BlockLeavesBase implements IPlantable
return; return;
} }
if (random1.nextInt(20) == 0)// && world.getBlockLightValue(x, y, z) <= 8) if (random1.nextInt(12) == 0)// && world.getBlockLightValue(x, y, z) <= 8)
{ {
int meta = world.getBlockMetadata(x, y, z); int meta = world.getBlockMetadata(x, y, z);
if (world.getFullBlockLightValue(x, y, z) < 13) if (world.getFullBlockLightValue(x, y, z) < 13)

View File

@ -13,6 +13,7 @@ import mods.tinker.tconstruct.TContent;
import mods.tinker.tconstruct.TProxyCommon; import mods.tinker.tconstruct.TProxyCommon;
import mods.tinker.tconstruct.client.blockrender.*; import mods.tinker.tconstruct.client.blockrender.*;
import mods.tinker.tconstruct.client.entityrender.*; import mods.tinker.tconstruct.client.entityrender.*;
import mods.tinker.tconstruct.client.projectilerender.DaggerRender;
import mods.tinker.tconstruct.client.projectilerender.LaunchedItemRender; import mods.tinker.tconstruct.client.projectilerender.LaunchedItemRender;
import mods.tinker.tconstruct.crafting.ToolBuilder; import mods.tinker.tconstruct.crafting.ToolBuilder;
import mods.tinker.tconstruct.entity.*; import mods.tinker.tconstruct.entity.*;
@ -71,8 +72,8 @@ public class TProxyClient extends TProxyCommon
public static Icon metalBall; public static Icon metalBall;
public static Minecraft mc; public static Minecraft mc;
public static ArmorExtended armorExtended = new ArmorExtended(); public static ArmorExtended armorExtended = new ArmorExtended();
public void registerTickHandler() public void registerTickHandler ()
{ {
TickRegistry.registerTickHandler(new TClientTickHandler(), Side.CLIENT); TickRegistry.registerTickHandler(new TClientTickHandler(), Side.CLIENT);
//TickRegistry.registerTickHandler(new TCommonTickHandler(), Side.CLIENT); //TickRegistry.registerTickHandler(new TCommonTickHandler(), Side.CLIENT);
@ -110,9 +111,9 @@ public class TProxyClient extends TProxyCommon
RenderingRegistry.registerEntityRenderingHandler(NitroCreeper.class, new RenderCreeper()); RenderingRegistry.registerEntityRenderingHandler(NitroCreeper.class, new RenderCreeper());
RenderingRegistry.registerEntityRenderingHandler(BlueSlime.class, new SlimeRender(new ModelSlime(16), new ModelSlime(0), 0.25F)); RenderingRegistry.registerEntityRenderingHandler(BlueSlime.class, new SlimeRender(new ModelSlime(16), new ModelSlime(0), 0.25F));
RenderingRegistry.registerEntityRenderingHandler(GolemBase.class, new GolemRender(0)); RenderingRegistry.registerEntityRenderingHandler(GolemBase.class, new GolemRender(0));
RenderingRegistry.registerEntityRenderingHandler(CartEntity.class, new CartRender()); RenderingRegistry.registerEntityRenderingHandler(CartEntity.class, new CartRender());
RenderingRegistry.registerEntityRenderingHandler(DaggerEntity.class, new RangedItemRender()); RenderingRegistry.registerEntityRenderingHandler(DaggerEntity.class, new DaggerRender());
RenderingRegistry.registerEntityRenderingHandler(Skyla.class, new SkylaRender()); RenderingRegistry.registerEntityRenderingHandler(Skyla.class, new SkylaRender());
RenderingRegistry.registerEntityRenderingHandler(Crystal.class, new CrystalRender()); RenderingRegistry.registerEntityRenderingHandler(Crystal.class, new CrystalRender());
RenderingRegistry.registerEntityRenderingHandler(LaunchedPotion.class, new LaunchedItemRender(Item.potion, 16384)); RenderingRegistry.registerEntityRenderingHandler(LaunchedPotion.class, new LaunchedItemRender(Item.potion, 16384));
@ -207,6 +208,7 @@ public class TProxyClient extends TProxyCommon
TConstructClientRegistry.registerManualIcon("swordblade", new ItemStack(TContent.swordBlade, 1, 2)); TConstructClientRegistry.registerManualIcon("swordblade", new ItemStack(TContent.swordBlade, 1, 2));
TConstructClientRegistry.registerManualIcon("pan", new ItemStack(TContent.frypanHead, 1, 2)); TConstructClientRegistry.registerManualIcon("pan", new ItemStack(TContent.frypanHead, 1, 2));
TConstructClientRegistry.registerManualIcon("board", new ItemStack(TContent.signHead, 1, 2)); TConstructClientRegistry.registerManualIcon("board", new ItemStack(TContent.signHead, 1, 2));
TConstructClientRegistry.registerManualIcon("knifeblade", new ItemStack(TContent.knifeBlade, 1, 2));
TConstructClientRegistry.registerManualIcon("toolrod", new ItemStack(Item.stick)); TConstructClientRegistry.registerManualIcon("toolrod", new ItemStack(Item.stick));
@ -228,6 +230,8 @@ public class TProxyClient extends TProxyCommon
ToolBuilder.instance.buildTool(new ItemStack(TContent.swordBlade, 1, 10), new ItemStack(TContent.toolRod, 1, 11), new ItemStack(TContent.handGuard, 1, 12), "")); ToolBuilder.instance.buildTool(new ItemStack(TContent.swordBlade, 1, 10), new ItemStack(TContent.toolRod, 1, 11), new ItemStack(TContent.handGuard, 1, 12), ""));
TConstructClientRegistry.registerManualIcon("rapiericon", TConstructClientRegistry.registerManualIcon("rapiericon",
ToolBuilder.instance.buildTool(new ItemStack(TContent.swordBlade, 1, 10), new ItemStack(TContent.toolRod, 1, 11), new ItemStack(TContent.crossbar, 1, 12), "")); ToolBuilder.instance.buildTool(new ItemStack(TContent.swordBlade, 1, 10), new ItemStack(TContent.toolRod, 1, 11), new ItemStack(TContent.crossbar, 1, 12), ""));
TConstructClientRegistry.registerManualIcon("daggerIcon",
ToolBuilder.instance.buildTool(new ItemStack(TContent.knifeBlade, 1, 10), new ItemStack(TContent.toolRod, 1, 11), new ItemStack(TContent.crossbar, 1, 12), ""));
TConstructClientRegistry.registerManualIcon("frypanicon", ToolBuilder.instance.buildTool(new ItemStack(TContent.frypanHead, 1, 10), new ItemStack(TContent.toolRod, 1, 11), null, "")); TConstructClientRegistry.registerManualIcon("frypanicon", ToolBuilder.instance.buildTool(new ItemStack(TContent.frypanHead, 1, 10), new ItemStack(TContent.toolRod, 1, 11), null, ""));
TConstructClientRegistry.registerManualIcon("battlesignicon", ToolBuilder.instance.buildTool(new ItemStack(TContent.signHead, 1, 10), new ItemStack(TContent.toolRod, 1, 11), null, "")); TConstructClientRegistry.registerManualIcon("battlesignicon", ToolBuilder.instance.buildTool(new ItemStack(TContent.signHead, 1, 10), new ItemStack(TContent.toolRod, 1, 11), null, ""));
} }
@ -270,16 +274,18 @@ public class TProxyClient extends TProxyCommon
TConstructClientRegistry.registerManualLargeRecipe("slimymud", slimyMud, null, slimeball, slimeball, null, slimeball, slimeball, null, dirt, sand); TConstructClientRegistry.registerManualLargeRecipe("slimymud", slimyMud, null, slimeball, slimeball, null, slimeball, slimeball, null, dirt, sand);
TConstructClientRegistry.registerManualFurnaceRecipe("slimecrystal", new ItemStack(TContent.materials, 1, 1), slimyMud); TConstructClientRegistry.registerManualFurnaceRecipe("slimecrystal", new ItemStack(TContent.materials, 1, 1), slimyMud);
TConstructClientRegistry.registerManualSmallRecipe("paperstack", new ItemStack(TContent.materials, 1, 0), paper, paper, paper, paper); TConstructClientRegistry.registerManualSmallRecipe("paperstack", new ItemStack(TContent.materials, 1, 0), paper, paper, paper, paper);
TConstructClientRegistry.registerManualLargeRecipe("mossball", new ItemStack(TContent.materials, 1, 6), mossycobble, mossycobble, mossycobble, mossycobble, mossycobble, mossycobble, mossycobble, mossycobble, mossycobble); TConstructClientRegistry.registerManualLargeRecipe("mossball", new ItemStack(TContent.materials, 1, 6), mossycobble, mossycobble, mossycobble, mossycobble, mossycobble, mossycobble,
TConstructClientRegistry.registerManualLargeRecipe("lavacrystal", new ItemStack(TContent.materials, 1, 7), blazerod, firecharge, blazerod, firecharge, new ItemStack(Item.bucketLava), firecharge, blazerod, firecharge, blazerod); mossycobble, mossycobble, mossycobble);
TConstructClientRegistry.registerManualLargeRecipe("lavacrystal", new ItemStack(TContent.materials, 1, 7), blazerod, firecharge, blazerod, firecharge, new ItemStack(Item.bucketLava),
firecharge, blazerod, firecharge, blazerod);
TConstructClientRegistry.registerManualSmallRecipe("grout", grout, sand, gravel, null, clay); TConstructClientRegistry.registerManualSmallRecipe("grout", grout, sand, gravel, null, clay);
TConstructClientRegistry.registerManualFurnaceRecipe("searedbrick", searedbrick, grout); TConstructClientRegistry.registerManualFurnaceRecipe("searedbrick", searedbrick, grout);
TConstructClientRegistry.registerManualSmallRecipe("searedbricks", new ItemStack(TContent.smeltery, 1, 2), searedbrick, searedbrick, searedbrick, searedbrick); TConstructClientRegistry.registerManualSmallRecipe("searedbricks", new ItemStack(TContent.smeltery, 1, 2), searedbrick, searedbrick, searedbrick, searedbrick);
TConstructClientRegistry.registerManualLargeRecipe("smelterycontroller", new ItemStack(TContent.smeltery, 1, 0), searedbrick, searedbrick, searedbrick, searedbrick, null, searedbrick, TConstructClientRegistry.registerManualLargeRecipe("smelterycontroller", new ItemStack(TContent.smeltery, 1, 0), searedbrick, searedbrick, searedbrick, searedbrick, null, searedbrick,
searedbrick, searedbrick, searedbrick); searedbrick, searedbrick, searedbrick);
TConstructClientRegistry.registerManualLargeRecipe("smelterydrain", new ItemStack(TContent.smeltery, 1, 1), searedbrick, null, searedbrick, searedbrick, null, searedbrick, searedbrick, TConstructClientRegistry.registerManualLargeRecipe("smelterydrain", new ItemStack(TContent.smeltery, 1, 1), searedbrick, null, searedbrick, searedbrick, null, searedbrick, searedbrick, null,
null, searedbrick); searedbrick);
TConstructClientRegistry.registerManualLargeRecipe("smelterytank1", new ItemStack(TContent.lavaTank, 1, 0), searedbrick, searedbrick, searedbrick, searedbrick, glass, searedbrick, TConstructClientRegistry.registerManualLargeRecipe("smelterytank1", new ItemStack(TContent.lavaTank, 1, 0), searedbrick, searedbrick, searedbrick, searedbrick, glass, searedbrick,
searedbrick, searedbrick, searedbrick); searedbrick, searedbrick, searedbrick);
@ -291,8 +297,8 @@ public class TProxyClient extends TProxyCommon
TConstructClientRegistry.registerManualLargeRecipe("smelterytable", new ItemStack(TContent.searedBlock, 1, 0), searedbrick, searedbrick, searedbrick, searedbrick, null, searedbrick, TConstructClientRegistry.registerManualLargeRecipe("smelterytable", new ItemStack(TContent.searedBlock, 1, 0), searedbrick, searedbrick, searedbrick, searedbrick, null, searedbrick,
searedbrick, null, searedbrick); searedbrick, null, searedbrick);
TConstructClientRegistry.registerManualLargeRecipe("smelteryfaucet", new ItemStack(TContent.searedBlock, 1, 1), searedbrick, null, searedbrick, null, searedbrick, null, null, null, null); TConstructClientRegistry.registerManualLargeRecipe("smelteryfaucet", new ItemStack(TContent.searedBlock, 1, 1), searedbrick, null, searedbrick, null, searedbrick, null, null, null, null);
TConstructClientRegistry.registerManualLargeRecipe("smelterybasin", new ItemStack(TContent.searedBlock, 1, 2), searedbrick, null, searedbrick, searedbrick, null, searedbrick, TConstructClientRegistry.registerManualLargeRecipe("smelterybasin", new ItemStack(TContent.searedBlock, 1, 2), searedbrick, null, searedbrick, searedbrick, null, searedbrick, searedbrick,
searedbrick, searedbrick, searedbrick); searedbrick, searedbrick);
//Modifier recipes //Modifier recipes
ItemStack ironpick = ToolBuilder.instance.buildTool(new ItemStack(TContent.pickaxeHead, 1, 6), new ItemStack(TContent.toolRod, 1, 2), new ItemStack(TContent.binding, 1, 6), ""); ItemStack ironpick = ToolBuilder.instance.buildTool(new ItemStack(TContent.pickaxeHead, 1, 6), new ItemStack(TContent.toolRod, 1, 2), new ItemStack(TContent.binding, 1, 6), "");
@ -347,6 +353,7 @@ public class TProxyClient extends TProxyCommon
new int[] { 1, 0, 1 }, //Broadsword new int[] { 1, 0, 1 }, //Broadsword
new int[] { 1, 1, 1 }, //Longsword new int[] { 1, 1, 1 }, //Longsword
new int[] { 1, 2, 1 }, //Rapier new int[] { 1, 2, 1 }, //Rapier
new int[] { 1, 5, 1 }, //Dagger
new int[] { 2, 3, 1 }, //Frying pan new int[] { 2, 3, 1 }, //Frying pan
new int[] { 2, 4, 1 } //Battlesign new int[] { 2, 4, 1 } //Battlesign
}; };
@ -361,6 +368,7 @@ public class TProxyClient extends TProxyCommon
new int[] { 1, 0, 2 }, new int[] { 2, 3, 3 }, //Broadsword new int[] { 1, 0, 2 }, new int[] { 2, 3, 3 }, //Broadsword
new int[] { 1, 0, 3 }, new int[] { 2, 3, 3 }, //Longsword new int[] { 1, 0, 3 }, new int[] { 2, 3, 3 }, //Longsword
new int[] { 1, 0, 4 }, new int[] { 2, 3, 3 }, //Rapier new int[] { 1, 0, 4 }, new int[] { 2, 3, 3 }, //Rapier
new int[] { 7, 0, 4 }, new int[] { 2, 3, 3 }, //Dagger
new int[] { 4, 0, 13 }, new int[] { 2, 3, 13 }, //Frying Pan new int[] { 4, 0, 13 }, new int[] { 2, 3, 13 }, //Frying Pan
new int[] { 5, 0, 13 }, new int[] { 2, 3, 13 } //Battlesign new int[] { 5, 0, 13 }, new int[] { 2, 3, 13 } //Battlesign
}; };
@ -368,7 +376,7 @@ public class TProxyClient extends TProxyCommon
static String[] toolNames = { "Repair and Modification", "Pickaxe", "Shovel", "Axe", static String[] toolNames = { "Repair and Modification", "Pickaxe", "Shovel", "Axe",
//"Lumber Axe", //"Lumber Axe",
//"Ice Axe", //"Ice Axe",
"Mattock", "Broadsword", "Longsword", "Rapier", "Frying Pan", "Battlesign" }; "Mattock", "Broadsword", "Longsword", "Rapier", "Dagger", "Frying Pan", "Battlesign" };
static String[] toolDescriptions = { static String[] toolDescriptions = {
"The main way to repair or change your tools. Place a tool and a material on the left to get started.", "The main way to repair or change your tools. Place a tool and a material on the left to get started.",
@ -381,6 +389,7 @@ public class TProxyClient extends TProxyCommon
"The Broadsword is a defensive weapon. Blocking cuts damage in half.\n\nSpecial Ability: Block\nDamage: Moderate\nDurability: High\n\nRequired parts:\n- Sword Blade\n- Wide Guard\n- Handle", "The Broadsword is a defensive weapon. Blocking cuts damage in half.\n\nSpecial Ability: Block\nDamage: Moderate\nDurability: High\n\nRequired parts:\n- Sword Blade\n- Wide Guard\n- Handle",
"The Longsword is an offensive weapon. It is often used for charging into battle at full speed.\n\nNatural Ability:\n- Charge Boost\nSpecial Ability: Lunge\n\nDamage: Moderate\nDurability: Moderate", "The Longsword is an offensive weapon. It is often used for charging into battle at full speed.\n\nNatural Ability:\n- Charge Boost\nSpecial Ability: Lunge\n\nDamage: Moderate\nDurability: Moderate",
"The Rapier is a special weapon that relies on quick strikes to defeat foes.\n\nNatural Abilities:\n- Armor Pierce\n- Quick Strike\n- Charge Boost\nSpecial Ability:\n- Backpedal\n\nDamage: High\nDurability: Low", "The Rapier is a special weapon that relies on quick strikes to defeat foes.\n\nNatural Abilities:\n- Armor Pierce\n- Quick Strike\n- Charge Boost\nSpecial Ability:\n- Backpedal\n\nDamage: High\nDurability: Low",
"The Dagger is a short blade that can be thrown.\n\nSpecial Ability:\n- Throw Item\n\nDamage: Low\nDurability: Moderate\n\nRequired parts:\n- Knife Blade\n- Crossbar\n- Handle",
"The Frying is a heavy weapon that uses sheer weight to stun foes.\n\nSpecial Ability: Block\nNatural Ability: Heavy\nShift+rClick: Place Frying Pan\nDamage: Low\nDurability: High\n\nRequired parts:\n- Pan\n- Handle", "The Frying is a heavy weapon that uses sheer weight to stun foes.\n\nSpecial Ability: Block\nNatural Ability: Heavy\nShift+rClick: Place Frying Pan\nDamage: Low\nDurability: High\n\nRequired parts:\n- Pan\n- Handle",
//"The Battlesign is an advance in weapon technology worthy of Zombie Pigmen everywhere.\n\nSpecial Ability: Block\nShift-rClick: Place sign\nDamage: Low\nDurability: Average\n\nRequired parts:\n- Board\n- Handle" //"The Battlesign is an advance in weapon technology worthy of Zombie Pigmen everywhere.\n\nSpecial Ability: Block\nShift-rClick: Place sign\nDamage: Low\nDurability: Average\n\nRequired parts:\n- Board\n- Handle"
"The Battlesign is an advance in weapon technology worthy of Zombie Pigmen everywhere.\n\nSpecial Ability: Block\nDamage: Low\nDurability: Average\n\nRequired parts:\n- Sign Board\n- Handle" }; "The Battlesign is an advance in weapon technology worthy of Zombie Pigmen everywhere.\n\nSpecial Ability: Block\nDamage: Low\nDurability: Average\n\nRequired parts:\n- Sign Board\n- Handle" };
@ -407,7 +416,11 @@ public class TProxyClient extends TProxyCommon
{ {
TConstructClientRegistry.addMaterialRenderMapping(partIter, "tinker", partTypes[partIter], true); TConstructClientRegistry.addMaterialRenderMapping(partIter, "tinker", partTypes[partIter], true);
} }
for (int effectIter = 0; effectIter < effectTypes.length; effectIter++) for (int effectIter = 0; effectIter < 2; effectIter++)
{
TConstructClientRegistry.addEffectRenderMapping(effectIter, "tinker", effectTypes[effectIter], true);
}
for (int effectIter = 3; effectIter < effectTypes.length; effectIter++)
{ {
TConstructClientRegistry.addEffectRenderMapping(effectIter, "tinker", effectTypes[effectIter], true); TConstructClientRegistry.addEffectRenderMapping(effectIter, "tinker", effectTypes[effectIter], true);
} }

View File

@ -1,4 +1,4 @@
package mods.tinker.tconstruct.client.entityrender; package mods.tinker.tconstruct.client.projectilerender;
import java.util.Random; import java.util.Random;
@ -24,7 +24,7 @@ import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class RangedItemRender extends Render public class DaggerRender extends Render
{ {
/** The RNG used in RenderItem (for bobbing itemstacks on the ground) */ /** The RNG used in RenderItem (for bobbing itemstacks on the ground) */
@ -34,7 +34,7 @@ public class RangedItemRender extends Render
/** Defines the zLevel of rendering of item on GUI. */ /** Defines the zLevel of rendering of item on GUI. */
public float zLevel = 0.0F; public float zLevel = 0.0F;
public RangedItemRender() public DaggerRender()
{ {
this.shadowSize = 0.15F; this.shadowSize = 0.15F;
this.shadowOpaque = 0.75F; this.shadowOpaque = 0.75F;
@ -51,8 +51,8 @@ public class RangedItemRender extends Render
if (itemstack.getItem() != null) if (itemstack.getItem() != null)
{ {
GL11.glPushMatrix(); GL11.glPushMatrix();
float f2 = shouldBob() ? MathHelper.sin(((float) rotator.age + par9) / 10.0F + rotator.hoverStart) * 0.1F + 0.1F : 0F; float f2 = shouldBob() ? MathHelper.sin(((float) rotator.boomerangRotation + par9 * 0.2f) / 10.0F + rotator.hoverStart) * 0.1F + 0.1F : 0F;
float f3 = (((float) rotator.age + par9) / 20.0F + rotator.hoverStart) * (180F / (float) Math.PI); float f3 = (((float) rotator.age + par9 * 0.2f) / 20.0F + rotator.boomerangRotation) * (180F / (float) Math.PI);
byte b0 = getMiniBlockCount(itemstack); byte b0 = getMiniBlockCount(itemstack);
GL11.glTranslatef((float) par2, (float) par4 + f2, (float) par6); GL11.glTranslatef((float) par2, (float) par4 + f2, (float) par6);
@ -66,7 +66,7 @@ public class RangedItemRender extends Render
if (itemstack.getItem().requiresMultipleRenderPasses()) if (itemstack.getItem().requiresMultipleRenderPasses())
{ {
GL11.glScalef(0.5128205F, 0.5128205F, 0.5128205F); //GL11.glScalef(0.5128205F, 0.5128205F, 0.5128205F);
GL11.glTranslatef(0.0F, -0.05F, 0.0F); GL11.glTranslatef(0.0F, -0.05F, 0.0F);
this.loadTexture("/gui/items.png"); this.loadTexture("/gui/items.png");
@ -131,13 +131,13 @@ public class RangedItemRender extends Render
/** /**
* Renders a dropped item * Renders a dropped item
*/ */
private void renderDroppedItem (RotatingBase par1EntityItem, Icon par2Icon, int par3, float par4, float par5, float par6, float par7) private void renderDroppedItem (RotatingBase dagger, Icon par2Icon, int par3, float par4, float par5, float par6, float par7)
{ {
Tessellator tessellator = Tessellator.instance; Tessellator tessellator = Tessellator.instance;
if (par2Icon == null) if (par2Icon == null)
{ {
par2Icon = this.renderManager.renderEngine.getMissingIcon(par1EntityItem.getEntityItem().getItemSpriteNumber()); par2Icon = this.renderManager.renderEngine.getMissingIcon(dagger.getEntityItem().getItemSpriteNumber());
} }
float f4 = par2Icon.getMinU(); float f4 = par2Icon.getMinU();
@ -150,11 +150,13 @@ public class RangedItemRender extends Render
float f11; float f11;
GL11.glPushMatrix(); GL11.glPushMatrix();
//float rotation = dagger.prevBoomerangRotation + (dagger.boomerangRotation - dagger.prevBoomerangRotation) * par7 * 0.001F;
GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F); float rotation = dagger.prevRotationPitch + (dagger.rotationPitch - dagger.prevRotationPitch) * par7;
GL11.glRotatef(dagger.rotationYaw + 90, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(-rotation * 15, 0.0F, 0.0F, 1.0F);
float f12 = 0.0625F; float f12 = 0.0625F;
f11 = 0.021875F; f11 = 0.021875F;
ItemStack itemstack = par1EntityItem.getEntityItem(); ItemStack itemstack = dagger.getEntityItem();
int j = itemstack.stackSize; int j = itemstack.stackSize;
byte b0 = getMiniItemCount(itemstack); byte b0 = getMiniItemCount(itemstack);
@ -162,20 +164,7 @@ public class RangedItemRender extends Render
for (int k = 0; k < b0; ++k) for (int k = 0; k < b0; ++k)
{ {
GL11.glTranslatef(0.0F, 0.0F, f12 + f11); GL11.glTranslatef(0f, 0f, f12 + f11);
// Makes items offset when in 3D, like when in 2D, looks much
// better. Considered a vanilla bug...
if (k > 0 && shouldSpreadItems())
{
float x = (random.nextFloat() * 2.0F - 1.0F) * 0.3F / 0.5F;
float y = (random.nextFloat() * 2.0F - 1.0F) * 0.3F / 0.5F;
float z = (random.nextFloat() * 2.0F - 1.0F) * 0.3F / 0.5F;
GL11.glTranslatef(x, y, f12 + f11);
}
else
{
GL11.glTranslatef(0f, 0f, f12 + f11);
}
if (itemstack.getItemSpriteNumber() == 0) if (itemstack.getItemSpriteNumber() == 0)
{ {

View File

@ -26,7 +26,7 @@ public class DaggerRenderOld extends RangedRenderBase
GL11.glRotatef(f, 0.0F, 1.0F, 0.0F); GL11.glRotatef(f, 0.0F, 1.0F, 0.0F);
float f2 = dagger.prevRotationPitch + (dagger.rotationPitch - dagger.prevRotationPitch) * f1; float f2 = dagger.prevRotationPitch + (dagger.rotationPitch - dagger.prevRotationPitch) * f1;
GL11.glRotatef(-f2, 1.0F, 0.0F, 0.0F); GL11.glRotatef(-f2, 1.0F, 0.0F, 0.0F);
if(!dagger.inGround) if(!dagger.onGround)
{ {
float f3 = dagger.prevBoomerangRotation + (dagger.boomerangRotation - dagger.prevBoomerangRotation) * f1 * 1.1F; float f3 = dagger.prevBoomerangRotation + (dagger.boomerangRotation - dagger.prevBoomerangRotation) * f1 * 1.1F;
GL11.glRotatef(f3, 1.0F, 0.0F, 0.0F); GL11.glRotatef(f3, 1.0F, 0.0F, 0.0F);

View File

@ -1,28 +1,16 @@
package mods.tinker.tconstruct.entity.projectile; package mods.tinker.tconstruct.entity.projectile;
import mods.tinker.tconstruct.library.AbilityHelper;
import mods.tinker.tconstruct.library.ToolCore; import mods.tinker.tconstruct.library.ToolCore;
import mods.tinker.tconstruct.tools.Dagger; import mods.tinker.tconstruct.tools.Dagger;
import net.minecraft.block.Block;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.stats.AchievementList;
import net.minecraft.stats.StatList;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World; import net.minecraft.world.World;
import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteArrayDataOutput;
import cpw.mods.fml.common.registry.IEntityAdditionalSpawnData;
public class DaggerEntity extends RotatingBase public class DaggerEntity extends RotatingBase
{ {
@ -34,7 +22,7 @@ public class DaggerEntity extends RotatingBase
public DaggerEntity(ItemStack itemstack, World world, EntityPlayer entityplayer) public DaggerEntity(ItemStack itemstack, World world, EntityPlayer entityplayer)
{ {
super(world, entityplayer, 0.75F, 0.8F); super(world, entityplayer, 0.75F, 0.8F);
System.out.println("Stack: "+itemstack); //System.out.println("Stack: "+itemstack);
returnStackSlot = entityplayer.inventory.currentItem; returnStackSlot = entityplayer.inventory.currentItem;
returnStack = itemstack; returnStack = itemstack;
} }
@ -52,10 +40,6 @@ public class DaggerEntity extends RotatingBase
@Override @Override
public void onHit (MovingObjectPosition movingobjectposition) public void onHit (MovingObjectPosition movingobjectposition)
{ {
if (worldObj.isRemote)
{
return;
}
if (movingobjectposition.entityHit != null) if (movingobjectposition.entityHit != null)
{ {
if (movingobjectposition.entityHit.attackEntityFrom(DamageSource.causeMobDamage(owner), damageDealt)) if (movingobjectposition.entityHit.attackEntityFrom(DamageSource.causeMobDamage(owner), damageDealt))
@ -71,13 +55,12 @@ public class DaggerEntity extends RotatingBase
{ {
Dagger dagger = (Dagger) returnStack.getItem(); Dagger dagger = (Dagger) returnStack.getItem();
this.hitEntity(returnStack, (EntityLiving) movingobjectposition.entityHit, owner, dagger); this.hitEntity(returnStack, (EntityLiving) movingobjectposition.entityHit, owner, dagger);
if (returnStack.getItemDamage() >= returnStack.getMaxDamage())
returnStack.stackSize--;
} }
} }
} }
else else
{ {
onGround = true;
xTile = movingobjectposition.blockX; xTile = movingobjectposition.blockX;
yTile = movingobjectposition.blockY; yTile = movingobjectposition.blockY;
zTile = movingobjectposition.blockZ; zTile = movingobjectposition.blockZ;
@ -90,174 +73,22 @@ public class DaggerEntity extends RotatingBase
posY -= (motionY / (double) f) * 0.05D; posY -= (motionY / (double) f) * 0.05D;
posZ -= (motionZ / (double) f) * 0.05D; posZ -= (motionZ / (double) f) * 0.05D;
worldObj.playSoundAtEntity(this, "random.drr", 1.0F, 1.2F / (rand.nextFloat() * 0.2F + 0.9F)); worldObj.playSoundAtEntity(this, "random.drr", 1.0F, 1.2F / (rand.nextFloat() * 0.2F + 0.9F));
inGround = true;
arrowShake = 7; arrowShake = 7;
returnStack.damageItem(1, owner); if (!worldObj.isRemote)
AbilityHelper.damageTool(returnStack, 1, owner, false);
} }
} }
public boolean hitEntity (ItemStack stack, EntityLiving mob, EntityLiving player, ToolCore weapon) public boolean hitEntity (ItemStack stack, EntityLiving mob, EntityPlayer player, ToolCore weapon)
{ {
if (player.canAttackWithItem()) if (!worldObj.isRemote && player.canAttackWithItem())
{ {
int var2 = ((EntityPlayer) player).inventory.getDamageVsEntity(mob); AbilityHelper.onLeftClickEntity(stack, player, mob, weapon);
if (player.isPotionActive(Potion.damageBoost))
{
var2 += 3 << player.getActivePotionEffect(Potion.damageBoost).getAmplifier();
}
if (player.isPotionActive(Potion.weakness))
{
var2 -= 2 << mob.getActivePotionEffect(Potion.weakness).getAmplifier();
}
int var3 = 0;
int var4 = 0;
if (mob instanceof EntityLiving)
{
var4 = EnchantmentHelper.getEnchantmentModifierLiving(player, mob);
var3 += EnchantmentHelper.getKnockbackModifier(player, mob);
}
if (this.isSprinting())
{
++var3;
}
if (var2 > 0 || var4 > 0)
{
boolean var5 = this.fallDistance > 0.0F && !this.onGround && !mob.isOnLadder() && !this.isInWater() && !mob.isPotionActive(Potion.blindness) && this.ridingEntity == null
&& player instanceof EntityLiving;
if (var5)
{
var2 += this.rand.nextInt(var2 / 2 + 2);
}
var2 += var4;
boolean var6 = mob.attackEntityFrom(DamageSource.causePlayerDamage((EntityPlayer) player), var2);
if (var6)
{
if (var3 > 0)
{
mob.addVelocity((double) (-MathHelper.sin(this.rotationYaw * (float) Math.PI / 180.0F) * (float) var3 * 0.5F), 0.1D,
(double) (MathHelper.cos(this.rotationYaw * (float) Math.PI / 180.0F) * (float) var3 * 0.5F));
this.motionX *= 0.6D;
this.motionZ *= 0.6D;
this.setSprinting(false);
}
if (var5)
{
((EntityPlayer) player).onCriticalHit(mob);
}
if (var4 > 0)
{
((EntityPlayer) player).onEnchantmentCritical(mob);
}
if (var2 >= 18)
{
((EntityPlayer) player).triggerAchievement(AchievementList.overkill);
}
((EntityPlayer) player).setLastAttackingEntity(mob);
}
ItemStack var7 = ((EntityPlayer) player).getCurrentEquippedItem();
if (mob instanceof EntityLiving)
{
((EntityPlayer) player).addStat(StatList.damageDealtStat, var2);
//int var8 = EnchantmentHelper.func_90036_a(player);
/*if (var8 > 0)
{
mob.setFire(var8 * 4);
}*/
}
}
World world = player.worldObj;
/*if (weapon.headType == weapon.handleType)
{
weapon.attacks(stack, world, player, mob, weapon.getHeadType());
}
else
{
if (weapon.random.nextInt(100) + 1 <= 80)
{
weapon.attacks(stack, world, player, mob, weapon.getHeadType());
}
if (weapon.random.nextInt(100) + 1 <= 20)
{
weapon.attacks(stack, world, player, mob, weapon.getHandleType());
}
}
int unbreaking = weapon.headUnbreaking;
if (weapon.handleUnbreaking > unbreaking)
unbreaking = weapon.handleUnbreaking;
if (weapon.random.nextInt(100) + 1 <= 100 - (unbreaking * 10))
{
stack.damageItem(1, mob);
}*/
} }
this.checkEnchants(stack, mob);
return true; return true;
} }
public boolean checkEnchants (ItemStack itemstack, EntityLiving mob)
{
int freezeCheck = 0;
int poisonCheck = 0;
NBTTagList nbttaglist = itemstack.getEnchantmentTagList();
if (nbttaglist == null)
{
return false;
}
for (int j = 0; j < nbttaglist.tagCount(); j++)
{
short word0 = ((NBTTagCompound) nbttaglist.tagAt(j)).getShort("id");
short word1 = ((NBTTagCompound) nbttaglist.tagAt(j)).getShort("lvl");
if (word0 == 42)
{
freezeCheck = word1;
}
else if (word0 == 41)
{
poisonCheck = word1;
if (rand.nextInt(5) == 0)
{
if (poisonCheck > 0)
((NBTTagCompound) nbttaglist.tagAt(j)).setInteger("lvl", poisonCheck - 1);
}
}
}
if (freezeCheck > 0)
{
//mob.freeze(freezeCheck * 50);
}
if (poisonCheck > 0)
{
mob.addPotionEffect(new PotionEffect(Potion.poison.id, poisonCheck * 5, 0));
}
return false;
}
protected void dealFireDamage (int i) protected void dealFireDamage (int i)
{ {
} }
/*public void onUpdate ()
{
super.onUpdate();
}*/
} }

View File

@ -19,6 +19,7 @@ import net.minecraft.world.World;
import cpw.mods.fml.common.registry.IEntityAdditionalSpawnData; import cpw.mods.fml.common.registry.IEntityAdditionalSpawnData;
public class RotatingBase extends Entity public class RotatingBase extends Entity
implements IEntityAdditionalSpawnData
{ {
public RotatingBase(World world) public RotatingBase(World world)
@ -35,7 +36,7 @@ public class RotatingBase extends Entity
yTile = -1; yTile = -1;
zTile = -1; zTile = -1;
inTile = 0; inTile = 0;
inGround = false; onGround = false;
arrowShake = 0; arrowShake = 0;
ticksInAir = 0; ticksInAir = 0;
setSize(0.5F, 0.5F); setSize(0.5F, 0.5F);
@ -48,7 +49,7 @@ public class RotatingBase extends Entity
yOffset = 0.0F; yOffset = 0.0F;
} }
public RotatingBase(World world, EntityLiving entityliving, float f, float f1) public RotatingBase(World world, EntityPlayer entityliving, float f, float f1)
{ {
this(world); this(world);
owner = entityliving; owner = entityliving;
@ -60,16 +61,27 @@ public class RotatingBase extends Entity
yOffset = 0.0F; yOffset = 0.0F;
motionX = -MathHelper.sin((rotationYaw / 180F) * 3.141593F) * MathHelper.cos((rotationPitch / 180F) * 3.141593F); motionX = -MathHelper.sin((rotationYaw / 180F) * 3.141593F) * MathHelper.cos((rotationPitch / 180F) * 3.141593F);
motionZ = MathHelper.cos((rotationYaw / 180F) * 3.141593F) * MathHelper.cos((rotationPitch / 180F) * 3.141593F); motionZ = MathHelper.cos((rotationYaw / 180F) * 3.141593F) * MathHelper.cos((rotationPitch / 180F) * 3.141593F);
motionY = -MathHelper.sin((rotationPitch / 180F) * 3.141593F); motionY = -MathHelper.sin((rotationPitch / 180F) * 3.141593F - 0.2f);
setArrowHeading(motionX, motionY, motionZ, f, f1); setArrowHeading(motionX, motionY, motionZ, f, f1);
} }
/*public void setOnGround(boolean flag)
{
onGround = flag;
this.dataWatcher.updateObject(6, Byte.valueOf((byte) (flag == true ? 1 : 0)));
}
public boolean getOnGround()
{
return this.dataWatcher.getWatchableObjectByte(0) == 1 ? true : false;
}*/
@Override @Override
protected void entityInit() protected void entityInit()
{ {
} }
public void damageDagger (int i, boolean flag) public void damageItem (int i, boolean flag)
{ {
if (!flag) if (!flag)
{ {
@ -82,7 +94,7 @@ public class RotatingBase extends Entity
worldObj.spawnParticle("snowballpoof", posX, posY, posZ, 0.0D, 0.0D, 0.0D); worldObj.spawnParticle("snowballpoof", posX, posY, posZ, 0.0D, 0.0D, 0.0D);
} }
kill(); //kill();
} }
} }
@ -164,12 +176,12 @@ public class RotatingBase extends Entity
{ {
arrowShake--; arrowShake--;
} }
if (inGround) if (onGround)
{ {
int i = worldObj.getBlockId(xTile, yTile, zTile); int i = worldObj.getBlockId(xTile, yTile, zTile);
if (i != inTile) if (i != inTile)
{ {
inGround = false; onGround = false;
motionX *= rand.nextFloat() * 0.2F; motionX *= rand.nextFloat() * 0.2F;
motionY *= rand.nextFloat() * 0.2F; motionY *= rand.nextFloat() * 0.2F;
motionZ *= rand.nextFloat() * 0.2F; motionZ *= rand.nextFloat() * 0.2F;
@ -178,7 +190,10 @@ public class RotatingBase extends Entity
} }
else else
{ {
ticksInGround++; /*this.motionX = 0;
this.motionY = 0;
this.motionZ = 0;*/
/*ticksInGround++;
if (ticksInGround == 1200) if (ticksInGround == 1200)
{ {
setDead(); setDead();
@ -186,14 +201,15 @@ public class RotatingBase extends Entity
if (ticksInGround == maxGroundTicks) if (ticksInGround == maxGroundTicks)
{ {
setDead(); setDead();
} }*/
if (!hasHitGround) if (!hasHitGround)
{ {
hasHitGround = true; hasHitGround = true;
damageDagger(1, true); damageItem(1, true);
} }
return; return;
} }
return;
} }
else else
{ {
@ -278,7 +294,7 @@ public class RotatingBase extends Entity
motionZ *= f2; motionZ *= f2;
motionY -= f4; motionY -= f4;
setPosition(posX, posY, posZ); setPosition(posX, posY, posZ);
if (!inGround) if (!onGround)
{ {
prevBoomerangRotation = boomerangRotation; prevBoomerangRotation = boomerangRotation;
for (boomerangRotation += 36F; boomerangRotation > 360F; boomerangRotation -= 360F) for (boomerangRotation += 36F; boomerangRotation > 360F; boomerangRotation -= 360F)
@ -324,7 +340,7 @@ public class RotatingBase extends Entity
tags.setShort("zTile", (short) zTile); tags.setShort("zTile", (short) zTile);
tags.setByte("inTile", (byte) inTile); tags.setByte("inTile", (byte) inTile);
tags.setByte("shake", (byte) arrowShake); tags.setByte("shake", (byte) arrowShake);
tags.setByte("inGround", (byte) (inGround ? 1 : 0)); tags.setByte("onGround", (byte) (onGround ? 1 : 0));
} }
public void readEntityFromNBT (NBTTagCompound tags) public void readEntityFromNBT (NBTTagCompound tags)
@ -337,7 +353,7 @@ public class RotatingBase extends Entity
zTile = tags.getShort("zTile"); zTile = tags.getShort("zTile");
inTile = tags.getByte("inTile") & 0xff; inTile = tags.getByte("inTile") & 0xff;
arrowShake = tags.getByte("shake") & 0xff; arrowShake = tags.getByte("shake") & 0xff;
inGround = tags.getByte("inGround") == 1; onGround = tags.getByte("onGround") == 1;
} }
public void onCollideWithPlayer (EntityPlayer entityplayer) public void onCollideWithPlayer (EntityPlayer entityplayer)
@ -351,7 +367,7 @@ public class RotatingBase extends Entity
{ {
return; return;
} }
if (!flag || inGround && arrowShake <= 0) if (!flag || onGround && arrowShake <= 0)
{ {
if (!flag || returnsTo != null && !returnsTo.isDead && returnsTo != entityplayer) if (!flag || returnsTo != null && !returnsTo.isDead && returnsTo != entityplayer)
{ {
@ -393,9 +409,67 @@ public class RotatingBase extends Entity
protected int yTile; protected int yTile;
protected int zTile; protected int zTile;
protected int inTile; protected int inTile;
public boolean inGround;
public int arrowShake; public int arrowShake;
public EntityLiving owner; public EntityPlayer owner;
protected int ticksInGround; protected int ticksInGround;
protected int ticksInAir; protected int ticksInAir;
@Override
public void writeSpawnData (ByteArrayDataOutput data)
{
NBTTagCompound tags = returnStack.getTagCompound().getCompoundTag("InfiTool");
data.writeShort(returnStack.itemID);
data.writeFloat(rotationYaw);
data.writeInt(tags.getInteger("RenderHandle"));
data.writeInt(tags.getInteger("RenderHead"));
data.writeInt(tags.getInteger("RenderAccessory"));
int effects = 0;
if (tags.hasKey("Effect1"))
effects++;
if (tags.hasKey("Effect2"))
effects++;
if (tags.hasKey("Effect3"))
effects++;
if (tags.hasKey("Effect4"))
effects++;
if (tags.hasKey("Effect5"))
effects++;
if (tags.hasKey("Effect6"))
effects++;
data.writeInt(effects);
switch (effects)
{
case 6: data.writeInt(tags.getInteger("Effect6"));
case 5: data.writeInt(tags.getInteger("Effect5"));
case 4: data.writeInt(tags.getInteger("Effect4"));
case 3: data.writeInt(tags.getInteger("Effect3"));
case 2: data.writeInt(tags.getInteger("Effect2"));
case 1: data.writeInt(tags.getInteger("Effect1"));
}
}
@Override
public void readSpawnData (ByteArrayDataInput data)
{
returnStack = new ItemStack(data.readShort(), 1, 0);
rotationYaw = data.readFloat();
NBTTagCompound compound = new NBTTagCompound();
NBTTagCompound toolTag = new NBTTagCompound();
toolTag.setInteger("RenderHead", data.readInt());
toolTag.setInteger("RenderHandle", data.readInt());
toolTag.setInteger("RenderAccessory", data.readInt());
switch (data.readInt())
{
case 6: toolTag.setInteger("Effect6", data.readInt());
case 5: toolTag.setInteger("Effect5", data.readInt());
case 4: toolTag.setInteger("Effect4", data.readInt());
case 3: toolTag.setInteger("Effect3", data.readInt());
case 2: toolTag.setInteger("Effect2", data.readInt());
case 1: toolTag.setInteger("Effect1", data.readInt());
}
compound.setCompoundTag("InfiTool", toolTag);
returnStack.setTagCompound(compound);
}
} }

View File

@ -36,7 +36,7 @@ public class Pattern extends CraftingItem
} }
public static final String[] patternName = new String[] { public static final String[] patternName = new String[] {
"ingot", "rod", "pickaxe", "shovel", "axe", "swordblade", "largeguard", "mediumguard", "crossbar", "binding", "frypan", "sign" }; "ingot", "rod", "pickaxe", "shovel", "axe", "swordblade", "largeguard", "mediumguard", "crossbar", "binding", "frypan", "sign", "knifeblade" };
/*@SideOnly(Side.CLIENT) /*@SideOnly(Side.CLIENT)
public void updateIcons(IconRegister iconRegister) public void updateIcons(IconRegister iconRegister)
@ -97,7 +97,7 @@ public class Pattern extends CraftingItem
case 9: return 1; case 9: return 1;
case 10: return 2; case 10: return 2;
case 11: return 2; case 11: return 2;
case 12: return 10; case 12: return 1;
default: return 0; default: return 0;
} }
} }

View File

@ -247,7 +247,7 @@ public class AbilityHelper
NBTTagCompound tags = stack.getTagCompound(); NBTTagCompound tags = stack.getTagCompound();
damageTool(stack, dam, tags, entity, ignoreCharge, true); damageTool(stack, dam, tags, entity, ignoreCharge, true);
} }
public static void healTool (ItemStack stack, int dam, EntityLiving entity, boolean ignoreCharge, boolean updateDamageBar) public static void healTool (ItemStack stack, int dam, EntityLiving entity, boolean ignoreCharge, boolean updateDamageBar)
{ {
NBTTagCompound tags = stack.getTagCompound(); NBTTagCompound tags = stack.getTagCompound();
@ -265,7 +265,7 @@ public class AbilityHelper
{ {
tags.getCompoundTag("InfiTool").setInteger("Damage", 0); tags.getCompoundTag("InfiTool").setInteger("Damage", 0);
if (updateDamageBar) if (updateDamageBar)
stack.setItemDamage(0); stack.setItemDamage(0);
} }
else if (damageTrue > maxDamage) else if (damageTrue > maxDamage)
@ -282,7 +282,7 @@ public class AbilityHelper
int stackDamage = stack.getItemDamage(); int stackDamage = stack.getItemDamage();
if (updateDamageBar && toolDamage != stackDamage) if (updateDamageBar && toolDamage != stackDamage)
{ {
stack.setItemDamage((damage * 100 / maxDamage) + 1); stack.setItemDamage((damage * 100 / maxDamage) + 1);
} }
} }
} }
@ -493,58 +493,61 @@ public class AbilityHelper
entityitem.onCollideWithPlayer(player); entityitem.onCollideWithPlayer(player);
} }
} }
/* Ranged weapons */ /* Ranged weapons */
public static void forceAddToInv(EntityPlayer entityplayer, ItemStack itemstack, int i, boolean flag) public static void forceAddToInv (EntityPlayer entityplayer, ItemStack itemstack, int i, boolean flag)
{ {
ItemStack itemstack1 = entityplayer.inventory.getStackInSlot(i); ItemStack itemstack1 = entityplayer.inventory.getStackInSlot(i);
entityplayer.inventory.setInventorySlotContents(i, itemstack); entityplayer.inventory.setInventorySlotContents(i, itemstack);
if(itemstack1 != null) if (itemstack1 != null)
{ {
addToInv(entityplayer, itemstack1, flag); addToInv(entityplayer, itemstack1, flag);
} }
} }
public static boolean addToInv(EntityPlayer entityplayer, ItemStack itemstack, boolean flag) public static boolean addToInv (EntityPlayer entityplayer, ItemStack itemstack, boolean flag)
{ {
return addToInv(entityplayer, itemstack, entityplayer.inventory.currentItem, flag); return addToInv(entityplayer, itemstack, entityplayer.inventory.currentItem, flag);
} }
public static boolean addToInv(EntityPlayer entityplayer, ItemStack itemstack, int i, boolean flag) public static boolean addToInv (EntityPlayer entityplayer, ItemStack itemstack, int i, boolean flag)
{ {
ItemStack itemstack1 = entityplayer.inventory.getStackInSlot(i); ItemStack itemstack1 = entityplayer.inventory.getStackInSlot(i);
boolean flag1; boolean flag1;
if(itemstack1 == null) if (itemstack1 == null)
{ {
entityplayer.inventory.setInventorySlotContents(i, itemstack); entityplayer.inventory.setInventorySlotContents(i, itemstack);
flag1 = true; flag1 = true;
} else }
else
{ {
flag1 = entityplayer.inventory.addItemStackToInventory(itemstack); flag1 = entityplayer.inventory.addItemStackToInventory(itemstack);
} }
if(flag && !flag1) if (flag && !flag1)
{ {
addItemStackToWorld(entityplayer.worldObj, (float)Math.floor(entityplayer.posX), (float)Math.floor(entityplayer.posY), (float)Math.floor(entityplayer.posZ), itemstack); addItemStackToWorld(entityplayer.worldObj, (float) Math.floor(entityplayer.posX), (float) Math.floor(entityplayer.posY), (float) Math.floor(entityplayer.posZ), itemstack);
return true; return true;
} else }
else
{ {
return flag1; return flag1;
} }
} }
public static EntityItem addItemStackToWorld(World world, float f, float f1, float f2, ItemStack itemstack) public static EntityItem addItemStackToWorld (World world, float f, float f1, float f2, ItemStack itemstack)
{ {
return addItemStackToWorld(world, f, f1, f2, itemstack, false); return addItemStackToWorld(world, f, f1, f2, itemstack, false);
} }
public static EntityItem addItemStackToWorld(World world, float f, float f1, float f2, ItemStack itemstack, boolean flag) public static EntityItem addItemStackToWorld (World world, float f, float f1, float f2, ItemStack itemstack, boolean flag)
{ {
EntityItem entityitem; EntityItem entityitem;
if(flag) if (flag)
{ {
entityitem = new EntityItem(world, f, f1, f2, itemstack); entityitem = new EntityItem(world, f, f1, f2, itemstack);
} else }
else
{ {
float f3 = 0.7F; float f3 = 0.7F;
float f4 = random.nextFloat() * f3 + (1.0F - f3) * 0.5F; float f4 = random.nextFloat() * f3 + (1.0F - f3) * 0.5F;

View File

@ -551,6 +551,11 @@ public abstract class ToolCore extends Item implements ICustomElectricItem, IBox
{ {
return false; return false;
} }
public boolean rangedTool ()
{
return false;
}
public float chargeAttack () public float chargeAttack ()
{ {

View File

@ -62,7 +62,7 @@ public class MultiServantLogic extends TileEntity
public boolean verifyMaster(int x, int y, int z) public boolean verifyMaster(int x, int y, int z)
{ {
if (master.equals(x, y, z) && worldObj.getBlockId(x, y, z) == masterID && worldObj.getBlockMetadata(x, y, z) == masterMeat) if (master.equalCoords(x, y, z) && worldObj.getBlockId(x, y, z) == masterID && worldObj.getBlockMetadata(x, y, z) == masterMeat)
return true; return true;
else else
return false; return false;

View File

@ -47,7 +47,8 @@ public class ModAttack extends ToolMod
if (tags.hasKey(key)) if (tags.hasKey(key))
{ {
int amount = 24; int amount = 24;
if (((ToolCore) tool.getItem()).pierceArmor()) ToolCore toolItem = (ToolCore) tool.getItem();
if (toolItem.pierceArmor() || toolItem.rangedTool())
amount = 36; amount = 36;
int[] keyPair = tags.getIntArray(key); int[] keyPair = tags.getIntArray(key);

View File

@ -242,7 +242,7 @@ public class TPlayerHandler implements IPlayerTracker
Random rand = new Random(); Random rand = new Random();
/* Bows */ /* Bows */
@ForgeSubscribe /*@ForgeSubscribe
public void arrowShoot (ArrowLooseEvent event) public void arrowShoot (ArrowLooseEvent event)
{ {
event.setCanceled(true); event.setCanceled(true);
@ -305,5 +305,5 @@ public class TPlayerHandler implements IPlayerTracker
event.entityPlayer.worldObj.spawnEntityInWorld(entityarrow); event.entityPlayer.worldObj.spawnEntityInWorld(entityarrow);
} }
} }
} }*/
} }

View File

@ -6,6 +6,7 @@ import mods.tinker.tconstruct.TContent;
import mods.tinker.tconstruct.entity.projectile.DaggerEntity; import mods.tinker.tconstruct.entity.projectile.DaggerEntity;
import mods.tinker.tconstruct.library.Weapon; import mods.tinker.tconstruct.library.Weapon;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -17,37 +18,37 @@ public class Dagger extends Weapon
super(id, 1); super(id, 1);
} }
public ItemStack onItemRightClick (ItemStack itemstack, World world, EntityPlayer entityplayer) public ItemStack onItemRightClick (ItemStack itemstack, World world, EntityPlayer player)
{ {
ItemStack is = itemstack.copy(); player.setItemInUse(itemstack, this.getMaxItemUseDuration(itemstack));
is.stackSize--; return itemstack;
}
public ItemStack onEaten (ItemStack itemstack, World world, EntityPlayer player)
{
ItemStack stack = itemstack.copy();
if (!world.isRemote) if (!world.isRemote)
{ {
DaggerEntity dagger = new DaggerEntity(itemstack, world, entityplayer); DaggerEntity dagger = new DaggerEntity(stack, world, player);
world.spawnEntityInWorld(dagger); world.spawnEntityInWorld(dagger);
} }
return is; itemstack.stackSize--;
return itemstack;
} }
@SideOnly(Side.CLIENT) public EnumAction getItemUseAction(ItemStack par1ItemStack)
@Override
public int getRenderPasses (int metadata)
{ {
return 8; return EnumAction.bow;
} }
@Override public int getMaxItemUseDuration (ItemStack stack)
public int getPartAmount()
{ {
return 2; return 10;
} }
@Override public boolean rangedTool ()
public void registerPartPaths (int index, String[] location)
{ {
headStrings.put(index, location[0]); return true;
brokenHeadStrings.put(index, location[1]);
handleStrings.put(index, location[2]);
} }
@Override @Override
@ -61,6 +62,8 @@ public class Dagger extends Weapon
return "_dagger_blade_broken"; return "_dagger_blade_broken";
case 2: case 2:
return "_dagger_handle"; return "_dagger_handle";
case 3:
return "_dagger_accessory";
default: default:
return ""; return "";
} }
@ -81,12 +84,12 @@ public class Dagger extends Weapon
@Override @Override
protected Item getHeadItem () protected Item getHeadItem ()
{ {
return TContent.swordBlade; return TContent.knifeBlade;
} }
@Override @Override
protected Item getAccessoryItem () protected Item getAccessoryItem ()
{ {
return null; return TContent.crossbar;
} }
} }

View File

@ -7,6 +7,7 @@ import mods.tinker.tconstruct.PHConstruct;
import mods.tinker.tconstruct.TContent; import mods.tinker.tconstruct.TContent;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraft.world.WorldType;
import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.chunk.IChunkProvider;
import net.minecraft.world.gen.feature.WorldGenMinable; import net.minecraft.world.gen.feature.WorldGenMinable;
import cpw.mods.fml.common.IWorldGenerator; import cpw.mods.fml.common.IWorldGenerator;
@ -41,12 +42,15 @@ public class TBaseWorldGenerator implements IWorldGenerator
public void generate (Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) public void generate (Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider)
{ {
if (world.provider.isHellWorld) if (world.provider.isHellWorld)
{
generateNether(random, chunkX * 16, chunkZ * 16, world); generateNether(random, chunkX * 16, chunkZ * 16, world);
else }
else if (world.provider.terrainType != WorldType.FLAT)
{
generateSurface(random, chunkX * 16, chunkZ * 16, world); generateSurface(random, chunkX * 16, chunkZ * 16, world);
if (world.provider.dimensionId == 0)
if (world.provider.dimensionId == 0) generateOreBushes(random, chunkX * 16, chunkZ * 16, world);
generateOreBushes(random, chunkX * 16, chunkZ * 16, world); }
} }
void generateSurface (Random random, int xChunk, int zChunk, World world) void generateSurface (Random random, int xChunk, int zChunk, World world)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 B

After

Width:  |  Height:  |  Size: 179 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 B

After

Width:  |  Height:  |  Size: 270 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 209 B

After

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 B

After

Width:  |  Height:  |  Size: 154 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 B

After

Width:  |  Height:  |  Size: 307 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 B

After

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 B

After

Width:  |  Height:  |  Size: 182 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 B

After

Width:  |  Height:  |  Size: 150 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 B

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 229 B

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 B

After

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 230 B

After

Width:  |  Height:  |  Size: 223 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 183 B

After

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 B

After

Width:  |  Height:  |  Size: 342 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 B

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

After

Width:  |  Height:  |  Size: 188 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

After

Width:  |  Height:  |  Size: 144 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 B

After

Width:  |  Height:  |  Size: 235 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 B

After

Width:  |  Height:  |  Size: 303 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

After

Width:  |  Height:  |  Size: 143 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 B

After

Width:  |  Height:  |  Size: 420 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 B

After

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 B

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 B

After

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 B

After

Width:  |  Height:  |  Size: 340 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 B

After

Width:  |  Height:  |  Size: 303 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

After

Width:  |  Height:  |  Size: 169 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 B

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 B

After

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

After

Width:  |  Height:  |  Size: 182 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 B

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 B

After

Width:  |  Height:  |  Size: 287 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 B

After

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 B

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 B

After

Width:  |  Height:  |  Size: 352 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 B

After

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 B

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 B

After

Width:  |  Height:  |  Size: 147 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

After

Width:  |  Height:  |  Size: 192 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 B

After

Width:  |  Height:  |  Size: 297 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 B

After

Width:  |  Height:  |  Size: 340 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 B

After

Width:  |  Height:  |  Size: 232 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 B

After

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 B

After

Width:  |  Height:  |  Size: 179 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 B

After

Width:  |  Height:  |  Size: 143 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 B

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 B

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

After

Width:  |  Height:  |  Size: 154 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 B

After

Width:  |  Height:  |  Size: 223 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 B

After

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 B

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 B

After

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 B

After

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 B

After

Width:  |  Height:  |  Size: 154 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 B

After

Width:  |  Height:  |  Size: 353 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 B

After

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 B

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 B

After

Width:  |  Height:  |  Size: 378 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 B

After

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 B

After

Width:  |  Height:  |  Size: 254 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 B

After

Width:  |  Height:  |  Size: 138 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 B

After

Width:  |  Height:  |  Size: 215 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

After

Width:  |  Height:  |  Size: 223 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 B

After

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 B

After

Width:  |  Height:  |  Size: 307 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 B

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 B

After

Width:  |  Height:  |  Size: 151 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 209 B

After

Width:  |  Height:  |  Size: 324 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 B

After

Width:  |  Height:  |  Size: 254 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 B

After

Width:  |  Height:  |  Size: 242 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 B

After

Width:  |  Height:  |  Size: 287 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 B

After

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 B

After

Width:  |  Height:  |  Size: 352 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 B

After

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

After

Width:  |  Height:  |  Size: 137 B

Some files were not shown because too many files have changed in this diff Show More