Get rid of all compiler errors
This commit is contained in:
@@ -1,10 +1,13 @@
|
||||
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);
|
||||
|
||||
void add(ItemStack stack);
|
||||
|
||||
void remove(ItemStack stack);
|
||||
|
||||
@@ -2,7 +2,10 @@ package refinedstorage.apiimpl.storage;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import refinedstorage.RefinedStorageUtils;
|
||||
import refinedstorage.api.network.INetworkMaster;
|
||||
import refinedstorage.api.network.INetworkSlave;
|
||||
import refinedstorage.api.storage.IItemList;
|
||||
import refinedstorage.api.storage.IStorage;
|
||||
import refinedstorage.api.storage.IStorageProvider;
|
||||
|
||||
import java.util.List;
|
||||
@@ -11,8 +14,24 @@ public class ItemList implements IItemList {
|
||||
private List<ItemStack> stacks;
|
||||
|
||||
@Override
|
||||
public void rebuild(List<IStorageProvider> providers) {
|
||||
public void rebuild(INetworkMaster master) {
|
||||
stacks.clear();
|
||||
|
||||
for (INetworkSlave slave : master.getSlaves()) {
|
||||
if (slave instanceof IStorageProvider) {
|
||||
IStorage[] storages = ((IStorageProvider) slave).getStorages();
|
||||
|
||||
if (storages != null) {
|
||||
for (IStorage storage : storages) {
|
||||
if (storage != null) {
|
||||
for (ItemStack stack : storage.getItems()) {
|
||||
add(stack);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -110,8 +110,8 @@ public abstract class NBTStorage implements IStorage {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addItems(List<ItemStack> items) {
|
||||
items.addAll(stacks);
|
||||
public List<ItemStack> getItems() {
|
||||
return stacks;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -41,9 +41,9 @@ public class MessageGridItems implements IMessage, IMessageHandler<MessageGridIt
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
buf.writeInt(network.getItems().size());
|
||||
buf.writeInt(network.getItems().getStacks().size());
|
||||
|
||||
for (ItemStack item : network.getItems()) {
|
||||
for (ItemStack item : network.getItems().getStacks()) {
|
||||
buf.writeInt(item.stackSize);
|
||||
ByteBufUtils.writeItemStack(buf, item);
|
||||
}
|
||||
|
||||
@@ -23,8 +23,6 @@ import refinedstorage.inventory.BasicItemValidator;
|
||||
import refinedstorage.network.MessagePriorityUpdate;
|
||||
import refinedstorage.tile.config.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class TileDiskDrive extends TileSlave implements IStorageProvider, IStorageGui, ICompareConfig, IModeConfig {
|
||||
public class Storage extends NBTStorage {
|
||||
public Storage(ItemStack disk) {
|
||||
@@ -110,12 +108,8 @@ public class TileDiskDrive extends TileSlave implements IStorageProvider, IStora
|
||||
}
|
||||
|
||||
@Override
|
||||
public void provide(List<IStorage> storages) {
|
||||
for (IStorage storage : this.storages) {
|
||||
if (storage != null) {
|
||||
storages.add(storage);
|
||||
}
|
||||
}
|
||||
public IStorage[] getStorages() {
|
||||
return storages;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -11,6 +11,7 @@ import refinedstorage.RefinedStorageUtils;
|
||||
import refinedstorage.api.RefinedStorageCapabilities;
|
||||
import refinedstorage.api.network.INetworkMaster;
|
||||
import refinedstorage.api.network.INetworkSlave;
|
||||
import refinedstorage.api.storage.IStorageProvider;
|
||||
import refinedstorage.tile.config.IRedstoneModeConfig;
|
||||
import refinedstorage.tile.config.RedstoneMode;
|
||||
import refinedstorage.tile.controller.TileController;
|
||||
@@ -168,6 +169,10 @@ public abstract class TileSlave extends TileBase implements INetworkSlave, ISync
|
||||
markDirty();
|
||||
|
||||
this.redstoneMode = mode;
|
||||
|
||||
if (this instanceof IStorageProvider && isConnected()) {
|
||||
network.getItems().rebuild(network);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -20,8 +20,6 @@ import refinedstorage.inventory.BasicItemHandler;
|
||||
import refinedstorage.network.MessagePriorityUpdate;
|
||||
import refinedstorage.tile.config.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class TileStorage extends TileSlave implements IStorageProvider, IStorageGui, ICompareConfig, IModeConfig {
|
||||
class Storage extends NBTStorage {
|
||||
public Storage() {
|
||||
@@ -89,10 +87,14 @@ public class TileStorage extends TileSlave implements IStorageProvider, IStorage
|
||||
}
|
||||
|
||||
@Override
|
||||
public void provide(List<IStorage> storages) {
|
||||
public IStorage[] getStorages() {
|
||||
if (storage != null) {
|
||||
storages.add(storage);
|
||||
return new IStorage[]{
|
||||
storage
|
||||
};
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -60,6 +60,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
|
||||
private List<IStorage> storages = new ArrayList<IStorage>();
|
||||
private IItemList items = new ItemList();
|
||||
private boolean rebuildItemList;
|
||||
|
||||
private List<INetworkSlave> slaves = new ArrayList<INetworkSlave>();
|
||||
private List<INetworkSlave> slavesToAdd = new ArrayList<INetworkSlave>();
|
||||
@@ -107,14 +108,6 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
boolean forceUpdate = !slavesToAdd.isEmpty() || !slavesToRemove.isEmpty();
|
||||
|
||||
for (INetworkSlave newSlave : slavesToAdd) {
|
||||
if (newSlave instanceof IStorageProvider) {
|
||||
for (IStorage storage : ((IStorageProvider) newSlave).getStorages()) {
|
||||
for (ItemStack item : storage.getItems()) {
|
||||
items.add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
boolean found = false;
|
||||
|
||||
for (int i = 0; i < slaves.size(); ++i) {
|
||||
@@ -192,6 +185,14 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
updateSlaves();
|
||||
}
|
||||
|
||||
if (rebuildItemList) {
|
||||
items.rebuild(this);
|
||||
|
||||
rebuildItemList = false;
|
||||
|
||||
updateItemsWithClient();
|
||||
}
|
||||
|
||||
if (couldRun != canRun()) {
|
||||
couldRun = canRun();
|
||||
|
||||
@@ -226,11 +227,19 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
@Override
|
||||
public void addSlave(INetworkSlave slave) {
|
||||
slavesToAdd.add(slave);
|
||||
|
||||
if (slave instanceof IStorageProvider) {
|
||||
rebuildItemList = true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeSlave(INetworkSlave slave) {
|
||||
slavesToRemove.add(slave);
|
||||
|
||||
if (slave instanceof IStorageProvider) {
|
||||
rebuildItemList = true;
|
||||
}
|
||||
}
|
||||
|
||||
public void disconnectSlaves() {
|
||||
@@ -453,6 +462,8 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
}
|
||||
|
||||
items.add(ItemHandlerHelper.copyStackWithSize(stack, sizePushed));
|
||||
|
||||
updateItemsWithClient();
|
||||
}
|
||||
|
||||
return remainder;
|
||||
@@ -485,6 +496,8 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
|
||||
if (newStack != null) {
|
||||
items.remove(newStack);
|
||||
|
||||
updateItemsWithClient();
|
||||
}
|
||||
|
||||
return newStack;
|
||||
|
||||
@@ -7,6 +7,7 @@ import refinedstorage.RefinedStorageUtils;
|
||||
import refinedstorage.tile.config.ModeFilter;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class DeepStorageUnitStorage extends ExternalStorage {
|
||||
@@ -24,10 +25,12 @@ public class DeepStorageUnitStorage extends ExternalStorage {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addItems(List<ItemStack> items) {
|
||||
public List<ItemStack> getItems() {
|
||||
if (unit.getStoredItemType() != null && unit.getStoredItemType().stackSize > 0) {
|
||||
items.add(unit.getStoredItemType().copy());
|
||||
return Collections.singletonList(unit.getStoredItemType().copy());
|
||||
}
|
||||
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -7,6 +7,7 @@ import net.minecraftforge.items.ItemHandlerHelper;
|
||||
import refinedstorage.RefinedStorageUtils;
|
||||
import refinedstorage.tile.config.ModeFilter;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class DrawerStorage extends ExternalStorage {
|
||||
@@ -24,10 +25,12 @@ public class DrawerStorage extends ExternalStorage {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addItems(List<ItemStack> items) {
|
||||
public List<ItemStack> getItems() {
|
||||
if (!drawer.isEmpty() && drawer.getStoredItemCount() > 0) {
|
||||
items.add(drawer.getStoredItemCopy());
|
||||
return Collections.singletonList(drawer.getStoredItemCopy());
|
||||
}
|
||||
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
public boolean isVoidable() {
|
||||
|
||||
@@ -6,6 +6,7 @@ import net.minecraftforge.items.ItemHandlerHelper;
|
||||
import refinedstorage.RefinedStorageUtils;
|
||||
import refinedstorage.tile.config.ModeFilter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ItemHandlerStorage extends ExternalStorage {
|
||||
@@ -23,12 +24,16 @@ public class ItemHandlerStorage extends ExternalStorage {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addItems(List<ItemStack> items) {
|
||||
public List<ItemStack> getItems() {
|
||||
List<ItemStack> items = new ArrayList<ItemStack>();
|
||||
|
||||
for (int i = 0; i < handler.getSlots(); ++i) {
|
||||
if (handler.getStackInSlot(i) != null && handler.getStackInSlot(i).getItem() != null) {
|
||||
items.add(handler.getStackInSlot(i).copy());
|
||||
}
|
||||
}
|
||||
|
||||
return items;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -22,8 +22,6 @@ import refinedstorage.tile.config.IModeConfig;
|
||||
import refinedstorage.tile.config.IRedstoneModeConfig;
|
||||
import refinedstorage.tile.config.ModeConstants;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class TileExternalStorage extends TileSlave implements IStorageProvider, IStorageGui, ICompareConfig, IModeConfig {
|
||||
public static final String NBT_PRIORITY = "Priority";
|
||||
public static final String NBT_COMPARE = "Compare";
|
||||
@@ -143,12 +141,14 @@ public class TileExternalStorage extends TileSlave implements IStorageProvider,
|
||||
}
|
||||
|
||||
@Override
|
||||
public void provide(List<IStorage> storages) {
|
||||
public IStorage[] getStorages() {
|
||||
TileEntity facing = getFacingTile();
|
||||
|
||||
if (facing instanceof IDrawerGroup) {
|
||||
IDrawerGroup group = (IDrawerGroup) facing;
|
||||
|
||||
IStorage[] storages = new IStorage[group.getDrawerCount()];
|
||||
|
||||
energyUsage = group.getDrawerCount();
|
||||
stored = 0;
|
||||
capacity = 0;
|
||||
@@ -157,7 +157,7 @@ public class TileExternalStorage extends TileSlave implements IStorageProvider,
|
||||
if (group.isDrawerEnabled(i)) {
|
||||
DrawerStorage storage = new DrawerStorage(this, group.getDrawer(i));
|
||||
|
||||
storages.add(storage);
|
||||
storages[i] = storage;
|
||||
|
||||
stored += storage.getStored();
|
||||
capacity += storage.getCapacity();
|
||||
@@ -166,36 +166,44 @@ public class TileExternalStorage extends TileSlave implements IStorageProvider,
|
||||
} else if (facing instanceof IDrawer) {
|
||||
DrawerStorage storage = new DrawerStorage(this, (IDrawer) facing);
|
||||
|
||||
storages.add(storage);
|
||||
|
||||
energyUsage = 1;
|
||||
stored = storage.getStored();
|
||||
capacity = storage.getCapacity();
|
||||
|
||||
return new IStorage[]{
|
||||
storage
|
||||
};
|
||||
} else if (facing instanceof IDeepStorageUnit) {
|
||||
DeepStorageUnitStorage storage = new DeepStorageUnitStorage(this, (IDeepStorageUnit) facing);
|
||||
|
||||
storages.add(storage);
|
||||
|
||||
energyUsage = 1;
|
||||
stored = storage.getStored();
|
||||
capacity = storage.getCapacity();
|
||||
|
||||
return new IStorage[]{
|
||||
storage
|
||||
};
|
||||
} else {
|
||||
IItemHandler handler = RefinedStorageUtils.getItemHandler(facing, getDirection().getOpposite());
|
||||
|
||||
if (handler != null) {
|
||||
ItemHandlerStorage storage = new ItemHandlerStorage(this, handler);
|
||||
|
||||
storages.add(storage);
|
||||
|
||||
energyUsage = 1;
|
||||
stored = storage.getStored();
|
||||
capacity = storage.getCapacity();
|
||||
|
||||
return new IStorage[]{
|
||||
storage
|
||||
};
|
||||
} else {
|
||||
energyUsage = 0;
|
||||
stored = 0;
|
||||
capacity = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user