Init
This commit is contained in:
commit
29d90d0e5b
|
@ -0,0 +1,58 @@
|
|||
package ley.anvil.api.energy;
|
||||
|
||||
import ley.anvil.api.energy.common.IElectrical;
|
||||
import ley.anvil.api.energy.common.IHeat;
|
||||
import ley.anvil.api.energy.common.IRotational;
|
||||
|
||||
public enum CommonType implements IEnergyType {
|
||||
FLUX {
|
||||
@Override
|
||||
public String getID() {
|
||||
return "flux";
|
||||
}
|
||||
},
|
||||
ELECTRIC {
|
||||
@Override
|
||||
public String getID() {
|
||||
return "electric";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends IEnergy> getInterface() {
|
||||
return IElectrical.class;
|
||||
}
|
||||
},
|
||||
HEAT {
|
||||
@Override
|
||||
public String getID() {
|
||||
return "heat";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends IEnergy> getInterface() {
|
||||
return IHeat.class;
|
||||
}
|
||||
},
|
||||
ROTATION {
|
||||
@Override
|
||||
public String getID() {
|
||||
return "rotation";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends IEnergy> getInterface() {
|
||||
return IRotational.class;
|
||||
}
|
||||
},
|
||||
MANA {
|
||||
@Override
|
||||
public String getID() {
|
||||
return "mana";
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
package ley.anvil.api.energy;
|
||||
|
||||
import net.minecraft.util.EnumFacing;
|
||||
|
||||
public interface IDirectionalEnergy<T extends IEnergy> {
|
||||
|
||||
T getEnergy(EnumFacing side);
|
||||
|
||||
}
|
|
@ -0,0 +1,78 @@
|
|||
package ley.anvil.api.energy;
|
||||
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraftforge.energy.IEnergyStorage;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public interface IEnergy /*Forge Specific*/extends IEnergyStorage {
|
||||
|
||||
IEnergyType getType();
|
||||
|
||||
default IEnergyType[] getTypes() {
|
||||
return new IEnergyType[] {getType()};
|
||||
}
|
||||
|
||||
long getCapacity();
|
||||
|
||||
long getStored();
|
||||
|
||||
void setStored(long energy);
|
||||
|
||||
long getOutputPower(IEnergyType type);
|
||||
|
||||
long getInputPower(IEnergyType type);
|
||||
|
||||
long insertEnergy(long energy, IEnergyType type, boolean simulate);
|
||||
|
||||
long extractEnergy(long energy, IEnergyType type, boolean simulate);
|
||||
|
||||
boolean canInput(IEnergyType type);
|
||||
|
||||
boolean canOutput(IEnergyType type);
|
||||
|
||||
@Deprecated
|
||||
default long getOutputPower(IEnergyType type, @Nullable EnumFacing to) {return getOutputPower(type);}
|
||||
@Deprecated
|
||||
default long getInputPower(IEnergyType type, @Nullable EnumFacing to) {return getInputPower(type);}
|
||||
@Deprecated
|
||||
default long insertEnergy(long energy, IEnergyType type, @Nullable EnumFacing from, boolean simulate) {return insertEnergy(energy,type, simulate);}
|
||||
@Deprecated
|
||||
default long extractEnergy(long energy, IEnergyType type, @Nullable EnumFacing from, boolean simulate) {return extractEnergy(energy, type, simulate);}
|
||||
@Deprecated
|
||||
default boolean canInput(IEnergyType type, @Nullable EnumFacing from) {return canInput(type);}
|
||||
@Deprecated
|
||||
default boolean canOutput(IEnergyType type, @Nullable EnumFacing to) {return canOutput(type);}
|
||||
|
||||
//Forge Specific
|
||||
|
||||
@Override
|
||||
default int receiveEnergy(int maxReceive, boolean simulate) {
|
||||
return (int) insertEnergy(maxReceive, CommonType.FLUX, simulate);
|
||||
}
|
||||
|
||||
@Override
|
||||
default int extractEnergy(int maxExtract, boolean simulate) {
|
||||
return (int) extractEnergy(maxExtract, CommonType.FLUX, simulate);
|
||||
}
|
||||
|
||||
@Override
|
||||
default int getEnergyStored() {
|
||||
return (int) getStored();
|
||||
}
|
||||
|
||||
@Override
|
||||
default int getMaxEnergyStored() {
|
||||
return (int) getCapacity();
|
||||
}
|
||||
|
||||
@Override
|
||||
default boolean canExtract() {
|
||||
return canOutput(CommonType.FLUX);
|
||||
}
|
||||
|
||||
@Override
|
||||
default boolean canReceive() {
|
||||
return canInput(CommonType.FLUX);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
package ley.anvil.api.energy;
|
||||
|
||||
public interface IEnergyType {
|
||||
|
||||
String getID();
|
||||
|
||||
default boolean equals(IEnergyType o) {
|
||||
return getID().equals(o.getID());
|
||||
}
|
||||
|
||||
default Class<? extends IEnergy> getInterface() {
|
||||
return IEnergy.class;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
package ley.anvil.api.energy.common;
|
||||
|
||||
public enum EnumDirection {
|
||||
CLOCKWISE,
|
||||
COUNTERCLOCKWISE;
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package ley.anvil.api.energy.common;
|
||||
|
||||
import ley.anvil.api.energy.CommonType;
|
||||
import ley.anvil.api.energy.IEnergy;
|
||||
import ley.anvil.api.energy.IEnergyType;
|
||||
|
||||
public interface IElectrical extends IEnergy {
|
||||
|
||||
int getVoltage();
|
||||
|
||||
long insertCharge(long charge, int voltage);
|
||||
|
||||
int getMaxVoltage();
|
||||
|
||||
@Override
|
||||
default IEnergyType getType() {
|
||||
return CommonType.ELECTRIC;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package ley.anvil.api.energy.common;
|
||||
|
||||
import ley.anvil.api.energy.CommonType;
|
||||
import ley.anvil.api.energy.IEnergy;
|
||||
import ley.anvil.api.energy.IEnergyType;
|
||||
|
||||
public interface IHeat extends IEnergy {
|
||||
|
||||
int getTemperature();
|
||||
|
||||
void addTemperature(int temp);
|
||||
|
||||
void removeTemperature(int temp);
|
||||
|
||||
@Override
|
||||
default IEnergyType getType() {
|
||||
return CommonType.HEAT;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package ley.anvil.api.energy.common;
|
||||
|
||||
import ley.anvil.api.energy.CommonType;
|
||||
import ley.anvil.api.energy.IEnergy;
|
||||
import ley.anvil.api.energy.IEnergyType;
|
||||
|
||||
public interface IRotational extends IEnergy {
|
||||
|
||||
int getTorque();
|
||||
|
||||
int getSpeed();
|
||||
|
||||
void applyTorque(int torque);
|
||||
|
||||
void applySpeed(int speed);
|
||||
|
||||
EnumDirection getDirection();
|
||||
|
||||
@Override
|
||||
default IEnergyType getType() {
|
||||
return CommonType.ROTATION;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue