Gets a fluid for entity in jar.
Just place jar above and tank below.
// startup script.
const $ForgeCapabilities = Java.loadClass('net.minecraftforge.common.capabilities.ForgeCapabilities')
global.containment_extractor = tick => {
const { block, level } = tick;
const pos = block.getPos();
const tankPos = pos.relative("down");
const jarPos = pos.relative("up");
let fill_fluid = null;
const io = {
"minecraft:wither": "industrialforegoing:ether_gas",
"minecraft:cow": "minecraft:milk",
"minecraft:pig": "industrialforegoing:sewage",
"minecraft:zombie": "industrialforegoing:meat"
}
if (level.getBlock(jarPos).id != "ars_nouveau:mob_jar") return;
if (io[level.getBlock(jarPos).getEntityData().entityId])
fill_fluid = io[level.getBlock(jarPos).getEntityData().entityId]
if (fill_fluid == null) return;
if (level.getBlock(tankPos).entity) {
if (typeof level.getBlock(tankPos).entity.getCapability == "function") {
if (level.getBlock(tankPos).entity.getCapability($ForgeCapabilities.FLUID_HANDLER, Direction.UP) != null) {
let FluidCap = level.getBlock(tankPos).entity.getCapability($ForgeCapabilities.FLUID_HANDLER, Direction.UP).resolve().get()
FluidCap.fill(Fluid.of(fill_fluid, 1000), 'EXECUTE')
}
}
}
}
StartupEvents.registry('block', e => {
e.create("pedruutilities:containment_extractor").displayName("Containment Extractor").randomTick(global.containment_extractor);
});```