Added error message like missing upgrade to projector LUA properties
This commit is contained in:
parent
6d1cf48fd1
commit
8698d367c3
2 changed files with 30 additions and 8 deletions
|
@ -31,7 +31,6 @@ import li.cil.oc.api.network.Visibility;
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -359,6 +358,7 @@ public abstract class TileEntityAbstractInterfaced extends TileEntityAbstractBas
|
||||||
@Nonnull
|
@Nonnull
|
||||||
protected Object[] computer_getOrSetVector3(@Nonnull final FunctionGet<Vector3> getVector,
|
protected Object[] computer_getOrSetVector3(@Nonnull final FunctionGet<Vector3> getVector,
|
||||||
@Nonnull final FunctionSetVector<Float> setVector,
|
@Nonnull final FunctionSetVector<Float> setVector,
|
||||||
|
@Nonnull final TileEntityAbstractBase.UpgradeSlot upgradeSlot,
|
||||||
final Object[] arguments) {
|
final Object[] arguments) {
|
||||||
if ( arguments != null
|
if ( arguments != null
|
||||||
&& arguments.length > 0
|
&& arguments.length > 0
|
||||||
|
@ -389,7 +389,11 @@ public abstract class TileEntityAbstractInterfaced extends TileEntityAbstractBas
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
final Vector3 v3Actual = getVector.apply();
|
final Vector3 v3Actual = getVector.apply();
|
||||||
return new Double[] { v3Actual.x, v3Actual.y, v3Actual.z };
|
if (hasUpgrade(upgradeSlot)) {
|
||||||
|
return new Double[] { v3Actual.x, v3Actual.y, v3Actual.z };
|
||||||
|
} else {
|
||||||
|
return new Object[] { v3Actual.x, v3Actual.y, v3Actual.z, "Missing " + upgradeSlot.itemStack.getDisplayName() };
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected UUID computer_getUUID(final UUID uuidDefault, @Nonnull final Object[] arguments) {
|
protected UUID computer_getUUID(final UUID uuidDefault, @Nonnull final Object[] arguments) {
|
||||||
|
|
|
@ -836,7 +836,12 @@ public class TileEntityForceFieldProjector extends TileEntityAbstractForceField
|
||||||
}
|
}
|
||||||
|
|
||||||
public Vector3 getMin() {
|
public Vector3 getMin() {
|
||||||
return v3Min;
|
assert EnumForceFieldUpgrade.RANGE.getProjectorUpgradeSlot() != null;
|
||||||
|
if (hasUpgrade(EnumForceFieldUpgrade.RANGE.getProjectorUpgradeSlot())) {
|
||||||
|
return v3Min;
|
||||||
|
} else {
|
||||||
|
return new Vector3(-1.0D, -1.0D, -1.0D);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setMin(final float x, final float y, final float z) {
|
private void setMin(final float x, final float y, final float z) {
|
||||||
|
@ -844,7 +849,12 @@ public class TileEntityForceFieldProjector extends TileEntityAbstractForceField
|
||||||
}
|
}
|
||||||
|
|
||||||
public Vector3 getMax() {
|
public Vector3 getMax() {
|
||||||
return v3Max;
|
assert EnumForceFieldUpgrade.RANGE.getProjectorUpgradeSlot() != null;
|
||||||
|
if (hasUpgrade(EnumForceFieldUpgrade.RANGE.getProjectorUpgradeSlot())) {
|
||||||
|
return v3Max;
|
||||||
|
} else {
|
||||||
|
return new Vector3( 1.0D, 1.0D, 1.0D);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setMax(final float x, final float y, final float z) {
|
private void setMax(final float x, final float y, final float z) {
|
||||||
|
@ -1110,11 +1120,13 @@ public class TileEntityForceFieldProjector extends TileEntityAbstractForceField
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object[] min(final Object[] arguments) {
|
public Object[] min(final Object[] arguments) {
|
||||||
return computer_getOrSetVector3(this::getMin, this::setMin, arguments);
|
assert EnumForceFieldUpgrade.RANGE.getProjectorUpgradeSlot() != null;
|
||||||
|
return computer_getOrSetVector3(this::getMin, this::setMin, EnumForceFieldUpgrade.RANGE.getProjectorUpgradeSlot(), arguments);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object[] max(final Object[] arguments) {
|
public Object[] max(final Object[] arguments) {
|
||||||
return computer_getOrSetVector3(this::getMax, this::setMax, arguments);
|
assert EnumForceFieldUpgrade.RANGE.getProjectorUpgradeSlot() != null;
|
||||||
|
return computer_getOrSetVector3(this::getMax, this::setMax, EnumForceFieldUpgrade.RANGE.getProjectorUpgradeSlot(), arguments);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object[] rotation(final Object[] arguments) {
|
public Object[] rotation(final Object[] arguments) {
|
||||||
|
@ -1145,11 +1157,17 @@ public class TileEntityForceFieldProjector extends TileEntityAbstractForceField
|
||||||
return new Object[] { rotationYaw, rotationPitch, rotationRoll, message };
|
return new Object[] { rotationYaw, rotationPitch, rotationRoll, message };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new Float[] { rotationYaw, rotationPitch, rotationRoll };
|
assert EnumForceFieldUpgrade.ROTATION.getProjectorUpgradeSlot() != null;
|
||||||
|
if (hasUpgrade(EnumForceFieldUpgrade.ROTATION.getProjectorUpgradeSlot())) {
|
||||||
|
return new Float[] { rotationYaw, rotationPitch, rotationRoll };
|
||||||
|
} else {
|
||||||
|
return new Object[] { 0.0F, 0.0F, 0.0F, "Missing " + EnumForceFieldUpgrade.ROTATION.getProjectorUpgradeSlot().itemStack.getDisplayName() };
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object[] translation(final Object[] arguments) {
|
public Object[] translation(final Object[] arguments) {
|
||||||
return computer_getOrSetVector3(this::getTranslation, this::setTranslation, arguments);
|
assert EnumForceFieldUpgrade.TRANSLATION.getProjectorUpgradeSlot() != null;
|
||||||
|
return computer_getOrSetVector3(this::getTranslation, this::setTranslation, EnumForceFieldUpgrade.TRANSLATION.getProjectorUpgradeSlot(), arguments);
|
||||||
}
|
}
|
||||||
|
|
||||||
// OpenComputers callback methods
|
// OpenComputers callback methods
|
||||||
|
|
Loading…
Reference in a new issue