Change mode behaviour

This commit is contained in:
Raoul Van den Berge
2016-05-22 01:25:16 +02:00
parent 177cca2542
commit 539ed3f445
11 changed files with 63 additions and 118 deletions

View File

@@ -3,6 +3,17 @@
### 0.6.11
**Bugfixes**
- Fixed crafting patterns crashing when item of an input or output no longer exists
- Fixed importer / exporter / crafter not being able to interact with some inventories
**NOTE: Backwards incompatible changes**
Machines that can be whitelisted or blacklisted are now blacklisted by default.
Machines used to work with an empty whitelist, now they don't anymore. They now just work with an empty blacklist.
That means all machines with default empty whitelists from the previous version will no longer work.
If you want to have the old behaviour back, change the machine to be in blacklist mode.
### 0.6.10
**Bugfixes**

View File

@@ -5,6 +5,7 @@ import refinedstorage.RefinedStorage;
import refinedstorage.gui.GuiBase;
import refinedstorage.network.MessageModeToggle;
import refinedstorage.tile.config.IModeConfig;
import refinedstorage.tile.config.ModeConstants;
public class SideButtonMode extends SideButton {
private IModeConfig config;
@@ -15,7 +16,7 @@ public class SideButtonMode extends SideButton {
@Override
public String getTooltip(GuiBase gui) {
return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:mode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:mode." + (config.isWhitelist() ? "whitelist" : "blacklist"));
return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:mode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:mode." + (config.getMode() == ModeConstants.WHITELIST ? "whitelist" : "blacklist"));
}
@Override
@@ -24,9 +25,9 @@ public class SideButtonMode extends SideButton {
int tx = 0;
if (config.isWhitelist()) {
if (config.getMode() == ModeConstants.WHITELIST) {
tx = 0;
} else if (config.isBlacklist()) {
} else if (config.getMode() == ModeConstants.WHITELIST) {
tx = 16;
}

View File

@@ -6,6 +6,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import refinedstorage.tile.config.IModeConfig;
import refinedstorage.tile.config.ModeConstants;
public class MessageModeToggle extends MessageHandlerPlayerToServer<MessageModeToggle> implements IMessage {
private int x;
@@ -42,10 +43,10 @@ public class MessageModeToggle extends MessageHandlerPlayerToServer<MessageModeT
if (tile instanceof IModeConfig) {
IModeConfig mode = (IModeConfig) tile;
if (mode.isWhitelist()) {
mode.setToBlacklist();
} else if (mode.isBlacklist()) {
mode.setToWhitelist();
if (mode.getMode() == ModeConstants.WHITELIST) {
mode.setMode(ModeConstants.BLACKLIST);
} else {
mode.setMode(ModeConstants.WHITELIST);
}
}
}

View File

@@ -15,6 +15,7 @@ import refinedstorage.container.ContainerDestructor;
import refinedstorage.inventory.InventorySimple;
import refinedstorage.tile.config.ICompareConfig;
import refinedstorage.tile.config.IModeConfig;
import refinedstorage.tile.config.ModeConstants;
import refinedstorage.tile.config.ModeFilter;
import java.util.List;
@@ -29,7 +30,7 @@ public class TileDestructor extends TileMachine implements ICompareConfig, IMode
private InventorySimple upgradesInventory = new InventorySimple("upgrades", 4, this);
private int compare = 0;
private int mode = 0;
private int mode = ModeConstants.BLACKLIST;
@Override
public int getEnergyUsage() {
@@ -77,27 +78,13 @@ public class TileDestructor extends TileMachine implements ICompareConfig, IMode
}
@Override
public boolean isWhitelist() {
return mode == 0;
public int getMode() {
return mode;
}
@Override
public boolean isBlacklist() {
return mode == 1;
}
@Override
public void setToWhitelist() {
markDirty();
this.mode = 0;
}
@Override
public void setToBlacklist() {
markDirty();
this.mode = 1;
public void setMode(int mode) {
this.mode = mode;
}
@Override

View File

@@ -18,6 +18,7 @@ import refinedstorage.storage.*;
import refinedstorage.tile.config.ICompareConfig;
import refinedstorage.tile.config.IModeConfig;
import refinedstorage.tile.config.IRedstoneModeConfig;
import refinedstorage.tile.config.ModeConstants;
import java.util.List;
@@ -33,7 +34,7 @@ public class TileDiskDrive extends TileMachine implements IStorageProvider, ISto
private int priority = 0;
private int compare = 0;
private int mode = 0;
private int mode = ModeConstants.BLACKLIST;
public NBTStorage getStorage(int slot) {
if (inventory.getStackInSlot(slot) == null) {
@@ -149,27 +150,13 @@ public class TileDiskDrive extends TileMachine implements IStorageProvider, ISto
}
@Override
public boolean isWhitelist() {
return mode == 0;
public int getMode() {
return mode;
}
@Override
public boolean isBlacklist() {
return mode == 1;
}
@Override
public void setToWhitelist() {
markDirty();
this.mode = 0;
}
@Override
public void setToBlacklist() {
markDirty();
this.mode = 1;
public void setMode(int mode) {
this.mode = mode;
}
@Override

View File

@@ -17,10 +17,7 @@ import refinedstorage.storage.IStorage;
import refinedstorage.storage.IStorageGui;
import refinedstorage.storage.IStorageProvider;
import refinedstorage.storage.ItemGroup;
import refinedstorage.tile.config.ICompareConfig;
import refinedstorage.tile.config.IModeConfig;
import refinedstorage.tile.config.IRedstoneModeConfig;
import refinedstorage.tile.config.ModeFilter;
import refinedstorage.tile.config.*;
import java.util.List;
@@ -33,7 +30,7 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider
private int priority = 0;
private int compare = 0;
private int mode = 0;
private int mode = ModeConstants.BLACKLIST;
private int stored = 0;
@@ -256,27 +253,13 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider
}
@Override
public boolean isWhitelist() {
return mode == 0;
public int getMode() {
return mode;
}
@Override
public boolean isBlacklist() {
return mode == 1;
}
@Override
public void setToWhitelist() {
markDirty();
this.mode = 0;
}
@Override
public void setToBlacklist() {
markDirty();
this.mode = 1;
public void setMode(int mode) {
this.mode = mode;
}
@Override

View File

@@ -11,6 +11,7 @@ import refinedstorage.container.ContainerImporter;
import refinedstorage.inventory.InventorySimple;
import refinedstorage.tile.config.ICompareConfig;
import refinedstorage.tile.config.IModeConfig;
import refinedstorage.tile.config.ModeConstants;
public class TileImporter extends TileMachine implements ICompareConfig, IModeConfig {
public static final String NBT_COMPARE = "Compare";
@@ -20,7 +21,7 @@ public class TileImporter extends TileMachine implements ICompareConfig, IModeCo
private InventorySimple upgradesInventory = new InventorySimple("upgrades", 4, this);
private int compare = 0;
private int mode = 0;
private int mode = ModeConstants.BLACKLIST;
private int currentSlot;
@@ -66,17 +67,16 @@ public class TileImporter extends TileMachine implements ICompareConfig, IModeCo
slots++;
if (RefinedStorageUtils.compareStack(stack, slot, compare)) {
if (isWhitelist()) {
if (mode == ModeConstants.WHITELIST) {
return true;
} else if (isBlacklist()) {
} else if (mode == ModeConstants.BLACKLIST) {
return false;
}
}
}
}
// @todo: this should be isBlacklist
return isWhitelist() ? (slots == 0) : true;
return mode == ModeConstants.BLACKLIST ? (slots == 0) : true;
}
@Override
@@ -92,27 +92,13 @@ public class TileImporter extends TileMachine implements ICompareConfig, IModeCo
}
@Override
public boolean isWhitelist() {
return mode == 0;
public int getMode() {
return mode;
}
@Override
public boolean isBlacklist() {
return mode == 1;
}
@Override
public void setToWhitelist() {
markDirty();
this.mode = 0;
}
@Override
public void setToBlacklist() {
markDirty();
this.mode = 1;
public void setMode(int mode) {
this.mode = mode;
}
@Override

View File

@@ -16,6 +16,7 @@ import refinedstorage.storage.*;
import refinedstorage.tile.config.ICompareConfig;
import refinedstorage.tile.config.IModeConfig;
import refinedstorage.tile.config.IRedstoneModeConfig;
import refinedstorage.tile.config.ModeConstants;
import java.util.List;
@@ -33,7 +34,7 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora
private int priority = 0;
private int compare = 0;
private int mode = 0;
private int mode = ModeConstants.BLACKLIST;
private int stored;
@Override
@@ -143,27 +144,13 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora
}
@Override
public boolean isWhitelist() {
return mode == 0;
public int getMode() {
return mode;
}
@Override
public boolean isBlacklist() {
return mode == 1;
}
@Override
public void setToWhitelist() {
markDirty();
this.mode = 0;
}
@Override
public void setToBlacklist() {
markDirty();
this.mode = 1;
public void setMode(int mode) {
this.mode = mode;
}
@Override

View File

@@ -3,13 +3,9 @@ package refinedstorage.tile.config;
import net.minecraft.util.math.BlockPos;
public interface IModeConfig {
boolean isWhitelist();
void setMode(int mode);
boolean isBlacklist();
void setToWhitelist();
void setToBlacklist();
int getMode();
BlockPos getMachinePos();
}

View File

@@ -0,0 +1,6 @@
package refinedstorage.tile.config;
public class ModeConstants {
public static final int BLACKLIST = 0;
public static final int WHITELIST = 1;
}

View File

@@ -6,7 +6,7 @@ import refinedstorage.RefinedStorageUtils;
public class ModeFilter {
public static boolean respectsMode(IInventory filters, IModeConfig mode, int compare, ItemStack stack) {
if (mode.isWhitelist()) {
if (mode.getMode() == ModeConstants.WHITELIST) {
int slots = 0;
for (int i = 0; i < filters.getSizeInventory(); ++i) {
@@ -22,7 +22,7 @@ public class ModeFilter {
}
return slots == 0;
} else if (mode.isBlacklist()) {
} else if (mode.getMode() == ModeConstants.BLACKLIST) {
for (int i = 0; i < filters.getSizeInventory(); ++i) {
ItemStack slot = filters.getStackInSlot(i);