Add docs for IGroupedStorage
This commit is contained in:
@@ -7,7 +7,7 @@ import net.minecraft.util.math.BlockPos;
|
|||||||
import refinedstorage.api.autocrafting.ICraftingPattern;
|
import refinedstorage.api.autocrafting.ICraftingPattern;
|
||||||
import refinedstorage.api.autocrafting.ICraftingTask;
|
import refinedstorage.api.autocrafting.ICraftingTask;
|
||||||
import refinedstorage.api.storage.CompareFlags;
|
import refinedstorage.api.storage.CompareFlags;
|
||||||
import refinedstorage.api.storage.IItemList;
|
import refinedstorage.api.storage.IGroupedStorage;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
@@ -60,9 +60,9 @@ public interface INetworkMaster {
|
|||||||
IWirelessGridHandler getWirelessGridHandler();
|
IWirelessGridHandler getWirelessGridHandler();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return A {@link IItemList} containing all network items.
|
* @return The {@link IGroupedStorage} of this network
|
||||||
*/
|
*/
|
||||||
IItemList getItems();
|
IGroupedStorage getStorage();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return The crafting tasks in this network, do NOT modify this list
|
* @return The crafting tasks in this network, do NOT modify this list
|
||||||
@@ -123,12 +123,12 @@ public interface INetworkMaster {
|
|||||||
/**
|
/**
|
||||||
* Sends to all clients in a grid a packet with all the items in this network.
|
* Sends to all clients in a grid a packet with all the items in this network.
|
||||||
*/
|
*/
|
||||||
void updateItemsWithClient();
|
void updateStorageWithClient();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sends a player a packet with all the items in this network.
|
* Sends a player a packet with all the items in this network.
|
||||||
*/
|
*/
|
||||||
void updateItemsWithClient(EntityPlayerMP player);
|
void updateStorageWithClient(EntityPlayerMP player);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pushes an item to this network.
|
* Pushes an item to this network.
|
||||||
|
53
src/main/java/refinedstorage/api/storage/IGroupedStorage.java
Executable file
53
src/main/java/refinedstorage/api/storage/IGroupedStorage.java
Executable file
@@ -0,0 +1,53 @@
|
|||||||
|
package refinedstorage.api.storage;
|
||||||
|
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import refinedstorage.api.network.INetworkMaster;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This holds all items from all the connected storages from a {@link INetworkMaster}.
|
||||||
|
*/
|
||||||
|
public interface IGroupedStorage {
|
||||||
|
/**
|
||||||
|
* Rebuilds the storages and items for a network. Typically called when a {@link IStorageProvider} is
|
||||||
|
* added or removed from the network.
|
||||||
|
*
|
||||||
|
* @param master The network
|
||||||
|
*/
|
||||||
|
void rebuild(INetworkMaster master);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return A list of {@link IStorage} connected to this network
|
||||||
|
*/
|
||||||
|
List<IStorage> getStorages();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds an item to the network. Will merge it with another item if it already exists.
|
||||||
|
*
|
||||||
|
* @param stack The stack to add, do NOT modify
|
||||||
|
*/
|
||||||
|
void add(ItemStack stack);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes a item from the network.
|
||||||
|
*
|
||||||
|
* @param stack The item to remove, do NOT modify
|
||||||
|
*/
|
||||||
|
void remove(ItemStack stack);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets an item from the network, does not decrement its count.
|
||||||
|
*
|
||||||
|
* @param stack The stack to find
|
||||||
|
* @param flags The flags to compare on, see {@link CompareFlags}
|
||||||
|
* @return The stack, do NOT modify
|
||||||
|
*/
|
||||||
|
ItemStack get(ItemStack stack, int flags);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return All stacks in this storage network
|
||||||
|
*/
|
||||||
|
Collection<ItemStack> getStacks();
|
||||||
|
}
|
@@ -1,20 +0,0 @@
|
|||||||
package refinedstorage.api.storage;
|
|
||||||
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import refinedstorage.api.network.INetworkMaster;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface IItemList {
|
|
||||||
void rebuild(INetworkMaster master);
|
|
||||||
|
|
||||||
List<IStorage> getStorages();
|
|
||||||
|
|
||||||
void add(ItemStack stack);
|
|
||||||
|
|
||||||
void remove(ItemStack stack);
|
|
||||||
|
|
||||||
ItemStack get(ItemStack stack, int flags);
|
|
||||||
|
|
||||||
List<ItemStack> getStacks();
|
|
||||||
}
|
|
@@ -7,7 +7,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public interface IStorageProvider {
|
public interface IStorageProvider {
|
||||||
/**
|
/**
|
||||||
* Adds the storages.
|
* Adds the storages that this storage provides.
|
||||||
*
|
*
|
||||||
* @param storages The previously added storages
|
* @param storages The previously added storages
|
||||||
*/
|
*/
|
||||||
|
@@ -57,7 +57,7 @@ public class WirelessGridHandler implements IWirelessGridHandler {
|
|||||||
|
|
||||||
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.WIRELESS_GRID, player.worldObj, RefinedStorageUtils.getIdFromHand(hand), 0, 0);
|
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.WIRELESS_GRID, player.worldObj, RefinedStorageUtils.getIdFromHand(hand), 0, 0);
|
||||||
|
|
||||||
network.updateItemsWithClient((EntityPlayerMP) player);
|
network.updateStorageWithClient((EntityPlayerMP) player);
|
||||||
|
|
||||||
drainEnergy(player, ItemWirelessGrid.USAGE_OPEN);
|
drainEnergy(player, ItemWirelessGrid.USAGE_OPEN);
|
||||||
|
|
||||||
|
@@ -1,19 +1,23 @@
|
|||||||
package refinedstorage.apiimpl.storage;
|
package refinedstorage.apiimpl.storage;
|
||||||
|
|
||||||
|
import com.google.common.collect.ArrayListMultimap;
|
||||||
|
import com.google.common.collect.Multimap;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import refinedstorage.RefinedStorageUtils;
|
import refinedstorage.RefinedStorageUtils;
|
||||||
import refinedstorage.api.network.INetworkMaster;
|
import refinedstorage.api.network.INetworkMaster;
|
||||||
import refinedstorage.api.network.INetworkSlave;
|
import refinedstorage.api.network.INetworkSlave;
|
||||||
import refinedstorage.api.storage.IItemList;
|
import refinedstorage.api.storage.IGroupedStorage;
|
||||||
import refinedstorage.api.storage.IStorage;
|
import refinedstorage.api.storage.IStorage;
|
||||||
import refinedstorage.api.storage.IStorageProvider;
|
import refinedstorage.api.storage.IStorageProvider;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ItemList implements IItemList {
|
public class GroupedStorage implements IGroupedStorage {
|
||||||
private List<IStorage> storages = new ArrayList<IStorage>();
|
private List<IStorage> storages = new ArrayList<IStorage>();
|
||||||
private List<ItemStack> stacks = new ArrayList<ItemStack>();
|
private Multimap<Item, ItemStack> stacks = ArrayListMultimap.create();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void rebuild(INetworkMaster master) {
|
public void rebuild(INetworkMaster master) {
|
||||||
@@ -41,7 +45,7 @@ public class ItemList implements IItemList {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void add(ItemStack stack) {
|
public void add(ItemStack stack) {
|
||||||
for (ItemStack otherStack : stacks) {
|
for (ItemStack otherStack : stacks.get(stack.getItem())) {
|
||||||
if (RefinedStorageUtils.compareStackNoQuantity(otherStack, stack)) {
|
if (RefinedStorageUtils.compareStackNoQuantity(otherStack, stack)) {
|
||||||
otherStack.stackSize += stack.stackSize;
|
otherStack.stackSize += stack.stackSize;
|
||||||
|
|
||||||
@@ -49,17 +53,17 @@ public class ItemList implements IItemList {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stacks.add(stack.copy());
|
stacks.put(stack.getItem(), stack.copy());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void remove(ItemStack stack) {
|
public void remove(ItemStack stack) {
|
||||||
for (ItemStack otherStack : stacks) {
|
for (ItemStack otherStack : stacks.get(stack.getItem())) {
|
||||||
if (RefinedStorageUtils.compareStackNoQuantity(otherStack, stack)) {
|
if (RefinedStorageUtils.compareStackNoQuantity(otherStack, stack)) {
|
||||||
otherStack.stackSize -= stack.stackSize;
|
otherStack.stackSize -= stack.stackSize;
|
||||||
|
|
||||||
if (otherStack.stackSize == 0) {
|
if (otherStack.stackSize == 0) {
|
||||||
stacks.remove(otherStack);
|
stacks.remove(otherStack.getItem(), otherStack);
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -69,7 +73,7 @@ public class ItemList implements IItemList {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack get(ItemStack stack, int flags) {
|
public ItemStack get(ItemStack stack, int flags) {
|
||||||
for (ItemStack otherStack : stacks) {
|
for (ItemStack otherStack : stacks.get(stack.getItem())) {
|
||||||
if (RefinedStorageUtils.compareStack(otherStack, stack, flags)) {
|
if (RefinedStorageUtils.compareStack(otherStack, stack, flags)) {
|
||||||
return otherStack;
|
return otherStack;
|
||||||
}
|
}
|
||||||
@@ -79,7 +83,7 @@ public class ItemList implements IItemList {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<ItemStack> getStacks() {
|
public Collection<ItemStack> getStacks() {
|
||||||
return stacks;
|
return stacks.values();
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -41,9 +41,9 @@ public class MessageGridItems implements IMessage, IMessageHandler<MessageGridIt
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toBytes(ByteBuf buf) {
|
public void toBytes(ByteBuf buf) {
|
||||||
buf.writeInt(network.getItems().getStacks().size());
|
buf.writeInt(network.getStorage().getStacks().size());
|
||||||
|
|
||||||
for (ItemStack item : network.getItems().getStacks()) {
|
for (ItemStack item : network.getStorage().getStacks()) {
|
||||||
buf.writeInt(item.stackSize);
|
buf.writeInt(item.stackSize);
|
||||||
ByteBufUtils.writeItemStack(buf, item);
|
ByteBufUtils.writeItemStack(buf, item);
|
||||||
}
|
}
|
||||||
|
@@ -53,7 +53,7 @@ public class TileDetector extends TileSlave implements ICompareConfig {
|
|||||||
boolean wasPowered = powered;
|
boolean wasPowered = powered;
|
||||||
|
|
||||||
if (slot != null) {
|
if (slot != null) {
|
||||||
ItemStack stack = network.getItems().get(slot, compare);
|
ItemStack stack = network.getStorage().get(slot, compare);
|
||||||
|
|
||||||
if (stack != null) {
|
if (stack != null) {
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
|
@@ -65,7 +65,7 @@ public class TileDiskDrive extends TileSlave implements IStorageProvider, IStora
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isConnected()) {
|
if (isConnected()) {
|
||||||
network.getItems().rebuild(network);
|
network.getStorage().rebuild(network);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -171,7 +171,7 @@ public abstract class TileSlave extends TileBase implements INetworkSlave, ISync
|
|||||||
this.redstoneMode = mode;
|
this.redstoneMode = mode;
|
||||||
|
|
||||||
if (this instanceof IStorageProvider && isConnected()) {
|
if (this instanceof IStorageProvider && isConnected()) {
|
||||||
network.getItems().rebuild(network);
|
network.getStorage().rebuild(network);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -25,7 +25,7 @@ import refinedstorage.api.network.INetworkMaster;
|
|||||||
import refinedstorage.api.network.INetworkSlave;
|
import refinedstorage.api.network.INetworkSlave;
|
||||||
import refinedstorage.api.network.IWirelessGridHandler;
|
import refinedstorage.api.network.IWirelessGridHandler;
|
||||||
import refinedstorage.api.storage.CompareFlags;
|
import refinedstorage.api.storage.CompareFlags;
|
||||||
import refinedstorage.api.storage.IItemList;
|
import refinedstorage.api.storage.IGroupedStorage;
|
||||||
import refinedstorage.api.storage.IStorage;
|
import refinedstorage.api.storage.IStorage;
|
||||||
import refinedstorage.api.storage.IStorageProvider;
|
import refinedstorage.api.storage.IStorageProvider;
|
||||||
import refinedstorage.apiimpl.autocrafting.BasicCraftingTask;
|
import refinedstorage.apiimpl.autocrafting.BasicCraftingTask;
|
||||||
@@ -33,7 +33,7 @@ import refinedstorage.apiimpl.autocrafting.CraftingPattern;
|
|||||||
import refinedstorage.apiimpl.autocrafting.ProcessingCraftingTask;
|
import refinedstorage.apiimpl.autocrafting.ProcessingCraftingTask;
|
||||||
import refinedstorage.apiimpl.network.GridHandler;
|
import refinedstorage.apiimpl.network.GridHandler;
|
||||||
import refinedstorage.apiimpl.network.WirelessGridHandler;
|
import refinedstorage.apiimpl.network.WirelessGridHandler;
|
||||||
import refinedstorage.apiimpl.storage.ItemList;
|
import refinedstorage.apiimpl.storage.GroupedStorage;
|
||||||
import refinedstorage.block.BlockController;
|
import refinedstorage.block.BlockController;
|
||||||
import refinedstorage.block.EnumControllerType;
|
import refinedstorage.block.EnumControllerType;
|
||||||
import refinedstorage.container.ContainerController;
|
import refinedstorage.container.ContainerController;
|
||||||
@@ -58,8 +58,8 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
|||||||
private GridHandler gridHandler = new GridHandler(this);
|
private GridHandler gridHandler = new GridHandler(this);
|
||||||
private WirelessGridHandler wirelessGridHandler = new WirelessGridHandler(this);
|
private WirelessGridHandler wirelessGridHandler = new WirelessGridHandler(this);
|
||||||
|
|
||||||
private IItemList items = new ItemList();
|
private IGroupedStorage storage = new GroupedStorage();
|
||||||
private boolean rebuildItemList;
|
private boolean rebuildStorage;
|
||||||
|
|
||||||
private List<INetworkSlave> slaves = new ArrayList<INetworkSlave>();
|
private List<INetworkSlave> slaves = new ArrayList<INetworkSlave>();
|
||||||
private List<INetworkSlave> slavesToAdd = new ArrayList<INetworkSlave>();
|
private List<INetworkSlave> slavesToAdd = new ArrayList<INetworkSlave>();
|
||||||
@@ -131,13 +131,12 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
|||||||
slaves.removeAll(slavesToRemove);
|
slaves.removeAll(slavesToRemove);
|
||||||
slavesToRemove.clear();
|
slavesToRemove.clear();
|
||||||
|
|
||||||
if (rebuildItemList) {
|
if (rebuildStorage) {
|
||||||
System.out.println("Rebuilding item list");
|
storage.rebuild(this);
|
||||||
items.rebuild(this);
|
|
||||||
|
|
||||||
rebuildItemList = false;
|
rebuildStorage = false;
|
||||||
|
|
||||||
updateItemsWithClient();
|
updateStorageWithClient();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (canRun()) {
|
if (canRun()) {
|
||||||
@@ -229,7 +228,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
|||||||
slavesToAdd.add(slave);
|
slavesToAdd.add(slave);
|
||||||
|
|
||||||
if (slave instanceof IStorageProvider) {
|
if (slave instanceof IStorageProvider) {
|
||||||
rebuildItemList = true;
|
rebuildStorage = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -238,7 +237,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
|||||||
slavesToRemove.add(slave);
|
slavesToRemove.add(slave);
|
||||||
|
|
||||||
if (slave instanceof IStorageProvider) {
|
if (slave instanceof IStorageProvider) {
|
||||||
rebuildItemList = true;
|
rebuildStorage = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -265,9 +264,8 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
|||||||
disconnectSlaves();
|
disconnectSlaves();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public IGroupedStorage getStorage() {
|
||||||
public IItemList getItems() {
|
return storage;
|
||||||
return items;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -342,7 +340,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
|||||||
int score = 0;
|
int score = 0;
|
||||||
|
|
||||||
for (ItemStack input : patterns.get(i).getInputs()) {
|
for (ItemStack input : patterns.get(i).getInputs()) {
|
||||||
ItemStack stored = items.get(input, CompareFlags.COMPARE_DAMAGE | CompareFlags.COMPARE_NBT);
|
ItemStack stored = storage.get(input, CompareFlags.COMPARE_DAMAGE | CompareFlags.COMPARE_NBT);
|
||||||
|
|
||||||
score += stored != null ? stored.stackSize : 0;
|
score += stored != null ? stored.stackSize : 0;
|
||||||
}
|
}
|
||||||
@@ -388,7 +386,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
|||||||
|
|
||||||
wirelessGridHandler.setRange(range);
|
wirelessGridHandler.setRange(range);
|
||||||
|
|
||||||
Collections.sort(items.getStorages(), new Comparator<IStorage>() {
|
Collections.sort(storage.getStorages(), new Comparator<IStorage>() {
|
||||||
@Override
|
@Override
|
||||||
public int compare(IStorage left, IStorage right) {
|
public int compare(IStorage left, IStorage right) {
|
||||||
int leftStored = left.getStored();
|
int leftStored = left.getStored();
|
||||||
@@ -402,7 +400,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Collections.sort(items.getStorages(), new Comparator<IStorage>() {
|
Collections.sort(storage.getStorages(), new Comparator<IStorage>() {
|
||||||
@Override
|
@Override
|
||||||
public int compare(IStorage left, IStorage right) {
|
public int compare(IStorage left, IStorage right) {
|
||||||
if (left.getPriority() == right.getPriority()) {
|
if (left.getPriority() == right.getPriority()) {
|
||||||
@@ -415,22 +413,22 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateItemsWithClient() {
|
public void updateStorageWithClient() {
|
||||||
for (EntityPlayer player : worldObj.playerEntities) {
|
for (EntityPlayer player : worldObj.playerEntities) {
|
||||||
if (player.openContainer.getClass() == ContainerGrid.class && pos.equals(((ContainerGrid) player.openContainer).getGrid().getNetworkPosition())) {
|
if (player.openContainer.getClass() == ContainerGrid.class && pos.equals(((ContainerGrid) player.openContainer).getGrid().getNetworkPosition())) {
|
||||||
updateItemsWithClient((EntityPlayerMP) player);
|
updateStorageWithClient((EntityPlayerMP) player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateItemsWithClient(EntityPlayerMP player) {
|
public void updateStorageWithClient(EntityPlayerMP player) {
|
||||||
RefinedStorage.NETWORK.sendTo(new MessageGridItems(this), player);
|
RefinedStorage.NETWORK.sendTo(new MessageGridItems(this), player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack push(ItemStack stack, int size, boolean simulate) {
|
public ItemStack push(ItemStack stack, int size, boolean simulate) {
|
||||||
if (stack == null || stack.getItem() == null || items.getStorages().isEmpty()) {
|
if (stack == null || stack.getItem() == null || storage.getStorages().isEmpty()) {
|
||||||
return ItemHandlerHelper.copyStackWithSize(stack, size);
|
return ItemHandlerHelper.copyStackWithSize(stack, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -438,7 +436,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
|||||||
|
|
||||||
ItemStack remainder = stack;
|
ItemStack remainder = stack;
|
||||||
|
|
||||||
for (IStorage storage : items.getStorages()) {
|
for (IStorage storage : this.storage.getStorages()) {
|
||||||
remainder = storage.push(remainder, size, simulate);
|
remainder = storage.push(remainder, size, simulate);
|
||||||
|
|
||||||
if (remainder == null) {
|
if (remainder == null) {
|
||||||
@@ -461,9 +459,9 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
items.add(ItemHandlerHelper.copyStackWithSize(stack, sizePushed));
|
storage.add(ItemHandlerHelper.copyStackWithSize(stack, sizePushed));
|
||||||
|
|
||||||
updateItemsWithClient();
|
updateStorageWithClient();
|
||||||
}
|
}
|
||||||
|
|
||||||
return remainder;
|
return remainder;
|
||||||
@@ -476,7 +474,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
|||||||
|
|
||||||
ItemStack newStack = null;
|
ItemStack newStack = null;
|
||||||
|
|
||||||
for (IStorage storage : items.getStorages()) {
|
for (IStorage storage : this.storage.getStorages()) {
|
||||||
ItemStack took = storage.take(stack, requested - received, flags);
|
ItemStack took = storage.take(stack, requested - received, flags);
|
||||||
|
|
||||||
if (took != null) {
|
if (took != null) {
|
||||||
@@ -495,9 +493,9 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (newStack != null) {
|
if (newStack != null) {
|
||||||
items.remove(newStack);
|
storage.remove(newStack);
|
||||||
|
|
||||||
updateItemsWithClient();
|
updateStorageWithClient();
|
||||||
}
|
}
|
||||||
|
|
||||||
return newStack;
|
return newStack;
|
||||||
|
@@ -112,7 +112,7 @@ public class TileGrid extends TileSlave implements IGrid {
|
|||||||
|
|
||||||
public void onGridOpened(EntityPlayer player) {
|
public void onGridOpened(EntityPlayer player) {
|
||||||
if (isConnected()) {
|
if (isConnected()) {
|
||||||
network.updateItemsWithClient((EntityPlayerMP) player);
|
network.updateStorageWithClient((EntityPlayerMP) player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user