Skip to content

Commit

Permalink
switched FluidHandlerSidedWrapper and FluidHandlerNullSideWrapper to …
Browse files Browse the repository at this point in the history
…IFluidHandler methods
  • Loading branch information
Trinsdar committed Feb 23, 2025
1 parent bd458da commit dd13b56
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 143 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
import earth.terrarium.botarium.common.fluid.utils.FluidHooks;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
import net.minecraftforge.fluids.FluidStack;
import org.jetbrains.annotations.NotNull;

import java.util.List;

Expand All @@ -23,97 +25,62 @@ public int getPriority(Direction direction) {
}

@Override
public boolean canInput(Direction direction) {
return fluidHandler.canInput(direction);
public boolean canInput() {
return false;
}

@Override
public boolean canOutput(Direction direction) {
return fluidHandler.canOutput(direction);
public boolean canOutput() {
return false;
}

@Override
public boolean canInput(FluidHolder fluid, Direction direction) {
return fluidHandler.canInput(fluid, direction);
}

@Override
public long insertFluid(FluidHolder fluid, boolean simulate) {
return 0;
public boolean canInput(Direction direction) {
return fluidHandler.canInput(direction);
}

@Override
public FluidHolder extractFluid(FluidHolder fluid, boolean simulate) {
return FluidHooks.emptyFluid();
public boolean canOutput(Direction direction) {
return fluidHandler.canOutput(direction);
}

@Override
public void setFluid(int slot, FluidHolder fluid) {

public boolean canInput(FluidStack fluid, Direction direction) {
return fluidHandler.canInput(fluid, direction);
}

@Override
public List<FluidHolder> getFluids() {
return fluidHandler.getFluids();
public int fill(FluidStack fluidStack, FluidAction fluidAction) {
return 0;
}

@Override
public int getSize() {
return fluidHandler.getSize();
public @NotNull FluidStack drain(int amount, FluidAction fluidAction) {
return FluidStack.EMPTY;
}

@Override
public boolean isEmpty() {
return fluidHandler.isEmpty();
public @NotNull FluidStack drain(FluidStack fluidStack, FluidAction fluidAction) {
return FluidStack.EMPTY;
}

@Override
public FluidContainer copy() {
return new FluidHandlerNullSideWrapper(fluidHandler);
public int getTanks() {
return fluidHandler.getTanks();
}

@Override
public long getTankCapacity(int tankSlot) {
public int getTankCapacity(int tankSlot) {
return fluidHandler.getTankCapacity(tankSlot);
}

@Override
public void fromContainer(FluidContainer container) {
if (container instanceof FluidHandlerNullSideWrapper wrapper) fluidHandler = wrapper.fluidHandler;
}

@Override
public long extractFromSlot(FluidHolder fluidHolder, FluidHolder toInsert, Runnable snapshot) {
return fluidHandler.extractFromSlot(fluidHolder, toInsert, snapshot);
}

@Override
public boolean allowsInsertion() {
return fluidHandler.allowsInsertion();
}

@Override
public boolean allowsExtraction() {
return fluidHandler.allowsExtraction();
}

@Override
public FluidSnapshot createSnapshot() {
return new SimpleFluidSnapshot(this);
}

@Override
public void deserialize(CompoundTag nbt) {

}

@Override
public CompoundTag serialize(CompoundTag nbt) {
return null;
public @NotNull FluidStack getFluidInTank(int i) {
return fluidHandler.getFluidInTank(i);
}

@Override
public void clearContent() {
fluidHandler.clearContent();
public boolean isFluidValid(int i, @NotNull FluidStack fluidStack) {
return fluidHandler.isFluidValid(i, fluidStack);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,13 @@
import muramasa.antimatter.capability.CoverHandler;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.IFluidHandler;
import org.jetbrains.annotations.NotNull;

import java.util.List;

public class FluidHandlerSidedWrapper implements IFluidNode, FluidContainerHandler {
public class FluidHandlerSidedWrapper implements IFluidNode {
protected IFluidNode fluidHandler;
protected Direction side;
CoverHandler<?> coverHandler;
Expand All @@ -23,89 +25,50 @@ public FluidHandlerSidedWrapper(IFluidNode fluidHandler, CoverHandler<?> coverHa
}

@Override
public int getSize() {
return fluidHandler.getSize();
}

@Override
public boolean isEmpty() {
return fluidHandler.isEmpty();
}

@Override
public FluidContainer copy() {
return new FluidHandlerSidedWrapper(fluidHandler, coverHandler, side);
public int getTanks() {
return fluidHandler.getTanks();
}

@NotNull
@Override
public FluidHolder getFluidInTank(int tank) {
public FluidStack getFluidInTank(int tank) {
return fluidHandler.getFluidInTank(tank);
}

@Override
public long getTankCapacity(int tank) {
public int getTankCapacity(int tank) {
return fluidHandler.getTankCapacity(tank);
}

@Override
public void fromContainer(FluidContainer container) {
if (container instanceof FluidHandlerSidedWrapper wrapper) {
fluidHandler = wrapper.fluidHandler;
coverHandler = wrapper.coverHandler;
side = wrapper.side;
}
}

@Override
public long extractFromSlot(FluidHolder fluidHolder, FluidHolder toInsert, Runnable snapshot) {
return fluidHandler.extractFromSlot(fluidHolder, toInsert, snapshot);
}

@Override
public boolean isFluidValid(int tank, @NotNull FluidHolder stack) {
public boolean isFluidValid(int tank, @NotNull FluidStack stack) {
return fluidHandler.isFluidValid(tank, stack);
}

@Override
public FluidContainer getFluidContainer() {
return this;
}

@Override
public long insertFluid(FluidHolder resource, boolean simulate) {
public int fill(FluidStack resource, FluidAction action) {
if (coverHandler != null) {
if (coverHandler.get(side).blocksInput(FluidContainer.class, side)) {
if (coverHandler.get(side).blocksInput(IFluidHandler.class, side)) {
return 0;
}
long oldAmount = resource.getFluidAmount();
if(coverHandler.onTransfer(resource, side, true, simulate)) return oldAmount - resource.getFluidAmount();
int oldAmount = resource.getAmount();
if(coverHandler.onTransfer(resource, side, true, action.simulate())) return oldAmount - resource.getAmount();
}

if (!fluidHandler.canInput(resource, side) || !fluidHandler.canInput(side)) {
return 0;
}
return fluidHandler.insertFluid(resource, simulate);
return fluidHandler.fill(resource, action);
}

@NotNull
@Override
public FluidHolder extractFluid(FluidHolder resource, boolean simulate) {
if (coverHandler != null && (coverHandler.get(side).blocksOutput(FluidContainer.class, side) || coverHandler.onTransfer(resource, side, false, simulate))) {
return FluidHooks.emptyFluid();
public FluidStack drain(FluidStack resource, FluidAction action) {
if (coverHandler != null && (coverHandler.get(side).blocksOutput(IFluidHandler.class, side) || coverHandler.onTransfer(resource, side, false, action.simulate()))) {
return FluidStack.EMPTY;
}
if (!fluidHandler.canOutput(side)) return FluidHooks.emptyFluid();
return fluidHandler.extractFluid(resource, simulate);
}

@Override
public void setFluid(int slot, FluidHolder fluid) {
fluidHandler.setFluid(slot, fluid);
}

@Override
public List<FluidHolder> getFluids() {
return fluidHandler.getFluids();
if (!fluidHandler.canOutput(side)) return FluidStack.EMPTY;
return fluidHandler.drain(resource, action);
}

@Override
Expand All @@ -114,18 +77,13 @@ public int getPriority(Direction direction) {
}

@Override
public boolean allowsExtraction() {
return fluidHandler.allowsExtraction();
public boolean canOutput() {
return fluidHandler.canOutput();
}

@Override
public FluidSnapshot createSnapshot() {
return fluidHandler.createSnapshot();
}

@Override
public boolean allowsInsertion() {
return fluidHandler.allowsInsertion();
public boolean canInput() {
return fluidHandler.canInput();
}

@Override
Expand All @@ -139,27 +97,7 @@ public boolean canOutput(Direction direction) {
}

@Override
public boolean canInput(FluidHolder fluid, Direction direction) {
public boolean canInput(FluidStack fluid, Direction direction) {
return fluidHandler.canInput(fluid, direction);
}

@Override
public void deserialize(CompoundTag nbt) {
fluidHandler.deserialize(nbt);
}

@Override
public CompoundTag serialize(CompoundTag nbt) {
return fluidHandler.serialize(nbt);
}

@Override
public void clearContent() {
fluidHandler.clearContent();
}

@Override
public void readSnapshot(FluidSnapshot snapshot) {
fluidHandler.readSnapshot(snapshot);
}
}

0 comments on commit dd13b56

Please sign in to comment.