Fix regressions

This commit is contained in:
raoulvdberge
2019-09-12 16:31:50 +02:00
parent 2c0b9022b3
commit 8aaf2f67e8
38 changed files with 127 additions and 231 deletions

View File

@@ -1,7 +1,7 @@
package com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor;
import com.raoulvdberge.refinedstorage.api.render.IElementDrawers;
import io.netty.buffer.ByteBuf;
import net.minecraft.network.PacketBuffer;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@@ -39,7 +39,7 @@ public interface ICraftingMonitorElement {
*
* @param buf the buffer
*/
void write(ByteBuf buf);
void write(PacketBuffer buf);
/**
* Merge an element into the current element.

View File

@@ -156,7 +156,7 @@ public interface INetwork {
*/
@Nullable
default ItemStack extractItem(@Nonnull ItemStack stack, int size, Action action) {
return extractItem(stack, size, IComparer.COMPARE_DAMAGE | IComparer.COMPARE_NBT, action);
return extractItem(stack, size, IComparer.COMPARE_NBT, action);
}
/**

View File

@@ -12,23 +12,6 @@ import java.util.function.Consumer;
* Represents a graph of all the nodes connected to a network.
*/
public interface INetworkNodeGraph {
/**
* Rebuilds the network graph.
*
* @deprecated Use {@link #invalidate(Action, World, BlockPos)} - needed to support simulating the calculation of network connections
*/
@Deprecated
default void rebuild() {
invalidate(Action.PERFORM, getNetworkForBCReasons().world(), getNetworkForBCReasons().getPosition());
}
/**
* DON'T USE THIS!
* This method exists to support a default {@link #rebuild()} method to maintain backward compatibility.
*/
@Deprecated
INetwork getNetworkForBCReasons();
/**
* Rebuilds the network graph.
*

View File

@@ -48,7 +48,7 @@ public interface IStackList<T> {
*/
@Nullable
default T get(@Nonnull T stack) {
return get(stack, IComparer.COMPARE_DAMAGE | IComparer.COMPARE_NBT);
return get(stack, IComparer.COMPARE_NBT);
}
/**

View File

@@ -5,9 +5,8 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftin
import com.raoulvdberge.refinedstorage.api.render.IElementDrawers;
import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.util.RenderUtils;
import com.raoulvdberge.refinedstorage.util.StackUtils;
import io.netty.buffer.ByteBuf;
import net.minecraft.client.resources.I18n;
import net.minecraft.network.PacketBuffer;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.fluids.FluidStack;
@@ -104,8 +103,8 @@ public class CraftingMonitorElementFluidRender implements ICraftingMonitorElemen
}
@Override
public void write(ByteBuf buf) {
StackUtils.writeFluidStack(buf, stack);
public void write(PacketBuffer buf) {
stack.writeToPacket(buf);
buf.writeInt(stored);
buf.writeInt(missing);
buf.writeInt(processing);

View File

@@ -5,10 +5,9 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftin
import com.raoulvdberge.refinedstorage.api.render.IElementDrawers;
import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.util.RenderUtils;
import com.raoulvdberge.refinedstorage.util.StackUtils;
import io.netty.buffer.ByteBuf;
import net.minecraft.client.resources.I18n;
import net.minecraft.item.ItemStack;
import net.minecraft.network.PacketBuffer;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@@ -101,12 +100,12 @@ public class CraftingMonitorElementItemRender implements ICraftingMonitorElement
@Nullable
@Override
public String getTooltip() {
return RenderUtils.getItemTooltip(this.stack).stream().collect(Collectors.joining("\n"));
return RenderUtils.getItemTooltip(this.stack).stream().map(t -> t.getFormattedText()).collect(Collectors.joining("\n")); // TODO getFormattedText
}
@Override
public void write(ByteBuf buf) {
StackUtils.writeItemStack(buf, stack);
public void write(PacketBuffer buf) {
buf.writeItemStack(stack);
buf.writeInt(stored);
buf.writeInt(missing);
buf.writeInt(processing);

View File

@@ -67,7 +67,7 @@ public class CraftingPreviewElementError implements ICraftingPreviewElement<Item
CompoundNBT tag = buf.readCompoundTag();
ItemStack stack = new ItemStack(item, 1);
stack.put(tag);
stack.setTag(tag);
return new CraftingPreviewElementError(error, stack);
}

View File

@@ -55,7 +55,7 @@ public class CraftingPreviewElementItemStack implements ICraftingPreviewElement<
int toCraft = buf.readInt();
ItemStack stack = new ItemStack(item, 1);
stack.put(tag);
stack.setTag(tag);
return new CraftingPreviewElementItemStack(stack, available, missing, toCraft);
}

View File

@@ -7,7 +7,6 @@ import com.raoulvdberge.refinedstorage.api.network.INetworkNodeGraphListener;
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.util.OneSixMigrationHelper;
import com.raoulvdberge.refinedstorage.capability.CapabilityNetworkNodeProxy;
import net.minecraft.block.BlockState;
import net.minecraft.inventory.InventoryHelper;
@@ -81,14 +80,6 @@ public class NetworkNodeGraph implements INetworkNodeGraph {
this.invalidating = false;
}
@Override
@SuppressWarnings("deprecation")
public INetwork getNetworkForBCReasons() {
OneSixMigrationHelper.removalHook();
return network;
}
@Override
public void runActionWhenPossible(Consumer<INetwork> handler) {
if (invalidating) {

View File

@@ -8,38 +8,41 @@ import com.raoulvdberge.refinedstorage.capability.CapabilityNetworkNodeProxy;
import com.raoulvdberge.refinedstorage.util.WorldUtils;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.Direction;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
public class NetworkNodeListener {
@SubscribeEvent
public void onWorldTick(TickEvent.WorldTickEvent e) {
if (!e.world.isRemote) {
if (!e.world.isRemote()) {
if (e.phase == TickEvent.Phase.END) {
e.world.profiler.startSection("network node ticking");
e.world.getProfiler().startSection("network node ticking");
for (INetworkNode node : API.instance().getNetworkNodeManager(e.world).all()) {
node.update();
}
e.world.profiler.endSection();
e.world.getProfiler().endSection();
}
}
}
@SubscribeEvent
public void onBlockPlace(BlockEvent.EntityPlaceEvent e) {
if (!e.getWorld().isRemote && e.getEntity() instanceof PlayerEntity) {
if (!e.getWorld().isRemote() && e.getEntity() instanceof PlayerEntity) {
TileEntity placed = e.getWorld().getTileEntity(e.getPos());
if (placed != null && placed.hasCapability(CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY, null)) {
for (EnumFacing facing : EnumFacing.VALUES) {
if (placed != null) {
placed.getCapability(CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY).ifPresent(x -> {
for (Direction facing : Direction.values()) {
TileEntity side = e.getWorld().getTileEntity(e.getBlockSnapshot().getPos().offset(facing));
if (side != null && side.hasCapability(CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY, facing.getOpposite())) {
INetworkNodeProxy nodeProxy = side.getCapability(CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY, facing.getOpposite());
if (side != null) {
INetworkNodeProxy nodeProxy = side.getCapability(CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY, facing.getOpposite()).orElse(null);
if (nodeProxy != null) {
INetworkNode node = nodeProxy.getNode();
if (node.getNetwork() != null && !node.getNetwork().getSecurityManager().hasPermission(Permission.BUILD, (PlayerEntity) e.getEntity())) {
@@ -52,16 +55,18 @@ public class NetworkNodeListener {
}
}
}
});
}
}
}
@SubscribeEvent
public void onBlockBreak(BlockEvent.BreakEvent e) {
if (!e.getWorld().isRemote) {
if (!e.getWorld().isRemote()) {
TileEntity tile = e.getWorld().getTileEntity(e.getPos());
if (tile != null && tile.hasCapability(CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY, null)) {
INetworkNodeProxy nodeProxy = tile.getCapability(CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY, null);
if (tile != null) {
tile.getCapability(CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY).ifPresent(nodeProxy -> {
INetworkNode node = nodeProxy.getNode();
if (node.getNetwork() != null && !node.getNetwork().getSecurityManager().hasPermission(Permission.BUILD, e.getPlayer())) {
@@ -69,6 +74,7 @@ public class NetworkNodeListener {
e.setCanceled(true);
}
});
}
}
}

View File

@@ -33,8 +33,8 @@ public class NetworkNodeManager extends WorldSavedData implements INetworkNodeMa
}
@Override
public void readFromNBT(CompoundNBT tag) {
if (tag.hasKey(NBT_NODES)) {
public void read(CompoundNBT tag) {
if (tag.contains(NBT_NODES)) {
this.nodesTag = tag.getList(NBT_NODES, Constants.NBT.TAG_COMPOUND);
this.canReadNodes = true;
}
@@ -73,15 +73,15 @@ public class NetworkNodeManager extends WorldSavedData implements INetworkNodeMa
}
@Override
public CompoundNBT writeToNBT(CompoundNBT tag) {
public CompoundNBT write(CompoundNBT tag) {
ListNBT list = new ListNBT();
for (INetworkNode node : all()) {
try {
CompoundNBT nodeTag = new CompoundNBT();
nodeTag.setString(NBT_NODE_ID, node.getId());
nodeTag.setLong(NBT_NODE_POS, node.getPos().toLong());
nodeTag.putString(NBT_NODE_ID, node.getId());
nodeTag.putLong(NBT_NODE_POS, node.getPos().toLong());
nodeTag.put(NBT_NODE_DATA, node.write(new CompoundNBT()));
list.add(nodeTag);

View File

@@ -2,7 +2,6 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.grid;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid;
import com.raoulvdberge.refinedstorage.network.MessageGridOpen;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.PlayerEntity;
@@ -26,7 +25,7 @@ public class GridOpenHandler implements Runnable {
return;
}
GuiGrid gui = new GuiGrid(null, grid.getLeft());
//GuiGrid gui = new GuiGrid(null, null, grid.getLeft());
// @Volatile: Just set the windowId: from OpenGuiHandler#process
/*TODO player.openContainer = new ContainerGrid(grid.getLeft(), gui, grid.getRight() instanceof TileBase ? (TileBase) grid.getRight() : null, player);

View File

@@ -78,19 +78,19 @@ public class ItemGridHandlerPortable implements IItemGridHandler {
// Do this before actually extracting, since portable grid sends updates as soon as a change happens (so before the storage tracker used to track)
portableGrid.getItemStorageTracker().changed(player, item.copy());
ItemStack took = portableGrid.getItemStorage().extract(item, size, IComparer.COMPARE_DAMAGE | IComparer.COMPARE_NBT, Action.SIMULATE);
ItemStack took = portableGrid.getItemStorage().extract(item, size, IComparer.COMPARE_NBT, Action.SIMULATE);
if (took != null) {
if ((flags & EXTRACT_SHIFT) == EXTRACT_SHIFT) {
IItemHandler playerInventory = player.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, Direction.UP).orElse(null);
if (playerInventory != null && ItemHandlerHelper.insertItem(playerInventory, took, true).isEmpty()) {
took = portableGrid.getItemStorage().extract(item, size, IComparer.COMPARE_DAMAGE | IComparer.COMPARE_NBT, Action.PERFORM);
took = portableGrid.getItemStorage().extract(item, size, IComparer.COMPARE_NBT, Action.PERFORM);
ItemHandlerHelper.insertItem(playerInventory, took, false);
}
} else {
took = portableGrid.getItemStorage().extract(item, size, IComparer.COMPARE_DAMAGE | IComparer.COMPARE_NBT, Action.PERFORM);
took = portableGrid.getItemStorage().extract(item, size, IComparer.COMPARE_NBT, Action.PERFORM);
if (single && !held.isEmpty()) {
held.grow(1);

View File

@@ -1,12 +1,10 @@
package com.raoulvdberge.refinedstorage.apiimpl.network.item;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSGui;
import com.raoulvdberge.refinedstorage.api.network.INetwork;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.item.ItemWirelessCraftingMonitor;
import com.raoulvdberge.refinedstorage.util.WorldUtils;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;

View File

@@ -57,7 +57,7 @@ public class NetworkNodeConstructor extends NetworkNode implements IComparable,
private ItemHandlerBase itemFilters = new ItemHandlerBase(1, new ListenerNetworkNode(this));
private FluidInventory fluidFilters = new FluidInventory(1, new ListenerNetworkNode(this));
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_CRAFTING, ItemUpgrade.TYPE_STACK);
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ListenerNetworkNode(this)/* TODO, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_CRAFTING, ItemUpgrade.TYPE_STACK*/);
private int compare = IComparer.COMPARE_NBT;
private int type = IType.ITEMS;

View File

@@ -84,7 +84,7 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC
private List<ICraftingPattern> patterns = new ArrayList<>();
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED);
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ListenerNetworkNode(this)/* TODO, ItemUpgrade.TYPE_SPEED*/);
// Used to prevent infinite recursion on getRootContainer() when there's e.g. two crafters facing each other.
private boolean visited = false;

View File

@@ -9,7 +9,6 @@ import com.raoulvdberge.refinedstorage.inventory.fluid.FluidInventory;
import com.raoulvdberge.refinedstorage.inventory.item.ItemHandlerBase;
import com.raoulvdberge.refinedstorage.inventory.item.ItemHandlerUpgrade;
import com.raoulvdberge.refinedstorage.inventory.listener.ListenerNetworkNode;
import com.raoulvdberge.refinedstorage.item.ItemUpgrade;
import com.raoulvdberge.refinedstorage.tile.TileDestructor;
import com.raoulvdberge.refinedstorage.tile.config.IComparable;
import com.raoulvdberge.refinedstorage.tile.config.IFilterable;
@@ -60,7 +59,7 @@ public class NetworkNodeDestructor extends NetworkNode implements IComparable, I
private ItemHandlerBase itemFilters = new ItemHandlerBase(9, new ListenerNetworkNode(this));
private FluidInventory fluidFilters = new FluidInventory(9, new ListenerNetworkNode(this));
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_SILK_TOUCH, ItemUpgrade.TYPE_FORTUNE_1, ItemUpgrade.TYPE_FORTUNE_2, ItemUpgrade.TYPE_FORTUNE_3);
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ListenerNetworkNode(this)/* TODO, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_SILK_TOUCH, ItemUpgrade.TYPE_FORTUNE_1, ItemUpgrade.TYPE_FORTUNE_2, ItemUpgrade.TYPE_FORTUNE_3*/);
private int compare = IComparer.COMPARE_NBT;
private int mode = IFilterable.BLACKLIST;

View File

@@ -41,7 +41,7 @@ public class NetworkNodeExporter extends NetworkNode implements IComparable, ITy
private ItemHandlerBase itemFilters = new ItemHandlerBase(9, new ListenerNetworkNode(this));
private FluidInventory fluidFilters = new FluidInventory(9, new ListenerNetworkNode(this));
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_CRAFTING, ItemUpgrade.TYPE_STACK);
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ListenerNetworkNode(this)/* TODO, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_CRAFTING, ItemUpgrade.TYPE_STACK*/);
private int compare = IComparer.COMPARE_NBT;
private int type = IType.ITEMS;

View File

@@ -56,7 +56,7 @@ public class NetworkNodeFluidInterface extends NetworkNode {
private ItemHandlerBase in = new ItemHandlerBase(1, new ListenerNetworkNode(this), stack -> StackUtils.getFluid(stack, true).getRight() != null);
private FluidInventory out = new FluidInventory(1, TANK_CAPACITY, new ListenerNetworkNode(this));
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK, ItemUpgrade.TYPE_CRAFTING);
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ListenerNetworkNode(this)/* TODO, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK, ItemUpgrade.TYPE_CRAFTING*/);
public NetworkNodeFluidInterface(World world, BlockPos pos) {
super(world, pos);

View File

@@ -8,7 +8,6 @@ import com.raoulvdberge.refinedstorage.inventory.fluid.FluidInventory;
import com.raoulvdberge.refinedstorage.inventory.item.ItemHandlerBase;
import com.raoulvdberge.refinedstorage.inventory.item.ItemHandlerUpgrade;
import com.raoulvdberge.refinedstorage.inventory.listener.ListenerNetworkNode;
import com.raoulvdberge.refinedstorage.item.ItemUpgrade;
import com.raoulvdberge.refinedstorage.tile.TileDiskDrive;
import com.raoulvdberge.refinedstorage.tile.TileImporter;
import com.raoulvdberge.refinedstorage.tile.config.IComparable;
@@ -44,7 +43,7 @@ public class NetworkNodeImporter extends NetworkNode implements IComparable, IFi
private ItemHandlerBase itemFilters = new ItemHandlerBase(9, new ListenerNetworkNode(this));
private FluidInventory fluidFilters = new FluidInventory(9, new ListenerNetworkNode(this));
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK);
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ListenerNetworkNode(this)/* TODO, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK*/);
private int compare = IComparer.COMPARE_NBT;
private int mode = IFilterable.BLACKLIST;

View File

@@ -34,7 +34,7 @@ public class NetworkNodeInterface extends NetworkNode implements IComparable {
private IItemHandler items = new ItemHandlerProxy(importItems, exportItems);
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK, ItemUpgrade.TYPE_CRAFTING);
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ListenerNetworkNode(this)/* TODO, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK, ItemUpgrade.TYPE_CRAFTING*/);
private int compare = IComparer.COMPARE_NBT;

View File

@@ -18,7 +18,7 @@ import javax.annotation.Nullable;
public class NetworkNodeWirelessTransmitter extends NetworkNode implements IWirelessTransmitter {
public static final String ID = "wireless_transmitter";
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ListenerNetworkNode(this), ItemUpgrade.TYPE_RANGE);
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ListenerNetworkNode(this)/* TODO , ItemUpgrade.TYPE_RANGE*/);
public NetworkNodeWirelessTransmitter(World world, BlockPos pos) {
super(world, pos);

View File

@@ -13,7 +13,6 @@ import com.raoulvdberge.refinedstorage.inventory.item.ItemHandlerBase;
import com.raoulvdberge.refinedstorage.inventory.item.ItemHandlerProxy;
import com.raoulvdberge.refinedstorage.inventory.item.ItemHandlerUpgrade;
import com.raoulvdberge.refinedstorage.inventory.listener.ListenerNetworkNode;
import com.raoulvdberge.refinedstorage.item.ItemUpgrade;
import com.raoulvdberge.refinedstorage.tile.TileDiskManipulator;
import com.raoulvdberge.refinedstorage.tile.config.IComparable;
import com.raoulvdberge.refinedstorage.tile.config.IFilterable;
@@ -55,7 +54,7 @@ public class NetworkNodeDiskManipulator extends NetworkNode implements IComparab
private IStorageDisk<ItemStack>[] itemDisks = new IStorageDisk[6];
private IStorageDisk<FluidStack>[] fluidDisks = new IStorageDisk[6];
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK) {
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ListenerNetworkNode(this)/* TODO, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK*/) {
@Override
public int getItemInteractCount() {
int count = super.getItemInteractCount();

View File

@@ -3,7 +3,7 @@ package com.raoulvdberge.refinedstorage.apiimpl.util;
import com.google.common.collect.ArrayListMultimap;
import com.raoulvdberge.refinedstorage.api.util.IStackList;
import com.raoulvdberge.refinedstorage.apiimpl.API;
import net.minecraftforge.fluids.Fluid;
import net.minecraft.fluid.Fluid;
import net.minecraftforge.fluids.FluidStack;
import javax.annotation.Nonnull;
@@ -21,10 +21,10 @@ public class StackListFluid implements IStackList<FluidStack> {
for (FluidStack otherStack : stacks.get(stack.getFluid())) {
if (stack.isFluidEqual(otherStack)) {
if ((long) otherStack.amount + (long) size > Integer.MAX_VALUE) {
otherStack.amount = Integer.MAX_VALUE;
if ((long) otherStack.getAmount() + (long) size > Integer.MAX_VALUE) {
otherStack.setAmount(Integer.MAX_VALUE);
} else {
otherStack.amount += size;
otherStack.grow(size);
}
return;
@@ -32,24 +32,24 @@ public class StackListFluid implements IStackList<FluidStack> {
}
FluidStack newStack = stack.copy();
newStack.amount = size;
newStack.setAmount(size);
stacks.put(stack.getFluid(), newStack);
}
@Override
public void add(@Nonnull FluidStack stack) {
add(stack, stack.amount);
add(stack, stack.getAmount());
}
@Override
public boolean remove(@Nonnull FluidStack stack, int size) {
for (FluidStack otherStack : stacks.get(stack.getFluid())) {
if (stack.isFluidEqual(otherStack)) {
otherStack.amount -= size;
otherStack.shrink(size);
boolean success = otherStack.amount >= 0;
boolean success = otherStack.getAmount() >= 0;
if (otherStack.amount <= 0) {
if (otherStack.getAmount() <= 0) {
stacks.remove(otherStack.getFluid(), otherStack);
}
@@ -62,7 +62,7 @@ public class StackListFluid implements IStackList<FluidStack> {
@Override
public boolean remove(@Nonnull FluidStack stack) {
return remove(stack, stack.amount);
return remove(stack, stack.getAmount());
}
@Override

View File

@@ -10,8 +10,8 @@ import net.minecraft.state.EnumProperty;
import net.minecraft.util.BlockRenderLayer;
public class BlockController extends BlockNodeProxy {
public static final EnumProperty TYPE = EnumProperty.create("type", ControllerType.class);
public static final EnumProperty ENERGY_TYPE = EnumProperty.create("energy_type", ControllerEnergyType.class);
public static final EnumProperty<ControllerType> TYPE = EnumProperty.create("type", ControllerType.class);
public static final EnumProperty<ControllerEnergyType> ENERGY_TYPE = EnumProperty.create("energy_type", ControllerEnergyType.class);
public BlockController() {
super(BlockInfoBuilder.forId("controller").tileEntity(TileController::new).create());

View File

@@ -6,7 +6,7 @@ import com.raoulvdberge.refinedstorage.tile.TileFluidStorage;
import net.minecraft.state.EnumProperty;
public class BlockFluidStorage extends BlockNode {
public static final EnumProperty TYPE = EnumProperty.create("type", FluidStorageType.class);
public static final EnumProperty<FluidStorageType> TYPE = EnumProperty.create("type", FluidStorageType.class);
public BlockFluidStorage() {
super(BlockInfoBuilder.forId("fluid_storage").hardness(5.8F).tileEntity(TileFluidStorage::new).create());

View File

@@ -8,7 +8,7 @@ import net.minecraft.item.Item;
import net.minecraft.state.EnumProperty;
public class BlockGrid extends BlockNode {
public static final EnumProperty TYPE = EnumProperty.create("type", GridType.class);
public static final EnumProperty<GridType> TYPE = EnumProperty.create("type", GridType.class);
public BlockGrid() {
super(BlockInfoBuilder.forId("grid").tileEntity(TileGrid::new).create());

View File

@@ -8,8 +8,8 @@ import net.minecraft.state.BooleanProperty;
import net.minecraft.state.EnumProperty;
public class BlockPortableGrid extends BlockBase {
public static final EnumProperty TYPE = EnumProperty.create("type", PortableGridType.class);
public static final EnumProperty DISK_STATE = EnumProperty.create("disk_state", PortableGridDiskState.class);
public static final EnumProperty<PortableGridType> TYPE = EnumProperty.create("type", PortableGridType.class);
public static final EnumProperty<PortableGridDiskState> DISK_STATE = EnumProperty.create("disk_state", PortableGridDiskState.class);
public static final BooleanProperty CONNECTED = BooleanProperty.create("connected");
public BlockPortableGrid() {

View File

@@ -1,46 +0,0 @@
package com.raoulvdberge.refinedstorage.block.property;
import net.minecraftforge.common.property.IUnlistedProperty;
import java.util.Objects;
import java.util.function.Function;
import java.util.function.Predicate;
public class PropertyObject<T> implements IUnlistedProperty<T> {
private final String name;
private final Class<T> clazz;
private final Predicate<T> validator;
private final Function<T, String> stringFunction;
public PropertyObject(String name, Class<T> clazz, Predicate<T> validator, Function<T, String> stringFunction) {
this.name = name;
this.clazz = clazz;
this.validator = validator;
this.stringFunction = stringFunction;
}
public PropertyObject(String name, Class<T> clazz) {
this(name, clazz, v -> true, Objects::toString);
}
@Override
public String getName() {
return name;
}
@Override
public boolean isValid(T value) {
return validator.test(value);
}
@Override
public Class<T> getType() {
return clazz;
}
@Override
public String valueToString(T value) {
return stringFunction.apply(value);
}
}

View File

@@ -31,6 +31,7 @@ import net.minecraft.network.play.server.SSetSlotPacket;
import net.minecraftforge.items.SlotItemHandler;
import javax.annotation.Nullable;
import java.util.ArrayList;
public class ContainerGrid extends ContainerBase implements IGridCraftingListener {
private IGrid grid;
@@ -54,7 +55,7 @@ public class ContainerGrid extends ContainerBase implements IGridCraftingListene
public void initSlots() {
this.inventorySlots.clear();
this.inventoryItemStacks.clear(); // TODO at
// this.inventoryItemStacks.clear(); // TODO at
this.transferManager.clearTransfers();
@@ -213,7 +214,7 @@ public class ContainerGrid extends ContainerBase implements IGridCraftingListene
Slot slot = inventorySlots.get(i);
if (slot instanceof SlotGridCrafting || slot == craftingResultSlot || slot == patternResultSlot) {
for (IContainerListener listener : listeners) { // TODO AT for listeners
for (IContainerListener listener : new ArrayList<IContainerListener>()) { // TODO AT for listeners
// @Volatile: We can't use IContainerListener#sendSlotContents since ServerPlayerEntity blocks SlotCrafting changes...
if (listener instanceof ServerPlayerEntity) {
((ServerPlayerEntity) listener).connection.sendPacket(new SSetSlotPacket(windowId, i, slot.getStack()));

View File

@@ -56,7 +56,7 @@ public class GuiController extends GuiBase<ContainerController> {
@Override
public void drawForeground(int mouseX, int mouseY) {
drawString(7, 7, t("gui.refinedstorage:controller." + controller.getType().getId()));
drawString(7, 7, t("gui.refinedstorage:controller." + controller.getControllerType().getId()));
drawString(7, 87, t("container.inventory"));
int x = 33;

View File

@@ -1,6 +1,5 @@
package com.raoulvdberge.refinedstorage.gui;
import com.google.common.base.Optional;
import com.google.common.collect.Lists;
import com.mojang.blaze3d.platform.GlStateManager;
import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement;
@@ -27,6 +26,7 @@ import net.minecraftforge.fluids.FluidStack;
import javax.annotation.Nullable;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
public class GuiCraftingMonitor extends GuiBase<ContainerCraftingMonitor> {

View File

@@ -1,6 +1,6 @@
package com.raoulvdberge.refinedstorage.gui;
import com.raoulvdberge.refinedstorage.RS;
import com.mojang.blaze3d.platform.GlStateManager;
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPattern;
import com.raoulvdberge.refinedstorage.api.autocrafting.preview.ICraftingPreviewElement;
import com.raoulvdberge.refinedstorage.api.autocrafting.task.CraftingTaskErrorType;
@@ -11,33 +11,28 @@ import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPrev
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementItemStack;
import com.raoulvdberge.refinedstorage.gui.control.Scrollbar;
import com.raoulvdberge.refinedstorage.item.ItemPattern;
import com.raoulvdberge.refinedstorage.network.MessageGridCraftingStart;
import com.raoulvdberge.refinedstorage.util.RenderUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.button.Button;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.container.Container;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fml.client.FMLClientHandler;
import org.lwjgl.input.Keyboard;
import javax.annotation.Nullable;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class GuiCraftingPreview extends GuiBase {
public class CraftingPreviewElementDrawers extends ElementDrawers {
private IElementDrawer<Integer> overlayDrawer = (x, y, colour) -> {
GlStateManager.color(1, 1, 1, 1);
GlStateManager.color4f(1, 1, 1, 1);
GlStateManager.disableLighting();
drawRect(x, y, x + 73, y + 29, colour);
fill(x, y, x + 73, y + 29, colour);
};
@Override
@@ -49,13 +44,13 @@ public class GuiCraftingPreview extends GuiBase {
private static final int VISIBLE_ROWS = 5;
private List<ICraftingPreviewElement> stacks;
private GuiScreen parent;
private Screen parent;
private int hash;
private int quantity;
private GuiButton startButton;
private GuiButton cancelButton;
private Button startButton;
private Button cancelButton;
private ItemStack hoveringStack;
private FluidStack hoveringFluid;
@@ -64,13 +59,13 @@ public class GuiCraftingPreview extends GuiBase {
private boolean fluids;
public GuiCraftingPreview(GuiScreen parent, List<ICraftingPreviewElement> stacks, int hash, int quantity, boolean fluids) {
super(new Container() {
public GuiCraftingPreview(Screen parent, List<ICraftingPreviewElement> stacks, int hash, int quantity, boolean fluids) {
super(new Container(null, 0) {
@Override
public boolean canInteractWith(PlayerEntity player) {
public boolean canInteractWith(PlayerEntity playerIn) {
return false;
}
}, 254, 201);
}, 254, 201, null, null);
this.stacks = new ArrayList<>(stacks);
this.parent = parent;
@@ -86,7 +81,7 @@ public class GuiCraftingPreview extends GuiBase {
public void init(int x, int y) {
cancelButton = addButton(x + 55, y + 201 - 20 - 7, 50, 20, t("gui.cancel"));
startButton = addButton(x + 129, y + 201 - 20 - 7, 50, 20, t("misc.refinedstorage:start"));
startButton.enabled = stacks.stream().noneMatch(ICraftingPreviewElement::hasMissing) && getErrorType() == null;
startButton.active = stacks.stream().noneMatch(ICraftingPreviewElement::hasMissing) && getErrorType() == null; // TODO enabled?
}
@Override
@@ -113,7 +108,7 @@ public class GuiCraftingPreview extends GuiBase {
drawTexture(x, y, 0, 0, screenWidth, screenHeight);
if (getErrorType() != null) {
drawRect(x + 7, y + 20, x + 228, y + 169, 0xFFDBDBDB);
fill(x + 7, y + 20, x + 228, y + 169, 0xFFDBDBDB);
}
}
@@ -124,11 +119,11 @@ public class GuiCraftingPreview extends GuiBase {
int x = 7;
int y = 15;
float scale = fontRenderer.getUnicodeFlag() ? 1F : 0.5F;
float scale = /* TODO font.getUnicodeFlag() ? 1F :*/ 0.5F;
if (getErrorType() != null) {
GlStateManager.pushMatrix();
GlStateManager.scale(scale, scale, 1);
GlStateManager.scalef(scale, scale, 1);
drawString(RenderUtils.getOffsetOnScale(x + 5, scale), RenderUtils.getOffsetOnScale(y + 11, scale), t("gui.refinedstorage:crafting_preview.error"));
@@ -143,18 +138,18 @@ public class GuiCraftingPreview extends GuiBase {
GlStateManager.popMatrix();
ICraftingPattern pattern = ItemPattern.getPatternFromCache(parent.mc.world, (ItemStack) stacks.get(0).getElement());
ICraftingPattern pattern = ItemPattern.getPatternFromCache(parent.getMinecraft().world, (ItemStack) stacks.get(0).getElement());
int yy = 83;
for (ItemStack output : pattern.getOutputs()) {
if (output != null) {
GlStateManager.pushMatrix();
GlStateManager.scale(scale, scale, 1);
drawString(RenderUtils.getOffsetOnScale(x + 25, scale), RenderUtils.getOffsetOnScale(yy + 6, scale), output.getDisplayName());
GlStateManager.scalef(scale, scale, 1);
drawString(RenderUtils.getOffsetOnScale(x + 25, scale), RenderUtils.getOffsetOnScale(yy + 6, scale), output.getDisplayName().getFormattedText()); // TODO getFOrmattedText
GlStateManager.popMatrix();
RenderHelper.enableGUIStandardItemLighting();
GlStateManager.enableDepth();
GlStateManager.enableDepthTest();
drawItem(x + 5, yy, output);
RenderHelper.disableStandardItemLighting();
@@ -177,7 +172,7 @@ public class GuiCraftingPreview extends GuiBase {
int slot = scrollbar != null ? (scrollbar.getOffset() * 3) : 0;
RenderHelper.enableGUIStandardItemLighting();
GlStateManager.enableDepth();
GlStateManager.enableDepthTest();
this.hoveringStack = null;
this.hoveringFluid = null;
@@ -210,16 +205,17 @@ public class GuiCraftingPreview extends GuiBase {
}
@Override
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
super.drawScreen(mouseX, mouseY, partialTicks);
public void render(int mouseX, int mouseY, float partialTicks) {
super.render(mouseX, mouseY, partialTicks);
if (hoveringStack != null) {
drawTooltip(hoveringStack, mouseX, mouseY, hoveringStack.getTooltip(Minecraft.getMinecraft().player, Minecraft.getMinecraft().gameSettings.advancedItemTooltips ? ITooltipFlag.TooltipFlags.ADVANCED : ITooltipFlag.TooltipFlags.NORMAL));
drawTooltip(hoveringStack, mouseX, mouseY, hoveringStack.getTooltip(Minecraft.getInstance().player, Minecraft.getInstance().gameSettings.advancedItemTooltips ? ITooltipFlag.TooltipFlags.ADVANCED : ITooltipFlag.TooltipFlags.NORMAL));
} else if (hoveringFluid != null) {
drawTooltip(mouseX, mouseY, hoveringFluid.getLocalizedName());
drawTooltip(mouseX, mouseY, hoveringFluid.getDisplayName().getFormattedText()); // TODO gft
}
}
/* TODO
@Override
protected void keyTyped(char character, int keyCode) throws IOException {
if (keyCode == Keyboard.KEY_RETURN && startButton.enabled) {
@@ -240,10 +236,10 @@ public class GuiCraftingPreview extends GuiBase {
} else if (button.id == cancelButton.id) {
close();
}
}
}*/
private void startRequest() {
RS.INSTANCE.network.sendToServer(new MessageGridCraftingStart(hash, quantity, fluids));
// TODO RS.INSTANCE.network.sendToServer(new MessageGridCraftingStart(hash, quantity, fluids));
close();
}
@@ -253,6 +249,6 @@ public class GuiCraftingPreview extends GuiBase {
}
private void close() {
FMLClientHandler.instance().showGuiScreen(parent);
// TODO FMLClientHandler.instance().showGuiScreen(parent);
}
}

View File

@@ -1,20 +1,7 @@
package com.raoulvdberge.refinedstorage.gui;
import com.raoulvdberge.refinedstorage.RSGui;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.IGuiReaderWriter;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeCraftingMonitor;
import com.raoulvdberge.refinedstorage.container.*;
import com.raoulvdberge.refinedstorage.tile.*;
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor;
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.WirelessCraftingMonitor;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.network.IGuiHandler;
public class GuiHandler implements IGuiHandler {
public class GuiHandler {
/*
private Object getContainer(int ID, PlayerEntity player, TileEntity tile) {
switch (ID) {
case RSGui.CONTROLLER:
@@ -159,4 +146,6 @@ public class GuiHandler implements IGuiHandler {
private ContainerFilter getFilterContainer(PlayerEntity player, int hand) {
return new ContainerFilter(player, player.getHeldItem(Hand.values()[hand]));
}
*/
}

View File

@@ -22,7 +22,7 @@ public class ItemEnergyForge extends EnergyStorage {
if (received > 0 && !simulate) {
if (!stack.hasTag()) {
stack.put(new CompoundNBT());
stack.setTag(new CompoundNBT());
}
stack.getTag().putInt(NBT_ENERGY, getEnergyStored());
@@ -37,7 +37,7 @@ public class ItemEnergyForge extends EnergyStorage {
if (extracted > 0 && !simulate) {
if (!stack.hasTag()) {
stack.put(new CompoundNBT());
stack.setTag(new CompoundNBT());
}
stack.getTag().putInt(NBT_ENERGY, getEnergyStored());

View File

@@ -1,23 +1,6 @@
package com.raoulvdberge.refinedstorage.integration.forgeenergy;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReader;
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel;
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandler;
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IWriter;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.TextComponentTranslation;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.energy.CapabilityEnergy;
import net.minecraftforge.energy.EnergyStorage;
import net.minecraftforge.energy.IEnergyStorage;
import javax.annotation.Nullable;
import java.util.Collections;
import java.util.List;
/* TODO
public class ReaderWriterHandlerForgeEnergy implements IReaderWriterHandler {
public static final String ID = "forgeenergy";
@@ -198,3 +181,4 @@ public class ReaderWriterHandlerForgeEnergy implements IReaderWriterHandler {
}
}
}
*/

View File

@@ -1,6 +1,5 @@
package com.raoulvdberge.refinedstorage.item;
import com.google.common.base.Optional;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
@@ -15,6 +14,7 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import javax.annotation.Nonnull;
import java.util.Optional;
import java.util.UUID;
public class ItemWirelessCraftingMonitor extends ItemNetworkItem {
@@ -46,8 +46,8 @@ public class ItemWirelessCraftingMonitor extends ItemNetworkItem {
}
public static Optional<UUID> getTabSelected(ItemStack stack) {
if (stack.hasTagCompound() && stack.getTagCompound().hasUniqueId(NBT_TAB_SELECTED)) {
return Optional.of(stack.getTagCompound().getUniqueId(NBT_TAB_SELECTED));
if (stack.hasTag() && stack.getTag().hasUniqueId(NBT_TAB_SELECTED)) {
return Optional.of(stack.getTag().getUniqueId(NBT_TAB_SELECTED));
}
return Optional.absent();

View File

@@ -1,6 +1,5 @@
package com.raoulvdberge.refinedstorage.tile.craftingmonitor;
import com.google.common.base.Optional;
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager;
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask;
import com.raoulvdberge.refinedstorage.api.network.INetwork;
@@ -16,6 +15,7 @@ import net.minecraft.world.World;
import javax.annotation.Nullable;
import java.util.Collection;
import java.util.Collections;
import java.util.Optional;
import java.util.UUID;
public class WirelessCraftingMonitor implements ICraftingMonitor {
@@ -120,7 +120,7 @@ public class WirelessCraftingMonitor implements ICraftingMonitor {
@Override
public void onTabSelectionChanged(Optional<UUID> taskId) {
if (taskId.isPresent() && tabSelected.isPresent() && taskId.get().equals(tabSelected.get())) {
this.tabSelected = Optional.absent();
this.tabSelected = Optional.empty();
} else {
this.tabSelected = taskId;
}