Mark OreStack and WrappedStack final, and clean up some of the code in WrappedStack
This commit is contained in:
parent
79bf272f28
commit
80afa0e95c
|
@ -8,7 +8,7 @@ import net.minecraft.nbt.NBTTagCompound;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class OreStack implements Comparable<OreStack> {
|
public final class OreStack implements Comparable<OreStack> {
|
||||||
|
|
||||||
public String oreName;
|
public String oreName;
|
||||||
public int stackSize;
|
public int stackSize;
|
||||||
|
|
|
@ -12,258 +12,224 @@ import java.util.ArrayList;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class WrappedStack implements Comparable<WrappedStack> {
|
public final class WrappedStack implements Comparable<WrappedStack> {
|
||||||
|
|
||||||
private final String objectType;
|
|
||||||
private final Object wrappedStack;
|
private final Object wrappedStack;
|
||||||
private int stackSize;
|
private int stackSize;
|
||||||
|
|
||||||
public WrappedStack()
|
public WrappedStack() {
|
||||||
{
|
|
||||||
objectType = null;
|
|
||||||
stackSize = -1;
|
stackSize = -1;
|
||||||
wrappedStack = null;
|
wrappedStack = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private WrappedStack(Object object)
|
private WrappedStack(Object object) {
|
||||||
{
|
|
||||||
if (object instanceof Item)
|
if (object instanceof Item) {
|
||||||
{
|
|
||||||
object = new ItemStack((Item) object);
|
object = new ItemStack((Item) object);
|
||||||
}
|
}
|
||||||
else if (object instanceof Block)
|
else if (object instanceof Block) {
|
||||||
{
|
|
||||||
object = new ItemStack((Block) object);
|
object = new ItemStack((Block) object);
|
||||||
}
|
}
|
||||||
else if (object instanceof Fluid)
|
else if (object instanceof Fluid) {
|
||||||
{
|
|
||||||
object = new FluidStack((Fluid) object, 1000);
|
object = new FluidStack((Fluid) object, 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (object instanceof ItemStack)
|
if (object instanceof ItemStack) {
|
||||||
{
|
|
||||||
if (((ItemStack) object).getItem() != null)
|
if (((ItemStack) object).getItem() != null) {
|
||||||
{
|
|
||||||
ItemStack itemStackObject = (ItemStack) object;
|
|
||||||
objectType = "itemstack";
|
|
||||||
stackSize = ((ItemStack) object).stackSize;
|
stackSize = ((ItemStack) object).stackSize;
|
||||||
wrappedStack = ItemHelper.clone((ItemStack) object, 1);
|
wrappedStack = ItemHelper.clone((ItemStack) object, 1);
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
objectType = null;
|
|
||||||
stackSize = -1;
|
stackSize = -1;
|
||||||
wrappedStack = null;
|
wrappedStack = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (object instanceof OreStack)
|
else if (object instanceof OreStack) {
|
||||||
{
|
|
||||||
OreStack oreStack = (OreStack) object;
|
OreStack oreStack = (OreStack) object;
|
||||||
objectType = "orestack";
|
|
||||||
stackSize = oreStack.stackSize;
|
stackSize = oreStack.stackSize;
|
||||||
oreStack.stackSize = 1;
|
oreStack.stackSize = 1;
|
||||||
wrappedStack = oreStack;
|
wrappedStack = oreStack;
|
||||||
}
|
}
|
||||||
else if (object instanceof ArrayList)
|
else if (object instanceof ArrayList) {
|
||||||
{
|
|
||||||
ArrayList<?> objectList = (ArrayList<?>) object;
|
ArrayList<?> objectList = (ArrayList<?>) object;
|
||||||
|
|
||||||
OreStack possibleOreStack = OreStack.getOreStackFromList(objectList);
|
OreStack possibleOreStack = OreStack.getOreStackFromList(objectList);
|
||||||
|
|
||||||
if (possibleOreStack != null)
|
if (possibleOreStack != null) {
|
||||||
{
|
|
||||||
objectType = "orestack";
|
|
||||||
stackSize = possibleOreStack.stackSize;
|
stackSize = possibleOreStack.stackSize;
|
||||||
possibleOreStack.stackSize = 1;
|
possibleOreStack.stackSize = 1;
|
||||||
wrappedStack = possibleOreStack;
|
wrappedStack = possibleOreStack;
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
objectType = null;
|
|
||||||
stackSize = -1;
|
stackSize = -1;
|
||||||
wrappedStack = null;
|
wrappedStack = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (object instanceof FluidStack)
|
else if (object instanceof FluidStack) {
|
||||||
{
|
|
||||||
FluidStack fluidStack = ((FluidStack) object).copy();
|
FluidStack fluidStack = ((FluidStack) object).copy();
|
||||||
objectType = "fluidstack";
|
|
||||||
stackSize = fluidStack.amount;
|
stackSize = fluidStack.amount;
|
||||||
fluidStack.amount = 1;
|
fluidStack.amount = 1;
|
||||||
wrappedStack = fluidStack;
|
wrappedStack = fluidStack;
|
||||||
}
|
}
|
||||||
else if (object instanceof WrappedStack)
|
else if (object instanceof WrappedStack) {
|
||||||
{
|
|
||||||
WrappedStack wrappedStackObject = (WrappedStack) object;
|
WrappedStack wrappedStackObject = (WrappedStack) object;
|
||||||
|
|
||||||
if (wrappedStackObject.getWrappedObject() != null)
|
if (wrappedStackObject.getWrappedObject() != null) {
|
||||||
{
|
|
||||||
this.objectType = wrappedStackObject.objectType;
|
|
||||||
this.stackSize = wrappedStackObject.stackSize;
|
this.stackSize = wrappedStackObject.stackSize;
|
||||||
this.wrappedStack = wrappedStackObject.wrappedStack;
|
this.wrappedStack = wrappedStackObject.wrappedStack;
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
objectType = null;
|
|
||||||
stackSize = -1;
|
stackSize = -1;
|
||||||
wrappedStack = null;
|
wrappedStack = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
objectType = null;
|
|
||||||
stackSize = -1;
|
stackSize = -1;
|
||||||
wrappedStack = null;
|
wrappedStack = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private WrappedStack(Object object, int stackSize)
|
private WrappedStack(Object object, int stackSize) {
|
||||||
{
|
|
||||||
if (object instanceof Item)
|
if (object instanceof Item) {
|
||||||
{
|
|
||||||
object = new ItemStack((Item) object);
|
object = new ItemStack((Item) object);
|
||||||
}
|
}
|
||||||
else if (object instanceof Block)
|
else if (object instanceof Block) {
|
||||||
{
|
|
||||||
object = new ItemStack((Block) object);
|
object = new ItemStack((Block) object);
|
||||||
}
|
}
|
||||||
else if (object instanceof Fluid)
|
else if (object instanceof Fluid) {
|
||||||
{
|
|
||||||
object = new FluidStack((Fluid) object, 1000);
|
object = new FluidStack((Fluid) object, 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (object instanceof ItemStack)
|
if (object instanceof ItemStack) {
|
||||||
{
|
|
||||||
objectType = "itemstack";
|
|
||||||
this.stackSize = stackSize;
|
this.stackSize = stackSize;
|
||||||
wrappedStack = ItemHelper.clone((ItemStack) object, 1);
|
wrappedStack = ItemHelper.clone((ItemStack) object, 1);
|
||||||
}
|
}
|
||||||
else if (object instanceof OreStack)
|
else if (object instanceof OreStack) {
|
||||||
{
|
|
||||||
OreStack oreStack = (OreStack) object;
|
OreStack oreStack = (OreStack) object;
|
||||||
objectType = "orestack";
|
|
||||||
this.stackSize = stackSize;
|
this.stackSize = stackSize;
|
||||||
oreStack.stackSize = 1;
|
oreStack.stackSize = 1;
|
||||||
wrappedStack = oreStack;
|
wrappedStack = oreStack;
|
||||||
}
|
}
|
||||||
else if (object instanceof ArrayList)
|
else if (object instanceof ArrayList) {
|
||||||
{
|
|
||||||
ArrayList<?> objectList = (ArrayList<?>) object;
|
ArrayList<?> objectList = (ArrayList<?>) object;
|
||||||
|
|
||||||
OreStack possibleOreStack = OreStack.getOreStackFromList(objectList);
|
OreStack possibleOreStack = OreStack.getOreStackFromList(objectList);
|
||||||
|
|
||||||
if (possibleOreStack != null)
|
if (possibleOreStack != null) {
|
||||||
{
|
|
||||||
objectType = "orestack";
|
|
||||||
this.stackSize = stackSize;
|
this.stackSize = stackSize;
|
||||||
possibleOreStack.stackSize = 1;
|
possibleOreStack.stackSize = 1;
|
||||||
wrappedStack = possibleOreStack;
|
wrappedStack = possibleOreStack;
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
objectType = null;
|
|
||||||
this.stackSize = -1;
|
this.stackSize = -1;
|
||||||
wrappedStack = null;
|
wrappedStack = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (object instanceof FluidStack)
|
else if (object instanceof FluidStack) {
|
||||||
{
|
|
||||||
FluidStack fluidStack = (FluidStack) object;
|
FluidStack fluidStack = (FluidStack) object;
|
||||||
objectType = "fluidstack";
|
|
||||||
this.stackSize = stackSize;
|
this.stackSize = stackSize;
|
||||||
fluidStack.amount = 1;
|
fluidStack.amount = 1;
|
||||||
wrappedStack = fluidStack;
|
wrappedStack = fluidStack;
|
||||||
}
|
}
|
||||||
else if (object instanceof WrappedStack)
|
else if (object instanceof WrappedStack) {
|
||||||
{
|
|
||||||
WrappedStack wrappedStackObject = (WrappedStack) object;
|
WrappedStack wrappedStackObject = (WrappedStack) object;
|
||||||
|
|
||||||
if (wrappedStackObject.getWrappedObject() != null)
|
if (wrappedStackObject.getWrappedObject() != null) {
|
||||||
{
|
|
||||||
this.objectType = wrappedStackObject.objectType;
|
|
||||||
this.stackSize = stackSize;
|
this.stackSize = stackSize;
|
||||||
this.wrappedStack = wrappedStackObject.wrappedStack;
|
this.wrappedStack = wrappedStackObject.wrappedStack;
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
objectType = null;
|
|
||||||
this.stackSize = -1;
|
this.stackSize = -1;
|
||||||
wrappedStack = null;
|
wrappedStack = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
objectType = null;
|
|
||||||
this.stackSize = -1;
|
this.stackSize = -1;
|
||||||
wrappedStack = null;
|
wrappedStack = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object getWrappedObject()
|
public Object getWrappedObject() {
|
||||||
{
|
|
||||||
return wrappedStack;
|
return wrappedStack;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean canBeWrapped(Object object)
|
public static boolean canBeWrapped(Object object) {
|
||||||
{
|
|
||||||
if (object instanceof WrappedStack)
|
if (object instanceof WrappedStack) {
|
||||||
{
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (object instanceof Item || object instanceof Block)
|
else if (object instanceof Item || object instanceof Block) {
|
||||||
{
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (object instanceof ItemStack)
|
else if (object instanceof ItemStack) {
|
||||||
{
|
|
||||||
if (((ItemStack) object).getItem() != null)
|
if (((ItemStack) object).getItem() != null) {
|
||||||
{
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (object instanceof OreStack)
|
else if (object instanceof OreStack) {
|
||||||
{
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (object instanceof List)
|
else if (object instanceof List) {
|
||||||
{
|
|
||||||
if (OreStack.getOreStackFromList((List<?>) object) != null)
|
if (OreStack.getOreStackFromList((List<?>) object) != null) {
|
||||||
{
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (object instanceof Fluid || object instanceof FluidStack)
|
else if (object instanceof Fluid || object instanceof FluidStack) {
|
||||||
{
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getStackSize()
|
public int getStackSize() {
|
||||||
{
|
|
||||||
return stackSize;
|
return stackSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setStackSize(int stackSize)
|
public void setStackSize(int stackSize) {
|
||||||
{
|
|
||||||
this.stackSize = stackSize;
|
this.stackSize = stackSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static WrappedStack wrap(Object object)
|
public static WrappedStack wrap(Object object) {
|
||||||
{
|
|
||||||
if (canBeWrapped(object))
|
if (canBeWrapped(object)) {
|
||||||
{
|
|
||||||
return new WrappedStack(object);
|
return new WrappedStack(object);
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static WrappedStack wrap(Object object, int stackSize)
|
public static WrappedStack wrap(Object object, int stackSize) {
|
||||||
{
|
|
||||||
if (canBeWrapped(object))
|
if (canBeWrapped(object)) {
|
||||||
{
|
|
||||||
return new WrappedStack(object, stackSize);
|
return new WrappedStack(object, stackSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -271,19 +237,17 @@ public class WrappedStack implements Comparable<WrappedStack> {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object object)
|
public boolean equals(Object object) {
|
||||||
{
|
|
||||||
return object instanceof WrappedStack && (this.compareTo((WrappedStack) object) == 0);
|
return object instanceof WrappedStack && (this.compareTo((WrappedStack) object) == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* Sort order (class-wise) goes ItemStack, OreStack, EnergyStack,
|
* Sort order (class-wise) goes ItemStack, OreStack, EnergyStack,
|
||||||
* FluidStack, null
|
* FluidStack, null
|
||||||
* @see java.lang.Comparable#compareTo(java.lang.Object)
|
* @see java.lang.Comparable#compareTo(java.lang.Object)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int compareTo(WrappedStack wrappedStack)
|
public int compareTo(WrappedStack wrappedStack) {
|
||||||
{
|
|
||||||
return COMPARATOR.compare(this, wrappedStack);
|
return COMPARATOR.compare(this, wrappedStack);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -329,12 +293,10 @@ public class WrappedStack implements Comparable<WrappedStack> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Comparator<WrappedStack> COMPARATOR = new Comparator<WrappedStack>()
|
public static final Comparator<WrappedStack> COMPARATOR = new Comparator<WrappedStack>() {
|
||||||
{
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int compare(WrappedStack wrappedStack1, WrappedStack wrappedStack2)
|
public int compare(WrappedStack wrappedStack1, WrappedStack wrappedStack2) {
|
||||||
{
|
|
||||||
|
|
||||||
if (wrappedStack1.wrappedStack instanceof ItemStack) {
|
if (wrappedStack1.wrappedStack instanceof ItemStack) {
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue