Example usage for net.minecraftforge.fluids.capability IFluidHandler IFluidHandler

List of usage examples for net.minecraftforge.fluids.capability IFluidHandler IFluidHandler

Introduction

In this page you can find the example usage for net.minecraftforge.fluids.capability IFluidHandler IFluidHandler.

Prototype

IFluidHandler

Source Link

Usage

From source file:de.ellpeck.actuallyadditions.mod.tile.TileEntityLaserRelayFluids.java

public TileEntityLaserRelayFluids() {
    super("laserRelayFluids", LaserType.FLUID);

    for (int i = 0; i < this.fluidHandlers.length; i++) {
        final EnumFacing facing = EnumFacing.values()[i];
        this.fluidHandlers[i] = new IFluidHandler() {
            @Override/*  www. ja v a2s.c  o m*/
            public IFluidTankProperties[] getTankProperties() {
                return new IFluidTankProperties[0];
            }

            @Override
            public int fill(FluidStack resource, boolean doFill) {
                return TileEntityLaserRelayFluids.this.transmitFluid(facing, resource, doFill);
            }

            @Override
            public FluidStack drain(FluidStack resource, boolean doDrain) {
                return null;
            }

            @Override
            public FluidStack drain(int maxDrain, boolean doDrain) {
                return null;
            }
        };
    }
}

From source file:therogue.storehouse.multiblock.block.FluidCapabilityWrapper.java

License:Open Source License

@Override
public IFluidHandler getWrappedCapability(IFluidHandler wrappable) {
    return new IFluidHandler() {

        @Override/*from w  w  w  . j av  a 2 s.c  o  m*/
        public IFluidTankProperties[] getTankProperties() {
            IFluidTankProperties[] properties = wrappable.getTankProperties();
            IFluidTankProperties[] newProperties = new IFluidTankProperties[properties.length];
            for (int i = 0; i < properties.length; i++) {
                IFluidTankProperties element = properties[i];
                newProperties[i] = new IFluidTankProperties() {

                    @Override
                    public FluidStack getContents() {
                        return element.getContents();
                    }

                    @Override
                    public int getCapacity() {
                        return element.getCapacity();
                    }

                    @Override
                    public boolean canFill() {
                        return canFill ? element.canFill() : false;
                    }

                    @Override
                    public boolean canDrain() {
                        return canDrain ? element.canDrain() : false;
                    }

                    @Override
                    public boolean canFillFluidType(FluidStack fluidStack) {
                        return canFill ? element.canFillFluidType(fluidStack) : false;
                    }

                    @Override
                    public boolean canDrainFluidType(FluidStack fluidStack) {
                        return canDrain ? element.canDrainFluidType(fluidStack) : false;
                    }
                };
            }
            return newProperties;
        }

        @Override
        public int fill(FluidStack resource, boolean doFill) {
            return canFill ? wrappable.fill(resource, doFill) : 0;
        }

        @Override
        public FluidStack drain(FluidStack resource, boolean doDrain) {
            return canFill ? wrappable.drain(resource, doDrain) : null;
        }

        @Override
        public FluidStack drain(int maxDrain, boolean doDrain) {
            return canFill ? wrappable.drain(maxDrain, doDrain) : null;
        }
    };
}