Move compare utils to API
This commit is contained in:
@@ -16,11 +16,9 @@ import net.minecraftforge.items.CapabilityItemHandler;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import net.minecraftforge.items.wrapper.InvWrapper;
|
||||
import net.minecraftforge.items.wrapper.SidedInvWrapper;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import refinedstorage.api.autocrafting.ICraftingPattern;
|
||||
import refinedstorage.api.network.INetworkMaster;
|
||||
import refinedstorage.api.storage.CompareFlags;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
@@ -98,83 +96,6 @@ public final class RefinedStorageUtils {
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean compareStack(ItemStack left, ItemStack right) {
|
||||
return compareStack(left, right, CompareFlags.COMPARE_NBT | CompareFlags.COMPARE_DAMAGE | CompareFlags.COMPARE_QUANTITY);
|
||||
}
|
||||
|
||||
public static boolean compareStack(ItemStack left, ItemStack right, int flags) {
|
||||
if (left == null && right == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ((left == null && right != null) || (left != null && right == null)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (left.getItem() != right.getItem()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((flags & CompareFlags.COMPARE_DAMAGE) == CompareFlags.COMPARE_DAMAGE) {
|
||||
if (left.getItemDamage() != right.getItemDamage()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if ((flags & CompareFlags.COMPARE_NBT) == CompareFlags.COMPARE_NBT) {
|
||||
if (!compareNbt(left, right)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if ((flags & CompareFlags.COMPARE_QUANTITY) == CompareFlags.COMPARE_QUANTITY) {
|
||||
if (left.stackSize != right.stackSize) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean compareNbt(ItemStack left, ItemStack right) {
|
||||
if (!ItemStack.areItemStackTagsEqual(left, right)) {
|
||||
if (left.hasTagCompound() && !right.hasTagCompound() && left.getTagCompound().hasNoTags()) {
|
||||
return true;
|
||||
} else if (!left.hasTagCompound() && right.hasTagCompound() && right.getTagCompound().hasNoTags()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean compareStackNoQuantity(ItemStack left, ItemStack right) {
|
||||
return compareStack(left, right, CompareFlags.COMPARE_NBT | CompareFlags.COMPARE_DAMAGE);
|
||||
}
|
||||
|
||||
public static boolean compareStackOreDict(ItemStack left, ItemStack right) {
|
||||
if (left == null && right == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ((left == null && right != null) || (left != null && right == null)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
int[] leftIds = OreDictionary.getOreIDs(left);
|
||||
int[] rightIds = OreDictionary.getOreIDs(right);
|
||||
|
||||
for (int i : rightIds) {
|
||||
if (ArrayUtils.contains(leftIds, i)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void writeBooleanArray(NBTTagCompound tag, String name, boolean[] array) {
|
||||
int[] intArray = new int[array.length];
|
||||
|
||||
@@ -257,7 +178,7 @@ public final class RefinedStorageUtils {
|
||||
int amount = stacks[i].stackSize;
|
||||
|
||||
for (int j = i + 1; j < stacks.length; ++j) {
|
||||
if (RefinedStorageUtils.compareStack(stacks[i], stacks[j])) {
|
||||
if (CompareUtils.compareStack(stacks[i], stacks[j])) {
|
||||
amount += stacks[j].stackSize;
|
||||
|
||||
combinedIndices.add(j);
|
||||
@@ -288,11 +209,11 @@ public final class RefinedStorageUtils {
|
||||
}
|
||||
|
||||
public static ItemStack extractItem(INetworkMaster network, ItemStack stack, int size) {
|
||||
return network.extractItem(stack, size, CompareFlags.COMPARE_DAMAGE | CompareFlags.COMPARE_NBT);
|
||||
return network.extractItem(stack, size, CompareUtils.COMPARE_DAMAGE | CompareUtils.COMPARE_NBT);
|
||||
}
|
||||
|
||||
public static ICraftingPattern getPattern(INetworkMaster network, ItemStack stack) {
|
||||
return network.getPattern(stack, CompareFlags.COMPARE_DAMAGE | CompareFlags.COMPARE_NBT);
|
||||
return network.getPattern(stack, CompareUtils.COMPARE_DAMAGE | CompareUtils.COMPARE_NBT);
|
||||
}
|
||||
|
||||
public static boolean hasPattern(INetworkMaster network, ItemStack stack) {
|
||||
|
||||
@@ -6,7 +6,7 @@ import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import refinedstorage.api.autocrafting.ICraftingPattern;
|
||||
import refinedstorage.api.autocrafting.ICraftingTask;
|
||||
import refinedstorage.api.storage.CompareFlags;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.api.storage.IGroupedStorage;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
@@ -110,14 +110,14 @@ public interface INetworkMaster {
|
||||
* Returns crafting patterns from an item stack.
|
||||
*
|
||||
* @param pattern The {@link ItemStack} to get a pattern for
|
||||
* @param flags The flags to compare on, see {@link CompareFlags}
|
||||
* @param flags The flags to compare on, see {@link CompareUtils}
|
||||
* @return A list of crafting patterns where the given pattern is one of the outputs
|
||||
*/
|
||||
List<ICraftingPattern> getPatterns(ItemStack pattern, int flags);
|
||||
|
||||
/**
|
||||
* @param pattern The {@link ItemStack} to get a pattern for
|
||||
* @param flags The flags to compare on, see {@link CompareFlags}
|
||||
* @param flags The flags to compare on, see {@link CompareUtils}
|
||||
* @return The pattern, or null if the pattern is not found
|
||||
*/
|
||||
@Nullable
|
||||
@@ -157,7 +157,7 @@ public interface INetworkMaster {
|
||||
*
|
||||
* @param stack The prototype of the stack to extract, do NOT modify
|
||||
* @param size The amount of that prototype that has to be extracted
|
||||
* @param flags The flags to compare on, see {@link CompareFlags}
|
||||
* @param flags The flags to compare on, see {@link CompareUtils}
|
||||
* @return null if we didn't extract anything, or a {@link ItemStack} with the result
|
||||
*/
|
||||
@Nullable
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
package refinedstorage.api.storage;
|
||||
|
||||
/**
|
||||
* Comparison flags.
|
||||
*/
|
||||
public final class CompareFlags {
|
||||
public static final int COMPARE_DAMAGE = 1;
|
||||
public static final int COMPARE_NBT = 2;
|
||||
public static final int COMPARE_QUANTITY = 4;
|
||||
}
|
||||
91
src/main/java/refinedstorage/api/storage/CompareUtils.java
Executable file
91
src/main/java/refinedstorage/api/storage/CompareUtils.java
Executable file
@@ -0,0 +1,91 @@
|
||||
package refinedstorage.api.storage;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
|
||||
/**
|
||||
* Comparison utils.
|
||||
*/
|
||||
public final class CompareUtils {
|
||||
public static final int COMPARE_DAMAGE = 1;
|
||||
public static final int COMPARE_NBT = 2;
|
||||
public static final int COMPARE_QUANTITY = 4;
|
||||
|
||||
public static boolean compareStack(ItemStack left, ItemStack right) {
|
||||
return compareStack(left, right, COMPARE_NBT | COMPARE_DAMAGE | COMPARE_QUANTITY);
|
||||
}
|
||||
|
||||
public static boolean compareStack(ItemStack left, ItemStack right, int flags) {
|
||||
if (left == null && right == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ((left == null && right != null) || (left != null && right == null)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (left.getItem() != right.getItem()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((flags & COMPARE_DAMAGE) == COMPARE_DAMAGE) {
|
||||
if (left.getItemDamage() != right.getItemDamage()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if ((flags & COMPARE_NBT) == COMPARE_NBT) {
|
||||
if (!compareNbt(left, right)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if ((flags & COMPARE_QUANTITY) == COMPARE_QUANTITY) {
|
||||
if (left.stackSize != right.stackSize) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean compareNbt(ItemStack left, ItemStack right) {
|
||||
if (!ItemStack.areItemStackTagsEqual(left, right)) {
|
||||
if (left.hasTagCompound() && !right.hasTagCompound() && left.getTagCompound().hasNoTags()) {
|
||||
return true;
|
||||
} else if (!left.hasTagCompound() && right.hasTagCompound() && right.getTagCompound().hasNoTags()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean compareStackNoQuantity(ItemStack left, ItemStack right) {
|
||||
return compareStack(left, right, COMPARE_NBT | COMPARE_DAMAGE);
|
||||
}
|
||||
|
||||
public static boolean compareStackOreDict(ItemStack left, ItemStack right) {
|
||||
if (left == null && right == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ((left == null && right != null) || (left != null && right == null)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
int[] leftIds = OreDictionary.getOreIDs(left);
|
||||
int[] rightIds = OreDictionary.getOreIDs(right);
|
||||
|
||||
for (int i : rightIds) {
|
||||
if (ArrayUtils.contains(leftIds, i)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -35,7 +35,7 @@ public interface IGroupedStorage {
|
||||
* Gets an item from the network, does not decrement its count like {@link IGroupedStorage#remove(ItemStack)} does.
|
||||
*
|
||||
* @param stack The stack to find
|
||||
* @param flags The flags to compare on, see {@link CompareFlags}
|
||||
* @param flags The flags to compare on, see {@link CompareUtils}
|
||||
* @return The {@link ItemStack}, do NOT modify
|
||||
*/
|
||||
ItemStack get(ItemStack stack, int flags);
|
||||
|
||||
@@ -35,7 +35,7 @@ public interface IStorage {
|
||||
*
|
||||
* @param stack A prototype of the stack to extract, do NOT modify
|
||||
* @param size The amount of that prototype that has to be extracted
|
||||
* @param flags On what we are comparing to extract this item, see {@link CompareFlags}
|
||||
* @param flags On what we are comparing to extract this item, see {@link CompareUtils}
|
||||
* @return null if we didn't extract anything, or an {@link ItemStack} with the result
|
||||
*/
|
||||
@Nullable
|
||||
|
||||
@@ -3,9 +3,9 @@ package refinedstorage.apiimpl.autocrafting;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import refinedstorage.RefinedStorageUtils;
|
||||
import refinedstorage.api.autocrafting.ICraftingPattern;
|
||||
import refinedstorage.api.network.INetworkMaster;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
|
||||
public class CraftingTaskScheduler {
|
||||
private static final String NBT_SCHEDULED = "CraftingTaskScheduled";
|
||||
@@ -18,7 +18,7 @@ public class CraftingTaskScheduler {
|
||||
}
|
||||
|
||||
public boolean canSchedule(int compare, ItemStack item) {
|
||||
return scheduledItem == null || !RefinedStorageUtils.compareStack(scheduledItem, item, compare);
|
||||
return scheduledItem == null || !CompareUtils.compareStack(scheduledItem, item, compare);
|
||||
}
|
||||
|
||||
public void schedule(INetworkMaster network, int compare, ItemStack item) {
|
||||
|
||||
@@ -9,6 +9,7 @@ import refinedstorage.api.autocrafting.ICraftingPattern;
|
||||
import refinedstorage.api.autocrafting.ICraftingPatternContainer;
|
||||
import refinedstorage.api.autocrafting.ICraftingTask;
|
||||
import refinedstorage.api.network.INetworkMaster;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
|
||||
public class ProcessingCraftingTask implements ICraftingTask {
|
||||
public static final int ID = 1;
|
||||
@@ -92,7 +93,7 @@ public class ProcessingCraftingTask implements ICraftingTask {
|
||||
|
||||
public boolean onInserted(ItemStack stack) {
|
||||
for (int i = 0; i < pattern.getOutputs().length; ++i) {
|
||||
if (!satisfied[i] && RefinedStorageUtils.compareStackNoQuantity(stack, pattern.getOutputs()[i])) {
|
||||
if (!satisfied[i] && CompareUtils.compareStackNoQuantity(stack, pattern.getOutputs()[i])) {
|
||||
satisfied[i] = true;
|
||||
|
||||
return true;
|
||||
|
||||
@@ -9,6 +9,7 @@ import refinedstorage.api.autocrafting.ICraftingTask;
|
||||
import refinedstorage.api.network.GridExtractFlags;
|
||||
import refinedstorage.api.network.IGridHandler;
|
||||
import refinedstorage.api.network.INetworkMaster;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
|
||||
public class GridHandler implements IGridHandler {
|
||||
public static final int MAX_CRAFTING_PER_REQUEST = 500;
|
||||
@@ -34,7 +35,7 @@ public class GridHandler implements IGridHandler {
|
||||
ItemStack held = player.inventory.getItemStack();
|
||||
|
||||
if (single) {
|
||||
if (held != null && (!RefinedStorageUtils.compareStackNoQuantity(item, held) || held.stackSize + 1 > held.getMaxStackSize())) {
|
||||
if (held != null && (!CompareUtils.compareStackNoQuantity(item, held) || held.stackSize + 1 > held.getMaxStackSize())) {
|
||||
return;
|
||||
}
|
||||
} else if (player.inventory.getItemStack() != null) {
|
||||
@@ -129,7 +130,7 @@ public class GridHandler implements IGridHandler {
|
||||
|
||||
if (pattern != null) {
|
||||
for (ItemStack output : pattern.getOutputs()) {
|
||||
if (RefinedStorageUtils.compareStackNoQuantity(stack, output)) {
|
||||
if (CompareUtils.compareStackNoQuantity(stack, output)) {
|
||||
quantityPerRequest += output.stackSize;
|
||||
|
||||
if (!pattern.isProcessing()) {
|
||||
|
||||
@@ -9,6 +9,7 @@ import refinedstorage.RefinedStorageGui;
|
||||
import refinedstorage.RefinedStorageItems;
|
||||
import refinedstorage.RefinedStorageUtils;
|
||||
import refinedstorage.api.network.*;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.item.ItemWirelessGrid;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -39,7 +40,7 @@ public class WirelessGridHandler implements IWirelessGridHandler {
|
||||
while (it.hasNext()) {
|
||||
IWirelessGridConsumer consumer = it.next();
|
||||
|
||||
if (!RefinedStorageUtils.compareStack(consumer.getStack(), consumer.getPlayer().getHeldItem(consumer.getHand()))) {
|
||||
if (!CompareUtils.compareStack(consumer.getStack(), consumer.getPlayer().getHeldItem(consumer.getHand()))) {
|
||||
/**
|
||||
* This will call {@link net.minecraft.inventory.Container#onContainerClosed(EntityPlayer)} so the consumer is removed from the list.
|
||||
*/
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package refinedstorage.apiimpl.solderer;
|
||||
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import refinedstorage.RefinedStorageUtils;
|
||||
import refinedstorage.api.solderer.ISoldererRecipe;
|
||||
import refinedstorage.api.solderer.ISoldererRegistry;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
@@ -30,7 +30,7 @@ public class SoldererRegistry implements ISoldererRegistry {
|
||||
boolean found = true;
|
||||
|
||||
for (int i = 0; i < 3; ++i) {
|
||||
if (!RefinedStorageUtils.compareStackNoQuantity(recipe.getRow(i), items.getStackInSlot(i)) && !RefinedStorageUtils.compareStackOreDict(recipe.getRow(i), items.getStackInSlot(i))) {
|
||||
if (!CompareUtils.compareStackNoQuantity(recipe.getRow(i), items.getStackInSlot(i)) && !CompareUtils.compareStackOreDict(recipe.getRow(i), items.getStackInSlot(i))) {
|
||||
found = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import refinedstorage.RefinedStorageUtils;
|
||||
import refinedstorage.api.autocrafting.ICraftingPattern;
|
||||
import refinedstorage.api.network.INetworkMaster;
|
||||
import refinedstorage.api.network.INetworkNode;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.api.storage.IGroupedStorage;
|
||||
import refinedstorage.api.storage.IStorage;
|
||||
import refinedstorage.api.storage.IStorageProvider;
|
||||
@@ -57,7 +58,7 @@ public class GroupedStorage implements IGroupedStorage {
|
||||
@Override
|
||||
public void add(ItemStack stack, boolean rebuilding) {
|
||||
for (ItemStack otherStack : stacks.get(stack.getItem())) {
|
||||
if (RefinedStorageUtils.compareStackNoQuantity(otherStack, stack)) {
|
||||
if (CompareUtils.compareStackNoQuantity(otherStack, stack)) {
|
||||
otherStack.stackSize += stack.stackSize;
|
||||
|
||||
if (!rebuilding) {
|
||||
@@ -78,7 +79,7 @@ public class GroupedStorage implements IGroupedStorage {
|
||||
@Override
|
||||
public void remove(ItemStack stack) {
|
||||
for (ItemStack otherStack : stacks.get(stack.getItem())) {
|
||||
if (RefinedStorageUtils.compareStackNoQuantity(otherStack, stack)) {
|
||||
if (CompareUtils.compareStackNoQuantity(otherStack, stack)) {
|
||||
otherStack.stackSize -= stack.stackSize;
|
||||
|
||||
if (otherStack.stackSize == 0) {
|
||||
@@ -97,7 +98,7 @@ public class GroupedStorage implements IGroupedStorage {
|
||||
@Override
|
||||
public ItemStack get(ItemStack stack, int flags) {
|
||||
for (ItemStack otherStack : stacks.get(stack.getItem())) {
|
||||
if (RefinedStorageUtils.compareStack(otherStack, stack, flags)) {
|
||||
if (CompareUtils.compareStack(otherStack, stack, flags)) {
|
||||
return otherStack;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagList;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.items.ItemHandlerHelper;
|
||||
import refinedstorage.RefinedStorageUtils;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.api.storage.IStorage;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
@@ -117,7 +117,7 @@ public abstract class NBTStorage implements IStorage {
|
||||
@Override
|
||||
public ItemStack insertItem(ItemStack stack, int size, boolean simulate) {
|
||||
for (ItemStack otherStack : stacks) {
|
||||
if (RefinedStorageUtils.compareStackNoQuantity(otherStack, stack)) {
|
||||
if (CompareUtils.compareStackNoQuantity(otherStack, stack)) {
|
||||
if (getCapacity() != -1 && getStored() + size > getCapacity()) {
|
||||
int remainingSpace = getCapacity() - getStored();
|
||||
|
||||
@@ -180,7 +180,7 @@ public abstract class NBTStorage implements IStorage {
|
||||
@Override
|
||||
public ItemStack extractItem(ItemStack stack, int size, int flags) {
|
||||
for (ItemStack otherStack : stacks) {
|
||||
if (RefinedStorageUtils.compareStack(otherStack, stack, flags)) {
|
||||
if (CompareUtils.compareStack(otherStack, stack, flags)) {
|
||||
if (size > otherStack.stackSize) {
|
||||
size = otherStack.stackSize;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import net.minecraft.inventory.Container;
|
||||
import net.minecraft.inventory.Slot;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.items.ItemHandlerHelper;
|
||||
import refinedstorage.RefinedStorageUtils;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.container.slot.SlotDisabled;
|
||||
import refinedstorage.container.slot.SlotSpecimen;
|
||||
import refinedstorage.container.slot.SlotSpecimenLegacy;
|
||||
@@ -110,7 +110,7 @@ public abstract class ContainerBase extends Container {
|
||||
|
||||
public ItemStack mergeItemStackToSpecimen(ItemStack stack, int begin, int end) {
|
||||
for (int i = begin; i < end; ++i) {
|
||||
if (RefinedStorageUtils.compareStackNoQuantity(getSlot(i).getStack(), stack)) {
|
||||
if (CompareUtils.compareStackNoQuantity(getSlot(i).getStack(), stack)) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package refinedstorage.gui;
|
||||
|
||||
import refinedstorage.api.storage.CompareFlags;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.container.ContainerConstructor;
|
||||
import refinedstorage.gui.sidebutton.SideButtonCompare;
|
||||
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
|
||||
@@ -19,8 +19,8 @@ public class GuiConstructor extends GuiBase {
|
||||
public void init(int x, int y) {
|
||||
addSideButton(new SideButtonRedstoneMode(constructor));
|
||||
|
||||
addSideButton(new SideButtonCompare(constructor, CompareFlags.COMPARE_DAMAGE));
|
||||
addSideButton(new SideButtonCompare(constructor, CompareFlags.COMPARE_NBT));
|
||||
addSideButton(new SideButtonCompare(constructor, CompareUtils.COMPARE_DAMAGE));
|
||||
addSideButton(new SideButtonCompare(constructor, CompareUtils.COMPARE_NBT));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package refinedstorage.gui;
|
||||
|
||||
import refinedstorage.api.storage.CompareFlags;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.container.ContainerDestructor;
|
||||
import refinedstorage.gui.sidebutton.SideButtonCompare;
|
||||
import refinedstorage.gui.sidebutton.SideButtonMode;
|
||||
@@ -22,8 +22,8 @@ public class GuiDestructor extends GuiBase {
|
||||
|
||||
addSideButton(new SideButtonMode(destructor));
|
||||
|
||||
addSideButton(new SideButtonCompare(destructor, CompareFlags.COMPARE_DAMAGE));
|
||||
addSideButton(new SideButtonCompare(destructor, CompareFlags.COMPARE_NBT));
|
||||
addSideButton(new SideButtonCompare(destructor, CompareUtils.COMPARE_DAMAGE));
|
||||
addSideButton(new SideButtonCompare(destructor, CompareUtils.COMPARE_NBT));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -3,7 +3,7 @@ package refinedstorage.gui;
|
||||
import com.google.common.primitives.Ints;
|
||||
import net.minecraft.client.gui.GuiTextField;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.api.storage.CompareFlags;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.container.ContainerDetector;
|
||||
import refinedstorage.gui.sidebutton.SideButtonCompare;
|
||||
import refinedstorage.gui.sidebutton.SideButtonDetectorMode;
|
||||
@@ -25,8 +25,8 @@ public class GuiDetector extends GuiBase {
|
||||
|
||||
@Override
|
||||
public void init(int x, int y) {
|
||||
addSideButton(new SideButtonCompare(detector, CompareFlags.COMPARE_DAMAGE));
|
||||
addSideButton(new SideButtonCompare(detector, CompareFlags.COMPARE_NBT));
|
||||
addSideButton(new SideButtonCompare(detector, CompareUtils.COMPARE_DAMAGE));
|
||||
addSideButton(new SideButtonCompare(detector, CompareUtils.COMPARE_NBT));
|
||||
|
||||
addSideButton(new SideButtonDetectorMode(detector));
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package refinedstorage.gui;
|
||||
|
||||
import refinedstorage.api.storage.CompareFlags;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.container.ContainerExporter;
|
||||
import refinedstorage.gui.sidebutton.SideButtonCompare;
|
||||
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
|
||||
@@ -19,8 +19,8 @@ public class GuiExporter extends GuiBase {
|
||||
public void init(int x, int y) {
|
||||
addSideButton(new SideButtonRedstoneMode(exporter));
|
||||
|
||||
addSideButton(new SideButtonCompare(exporter, CompareFlags.COMPARE_DAMAGE));
|
||||
addSideButton(new SideButtonCompare(exporter, CompareFlags.COMPARE_NBT));
|
||||
addSideButton(new SideButtonCompare(exporter, CompareUtils.COMPARE_DAMAGE));
|
||||
addSideButton(new SideButtonCompare(exporter, CompareUtils.COMPARE_NBT));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package refinedstorage.gui;
|
||||
|
||||
import refinedstorage.api.storage.CompareFlags;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.container.ContainerImporter;
|
||||
import refinedstorage.gui.sidebutton.SideButtonCompare;
|
||||
import refinedstorage.gui.sidebutton.SideButtonMode;
|
||||
@@ -22,8 +22,8 @@ public class GuiImporter extends GuiBase {
|
||||
|
||||
addSideButton(new SideButtonMode(importer));
|
||||
|
||||
addSideButton(new SideButtonCompare(importer, CompareFlags.COMPARE_DAMAGE));
|
||||
addSideButton(new SideButtonCompare(importer, CompareFlags.COMPARE_NBT));
|
||||
addSideButton(new SideButtonCompare(importer, CompareUtils.COMPARE_DAMAGE));
|
||||
addSideButton(new SideButtonCompare(importer, CompareUtils.COMPARE_NBT));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package refinedstorage.gui;
|
||||
|
||||
import refinedstorage.api.storage.CompareFlags;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.container.ContainerInterface;
|
||||
import refinedstorage.gui.sidebutton.SideButtonCompare;
|
||||
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
|
||||
@@ -19,8 +19,8 @@ public class GuiInterface extends GuiBase {
|
||||
public void init(int x, int y) {
|
||||
addSideButton(new SideButtonRedstoneMode(tile));
|
||||
|
||||
addSideButton(new SideButtonCompare(tile, CompareFlags.COMPARE_DAMAGE));
|
||||
addSideButton(new SideButtonCompare(tile, CompareFlags.COMPARE_NBT));
|
||||
addSideButton(new SideButtonCompare(tile, CompareUtils.COMPARE_DAMAGE));
|
||||
addSideButton(new SideButtonCompare(tile, CompareUtils.COMPARE_NBT));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -2,7 +2,7 @@ package refinedstorage.gui;
|
||||
|
||||
import com.google.common.primitives.Ints;
|
||||
import net.minecraft.client.gui.GuiTextField;
|
||||
import refinedstorage.api.storage.CompareFlags;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.container.ContainerStorage;
|
||||
import refinedstorage.gui.sidebutton.SideButtonCompare;
|
||||
import refinedstorage.gui.sidebutton.SideButtonMode;
|
||||
@@ -44,8 +44,8 @@ public class GuiStorage extends GuiBase {
|
||||
}
|
||||
|
||||
if (gui.getCompareConfig() != null) {
|
||||
addSideButton(new SideButtonCompare(gui.getCompareConfig(), CompareFlags.COMPARE_DAMAGE));
|
||||
addSideButton(new SideButtonCompare(gui.getCompareConfig(), CompareFlags.COMPARE_NBT));
|
||||
addSideButton(new SideButtonCompare(gui.getCompareConfig(), CompareUtils.COMPARE_DAMAGE));
|
||||
addSideButton(new SideButtonCompare(gui.getCompareConfig(), CompareUtils.COMPARE_NBT));
|
||||
}
|
||||
|
||||
priorityField = new GuiTextField(0, fontRendererObj, x + 98 + 1, y + 54 + 1, 25, fontRendererObj.FONT_HEIGHT);
|
||||
|
||||
@@ -2,7 +2,7 @@ package refinedstorage.gui.sidebutton;
|
||||
|
||||
import net.minecraft.util.text.TextFormatting;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.api.storage.CompareFlags;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.gui.GuiBase;
|
||||
import refinedstorage.network.MessageCompareUpdate;
|
||||
import refinedstorage.tile.config.ICompareConfig;
|
||||
@@ -35,9 +35,9 @@ public class SideButtonCompare extends SideButton {
|
||||
|
||||
int ty = 0;
|
||||
|
||||
if (mask == CompareFlags.COMPARE_DAMAGE) {
|
||||
if (mask == CompareUtils.COMPARE_DAMAGE) {
|
||||
ty = 80;
|
||||
} else if (mask == CompareFlags.COMPARE_NBT) {
|
||||
} else if (mask == CompareUtils.COMPARE_NBT) {
|
||||
ty = 48;
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ import refinedstorage.RefinedStorageUtils;
|
||||
import refinedstorage.api.RefinedStorageAPI;
|
||||
import refinedstorage.api.network.INetworkMaster;
|
||||
import refinedstorage.api.solderer.ISoldererRecipe;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.container.ContainerSolderer;
|
||||
import refinedstorage.inventory.BasicItemHandler;
|
||||
import refinedstorage.inventory.SoldererItemHandler;
|
||||
@@ -50,7 +51,7 @@ public class TileSolderer extends TileNode {
|
||||
if (newRecipe == null) {
|
||||
stop();
|
||||
} else if (newRecipe != recipe) {
|
||||
boolean sameItem = items.getStackInSlot(3) != null ? RefinedStorageUtils.compareStackNoQuantity(items.getStackInSlot(3), newRecipe.getResult()) : false;
|
||||
boolean sameItem = items.getStackInSlot(3) != null ? CompareUtils.compareStackNoQuantity(items.getStackInSlot(3), newRecipe.getResult()) : false;
|
||||
|
||||
if (items.getStackInSlot(3) == null || (sameItem && ((items.getStackInSlot(3).stackSize + newRecipe.getResult().stackSize) <= items.getStackInSlot(3).getMaxStackSize()))) {
|
||||
recipe = newRecipe;
|
||||
|
||||
@@ -2,7 +2,7 @@ package refinedstorage.tile.config;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import refinedstorage.RefinedStorageUtils;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
|
||||
public final class ModeFilter {
|
||||
public static boolean respectsMode(IItemHandler filters, IModeConfig mode, int compare, ItemStack stack) {
|
||||
@@ -15,7 +15,7 @@ public final class ModeFilter {
|
||||
if (slot != null) {
|
||||
slots++;
|
||||
|
||||
if (RefinedStorageUtils.compareStack(slot, stack, compare)) {
|
||||
if (CompareUtils.compareStack(slot, stack, compare)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -26,7 +26,7 @@ public final class ModeFilter {
|
||||
for (int i = 0; i < filters.getSlots(); ++i) {
|
||||
ItemStack slot = filters.getStackInSlot(i);
|
||||
|
||||
if (slot != null && RefinedStorageUtils.compareStack(slot, stack, compare)) {
|
||||
if (slot != null && CompareUtils.compareStack(slot, stack, compare)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package refinedstorage.tile.controller;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import refinedstorage.RefinedStorageUtils;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
|
||||
public final class ClientNode {
|
||||
public ItemStack stack;
|
||||
@@ -18,7 +18,7 @@ public final class ClientNode {
|
||||
return false;
|
||||
}
|
||||
|
||||
return energyUsage == ((ClientNode) other).energyUsage && RefinedStorageUtils.compareStack(stack, ((ClientNode) other).stack);
|
||||
return energyUsage == ((ClientNode) other).energyUsage && CompareUtils.compareStack(stack, ((ClientNode) other).stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -31,7 +31,7 @@ import refinedstorage.api.network.IGridHandler;
|
||||
import refinedstorage.api.network.INetworkMaster;
|
||||
import refinedstorage.api.network.INetworkNode;
|
||||
import refinedstorage.api.network.IWirelessGridHandler;
|
||||
import refinedstorage.api.storage.CompareFlags;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.api.storage.IGroupedStorage;
|
||||
import refinedstorage.api.storage.IStorage;
|
||||
import refinedstorage.apiimpl.autocrafting.BasicCraftingTask;
|
||||
@@ -320,7 +320,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
|
||||
for (ICraftingPattern craftingPattern : getPatterns()) {
|
||||
for (ItemStack output : craftingPattern.getOutputs()) {
|
||||
if (RefinedStorageUtils.compareStack(output, pattern, flags)) {
|
||||
if (CompareUtils.compareStack(output, pattern, flags)) {
|
||||
patterns.add(craftingPattern);
|
||||
}
|
||||
}
|
||||
@@ -346,7 +346,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
int score = 0;
|
||||
|
||||
for (ItemStack input : patterns.get(i).getInputs()) {
|
||||
ItemStack stored = storage.get(input, CompareFlags.COMPARE_DAMAGE | CompareFlags.COMPARE_NBT);
|
||||
ItemStack stored = storage.get(input, CompareUtils.COMPARE_DAMAGE | CompareUtils.COMPARE_NBT);
|
||||
|
||||
score += stored != null ? stored.stackSize : 0;
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package refinedstorage.tile.externalstorage;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.items.ItemHandlerHelper;
|
||||
import powercrystals.minefactoryreloaded.api.IDeepStorageUnit;
|
||||
import refinedstorage.RefinedStorageUtils;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.tile.config.ModeFilter;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
@@ -37,7 +37,7 @@ public class DeepStorageUnitStorage extends ExternalStorage {
|
||||
public ItemStack insertItem(@Nonnull ItemStack stack, int size, boolean simulate) {
|
||||
if (ModeFilter.respectsMode(externalStorage.getFilters(), externalStorage, externalStorage.getCompare(), stack)) {
|
||||
if (unit.getStoredItemType() != null) {
|
||||
if (RefinedStorageUtils.compareStackNoQuantity(unit.getStoredItemType(), stack)) {
|
||||
if (CompareUtils.compareStackNoQuantity(unit.getStoredItemType(), stack)) {
|
||||
if (getStored() + size > unit.getMaxStoredCount()) {
|
||||
int remainingSpace = getCapacity() - getStored();
|
||||
|
||||
@@ -86,7 +86,7 @@ public class DeepStorageUnitStorage extends ExternalStorage {
|
||||
|
||||
@Override
|
||||
public ItemStack extractItem(@Nonnull ItemStack stack, int size, int flags) {
|
||||
if (RefinedStorageUtils.compareStack(stack, unit.getStoredItemType(), flags)) {
|
||||
if (CompareUtils.compareStack(stack, unit.getStoredItemType(), flags)) {
|
||||
if (size > unit.getStoredItemType().stackSize) {
|
||||
size = unit.getStoredItemType().stackSize;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.jaquadro.minecraft.storagedrawers.api.storage.IDrawer;
|
||||
import com.jaquadro.minecraft.storagedrawers.api.storage.attribute.IVoidable;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.items.ItemHandlerHelper;
|
||||
import refinedstorage.RefinedStorageUtils;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.tile.config.ModeFilter;
|
||||
|
||||
import java.util.Collections;
|
||||
@@ -88,7 +88,7 @@ public class DrawerStorage extends ExternalStorage {
|
||||
|
||||
@Override
|
||||
public ItemStack extractItem(ItemStack stack, int size, int flags) {
|
||||
if (RefinedStorageUtils.compareStack(stack, drawer.getStoredItemPrototype(), flags) && drawer.canItemBeExtracted(stack)) {
|
||||
if (CompareUtils.compareStack(stack, drawer.getStoredItemPrototype(), flags) && drawer.canItemBeExtracted(stack)) {
|
||||
if (size > drawer.getStoredItemCount()) {
|
||||
size = drawer.getStoredItemCount();
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package refinedstorage.tile.externalstorage;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import refinedstorage.RefinedStorageUtils;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.api.storage.IStorage;
|
||||
|
||||
import java.util.List;
|
||||
@@ -22,7 +22,7 @@ public abstract class ExternalStorage implements IStorage {
|
||||
return true;
|
||||
} else {
|
||||
for (int i = 0; i < items.size(); ++i) {
|
||||
if (!RefinedStorageUtils.compareStack(items.get(i), cache.get(i))) {
|
||||
if (!CompareUtils.compareStack(items.get(i), cache.get(i))) {
|
||||
cache = items;
|
||||
|
||||
return true;
|
||||
|
||||
@@ -3,7 +3,7 @@ package refinedstorage.tile.externalstorage;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import net.minecraftforge.items.ItemHandlerHelper;
|
||||
import refinedstorage.RefinedStorageUtils;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.tile.config.ModeFilter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -50,7 +50,7 @@ public class ItemHandlerStorage extends ExternalStorage {
|
||||
for (int i = 0; i < handler.getSlots(); ++i) {
|
||||
ItemStack slot = handler.getStackInSlot(i);
|
||||
|
||||
if (slot != null && RefinedStorageUtils.compareStack(slot, stack, flags)) {
|
||||
if (slot != null && CompareUtils.compareStack(slot, stack, flags)) {
|
||||
size = Math.min(size, slot.stackSize);
|
||||
|
||||
ItemStack took = ItemHandlerHelper.copyStackWithSize(slot, size);
|
||||
|
||||
@@ -15,6 +15,7 @@ import refinedstorage.RefinedStorageBlocks;
|
||||
import refinedstorage.RefinedStorageItems;
|
||||
import refinedstorage.RefinedStorageUtils;
|
||||
import refinedstorage.api.network.IGridHandler;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.block.BlockGrid;
|
||||
import refinedstorage.block.EnumGridType;
|
||||
import refinedstorage.container.ContainerGrid;
|
||||
@@ -174,7 +175,7 @@ public class TileGrid extends TileNode implements IGrid {
|
||||
|
||||
craftedItems += crafted.stackSize;
|
||||
|
||||
if (!RefinedStorageUtils.compareStack(crafted, result.getStackInSlot(0)) || craftedItems + crafted.stackSize > crafted.getMaxStackSize()) {
|
||||
if (!CompareUtils.compareStack(crafted, result.getStackInSlot(0)) || craftedItems + crafted.stackSize > crafted.getMaxStackSize()) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user