Begin work on apiimpl/network/node
This commit is contained in:
		| @@ -19,5 +19,5 @@ public interface IWirelessTransmitter { | ||||
|     /** | ||||
|      * @return the dimension in which the transmitter is | ||||
|      */ | ||||
|     int getDimension(); | ||||
|     int getDimension(); // TODO: return dimension actual value instead? | ||||
| } | ||||
|   | ||||
| @@ -6,15 +6,14 @@ import com.raoulvdberge.refinedstorage.api.network.INetworkNodeVisitor; | ||||
| import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode; | ||||
| import com.raoulvdberge.refinedstorage.api.util.Action; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.API; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.util.OneSixMigrationHelper; | ||||
| import com.raoulvdberge.refinedstorage.tile.config.RedstoneMode; | ||||
| import com.raoulvdberge.refinedstorage.util.WorldUtils; | ||||
| import net.minecraft.block.state.IBlockState; | ||||
| import net.minecraft.block.BlockState; | ||||
| import net.minecraft.item.Item; | ||||
| import net.minecraft.item.ItemStack; | ||||
| import net.minecraft.nbt.CompoundNBT; | ||||
| import net.minecraft.tileentity.TileEntity; | ||||
| import net.minecraft.util.EnumFacing; | ||||
| import net.minecraft.util.Direction; | ||||
| import net.minecraft.util.math.BlockPos; | ||||
| import net.minecraft.world.World; | ||||
| import net.minecraftforge.items.IItemHandler; | ||||
| @@ -39,7 +38,7 @@ public abstract class NetworkNode implements INetworkNode, INetworkNodeVisitor { | ||||
|     protected UUID owner; | ||||
|     protected String version; | ||||
|  | ||||
|     private EnumFacing direction = EnumFacing.NORTH; | ||||
|     private Direction direction = Direction.NORTH; | ||||
|  | ||||
|     // Disable throttling for the first tick. | ||||
|     // This is to make sure couldUpdate is going to be correctly set. | ||||
| @@ -75,9 +74,10 @@ public abstract class NetworkNode implements INetworkNode, INetworkNodeVisitor { | ||||
|     @Nonnull | ||||
|     @Override | ||||
|     public ItemStack getItemStack() { | ||||
|         IBlockState state = world.getBlockState(pos); | ||||
|         BlockState state = world.getBlockState(pos); | ||||
|  | ||||
|         return new ItemStack(Item.getItemFromBlock(state.getBlock()), 1, state.getBlock().getMetaFromState(state)); | ||||
|         // TODO: Fix. | ||||
|         return new ItemStack(Item.getItemFromBlock(state.getBlock()), 1); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @@ -162,10 +162,10 @@ public abstract class NetworkNode implements INetworkNode, INetworkNodeVisitor { | ||||
|     @Override | ||||
|     public CompoundNBT write(CompoundNBT tag) { | ||||
|         if (owner != null) { | ||||
|             tag.setUniqueId(NBT_OWNER, owner); | ||||
|             tag.putUniqueId(NBT_OWNER, owner); | ||||
|         } | ||||
|  | ||||
|         tag.setString(NBT_VERSION, RS.VERSION); | ||||
|         tag.putString(NBT_VERSION, RS.VERSION); | ||||
|  | ||||
|         tag.putInt(NBT_DIRECTION, direction.ordinal()); | ||||
|  | ||||
| @@ -185,21 +185,15 @@ public abstract class NetworkNode implements INetworkNode, INetworkNodeVisitor { | ||||
|             owner = tag.getUniqueId(NBT_OWNER); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_DIRECTION)) { | ||||
|             direction = EnumFacing.byIndex(tag.getInteger(NBT_DIRECTION)); | ||||
|         if (tag.contains(NBT_DIRECTION)) { | ||||
|             direction = Direction.byIndex(tag.getInt(NBT_DIRECTION)); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_VERSION)) { | ||||
|         if (tag.contains(NBT_VERSION)) { | ||||
|             version = tag.getString(NBT_VERSION); | ||||
|         } | ||||
|  | ||||
|         readConfiguration(tag); | ||||
|  | ||||
|         // We do this after readConfiguration so the 1.6 migration calls see that version is null. | ||||
|         OneSixMigrationHelper.removalHook(); | ||||
|         if (version == null) { | ||||
|             version = RS.VERSION; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void readConfiguration(CompoundNBT tag) { | ||||
| @@ -222,13 +216,13 @@ public abstract class NetworkNode implements INetworkNode, INetworkNodeVisitor { | ||||
|         return world; | ||||
|     } | ||||
|  | ||||
|     public boolean canConduct(@Nullable EnumFacing direction) { | ||||
|     public boolean canConduct(@Nullable Direction direction) { | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void visit(Operator operator) { | ||||
|         for (EnumFacing facing : EnumFacing.VALUES) { | ||||
|         for (Direction facing : Direction.values()) { | ||||
|             if (canConduct(facing)) { | ||||
|                 operator.apply(world, pos.offset(facing), facing.getOpposite()); | ||||
|             } | ||||
| @@ -240,11 +234,11 @@ public abstract class NetworkNode implements INetworkNode, INetworkNodeVisitor { | ||||
|         return world.getTileEntity(pos.offset(getDirection())); | ||||
|     } | ||||
|  | ||||
|     public EnumFacing getDirection() { | ||||
|     public Direction getDirection() { | ||||
|         return direction; | ||||
|     } | ||||
|  | ||||
|     public void setDirection(EnumFacing direction) { | ||||
|     public void setDirection(Direction direction) { | ||||
|         this.direction = direction; | ||||
|  | ||||
|         onDirectionChanged(); | ||||
|   | ||||
| @@ -4,7 +4,7 @@ import com.raoulvdberge.refinedstorage.RS; | ||||
| import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeCable; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.network.node.cover.CoverManager; | ||||
| import net.minecraft.nbt.CompoundNBT; | ||||
| import net.minecraft.util.EnumFacing; | ||||
| import net.minecraft.util.Direction; | ||||
| import net.minecraft.util.math.BlockPos; | ||||
| import net.minecraft.world.World; | ||||
| import net.minecraftforge.common.util.Constants; | ||||
| @@ -39,7 +39,7 @@ public class NetworkNodeCable extends NetworkNode implements ICoverable, INetwor | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public boolean canConduct(@Nullable EnumFacing direction) { | ||||
|     public boolean canConduct(@Nullable Direction direction) { | ||||
|         return coverManager.canConduct(direction); | ||||
|     } | ||||
|  | ||||
| @@ -56,7 +56,7 @@ public class NetworkNodeCable extends NetworkNode implements ICoverable, INetwor | ||||
|     public void read(CompoundNBT tag) { | ||||
|         super.read(tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_COVERS)) { | ||||
|         if (tag.contains(NBT_COVERS)) { | ||||
|             coverManager.readFromNbt(tag.getList(NBT_COVERS, Constants.NBT.TAG_COMPOUND)); | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -31,7 +31,7 @@ import net.minecraft.nbt.NBTUtil; | ||||
| import net.minecraft.server.management.PlayerProfileCache; | ||||
| import net.minecraft.tileentity.TileEntity; | ||||
| import net.minecraft.tileentity.TileEntitySkull; | ||||
| import net.minecraft.util.EnumFacing; | ||||
| import net.minecraft.util.Direction; | ||||
| import net.minecraft.util.EnumHand; | ||||
| import net.minecraft.util.SoundCategory; | ||||
| import net.minecraft.util.math.BlockPos; | ||||
| @@ -68,7 +68,7 @@ public class NetworkNodeConstructor extends NetworkNode implements IComparable, | ||||
|  | ||||
|     private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_CRAFTING, ItemUpgrade.TYPE_STACK); | ||||
|  | ||||
|     private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; | ||||
|     private int compare = IComparer.COMPARE_NBT; | ||||
|     private int type = IType.ITEMS; | ||||
|     private boolean drop = false; | ||||
|  | ||||
| @@ -223,9 +223,9 @@ public class NetworkNodeConstructor extends NetworkNode implements IComparable, | ||||
|                                 if (item.hasTagCompound()) { | ||||
|                                     CompoundNBT tag = item.getTagCompound(); | ||||
|  | ||||
|                                     if (tag.hasKey("SkullOwner", 10)) { | ||||
|                                     if (tag.contains("SkullOwner", 10)) { | ||||
|                                         playerInfo = NBTUtil.readGameProfileFromNBT(tag.getCompound("SkullOwner")); | ||||
|                                     } else if (tag.hasKey("SkullOwner", 8) && !tag.getString("SkullOwner").isEmpty()) { | ||||
|                                     } else if (tag.contains("SkullOwner", 8) && !tag.getString("SkullOwner").isEmpty()) { | ||||
|                                         playerInfo = new GameProfile(null, tag.getString("SkullOwner")); | ||||
|                                     } | ||||
|                                 } | ||||
| @@ -266,7 +266,7 @@ public class NetworkNodeConstructor extends NetworkNode implements IComparable, | ||||
|  | ||||
|     // From BlockDispenser#getDispensePosition | ||||
|     private double getDispensePositionY() { | ||||
|         return (double) pos.getY() + (getDirection() == EnumFacing.DOWN ? 0.45D : 0.5D) + 0.8D * (double) getDirection().getYOffset(); | ||||
|         return (double) pos.getY() + (getDirection() == Direction.DOWN ? 0.45D : 0.5D) + 0.8D * (double) getDirection().getYOffset(); | ||||
|     } | ||||
|  | ||||
|     // From BlockDispenser#getDispensePosition | ||||
| @@ -328,25 +328,25 @@ public class NetworkNodeConstructor extends NetworkNode implements IComparable, | ||||
|     public void readConfiguration(CompoundNBT tag) { | ||||
|         super.readConfiguration(tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_COMPARE)) { | ||||
|             compare = tag.getInteger(NBT_COMPARE); | ||||
|         if (tag.contains(NBT_COMPARE)) { | ||||
|             compare = tag.getInt(NBT_COMPARE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_TYPE)) { | ||||
|             type = tag.getInteger(NBT_TYPE); | ||||
|         if (tag.contains(NBT_TYPE)) { | ||||
|             type = tag.getInt(NBT_TYPE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_DROP)) { | ||||
|         if (tag.contains(NBT_DROP)) { | ||||
|             drop = tag.getBoolean(NBT_DROP); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_COVERS)) { | ||||
|         if (tag.contains(NBT_COVERS)) { | ||||
|             coverManager.readFromNbt(tag.getList(NBT_COVERS, Constants.NBT.TAG_COMPOUND)); | ||||
|         } | ||||
|  | ||||
|         StackUtils.readItems(itemFilters, 0, tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_FLUID_FILTERS)) { | ||||
|         if (tag.contains(NBT_FLUID_FILTERS)) { | ||||
|             fluidFilters.readFromNbt(tag.getCompound(NBT_FLUID_FILTERS)); | ||||
|         } | ||||
|     } | ||||
| @@ -369,7 +369,7 @@ public class NetworkNodeConstructor extends NetworkNode implements IComparable, | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public boolean canConduct(@Nullable EnumFacing direction) { | ||||
|     public boolean canConduct(@Nullable Direction direction) { | ||||
|         return coverManager.canConduct(direction); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -16,8 +16,8 @@ import com.raoulvdberge.refinedstorage.util.WorldUtils; | ||||
| import net.minecraft.item.ItemStack; | ||||
| import net.minecraft.nbt.CompoundNBT; | ||||
| import net.minecraft.tileentity.TileEntity; | ||||
| import net.minecraft.util.INameable; | ||||
| import net.minecraft.util.math.BlockPos; | ||||
| import net.minecraft.world.IWorldNameable; | ||||
| import net.minecraft.world.World; | ||||
| import net.minecraftforge.fluids.capability.IFluidHandler; | ||||
| import net.minecraftforge.items.IItemHandler; | ||||
| @@ -180,17 +180,13 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC | ||||
|  | ||||
|         StackUtils.readItems(patternsInventory, 0, tag); | ||||
|  | ||||
|         if (API.instance().getOneSixMigrationHelper().migratePatternInventory(patternsInventory)) { | ||||
|             markDirty(); | ||||
|         } | ||||
|  | ||||
|         this.invalidate(); | ||||
|  | ||||
|         this.reading = false; | ||||
|  | ||||
|         StackUtils.readItems(upgrades, 1, tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_DISPLAY_NAME)) { | ||||
|         if (tag.contains(NBT_DISPLAY_NAME)) { | ||||
|             displayName = tag.getString(NBT_DISPLAY_NAME); | ||||
|         } | ||||
|  | ||||
| @@ -198,15 +194,15 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC | ||||
|             uuid = tag.getUniqueId(NBT_UUID); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_MODE)) { | ||||
|             mode = CrafterMode.getById(tag.getInteger(NBT_MODE)); | ||||
|         if (tag.contains(NBT_MODE)) { | ||||
|             mode = CrafterMode.getById(tag.getInt(NBT_MODE)); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_LOCKED)) { | ||||
|         if (tag.contains(NBT_LOCKED)) { | ||||
|             locked = tag.getBoolean(NBT_LOCKED); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_WAS_POWERED)) { | ||||
|         if (tag.contains(NBT_WAS_POWERED)) { | ||||
|             wasPowered = tag.getBoolean(NBT_WAS_POWERED); | ||||
|         } | ||||
|     } | ||||
| @@ -224,11 +220,11 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC | ||||
|         StackUtils.writeItems(upgrades, 1, tag); | ||||
|  | ||||
|         if (displayName != null) { | ||||
|             tag.setString(NBT_DISPLAY_NAME, displayName); | ||||
|             tag.putString(NBT_DISPLAY_NAME, displayName); | ||||
|         } | ||||
|  | ||||
|         if (uuid != null) { | ||||
|             tag.setUniqueId(NBT_UUID, uuid); | ||||
|             tag.putUniqueId(NBT_UUID, uuid); | ||||
|         } | ||||
|  | ||||
|         tag.putInt(NBT_MODE, mode.ordinal()); | ||||
| @@ -326,8 +322,8 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC | ||||
|  | ||||
|         TileEntity facing = getConnectedTile(); | ||||
|  | ||||
|         if (facing instanceof IWorldNameable && ((IWorldNameable) facing).getName() != null) { | ||||
|             return ((IWorldNameable) facing).getName(); | ||||
|         if (facing instanceof INameable && ((INameable) facing).getName() != null) { | ||||
|             return ((INameable) facing).getName().getString(); // TODO: DOes this even work | ||||
|         } | ||||
|  | ||||
|         if (facing != null) { | ||||
|   | ||||
| @@ -34,7 +34,7 @@ public class NetworkNodeCrafterManager extends NetworkNode { | ||||
|  | ||||
|     public void sendTo(ServerPlayerEntity player) { | ||||
|         if (network != null) { | ||||
|             RS.INSTANCE.network.sendTo(new MessageCrafterManagerSlotSizes(network.getCraftingManager().getNamedContainers()), player); | ||||
|             // TODO RS.INSTANCE.network.sendTo(new MessageCrafterManagerSlotSizes(network.getCraftingManager().getNamedContainers()), player); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -60,12 +60,12 @@ public class NetworkNodeCrafterManager extends NetworkNode { | ||||
|     public void readConfiguration(CompoundNBT tag) { | ||||
|         super.readConfiguration(tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_SIZE)) { | ||||
|             size = tag.getInteger(NBT_SIZE); | ||||
|         if (tag.contains(NBT_SIZE)) { | ||||
|             size = tag.getInt(NBT_SIZE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_SEARCH_BOX_MODE)) { | ||||
|             searchBoxMode = tag.getInteger(NBT_SEARCH_BOX_MODE); | ||||
|         if (tag.contains(NBT_SEARCH_BOX_MODE)) { | ||||
|             searchBoxMode = tag.getInt(NBT_SEARCH_BOX_MODE); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -82,7 +82,7 @@ public class NetworkNodeCraftingMonitor extends NetworkNode implements ICrafting | ||||
|         tag.putInt(NBT_TAB_PAGE, tabPage); | ||||
|  | ||||
|         if (tabSelected.isPresent()) { | ||||
|             tag.setUniqueId(NBT_TAB_SELECTED, tabSelected.get()); | ||||
|             tag.putUniqueId(NBT_TAB_SELECTED, tabSelected.get()); | ||||
|         } | ||||
|  | ||||
|         return tag; | ||||
| @@ -92,8 +92,8 @@ public class NetworkNodeCraftingMonitor extends NetworkNode implements ICrafting | ||||
|     public void read(CompoundNBT tag) { | ||||
|         super.read(tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_TAB_PAGE)) { | ||||
|             tabPage = tag.getInteger(NBT_TAB_PAGE); | ||||
|         if (tag.contains(NBT_TAB_PAGE)) { | ||||
|             tabPage = tag.getInt(NBT_TAB_PAGE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasUniqueId(NBT_TAB_SELECTED)) { | ||||
|   | ||||
| @@ -28,7 +28,7 @@ import net.minecraft.nbt.CompoundNBT; | ||||
| import net.minecraft.server.management.PlayerProfileCache; | ||||
| import net.minecraft.tileentity.TileEntity; | ||||
| import net.minecraft.tileentity.TileEntityShulkerBox; | ||||
| import net.minecraft.util.EnumFacing; | ||||
| import net.minecraft.util.Direction; | ||||
| import net.minecraft.util.NonNullList; | ||||
| import net.minecraft.util.math.AxisAlignedBB; | ||||
| import net.minecraft.util.math.BlockPos; | ||||
| @@ -239,7 +239,7 @@ public class NetworkNodeDestructor extends NetworkNode implements IComparable, I | ||||
|  | ||||
|         StackUtils.readItems(upgrades, 1, tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_COVERS)) { | ||||
|         if (tag.contains(NBT_COVERS)) { | ||||
|             coverManager.readFromNbt(tag.getList(NBT_COVERS, Constants.NBT.TAG_COMPOUND)); | ||||
|         } | ||||
|     } | ||||
| @@ -280,25 +280,25 @@ public class NetworkNodeDestructor extends NetworkNode implements IComparable, I | ||||
|     public void readConfiguration(CompoundNBT tag) { | ||||
|         super.readConfiguration(tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_COMPARE)) { | ||||
|             compare = tag.getInteger(NBT_COMPARE); | ||||
|         if (tag.contains(NBT_COMPARE)) { | ||||
|             compare = tag.getInt(NBT_COMPARE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_MODE)) { | ||||
|             mode = tag.getInteger(NBT_MODE); | ||||
|         if (tag.contains(NBT_MODE)) { | ||||
|             mode = tag.getInt(NBT_MODE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_TYPE)) { | ||||
|             type = tag.getInteger(NBT_TYPE); | ||||
|         if (tag.contains(NBT_TYPE)) { | ||||
|             type = tag.getInt(NBT_TYPE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_PICKUP)) { | ||||
|         if (tag.contains(NBT_PICKUP)) { | ||||
|             pickupItem = tag.getBoolean(NBT_PICKUP); | ||||
|         } | ||||
|  | ||||
|         StackUtils.readItems(itemFilters, 0, tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_FLUID_FILTERS)) { | ||||
|         if (tag.contains(NBT_FLUID_FILTERS)) { | ||||
|             fluidFilters.readFromNbt(tag.getCompound(NBT_FLUID_FILTERS)); | ||||
|         } | ||||
|  | ||||
| @@ -346,7 +346,7 @@ public class NetworkNodeDestructor extends NetworkNode implements IComparable, I | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public boolean canConduct(@Nullable EnumFacing direction) { | ||||
|     public boolean canConduct(@Nullable Direction direction) { | ||||
|         return coverManager.canConduct(direction); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -39,7 +39,7 @@ public class NetworkNodeDetector extends NetworkNode implements IComparable, ITy | ||||
|     private ItemHandlerBase itemFilters = new ItemHandlerBase(1, new ListenerNetworkNode(this)); | ||||
|     private FluidInventory fluidFilters = new FluidInventory(1, new ListenerNetworkNode(this)); | ||||
|  | ||||
|     private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; | ||||
|     private int compare = IComparer.COMPARE_NBT; | ||||
|     private int type = IType.ITEMS; | ||||
|     private int mode = MODE_EQUAL; | ||||
|     private int amount = 0; | ||||
| @@ -63,7 +63,7 @@ public class NetworkNodeDetector extends NetworkNode implements IComparable, ITy | ||||
|         if (powered != wasPowered) { | ||||
|             wasPowered = powered; | ||||
|  | ||||
|             world.notifyNeighborsOfStateChange(pos, RSBlocks.DETECTOR, true); | ||||
|             world.notifyNeighborsOfStateChange(pos, RSBlocks.DETECTOR); | ||||
|  | ||||
|             WorldUtils.updateBlock(world, pos); | ||||
|         } | ||||
| @@ -85,9 +85,9 @@ public class NetworkNodeDetector extends NetworkNode implements IComparable, ITy | ||||
|                 if (slot != null) { | ||||
|                     FluidStack stack = network.getFluidStorageCache().getList().get(slot, compare); | ||||
|  | ||||
|                     powered = isPowered(stack == null ? null : stack.amount); | ||||
|                     powered = isPowered(stack == null ? null : stack.getAmount()); | ||||
|                 } else { | ||||
|                     powered = isPowered(network.getFluidStorageCache().getList().getStacks().stream().map(s -> s.amount).mapToInt(Number::intValue).sum()); | ||||
|                     powered = isPowered(network.getFluidStorageCache().getList().getStacks().stream().map(FluidStack::getAmount).mapToInt(Number::intValue).sum()); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| @@ -186,25 +186,25 @@ public class NetworkNodeDetector extends NetworkNode implements IComparable, ITy | ||||
|     public void readConfiguration(CompoundNBT tag) { | ||||
|         super.readConfiguration(tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_COMPARE)) { | ||||
|             compare = tag.getInteger(NBT_COMPARE); | ||||
|         if (tag.contains(NBT_COMPARE)) { | ||||
|             compare = tag.getInt(NBT_COMPARE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_MODE)) { | ||||
|             mode = tag.getInteger(NBT_MODE); | ||||
|         if (tag.contains(NBT_MODE)) { | ||||
|             mode = tag.getInt(NBT_MODE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_AMOUNT)) { | ||||
|             amount = tag.getInteger(NBT_AMOUNT); | ||||
|         if (tag.contains(NBT_AMOUNT)) { | ||||
|             amount = tag.getInt(NBT_AMOUNT); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_TYPE)) { | ||||
|             type = tag.getInteger(NBT_TYPE); | ||||
|         if (tag.contains(NBT_TYPE)) { | ||||
|             type = tag.getInt(NBT_TYPE); | ||||
|         } | ||||
|  | ||||
|         StackUtils.readItems(itemFilters, 0, tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_FLUID_FILTERS)) { | ||||
|         if (tag.contains(NBT_FLUID_FILTERS)) { | ||||
|             fluidFilters.readFromNbt(tag.getCompound(NBT_FLUID_FILTERS)); | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -16,11 +16,11 @@ import com.raoulvdberge.refinedstorage.util.StackUtils; | ||||
| import com.raoulvdberge.refinedstorage.util.WorldUtils; | ||||
| import net.minecraft.item.ItemStack; | ||||
| import net.minecraft.nbt.CompoundNBT; | ||||
| import net.minecraft.util.EnumFacing; | ||||
| import net.minecraft.util.Direction; | ||||
| import net.minecraft.util.math.BlockPos; | ||||
| import net.minecraft.world.World; | ||||
| import net.minecraftforge.common.util.Constants; | ||||
| import net.minecraftforge.fluids.Fluid; | ||||
| import net.minecraftforge.fluids.FluidAttributes; | ||||
| import net.minecraftforge.fluids.FluidStack; | ||||
| import net.minecraftforge.fluids.capability.IFluidHandler; | ||||
| import net.minecraftforge.items.IItemHandler; | ||||
| @@ -43,7 +43,7 @@ public class NetworkNodeExporter extends NetworkNode implements IComparable, ITy | ||||
|  | ||||
|     private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_CRAFTING, ItemUpgrade.TYPE_STACK); | ||||
|  | ||||
|     private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; | ||||
|     private int compare = IComparer.COMPARE_NBT; | ||||
|     private int type = IType.ITEMS; | ||||
|  | ||||
|     private CoverManager coverManager = new CoverManager(this); | ||||
| @@ -123,22 +123,22 @@ public class NetworkNodeExporter extends NetworkNode implements IComparable, ITy | ||||
|                     FluidStack stack = fluids[filterSlot]; | ||||
|  | ||||
|                     if (stack != null) { | ||||
|                         int toExtract = Fluid.BUCKET_VOLUME * upgrades.getItemInteractCount(); | ||||
|                         int toExtract = FluidAttributes.BUCKET_VOLUME * upgrades.getItemInteractCount(); | ||||
|  | ||||
|                         FluidStack stackInStorage = network.getFluidStorageCache().getList().get(stack, compare); | ||||
|  | ||||
|                         if (stackInStorage != null) { | ||||
|                             toExtract = Math.min(toExtract, stackInStorage.amount); | ||||
|                             toExtract = Math.min(toExtract, stackInStorage.getAmount()); | ||||
|  | ||||
|                             FluidStack took = network.extractFluid(stack, toExtract, compare, Action.SIMULATE); | ||||
|  | ||||
|                             if (took != null) { | ||||
|                                 int filled = handler.fill(took, false); | ||||
|                                 int filled = handler.fill(took, IFluidHandler.FluidAction.SIMULATE); | ||||
|  | ||||
|                                 if (filled > 0) { | ||||
|                                     took = network.extractFluid(stack, filled, compare, Action.PERFORM); | ||||
|  | ||||
|                                     handler.fill(took, true); | ||||
|                                     handler.fill(took, IFluidHandler.FluidAction.EXECUTE); | ||||
|                                 } | ||||
|                             } | ||||
|                         } else if (upgrades.hasUpgrade(ItemUpgrade.TYPE_CRAFTING)) { | ||||
| @@ -201,7 +201,7 @@ public class NetworkNodeExporter extends NetworkNode implements IComparable, ITy | ||||
|  | ||||
|         StackUtils.readItems(upgrades, 1, tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_COVERS)) { | ||||
|         if (tag.contains(NBT_COVERS)) { | ||||
|             coverManager.readFromNbt(tag.getList(NBT_COVERS, Constants.NBT.TAG_COMPOUND)); | ||||
|         } | ||||
|     } | ||||
| @@ -210,17 +210,17 @@ public class NetworkNodeExporter extends NetworkNode implements IComparable, ITy | ||||
|     public void readConfiguration(CompoundNBT tag) { | ||||
|         super.readConfiguration(tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_COMPARE)) { | ||||
|             compare = tag.getInteger(NBT_COMPARE); | ||||
|         if (tag.contains(NBT_COMPARE)) { | ||||
|             compare = tag.getInt(NBT_COMPARE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_TYPE)) { | ||||
|             type = tag.getInteger(NBT_TYPE); | ||||
|         if (tag.contains(NBT_TYPE)) { | ||||
|             type = tag.getInt(NBT_TYPE); | ||||
|         } | ||||
|  | ||||
|         StackUtils.readItems(itemFilters, 0, tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_FLUID_FILTERS)) { | ||||
|         if (tag.contains(NBT_FLUID_FILTERS)) { | ||||
|             fluidFilters.readFromNbt(tag.getCompound(NBT_FLUID_FILTERS)); | ||||
|         } | ||||
|     } | ||||
| @@ -257,7 +257,7 @@ public class NetworkNodeExporter extends NetworkNode implements IComparable, ITy | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public boolean canConduct(@Nullable EnumFacing direction) { | ||||
|     public boolean canConduct(@Nullable Direction direction) { | ||||
|         return coverManager.canConduct(direction); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -14,7 +14,6 @@ import com.raoulvdberge.refinedstorage.apiimpl.API; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.network.node.cover.CoverManager; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageCacheFluid; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageCacheItem; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.util.OneSixMigrationHelper; | ||||
| import com.raoulvdberge.refinedstorage.inventory.fluid.FluidInventory; | ||||
| import com.raoulvdberge.refinedstorage.inventory.item.ItemHandlerBase; | ||||
| import com.raoulvdberge.refinedstorage.inventory.listener.ListenerNetworkNode; | ||||
| @@ -26,7 +25,7 @@ import com.raoulvdberge.refinedstorage.util.StackUtils; | ||||
| import net.minecraft.item.ItemStack; | ||||
| import net.minecraft.nbt.CompoundNBT; | ||||
| import net.minecraft.tileentity.TileEntity; | ||||
| import net.minecraft.util.EnumFacing; | ||||
| import net.minecraft.util.Direction; | ||||
| import net.minecraft.util.math.BlockPos; | ||||
| import net.minecraft.world.World; | ||||
| import net.minecraftforge.common.util.Constants; | ||||
| @@ -52,7 +51,7 @@ public class NetworkNodeExternalStorage extends NetworkNode implements IStorageP | ||||
|     private FluidInventory fluidFilters = new FluidInventory(9, new ListenerNetworkNode(this)); | ||||
|  | ||||
|     private int priority = 0; | ||||
|     private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; | ||||
|     private int compare = IComparer.COMPARE_NBT; | ||||
|     private int mode = IFilterable.BLACKLIST; | ||||
|     private int type = IType.ITEMS; | ||||
|     private AccessType accessType = AccessType.INSERT_EXTRACT; | ||||
| @@ -118,7 +117,7 @@ public class NetworkNodeExternalStorage extends NetworkNode implements IStorageP | ||||
|     public void read(CompoundNBT tag) { | ||||
|         super.read(tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_COVERS)) { | ||||
|         if (tag.contains(NBT_COVERS)) { | ||||
|             coverManager.readFromNbt(tag.getList(NBT_COVERS, Constants.NBT.TAG_COMPOUND)); | ||||
|         } | ||||
|     } | ||||
| @@ -156,29 +155,27 @@ public class NetworkNodeExternalStorage extends NetworkNode implements IStorageP | ||||
|  | ||||
|         StackUtils.readItems(itemFilters, 0, tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_FLUID_FILTERS)) { | ||||
|         if (tag.contains(NBT_FLUID_FILTERS)) { | ||||
|             fluidFilters.readFromNbt(tag.getCompound(NBT_FLUID_FILTERS)); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_PRIORITY)) { | ||||
|             priority = tag.getInteger(NBT_PRIORITY); | ||||
|         if (tag.contains(NBT_PRIORITY)) { | ||||
|             priority = tag.getInt(NBT_PRIORITY); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_COMPARE)) { | ||||
|             compare = tag.getInteger(NBT_COMPARE); | ||||
|         if (tag.contains(NBT_COMPARE)) { | ||||
|             compare = tag.getInt(NBT_COMPARE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_MODE)) { | ||||
|             mode = tag.getInteger(NBT_MODE); | ||||
|         if (tag.contains(NBT_MODE)) { | ||||
|             mode = tag.getInt(NBT_MODE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_TYPE)) { | ||||
|             type = tag.getInteger(NBT_TYPE); | ||||
|         if (tag.contains(NBT_TYPE)) { | ||||
|             type = tag.getInt(NBT_TYPE); | ||||
|         } | ||||
|  | ||||
|         accessType = AccessTypeUtils.readAccessType(tag); | ||||
|  | ||||
|         OneSixMigrationHelper.migrateEmptyWhitelistToEmptyBlacklist(version, this, itemFilters); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @@ -369,7 +366,7 @@ public class NetworkNodeExternalStorage extends NetworkNode implements IStorageP | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public boolean canConduct(@Nullable EnumFacing direction) { | ||||
|     public boolean canConduct(@Nullable Direction direction) { | ||||
|         return coverManager.canConduct(direction); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -17,7 +17,7 @@ import com.raoulvdberge.refinedstorage.tile.config.IType; | ||||
| import com.raoulvdberge.refinedstorage.util.StackUtils; | ||||
| import net.minecraft.item.ItemStack; | ||||
| import net.minecraft.nbt.CompoundNBT; | ||||
| import net.minecraft.util.EnumFacing; | ||||
| import net.minecraft.util.Direction; | ||||
| import net.minecraft.util.math.BlockPos; | ||||
| import net.minecraft.world.World; | ||||
| import net.minecraftforge.fluids.Fluid; | ||||
| @@ -162,7 +162,7 @@ public class NetworkNodeFluidInterface extends NetworkNode { | ||||
|     } | ||||
|  | ||||
|     private boolean isActingAsStorage() { | ||||
|         for (EnumFacing facing : EnumFacing.VALUES) { | ||||
|         for (Direction facing : Direction.VALUES) { | ||||
|             INetworkNode facingNode = API.instance().getNetworkNodeManager(world).getNode(pos.offset(facing)); | ||||
|  | ||||
|             if (facingNode instanceof NetworkNodeExternalStorage && | ||||
| @@ -201,11 +201,11 @@ public class NetworkNodeFluidInterface extends NetworkNode { | ||||
|         StackUtils.readItems(upgrades, 0, tag); | ||||
|         StackUtils.readItems(in, 1, tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_TANK_IN)) { | ||||
|         if (tag.contains(NBT_TANK_IN)) { | ||||
|             tankIn.readFromNBT(tag.getCompound(NBT_TANK_IN)); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_TANK_OUT)) { | ||||
|         if (tag.contains(NBT_TANK_OUT)) { | ||||
|             tankOut.readFromNBT(tag.getCompound(NBT_TANK_OUT)); | ||||
|         } | ||||
|     } | ||||
| @@ -228,7 +228,7 @@ public class NetworkNodeFluidInterface extends NetworkNode { | ||||
|     public void readConfiguration(CompoundNBT tag) { | ||||
|         super.readConfiguration(tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_OUT)) { | ||||
|         if (tag.contains(NBT_OUT)) { | ||||
|             out.readFromNbt(tag.getCompound(NBT_OUT)); | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -27,18 +27,23 @@ import com.raoulvdberge.refinedstorage.tile.config.IType; | ||||
| import com.raoulvdberge.refinedstorage.tile.data.TileDataManager; | ||||
| import com.raoulvdberge.refinedstorage.tile.grid.TileGrid; | ||||
| import com.raoulvdberge.refinedstorage.util.StackUtils; | ||||
| import net.minecraft.block.BlockState; | ||||
| import net.minecraft.block.state.IBlockState; | ||||
| import net.minecraft.entity.player.PlayerEntity; | ||||
| import net.minecraft.entity.player.ServerPlayerEntity; | ||||
| import net.minecraft.inventory.*; | ||||
| import net.minecraft.inventory.container.Container; | ||||
| import net.minecraft.inventory.container.ContainerType; | ||||
| import net.minecraft.item.ItemStack; | ||||
| import net.minecraft.item.crafting.CraftingManager; | ||||
| import net.minecraft.item.crafting.IRecipe; | ||||
| import net.minecraft.item.crafting.IRecipeType; | ||||
| import net.minecraft.nbt.CompoundNBT; | ||||
| import net.minecraft.util.NonNullList; | ||||
| import net.minecraft.util.math.BlockPos; | ||||
| import net.minecraft.world.World; | ||||
| import net.minecraftforge.fluids.Fluid; | ||||
| import net.minecraftforge.fluids.FluidAttributes; | ||||
| import net.minecraftforge.fluids.FluidStack; | ||||
| import net.minecraftforge.fml.common.FMLCommonHandler; | ||||
| import net.minecraftforge.items.IItemHandler; | ||||
| @@ -70,7 +75,7 @@ public class NetworkNodeGrid extends NetworkNode implements IGridNetworkAware, I | ||||
|     private static final String NBT_PROCESSING_TYPE = "ProcessingType"; | ||||
|     private static final String NBT_PROCESSING_MATRIX_FLUIDS = "ProcessingMatrixFluids"; | ||||
|  | ||||
|     private Container craftingContainer = new Container() { | ||||
|     private Container craftingContainer = new Container(ContainerType.CRAFTING, 0) { | ||||
|         @Override | ||||
|         public boolean canInteractWith(PlayerEntity player) { | ||||
|             return false; | ||||
| @@ -84,10 +89,10 @@ public class NetworkNodeGrid extends NetworkNode implements IGridNetworkAware, I | ||||
|         } | ||||
|     }; | ||||
|     private IRecipe currentRecipe; | ||||
|     private InventoryCrafting matrix = new InventoryCrafting(craftingContainer, 3, 3); | ||||
|     private InventoryCraftResult result = new InventoryCraftResult(); | ||||
|     private CraftingInventory matrix = new CraftingInventory(craftingContainer, 3, 3); | ||||
|     private CraftResultInventory result = new CraftResultInventory(); | ||||
|     private ItemHandlerBase processingMatrix = new ItemHandlerBase(9 * 2, new ListenerNetworkNode(this)); | ||||
|     private FluidInventory processingMatrixFluids = new FluidInventory(9 * 2, Fluid.BUCKET_VOLUME * 64, new ListenerNetworkNode(this)); | ||||
|     private FluidInventory processingMatrixFluids = new FluidInventory(9 * 2, FluidAttributes.BUCKET_VOLUME * 64, new ListenerNetworkNode(this)); | ||||
|  | ||||
|     private Set<IGridCraftingListener> craftingListeners = new HashSet<>(); | ||||
|  | ||||
| @@ -131,7 +136,7 @@ public class NetworkNodeGrid extends NetworkNode implements IGridNetworkAware, I | ||||
|             // Only allow in slot 1 when it isn't a blank pattern | ||||
|             // This makes it so that written patterns can be re-inserted in slot 1 to be overwritten again | ||||
|             // This makes it so that blank patterns can't be inserted in slot 1 through hoppers. | ||||
|             if (slot == 0 || stack.getTagCompound() != null) { | ||||
|             if (slot == 0 || stack.getTag() != null) { | ||||
|                 return super.insertItem(slot, stack, simulate); | ||||
|             } | ||||
|  | ||||
| @@ -224,9 +229,10 @@ public class NetworkNodeGrid extends NetworkNode implements IGridNetworkAware, I | ||||
|     @Override | ||||
|     public GridType getGridType() { | ||||
|         if (type == null) { | ||||
|             IBlockState state = world.getBlockState(pos); | ||||
|             BlockState state = world.getBlockState(pos); | ||||
|  | ||||
|             if (state.getBlock() == RSBlocks.GRID) { | ||||
|                 type = (GridType) state.getValue(BlockGrid.TYPE); | ||||
|                 type = state.get(BlockGrid.TYPE); | ||||
|             } | ||||
|         } | ||||
|  | ||||
| @@ -302,12 +308,12 @@ public class NetworkNodeGrid extends NetworkNode implements IGridNetworkAware, I | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public InventoryCrafting getCraftingMatrix() { | ||||
|     public CraftingInventory getCraftingMatrix() { | ||||
|         return matrix; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public InventoryCraftResult getCraftingResult() { | ||||
|     public CraftResultInventory getCraftingResult() { | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
| @@ -322,7 +328,7 @@ public class NetworkNodeGrid extends NetworkNode implements IGridNetworkAware, I | ||||
|     @Override | ||||
|     public void onCraftingMatrixChanged() { | ||||
|         if (currentRecipe == null || !currentRecipe.matches(matrix, world)) { | ||||
|             currentRecipe = CraftingManager.findMatchingRecipe(matrix, world); | ||||
|             currentRecipe = world.getRecipeManager().getRecipe(IRecipeType.CRAFTING, matrix, world).orElse(null); // TODO: does this work? | ||||
|         } | ||||
|  | ||||
|         if (currentRecipe == null) { | ||||
| @@ -388,7 +394,7 @@ public class NetworkNodeGrid extends NetworkNode implements IGridNetworkAware, I | ||||
|                     // If we are connected, first try to get the possibilities from the network | ||||
|                     if (network != null) { | ||||
|                         for (ItemStack possibility : possibilities) { | ||||
|                             ItemStack took = network.extractItem(possibility, 1, IComparer.COMPARE_NBT | (possibility.getItem().isDamageable() ? 0 : IComparer.COMPARE_DAMAGE), Action.PERFORM); | ||||
|                             ItemStack took = network.extractItem(possibility, 1, IComparer.COMPARE_NBT, Action.PERFORM); | ||||
|  | ||||
|                             if (took != null) { | ||||
|                                 grid.getCraftingMatrix().setInventorySlotContents(i, StackUtils.nullToEmpty(took)); | ||||
| @@ -731,16 +737,16 @@ public class NetworkNodeGrid extends NetworkNode implements IGridNetworkAware, I | ||||
|         StackUtils.readItems(filter, 2, tag); | ||||
|         StackUtils.readItems(processingMatrix, 3, tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_PROCESSING_MATRIX_FLUIDS)) { | ||||
|         if (tag.contains(NBT_PROCESSING_MATRIX_FLUIDS)) { | ||||
|             processingMatrixFluids.readFromNbt(tag.getCompound(NBT_PROCESSING_MATRIX_FLUIDS)); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_TAB_SELECTED)) { | ||||
|             tabSelected = tag.getInteger(NBT_TAB_SELECTED); | ||||
|         if (tag.contains(NBT_TAB_SELECTED)) { | ||||
|             tabSelected = tag.getInt(NBT_TAB_SELECTED); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_TAB_PAGE)) { | ||||
|             tabPage = tag.getInteger(NBT_TAB_PAGE); | ||||
|         if (tag.contains(NBT_TAB_PAGE)) { | ||||
|             tabPage = tag.getInt(NBT_TAB_PAGE); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -786,36 +792,36 @@ public class NetworkNodeGrid extends NetworkNode implements IGridNetworkAware, I | ||||
|     public void readConfiguration(CompoundNBT tag) { | ||||
|         super.readConfiguration(tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_VIEW_TYPE)) { | ||||
|             viewType = tag.getInteger(NBT_VIEW_TYPE); | ||||
|         if (tag.contains(NBT_VIEW_TYPE)) { | ||||
|             viewType = tag.getInt(NBT_VIEW_TYPE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_SORTING_DIRECTION)) { | ||||
|             sortingDirection = tag.getInteger(NBT_SORTING_DIRECTION); | ||||
|         if (tag.contains(NBT_SORTING_DIRECTION)) { | ||||
|             sortingDirection = tag.getInt(NBT_SORTING_DIRECTION); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_SORTING_TYPE)) { | ||||
|             sortingType = tag.getInteger(NBT_SORTING_TYPE); | ||||
|         if (tag.contains(NBT_SORTING_TYPE)) { | ||||
|             sortingType = tag.getInt(NBT_SORTING_TYPE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_SEARCH_BOX_MODE)) { | ||||
|             searchBoxMode = tag.getInteger(NBT_SEARCH_BOX_MODE); | ||||
|         if (tag.contains(NBT_SEARCH_BOX_MODE)) { | ||||
|             searchBoxMode = tag.getInt(NBT_SEARCH_BOX_MODE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_SIZE)) { | ||||
|             size = tag.getInteger(NBT_SIZE); | ||||
|         if (tag.contains(NBT_SIZE)) { | ||||
|             size = tag.getInt(NBT_SIZE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_OREDICT_PATTERN)) { | ||||
|         if (tag.contains(NBT_OREDICT_PATTERN)) { | ||||
|             oredictPattern = tag.getBoolean(NBT_OREDICT_PATTERN); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_PROCESSING_PATTERN)) { | ||||
|         if (tag.contains(NBT_PROCESSING_PATTERN)) { | ||||
|             processingPattern = tag.getBoolean(NBT_PROCESSING_PATTERN); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_PROCESSING_TYPE)) { | ||||
|             processingType = tag.getInteger(NBT_PROCESSING_TYPE); | ||||
|         if (tag.contains(NBT_PROCESSING_TYPE)) { | ||||
|             processingType = tag.getInt(NBT_PROCESSING_TYPE); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -4,7 +4,6 @@ import com.raoulvdberge.refinedstorage.RS; | ||||
| import com.raoulvdberge.refinedstorage.api.util.Action; | ||||
| import com.raoulvdberge.refinedstorage.api.util.IComparer; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.network.node.cover.CoverManager; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.util.OneSixMigrationHelper; | ||||
| import com.raoulvdberge.refinedstorage.inventory.fluid.FluidInventory; | ||||
| import com.raoulvdberge.refinedstorage.inventory.item.ItemHandlerBase; | ||||
| import com.raoulvdberge.refinedstorage.inventory.item.ItemHandlerUpgrade; | ||||
| @@ -20,11 +19,11 @@ import com.raoulvdberge.refinedstorage.util.WorldUtils; | ||||
| import net.minecraft.item.ItemStack; | ||||
| import net.minecraft.nbt.CompoundNBT; | ||||
| import net.minecraft.tileentity.TileEntity; | ||||
| import net.minecraft.util.EnumFacing; | ||||
| import net.minecraft.util.Direction; | ||||
| import net.minecraft.util.math.BlockPos; | ||||
| import net.minecraft.world.World; | ||||
| import net.minecraftforge.common.util.Constants; | ||||
| import net.minecraftforge.fluids.Fluid; | ||||
| import net.minecraftforge.fluids.FluidAttributes; | ||||
| import net.minecraftforge.fluids.FluidStack; | ||||
| import net.minecraftforge.fluids.capability.IFluidHandler; | ||||
| import net.minecraftforge.items.IItemHandler; | ||||
| @@ -47,7 +46,7 @@ public class NetworkNodeImporter extends NetworkNode implements IComparable, IFi | ||||
|  | ||||
|     private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK); | ||||
|  | ||||
|     private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; | ||||
|     private int compare = IComparer.COMPARE_NBT; | ||||
|     private int mode = IFilterable.BLACKLIST; | ||||
|     private int type = IType.ITEMS; | ||||
|  | ||||
| @@ -111,18 +110,19 @@ public class NetworkNodeImporter extends NetworkNode implements IComparable, IFi | ||||
|             IFluidHandler handler = WorldUtils.getFluidHandler(getFacingTile(), getDirection().getOpposite()); | ||||
|  | ||||
|             if (handler != null) { | ||||
|                 FluidStack stack = handler.drain(Fluid.BUCKET_VOLUME, false); | ||||
|                 FluidStack stack = handler.drain(FluidAttributes.BUCKET_VOLUME, IFluidHandler.FluidAction.SIMULATE); | ||||
|  | ||||
|                 if (stack != null && IFilterable.acceptsFluid(fluidFilters, mode, compare, stack) && network.insertFluid(stack, stack.amount, Action.SIMULATE) == null) { | ||||
|                     FluidStack toDrain = handler.drain(Fluid.BUCKET_VOLUME * upgrades.getItemInteractCount(), false); | ||||
|                 if (stack != null && IFilterable.acceptsFluid(fluidFilters, mode, compare, stack) && network.insertFluid(stack, stack.getAmount(), Action.SIMULATE) == null) { | ||||
|                     FluidStack toDrain = handler.drain(FluidAttributes.BUCKET_VOLUME * upgrades.getItemInteractCount(), IFluidHandler.FluidAction.EXECUTE); // TODO: is this execute? | ||||
|  | ||||
|                     if (toDrain != null) { | ||||
|                         FluidStack remainder = network.insertFluidTracked(toDrain, toDrain.amount); | ||||
|                         FluidStack remainder = network.insertFluidTracked(toDrain, toDrain.getAmount()); | ||||
|  | ||||
|                         if (remainder != null) { | ||||
|                             toDrain.amount -= remainder.amount; | ||||
|                             toDrain.shrink(remainder.getAmount()); | ||||
|                         } | ||||
|  | ||||
|                         handler.drain(toDrain, true); | ||||
|                         handler.drain(toDrain, IFluidHandler.FluidAction.EXECUTE); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
| @@ -159,7 +159,7 @@ public class NetworkNodeImporter extends NetworkNode implements IComparable, IFi | ||||
|  | ||||
|         StackUtils.readItems(upgrades, 1, tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_COVERS)) { | ||||
|         if (tag.contains(NBT_COVERS)) { | ||||
|             coverManager.readFromNbt(tag.getList(NBT_COVERS, Constants.NBT.TAG_COMPOUND)); | ||||
|         } | ||||
|     } | ||||
| @@ -199,25 +199,23 @@ public class NetworkNodeImporter extends NetworkNode implements IComparable, IFi | ||||
|     public void readConfiguration(CompoundNBT tag) { | ||||
|         super.readConfiguration(tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_COMPARE)) { | ||||
|             compare = tag.getInteger(NBT_COMPARE); | ||||
|         if (tag.contains(NBT_COMPARE)) { | ||||
|             compare = tag.getInt(NBT_COMPARE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_MODE)) { | ||||
|             mode = tag.getInteger(NBT_MODE); | ||||
|         if (tag.contains(NBT_MODE)) { | ||||
|             mode = tag.getInt(NBT_MODE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_TYPE)) { | ||||
|             type = tag.getInteger(NBT_TYPE); | ||||
|         if (tag.contains(NBT_TYPE)) { | ||||
|             type = tag.getInt(NBT_TYPE); | ||||
|         } | ||||
|  | ||||
|         StackUtils.readItems(itemFilters, 0, tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_FLUID_FILTERS)) { | ||||
|         if (tag.contains(NBT_FLUID_FILTERS)) { | ||||
|             fluidFilters.readFromNbt(tag.getCompound(NBT_FLUID_FILTERS)); | ||||
|         } | ||||
|  | ||||
|         OneSixMigrationHelper.migrateEmptyWhitelistToEmptyBlacklist(version, this, itemFilters); | ||||
|     } | ||||
|  | ||||
|     public IItemHandler getUpgrades() { | ||||
| @@ -230,7 +228,7 @@ public class NetworkNodeImporter extends NetworkNode implements IComparable, IFi | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public boolean canConduct(@Nullable EnumFacing direction) { | ||||
|     public boolean canConduct(@Nullable Direction direction) { | ||||
|         return coverManager.canConduct(direction); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -16,7 +16,7 @@ import com.raoulvdberge.refinedstorage.tile.config.IType; | ||||
| import com.raoulvdberge.refinedstorage.util.StackUtils; | ||||
| import net.minecraft.item.ItemStack; | ||||
| import net.minecraft.nbt.CompoundNBT; | ||||
| import net.minecraft.util.EnumFacing; | ||||
| import net.minecraft.util.Direction; | ||||
| import net.minecraft.util.math.BlockPos; | ||||
| import net.minecraft.world.World; | ||||
| import net.minecraftforge.items.IItemHandler; | ||||
| @@ -36,7 +36,7 @@ public class NetworkNodeInterface extends NetworkNode implements IComparable { | ||||
|  | ||||
|     private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK, ItemUpgrade.TYPE_CRAFTING); | ||||
|  | ||||
|     private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; | ||||
|     private int compare = IComparer.COMPARE_NBT; | ||||
|  | ||||
|     private int currentSlot = 0; | ||||
|  | ||||
| @@ -135,7 +135,7 @@ public class NetworkNodeInterface extends NetworkNode implements IComparable { | ||||
|     } | ||||
|  | ||||
|     private boolean isActingAsStorage() { | ||||
|         for (EnumFacing facing : EnumFacing.VALUES) { | ||||
|         for (Direction facing : Direction.values()) { | ||||
|             INetworkNode facingNode = API.instance().getNetworkNodeManager(world).getNode(pos.offset(facing)); | ||||
|  | ||||
|             if (facingNode instanceof NetworkNodeExternalStorage && | ||||
| @@ -203,8 +203,8 @@ public class NetworkNodeInterface extends NetworkNode implements IComparable { | ||||
|  | ||||
|         StackUtils.readItems(exportFilterItems, 1, tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_COMPARE)) { | ||||
|             compare = tag.getInteger(NBT_COMPARE); | ||||
|         if (tag.contains(NBT_COMPARE)) { | ||||
|             compare = tag.getInt(NBT_COMPARE); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -100,7 +100,7 @@ public class NetworkNodeNetworkTransmitter extends NetworkNode { | ||||
|     } | ||||
|  | ||||
|     public boolean isSameDimension() { | ||||
|         return world.provider.getDimension() == receiverDimension; | ||||
|         return world.getDimension().getType().getId() == receiverDimension; | ||||
|     } | ||||
|  | ||||
|     private boolean canTransmit() { | ||||
| @@ -123,11 +123,12 @@ public class NetworkNodeNetworkTransmitter extends NetworkNode { | ||||
|  | ||||
|         if (canTransmit()) { | ||||
|             if (!isSameDimension()) { | ||||
|                 final World dimensionWorld = DimensionManager.getWorld(receiverDimension); | ||||
|  | ||||
|                 if (dimensionWorld != null) { | ||||
|                     operator.apply(dimensionWorld, receiver, null); | ||||
|                 } | ||||
| // TODO                final World dimensionWorld = DimensionManager.getWorld(receiverDimension); | ||||
|  | ||||
|        //         if (dimensionWorld != null) { | ||||
|          //           operator.apply(dimensionWorld, receiver, null); | ||||
|            //     } | ||||
|             } else { | ||||
|                 operator.apply(world, receiver, null); | ||||
|             } | ||||
|   | ||||
| @@ -6,7 +6,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.network.node.cover.CoverManager; | ||||
| import com.raoulvdberge.refinedstorage.tile.TileReader; | ||||
| import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; | ||||
| import net.minecraft.nbt.CompoundNBT; | ||||
| import net.minecraft.util.EnumFacing; | ||||
| import net.minecraft.util.Direction; | ||||
| import net.minecraft.util.math.BlockPos; | ||||
| import net.minecraft.world.World; | ||||
| import net.minecraftforge.common.util.Constants; | ||||
| @@ -71,11 +71,11 @@ public class NetworkNodeReader extends NetworkNode implements IReader, IGuiReade | ||||
|     public void read(CompoundNBT tag) { | ||||
|         super.read(tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_CHANNEL)) { | ||||
|         if (tag.contains(NBT_CHANNEL)) { | ||||
|             channel = tag.getString(NBT_CHANNEL); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_COVERS)) { | ||||
|         if (tag.contains(NBT_COVERS)) { | ||||
|             coverManager.readFromNbt(tag.getList(NBT_COVERS, Constants.NBT.TAG_COMPOUND)); | ||||
|         } | ||||
|     } | ||||
| @@ -89,7 +89,7 @@ public class NetworkNodeReader extends NetworkNode implements IReader, IGuiReade | ||||
|     public CompoundNBT write(CompoundNBT tag) { | ||||
|         super.write(tag); | ||||
|  | ||||
|         tag.setString(NBT_CHANNEL, channel); | ||||
|         tag.putString(NBT_CHANNEL, channel); | ||||
|  | ||||
|         tag.put(NBT_COVERS, coverManager.writeToNbt()); | ||||
|  | ||||
| @@ -97,7 +97,7 @@ public class NetworkNodeReader extends NetworkNode implements IReader, IGuiReade | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public boolean canConduct(@Nullable EnumFacing direction) { | ||||
|     public boolean canConduct(@Nullable Direction direction) { | ||||
|         return coverManager.canConduct(direction); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -2,7 +2,7 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node; | ||||
|  | ||||
| import com.raoulvdberge.refinedstorage.RS; | ||||
| import com.raoulvdberge.refinedstorage.tile.config.RedstoneMode; | ||||
| import net.minecraft.util.EnumFacing; | ||||
| import net.minecraft.util.Direction; | ||||
| import net.minecraft.util.math.BlockPos; | ||||
| import net.minecraft.world.World; | ||||
|  | ||||
| @@ -38,7 +38,7 @@ public class NetworkNodeRelay extends NetworkNode { | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public boolean canConduct(@Nullable EnumFacing direction) { | ||||
|     public boolean canConduct(@Nullable Direction direction) { | ||||
|         return canUpdate(); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -15,7 +15,7 @@ import net.minecraft.inventory.InventoryHelper; | ||||
| import net.minecraft.item.ItemStack; | ||||
| import net.minecraft.nbt.CompoundNBT; | ||||
| import net.minecraft.server.MinecraftServer; | ||||
| import net.minecraft.util.EnumFacing; | ||||
| import net.minecraft.util.Direction; | ||||
| import net.minecraft.util.math.BlockPos; | ||||
| import net.minecraft.world.World; | ||||
| import org.apache.commons.lang3.tuple.Pair; | ||||
| @@ -41,7 +41,7 @@ public class NetworkNodeStorageMonitor extends NetworkNode implements IComparabl | ||||
|  | ||||
|     private Map<String, Pair<ItemStack, Long>> deposits = new HashMap<>(); | ||||
|  | ||||
|     private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; | ||||
|     private int compare = IComparer.COMPARE_NBT; | ||||
|  | ||||
|     private int oldAmount = -1; | ||||
|  | ||||
| @@ -82,7 +82,7 @@ public class NetworkNodeStorageMonitor extends NetworkNode implements IComparabl | ||||
|         ItemStack inserted = deposit.getKey(); | ||||
|         long insertedAt = deposit.getValue(); | ||||
|  | ||||
|         if (MinecraftServer.getCurrentTimeMillis() - insertedAt < DEPOSIT_ALL_MAX_DELAY) { | ||||
|         if (System.currentTimeMillis() - insertedAt < DEPOSIT_ALL_MAX_DELAY) { | ||||
|             for (int i = 0; i < player.inventory.getSizeInventory(); ++i) { | ||||
|                 ItemStack toInsert = player.inventory.getStackInSlot(i); | ||||
|  | ||||
| @@ -109,13 +109,13 @@ public class NetworkNodeStorageMonitor extends NetworkNode implements IComparabl | ||||
|         if (!filter.isEmpty() && API.instance().getComparer().isEqual(filter, toInsert, compare)) { | ||||
|             player.inventory.setInventorySlotContents(player.inventory.currentItem, StackUtils.nullToEmpty(network.insertItemTracked(toInsert, toInsert.getCount()))); | ||||
|  | ||||
|             deposits.put(player.getGameProfile().getName(), Pair.of(toInsert, MinecraftServer.getCurrentTimeMillis())); | ||||
|             deposits.put(player.getGameProfile().getName(), Pair.of(toInsert, System.currentTimeMillis())); | ||||
|         } | ||||
|  | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     public void extract(PlayerEntity player, EnumFacing side) { | ||||
|     public void extract(PlayerEntity player, Direction side) { | ||||
|         if (network == null || getDirection() != side) { | ||||
|             return; | ||||
|         } | ||||
| @@ -178,8 +178,8 @@ public class NetworkNodeStorageMonitor extends NetworkNode implements IComparabl | ||||
|     public void readConfiguration(CompoundNBT tag) { | ||||
|         super.readConfiguration(tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_COMPARE)) { | ||||
|             compare = tag.getInteger(NBT_COMPARE); | ||||
|         if (tag.contains(NBT_COMPARE)) { | ||||
|             compare = tag.getInt(NBT_COMPARE); | ||||
|         } | ||||
|  | ||||
|         StackUtils.readItems(itemFilter, 0, tag); | ||||
|   | ||||
| @@ -8,7 +8,7 @@ import com.raoulvdberge.refinedstorage.inventory.listener.ListenerNetworkNode; | ||||
| import com.raoulvdberge.refinedstorage.item.ItemUpgrade; | ||||
| import com.raoulvdberge.refinedstorage.util.StackUtils; | ||||
| import net.minecraft.nbt.CompoundNBT; | ||||
| import net.minecraft.util.EnumFacing; | ||||
| import net.minecraft.util.Direction; | ||||
| import net.minecraft.util.math.BlockPos; | ||||
| import net.minecraft.world.World; | ||||
| import net.minecraftforge.items.IItemHandler; | ||||
| @@ -62,7 +62,7 @@ public class NetworkNodeWirelessTransmitter extends NetworkNode implements IWire | ||||
|  | ||||
|     @Override | ||||
|     public int getDimension() { | ||||
|         return world.provider.getDimension(); | ||||
|         return world.getDimension().getType().getId(); | ||||
|     } | ||||
|  | ||||
|     public ItemHandlerBase getUpgrades() { | ||||
| @@ -75,8 +75,8 @@ public class NetworkNodeWirelessTransmitter extends NetworkNode implements IWire | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public boolean canConduct(@Nullable EnumFacing direction) { | ||||
|         return direction != null && EnumFacing.DOWN.equals(direction); | ||||
|     public boolean canConduct(@Nullable Direction direction) { | ||||
|         return direction != null && Direction.DOWN.equals(direction); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @@ -86,6 +86,6 @@ public class NetworkNodeWirelessTransmitter extends NetworkNode implements IWire | ||||
|  | ||||
|     @Override | ||||
|     public void visit(Operator operator) { | ||||
|         operator.apply(world, pos.offset(EnumFacing.DOWN), EnumFacing.UP); | ||||
|         operator.apply(world, pos.offset(Direction.DOWN), Direction.UP); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -9,7 +9,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.network.node.cover.CoverManager; | ||||
| import com.raoulvdberge.refinedstorage.tile.TileWriter; | ||||
| import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; | ||||
| import net.minecraft.nbt.CompoundNBT; | ||||
| import net.minecraft.util.EnumFacing; | ||||
| import net.minecraft.util.Direction; | ||||
| import net.minecraft.util.math.BlockPos; | ||||
| import net.minecraft.world.World; | ||||
| import net.minecraftforge.common.util.Constants; | ||||
| @@ -45,7 +45,7 @@ public class NetworkNodeWriter extends NetworkNode implements IWriter, IGuiReade | ||||
|         if (getRedstoneStrength() != lastRedstoneStrength) { | ||||
|             lastRedstoneStrength = getRedstoneStrength(); | ||||
|  | ||||
|             world.notifyNeighborsOfStateChange(pos, RSBlocks.WRITER, true); | ||||
|             world.notifyNeighborsOfStateChange(pos, RSBlocks.WRITER); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -103,11 +103,11 @@ public class NetworkNodeWriter extends NetworkNode implements IWriter, IGuiReade | ||||
|     public void read(CompoundNBT tag) { | ||||
|         super.read(tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_CHANNEL)) { | ||||
|         if (tag.contains(NBT_CHANNEL)) { | ||||
|             channel = tag.getString(NBT_CHANNEL); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_COVERS)) { | ||||
|         if (tag.contains(NBT_COVERS)) { | ||||
|             coverManager.readFromNbt(tag.getList(NBT_COVERS, Constants.NBT.TAG_COMPOUND)); | ||||
|         } | ||||
|     } | ||||
| @@ -121,7 +121,7 @@ public class NetworkNodeWriter extends NetworkNode implements IWriter, IGuiReade | ||||
|     public CompoundNBT write(CompoundNBT tag) { | ||||
|         super.write(tag); | ||||
|  | ||||
|         tag.setString(NBT_CHANNEL, channel); | ||||
|         tag.putString(NBT_CHANNEL, channel); | ||||
|  | ||||
|         tag.put(NBT_COVERS, coverManager.writeToNbt()); | ||||
|  | ||||
| @@ -129,7 +129,7 @@ public class NetworkNodeWriter extends NetworkNode implements IWriter, IGuiReade | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public boolean canConduct(@Nullable EnumFacing direction) { | ||||
|     public boolean canConduct(@Nullable Direction direction) { | ||||
|         return coverManager.canConduct(direction); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -10,13 +10,14 @@ import com.raoulvdberge.refinedstorage.item.ItemCover; | ||||
| import net.minecraft.block.Block; | ||||
| import net.minecraft.block.BlockGlass; | ||||
| import net.minecraft.block.BlockStainedGlass; | ||||
| import net.minecraft.block.BlockState; | ||||
| import net.minecraft.block.state.IBlockState; | ||||
| import net.minecraft.init.Blocks; | ||||
| import net.minecraft.item.ItemStack; | ||||
| import net.minecraft.nbt.CompoundNBT; | ||||
| import net.minecraft.nbt.ListNBT; | ||||
| import net.minecraft.util.EnumBlockRenderType; | ||||
| import net.minecraft.util.EnumFacing; | ||||
| import net.minecraft.util.Direction; | ||||
| import net.minecraftforge.common.property.IExtendedBlockState; | ||||
| import net.minecraftforge.items.IItemHandlerModifiable; | ||||
| import net.minecraftforge.items.ItemStackHandler; | ||||
| @@ -30,14 +31,14 @@ public class CoverManager { | ||||
|     private static final String NBT_ITEM = "Item"; | ||||
|     private static final String NBT_TYPE = "Type"; | ||||
|  | ||||
|     private Map<EnumFacing, Cover> covers = new HashMap<>(); | ||||
|     private Map<Direction, Cover> covers = new HashMap<>(); | ||||
|     private NetworkNode node; | ||||
|  | ||||
|     public CoverManager(NetworkNode node) { | ||||
|         this.node = node; | ||||
|     } | ||||
|  | ||||
|     public boolean canConduct(EnumFacing direction) { | ||||
|     public boolean canConduct(Direction direction) { | ||||
|         Cover cover = getCover(direction); | ||||
|         if (cover != null && cover.getType() != CoverType.HOLLOW) { | ||||
|             return false; | ||||
| @@ -56,15 +57,15 @@ public class CoverManager { | ||||
|     } | ||||
|  | ||||
|     @Nullable | ||||
|     public Cover getCover(EnumFacing facing) { | ||||
|     public Cover getCover(Direction facing) { | ||||
|         return covers.get(facing); | ||||
|     } | ||||
|  | ||||
|     public boolean hasCover(EnumFacing facing) { | ||||
|     public boolean hasCover(Direction facing) { | ||||
|         return covers.containsKey(facing); | ||||
|     } | ||||
|  | ||||
|     public boolean setCover(EnumFacing facing, @Nullable Cover cover) { | ||||
|     public boolean setCover(Direction facing, @Nullable Cover cover) { | ||||
|         if (cover == null || (isValidCover(cover.getStack()) && !hasCover(facing))) { | ||||
|             if (cover != null) { | ||||
|                 if (facing == node.getDirection() && !(node instanceof NetworkNodeCable) && cover.getType() != CoverType.HOLLOW) { | ||||
| @@ -96,10 +97,10 @@ public class CoverManager { | ||||
|         for (int i = 0; i < list.size(); ++i) { | ||||
|             CompoundNBT tag = list.getCompound(i); | ||||
|  | ||||
|             if (tag.hasKey(NBT_DIRECTION) && tag.hasKey(NBT_ITEM)) { | ||||
|                 EnumFacing direction = EnumFacing.byIndex(tag.getInteger(NBT_DIRECTION)); | ||||
|                 ItemStack item = new ItemStack(tag.getCompound(NBT_ITEM)); | ||||
|                 int type = tag.hasKey(NBT_TYPE) ? tag.getInteger(NBT_TYPE) : 0; | ||||
|             if (tag.contains(NBT_DIRECTION) && tag.contains(NBT_ITEM)) { | ||||
|                 Direction direction = Direction.byIndex(tag.getInt(NBT_DIRECTION)); | ||||
|                 ItemStack item = ItemStack.read(tag.getCompound(NBT_ITEM)); | ||||
|                 int type = tag.contains(NBT_TYPE) ? tag.getInt(NBT_TYPE) : 0; | ||||
|  | ||||
|                 if (type >= CoverType.values().length) { | ||||
|                     type = 0; | ||||
| @@ -115,7 +116,7 @@ public class CoverManager { | ||||
|     public ListNBT writeToNbt() { | ||||
|         ListNBT list = new ListNBT(); | ||||
|  | ||||
|         for (Map.Entry<EnumFacing, Cover> entry : covers.entrySet()) { | ||||
|         for (Map.Entry<Direction, Cover> entry : covers.entrySet()) { | ||||
|             CompoundNBT tag = new CompoundNBT(); | ||||
|  | ||||
|             tag.putInt(NBT_DIRECTION, entry.getKey().ordinal()); | ||||
| @@ -133,7 +134,7 @@ public class CoverManager { | ||||
|  | ||||
|         int i = 0; | ||||
|  | ||||
|         for (Map.Entry<EnumFacing, Cover> entry : covers.entrySet()) { | ||||
|         for (Map.Entry<Direction, Cover> entry : covers.entrySet()) { | ||||
|             ItemStack cover = entry.getValue().getType().createStack(); | ||||
|  | ||||
|             ItemCover.setItem(cover, entry.getValue().getStack()); | ||||
| @@ -152,7 +153,7 @@ public class CoverManager { | ||||
|  | ||||
|         Block block = getBlock(item); | ||||
|  | ||||
|         IBlockState state = getBlockState(item); | ||||
|         BlockState state = getBlockState(item); | ||||
|  | ||||
|         return block != null && state != null && ((isModelSupported(state) && block.isTopSolid(state) && !block.getTickRandomly() && !block.hasTileEntity(state)) || block instanceof BlockGlass || block instanceof BlockStainedGlass); | ||||
|     } | ||||
| @@ -182,7 +183,7 @@ public class CoverManager { | ||||
|  | ||||
|     @Nullable | ||||
|     @SuppressWarnings("deprecation") | ||||
|     public static IBlockState getBlockState(@Nullable ItemStack item) { | ||||
|     public static BlockState getBlockState(@Nullable ItemStack item) { | ||||
|         Block block = getBlock(item); | ||||
|  | ||||
|         if (block == null) { | ||||
|   | ||||
| @@ -9,12 +9,10 @@ import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDisk; | ||||
| import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskContainerContext; | ||||
| import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskProvider; | ||||
| import com.raoulvdberge.refinedstorage.api.util.IComparer; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.API; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.network.node.IGuiStorage; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageCacheFluid; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageCacheItem; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.util.OneSixMigrationHelper; | ||||
| import com.raoulvdberge.refinedstorage.inventory.fluid.FluidInventory; | ||||
| import com.raoulvdberge.refinedstorage.inventory.item.ItemHandlerBase; | ||||
| import com.raoulvdberge.refinedstorage.inventory.listener.ListenerNetworkNode; | ||||
| @@ -29,8 +27,8 @@ import net.minecraft.nbt.CompoundNBT; | ||||
| import net.minecraft.util.math.BlockPos; | ||||
| import net.minecraft.world.World; | ||||
| import net.minecraftforge.fluids.FluidStack; | ||||
| import net.minecraftforge.fml.common.FMLCommonHandler; | ||||
| import net.minecraftforge.fml.relauncher.Side; | ||||
| import net.minecraftforge.fml.LogicalSide; | ||||
| import net.minecraftforge.fml.common.thread.EffectiveSide; | ||||
| import net.minecraftforge.items.IItemHandler; | ||||
| import net.minecraftforge.items.IItemHandlerModifiable; | ||||
|  | ||||
| @@ -58,7 +56,7 @@ public class NetworkNodeDiskDrive extends NetworkNode implements IGuiStorage, IS | ||||
|         protected void onContentsChanged(int slot) { | ||||
|             super.onContentsChanged(slot); | ||||
|  | ||||
|             if (FMLCommonHandler.instance().getEffectiveSide() == Side.SERVER) { | ||||
|             if (EffectiveSide.get() == LogicalSide.SERVER) { // TODO : correct? | ||||
|                 StackUtils.createStorages( | ||||
|                     world, | ||||
|                     getStackInSlot(slot), | ||||
| @@ -87,7 +85,7 @@ public class NetworkNodeDiskDrive extends NetworkNode implements IGuiStorage, IS | ||||
|  | ||||
|     private AccessType accessType = AccessType.INSERT_EXTRACT; | ||||
|     private int priority = 0; | ||||
|     private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; | ||||
|     private int compare = IComparer.COMPARE_NBT; | ||||
|     private int mode = IFilterable.BLACKLIST; | ||||
|     private int type = IType.ITEMS; | ||||
|  | ||||
| @@ -176,10 +174,6 @@ public class NetworkNodeDiskDrive extends NetworkNode implements IGuiStorage, IS | ||||
|         super.read(tag); | ||||
|  | ||||
|         StackUtils.readItems(disks, 0, tag); | ||||
|  | ||||
|         if (API.instance().getOneSixMigrationHelper().migrateDiskInventory(world, disks)) { | ||||
|             markDirty(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @@ -219,29 +213,27 @@ public class NetworkNodeDiskDrive extends NetworkNode implements IGuiStorage, IS | ||||
|  | ||||
|         StackUtils.readItems(itemFilters, 1, tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_FLUID_FILTERS)) { | ||||
|         if (tag.contains(NBT_FLUID_FILTERS)) { | ||||
|             fluidFilters.readFromNbt(tag.getCompound(NBT_FLUID_FILTERS)); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_PRIORITY)) { | ||||
|             priority = tag.getInteger(NBT_PRIORITY); | ||||
|         if (tag.contains(NBT_PRIORITY)) { | ||||
|             priority = tag.getInt(NBT_PRIORITY); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_COMPARE)) { | ||||
|             compare = tag.getInteger(NBT_COMPARE); | ||||
|         if (tag.contains(NBT_COMPARE)) { | ||||
|             compare = tag.getInt(NBT_COMPARE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_MODE)) { | ||||
|             mode = tag.getInteger(NBT_MODE); | ||||
|         if (tag.contains(NBT_MODE)) { | ||||
|             mode = tag.getInt(NBT_MODE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_TYPE)) { | ||||
|             type = tag.getInteger(NBT_TYPE); | ||||
|         if (tag.contains(NBT_TYPE)) { | ||||
|             type = tag.getInt(NBT_TYPE); | ||||
|         } | ||||
|  | ||||
|         accessType = AccessTypeUtils.readAccessType(tag); | ||||
|  | ||||
|         OneSixMigrationHelper.migrateEmptyWhitelistToEmptyBlacklist(version, this, itemFilters); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|   | ||||
| @@ -6,10 +6,8 @@ import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDisk; | ||||
| import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskContainerContext; | ||||
| import com.raoulvdberge.refinedstorage.api.util.Action; | ||||
| import com.raoulvdberge.refinedstorage.api.util.IComparer; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.API; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.network.node.diskdrive.NetworkNodeDiskDrive; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.util.OneSixMigrationHelper; | ||||
| import com.raoulvdberge.refinedstorage.inventory.fluid.FluidInventory; | ||||
| import com.raoulvdberge.refinedstorage.inventory.item.ItemHandlerBase; | ||||
| import com.raoulvdberge.refinedstorage.inventory.item.ItemHandlerProxy; | ||||
| @@ -26,10 +24,10 @@ import net.minecraft.item.ItemStack; | ||||
| import net.minecraft.nbt.CompoundNBT; | ||||
| import net.minecraft.util.math.BlockPos; | ||||
| import net.minecraft.world.World; | ||||
| import net.minecraftforge.fluids.Fluid; | ||||
| import net.minecraftforge.fluids.FluidAttributes; | ||||
| import net.minecraftforge.fluids.FluidStack; | ||||
| import net.minecraftforge.fml.common.FMLCommonHandler; | ||||
| import net.minecraftforge.fml.relauncher.Side; | ||||
| import net.minecraftforge.fml.LogicalSide; | ||||
| import net.minecraftforge.fml.common.thread.EffectiveSide; | ||||
| import net.minecraftforge.items.IItemHandler; | ||||
| import net.minecraftforge.items.IItemHandlerModifiable; | ||||
| import net.minecraftforge.items.wrapper.CombinedInvWrapper; | ||||
| @@ -49,7 +47,7 @@ public class NetworkNodeDiskManipulator extends NetworkNode implements IComparab | ||||
|     private static final String NBT_IO_MODE = "IOMode"; | ||||
|     private static final String NBT_FLUID_FILTERS = "FluidFilters"; | ||||
|  | ||||
|     private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; | ||||
|     private int compare = IComparer.COMPARE_NBT; | ||||
|     private int mode = IFilterable.BLACKLIST; | ||||
|     private int type = IType.ITEMS; | ||||
|     private int ioMode = IO_MODE_INSERT; | ||||
| @@ -63,7 +61,7 @@ public class NetworkNodeDiskManipulator extends NetworkNode implements IComparab | ||||
|             int count = super.getItemInteractCount(); | ||||
|  | ||||
|             if (type == IType.FLUIDS) { | ||||
|                 count *= Fluid.BUCKET_VOLUME; | ||||
|                 count *= FluidAttributes.BUCKET_VOLUME; | ||||
|             } | ||||
|  | ||||
|             return count; | ||||
| @@ -75,7 +73,7 @@ public class NetworkNodeDiskManipulator extends NetworkNode implements IComparab | ||||
|         protected void onContentsChanged(int slot) { | ||||
|             super.onContentsChanged(slot); | ||||
|  | ||||
|             if (FMLCommonHandler.instance().getEffectiveSide() == Side.SERVER) { | ||||
|             if (EffectiveSide.get() == LogicalSide.SERVER) { // TODO: correct? | ||||
|                 StackUtils.createStorages( | ||||
|                     world, | ||||
|                     getStackInSlot(slot), | ||||
| @@ -96,7 +94,7 @@ public class NetworkNodeDiskManipulator extends NetworkNode implements IComparab | ||||
|         protected void onContentsChanged(int slot) { | ||||
|             super.onContentsChanged(slot); | ||||
|  | ||||
|             if (FMLCommonHandler.instance().getEffectiveSide() == Side.SERVER) { | ||||
|             if (EffectiveSide.get() == LogicalSide.SERVER) { // TODO: correct? | ||||
|                 StackUtils.createStorages( | ||||
|                     world, | ||||
|                     getStackInSlot(slot), | ||||
| @@ -288,10 +286,10 @@ public class NetworkNodeDiskManipulator extends NetworkNode implements IComparab | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         FluidStack remainder = network.insertFluid(extracted, extracted.amount, Action.PERFORM); | ||||
|         FluidStack remainder = network.insertFluid(extracted, extracted.getAmount(), Action.PERFORM); | ||||
|  | ||||
|         if (remainder != null) { | ||||
|             storage.insert(remainder, remainder.amount, Action.PERFORM); | ||||
|             storage.insert(remainder, remainder.getAmount(), Action.PERFORM); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -319,7 +317,7 @@ public class NetworkNodeDiskManipulator extends NetworkNode implements IComparab | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             FluidStack remainder = network.insertFluid(extracted, extracted.amount, Action.SIMULATE); | ||||
|             FluidStack remainder = network.insertFluid(extracted, extracted.getAmount(), Action.SIMULATE); | ||||
|             if (remainder == null) { // A fluid could be inserted (no remainders when trying to). This disk isn't done. | ||||
|                 return false; | ||||
|             } | ||||
| @@ -337,7 +335,7 @@ public class NetworkNodeDiskManipulator extends NetworkNode implements IComparab | ||||
|  | ||||
|             int j = 0; | ||||
|  | ||||
|             while ((toExtract == null || toExtract.amount == 0) && j < networkFluids.size()) { | ||||
|             while ((toExtract == null || toExtract.getAmount() == 0) && j < networkFluids.size()) { | ||||
|                 toExtract = networkFluids.get(j++); | ||||
|             } | ||||
|  | ||||
| @@ -363,10 +361,10 @@ public class NetworkNodeDiskManipulator extends NetworkNode implements IComparab | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         FluidStack remainder = storage.insert(extracted, extracted.amount, Action.PERFORM); | ||||
|         FluidStack remainder = storage.insert(extracted, extracted.getAmount(), Action.PERFORM); | ||||
|  | ||||
|         if (remainder != null) { | ||||
|             network.insertFluid(remainder, remainder.amount, Action.PERFORM); | ||||
|             network.insertFluid(remainder, remainder.getAmount(), Action.PERFORM); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -466,14 +464,6 @@ public class NetworkNodeDiskManipulator extends NetworkNode implements IComparab | ||||
|         StackUtils.readItems(upgrades, 3, tag); | ||||
|         StackUtils.readItems(inputDisks, 4, tag); | ||||
|         StackUtils.readItems(outputDisks, 5, tag); | ||||
|  | ||||
|         if (API.instance().getOneSixMigrationHelper().migrateDiskInventory(world, inputDisks)) { | ||||
|             markDirty(); | ||||
|         } | ||||
|  | ||||
|         if (API.instance().getOneSixMigrationHelper().migrateDiskInventory(world, outputDisks)) { | ||||
|             markDirty(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @@ -513,27 +503,25 @@ public class NetworkNodeDiskManipulator extends NetworkNode implements IComparab | ||||
|  | ||||
|         StackUtils.readItems(itemFilters, 1, tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_FLUID_FILTERS)) { | ||||
|         if (tag.contains(NBT_FLUID_FILTERS)) { | ||||
|             fluidFilters.readFromNbt(tag.getCompound(NBT_FLUID_FILTERS)); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_COMPARE)) { | ||||
|             compare = tag.getInteger(NBT_COMPARE); | ||||
|         if (tag.contains(NBT_COMPARE)) { | ||||
|             compare = tag.getInt(NBT_COMPARE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_MODE)) { | ||||
|             mode = tag.getInteger(NBT_MODE); | ||||
|         if (tag.contains(NBT_MODE)) { | ||||
|             mode = tag.getInt(NBT_MODE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_TYPE)) { | ||||
|             type = tag.getInteger(NBT_TYPE); | ||||
|         if (tag.contains(NBT_TYPE)) { | ||||
|             type = tag.getInt(NBT_TYPE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_IO_MODE)) { | ||||
|             ioMode = tag.getInteger(NBT_IO_MODE); | ||||
|         if (tag.contains(NBT_IO_MODE)) { | ||||
|             ioMode = tag.getInt(NBT_IO_MODE); | ||||
|         } | ||||
|  | ||||
|         OneSixMigrationHelper.migrateEmptyWhitelistToEmptyBlacklist(version, this, itemFilters); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|   | ||||
| @@ -13,7 +13,6 @@ import com.raoulvdberge.refinedstorage.apiimpl.API; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.network.node.IGuiStorage; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageCacheFluid; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.util.OneSixMigrationHelper; | ||||
| import com.raoulvdberge.refinedstorage.block.BlockFluidStorage; | ||||
| import com.raoulvdberge.refinedstorage.block.enums.FluidStorageType; | ||||
| import com.raoulvdberge.refinedstorage.inventory.fluid.FluidInventory; | ||||
| @@ -25,7 +24,7 @@ import com.raoulvdberge.refinedstorage.tile.config.IFilterable; | ||||
| import com.raoulvdberge.refinedstorage.tile.config.IPrioritizable; | ||||
| import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; | ||||
| import com.raoulvdberge.refinedstorage.util.AccessTypeUtils; | ||||
| import net.minecraft.block.state.IBlockState; | ||||
| import net.minecraft.block.BlockState; | ||||
| import net.minecraft.item.ItemStack; | ||||
| import net.minecraft.nbt.CompoundNBT; | ||||
| import net.minecraft.util.math.BlockPos; | ||||
| @@ -95,7 +94,7 @@ public class NetworkNodeFluidStorage extends NetworkNode implements IGuiStorage, | ||||
|     public CompoundNBT write(CompoundNBT tag) { | ||||
|         super.write(tag); | ||||
|  | ||||
|         tag.setUniqueId(NBT_ID, storageId); | ||||
|         tag.putUniqueId(NBT_ID, storageId); | ||||
|  | ||||
|         return tag; | ||||
|     } | ||||
| @@ -109,8 +108,6 @@ public class NetworkNodeFluidStorage extends NetworkNode implements IGuiStorage, | ||||
|  | ||||
|             loadStorage(); | ||||
|         } | ||||
|  | ||||
|         OneSixMigrationHelper.migrateFluidStorageBlock(this, tag); | ||||
|     } | ||||
|  | ||||
|     public void loadStorage() { | ||||
| @@ -156,32 +153,31 @@ public class NetworkNodeFluidStorage extends NetworkNode implements IGuiStorage, | ||||
|     public void readConfiguration(CompoundNBT tag) { | ||||
|         super.readConfiguration(tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_FILTERS)) { | ||||
|         if (tag.contains(NBT_FILTERS)) { | ||||
|             filters.readFromNbt(tag.getCompound(NBT_FILTERS)); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_PRIORITY)) { | ||||
|             priority = tag.getInteger(NBT_PRIORITY); | ||||
|         if (tag.contains(NBT_PRIORITY)) { | ||||
|             priority = tag.getInt(NBT_PRIORITY); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_COMPARE)) { | ||||
|             compare = tag.getInteger(NBT_COMPARE); | ||||
|         if (tag.contains(NBT_COMPARE)) { | ||||
|             compare = tag.getInt(NBT_COMPARE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_MODE)) { | ||||
|             mode = tag.getInteger(NBT_MODE); | ||||
|         if (tag.contains(NBT_MODE)) { | ||||
|             mode = tag.getInt(NBT_MODE); | ||||
|         } | ||||
|  | ||||
|         accessType = AccessTypeUtils.readAccessType(tag); | ||||
|  | ||||
|         OneSixMigrationHelper.migrateEmptyWhitelistToEmptyBlacklist(version, this, null); | ||||
|     } | ||||
|  | ||||
|     public FluidStorageType getType() { | ||||
|         if (type == null && world != null) { | ||||
|             IBlockState state = world.getBlockState(pos); | ||||
|             BlockState state = world.getBlockState(pos); | ||||
|  | ||||
|             if (state.getBlock() == RSBlocks.FLUID_STORAGE) { | ||||
|                 type = (FluidStorageType) state.getValue(BlockFluidStorage.TYPE); | ||||
|                 type = state.get(BlockFluidStorage.TYPE); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|   | ||||
| @@ -13,7 +13,6 @@ import com.raoulvdberge.refinedstorage.apiimpl.API; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.network.node.IGuiStorage; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageCacheItem; | ||||
| import com.raoulvdberge.refinedstorage.apiimpl.util.OneSixMigrationHelper; | ||||
| import com.raoulvdberge.refinedstorage.block.BlockStorage; | ||||
| import com.raoulvdberge.refinedstorage.block.enums.ItemStorageType; | ||||
| import com.raoulvdberge.refinedstorage.inventory.item.ItemHandlerBase; | ||||
| @@ -26,7 +25,7 @@ import com.raoulvdberge.refinedstorage.tile.config.IPrioritizable; | ||||
| import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; | ||||
| import com.raoulvdberge.refinedstorage.util.AccessTypeUtils; | ||||
| import com.raoulvdberge.refinedstorage.util.StackUtils; | ||||
| import net.minecraft.block.state.IBlockState; | ||||
| import net.minecraft.block.BlockState; | ||||
| import net.minecraft.item.ItemStack; | ||||
| import net.minecraft.nbt.CompoundNBT; | ||||
| import net.minecraft.util.math.BlockPos; | ||||
| @@ -50,7 +49,7 @@ public class NetworkNodeStorage extends NetworkNode implements IGuiStorage, ISto | ||||
|  | ||||
|     private AccessType accessType = AccessType.INSERT_EXTRACT; | ||||
|     private int priority = 0; | ||||
|     private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; | ||||
|     private int compare = IComparer.COMPARE_NBT; | ||||
|     private int mode = IFilterable.BLACKLIST; | ||||
|  | ||||
|     private UUID storageId = UUID.randomUUID(); | ||||
| @@ -95,7 +94,7 @@ public class NetworkNodeStorage extends NetworkNode implements IGuiStorage, ISto | ||||
|     public CompoundNBT write(CompoundNBT tag) { | ||||
|         super.write(tag); | ||||
|  | ||||
|         tag.setUniqueId(NBT_ID, storageId); | ||||
|         tag.putUniqueId(NBT_ID, storageId); | ||||
|  | ||||
|         return tag; | ||||
|     } | ||||
| @@ -109,8 +108,6 @@ public class NetworkNodeStorage extends NetworkNode implements IGuiStorage, ISto | ||||
|  | ||||
|             loadStorage(); | ||||
|         } | ||||
|  | ||||
|         OneSixMigrationHelper.migrateItemStorageBlock(this, tag); | ||||
|     } | ||||
|  | ||||
|     public void loadStorage() { | ||||
| @@ -159,28 +156,27 @@ public class NetworkNodeStorage extends NetworkNode implements IGuiStorage, ISto | ||||
|  | ||||
|         StackUtils.readItems(filters, 0, tag); | ||||
|  | ||||
|         if (tag.hasKey(NBT_PRIORITY)) { | ||||
|             priority = tag.getInteger(NBT_PRIORITY); | ||||
|         if (tag.contains(NBT_PRIORITY)) { | ||||
|             priority = tag.getInt(NBT_PRIORITY); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_COMPARE)) { | ||||
|             compare = tag.getInteger(NBT_COMPARE); | ||||
|         if (tag.contains(NBT_COMPARE)) { | ||||
|             compare = tag.getInt(NBT_COMPARE); | ||||
|         } | ||||
|  | ||||
|         if (tag.hasKey(NBT_MODE)) { | ||||
|             mode = tag.getInteger(NBT_MODE); | ||||
|         if (tag.contains(NBT_MODE)) { | ||||
|             mode = tag.getInt(NBT_MODE); | ||||
|         } | ||||
|  | ||||
|         accessType = AccessTypeUtils.readAccessType(tag); | ||||
|  | ||||
|         OneSixMigrationHelper.migrateEmptyWhitelistToEmptyBlacklist(version, this, filters); | ||||
|     } | ||||
|  | ||||
|     public ItemStorageType getType() { | ||||
|         if (type == null && world != null) { | ||||
|             IBlockState state = world.getBlockState(pos); | ||||
|             BlockState state = world.getBlockState(pos); | ||||
|  | ||||
|             if (state.getBlock() == RSBlocks.STORAGE) { | ||||
|                 type = (ItemStorageType) state.getValue(BlockStorage.TYPE); | ||||
|                 type = (ItemStorageType) state.get(BlockStorage.TYPE); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 raoulvdberge
					raoulvdberge