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 * @param player the player that is attempting the insert
*/ */
void onInsertHeldContainer(EntityPlayerMP player); 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); 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. * 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.inventory.setItemStack(RSUtils.transformNullToEmpty(onInsert(player, player.inventory.getItemStack())));
player.updateHeldItem(); 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 @Override
public void onCraftingPreviewRequested(EntityPlayerMP player, int hash, int quantity, boolean noPreview) { public void onCraftingPreviewRequested(EntityPlayerMP player, int hash, int quantity, boolean noPreview) {
if (!network.getSecurityManager().hasPermission(Permission.AUTOCRAFTING, player)) { 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_QUANTITY = 0;
public static final int SORTING_TYPE_NAME = 1; 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 = 0;
public static final int SEARCH_BOX_MODE_NORMAL_AUTOSELECTED = 1; public static final int SEARCH_BOX_MODE_NORMAL_AUTOSELECTED = 1;

View File

@@ -1,7 +1,6 @@
package com.raoulvdberge.refinedstorage.container; package com.raoulvdberge.refinedstorage.container;
import com.raoulvdberge.refinedstorage.RSItems; 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.IFluidGridHandler;
import com.raoulvdberge.refinedstorage.api.network.grid.IItemGridHandler; import com.raoulvdberge.refinedstorage.api.network.grid.IItemGridHandler;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
@@ -182,21 +181,24 @@ public class ContainerGrid extends ContainerBase {
} }
} }
if (grid.getNetwork() != null) { if (grid.getType() == GridType.FLUID) {
IItemGridHandler itemHandler = grid.getNetwork().getItemGridHandler(); IFluidGridHandler fluidHandler = grid.getFluidHandler();
IFluidGridHandler fluidHandler = grid.getNetwork().getFluidGridHandler();
if (grid.getType() != GridType.FLUID && itemHandler != null) { if (fluidHandler != null) {
slot.putStack(RSUtils.transformNullToEmpty(itemHandler.onInsert((EntityPlayerMP) player, stack))); slot.putStack(fluidHandler.onShiftClick((EntityPlayerMP) player, stack));
} else if (grid.getType() == GridType.FLUID && fluidHandler != null) { }
slot.putStack(RSUtils.transformNullToEmpty(fluidHandler.onInsert((EntityPlayerMP) player, stack))); } else {
IItemGridHandler itemHandler = grid.getItemHandler();
if (itemHandler != null) {
slot.putStack(itemHandler.onShiftClick((EntityPlayerMP) player, stack));
}
} }
detectAndSendChanges(); detectAndSendChanges();
} }
} }
} }
}
return ItemStack.EMPTY; return ItemStack.EMPTY;
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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