Battleaxe

master
mDiyo 2013-06-12 19:36:40 -07:00
parent af1a0f6308
commit b88c761483
754 changed files with 1982 additions and 1174 deletions

View File

@ -38,7 +38,7 @@ import cpw.mods.fml.common.registry.VillagerRegistry;
* @dependencies: IC2 API, MFR API
*/
@Mod(modid = "TConstruct", name = "TConstruct", version = "1.5.1_1.3.dev.52", dependencies = "required-after:Forge@[7.7.1.675,)")
@Mod(modid = "TConstruct", name = "TConstruct", version = "1.5.1_1.3.dev.57", 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

@ -15,7 +15,7 @@ import cpw.mods.fml.relauncher.SideOnly;
public class MultiBrickFancy extends TConstructBlock
{
static String blockTextures[] = { "fancybrick_obsidian", "fancybrick_sandstone", "fancybrick_netherrack", "fancybrick_stone_refined", "fancybrick_iron", "fancybrick_gold", "fancybrick_lapis", "fancybrick_diamond", "fancybrick_redstone",
"fancybrick_bone", "fancybrick_slime", "fancybrick_blueslime", "fancybrick_endstone", "fancybrick_obsidian_ingot" };
"fancybrick_bone", "fancybrick_slime", "fancybrick_blueslime", "fancybrick_endstone", "fancybrick_obsidian_ingot", "road_stone", "road_refinedstone" };
public MultiBrickFancy(int id)
{
@ -31,7 +31,6 @@ public class MultiBrickFancy extends TConstructBlock
case 0: return Block.obsidian.getBlockHardness(world, x, y, z);
case 1: return Block.sandStone.getBlockHardness(world, x, y, z);
case 2: return Block.netherrack.getBlockHardness(world, x, y, z);
case 3: return Block.stone.getBlockHardness(world, x, y, z);
case 4: return Block.blockIron.getBlockHardness(world, x, y, z);
case 5: return Block.blockGold.getBlockHardness(world, x, y, z);
case 6: return Block.blockLapis.getBlockHardness(world, x, y, z);
@ -42,6 +41,10 @@ public class MultiBrickFancy extends TConstructBlock
case 11: return 1.5F;
case 12: return Block.whiteStone.getBlockHardness(world, x, y, z);
case 13: return Block.obsidian.getBlockHardness(world, x, y, z);
case 3:
case 14:
case 15:
return Block.stone.getBlockHardness(world, x, y, z);
default: return blockHardness;
}
}
@ -54,7 +57,6 @@ public class MultiBrickFancy extends TConstructBlock
case 0: return Block.obsidian.getExplosionResistance(entity);
case 1: return Block.sandStone.getExplosionResistance(entity);
case 2: return Block.netherrack.getExplosionResistance(entity);
case 3: return Block.stone.getExplosionResistance(entity);
case 4: return Block.blockIron.getExplosionResistance(entity);
case 5: return Block.blockGold.getExplosionResistance(entity);
case 6: return Block.blockLapis.getExplosionResistance(entity);
@ -65,6 +67,10 @@ public class MultiBrickFancy extends TConstructBlock
case 11: return 1.5F;
case 12: return Block.whiteStone.getExplosionResistance(entity);
case 13: return Block.obsidian.getExplosionResistance(entity);
case 3:
case 14:
case 15:
return Block.stone.getExplosionResistance(entity);
default: return getExplosionResistance(entity);
}
}

View File

@ -557,15 +557,19 @@ public class TProxyClient extends TProxyCommon
{
addToolButton(itemIcons[i][0], itemIcons[i][1], itemIcons[i][2], iconCoords[i * 2], iconCoords[i * 2 + 1], toolNames[i], toolDescriptions[i]);
}
addTierTwoButton(4, 10, 0, new int[] { 8, 8, 9, 8 }, new int[] { 2, 3, 3, 3 }, "Scythe",
"The Scythe is a broad reaping tool. It is effective on plants and attacks enemies in a wide range.\n\nNatural Ability:\nArea of Effect\n- (3x3x3)\n\nDurability: Triple\nDamage: Low, AoE");
addTierTwoButton(6, 13, 0, new int[] { 11, 8, 9, 9 }, new int[] { 2, 3, 2, 2 }, "Hammer",
"The Hammer is a broad mining tool. It harvests blocks in a wide range and is effective against undead.\n\nNatural Abilities:\nArea of Effect\n- (3x3x3)\n- Smite\n\nDurability: High");
addTierTwoButton(5, 11, 0, new int[] { 6, 8, 9, 9 }, new int[] { 2, 3, 2, 3 }, "Lumber Axe",
"The Lumber Axe is a broad chopping tool. It can fell entire trees or gather wood in a wide range.\n\nNatural Abiliyies:\n- Fell Trees\nArea of Effect\n- (3x3x3)\n\nDurability: Triple");
"The Lumber Axe is a broad chopping tool. It can fell entire trees or gather wood in a wide range.\n\nNatural Abilities:\n- Fell Trees\nArea of Effect\n- (3x3x3)\n\nDurability: Average");
addTierTwoButton(4, 12, 0, new int[] { 10, 8, 9, 8 }, new int[] { 2, 3, 3, 3 }, "Excavator",
"The Excavator is a broad digging tool. It harvests soil and snow in a wide range.\n\nNatural Ability:\n- Area of Effect\n- (3x3)\n\nDurability: Triple");
addTierTwoButton(5, 7, 1, new int[] { 6, 8, 9, 8 }, new int[] { 3, 3, 2, 3 }, "Breaker Blade",
"The Breaker Blade is a heavy defensive weapon. It has powerful strikes, but is difficult to wield.\n\nSpecial Ability: Block\nNatural Ability:\n- Beheading\n\nDamage: Very High\nDurability: Triple");
"The Excavator is a broad digging tool. It harvests soil and snow in a wide range.\n\nNatural Ability:\n- Area of Effect\n- (3x3)\n\nDurability: Average");
addTierTwoButton(4, 10, 0, new int[] { 8, 8, 9, 8 }, new int[] { 2, 3, 3, 3 }, "Scythe",
"The Scythe is a broad reaping tool. It is effective on plants and attacks enemies in a wide range.\n\nNatural Ability:\nArea of Effect\n- (3x3x3)\n\nDurability: Average\nDamage: Low, AoE");
addTierTwoButton(5, 7, 1, new int[] { 6, 8, 9, 8 }, new int[] { 3, 3, 2, 3 }, "Cleaver",
"The Cleaver is a heavy defensive weapon. It has powerful strikes, but is difficult to wield.\n\nSpecial Ability: Block\nNatural Ability:\n- Beheading\n\nDamage: Very High\nDurability: Average");
addTierTwoButton(5, 8, 1, new int[] { 6, 8, 6, 9 }, new int[] { 2, 3, 2, 3 }, "Battleaxe",
"The Battleaxe is a heavy offensive weapon. It is capable of bringing down small trees and can send foes flying.\n\nSpecial Ability: Block\nNatural Abilities:\n- Knockback\n- Area of Effect\n- (1x9)\n\nDamage: Average\nDurability: Average");
}
void addToolButton (int slotType, int xButton, int yButton, int[] xIcons, int[] yIcons, String title, String body)
@ -583,11 +587,15 @@ 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", "silk" };
int[] validHarvestEffects = { 0, 1, 2, 4, 6, 7, 8, 9, 10, 11, 12 };
/*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, 12 };
int[] validDaggerEffects = { 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12 };*/
int[] universalEffects = { 0, 1, 4, 9 };
int[] weaponEffects = { 5, 7, 8, 12 };
int[] harvestEffects = { 2 };
int[] nonUtility = { 6, 10, 11 };
for (int partIter = 0; partIter < partTypes.length; partIter++)
{
@ -596,46 +604,36 @@ public class TProxyClient extends TProxyCommon
for (ToolCore tool : TConstructRegistry.getToolMapping())
{
if (tool instanceof Dagger)
{
for (int i = 0; i < validDaggerEffects.length; i++)
{
TConstructClientRegistry.addEffectRenderMapping(validDaggerEffects[i], "tinker", effectTypes[validDaggerEffects[i]], true);
}
return;
}
List list = Arrays.asList(tool.toolCategories());
for (int i = 0; i < universalEffects.length; i++)
{
TConstructClientRegistry.addEffectRenderMapping(universalEffects[i], "tinker", effectTypes[universalEffects[i]], true);
}
if (list.contains("harvest"))
{
for (int i = 0; i < validHarvestEffects.length; i++)
{
for (int i = 0; i < harvestEffects.length; i++)
{
TConstructClientRegistry.addEffectRenderMapping(validHarvestEffects[i], "tinker", effectTypes[validHarvestEffects[i]], true);
TConstructClientRegistry.addEffectRenderMapping(harvestEffects[i], "tinker", effectTypes[harvestEffects[i]], true);
}
}
else if (list.contains("melee"))
if (list.contains("weapon"))
{
for (int i = 0; i < validWeaponEffects.length; i++)
for (int i = 0; i < weaponEffects.length; i++)
{
TConstructClientRegistry.addEffectRenderMapping(validWeaponEffects[i], "tinker", effectTypes[validWeaponEffects[i]], true);
TConstructClientRegistry.addEffectRenderMapping(weaponEffects[i], "tinker", effectTypes[weaponEffects[i]], true);
}
}
else if (list.contains("utility"))
if (list.contains("weapon") || list.contains("harvest"))
{
for (int i = 0; i < validUtilityEffects.length; i++)
for (int i = 0; i < nonUtility.length; i++)
{
TConstructClientRegistry.addEffectRenderMapping(validUtilityEffects[i], "tinker", effectTypes[validUtilityEffects[i]], true);
TConstructClientRegistry.addEffectRenderMapping(nonUtility[i], "tinker", effectTypes[nonUtility[i]], true);
}
}
//return list.contains("throwing");
}
/*for (int effectIter = 0; effectIter < 3; effectIter++)
{
TConstructClientRegistry.addEffectRenderMapping(effectIter, "tinker", effectTypes[effectIter], true);
}
for (int effectIter = 4; effectIter < effectTypes.length; effectIter++)
{
TConstructClientRegistry.addEffectRenderMapping(effectIter, "tinker", effectTypes[effectIter], true);
}*/
}
/* Keybindings */

View File

@ -150,6 +150,10 @@ public class ToolForgeGui extends NewContainerGui
slotX = new int[] { 38, 47, 56, 47 }; // Four parts, double head
slotY = new int[] { 19, 55, 19, 37 };
break;
case 6:
slotX = new int[] { 38, 38, 20, 56 }; // Double head
slotY = new int[] { 28, 46, 28, 28 };
break;
}
toolSlots.resetSlots(slotX, slotY);
}

View File

@ -3,108 +3,21 @@ package mods.tinker.tconstruct.common;
import java.util.Collection;
import mods.tinker.tconstruct.TConstruct;
import mods.tinker.tconstruct.blocks.EquipBlock;
import mods.tinker.tconstruct.blocks.GravelOre;
import mods.tinker.tconstruct.blocks.LavaTankBlock;
import mods.tinker.tconstruct.blocks.LiquidMetalFlowing;
import mods.tinker.tconstruct.blocks.LiquidMetalStill;
import mods.tinker.tconstruct.blocks.MetalOre;
import mods.tinker.tconstruct.blocks.MultiBrick;
import mods.tinker.tconstruct.blocks.OreberryBush;
import mods.tinker.tconstruct.blocks.SearedBlock;
import mods.tinker.tconstruct.blocks.SmelteryBlock;
import mods.tinker.tconstruct.blocks.SpeedBlock;
import mods.tinker.tconstruct.blocks.StoneTorch;
import mods.tinker.tconstruct.blocks.TConstructBlock;
import mods.tinker.tconstruct.blocks.TMetalBlock;
import mods.tinker.tconstruct.blocks.ToolForgeBlock;
import mods.tinker.tconstruct.blocks.ToolStationBlock;
import mods.tinker.tconstruct.blocks.logic.CastingBasinLogic;
import mods.tinker.tconstruct.blocks.logic.CastingTableLogic;
import mods.tinker.tconstruct.blocks.logic.FaucetLogic;
import mods.tinker.tconstruct.blocks.logic.FrypanLogic;
import mods.tinker.tconstruct.blocks.logic.LavaTankLogic;
import mods.tinker.tconstruct.blocks.logic.LiquidTextureLogic;
import mods.tinker.tconstruct.blocks.logic.MultiServantLogic;
import mods.tinker.tconstruct.blocks.logic.PartCrafterLogic;
import mods.tinker.tconstruct.blocks.logic.PatternChestLogic;
import mods.tinker.tconstruct.blocks.logic.StencilTableLogic;
import mods.tinker.tconstruct.blocks.logic.SmelteryDrainLogic;
import mods.tinker.tconstruct.blocks.logic.SmelteryLogic;
import mods.tinker.tconstruct.blocks.logic.ToolForgeLogic;
import mods.tinker.tconstruct.blocks.logic.ToolStationLogic;
import mods.tinker.tconstruct.entity.Automaton;
import mods.tinker.tconstruct.entity.BlueSlime;
import mods.tinker.tconstruct.entity.FancyEntityItem;
import mods.tinker.tconstruct.entity.projectile.DaggerEntity;
import mods.tinker.tconstruct.items.CraftingItem;
import mods.tinker.tconstruct.items.DiamondApple;
import mods.tinker.tconstruct.items.FilledBucket;
import mods.tinker.tconstruct.items.HeartCanister;
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;
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.armor.Glove;
import mods.tinker.tconstruct.items.armor.TArmorBase;
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.MultiBrickItem;
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.SpeedBlockItem;
import mods.tinker.tconstruct.items.blocks.ToolForgeItemBlock;
import mods.tinker.tconstruct.items.blocks.ToolStationItemBlock;
import mods.tinker.tconstruct.items.tools.BattleSign;
import mods.tinker.tconstruct.items.tools.Broadsword;
import mods.tinker.tconstruct.items.tools.Chisel;
import mods.tinker.tconstruct.items.tools.BreakerBlade;
import mods.tinker.tconstruct.items.tools.Dagger;
import mods.tinker.tconstruct.items.tools.Excavator;
import mods.tinker.tconstruct.items.tools.FryingPan;
import mods.tinker.tconstruct.items.tools.Hatchet;
import mods.tinker.tconstruct.items.tools.Longsword;
import mods.tinker.tconstruct.items.tools.LumberAxe;
import mods.tinker.tconstruct.items.tools.Mattock;
import mods.tinker.tconstruct.items.tools.Pickaxe;
import mods.tinker.tconstruct.items.tools.PotionLauncher;
import mods.tinker.tconstruct.items.tools.Rapier;
import mods.tinker.tconstruct.items.tools.Scythe;
import mods.tinker.tconstruct.items.tools.Shovel;
import mods.tinker.tconstruct.blocks.*;
import mods.tinker.tconstruct.blocks.logic.*;
import mods.tinker.tconstruct.entity.*;
import mods.tinker.tconstruct.entity.projectile.*;
import mods.tinker.tconstruct.items.*;
import mods.tinker.tconstruct.items.armor.*;
import mods.tinker.tconstruct.items.blocks.*;
import mods.tinker.tconstruct.items.tools.*;
import mods.tinker.tconstruct.library.TConstructRegistry;
import mods.tinker.tconstruct.library.client.TConstructClientRegistry;
import mods.tinker.tconstruct.library.crafting.Detailing;
import mods.tinker.tconstruct.library.crafting.LiquidCasting;
import mods.tinker.tconstruct.library.crafting.PatternBuilder;
import mods.tinker.tconstruct.library.crafting.Smeltery;
import mods.tinker.tconstruct.library.crafting.ToolBuilder;
import mods.tinker.tconstruct.library.crafting.*;
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.ModButtertouch;
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.modifiers.TActiveOmniMod;
import mods.tinker.tconstruct.util.PHConstruct;
import mods.tinker.tconstruct.util.RecipeRemover;
import mods.tinker.tconstruct.modifiers.*;
import mods.tinker.tconstruct.util.*;
import net.minecraft.block.Block;
import net.minecraft.block.material.MapColor;
import net.minecraft.block.material.Material;
@ -168,8 +81,10 @@ public class TContent implements IFuelHandler
public static ToolCore scythe;
public static ToolCore lumberaxe;
public static ToolCore breakerBlade;
public static ToolCore cleaver;
public static ToolCore excavator;
public static ToolCore hammer;
public static ToolCore battleaxe;
public static Item potionLauncher;
@ -177,7 +92,7 @@ public class TContent implements IFuelHandler
public static Item binding;
public static Item toughBinding;
public static Item toughRod;
public static Item largePlate;
public static Item heavyPlate;
public static Item pickaxeHead;
public static Item shovelHead;
@ -186,8 +101,9 @@ public class TContent implements IFuelHandler
public static Item signHead;
public static Item chiselHead;
public static Item scytheBlade;
public static Item lumberHead;
public static Item broadAxeHead;
public static Item excavatorHead;
public static Item hammerHead;
public static Item swordBlade;
public static Item largeSwordBlade;
@ -487,11 +403,14 @@ public class TContent implements IFuelHandler
frypan = new FryingPan(PHConstruct.frypan);
battlesign = new BattleSign(PHConstruct.battlesign);
mattock = new Mattock(PHConstruct.mattock);
scythe = new Scythe(PHConstruct.scythe);
lumberaxe = new LumberAxe(PHConstruct.lumberaxe);
chisel = new Chisel(PHConstruct.chisel);
breakerBlade = new BreakerBlade(PHConstruct.cleaver);
lumberaxe = new LumberAxe(PHConstruct.lumberaxe);
cleaver = new Cleaver(PHConstruct.cleaver);
scythe = new Scythe(PHConstruct.scythe);
excavator = new Excavator(PHConstruct.excavator);
hammer = new Hammer(PHConstruct.hammer);
battleaxe = new Battleaxe(PHConstruct.battleaxe);
potionLauncher = new PotionLauncher(PHConstruct.potionLauncher).setUnlocalizedName("tconstruct.PotionLauncher");
@ -501,7 +420,7 @@ public class TContent implements IFuelHandler
binding = new ToolPart(PHConstruct.binding, "Binding", "_binding").setUnlocalizedName("tconstruct.Binding");
toughBinding = new ToolPart(PHConstruct.toughBinding, "ThickBinding", "_toughbind").setUnlocalizedName("tconstruct.ThickBinding");
toughRod = new ToolPart(PHConstruct.toughRod, "ThickRod", "_toughrod").setUnlocalizedName("tconstruct.ThickRod");
largePlate = new ToolPart(PHConstruct.largePlate, "LargePlate", "_largeplate").setUnlocalizedName("tconstruct.LargePlate");
heavyPlate = new ToolPart(PHConstruct.largePlate, "LargePlate", "_largeplate").setUnlocalizedName("tconstruct.LargePlate");
swordBlade = new ToolPart(PHConstruct.swordBlade, "SwordBlade", "_sword_blade").setUnlocalizedName("tconstruct.SwordBlade");
wideGuard = new ToolPart(PHConstruct.largeGuard, "LargeGuard", "_large_guard").setUnlocalizedName("tconstruct.LargeGuard");
@ -514,9 +433,10 @@ public class TContent implements IFuelHandler
chiselHead = new ToolPart(PHConstruct.chiselHead, "ChiselHead", "_chisel_head").setUnlocalizedName("tconstruct.ChiselHead");
scytheBlade = new ToolPart(PHConstruct.scytheBlade, "ScytheBlade", "_scythe_head").setUnlocalizedName("tconstruct.ScytheBlade");
lumberHead = new ToolPart(PHConstruct.lumberHead, "LumberHead", "_lumberaxe_head").setUnlocalizedName("tconstruct.LumberHead");
broadAxeHead = new ToolPart(PHConstruct.lumberHead, "LumberHead", "_lumberaxe_head").setUnlocalizedName("tconstruct.LumberHead");
excavatorHead = new ToolPart(PHConstruct.excavatorHead, "ExcavatorHead", "_excavator_head").setUnlocalizedName("tconstruct.ExcavatorHead");
largeSwordBlade = new ToolPart(PHConstruct.largeSwordBlade, "LargeSwordBlade", "_large_sword_blade").setUnlocalizedName("tconstruct.LargeSwordBlade");
hammerHead = new ToolPart(PHConstruct.hammerHead, "HammerHead", "_hammer_head").setUnlocalizedName("tconstruct.HammerHead");
diamondApple = new DiamondApple(PHConstruct.diamondApple).setUnlocalizedName("tconstruct.apple.diamond");
strangeFood = new StrangeFood(PHConstruct.slimefood).setUnlocalizedName("tconstruct.strangefood");
@ -635,7 +555,7 @@ public class TContent implements IFuelHandler
{
/* Tools */
patternOutputs = new Item[] { toolRod, pickaxeHead, shovelHead, axeHead, swordBlade, wideGuard, handGuard, crossbar, binding, frypanHead, signHead, knifeBlade, chiselHead,
toughRod, toughBinding, largePlate, lumberHead, scytheBlade, excavatorHead, largeSwordBlade};
toughRod, toughBinding, heavyPlate, broadAxeHead, scytheBlade, excavatorHead, largeSwordBlade, hammerHead};
ToolBuilder tb = ToolBuilder.instance;
tb.addToolRecipe(pickaxe, pickaxeHead, binding);
@ -650,12 +570,11 @@ public class TContent implements IFuelHandler
tb.addToolRecipe(dagger, knifeBlade, crossbar);
tb.addToolRecipe(chisel, chiselHead);
tb.addCustomToolRecipe(scythe, scytheBlade, toughRod, toughBinding, toughRod);
tb.addCustomToolRecipe(lumberaxe, lumberHead, toughRod, largePlate, toughBinding);
tb.addCustomToolRecipe(breakerBlade, largeSwordBlade, toughRod, largePlate, toughRod);
tb.addCustomToolRecipe(lumberaxe, broadAxeHead, toughRod, heavyPlate, toughBinding);
tb.addCustomToolRecipe(cleaver, largeSwordBlade, toughRod, heavyPlate, toughRod);
tb.addCustomToolRecipe(excavator, excavatorHead, toughRod, toughBinding, toughRod);
//tb.addToolRecipe(longbow, toolRod, toolRod);
//tb.addToolRecipe(lumberaxe, lumberHead);
tb.addCustomToolRecipe(hammer, hammerHead, toughRod, heavyPlate, heavyPlate);
tb.addCustomToolRecipe(battleaxe, broadAxeHead, toughRod, broadAxeHead, toughBinding);
ItemStack diamond = new ItemStack(Item.diamond);
tb.registerToolMod(new ModRepair());

View File

@ -145,8 +145,10 @@ public class TProxyCommon implements IGuiHandler
LanguageRegistry.addName(TContent.chisel, "Chisel");
LanguageRegistry.addName(TContent.scythe, "Scythe");
LanguageRegistry.addName(TContent.lumberaxe, "Lumber Axe");
LanguageRegistry.addName(TContent.breakerBlade, "Breaker Blade");
LanguageRegistry.addName(TContent.cleaver, "Cleaver");
LanguageRegistry.addName(TContent.excavator, "Excavator");
LanguageRegistry.addName(TContent.hammer, "Hammer");
LanguageRegistry.addName(TContent.battleaxe, "Battleaxe");
}
@ -175,14 +177,15 @@ public class TProxyCommon implements IGuiHandler
"Copper", "Bronze", "Alumite", "Steel", "Blue Slime" };
public static final String[] materialTypes = new String[] { "ToolRod", "PickaxeHead", "ShovelHead", "AxeHead", "SwordBlade", "LargeGuard", "MediumGuard", "Crossbar", "Binding", "FrypanHead",
"SignHead", "LumberHead", "KnifeBlade", "ChiselHead", "ScytheBlade", "LumberHead", "ThickRod", "ThickBinding", "LargeSwordBlade", "LargePlate", "ExcavatorHead" };
"SignHead", "LumberHead", "KnifeBlade", "ChiselHead", "ScytheBlade", "LumberHead", "ThickRod", "ThickBinding", "LargeSwordBlade", "LargePlate", "ExcavatorHead", "HammerHead" };
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", " Knife Blade", " Chisel Head", " Scythe Blade", " Broad Axe Head", " Tough Tool Rod", " Tough Binding", " Large Sword Blade", " Large Plate", " Excavator Head" };
" Board", " Broad Axe Head", " Knife Blade", " Chisel Head", " Scythe Blade", " Broad Axe Head", " Tough Tool Rod", " Tough Binding", " Large Sword Blade", " Large Plate", " Excavator Head",
" Hammer Head"};
public static final String[] patterns = new String[] { "ingot", "rod", "pickaxe", "shovel", "axe", "swordblade", "largeguard", "mediumguard", "crossbar", "binding", "frypan", "sign", "knifeblade", "chisel",
"largerod", "toughbinding", "largeplate", "broadaxe", "scythe", "excavator", "largeblade"};
"largerod", "toughbinding", "largeplate", "broadaxe", "scythe", "excavator", "largeblade", "hammerhead"};
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", "Knife Blade", "Chisel Head", "Tough Tool Rod", "Tough Binding", "Large Plate", "Broad Axe Head", "Scythe Head", "Broad Shovel Head", "Large Blade" };
"Pan", "Board", "Knife Blade", "Chisel Head", "Tough Tool Rod", "Tough Binding", "Large Plate", "Broad Axe Head", "Scythe Head", "Broad Shovel Head", "Large Blade", "Hammer Head" };
}

View File

@ -435,7 +435,7 @@ public class BlueSlime extends EntityLiving implements IMob, IBossDisplayData
if (size == 8)
{
ToolCore tool = TConstructRegistry.tools.get(rand.nextInt(TConstructRegistry.tools.size()));
ToolCore tool = getValidTool();
Item accessory = tool.getAccessoryItem();
ItemStack accessoryStack = accessory != null ? new ItemStack(tool.getAccessoryItem(), 1, 17) : null;
@ -456,6 +456,14 @@ public class BlueSlime extends EntityLiving implements IMob, IBossDisplayData
}
}
}
ToolCore getValidTool()
{
ToolCore tool = TConstructRegistry.tools.get(rand.nextInt(TConstructRegistry.tools.size()));
if (tool.getAccessoryItem() != null)
tool = getValidTool();
return tool;
}
/**
* Called by a player entity when they collide with an entity

View File

@ -0,0 +1,20 @@
package mods.tinker.tconstruct.event;
import mods.tinker.tconstruct.library.tools.ToolCore;
import mods.tinker.tconstruct.library.tools.ToolMaterial;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.event.Event;
public class ToolCraftEvent extends Event
{
public final ToolCore tool;
public final NBTTagCompound toolTag;
public final ToolMaterial[] materials;
public ToolCraftEvent(ToolCore tool, NBTTagCompound toolTag, ToolMaterial[] materials)
{
this.tool = tool;
this.toolTag = toolTag;
this.materials = materials;
}
}

View File

@ -34,7 +34,7 @@ public class Pattern extends CraftingItem
public static final String[] patternName = new String[] {
"ingot", "rod", "pickaxe", "shovel", "axe", "swordblade", "largeguard", "mediumguard", "crossbar", "binding", "frypan", "sign", "knifeblade", "chisel", "largerod", "toughbinding", "largeplate",
"broadaxe", "scythe", "excavator", "largeblade" };
"broadaxe", "scythe", "excavator", "largeblade", "hammerhead" };
/*@SideOnly(Side.CLIENT)
public void registerIcons(IconRegister iconRegister)
@ -104,6 +104,7 @@ public class Pattern extends CraftingItem
case 18: return 16;
case 19: return 16;
case 20: return 16;
case 21: return 16;
default: return 0;
}
}

View File

@ -0,0 +1,222 @@
package mods.tinker.tconstruct.items.tools;
import mods.tinker.tconstruct.common.TContent;
import mods.tinker.tconstruct.library.ActiveToolMod;
import mods.tinker.tconstruct.library.TConstructRegistry;
import mods.tinker.tconstruct.library.tools.AbilityHelper;
import mods.tinker.tconstruct.library.tools.HarvestTool;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class Battleaxe extends HarvestTool
{
public Battleaxe(int itemID)
{
super(itemID, 4);
this.setUnlocalizedName("InfiTool.Battleaxe");
}
@Override
protected Material[] getEffectiveMaterials ()
{
return materials;
}
@Override
protected String getHarvestType ()
{
return "axe";
}
@Override
public boolean onBlockDestroyed (ItemStack itemstack, World world, int bID, int x, int y, int z, EntityLiving player)
{
Block block = Block.blocksList[bID];
if (block != null && block.blockMaterial == Material.leaves)
return false;
return AbilityHelper.onBlockChanged(itemstack, world, bID, x, y, z, player, random);
}
static Material[] materials = { Material.wood, Material.leaves, Material.vine, Material.circuits, Material.cactus, Material.pumpkin };
@Override
public Item getHeadItem ()
{
return TContent.broadAxeHead;
}
@Override
public Item getHandleItem ()
{
return TContent.toughRod;
}
@Override
public Item getAccessoryItem ()
{
return TContent.broadAxeHead;
}
@Override
public Item getExtraItem ()
{
return TContent.toughBinding;
}
@Override
public float getRepairCost ()
{
return 4.0f;
}
public float getDurabilityModifier ()
{
return 2.5f;
}
@SideOnly(Side.CLIENT)
@Override
public int getRenderPasses (int metadata)
{
return 10;
}
@Override
public int getPartAmount ()
{
return 4;
}
@Override
public String getIconSuffix (int partType)
{
switch (partType)
{
case 0:
return "_battleaxe_fronthead";
case 1:
return "_battleaxe_fronthead_broken";
case 2:
return "_battleaxe_handle";
case 3:
return "_battleaxe_backhead";
case 4:
return "_battleaxe_binding";
default:
return "";
}
}
@Override
public String getEffectSuffix ()
{
return "_battleaxe_effect";
}
@Override
public String getDefaultFolder ()
{
return "battleaxe";
}
@Override
public String[] toolCategories()
{
return new String[] { "weapon", "harvest", "slicing" };
}
/* Battleaxe Specific */
/* Lumber axe specific */
@Override
public boolean hitEntity (ItemStack stack, EntityLiving mob, EntityLiving player)
{
AbilityHelper.knockbackEntity(mob, 1.5f);
return true;
}
@Override
public float getStrVsBlock (ItemStack stack, Block block, int meta)
{
if (!stack.hasTagCompound())
return 1.0f;
NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool");
if (tags.getBoolean("Broken"))
return 0.1f;
Material[] materials = getEffectiveMaterials();
for (int i = 0; i < materials.length; i++)
{
if (materials[i] == block.blockMaterial)
{
float speed = tags.getInteger("MiningSpeed");
speed /= 200f;
int hlvl = MinecraftForge.getBlockHarvestLevel(block, meta, getHarvestType());
int durability = tags.getInteger("Damage");
float shoddy = tags.getFloat("Shoddy");
speed += shoddy * durability / 100f;
if (hlvl <= tags.getInteger("HarvestLevel"))
return speed;
return 0.1f;
}
}
return super.getStrVsBlock(stack, block, meta);
}
@Override
public boolean onBlockStartBreak (ItemStack stack, int x, int y, int z, EntityPlayer player)
{
World world = player.worldObj;
int woodID = world.getBlockId(x, y, z);
Block wood = Block.blocksList[woodID];
NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool");
int meta = world.getBlockMetadata(x, y, z);
for (int yPos = y + 1; yPos < y + 9; yPos++)
{
int blockID = world.getBlockId(x, yPos, z);
Block block = Block.blocksList[blockID];
if (!(tags.getBoolean("Broken")) && block != null && block.blockMaterial == Material.wood )
{
boolean cancelHarvest = false;
for (ActiveToolMod mod : TConstructRegistry.activeModifiers)
{
if (mod.beforeBlockBreak(this, stack, x, yPos, z, player))
cancelHarvest = true;
}
if (!cancelHarvest)
{
if (block != null && block.blockMaterial == Material.wood)
{
meta = world.getBlockMetadata(x, yPos, z);
world.setBlockToAir(x, yPos, z);
if (!player.capabilities.isCreativeMode)
{
Block.blocksList[blockID].harvestBlock(world, player, x, yPos, z, meta);
onBlockDestroyed(stack, world, blockID, x, yPos, z, player);
}
}
}
}
}
if (!world.isRemote)
world.playAuxSFX(2001, x, y, z, woodID + (meta << 12));
return super.onBlockStartBreak(stack, x, y, z, player);
}
}

View File

@ -14,9 +14,9 @@ import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class BreakerBlade extends Weapon
public class Cleaver extends Weapon
{
public BreakerBlade(int itemID)
public Cleaver(int itemID)
{
super(itemID, 4);
this.setUnlocalizedName("InfiTool.Cleaver");
@ -37,7 +37,7 @@ public class BreakerBlade extends Weapon
@Override
public Item getAccessoryItem ()
{
return TContent.largePlate;
return TContent.heavyPlate;
}
@Override
@ -59,7 +59,7 @@ public class BreakerBlade extends Weapon
}
@Override
public float getRepairModifier ()
public float getRepairCost ()
{
return 4.0f;
}
@ -88,12 +88,6 @@ public class BreakerBlade extends Weapon
{
return 4;
}
public String getToolName ()
{
return "Breaker Blade";
}
@Override
public String getIconSuffix (int partType)

View File

@ -21,8 +21,16 @@ public class Dagger extends Weapon
public ItemStack onItemRightClick (ItemStack itemstack, World world, EntityPlayer player)
{
player.setItemInUse(itemstack, this.getMaxItemUseDuration(itemstack));
ItemStack stack = itemstack.copy();
if (!world.isRemote)
{
DaggerEntity dagger = new DaggerEntity(stack, world, player);
world.spawnEntityInWorld(dagger);
}
itemstack.stackSize--;
return itemstack;
/*player.setItemInUse(itemstack, this.getMaxItemUseDuration(itemstack));
return itemstack;*/
}
public ItemStack onEaten (ItemStack itemstack, World world, EntityPlayer player)

View File

@ -1,52 +1,62 @@
package mods.tinker.tconstruct.items.tools;
import mods.tinker.tconstruct.common.TContent;
import mods.tinker.tconstruct.library.ActiveToolMod;
import mods.tinker.tconstruct.library.TConstructRegistry;
import mods.tinker.tconstruct.library.tools.AbilityHelper;
import mods.tinker.tconstruct.library.tools.HarvestTool;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class Excavator extends HarvestTool
{
public Excavator(int itemID)
{
super(itemID, 2);
this.setUnlocalizedName("InfiTool.Excavator");
}
@Override
protected Material[] getEffectiveMaterials()
{
return materials;
}
public Excavator(int itemID)
{
super(itemID, 2);
this.setUnlocalizedName("InfiTool.Excavator");
}
@Override
protected String getHarvestType()
{
return "shovel";
}
static Material[] materials = { Material.grass, Material.ground, Material.sand, Material.snow, Material.craftedSnow, Material.clay };
@Override
protected Material[] getEffectiveMaterials ()
{
return materials;
}
@Override
protected String getHarvestType ()
{
return "shovel";
}
static Material[] materials = { Material.grass, Material.ground, Material.sand, Material.snow, Material.craftedSnow, Material.clay };
@Override
public Item getHeadItem ()
{
return TContent.excavatorHead;
}
@Override
public Item getHeadItem ()
{
return TContent.excavatorHead;
}
@Override
public Item getHandleItem ()
{
return TContent.toughRod;
}
@Override
public Item getAccessoryItem ()
{
return TContent.toughBinding;
}
@Override
public Item getAccessoryItem ()
{
return TContent.toughBinding;
}
@Override
public Item getExtraItem ()
{
@ -54,7 +64,7 @@ public class Excavator extends HarvestTool
}
@Override
public float getRepairModifier ()
public float getRepairCost ()
{
return 4.0f;
}
@ -63,7 +73,7 @@ public class Excavator extends HarvestTool
{
return 2.75f;
}
@Override
public int durabilityTypeAccessory ()
{
@ -75,49 +85,160 @@ public class Excavator extends HarvestTool
{
return 1;
}
@SideOnly(Side.CLIENT)
@Override
public int getRenderPasses (int metadata)
{
return 10;
}
@Override
public int getPartAmount()
{
return 4;
}
@Override
public String getIconSuffix (int partType)
{
switch (partType)
{
case 0:
return "_excavator_head";
case 1:
return "_excavator_head_broken";
case 2:
return "_excavator_handle";
@SideOnly(Side.CLIENT)
@Override
public int getRenderPasses (int metadata)
{
return 10;
}
@Override
public int getPartAmount ()
{
return 4;
}
@Override
public String getIconSuffix (int partType)
{
switch (partType)
{
case 0:
return "_excavator_head";
case 1:
return "_excavator_head_broken";
case 2:
return "_excavator_handle";
case 3:
return "_excavator_binding";
case 4:
return "_excavator_grip";
default:
return "";
}
}
default:
return "";
}
}
@Override
public String getEffectSuffix ()
{
return "_excavator_effect";
}
@Override
public String getEffectSuffix ()
{
return "_excavator_effect";
}
@Override
public String getDefaultFolder ()
{
return "excavator";
}
@Override
public String getDefaultFolder ()
{
return "excavator";
}
/* Excavator Specific */
@Override
public boolean onBlockStartBreak (ItemStack stack, int x, int y, int z, EntityPlayer player)
{
World world = player.worldObj;
int blockID = 0;
int meta = 0;
if (!stack.hasTagCompound())
return false;
MovingObjectPosition mop = AbilityHelper.raytraceFromEntity(world, player, true, 6);
if (mop == null)
return super.onBlockStartBreak(stack, x, y, z, player);
int xRange = 1;
int yRange = 1;
int zRange = 1;
switch (mop.sideHit)
{
case 0:
case 1:
yRange = 0;
break;
case 2:
case 3:
zRange = 0;
break;
case 4:
case 5:
xRange = 0;
break;
}
NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool");
for (int xPos = x - xRange; xPos <= x + xRange; xPos++)
{
for (int yPos = y - yRange; yPos <= y + yRange; yPos++)
{
for (int zPos = z - zRange; zPos <= z + zRange; zPos++)
{
if (!(tags.getBoolean("Broken")))
{
boolean cancelHarvest = false;
for (ActiveToolMod mod : TConstructRegistry.activeModifiers)
{
if (mod.beforeBlockBreak(this, stack, xPos, yPos, zPos, player))
cancelHarvest = true;
}
if (!cancelHarvest)
{
int localblockID = world.getBlockId(xPos, yPos, zPos);
Block block = Block.blocksList[localblockID];
if (block != null)
{
for (int iter = 0; iter < materials.length; iter++)
{
if (materials[iter] == block.blockMaterial)
{
meta = world.getBlockMetadata(xPos, yPos, zPos);
world.setBlockToAir(xPos, yPos, zPos);
if (!player.capabilities.isCreativeMode)
{
block.harvestBlock(world, player, xPos, yPos, zPos, meta);
onBlockDestroyed(stack, world, localblockID, xPos, yPos, zPos, player);
}
blockID = localblockID;
}
}
}
}
}
}
}
}
if (!world.isRemote)
world.playAuxSFX(2001, x, y, z, blockID + (meta << 12));
return super.onBlockStartBreak(stack, x, y, z, player);
}
@Override
public float getStrVsBlock (ItemStack stack, Block block, int meta)
{
if (!stack.hasTagCompound())
return 1.0f;
NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool");
if (tags.getBoolean("Broken"))
return 0.1f;
Material[] materials = getEffectiveMaterials();
for (int i = 0; i < materials.length; i++)
{
if (materials[i] == block.blockMaterial)
{
float speed = tags.getInteger("MiningSpeed");
speed /= 200f;
int hlvl = MinecraftForge.getBlockHarvestLevel(block, meta, getHarvestType());
int durability = tags.getInteger("Damage");
float shoddy = tags.getFloat("Shoddy");
speed += shoddy * durability / 100f;
if (hlvl <= tags.getInteger("HarvestLevel"))
return speed;
return 0.1f;
}
}
return super.getStrVsBlock(stack, block, meta);
}
}

View File

@ -2,122 +2,331 @@ package mods.tinker.tconstruct.items.tools;
import java.util.ArrayList;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import mods.tinker.tconstruct.common.TContent;
import mods.tinker.tconstruct.library.ActiveToolMod;
import mods.tinker.tconstruct.library.TConstructRegistry;
import mods.tinker.tconstruct.library.tools.AbilityHelper;
import mods.tinker.tconstruct.library.tools.HarvestTool;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.Icon;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
public class Hammer extends HarvestTool
{
public Hammer(int itemID)
{
super(itemID, 4);
this.setUnlocalizedName("InfiTool.Hammer");
setupCoords();
}
@Override
public int getHeadType ()
{
return 1;
}
@Override
protected String getHarvestType()
{
return "pickaxe";
}
public Hammer(int itemID)
{
super(itemID, 2);
this.setUnlocalizedName("InfiTool.Hammer");
setupCoords();
}
@Override
protected Material[] getEffectiveMaterials()
{
return materials;
}
@SideOnly(Side.CLIENT)
@Override
public int getRenderPasses (int metadata)
{
return 10;
}
static Material[] materials = new Material[] { Material.rock, Material.iron, Material.ice, Material.glass, Material.piston, Material.anvil };
/* Hammer specfic methods */
ArrayList<int[]> coords = new ArrayList<int[]>();
void setupCoords()
{
coords.add(new int[] {1, 0, 0 });
coords.add(new int[] {-1, 0, 0});
coords.add(new int[] {0, 1, 0 });
coords.add(new int[] {0, -1, 0});
coords.add(new int[] {0, 0, 1 });
coords.add(new int[] {0, 0, -1});
}
//@Override
/*public boolean onBlockDestroyed (ItemStack itemstack, World world, int bID, int x, int y, int z, EntityLiving living)
{
if (!(itemstack.getTagCompound().getCompoundTag("InfiTool").getBoolean("Broken")) && living instanceof EntityPlayer)
{
EntityPlayer player = (EntityPlayer)living;
for (int[] coord : coords)
{
int xPos = x+coord[0], yPos = y+coord[1], zPos = z+coord[2];
Block block = Block.blocksList[world.getBlockId(xPos, yPos, zPos)];
{
if (block != null)
{
if (block.blockID == Block.stone.blockID)
world.setBlock(xPos, yPos, zPos, Block.cobblestone.blockID);
else if (block.blockMaterial == Material.rock)
{
int meta = world.getBlockMetadata(xPos, yPos, zPos);
world.setBlockToAir(x, y, z);
Block.blocksList[bID].harvestBlock(world, (EntityPlayer)player, xPos, yPos, zPos, meta);
if (!player.capabilities.isCreativeMode)
onBlockDestroyed(itemstack, world, bID, xPos, yPos, zPos, player);
}
}
}
}
}
return AbilityHelper.onBlockChanged(itemstack, world, bID, x, y, z, living, random);
}*/
@Override
public int getPartAmount ()
{
return 4;
}
@Override
public Item getHeadItem ()
{
return null;
}
public int durabilityTypeHandle ()
{
return 2;
}
@Override
public Item getAccessoryItem ()
{
return null;
}
@Override
public String getIconSuffix (int partType)
{
switch (partType)
{
case 0:
return "_hammer_head";
case 1:
return "_hammer_head_broken";
case 2:
return "_hammer_handle";
case 3:
return "_hammer_accessory";
default:
return "";
}
}
public int durabilityTypeAccessory ()
{
return 2;
}
@Override
public String getEffectSuffix ()
{
return "_hammer_effect";
}
public int durabilityTypeExtra ()
{
return 1;
}
@Override
public String getDefaultFolder ()
{
return "hammer";
}
@Override
protected String getHarvestType ()
{
return "pickaxe";
}
@Override
protected Material[] getEffectiveMaterials ()
{
return materials;
}
static Material[] materials = new Material[] { Material.rock, Material.iron, Material.ice, Material.glass, Material.piston, Material.anvil };
@Override
public Item getHeadItem ()
{
return TContent.hammerHead;
}
@Override
public Item getHandleItem ()
{
return TContent.toughRod;
}
@Override
public Item getAccessoryItem ()
{
return TContent.heavyPlate;
}
@Override
public Item getExtraItem ()
{
return TContent.heavyPlate;
}
public float getDurabilityModifier ()
{
return 5.5f;
}
@Override
public String getIconSuffix (int partType)
{
switch (partType)
{
case 0:
return "_hammer_head";
case 1:
return "_hammer_handle_broken";
case 2:
return "_hammer_handle";
case 3:
return "_hammer_front";
case 4:
return "_hammer_back";
default:
return "";
}
}
@Override
public String getEffectSuffix ()
{
return "_hammer_effect";
}
@Override
public String getDefaultFolder ()
{
return "hammer";
}
@Override
public Icon getIcon (ItemStack stack, int renderPass)
{
NBTTagCompound tags = stack.getTagCompound();
if (tags != null)
{
tags = stack.getTagCompound().getCompoundTag("InfiTool");
if (renderPass < getPartAmount())
{
if (renderPass == 0) // Handle
{
if (tags.getBoolean("Broken"))
return (brokenIcons.get(tags.getInteger("RenderHandle")));
return handleIcons.get(tags.getInteger("RenderHandle"));
}
else if (renderPass == 1) // Head
{
return (headIcons.get(tags.getInteger("RenderHead")));
}
else if (renderPass == 2) // Accessory
{
return (accessoryIcons.get(tags.getInteger("RenderAccessory")));
}
else if (renderPass == 3) // Extra
{
return (extraIcons.get(tags.getInteger("RenderExtra")));
}
}
else
{
if (renderPass == getPartAmount())
{
if (tags.hasKey("Effect1"))
return (effectIcons.get(tags.getInteger("Effect1")));
}
else if (renderPass == getPartAmount() + 1)
{
if (tags.hasKey("Effect2"))
return (effectIcons.get(tags.getInteger("Effect2")));
}
else if (renderPass == getPartAmount() + 2)
{
if (tags.hasKey("Effect3"))
return (effectIcons.get(tags.getInteger("Effect3")));
}
else if (renderPass == getPartAmount() + 3)
{
if (tags.hasKey("Effect4"))
return (effectIcons.get(tags.getInteger("Effect4")));
}
else if (renderPass == getPartAmount() + 4)
{
if (tags.hasKey("Effect5"))
return (effectIcons.get(tags.getInteger("Effect5")));
}
else if (renderPass == getPartAmount() + 5)
{
if (tags.hasKey("Effect6"))
return (effectIcons.get(tags.getInteger("Effect6")));
}
}
return blankSprite;
}
return emptyIcon;
}
ArrayList<int[]> coords = new ArrayList<int[]>();
void setupCoords ()
{
coords.add(new int[] { 0, 0, 0 });
coords.add(new int[] { 1, 0, 0 });
coords.add(new int[] { -1, 0, 0 });
coords.add(new int[] { 0, 1, 0 });
coords.add(new int[] { 0, -1, 0 });
coords.add(new int[] { 0, 0, 1 });
coords.add(new int[] { 0, 0, -1 });
coords.add(new int[] { -1, 0, 0 });
coords.add(new int[] { -1, 0, 1 });
coords.add(new int[] { -1, 0, -1 });
coords.add(new int[] { -1, 1, 0 });
coords.add(new int[] { -1, -1, 0 });
coords.add(new int[] { 1, 0, 0 });
coords.add(new int[] { 1, 0, 1 });
coords.add(new int[] { 1, 0, -1 });
coords.add(new int[] { 1, 1, 0 });
coords.add(new int[] { 1, -1, 0 });
coords.add(new int[] { 0, 1, 1 });
coords.add(new int[] { 0, 1, 0 });
coords.add(new int[] { 0, 1, -1 });
coords.add(new int[] { 0, -1, 1 });
coords.add(new int[] { 0, -1, 0 });
coords.add(new int[] { 0, -1, -1 });
}
@Override
public boolean onBlockStartBreak (ItemStack stack, int x, int y, int z, EntityPlayer player)
{
World world = player.worldObj;
int blockID = 0;
int meta = 0;
if (!stack.hasTagCompound())
return false;
NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool");
if (!(tags.getBoolean("Broken")))
{
for (int[] coord : coords)
{
int xPos = x + coord[0], yPos = y + coord[1], zPos = z + coord[2];
boolean cancelHarvest = false;
for (ActiveToolMod mod : TConstructRegistry.activeModifiers)
{
if (mod.beforeBlockBreak(this, stack, xPos, yPos, zPos, player))
cancelHarvest = true;
}
if (!cancelHarvest)
{
int localblockID = world.getBlockId(xPos, yPos, zPos);
Block block = Block.blocksList[localblockID];
if (block != null)
{
for (int iter = 0; iter < materials.length; iter++)
{
if (materials[iter] == block.blockMaterial)
{
meta = world.getBlockMetadata(xPos, yPos, zPos);
world.setBlockToAir(xPos, yPos, zPos);
if (!player.capabilities.isCreativeMode)
{
block.harvestBlock(world, player, xPos, yPos, zPos, meta);
onBlockDestroyed(stack, world, localblockID, xPos, yPos, zPos, player);
}
blockID = localblockID;
}
}
}
}
}
}
if (!world.isRemote)
world.playAuxSFX(2001, x, y, z, blockID + (meta << 12));
return super.onBlockStartBreak(stack, x, y, z, player);
}
@Override
public float getStrVsBlock (ItemStack stack, Block block, int meta)
{
if (!stack.hasTagCompound())
return 1.0f;
NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool");
if (tags.getBoolean("Broken"))
return 0.1f;
Material[] materials = getEffectiveMaterials();
for (int i = 0; i < materials.length; i++)
{
if (materials[i] == block.blockMaterial)
{
float speed = tags.getInteger("MiningSpeed");
speed /= 200f;
int hlvl = MinecraftForge.getBlockHarvestLevel(block, meta, getHarvestType());
int durability = tags.getInteger("Damage");
float shoddy = tags.getFloat("Shoddy");
speed += shoddy * durability / 100f;
if (hlvl <= tags.getInteger("HarvestLevel"))
return speed;
return 0.1f;
}
}
return super.getStrVsBlock(stack, block, meta);
}
@Override
public String[] toolCategories()
{
return new String[] { "weapon", "harvest", "melee", "bludgeoning" };
}
}

View File

@ -42,7 +42,7 @@ public class LumberAxe extends HarvestTool
}
@Override
public float getRepairModifier ()
public float getRepairCost ()
{
return 4.0f;
}
@ -179,7 +179,7 @@ public class LumberAxe extends HarvestTool
int localID = world.getBlockId(xPos, yPos, zPos);
if (localID == bID && world.getBlockMetadata(xPos, yPos, zPos) % 4 == meta % 4)
{
world.setBlockToAir(xPos, yPos, zPos);
world.setBlock(xPos, yPos, zPos, 0, 0, 4);
if (!player.capabilities.isCreativeMode)
{
Block.blocksList[bID].harvestBlock(world, player, xPos, yPos, zPos, meta);
@ -248,7 +248,7 @@ public class LumberAxe extends HarvestTool
@Override
public Item getHeadItem ()
{
return TContent.lumberHead;
return TContent.broadAxeHead;
}
@Override
@ -260,7 +260,7 @@ public class LumberAxe extends HarvestTool
@Override
public Item getAccessoryItem ()
{
return TContent.largePlate;
return TContent.heavyPlate;
}
@Override

View File

@ -6,7 +6,7 @@ import mods.tinker.tconstruct.common.TContent;
import mods.tinker.tconstruct.library.ActiveToolMod;
import mods.tinker.tconstruct.library.TConstructRegistry;
import mods.tinker.tconstruct.library.tools.AbilityHelper;
import mods.tinker.tconstruct.library.tools.HarvestTool;
import mods.tinker.tconstruct.library.tools.Weapon;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.Entity;
@ -19,7 +19,7 @@ import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class Scythe extends HarvestTool
public class Scythe extends Weapon
{
public Scythe(int itemID)
{
@ -27,11 +27,11 @@ public class Scythe extends HarvestTool
this.setUnlocalizedName("InfiTool.Scythe");
}
@Override
/*@Override
protected String getHarvestType()
{
return "sword";
}
}*/
@Override
protected Material[] getEffectiveMaterials()
@ -104,7 +104,7 @@ public class Scythe extends HarvestTool
}
@Override
public float getRepairModifier ()
public float getRepairCost ()
{
return 4.0f;
}

View File

@ -5,6 +5,7 @@ import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
public class ActiveToolMod
@ -28,7 +29,7 @@ public class ActiveToolMod
/* Attacking */
public int baseAttackDamage(int earlyModDamage, int damage, ToolCore tool, ItemStack stack, EntityPlayer player, Entity entity)
public int baseAttackDamage(int earlyModDamage, int damage, ToolCore tool, NBTTagCompound tags, NBTTagCompound toolTags, ItemStack stack, EntityPlayer player, Entity entity)
{
return 0;
}
@ -39,7 +40,7 @@ public class ActiveToolMod
return 0f;
}
public int attackDamage(int modDamage, int currentDamage, ToolCore tool, ItemStack stack, EntityPlayer player, Entity entity)
public int attackDamage(int modDamage, int currentDamage, ToolCore tool, NBTTagCompound tags, NBTTagCompound toolTags, ItemStack stack, EntityPlayer player, Entity entity)
{
return 0;
}

View File

@ -5,6 +5,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import mods.tinker.tconstruct.event.ToolCraftEvent;
import mods.tinker.tconstruct.library.TConstructRegistry;
import mods.tinker.tconstruct.library.tools.ToolCore;
import mods.tinker.tconstruct.library.tools.ToolMaterial;
@ -13,6 +14,7 @@ import mods.tinker.tconstruct.library.util.IToolPart;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.MinecraftForge;
public class ToolBuilder
{
@ -306,6 +308,9 @@ public class ToolBuilder
compound.setCompoundTag("display", new NBTTagCompound());
compound.getCompoundTag("display").setString("Name", "\u00A7f" + name);
}
ToolCraftEvent event = new ToolCraftEvent(item, compound, new ToolMaterial[] {headMat, handleMat, accessoryMat, extraMat});
MinecraftForge.EVENT_BUS.post(event);
tool.setTagCompound(compound);

View File

@ -81,7 +81,7 @@ public class AbilityHelper
int earlyModDamage = 0;
for (ActiveToolMod mod : TConstructRegistry.activeModifiers)
{
earlyModDamage = mod.baseAttackDamage(earlyModDamage, damage, tool, stack, player, entity);
earlyModDamage = mod.baseAttackDamage(earlyModDamage, damage, tool, tags, toolTags, stack, player, entity);
}
damage += earlyModDamage;
@ -129,7 +129,7 @@ public class AbilityHelper
int modDamage = 0;
for (ActiveToolMod mod : TConstructRegistry.activeModifiers)
{
modDamage = mod.attackDamage(modDamage, damage, tool, stack, player, entity);
modDamage = mod.attackDamage(modDamage, damage, tool, tags, toolTags, stack, player, entity);
}
damage += modDamage;

File diff suppressed because it is too large Load Diff

View File

@ -2,6 +2,7 @@ package mods.tinker.tconstruct.modifiers;
import mods.tinker.tconstruct.library.crafting.PatternBuilder;
import mods.tinker.tconstruct.library.tools.AbilityHelper;
import mods.tinker.tconstruct.library.tools.ToolCore;
import mods.tinker.tconstruct.library.tools.ToolMod;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@ -80,7 +81,7 @@ public class ModRepair extends ToolMod
if (repairCount < 0.5f)
repairCount = 0.5f;
increase *= repairCount;
increase /= tool.getRepairCost();
increase /= ((ToolCore) tool.getItem()).getRepairCost();
damage -= increase;
if (damage < 0)

View File

@ -148,10 +148,21 @@ public class TActiveOmniMod extends ActiveToolMod
/* Attacking */
@Override
public int baseAttackDamage (int earlyModDamage, int damage, ToolCore tool, ItemStack stack, EntityPlayer player, Entity entity)
public int baseAttackDamage (int earlyModDamage, int damage, ToolCore tool, NBTTagCompound tags, NBTTagCompound toolTags, ItemStack stack, EntityPlayer player, Entity entity)
{
if (tool instanceof Weapon)
TContent.modL.midStreamModify(stack);
return 0;
}
@Override
public int attackDamage(int modDamage, int currentDamage, ToolCore tool, NBTTagCompound tags, NBTTagCompound toolTags, ItemStack stack, EntityPlayer player, Entity entity)
{
if (toolTags.hasKey("Smite"))
{
int level = toolTags.getInteger("Smite");
int bonus = random.nextInt(level*2+1) + level*2;
}
return 0;
}
}

View File

@ -123,6 +123,7 @@ public class PHConstruct
largeSwordBlade = config.getItem("Tool Parts", "Large Sword Blade", 14043).getInt(14043);
largePlate = config.getItem("Tool Parts", "Large Plate", 14044).getInt(14044);
excavatorHead = config.getItem("Tool Parts", "Excavator Head", 14045).getInt(14045);
hammerHead = config.getItem("Tool Parts", "Hammer Head", 14046).getInt(14046);
pickaxe = config.getItem("Tools", "Pickaxe", 14051).getInt(14051);
shovel = config.getItem("Tools", "Shovel", 14052).getInt(14052);
@ -146,6 +147,8 @@ public class PHConstruct
scythe = config.getItem("Tools", "Scythe", 14067).getInt(14067);
cleaver = config.getItem("Tools", "Cleaver", 14068).getInt(14068);
excavator = config.getItem("Tools", "Excavator", 14069).getInt(14069);
hammer = config.getItem("Tools", "Hammer", 14070).getInt(14070);
battleaxe = config.getItem("Tools", "Battleaxe", 14071).getInt(14071);
buckets = config.getItem("Patterns and Misc", "Buckets", 14101).getInt(14101);
uselessItem = config.getItem("Patterns and Misc", "Title Icon", 14102).getInt(14102);
@ -322,6 +325,8 @@ public class PHConstruct
public static int scythe;
public static int cleaver;
public static int excavator;
public static int hammer;
public static int battleaxe;
public static int chisel;
@ -345,6 +350,7 @@ public class PHConstruct
public static int lumberHead;
public static int largeSwordBlade;
public static int excavatorHead;
public static int hammerHead;
public static int binding;
public static int toughBinding;

View File

@ -6,12 +6,14 @@ import java.util.Random;
import mods.tinker.tconstruct.TConstruct;
import mods.tinker.tconstruct.blocks.logic.LiquidTextureLogic;
import mods.tinker.tconstruct.common.TContent;
import mods.tinker.tconstruct.event.ToolCraftEvent;
import mods.tinker.tconstruct.library.crafting.PatternBuilder;
import mods.tinker.tconstruct.library.crafting.Smeltery;
import mods.tinker.tconstruct.library.crafting.ToolBuilder;
import mods.tinker.tconstruct.modifiers.ModAttack;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.boss.EntityWither;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.monster.EntityCreeper;
import net.minecraft.entity.monster.EntityGhast;
@ -40,6 +42,21 @@ public class TEventHandler
{
Random random = new Random();
/* Crafting */
@ForgeSubscribe
public void craftTool (ToolCraftEvent event)
{
if (event.tool == TContent.hammer)
{
event.toolTag.setInteger("Smite", 2);
}
if (event.tool == TContent.cleaver)
{
event.toolTag.setInteger("Beheading", 2);
}
}
/* Interact */
/*@ForgeSubscribe
@ -80,6 +97,14 @@ public class TEventHandler
event.drops.add(entityitem);
}
if (event.entityLiving instanceof EntityWither && random.nextInt(5) == 0)
{
ItemStack dropStack = new ItemStack(TContent.heartCanister, 1, 1);
EntityItem entityitem = new EntityItem(event.entityLiving.worldObj, event.entityLiving.posX, event.entityLiving.posY, event.entityLiving.posZ, dropStack);
entityitem.delayBeforeCanPickup = 10;
event.drops.add(entityitem);
}
if (event.entityLiving.worldObj.getGameRules().getGameRuleBooleanValue("doMobLoot"))
{
if (!event.entityLiving.isChild())
@ -109,18 +134,22 @@ public class TEventHandler
{
if (event.entityLiving.getClass() == EntitySkeleton.class)
{
EntitySkeleton skeleton = (EntitySkeleton) event.entityLiving;
EntitySkeleton enemy = (EntitySkeleton) event.entityLiving;
if (event.source.damageType.equals("player"))
{
EntityPlayer player = (EntityPlayer) event.source.getEntity();
ItemStack stack = player.getCurrentEquippedItem();
if (stack.getItem() == TContent.breakerBlade && random.nextInt(100) < 10) //Swap out for real beheading
if (stack.hasTagCompound())
{
addDrops(event, new ItemStack(Item.skull.itemID, 1, skeleton.getSkeletonType()));
int beheading = stack.getTagCompound().getCompoundTag("InfiTool").getInteger("Beheading");
if (beheading > 0 && random.nextInt(100) < beheading * 10)
{
addDrops(event, new ItemStack(Item.skull.itemID, 1, enemy.getSkeletonType()));
}
}
}
if (skeleton.getSkeletonType() == 1 && random.nextInt(Math.max(1, 5 - event.lootingLevel)) == 0)
if (enemy.getSkeletonType() == 1 && random.nextInt(Math.max(1, 5 - event.lootingLevel)) == 0)
{
addDrops(event, new ItemStack(TContent.materials, 1, 8));
}
@ -134,10 +163,19 @@ public class TEventHandler
{
EntityPlayer player = (EntityPlayer) event.source.getEntity();
ItemStack stack = player.getCurrentEquippedItem();
if (stack.getItem() == TContent.breakerBlade && random.nextInt(100) < 10) //Swap out for real beheading
if (stack.hasTagCompound())
{
int beheading = stack.getTagCompound().getCompoundTag("InfiTool").getInteger("Beheading");
if (beheading > 0 && random.nextInt(100) < beheading * 10)
{
addDrops(event, new ItemStack(Item.skull.itemID, 1, 2));
}
}
/*if (stack.getItem() == TContent.breakerBlade && random.nextInt(100) < 10) //Swap out for real beheading
{
addDrops(event, new ItemStack(Item.skull.itemID, 1, 2));
}
}*/
}
}
@ -149,13 +187,17 @@ public class TEventHandler
{
EntityPlayer player = (EntityPlayer) event.source.getEntity();
ItemStack stack = player.getCurrentEquippedItem();
if (stack.getItem() == TContent.breakerBlade && random.nextInt(100) < 10) //Swap out for real beheading
if (stack.hasTagCompound())
{
addDrops(event, new ItemStack(Item.skull.itemID, 1, 4));
int beheading = stack.getTagCompound().getCompoundTag("InfiTool").getInteger("Beheading");
if (beheading > 0 && random.nextInt(100) < beheading * 5)
{
addDrops(event, new ItemStack(Item.skull.itemID, 1, 4));
}
}
}
}
if (event.entityLiving instanceof EntityPlayer)
{
EntityPlayer enemy = (EntityPlayer) event.entityLiving;
@ -164,13 +206,16 @@ public class TEventHandler
{
EntityPlayer player = (EntityPlayer) event.source.getEntity();
ItemStack stack = player.getCurrentEquippedItem();
if (stack.getItem() == TContent.breakerBlade && random.nextInt(100) < 10) //Swap out for real beheading
if (stack.hasTagCompound())
{
ItemStack dropStack = new ItemStack(Item.skull.itemID, 1, 3);
NBTTagCompound nametag = new NBTTagCompound();
nametag.setString("SkullOwner", enemy.username);
//par1ItemStack.getTagCompound().getString("SkullOwner");
addDrops(event, dropStack);
int beheading = stack.getTagCompound().getCompoundTag("InfiTool").getInteger("Beheading");
if (beheading > 0 && random.nextInt(100) < beheading * 50)
{
ItemStack dropStack = new ItemStack(Item.skull.itemID, 1, 3);
NBTTagCompound nametag = new NBTTagCompound();
nametag.setString("SkullOwner", enemy.username);
addDrops(event, dropStack);
}
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 453 B

After

Width:  |  Height:  |  Size: 279 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 513 B

After

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 413 B

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 616 B

After

Width:  |  Height:  |  Size: 550 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 926 B

After

Width:  |  Height:  |  Size: 800 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 833 B

After

Width:  |  Height:  |  Size: 708 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 622 B

After

Width:  |  Height:  |  Size: 425 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 791 B

After

Width:  |  Height:  |  Size: 755 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 616 B

After

Width:  |  Height:  |  Size: 426 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 729 B

After

Width:  |  Height:  |  Size: 675 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 588 B

After

Width:  |  Height:  |  Size: 537 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 473 B

After

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 876 B

After

Width:  |  Height:  |  Size: 749 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 693 B

After

Width:  |  Height:  |  Size: 692 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 694 B

After

Width:  |  Height:  |  Size: 692 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 833 B

After

Width:  |  Height:  |  Size: 715 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 907 B

After

Width:  |  Height:  |  Size: 876 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 735 B

After

Width:  |  Height:  |  Size: 641 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 846 B

After

Width:  |  Height:  |  Size: 818 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 364 B

After

Width:  |  Height:  |  Size: 363 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 518 B

After

Width:  |  Height:  |  Size: 232 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 445 B

After

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 481 B

After

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 397 B

After

Width:  |  Height:  |  Size: 396 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 723 B

After

Width:  |  Height:  |  Size: 355 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 775 B

After

Width:  |  Height:  |  Size: 396 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 613 B

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 850 B

After

Width:  |  Height:  |  Size: 395 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 670 B

After

Width:  |  Height:  |  Size: 353 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 772 B

After

Width:  |  Height:  |  Size: 401 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 542 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 896 B

After

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 805 B

After

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 872 B

After

Width:  |  Height:  |  Size: 491 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 887 B

After

Width:  |  Height:  |  Size: 487 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 877 B

After

Width:  |  Height:  |  Size: 491 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 930 B

After

Width:  |  Height:  |  Size: 923 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 872 B

After

Width:  |  Height:  |  Size: 484 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 675 B

After

Width:  |  Height:  |  Size: 673 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 319 B

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 569 B

After

Width:  |  Height:  |  Size: 568 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 319 B

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 319 B

After

Width:  |  Height:  |  Size: 318 B

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