From 95b359acd3005ba2987b5f1c9b31e075e5c47a84 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 13 Aug 2020 23:06:16 +0200 Subject: [PATCH] balls-o-tron progress: 20% --- .../java/assets/hbm/textures/items/drax.png | Bin 330 -> 563 bytes .../assets/hbm/textures/items/drax_mk2.png | Bin 0 -> 516 bytes .../assets/hbm/textures/items/drax_mk3.png | Bin 0 -> 509 bytes .../EntityBallsOTronBase.java | 6 + .../EntityBallsOTronHead.java | 11 +- .../EntityBallsOTronSegment.java | 6 + .../mob/sodtekhnologiyah/EntityBurrowing.java | 81 +++++++- .../mob/sodtekhnologiyah/EntityWormBase.java | 175 +++++++++++++++++- .../sodtekhnologiyah/WormMovementBody.java | 5 + .../sodtekhnologiyah/WormMovementHead.java | 5 + .../java/com/hbm/inventory/RecipesCommon.java | 30 +++ .../java/com/hbm/items/tool/ItemModDoor.java | 2 - .../com/hbm/items/tool/ItemSwordAbility.java | 17 -- .../hbm/items/tool/ItemSwordAbilityPower.java | 47 +++-- .../com/hbm/items/tool/ItemToolAbility.java | 2 +- .../hbm/items/tool/ItemToolAbilityPower.java | 47 +++-- src/main/java/com/hbm/lib/Library.java | 16 -- 17 files changed, 366 insertions(+), 84 deletions(-) create mode 100644 src/main/java/assets/hbm/textures/items/drax_mk2.png create mode 100644 src/main/java/assets/hbm/textures/items/drax_mk3.png create mode 100644 src/main/java/com/hbm/entity/mob/sodtekhnologiyah/WormMovementBody.java create mode 100644 src/main/java/com/hbm/entity/mob/sodtekhnologiyah/WormMovementHead.java diff --git a/src/main/java/assets/hbm/textures/items/drax.png b/src/main/java/assets/hbm/textures/items/drax.png index eb8f91e85c66243a4a6bee44d26782bbdd365699..9761117ce46a9bbd6b3b23a109bf4f54736fe6f7 100644 GIT binary patch literal 563 zcmV-30?hr1P)BjE7>1ve2KoaGUNv;oprJzs4;N>22GOxYEIJuH735t% zz~GR{Q#g069g3FSICQqrN(9dX}Hr~CBqzW3?wz*5WQ zQrp%5ys$0UZns2Hq=gVxKx2>)LQ5&NQVPd$a9tN0*h|xitJUfV&_NKOlw!SJS7S!9 zaukLkl_Mbpp6C64M~>sr>2v^ep689uj6p&OJsOSb=PEuEh%u;&ZL`^+lme(5qAbh9 zIjUj{!>}GxO3`YyjN>!1ErifP5YzzJJIb=mxci>%s4Po7&uesK1Ufmr&_Tb;csvH6 zEX(?x@B74Y-1rUSuA9!jGPsWq9wJPVHOI%Vf&4I_cfot6@*05OKY!KZZ_duh(zLPO z7*xS_yBz>UQ2>yoDR+0bjkVUhccm;%$PNhvk#*C~$U!=6WvAyUeEuk(GMJb!xYsbuXank;lt z6tvrIq7QGa>l<}7Tj^-B`0FwfO&0oUwlcb)`~htS4G>E>o<0Bo002ovPDHLkV1lt} B0Hy!{ literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufG}g$wN6f;;C)XQ#}EtuWQl?U97{Jg{tu9nOjvO|^}zqF z+1HKk?5Pw!v$NnK)8Vzz+YfA6K2xK44~zQY9^d{0Rh?yxO-)SA4Gj#=OMaHO{k%Qj z;7-LC(KXXKb-HC6L=J3Rb|buvU*66@$NnVeC7wy_%r$HW7%$xX?|AOnkMB}B9gU5Q z9ujYyn%EjltR=V%Wp;cJd-H~!U(R5~%9W0(oDvM1C2yWrU?^pjcwoYCH*JLh+kq?w zz1fKlv9YqJ4ly~*vc7!vfA)#OWN!}xhUw0RvT4SO>B+1vw|b;gew>`RerC-9pih+q W;`*;k7*ztj%HZkh=d#Wzp$P!1iF(5T diff --git a/src/main/java/assets/hbm/textures/items/drax_mk2.png b/src/main/java/assets/hbm/textures/items/drax_mk2.png new file mode 100644 index 0000000000000000000000000000000000000000..c6dd5934cd6bef1afbd6a03175fbde4a9bc77152 GIT binary patch literal 516 zcmV+f0{i`mP)~1B-=_S!m`bzaA#xwnKR-C1H&+9zH`3w&4Eaa$73HG18^N1P!t7e zntG*F6yc5ZqEgBa1_P|MXst<-1i(Azt|alIOW%>LRx6|=5FwpX%4bJvUVn{^p58U`9P*qr{d4vcU!auoALOI$jWLxG+Lx8i+}|;Key$B+tvwiFIIQG5 zjVS4UCb@*;0zNxV=(d3KT{oR#%wJ}+nP{lS;i#&2GswnIbSB0a51~(sv)&Mq9M8I{ zA`zmqX^kd+zunThy=6cBfB9;9k59fentZ6BHJThgu>f!HG3$}_ha;K*00000elywy$VZmU8^~*aB>$Xe`oV z`!`*tFWBuZ)qD=XswnF3+Z(SB4{(3)Uh6x^s4Tx$|^YfnteGY3a z)>?i&J?&fKi^ww3T8lA8wAP}OYOJo55~bA7xDIL~YdM|GoVEgZ%xJk>cJe%LRGrRd&7*B4J}=kS{;;F6thaTV z3Taxy+KM=irPu389LMcIj4}TdkK this.nextStepDistance) + { + //this.nextStepDistance = ((int)this.distanceWalkedOnStepModified + 1); + if (isInWater()) + { + float var39 = (float) (Math.sqrt(this.motionX * this.motionX * 0.2D + this.motionY * this.motionY + this.motionZ * this.motionZ * 0.2) * 0.35F); + if (var39 > 1.0F) { + var39 = 1.0F; + } + playSound("liquid.swim", var39, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.4F); + } + if (getIsHead()) { + playSound("alexmod.destroyer.dig", getSoundVolume(), 1.0F); + } + }*/ + } + if (!getIsHead()) { + drag *= 0.9F; + } + moveFlying(strafe, forward, 0.02F); + + moveEntity(this.motionX, this.motionY, this.motionZ); + this.motionX *= drag; + this.motionY *= drag; + this.motionZ *= drag; + + this.prevLimbSwingAmount = this.limbSwingAmount; + double var10 = this.posX - this.prevPosX; + double var9 = this.posZ - this.prevPosZ; + float var7 = (float) Math.sqrt(var10 * var10 + var9 * var9) * 4.0F; + if (var7 > 1.0F) { + var7 = 1.0F; + } + this.limbSwingAmount += (var7 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } } diff --git a/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/EntityWormBase.java b/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/EntityWormBase.java index 81324274e..0d49c6d64 100644 --- a/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/EntityWormBase.java +++ b/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/EntityWormBase.java @@ -1,14 +1,179 @@ package com.hbm.entity.mob.sodtekhnologiyah; +import java.util.List; + +import net.minecraft.command.IEntitySelector; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.util.DamageSource; +import net.minecraft.world.EnumDifficulty; +import net.minecraft.world.World; + public abstract class EntityWormBase extends EntityBurrowing { - public abstract int getHeadID(); + public int aggroCooldown = 0; + public int courseChangeCooldown = 0; + public double waypointX; + public double waypointY; + public double waypointZ; + protected Entity targetedEntity = null; + protected boolean canFly = false; + protected int dmgCooldown = 0; + protected boolean wasNearGround; + protected ChunkCoordinates spawnPoint = new ChunkCoordinates(); + protected double attackRange; + protected double maxSpeed; + protected double fallSpeed; + protected double rangeForParts; + protected EntityWormBase followed; + protected int surfaceY; + private int uniqueWormID; + private int partID; + protected boolean didCheck; + protected double bodySpeed; + protected double maxBodySpeed; + protected double segmentDistance; + protected double knockbackDivider; + protected int attackTick; - public abstract int getPartID(); + public static final IEntitySelector wormSelector = new IEntitySelector() { - public abstract boolean getIsHead(); + @Override + public boolean isEntityApplicable(Entity target) { + return target instanceof EntityWormBase; + } + }; - public abstract void setPartID(int id); + public EntityWormBase(World world) { + super(world); + this.setSize(1.0F, 1.0F); + this.surfaceY = 60; + this.renderDistanceWeight = 5.0D; + } - public abstract void setHeadID(int id); + public int getPartID() { + return this.partID; + } + + public void setPartID(int par1) { + this.partID = par1; + } + + public int getUniqueWormID() { + return this.uniqueWormID; + } + + public void setUniqueWormID(int par1) { + this.uniqueWormID = par1; + } + + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + + if(this.isEntityInvulnerable() || source == DamageSource.drown || source == DamageSource.inWall || + ((source.getEntity() instanceof EntityWormBase) && ((EntityWormBase) source.getEntity()).uniqueWormID == this.uniqueWormID)) { + return false; + } else { + this.setBeenAttacked(); + return false; + } + } + + protected void updateEntityActionState() { + + if((!this.worldObj.isRemote) && (this.worldObj.difficultySetting == EnumDifficulty.PEACEFUL)) { + setDead(); + } + if((this.targetedEntity != null) && (this.targetedEntity.isDead)) { + this.targetedEntity = null; + } + if((getIsHead()) && (this.targetedEntity != null) && ((this.targetedEntity instanceof EntityPlayer))) { + this.entityAge = 0; + } + if(this.posY < -10.0D) { + setPositionAndUpdate(this.posX, 128.0D, this.posZ); + this.motionY = 0.0D; + } else if(this.posY < 3.0D) { + this.motionY = 0.3D; + } + this.attackTick = Math.max(this.attackTick - 1, 0); + if(this.attackTick == 0) { + this.attackTick = 10; + + attackEntitiesInList(this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.expand(0.5D, 0.5D, 0.5D))); + } + } + + protected void attackEntitiesInList(List par1List) { + + for(Entity var3 : par1List) { + if(((var3 instanceof EntityLivingBase)) && (canAttackClass(var3.getClass())) + && ((!(var3 instanceof EntityWormBase)) || (((EntityWormBase) var3).getUniqueWormID() != getUniqueWormID()))) { + attackEntityAsMob(var3); + } + } + } + + @Override + public boolean canAttackClass(Class clazz) { + return true; + } + + @Override + public boolean attackEntityAsMob(Entity par1Entity) { + + boolean var2 = par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), getAttackStrength(par1Entity)); + + if(var2) { + this.entityAge = 0; + double var5 = (this.boundingBox.minX + this.boundingBox.maxX) / 2.0D; + double var6 = (this.boundingBox.minZ + this.boundingBox.maxZ) / 2.0D; + double var7 = (this.boundingBox.minY + this.boundingBox.maxY) / 2.0D; + double var8 = par1Entity.posX - var5; + double var10 = par1Entity.posZ - var6; + double var11 = par1Entity.posY - var7; + double var12 = this.knockbackDivider * (var8 * var8 + var10 * var10 + var11 * var11 + 0.1D); + par1Entity.addVelocity(var8 / var12, var11 / var12, var10 / var12); + } + + return var2; + } + + public abstract float getAttackStrength(Entity paramsa); + + @Override + public void addVelocity(double x, double y, double z) { + } + + @Override + public void faceEntity(Entity entity, float yaw, float pitch) { + } + + protected boolean isCourseTraversable() { + return (this.canFly) || (isEntityInsideOpaqueBlock()); + } + + @Override + protected float getSoundVolume() { + return 5.0F; + } + + @Override + public void setDead() { + playSound(getDeathSound(), getSoundVolume(), getSoundPitch()); + super.setDead(); + } + + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setInteger("wormID", this.getUniqueWormID()); + } + + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + setUniqueWormID(nbt.getInteger("wormID")); + } } diff --git a/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/WormMovementBody.java b/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/WormMovementBody.java new file mode 100644 index 000000000..1e5bab335 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/WormMovementBody.java @@ -0,0 +1,5 @@ +package com.hbm.entity.mob.sodtekhnologiyah; + +public class WormMovementBody { + +} diff --git a/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/WormMovementHead.java b/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/WormMovementHead.java new file mode 100644 index 000000000..af24befa4 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/WormMovementHead.java @@ -0,0 +1,5 @@ +package com.hbm.entity.mob.sodtekhnologiyah; + +public class WormMovementHead { + +} diff --git a/src/main/java/com/hbm/inventory/RecipesCommon.java b/src/main/java/com/hbm/inventory/RecipesCommon.java index 806b63880..ad66ce028 100644 --- a/src/main/java/com/hbm/inventory/RecipesCommon.java +++ b/src/main/java/com/hbm/inventory/RecipesCommon.java @@ -5,6 +5,7 @@ import java.util.List; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.oredict.OreDictionary; public class RecipesCommon { @@ -222,8 +223,37 @@ public class RecipesCommon { NBTTagCompound nbt; + public ComparableNBTStack(ItemStack stack) { + super(stack); + } + + public ComparableNBTStack(Item item) { + super(item); + } + + public ComparableNBTStack(Block item) { + super(item); + } + + public ComparableNBTStack(Block item, int stacksize) { + super(item, stacksize); + } + + public ComparableNBTStack(Block item, int stacksize, int meta) { + super(item, stacksize, meta); + } + + public ComparableNBTStack(Item item, int stacksize) { + super(item, stacksize); + } + + public ComparableNBTStack(Item item, int stacksize, int meta) { + super(item, stacksize, meta); + } + public ComparableNBTStack addNBT(NBTTagCompound nbt) { this.nbt = nbt; + return this; } public ItemStack toStack() { diff --git a/src/main/java/com/hbm/items/tool/ItemModDoor.java b/src/main/java/com/hbm/items/tool/ItemModDoor.java index 973863648..6ed3f84f3 100644 --- a/src/main/java/com/hbm/items/tool/ItemModDoor.java +++ b/src/main/java/com/hbm/items/tool/ItemModDoor.java @@ -13,8 +13,6 @@ import net.minecraft.world.World; public class ItemModDoor extends Item { - private static final String __OBFID = "CL_00000020"; - public ItemModDoor() { this.maxStackSize = 1; diff --git a/src/main/java/com/hbm/items/tool/ItemSwordAbility.java b/src/main/java/com/hbm/items/tool/ItemSwordAbility.java index 9b7c5b9b3..a78536a40 100644 --- a/src/main/java/com/hbm/items/tool/ItemSwordAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemSwordAbility.java @@ -19,7 +19,6 @@ import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.play.client.C07PacketPlayerDigging; import net.minecraft.network.play.server.S23PacketBlockChange; import net.minecraft.util.EnumChatFormatting; @@ -165,22 +164,6 @@ public class ItemSwordAbility extends ItemSword implements IItemAbility { } } - private int getAbility(ItemStack stack) { - - if(stack.hasTagCompound()) - return stack.stackTagCompound.getInteger("ability"); - - return 0; - } - - private void setAbility(ItemStack stack, int ability) { - - if(!stack.hasTagCompound()) - stack.stackTagCompound = new NBTTagCompound(); - - stack.stackTagCompound.setInteger("ability", ability); - } - protected boolean canOperate(ItemStack stack) { return true; } diff --git a/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java b/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java index b84439a52..cc7499e7d 100644 --- a/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java +++ b/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java @@ -4,13 +4,14 @@ import java.util.List; import com.hbm.lib.Library; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -public class ItemSwordAbilityPower extends ItemSwordAbility { +public class ItemSwordAbilityPower extends ItemSwordAbility implements IBatteryItem { public long maxPower = 1; public long chargeRate; @@ -23,7 +24,8 @@ public class ItemSwordAbilityPower extends ItemSwordAbility { this.consumption = consumption; this.setMaxDamage(1); } - + + @Override public void chargeBattery(ItemStack stack, long i) { if(stack.getItem() instanceof ItemSwordAbilityPower) { if(stack.hasTagCompound()) { @@ -34,7 +36,8 @@ public class ItemSwordAbilityPower extends ItemSwordAbility { } } } - + + @Override public void setCharge(ItemStack stack, long i) { if(stack.getItem() instanceof ItemSwordAbilityPower) { if(stack.hasTagCompound()) { @@ -45,7 +48,8 @@ public class ItemSwordAbilityPower extends ItemSwordAbility { } } } - + + @Override public void dischargeBattery(ItemStack stack, long i) { if(stack.getItem() instanceof ItemSwordAbilityPower) { if(stack.hasTagCompound()) { @@ -59,8 +63,9 @@ public class ItemSwordAbilityPower extends ItemSwordAbility { stack.stackTagCompound.setLong("charge", 0); } } - - public static long getCharge(ItemStack stack) { + + @Override + public long getCharge(ItemStack stack) { if(stack.getItem() instanceof ItemSwordAbilityPower) { if(stack.hasTagCompound()) { return stack.stackTagCompound.getLong("charge"); @@ -81,39 +86,47 @@ public class ItemSwordAbilityPower extends ItemSwordAbility { super.addInformation(stack, player, list, ext); } - + + @Override public boolean showDurabilityBar(ItemStack stack) { return getCharge(stack) < maxPower; } - + + @Override public double getDurabilityForDisplay(ItemStack stack) { return 1 - (double)getCharge(stack) / (double)maxPower; } - + + @Override protected boolean canOperate(ItemStack stack) { return getCharge(stack) >= this.consumption; } - + + @Override public long getMaxCharge() { return maxPower; } - + + @Override public long getChargeRate() { return chargeRate; } - - public static long getMaxChargeStatic(ItemStack stack) { - return ((ItemSwordAbilityPower)stack.getItem()).maxPower; - } - + + @Override + public long getDischargeRate() { + return 0; + } + + @Override public void setDamage(ItemStack stack, int damage) { this.dischargeBattery(stack, damage * consumption); } - + + @Override public boolean isDamageable() { return true; } diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index 91dafee4b..9220092c7 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -61,7 +61,7 @@ public class ItemToolAbility extends ItemTool implements IItemAbility { Sets.newHashSet(new Block[] { Blocks.grass, Blocks.dirt, Blocks.sand, Blocks.gravel, Blocks.snow_layer, Blocks.snow, Blocks.clay, Blocks.farmland, Blocks.soul_sand, Blocks.mycelium }) ), MINER( - Sets.newHashSet(new Material[] { Material.iron, Material.anvil, Material.rock, Material.clay, Material.sand, Material.ground, Material.snow, Material.craftedSnow }) + Sets.newHashSet(new Material[] { Material.grass, Material.iron, Material.anvil, Material.rock, Material.clay, Material.sand, Material.ground, Material.snow, Material.craftedSnow }) ); private EnumToolType(Set materials) { diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java b/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java index e952a7a13..c22906da6 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java @@ -4,13 +4,14 @@ import java.util.List; import com.hbm.lib.Library; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -public class ItemToolAbilityPower extends ItemToolAbility { +public class ItemToolAbilityPower extends ItemToolAbility implements IBatteryItem { public long maxPower = 1; public long chargeRate; @@ -23,7 +24,8 @@ public class ItemToolAbilityPower extends ItemToolAbility { this.consumption = consumption; this.setMaxDamage(1); } - + + @Override public void chargeBattery(ItemStack stack, long i) { if(stack.getItem() instanceof ItemToolAbilityPower) { if(stack.hasTagCompound()) { @@ -34,7 +36,8 @@ public class ItemToolAbilityPower extends ItemToolAbility { } } } - + + @Override public void setCharge(ItemStack stack, long i) { if(stack.getItem() instanceof ItemToolAbilityPower) { if(stack.hasTagCompound()) { @@ -45,7 +48,8 @@ public class ItemToolAbilityPower extends ItemToolAbility { } } } - + + @Override public void dischargeBattery(ItemStack stack, long i) { if(stack.getItem() instanceof ItemToolAbilityPower) { if(stack.hasTagCompound()) { @@ -59,8 +63,9 @@ public class ItemToolAbilityPower extends ItemToolAbility { stack.stackTagCompound.setLong("charge", 0); } } - - public static long getCharge(ItemStack stack) { + + @Override + public long getCharge(ItemStack stack) { if(stack.getItem() instanceof ItemToolAbilityPower) { if(stack.hasTagCompound()) { return stack.stackTagCompound.getLong("charge"); @@ -81,39 +86,47 @@ public class ItemToolAbilityPower extends ItemToolAbility { super.addInformation(stack, player, list, ext); } - + + @Override public boolean showDurabilityBar(ItemStack stack) { return getCharge(stack) < maxPower; } - + + @Override public double getDurabilityForDisplay(ItemStack stack) { return 1 - (double)getCharge(stack) / (double)maxPower; } - + + @Override protected boolean canOperate(ItemStack stack) { return getCharge(stack) >= this.consumption; } - + + @Override public long getMaxCharge() { return maxPower; } - + + @Override public long getChargeRate() { return chargeRate; } - - public static long getMaxChargeStatic(ItemStack stack) { - return ((ItemToolAbilityPower)stack.getItem()).maxPower; - } - + + @Override + public long getDischargeRate() { + return 0; + } + + @Override public void setDamage(ItemStack stack, int damage) { this.dischargeBattery(stack, damage * consumption); } - + + @Override public boolean isDamageable() { return true; } diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index c6a52b85d..cbd11ff1c 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -20,7 +20,6 @@ import com.hbm.interfaces.IFluidSource; import com.hbm.interfaces.ISource; import com.hbm.interfaces.Spaghetti; import com.hbm.items.ModItems; -import com.hbm.items.tool.ItemToolAbilityPower; import com.hbm.tileentity.TileEntityProxyInventory; import com.hbm.tileentity.conductor.TileEntityCable; import com.hbm.tileentity.conductor.TileEntityCableSwitch; @@ -368,21 +367,6 @@ public class Library { if(slots[index] != null && slots[index].getItem() == ModItems.dynosphere_dineutronium && battery.getCharge(slots[index]) >= battery.getMaxCharge()) slots[index] = new ItemStack(ModItems.dynosphere_dineutronium_charged); } - - if(slots[index] != null && slots[index].getItem() instanceof ItemToolAbilityPower) { - - long batMax = ItemToolAbilityPower.getMaxChargeStatic(slots[index]); - long batCharge = ItemToolAbilityPower.getCharge(slots[index]); - long batRate = ((ItemToolAbilityPower)slots[index].getItem()).getChargeRate(); - - //in hHE - long toCharge = Math.min(Math.min(power, batRate), batMax - batCharge); - - power -= toCharge; - - ((ItemToolAbilityPower)slots[index].getItem()).chargeBattery(slots[index], toCharge); - - } return power; }