fix detectors.. NEXT!

This commit is contained in:
Raoul Van den Berge
2015-12-21 20:38:33 +01:00
parent a1a014d0c5
commit 81ee8cf7af
8 changed files with 90 additions and 29 deletions

View File

@@ -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);
}
}
}

View File

@@ -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