Init
This commit is contained in:
commit
29d90d0e5b
58
ley/anvil/api/energy/CommonType.java
Normal file
58
ley/anvil/api/energy/CommonType.java
Normal file
|
@ -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";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
9
ley/anvil/api/energy/IDirectionalEnergy.java
Normal file
9
ley/anvil/api/energy/IDirectionalEnergy.java
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
package ley.anvil.api.energy;
|
||||||
|
|
||||||
|
import net.minecraft.util.EnumFacing;
|
||||||
|
|
||||||
|
public interface IDirectionalEnergy<T extends IEnergy> {
|
||||||
|
|
||||||
|
T getEnergy(EnumFacing side);
|
||||||
|
|
||||||
|
}
|
78
ley/anvil/api/energy/IEnergy.java
Normal file
78
ley/anvil/api/energy/IEnergy.java
Normal file
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
15
ley/anvil/api/energy/IEnergyType.java
Normal file
15
ley/anvil/api/energy/IEnergyType.java
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
6
ley/anvil/api/energy/common/EnumDirection.java
Normal file
6
ley/anvil/api/energy/common/EnumDirection.java
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
package ley.anvil.api.energy.common;
|
||||||
|
|
||||||
|
public enum EnumDirection {
|
||||||
|
CLOCKWISE,
|
||||||
|
COUNTERCLOCKWISE;
|
||||||
|
}
|
19
ley/anvil/api/energy/common/IElectrical.java
Normal file
19
ley/anvil/api/energy/common/IElectrical.java
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
19
ley/anvil/api/energy/common/IHeat.java
Normal file
19
ley/anvil/api/energy/common/IHeat.java
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
23
ley/anvil/api/energy/common/IRotational.java
Normal file
23
ley/anvil/api/energy/common/IRotational.java
Normal file
|
@ -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 a new issue