more misc fluid work, gonna leave most of this untill we have an offical or new api
This commit is contained in:
parent
0742abb840
commit
6a93c3fd46
28 changed files with 147 additions and 404 deletions
|
@ -26,11 +26,18 @@ package techreborn.utils;
|
|||
|
||||
import io.github.prospector.silk.fluid.FluidInstance;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.FluidBlock;
|
||||
import net.minecraft.fluid.Fluids;
|
||||
import net.minecraft.inventory.Inventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.math.Direction;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import reborncore.common.fluid.container.GenericFluidContainer;
|
||||
import reborncore.common.util.ItemUtils;
|
||||
import reborncore.common.util.RebornInventory;
|
||||
import reborncore.common.util.Tank;
|
||||
import net.minecraft.fluid.Fluid;
|
||||
import reborncore.mixin.extensions.FluidBlockExtensions;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
@ -38,24 +45,62 @@ import java.util.stream.Collectors;
|
|||
|
||||
public class FluidUtils {
|
||||
|
||||
public static Fluid fluidFromBlock(Block bLock){
|
||||
throw new UnsupportedOperationException("needs coding");
|
||||
public static Fluid fluidFromBlock(Block block){
|
||||
if(block instanceof FluidBlockExtensions){
|
||||
return ((FluidBlockExtensions) block).getFluid();
|
||||
}
|
||||
return Fluids.EMPTY;
|
||||
}
|
||||
|
||||
public static List<Fluid> getAllFluids() {
|
||||
return Registry.FLUID.stream().collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public static Fluid getFluid(String name){
|
||||
return null;
|
||||
public static boolean drainContainers(GenericFluidContainer<Direction> target, Inventory inventory, int inputSlot, int outputSlot) {
|
||||
ItemStack inputStack = inventory.getInvStack(inputSlot);
|
||||
ItemStack outputStack = inventory.getInvStack(outputSlot);
|
||||
|
||||
if (inputStack.isEmpty()) return false;
|
||||
|
||||
if(inputStack.getCount() > 1){
|
||||
System.out.println("TODO make this support more than 1 item");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (outputStack.getCount() >= outputStack.getMaxCount()) return false;
|
||||
|
||||
GenericFluidContainer<ItemStack> source = GenericFluidContainer.fromStack(inputStack);
|
||||
if(source == null || source.getFluidInstance(inputStack).isEmpty()){
|
||||
return false;
|
||||
}
|
||||
|
||||
Fluid fluidType = source.getFluidInstance(inputStack).getFluid();
|
||||
FluidInstance contained = target.getFluidInstance(null);
|
||||
|
||||
if(!contained.isEmpty()){
|
||||
//Check that the fluid we are trying to insert into is the same
|
||||
if(contained.getFluid() != fluidType){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
int transferAmount = 10;
|
||||
|
||||
if(source.canExtractFluid(inputStack, fluidType, transferAmount) && target.canInsertFluid(null, fluidType, transferAmount)){
|
||||
target.insertFluid(null, fluidType, transferAmount);
|
||||
source.extractFluid(inputStack, fluidType, transferAmount);
|
||||
if(source.getCurrentFluidAmount(inputStack) < 1){
|
||||
inventory.setInvStack(outputSlot, inputStack);
|
||||
inventory.setInvStack(inputSlot, ItemStack.EMPTY);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void drainContainers(Tank tank, RebornInventory<?> inventory, int i, int i1) {
|
||||
|
||||
}
|
||||
|
||||
public static void fillContainers(Tank tank, RebornInventory<?> inventory, int i, int i1, Fluid fluidType) {
|
||||
|
||||
public static boolean fillContainers(GenericFluidContainer<Direction> source, Inventory inventory, int inputSlot, int outputSlot, Fluid fluidToFill) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean fluidEquals(Fluid fluid, Fluid fluid1) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue