diff --git a/CHANGELOG.md b/CHANGELOG.md index b7b8a1237..64cc9d303 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Refined Storage Changelog +### 1.4.12 +- Updated Forge to 2315 (raoulvdberge) +- Updated JEI to 4.5.0 (raoulvdberge) +- Removed Collosal Chests integration (raoulvdberge) + ### 1.4.11 - Removed debug log configuration option, as it's no longer needed (raoulvdberge) - Removed "autocraft on redstone signal" option in the Crafter, use an External Storage in combination with an Interface with the Crafting Upgrade instead (raoulvdberge) diff --git a/build.gradle b/build.gradle index 28a71a0ac..fc599e47d 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.4.11" +version = "1.4.12" group = "refinedstorage" archivesBaseName = "refinedstorage" @@ -28,10 +28,10 @@ sourceCompatibility = 1.8 targetCompatibility = 1.8 minecraft { - version = "1.11.2-13.20.0.2296" + version = "1.11.2-13.20.0.2315" runDir = "run" useDepAts = true - mappings = "snapshot_20170401" + mappings = "snapshot_20170609" } repositories { @@ -45,23 +45,16 @@ repositories { url "http://maven.amadornes.com" } maven { - name "Cyclops Repo" - url "https://dl.bintray.com/cyclopsmc/dev/" - } - maven { - name "oc" - url "http://maven.cil.li/" + url "http://maven.cil.li" } } dependencies { - deobfCompile "mezz.jei:jei_1.11.2:4.3.4.273:api" - runtime "mezz.jei:jei_1.11.2:4.3.4.273" + deobfCompile "mezz.jei:jei_1.11.2:4.5.0.287:api" + runtime "mezz.jei:jei_1.11.2:4.5.0.287" deobfCompile "net.darkhax.tesla:Tesla:1.11-1.3.0.52" - deobfCompile "org.cyclops.cyclopscore:CyclopsCore:1.11.2-0.10.2-542" - deobfCompile "org.cyclops.commoncapabilities:CommonCapabilities:1.11.2-1.3.2-107" deobfCompile "MCMultiPart2:MCMultiPart-exp:2.0.0_19" - deobfCompile "li.cil.oc:OpenComputers:MC1.11.2-1.7.0.14:api" + deobfCompile "li.cil.oc:OpenComputers:MC1.11.2-1.7.0.28:api" } processResources { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/RS.java b/src/main/java/com/raoulvdberge/refinedstorage/RS.java index c6b27a091..fb021b6cc 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/RS.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/RS.java @@ -22,8 +22,8 @@ public final class RS { } public static final String ID = "refinedstorage"; - public static final String VERSION = "1.4.11"; - public static final String DEPENDENCIES = "required-after:forge@[13.19.1.2188,);after:commoncapabilities@[1.3.1,);after:jei@[4.3.0,);"; + public static final String VERSION = "1.4.12"; + public static final String DEPENDENCIES = "required-after:forge@[13.19.1.2188,);after:jei@[4.5.0,);"; public static final String GUI_FACTORY = "com.raoulvdberge.refinedstorage.gui.config.ModGuiFactory"; public static final String UPDATE_JSON = "https://refinedstorage.raoulvdberge.com/update"; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/RSUtils.java b/src/main/java/com/raoulvdberge/refinedstorage/RSUtils.java index ecbfd9d1f..e7912081d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/RSUtils.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/RSUtils.java @@ -324,7 +324,7 @@ public final class RSUtils { } } - public static IItemHandler getItemHandler(TileEntity tile, EnumFacing side) { + public static IItemHandler getItemHandler(@Nullable TileEntity tile, EnumFacing side) { if (tile == null) { return null; } @@ -429,7 +429,7 @@ public final class RSUtils { Vec3d lookVec = player.getLookVec(); Vec3d start = getStart(player); - return start.addVector(lookVec.xCoord * reachDistance, lookVec.yCoord * reachDistance, lookVec.zCoord * reachDistance); + return start.addVector(lookVec.x * reachDistance, lookVec.y * reachDistance, lookVec.z * reachDistance); } public static AdvancedRayTraceResult collisionRayTrace(BlockPos pos, Vec3d start, Vec3d end, Collection boxes) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDestructor.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDestructor.java index 9e5780407..0acdf5b7a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDestructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDestructor.java @@ -84,7 +84,7 @@ public class NetworkNodeDestructor extends NetworkNode implements IComparable, I for (Entity entity : droppedItems) { if (entity instanceof EntityItem) { - ItemStack droppedItem = ((EntityItem) entity).getEntityItem(); + ItemStack droppedItem = ((EntityItem) entity).getItem(); if (IFilterable.canTake(itemFilters, mode, compare, droppedItem) && network.insertItem(droppedItem, droppedItem.getCount(), true) == null) { network.insertItemTracked(droppedItem.copy(), droppedItem.getCount()); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeExporter.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeExporter.java index 869c7b08d..4e17921f4 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeExporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeExporter.java @@ -6,8 +6,6 @@ import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask; import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.apiimpl.API; -import com.raoulvdberge.refinedstorage.integration.cyclopscore.IntegrationCyclopsCore; -import com.raoulvdberge.refinedstorage.integration.cyclopscore.SlotlessItemHandlerHelper; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; @@ -186,18 +184,10 @@ public class NetworkNodeExporter extends NetworkNode implements IComparable, ITy if (upgrades.hasUpgrade(ItemUpgrade.TYPE_CRAFTING)) { network.getCraftingManager().schedule(slot, 1, compare); } - } else { - if (IntegrationCyclopsCore.isLoaded() - && SlotlessItemHandlerHelper.isSlotless(getFacingTile(), getDirection().getOpposite()) - && SlotlessItemHandlerHelper.insertItem(getFacingTile(), getDirection().getOpposite(), took, true).isEmpty()) { - took = network.extractItem(slot, upgrades.getItemInteractCount(), compare, false); + } else if (ItemHandlerHelper.insertItem(handler, took, true).isEmpty()) { + took = network.extractItem(slot, upgrades.getItemInteractCount(), compare, false); - SlotlessItemHandlerHelper.insertItem(getFacingTile(), getDirection().getOpposite(), took, false); - } else if (ItemHandlerHelper.insertItem(handler, took, true).isEmpty()) { - took = network.extractItem(slot, upgrades.getItemInteractCount(), compare, false); - - ItemHandlerHelper.insertItem(handler, took, false); - } + ItemHandlerHelper.insertItem(handler, took, false); } } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeImporter.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeImporter.java index 5c73e8d1c..989ffc2f3 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeImporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeImporter.java @@ -3,16 +3,19 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node; import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.api.util.IComparer; -import com.raoulvdberge.refinedstorage.integration.cyclopscore.ImportingBehaviorCyclops; -import com.raoulvdberge.refinedstorage.integration.cyclopscore.IntegrationCyclopsCore; -import com.raoulvdberge.refinedstorage.integration.cyclopscore.SlotlessItemHandlerHelper; -import com.raoulvdberge.refinedstorage.inventory.*; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade; import com.raoulvdberge.refinedstorage.item.ItemUpgrade; +import com.raoulvdberge.refinedstorage.tile.TileDiskDrive; import com.raoulvdberge.refinedstorage.tile.TileImporter; import com.raoulvdberge.refinedstorage.tile.config.IComparable; import com.raoulvdberge.refinedstorage.tile.config.IFilterable; import com.raoulvdberge.refinedstorage.tile.config.IType; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.fluids.Fluid; @@ -56,11 +59,34 @@ public class NetworkNodeImporter extends NetworkNode implements IComparable, IFi } if (type == IType.ITEMS) { - IImportingBehavior behavior = ImportingBehaviorItemHandler.INSTANCE; - if (IntegrationCyclopsCore.isLoaded() && SlotlessItemHandlerHelper.isSlotless(getFacingTile(), getDirection().getOpposite())) { - behavior = ImportingBehaviorCyclops.INSTANCE; + TileEntity facing = getFacingTile(); + IItemHandler handler = RSUtils.getItemHandler(facing, getDirection().getOpposite()); + + if (facing instanceof TileDiskDrive || handler == null) { + return; + } + + if (currentSlot >= handler.getSlots()) { + currentSlot = 0; + } + + if (handler.getSlots() > 0) { + ItemStack stack = handler.getStackInSlot(currentSlot); + + if (stack.isEmpty() || !IFilterable.canTake(itemFilters, mode, compare, stack)) { + currentSlot++; + } else if (ticks % upgrades.getSpeed() == 0) { + ItemStack result = handler.extractItem(currentSlot, upgrades.getItemInteractCount(), true); + + if (!result.isEmpty() && network.insertItem(result, result.getCount(), true) == null) { + network.insertItemTracked(result, result.getCount()); + + handler.extractItem(currentSlot, upgrades.getItemInteractCount(), false); + } else { + currentSlot++; + } + } } - currentSlot = behavior.doImport(getFacingTile(), getDirection().getOpposite(), currentSlot, itemFilters, mode, compare, ticks, upgrades, network); } else if (type == IType.FLUIDS && ticks % upgrades.getSpeed() == 0) { IFluidHandler handler = RSUtils.getFluidHandler(getFacingTile(), getDirection().getOpposite()); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/externalstorage/NetworkNodeExternalStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/externalstorage/NetworkNodeExternalStorage.java index f9ec7db44..c251d36b9 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/externalstorage/NetworkNodeExternalStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/externalstorage/NetworkNodeExternalStorage.java @@ -11,7 +11,6 @@ import com.raoulvdberge.refinedstorage.api.storage.IStorageProvider; import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.apiimpl.network.node.IGuiStorage; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode; -import com.raoulvdberge.refinedstorage.integration.cyclopscore.IntegrationCyclopsCore; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; @@ -205,8 +204,6 @@ public class NetworkNodeExternalStorage extends NetworkNode implements IStorageP return f instanceof IDrawer ? (IDrawer) f : null; })); - } else if (IntegrationCyclopsCore.isLoaded() && StorageItemCyclops.isValid(facing, getDirection().getOpposite())) { - itemStorages.add(new StorageItemCyclops(this)); } else if (facing != null && !(facing.hasCapability(CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY, getDirection().getOpposite()) && facing.getCapability(CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY, getDirection().getOpposite()).getNode() instanceof IStorageProvider)) { IItemHandler itemHandler = RSUtils.getItemHandler(facing, getDirection().getOpposite()); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/externalstorage/StorageItemCyclops.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/externalstorage/StorageItemCyclops.java deleted file mode 100644 index f97392240..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/externalstorage/StorageItemCyclops.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.raoulvdberge.refinedstorage.apiimpl.network.node.externalstorage; - -import com.raoulvdberge.refinedstorage.RSUtils; -import com.raoulvdberge.refinedstorage.api.network.INetwork; -import com.raoulvdberge.refinedstorage.api.storage.AccessType; -import com.raoulvdberge.refinedstorage.integration.cyclopscore.SlotlessItemHandlerHelper; -import com.raoulvdberge.refinedstorage.tile.config.IFilterable; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.items.ItemHandlerHelper; -import org.cyclops.cyclopscore.inventory.IndexedSlotlessItemHandlerWrapper; -import org.cyclops.cyclopscore.inventory.SimpleInventory; -import org.cyclops.cyclopscore.tileentity.InventoryTileEntityBase; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.function.Supplier; -import java.util.stream.Collectors; - -public class StorageItemCyclops extends StorageItemExternal { - private NetworkNodeExternalStorage externalStorage; - private EnumFacing opposite; - private Supplier cyclopsInv; - private int oldInventoryHash = -1; - - public StorageItemCyclops(NetworkNodeExternalStorage externalStorage) { - this.externalStorage = externalStorage; - this.opposite = externalStorage.getDirection().getOpposite(); - this.cyclopsInv = () -> { - TileEntity f = externalStorage.getFacingTile(); - - return f instanceof InventoryTileEntityBase ? (InventoryTileEntityBase) f : null; - }; - } - - @Override - public void detectChanges(INetwork network) { - InventoryTileEntityBase inv = cyclopsInv.get(); - if (inv != null) { - int inventoryHash = inv.getInventoryHash(); - - if (inventoryHash != oldInventoryHash) { - super.detectChanges(network); - - oldInventoryHash = inventoryHash; - } - } - } - - @Override - public Collection getStacks() { - return getStacks(cyclopsInv.get()); - } - - @Override - public int getStored() { - return getStacks(cyclopsInv.get()).stream().mapToInt(ItemStack::getCount).sum(); - } - - @Override - public int getPriority() { - return this.externalStorage.getPriority(); - } - - @Override - public AccessType getAccessType() { - return this.externalStorage.getAccessType(); - } - - @Override - public int getCapacity() { - InventoryTileEntityBase inv = cyclopsInv.get(); - - return inv != null ? inv.getInventory().getSizeInventory() * 64 : 0; - } - - @Nullable - @Override - public ItemStack insert(@Nonnull ItemStack stack, int size, boolean simulate) { - InventoryTileEntityBase inv = cyclopsInv.get(); - - if (inv != null && IFilterable.canTake(externalStorage.getItemFilters(), externalStorage.getMode(), externalStorage.getCompare(), stack)) { - return RSUtils.transformEmptyToNull(SlotlessItemHandlerHelper.insertItem(inv, opposite, stack, size, simulate)); - } - - return ItemHandlerHelper.copyStackWithSize(stack, size); - } - - @Nullable - @Override - public ItemStack extract(@Nonnull ItemStack stack, int size, int flags, boolean simulate) { - InventoryTileEntityBase inv = cyclopsInv.get(); - - return inv != null ? RSUtils.transformEmptyToNull(SlotlessItemHandlerHelper.extractItem(inv, opposite, stack, size, flags, simulate)) : null; - } - - private Collection getStacks(@Nullable InventoryTileEntityBase inv) { - if (inv != null) { - if (inv.getInventory() instanceof IndexedSlotlessItemHandlerWrapper.IInventoryIndexReference) { - return ((IndexedSlotlessItemHandlerWrapper.IInventoryIndexReference) inv.getInventory()) - .getIndex() - .values() - .stream() - .flatMap(m -> m.valueCollection().stream()) - .map(ItemStack::copy) - .collect(Collectors.toList()); - } else { - return Arrays.stream(((SimpleInventory) inv.getInventory()).getItemStacks()) - .map(ItemStack::copy) - .collect(Collectors.toList()); - } - } else { - return Collections.emptyList(); - } - } - - public static boolean isValid(TileEntity facingTE, EnumFacing facing) { - return facingTE instanceof InventoryTileEntityBase - && (SlotlessItemHandlerHelper.isSlotless(facingTE, facing) - || ((InventoryTileEntityBase) facingTE).getInventory() instanceof SimpleInventory); - } -} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiBase.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiBase.java index e9eebeb88..463cf33a3 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiBase.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiBase.java @@ -207,8 +207,8 @@ public abstract class GuiBase extends GuiContainer { public SideButton addSideButton(SideButton button) { button.id = lastButtonId++; - button.xPosition = guiLeft + -SideButton.WIDTH - 2; - button.yPosition = guiTop + lastSideButtonY; + button.x = guiLeft + -SideButton.WIDTH - 2; + button.y = guiTop + lastSideButtonY; lastSideButtonY += SideButton.HEIGHT + 2; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiFilter.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiFilter.java index ba626e929..106611e8d 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiFilter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiFilter.java @@ -55,7 +55,7 @@ public class GuiFilter extends GuiBase { toggleMode.setWidth(fontRenderer.getStringWidth(text) + 12); toggleMode.displayString = text; - toggleModFilter.xPosition = toggleMode.xPosition + toggleMode.getButtonWidth() + 4; + toggleModFilter.x = toggleMode.x + toggleMode.getButtonWidth() + 4; } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiSecurityManager.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiSecurityManager.java index 1ef9db4fa..6704be3c4 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiSecurityManager.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiSecurityManager.java @@ -31,11 +31,11 @@ public class GuiSecurityManager extends GuiBase { int padding = 15; permissions[0] = addCheckBox(x + 7, y + 93, I18n.format("gui.refinedstorage:security_manager.permission.0"), false); - permissions[1] = addCheckBox(permissions[0].xPosition, permissions[0].yPosition + padding, I18n.format("gui.refinedstorage:security_manager.permission.1"), false); - permissions[2] = addCheckBox(permissions[1].xPosition, permissions[1].yPosition + padding, I18n.format("gui.refinedstorage:security_manager.permission.2"), false); - permissions[3] = addCheckBox(permissions[0].xPosition + 90, permissions[0].yPosition, I18n.format("gui.refinedstorage:security_manager.permission.3"), false); - permissions[4] = addCheckBox(permissions[3].xPosition, permissions[3].yPosition + padding, I18n.format("gui.refinedstorage:security_manager.permission.4"), false); - permissions[5] = addCheckBox(permissions[4].xPosition, permissions[4].yPosition + padding, I18n.format("gui.refinedstorage:security_manager.permission.5"), false); + permissions[1] = addCheckBox(permissions[0].x, permissions[0].y + padding, I18n.format("gui.refinedstorage:security_manager.permission.1"), false); + permissions[2] = addCheckBox(permissions[1].x, permissions[1].y + padding, I18n.format("gui.refinedstorage:security_manager.permission.2"), false); + permissions[3] = addCheckBox(permissions[0].x + 90, permissions[0].y, I18n.format("gui.refinedstorage:security_manager.permission.3"), false); + permissions[4] = addCheckBox(permissions[3].x, permissions[3].y + padding, I18n.format("gui.refinedstorage:security_manager.permission.4"), false); + permissions[5] = addCheckBox(permissions[4].x, permissions[4].y + padding, I18n.format("gui.refinedstorage:security_manager.permission.5"), false); } @Override @@ -74,7 +74,7 @@ public class GuiSecurityManager extends GuiBase { for (int i = 0; i < permissions.length; ++i) { GuiCheckBox permission = permissions[i]; - if (inBounds(permission.xPosition - guiLeft, permission.yPosition - guiTop, permission.width, permission.height, mouseX, mouseY)) { + if (inBounds(permission.x - guiLeft, permission.y - guiTop, permission.width, permission.height, mouseX, mouseY)) { drawTooltip(mouseX, mouseY, I18n.format("gui.refinedstorage:security_manager.permission." + i + ".tooltip")); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java index 5dff3a446..b44269cc9 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java @@ -139,8 +139,8 @@ public class GuiGrid extends GuiBase implements IGridDisplay { updateSearchFieldFocus(grid.getSearchBoxMode()); } else { - searchField.xPosition = sx; - searchField.yPosition = sy; + searchField.x = sx; + searchField.y = sy; } if (grid.getType() == GridType.PATTERN) { @@ -176,7 +176,7 @@ public class GuiGrid extends GuiBase implements IGridDisplay { List> filters = GridFilterParser.getFilters( grid, - searchField.getText(), + searchField != null ? searchField.getText() : "", (grid.getTabSelected() >= 0 && grid.getTabSelected() < grid.getTabs().size()) ? grid.getTabs().get(grid.getTabSelected()).getFilters() : grid.getFilters() ); @@ -660,7 +660,7 @@ public class GuiGrid extends GuiBase implements IGridDisplay { private void updateJEI() { if (IntegrationJEI.isLoaded() && (grid.getSearchBoxMode() == NetworkNodeGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED || grid.getSearchBoxMode() == NetworkNodeGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED_AUTOSELECTED)) { - RSJEIPlugin.INSTANCE.getRuntime().getItemListOverlay().setFilterText(searchField.getText()); + RSJEIPlugin.INSTANCE.getRuntime().getIngredientFilter().setFilterText(searchField.getText()); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButton.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButton.java index b250c4eaa..daf116d47 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButton.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButton.java @@ -26,18 +26,18 @@ public abstract class SideButton extends GuiButton { public void drawButton(Minecraft mc, int mouseX, int mouseY) { GlStateManager.enableAlpha(); - hovered = gui.inBounds(xPosition, yPosition, width, height, mouseX, mouseY); + hovered = gui.inBounds(x, y, width, height, mouseX, mouseY); gui.bindTexture("icons.png"); - gui.drawTexture(xPosition, yPosition, 238, hovered ? 35 : 16, 18, 18); + gui.drawTexture(x, y, 238, hovered ? 35 : 16, 18, 18); - drawButtonIcon(xPosition + 1, yPosition + 1); + drawButtonIcon(x + 1, y + 1); if (hovered) { GlStateManager.enableBlend(); GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GlStateManager.color(1.0f, 1.0f, 1.0f, 0.5f); - gui.drawTexture(xPosition, yPosition, 238, 54, 18, 18); + gui.drawTexture(x, y, 238, 54, 18, 18); GlStateManager.disableBlend(); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/cyclopscore/ImportingBehaviorCyclops.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/cyclopscore/ImportingBehaviorCyclops.java deleted file mode 100644 index c3ac13c30..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/cyclopscore/ImportingBehaviorCyclops.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.raoulvdberge.refinedstorage.integration.cyclopscore; - -import com.raoulvdberge.refinedstorage.api.network.INetwork; -import com.raoulvdberge.refinedstorage.inventory.IImportingBehavior; -import com.raoulvdberge.refinedstorage.inventory.ImportingBehaviorItemHandler; -import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade; -import com.raoulvdberge.refinedstorage.tile.config.IFilterable; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.items.IItemHandler; - -public class ImportingBehaviorCyclops implements IImportingBehavior { - public static final IImportingBehavior INSTANCE = new ImportingBehaviorCyclops(); - - @Override - public int doImport(TileEntity entity, EnumFacing facing, int currentSlot, IItemHandler itemFilters, int mode, int compare, int ticks, ItemHandlerUpgrade upgrades, INetwork network) { - if (IFilterable.isEmpty(itemFilters)) { - if (ticks % upgrades.getSpeed() == 0) { - ItemStack result = SlotlessItemHandlerHelper.extractItem(entity, facing, upgrades.getItemInteractCount(), true); - - if (result != null && !result.isEmpty() && network.insertItem(result, result.getCount(), true) == null) { - network.insertItemTracked(result, result.getCount()); - - SlotlessItemHandlerHelper.extractItem(entity, facing, result.copy(), upgrades.getItemInteractCount(), false); - } - } - } else { - return ImportingBehaviorItemHandler.INSTANCE.doImport(entity, facing, currentSlot, itemFilters, mode, compare, ticks, upgrades, network); - } - - return 0; - } -} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/cyclopscore/IntegrationCyclopsCore.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/cyclopscore/IntegrationCyclopsCore.java deleted file mode 100644 index f61da37e1..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/cyclopscore/IntegrationCyclopsCore.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.raoulvdberge.refinedstorage.integration.cyclopscore; - -import net.minecraftforge.fml.common.Loader; - -public final class IntegrationCyclopsCore { - public static boolean isLoaded() { - return Loader.isModLoaded("cyclopscore") && Loader.isModLoaded("commoncapabilities"); - } -} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/cyclopscore/SlotlessItemHandlerHelper.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/cyclopscore/SlotlessItemHandlerHelper.java deleted file mode 100644 index 366d93ae7..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/cyclopscore/SlotlessItemHandlerHelper.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.raoulvdberge.refinedstorage.integration.cyclopscore; - -import com.raoulvdberge.refinedstorage.api.util.IComparer; -import com.raoulvdberge.refinedstorage.apiimpl.util.Comparer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.items.ItemHandlerHelper; -import net.minecraftforge.oredict.OreDictionary; -import org.cyclops.commoncapabilities.api.capability.itemhandler.ISlotlessItemHandler; -import org.cyclops.commoncapabilities.api.capability.itemhandler.ItemMatch; -import org.cyclops.commoncapabilities.capability.itemhandler.SlotlessItemHandlerConfig; - -import javax.annotation.Nonnull; -import java.util.Iterator; - -public class SlotlessItemHandlerHelper { - public static boolean isSlotless(TileEntity entity, EnumFacing facing) { - return entity != null && entity.hasCapability(SlotlessItemHandlerConfig.CAPABILITY, facing); - } - - public static ISlotlessItemHandler getSlotlessHandler(TileEntity tile, EnumFacing facing) { - return tile.getCapability(SlotlessItemHandlerConfig.CAPABILITY, facing); - } - - public static ItemStack insertItem(TileEntity tile, EnumFacing facing, @Nonnull ItemStack stack, boolean simulate) { - return insertItem(getSlotlessHandler(tile, facing), stack, stack.getCount(), simulate); - } - - public static ItemStack insertItem(TileEntity tile, EnumFacing facing, @Nonnull ItemStack stack, int size, boolean simulate) { - return insertItem(getSlotlessHandler(tile, facing), stack, size, simulate); - } - - public static ItemStack insertItem(ISlotlessItemHandler handler, @Nonnull ItemStack stack, int size, boolean simulate) { - ItemStack remainder = handler.insertItem(ItemHandlerHelper.copyStackWithSize(stack, size), simulate); - int remainderCount = -1; - - while (remainder.isEmpty() && remainder.getCount() != remainderCount) { - remainderCount = remainder.getCount(); - - remainder = handler.insertItem(remainder.copy(), simulate); - } - - return remainder; - } - - public static ItemStack extractItem(TileEntity tile, EnumFacing facing, @Nonnull ItemStack stack, int size, int flags, boolean simulate) { - return extractItem(getSlotlessHandler(tile, facing), stack, size, flags, simulate); - } - - public static ItemStack extractItem(TileEntity tile, EnumFacing facing, @Nonnull ItemStack stack, int size, boolean simulate) { - return extractItem(getSlotlessHandler(tile, facing), stack, size, simulate); - } - - public static ItemStack extractItem(ISlotlessItemHandler handler, @Nonnull ItemStack stack, int size, boolean simulate) { - return extractItem(handler, stack, size, IComparer.COMPARE_DAMAGE | IComparer.COMPARE_NBT, simulate); - } - - public static ItemStack extractItem(ISlotlessItemHandler handler, @Nonnull ItemStack stack, int size, int flags, boolean simulate) { - int compare = comparerFlagsToItemMatch(flags, stack.getMetadata() == OreDictionary.WILDCARD_VALUE); - stack = ItemHandlerHelper.copyStackWithSize(stack, size); - if ((flags & IComparer.COMPARE_STRIP_NBT) == IComparer.COMPARE_STRIP_NBT) { - stack = Comparer.stripTags(stack); - } - ItemStack extracted = handler.extractItem(stack, compare, simulate); - - if (extracted.isEmpty() && (flags & IComparer.COMPARE_OREDICT) == IComparer.COMPARE_OREDICT) { - for (int id : OreDictionary.getOreIDs(stack)) { - Iterator itr = OreDictionary.getOres(OreDictionary.getOreName(id)).iterator(); - while (itr.hasNext() && extracted.isEmpty()) { - ItemStack oreStack = itr.next(); - int oreCompare = ItemMatch.NBT | (oreStack.getMetadata() == OreDictionary.WILDCARD_VALUE ? 0 : ItemMatch.DAMAGE); - extracted = handler.extractItem(oreStack, oreCompare, simulate); - } - if (extracted.isEmpty()) { - // We found one. Woooo! - break; - } - } - } - - if (extracted.isEmpty()) { - while (extracted.getCount() < size) { - ItemStack extraExtract = handler.extractItem(ItemHandlerHelper.copyStackWithSize(extracted, size - extracted.getCount()), compare, simulate); - - if (extraExtract.isEmpty()) { - extracted.grow(extraExtract.getCount()); - } else { - // Nothing more to extract - break; - } - } - } - - return extracted; - } - - public static ItemStack extractItem(TileEntity tile, EnumFacing facing, int size, boolean simulate) { - return extractItem(getSlotlessHandler(tile, facing), size, simulate); - } - - public static ItemStack extractItem(ISlotlessItemHandler slotlessItemHandler, int size, boolean simulate) { - return slotlessItemHandler.extractItem(size, simulate); - } - - public static int comparerFlagsToItemMatch(int flags) { - return comparerFlagsToItemMatch(flags, false); - } - - public static int comparerFlagsToItemMatch(int flags, boolean oredictWildcard) { - int itemMatch = 0; - if (!oredictWildcard) { - if ((flags & IComparer.COMPARE_DAMAGE) == IComparer.COMPARE_DAMAGE) { - itemMatch |= ItemMatch.DAMAGE; - } - if ((flags & IComparer.COMPARE_NBT) == IComparer.COMPARE_NBT) { - itemMatch |= ItemMatch.NBT; - } - } - if ((flags & IComparer.COMPARE_QUANTITY) == IComparer.COMPARE_QUANTITY) { - itemMatch |= ItemMatch.STACKSIZE; - } - return itemMatch; - } - - public static int itemMatchToComparerFlags(int itemMatch) { - int flags = 0; - if ((itemMatch & ItemMatch.DAMAGE) == ItemMatch.DAMAGE) { - flags |= IComparer.COMPARE_DAMAGE; - } - if ((itemMatch & ItemMatch.NBT) == ItemMatch.NBT) { - flags |= IComparer.COMPARE_NBT; - } - if ((itemMatch & ItemMatch.STACKSIZE) == ItemMatch.STACKSIZE) { - flags |= IComparer.COMPARE_QUANTITY; - } - return flags; - } -} \ No newline at end of file diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/RSJEIPlugin.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/RSJEIPlugin.java index 5231316dc..f462163ef 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/RSJEIPlugin.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/RSJEIPlugin.java @@ -7,6 +7,7 @@ import mezz.jei.api.BlankModPlugin; import mezz.jei.api.IJeiRuntime; import mezz.jei.api.IModRegistry; import mezz.jei.api.JEIPlugin; +import mezz.jei.api.recipe.IRecipeCategoryRegistration; import net.minecraft.item.ItemStack; @JEIPlugin @@ -23,19 +24,22 @@ public class RSJEIPlugin extends BlankModPlugin { registry.getRecipeTransferRegistry().addRecipeTransferHandler(new RecipeTransferHandlerGrid(), "minecraft.crafting"); registry.getRecipeTransferRegistry().addRecipeTransferHandler(ContainerSolderer.class, RecipeCategorySolderer.ID, 0, 3, 8, 36); - registry.addRecipeCategories(new RecipeCategorySolderer(registry.getJeiHelpers().getGuiHelper())); - registry.handleRecipes(RecipeWrapperSolderer.class, recipe -> recipe, RecipeCategorySolderer.ID); registry.addRecipes(RecipeMakerSolderer.getRecipes(registry.getJeiHelpers().getGuiHelper()), RecipeCategorySolderer.ID); - registry.addRecipeCategoryCraftingItem(new ItemStack(RSBlocks.SOLDERER), RecipeCategorySolderer.ID); + registry.addRecipeCatalyst(new ItemStack(RSBlocks.SOLDERER), RecipeCategorySolderer.ID); registry.addAdvancedGuiHandlers(new GuiHandlerGrid()); registry.addRecipeClickArea(GuiSolderer.class, 80, 36, 22, 15, RecipeCategorySolderer.ID); } + @Override + public void registerCategories(IRecipeCategoryRegistration registry) { + registry.addRecipeCategories(new RecipeCategorySolderer(registry.getJeiHelpers().getGuiHelper())); + } + @Override public void onRuntimeAvailable(IJeiRuntime runtime) { this.runtime = runtime; 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 dde33b813..d9d906fa9 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/RecipeCategorySolderer.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/RecipeCategorySolderer.java @@ -31,6 +31,11 @@ public class RecipeCategorySolderer extends BlankRecipeCategory= handler.getSlots()) { - currentSlot = 0; - } - - if (handler.getSlots() > 0) { - ItemStack stack = handler.getStackInSlot(currentSlot); - - if (stack.isEmpty() || !IFilterable.canTake(itemFilters, mode, compare, stack)) { - currentSlot++; - } else if (ticks % upgrades.getSpeed() == 0) { - ItemStack result = handler.extractItem(currentSlot, upgrades.getItemInteractCount(), true); - - if (!result.isEmpty() && network.insertItem(result, result.getCount(), true) == null) { - network.insertItemTracked(result, result.getCount()); - - handler.extractItem(currentSlot, upgrades.getItemInteractCount(), false); - } else { - currentSlot++; - } - } - } - - return currentSlot; - } -} diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 5e741fbed..859553bb2 100755 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "refinedstorage", "name": "Refined Storage", "description": "An elegant solution to your hoarding problem", - "version": "1.4.11", + "version": "1.4.12", "mcversion": "1.11.2", "url": "https://refinedstorage.raoulvdberge.com", "updateUrl": "",