2018-10-21 12:51:13 +02:00
|
|
|
package de.ellpeck.naturesaura.aura.container;
|
2018-10-14 14:27:18 +02:00
|
|
|
|
2018-10-21 12:51:13 +02:00
|
|
|
import de.ellpeck.naturesaura.aura.container.IAuraContainer;
|
2018-10-14 14:27:18 +02:00
|
|
|
import net.minecraft.nbt.NBTTagCompound;
|
|
|
|
|
|
|
|
public class BasicAuraContainer implements IAuraContainer {
|
|
|
|
|
|
|
|
protected final int maxAura;
|
2018-10-20 21:19:08 +02:00
|
|
|
protected final boolean artificial;
|
2018-10-14 14:27:18 +02:00
|
|
|
protected int aura;
|
|
|
|
|
2018-10-20 21:19:08 +02:00
|
|
|
public BasicAuraContainer(int maxAura, boolean artificial) {
|
2018-10-14 14:27:18 +02:00
|
|
|
this.maxAura = maxAura;
|
2018-10-20 21:19:08 +02:00
|
|
|
this.artificial = artificial;
|
2018-10-14 14:27:18 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int storeAura(int amountToStore, boolean simulate) {
|
|
|
|
int actual = Math.min(amountToStore, this.maxAura - this.aura);
|
|
|
|
if (!simulate) {
|
|
|
|
this.aura += actual;
|
|
|
|
}
|
|
|
|
return actual;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int drainAura(int amountToDrain, boolean simulate) {
|
|
|
|
int actual = Math.min(amountToDrain, this.aura);
|
|
|
|
if (!simulate) {
|
|
|
|
this.aura -= actual;
|
|
|
|
}
|
|
|
|
return actual;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int getStoredAura() {
|
|
|
|
return this.aura;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int getMaxAura() {
|
|
|
|
return this.maxAura;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int getAuraColor() {
|
2018-10-18 19:08:15 +02:00
|
|
|
return 0x1E891E;
|
2018-10-14 14:27:18 +02:00
|
|
|
}
|
|
|
|
|
2018-10-20 21:19:08 +02:00
|
|
|
@Override
|
|
|
|
public boolean isArtificial() {
|
|
|
|
return this.artificial;
|
|
|
|
}
|
|
|
|
|
2018-10-14 14:27:18 +02:00
|
|
|
public void writeNBT(NBTTagCompound compound) {
|
|
|
|
compound.setInteger("aura", this.aura);
|
|
|
|
}
|
|
|
|
|
|
|
|
public void readNBT(NBTTagCompound compound) {
|
|
|
|
this.aura = compound.getInteger("aura");
|
|
|
|
}
|
|
|
|
}
|