Move compare utils to API

This commit is contained in:
Raoul Van den Berge
2016-07-19 04:57:27 +02:00
parent e9745c2b61
commit fc0184cbfd
31 changed files with 166 additions and 158 deletions

View File

@@ -16,11 +16,9 @@ import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.wrapper.InvWrapper; import net.minecraftforge.items.wrapper.InvWrapper;
import net.minecraftforge.items.wrapper.SidedInvWrapper; 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.autocrafting.ICraftingPattern;
import refinedstorage.api.network.INetworkMaster; import refinedstorage.api.network.INetworkMaster;
import refinedstorage.api.storage.CompareFlags; import refinedstorage.api.storage.CompareUtils;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; 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) { public static void writeBooleanArray(NBTTagCompound tag, String name, boolean[] array) {
int[] intArray = new int[array.length]; int[] intArray = new int[array.length];
@@ -257,7 +178,7 @@ public final class RefinedStorageUtils {
int amount = stacks[i].stackSize; int amount = stacks[i].stackSize;
for (int j = i + 1; j < stacks.length; ++j) { 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; amount += stacks[j].stackSize;
combinedIndices.add(j); combinedIndices.add(j);
@@ -288,11 +209,11 @@ public final class RefinedStorageUtils {
} }
public static ItemStack extractItem(INetworkMaster network, ItemStack stack, int size) { 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) { 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) { public static boolean hasPattern(INetworkMaster network, ItemStack stack) {

View File

@@ -6,7 +6,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import refinedstorage.api.autocrafting.ICraftingPattern; import refinedstorage.api.autocrafting.ICraftingPattern;
import refinedstorage.api.autocrafting.ICraftingTask; import refinedstorage.api.autocrafting.ICraftingTask;
import refinedstorage.api.storage.CompareFlags; import refinedstorage.api.storage.CompareUtils;
import refinedstorage.api.storage.IGroupedStorage; import refinedstorage.api.storage.IGroupedStorage;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
@@ -110,14 +110,14 @@ public interface INetworkMaster {
* Returns crafting patterns from an item stack. * Returns crafting patterns from an item stack.
* *
* @param pattern The {@link ItemStack} to get a pattern for * @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 * @return A list of crafting patterns where the given pattern is one of the outputs
*/ */
List<ICraftingPattern> getPatterns(ItemStack pattern, int flags); List<ICraftingPattern> getPatterns(ItemStack pattern, int flags);
/** /**
* @param pattern The {@link ItemStack} to get a pattern for * @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 * @return The pattern, or null if the pattern is not found
*/ */
@Nullable @Nullable
@@ -157,7 +157,7 @@ public interface INetworkMaster {
* *
* @param stack The prototype of the stack to extract, do NOT modify * @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 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 * @return null if we didn't extract anything, or a {@link ItemStack} with the result
*/ */
@Nullable @Nullable

View File

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

View 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;
}
}

View File

@@ -35,7 +35,7 @@ public interface IGroupedStorage {
* Gets an item from the network, does not decrement its count like {@link IGroupedStorage#remove(ItemStack)} does. * Gets an item from the network, does not decrement its count like {@link IGroupedStorage#remove(ItemStack)} does.
* *
* @param stack The stack to find * @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 * @return The {@link ItemStack}, do NOT modify
*/ */
ItemStack get(ItemStack stack, int flags); ItemStack get(ItemStack stack, int flags);

View File

@@ -35,7 +35,7 @@ public interface IStorage {
* *
* @param stack A prototype of the stack to extract, do NOT modify * @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 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 * @return null if we didn't extract anything, or an {@link ItemStack} with the result
*/ */
@Nullable @Nullable

View File

@@ -3,9 +3,9 @@ package refinedstorage.apiimpl.autocrafting;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.autocrafting.ICraftingPattern; import refinedstorage.api.autocrafting.ICraftingPattern;
import refinedstorage.api.network.INetworkMaster; import refinedstorage.api.network.INetworkMaster;
import refinedstorage.api.storage.CompareUtils;
public class CraftingTaskScheduler { public class CraftingTaskScheduler {
private static final String NBT_SCHEDULED = "CraftingTaskScheduled"; private static final String NBT_SCHEDULED = "CraftingTaskScheduled";
@@ -18,7 +18,7 @@ public class CraftingTaskScheduler {
} }
public boolean canSchedule(int compare, ItemStack item) { 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) { public void schedule(INetworkMaster network, int compare, ItemStack item) {

View File

@@ -9,6 +9,7 @@ import refinedstorage.api.autocrafting.ICraftingPattern;
import refinedstorage.api.autocrafting.ICraftingPatternContainer; import refinedstorage.api.autocrafting.ICraftingPatternContainer;
import refinedstorage.api.autocrafting.ICraftingTask; import refinedstorage.api.autocrafting.ICraftingTask;
import refinedstorage.api.network.INetworkMaster; import refinedstorage.api.network.INetworkMaster;
import refinedstorage.api.storage.CompareUtils;
public class ProcessingCraftingTask implements ICraftingTask { public class ProcessingCraftingTask implements ICraftingTask {
public static final int ID = 1; public static final int ID = 1;
@@ -92,7 +93,7 @@ public class ProcessingCraftingTask implements ICraftingTask {
public boolean onInserted(ItemStack stack) { public boolean onInserted(ItemStack stack) {
for (int i = 0; i < pattern.getOutputs().length; ++i) { 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; satisfied[i] = true;
return true; return true;

View File

@@ -9,6 +9,7 @@ import refinedstorage.api.autocrafting.ICraftingTask;
import refinedstorage.api.network.GridExtractFlags; import refinedstorage.api.network.GridExtractFlags;
import refinedstorage.api.network.IGridHandler; import refinedstorage.api.network.IGridHandler;
import refinedstorage.api.network.INetworkMaster; import refinedstorage.api.network.INetworkMaster;
import refinedstorage.api.storage.CompareUtils;
public class GridHandler implements IGridHandler { public class GridHandler implements IGridHandler {
public static final int MAX_CRAFTING_PER_REQUEST = 500; public static final int MAX_CRAFTING_PER_REQUEST = 500;
@@ -34,7 +35,7 @@ public class GridHandler implements IGridHandler {
ItemStack held = player.inventory.getItemStack(); ItemStack held = player.inventory.getItemStack();
if (single) { 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; return;
} }
} else if (player.inventory.getItemStack() != null) { } else if (player.inventory.getItemStack() != null) {
@@ -129,7 +130,7 @@ public class GridHandler implements IGridHandler {
if (pattern != null) { if (pattern != null) {
for (ItemStack output : pattern.getOutputs()) { for (ItemStack output : pattern.getOutputs()) {
if (RefinedStorageUtils.compareStackNoQuantity(stack, output)) { if (CompareUtils.compareStackNoQuantity(stack, output)) {
quantityPerRequest += output.stackSize; quantityPerRequest += output.stackSize;
if (!pattern.isProcessing()) { if (!pattern.isProcessing()) {

View File

@@ -9,6 +9,7 @@ import refinedstorage.RefinedStorageGui;
import refinedstorage.RefinedStorageItems; import refinedstorage.RefinedStorageItems;
import refinedstorage.RefinedStorageUtils; import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.network.*; import refinedstorage.api.network.*;
import refinedstorage.api.storage.CompareUtils;
import refinedstorage.item.ItemWirelessGrid; import refinedstorage.item.ItemWirelessGrid;
import java.util.ArrayList; import java.util.ArrayList;
@@ -39,7 +40,7 @@ public class WirelessGridHandler implements IWirelessGridHandler {
while (it.hasNext()) { while (it.hasNext()) {
IWirelessGridConsumer consumer = it.next(); 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. * This will call {@link net.minecraft.inventory.Container#onContainerClosed(EntityPlayer)} so the consumer is removed from the list.
*/ */

View File

@@ -1,9 +1,9 @@
package refinedstorage.apiimpl.solderer; package refinedstorage.apiimpl.solderer;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.solderer.ISoldererRecipe; import refinedstorage.api.solderer.ISoldererRecipe;
import refinedstorage.api.solderer.ISoldererRegistry; import refinedstorage.api.solderer.ISoldererRegistry;
import refinedstorage.api.storage.CompareUtils;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@@ -30,7 +30,7 @@ public class SoldererRegistry implements ISoldererRegistry {
boolean found = true; boolean found = true;
for (int i = 0; i < 3; ++i) { 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; found = false;
} }

View File

@@ -8,6 +8,7 @@ import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.autocrafting.ICraftingPattern; import refinedstorage.api.autocrafting.ICraftingPattern;
import refinedstorage.api.network.INetworkMaster; import refinedstorage.api.network.INetworkMaster;
import refinedstorage.api.network.INetworkNode; import refinedstorage.api.network.INetworkNode;
import refinedstorage.api.storage.CompareUtils;
import refinedstorage.api.storage.IGroupedStorage; import refinedstorage.api.storage.IGroupedStorage;
import refinedstorage.api.storage.IStorage; import refinedstorage.api.storage.IStorage;
import refinedstorage.api.storage.IStorageProvider; import refinedstorage.api.storage.IStorageProvider;
@@ -57,7 +58,7 @@ public class GroupedStorage implements IGroupedStorage {
@Override @Override
public void add(ItemStack stack, boolean rebuilding) { public void add(ItemStack stack, boolean rebuilding) {
for (ItemStack otherStack : stacks.get(stack.getItem())) { for (ItemStack otherStack : stacks.get(stack.getItem())) {
if (RefinedStorageUtils.compareStackNoQuantity(otherStack, stack)) { if (CompareUtils.compareStackNoQuantity(otherStack, stack)) {
otherStack.stackSize += stack.stackSize; otherStack.stackSize += stack.stackSize;
if (!rebuilding) { if (!rebuilding) {
@@ -78,7 +79,7 @@ public class GroupedStorage implements IGroupedStorage {
@Override @Override
public void remove(ItemStack stack) { public void remove(ItemStack stack) {
for (ItemStack otherStack : stacks.get(stack.getItem())) { for (ItemStack otherStack : stacks.get(stack.getItem())) {
if (RefinedStorageUtils.compareStackNoQuantity(otherStack, stack)) { if (CompareUtils.compareStackNoQuantity(otherStack, stack)) {
otherStack.stackSize -= stack.stackSize; otherStack.stackSize -= stack.stackSize;
if (otherStack.stackSize == 0) { if (otherStack.stackSize == 0) {
@@ -97,7 +98,7 @@ public class GroupedStorage implements IGroupedStorage {
@Override @Override
public ItemStack get(ItemStack stack, int flags) { public ItemStack get(ItemStack stack, int flags) {
for (ItemStack otherStack : stacks.get(stack.getItem())) { for (ItemStack otherStack : stacks.get(stack.getItem())) {
if (RefinedStorageUtils.compareStack(otherStack, stack, flags)) { if (CompareUtils.compareStack(otherStack, stack, flags)) {
return otherStack; return otherStack;
} }
} }

View File

@@ -6,7 +6,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.items.ItemHandlerHelper; import net.minecraftforge.items.ItemHandlerHelper;
import refinedstorage.RefinedStorageUtils; import refinedstorage.api.storage.CompareUtils;
import refinedstorage.api.storage.IStorage; import refinedstorage.api.storage.IStorage;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@@ -117,7 +117,7 @@ public abstract class NBTStorage implements IStorage {
@Override @Override
public ItemStack insertItem(ItemStack stack, int size, boolean simulate) { public ItemStack insertItem(ItemStack stack, int size, boolean simulate) {
for (ItemStack otherStack : stacks) { for (ItemStack otherStack : stacks) {
if (RefinedStorageUtils.compareStackNoQuantity(otherStack, stack)) { if (CompareUtils.compareStackNoQuantity(otherStack, stack)) {
if (getCapacity() != -1 && getStored() + size > getCapacity()) { if (getCapacity() != -1 && getStored() + size > getCapacity()) {
int remainingSpace = getCapacity() - getStored(); int remainingSpace = getCapacity() - getStored();
@@ -180,7 +180,7 @@ public abstract class NBTStorage implements IStorage {
@Override @Override
public ItemStack extractItem(ItemStack stack, int size, int flags) { public ItemStack extractItem(ItemStack stack, int size, int flags) {
for (ItemStack otherStack : stacks) { for (ItemStack otherStack : stacks) {
if (RefinedStorageUtils.compareStack(otherStack, stack, flags)) { if (CompareUtils.compareStack(otherStack, stack, flags)) {
if (size > otherStack.stackSize) { if (size > otherStack.stackSize) {
size = otherStack.stackSize; size = otherStack.stackSize;
} }

View File

@@ -7,7 +7,7 @@ import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot; import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.items.ItemHandlerHelper; import net.minecraftforge.items.ItemHandlerHelper;
import refinedstorage.RefinedStorageUtils; import refinedstorage.api.storage.CompareUtils;
import refinedstorage.container.slot.SlotDisabled; import refinedstorage.container.slot.SlotDisabled;
import refinedstorage.container.slot.SlotSpecimen; import refinedstorage.container.slot.SlotSpecimen;
import refinedstorage.container.slot.SlotSpecimenLegacy; import refinedstorage.container.slot.SlotSpecimenLegacy;
@@ -110,7 +110,7 @@ public abstract class ContainerBase extends Container {
public ItemStack mergeItemStackToSpecimen(ItemStack stack, int begin, int end) { public ItemStack mergeItemStackToSpecimen(ItemStack stack, int begin, int end) {
for (int i = begin; i < end; ++i) { for (int i = begin; i < end; ++i) {
if (RefinedStorageUtils.compareStackNoQuantity(getSlot(i).getStack(), stack)) { if (CompareUtils.compareStackNoQuantity(getSlot(i).getStack(), stack)) {
return null; return null;
} }
} }

View File

@@ -1,6 +1,6 @@
package refinedstorage.gui; package refinedstorage.gui;
import refinedstorage.api.storage.CompareFlags; import refinedstorage.api.storage.CompareUtils;
import refinedstorage.container.ContainerConstructor; import refinedstorage.container.ContainerConstructor;
import refinedstorage.gui.sidebutton.SideButtonCompare; import refinedstorage.gui.sidebutton.SideButtonCompare;
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
@@ -19,8 +19,8 @@ public class GuiConstructor extends GuiBase {
public void init(int x, int y) { public void init(int x, int y) {
addSideButton(new SideButtonRedstoneMode(constructor)); addSideButton(new SideButtonRedstoneMode(constructor));
addSideButton(new SideButtonCompare(constructor, CompareFlags.COMPARE_DAMAGE)); addSideButton(new SideButtonCompare(constructor, CompareUtils.COMPARE_DAMAGE));
addSideButton(new SideButtonCompare(constructor, CompareFlags.COMPARE_NBT)); addSideButton(new SideButtonCompare(constructor, CompareUtils.COMPARE_NBT));
} }
@Override @Override

View File

@@ -1,6 +1,6 @@
package refinedstorage.gui; package refinedstorage.gui;
import refinedstorage.api.storage.CompareFlags; import refinedstorage.api.storage.CompareUtils;
import refinedstorage.container.ContainerDestructor; import refinedstorage.container.ContainerDestructor;
import refinedstorage.gui.sidebutton.SideButtonCompare; import refinedstorage.gui.sidebutton.SideButtonCompare;
import refinedstorage.gui.sidebutton.SideButtonMode; import refinedstorage.gui.sidebutton.SideButtonMode;
@@ -22,8 +22,8 @@ public class GuiDestructor extends GuiBase {
addSideButton(new SideButtonMode(destructor)); addSideButton(new SideButtonMode(destructor));
addSideButton(new SideButtonCompare(destructor, CompareFlags.COMPARE_DAMAGE)); addSideButton(new SideButtonCompare(destructor, CompareUtils.COMPARE_DAMAGE));
addSideButton(new SideButtonCompare(destructor, CompareFlags.COMPARE_NBT)); addSideButton(new SideButtonCompare(destructor, CompareUtils.COMPARE_NBT));
} }
@Override @Override

View File

@@ -3,7 +3,7 @@ package refinedstorage.gui;
import com.google.common.primitives.Ints; import com.google.common.primitives.Ints;
import net.minecraft.client.gui.GuiTextField; import net.minecraft.client.gui.GuiTextField;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.api.storage.CompareFlags; import refinedstorage.api.storage.CompareUtils;
import refinedstorage.container.ContainerDetector; import refinedstorage.container.ContainerDetector;
import refinedstorage.gui.sidebutton.SideButtonCompare; import refinedstorage.gui.sidebutton.SideButtonCompare;
import refinedstorage.gui.sidebutton.SideButtonDetectorMode; import refinedstorage.gui.sidebutton.SideButtonDetectorMode;
@@ -25,8 +25,8 @@ public class GuiDetector extends GuiBase {
@Override @Override
public void init(int x, int y) { public void init(int x, int y) {
addSideButton(new SideButtonCompare(detector, CompareFlags.COMPARE_DAMAGE)); addSideButton(new SideButtonCompare(detector, CompareUtils.COMPARE_DAMAGE));
addSideButton(new SideButtonCompare(detector, CompareFlags.COMPARE_NBT)); addSideButton(new SideButtonCompare(detector, CompareUtils.COMPARE_NBT));
addSideButton(new SideButtonDetectorMode(detector)); addSideButton(new SideButtonDetectorMode(detector));

View File

@@ -1,6 +1,6 @@
package refinedstorage.gui; package refinedstorage.gui;
import refinedstorage.api.storage.CompareFlags; import refinedstorage.api.storage.CompareUtils;
import refinedstorage.container.ContainerExporter; import refinedstorage.container.ContainerExporter;
import refinedstorage.gui.sidebutton.SideButtonCompare; import refinedstorage.gui.sidebutton.SideButtonCompare;
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
@@ -19,8 +19,8 @@ public class GuiExporter extends GuiBase {
public void init(int x, int y) { public void init(int x, int y) {
addSideButton(new SideButtonRedstoneMode(exporter)); addSideButton(new SideButtonRedstoneMode(exporter));
addSideButton(new SideButtonCompare(exporter, CompareFlags.COMPARE_DAMAGE)); addSideButton(new SideButtonCompare(exporter, CompareUtils.COMPARE_DAMAGE));
addSideButton(new SideButtonCompare(exporter, CompareFlags.COMPARE_NBT)); addSideButton(new SideButtonCompare(exporter, CompareUtils.COMPARE_NBT));
} }
@Override @Override

View File

@@ -1,6 +1,6 @@
package refinedstorage.gui; package refinedstorage.gui;
import refinedstorage.api.storage.CompareFlags; import refinedstorage.api.storage.CompareUtils;
import refinedstorage.container.ContainerImporter; import refinedstorage.container.ContainerImporter;
import refinedstorage.gui.sidebutton.SideButtonCompare; import refinedstorage.gui.sidebutton.SideButtonCompare;
import refinedstorage.gui.sidebutton.SideButtonMode; import refinedstorage.gui.sidebutton.SideButtonMode;
@@ -22,8 +22,8 @@ public class GuiImporter extends GuiBase {
addSideButton(new SideButtonMode(importer)); addSideButton(new SideButtonMode(importer));
addSideButton(new SideButtonCompare(importer, CompareFlags.COMPARE_DAMAGE)); addSideButton(new SideButtonCompare(importer, CompareUtils.COMPARE_DAMAGE));
addSideButton(new SideButtonCompare(importer, CompareFlags.COMPARE_NBT)); addSideButton(new SideButtonCompare(importer, CompareUtils.COMPARE_NBT));
} }
@Override @Override

View File

@@ -1,6 +1,6 @@
package refinedstorage.gui; package refinedstorage.gui;
import refinedstorage.api.storage.CompareFlags; import refinedstorage.api.storage.CompareUtils;
import refinedstorage.container.ContainerInterface; import refinedstorage.container.ContainerInterface;
import refinedstorage.gui.sidebutton.SideButtonCompare; import refinedstorage.gui.sidebutton.SideButtonCompare;
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
@@ -19,8 +19,8 @@ public class GuiInterface extends GuiBase {
public void init(int x, int y) { public void init(int x, int y) {
addSideButton(new SideButtonRedstoneMode(tile)); addSideButton(new SideButtonRedstoneMode(tile));
addSideButton(new SideButtonCompare(tile, CompareFlags.COMPARE_DAMAGE)); addSideButton(new SideButtonCompare(tile, CompareUtils.COMPARE_DAMAGE));
addSideButton(new SideButtonCompare(tile, CompareFlags.COMPARE_NBT)); addSideButton(new SideButtonCompare(tile, CompareUtils.COMPARE_NBT));
} }
@Override @Override

View File

@@ -2,7 +2,7 @@ package refinedstorage.gui;
import com.google.common.primitives.Ints; import com.google.common.primitives.Ints;
import net.minecraft.client.gui.GuiTextField; import net.minecraft.client.gui.GuiTextField;
import refinedstorage.api.storage.CompareFlags; import refinedstorage.api.storage.CompareUtils;
import refinedstorage.container.ContainerStorage; import refinedstorage.container.ContainerStorage;
import refinedstorage.gui.sidebutton.SideButtonCompare; import refinedstorage.gui.sidebutton.SideButtonCompare;
import refinedstorage.gui.sidebutton.SideButtonMode; import refinedstorage.gui.sidebutton.SideButtonMode;
@@ -44,8 +44,8 @@ public class GuiStorage extends GuiBase {
} }
if (gui.getCompareConfig() != null) { if (gui.getCompareConfig() != null) {
addSideButton(new SideButtonCompare(gui.getCompareConfig(), CompareFlags.COMPARE_DAMAGE)); addSideButton(new SideButtonCompare(gui.getCompareConfig(), CompareUtils.COMPARE_DAMAGE));
addSideButton(new SideButtonCompare(gui.getCompareConfig(), CompareFlags.COMPARE_NBT)); addSideButton(new SideButtonCompare(gui.getCompareConfig(), CompareUtils.COMPARE_NBT));
} }
priorityField = new GuiTextField(0, fontRendererObj, x + 98 + 1, y + 54 + 1, 25, fontRendererObj.FONT_HEIGHT); priorityField = new GuiTextField(0, fontRendererObj, x + 98 + 1, y + 54 + 1, 25, fontRendererObj.FONT_HEIGHT);

View File

@@ -2,7 +2,7 @@ package refinedstorage.gui.sidebutton;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.api.storage.CompareFlags; import refinedstorage.api.storage.CompareUtils;
import refinedstorage.gui.GuiBase; import refinedstorage.gui.GuiBase;
import refinedstorage.network.MessageCompareUpdate; import refinedstorage.network.MessageCompareUpdate;
import refinedstorage.tile.config.ICompareConfig; import refinedstorage.tile.config.ICompareConfig;
@@ -35,9 +35,9 @@ public class SideButtonCompare extends SideButton {
int ty = 0; int ty = 0;
if (mask == CompareFlags.COMPARE_DAMAGE) { if (mask == CompareUtils.COMPARE_DAMAGE) {
ty = 80; ty = 80;
} else if (mask == CompareFlags.COMPARE_NBT) { } else if (mask == CompareUtils.COMPARE_NBT) {
ty = 48; ty = 48;
} }

View File

@@ -13,6 +13,7 @@ import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.RefinedStorageAPI; import refinedstorage.api.RefinedStorageAPI;
import refinedstorage.api.network.INetworkMaster; import refinedstorage.api.network.INetworkMaster;
import refinedstorage.api.solderer.ISoldererRecipe; import refinedstorage.api.solderer.ISoldererRecipe;
import refinedstorage.api.storage.CompareUtils;
import refinedstorage.container.ContainerSolderer; import refinedstorage.container.ContainerSolderer;
import refinedstorage.inventory.BasicItemHandler; import refinedstorage.inventory.BasicItemHandler;
import refinedstorage.inventory.SoldererItemHandler; import refinedstorage.inventory.SoldererItemHandler;
@@ -50,7 +51,7 @@ public class TileSolderer extends TileNode {
if (newRecipe == null) { if (newRecipe == null) {
stop(); stop();
} else if (newRecipe != recipe) { } 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()))) { if (items.getStackInSlot(3) == null || (sameItem && ((items.getStackInSlot(3).stackSize + newRecipe.getResult().stackSize) <= items.getStackInSlot(3).getMaxStackSize()))) {
recipe = newRecipe; recipe = newRecipe;

View File

@@ -2,7 +2,7 @@ package refinedstorage.tile.config;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
import refinedstorage.RefinedStorageUtils; import refinedstorage.api.storage.CompareUtils;
public final class ModeFilter { public final class ModeFilter {
public static boolean respectsMode(IItemHandler filters, IModeConfig mode, int compare, ItemStack stack) { public static boolean respectsMode(IItemHandler filters, IModeConfig mode, int compare, ItemStack stack) {
@@ -15,7 +15,7 @@ public final class ModeFilter {
if (slot != null) { if (slot != null) {
slots++; slots++;
if (RefinedStorageUtils.compareStack(slot, stack, compare)) { if (CompareUtils.compareStack(slot, stack, compare)) {
return true; return true;
} }
} }
@@ -26,7 +26,7 @@ public final class ModeFilter {
for (int i = 0; i < filters.getSlots(); ++i) { for (int i = 0; i < filters.getSlots(); ++i) {
ItemStack slot = filters.getStackInSlot(i); ItemStack slot = filters.getStackInSlot(i);
if (slot != null && RefinedStorageUtils.compareStack(slot, stack, compare)) { if (slot != null && CompareUtils.compareStack(slot, stack, compare)) {
return false; return false;
} }
} }

View File

@@ -1,7 +1,7 @@
package refinedstorage.tile.controller; package refinedstorage.tile.controller;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import refinedstorage.RefinedStorageUtils; import refinedstorage.api.storage.CompareUtils;
public final class ClientNode { public final class ClientNode {
public ItemStack stack; public ItemStack stack;
@@ -18,7 +18,7 @@ public final class ClientNode {
return false; 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 @Override

View File

@@ -31,7 +31,7 @@ import refinedstorage.api.network.IGridHandler;
import refinedstorage.api.network.INetworkMaster; import refinedstorage.api.network.INetworkMaster;
import refinedstorage.api.network.INetworkNode; import refinedstorage.api.network.INetworkNode;
import refinedstorage.api.network.IWirelessGridHandler; import refinedstorage.api.network.IWirelessGridHandler;
import refinedstorage.api.storage.CompareFlags; import refinedstorage.api.storage.CompareUtils;
import refinedstorage.api.storage.IGroupedStorage; import refinedstorage.api.storage.IGroupedStorage;
import refinedstorage.api.storage.IStorage; import refinedstorage.api.storage.IStorage;
import refinedstorage.apiimpl.autocrafting.BasicCraftingTask; import refinedstorage.apiimpl.autocrafting.BasicCraftingTask;
@@ -320,7 +320,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
for (ICraftingPattern craftingPattern : getPatterns()) { for (ICraftingPattern craftingPattern : getPatterns()) {
for (ItemStack output : craftingPattern.getOutputs()) { for (ItemStack output : craftingPattern.getOutputs()) {
if (RefinedStorageUtils.compareStack(output, pattern, flags)) { if (CompareUtils.compareStack(output, pattern, flags)) {
patterns.add(craftingPattern); patterns.add(craftingPattern);
} }
} }
@@ -346,7 +346,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
int score = 0; int score = 0;
for (ItemStack input : patterns.get(i).getInputs()) { 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; score += stored != null ? stored.stackSize : 0;
} }

View File

@@ -3,7 +3,7 @@ package refinedstorage.tile.externalstorage;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.items.ItemHandlerHelper; import net.minecraftforge.items.ItemHandlerHelper;
import powercrystals.minefactoryreloaded.api.IDeepStorageUnit; import powercrystals.minefactoryreloaded.api.IDeepStorageUnit;
import refinedstorage.RefinedStorageUtils; import refinedstorage.api.storage.CompareUtils;
import refinedstorage.tile.config.ModeFilter; import refinedstorage.tile.config.ModeFilter;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
@@ -37,7 +37,7 @@ public class DeepStorageUnitStorage extends ExternalStorage {
public ItemStack insertItem(@Nonnull ItemStack stack, int size, boolean simulate) { public ItemStack insertItem(@Nonnull ItemStack stack, int size, boolean simulate) {
if (ModeFilter.respectsMode(externalStorage.getFilters(), externalStorage, externalStorage.getCompare(), stack)) { if (ModeFilter.respectsMode(externalStorage.getFilters(), externalStorage, externalStorage.getCompare(), stack)) {
if (unit.getStoredItemType() != null) { if (unit.getStoredItemType() != null) {
if (RefinedStorageUtils.compareStackNoQuantity(unit.getStoredItemType(), stack)) { if (CompareUtils.compareStackNoQuantity(unit.getStoredItemType(), stack)) {
if (getStored() + size > unit.getMaxStoredCount()) { if (getStored() + size > unit.getMaxStoredCount()) {
int remainingSpace = getCapacity() - getStored(); int remainingSpace = getCapacity() - getStored();
@@ -86,7 +86,7 @@ public class DeepStorageUnitStorage extends ExternalStorage {
@Override @Override
public ItemStack extractItem(@Nonnull ItemStack stack, int size, int flags) { 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) { if (size > unit.getStoredItemType().stackSize) {
size = unit.getStoredItemType().stackSize; size = unit.getStoredItemType().stackSize;
} }

View File

@@ -4,7 +4,7 @@ import com.jaquadro.minecraft.storagedrawers.api.storage.IDrawer;
import com.jaquadro.minecraft.storagedrawers.api.storage.attribute.IVoidable; import com.jaquadro.minecraft.storagedrawers.api.storage.attribute.IVoidable;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.items.ItemHandlerHelper; import net.minecraftforge.items.ItemHandlerHelper;
import refinedstorage.RefinedStorageUtils; import refinedstorage.api.storage.CompareUtils;
import refinedstorage.tile.config.ModeFilter; import refinedstorage.tile.config.ModeFilter;
import java.util.Collections; import java.util.Collections;
@@ -88,7 +88,7 @@ public class DrawerStorage extends ExternalStorage {
@Override @Override
public ItemStack extractItem(ItemStack stack, int size, int flags) { 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()) { if (size > drawer.getStoredItemCount()) {
size = drawer.getStoredItemCount(); size = drawer.getStoredItemCount();
} }

View File

@@ -1,7 +1,7 @@
package refinedstorage.tile.externalstorage; package refinedstorage.tile.externalstorage;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import refinedstorage.RefinedStorageUtils; import refinedstorage.api.storage.CompareUtils;
import refinedstorage.api.storage.IStorage; import refinedstorage.api.storage.IStorage;
import java.util.List; import java.util.List;
@@ -22,7 +22,7 @@ public abstract class ExternalStorage implements IStorage {
return true; return true;
} else { } else {
for (int i = 0; i < items.size(); ++i) { 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; cache = items;
return true; return true;

View File

@@ -3,7 +3,7 @@ package refinedstorage.tile.externalstorage;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.ItemHandlerHelper; import net.minecraftforge.items.ItemHandlerHelper;
import refinedstorage.RefinedStorageUtils; import refinedstorage.api.storage.CompareUtils;
import refinedstorage.tile.config.ModeFilter; import refinedstorage.tile.config.ModeFilter;
import java.util.ArrayList; import java.util.ArrayList;
@@ -50,7 +50,7 @@ public class ItemHandlerStorage extends ExternalStorage {
for (int i = 0; i < handler.getSlots(); ++i) { for (int i = 0; i < handler.getSlots(); ++i) {
ItemStack slot = handler.getStackInSlot(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); size = Math.min(size, slot.stackSize);
ItemStack took = ItemHandlerHelper.copyStackWithSize(slot, size); ItemStack took = ItemHandlerHelper.copyStackWithSize(slot, size);

View File

@@ -15,6 +15,7 @@ import refinedstorage.RefinedStorageBlocks;
import refinedstorage.RefinedStorageItems; import refinedstorage.RefinedStorageItems;
import refinedstorage.RefinedStorageUtils; import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.network.IGridHandler; import refinedstorage.api.network.IGridHandler;
import refinedstorage.api.storage.CompareUtils;
import refinedstorage.block.BlockGrid; import refinedstorage.block.BlockGrid;
import refinedstorage.block.EnumGridType; import refinedstorage.block.EnumGridType;
import refinedstorage.container.ContainerGrid; import refinedstorage.container.ContainerGrid;
@@ -174,7 +175,7 @@ public class TileGrid extends TileNode implements IGrid {
craftedItems += crafted.stackSize; 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; break;
} }
} }