From 6c141e3841418eb51b06478e41f2987c2d4c3117 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Thu, 27 Jun 2024 22:41:47 -0500 Subject: [PATCH] ok this one is a pretty big bug; restructured some radar compat. --- .../machine/TileEntityMachineRadarNT.java | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index 9a4419d02..99e87371a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -650,27 +650,35 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] isIndexPlayer(Context context, Arguments args) { - int index = args.checkInteger(0); - RadarEntry e = entries.get(0); + int index = args.checkInteger(0) - 1; + if(index > entries.size() || index < 0) { + return new Object[] {null, "No entity exists at that index."}; + } + RadarEntry e = entries.get(index); return new Object[] {e.blipLevel == IRadarDetectableNT.PLAYER}; } @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getIndexType(Context context, Arguments args) { - int index = args.checkInteger(0); - RadarEntry e = entries.get(0); + int index = args.checkInteger(0) - 1; + if(index > entries.size() || index < 0) { + return new Object[] {null, "No entity exists at that index."}; + } + RadarEntry e = entries.get(index); return new Object[] {e.blipLevel}; } @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getEntityAtIndex(Context context, Arguments args) { - int index = args.checkInteger(0); - RadarEntry e = entries.get(0); - boolean isPlayer = (boolean)this.isIndexPlayer(context, args)[0]; - int type = (int)this.getIndexType(context, args)[0]; - if(isPlayer) { + int index = args.checkInteger(0) - 1; + if(index > entries.size() || index < 0) { + return new Object[] {null, "No entity exists at that index."}; + } + RadarEntry e = entries.get(index); + int type = e.blipLevel; + if(e.blipLevel == IRadarDetectableNT.PLAYER) { return new Object[]{true, e.posX, e.posY, e.posZ, type, e.unlocalizedName}; } return new Object[]{false, e.posX, e.posY, e.posZ, type};