fix detectors.. NEXT!
This commit is contained in:
@@ -6,6 +6,7 @@ import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.inventory.ISidedInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import storagecraft.StorageCraftBlocks;
|
||||
import storagecraft.inventory.InventorySimple;
|
||||
import storagecraft.storage.StorageItem;
|
||||
import storagecraft.util.InventoryUtils;
|
||||
@@ -27,6 +28,10 @@ public class TileDetector extends TileMachine implements IInventory, ISidedInven
|
||||
|
||||
private boolean providesPower = false;
|
||||
|
||||
public TileDetector() {
|
||||
this.redstoneControlled = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyUsage() {
|
||||
return 4;
|
||||
@@ -37,6 +42,8 @@ public class TileDetector extends TileMachine implements IInventory, ISidedInven
|
||||
if (ticks % 5 == 0) {
|
||||
ItemStack slot = inventory.getStackInSlot(0);
|
||||
|
||||
boolean lastProvidesPower = providesPower;
|
||||
|
||||
if (slot != null) {
|
||||
boolean foundAny = false;
|
||||
|
||||
@@ -55,25 +62,28 @@ public class TileDetector extends TileMachine implements IInventory, ISidedInven
|
||||
providesPower = item.getQuantity() > amount;
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!foundAny) {
|
||||
switch (mode) {
|
||||
case MODE_UNDER:
|
||||
providesPower = amount != 0;
|
||||
break;
|
||||
case MODE_EQUAL:
|
||||
providesPower = amount == 0;
|
||||
break;
|
||||
default:
|
||||
providesPower = false;
|
||||
break;
|
||||
if (mode == MODE_UNDER && amount != 0) {
|
||||
providesPower = true;
|
||||
} else if (mode == MODE_EQUAL && amount == 0) {
|
||||
providesPower = true;
|
||||
} else {
|
||||
providesPower = false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
providesPower = false;
|
||||
}
|
||||
|
||||
if (providesPower != lastProvidesPower) {
|
||||
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
|
||||
worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, StorageCraftBlocks.DETECTOR);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,8 +5,9 @@ import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
public abstract class TileMachine extends TileBase implements INetworkTile, IRedstoneModeSetting {
|
||||
protected boolean connected = false;
|
||||
protected boolean redstoneControlled = true;
|
||||
|
||||
private RedstoneMode redstoneMode = RedstoneMode.LOW;
|
||||
private RedstoneMode redstoneMode = RedstoneMode.IGNORE;
|
||||
|
||||
private int xController;
|
||||
private int yController;
|
||||
@@ -48,7 +49,9 @@ public abstract class TileMachine extends TileBase implements INetworkTile, IRed
|
||||
|
||||
@Override
|
||||
public void setRedstoneMode(RedstoneMode mode) {
|
||||
this.redstoneMode = mode;
|
||||
if (redstoneControlled) {
|
||||
this.redstoneMode = mode;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user