diff --git a/build.gradle b/build.gradle index 940a72974..5d73f1d72 100755 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,7 @@ apply plugin: 'maven' apply plugin: 'maven-publish' apply plugin: 'net.minecraftforge.gradle.forge' -version = "1.2.6" +version = "1.3" group = "refinedstorage" archivesBaseName = "refinedstorage" @@ -28,10 +28,10 @@ sourceCompatibility = 1.8 targetCompatibility = 1.8 minecraft { - version = "1.10.2-12.18.2.2151" + version = "1.11-13.19.0.2160" runDir = "run" useDepAts = true - mappings = "stable_29" + mappings = "snapshot_20161126" } repositories { @@ -41,21 +41,12 @@ repositories { maven { url "http://maven.epoxide.xyz" } - maven { - name = "ic2" - url = "http://maven.ic2.player.to/" - } - maven { - url "http://maven.amadornes.com/" - } } dependencies { - deobfCompile "mezz.jei:jei_1.10.2:3.13.3.373:api" - runtime "mezz.jei:jei_1.10.2:3.13.3.373" - deobfCompile "net.darkhax.tesla:Tesla:1.10.2-1.2.1.49" - deobfCompile "net.industrial-craft:industrialcraft-2:2.6.105-ex110:api" - deobfCompile "MCMultiPart:MCMultiPart:1.3.0:universal" + deobfCompile "mezz.jei:jei_1.11:4.0.3.196:api" + runtime "mezz.jei:jei_1.11:4.0.3.196" + deobfCompile "net.darkhax.tesla:Tesla:1.11-1.3.0.51" } processResources { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/RS.java b/src/main/java/com/raoulvdberge/refinedstorage/RS.java index 6025ea7bc..48c236a6d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/RS.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/RS.java @@ -2,7 +2,6 @@ package com.raoulvdberge.refinedstorage; import com.raoulvdberge.refinedstorage.proxy.ProxyCommon; import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fml.common.Mod; @@ -36,13 +35,8 @@ public final class RS { public final SimpleNetworkWrapper network = NetworkRegistry.INSTANCE.newSimpleChannel(ID); public final CreativeTabs tab = new CreativeTabs(ID) { @Override - public ItemStack getIconItemStack() { - return new ItemStack(RSItems.STORAGE_HOUSING); - } - - @Override - public Item getTabIconItem() { - return null; + public ItemStack getTabIconItem() { + return getIconItemStack(); } }; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/RSUtils.java b/src/main/java/com/raoulvdberge/refinedstorage/RSUtils.java index e00d8ee0c..feb83954f 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/RSUtils.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/RSUtils.java @@ -16,14 +16,13 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; +import net.minecraft.util.NonNullList; import net.minecraftforge.common.util.Constants; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.IFluidContainerItem; import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler; -import net.minecraftforge.fluids.capability.wrappers.FluidHandlerWrapper; import net.minecraftforge.fml.common.network.ByteBufUtils; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; @@ -35,6 +34,7 @@ import org.apache.commons.lang3.tuple.Pair; import java.math.RoundingMode; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; +import java.util.List; import java.util.Locale; import java.util.function.Function; @@ -53,7 +53,7 @@ public final class RSUtils { public static void writeItemStack(ByteBuf buf, INetworkMaster network, ItemStack stack) { buf.writeInt(Item.getIdFromItem(stack.getItem())); - buf.writeInt(stack.stackSize); + buf.writeInt(stack.getCount()); buf.writeInt(stack.getItemDamage()); ByteBufUtils.writeTag(buf, stack.getItem().getNBTShareTag(stack)); buf.writeInt(API.instance().getItemStackHashCode(stack)); @@ -84,6 +84,18 @@ public final class RSUtils { } } + public static NonNullList toNonNullList(List list) { + NonNullList other = NonNullList.create(); + + for (ItemStack item : list) { + if (item != null) { + other.add(item); + } + } + + return other; + } + public static void writeItems(IItemHandler handler, int id, NBTTagCompound tag) { NBTTagList tagList = new NBTTagList(); @@ -111,10 +123,8 @@ public final class RSUtils { for (int i = 0; i < tagList.tagCount(); i++) { int slot = tagList.getCompoundTagAt(i).getInteger(NBT_SLOT); - ItemStack stack = ItemStack.loadItemStackFromNBT(tagList.getCompoundTagAt(i)); - if (slot >= 0 && slot < handler.getSlots()) { - handler.setStackInSlot(slot, stack); + handler.setStackInSlot(slot, new ItemStack(tagList.getCompoundTagAt(i))); } } } @@ -147,9 +157,11 @@ public final class RSUtils { for (int i = 0; i < tagList.tagCount(); i++) { int slot = tagList.getCompoundTagAt(i).getInteger(NBT_SLOT); - ItemStack stack = ItemStack.loadItemStackFromNBT(tagList.getCompoundTagAt(i)); + ItemStack stack = new ItemStack(tagList.getCompoundTagAt(i)); - inventory.setInventorySlotContents(slot, stack); + if (!stack.isEmpty()) { + inventory.setInventorySlotContents(slot, stack); + } } } } @@ -220,23 +232,17 @@ public final class RSUtils { return null; } - IFluidHandler handler = null; - - if (tile.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, side)) { - handler = tile.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, side); - } else if (tile instanceof net.minecraftforge.fluids.IFluidHandler) { - handler = new FluidHandlerWrapper((net.minecraftforge.fluids.IFluidHandler) tile, side); + if (!tile.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, side)) { + return null; } - return handler; + return tile.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, side); } @SuppressWarnings("deprecation") public static FluidStack getFluidFromStack(ItemStack stack, boolean simulate) { if (stack.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null)) { return stack.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null).drain(Fluid.BUCKET_VOLUME, !simulate); - } else if (stack.getItem() instanceof IFluidContainerItem) { - return ((IFluidContainerItem) stack.getItem()).drain(stack, Fluid.BUCKET_VOLUME, !simulate); } return null; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/autocrafting/task/ICraftingStep.java b/src/main/java/com/raoulvdberge/refinedstorage/api/autocrafting/task/ICraftingStep.java index bdf1b9165..2853bef26 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/autocrafting/task/ICraftingStep.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/autocrafting/task/ICraftingStep.java @@ -67,7 +67,7 @@ public interface ICraftingStep { /** * @param stack the output to check - * @return true if we received the given output (based upon item and stacksize), false otherwise + * @return true if we received the given output (based upon item and getCount()), false otherwise */ boolean hasReceivedOutput(ItemStack stack); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/util/IItemStackList.java b/src/main/java/com/raoulvdberge/refinedstorage/api/util/IItemStackList.java index 044bbf76c..a93a2ca91 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/util/IItemStackList.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/util/IItemStackList.java @@ -26,7 +26,7 @@ public interface IItemStackList { * @param stack the stack */ default void add(@Nonnull ItemStack stack) { - add(stack, stack.stackSize); + add(stack, stack.getCount()); } /** @@ -47,7 +47,7 @@ public interface IItemStackList { * @return whether the remove was successful for the full amount */ default boolean remove(@Nonnull ItemStack stack, boolean removeIfReachedZero) { - return remove(stack, stack.stackSize, removeIfReachedZero); + return remove(stack, stack.getCount(), removeIfReachedZero); } /** @@ -70,7 +70,7 @@ public interface IItemStackList { * @return whether the remove was successful for the full amount */ default boolean trackedRemove(@Nonnull ItemStack stack, boolean removeIfReachedZero) { - return trackedRemove(stack, stack.stackSize, removeIfReachedZero); + return trackedRemove(stack, stack.getCount(), removeIfReachedZero); } /** diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingPattern.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingPattern.java index 96108ad5e..57ac3cbea 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingPattern.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingPattern.java @@ -131,7 +131,10 @@ public class CraftingPattern implements ICraftingPattern { .map(OreDictionary::getOres) .flatMap(List::stream) .map(ItemStack::copy) - .map(s -> {s.stackSize = input.stackSize; return s;}) + .map(s -> { + s.setCount(input.getCount()); + return s; + }) .collect(Collectors.toList())); } } @@ -258,7 +261,7 @@ public class CraftingPattern implements ICraftingPattern { for (ItemStack output : outputs) { if (API.instance().getComparer().isEqual(requested, output, compare)) { - quantity += output.stackSize; + quantity += output.getCount(); if (!ItemPattern.isProcessing(stack)) { break; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/registry/CraftingTaskFactory.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/registry/CraftingTaskFactory.java index 5004e68fb..10b52f76a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/registry/CraftingTaskFactory.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/registry/CraftingTaskFactory.java @@ -61,9 +61,9 @@ public class CraftingTaskFactory implements ICraftingTaskFactory { Deque toInsert = new ArrayDeque<>(); for (int i = 0; i < toInsertList.tagCount(); ++i) { - ItemStack insertStack = ItemStack.loadItemStackFromNBT(toInsertList.getCompoundTagAt(i)); + ItemStack insertStack = new ItemStack(toInsertList.getCompoundTagAt(i)); - if (insertStack != null) { + if (!insertStack.isEmpty()) { toInsert.add(insertStack); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingStep.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingStep.java index 299aa1f2c..bb1e0a7a5 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingStep.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingStep.java @@ -42,9 +42,9 @@ public abstract class CraftingStep implements ICraftingStep { } public boolean readFromNBT(NBTTagCompound tag) { - ItemStack patternStack = ItemStack.loadItemStackFromNBT(tag.getCompoundTag(NBT_PATTERN)); + ItemStack patternStack = new ItemStack(tag.getCompoundTag(NBT_PATTERN)); - if (patternStack != null) { + if (!patternStack.isEmpty()) { TileEntity container = network.getNetworkWorld().getTileEntity(BlockPos.fromLong(tag.getLong(NBT_PATTERN_CONTAINER))); if (container instanceof ICraftingPatternContainer) { @@ -99,7 +99,7 @@ public abstract class CraftingStep implements ICraftingStep { public boolean hasReceivedOutputs() { for (ItemStack stack : pattern.getOutputs()) { Integer received = satisfied.get(API.instance().getItemStackHashCode(stack)); - if (received == null || stack.stackSize > received) { + if (received == null || stack.getCount() > received) { return false; } } @@ -110,7 +110,7 @@ public abstract class CraftingStep implements ICraftingStep { @Override public boolean hasReceivedOutput(ItemStack stack) { Integer received = satisfied.get(API.instance().getItemStackHashCode(stack)); - return received != null && received >= stack.stackSize; + return received != null && received >= stack.getCount(); } @Override @@ -128,14 +128,14 @@ public abstract class CraftingStep implements ICraftingStep { received = 0; } if (API.instance().getComparer().isEqual(stack, output, CraftingTask.DEFAULT_COMPARE | (getPattern().isOredict() ? IComparer.COMPARE_OREDICT : 0))) { - if (received < output.stackSize) { - int toReceive = Math.min(output.stackSize - received, stack.stackSize); + if (received < output.getCount()) { + int toReceive = Math.min(output.getCount() - received, stack.getCount()); satisfied.put(hashcode, received + toReceive); - stack.stackSize -= toReceive; + stack.shrink(toReceive); network.markCraftingMonitorForUpdate(); - if (stack.stackSize == 0) { + if (stack.getCount() == 0) { return true; } } @@ -163,7 +163,7 @@ public abstract class CraftingStep implements ICraftingStep { } protected AvailableType isItemAvailable(IItemStackList items, IFluidStackList fluids, ItemStack stack, ItemStack actualStack, int compare) { - if (actualStack == null || actualStack.stackSize == 0 || !items.trackedRemove(actualStack, stack.stackSize, true)) { + if (actualStack == null || actualStack.getCount() == 0 || !items.trackedRemove(actualStack, stack.getCount(), true)) { FluidStack fluidInItem = RSUtils.getFluidFromStack(stack, true); if (fluidInItem != null && RSUtils.hasFluidBucket(fluidInItem)) { @@ -187,7 +187,7 @@ public abstract class CraftingStep implements ICraftingStep { compare |= IComparer.COMPARE_DAMAGE; } - ItemStack input = network.extractItem(insertStack, insertStack.stackSize, compare, false); + ItemStack input = network.extractItem(insertStack, insertStack.getCount(), compare, false); if (input != null) { actualInputs.add(input); } else { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingStepCraft.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingStepCraft.java index 480bea119..ef200cb00 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingStepCraft.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingStepCraft.java @@ -1,6 +1,5 @@ package com.raoulvdberge.refinedstorage.apiimpl.autocrafting.task; -import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPattern; import com.raoulvdberge.refinedstorage.api.network.INetworkMaster; import com.raoulvdberge.refinedstorage.api.util.IComparer; @@ -13,7 +12,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraftforge.common.util.Constants; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.items.ItemHandlerHelper; import java.util.*; import java.util.stream.Collectors; @@ -107,7 +105,7 @@ public class CraftingStepCraft extends CraftingStep { NBTTagList toInsertList = tag.getTagList(NBT_TO_INSERT, Constants.NBT.TAG_COMPOUND); toInsert = new ArrayList<>(toInsertList.tagCount()); for (int i = 0; i < toInsertList.tagCount(); ++i) { - toInsert.add(ItemStack.loadItemStackFromNBT(toInsertList.getCompoundTagAt(i))); + toInsert.add(new ItemStack(toInsertList.getCompoundTagAt(i))); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingStepProcess.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingStepProcess.java index b6dee0775..5b9da9054 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingStepProcess.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingStepProcess.java @@ -1,6 +1,5 @@ package com.raoulvdberge.refinedstorage.apiimpl.autocrafting.task; -import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPattern; import com.raoulvdberge.refinedstorage.api.network.INetworkMaster; import com.raoulvdberge.refinedstorage.api.util.IComparer; @@ -49,9 +48,9 @@ public class CraftingStepProcess extends CraftingStep { AvailableType type = isItemAvailable(items, fluids, stack, actualStack, compare); if (type == AvailableType.ITEM) { - toInsert.add(ItemHandlerHelper.copyStackWithSize(actualStack, stack.stackSize)); + toInsert.add(ItemHandlerHelper.copyStackWithSize(actualStack, stack.getCount())); } else if (type == AvailableType.FLUID) { - toInsert.add(ItemHandlerHelper.copyStackWithSize(stack, stack.stackSize)); + toInsert.add(ItemHandlerHelper.copyStackWithSize(stack, stack.getCount())); } else { items.undo(); fluids.undo(); @@ -105,14 +104,14 @@ public class CraftingStepProcess extends CraftingStep { ItemStack remainder = null; for (Integer slot : availableSlots) { remainder = dest.insertItem(slot, current, true); - if (remainder == null || current.stackSize != remainder.stackSize) { + if (remainder == null || current.getCount() != remainder.getCount()) { availableSlots.remove(slot); break; } } - if (remainder == null || remainder.stackSize <= 0) { + if (remainder == null || remainder.getCount() <= 0) { current = stacks.poll(); - } else if (current.stackSize == remainder.stackSize) { + } else if (current.getCount() == remainder.getCount()) { break; // Can't be inserted } else { current = remainder; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java index 7e755a82d..18e52b35d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java @@ -13,7 +13,10 @@ import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.api.util.IFluidStackList; import com.raoulvdberge.refinedstorage.api.util.IItemStackList; import com.raoulvdberge.refinedstorage.apiimpl.API; -import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.*; +import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementError; +import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementInfo; +import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementItemRender; +import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementText; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementFluidStack; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementItemStack; import com.raoulvdberge.refinedstorage.apiimpl.util.ItemStackList; @@ -134,44 +137,44 @@ public class CraftingTask implements ICraftingTask { // This handles recipes that use the output as input for the sub recipe final int lambdaCompare = compare; ICraftingPattern inputPattern = null; - int available = (extraStack == null ? 0 : extraStack.stackSize) + (networkStack == null ? 0 : networkStack.stackSize); - if (available < input.stackSize) { + int available = (extraStack == null ? 0 : extraStack.getCount()) + (networkStack == null ? 0 : networkStack.getCount()); + if (available < input.getCount()) { inputPattern = network.getPattern(input, compare); if (inputPattern != null) { if (inputPattern.getInputs().stream().anyMatch(s -> API.instance().getComparer().isEqual(s, input, lambdaCompare))) { int craftQuantity = inputPattern.getQuantityPerRequest(input, compare); // The needed amount is the actual needed amount of extraStacks + the needed input (twice so you can keep repeating it) - long needed = (networkStack == null ? 0 : -networkStack.stackSize) + input.stackSize + inputPattern.getInputs().stream().filter(s -> API.instance().getComparer().isEqual(s, input, lambdaCompare)).count() * 2; + long needed = (networkStack == null ? 0 : -networkStack.getCount()) + input.getCount() + inputPattern.getInputs().stream().filter(s -> API.instance().getComparer().isEqual(s, input, lambdaCompare)).count() * 2; do { calculate(networkList, networkFluidList, inputPattern, toInsert); toCraft.add(ItemHandlerHelper.copyStackWithSize(input, craftQuantity)); extraStack = toInsert.get(input, compare); - } while (extraStack != null && extraStack.stackSize < needed); + } while (extraStack != null && extraStack.getCount() < needed); } } } - while (input.stackSize > 0) { - if (extraStack != null && extraStack.stackSize > 0) { - int takeQuantity = Math.min(extraStack.stackSize, input.stackSize); + while (input.getCount() > 0) { + if (extraStack != null && extraStack.getCount() > 0) { + int takeQuantity = Math.min(extraStack.getCount(), input.getCount()); ItemStack inputStack = ItemHandlerHelper.copyStackWithSize(extraStack, takeQuantity); actualInputs.add(inputStack.copy()); - input.stackSize -= takeQuantity; + input.shrink(takeQuantity); if (!inputStack.isItemStackDamageable() || !inputStack.isItemDamaged()) { toCraft.add(inputStack); } toInsert.remove(inputStack, true); - if (input.stackSize > 0) { + if (input.getCount() > 0) { extraStack = toInsert.get(input, compare); } - } else if (networkStack != null && networkStack.stackSize > 0) { - int takeQuantity = Math.min(networkStack.stackSize, input.stackSize); + } else if (networkStack != null && networkStack.getCount() > 0) { + int takeQuantity = Math.min(networkStack.getCount(), input.getCount()); ItemStack inputStack = ItemHandlerHelper.copyStackWithSize(networkStack, takeQuantity); toTake.add(inputStack.copy()); actualInputs.add(inputStack.copy()); - input.stackSize -= takeQuantity; + input.shrink(takeQuantity); networkList.remove(inputStack, true); - if (input.stackSize > 0) { + if (input.getCount() > 0) { networkStack = networkList.get(inputStack, compare); } } else { @@ -181,12 +184,12 @@ public class CraftingTask implements ICraftingTask { if (inputPattern != null) { ItemStack actualCraft = inputPattern.getActualOutput(input, compare); - int craftQuantity = Math.min(inputPattern.getQuantityPerRequest(input, compare), input.stackSize); + int craftQuantity = Math.min(inputPattern.getQuantityPerRequest(input, compare), input.getCount()); ItemStack inputCrafted = ItemHandlerHelper.copyStackWithSize(actualCraft, craftQuantity); toCraft.add(inputCrafted.copy()); actualInputs.add(inputCrafted.copy()); calculate(networkList, networkFluidList, inputPattern, toInsert); - input.stackSize -= craftQuantity; + input.shrink(craftQuantity); if (!recurseFound) { // Calculate added all the crafted outputs toInsert // So we remove the ones we use from toInsert @@ -196,15 +199,15 @@ public class CraftingTask implements ICraftingTask { } else { // Fluid checks are with a stack size of one ItemStack fluidCheck = ItemHandlerHelper.copyStackWithSize(input, 1); - while (input.stackSize > 0 && doFluidCalculation(networkList, networkFluidList, fluidCheck, toInsert)) { + while (input.getCount() > 0 && doFluidCalculation(networkList, networkFluidList, fluidCheck, toInsert)) { actualInputs.add(fluidCheck); - input.stackSize -= 1; + input.shrink(1); } // When it isn't a fluid or just doesn't have the needed fluids - if (input.stackSize > 0) { + if (input.getCount() > 0) { missing.add(input.copy()); - input.stackSize = 0; + input.setCount(0); } } } @@ -246,12 +249,12 @@ public class CraftingTask implements ICraftingTask { } else { ItemStack bucket = toInsert.get(RSUtils.EMPTY_BUCKET); boolean hasBucket = false; - if (bucket != null && bucket.stackSize > 0) { + if (bucket != null && bucket.getCount() > 0) { hasBucket = toInsert.remove(RSUtils.EMPTY_BUCKET, 1, false); } if (!hasBucket) { bucket = networkList.get(RSUtils.EMPTY_BUCKET); - if (bucket != null && bucket.stackSize > 0) { + if (bucket != null && bucket.getCount() > 0) { hasBucket = networkList.remove(RSUtils.EMPTY_BUCKET, 1, false); } } @@ -283,7 +286,7 @@ public class CraftingTask implements ICraftingTask { @Override public void onCancelled() { for (ItemStack stack : toInsertItems) { - network.insertItem(stack, stack.stackSize, false); + network.insertItem(stack, stack.getCount(), false); } network.markCraftingMonitorForUpdate(); @@ -341,7 +344,7 @@ public class CraftingTask implements ICraftingTask { for (int i = 0; i < times; i++) { ItemStack insert = toInsertItems.poll(); if (insert != null) { - ItemStack remainder = network.insertItem(insert, insert.stackSize, false); + ItemStack remainder = network.insertItem(insert, insert.getCount(), false); if (remainder != null) { toInsertItems.add(remainder); @@ -441,7 +444,7 @@ public class CraftingTask implements ICraftingTask { .map(stack -> new CraftingMonitorElementError(new CraftingMonitorElementItemRender( -1, stack, - stack.stackSize, + stack.getCount(), 32 ), "")) .forEach(elements::add); @@ -456,7 +459,7 @@ public class CraftingTask implements ICraftingTask { .map(stack -> new CraftingMonitorElementItemRender( -1, stack, - stack.stackSize, + stack.getCount(), 32 )) .forEach(elements::add); @@ -476,7 +479,7 @@ public class CraftingTask implements ICraftingTask { ICraftingMonitorElement element = new CraftingMonitorElementItemRender( -1, step.getPattern().getOutputs().get(i), - step.getPattern().getOutputs().get(i).stackSize, + step.getPattern().getOutputs().get(i).getCount(), 32 ); @@ -499,7 +502,7 @@ public class CraftingTask implements ICraftingTask { ICraftingMonitorElement element = new CraftingMonitorElementItemRender( -1, step.getPattern().getOutputs().get(i), - step.getPattern().getOutputs().get(i).stackSize, + step.getPattern().getOutputs().get(i).getCount(), 32 ); @@ -553,7 +556,7 @@ public class CraftingTask implements ICraftingTask { if (previewStack == null) { previewStack = new CraftingPreviewElementItemStack(stack); } - previewStack.addToCraft(stack.stackSize); + previewStack.addToCraft(stack.getCount()); map.put(hash, previewStack); } @@ -564,7 +567,7 @@ public class CraftingTask implements ICraftingTask { previewStack = new CraftingPreviewElementItemStack(stack); } previewStack.setMissing(true); - previewStack.addToCraft(stack.stackSize); + previewStack.addToCraft(stack.getCount()); map.put(hash, previewStack); } @@ -574,7 +577,7 @@ public class CraftingTask implements ICraftingTask { if (previewStack == null) { previewStack = new CraftingPreviewElementItemStack(stack); } - previewStack.addAvailable(stack.stackSize); + previewStack.addAvailable(stack.getCount()); map.put(hash, previewStack); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/ItemGridHandler.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/ItemGridHandler.java index 5f392f3db..18ae2ee8d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/ItemGridHandler.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/ItemGridHandler.java @@ -32,7 +32,7 @@ public class ItemGridHandler implements IItemGridHandler { return; } - int itemSize = item.stackSize; + int itemSize = item.getCount(); int maxItemSize = item.getItem().getItemStackLimit(item); boolean single = (flags & EXTRACT_SINGLE) == EXTRACT_SINGLE; @@ -40,7 +40,7 @@ public class ItemGridHandler implements IItemGridHandler { ItemStack held = player.inventory.getItemStack(); if (single) { - if (held != null && (!API.instance().getComparer().isEqualNoQuantity(item, held) || held.stackSize + 1 > held.getMaxStackSize())) { + if (held != null && (!API.instance().getComparer().isEqualNoQuantity(item, held) || held.getCount() + 1 > held.getMaxStackSize())) { return; } } else if (player.inventory.getItemStack() != null) { @@ -78,7 +78,7 @@ public class ItemGridHandler implements IItemGridHandler { took = network.extractItem(item, size, false); if (single && held != null) { - held.stackSize++; + held.grow(1); } else { player.inventory.setItemStack(took); } @@ -96,7 +96,7 @@ public class ItemGridHandler implements IItemGridHandler { @Override public ItemStack onInsert(EntityPlayerMP player, ItemStack stack) { - ItemStack remainder = network.insertItem(stack, stack.stackSize, false); + ItemStack remainder = network.insertItem(stack, stack.getCount(), false); INetworkItem networkItem = network.getNetworkItemHandler().getItem(player); @@ -114,15 +114,15 @@ public class ItemGridHandler implements IItemGridHandler { } ItemStack stack = player.inventory.getItemStack(); - int size = single ? 1 : stack.stackSize; + int size = single ? 1 : stack.getCount(); if (single) { if (network.insertItem(stack, size, true) == null) { network.insertItem(stack, size, false); - stack.stackSize -= size; + stack.shrink(size); - if (stack.stackSize == 0) { + if (stack.getCount() == 0) { player.inventory.setItemStack(null); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/solderer/SoldererRegistry.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/solderer/SoldererRegistry.java index 43a341c46..97ceb70eb 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/solderer/SoldererRegistry.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/solderer/SoldererRegistry.java @@ -35,7 +35,7 @@ public class SoldererRegistry implements ISoldererRegistry { ItemStack row = recipe.getRow(i); if (rows.getStackInSlot(i) != null && row != null) { - if (rows.getStackInSlot(i).stackSize < row.stackSize) { + if (rows.getStackInSlot(i).getCount() < row.getCount()) { found = false; } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/item/ItemStorageCache.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/item/ItemStorageCache.java index d4804c378..47e2203a7 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/item/ItemStorageCache.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/item/ItemStorageCache.java @@ -40,7 +40,7 @@ public class ItemStorageCache implements IItemStorageCache { for (ItemStack stack : storage.getStacks()) { if (stack != null) { - add(stack, stack.stackSize, true); + add(stack, stack.getCount(), true); } } } @@ -48,8 +48,8 @@ public class ItemStorageCache implements IItemStorageCache { for (ICraftingPattern pattern : network.getPatterns()) { for (ItemStack output : pattern.getOutputs()) { ItemStack patternStack = output.copy(); - patternStack.stackSize = 0; - add(patternStack, patternStack.stackSize, true); + patternStack.setCount(0); + add(patternStack, patternStack.getCount(), true); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/item/ItemStorageNBT.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/item/ItemStorageNBT.java index 9f0eda42a..29f01edcc 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/item/ItemStorageNBT.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/item/ItemStorageNBT.java @@ -77,7 +77,7 @@ public abstract class ItemStorageNBT implements IItemStorage { // ItemHandlerHelper#copyStackWithSize is not null-safe! private ItemStack safeCopy(ItemStack stack, int size) { ItemStack newStack = stack.copy(); - newStack.stackSize = size; + newStack.setCount(size); return newStack; } @@ -94,7 +94,7 @@ public abstract class ItemStorageNBT implements IItemStorage { NBTTagCompound itemTag = new NBTTagCompound(); itemTag.setInteger(NBT_ITEM_TYPE, Item.getIdFromItem(stack.getItem())); - itemTag.setInteger(NBT_ITEM_QUANTITY, stack.stackSize); + itemTag.setInteger(NBT_ITEM_QUANTITY, stack.getCount()); itemTag.setInteger(NBT_ITEM_DAMAGE, stack.getItemDamage()); if (stack.hasTagCompound()) { @@ -135,7 +135,7 @@ public abstract class ItemStorageNBT implements IItemStorage { if (!simulate) { tag.setInteger(NBT_STORED, getStored() + remainingSpace); - otherStack.stackSize += remainingSpace; + otherStack.grow(remainingSpace); onStorageChanged(); } @@ -145,7 +145,7 @@ public abstract class ItemStorageNBT implements IItemStorage { if (!simulate) { tag.setInteger(NBT_STORED, getStored() + size); - otherStack.stackSize += size; + otherStack.grow(size); onStorageChanged(); } @@ -188,15 +188,15 @@ public abstract class ItemStorageNBT implements IItemStorage { public synchronized ItemStack extractItem(ItemStack stack, int size, int flags, boolean simulate) { for (ItemStack otherStack : stacks) { if (API.instance().getComparer().isEqual(otherStack, stack, flags)) { - if (size > otherStack.stackSize) { - size = otherStack.stackSize; + if (size > otherStack.getCount()) { + size = otherStack.getCount(); } if (!simulate) { - if (otherStack.stackSize - size == 0) { + if (otherStack.getCount() - size == 0) { stacks.remove(otherStack); } else { - otherStack.stackSize -= size; + otherStack.grow(size); } tag.setInteger(NBT_STORED, getStored() - size); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/Comparer.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/Comparer.java index 6a8530331..21e17dbea 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/Comparer.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/Comparer.java @@ -44,7 +44,7 @@ public class Comparer implements IComparer { } if ((flags & COMPARE_QUANTITY) == COMPARE_QUANTITY) { - if (left.stackSize != right.stackSize) { + if (left.getCount() != right.getCount()) { return false; } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/ItemStackList.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/ItemStackList.java index 750f2eca2..08f9d6140 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/ItemStackList.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/ItemStackList.java @@ -23,10 +23,10 @@ public class ItemStackList implements IItemStackList { public void add(@Nonnull ItemStack stack, int size) { for (ItemStack otherStack : stacks.get(stack.getItem())) { if (API.instance().getComparer().isEqualNoQuantity(otherStack, stack)) { - if ((long) otherStack.stackSize + (long) size > Integer.MAX_VALUE) { - otherStack.stackSize = Integer.MAX_VALUE; + if ((long) otherStack.getCount() + (long) size > Integer.MAX_VALUE) { + otherStack.setCount(Integer.MAX_VALUE); } else { - otherStack.stackSize += size; + otherStack.grow(size); } return; @@ -39,11 +39,12 @@ public class ItemStackList implements IItemStackList { @Override public boolean remove(@Nonnull ItemStack stack, int size, boolean removeIfReachedZero) { for (ItemStack otherStack : stacks.get(stack.getItem())) { - if (otherStack.stackSize > 0 && API.instance().getComparer().isEqualNoQuantity(otherStack, stack)) { - otherStack.stackSize -= size; - boolean success = otherStack.stackSize >= 0; + if (otherStack.getCount() > 0 && API.instance().getComparer().isEqualNoQuantity(otherStack, stack)) { + otherStack.shrink(size); - if (otherStack.stackSize <= 0 && removeIfReachedZero) { + boolean success = otherStack.getCount() >= 0; + + if (otherStack.getCount() <= 0 && removeIfReachedZero) { stacks.remove(otherStack.getItem(), otherStack); } @@ -57,13 +58,15 @@ public class ItemStackList implements IItemStackList { @Override public boolean trackedRemove(@Nonnull ItemStack stack, int size, boolean removeIfReachedZero) { for (ItemStack otherStack : stacks.get(stack.getItem())) { - if (otherStack.stackSize > 0 && API.instance().getComparer().isEqualNoQuantity(otherStack, stack)) { - ItemStack removed = ItemHandlerHelper.copyStackWithSize(otherStack, Math.min(size, otherStack.stackSize)); + if (otherStack.getCount() > 0 && API.instance().getComparer().isEqualNoQuantity(otherStack, stack)) { + ItemStack removed = ItemHandlerHelper.copyStackWithSize(otherStack, Math.min(size, otherStack.getCount())); this.removeTracker.add(removed); - otherStack.stackSize -= size; - boolean success = otherStack.stackSize >= 0; - if (otherStack.stackSize <= 0 && removeIfReachedZero) { + otherStack.shrink(size); + + boolean success = otherStack.getCount() >= 0; + + if (otherStack.getCount() <= 0 && removeIfReachedZero) { stacks.remove(otherStack.getItem(), otherStack); } @@ -90,7 +93,7 @@ public class ItemStackList implements IItemStackList { public ItemStack get(@Nonnull ItemStack stack, int flags) { // When the oredict flag is set all stacks need to be checked not just the ones matching the item for (ItemStack otherStack : (flags & IComparer.COMPARE_OREDICT) == IComparer.COMPARE_OREDICT ? stacks.values() : stacks.get(stack.getItem())) { - if (otherStack.stackSize > 0 && API.instance().getComparer().isEqual(otherStack, stack, flags)) { + if (otherStack.getCount() > 0 && API.instance().getComparer().isEqual(otherStack, stack, flags)) { return otherStack; } } @@ -118,7 +121,7 @@ public class ItemStackList implements IItemStackList { @Override public void clean() { List toRemove = stacks.values().stream() - .filter(stack -> stack.stackSize <= 0) + .filter(stack -> stack.getCount() <= 0) .collect(Collectors.toList()); toRemove.forEach(stack -> stacks.remove(stack.getItem(), stack)); @@ -170,7 +173,7 @@ public class ItemStackList implements IItemStackList { compare |= IComparer.COMPARE_DAMAGE; } ItemStack actualInput = list.get(input, compare); - ItemStack taken = ItemHandlerHelper.copyStackWithSize(actualInput, input.stackSize); + ItemStack taken = ItemHandlerHelper.copyStackWithSize(actualInput, input.getCount()); took[i] = taken; list.remove(taken, true); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/ItemStackListOredicted.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/ItemStackListOredicted.java index e6c6b7b2d..c1ee84a71 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/ItemStackListOredicted.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/ItemStackListOredicted.java @@ -37,7 +37,7 @@ public class ItemStackListOredicted implements IItemStackList { public void add(@Nonnull ItemStack stack, int size) { underlyingList.add(stack, size); ItemStack internalStack = underlyingList.get(stack); - if (internalStack != null && internalStack.stackSize == stack.stackSize) { + if (internalStack != null && internalStack.getCount() == stack.getCount()) { for (int id : OreDictionary.getOreIDs(internalStack)) { stacks.put(id, internalStack); } @@ -86,10 +86,10 @@ public class ItemStackListOredicted implements IItemStackList { if (stacks != null && !stacks.isEmpty()) { int i = 0; ItemStack returnStack = stacks.get(i++); - while (returnStack.stackSize == 0 && i < stacks.size()) { + while (returnStack.getCount() == 0 && i < stacks.size()) { returnStack = stacks.get(i++); } - if (returnStack.stackSize != 0) { + if (returnStack.getCount() != 0) { return returnStack; } } @@ -112,7 +112,7 @@ public class ItemStackListOredicted implements IItemStackList { private void localClean() { List> toRemove = stacks.entries().stream() - .filter(entry -> entry.getValue().stackSize <= 0) + .filter(entry -> entry.getValue().getCount() <= 0) .collect(Collectors.toList()); toRemove.forEach(entry -> stacks.remove(entry.getKey(), entry.getValue())); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCable.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCable.java index e69f0b3fd..8ebfcafcd 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCable.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCable.java @@ -1,24 +1,12 @@ package com.raoulvdberge.refinedstorage.block; -import com.raoulvdberge.refinedstorage.RS; -import com.raoulvdberge.refinedstorage.api.network.INetworkMaster; import com.raoulvdberge.refinedstorage.apiimpl.API; -import com.raoulvdberge.refinedstorage.tile.TileBase; import com.raoulvdberge.refinedstorage.tile.TileCable; -import com.raoulvdberge.refinedstorage.tile.TileMultipartNode; -import com.raoulvdberge.refinedstorage.tile.TileNode; -import mcmultipart.block.BlockCoverable; -import mcmultipart.block.BlockMultipartContainer; -import mcmultipart.raytrace.RayTraceUtils; -import net.minecraft.block.material.Material; import net.minecraft.block.properties.PropertyBool; -import net.minecraft.block.properties.PropertyDirection; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.inventory.InventoryHelper; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.EnumFacing; @@ -28,15 +16,12 @@ import net.minecraft.util.math.RayTraceResult; import net.minecraft.util.math.Vec3d; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.items.IItemHandler; import java.util.ArrayList; import java.util.Collections; import java.util.List; -public class BlockCable extends BlockCoverable { - protected static final PropertyDirection DIRECTION = PropertyDirection.create("direction"); - +public class BlockCable extends BlockNode { protected static AxisAlignedBB createAABB(int fromX, int fromY, int fromZ, int toX, int toY, int toZ) { return new AxisAlignedBB((float) fromX / 16F, (float) fromY / 16F, (float) fromZ / 16F, (float) toX / 16F, (float) toY / 16F, (float) toZ / 16F); } @@ -55,43 +40,15 @@ public class BlockCable extends BlockCoverable { protected static final PropertyBool WEST = PropertyBool.create("west"); protected static final PropertyBool UP = PropertyBool.create("up"); protected static final PropertyBool DOWN = PropertyBool.create("down"); - protected static final PropertyBool CONNECTED = PropertyBool.create("connected"); - - private String name; public BlockCable(String name) { - super(Material.ROCK); - - this.name = name; - - setHardness(0.6F); - setRegistryName(RS.ID, name); - setCreativeTab(RS.INSTANCE.tab); + super(name); } public BlockCable() { this("cable"); } - @Override - public String getUnlocalizedName() { - return "block." + RS.ID + ":" + name; - } - - public String getName() { - return name; - } - - @Override - public boolean canProvidePower(IBlockState state) { - return false; - } - - @Override - public boolean hasTileEntity(IBlockState state) { - return true; - } - @Override public TileEntity createTileEntity(World world, IBlockState state) { return new TileCable(); @@ -103,67 +60,38 @@ public class BlockCable extends BlockCoverable { @Override protected BlockStateContainer createBlockState() { - BlockStateContainer.Builder builder = new BlockStateContainer.Builder(this); + BlockStateContainer.Builder builder = super.createBlockStateBuilder(); builder.add(NORTH) .add(EAST) .add(SOUTH) .add(WEST) .add(UP) - .add(DOWN) - .add(BlockMultipartContainer.PROPERTY_MULTIPART_CONTAINER); + .add(DOWN); if (getPlacementType() != null) { builder.add(DIRECTION); } - if (hasConnectivityState()) { - builder.add(CONNECTED); - } - return builder.build(); } @Override @SuppressWarnings("deprecation") public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) { - state = super.getActualState(state, world, pos) + return super.getActualState(state, world, pos) .withProperty(NORTH, hasConnectionWith(world, pos, EnumFacing.NORTH)) .withProperty(EAST, hasConnectionWith(world, pos, EnumFacing.EAST)) .withProperty(SOUTH, hasConnectionWith(world, pos, EnumFacing.SOUTH)) .withProperty(WEST, hasConnectionWith(world, pos, EnumFacing.WEST)) .withProperty(UP, hasConnectionWith(world, pos, EnumFacing.UP)) .withProperty(DOWN, hasConnectionWith(world, pos, EnumFacing.DOWN)); - - TileNode tile = (TileNode) world.getTileEntity(pos); - if (tile != null) { - if (getPlacementType() != null) { - state = state.withProperty(DIRECTION, tile.getDirection()); - } - - if (hasConnectivityState()) { - state = state.withProperty(CONNECTED, tile.isConnected()); - } - } - - return state; } private boolean hasConnectionWith(IBlockAccess world, BlockPos pos, EnumFacing direction) { TileEntity facing = world.getTileEntity(pos.offset(direction)); - boolean isConnectable = API.instance().getConnectableConditions().stream().anyMatch(p -> p.test(facing)); - if (isConnectable) { - // Do not render a cable extension where our cable "head" is (e.g. importer, exporter, external storage heads). - TileMultipartNode multipartNode = ((TileMultipartNode) world.getTileEntity(pos)); - if (getPlacementType() != null && multipartNode != null && multipartNode.getFacingTile() == facing) { - return false; - } - - return !TileMultipartNode.hasBlockingMicroblock(world, pos, direction) && !TileMultipartNode.hasBlockingMicroblock(world, pos.offset(direction), direction.getOpposite()); - } - - return false; + return API.instance().getConnectableConditions().stream().anyMatch(p -> p.test(facing)); } private boolean isInAABB(AxisAlignedBB aabb, float hitX, float hitY, float hitZ) { @@ -228,17 +156,20 @@ public class BlockCable extends BlockCoverable { } @Override - public void addCollisionBoxToListDefault(IBlockState state, World world, BlockPos pos, AxisAlignedBB entityBox, List collidingBoxes, Entity entityIn) { + public void addCollisionBoxToList(IBlockState state, World world, BlockPos pos, AxisAlignedBB entityBox, List collidingBoxes, Entity entityIn) { for (AxisAlignedBB aabb : getCollisionBoxes(this.getActualState(state, world, pos))) { addCollisionBoxToList(pos, entityBox, collidingBoxes, aabb); } } @Override - public RayTraceResult collisionRayTraceDefault(IBlockState state, World world, BlockPos pos, Vec3d start, Vec3d end) { - RayTraceUtils.AdvancedRayTraceResult result = RayTraceUtils.collisionRayTrace(world, pos, start, end, getCollisionBoxes(this.getActualState(state, world, pos))); + public RayTraceResult collisionRayTrace(IBlockState state, World world, BlockPos pos, Vec3d start, Vec3d end) { + // @TODO + /*RayTraceUtils.AdvancedRayTraceResult result = RayTraceUtils.collisionRayTrace(world, pos, start, end, getCollisionBoxes(this.getActualState(state, world, pos))); return result != null ? result.hit : null; + */ + return null; } @Override @@ -251,10 +182,6 @@ public class BlockCable extends BlockCoverable { return false; } - public EnumPlacementType getPlacementType() { - return null; - } - @Override @SuppressWarnings("deprecation") public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase entity) { @@ -267,96 +194,6 @@ public class BlockCable extends BlockCoverable { return state; } - @Override - public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack) { - super.onBlockPlacedBy(world, pos, state, player, stack); - - if (getPlacementType() != null) { - ((TileBase) world.getTileEntity(pos)).setDirection(state.getValue(DIRECTION)); - } - - attemptConnect(world, pos); - } - - public void attemptConnect(World world, BlockPos pos) { - if (!world.isRemote) { - for (EnumFacing facing : EnumFacing.VALUES) { - TileEntity tile = world.getTileEntity(pos.offset(facing)); - - if (tile instanceof TileNode && ((TileNode) tile).isConnected()) { - ((TileNode) tile).getNetwork().getNodeGraph().rebuild(); - - break; - } - } - } - } - - @Override - public void breakBlock(World world, BlockPos pos, IBlockState state) { - INetworkMaster network = null; - - if (!world.isRemote) { - TileEntity tile = world.getTileEntity(pos); - - if (tile instanceof TileNode) { - network = ((TileNode) tile).getNetwork(); - } - - if (tile instanceof TileBase && ((TileBase) tile).getDrops() != null) { - IItemHandler handler = ((TileBase) tile).getDrops(); - - for (int i = 0; i < handler.getSlots(); ++i) { - if (handler.getStackInSlot(i) != null) { - InventoryHelper.spawnItemStack(world, pos.getX(), pos.getY(), pos.getZ(), handler.getStackInSlot(i)); - } - } - } - } - - super.breakBlock(world, pos, state); - - if (network != null) { - network.getNodeGraph().rebuild(); - } - } - - @Override - public List getDropsDefault(IBlockAccess world, BlockPos pos, IBlockState state, int fortune) { - List drops = new ArrayList<>(); - - drops.add(new ItemStack(this, 1, getMetaFromState(state))); - - TileEntity tile = world.getTileEntity(pos); - - if (tile instanceof TileBase && ((TileBase) tile).getDrops() != null) { - IItemHandler handler = ((TileBase) tile).getDrops(); - - for (int i = 0; i < handler.getSlots(); ++i) { - if (handler.getStackInSlot(i) != null) { - drops.add(handler.getStackInSlot(i)); - } - } - } - - return drops; - } - - @Override - public boolean rotateBlock(World world, BlockPos pos, EnumFacing axis) { - if (!world.isRemote && getPlacementType() != null) { - TileBase tile = (TileBase) world.getTileEntity(pos); - - tile.setDirection(getPlacementType().cycle(tile.getDirection())); - - tile.updateBlock(); - - return true; - } - - return false; - } - @Override public BlockRenderLayer getBlockLayer() { return BlockRenderLayer.CUTOUT; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockConstructor.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockConstructor.java index 882fc5faf..772fe7414 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockConstructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockConstructor.java @@ -5,7 +5,6 @@ import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.tile.TileConstructor; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; @@ -75,7 +74,7 @@ public class BlockConstructor extends BlockCable { } @Override - public boolean onBlockActivatedDefault(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (hitCablePart(state, world, pos, hitX, hitY, hitZ)) { return false; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockController.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockController.java index 2e8e0ba1b..276976f13 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockController.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockController.java @@ -19,6 +19,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; +import net.minecraft.util.NonNullList; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -36,7 +37,7 @@ public class BlockController extends BlockBase { } @Override - public void getSubBlocks(Item item, CreativeTabs tab, List subItems) { + public void getSubBlocks(Item item, CreativeTabs tab, NonNullList subItems) { for (int i = 0; i <= 1; i++) { subItems.add(ItemBlockController.createStackWithNBT(new ItemStack(item, 1, i))); } @@ -79,7 +80,7 @@ public class BlockController extends BlockBase { } @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (!world.isRemote) { player.openGui(RS.INSTANCE, RSGui.CONTROLLER, world, pos.getX(), pos.getY(), pos.getZ()); } @@ -113,8 +114,8 @@ public class BlockController extends BlockBase { @Override @SuppressWarnings("deprecation") - public void neighborChanged(IBlockState state, World world, BlockPos pos, Block block) { - super.neighborChanged(state, world, pos, block); + public void neighborChanged(IBlockState state, World world, BlockPos pos, Block block, BlockPos fromPos) { + super.neighborChanged(state, world, pos, block, fromPos); if (!world.isRemote) { ((TileController) world.getTileEntity(pos)).getNodeGraph().rebuild(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCrafter.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCrafter.java index a0da0514f..6c2a799d3 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCrafter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCrafter.java @@ -5,7 +5,6 @@ import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.tile.TileCrafter; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; @@ -23,7 +22,7 @@ public class BlockCrafter extends BlockNode { } @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (!world.isRemote) { player.openGui(RS.INSTANCE, RSGui.CRAFTER, world, pos.getX(), pos.getY(), pos.getZ()); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCraftingMonitor.java index add4bb6da..4876e7595 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCraftingMonitor.java @@ -5,7 +5,6 @@ import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; @@ -23,7 +22,7 @@ public class BlockCraftingMonitor extends BlockNode { } @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (!world.isRemote) { player.openGui(RS.INSTANCE, RSGui.CRAFTING_MONITOR, world, pos.getX(), pos.getY(), pos.getZ()); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDestructor.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDestructor.java index f2ad5c822..782dbcdf2 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDestructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDestructor.java @@ -6,7 +6,6 @@ import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.tile.TileDestructor; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; @@ -32,7 +31,7 @@ public class BlockDestructor extends BlockCable { } @Override - public boolean onBlockActivatedDefault(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (hitCablePart(state, world, pos, hitX, hitY, hitZ)) { return false; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDetector.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDetector.java index e0a740f43..91f522f40 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDetector.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDetector.java @@ -7,7 +7,6 @@ import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.EnumFacing; @@ -69,7 +68,7 @@ public class BlockDetector extends BlockNode { } @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (!world.isRemote) { player.openGui(RS.INSTANCE, RSGui.DETECTOR, world, pos.getX(), pos.getY(), pos.getZ()); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDiskDrive.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDiskDrive.java index 8237dd007..afccff2ba 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDiskDrive.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDiskDrive.java @@ -7,7 +7,6 @@ import com.raoulvdberge.refinedstorage.tile.TileDiskDrive; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; @@ -29,7 +28,7 @@ public class BlockDiskDrive extends BlockNode { } @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (!world.isRemote) { player.openGui(RS.INSTANCE, RSGui.DISK_DRIVE, world, pos.getX(), pos.getY(), pos.getZ()); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDiskManipulator.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDiskManipulator.java index 0cb75c125..15980437d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDiskManipulator.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDiskManipulator.java @@ -7,7 +7,6 @@ import com.raoulvdberge.refinedstorage.tile.TileDiskManipulator; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; @@ -16,8 +15,6 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.property.IExtendedBlockState; -import javax.annotation.Nullable; - public class BlockDiskManipulator extends BlockNode { public static final PropertyObject DISK_STATE = new PropertyObject<>("disk_state", Integer[].class); @@ -31,7 +28,7 @@ public class BlockDiskManipulator extends BlockNode { } @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, @Nullable ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (!world.isRemote) { player.openGui(RS.INSTANCE, RSGui.DISK_MANIPULATOR, world, pos.getX(), pos.getY(), pos.getZ()); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockExporter.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockExporter.java index db179a31d..b53a65b7c 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockExporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockExporter.java @@ -5,7 +5,6 @@ import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.tile.TileExporter; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; @@ -86,7 +85,7 @@ public class BlockExporter extends BlockCable { } @Override - public boolean onBlockActivatedDefault(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (hitCablePart(state, world, pos, hitX, hitY, hitZ)) { return false; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockExternalStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockExternalStorage.java index 7665dcda2..fefe52bfd 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockExternalStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockExternalStorage.java @@ -6,7 +6,6 @@ import com.raoulvdberge.refinedstorage.tile.externalstorage.TileExternalStorage; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; @@ -69,7 +68,7 @@ public class BlockExternalStorage extends BlockCable { } @Override - public boolean onBlockActivatedDefault(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (hitCablePart(state, world, pos, hitX, hitY, hitZ)) { return false; } @@ -82,8 +81,8 @@ public class BlockExternalStorage extends BlockCable { } @Override - public void onNeighborBlockChangeDefault(World world, BlockPos pos, IBlockState state, Block neighborBlock) { - super.onNeighborBlockChangeDefault(world, pos, state, neighborBlock); + public void neighborChanged(IBlockState state, World world, BlockPos pos, Block block, BlockPos fromPos) { + super.neighborChanged(state, world, pos, block, fromPos); if (!world.isRemote) { TileExternalStorage externalStorage = (TileExternalStorage) world.getTileEntity(pos); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockFluidInterface.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockFluidInterface.java index 855c175fd..e3b6e2a0a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockFluidInterface.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockFluidInterface.java @@ -5,7 +5,6 @@ import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.tile.TileFluidInterface; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; @@ -23,7 +22,7 @@ public class BlockFluidInterface extends BlockNode { } @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (!world.isRemote) { player.openGui(RS.INSTANCE, RSGui.FLUID_INTERFACE, world, pos.getX(), pos.getY(), pos.getZ()); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockFluidStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockFluidStorage.java index 4e5ba621b..ae02e494a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockFluidStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockFluidStorage.java @@ -17,6 +17,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; +import net.minecraft.util.NonNullList; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -34,7 +35,7 @@ public class BlockFluidStorage extends BlockNode { } @Override - public void getSubBlocks(Item item, CreativeTabs tab, List subItems) { + public void getSubBlocks(Item item, CreativeTabs tab, NonNullList subItems) { for (int i = 0; i <= 4; ++i) { subItems.add(ItemBlockFluidStorage.initNBT(new ItemStack(item, 1, i))); } @@ -63,7 +64,7 @@ public class BlockFluidStorage extends BlockNode { } @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (!world.isRemote) { player.openGui(RS.INSTANCE, RSGui.FLUID_STORAGE, world, pos.getX(), pos.getY(), pos.getZ()); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockGrid.java index 637cf23a3..4eaf36412 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockGrid.java @@ -14,11 +14,10 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; +import net.minecraft.util.NonNullList; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import java.util.List; - public class BlockGrid extends BlockNode { public static final PropertyEnum TYPE = PropertyEnum.create("type", EnumGridType.class); @@ -32,7 +31,7 @@ public class BlockGrid extends BlockNode { } @Override - public void getSubBlocks(Item item, CreativeTabs tab, List subItems) { + public void getSubBlocks(Item item, CreativeTabs tab, NonNullList subItems) { for (int i = 0; i <= 3; i++) { subItems.add(new ItemStack(item, 1, i)); } @@ -56,7 +55,7 @@ public class BlockGrid extends BlockNode { } @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (!world.isRemote) { player.openGui(RS.INSTANCE, RSGui.GRID, world, pos.getX(), pos.getY(), pos.getZ()); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockImporter.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockImporter.java index d81c6add5..2998dac53 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockImporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockImporter.java @@ -5,7 +5,6 @@ import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.tile.TileImporter; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; @@ -86,7 +85,7 @@ public class BlockImporter extends BlockCable { } @Override - public boolean onBlockActivatedDefault(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (hitCablePart(state, world, pos, hitX, hitY, hitZ)) { return false; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockInterface.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockInterface.java index 8d93fb3d9..0375c0624 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockInterface.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockInterface.java @@ -5,7 +5,6 @@ import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.tile.TileInterface; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; @@ -23,7 +22,7 @@ public class BlockInterface extends BlockNode { } @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (!world.isRemote) { player.openGui(RS.INSTANCE, RSGui.INTERFACE, world, pos.getX(), pos.getY(), pos.getZ()); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNetworkTransmitter.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNetworkTransmitter.java index 99caf917f..2c9cbe8d6 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNetworkTransmitter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNetworkTransmitter.java @@ -5,7 +5,6 @@ import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.tile.TileNetworkTransmitter; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; @@ -18,7 +17,7 @@ public class BlockNetworkTransmitter extends BlockNode { } @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (!world.isRemote) { player.openGui(RS.INSTANCE, RSGui.NETWORK_TRANSMITTER, world, pos.getX(), pos.getY(), pos.getZ()); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockProcessingPatternEncoder.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockProcessingPatternEncoder.java index c61a51f30..4f5dd7805 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockProcessingPatternEncoder.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockProcessingPatternEncoder.java @@ -40,7 +40,7 @@ public class BlockProcessingPatternEncoder extends BlockBase { } @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (!world.isRemote) { player.openGui(RS.INSTANCE, RSGui.PROCESSING_PATTERN_ENCODER, world, pos.getX(), pos.getY(), pos.getZ()); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockReader.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockReader.java index f454ce874..2fdf7144e 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockReader.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockReader.java @@ -4,10 +4,8 @@ import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSBlocks; import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.tile.TileReader; -import mcmultipart.microblock.MicroblockContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; @@ -29,7 +27,7 @@ public class BlockReader extends BlockCable { } @Override - public boolean onBlockActivatedDefault(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (hitCablePart(state, world, pos, hitX, hitY, hitZ)) { return false; } @@ -44,7 +42,7 @@ public class BlockReader extends BlockCable { } @Override - public boolean canConnectRedstoneDefault(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side, MicroblockContainer partContainer) { + public boolean canConnectRedstone(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) { return side == ((TileReader) world.getTileEntity(pos)).getDirection().getOpposite(); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockRelay.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockRelay.java index 04d1e97e5..1c822edf2 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockRelay.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockRelay.java @@ -5,7 +5,6 @@ import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.tile.TileRelay; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; @@ -23,7 +22,7 @@ public class BlockRelay extends BlockNode { } @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (!world.isRemote) { player.openGui(RS.INSTANCE, RSGui.RELAY, world, pos.getX(), pos.getY(), pos.getZ()); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockSolderer.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockSolderer.java index f139a6d1e..3d22c2763 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockSolderer.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockSolderer.java @@ -38,7 +38,7 @@ public class BlockSolderer extends BlockNode { } @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (!world.isRemote) { player.openGui(RS.INSTANCE, RSGui.SOLDERER, world, pos.getX(), pos.getY(), pos.getZ()); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockStorage.java index 47666f5e2..d0fc92fa5 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockStorage.java @@ -17,6 +17,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; +import net.minecraft.util.NonNullList; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -34,7 +35,7 @@ public class BlockStorage extends BlockNode { } @Override - public void getSubBlocks(Item item, CreativeTabs tab, List subItems) { + public void getSubBlocks(Item item, CreativeTabs tab, NonNullList subItems) { for (int i = 0; i <= 4; ++i) { subItems.add(ItemBlockStorage.initNBT(new ItemStack(item, 1, i))); } @@ -63,7 +64,7 @@ public class BlockStorage extends BlockNode { } @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (!world.isRemote) { player.openGui(RS.INSTANCE, RSGui.STORAGE, world, pos.getX(), pos.getY(), pos.getZ()); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWirelessTransmitter.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWirelessTransmitter.java index c39fbee50..e63fd89bd 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWirelessTransmitter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWirelessTransmitter.java @@ -3,7 +3,6 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.tile.TileWirelessTransmitter; -import mcmultipart.block.BlockCoverable; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.client.resources.I18n; @@ -35,7 +34,7 @@ public class BlockWirelessTransmitter extends BlockNode { } @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (!world.isRemote) { player.openGui(RS.INSTANCE, RSGui.WIRELESS_TRANSMITTER, world, pos.getX(), pos.getY(), pos.getZ()); } @@ -45,7 +44,7 @@ public class BlockWirelessTransmitter extends BlockNode { @Override @SuppressWarnings("deprecation") - public void neighborChanged(IBlockState state, World world, BlockPos pos, Block block) { + public void neighborChanged(IBlockState state, World world, BlockPos pos, Block blockIn, BlockPos fromPos) { if (!canPlaceBlockAt(world, pos) && world.getBlockState(pos).getBlock() == this) { dropBlockAsItem(world, pos, state, 0); @@ -73,7 +72,7 @@ public class BlockWirelessTransmitter extends BlockNode { @Override public boolean canPlaceBlockAt(World world, BlockPos pos) { - return world.getBlockState(pos.offset(EnumFacing.DOWN)).getBlock() instanceof BlockCoverable; + return world.getBlockState(pos.offset(EnumFacing.DOWN)).getBlock() instanceof BlockCable; } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWriter.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWriter.java index 9a5cac43e..328721fea 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWriter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWriter.java @@ -4,10 +4,8 @@ import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSBlocks; import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.tile.TileWriter; -import mcmultipart.microblock.MicroblockContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; @@ -29,7 +27,7 @@ public class BlockWriter extends BlockCable { } @Override - public boolean onBlockActivatedDefault(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (hitCablePart(state, world, pos, hitX, hitY, hitZ)) { return false; } @@ -50,7 +48,7 @@ public class BlockWriter extends BlockCable { @Override @SuppressWarnings("deprecation") - public int getWeakPowerDefault(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side, MicroblockContainer partContainer) { + public int getWeakPower(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) { TileWriter writer = (TileWriter) world.getTileEntity(pos); return side == writer.getDirection().getOpposite() ? writer.getRedstoneStrength() : 0; @@ -58,8 +56,8 @@ public class BlockWriter extends BlockCable { @Override @SuppressWarnings("deprecation") - public int getStrongPowerDefault(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side, MicroblockContainer partContainer) { - return getWeakPowerDefault(state, world, pos, side, partContainer); + public int getStrongPower(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) { + return getWeakPower(state, world, pos, side); } @Override @@ -68,7 +66,7 @@ public class BlockWriter extends BlockCable { } @Override - public boolean canConnectRedstoneDefault(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side, MicroblockContainer partContainer) { + public boolean canConnectRedstone(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) { return side == ((TileWriter) world.getTileEntity(pos)).getDirection().getOpposite(); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/EnumPlacementType.java b/src/main/java/com/raoulvdberge/refinedstorage/block/EnumPlacementType.java index d943bfd83..38d40f501 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/EnumPlacementType.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/EnumPlacementType.java @@ -1,6 +1,5 @@ package com.raoulvdberge.refinedstorage.block; -import net.minecraft.block.BlockPistonBase; import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; @@ -30,7 +29,7 @@ public enum EnumPlacementType { case ANY: return facing.getOpposite(); case ANY_FACE_PLAYER: - return BlockPistonBase.getFacingFromEntity(pos, entity); + return EnumFacing.getDirectionFromEntityLiving(pos, entity); case HORIZONTAL: return entity.getHorizontalFacing().getOpposite(); default: diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerBase.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerBase.java index 557d6996c..44bb42c5c 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerBase.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerBase.java @@ -62,11 +62,11 @@ public abstract class ContainerBase extends Container { if (clickType == ClickType.QUICK_MOVE) { slot.putStack(null); } else if (player.inventory.getItemStack() != null) { - int amount = player.inventory.getItemStack().stackSize; + int amount = player.inventory.getItemStack().getCount(); slot.putStack(ItemHandlerHelper.copyStackWithSize(player.inventory.getItemStack(), amount)); } else if (slot.getHasStack()) { - int amount = slot.getStack().stackSize; + int amount = slot.getStack().getCount(); if (dragType == 0) { amount = Math.max(1, amount - 1); @@ -74,7 +74,7 @@ public abstract class ContainerBase extends Container { amount = Math.min(64, amount + 1); } - slot.getStack().stackSize = amount; + slot.getStack().setCount(amount); } } else if (player.inventory.getItemStack() == null) { slot.putStack(null); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerConstructor.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerConstructor.java index 4ab6f0a80..220a3ac4e 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerConstructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerConstructor.java @@ -37,7 +37,7 @@ public class ContainerConstructor extends ContainerBase { return mergeItemStackToSpecimen(stack, 4, 4 + 1); } - if (stack.stackSize == 0) { + if (stack.getCount() == 0) { slot.putStack(null); } else { slot.onSlotChanged(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCrafter.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCrafter.java index 63c66c9c8..ba15e3bd8 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCrafter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCrafter.java @@ -38,7 +38,7 @@ public class ContainerCrafter extends ContainerBase { return null; } - if (stack.stackSize == 0) { + if (stack.getCount() == 0) { slot.putStack(null); } else { slot.onSlotChanged(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCraftingSettings.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCraftingSettings.java index 369e5c381..549e3795b 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCraftingSettings.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCraftingSettings.java @@ -21,6 +21,11 @@ public class ContainerCraftingSettings extends ContainerBase { return 1; } + @Override + public boolean isEmpty() { + return true; + } + @Nullable @Override public ItemStack getStackInSlot(int index) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerDestructor.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerDestructor.java index f459fa7d8..938509f9a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerDestructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerDestructor.java @@ -39,7 +39,7 @@ public class ContainerDestructor extends ContainerBase { return mergeItemStackToSpecimen(stack, 4, 4 + 9); } - if (stack.stackSize == 0) { + if (stack.getCount() == 0) { slot.putStack(null); } else { slot.onSlotChanged(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerDiskDrive.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerDiskDrive.java index 3e376ce63..05ba7a472 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerDiskDrive.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerDiskDrive.java @@ -42,7 +42,7 @@ public class ContainerDiskDrive extends ContainerBase { return mergeItemStackToSpecimen(stack, 8, 8 + 9); } - if (stack.stackSize == 0) { + if (stack.getCount() == 0) { slot.putStack(null); } else { slot.onSlotChanged(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerDiskManipulator.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerDiskManipulator.java index 96c5da1ee..57115740a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerDiskManipulator.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerDiskManipulator.java @@ -47,7 +47,7 @@ public class ContainerDiskManipulator extends ContainerBase { return mergeItemStackToSpecimen(stack, 4 + 6, 4 + 6 + 9); } - if (stack.stackSize == 0) { + if (stack.getCount() == 0) { slot.putStack(null); } else { slot.onSlotChanged(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerExporter.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerExporter.java index 7fc46bb94..d762213bc 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerExporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerExporter.java @@ -39,7 +39,7 @@ public class ContainerExporter extends ContainerBase { return mergeItemStackToSpecimen(stack, 4, 4 + 9); } - if (stack.stackSize == 0) { + if (stack.getCount() == 0) { slot.putStack(null); } else { slot.onSlotChanged(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerFluidInterface.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerFluidInterface.java index 59f4a0a48..2be28aeee 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerFluidInterface.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerFluidInterface.java @@ -38,7 +38,7 @@ public class ContainerFluidInterface extends ContainerBase { return mergeItemStackToSpecimen(stack, 5, 6); } - if (stack.stackSize == 0) { + if (stack.getCount() == 0) { slot.putStack(null); } else { slot.onSlotChanged(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerImporter.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerImporter.java index 7c7b2e831..427ac05c8 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerImporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerImporter.java @@ -39,7 +39,7 @@ public class ContainerImporter extends ContainerBase { return mergeItemStackToSpecimen(stack, 4, 4 + 9); } - if (stack.stackSize == 0) { + if (stack.getCount() == 0) { slot.putStack(null); } else { slot.onSlotChanged(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerInterface.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerInterface.java index 486462515..e24e450f7 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerInterface.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerInterface.java @@ -48,7 +48,7 @@ public class ContainerInterface extends ContainerBase { return null; } - if (stack.stackSize == 0) { + if (stack.getCount() == 0) { slot.putStack(null); } else { slot.onSlotChanged(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerNetworkTransmitter.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerNetworkTransmitter.java index 239f6a222..97433aeab 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerNetworkTransmitter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerNetworkTransmitter.java @@ -34,7 +34,7 @@ public class ContainerNetworkTransmitter extends ContainerBase { return null; } - if (stack.stackSize == 0) { + if (stack.getCount() == 0) { slot.putStack(null); } else { slot.onSlotChanged(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerProcessingPatternEncoder.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerProcessingPatternEncoder.java index c4bf80cd7..01dafc5b8 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerProcessingPatternEncoder.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerProcessingPatternEncoder.java @@ -58,7 +58,7 @@ public class ContainerProcessingPatternEncoder extends ContainerBase { return null; } - if (stack.stackSize == 0) { + if (stack.getCount() == 0) { slot.putStack(null); } else { slot.onSlotChanged(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerSolderer.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerSolderer.java index 314c5d22c..1664559e7 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerSolderer.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerSolderer.java @@ -55,7 +55,7 @@ public class ContainerSolderer extends ContainerBase { } } - if (stack.stackSize == 0) { + if (stack.getCount() == 0) { slot.putStack(null); } else { slot.onSlotChanged(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerWirelessTransmitter.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerWirelessTransmitter.java index 020657ee9..577093023 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerWirelessTransmitter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerWirelessTransmitter.java @@ -34,7 +34,7 @@ public class ContainerWirelessTransmitter extends ContainerBase { return null; } - if (stack.stackSize == 0) { + if (stack.getCount() == 0) { slot.putStack(null); } else { slot.onSlotChanged(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/slot/SlotGridCraftingResult.java b/src/main/java/com/raoulvdberge/refinedstorage/container/slot/SlotGridCraftingResult.java index a0fd9b785..7f2b079f5 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/slot/SlotGridCraftingResult.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/slot/SlotGridCraftingResult.java @@ -19,7 +19,7 @@ public class SlotGridCraftingResult extends SlotCrafting { } @Override - public void onPickupFromSlot(EntityPlayer player, ItemStack stack) { + public ItemStack onTake(EntityPlayer player, ItemStack stack) { FMLCommonHandler.instance().firePlayerCraftingEvent(player, stack, grid.getMatrix()); onCrafting(stack); @@ -29,5 +29,7 @@ public class SlotGridCraftingResult extends SlotCrafting { container.sendCraftingSlots(); } + + return null; } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/slot/SlotSpecimen.java b/src/main/java/com/raoulvdberge/refinedstorage/container/slot/SlotSpecimen.java index fe4d70a57..bac3ae8de 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/slot/SlotSpecimen.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/slot/SlotSpecimen.java @@ -50,7 +50,7 @@ public class SlotSpecimen extends SlotItemHandler { @Override public void putStack(ItemStack stack) { if (stack != null && !isWithSize()) { - stack.stackSize = 1; + stack.setCount(1); } super.putStack(stack); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/slot/SlotSpecimenLegacy.java b/src/main/java/com/raoulvdberge/refinedstorage/container/slot/SlotSpecimenLegacy.java index 9d649da70..b31385572 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/slot/SlotSpecimenLegacy.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/slot/SlotSpecimenLegacy.java @@ -24,7 +24,7 @@ public class SlotSpecimenLegacy extends Slot { @Override public void putStack(ItemStack stack) { if (stack != null) { - stack.stackSize = 1; + stack.setCount(1); } super.putStack(stack); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/ClientStackItem.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/ClientStackItem.java index 578eccbef..e52e82ec9 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/ClientStackItem.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/ClientStackItem.java @@ -66,11 +66,11 @@ public class ClientStackItem implements IClientStack { @Override public int getQuantity() { - return stack.stackSize; + return stack.getCount(); } private String getQuantityForDisplay(boolean advanced) { - int qty = stack.stackSize; + int qty = stack.getCount(); if (advanced && qty > 1) { return String.valueOf(qty); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/ic2/ControllerEnergyIC2.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/ic2/ControllerEnergyIC2.java deleted file mode 100755 index 1699c1475..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/ic2/ControllerEnergyIC2.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.raoulvdberge.refinedstorage.integration.ic2; - -import com.raoulvdberge.refinedstorage.tile.TileController; -import ic2.api.energy.prefab.BasicSink; -import net.minecraft.util.EnumFacing; - -public class ControllerEnergyIC2 implements IControllerEnergyIC2 { - private BasicSink sink; - - public ControllerEnergyIC2(final TileController controller) { - this.sink = new BasicSink(controller, (int) IntegrationIC2.toEU(controller.getEnergy().getMaxEnergyStored()), 3) { - @Override - public double getDemandedEnergy() { - return Math.max(0.0D, IntegrationIC2.toEU(controller.getEnergy().getMaxEnergyStored()) - IntegrationIC2.toEU(controller.getEnergy().getEnergyStored())); - } - - @Override - public double injectEnergy(EnumFacing directionFrom, double amount, double voltage) { - controller.getEnergy().setEnergyStored(controller.getEnergy().getEnergyStored() + IntegrationIC2.toRS(amount)); - - return 0.0D; - } - }; - } - - @Override - public void invalidate() { - sink.invalidate(); - } - - @Override - public void update() { - sink.update(); - } - - @Override - public void onChunkUnload() { - sink.onChunkUnload(); - } -} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/ic2/ControllerEnergyIC2None.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/ic2/ControllerEnergyIC2None.java deleted file mode 100755 index b115b9c85..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/ic2/ControllerEnergyIC2None.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.raoulvdberge.refinedstorage.integration.ic2; - -public class ControllerEnergyIC2None implements IControllerEnergyIC2 { - @Override - public void invalidate() { - } - - @Override - public void update() { - } - - @Override - public void onChunkUnload() { - } -} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/ic2/IControllerEnergyIC2.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/ic2/IControllerEnergyIC2.java deleted file mode 100755 index c6193da9e..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/ic2/IControllerEnergyIC2.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.raoulvdberge.refinedstorage.integration.ic2; - -public interface IControllerEnergyIC2 { - void invalidate(); - - void update(); - - void onChunkUnload(); -} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/ic2/IntegrationIC2.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/ic2/IntegrationIC2.java deleted file mode 100755 index 0e8ae07d3..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/ic2/IntegrationIC2.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.raoulvdberge.refinedstorage.integration.ic2; - -import com.raoulvdberge.refinedstorage.RS; -import net.minecraftforge.fml.common.Loader; - - -public final class IntegrationIC2 { - public static boolean isLoaded() { - return Loader.isModLoaded("IC2"); - } - - public static int toRS(double amount) { - return amount >= Double.POSITIVE_INFINITY ? Integer.MAX_VALUE : ((int) Math.floor(amount) * RS.INSTANCE.config.euConversion); - } - - public static double toEU(int amount) { - return Math.floor(amount / RS.INSTANCE.config.euConversion); - } -} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/RecipeCategorySolderer.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/RecipeCategorySolderer.java index 1276a4d42..a0fcee75b 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/RecipeCategorySolderer.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/RecipeCategorySolderer.java @@ -36,29 +36,6 @@ public class RecipeCategorySolderer extends BlankRecipeCategory getInputs() { - return inputs; - } - - @Override - @SuppressWarnings("deprecation") - public List getOutputs() { - return Collections.singletonList(output); - } - @Override public boolean equals(Object obj) { if (!(obj instanceof RecipeWrapperSolderer)) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerGridFilter.java b/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerGridFilter.java index 502fd946e..473882ce0 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerGridFilter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerGridFilter.java @@ -3,6 +3,7 @@ package com.raoulvdberge.refinedstorage.inventory; import com.raoulvdberge.refinedstorage.RSUtils; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.NonNullList; import net.minecraftforge.items.ItemStackHandler; public class ItemHandlerGridFilter extends ItemStackHandler { @@ -29,7 +30,7 @@ public class ItemHandlerGridFilter extends ItemStackHandler { RSUtils.writeItems(this, 0, stack.getTagCompound()); } - public ItemStack[] getFilteredItems() { + public NonNullList getFilteredItems() { return stacks; } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerUpgrade.java b/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerUpgrade.java index 8daad1ade..5123cf17f 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerUpgrade.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerUpgrade.java @@ -65,7 +65,7 @@ public class ItemHandlerUpgrade extends ItemHandlerBasic { return 0; } - public int getInteractStackSize() { + public int getItemInteractCount() { return hasUpgrade(ItemUpgrade.TYPE_STACK) ? 64 : 1; } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockFluidStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockFluidStorage.java index 2e6443942..4073f1cf9 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockFluidStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockFluidStorage.java @@ -39,10 +39,12 @@ public class ItemBlockFluidStorage extends ItemBlockBase { } @Override - public ActionResult onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand) { + public ActionResult onItemRightClick(World world, EntityPlayer player, EnumHand hand) { + ItemStack stack = player.getHeldItem(hand); + EnumFluidStorageType type = EnumFluidStorageType.getById(stack.getMetadata()); - if (type != null && stack.stackSize == 1 && isValid(stack) && FluidStorageNBT.getStoredFromNBT(stack.getTagCompound().getCompoundTag(TileFluidStorage.NBT_STORAGE)) <= 0 && stack.getMetadata() != ItemFluidStorageDisk.TYPE_CREATIVE && !world.isRemote && player.isSneaking()) { + if (type != null && stack.getCount() == 1 && isValid(stack) && FluidStorageNBT.getStoredFromNBT(stack.getTagCompound().getCompoundTag(TileFluidStorage.NBT_STORAGE)) <= 0 && stack.getMetadata() != ItemFluidStorageDisk.TYPE_CREATIVE && !world.isRemote && player.isSneaking()) { ItemStack storagePart = new ItemStack(RSItems.FLUID_STORAGE_PART, 1, stack.getMetadata()); if (!player.inventory.addItemStackToInventory(storagePart.copy())) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockStorage.java index 21a6fcd53..673838b10 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockStorage.java @@ -39,10 +39,12 @@ public class ItemBlockStorage extends ItemBlockBase { } @Override - public ActionResult onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand) { + public ActionResult onItemRightClick(World world, EntityPlayer player, EnumHand hand) { + ItemStack stack = player.getHeldItem(hand); + EnumItemStorageType type = EnumItemStorageType.getById(stack.getMetadata()); - if (type != null && stack.stackSize == 1 && isValid(stack) && ItemStorageNBT.getStoredFromNBT(stack.getTagCompound().getCompoundTag(TileStorage.NBT_STORAGE)) <= 0 && stack.getMetadata() != ItemStorageDisk.TYPE_CREATIVE && !world.isRemote && player.isSneaking()) { + if (type != null && stack.getCount() == 1 && isValid(stack) && ItemStorageNBT.getStoredFromNBT(stack.getTagCompound().getCompoundTag(TileStorage.NBT_STORAGE)) <= 0 && stack.getMetadata() != ItemStorageDisk.TYPE_CREATIVE && !world.isRemote && player.isSneaking()) { ItemStack storagePart = new ItemStack(RSItems.STORAGE_PART, 1, stack.getMetadata()); if (!player.inventory.addItemStackToInventory(storagePart.copy())) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemCore.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemCore.java index 47fc1a380..2617a8355 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemCore.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemCore.java @@ -3,8 +3,7 @@ package com.raoulvdberge.refinedstorage.item; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; - -import java.util.List; +import net.minecraft.util.NonNullList; public class ItemCore extends ItemBase { public static final int TYPE_CONSTRUCTION = 0; @@ -18,7 +17,7 @@ public class ItemCore extends ItemBase { } @Override - public void getSubItems(Item item, CreativeTabs tab, List list) { + public void getSubItems(Item item, CreativeTabs tab, NonNullList list) { for (int i = 0; i < 2; ++i) { list.add(new ItemStack(item, 1, i)); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStorageDisk.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStorageDisk.java index 10e33f749..3303387f7 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStorageDisk.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStorageDisk.java @@ -14,6 +14,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; +import net.minecraft.util.NonNullList; import net.minecraft.world.World; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; @@ -40,7 +41,7 @@ public class ItemFluidStorageDisk extends ItemBase { } @Override - public void getSubItems(Item item, CreativeTabs tab, List list) { + public void getSubItems(Item item, CreativeTabs tab, NonNullList list) { for (int i = 0; i < 5; ++i) { list.add(FluidStorageNBT.createStackWithNBT(new ItemStack(item, 1, i))); } @@ -81,7 +82,9 @@ public class ItemFluidStorageDisk extends ItemBase { } @Override - public ActionResult onItemRightClick(ItemStack disk, World world, EntityPlayer player, EnumHand hand) { + public ActionResult onItemRightClick(World world, EntityPlayer player, EnumHand hand) { + ItemStack disk = player.getHeldItem(hand); + if (!world.isRemote && player.isSneaking() && FluidStorageNBT.isValid(disk) && FluidStorageNBT.getStoredFromNBT(disk.getTagCompound()) <= 0 && disk.getMetadata() != TYPE_CREATIVE) { ItemStack storagePart = new ItemStack(RSItems.FLUID_STORAGE_PART, 1, disk.getMetadata()); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStoragePart.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStoragePart.java index 0bd2e7682..072bccd32 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStoragePart.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStoragePart.java @@ -3,8 +3,7 @@ package com.raoulvdberge.refinedstorage.item; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; - -import java.util.List; +import net.minecraft.util.NonNullList; public class ItemFluidStoragePart extends ItemBase { public static final int TYPE_64K = 0; @@ -20,7 +19,7 @@ public class ItemFluidStoragePart extends ItemBase { } @Override - public void getSubItems(Item item, CreativeTabs tab, List list) { + public void getSubItems(Item item, CreativeTabs tab, NonNullList list) { for (int i = 0; i <= 3; ++i) { list.add(new ItemStack(item, 1, i)); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemGridFilter.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemGridFilter.java index d274ff094..40bc4909c 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemGridFilter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemGridFilter.java @@ -25,7 +25,9 @@ public class ItemGridFilter extends ItemBase { } @Override - public ActionResult onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand) { + public ActionResult onItemRightClick(World world, EntityPlayer player, EnumHand hand) { + ItemStack stack = player.getHeldItem(hand); + if (!world.isRemote) { if (player.isSneaking()) { return new ActionResult<>(EnumActionResult.SUCCESS, new ItemStack(RSItems.GRID_FILTER)); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemNetworkCard.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemNetworkCard.java index 692675ca5..dfcd505ae 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemNetworkCard.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemNetworkCard.java @@ -27,11 +27,11 @@ public class ItemNetworkCard extends ItemBase { } @Override - public EnumActionResult onItemUse(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { + public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { Block block = world.getBlockState(pos).getBlock(); if (block == RSBlocks.NETWORK_RECEIVER) { - setReceiver(stack, pos, world.provider.getDimension()); + setReceiver(player.getHeldItem(hand), pos, world.provider.getDimension()); return EnumActionResult.SUCCESS; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemNetworkItem.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemNetworkItem.java index 9ef7c189e..63630d484 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemNetworkItem.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemNetworkItem.java @@ -5,17 +5,13 @@ import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSBlocks; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemProvider; import com.raoulvdberge.refinedstorage.integration.forgeenergy.NetworkItemEnergyForge; -import com.raoulvdberge.refinedstorage.integration.ic2.IntegrationIC2; import com.raoulvdberge.refinedstorage.integration.tesla.IntegrationTesla; import com.raoulvdberge.refinedstorage.integration.tesla.NetworkItemEnergyTesla; import com.raoulvdberge.refinedstorage.tile.TileController; -import ic2.api.item.IElectricItemManager; -import ic2.api.item.ISpecialElectricItem; import net.darkhax.tesla.capability.TeslaCapabilities; import net.minecraft.block.Block; import net.minecraft.client.resources.I18n; import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -29,16 +25,11 @@ import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.ICapabilityProvider; import net.minecraftforge.energy.CapabilityEnergy; -import net.minecraftforge.fml.common.Optional; import javax.annotation.Nullable; import java.util.List; -@Optional.InterfaceList({ - @Optional.Interface(iface = "ic2.api.item.ISpecialElectricItem", modid = "IC2"), - @Optional.Interface(iface = "ic2.api.item.IElectricItemManager", modid = "IC2") -}) -public abstract class ItemNetworkItem extends ItemEnergyContainer implements INetworkItemProvider, ISpecialElectricItem, IElectricItemManager { +public abstract class ItemNetworkItem extends ItemEnergyContainer implements INetworkItemProvider { public static final int TYPE_NORMAL = 0; public static final int TYPE_CREATIVE = 1; @@ -59,7 +50,9 @@ public abstract class ItemNetworkItem extends ItemEnergyContainer implements INe } @Override - public ActionResult onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand) { + public ActionResult onItemRightClick(World world, EntityPlayer player, EnumHand hand) { + ItemStack stack = player.getHeldItem(hand); + if (!world.isRemote && isValid(stack)) { World controllerWorld = DimensionManager.getWorld(getDimensionId(stack)); @@ -76,7 +69,7 @@ public abstract class ItemNetworkItem extends ItemEnergyContainer implements INe } } - return super.onItemRightClick(stack, world, player, hand); + return super.onItemRightClick(world, player, hand); } @Override @@ -110,7 +103,7 @@ public abstract class ItemNetworkItem extends ItemEnergyContainer implements INe } @Override - public void getSubItems(Item item, CreativeTabs tab, List list) { + public void getSubItems(Item item, CreativeTabs tab, NonNullList list) { list.add(new ItemStack(item, 1, TYPE_NORMAL)); ItemStack fullyCharged = new ItemStack(item, 1, TYPE_NORMAL); @@ -134,7 +127,9 @@ public abstract class ItemNetworkItem extends ItemEnergyContainer implements INe } @Override - public EnumActionResult onItemUse(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { + public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { + ItemStack stack = player.getHeldItem(hand); + Block block = world.getBlockState(pos).getBlock(); if (block == RSBlocks.CONTROLLER) { @@ -202,66 +197,6 @@ public abstract class ItemNetworkItem extends ItemEnergyContainer implements INe return getUnlocalizedName() + "." + stack.getItemDamage(); } - @Optional.Method(modid = "IC2") - @Override - public IElectricItemManager getManager(ItemStack stack) { - return this; - } - - @Optional.Method(modid = "IC2") - @Override - public double charge(ItemStack stack, double amount, int tier, boolean ignoreTransferLimit, boolean simulate) { - return IntegrationIC2.toEU(receiveEnergy(stack, IntegrationIC2.toRS(amount), simulate)); - } - - @Optional.Method(modid = "IC2") - @Override - public double discharge(ItemStack stack, double amount, int tier, boolean ignoreTransferLimit, boolean externally, boolean simulate) { - return IntegrationIC2.toEU(extractEnergy(stack, IntegrationIC2.toRS(amount), simulate)); - } - - @Optional.Method(modid = "IC2") - @Override - public double getCharge(ItemStack stack) { - return IntegrationIC2.toEU(getEnergyStored(stack)); - } - - @Optional.Method(modid = "IC2") - @Override - public double getMaxCharge(ItemStack stack) { - return IntegrationIC2.toEU(getMaxEnergyStored(stack)); - } - - @Optional.Method(modid = "IC2") - @Override - public boolean canUse(ItemStack stack, double amount) { - return true; - } - - @Optional.Method(modid = "IC2") - @Override - public boolean use(ItemStack stack, double amount, EntityLivingBase entity) { - return true; - } - - @Optional.Method(modid = "IC2") - @Override - public void chargeFromArmor(ItemStack stack, EntityLivingBase entity) { - // NO OP - } - - @Optional.Method(modid = "IC2") - @Override - public String getToolTip(ItemStack stack) { - return null; - } - - @Optional.Method(modid = "IC2") - @Override - public int getTier(ItemStack stack) { - return Integer.MAX_VALUE; - } - public boolean isValid(ItemStack stack) { return stack.hasTagCompound() && stack.getTagCompound().hasKey(NBT_CONTROLLER_X) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemPattern.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemPattern.java index f130e1298..67f94a018 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemPattern.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemPattern.java @@ -1,7 +1,7 @@ package com.raoulvdberge.refinedstorage.item; -import com.google.common.collect.Iterables; import com.raoulvdberge.refinedstorage.RSItems; +import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPattern; import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternContainer; import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternProvider; @@ -17,6 +17,7 @@ import net.minecraft.nbt.NBTTagList; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; +import net.minecraft.util.NonNullList; import net.minecraft.util.text.TextFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.Constants; @@ -59,12 +60,12 @@ public class ItemPattern extends ItemBase implements ICraftingPatternProvider { if (GuiScreen.isShiftKeyDown() || isProcessing(stack)) { tooltip.add(TextFormatting.YELLOW + I18n.format("misc.refinedstorage:pattern.inputs") + TextFormatting.RESET); - combineItems(tooltip, true, Iterables.toArray(pattern.getInputs(), ItemStack.class)); + combineItems(tooltip, true, RSUtils.toNonNullList(pattern.getInputs())); tooltip.add(TextFormatting.YELLOW + I18n.format("misc.refinedstorage:pattern.outputs") + TextFormatting.RESET); } - combineItems(tooltip, true, Iterables.toArray(pattern.getOutputs(), ItemStack.class)); + combineItems(tooltip, true, RSUtils.toNonNullList(pattern.getOutputs())); if (isOredict(stack)) { tooltip.add(TextFormatting.BLUE + I18n.format("misc.refinedstorage:pattern.oredict") + TextFormatting.RESET); @@ -80,10 +81,10 @@ public class ItemPattern extends ItemBase implements ICraftingPatternProvider { NBTTagList outputsTag = stack.getTagCompound().getTagList("Outputs", Constants.NBT.TAG_COMPOUND); - ItemStack[] outputs = new ItemStack[outputsTag.tagCount()]; + NonNullList outputs = NonNullList.create(); for (int i = 0; i < outputsTag.tagCount(); ++i) { - outputs[i] = ItemStack.loadItemStackFromNBT(outputsTag.getCompoundTagAt(i)); + outputs.add(new ItemStack(outputsTag.getCompoundTagAt(i))); } combineItems(tooltip, true, outputs); @@ -110,7 +111,7 @@ public class ItemPattern extends ItemBase implements ICraftingPatternProvider { return null; } - return ItemStack.loadItemStackFromNBT(pattern.getTagCompound().getCompoundTag(id)); + return new ItemStack(pattern.getTagCompound().getCompoundTag(id)); } public static void addOutput(ItemStack pattern, ItemStack output) { @@ -140,7 +141,7 @@ public class ItemPattern extends ItemBase implements ICraftingPatternProvider { NBTTagList outputsTag = pattern.getTagCompound().getTagList(NBT_OUTPUTS, Constants.NBT.TAG_COMPOUND); for (int i = 0; i < outputsTag.tagCount(); ++i) { - ItemStack stack = ItemStack.loadItemStackFromNBT(outputsTag.getCompoundTagAt(i)); + ItemStack stack = new ItemStack(outputsTag.getCompoundTagAt(i)); if (stack != null) { outputs.add(stack); @@ -166,18 +167,20 @@ public class ItemPattern extends ItemBase implements ICraftingPatternProvider { pattern.getTagCompound().setBoolean(NBT_OREDICT, oredict); } - public static void combineItems(List tooltip, boolean displayAmount, ItemStack... stacks) { + public static void combineItems(List tooltip, boolean displayAmount, NonNullList stacks) { Set combinedIndices = new HashSet<>(); - for (int i = 0; i < stacks.length; ++i) { - if (stacks[i] != null && !combinedIndices.contains(i)) { - String data = stacks[i].getDisplayName(); + for (int i = 0; i < stacks.size(); ++i) { + if (!stacks.get(i).isEmpty() && !combinedIndices.contains(i)) { + ItemStack stack = stacks.get(i); - int amount = stacks[i].stackSize; + String data = stack.getDisplayName(); - for (int j = i + 1; j < stacks.length; ++j) { - if (API.instance().getComparer().isEqual(stacks[i], stacks[j])) { - amount += stacks[j].stackSize; + int amount = stack.getCount(); + + for (int j = i + 1; j < stacks.size(); ++j) { + if (API.instance().getComparer().isEqual(stack, stacks.get(j))) { + amount += stacks.get(j).getCount(); combinedIndices.add(j); } @@ -191,12 +194,12 @@ public class ItemPattern extends ItemBase implements ICraftingPatternProvider { } @Override - public ActionResult onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand) { + public ActionResult onItemRightClick(World world, EntityPlayer player, EnumHand hand) { if (!world.isRemote && player.isSneaking()) { - return new ActionResult<>(EnumActionResult.SUCCESS, new ItemStack(RSItems.PATTERN, stack.stackSize)); + return new ActionResult<>(EnumActionResult.SUCCESS, new ItemStack(RSItems.PATTERN, player.getHeldItem(hand).getCount())); } - return new ActionResult<>(EnumActionResult.PASS, stack); + return new ActionResult<>(EnumActionResult.PASS, player.getHeldItem(hand)); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemProcessor.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemProcessor.java index 6e157f46a..e5227ee9b 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemProcessor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemProcessor.java @@ -3,8 +3,7 @@ package com.raoulvdberge.refinedstorage.item; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; - -import java.util.List; +import net.minecraft.util.NonNullList; public class ItemProcessor extends ItemBase { public static final int TYPE_PRINTED_BASIC = 0; @@ -23,7 +22,7 @@ public class ItemProcessor extends ItemBase { } @Override - public void getSubItems(Item item, CreativeTabs tab, List list) { + public void getSubItems(Item item, CreativeTabs tab, NonNullList list) { for (int i = 0; i <= 6; ++i) { list.add(new ItemStack(item, 1, i)); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStorageDisk.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStorageDisk.java index b8c5fc5dc..72c9d9a52 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStorageDisk.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStorageDisk.java @@ -14,9 +14,9 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; +import net.minecraft.util.NonNullList; import net.minecraft.world.World; -import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -39,7 +39,7 @@ public class ItemStorageDisk extends ItemBase { } @Override - public void getSubItems(Item item, CreativeTabs tab, List list) { + public void getSubItems(Item item, CreativeTabs tab, NonNullList list) { for (int i = 0; i < 5; ++i) { list.add(ItemStorageNBT.createStackWithNBT(new ItemStack(item, 1, i))); } @@ -75,7 +75,7 @@ public class ItemStorageDisk extends ItemBase { Item item = it.next(); if (item != RSItems.STORAGE_DISK) { - List stacks = new ArrayList<>(); + NonNullList stacks = NonNullList.create(); item.getSubItems(item, CreativeTabs.INVENTORY, stacks); @@ -105,7 +105,9 @@ public class ItemStorageDisk extends ItemBase { } @Override - public ActionResult onItemRightClick(ItemStack disk, World world, EntityPlayer player, EnumHand hand) { + public ActionResult onItemRightClick(World world, EntityPlayer player, EnumHand hand) { + ItemStack disk = player.getHeldItem(hand); + if (!world.isRemote && player.isSneaking() && ItemStorageNBT.isValid(disk) && ItemStorageNBT.getStoredFromNBT(disk.getTagCompound()) <= 0 && disk.getMetadata() != TYPE_CREATIVE) { ItemStack storagePart = new ItemStack(RSItems.STORAGE_PART, 1, disk.getMetadata()); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStoragePart.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStoragePart.java index 5b9b1ee03..dadaf3181 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStoragePart.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStoragePart.java @@ -3,8 +3,7 @@ package com.raoulvdberge.refinedstorage.item; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; - -import java.util.List; +import net.minecraft.util.NonNullList; public class ItemStoragePart extends ItemBase { public static final int TYPE_1K = 0; @@ -20,7 +19,7 @@ public class ItemStoragePart extends ItemBase { } @Override - public void getSubItems(Item item, CreativeTabs tab, List list) { + public void getSubItems(Item item, CreativeTabs tab, NonNullList list) { for (int i = 0; i <= 3; ++i) { list.add(new ItemStack(item, 1, i)); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemUpgrade.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemUpgrade.java index 17edf667e..f1e22cb63 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemUpgrade.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemUpgrade.java @@ -12,6 +12,7 @@ import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.NonNullList; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -50,7 +51,7 @@ public class ItemUpgrade extends ItemBase { } @Override - public void getSubItems(Item item, CreativeTabs tab, List list) { + public void getSubItems(Item item, CreativeTabs tab, NonNullList list) { for (int i = 0; i <= 6; ++i) { list.add(new ItemStack(item, 1, i)); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemWrench.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemWrench.java index 9782263ca..286813085 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemWrench.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemWrench.java @@ -66,11 +66,13 @@ public class ItemWrench extends ItemBase { } @Override - public EnumActionResult onItemUse(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { + public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { if (world.isRemote || !player.isSneaking()) { return EnumActionResult.PASS; } + ItemStack stack = player.getHeldItem(hand); + WrenchMode mode = WrenchMode.readFromNBT(stack.getTagCompound()); if (mode == WrenchMode.ROTATION) { @@ -119,8 +121,10 @@ public class ItemWrench extends ItemBase { } @Override - public ActionResult onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand) { + public ActionResult onItemRightClick(World world, EntityPlayer player, EnumHand hand) { if (!world.isRemote && !player.isSneaking()) { + ItemStack stack = player.getHeldItem(hand); + WrenchMode mode = WrenchMode.readFromNBT(stack.getTagCompound()); stack.setTagCompound(new NBTTagCompound()); @@ -135,7 +139,7 @@ public class ItemWrench extends ItemBase { )); } - return super.onItemRightClick(stack, world, player, hand); + return super.onItemRightClick(world, player, hand); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridCraftingClear.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridCraftingClear.java index f191c196e..a3adc27f9 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridCraftingClear.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridCraftingClear.java @@ -50,7 +50,7 @@ public class MessageGridCraftingClear extends MessageHandlerPlayerToServer unionized = ((BlockCable) state.getBlock()).getUnionizedCollisionBoxes(state); + /*List unionized = ((BlockCable) state.getBlock()).getUnionizedCollisionBoxes(state); List nonUnionized = ((BlockCable) state.getBlock()).getNonUnionizedCollisionBoxes(state); e.setCanceled(true); @@ -337,7 +326,7 @@ public class ProxyClient extends ProxyCommon { GlStateManager.depthMask(true); GlStateManager.enableTexture2D(); - GlStateManager.disableBlend(); + GlStateManager.disableBlend();*/ } private void drawSelectionBoundingBox(AxisAlignedBB aabb) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileCable.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileCable.java index 843398e8f..825ac9d71 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileCable.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileCable.java @@ -2,7 +2,7 @@ package com.raoulvdberge.refinedstorage.tile; import com.raoulvdberge.refinedstorage.RS; -public class TileCable extends TileMultipartNode { +public class TileCable extends TileNode { @Override public int getEnergyUsage() { return RS.INSTANCE.config.cableUsage; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileConstructor.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileConstructor.java index ea2f1c184..09b412929 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileConstructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileConstructor.java @@ -14,7 +14,6 @@ import com.raoulvdberge.refinedstorage.tile.config.IType; import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer; import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; -import mcmultipart.microblock.IMicroblock; import net.minecraft.block.Block; import net.minecraft.block.BlockSkull; import net.minecraft.block.SoundType; @@ -44,7 +43,7 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; -public class TileConstructor extends TileMultipartNode implements IComparable, IType { +public class TileConstructor extends TileNode implements IComparable, IType { public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter TYPE = IType.createParameter(); public static final TileDataParameter DROP = new TileDataParameter<>(DataSerializers.BOOLEAN, false, new ITileDataProducer() { @@ -94,11 +93,6 @@ public class TileConstructor extends TileMultipartNode implements IComparable, I dataManager.addWatchedParameter(DROP); } - @Override - public boolean canAddMicroblock(IMicroblock microblock) { - return !isBlockingMicroblock(microblock, getDirection()); - } - @Override public int getEnergyUsage() { return RS.INSTANCE.config.constructorUsage + upgrades.getEnergyUsage(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java index 190b63569..9d8541652 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java @@ -42,10 +42,6 @@ import com.raoulvdberge.refinedstorage.container.ContainerCraftingMonitor; import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.container.ContainerReaderWriter; import com.raoulvdberge.refinedstorage.integration.forgeenergy.ControllerEnergyForge; -import com.raoulvdberge.refinedstorage.integration.ic2.ControllerEnergyIC2; -import com.raoulvdberge.refinedstorage.integration.ic2.ControllerEnergyIC2None; -import com.raoulvdberge.refinedstorage.integration.ic2.IControllerEnergyIC2; -import com.raoulvdberge.refinedstorage.integration.ic2.IntegrationIC2; import com.raoulvdberge.refinedstorage.integration.tesla.ControllerEnergyTesla; import com.raoulvdberge.refinedstorage.integration.tesla.IntegrationTesla; import com.raoulvdberge.refinedstorage.network.*; @@ -182,7 +178,6 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR private EnergyStorage energy = new EnergyStorage(RS.INSTANCE.config.controllerCapacity); private ControllerEnergyForge energyForge = new ControllerEnergyForge(this); - private IControllerEnergyIC2 energyEU; private ControllerEnergyTesla energyTesla; private int lastEnergyDisplay; @@ -202,12 +197,6 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR dataManager.addParameter(ENERGY_CAPACITY); dataManager.addParameter(NODES); - if (IntegrationIC2.isLoaded()) { - this.energyEU = new ControllerEnergyIC2(this); - } else { - this.energyEU = new ControllerEnergyIC2None(); - } - if (IntegrationTesla.isLoaded()) { this.energyTesla = new ControllerEnergyTesla(energy); } @@ -236,8 +225,6 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR @Override public void update() { if (!getWorld().isRemote) { - energyEU.update(); - if (!craftingTasksToRead.isEmpty()) { for (NBTTagCompound tag : craftingTasksToRead) { ICraftingTask task = readCraftingTask(getWorld(), this, tag); @@ -332,13 +319,6 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR super.update(); } - @Override - public void invalidate() { - super.invalidate(); - - energyEU.invalidate(); - } - @Override public IItemGridHandler getItemGridHandler() { return itemGridHandler; @@ -354,13 +334,6 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR return networkItemHandler; } - @Override - public void onChunkUnload() { - super.onChunkUnload(); - - energyEU.onChunkUnload(); - } - public void onDestroyed() { nodeGraph.disconnectAll(); } @@ -435,7 +408,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR if (input != null) { ItemStack stored = itemList.get(input, IComparer.COMPARE_DAMAGE | IComparer.COMPARE_NBT | (patterns.get(i).isOredict() ? IComparer.COMPARE_OREDICT : 0)); - score += stored != null ? stored.stackSize : 0; + score += stored != null ? stored.getCount() : 0; } } @@ -453,7 +426,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR for (ICraftingTask task : getCraftingTasks()) { for (ItemStack output : task.getPattern().getOutputs()) { if (API.instance().getComparer().isEqual(output, stack, compare)) { - toSchedule -= output.stackSize * task.getQuantity(); + toSchedule -= output.getCount() * task.getQuantity(); } } } @@ -622,11 +595,11 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR // if this storage is in insert-only mode, we can disregard this item from the cache if (storage.getAccessType() == AccessType.INSERT && !simulate) { - insertOnlyInserted += size - (remainder != null ? remainder.stackSize : 0); + insertOnlyInserted += size - (remainder != null ? remainder.getCount() : 0); } } - if (remainder == null || remainder.stackSize <= 0) { + if (remainder == null || remainder.getCount() <= 0) { if (storage instanceof ItemStorageExternal && !simulate) { ((ItemStorageExternal) storage).detectChanges(this); // the external storage will send the change, we don't need to anymore @@ -635,26 +608,26 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR break; } else { - if (size != remainder.stackSize && storage instanceof ItemStorageExternal && !simulate) { + if (size != remainder.getCount() && storage instanceof ItemStorageExternal && !simulate) { ((ItemStorageExternal) storage).detectChanges(this); // the external storage will send the change, we don't need to anymore - externalStorageInserted += size - remainder.stackSize; + externalStorageInserted += size - remainder.getCount(); } - size = remainder.stackSize; + size = remainder.getCount(); } } - // If the stack size of the remainder is negative, it means of the original size abs(remainder.stackSize) items have been voided + // If the stack size of the remainder is negative, it means of the original size abs(remainder.getCount()) items have been voided int inserted; if (remainder == null) { inserted = orginalSize; - } else if (remainder.stackSize < 0) { - inserted = orginalSize + remainder.stackSize; + } else if (remainder.getCount() < 0) { + inserted = orginalSize + remainder.getCount(); remainder = null; } else { - inserted = orginalSize - remainder.stackSize; + inserted = orginalSize - remainder.getCount(); } if (!simulate) { @@ -696,16 +669,16 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR if (storage instanceof ItemStorageExternal && !simulate) { ((ItemStorageExternal) storage).detectChanges(this); // the external storage will send the change, we don't need to anymore - externalStorageExtracted += took.stackSize; + externalStorageExtracted += took.getCount(); } if (newStack == null) { newStack = took; } else { - newStack.stackSize += took.stackSize; + newStack.grow(took.getCount()); } - received += took.stackSize; + received += took.getCount(); } if (requested == received) { @@ -713,8 +686,8 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR } } - if (newStack != null && newStack.stackSize - externalStorageExtracted > 0 && !simulate) { - itemStorage.remove(newStack, newStack.stackSize - externalStorageExtracted); + if (newStack != null && newStack.getCount() - externalStorageExtracted > 0 && !simulate) { + itemStorage.remove(newStack, newStack.getCount() - externalStorageExtracted); } return newStack; @@ -814,9 +787,9 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR } private static ICraftingTask readCraftingTask(World world, INetworkMaster network, NBTTagCompound tag) { - ItemStack stack = ItemStack.loadItemStackFromNBT(tag.getCompoundTag(ICraftingTask.NBT_PATTERN_STACK)); + ItemStack stack = new ItemStack(tag.getCompoundTag(ICraftingTask.NBT_PATTERN_STACK)); - if (stack != null && stack.getItem() instanceof ICraftingPatternProvider) { + if (!stack.isEmpty() && stack.getItem() instanceof ICraftingPatternProvider) { TileEntity container = world.getTileEntity(BlockPos.fromLong(tag.getLong(ICraftingTask.NBT_PATTERN_CONTAINER))); if (container instanceof ICraftingPatternContainer) { @@ -825,7 +798,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR ICraftingTaskFactory factory = API.instance().getCraftingTaskRegistry().getFactory(tag.getString(ICraftingTask.NBT_PATTERN_ID)); if (factory != null) { - return factory.create(world, network, tag.hasKey(ICraftingTask.NBT_REQUESTED) ? ItemStack.loadItemStackFromNBT(tag.getCompoundTag(ICraftingTask.NBT_REQUESTED)) : null, pattern, tag.getInteger(ICraftingTask.NBT_QUANTITY), tag); + return factory.create(world, network, tag.hasKey(ICraftingTask.NBT_REQUESTED) ? new ItemStack(tag.getCompoundTag(ICraftingTask.NBT_REQUESTED)) : null, pattern, tag.getInteger(ICraftingTask.NBT_QUANTITY), tag); } } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDestructor.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDestructor.java index 43dc57547..d42c08d1a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDestructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDestructor.java @@ -13,7 +13,6 @@ import com.raoulvdberge.refinedstorage.tile.config.IType; import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer; import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; -import mcmultipart.microblock.IMicroblock; import net.minecraft.block.Block; import net.minecraft.block.BlockLiquid; import net.minecraft.block.state.IBlockState; @@ -45,7 +44,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -public class TileDestructor extends TileMultipartNode implements IComparable, IFilterable, IType { +public class TileDestructor extends TileNode implements IComparable, IFilterable, IType { public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter MODE = IFilterable.createParameter(); public static final TileDataParameter TYPE = IType.createParameter(); @@ -87,11 +86,6 @@ public class TileDestructor extends TileMultipartNode implements IComparable, IF dataManager.addWatchedParameter(PICKUP); } - @Override - public boolean canAddMicroblock(IMicroblock microblock) { - return !isBlockingMicroblock(microblock, getDirection()); - } - @Override public int getEnergyUsage() { return RS.INSTANCE.config.destructorUsage + upgrades.getEnergyUsage(); @@ -113,8 +107,8 @@ public class TileDestructor extends TileMultipartNode implements IComparable, IF if (entity instanceof EntityItem) { ItemStack droppedItem = ((EntityItem) entity).getEntityItem(); - if (IFilterable.canTake(itemFilters, mode, compare, droppedItem) && network.insertItem(droppedItem, droppedItem.stackSize, true) == null) { - network.insertItem(droppedItem.copy(), droppedItem.stackSize, false); + if (IFilterable.canTake(itemFilters, mode, compare, droppedItem) && network.insertItem(droppedItem, droppedItem.getCount(), true) == null) { + network.insertItem(droppedItem.copy(), droppedItem.getCount(), false); getWorld().removeEntity(entity); @@ -139,7 +133,7 @@ public class TileDestructor extends TileMultipartNode implements IComparable, IF } for (ItemStack drop : drops) { - if (network.insertItem(drop, drop.stackSize, true) != null) { + if (network.insertItem(drop, drop.getCount(), true) != null) { return; } } @@ -156,7 +150,7 @@ public class TileDestructor extends TileMultipartNode implements IComparable, IF if (network == null) { InventoryHelper.spawnItemStack(getWorld(), front.getX(), front.getY(), front.getZ(), drop); } else { - network.insertItem(drop, drop.stackSize, false); + network.insertItem(drop, drop.getCount(), false); } } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDetector.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDetector.java index 767759142..d93dff8e6 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDetector.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDetector.java @@ -132,10 +132,10 @@ public class TileDetector extends TileNode implements IComparable, IType { } else { ItemStack stack = network.getItemStorageCache().getList().get(slot, compare); - powered = isPowered(stack == null ? null : stack.stackSize); + powered = isPowered(stack == null ? null : stack.getCount()); } } else { - powered = mode == MODE_AUTOCRAFTING ? !network.getCraftingTasks().isEmpty() : isPowered(network.getItemStorageCache().getList().getStacks().stream().map(s -> s.stackSize).mapToInt(Number::intValue).sum()); + powered = mode == MODE_AUTOCRAFTING ? !network.getCraftingTasks().isEmpty() : isPowered(network.getItemStorageCache().getList().getStacks().stream().map(s -> s.getCount()).mapToInt(Number::intValue).sum()); } } else if (type == IType.FLUIDS) { FluidStack slot = fluidFilters.getFluidStackInSlot(0); @@ -156,7 +156,7 @@ public class TileDetector extends TileNode implements IComparable, IType { if (powered != wasPowered) { wasPowered = powered; - getWorld().notifyNeighborsOfStateChange(pos, RSBlocks.DETECTOR); + getWorld().notifyNeighborsOfStateChange(pos, RSBlocks.DETECTOR, true); updateBlock(); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskDrive.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskDrive.java index 7865d35c3..e8fc667ff 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskDrive.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskDrive.java @@ -64,7 +64,7 @@ public class TileDiskDrive extends TileNode implements IItemStorageProvider, IFl if (voidExcess && result != null) { // Simulate should not matter as the items are voided anyway - result.stackSize = -result.stackSize; + result.setCount(-result.getCount()); } return result; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskManipulator.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskManipulator.java index 05861068a..95f486939 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskManipulator.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskManipulator.java @@ -277,18 +277,18 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte continue; } - ItemStack extracted = storage.extractItem(stack, upgrades.getInteractStackSize(), compare, false); + ItemStack extracted = storage.extractItem(stack, upgrades.getItemInteractCount(), compare, false); if (extracted == null) { continue; } - ItemStack remainder = network.insertItem(extracted, extracted.stackSize, false); + ItemStack remainder = network.insertItem(extracted, extracted.getCount(), false); if (remainder == null) { break; } // We need to check if the stack was inserted - storage.insertItem(((extracted == remainder) ? remainder.copy() : remainder), remainder.stackSize, false); + storage.insertItem(((extracted == remainder) ? remainder.copy() : remainder), remainder.getCount(), false); } if (storage.getStacks().size() == 0) { @@ -311,12 +311,12 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte int j = 0; - while ((toExtract == null || toExtract.stackSize == 0) && j < networkItems.size()) { + while ((toExtract == null || toExtract.getCount() == 0) && j < networkItems.size()) { toExtract = networkItems.get(j++); } if (toExtract != null) { - extracted = network.extractItem(toExtract, upgrades.getInteractStackSize(), compare, false); + extracted = network.extractItem(toExtract, upgrades.getItemInteractCount(), compare, false); } } else { while (itemFilters.getSlots() > i && extracted == null) { @@ -327,7 +327,7 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte } if (stack != null) { - extracted = network.extractItem(stack, upgrades.getInteractStackSize(), compare, false); + extracted = network.extractItem(stack, upgrades.getItemInteractCount(), compare, false); } } } @@ -337,10 +337,10 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte return; } - ItemStack remainder = storage.insertItem(extracted, extracted.stackSize, false); + ItemStack remainder = storage.insertItem(extracted, extracted.getCount(), false); if (remainder != null) { - network.insertItem(remainder, remainder.stackSize, false); + network.insertItem(remainder, remainder.getCount(), false); } } @@ -361,7 +361,7 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte } if (stack != null) { - extracted = storage.extractFluid(stack, upgrades.getInteractStackSize(), compare, false); + extracted = storage.extractFluid(stack, upgrades.getItemInteractCount(), compare, false); } } while (extracted == null && storage.getStacks().size() > i); @@ -397,7 +397,7 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte } if (toExtract != null) { - extracted = network.extractFluid(toExtract, upgrades.getInteractStackSize(), compare, false); + extracted = network.extractFluid(toExtract, upgrades.getItemInteractCount(), compare, false); } } else { while (fluidFilters.getSlots() > i && extracted == null) { @@ -408,7 +408,7 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte } if (stack != null) { - extracted = network.extractFluid(stack, upgrades.getInteractStackSize(), compare, false); + extracted = network.extractFluid(stack, upgrades.getItemInteractCount(), compare, false); } } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileExporter.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileExporter.java index cbbdd7cbf..22b585606 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileExporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileExporter.java @@ -10,7 +10,6 @@ import com.raoulvdberge.refinedstorage.item.ItemUpgrade; import com.raoulvdberge.refinedstorage.tile.config.IComparable; import com.raoulvdberge.refinedstorage.tile.config.IType; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; -import mcmultipart.microblock.IMicroblock; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; @@ -22,7 +21,7 @@ import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemHandlerHelper; -public class TileExporter extends TileMultipartNode implements IComparable, IType { +public class TileExporter extends TileNode implements IComparable, IType { public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter TYPE = IType.createParameter(); @@ -42,11 +41,6 @@ public class TileExporter extends TileMultipartNode implements IComparable, ITyp dataManager.addWatchedParameter(TYPE); } - @Override - public boolean canAddMicroblock(IMicroblock microblock) { - return !isBlockingMicroblock(microblock, getDirection()); - } - @Override public int getEnergyUsage() { return RS.INSTANCE.config.exporterUsage + upgrades.getEnergyUsage(); @@ -63,14 +57,14 @@ public class TileExporter extends TileMultipartNode implements IComparable, ITyp ItemStack slot = itemFilters.getStackInSlot(i); if (slot != null) { - ItemStack took = network.extractItem(slot, upgrades.getInteractStackSize(), compare, true); + ItemStack took = network.extractItem(slot, upgrades.getItemInteractCount(), compare, true); if (took == null) { if (upgrades.hasUpgrade(ItemUpgrade.TYPE_CRAFTING)) { network.scheduleCraftingTask(slot, 1, compare); } } else if (ItemHandlerHelper.insertItem(handler, took, true) == null) { - took = network.extractItem(slot, upgrades.getInteractStackSize(), compare, false); + took = network.extractItem(slot, upgrades.getItemInteractCount(), compare, false); ItemHandlerHelper.insertItem(handler, took, false); } @@ -86,7 +80,7 @@ public class TileExporter extends TileMultipartNode implements IComparable, ITyp FluidStack stackInStorage = network.getFluidStorageCache().getList().get(stack, compare); if (stackInStorage != null) { - int toExtract = Math.min(Fluid.BUCKET_VOLUME * upgrades.getInteractStackSize(), stackInStorage.amount); + int toExtract = Math.min(Fluid.BUCKET_VOLUME * upgrades.getItemInteractCount(), stackInStorage.amount); FluidStack took = network.extractFluid(stack, toExtract, compare, true); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidInterface.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidInterface.java index 0894742e6..b31fbaf87 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidInterface.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidInterface.java @@ -101,7 +101,7 @@ public class TileFluidInterface extends TileNode implements IComparable { } if (ticks % upgrades.getSpeed() == 0) { - FluidStack drained = tankIn.drainInternal(Fluid.BUCKET_VOLUME * upgrades.getInteractStackSize(), true); + FluidStack drained = tankIn.drainInternal(Fluid.BUCKET_VOLUME * upgrades.getItemInteractCount(), true); // Drain in tank if (drained != null) { @@ -118,7 +118,7 @@ public class TileFluidInterface extends TileNode implements IComparable { // If our out fluid doesn't match the new fluid, empty it first if (tankOut.getFluid() != null && (stack == null || (tankOut.getFluid().getFluid() != stack.getFluid()))) { - FluidStack remainder = tankOut.drainInternal(Fluid.BUCKET_VOLUME * upgrades.getInteractStackSize(), true); + FluidStack remainder = tankOut.drainInternal(Fluid.BUCKET_VOLUME * upgrades.getItemInteractCount(), true); if (remainder != null) { network.insertFluid(remainder, remainder.amount, false); @@ -128,7 +128,7 @@ public class TileFluidInterface extends TileNode implements IComparable { FluidStack stackInStorage = network.getFluidStorageCache().getList().get(stack, compare); if (stackInStorage != null) { - int toExtract = Math.min(Fluid.BUCKET_VOLUME * upgrades.getInteractStackSize(), stackInStorage.amount); + int toExtract = Math.min(Fluid.BUCKET_VOLUME * upgrades.getItemInteractCount(), stackInStorage.amount); FluidStack took = network.extractFluid(stack, toExtract, compare, true); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileImporter.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileImporter.java index 3ab2b44dc..dca96f740 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileImporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileImporter.java @@ -11,7 +11,6 @@ import com.raoulvdberge.refinedstorage.tile.config.IComparable; import com.raoulvdberge.refinedstorage.tile.config.IFilterable; import com.raoulvdberge.refinedstorage.tile.config.IType; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; -import mcmultipart.microblock.IMicroblock; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; @@ -22,7 +21,7 @@ import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; -public class TileImporter extends TileMultipartNode implements IComparable, IFilterable, IType { +public class TileImporter extends TileNode implements IComparable, IFilterable, IType { public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter MODE = IFilterable.createParameter(); public static final TileDataParameter TYPE = IType.createParameter(); @@ -48,11 +47,6 @@ public class TileImporter extends TileMultipartNode implements IComparable, IFil dataManager.addWatchedParameter(TYPE); } - @Override - public boolean canAddMicroblock(IMicroblock microblock) { - return !isBlockingMicroblock(microblock, getDirection()); - } - @Override public int getEnergyUsage() { return RS.INSTANCE.config.importerUsage + upgrades.getEnergyUsage(); @@ -77,12 +71,12 @@ public class TileImporter extends TileMultipartNode implements IComparable, IFil if (stack == null || !IFilterable.canTake(itemFilters, mode, compare, stack)) { currentSlot++; } else if (ticks % upgrades.getSpeed() == 0) { - ItemStack result = handler.extractItem(currentSlot, upgrades.getInteractStackSize(), true); + ItemStack result = handler.extractItem(currentSlot, upgrades.getItemInteractCount(), true); - if (result != null && network.insertItem(result, result.stackSize, true) == null) { - network.insertItem(result, result.stackSize, false); + if (result != null && network.insertItem(result, result.getCount(), true) == null) { + network.insertItem(result, result.getCount(), false); - handler.extractItem(currentSlot, upgrades.getInteractStackSize(), false); + handler.extractItem(currentSlot, upgrades.getItemInteractCount(), false); } else { currentSlot++; } @@ -95,7 +89,7 @@ public class TileImporter extends TileMultipartNode implements IComparable, IFil FluidStack stack = handler.drain(Fluid.BUCKET_VOLUME, false); if (stack != null && IFilterable.canTakeFluids(fluidFilters, mode, compare, stack) && network.insertFluid(stack, stack.amount, true) == null) { - FluidStack toDrain = handler.drain(Fluid.BUCKET_VOLUME * upgrades.getInteractStackSize(), false); + FluidStack toDrain = handler.drain(Fluid.BUCKET_VOLUME * upgrades.getItemInteractCount(), false); if (toDrain != null) { FluidStack remainder = network.insertFluid(toDrain, toDrain.amount, false); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileInterface.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileInterface.java index 1fa748d81..409e8e798 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileInterface.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileInterface.java @@ -57,14 +57,14 @@ public class TileInterface extends TileNode implements IComparable { if (slot == null) { currentSlot++; } else if (ticks % upgrades.getSpeed() == 0) { - int size = Math.min(slot.stackSize, upgrades.getInteractStackSize()); + int size = Math.min(slot.getCount(), upgrades.getItemInteractCount()); ItemStack remainder = network.insertItem(slot, size, false); if (remainder == null) { importItems.extractItemInternal(currentSlot, size, false); } else { - importItems.extractItemInternal(currentSlot, size - remainder.stackSize, false); + importItems.extractItemInternal(currentSlot, size - remainder.getCount(), false); currentSlot++; } } @@ -75,10 +75,10 @@ public class TileInterface extends TileNode implements IComparable { if (wanted == null) { if (got != null) { - exportItems.setStackInSlot(i, network.insertItem(got, got.stackSize, false)); + exportItems.setStackInSlot(i, network.insertItem(got, got.getCount(), false)); } } else { - int delta = got == null ? wanted.stackSize : (wanted.stackSize - got.stackSize); + int delta = got == null ? wanted.getCount() : (wanted.getCount() - got.getCount()); if (delta > 0) { ItemStack result = network.extractItem(wanted, delta, compare, false); @@ -87,7 +87,7 @@ public class TileInterface extends TileNode implements IComparable { if (exportItems.getStackInSlot(i) == null) { exportItems.setStackInSlot(i, result); } else { - exportItems.getStackInSlot(i).stackSize += result.stackSize; + exportItems.getStackInSlot(i).grow(result.getCount()); } } else if (upgrades.hasUpgrade(ItemUpgrade.TYPE_CRAFTING)) { network.scheduleCraftingTask(wanted, delta, compare); @@ -98,7 +98,7 @@ public class TileInterface extends TileNode implements IComparable { if (remainder == null) { exportItems.extractItem(i, Math.abs(delta), false); } else { - exportItems.extractItem(i, Math.abs(delta) - remainder.stackSize, false); + exportItems.extractItem(i, Math.abs(delta) - remainder.getCount(), false); } } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileMultipartNode.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileMultipartNode.java deleted file mode 100755 index d2f452026..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileMultipartNode.java +++ /dev/null @@ -1,211 +0,0 @@ -package com.raoulvdberge.refinedstorage.tile; - -import com.raoulvdberge.refinedstorage.RSBlocks; -import mcmultipart.capabilities.ISlottedCapabilityProvider; -import mcmultipart.capabilities.MultipartCapabilityHelper; -import mcmultipart.microblock.IMicroblock; -import mcmultipart.microblock.IMicroblockContainerTile; -import mcmultipart.microblock.MicroblockContainer; -import mcmultipart.multipart.IMultipart; -import mcmultipart.multipart.IMultipartContainer; -import mcmultipart.multipart.PartSlot; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.capabilities.Capability; - -public abstract class TileMultipartNode extends TileNode implements IMicroblockContainerTile, ISlottedCapabilityProvider { - private MicroblockContainer container; - - @Override - public World getWorldIn() { - return getWorld(); - } - - @Override - public BlockPos getPosIn() { - return getPos(); - } - - @Override - public MicroblockContainer getMicroblockContainer() { - if (container == null) { - container = new MicroblockContainer(this); - - container.getPartContainer().setListener(new IMultipartContainer.IMultipartContainerListener() { - @Override - public void onAddPartPre(IMultipart part) { - } - - @Override - public void onAddPartPost(IMultipart part) { - onMicroblocksChanged(); - } - - @Override - public void onRemovePartPre(IMultipart part) { - } - - @Override - public void onRemovePartPost(IMultipart part) { - onMicroblocksChanged(); - } - }); - } - - return container; - } - - @Override - public boolean canAddMicroblock(IMicroblock microblock) { - return true; - } - - @Override - public void onMicroblocksChanged() { - markDirty(); - - if (network != null) { - network.getNodeGraph().rebuild(); - } else if (getWorld() != null) { - RSBlocks.CABLE.attemptConnect(getWorld(), pos); - } - } - - public static boolean hasBlockingMicroblock(IBlockAccess world, BlockPos pos, EnumFacing direction) { - TileEntity tile = world.getTileEntity(pos); - - if (tile instanceof TileMultipartNode) { - for (IMicroblock microblock : ((TileMultipartNode) tile).getMicroblockContainer().getParts()) { - if (isBlockingMicroblock(microblock, direction)) { - return true; - } - } - } - - return false; - } - - public static boolean isBlockingMicroblock(IMicroblock microblock, EnumFacing direction) { - if (!(microblock instanceof IMicroblock.IFaceMicroblock)) { - return false; - } - - IMicroblock.IFaceMicroblock faceMicroblock = (IMicroblock.IFaceMicroblock) microblock; - - return faceMicroblock.getFace() == direction && !faceMicroblock.isFaceHollow(); - } - - @Override - public boolean canConduct(EnumFacing direction) { - return !hasBlockingMicroblock(getWorld(), pos, direction) && !hasBlockingMicroblock(getWorld(), pos.offset(direction), direction.getOpposite()); - } - - @Override - public boolean hasCapability(Capability capability, EnumFacing facing) { - if (super.hasCapability(capability, facing)) { - return true; - } - - return MultipartCapabilityHelper.hasCapability(container, capability, facing); - } - - @Override - public T getCapability(Capability capability, EnumFacing facing) { - T impl = super.getCapability(capability, facing); - - if (impl != null) { - return impl; - } - - return MultipartCapabilityHelper.getCapability(container, capability, facing); - } - - @Override - public boolean hasCapability(Capability capability, PartSlot slot, EnumFacing facing) { - return container.hasCapability(capability, slot, facing); - } - - @Override - public T getCapability(Capability capability, PartSlot slot, EnumFacing facing) { - return container.getCapability(capability, slot, facing); - } - - @Override - public void onLoad() { - super.onLoad(); - - for (IMultipart part : getMicroblockContainer().getParts()) { - part.onLoaded(); - } - } - - @Override - public void onChunkUnload() { - super.onChunkUnload(); - - for (IMultipart part : getMicroblockContainer().getParts()) { - part.onUnloaded(); - } - } - - @Override - public NBTTagCompound write(NBTTagCompound tag) { - super.write(tag); - - getMicroblockContainer().getPartContainer().writeToNBT(tag); - - return tag; - } - - @Override - public void read(NBTTagCompound tag) { - super.read(tag); - - getMicroblockContainer().getPartContainer().readFromNBT(tag); - } - - @Override - public NBTTagCompound writeUpdate(NBTTagCompound tag) { - super.writeUpdate(tag); - - getMicroblockContainer().getPartContainer().writeToNBT(tag); - - return tag; - } - - @Override - public void readUpdate(NBTTagCompound tag) { - getMicroblockContainer().getPartContainer().readFromNBT(tag); - - super.readUpdate(tag); - } - - @Override - public boolean canRenderBreaking() { - return true; - } - - @Override - public boolean shouldRenderInPass(int pass) { - return true; - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - AxisAlignedBB bounds = super.getRenderBoundingBox().offset(-getPosIn().getX(), -getPosIn().getY(), -getPosIn().getZ()); - - for (IMultipart part : getMicroblockContainer().getParts()) { - AxisAlignedBB bb = part.getRenderBoundingBox(); - if (bb != null) { - bounds = bounds.union(bb); - } - } - - return bounds.offset(getPosIn().getX(), getPosIn().getY(), getPosIn().getZ()); - } -} \ No newline at end of file diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileReader.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileReader.java index 69b280ffc..2980a378f 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileReader.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileReader.java @@ -17,7 +17,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraftforge.common.capabilities.Capability; -public class TileReader extends TileMultipartNode implements IReader { +public class TileReader extends TileNode implements IReader { private static final String NBT_CHANNEL = "Channel"; static TileDataParameter createChannelParameter() { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileSolderer.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileSolderer.java index 8a55028f9..e2600fa4d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileSolderer.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileSolderer.java @@ -92,7 +92,7 @@ public class TileSolderer extends TileNode { } else if (newRecipe != recipe) { boolean sameItem = result.getStackInSlot(0) != null && API.instance().getComparer().isEqualNoQuantity(result.getStackInSlot(0), newRecipe.getResult()); - if (result.getStackInSlot(0) == null || (sameItem && ((result.getStackInSlot(0).stackSize + newRecipe.getResult().stackSize) <= result.getStackInSlot(0).getMaxStackSize()))) { + if (result.getStackInSlot(0) == null || (sameItem && ((result.getStackInSlot(0).getCount() + newRecipe.getResult().getCount()) <= result.getStackInSlot(0).getMaxStackSize()))) { recipe = newRecipe; progress = 0; working = true; @@ -104,14 +104,14 @@ public class TileSolderer extends TileNode { if (progress >= recipe.getDuration()) { if (result.getStackInSlot(0) != null) { - result.getStackInSlot(0).stackSize += recipe.getResult().stackSize; + result.getStackInSlot(0).grow(recipe.getResult().getCount()); } else { result.setStackInSlot(0, recipe.getResult().copy()); } for (int i = 0; i < 3; ++i) { if (recipe.getRow(i) != null) { - items.extractItem(i, recipe.getRow(i).stackSize, false); + items.extractItem(i, recipe.getRow(i).getCount(), false); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileStorage.java index 12b4e8175..758463560 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileStorage.java @@ -55,7 +55,7 @@ public class TileStorage extends TileNode implements IItemStorageProvider, IStor if (voidExcess && result != null) { // Simulate should not matter as the items are voided anyway - result.stackSize = -result.stackSize; + result.setCount(-result.getCount()); } return result; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileWriter.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileWriter.java index bf3d344fd..eba963953 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileWriter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileWriter.java @@ -12,7 +12,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; import net.minecraftforge.common.capabilities.Capability; -public class TileWriter extends TileMultipartNode implements IWriter { +public class TileWriter extends TileNode implements IWriter { private static final String NBT_CHANNEL = "Channel"; private static final TileDataParameter CHANNEL = TileReader.createChannelParameter(); @@ -38,7 +38,7 @@ public class TileWriter extends TileMultipartNode implements IWriter { if (!getWorld().isRemote && getRedstoneStrength() != lastRedstoneStrength) { lastRedstoneStrength = getRedstoneStrength(); - getWorld().notifyNeighborsOfStateChange(pos, RSBlocks.WRITER); + getWorld().notifyNeighborsOfStateChange(pos, RSBlocks.WRITER, true); } } @@ -166,7 +166,7 @@ public class TileWriter extends TileMultipartNode implements IWriter { public void setDirection(EnumFacing direction) { super.setDirection(direction); - getWorld().notifyNeighborsOfStateChange(pos, RSBlocks.WRITER); + getWorld().notifyNeighborsOfStateChange(pos, RSBlocks.WRITER, true); } public void onOpened(EntityPlayer entity) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/ItemStorageDSU.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/ItemStorageDSU.java index b861034c9..7d41dfd3c 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/ItemStorageDSU.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/ItemStorageDSU.java @@ -27,7 +27,7 @@ public class ItemStorageDSU extends ItemStorageExternal { @Override public List getStacks() { - if (unit.getStoredItemType() != null && unit.getStoredItemType().stackSize > 0) { + if (unit.getStoredItemType() != null && unit.getStoredItemType().getCount() > 0) { return Collections.singletonList(unit.getStoredItemType().copy()); } @@ -47,13 +47,13 @@ public class ItemStorageDSU extends ItemStorageExternal { } if (!simulate) { - unit.setStoredItemCount(unit.getStoredItemType().stackSize + remainingSpace); + unit.setStoredItemCount(unit.getStoredItemType().getCount() + remainingSpace); } return ItemHandlerHelper.copyStackWithSize(stack, size - remainingSpace); } else { if (!simulate) { - unit.setStoredItemCount(unit.getStoredItemType().stackSize + size); + unit.setStoredItemCount(unit.getStoredItemType().getCount() + size); } return null; @@ -88,14 +88,14 @@ public class ItemStorageDSU extends ItemStorageExternal { @Override public ItemStack extractItem(@Nonnull ItemStack stack, int size, int flags, boolean simulate) { if (API.instance().getComparer().isEqual(stack, unit.getStoredItemType(), flags)) { - if (size > unit.getStoredItemType().stackSize) { - size = unit.getStoredItemType().stackSize; + if (size > unit.getStoredItemType().getCount()) { + size = unit.getStoredItemType().getCount(); } ItemStack stored = unit.getStoredItemType(); if (!simulate) { - unit.setStoredItemCount(stored.stackSize - size); + unit.setStoredItemCount(stored.getCount() - size); } return ItemHandlerHelper.copyStackWithSize(stored, size); @@ -106,7 +106,7 @@ public class ItemStorageDSU extends ItemStorageExternal { @Override public int getStored() { - return unit.getStoredItemType() != null ? unit.getStoredItemType().stackSize : 0; + return unit.getStoredItemType() != null ? unit.getStoredItemType().getCount() : 0; } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/ItemStorageDrawerGroup.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/ItemStorageDrawerGroup.java index 0673ca9e2..15c039ae9 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/ItemStorageDrawerGroup.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/ItemStorageDrawerGroup.java @@ -70,10 +70,10 @@ public class ItemStorageDrawerGroup extends ItemStorageExternal { if (drawers.isDrawerEnabled(i)) { remainder = ItemStorageDrawer.insertItem(externalStorage, drawers.getDrawer(i), stack, size, simulate); - if (remainder == null || remainder.stackSize <= 0) { + if (remainder == null || remainder.getCount() <= 0) { break; } else { - size = remainder.stackSize; + size = remainder.getCount(); } } } @@ -96,10 +96,10 @@ public class ItemStorageDrawerGroup extends ItemStorageExternal { if (result == null) { result = extracted; } else { - result.stackSize += extracted.stackSize; + result.grow(extracted.getCount()); } - toExtract -= extracted.stackSize; + toExtract -= extracted.getCount(); } if (toExtract == 0) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/ItemStorageExternal.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/ItemStorageExternal.java index bd029bb09..82df2d231 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/ItemStorageExternal.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/ItemStorageExternal.java @@ -33,7 +33,7 @@ public abstract class ItemStorageExternal implements IItemStorage { // If we exceed the cache size, than that means this items is added if (i >= cache.size()) { if (actual != null) { - network.getItemStorageCache().add(actual, actual.stackSize, false); + network.getItemStorageCache().add(actual, actual.getCount(), false); } continue; @@ -43,18 +43,18 @@ public abstract class ItemStorageExternal implements IItemStorage { if (cached != null && actual == null) { // If the cached is not null but the actual is, we remove this item - network.getItemStorageCache().remove(cached, cached.stackSize); + network.getItemStorageCache().remove(cached, cached.getCount()); } else if (cached == null && actual != null) { // If the cached is null and the actual isn't, we added this item - network.getItemStorageCache().add(actual, actual.stackSize, false); + network.getItemStorageCache().add(actual, actual.getCount(), false); } else if (cached == null && actual == null) { // If they're both null, nothing happens } else if (!API.instance().getComparer().isEqualNoQuantity(cached, actual)) { // If both items mismatch, remove the old and add the new - network.getItemStorageCache().remove(cached, cached.stackSize); - network.getItemStorageCache().add(actual, actual.stackSize, false); - } else if (cached.stackSize != actual.stackSize) { - int delta = actual.stackSize - cached.stackSize; + network.getItemStorageCache().remove(cached, cached.getCount()); + network.getItemStorageCache().add(actual, actual.getCount(), false); + } else if (cached.getCount() != actual.getCount()) { + int delta = actual.getCount() - cached.getCount(); if (delta > 0) { network.getItemStorageCache().add(actual, delta, false); @@ -69,7 +69,7 @@ public abstract class ItemStorageExternal implements IItemStorage { if (cache.size() > newStacks.size()) { for (int i = newStacks.size(); i < cache.size(); ++i) { if (cache.get(i) != null) { - network.getItemStorageCache().remove(cache.get(i), cache.get(i).stackSize); + network.getItemStorageCache().remove(cache.get(i), cache.get(i).getCount()); } } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/ItemStorageItemHandler.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/ItemStorageItemHandler.java index ad8a5e171..ec503437b 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/ItemStorageItemHandler.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/ItemStorageItemHandler.java @@ -65,10 +65,10 @@ public class ItemStorageItemHandler extends ItemStorageExternal { if (received == null) { received = got; } else { - received.stackSize += got.stackSize; + received.grow(got.getCount()); } - remaining -= got.stackSize; + remaining -= got.getCount(); if (remaining == 0) { break; @@ -86,7 +86,7 @@ public class ItemStorageItemHandler extends ItemStorageExternal { for (int i = 0; i < handler.getSlots(); ++i) { if (handler.getStackInSlot(i) != null) { - size += handler.getStackInSlot(i).stackSize; + size += handler.getStackInSlot(i).getCount(); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/TileExternalStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/TileExternalStorage.java index 2e50749c3..975654c67 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/TileExternalStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/TileExternalStorage.java @@ -14,12 +14,10 @@ import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; import com.raoulvdberge.refinedstorage.tile.IStorageGui; -import com.raoulvdberge.refinedstorage.tile.TileMultipartNode; import com.raoulvdberge.refinedstorage.tile.TileNode; import com.raoulvdberge.refinedstorage.tile.config.*; import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; -import mcmultipart.microblock.IMicroblock; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.datasync.DataSerializers; import net.minecraft.tileentity.TileEntity; @@ -31,7 +29,7 @@ import powercrystals.minefactoryreloaded.api.IDeepStorageUnit; import java.util.ArrayList; import java.util.List; -public class TileExternalStorage extends TileMultipartNode implements IItemStorageProvider, IFluidStorageProvider, IStorageGui, IComparable, IFilterable, IPrioritizable, IType, IAccessType { +public class TileExternalStorage extends TileNode implements IItemStorageProvider, IFluidStorageProvider, IStorageGui, IComparable, IFilterable, IPrioritizable, IType, IAccessType { public static final TileDataParameter PRIORITY = IPrioritizable.createParameter(); public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter MODE = IFilterable.createParameter(); @@ -99,11 +97,6 @@ public class TileExternalStorage extends TileMultipartNode implements IItemStora dataManager.addWatchedParameter(ACCESS_TYPE); } - @Override - public boolean canAddMicroblock(IMicroblock microblock) { - return !isBlockingMicroblock(microblock, getDirection()); - } - @Override public int getEnergyUsage() { return RS.INSTANCE.config.externalStorageUsage + ((itemStorages.size() + fluidStorages.size()) * RS.INSTANCE.config.externalStoragePerStorageUsage); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/TileGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/TileGrid.java index c8875d5a1..09b2b74fb 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/TileGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/TileGrid.java @@ -29,6 +29,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.datasync.DataSerializers; +import net.minecraft.util.NonNullList; import net.minecraft.util.math.BlockPos; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemHandlerHelper; @@ -268,16 +269,16 @@ public class TileGrid extends TileNode implements IGrid { } public void onCrafted(EntityPlayer player) { - ItemStack[] remainder = CraftingManager.getInstance().getRemainingItems(matrix, getWorld()); + NonNullList remainder = CraftingManager.getInstance().getRemainingItems(matrix, getWorld()); for (int i = 0; i < matrix.getSizeInventory(); ++i) { ItemStack slot = matrix.getStackInSlot(i); - if (i < remainder.length && remainder[i] != null) { + if (i < remainder.size() && !remainder.get(i).isEmpty()) { // If there is no space for the remainder, dump it in the player inventory - if (slot != null && slot.stackSize > 1) { - if (!player.inventory.addItemStackToInventory(remainder[i].copy())) { - ItemStack remainderStack = network.insertItem(remainder[i].copy(), remainder[i].stackSize, false); + if (slot != null && slot.getCount() > 1) { + if (!player.inventory.addItemStackToInventory(remainder.get(i).copy())) { + ItemStack remainderStack = network.insertItem(remainder.get(i).copy(), remainder.get(i).getCount(), false); if (remainderStack != null) { InventoryHelper.spawnItemStack(player.getEntityWorld(), player.getPosition().getX(), player.getPosition().getY(), player.getPosition().getZ(), remainderStack); @@ -286,10 +287,10 @@ public class TileGrid extends TileNode implements IGrid { matrix.decrStackSize(i, 1); } else { - matrix.setInventorySlotContents(i, remainder[i].copy()); + matrix.setInventorySlotContents(i, remainder.get(i).copy()); } } else if (slot != null) { - if (slot.stackSize == 1 && isConnected()) { + if (slot.getCount() == 1 && isConnected()) { matrix.setInventorySlotContents(i, network.extractItem(slot, 1, false)); } else { matrix.decrStackSize(i, 1); @@ -310,16 +311,16 @@ public class TileGrid extends TileNode implements IGrid { craftedItemsList.add(crafted.copy()); - craftedItems += crafted.stackSize; + craftedItems += crafted.getCount(); - if (!API.instance().getComparer().isEqual(crafted, result.getStackInSlot(0)) || craftedItems + crafted.stackSize > crafted.getMaxStackSize()) { + if (!API.instance().getComparer().isEqual(crafted, result.getStackInSlot(0)) || craftedItems + crafted.getCount() > crafted.getMaxStackSize()) { break; } } for (ItemStack craftedItem : craftedItemsList) { if (!player.inventory.addItemStackToInventory(craftedItem.copy())) { - ItemStack remainder = network.insertItem(craftedItem, craftedItem.stackSize, false); + ItemStack remainder = network.insertItem(craftedItem, craftedItem.getCount(), false); if (remainder != null) { InventoryHelper.spawnItemStack(player.getEntityWorld(), player.getPosition().getX(), player.getPosition().getY(), player.getPosition().getZ(), remainder); } @@ -364,10 +365,10 @@ public class TileGrid extends TileNode implements IGrid { if (getType() == EnumGridType.CRAFTING) { // If we are connected, try to insert into network. If it fails, stop. if (isConnected()) { - if (network.insertItem(slot, slot.stackSize, true) != null) { + if (network.insertItem(slot, slot.getCount(), true) != null) { return; } else { - network.insertItem(slot, slot.stackSize, false); + network.insertItem(slot, slot.getCount(), false); } } else { // If we aren't connected, try to insert into player inventory. If it fails, stop.