Add Force Mitts
This commit is contained in:
parent
8a43b08671
commit
4cbc6c06f5
2 changed files with 119 additions and 0 deletions
|
@ -11,6 +11,7 @@ import ley.modding.dartcraft.event.EventHandler;
|
|||
import ley.modding.dartcraft.internal.Registry;
|
||||
import ley.modding.dartcraft.item.BaseItem;
|
||||
import ley.modding.dartcraft.item.Items;
|
||||
import ley.modding.dartcraft.item.tool.ItemForceMitts;
|
||||
import ley.modding.dartcraft.item.tool.ItemForcePickaxe;
|
||||
import ley.modding.dartcraft.proxy.CommonProxy;
|
||||
import ley.modding.dartcraft.tab.DartcraftTab;
|
||||
|
@ -48,6 +49,7 @@ public class Dartcraft {
|
|||
Items.forcestick = registry.registerItem(new BaseItem("forcestick"));
|
||||
Items.forceshard = registry.registerItem(new BaseItem("forceshard"));
|
||||
registry.registerItem(new ItemForcePickaxe());
|
||||
registry.registerItem(new ItemForceMitts());
|
||||
Blocks.powerore = registry.registerBlock(new BlockPowerOre());
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,117 @@
|
|||
package ley.modding.dartcraft.item.tool;
|
||||
|
||||
import cpw.mods.fml.common.eventhandler.Event;
|
||||
import ley.modding.dartcraft.Dartcraft;
|
||||
import ley.modding.dartcraft.api.IBreakable;
|
||||
import ley.modding.dartcraft.item.Items;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.ItemTool;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.ForgeHooks;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.common.util.EnumHelper;
|
||||
import net.minecraftforge.event.entity.player.UseHoeEvent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class ItemForceMitts extends ItemTool implements IBreakable {
|
||||
|
||||
private static int damage = 0;
|
||||
private static float efficiency = 16.0F;
|
||||
private static int toolLevel = 4;
|
||||
public static ToolMaterial material = EnumHelper.addToolMaterial("FORCE", toolLevel, 256, efficiency, (float)damage, 0);
|
||||
public ArrayList<Block> mineableBlocks = new ArrayList<Block>();
|
||||
|
||||
public ItemForceMitts() {
|
||||
super(0.0F, material, new HashSet());
|
||||
setCreativeTab(Dartcraft.tab);
|
||||
loadMinables();
|
||||
efficiencyOnProperMaterial = efficiency;
|
||||
setUnlocalizedName("forcemitts");
|
||||
setTextureName(Dartcraft.MODID + ":forcemitts");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack itemReturned() {
|
||||
return new ItemStack(Items.forceshard);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getToolClasses(ItemStack stack) {
|
||||
Set<String> tools = new HashSet<String>();
|
||||
tools.add("pickaxe");
|
||||
tools.add("axe");
|
||||
tools.add("shovel");
|
||||
return tools;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getHarvestLevel(ItemStack stack, String toolClass) {
|
||||
return 4;
|
||||
}
|
||||
|
||||
private void loadMinables() {
|
||||
this.mineableBlocks.add(Blocks.cobblestone);
|
||||
this.mineableBlocks.add(Blocks.stone);
|
||||
this.mineableBlocks.add(Blocks.sandstone);
|
||||
this.mineableBlocks.add(Blocks.mossy_cobblestone);
|
||||
this.mineableBlocks.add(Blocks.iron_ore);
|
||||
this.mineableBlocks.add(Blocks.coal_ore);
|
||||
this.mineableBlocks.add(Blocks.ice);
|
||||
this.mineableBlocks.add(Blocks.brick_block);
|
||||
this.mineableBlocks.add(Blocks.glowstone);
|
||||
this.mineableBlocks.add(Blocks.grass);
|
||||
this.mineableBlocks.add(Blocks.dirt);
|
||||
this.mineableBlocks.add(Blocks.mycelium);
|
||||
this.mineableBlocks.add(Blocks.sand);
|
||||
this.mineableBlocks.add(Blocks.gravel);
|
||||
this.mineableBlocks.add(Blocks.snow);
|
||||
this.mineableBlocks.add(Blocks.snow);
|
||||
this.mineableBlocks.add(Blocks.clay);
|
||||
this.mineableBlocks.add(Blocks.stonebrick);
|
||||
this.mineableBlocks.add(Blocks.soul_sand);
|
||||
this.mineableBlocks.add(Blocks.leaves);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canHarvestBlock(Block block, ItemStack itemStack) {
|
||||
return this.mineableBlocks.contains(block) || block.getMaterial() == Material.leaves || block.getMaterial() == Material.wood;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hitEntity(ItemStack itemStack, EntityLivingBase entity, EntityLivingBase player) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getDigSpeed(ItemStack stack, Block block, int meta) {
|
||||
if(!ForgeHooks.isToolEffective(stack, block, meta) && !this.canHarvestBlock(block, stack)) {
|
||||
return 1.0F;
|
||||
} else {
|
||||
return this.efficiencyOnProperMaterial; //TODO Upgrades
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int par7, float par8, float par9, float par10) {
|
||||
if (!player.canPlayerEdit(x, y, z, par7, stack)) {
|
||||
return false;
|
||||
} else {
|
||||
UseHoeEvent event = new UseHoeEvent(player, stack, world, x, y, z);
|
||||
if (MinecraftForge.EVENT_BUS.post(event)) {
|
||||
return false;
|
||||
} else if (event.getResult() == Event.Result.ALLOW) {
|
||||
stack.damageItem(1, player);
|
||||
return true;
|
||||
}
|
||||
} //TODO Fix Hoe thing
|
||||
return false;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue