Lots of compile fixes

This commit is contained in:
Sebastian Hartte
2020-06-04 03:02:48 +02:00
parent 6eb2a9504a
commit 237463dd94
241 changed files with 3438 additions and 3474 deletions
@@ -31,18 +31,17 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.world.World;
import appeng.api.util.AEPartLocation;
import appeng.block.AEBaseTileBlock;
import appeng.core.sync.GuiBridge;
import appeng.fluids.tile.TileFluidInterface;
import appeng.util.Platform;
public class BlockFluidInterface extends AEBaseTileBlock
public class BlockFluidInterface extends AEBaseTileBlock<TileFluidInterface>
{
public BlockFluidInterface()
{
super( Material.IRON );
super(Properties.create( Material.IRON ));
}
@Override
@@ -54,11 +53,11 @@ public class BlockFluidInterface extends AEBaseTileBlock
}
final TileEntity tg = this.getTileEntity( w, pos );
if( tg instanceof TileFluidInterface )
if( tg != null )
{
if( Platform.isServer() )
{
Platform.openGUI( p, tg, AEPartLocation.fromFacing(hit), GuiBridge.GUI_FLUID_INTERFACE );
// FIXME Platform.openGUI( p, tg, AEPartLocation.fromFacing(hit), GuiBridge.GUI_FLUID_INTERFACE );
}
return ActionResultType.SUCCESS;
}
@@ -10,7 +10,7 @@ import net.minecraft.entity.player.PlayerInventory;
import appeng.client.gui.implementations.GuiUpgradeable;
import appeng.client.gui.widgets.GuiTabButton;
import appeng.core.localization.GuiText;
import appeng.core.sync.GuiBridge;
import appeng.core.sync.network.NetworkHandler;
import appeng.core.sync.packets.PacketSwitchGuis;
import appeng.fluids.client.gui.widgets.GuiFluidSlot;
@@ -27,7 +27,7 @@ import net.minecraft.entity.player.PlayerInventory;
import appeng.client.gui.implementations.GuiUpgradeable;
import appeng.client.gui.widgets.GuiTabButton;
import appeng.core.localization.GuiText;
import appeng.core.sync.GuiBridge;
import appeng.core.sync.network.NetworkHandler;
import appeng.core.sync.packets.PacketSwitchGuis;
import appeng.fluids.client.gui.widgets.GuiFluidSlot;
@@ -36,7 +36,7 @@ import appeng.client.gui.widgets.GuiImgButton;
import appeng.client.gui.widgets.GuiTabButton;
import appeng.core.AELog;
import appeng.core.localization.GuiText;
import appeng.core.sync.GuiBridge;
import appeng.core.sync.network.NetworkHandler;
import appeng.core.sync.packets.PacketConfigButton;
import appeng.core.sync.packets.PacketSwitchGuis;
@@ -6,6 +6,7 @@ import java.util.Collections;
import java.util.Map;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.inventory.container.ContainerType;
import net.minecraft.inventory.container.IContainerListener;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.util.LazyOptional;
@@ -26,9 +27,9 @@ public abstract class ContainerFluidConfigurable extends ContainerUpgradeable im
{
private FluidSyncHelper sync = null;
public ContainerFluidConfigurable( PlayerInventory ip, IUpgradeableHost te )
public ContainerFluidConfigurable(ContainerType<?> containerType, int id, PlayerInventory ip, IUpgradeableHost te )
{
super( ip, te );
super( containerType, id, ip, te );
}
public abstract IAEFluidTank getFluidConfigInventory();
@@ -3,6 +3,7 @@ package appeng.fluids.container;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.inventory.container.ContainerType;
import net.minecraftforge.items.IItemHandler;
import appeng.api.config.SecurityPermissions;
@@ -17,9 +18,9 @@ public class ContainerFluidFormationPlane extends ContainerFluidConfigurable
{
private final PartFluidFormationPlane plane;
public ContainerFluidFormationPlane( final PlayerInventory ip, final PartFluidFormationPlane te )
public ContainerFluidFormationPlane(ContainerType<?> containerType, int id, final PlayerInventory ip, final PartFluidFormationPlane te )
{
super( ip, te );
super( containerType, id,ip, te );
this.plane = te;
}
@@ -23,6 +23,7 @@ import net.minecraft.entity.player.PlayerInventory;
import appeng.fluids.parts.PartSharedFluidBus;
import appeng.fluids.util.IAEFluidTank;
import net.minecraft.inventory.container.ContainerType;
/**
@@ -34,9 +35,9 @@ public class ContainerFluidIO extends ContainerFluidConfigurable
{
private final PartSharedFluidBus bus;
public ContainerFluidIO( PlayerInventory ip, PartSharedFluidBus te )
public ContainerFluidIO(ContainerType<?> containerType, int id, PlayerInventory ip, PartSharedFluidBus te )
{
super( ip, te );
super( containerType, id,ip, te );
this.bus = te;
}
@@ -23,6 +23,7 @@ import java.util.Collections;
import java.util.Map;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.inventory.container.ContainerType;
import net.minecraft.inventory.container.IContainerListener;
import appeng.api.config.SecurityPermissions;
@@ -40,9 +41,9 @@ public class ContainerFluidInterface extends ContainerFluidConfigurable
private final DualityFluidInterface myDuality;
private final FluidSyncHelper tankSync;
public ContainerFluidInterface( final PlayerInventory ip, final IFluidInterfaceHost te )
public ContainerFluidInterface(ContainerType<?> containerType, int id, final PlayerInventory ip, final IFluidInterfaceHost te )
{
super( ip, te.getDualityFluidInterface().getHost() );
super( containerType, id,ip, te.getDualityFluidInterface().getHost() );
this.myDuality = te.getDualityFluidInterface();
this.tankSync = new FluidSyncHelper( this.myDuality.getTanks(), DualityFluidInterface.NUMBER_OF_TANKS );
@@ -4,6 +4,7 @@ package appeng.fluids.container;
import net.minecraft.client.gui.widget.TextFieldWidget;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.inventory.container.ContainerType;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@@ -25,9 +26,9 @@ public class ContainerFluidLevelEmitter extends ContainerFluidConfigurable
@GuiSync( 3 )
public long EmitterValue = -1;
public ContainerFluidLevelEmitter( final PlayerInventory ip, final PartFluidLevelEmitter te )
public ContainerFluidLevelEmitter(ContainerType<?> containerType, int id, final PlayerInventory ip, final PartFluidLevelEmitter te )
{
super( ip, te );
super( containerType, id,ip, te );
this.lvlEmitter = te;
}
@@ -22,6 +22,7 @@ package appeng.fluids.container;
import java.util.Iterator;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.inventory.container.ContainerType;
import net.minecraftforge.items.IItemHandler;
import appeng.api.config.AccessRestriction;
@@ -59,9 +60,9 @@ public class ContainerFluidStorageBus extends ContainerFluidConfigurable
@GuiSync( 4 )
public StorageFilter storageFilter = StorageFilter.EXTRACTABLE_ONLY;
public ContainerFluidStorageBus( PlayerInventory ip, PartFluidStorageBus te )
public ContainerFluidStorageBus(ContainerType<?> containerType, int id, PlayerInventory ip, PartFluidStorageBus te )
{
super( ip, te );
super( containerType, id,ip, te );
this.storageBus = te;
}
@@ -26,6 +26,7 @@ import javax.annotation.Nonnull;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.entity.player.ServerPlayerEntity;
import net.minecraft.inventory.container.ContainerType;
import net.minecraft.inventory.container.IContainerListener;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.util.LazyOptional;
@@ -92,9 +93,8 @@ public class ContainerFluidTerminal extends AEBaseContainer implements IConfigMa
// Holds the fluid the client wishes to extract, or null for insert
private IAEFluidStack clientRequestedTargetFluid = null;
public ContainerFluidTerminal( PlayerInventory ip, ITerminalHost terminal )
{
super( ip, terminal );
public ContainerFluidTerminal(ContainerType<?> containerType, int id, PlayerInventory ip, ITerminalHost terminal) {
super(containerType, id, ip, terminal);
this.terminal = terminal;
this.clientCM = new ConfigManager( this );
@@ -26,9 +26,11 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Direction;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraft.fluid.Fluid;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.FluidAttributes;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.items.IItemHandler;
import appeng.api.AEApi;
@@ -231,21 +233,16 @@ public class DualityFluidInterface implements IGridTickable, IStorageMonitorable
return new DimensionalCoord( this.iHost.getTileEntity() );
}
public boolean hasCapability( Capability<?> capabilityClass, Direction facing )
{
return capabilityClass == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY || capabilityClass == Capabilities.STORAGE_MONITORABLE_ACCESSOR;
}
@SuppressWarnings( "unchecked" )
public <T> T getCapability( Capability<T> capabilityClass, Direction facing )
public <T> LazyOptional<T> getCapability( Capability<T> capabilityClass, Direction facing )
{
if( capabilityClass == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY )
{
return (T) this.tanks;
return (LazyOptional<T>) LazyOptional.of(() -> this.tanks);
}
else if( capabilityClass == Capabilities.STORAGE_MONITORABLE_ACCESSOR )
{
return (T) this.accessor;
return (LazyOptional<T>) LazyOptional.of(() -> this.accessor);
}
return null;
}
@@ -45,9 +45,9 @@ public final class BasicFluidStorageCell extends AbstractStorageCell<IAEFluidSta
private final int perType;
private final double idleDrain;
public BasicFluidStorageCell( final MaterialType whichCell, final int kilobytes )
public BasicFluidStorageCell(Properties props, final MaterialType whichCell, final int kilobytes )
{
super( whichCell, kilobytes );
super( props, whichCell, kilobytes );
switch( whichCell )
{
case FLUID_CELL1K_PART:
@@ -21,7 +21,6 @@ package appeng.fluids.items;
import appeng.bootstrap.IItemRendering;
import appeng.bootstrap.ItemRenderingCustomizer;
import appeng.client.render.DummyFluidItemModel;
/**
@@ -34,6 +33,6 @@ public class FluidDummyItemRendering extends ItemRenderingCustomizer
@Override
public void customize( IItemRendering rendering )
{
rendering.builtInModel( "models/item/dummy_fluid_item", new DummyFluidItemModel() );
// FIXME rendering.builtInModel( "models/item/dummy_fluid_item", new DummyFluidItemModel() );
}
}
@@ -4,15 +4,29 @@ package appeng.fluids.parts;
import java.util.List;
import appeng.core.Api;
import net.minecraft.advancements.CriteriaTriggers;
import net.minecraft.block.Block;
import net.minecraft.block.BlockLiquid;
import net.minecraft.block.BlockState;
import net.minecraft.block.IBucketPickupHandler;
import net.minecraft.entity.player.ServerPlayerEntity;
import net.minecraft.fluid.Fluid;
import net.minecraft.fluid.FluidState;
import net.minecraft.fluid.Fluids;
import net.minecraft.fluid.IFluidState;
import net.minecraft.item.ItemStack;
import net.minecraft.stats.Stats;
import net.minecraft.tags.FluidTags;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ActionResult;
import net.minecraft.util.Direction;
import net.minecraft.util.SoundEvent;
import net.minecraft.util.SoundEvents;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockReader;
import net.minecraft.world.World;
import net.minecraftforge.fluids.FluidAttributes;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidUtil;
import net.minecraftforge.fluids.IFluidBlock;
import net.minecraftforge.fluids.capability.IFluidHandler;
@@ -244,19 +258,23 @@ public class PartFluidAnnihilationPlane extends PartBasicState implements IGridT
final TileEntity te = this.getTile();
final World w = te.getWorld();
final BlockPos pos = te.getPos().offset( this.getSide().getFacing() );
final BlockState state = w.getBlockState( pos );
final Block block = state.getBlock();
if( block instanceof IFluidBlock || block instanceof BlockLiquid )
{
final IFluidHandler fh = FluidUtil.getFluidHandler( w, pos, null );
final IAEFluidStack blockFluid = AEFluidStack.fromFluidStack( fh.drain( Integer.MAX_VALUE, false ) );
BlockState blockstate = w.getBlockState(pos);
if (blockstate.getBlock() instanceof IBucketPickupHandler) {
IFluidState fluidState = blockstate.getFluidState();
if( blockFluid != null )
{
Fluid fluid = fluidState.getFluid();
if (fluid != Fluids.EMPTY && fluidState.isSource()) {
// Attempt to store the fluid in the network
final IAEFluidStack blockFluid = AEFluidStack.fromFluidStack( new FluidStack(fluidState.getFluid(), FluidAttributes.BUCKET_VOLUME) );
if( this.storeFluid( blockFluid, false ) )
{
this.storeFluid( AEFluidStack.fromFluidStack( fh.drain( Integer.MAX_VALUE, true ) ), true );
// If that would succeed, actually slurp up the liquid as if we were using a bucket
// This _MIGHT_ change the liquid, and if it does, and we dont have enough space,
// tough luck. you loose the source block.
fluid = ((IBucketPickupHandler)blockstate.getBlock()).pickupFluid(w, pos, blockstate);
this.storeFluid( AEFluidStack.fromFluidStack( new FluidStack( fluid, FluidAttributes.BUCKET_VOLUME) ), true );
AppEng.proxy.sendToAllNearExcept( null, pos.getX(), pos.getY(), pos.getZ(), 64, w,
new PacketTransitionEffect( pos.getX(), pos.getY(), pos.getZ(), this.getSide(), true ) );
@@ -41,7 +41,7 @@ import appeng.api.storage.data.IAEFluidStack;
import appeng.api.storage.data.IItemList;
import appeng.api.util.AEPartLocation;
import appeng.core.Api;
import appeng.core.sync.GuiBridge;
import appeng.fluids.util.AEFluidInventory;
import appeng.fluids.util.IAEFluidInventory;
import appeng.fluids.util.IAEFluidTank;
@@ -120,7 +120,7 @@ public class PartFluidFormationPlane extends PartAbstractFormationPlane<IAEFluid
final BlockPos pos = te.getPos().offset( side.getFacing() );
final BlockState state = w.getBlockState( pos );
if( this.canReplace( w, state, state.getBlock(), pos ) )
if( this.canReplace( w, state, pos ) )
{
if( type == Actionable.MODULATE )
{
@@ -141,9 +141,9 @@ public class PartFluidFormationPlane extends PartAbstractFormationPlane<IAEFluid
return input;
}
private boolean canReplace( World w, BlockState state, Block block, BlockPos pos )
private boolean canReplace( World w, BlockState state, BlockPos pos )
{
return block.isReplaceable( w, pos ) && !( block instanceof IFluidBlock ) && !( block instanceof BlockLiquid ) && !state.getMaterial().isLiquid();
return state.getMaterial().isReplaceable() && w.getFluidState(pos).isEmpty() && !state.getMaterial().isLiquid();
}
@Override
@@ -188,7 +188,7 @@ public class PartFluidFormationPlane extends PartAbstractFormationPlane<IAEFluid
{
if( Platform.isServer() )
{
Platform.openGUI( player, this.getHost().getTile(), this.getSide(), GuiBridge.GUI_FLUID_FORMATION_PLANE );
// FIXME Platform.openGUI( player, this.getHost().getTile(), this.getSide(), GuiBridge.GUI_FLUID_FORMATION_PLANE );
}
return true;
@@ -229,9 +229,9 @@ public class PartFluidFormationPlane extends PartAbstractFormationPlane<IAEFluid
return Api.INSTANCE.definitions().parts().fluidFormationnPlane().maybeStack( 1 ).orElse( ItemStack.EMPTY );
}
@Override
public GuiBridge getGuiBridge()
{
return GuiBridge.GUI_FLUID_FORMATION_PLANE;
}
// FIXME @Override
// FIXME public GuiBridge getGuiBridge()
// FIXME {
// FIXME return GuiBridge.GUI_FLUID_FORMATION_PLANE;
// FIXME }
}
@@ -30,6 +30,7 @@ import net.minecraft.util.Hand;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.Vec3d;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.items.IItemHandler;
import appeng.api.config.Upgrades;
@@ -50,7 +51,7 @@ import appeng.api.util.AECableType;
import appeng.api.util.IConfigManager;
import appeng.core.Api;
import appeng.core.AppEng;
import appeng.core.sync.GuiBridge;
import appeng.fluids.helper.DualityFluidInterface;
import appeng.fluids.helper.IFluidInterfaceHost;
import appeng.helpers.IPriorityHost;
@@ -138,7 +139,7 @@ public class PartFluidInterface extends PartBasicState implements IGridTickable,
{
if( Platform.isServer() )
{
Platform.openGUI( p, this.getTileEntity(), this.getSide(), GuiBridge.GUI_FLUID_INTERFACE );
// FIXME Platform.openGUI( p, this.getTileEntity(), this.getSide(), GuiBridge.GUI_FLUID_INTERFACE );
}
return true;
@@ -204,13 +205,7 @@ public class PartFluidInterface extends PartBasicState implements IGridTickable,
}
@Override
public boolean hasCapability( Capability<?> capabilityClass )
{
return this.duality.hasCapability( capabilityClass, this.getSide().getFacing() );
}
@Override
public <T> T getCapability( Capability<T> capabilityClass )
public <T> LazyOptional<T> getCapability(Capability<T> capabilityClass )
{
return this.duality.getCapability( capabilityClass, this.getSide().getFacing() );
}
@@ -239,9 +234,9 @@ public class PartFluidInterface extends PartBasicState implements IGridTickable,
return Api.INSTANCE.definitions().parts().fluidIface().maybeStack( 1 ).orElse( ItemStack.EMPTY );
}
@Override
public GuiBridge getGuiBridge()
{
return GuiBridge.GUI_FLUID_INTERFACE;
}
// FIXME @Override
// FIXME public GuiBridge getGuiBridge()
// FIXME {
// FIXME return GuiBridge.GUI_FLUID_INTERFACE;
// FIXME }
}
@@ -7,10 +7,8 @@ import java.util.Random;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.particles.ParticleTypes;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Hand;
import net.minecraft.util.EnumParticleTypes;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
@@ -40,7 +38,7 @@ import appeng.api.util.AEPartLocation;
import appeng.api.util.IConfigManager;
import appeng.core.Api;
import appeng.core.AppEng;
import appeng.core.sync.GuiBridge;
import appeng.fluids.util.AEFluidInventory;
import appeng.fluids.util.IAEFluidInventory;
import appeng.fluids.util.IAEFluidTank;
@@ -319,8 +317,8 @@ public class PartFluidLevelEmitter extends PartUpgradeable implements IStackWatc
final double d1 = d.yOffset * 0.45F + ( r.nextFloat() - 0.5F ) * 0.2D;
final double d2 = d.zOffset * 0.45F + ( r.nextFloat() - 0.5F ) * 0.2D;
world.spawnParticle( EnumParticleTypes.REDSTONE, 0.5 + pos.getX() + d0, 0.5 + pos.getY() + d1, 0.5 + pos.getZ() + d2, 0.0D, 0.0D, 0.0D,
new int[0] );
// FIXME world.spawnParticle( EnumParticleTypes.REDSTONE, 0.5 + pos.getX() + d0, 0.5 + pos.getY() + d1, 0.5 + pos.getZ() + d2, 0.0D, 0.0D, 0.0D,
// FIXME new int[0] );
}
}
@@ -329,7 +327,7 @@ public class PartFluidLevelEmitter extends PartUpgradeable implements IStackWatc
{
if( Platform.isServer() )
{
Platform.openGUI( player, this.getHost().getTile(), this.getSide(), GuiBridge.GUI_FLUID_LEVEL_EMITTER );
// FIXME Platform.openGUI( player, this.getHost().getTile(), this.getSide(), GuiBridge.GUI_FLUID_LEVEL_EMITTER );
}
return true;
}
@@ -65,7 +65,7 @@ import appeng.capabilities.Capabilities;
import appeng.core.Api;
import appeng.core.AppEng;
import appeng.core.settings.TickRates;
import appeng.core.sync.GuiBridge;
import appeng.fluids.util.AEFluidInventory;
import appeng.fluids.util.IAEFluidInventory;
import appeng.fluids.util.IAEFluidTank;
@@ -224,7 +224,7 @@ public class PartFluidStorageBus extends PartSharedStorageBus implements IMEMoni
{
if( Platform.isServer() )
{
Platform.openGUI( player, this.getHost().getTile(), this.getSide(), GuiBridge.GUI_STORAGEBUS_FLUID );
// FIXME Platform.openGUI( player, this.getHost().getTile(), this.getSide(), GuiBridge.GUI_STORAGEBUS_FLUID );
}
return true;
}
@@ -489,9 +489,9 @@ public class PartFluidStorageBus extends PartSharedStorageBus implements IMEMoni
return Api.INSTANCE.definitions().parts().fluidStorageBus().maybeStack( 1 ).orElse( ItemStack.EMPTY );
}
@Override
public GuiBridge getGuiBridge()
{
return GuiBridge.GUI_STORAGEBUS_FLUID;
}
// FIXME @Override
// FIXME public GuiBridge getGuiBridge()
// FIXME {
// FIXME return GuiBridge.GUI_STORAGEBUS_FLUID;
// FIXME }
}
@@ -25,7 +25,7 @@ import net.minecraft.util.ResourceLocation;
import appeng.api.parts.IPartModel;
import appeng.core.AppEng;
import appeng.core.sync.GuiBridge;
import appeng.items.parts.PartModels;
import appeng.parts.PartModel;
import appeng.parts.reporting.AbstractPartTerminal;
@@ -53,11 +53,11 @@ public class PartFluidTerminal extends AbstractPartTerminal
super( is );
}
@Override
public GuiBridge getGui( PlayerEntity player )
{
return GuiBridge.GUI_FLUID_TERMINAL;
}
// FIXME @Override
// FIXME public GuiBridge getGui( PlayerEntity player )
// FIXME {
// FIXME return GuiBridge.GUI_FLUID_TERMINAL;
// FIXME }
@Override
public IPartModel getStaticModels()
@@ -39,7 +39,7 @@ import appeng.api.parts.IPartCollisionHelper;
import appeng.api.storage.channels.IFluidStorageChannel;
import appeng.api.util.AECableType;
import appeng.core.Api;
import appeng.core.sync.GuiBridge;
import appeng.fluids.util.AEFluidInventory;
import appeng.fluids.util.IAEFluidTank;
import appeng.me.GridAccessException;
@@ -107,7 +107,7 @@ public abstract class PartSharedFluidBus extends PartUpgradeable implements IGri
{
if( Platform.isServer() )
{
Platform.openGUI( player, this.getHost().getTile(), this.getSide(), GuiBridge.GUI_BUS_FLUID );
// FIXME Platform.openGUI( player, this.getHost().getTile(), this.getSide(), GuiBridge.GUI_BUS_FLUID );
}
return true;
@@ -32,7 +32,7 @@ import appeng.api.storage.channels.IFluidStorageChannel;
import appeng.api.storage.data.IAEStack;
import appeng.api.util.AEPartLocation;
import appeng.core.Api;
import appeng.core.sync.GuiBridge;
import appeng.util.Platform;
@@ -48,6 +48,6 @@ public class BasicFluidCellGuiHandler implements ICellGuiHandler
@Override
public void openChestGui( final PlayerEntity player, final IChestOrDrive chest, final ICellHandler cellHandler, final IMEInventoryHandler inv, final ItemStack is, final IStorageChannel chan )
{
Platform.openGUI( player, (TileEntity) chest, AEPartLocation.fromFacing( chest.getUp() ), GuiBridge.GUI_FLUID_TERMINAL );
// FIXME Platform.openGUI( player, (TileEntity) chest, AEPartLocation.fromFacing( chest.getUp() ), GuiBridge.GUI_FLUID_TERMINAL );
}
}
@@ -26,11 +26,12 @@ import javax.annotation.Nullable;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityType;
import net.minecraft.util.Direction;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.items.IItemHandler;
import appeng.api.AEApi;
import appeng.api.config.Upgrades;
import appeng.api.networking.IGridNode;
import appeng.api.networking.events.MENetworkChannelsChanged;
@@ -44,7 +45,7 @@ import appeng.api.util.AEPartLocation;
import appeng.api.util.DimensionalCoord;
import appeng.api.util.IConfigManager;
import appeng.core.Api;
import appeng.core.sync.GuiBridge;
import appeng.fluids.helper.DualityFluidInterface;
import appeng.fluids.helper.IFluidInterfaceHost;
import appeng.helpers.IPriorityHost;
@@ -55,6 +56,10 @@ public class TileFluidInterface extends AENetworkTile implements IGridTickable,
{
private final DualityFluidInterface duality = new DualityFluidInterface( this.getProxy(), this );
public TileFluidInterface(TileEntityType<?> tileEntityTypeIn) {
super(tileEntityTypeIn);
}
@MENetworkEventSubscribe
public void stateChange( final MENetworkChannelsChanged c )
{
@@ -98,17 +103,17 @@ public class TileFluidInterface extends AENetworkTile implements IGridTickable,
}
@Override
public CompoundNBT writeToNBT( final CompoundNBT data )
public CompoundNBT write(final CompoundNBT data )
{
super.writeToNBT( data );
super.write( data );
this.duality.writeToNBT( data );
return data;
}
@Override
public void readFromNBT( final CompoundNBT data )
public void read(final CompoundNBT data )
{
super.readFromNBT( data );
super.read( data );
this.duality.readFromNBT( data );
}
@@ -143,16 +148,10 @@ public class TileFluidInterface extends AENetworkTile implements IGridTickable,
}
@Override
public boolean hasCapability( Capability<?> capability, @Nullable Direction facing )
public <T> LazyOptional<T> getCapability(Capability<T> capability, @Nullable Direction facing )
{
return this.duality.hasCapability( capability, facing ) || super.hasCapability( capability, facing );
}
@Override
public <T> T getCapability( Capability<T> capability, @Nullable Direction facing )
{
T result = this.duality.getCapability( capability, facing );
if( result != null )
LazyOptional<T> result = this.duality.getCapability( capability, facing );
if( result.isPresent() )
{
return result;
}
@@ -183,9 +182,9 @@ public class TileFluidInterface extends AENetworkTile implements IGridTickable,
return Api.INSTANCE.definitions().blocks().fluidIface().maybeStack( 1 ).orElse( ItemStack.EMPTY );
}
@Override
public GuiBridge getGuiBridge()
{
return GuiBridge.GUI_FLUID_INTERFACE;
}
// FIXME @Override
// FIXME public GuiBridge getGuiBridge()
// FIXME {
// FIXME return GuiBridge.GUI_FLUID_INTERFACE;
// FIXME }
}
@@ -110,9 +110,48 @@ public class AEFluidInventory implements IAEFluidTank
return stack != FluidStack.EMPTY;
}
public int fill( final int slot, final FluidStack resource, final boolean doFill )
{
if( resource.isEmpty()|| resource.getAmount() <= 0 )
{
return 0;
}
final IAEFluidStack fluid = this.fluids[slot];
if( fluid != null && !fluid.getFluidStack().equals( resource ) )
{
return 0;
}
int amountToStore = this.capacity;
if( fluid != null )
{
amountToStore -= fluid.getStackSize();
}
amountToStore = Math.min( amountToStore, resource.getAmount() );
if( doFill )
{
if( fluid == null )
{
this.setFluidInSlot( slot, AEFluidStack.fromFluidStack( resource ) );
}
else
{
fluid.setStackSize( fluid.getStackSize() + amountToStore );
this.onContentChanged( slot );
}
}
return amountToStore;
}
@Override
public int fill(FluidStack resource, FluidAction action) {
if( resource == null || resource == FluidStack.EMPTY || resource.getAmount() <= 0 )
if( resource == null || resource.isEmpty() || resource.getAmount() <= 0 )
{
return 0;
}
@@ -158,18 +197,18 @@ public class AEFluidInventory implements IAEFluidTank
{
if( fluid == null || fluid.getAmount() <= 0 )
{
return null;
return FluidStack.EMPTY;
}
final FluidStack resource = fluid.copy();
FluidStack totalDrained = null;
FluidStack totalDrained = FluidStack.EMPTY;
for( int slot = 0; slot < this.getSlots(); ++slot )
{
FluidStack drain = this.drain( slot, resource, action == FluidAction.EXECUTE );
if( drain != null )
{
if( totalDrained == null )
if( totalDrained.isEmpty() )
{
totalDrained = drain;
}
@@ -193,18 +232,18 @@ public class AEFluidInventory implements IAEFluidTank
{
if( maxDrain == 0 )
{
return null;
return FluidStack.EMPTY;
}
FluidStack totalDrained = null;
FluidStack totalDrained = FluidStack.EMPTY;
int toDrain = maxDrain;
for( int slot = 0; slot < this.getSlots(); ++slot )
{
if( totalDrained == null )
if( totalDrained.isEmpty() )
{
totalDrained = this.drain( slot, toDrain, action == FluidAction.EXECUTE );
if( totalDrained != null )
if( totalDrained.isEmpty() )
{
toDrain -= totalDrained.getAmount();
}
@@ -250,7 +289,7 @@ public class AEFluidInventory implements IAEFluidTank
public FluidStack drain( final int slot, final FluidStack resource, final boolean doDrain )
{
final IAEFluidStack fluid = this.fluids[slot];
if( resource == null || fluid == null || !fluid.equals( resource ) )
if( resource.isEmpty() || fluid == null || !fluid.getFluidStack().equals( resource ) )
{
return null;
}
@@ -37,11 +37,12 @@ public class FluidSorters
public static final Comparator<IAEFluidStack> CONFIG_BASED_SORT_BY_NAME = ( o1, o2 ) ->
{
// FIXME: Calling .getString() to compare two untranslated strings is a problem, we need to investigate how to do this better
if( getDirection() == SortDir.ASCENDING )
{
return Platform.getFluidDisplayName( o1 ).compareToIgnoreCase( Platform.getFluidDisplayName( o2 ) );
return Platform.getFluidDisplayName( o1 ).getString().compareToIgnoreCase( Platform.getFluidDisplayName( o2 ).getString() );
}
return Platform.getFluidDisplayName( o2 ).compareToIgnoreCase( Platform.getFluidDisplayName( o1 ) );
return Platform.getFluidDisplayName( o2 ).getString().compareToIgnoreCase( Platform.getFluidDisplayName( o1 ).getString() );
};
public static final Comparator<IAEFluidStack> CONFIG_BASED_SORT_BY_MOD = new Comparator<IAEFluidStack>()
@@ -64,7 +65,8 @@ public class FluidSorters
{
if( compareToIgnoreCase == 0 )
{
return Platform.getFluidDisplayName( o2 ).compareToIgnoreCase( Platform.getFluidDisplayName( o1 ) );
// FIXME: Calling .getString() to compare two untranslated strings is a problem, we need to investigate how to do this better
return Platform.getFluidDisplayName( o2 ).getString().compareToIgnoreCase( Platform.getFluidDisplayName( o1 ).getString() );
}
return compareToIgnoreCase;