Added a bit more OC compat, along with individual OC fields for grabbing singular fields.

This commit is contained in:
BallOfEnergy1 2023-03-14 17:12:56 -05:00
parent edb94e966f
commit a2b798c1e2
4 changed files with 64 additions and 2 deletions

View File

@ -151,9 +151,27 @@ public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidAc
return "rbmk_cooler"; return "rbmk_cooler";
} }
@Callback
@Optional.Method(modid = "OpenComputers")
public Object[] getHeat(Context context, Arguments args) {
return new Object[]{heat};
}
@Callback
@Optional.Method(modid = "OpenComputers")
public Object[] getCryo(Context context, Arguments args) {
return new Object[]{tank.getFill()};
}
@Callback
@Optional.Method(modid = "OpenComputers")
public Object[] getCryoMax(Context context, Arguments args) {
return new Object[]{tank.getMaxFill()};
}
@Callback @Callback
@Optional.Method(modid = "OpenComputers") @Optional.Method(modid = "OpenComputers")
public Object[] getInfo(Context context, Arguments args) { public Object[] getInfo(Context context, Arguments args) {
return new Object[]{heat, tank.getMaxFill(), tank.getFill()}; return new Object[]{heat, tank.getFill(), tank.getMaxFill()};
} }
} }

View File

@ -27,8 +27,14 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World; import net.minecraft.world.World;
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;
public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements IFluidAcceptor, IFluidSource, IFluidStandardTransceiver { @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")})
public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, SimpleComponent {
public FluidTank feed; public FluidTank feed;
public FluidTank steam; public FluidTank steam;
@ -268,6 +274,19 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I
return new FluidTank[] {feed}; return new FluidTank[] {feed};
} }
//opencomputers stuff
@Override
public String getComponentName() {
return "rbmk_control_rod";
}
@Callback
@Optional.Method(modid = "OpenComputers")
public Object[] getInfo(Context context, Arguments args) {
return new Object[] {heat, feed.getFill(), feed.getMaxFill(), steam.getFill(), steam.getMaxFill(), feed.getTankType().getID(), steam.getTankType().getID()};
}
@Override @Override
public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new ContainerRBMKHeater(player.inventory, this); return new ContainerRBMKHeater(player.inventory, this);

View File

@ -226,6 +226,25 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement
public String getComponentName() { public String getComponentName() {
return "rbmk_outgasser"; return "rbmk_outgasser";
} }
@Callback
@Optional.Method(modid = "OpenComputers")
public Object[] getGas(Context context, Arguments args) {
return new Object[] {gas.getFill()};
}
@Callback
@Optional.Method(modid = "OpenComputers")
public Object[] getGasMax(Context context, Arguments args) {
return new Object[] {gas.getMaxFill()};
}
@Callback
@Optional.Method(modid = "OpenComputers")
public Object[] getProgress(Context context, Arguments args) {
return new Object[] {progress};
}
@Callback @Callback
@Optional.Method(modid = "OpenComputers") @Optional.Method(modid = "OpenComputers")
public Object[] getInfo(Context context, Arguments args) { public Object[] getInfo(Context context, Arguments args) {

View File

@ -388,6 +388,12 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I
return new Object[] {getMaxPower()}; return new Object[] {getMaxPower()};
} }
@Callback
@Optional.Method(modid = "OpenComputers")
public Object[] getInfo(Context context, Arguments args) {
return new Object[] {getPower(), getMaxPower()};
}
@Override @Override
public void writeNBT(NBTTagCompound nbt) { public void writeNBT(NBTTagCompound nbt) {
NBTTagCompound data = new NBTTagCompound(); NBTTagCompound data = new NBTTagCompound();