Remove network dependency of IGrids

This commit is contained in:
raoulvdberge
2017-05-08 22:29:31 +02:00
parent 51db9dddb4
commit 8bb6bc1cd1
13 changed files with 65 additions and 23 deletions

View File

@@ -35,4 +35,13 @@ public interface IFluidGridHandler {
* @param player the player that is attempting the insert
*/
void onInsertHeldContainer(EntityPlayerMP player);
/**
* Called when the player shift clicks a container into the grid.
*
* @param player the player
* @param container the container
* @return the remainder container
*/
ItemStack onShiftClick(EntityPlayerMP player, ItemStack container);
}

View File

@@ -41,6 +41,15 @@ public interface IItemGridHandler {
*/
void onInsertHeldItem(EntityPlayerMP player, boolean single);
/**
* Called when the player shift clicks an item into the grid.
*
* @param player the player
* @param stack the stack
* @return the remainder stack
*/
ItemStack onShiftClick(EntityPlayerMP player, ItemStack stack);
/**
* Called when a player requests the crafting preview window to be opened.
*

View File

@@ -92,4 +92,9 @@ public class FluidGridHandler implements IFluidGridHandler {
player.inventory.setItemStack(RSUtils.transformNullToEmpty(onInsert(player, player.inventory.getItemStack())));
player.updateHeldItem();
}
@Override
public ItemStack onShiftClick(EntityPlayerMP player, ItemStack container) {
return RSUtils.transformNullToEmpty(onInsert(player, container));
}
}

View File

@@ -149,6 +149,11 @@ public class ItemGridHandler implements IItemGridHandler {
}
}
@Override
public ItemStack onShiftClick(EntityPlayerMP player, ItemStack stack) {
return RSUtils.transformNullToEmpty(onInsert(player, stack));
}
@Override
public void onCraftingPreviewRequested(EntityPlayerMP player, int hash, int quantity, boolean noPreview) {
if (!network.getSecurityManager().hasPermission(Permission.AUTOCRAFTING, player)) {

View File

@@ -52,7 +52,7 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
public static final int SORTING_TYPE_QUANTITY = 0;
public static final int SORTING_TYPE_NAME = 1;
public static final int SORTING_TYPE_ID= 2;
public static final int SORTING_TYPE_ID = 2;
public static final int SEARCH_BOX_MODE_NORMAL = 0;
public static final int SEARCH_BOX_MODE_NORMAL_AUTOSELECTED = 1;

View File

@@ -1,7 +1,6 @@
package com.raoulvdberge.refinedstorage.container;
import com.raoulvdberge.refinedstorage.RSItems;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.grid.IFluidGridHandler;
import com.raoulvdberge.refinedstorage.api.network.grid.IItemGridHandler;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
@@ -44,7 +43,7 @@ public class ContainerGrid extends ContainerBase {
this.inventoryItemStacks.clear();
int headerAndSlots = getTabDelta() + display.getHeader() + (display.getVisibleRows() * 18);
if (grid.getType() != GridType.FLUID) {
for (int i = 0; i < 4; ++i) {
addSlotToContainer(new SlotItemHandler(grid.getFilter(), i, 204, 6 + (18 * i) + getTabDelta()));
@@ -182,18 +181,21 @@ public class ContainerGrid extends ContainerBase {
}
}
if (grid.getNetwork() != null) {
IItemGridHandler itemHandler = grid.getNetwork().getItemGridHandler();
IFluidGridHandler fluidHandler = grid.getNetwork().getFluidGridHandler();
if (grid.getType() == GridType.FLUID) {
IFluidGridHandler fluidHandler = grid.getFluidHandler();
if (grid.getType() != GridType.FLUID && itemHandler != null) {
slot.putStack(RSUtils.transformNullToEmpty(itemHandler.onInsert((EntityPlayerMP) player, stack)));
} else if (grid.getType() == GridType.FLUID && fluidHandler != null) {
slot.putStack(RSUtils.transformNullToEmpty(fluidHandler.onInsert((EntityPlayerMP) player, stack)));
if (fluidHandler != null) {
slot.putStack(fluidHandler.onShiftClick((EntityPlayerMP) player, stack));
}
} else {
IItemGridHandler itemHandler = grid.getItemHandler();
detectAndSendChanges();
if (itemHandler != null) {
slot.putStack(itemHandler.onShiftClick((EntityPlayerMP) player, stack));
}
}
detectAndSendChanges();
}
}
}

View File

@@ -42,8 +42,8 @@ public class MessageGridCraftingPreview extends MessageHandlerPlayerToServer<Mes
if (container instanceof ContainerGrid) {
IGrid grid = ((ContainerGrid) container).getGrid();
if (grid.getNetwork() != null) {
grid.getNetwork().getItemGridHandler().onCraftingPreviewRequested(player, message.hash, message.quantity, message.noPreview);
if (grid.getItemHandler() != null) {
grid.getItemHandler().onCraftingPreviewRequested(player, message.hash, message.quantity, message.noPreview);
}
}
}

View File

@@ -40,8 +40,8 @@ public class MessageGridCraftingStart extends MessageHandlerPlayerToServer<Messa
if (container instanceof ContainerGrid) {
IGrid grid = ((ContainerGrid) container).getGrid();
if (grid.getNetwork() != null) {
grid.getNetwork().getItemGridHandler().onCraftingRequested(player, message.stack, message.quantity);
if (grid.getItemHandler() != null) {
grid.getItemHandler().onCraftingRequested(player, message.stack, message.quantity);
}
}
}

View File

@@ -26,8 +26,8 @@ public class MessageGridFluidInsertHeld extends MessageHandlerPlayerToServer<Mes
if (container instanceof ContainerGrid) {
IGrid grid = ((ContainerGrid) container).getGrid();
if (grid.getNetwork() != null) {
grid.getNetwork().getFluidGridHandler().onInsertHeldContainer(player);
if (grid.getFluidHandler() != null) {
grid.getFluidHandler().onInsertHeldContainer(player);
}
}
}

View File

@@ -38,8 +38,8 @@ public class MessageGridFluidPull extends MessageHandlerPlayerToServer<MessageGr
if (container instanceof ContainerGrid) {
IGrid grid = ((ContainerGrid) container).getGrid();
if (grid.getNetwork() != null) {
grid.getNetwork().getFluidGridHandler().onExtract(player, message.hash, message.shift);
if (grid.getFluidHandler() != null) {
grid.getFluidHandler().onExtract(player, message.hash, message.shift);
}
}
}

View File

@@ -34,8 +34,8 @@ public class MessageGridItemInsertHeld extends MessageHandlerPlayerToServer<Mess
if (container instanceof ContainerGrid) {
IGrid grid = ((ContainerGrid) container).getGrid();
if (grid.getNetwork() != null) {
grid.getNetwork().getItemGridHandler().onInsertHeldItem(player, message.single);
if (grid.getItemHandler() != null) {
grid.getItemHandler().onInsertHeldItem(player, message.single);
}
}
}

View File

@@ -38,8 +38,8 @@ public class MessageGridItemPull extends MessageHandlerPlayerToServer<MessageGri
if (container instanceof ContainerGrid) {
IGrid grid = ((ContainerGrid) container).getGrid();
if (grid.getNetwork() != null) {
grid.getNetwork().getItemGridHandler().onExtract(player, message.hash, message.flags);
if (grid.getItemHandler() != null) {
grid.getItemHandler().onExtract(player, message.hash, message.flags);
}
}
}

View File

@@ -1,6 +1,8 @@
package com.raoulvdberge.refinedstorage.tile.grid;
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.network.grid.IFluidGridHandler;
import com.raoulvdberge.refinedstorage.api.network.grid.IItemGridHandler;
import com.raoulvdberge.refinedstorage.block.GridType;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase;
import com.raoulvdberge.refinedstorage.item.filter.Filter;
@@ -20,6 +22,16 @@ public interface IGrid {
@Nullable
INetworkMaster getNetwork();
@Nullable
default IItemGridHandler getItemHandler() {
return getNetwork() != null ? getNetwork().getItemGridHandler() : null;
}
@Nullable
default IFluidGridHandler getFluidHandler() {
return getNetwork() != null ? getNetwork().getFluidGridHandler() : null;
}
String getGuiTitle();
int getViewType();