use of mekanism.api.chemical.gas.IGasHandler in project Mekanism by mekanism.
the class BoxedChemicalAcceptorCache method isChemicalAcceptorAndListen.
public boolean isChemicalAcceptorAndListen(@Nullable TileEntity tile, Direction side) {
// TODO: Improve this to make it easier to add more chemical types
Direction opposite = side.getOpposite();
LazyOptional<IGasHandler> gasAcceptor = CapabilityUtils.getCapability(tile, Capabilities.GAS_HANDLER_CAPABILITY, opposite);
LazyOptional<IInfusionHandler> infusionAcceptor = CapabilityUtils.getCapability(tile, Capabilities.INFUSION_HANDLER_CAPABILITY, opposite);
LazyOptional<IPigmentHandler> pigmentAcceptor = CapabilityUtils.getCapability(tile, Capabilities.PIGMENT_HANDLER_CAPABILITY, opposite);
LazyOptional<ISlurryHandler> slurryAcceptor = CapabilityUtils.getCapability(tile, Capabilities.SLURRY_HANDLER_CAPABILITY, opposite);
if (gasAcceptor.isPresent() || infusionAcceptor.isPresent() || pigmentAcceptor.isPresent() || slurryAcceptor.isPresent()) {
BoxedChemicalHandler chemicalHandler = new BoxedChemicalHandler();
if (gasAcceptor.isPresent()) {
chemicalHandler.addGasHandler(gasAcceptor);
}
if (infusionAcceptor.isPresent()) {
chemicalHandler.addInfusionHandler(infusionAcceptor);
}
if (pigmentAcceptor.isPresent()) {
chemicalHandler.addPigmentHandler(pigmentAcceptor);
}
if (slurryAcceptor.isPresent()) {
chemicalHandler.addSlurryHandler(slurryAcceptor);
}
// Update the cached acceptor and if it changed, add a listener to it to listen for invalidation
updateCachedAcceptorAndListen(side, tile, chemicalHandler);
return true;
}
return false;
}
use of mekanism.api.chemical.gas.IGasHandler in project Mekanism by mekanism.
the class ItemFlamethrower method addHUDStrings.
@Override
public void addHUDStrings(List<ITextComponent> list, PlayerEntity player, ItemStack stack, EquipmentSlotType slotType) {
boolean hasGas = false;
Optional<IGasHandler> capability = stack.getCapability(Capabilities.GAS_HANDLER_CAPABILITY).resolve();
if (capability.isPresent()) {
IGasHandler gasHandlerItem = capability.get();
if (gasHandlerItem.getTanks() > 0) {
// Validate something didn't go terribly wrong, and we actually do have the tank we expect to have
GasStack storedGas = gasHandlerItem.getChemicalInTank(0);
if (!storedGas.isEmpty()) {
list.add(MekanismLang.FLAMETHROWER_STORED.translateColored(EnumColor.GRAY, EnumColor.ORANGE, storedGas.getAmount()));
hasGas = true;
}
}
}
if (!hasGas) {
list.add(MekanismLang.FLAMETHROWER_STORED.translateColored(EnumColor.GRAY, EnumColor.ORANGE, MekanismLang.NO_GAS));
}
list.add(MekanismLang.MODE.translate(getMode(stack)));
}
Aggregations