Example usage for net.minecraftforge.fluids.capability CapabilityFluidHandler FLUID_HANDLER_CAPABILITY

List of usage examples for net.minecraftforge.fluids.capability CapabilityFluidHandler FLUID_HANDLER_CAPABILITY

Introduction

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

Prototype

Capability FLUID_HANDLER_CAPABILITY

To view the source code for net.minecraftforge.fluids.capability CapabilityFluidHandler FLUID_HANDLER_CAPABILITY.

Click Source Link

Usage

From source file:appeng.parts.p2p.PartP2PFluids.java

License:Open Source License

@Override
public boolean hasCapability(Capability<?> capabilityClass) {
    if (capabilityClass == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) {
        return true;
    }//from  w  w  w .j ava2  s. co m

    return super.hasCapability(capabilityClass);
}

From source file:appeng.parts.p2p.PartP2PFluids.java

License:Open Source License

@Override
public <T> T getCapability(Capability<T> capabilityClass) {
    if (capabilityClass == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) {
        return (T) this;
    }// w  w  w.  j  av a 2  s . c  o  m

    return super.getCapability(capabilityClass);
}

From source file:appeng.parts.p2p.PartP2PFluids.java

License:Open Source License

private IFluidHandler getTarget() {
    if (!this.getProxy().isActive()) {
        return null;
    }//from ww w  .j  a  v  a  2 s. c o  m

    if (this.cachedTank != null) {
        return this.cachedTank;
    }

    final TileEntity te = this.getTile().getWorld()
            .getTileEntity(this.getTile().getPos().offset(this.getSide().getFacing()));

    if (te != null && te.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY,
            this.getSide().getFacing().getOpposite())) {
        return this.cachedTank = te.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY,
                this.getSide().getFacing().getOpposite());
    }

    return null;
}

From source file:blusunrize.immersiveengineering.common.blocks.metal.TileEntityBelljar.java

@Override
public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
    if (getGuiMaster() != null) {
        if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
            return dummy == 0 ? (facing == null || facing.getAxis() != this.facing.rotateY().getAxis())
                    : dummy == 1 && (facing == null || facing == this.facing.getOpposite());
        else if (capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY)
            return dummy == 0 && (facing == null || facing.getAxis() != this.facing.rotateY().getAxis());
    }/*from   w  w w . j  a  v a 2 s .c  o m*/
    return super.hasCapability(capability, facing);
}

From source file:blusunrize.immersiveengineering.common.blocks.metal.TileEntityBelljar.java

@Override
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
    if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
        if (dummy == 0 && (facing == null || facing.getAxis() != this.facing.rotateY().getAxis()))
            return (T) inputHandler;
        if (dummy == 1 && (facing == null || facing == this.facing.getOpposite())) {
            TileEntityBelljar te = getGuiMaster();
            if (te != null)
                return (T) te.outputHandler;
        }// ww w  .j  a va  2  s.c o  m
    } else if (capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY && dummy == 0
            && (facing == null || facing.getAxis() != this.facing.rotateY().getAxis()))
        return (T) tank;
    return super.getCapability(capability, facing);
}

From source file:blusunrize.immersiveengineering.common.blocks.metal.TileEntityFluidPipe.java

public static Set<DirectionalFluidOutput> getConnectedFluidHandlers(BlockPos node, World world) {
    if (indirectConnections.containsKey(node))
        return indirectConnections.get(node);

    ArrayList<BlockPos> openList = new ArrayList<>();
    ArrayList<BlockPos> closedList = new ArrayList<>();
    Set<DirectionalFluidOutput> fluidHandlers = Collections.newSetFromMap(new ConcurrentHashMap<>());
    openList.add(node);/*from   w  w w  .j av a 2  s .  c  om*/
    while (!openList.isEmpty() && closedList.size() < 1024) {
        BlockPos next = openList.get(0);
        TileEntity pipeTile = Utils.getExistingTileEntity(world, next);
        if (!closedList.contains(next) && (pipeTile instanceof IFluidPipe)) {
            if (pipeTile instanceof TileEntityFluidPipe)
                closedList.add(next);
            IFluidTankProperties[] tankInfo;
            for (int i = 0; i < 6; i++) {
                //                  boolean b = (te instanceof TileEntityFluidPipe)? (((TileEntityFluidPipe) te).sideConfig[i]==0): (((TileEntityFluidPump) te).sideConfig[i]==1);
                EnumFacing fd = EnumFacing.byIndex(i);
                if (((IFluidPipe) pipeTile).hasOutputConnection(fd)) {
                    BlockPos nextPos = next.offset(fd);
                    TileEntity adjacentTile = Utils.getExistingTileEntity(world, nextPos);
                    if (adjacentTile != null)
                        if (adjacentTile instanceof TileEntityFluidPipe)
                            openList.add(nextPos);
                        else if (adjacentTile.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY,
                                fd.getOpposite())) {
                            IFluidHandler handler = adjacentTile.getCapability(
                                    CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, fd.getOpposite());
                            if (handler != null) {
                                tankInfo = handler.getTankProperties();
                                if (tankInfo != null && tankInfo.length > 0)
                                    fluidHandlers.add(new DirectionalFluidOutput(handler, adjacentTile, fd));
                            }
                        }
                }
            }
        }
        openList.remove(0);
    }
    if (FMLCommonHandler.instance().getEffectiveSide() == Side.SERVER) {
        if (!indirectConnections.containsKey(node)) {
            indirectConnections.put(node,
                    newSetFromMap(new ConcurrentHashMap<DirectionalFluidOutput, Boolean>()));
            indirectConnections.get(node).addAll(fluidHandlers);
        }
    }
    return fluidHandlers;
}

From source file:blusunrize.immersiveengineering.common.blocks.metal.TileEntityFluidPipe.java

@Override
public boolean hasCapability(Capability<?> capability, @Nullable EnumFacing facing) {
    if (capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY && facing != null
            && sideConfig[facing.ordinal()] == 0)
        return true;
    return super.hasCapability(capability, facing);
}

From source file:blusunrize.immersiveengineering.common.blocks.metal.TileEntityFluidPipe.java

@Override
public <T> T getCapability(Capability<T> capability, @Nullable EnumFacing facing) {
    if (capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY && facing != null
            && sideConfig[facing.ordinal()] == 0)
        return (T) sidedHandlers[facing.ordinal()];
    return super.getCapability(capability, facing);
}

From source file:blusunrize.immersiveengineering.common.blocks.metal.TileEntityFluidPipe.java

public boolean updateConnectionByte(EnumFacing dir) {
    IFluidTankProperties[] tankInfo;//from  ww  w. j  av a 2 s .  c o m
    final byte oldConn = connections;
    int i = dir.getIndex();
    int mask = 1 << i;
    connections &= ~mask;
    TileEntity con = Utils.getExistingTileEntity(world, getPos().offset(dir));
    if (sideConfig[i] == 0 && con != null
            && con.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, dir.getOpposite())) {
        IFluidHandler handler = con.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY,
                dir.getOpposite());
        if (handler != null) {
            tankInfo = handler.getTankProperties();
            if (tankInfo != null && tankInfo.length > 0)
                connections |= mask;
        }
    }
    return oldConn != connections;
}

From source file:blusunrize.immersiveengineering.common.blocks.metal.TileEntityFluidPipe.java

public byte getAvailableConnectionByte() {
    byte connections = 0;
    IFluidTankProperties[] tankInfo;//w  ww.j  a va  2  s .  co  m
    for (int i = 5; i >= 0; i--) {
        //         TileEntity con = world.getTileEntity(xCoord+(i==4?-1: i==5?1: 0),yCoord+(i==0?-1: i==1?1: 0),zCoord+(i==2?-1: i==3?1: 0));
        EnumFacing dir = EnumFacing.byIndex(i);
        TileEntity con = Utils.getExistingTileEntity(world, getPos().offset(dir));
        connections <<= 1;
        if (con != null
                && con.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, dir.getOpposite())) {
            IFluidHandler handler = con.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY,
                    dir.getOpposite());
            if (handler != null) {
                tankInfo = handler.getTankProperties();
                if (tankInfo != null && tankInfo.length > 0)
                    connections |= 1;
            }
        }
    }
    return connections;
}