mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-03-09 19:25:37 +00:00
commit
27c0c94897
@ -17,6 +17,8 @@ import net.minecraft.entity.EntityLivingBase;
|
|||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
|
import net.minecraft.util.MovingObjectPosition;
|
||||||
|
import net.minecraft.util.Vec3;
|
||||||
import net.minecraft.world.IBlockAccess;
|
import net.minecraft.world.IBlockAccess;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
@ -116,6 +118,22 @@ public class BlockDoorGeneric extends BlockDummyable implements IBomb {
|
|||||||
return aabb;
|
return aabb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Enables clicking through the open door
|
||||||
|
@Override
|
||||||
|
public MovingObjectPosition collisionRayTrace(World world, int x, int y, int z, Vec3 startVec, Vec3 endVec) {
|
||||||
|
AxisAlignedBB box = getBoundingBox(world, x, y ,z);
|
||||||
|
box = AxisAlignedBB.getBoundingBox(
|
||||||
|
Math.min(box.minX, box.maxX), Math.min(box.minY, box.maxY), Math.min(box.minZ, box.maxZ),
|
||||||
|
Math.max(box.minX, box.maxX), Math.max(box.minY, box.maxY), Math.max(box.minZ, box.maxZ)
|
||||||
|
);
|
||||||
|
|
||||||
|
MovingObjectPosition intercept = box.calculateIntercept(startVec, endVec);
|
||||||
|
if(intercept != null) {
|
||||||
|
return new MovingObjectPosition(x, y, z, intercept.sideHit, intercept.hitVec);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override //should fix AI pathfinding
|
@Override //should fix AI pathfinding
|
||||||
public boolean getBlocksMovement(IBlockAccess world, int x, int y, int z) { //btw the method name is the exact opposite of that it's doing, check net.minecraft.pathfinding.PathNavigate#512
|
public boolean getBlocksMovement(IBlockAccess world, int x, int y, int z) { //btw the method name is the exact opposite of that it's doing, check net.minecraft.pathfinding.PathNavigate#512
|
||||||
return hasExtra(world.getBlockMetadata(x, y, z)); //if it's open
|
return hasExtra(world.getBlockMetadata(x, y, z)); //if it's open
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import cpw.mods.fml.relauncher.Side;
|
|||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.BlockSlab;
|
import net.minecraft.block.BlockSlab;
|
||||||
|
import net.minecraft.block.material.MapColor;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.init.Blocks;
|
import net.minecraft.init.Blocks;
|
||||||
@ -44,7 +45,7 @@ public class Spotlight extends Block implements ISpotlight, INBTTransformable {
|
|||||||
this.type = type;
|
this.type = type;
|
||||||
this.isOn = isOn;
|
this.isOn = isOn;
|
||||||
|
|
||||||
this.setHardness(1F);
|
this.setHardness(0.5F);
|
||||||
|
|
||||||
if(isOn) setLightLevel(1.0F);
|
if(isOn) setLightLevel(1.0F);
|
||||||
}
|
}
|
||||||
@ -81,6 +82,17 @@ public class Spotlight extends Block implements ISpotlight, INBTTransformable {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
// Ah yes, I love methods named the literal opposite of what they do
|
||||||
|
public boolean getBlocksMovement(IBlockAccess world, int x, int y, int z) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MapColor getMapColor(int meta) {
|
||||||
|
return MapColor.airColor;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_) {
|
public AxisAlignedBB getCollisionBoundingBoxFromPool(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_) {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@ -14,7 +14,10 @@ import com.hbm.items.tool.ItemToolAbility;
|
|||||||
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.entity.player.EntityPlayerMP;
|
||||||
import net.minecraft.init.Blocks;
|
import net.minecraft.init.Blocks;
|
||||||
|
import net.minecraft.util.MathHelper;
|
||||||
|
import net.minecraft.util.MovingObjectPosition;
|
||||||
import net.minecraft.util.Vec3;
|
import net.minecraft.util.Vec3;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
@ -219,6 +222,104 @@ public interface IToolAreaAbility extends IBaseAbility {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public static final IToolAreaAbility HAMMER_FLAT = new IToolAreaAbility() {
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return "tool.ability.hammer_flat";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAllowed() {
|
||||||
|
return ToolConfig.abilityHammer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public final int[] rangeAtLevel = { 1, 2, 3, 4 };
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int levels() {
|
||||||
|
return rangeAtLevel.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getExtension(int level) {
|
||||||
|
return " (" + rangeAtLevel[level] + ")";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int sortOrder() {
|
||||||
|
return SORT_ORDER_BASE + 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) {
|
||||||
|
int range = rangeAtLevel[level];
|
||||||
|
|
||||||
|
MovingObjectPosition hit = raytraceFromEntity(world, player, false, 4.5d);
|
||||||
|
if(hit == null) return true;
|
||||||
|
int sideHit = hit.sideHit;
|
||||||
|
|
||||||
|
// we successfully destroyed a block. time to do AOE!
|
||||||
|
int xRange = range;
|
||||||
|
int yRange = range;
|
||||||
|
int zRange = 0;
|
||||||
|
switch (sideHit) {
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
yRange = 0;
|
||||||
|
zRange = range;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
xRange = range;
|
||||||
|
zRange = 0;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
case 5:
|
||||||
|
xRange = 0;
|
||||||
|
zRange = range;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int a = x - xRange; a <= x + xRange; a++) {
|
||||||
|
for(int b = y - yRange; b <= y + yRange; b++) {
|
||||||
|
for(int c = z - zRange; c <= z + zRange; c++) {
|
||||||
|
if(a == x && b == y && c == z)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
tool.breakExtraBlock(world, a, b, c, player, x, y, z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Taken from TConstruct, licensed under CC0 (public domain)
|
||||||
|
// https://github.com/SlimeKnights/TinkersConstruct/blob/9ea7a0e60fe180aff591701b12c89da21da99289/src/main/java/tconstruct/library/tools/AbilityHelper.java#L707-L731
|
||||||
|
private MovingObjectPosition raytraceFromEntity(World world, EntityPlayer player, boolean par3, double range) {
|
||||||
|
float f = 1.0F;
|
||||||
|
float f1 = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * f;
|
||||||
|
float f2 = player.prevRotationYaw + (player.rotationYaw - player.prevRotationYaw) * f;
|
||||||
|
double d0 = player.prevPosX + (player.posX - player.prevPosX) * (double) f;
|
||||||
|
double d1 = player.prevPosY + (player.posY - player.prevPosY) * (double) f + 1.62D;
|
||||||
|
double d2 = player.prevPosZ + (player.posZ - player.prevPosZ) * (double) f;
|
||||||
|
Vec3 vec3 = Vec3.createVectorHelper(d0, d1, d2);
|
||||||
|
float f3 = MathHelper.cos(-f2 * 0.017453292F - (float) Math.PI);
|
||||||
|
float f4 = MathHelper.sin(-f2 * 0.017453292F - (float) Math.PI);
|
||||||
|
float f5 = -MathHelper.cos(-f1 * 0.017453292F);
|
||||||
|
float f6 = MathHelper.sin(-f1 * 0.017453292F);
|
||||||
|
float f7 = f4 * f5;
|
||||||
|
float f8 = f3 * f5;
|
||||||
|
double d3 = range;
|
||||||
|
if (player instanceof EntityPlayerMP)
|
||||||
|
{
|
||||||
|
d3 = ((EntityPlayerMP) player).theItemInWorldManager.getBlockReachDistance();
|
||||||
|
}
|
||||||
|
Vec3 vec31 = vec3.addVector((double) f7 * d3, (double) f6 * d3, (double) f8 * d3);
|
||||||
|
return world.func_147447_a(vec3, vec31, par3, !par3, par3);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
public static final IToolAreaAbility EXPLOSION = new IToolAreaAbility() {
|
public static final IToolAreaAbility EXPLOSION = new IToolAreaAbility() {
|
||||||
@Override
|
@Override
|
||||||
public String getName() {
|
public String getName() {
|
||||||
@ -249,7 +350,7 @@ public interface IToolAreaAbility extends IBaseAbility {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int sortOrder() {
|
public int sortOrder() {
|
||||||
return SORT_ORDER_BASE + 3;
|
return SORT_ORDER_BASE + 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -270,7 +371,7 @@ public interface IToolAreaAbility extends IBaseAbility {
|
|||||||
};
|
};
|
||||||
// endregion handlers
|
// endregion handlers
|
||||||
|
|
||||||
static final IToolAreaAbility[] abilities = { NONE, RECURSION, HAMMER, EXPLOSION };
|
static final IToolAreaAbility[] abilities = { NONE, RECURSION, HAMMER, HAMMER_FLAT, EXPLOSION };
|
||||||
|
|
||||||
static IToolAreaAbility getByName(String name) {
|
static IToolAreaAbility getByName(String name) {
|
||||||
for(IToolAreaAbility ability : abilities) {
|
for(IToolAreaAbility ability : abilities) {
|
||||||
|
|||||||
@ -175,7 +175,7 @@ public interface IToolHarvestAbility extends IBaseAbility {
|
|||||||
|
|
||||||
if(doesSmelt) {
|
if(doesSmelt) {
|
||||||
for(ItemStack stack : drops) {
|
for(ItemStack stack : drops) {
|
||||||
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, stack.copy()));
|
world.spawnEntityInWorld(new EntityItem(world, ItemToolAbility.dropX + 0.5, ItemToolAbility.dropY + 0.5, ItemToolAbility.dropZ + 0.5, stack.copy()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -211,7 +211,7 @@ public interface IToolHarvestAbility extends IBaseAbility {
|
|||||||
harvestBlock(doesShred, world, x, y, z, player);
|
harvestBlock(doesShred, world, x, y, z, player);
|
||||||
|
|
||||||
if(doesShred) {
|
if(doesShred) {
|
||||||
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, result.copy()));
|
world.spawnEntityInWorld(new EntityItem(world, ItemToolAbility.dropX + 0.5, ItemToolAbility.dropY + 0.5, ItemToolAbility.dropZ + 0.5, result.copy()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -248,7 +248,7 @@ public interface IToolHarvestAbility extends IBaseAbility {
|
|||||||
if(doesCentrifuge) {
|
if(doesCentrifuge) {
|
||||||
for(ItemStack st : result) {
|
for(ItemStack st : result) {
|
||||||
if(st != null) {
|
if(st != null) {
|
||||||
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, st.copy()));
|
world.spawnEntityInWorld(new EntityItem(world, ItemToolAbility.dropX + 0.5, ItemToolAbility.dropY + 0.5, ItemToolAbility.dropZ + 0.5, st.copy()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -285,7 +285,7 @@ public interface IToolHarvestAbility extends IBaseAbility {
|
|||||||
harvestBlock(doesCrystallize, world, x, y, z, player);
|
harvestBlock(doesCrystallize, world, x, y, z, player);
|
||||||
|
|
||||||
if(doesCrystallize) {
|
if(doesCrystallize) {
|
||||||
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, result.output.copy()));
|
world.spawnEntityInWorld(new EntityItem(world, ItemToolAbility.dropX + 0.5, ItemToolAbility.dropY + 0.5, ItemToolAbility.dropZ + 0.5, result.output.copy()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -324,7 +324,7 @@ public interface IToolHarvestAbility extends IBaseAbility {
|
|||||||
harvestBlock(doesConvert, world, x, y, z, player);
|
harvestBlock(doesConvert, world, x, y, z, player);
|
||||||
|
|
||||||
if(doesConvert) {
|
if(doesConvert) {
|
||||||
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.ingot_mercury, mercury)));
|
world.spawnEntityInWorld(new EntityItem(world, ItemToolAbility.dropX + 0.5, ItemToolAbility.dropY + 0.5, ItemToolAbility.dropZ + 0.5, new ItemStack(ModItems.ingot_mercury, mercury)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@ -25,8 +25,10 @@ public class ContainerCrateBase extends ContainerBase {
|
|||||||
|
|
||||||
for(int i = 0; i < 9; i++) {
|
for(int i = 0; i < 9; i++) {
|
||||||
this.addSlotToContainer(
|
this.addSlotToContainer(
|
||||||
invPlayer.currentItem == i ? new SlotPlayerCrateLocked(invPlayer, i, playerInvX + i * 18, playerHotbarY) :
|
(invPlayer.currentItem == i && this.tile instanceof ItemBlockStorageCrate.InventoryCrate) ?
|
||||||
new SlotNonRetarded(invPlayer, i, playerInvX + i * 18, playerHotbarY));
|
new SlotPlayerCrateLocked(invPlayer, i, playerInvX + i * 18, playerHotbarY) :
|
||||||
|
new SlotNonRetarded(invPlayer, i, playerInvX + i * 18, playerHotbarY)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -52,7 +52,8 @@ public class GUIScreenToolAbility extends GuiScreen {
|
|||||||
abilitiesArea.add(new AbilityInfo(IToolAreaAbility.NONE, 0, 91));
|
abilitiesArea.add(new AbilityInfo(IToolAreaAbility.NONE, 0, 91));
|
||||||
abilitiesArea.add(new AbilityInfo(IToolAreaAbility.RECURSION, 32, 91));
|
abilitiesArea.add(new AbilityInfo(IToolAreaAbility.RECURSION, 32, 91));
|
||||||
abilitiesArea.add(new AbilityInfo(IToolAreaAbility.HAMMER, 64, 91));
|
abilitiesArea.add(new AbilityInfo(IToolAreaAbility.HAMMER, 64, 91));
|
||||||
abilitiesArea.add(new AbilityInfo(IToolAreaAbility.EXPLOSION, 96, 91));
|
abilitiesArea.add(new AbilityInfo(IToolAreaAbility.HAMMER_FLAT, 96, 91));
|
||||||
|
abilitiesArea.add(new AbilityInfo(IToolAreaAbility.EXPLOSION, 128, 91));
|
||||||
|
|
||||||
abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.NONE, 0, 107));
|
abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.NONE, 0, 107));
|
||||||
abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.SILK, 32, 107));
|
abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.SILK, 32, 107));
|
||||||
|
|||||||
@ -4466,6 +4466,7 @@ public class ModItems {
|
|||||||
schrabidium_pickaxe = new ItemToolAbility(20, 0, MainRegistry.tMatSchrab, EnumToolType.PICKAXE)
|
schrabidium_pickaxe = new ItemToolAbility(20, 0, MainRegistry.tMatSchrab, EnumToolType.PICKAXE)
|
||||||
.addAbility(IWeaponAbility.RADIATION, 0)
|
.addAbility(IWeaponAbility.RADIATION, 0)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 1)
|
.addAbility(IToolAreaAbility.HAMMER, 1)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 1)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 6)
|
.addAbility(IToolAreaAbility.RECURSION, 6)
|
||||||
.addAbility(IToolHarvestAbility.SILK, 0)
|
.addAbility(IToolHarvestAbility.SILK, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 4)
|
.addAbility(IToolHarvestAbility.LUCK, 4)
|
||||||
@ -4476,6 +4477,7 @@ public class ModItems {
|
|||||||
schrabidium_axe = new ItemToolAbility(25, 0, MainRegistry.tMatSchrab, EnumToolType.AXE)
|
schrabidium_axe = new ItemToolAbility(25, 0, MainRegistry.tMatSchrab, EnumToolType.AXE)
|
||||||
.addAbility(IWeaponAbility.RADIATION, 0)
|
.addAbility(IWeaponAbility.RADIATION, 0)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 1)
|
.addAbility(IToolAreaAbility.HAMMER, 1)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 1)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 6)
|
.addAbility(IToolAreaAbility.RECURSION, 6)
|
||||||
.addAbility(IToolHarvestAbility.SILK, 0)
|
.addAbility(IToolHarvestAbility.SILK, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 4)
|
.addAbility(IToolHarvestAbility.LUCK, 4)
|
||||||
@ -4487,6 +4489,7 @@ public class ModItems {
|
|||||||
schrabidium_shovel = new ItemToolAbility(15, 0, MainRegistry.tMatSchrab, EnumToolType.SHOVEL)
|
schrabidium_shovel = new ItemToolAbility(15, 0, MainRegistry.tMatSchrab, EnumToolType.SHOVEL)
|
||||||
.addAbility(IWeaponAbility.RADIATION, 0)
|
.addAbility(IWeaponAbility.RADIATION, 0)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 1)
|
.addAbility(IToolAreaAbility.HAMMER, 1)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 1)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 6)
|
.addAbility(IToolAreaAbility.RECURSION, 6)
|
||||||
.addAbility(IToolHarvestAbility.SILK, 0)
|
.addAbility(IToolHarvestAbility.SILK, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 4)
|
.addAbility(IToolHarvestAbility.LUCK, 4)
|
||||||
@ -4554,12 +4557,14 @@ public class ModItems {
|
|||||||
|
|
||||||
elec_pickaxe = new ItemToolAbilityPower(6F, 0, MainRegistry.tMatElec, EnumToolType.PICKAXE, 500000, 1000, 100)
|
elec_pickaxe = new ItemToolAbilityPower(6F, 0, MainRegistry.tMatElec, EnumToolType.PICKAXE, 500000, 1000, 100)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 1)
|
.addAbility(IToolAreaAbility.HAMMER, 1)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 1)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 2)
|
.addAbility(IToolAreaAbility.RECURSION, 2)
|
||||||
.addAbility(IToolHarvestAbility.SILK, 0)
|
.addAbility(IToolHarvestAbility.SILK, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 1).setUnlocalizedName("elec_pickaxe").setTextureName(RefStrings.MODID + ":elec_drill_anim");
|
.addAbility(IToolHarvestAbility.LUCK, 1).setUnlocalizedName("elec_pickaxe").setTextureName(RefStrings.MODID + ":elec_drill_anim");
|
||||||
|
|
||||||
elec_axe = new ItemToolAbilityPower(10F, 0, MainRegistry.tMatElec, EnumToolType.AXE, 500000, 1000, 100)
|
elec_axe = new ItemToolAbilityPower(10F, 0, MainRegistry.tMatElec, EnumToolType.AXE, 500000, 1000, 100)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 1)
|
.addAbility(IToolAreaAbility.HAMMER, 1)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 1)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 2)
|
.addAbility(IToolAreaAbility.RECURSION, 2)
|
||||||
.addAbility(IToolHarvestAbility.SILK, 0)
|
.addAbility(IToolHarvestAbility.SILK, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 1)
|
.addAbility(IToolHarvestAbility.LUCK, 1)
|
||||||
@ -4568,6 +4573,7 @@ public class ModItems {
|
|||||||
|
|
||||||
elec_shovel = new ItemToolAbilityPower(5F, 0, MainRegistry.tMatElec, EnumToolType.SHOVEL, 500000, 1000, 100)
|
elec_shovel = new ItemToolAbilityPower(5F, 0, MainRegistry.tMatElec, EnumToolType.SHOVEL, 500000, 1000, 100)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 1)
|
.addAbility(IToolAreaAbility.HAMMER, 1)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 1)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 2)
|
.addAbility(IToolAreaAbility.RECURSION, 2)
|
||||||
.addAbility(IToolHarvestAbility.SILK, 0)
|
.addAbility(IToolHarvestAbility.SILK, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 1).setUnlocalizedName("elec_shovel").setTextureName(RefStrings.MODID + ":elec_shovel_anim");
|
.addAbility(IToolHarvestAbility.LUCK, 1).setUnlocalizedName("elec_shovel").setTextureName(RefStrings.MODID + ":elec_shovel_anim");
|
||||||
@ -4577,12 +4583,14 @@ public class ModItems {
|
|||||||
|
|
||||||
desh_pickaxe = new ItemToolAbility(5F, -0.05, MainRegistry.tMatDesh, EnumToolType.PICKAXE)
|
desh_pickaxe = new ItemToolAbility(5F, -0.05, MainRegistry.tMatDesh, EnumToolType.PICKAXE)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 0)
|
.addAbility(IToolAreaAbility.HAMMER, 0)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 0)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 0)
|
.addAbility(IToolAreaAbility.RECURSION, 0)
|
||||||
.addAbility(IToolHarvestAbility.SILK, 0)
|
.addAbility(IToolHarvestAbility.SILK, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 1).setUnlocalizedName("desh_pickaxe").setTextureName(RefStrings.MODID + ":desh_pickaxe");
|
.addAbility(IToolHarvestAbility.LUCK, 1).setUnlocalizedName("desh_pickaxe").setTextureName(RefStrings.MODID + ":desh_pickaxe");
|
||||||
|
|
||||||
desh_axe = new ItemToolAbility(7.5F, -0.05, MainRegistry.tMatDesh, EnumToolType.AXE)
|
desh_axe = new ItemToolAbility(7.5F, -0.05, MainRegistry.tMatDesh, EnumToolType.AXE)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 0)
|
.addAbility(IToolAreaAbility.HAMMER, 0)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 0)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 0)
|
.addAbility(IToolAreaAbility.RECURSION, 0)
|
||||||
.addAbility(IToolHarvestAbility.SILK, 0)
|
.addAbility(IToolHarvestAbility.SILK, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 1)
|
.addAbility(IToolHarvestAbility.LUCK, 1)
|
||||||
@ -4590,6 +4598,7 @@ public class ModItems {
|
|||||||
|
|
||||||
desh_shovel = new ItemToolAbility(4F, -0.05, MainRegistry.tMatDesh, EnumToolType.SHOVEL)
|
desh_shovel = new ItemToolAbility(4F, -0.05, MainRegistry.tMatDesh, EnumToolType.SHOVEL)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 0)
|
.addAbility(IToolAreaAbility.HAMMER, 0)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 0)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 0)
|
.addAbility(IToolAreaAbility.RECURSION, 0)
|
||||||
.addAbility(IToolHarvestAbility.SILK, 0)
|
.addAbility(IToolHarvestAbility.SILK, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 1).setUnlocalizedName("desh_shovel").setTextureName(RefStrings.MODID + ":desh_shovel");
|
.addAbility(IToolHarvestAbility.LUCK, 1).setUnlocalizedName("desh_shovel").setTextureName(RefStrings.MODID + ":desh_shovel");
|
||||||
@ -4618,17 +4627,20 @@ public class ModItems {
|
|||||||
cobalt_decorated_pickaxe = new ItemToolAbility(6F, 0, matDecCobalt, EnumToolType.PICKAXE)
|
cobalt_decorated_pickaxe = new ItemToolAbility(6F, 0, matDecCobalt, EnumToolType.PICKAXE)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 1)
|
.addAbility(IToolAreaAbility.RECURSION, 1)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 0)
|
.addAbility(IToolAreaAbility.HAMMER, 0)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 0)
|
||||||
.addAbility(IToolHarvestAbility.SILK, 0)
|
.addAbility(IToolHarvestAbility.SILK, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 2).setUnlocalizedName("cobalt_decorated_pickaxe").setTextureName(RefStrings.MODID + ":cobalt_decorated_pickaxe");
|
.addAbility(IToolHarvestAbility.LUCK, 2).setUnlocalizedName("cobalt_decorated_pickaxe").setTextureName(RefStrings.MODID + ":cobalt_decorated_pickaxe");
|
||||||
cobalt_decorated_axe = new ItemToolAbility(8F, 0, matDecCobalt, EnumToolType.AXE)
|
cobalt_decorated_axe = new ItemToolAbility(8F, 0, matDecCobalt, EnumToolType.AXE)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 1)
|
.addAbility(IToolAreaAbility.RECURSION, 1)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 0)
|
.addAbility(IToolAreaAbility.HAMMER, 0)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 0)
|
||||||
.addAbility(IToolHarvestAbility.SILK, 0)
|
.addAbility(IToolHarvestAbility.SILK, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 2)
|
.addAbility(IToolHarvestAbility.LUCK, 2)
|
||||||
.addAbility(IWeaponAbility.BEHEADER, 0).setUnlocalizedName("cobalt_decorated_axe").setTextureName(RefStrings.MODID + ":cobalt_decorated_axe");
|
.addAbility(IWeaponAbility.BEHEADER, 0).setUnlocalizedName("cobalt_decorated_axe").setTextureName(RefStrings.MODID + ":cobalt_decorated_axe");
|
||||||
cobalt_decorated_shovel = new ItemToolAbility(5F, 0, matDecCobalt, EnumToolType.SHOVEL)
|
cobalt_decorated_shovel = new ItemToolAbility(5F, 0, matDecCobalt, EnumToolType.SHOVEL)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 1)
|
.addAbility(IToolAreaAbility.RECURSION, 1)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 0)
|
.addAbility(IToolAreaAbility.HAMMER, 0)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 0)
|
||||||
.addAbility(IToolHarvestAbility.SILK, 0)
|
.addAbility(IToolHarvestAbility.SILK, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 2).setUnlocalizedName("cobalt_decorated_shovel").setTextureName(RefStrings.MODID + ":cobalt_decorated_shovel");
|
.addAbility(IToolHarvestAbility.LUCK, 2).setUnlocalizedName("cobalt_decorated_shovel").setTextureName(RefStrings.MODID + ":cobalt_decorated_shovel");
|
||||||
cobalt_decorated_hoe = new ModHoe(matDecCobalt).setUnlocalizedName("cobalt_decorated_hoe").setTextureName(RefStrings.MODID + ":cobalt_decorated_hoe");
|
cobalt_decorated_hoe = new ModHoe(matDecCobalt).setUnlocalizedName("cobalt_decorated_hoe").setTextureName(RefStrings.MODID + ":cobalt_decorated_hoe");
|
||||||
@ -4641,12 +4653,14 @@ public class ModItems {
|
|||||||
starmetal_pickaxe = new ItemToolAbility(8F, 0, matStarmetal, EnumToolType.PICKAXE)
|
starmetal_pickaxe = new ItemToolAbility(8F, 0, matStarmetal, EnumToolType.PICKAXE)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 3)
|
.addAbility(IToolAreaAbility.RECURSION, 3)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 1)
|
.addAbility(IToolAreaAbility.HAMMER, 1)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 1)
|
||||||
.addAbility(IToolHarvestAbility.SILK, 0)
|
.addAbility(IToolHarvestAbility.SILK, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 4)
|
.addAbility(IToolHarvestAbility.LUCK, 4)
|
||||||
.addAbility(IWeaponAbility.STUN, 1).setUnlocalizedName("starmetal_pickaxe").setTextureName(RefStrings.MODID + ":starmetal_pickaxe");
|
.addAbility(IWeaponAbility.STUN, 1).setUnlocalizedName("starmetal_pickaxe").setTextureName(RefStrings.MODID + ":starmetal_pickaxe");
|
||||||
starmetal_axe = new ItemToolAbility(12F, 0, matStarmetal, EnumToolType.AXE)
|
starmetal_axe = new ItemToolAbility(12F, 0, matStarmetal, EnumToolType.AXE)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 3)
|
.addAbility(IToolAreaAbility.RECURSION, 3)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 1)
|
.addAbility(IToolAreaAbility.HAMMER, 1)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 1)
|
||||||
.addAbility(IToolHarvestAbility.SILK, 0)
|
.addAbility(IToolHarvestAbility.SILK, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 4)
|
.addAbility(IToolHarvestAbility.LUCK, 4)
|
||||||
.addAbility(IWeaponAbility.BEHEADER, 0)
|
.addAbility(IWeaponAbility.BEHEADER, 0)
|
||||||
@ -4654,6 +4668,7 @@ public class ModItems {
|
|||||||
starmetal_shovel = new ItemToolAbility(7F, 0, matStarmetal, EnumToolType.SHOVEL)
|
starmetal_shovel = new ItemToolAbility(7F, 0, matStarmetal, EnumToolType.SHOVEL)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 3)
|
.addAbility(IToolAreaAbility.RECURSION, 3)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 1)
|
.addAbility(IToolAreaAbility.HAMMER, 1)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 1)
|
||||||
.addAbility(IToolHarvestAbility.SILK, 0)
|
.addAbility(IToolHarvestAbility.SILK, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 4)
|
.addAbility(IToolHarvestAbility.LUCK, 4)
|
||||||
.addAbility(IWeaponAbility.STUN, 1).setUnlocalizedName("starmetal_shovel").setTextureName(RefStrings.MODID + ":starmetal_shovel");
|
.addAbility(IWeaponAbility.STUN, 1).setUnlocalizedName("starmetal_shovel").setTextureName(RefStrings.MODID + ":starmetal_shovel");
|
||||||
@ -4668,6 +4683,7 @@ public class ModItems {
|
|||||||
.addAbility(IToolHarvestAbility.SHREDDER, 0)
|
.addAbility(IToolHarvestAbility.SHREDDER, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 1)
|
.addAbility(IToolHarvestAbility.LUCK, 1)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 1)
|
.addAbility(IToolAreaAbility.HAMMER, 1)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 1)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 2).setUnlocalizedName("drax").setTextureName(RefStrings.MODID + ":drax");
|
.addAbility(IToolAreaAbility.RECURSION, 2).setUnlocalizedName("drax").setTextureName(RefStrings.MODID + ":drax");
|
||||||
drax_mk2 = new ItemToolAbilityPower(15F, -0.05, MainRegistry.tMatElec, EnumToolType.MINER, 1000000000, 250000, 7500)
|
drax_mk2 = new ItemToolAbilityPower(15F, -0.05, MainRegistry.tMatElec, EnumToolType.MINER, 1000000000, 250000, 7500)
|
||||||
.addAbility(IToolHarvestAbility.SMELTER, 0)
|
.addAbility(IToolHarvestAbility.SMELTER, 0)
|
||||||
@ -4675,6 +4691,7 @@ public class ModItems {
|
|||||||
.addAbility(IToolHarvestAbility.CENTRIFUGE, 0)
|
.addAbility(IToolHarvestAbility.CENTRIFUGE, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 2)
|
.addAbility(IToolHarvestAbility.LUCK, 2)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 2)
|
.addAbility(IToolAreaAbility.HAMMER, 2)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 2)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 4).setUnlocalizedName("drax_mk2").setTextureName(RefStrings.MODID + ":drax_mk2");
|
.addAbility(IToolAreaAbility.RECURSION, 4).setUnlocalizedName("drax_mk2").setTextureName(RefStrings.MODID + ":drax_mk2");
|
||||||
drax_mk3 = new ItemToolAbilityPower(20F, -0.05, MainRegistry.tMatElec, EnumToolType.MINER, 2500000000L, 500000, 10000)
|
drax_mk3 = new ItemToolAbilityPower(20F, -0.05, MainRegistry.tMatElec, EnumToolType.MINER, 2500000000L, 500000, 10000)
|
||||||
.addAbility(IToolHarvestAbility.SMELTER, 0)
|
.addAbility(IToolHarvestAbility.SMELTER, 0)
|
||||||
@ -4684,11 +4701,13 @@ public class ModItems {
|
|||||||
.addAbility(IToolHarvestAbility.SILK, 0)
|
.addAbility(IToolHarvestAbility.SILK, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 3)
|
.addAbility(IToolHarvestAbility.LUCK, 3)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 3)
|
.addAbility(IToolAreaAbility.HAMMER, 3)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 3)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 5).setUnlocalizedName("drax_mk3").setTextureName(RefStrings.MODID + ":drax_mk3");
|
.addAbility(IToolAreaAbility.RECURSION, 5).setUnlocalizedName("drax_mk3").setTextureName(RefStrings.MODID + ":drax_mk3");
|
||||||
|
|
||||||
ToolMaterial matBismuth = EnumHelper.addToolMaterial("HBM_BISMUTH", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.ingot_bismuth));
|
ToolMaterial matBismuth = EnumHelper.addToolMaterial("HBM_BISMUTH", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.ingot_bismuth));
|
||||||
bismuth_pickaxe = new ItemToolAbility(15F, 0, matBismuth, EnumToolType.MINER)
|
bismuth_pickaxe = new ItemToolAbility(15F, 0, matBismuth, EnumToolType.MINER)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 1)
|
.addAbility(IToolAreaAbility.HAMMER, 1)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 1)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 1)
|
.addAbility(IToolAreaAbility.RECURSION, 1)
|
||||||
.addAbility(IToolHarvestAbility.SHREDDER, 0)
|
.addAbility(IToolHarvestAbility.SHREDDER, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 1)
|
.addAbility(IToolHarvestAbility.LUCK, 1)
|
||||||
@ -4699,6 +4718,7 @@ public class ModItems {
|
|||||||
.setDepthRockBreaker().setUnlocalizedName("bismuth_pickaxe").setTextureName(RefStrings.MODID + ":bismuth_pickaxe");
|
.setDepthRockBreaker().setUnlocalizedName("bismuth_pickaxe").setTextureName(RefStrings.MODID + ":bismuth_pickaxe");
|
||||||
bismuth_axe = new ItemToolAbility(25F, 0, matBismuth, EnumToolType.AXE)
|
bismuth_axe = new ItemToolAbility(25F, 0, matBismuth, EnumToolType.AXE)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 1)
|
.addAbility(IToolAreaAbility.HAMMER, 1)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 1)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 1)
|
.addAbility(IToolAreaAbility.RECURSION, 1)
|
||||||
.addAbility(IToolHarvestAbility.SHREDDER, 0)
|
.addAbility(IToolHarvestAbility.SHREDDER, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 1)
|
.addAbility(IToolHarvestAbility.LUCK, 1)
|
||||||
@ -4711,6 +4731,7 @@ public class ModItems {
|
|||||||
ToolMaterial matVolcano = EnumHelper.addToolMaterial("HBM_VOLCANIC", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.ingot_bismuth));
|
ToolMaterial matVolcano = EnumHelper.addToolMaterial("HBM_VOLCANIC", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.ingot_bismuth));
|
||||||
volcanic_pickaxe = new ItemToolAbility(15F, 0, matVolcano, EnumToolType.MINER)
|
volcanic_pickaxe = new ItemToolAbility(15F, 0, matVolcano, EnumToolType.MINER)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 1)
|
.addAbility(IToolAreaAbility.HAMMER, 1)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 1)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 1)
|
.addAbility(IToolAreaAbility.RECURSION, 1)
|
||||||
.addAbility(IToolHarvestAbility.SMELTER, 0)
|
.addAbility(IToolHarvestAbility.SMELTER, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 2)
|
.addAbility(IToolHarvestAbility.LUCK, 2)
|
||||||
@ -4721,6 +4742,7 @@ public class ModItems {
|
|||||||
.setDepthRockBreaker().setUnlocalizedName("volcanic_pickaxe").setTextureName(RefStrings.MODID + ":volcanic_pickaxe");
|
.setDepthRockBreaker().setUnlocalizedName("volcanic_pickaxe").setTextureName(RefStrings.MODID + ":volcanic_pickaxe");
|
||||||
volcanic_axe = new ItemToolAbility(25F, 0, matVolcano, EnumToolType.AXE)
|
volcanic_axe = new ItemToolAbility(25F, 0, matVolcano, EnumToolType.AXE)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 1)
|
.addAbility(IToolAreaAbility.HAMMER, 1)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 1)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 1)
|
.addAbility(IToolAreaAbility.RECURSION, 1)
|
||||||
.addAbility(IToolHarvestAbility.SMELTER, 0)
|
.addAbility(IToolHarvestAbility.SMELTER, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 2)
|
.addAbility(IToolHarvestAbility.LUCK, 2)
|
||||||
@ -4732,6 +4754,7 @@ public class ModItems {
|
|||||||
ToolMaterial matChlorophyte = EnumHelper.addToolMaterial("HBM_CHLOROPHYTE", 4, 0, 75F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.powder_chlorophyte));
|
ToolMaterial matChlorophyte = EnumHelper.addToolMaterial("HBM_CHLOROPHYTE", 4, 0, 75F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.powder_chlorophyte));
|
||||||
chlorophyte_pickaxe = new ItemToolAbility(20F, 0, matChlorophyte, EnumToolType.MINER)
|
chlorophyte_pickaxe = new ItemToolAbility(20F, 0, matChlorophyte, EnumToolType.MINER)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 1)
|
.addAbility(IToolAreaAbility.HAMMER, 1)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 1)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 1)
|
.addAbility(IToolAreaAbility.RECURSION, 1)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 3)
|
.addAbility(IToolHarvestAbility.LUCK, 3)
|
||||||
.addAbility(IToolHarvestAbility.CENTRIFUGE, 0)
|
.addAbility(IToolHarvestAbility.CENTRIFUGE, 0)
|
||||||
@ -4742,6 +4765,7 @@ public class ModItems {
|
|||||||
.setDepthRockBreaker().setUnlocalizedName("chlorophyte_pickaxe").setTextureName(RefStrings.MODID + ":chlorophyte_pickaxe");
|
.setDepthRockBreaker().setUnlocalizedName("chlorophyte_pickaxe").setTextureName(RefStrings.MODID + ":chlorophyte_pickaxe");
|
||||||
chlorophyte_axe = new ItemToolAbility(50F, 0, matChlorophyte, EnumToolType.AXE)
|
chlorophyte_axe = new ItemToolAbility(50F, 0, matChlorophyte, EnumToolType.AXE)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 1)
|
.addAbility(IToolAreaAbility.HAMMER, 1)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 1)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 1)
|
.addAbility(IToolAreaAbility.RECURSION, 1)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 3)
|
.addAbility(IToolHarvestAbility.LUCK, 3)
|
||||||
.addAbility(IWeaponAbility.STUN, 4)
|
.addAbility(IWeaponAbility.STUN, 4)
|
||||||
@ -4751,6 +4775,7 @@ public class ModItems {
|
|||||||
ToolMaterial matMese = EnumHelper.addToolMaterial("HBM_MESE", 4, 0, 100F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa));
|
ToolMaterial matMese = EnumHelper.addToolMaterial("HBM_MESE", 4, 0, 100F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa));
|
||||||
mese_pickaxe = new ItemToolAbility(35F, 0, matMese, EnumToolType.MINER)
|
mese_pickaxe = new ItemToolAbility(35F, 0, matMese, EnumToolType.MINER)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 2)
|
.addAbility(IToolAreaAbility.HAMMER, 2)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 2)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 2)
|
.addAbility(IToolAreaAbility.RECURSION, 2)
|
||||||
.addAbility(IToolHarvestAbility.CRYSTALLIZER, 0)
|
.addAbility(IToolHarvestAbility.CRYSTALLIZER, 0)
|
||||||
.addAbility(IToolHarvestAbility.SILK, 0)
|
.addAbility(IToolHarvestAbility.SILK, 0)
|
||||||
@ -4762,6 +4787,7 @@ public class ModItems {
|
|||||||
.setDepthRockBreaker().setUnlocalizedName("mese_pickaxe").setTextureName(RefStrings.MODID + ":mese_pickaxe");
|
.setDepthRockBreaker().setUnlocalizedName("mese_pickaxe").setTextureName(RefStrings.MODID + ":mese_pickaxe");
|
||||||
mese_axe = new ItemToolAbility(75F, 0, matMese, EnumToolType.AXE)
|
mese_axe = new ItemToolAbility(75F, 0, matMese, EnumToolType.AXE)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 2)
|
.addAbility(IToolAreaAbility.HAMMER, 2)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 2)
|
||||||
.addAbility(IToolAreaAbility.RECURSION, 2)
|
.addAbility(IToolAreaAbility.RECURSION, 2)
|
||||||
.addAbility(IToolHarvestAbility.SILK, 0)
|
.addAbility(IToolHarvestAbility.SILK, 0)
|
||||||
.addAbility(IToolHarvestAbility.LUCK, 5)
|
.addAbility(IToolHarvestAbility.LUCK, 5)
|
||||||
@ -4774,7 +4800,8 @@ public class ModItems {
|
|||||||
|
|
||||||
ToolMaterial matDwarf = EnumHelper.addToolMaterial("HBM_DWARVEN", 2, 0, 4F, 0.0F, 10).setRepairItem(new ItemStack(ModItems.ingot_copper));
|
ToolMaterial matDwarf = EnumHelper.addToolMaterial("HBM_DWARVEN", 2, 0, 4F, 0.0F, 10).setRepairItem(new ItemStack(ModItems.ingot_copper));
|
||||||
dwarven_pickaxe = new ItemToolAbility(5F, -0.1, matDwarf, EnumToolType.MINER)
|
dwarven_pickaxe = new ItemToolAbility(5F, -0.1, matDwarf, EnumToolType.MINER)
|
||||||
.addAbility(IToolAreaAbility.HAMMER, 0).setUnlocalizedName("dwarven_pickaxe").setMaxDamage(250).setTextureName(RefStrings.MODID + ":dwarven_pickaxe");
|
.addAbility(IToolAreaAbility.HAMMER, 0)
|
||||||
|
.addAbility(IToolAreaAbility.HAMMER_FLAT, 0).setUnlocalizedName("dwarven_pickaxe").setMaxDamage(250).setTextureName(RefStrings.MODID + ":dwarven_pickaxe");
|
||||||
|
|
||||||
ToolMaterial matMeteorite = EnumHelper.addToolMaterial("HBM_METEORITE", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa));
|
ToolMaterial matMeteorite = EnumHelper.addToolMaterial("HBM_METEORITE", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa));
|
||||||
meteorite_sword = new ItemSwordMeteorite(9F, 0, matMeteorite).setUnlocalizedName("meteorite_sword").setTextureName(RefStrings.MODID + ":meteorite_sword");
|
meteorite_sword = new ItemSwordMeteorite(9F, 0, matMeteorite).setUnlocalizedName("meteorite_sword").setTextureName(RefStrings.MODID + ":meteorite_sword");
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
package com.hbm.items.tool;
|
package com.hbm.items.tool;
|
||||||
|
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@ -27,6 +29,8 @@ import com.hbm.packet.toclient.PlayerInformPacket;
|
|||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
|
|
||||||
import api.hbm.item.IDepthRockTool;
|
import api.hbm.item.IDepthRockTool;
|
||||||
|
import cpw.mods.fml.client.FMLClientHandler;
|
||||||
|
import cpw.mods.fml.relauncher.ReflectionHelper;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
@ -151,6 +155,10 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Should be safe, considering the AoE ability does a similar trick already.
|
||||||
|
// If not, wrap this in a ThreadLocal or something...
|
||||||
|
public static int dropX, dropY, dropZ;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onBlockStartBreak(ItemStack stack, int x, int y, int z, EntityPlayer player) {
|
public boolean onBlockStartBreak(ItemStack stack, int x, int y, int z, EntityPlayer player) {
|
||||||
|
|
||||||
@ -173,6 +181,10 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro
|
|||||||
Configuration config = getConfiguration(stack);
|
Configuration config = getConfiguration(stack);
|
||||||
ToolPreset preset = config.getActivePreset();
|
ToolPreset preset = config.getActivePreset();
|
||||||
|
|
||||||
|
dropX = x;
|
||||||
|
dropY = y;
|
||||||
|
dropZ = z;
|
||||||
|
|
||||||
preset.harvestAbility.preHarvestAll(preset.harvestAbilityLevel, world, player);
|
preset.harvestAbility.preHarvestAll(preset.harvestAbilityLevel, world, player);
|
||||||
|
|
||||||
boolean skipRef = preset.areaAbility.onDig(preset.areaAbilityLevel, world, x, y, z, player, this);
|
boolean skipRef = preset.areaAbility.onDig(preset.areaAbilityLevel, world, x, y, z, player, this);
|
||||||
@ -316,7 +328,7 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro
|
|||||||
double d = (double) (rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
|
double d = (double) (rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
|
||||||
double d1 = (double) (rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
|
double d1 = (double) (rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
|
||||||
double d2 = (double) (rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
|
double d2 = (double) (rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
|
||||||
EntityItem entityitem = new EntityItem(player.worldObj, (double) x + d, (double) y + d1, (double) z + d2, stack);
|
EntityItem entityitem = new EntityItem(player.worldObj, (double) dropX + d, (double) dropY + d1, (double) dropZ + d2, stack);
|
||||||
entityitem.delayBeforeCanPickup = 10;
|
entityitem.delayBeforeCanPickup = 10;
|
||||||
player.worldObj.spawnEntityInWorld(entityitem);
|
player.worldObj.spawnEntityInWorld(entityitem);
|
||||||
}
|
}
|
||||||
@ -326,6 +338,9 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Since it's added by forge, access transformers don't affect it (even wildcards), so we do it the old-fashioned way
|
||||||
|
private static Method blockCaptureDrops = ReflectionHelper.findMethod(Block.class, null, new String[] { "captureDrops" }, new Class[] { boolean.class });
|
||||||
|
|
||||||
public static void standardDigPost(World world, int x, int y, int z, EntityPlayerMP player) {
|
public static void standardDigPost(World world, int x, int y, int z, EntityPlayerMP player) {
|
||||||
|
|
||||||
Block block = world.getBlock(x, y, z);
|
Block block = world.getBlock(x, y, z);
|
||||||
@ -351,7 +366,20 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(removedByPlayer && canHarvest) {
|
if(removedByPlayer && canHarvest) {
|
||||||
|
try {
|
||||||
|
blockCaptureDrops.invoke(block, true);
|
||||||
block.harvestBlock(world, player, x, y, z, l);
|
block.harvestBlock(world, player, x, y, z, l);
|
||||||
|
List<ItemStack> drops = (List)blockCaptureDrops.invoke(block, false);
|
||||||
|
for (ItemStack stack : drops) {
|
||||||
|
block.dropBlockAsItem(world, dropX, dropY, dropZ, stack);
|
||||||
|
}
|
||||||
|
} catch (IllegalAccessException e) {
|
||||||
|
// Shouldn't be possible with ReflectionHelper
|
||||||
|
MainRegistry.logger.error("Failed to capture drops for block " + block, e);
|
||||||
|
} catch (InvocationTargetException e) {
|
||||||
|
// Might be possible? Not in practice, though
|
||||||
|
MainRegistry.logger.error("Failed to capture drops for block " + block, e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -51,3 +51,7 @@ public net.minecraft.inventory.Container * # fu
|
|||||||
|
|
||||||
# GuiIngame
|
# GuiIngame
|
||||||
public net.minecraft.client.gui.GuiIngame field_92016_l # highlightingItemStack
|
public net.minecraft.client.gui.GuiIngame field_92016_l # highlightingItemStack
|
||||||
|
|
||||||
|
# Block
|
||||||
|
public net.minecraft.block.Block func_149642_a(Lnet/minecraft/world/World;IIILnet/minecraft/item/ItemStack;)V # dropBlockAsItem
|
||||||
|
|
||||||
|
|||||||
@ -4981,6 +4981,7 @@ tool.ability.cnetrifuge=Auto-Zentrifuge
|
|||||||
tool.ability.crystallizer=Auto-Kristallisierer
|
tool.ability.crystallizer=Auto-Kristallisierer
|
||||||
tool.ability.explosion=Explosion
|
tool.ability.explosion=Explosion
|
||||||
tool.ability.hammer=AoE
|
tool.ability.hammer=AoE
|
||||||
|
tool.ability.hammer_flat=Flacher AoE
|
||||||
tool.ability.luck=Glück
|
tool.ability.luck=Glück
|
||||||
tool.ability.mercury=Quecksilber-Berührung
|
tool.ability.mercury=Quecksilber-Berührung
|
||||||
tool.ability.midas=Midas' Hand
|
tool.ability.midas=Midas' Hand
|
||||||
|
|||||||
@ -6147,6 +6147,7 @@ tool.ability.centrifuge=Auto-Centrifuge
|
|||||||
tool.ability.crystallizer=Auto-Crystallizer
|
tool.ability.crystallizer=Auto-Crystallizer
|
||||||
tool.ability.explosion=Explosion
|
tool.ability.explosion=Explosion
|
||||||
tool.ability.hammer=AoE
|
tool.ability.hammer=AoE
|
||||||
|
tool.ability.hammer_flat=Flat AoE
|
||||||
tool.ability.luck=Fortune
|
tool.ability.luck=Fortune
|
||||||
tool.ability.mercury=Mercury Touch
|
tool.ability.mercury=Mercury Touch
|
||||||
tool.ability.midas=Midas Touch
|
tool.ability.midas=Midas Touch
|
||||||
|
|||||||
@ -6164,6 +6164,7 @@ tool.ability.centrifuge=Auto-Centrifuge
|
|||||||
tool.ability.crystallizer=Auto-Crystallizer
|
tool.ability.crystallizer=Auto-Crystallizer
|
||||||
tool.ability.explosion=Explosion
|
tool.ability.explosion=Explosion
|
||||||
tool.ability.hammer=AoE
|
tool.ability.hammer=AoE
|
||||||
|
tool.ability.hammer_flat=AoE piatta
|
||||||
tool.ability.luck=Fortune
|
tool.ability.luck=Fortune
|
||||||
tool.ability.mercury=Mercury Touch
|
tool.ability.mercury=Mercury Touch
|
||||||
tool.ability.midas=Midas Touch
|
tool.ability.midas=Midas Touch
|
||||||
|
|||||||
@ -5399,6 +5399,7 @@ tool.ability.centrifuge=Auto-Centrifuge
|
|||||||
tool.ability.crystallizer=Auto-Crystallizer
|
tool.ability.crystallizer=Auto-Crystallizer
|
||||||
tool.ability.explosion=Explosion
|
tool.ability.explosion=Explosion
|
||||||
tool.ability.hammer=AoE
|
tool.ability.hammer=AoE
|
||||||
|
tool.ability.hammer_flat=Flat AoE
|
||||||
tool.ability.luck=Fortune
|
tool.ability.luck=Fortune
|
||||||
tool.ability.mercury=Mercury Touch
|
tool.ability.mercury=Mercury Touch
|
||||||
tool.ability.midas=Midas Touch
|
tool.ability.midas=Midas Touch
|
||||||
|
|||||||
@ -6378,6 +6378,7 @@ tool.ability.centrifuge=Авто-центрифуга
|
|||||||
tool.ability.crystallizer=Авто-кристаллизатор
|
tool.ability.crystallizer=Авто-кристаллизатор
|
||||||
tool.ability.explosion=Взрыв
|
tool.ability.explosion=Взрыв
|
||||||
tool.ability.hammer=Зона действия
|
tool.ability.hammer=Зона действия
|
||||||
|
tool.ability.hammer_flat=Плоская зона действия
|
||||||
tool.ability.luck=Удача
|
tool.ability.luck=Удача
|
||||||
tool.ability.mercury=Ртутное касание
|
tool.ability.mercury=Ртутное касание
|
||||||
tool.ability.midas=Прикосновение Мидаса
|
tool.ability.midas=Прикосновение Мидаса
|
||||||
|
|||||||
@ -6147,6 +6147,7 @@ tool.ability.centrifuge=Автоцентрифуга
|
|||||||
tool.ability.crystallizer=Автокристалізатор
|
tool.ability.crystallizer=Автокристалізатор
|
||||||
tool.ability.explosion=Вибух
|
tool.ability.explosion=Вибух
|
||||||
tool.ability.hammer=Зона дії
|
tool.ability.hammer=Зона дії
|
||||||
|
tool.ability.hammer_flat=Плоска зона дії
|
||||||
tool.ability.luck=Вдача
|
tool.ability.luck=Вдача
|
||||||
tool.ability.mercury=Ртутний дотик
|
tool.ability.mercury=Ртутний дотик
|
||||||
tool.ability.midas=Дотик Мідаса
|
tool.ability.midas=Дотик Мідаса
|
||||||
|
|||||||
@ -5811,6 +5811,7 @@ tool.ability.centrifuge=自动离心
|
|||||||
tool.ability.crystallizer=自动结晶
|
tool.ability.crystallizer=自动结晶
|
||||||
tool.ability.explosion=爆破
|
tool.ability.explosion=爆破
|
||||||
tool.ability.hammer=范围挖掘
|
tool.ability.hammer=范围挖掘
|
||||||
|
tool.ability.flat_hammer=平坦區域採礦
|
||||||
tool.ability.luck=时运
|
tool.ability.luck=时运
|
||||||
tool.ability.mercury=水银提取
|
tool.ability.mercury=水银提取
|
||||||
tool.ability.midas=点石成金
|
tool.ability.midas=点石成金
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
Loading…
x
Reference in New Issue
Block a user