Changed how electrocution is handled for wires, damage is no longer in the millions and only works when wire has a current

This commit is contained in:
Robert S 2014-04-14 19:19:51 -04:00
parent 853c7bfdb0
commit bb1aaecc5b

View file

@ -16,6 +16,7 @@ import net.minecraftforge.common.ForgeDirection;
import resonantinduction.core.MultipartUtility; import resonantinduction.core.MultipartUtility;
import resonantinduction.electrical.Electrical; import resonantinduction.electrical.Electrical;
import universalelectricity.api.CompatibilityModule; import universalelectricity.api.CompatibilityModule;
import universalelectricity.api.electricity.IElectricalNetwork;
import universalelectricity.api.energy.IConductor; import universalelectricity.api.energy.IConductor;
import calclavia.lib.prefab.CustomDamageSource; import calclavia.lib.prefab.CustomDamageSource;
import codechicken.lib.data.MCDataInput; import codechicken.lib.data.MCDataInput;
@ -23,10 +24,7 @@ import codechicken.lib.data.MCDataOutput;
import codechicken.multipart.IRedstonePart; import codechicken.multipart.IRedstonePart;
import codechicken.multipart.TMultiPart; import codechicken.multipart.TMultiPart;
/** /** @author Calclavia */
* @author Calclavia
*
*/
@Deprecated @Deprecated
public abstract class PartAdvancedWire extends PartConductor public abstract class PartAdvancedWire extends PartConductor
{ {
@ -37,10 +35,7 @@ public abstract class PartAdvancedWire extends PartConductor
public boolean isInsulated = false; public boolean isInsulated = false;
protected Item insulationType = Electrical.itemInsulation; protected Item insulationType = Electrical.itemInsulation;
/** /** INTERNAL USE. Can this conductor connect with an external object? */
* INTERNAL USE.
* Can this conductor connect with an external object?
*/
@Override @Override
public boolean canConnectTo(Object obj) public boolean canConnectTo(Object obj)
{ {
@ -93,9 +88,17 @@ public abstract class PartAdvancedWire extends PartConductor
@Override @Override
public void onEntityCollision(Entity entity) public void onEntityCollision(Entity entity)
{ {
if (!this.isInsulated() && this.getNetwork().getLastBuffer() > 0) if (!this.isInsulated())
{ {
entity.attackEntityFrom(CustomDamageSource.electrocution, this.getNetwork().getLastBuffer()); float damage = 0;
if (this.getNetwork() instanceof IElectricalNetwork && this.getNetwork().getRequest() > 0)
{
damage = ((IElectricalNetwork) this.getNetwork()).getVoltage() / 60;
}
if (damage > 0)
entity.attackEntityFrom(CustomDamageSource.electrocution, Math.max(damage, 10));
} }
} }
@ -111,9 +114,7 @@ public abstract class PartAdvancedWire extends PartConductor
return this.getMaterial().maxAmps; return this.getMaterial().maxAmps;
} }
/** /** Material Methods */
* Material Methods
*/
public EnumWireMaterial getMaterial() public EnumWireMaterial getMaterial()
{ {
return this.material; return this.material;
@ -134,9 +135,7 @@ public abstract class PartAdvancedWire extends PartConductor
return this.material.ordinal(); return this.material.ordinal();
} }
/** /** Insulation Methods */
* Insulation Methods
*/
public void setInsulated(boolean insulated) public void setInsulated(boolean insulated)
{ {
this.isInsulated = insulated; this.isInsulated = insulated;
@ -172,9 +171,7 @@ public abstract class PartAdvancedWire extends PartConductor
tile().getWriteStream(this).writeByte(1).writeBoolean(this.isInsulated); tile().getWriteStream(this).writeByte(1).writeBoolean(this.isInsulated);
} }
/** /** Wire Coloring Methods */
* Wire Coloring Methods
*/
public int getColor() public int getColor()
{ {
return this.isInsulated ? this.color : -1; return this.isInsulated ? this.color : -1;
@ -199,9 +196,7 @@ public abstract class PartAdvancedWire extends PartConductor
tile().getWriteStream(this).writeByte(2).writeInt(this.color); tile().getWriteStream(this).writeByte(2).writeInt(this.color);
} }
/** /** Changes the wire's color. */
* Changes the wire's color.
*/
@Override @Override
public boolean activate(EntityPlayer player, MovingObjectPosition part, ItemStack itemStack) public boolean activate(EntityPlayer player, MovingObjectPosition part, ItemStack itemStack)
{ {