equivalent-exchange-3/src/main/java/com/pahimar/ee3/api/EnergyValue.java

78 lines
1.7 KiB
Java
Raw Normal View History

package com.pahimar.ee3.api;
2014-04-29 03:24:31 +02:00
public final class EnergyValue implements Comparable<EnergyValue>
2014-04-29 03:24:31 +02:00
{
private final float energyValue;
private final EnergyType energyType;
2014-04-29 03:24:31 +02:00
public EnergyValue(int energyValue)
2014-04-29 03:24:31 +02:00
{
this((float) energyValue);
2014-04-29 03:24:31 +02:00
}
public EnergyValue(float energyValue)
2014-04-29 03:24:31 +02:00
{
this(energyValue, EnergyType.DEFAULT);
2014-04-29 03:24:31 +02:00
}
public EnergyValue(float energyValue, EnergyType energyType)
2014-04-29 03:24:31 +02:00
{
this.energyValue = energyValue;
this.energyType = energyType;
}
public EnergyValue(int energyValue, EnergyType energyType)
{
this((float) energyValue, energyType);
}
@Override
public boolean equals(Object object)
{
return object instanceof EnergyValue && (compareTo((EnergyValue) object) == 0);
2014-04-29 03:24:31 +02:00
}
@Override
public String toString()
2014-04-29 03:24:31 +02:00
{
return String.format(" %s@%s ", energyValue, energyType);
2014-04-29 03:24:31 +02:00
}
@Override
public int compareTo(EnergyValue energyValue)
2014-04-29 03:24:31 +02:00
{
if (energyValue != null)
2014-04-29 03:24:31 +02:00
{
if (this.energyType == energyValue.getEnergyType())
2014-04-29 03:24:31 +02:00
{
return Float.compare(this.energyValue, energyValue.getEnergyValue());
2014-04-29 03:24:31 +02:00
}
else
2014-04-29 03:24:31 +02:00
{
return (this.energyType.ordinal() - energyValue.getEnergyType().ordinal());
2014-04-29 03:24:31 +02:00
}
}
else
2014-04-29 03:24:31 +02:00
{
return -1;
2014-04-29 03:24:31 +02:00
}
}
public EnergyType getEnergyType()
2014-04-29 03:24:31 +02:00
{
return this.energyType;
2014-04-29 03:24:31 +02:00
}
public float getEnergyValue()
2014-04-29 03:24:31 +02:00
{
return this.energyValue;
2014-04-29 03:24:31 +02:00
}
public static enum EnergyType
2014-04-29 03:24:31 +02:00
{
2014-07-14 20:12:14 +02:00
CORPOREAL, KINETIC, TEMPORAL, ESSENTIA, AMORPHOUS, VOID, OMNI;
public static final EnergyType DEFAULT = EnergyType.CORPOREAL;
2014-04-29 03:24:31 +02:00
}
}