rbmk crane that only moves

the load function needs fixing as it doesnt work in opencopmuters :pain:
This commit is contained in:
Voxelstice 2022-05-14 21:11:07 +10:00 committed by GitHub
parent c41244da58
commit 415b81f022
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -23,7 +23,14 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MathHelper;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityCraneConsole extends TileEntity implements INBTPacketReceiver {
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 TileEntityCraneConsole extends TileEntity implements INBTPacketReceiver, SimpleComponent {
public int centerX;
public int centerY;
@ -327,4 +334,64 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece
public double getMaxRenderDistanceSquared() {
return 65536.0D;
}
// do some opencomputer stuff
@Override
public String getComponentName() {
return "rbmk_crane";
}
@Callback
@Optional.Method(modid = "OpenComputers")
public Object[] move(Context context, Arguments args) {
if (setUpCrane == true) {
String textbruh = args.checkString(0);
switch(textbruh) {
case "up":
tiltFront = 30;
if(!worldObj.isRemote) posFront += speed;
case "down":
tiltFront = -30;
if(!worldObj.isRemote) posFront -= speed;
case "left":
tiltLeft = 30;
if(!worldObj.isRemote) posLeft += speed;
case "right":
tiltLeft = -30;
if(!worldObj.isRemote) posLeft -= speed;
}
return new Object[] {};
}
return new Object[] {"Crane not found"};
}
@Callback
@Optional.Method(modid = "OpenComputers")
public Object[] load(Context context, Arguments args) {
if (setUpCrane == true) {
goesDown = true;
return new Object[] {};
}
return new Object[] {"Crane not found"};
}
@Callback
@Optional.Method(modid = "OpenComputers")
public Object[] getDepletion(Context context, Arguments args) {
if(loadedItem != null && loadedItem.getItem() instanceof ItemRBMKRod) {
return new Object[] {ItemRBMKRod.getEnrichment(loadedItem)};
}
return new Object[] {"N/A"};
}
@Callback
@Optional.Method(modid = "OpenComputers")
public Object[] getXenonPoison(Context context, Arguments args) {
if(loadedItem != null && loadedItem.getItem() instanceof ItemRBMKRod) {
return new Object[] {ItemRBMKRod.getPoison(loadedItem)};
}
return new Object[] {"N/A"};
}
}