Update TileEntityCoreEmitter.java

This commit is contained in:
Voxelstice 2022-05-13 16:16:01 +10:00 committed by GitHub
parent dec5e80e0f
commit 65276ac0b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -24,7 +24,14 @@ import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, ILaserable, IFluidStandardReceiver {
import cpw.mods.fml.common.Optional;
import li.cil.oc.api.machine.Arguments;
import li.cil.oc.api.machine.Callback;
import li.cil.oc.api.machine.Context;
import li.cil.oc.api.network.SimpleComponent;
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, ILaserable, IFluidStandardReceiver, SimpleComponent {
public long power;
public static final long maxPower = 1000000000L;
@ -287,4 +294,58 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne
public FluidTank[] getReceivingTanks() {
return new FluidTank[] {tank};
}
// do some opencomputer stuff
@Override
public String getComponentName() {
return "dfc_emitter";
}
@Callback
@Optional.Method(modid = "OpenComputers")
public Object[] getEnergyStored(Context context, Arguments args) {
return new Object[] {getPower()};
}
@Callback
@Optional.Method(modid = "OpenComputers")
public Object[] getMaxEnergy(Context context, Arguments args) {
return new Object[] {getMaxPower()};
}
@Callback
@Optional.Method(modid = "OpenComputers")
public Object[] getCryogel(Context context, Arguments args) {
return new Object[] {tank.getFill()};
}
@Callback
@Optional.Method(modid = "OpenComputers")
public Object[] getInput(Context context, Arguments args) {
return new Object[] {watts};
}
@Callback
@Optional.Method(modid = "OpenComputers")
public Object[] isActive(Context context, Arguments args) {
return new Object[] {isOn};
}
@Callback
@Optional.Method(modid = "OpenComputers")
public Object[] setActive(Context context, Arguments args) {
isOn = Boolean.parseBoolean(args.checkString(0));
return new Object[] {};
}
@Callback
@Optional.Method(modid = "OpenComputers")
public Object[] setInput(Context context, Arguments args) {
int newOutput = Integer.parseInt(args.checkString(0));
if (newOutput > 100) {
newOutput = 100;
}
watts = newOutput;
return new Object[] {};
}
}