master
mDiyo 2013-05-01 22:49:19 -07:00
parent fc36d966c9
commit 0a69c4e381
38 changed files with 295 additions and 44 deletions

View File

@ -59,6 +59,34 @@
<entry key="item.oreberry.aluminum.name">Aluminum Oreberry</entry>
<entry key="item.oreberry.silver.name">Silver Oreberry</entry>
<entry key="item.tconstruct.Materials.PaperStack.name">Paper Stack</entry>
<entry key="item.tconstruct.Materials.SlimeCrystal.name">Slime Crystal</entry>
<entry key="item.tconstruct.Materials.SearedBrick.name">Seared Brick</entry>
<entry key="item.tconstruct.Materials.CobaltIngot.name">Cobalt Ingot</entry>
<entry key="item.tconstruct.Materials.ArditeIngot.name">Ardite Ingot</entry>
<entry key="item.tconstruct.Materials.ManyullynIngot.name">Manyullyn Ingot</entry>
<entry key="item.tconstruct.Materials.Mossball.name">Ball of Moss</entry>
<entry key="item.tconstruct.Materials.LavaCrystal.name">Lava Crystal</entry>
<entry key="item.tconstruct.Materials.NecroticBone.name">Necrotic Bone"</entry>
<entry key="item.tconstruct.Materials.CopperIngot.name">Copper Ingot</entry>
<entry key="item.tconstruct.Materials.TinIngot.name">Tin Ingot</entry>
<entry key="item.tconstruct.Materials.AluminumIngot.name">Aluminum Ingot</entry>
<entry key="item.tconstruct.Materials.RawAluminum.name">Raw Aluminum</entry>
<entry key="item.tconstruct.Materials.BronzeIngot.name">Bronze Ingot</entry>
<entry key="item.tconstruct.Materials.AluBrassIngot.name">Aluminum Brass Ingot</entry>
<entry key="item.tconstruct.Materials.AlumiteIngot.name">Alumite Ingot</entry>
<entry key="item.tconstruct.Materials.SteelIngot.name">Steel Ingot</entry>
<entry key="item.tconstruct.Materials.BlueSlimeCrystal.name">Slime Crystal</entry>
<entry key="item.tconstruct.Materials.ObsidianIngot.name">Obsidian Ingot</entry>
<entry key="item.tconstruct.Materials.IronNugget.name">Iron Nugget</entry>
<entry key="item.tconstruct.Materials.CopperNugget.name">Copper Nugget</entry>
<entry key="item.tconstruct.Materials.TinNugget.name">Tin Nugget</entry>
<entry key="item.tconstruct.Materials.AluminumNugget.name">Aluminum Nugget</entry>
<entry key="item.tconstruct.Materials.SilverNugget.name">Silver Nugget</entry>
<entry key="item.tconstruct.Materials.AluBrassNugget.name">Aluminum Brass Nugget</entry>
<entry key="item.tconstruct.Materials.SilkyCloth.name">Silky Cloth</entry>
<entry key="item.tconstruct.Materials.SilkyJewel.name">Silky Jewel</entry>
<entry key="Smeltery.Controller.name">Smeltery Controller</entry>
<entry key="Smeltery.Drain.name">Smeltery Drain</entry>
<entry key="Smeltery.Brick.name">Seared Bricks</entry>
@ -112,7 +140,7 @@
<entry key="LiquidMetal.Cobalt.name">Liquid Cobalt</entry>
<entry key="LiquidMetal.Ardite.name">Liquid Ardite</entry>
<entry key="LiquidMetal.Bronze.name">Liquid Bronze</entry>
<entry key="LiquidMetal.AlBrass.name">Liquid Aluminum Brass</entry>
<entry key="LiquidMetal.AluBrass.name">Liquid Aluminum Brass</entry>
<entry key="LiquidMetal.Manyullyn.name">Liquid Manyullyn</entry>
<entry key="LiquidMetal.Alumite.name">Liquid Alumite</entry>
<entry key="LiquidMetal.Obsidian.name">Liquid Obsidian</entry>

View File

@ -524,6 +524,7 @@ Effects:
- Smelts blocks as they're harvested
- Sets mobs on fire for 3 seconds
- Stacks with Luck
- Not compatible with Silky
Type: Multi-use
Stackable: No</text>
@ -542,6 +543,7 @@ Effects:
- Adds fortune or looting, depends on tool type
- Increases level at a maximum threshold, but has a chance of increasing before
- Sometimes adds extra pieces for free
- Not compatible with Silky
Type: Single-use
Stackable: No</text>
@ -603,6 +605,39 @@ Stackable: Yes</text>
<recipe>necroticmod</recipe>
</page>
<page type="sectionpage">
<title>Silky</title>
<text>Adding a large glob of alunimum brass or gold and a bunch of string seems to give the tool silky-smooth properties.
Effects:
- Allows blocks to be harvested directly
- Not compatible with Luck or Auto-Smelt
Type: Single-use
Stackable: No</text>
</page>
<page type="modifier">
<tooltype>tool</tooltype>
<recipe>silkymod</recipe>
</page>
<page type="crafting">
<text>Silky Cloth</text>
<recipe>
<name>silkycloth</name>
<size>three</size>
</recipe>
</page>
<page type="crafting">
<text>Silky Jewel</text>
<recipe>
<name>silkyjewel</name>
<size>three</size>
</recipe>
</page>
<page type="sectionpage">
<title>Electric</title>
<text>Adding a battery and a circuit to a tool gives it an electric field. The tool still functions properly when the battery has no charge.

View File

@ -32,10 +32,10 @@ import cpw.mods.fml.common.registry.VillagerRegistry;
/** TConstruct, the tool mod.
* Craft your tools with style, then modify until the original is gone!
* @author: mDiyo
* @dependencies: IC2 API, EBXL API
* @dependencies: IC2 API
*/
@Mod(modid = "TConstruct", name = "TConstruct", version = "1.5.1_1.3.2.dev31", dependencies = "required-after:Forge@[7.7.1.675,)")
@Mod(modid = "TConstruct", name = "TConstruct", version = "1.5.1_1.3.2.dev33", dependencies = "required-after:Forge@[7.7.1.675,)")
@NetworkMod(serverSideRequired = false, clientSideRequired = true, channels = { "TConstruct" }, packetHandler = mods.tinker.tconstruct.util.network.TPacketHandler.class)
public class TConstruct
{

View File

@ -302,6 +302,7 @@ public class TProxyClient extends TProxyCommon
TConstructClientRegistry.registerManualIcon("arditeingot", new ItemStack(TContent.materials, 1, 4));
TConstructClientRegistry.registerManualIcon("copperingot", new ItemStack(TContent.materials, 1, 9));
TConstructClientRegistry.registerManualIcon("steelingot", new ItemStack(TContent.materials, 1, 16));
//Tool parts
TConstructClientRegistry.registerManualIcon("pickhead", new ItemStack(TContent.pickaxeHead, 1, 2));
@ -366,6 +367,9 @@ public class TProxyClient extends TProxyCommon
ItemStack slimyMud = new ItemStack(TContent.craftedSoil);
ItemStack blazerod = new ItemStack(Item.blazeRod);
ItemStack firecharge = new ItemStack(Item.fireballCharge);
ItemStack string = new ItemStack(Item.silk);
ItemStack silkyCloth = new ItemStack(TContent.materials, 1, 25);
//TConstruct recipes
TConstructClientRegistry.registerManualSmallRecipe("blankpattern", pattern, plank, stick, stick, plank);
@ -381,6 +385,10 @@ public class TProxyClient extends TProxyCommon
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.registerManualLargeRecipe("silkycloth", silkyCloth, string, string, string, string, new ItemStack(TContent.materials, 1, 24),
string, string, string, string);
TConstructClientRegistry.registerManualLargeRecipe("silkyjewel", new ItemStack(TContent.materials, 1, 26), null, silkyCloth, null, silkyCloth, new ItemStack(Item.emerald),
silkyCloth, null, silkyCloth, null);
TConstructClientRegistry.registerManualSmallRecipe("grout", grout, sand, gravel, null, clay);
TConstructClientRegistry.registerManualFurnaceRecipe("searedbrick", searedbrick, grout);
@ -418,6 +426,7 @@ public class TProxyClient extends TProxyCommon
TConstructClientRegistry.registerManualModifier("quartzmod", ironlongsword.copy(), new ItemStack(Item.netherQuartz), new ItemStack(Block.blockNetherQuartz));
TConstructClientRegistry.registerManualModifier("blazemod", ironlongsword.copy(), new ItemStack(Item.blazePowder));
TConstructClientRegistry.registerManualModifier("necroticmod", ironlongsword.copy(), new ItemStack(TContent.materials, 1, 8));
TConstructClientRegistry.registerManualModifier("silkymod", ironpick.copy(), new ItemStack(TContent.materials, 1, 26));
TConstructClientRegistry.registerManualModifier("electricmod", ironpick.copy(), new ItemStack(Block.dirt), new ItemStack(Block.dirt));
TConstructClientRegistry.registerManualModifier("tier1free", ironpick.copy(), new ItemStack(Item.diamond), new ItemStack(Block.blockGold));
TConstructClientRegistry.registerManualModifier("tier2free", ironpick.copy(), new ItemStack(Item.netherStar));
@ -517,12 +526,12 @@ public class TProxyClient extends TProxyCommon
{
String[] partTypes = { "wood", "stone", "iron", "flint", "cactus", "bone", "obsidian", "netherrack", "slime", "paper", "cobalt", "ardite", "manyullyn", "copper", "bronze", "alumite", "steel",
"blueslime" };
String[] effectTypes = { "diamond", "emerald", "redstone", "glowstone", "moss", "ice", "lava", "blaze", "necrotic", "electric", "lapis", "quartz" };
int[] validHarvestEffects = { 0, 1, 2, 4, 6, 7, 8, 9, 10, 11 };
int[] validWeaponEffects = { 0, 1, 4, 5, 6, 7, 8, 9, 10, 11};
String[] effectTypes = { "diamond", "emerald", "redstone", "glowstone", "moss", "ice", "lava", "blaze", "necrotic", "electric", "lapis", "quartz", "silk" };
int[] validHarvestEffects = { 0, 1, 2, 4, 6, 7, 8, 9, 10, 11, 12 };
int[] validWeaponEffects = { 0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
int[] validUtilityEffects = { 0, 1, 4, 9 };
int[] validDaggerEffects = { 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11};
int[] validDaggerEffects = { 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
for (int partIter = 0; partIter < partTypes.length; partIter++)
{

View File

@ -36,6 +36,7 @@ import mods.tinker.tconstruct.items.CraftingItem;
import mods.tinker.tconstruct.items.FilledBucket;
import mods.tinker.tconstruct.items.HeartContainer;
import mods.tinker.tconstruct.items.Manual;
import mods.tinker.tconstruct.items.MaterialItem;
import mods.tinker.tconstruct.items.MetalPattern;
import mods.tinker.tconstruct.items.OreBerries;
import mods.tinker.tconstruct.items.Pattern;
@ -77,8 +78,9 @@ import mods.tinker.tconstruct.library.crafting.ToolBuilder;
import mods.tinker.tconstruct.library.tools.ToolCore;
import mods.tinker.tconstruct.library.util.IPattern;
import mods.tinker.tconstruct.modifiers.ModAttack;
import mods.tinker.tconstruct.modifiers.ModAutoSmelt;
import mods.tinker.tconstruct.modifiers.ModBlaze;
import mods.tinker.tconstruct.modifiers.ModBoolean;
import mods.tinker.tconstruct.modifiers.ModButtertouch;
import mods.tinker.tconstruct.modifiers.ModDurability;
import mods.tinker.tconstruct.modifiers.ModElectric;
import mods.tinker.tconstruct.modifiers.ModExtraModifier;
@ -374,15 +376,7 @@ public class TContent implements IFuelHandler
String[] blanks = new String[] { "blank_pattern", "blank_cast" };
blankPattern = new CraftingItem(PHConstruct.blankPattern, blanks, blanks, "materials/").setUnlocalizedName("tconstruct.Pattern");
String[] craftingMaterials = new String[] { "PaperStack", "SlimeCrystal", "SearedBrick", "CobaltIngot", "ArditeIngot", "ManyullynIngot", "Mossball", "LavaCrystal", "NecroticBone",
"CopperIngot", "TinIngot", "AluminumIngot", "RawAluminum", "BronzeIngot", "AlBrassIngot", "AlumiteIngot", "SteelIngot", "BlueSlimeCrystal", "ObsidianIngot", "IronNugget",
"CopperNugget", "TinNugget", "AluminumNugget", "SilverNugget" };
String[] craftingTextures = new String[] { "material_paperstack", "material_slimecrystal", "material_searedbrick", "material_cobaltingot", "material_arditeingot", "material_manyullyningot",
"material_mossball", "material_lavacrystal", "material_necroticbone", "material_copperingot", "material_tiningot", "material_aluminumingot", "material_aluminumraw",
"material_bronzeingot", "material_alubrassingot", "material_alumiteingot", "material_steelingot", "material_blueslimecrystal", "material_obsidianingot", "material_nugget_iron",
"material_nugget_copper", "material_nugget_tin", "material_nugget_aluminum", "material_nugget_silver" };
materials = new CraftingItem(PHConstruct.materials, craftingMaterials, craftingTextures, "materials/").setUnlocalizedName("tconstruct.Materials");
materials = new MaterialItem(PHConstruct.materials).setUnlocalizedName("tconstruct.Materials");
toolRod = new ToolPart(PHConstruct.toolRod, "ToolRod", "_rod").setUnlocalizedName("tconstruct.ToolRod");
TConstructRegistry.toolRod = toolRod;
toolShard = new ToolShard(PHConstruct.toolShard, "ToolShard", "_chunk").setUnlocalizedName("tconstruct.ToolShard");
@ -578,7 +572,7 @@ public class TContent implements IFuelHandler
ItemStack blazePowder = new ItemStack(Item.blazePowder);
tb.registerToolMod(new ModBlaze(new ItemStack[] { blazePowder }, 7, 1));
tb.registerToolMod(new ModBlaze(new ItemStack[] { blazePowder, blazePowder }, 7, 2));
tb.registerToolMod(new ModBoolean(new ItemStack[] { new ItemStack(materials, 1, 7) }, 6, "Lava", "\u00a74", "Auto-Smelt"));
tb.registerToolMod(new ModAutoSmelt(new ItemStack[] { new ItemStack(materials, 1, 7) }, 6, "Lava", "\u00a74", "Auto-Smelt"));
tb.registerToolMod(new ModInteger(new ItemStack[] { new ItemStack(materials, 1, 8) }, 8, "Necrotic", 1, "\u00a78", "Life Steal"));
ItemStack quartzItem = new ItemStack(Item.netherQuartz);
@ -591,6 +585,9 @@ public class TContent implements IFuelHandler
tb.registerToolMod(new ModExtraModifier(new ItemStack[] { diamond, new ItemStack(Block.blockGold) }, "Tier1Free"));
tb.registerToolMod(new ModExtraModifier(new ItemStack[] { new ItemStack(Item.netherStar) }, "Tier2Free"));
ItemStack silkyJewel = new ItemStack(materials, 1, 26);
tb.registerToolMod(new ModButtertouch(new ItemStack[] {silkyJewel}, 12));
/* Smeltery */
ItemStack ingotcast = new ItemStack(metalPattern, 1, 0);
@ -745,6 +742,10 @@ public class TContent implements IFuelHandler
FurnaceRecipes.smelting().addSmelting(craftedSoil.blockID, 1, new ItemStack(materials, 1, 2), 2f); //Seared brick item
FurnaceRecipes.smelting().addSmelting(craftedSoil.blockID, 2, new ItemStack(materials, 1, 17), 2f); //Blue Slime
//GameRegistry.addRecipe(new ItemStack(oreSlag, 1, 0), "pp", "pp", 'p', new ItemStack(materials, 1, 2)); //Seared brick block
GameRegistry.addRecipe(new ItemStack(materials, 1, 25), "sss", "sns", "sss", 'n', new ItemStack(materials, 1, 24), 's', new ItemStack(Item.silk)); //Silky Cloth
GameRegistry.addRecipe(new ItemStack(materials, 1, 25), "sss", "sns", "sss", 'n', new ItemStack(Item.goldNugget), 's', new ItemStack(Item.silk));
GameRegistry.addRecipe(new ItemStack(materials, 1, 26), " c ", "cec", " c ", 'c', new ItemStack(materials, 1, 25), 'e', new ItemStack(Item.emerald)); //Silky Jewel
//FurnaceRecipes.smelting().addSmelting(oreSlag.blockID, 1, new ItemStack(materials, 1, 3), 3f);
//FurnaceRecipes.smelting().addSmelting(oreSlag.blockID, 2, new ItemStack(materials, 1, 4), 3f);
@ -783,6 +784,12 @@ public class TContent implements IFuelHandler
GameRegistry.addRecipe(new ItemStack(materials, 1, 9), "mmm", "mmm", "mmm", 'm', new ItemStack(materials, 1, 20)); //Copper
GameRegistry.addRecipe(new ItemStack(materials, 1, 10), "mmm", "mmm", "mmm", 'm', new ItemStack(materials, 1, 21)); //Tin
GameRegistry.addRecipe(new ItemStack(materials, 1, 12), "mmm", "mmm", "mmm", 'm', new ItemStack(materials, 1, 22)); //Aluminum
GameRegistry.addRecipe(new ItemStack(materials, 1, 14), "mmm", "mmm", "mmm", 'm', new ItemStack(materials, 1, 24)); //Aluminum Brass
GameRegistry.addRecipe(new ItemStack(materials, 9, 24), "m", 'm', new ItemStack(materials, 1, 14)); //Aluminum Brass Nugget
/*OreDictionary.registerOre("ingotAluminumBrass", new ItemStack(materials, 1, 14));
OreDictionary.registerOre("nuggetAluminumBrass", new ItemStack(materials, 1, 24));*/
//Smeltery
ItemStack searedBrick = new ItemStack(materials, 1, 2);
@ -870,6 +877,7 @@ public class TContent implements IFuelHandler
OreDictionary.registerOre("nuggetTin", new ItemStack(materials, 1, 21));
OreDictionary.registerOre("nuggetNaturalAluminum", new ItemStack(materials, 1, 22));
OreDictionary.registerOre("nuggetSilver", new ItemStack(materials, 1, 23));
OreDictionary.registerOre("nuggetAluminumBrass", new ItemStack(materials, 1, 24));
String[] names = new String[] { "Iron", "Gold", "Copper", "Tin", "Aluminum", "Cobalt", "Ardite", "Bronze", "Brass", "Manyullyn", "Alumite", "Obsidian", "Steel" };
liquidIcons = new LiquidStack[names.length];

View File

@ -104,12 +104,12 @@ public class TProxyCommon implements IGuiHandler
LanguageRegistry.instance().addStringLocalization(internalName, "en_US", visibleName);
}
for (int i = 0; i < materialItemNames.length; i++)
/*for (int i = 0; i < materialItemNames.length; i++)
{
String internalName = "item.tconstruct.Materials." + materialItemInternalNames[i] + ".name";
String visibleName = materialItemNames[i];
LanguageRegistry.instance().addStringLocalization(internalName, "en_US", visibleName);
}
}*/
for (int i = 0; i < patterns.length; i++)
{
@ -162,13 +162,13 @@ public class TProxyCommon implements IGuiHandler
public static final String[] shardNames = new String[] { "Wood", "Stone Shard", "Iron Chunk", "Flint Shard", "Cactus Shard", "Bone", "Obsidian Shard", "Netherrack Shard",
"Slime Crystal Fragment", "Paper", "Cobalt Chunk", "Ardite Chunk", "Manyullyn Chunk", "Copper Chunk", "Bronze Chunk", "Alumite Chunk", "Steel Chunk", "Slime Crystal Fragment" };
public static final String[] materialItemInternalNames = new String[] { "PaperStack", "SlimeCrystal", "SearedBrick", "CobaltIngot", "ArditeIngot", "ManyullynIngot", "Mossball", "LavaCrystal",
"NecroticBone", "CopperIngot", "TinIngot", "AluminumIngot", "RawAluminum", "BronzeIngot", "AlBrassIngot", "AlumiteIngot", "SteelIngot", "BlueSlimeCrystal", "ObsidianIngot", "IronNugget",
/*public static final String[] materialItemInternalNames = new String[] {
"IronNugget",
"CopperNugget", "TinNugget", "AluminumNugget", "SilverNugget" };
public static final String[] materialItemNames = new String[] { "Paper Stack", "Slime Crystal", "Seared Brick", "Cobalt Ingot", "Ardite Ingot", "Manyullyn Ingot", "Ball of Moss", "Lava Crystal",
"Necrotic Bone", "Copper Ingot", "Tin Ingot", "Aluminum Ingot", "Raw Aluminum", "Bronze Ingot", "Aluminum Brass Ingot", "Alumite Ingot", "Steel Ingot", "Slime Crystal", "Obsidian Ingot", "Iron Nugget",
"Copper Nugget", "Tin Nugget", "Aluminum Nugget", "Silver Nugget" };
public static final String[] materialItemNames = new String[] {
"Iron Nugget",
"Copper Nugget", "Tin Nugget", "Aluminum Nugget", "Silver Nugget" };*/
public static final String[] toolMaterialNames = new String[] { "Wood", "Stone", "Iron", "Flint", "Cactus", "Bone", "Obsidian", "Netherrack", "Slime", "Paper", "Cobalt", "Ardite", "Manyullyn",
"Copper", "Bronze", "Alumite", "Steel", "Blue Slime" };

View File

@ -24,6 +24,7 @@ public class NitroCreeper extends EntityCreeper
super(world);
this.tasks.addTask(4, new EntityAIAttackOnCollide(this, 1.0F, false));
this.texture = "/mods/tinker/textures/mob/creeperunstable.png";
this.isImmuneToFire = true;
}
/*@Override

View File

@ -0,0 +1,27 @@
package mods.tinker.tconstruct.items;
public class MaterialItem extends CraftingItem
{
public MaterialItem(int id)
{
super(id, materialNames, getTextures(), "materials/");
}
private static String[] getTextures ()
{
String[] names = new String[craftingTextures.length];
for (int i = 0; i < craftingTextures.length; i++)
names[i] = "material_" + craftingTextures[i];
return names;
}
static String[] materialNames = new String[] { "PaperStack", "SlimeCrystal", "SearedBrick", "CobaltIngot", "ArditeIngot", "ManyullynIngot", "Mossball", "LavaCrystal", "NecroticBone",
"CopperIngot", "TinIngot", "AluminumIngot", "RawAluminum", "BronzeIngot", "AluBrassIngot", "AlumiteIngot", "SteelIngot", "BlueSlimeCrystal", "ObsidianIngot", "IronNugget", "CopperNugget",
"TinNugget", "AluminumNugget", "SilverNugget", "AluBrassNugget", "SilkyCloth", "SilkyJewel" };
static String[] craftingTextures = new String[] { "paperstack", "slimecrystal", "searedbrick", "cobaltingot", "arditeingot", "manyullyningot", "mossball", "lavacrystal", "necroticbone",
"copperingot", "tiningot", "aluminumingot", "aluminumraw", "bronzeingot", "alubrassingot", "alumiteingot", "steelingot", "blueslimecrystal", "obsidianingot", "nugget_iron",
"nugget_copper", "nugget_tin", "nugget_aluminum", "nugget_silver", "nugget_alubrass", "silkycloth", "silkyjewel" };
}

View File

@ -0,0 +1,23 @@
package mods.tinker.tconstruct.modifiers;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
public class ModAutoSmelt extends ModBoolean
{
public ModAutoSmelt(ItemStack[] items, int effect, String tag, String c, String tip)
{
super(items, effect, tag, c, tip);
}
@Override
protected boolean canModify (ItemStack tool, ItemStack[] input)
{
NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool");
if (tags.getBoolean("Silk Touch"))
return false;
return tags.getInteger("Modifiers") > 0 && !tags.getBoolean(key); //Will fail if the modifier is false or the tag doesn't exist
}
}

View File

@ -0,0 +1,117 @@
package mods.tinker.tconstruct.modifiers;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import mods.tinker.tconstruct.library.tools.ToolCore;
import mods.tinker.tconstruct.library.tools.ToolMod;
import mods.tinker.tconstruct.library.tools.Weapon;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
public class ModButtertouch extends ModBoolean
{
public ModButtertouch(ItemStack[] items, int effect)
{
super(items, effect, "Silk Touch", "\u00a7e", "Silky");
}
@Override
protected boolean canModify (ItemStack tool, ItemStack[] input)
{
ToolCore toolItem = (ToolCore) tool.getItem();
if (!validType(toolItem))
return false;
NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool");
if (!tags.getBoolean("Lava") && !tags.hasKey("Lapis"))
{
return tags.getInteger("Modifiers") > 0 && !tags.getBoolean(key);
}
return false;
}
@Override
public void modify (ItemStack[] input, ItemStack tool)
{
NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool");
tags.setBoolean(key, true);
addEnchantment(tool, Enchantment.silkTouch, 1);
int modifiers = tags.getInteger("Modifiers");
modifiers -= 1;
tags.setInteger("Modifiers", modifiers);
int attack = tags.getInteger("Attack");
attack -= 3;
if (attack < 0)
attack = 0;
tags.setInteger("Attack", attack);
int miningSpeed = tags.getInteger("MiningSpeed");
miningSpeed -= 300;
if (miningSpeed < 0)
miningSpeed = 0;
tags.setInteger("MiningSpeed", miningSpeed);
if (tags.hasKey("MiningSpeed2"))
{
int miningSpeed2 = tags.getInteger("MiningSpeed2");
miningSpeed2 -= 300;
if (miningSpeed2 < 0)
miningSpeed2 = 0;
tags.setInteger("MiningSpeed2", miningSpeed2);
}
addToolTip(tool, color+tooltipName, color+key);
}
public void addEnchantment (ItemStack tool, Enchantment enchant, int level)
{
NBTTagList tags = new NBTTagList("ench");
Map enchantMap = EnchantmentHelper.getEnchantments(tool);
Iterator iterator = enchantMap.keySet().iterator();
int index;
int lvl;
boolean hasEnchant = false;
while (iterator.hasNext())
{
NBTTagCompound enchantTag = new NBTTagCompound();
index = ((Integer) iterator.next()).intValue();
lvl = (Integer) enchantMap.get(index);
if (index == enchant.effectId)
{
hasEnchant = true;
enchantTag.setShort("id", (short) index);
enchantTag.setShort("lvl", (short) ((byte) level));
tags.appendTag(enchantTag);
}
else
{
enchantTag.setShort("id", (short) index);
enchantTag.setShort("lvl", (short) ((byte) lvl));
tags.appendTag(enchantTag);
}
}
if (!hasEnchant)
{
NBTTagCompound enchantTag = new NBTTagCompound();
enchantTag.setShort("id", (short) enchant.effectId);
enchantTag.setShort("lvl", (short) ((byte) level));
tags.appendTag(enchantTag);
}
tool.stackTagCompound.setTag("ench", tags);
}
public boolean validType (ToolCore tool)
{
List list = Arrays.asList(tool.toolCategories());
return list.contains("weapon") || list.contains("harvest");
}
}

View File

@ -35,6 +35,10 @@ public class ModLapis extends ToolMod
return false;
NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool");
if (tags.getBoolean("Silk Touch"))
return false;
if (!tags.hasKey(key))
return tags.getInteger("Modifiers") > 0;

View File

@ -81,23 +81,26 @@ public class TEventHandler
@ForgeSubscribe
public void onLivingDrop (LivingDropsEvent event)
{
if (event.entityLiving.getClass() == EntityCow.class)
if (!event.entityLiving.isChild())
{
int amount = random.nextInt(3) + random.nextInt(1 + event.lootingLevel) + random.nextInt(3) + random.nextInt(1 + event.lootingLevel) + 1;
for (int iter = 0; iter < amount; ++iter)
if (event.entityLiving.getClass() == EntityCow.class)
{
event.entityLiving.dropItem(Item.leather.itemID, 1);
int amount = random.nextInt(3) + random.nextInt(1 + event.lootingLevel) + random.nextInt(3) + random.nextInt(1 + event.lootingLevel) + 1;
for (int iter = 0; iter < amount; ++iter)
{
event.entityLiving.dropItem(Item.leather.itemID, 1);
}
}
}
else if (event.entityLiving.getClass() == EntityChicken.class)
{
int amount = random.nextInt(3) + random.nextInt(1 + event.lootingLevel) + random.nextInt(3) + random.nextInt(1 + event.lootingLevel) + 1;
for (int iter = 0; iter < amount; ++iter)
else if (event.entityLiving.getClass() == EntityChicken.class)
{
event.entityLiving.dropItem(Item.feather.itemID, 1);
int amount = random.nextInt(3) + random.nextInt(1 + event.lootingLevel) + random.nextInt(3) + random.nextInt(1 + event.lootingLevel) + 1;
for (int iter = 0; iter < amount; ++iter)
{
event.entityLiving.dropItem(Item.feather.itemID, 1);
}
}
}

View File

@ -13,7 +13,7 @@ public class VillageSmelteryHandler implements IVillageCreationHandler
@Override
public StructureVillagePieceWeight getVillagePieceWeight (Random random, int i)
{
return new StructureVillagePieceWeight(ComponentSmeltery.class, 18, i);
return new StructureVillagePieceWeight(ComponentSmeltery.class, 18, i + 1);
}
@Override

View File

@ -13,7 +13,7 @@ public class VillageToolStationHandler implements IVillageCreationHandler
@Override
public StructureVillagePieceWeight getVillagePieceWeight (Random random, int i)
{
return new StructureVillagePieceWeight(ComponentToolWorkshop.class, 30, random.nextInt(3) + i);
return new StructureVillagePieceWeight(ComponentToolWorkshop.class, 30, i + 2);
}
@Override

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 421 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 407 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 496 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 551 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 421 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 416 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

View File

@ -131,11 +131,7 @@ public class XinBuilder extends Item
float f6 = MathHelper.sin(-f1 * 0.017453292F);
float f7 = f4 * f5;
float f8 = f3 * f5;
double d3 = 500.0D;
if (par2EntityPlayer instanceof EntityPlayerMP)
{
d3 = ((EntityPlayerMP) par2EntityPlayer).theItemInWorldManager.getBlockReachDistance();
}
double d3 = 500.0D; //Max range
Vec3 vec31 = vec3.addVector((double) f7 * d3, (double) f6 * d3, (double) f8 * d3);
return par1World.rayTraceBlocks_do_do(vec3, vec31, par3, !par3);
}