Skip to content

Commit

Permalink
Implemented Requested Changes
Browse files Browse the repository at this point in the history
Removed any unnecessary BUCKET_VOLUME uses
Moved new classes to appropriate packages
Renamed Fluid classes to use Handler rather than Transfer
  • Loading branch information
krossgg committed Sep 22, 2024
1 parent d63719a commit 1d4bc3f
Show file tree
Hide file tree
Showing 53 changed files with 221 additions and 241 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import com.gregtechceu.gtceu.client.renderer.GTRendererProvider;
import com.gregtechceu.gtceu.common.pipelike.fluidpipe.longdistance.LDFluidEndpointMachine;
import com.gregtechceu.gtceu.common.pipelike.item.longdistance.LDItemEndpointMachine;
import com.gregtechceu.gtceu.utils.GTUtil;
import com.gregtechceu.gtceu.utils.GTTransferUtils;

import com.lowdragmc.lowdraglib.client.renderer.IRenderer;
import com.lowdragmc.lowdraglib.gui.texture.ResourceTexture;
Expand Down Expand Up @@ -217,7 +217,7 @@ public static <T> LazyOptional<T> getCapability(MetaMachine machine, @NotNull Ca
ILDEndpoint endpoint = fluidEndpointMachine.getLink();
if (endpoint == null) return null;
Direction outputFacing = fluidEndpointMachine.getOutputFacing();
var h = GTUtil.getAdjacentFluidHandler(machine.getLevel(), endpoint.getPos(), outputFacing)
var h = GTTransferUtils.getAdjacentFluidHandler(machine.getLevel(), endpoint.getPos(), outputFacing)
.map(LDFluidEndpointMachine.FluidHandlerWrapper::new);
if (h.isPresent()) {
return ForgeCapabilities.FLUID_HANDLER.orEmpty(cap, LazyOptional.of(h::get));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package com.gregtechceu.gtceu.api.capability.recipe;

import com.gregtechceu.gtceu.api.misc.lib.FluidTransferList;
import com.gregtechceu.gtceu.api.misc.lib.TagOrCycleFluidTransfer;
import com.gregtechceu.gtceu.api.misc.lib.TankWidget;
import com.gregtechceu.gtceu.api.gui.widget.TankWidget;
import com.gregtechceu.gtceu.api.recipe.GTRecipe;
import com.gregtechceu.gtceu.api.recipe.GTRecipeType;
import com.gregtechceu.gtceu.api.recipe.content.Content;
Expand All @@ -14,7 +12,9 @@
import com.gregtechceu.gtceu.api.recipe.lookup.MapFluidTagIngredient;
import com.gregtechceu.gtceu.api.recipe.modifier.ParallelLogic;
import com.gregtechceu.gtceu.api.recipe.ui.GTRecipeTypeUI;
import com.gregtechceu.gtceu.api.transfer.fluid.FluidHandlerList;
import com.gregtechceu.gtceu.api.transfer.fluid.IFluidHandlerModifiable;
import com.gregtechceu.gtceu.api.transfer.fluid.TagOrCycleFluidHandler;
import com.gregtechceu.gtceu.client.TooltipsHandler;
import com.gregtechceu.gtceu.integration.GTRecipeWidget;
import com.gregtechceu.gtceu.utils.FluidKey;
Expand Down Expand Up @@ -150,7 +150,7 @@ public int limitParallel(GTRecipe recipe, IRecipeCapabilityHolder holder, int mu
int minMultiplier = 0;
int maxMultiplier = multiplier;

OverlayedFluidHandler overlayedFluidHandler = new OverlayedFluidHandler(new FluidTransferList(
OverlayedFluidHandler overlayedFluidHandler = new OverlayedFluidHandler(new FluidHandlerList(
Objects.requireNonNullElseGet(holder.getCapabilitiesProxy().get(IO.OUT, FluidRecipeCapability.CAP),
Collections::emptyList)
.stream()
Expand Down Expand Up @@ -302,7 +302,7 @@ public int getMaxParallelRatio(IRecipeCapabilityHolder holder, GTRecipe recipe,
public Object createXEIContainer(List<?> contents) {
// cast is safe if you don't pass the wrong thing.
// noinspection unchecked
return new TagOrCycleFluidTransfer(
return new TagOrCycleFluidHandler(
(List<Either<List<Pair<TagKey<Fluid>, Integer>>, List<FluidStack>>>) contents);
}

Expand Down Expand Up @@ -332,7 +332,7 @@ public void applyWidgetInfo(@NotNull Widget widget,
@Nullable Content content,
@Nullable Object storage) {
if (widget instanceof TankWidget tank) {
if (storage instanceof TagOrCycleFluidTransfer fluidHandler) {
if (storage instanceof TagOrCycleFluidHandler fluidHandler) {
tank.setFluidTank(fluidHandler, index);
} else if (storage instanceof IFluidHandlerModifiable fluidHandler) {
tank.setFluidTank(new OverlayingFluidStorage(fluidHandler, index));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
import com.gregtechceu.gtceu.api.fluids.attribute.FluidAttribute;
import com.gregtechceu.gtceu.api.fluids.attribute.FluidAttributes;

import net.minecraftforge.fluids.FluidType;

import it.unimi.dsi.fastutil.objects.Object2BooleanMap;
import it.unimi.dsi.fastutil.objects.Object2BooleanOpenHashMap;
import lombok.Getter;
Expand Down Expand Up @@ -103,10 +101,6 @@ public String toString() {
'}';
}

public int getPlatformThroughput() {
return getThroughput() * FluidType.BUCKET_VOLUME / 1000;
}

@Override
public boolean canContain(@NotNull FluidState state) {
return switch (state) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import java.util.Collections;
import java.util.List;

import static com.gregtechceu.gtceu.api.misc.lib.PhantomFluidWidget.drainFrom;
import static com.gregtechceu.gtceu.api.gui.widget.PhantomFluidWidget.drainFrom;

public interface IGhostFluidTarget extends IGhostIngredientTarget {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.gregtechceu.gtceu.api.misc.lib;
package com.gregtechceu.gtceu.api.gui.widget;

import com.lowdragmc.lowdraglib.LDLib;
import com.lowdragmc.lowdraglib.gui.editor.annotation.ConfigSetter;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
package com.gregtechceu.gtceu.api.gui.widget;

import com.gregtechceu.gtceu.api.misc.lib.PhantomFluidWidget;
import com.gregtechceu.gtceu.api.transfer.fluid.IFluidHandlerModifiable;
import com.gregtechceu.gtceu.utils.GTUtil;

import net.minecraft.network.FriendlyByteBuf;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidType;

import org.jetbrains.annotations.Nullable;

Expand All @@ -18,7 +16,6 @@
public class ScrollablePhantomFluidWidget extends PhantomFluidWidget {

private static final int SCROLL_ACTION_ID = 0x0001_0001;
private static final int MILLIBUCKETS = FluidType.BUCKET_VOLUME / 1000;

public ScrollablePhantomFluidWidget(@Nullable IFluidHandlerModifiable fluidTank, int tank, int x, int y, int width,
int height, Supplier<FluidStack> phantomFluidGetter,
Expand All @@ -32,7 +29,7 @@ public boolean mouseWheelMove(double mouseX, double mouseY, double wheelDelta) {
if (!isMouseOverElement(mouseX, mouseY))
return false;

var delta = getModifiedChangeAmount((wheelDelta > 0) ? 1 : -1) * MILLIBUCKETS;
var delta = getModifiedChangeAmount((wheelDelta > 0) ? 1 : -1);
writeClientAction(SCROLL_ACTION_ID, buf -> buf.writeInt(delta));

return true;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
package com.gregtechceu.gtceu.api.misc.lib;
package com.gregtechceu.gtceu.api.gui.widget;

import com.gregtechceu.gtceu.api.transfer.fluid.TagOrCycleFluidHandler;

import com.lowdragmc.lowdraglib.LDLib;
import com.lowdragmc.lowdraglib.Platform;
Expand Down Expand Up @@ -45,7 +47,6 @@
import net.minecraftforge.common.SoundActions;
import net.minecraftforge.fluids.FluidActionResult;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidType;
import net.minecraftforge.fluids.FluidUtil;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.fluids.capability.templates.FluidTank;
Expand Down Expand Up @@ -206,7 +207,7 @@ public Object getXEIIngredientOverMouse(double mouseX, double mouseY) {

if (this.fluidTank instanceof CycleFluidTransfer cycleItemStackHandler) {
return getXEIIngredientsFromCycleTransferClickable(cycleItemStackHandler, tank).get(0);
} else if (this.fluidTank instanceof TagOrCycleFluidTransfer transfer) {
} else if (this.fluidTank instanceof TagOrCycleFluidHandler transfer) {
return getXEIIngredientsFromTagOrCycleTransferClickable(transfer, tank).get(0);
}

Expand All @@ -232,7 +233,7 @@ public List<Object> getXEIIngredients() {

if (this.fluidTank instanceof CycleFluidTransfer cycleItemStackHandler) {
return getXEIIngredientsFromCycleTransfer(cycleItemStackHandler, tank);
} else if (this.fluidTank instanceof TagOrCycleFluidTransfer transfer) {
} else if (this.fluidTank instanceof TagOrCycleFluidHandler transfer) {
return getXEIIngredientsFromTagOrCycleTransfer(transfer, tank);
}

Expand Down Expand Up @@ -280,7 +281,7 @@ private List<Object> getXEIIngredientsFromCycleTransferClickable(CycleFluidTrans
return Collections.emptyList();
}

private List<Object> getXEIIngredientsFromTagOrCycleTransfer(TagOrCycleFluidTransfer transfer, int index) {
private List<Object> getXEIIngredientsFromTagOrCycleTransfer(TagOrCycleFluidHandler transfer, int index) {
Either<List<Pair<TagKey<Fluid>, Integer>>, List<FluidStack>> either = transfer
.getStacks()
.get(index);
Expand Down Expand Up @@ -317,7 +318,7 @@ private List<Object> getXEIIngredientsFromTagOrCycleTransfer(TagOrCycleFluidTran
return ref.returnValue;
}

private List<Object> getXEIIngredientsFromTagOrCycleTransferClickable(TagOrCycleFluidTransfer transfer, int index) {
private List<Object> getXEIIngredientsFromTagOrCycleTransferClickable(TagOrCycleFluidHandler transfer, int index) {
Either<List<Pair<TagKey<Fluid>, Integer>>, List<FluidStack>> either = transfer
.getStacks()
.get(index);
Expand Down Expand Up @@ -452,12 +453,11 @@ public void drawInForeground(@Nonnull GuiGraphics graphics, int mouseX, int mous
if (lastFluidInTank != null && !lastFluidInTank.isEmpty()) {
tooltips.add(lastFluidInTank.getDisplayName());
tooltips.add(Component.translatable("ldlib.fluid.amount", lastFluidInTank.getAmount(), lastTankCapacity)
.append(" " + FluidHelper.getUnit()));
.append(" mB"));
if (!Platform.isForge()) {
tooltips.add(Component.literal(
"§6mB:§r %d/%d".formatted(lastFluidInTank.getAmount() * 1000 / FluidType.BUCKET_VOLUME,
lastTankCapacity * 1000 / FluidType.BUCKET_VOLUME))
.append(" " + "mB"));
"§6mB:§r %d/%d mB".formatted(lastFluidInTank.getAmount(),
lastTankCapacity)));
}
tooltips.add(Component.translatable("ldlib.fluid.temperature",
lastFluidInTank.getFluid().getFluidType().getTemperature(lastFluidInTank)));
Expand All @@ -466,11 +466,10 @@ public void drawInForeground(@Nonnull GuiGraphics graphics, int mouseX, int mous
} else {
tooltips.add(Component.translatable("ldlib.fluid.empty"));
tooltips.add(Component.translatable("ldlib.fluid.amount", 0, lastTankCapacity)
.append(" " + FluidHelper.getUnit()));
.append(" mB"));
if (!Platform.isForge()) {
tooltips.add(Component
.literal("§6mB:§r %d/%d".formatted(0, lastTankCapacity * 1000 / FluidType.BUCKET_VOLUME))
.append(" " + "mB"));
.literal("§6mB:§r %d/%d mB".formatted(0, lastTankCapacity)));
}
}
if (gui != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import com.gregtechceu.gtceu.api.machine.feature.*;
import com.gregtechceu.gtceu.api.machine.feature.multiblock.IMultiPart;
import com.gregtechceu.gtceu.api.machine.trait.MachineTrait;
import com.gregtechceu.gtceu.api.misc.IOFluidTransferList;
import com.gregtechceu.gtceu.api.misc.IOFluidHandlerList;
import com.gregtechceu.gtceu.api.misc.IOItemTransferList;
import com.gregtechceu.gtceu.api.transfer.fluid.IFluidHandlerModifiable;
import com.gregtechceu.gtceu.common.cover.FluidFilterCover;
Expand Down Expand Up @@ -705,7 +705,7 @@ public IFluidHandlerModifiable getFluidTransferCap(@Nullable Direction side, boo
io = IO.OUT;
}

IOFluidTransferList transferList = new IOFluidTransferList(list, io, getFluidCapFilter(side));
IOFluidHandlerList transferList = new IOFluidHandlerList(list, io, getFluidCapFilter(side));
if (!useCoverCapability || side == null) return transferList;

CoverBehavior cover = getCoverContainer().getCoverAtSide(side);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
import com.gregtechceu.gtceu.common.item.IntCircuitBehaviour;
import com.gregtechceu.gtceu.config.ConfigHolder;
import com.gregtechceu.gtceu.data.lang.LangHandler;
import com.gregtechceu.gtceu.utils.GTUtil;
import com.gregtechceu.gtceu.utils.GTTransferUtils;

import com.lowdragmc.lowdraglib.gui.texture.IGuiTexture;
import com.lowdragmc.lowdraglib.gui.texture.ResourceTexture;
Expand Down Expand Up @@ -249,7 +249,7 @@ protected void updateAutoOutputSubscription() {
ItemTransferHelper.getItemTransfer(getLevel(), getPos().relative(outputFacingItems),
outputFacingItems.getOpposite()) != null ||
(isAutoOutputFluids() && !exportFluids.isEmpty()) && outputFacingFluids != null &&
GTUtil.isAdjacentFluidHandler(getLevel(), getPos(), outputFacingFluids)) {
GTTransferUtils.hasAdjacentFluidHandler(getLevel(), getPos(), outputFacingFluids)) {
autoOutputSubs = subscribeServerTick(autoOutputSubs, this::autoOutput);
} else if (autoOutputSubs != null) {
autoOutputSubs.unsubscribe();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.gregtechceu.gtceu.api.gui.GuiTextures;
import com.gregtechceu.gtceu.api.gui.fancy.IFancyConfigurator;
import com.gregtechceu.gtceu.api.misc.lib.TankWidget;
import com.gregtechceu.gtceu.api.gui.widget.TankWidget;
import com.gregtechceu.gtceu.api.transfer.fluid.CustomFluidTank;

import com.lowdragmc.lowdraglib.gui.texture.IGuiTexture;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ public void onLoad() {
super.onLoad();
// Fine, we use it to provide eu cap for recipe, simulating an EU machine.
capabilitiesProxy.put(IO.IN, EURecipeCapability.CAP,
List.of(new SteamEnergyRecipeHandler(steamTank, FluidType.BUCKET_VOLUME / 1000d)));
List.of(new SteamEnergyRecipeHandler(steamTank, 1d)));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,22 @@
import com.gregtechceu.gtceu.api.capability.recipe.IO;
import com.gregtechceu.gtceu.api.gui.GuiTextures;
import com.gregtechceu.gtceu.api.gui.UITemplate;
import com.gregtechceu.gtceu.api.gui.widget.TankWidget;
import com.gregtechceu.gtceu.api.machine.IMachineBlockEntity;
import com.gregtechceu.gtceu.api.machine.MetaMachine;
import com.gregtechceu.gtceu.api.machine.TickableSubscription;
import com.gregtechceu.gtceu.api.machine.feature.IDataInfoProvider;
import com.gregtechceu.gtceu.api.machine.feature.IExplosionMachine;
import com.gregtechceu.gtceu.api.machine.feature.IUIMachine;
import com.gregtechceu.gtceu.api.machine.trait.NotifiableFluidTank;
import com.gregtechceu.gtceu.api.misc.lib.TankWidget;
import com.gregtechceu.gtceu.api.recipe.GTRecipe;
import com.gregtechceu.gtceu.api.recipe.logic.OCParams;
import com.gregtechceu.gtceu.api.recipe.logic.OCResult;
import com.gregtechceu.gtceu.common.data.GTMaterials;
import com.gregtechceu.gtceu.common.item.PortableScannerBehavior;
import com.gregtechceu.gtceu.config.ConfigHolder;
import com.gregtechceu.gtceu.utils.FormattingUtil;
import com.gregtechceu.gtceu.utils.GTUtil;
import com.gregtechceu.gtceu.utils.GTTransferUtils;

import com.lowdragmc.lowdraglib.gui.modular.ModularUI;
import com.lowdragmc.lowdraglib.gui.texture.ProgressTexture;
Expand Down Expand Up @@ -146,7 +146,7 @@ public void onNeighborChanged(Block block, BlockPos fromPos, boolean isMoving) {

protected void updateAutoOutputSubscription() {
if (Direction.stream().filter(direction -> direction != getFrontFacing() && direction != Direction.DOWN)
.anyMatch(direction -> GTUtil.isAdjacentFluidHandler(getLevel(), getPos(), direction))) {
.anyMatch(direction -> GTTransferUtils.hasAdjacentFluidHandler(getLevel(), getPos(), direction))) {
autoOutputSubs = subscribeServerTick(autoOutputSubs, this::autoOutput);
} else if (autoOutputSubs != null) {
autoOutputSubs.unsubscribe();
Expand All @@ -158,7 +158,7 @@ protected void autoOutput() {
if (getOffsetTimer() % 5 == 0) {
steamTank.exportToNearby(Direction.stream()
.filter(direction -> direction != getFrontFacing() && direction != Direction.DOWN)
.filter(direction -> GTUtil.isAdjacentFluidHandler(getLevel(), getPos(), direction))
.filter(direction -> GTTransferUtils.hasAdjacentFluidHandler(getLevel(), getPos(), direction))
.toArray(Direction[]::new));
updateAutoOutputSubscription();
}
Expand Down Expand Up @@ -198,12 +198,12 @@ protected void updateCurrentTemperature() {
if (currentTemperature >= 100) {
int fillAmount = (int) (getBaseSteamOutput() * ((float) currentTemperature / getMaxTemperature()) /
2);
boolean hasDrainedWater = !waterTank.drainInternal(FluidType.BUCKET_VOLUME / 1000, FluidAction.EXECUTE)
boolean hasDrainedWater = !waterTank.drainInternal(1, FluidAction.EXECUTE)
.isEmpty();
var filledSteam = 0L;
if (hasDrainedWater) {
filledSteam = steamTank.fillInternal(
GTMaterials.Steam.getFluid(fillAmount * FluidType.BUCKET_VOLUME / 1000),
GTMaterials.Steam.getFluid(fillAmount),
FluidAction.EXECUTE);
}
if (this.hasNoWater && hasDrainedWater) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,36 +2,34 @@

import com.gregtechceu.gtceu.api.capability.recipe.IO;
import com.gregtechceu.gtceu.api.machine.MetaMachine;
import com.gregtechceu.gtceu.utils.GTUtil;
import com.gregtechceu.gtceu.api.transfer.fluid.IFluidHandlerModifiable;
import com.gregtechceu.gtceu.utils.GTTransferUtils;

import com.lowdragmc.lowdraglib.syncdata.field.ManagedFieldHolder;

import net.minecraft.core.Direction;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidUtil;
import net.minecraftforge.fluids.capability.IFluidHandler;

import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

/**
* @author KilaBash
* @date 2023/3/16
* @implNote FluidTankProxyTrait
*/
@Accessors(chain = true)
public class FluidTankProxyTrait extends MachineTrait implements IFluidHandler, ICapabilityTrait {
public class FluidTankProxyTrait extends MachineTrait implements IFluidHandlerModifiable, ICapabilityTrait {

public static final ManagedFieldHolder MANAGED_FIELD_HOLDER = new ManagedFieldHolder(FluidTankProxyTrait.class);
@Getter
public final IO capabilityIO;
@Setter
@Getter
@Nullable
public IFluidHandler proxy;
public IFluidHandlerModifiable proxy;

public FluidTankProxyTrait(MetaMachine machine, IO capabilityIO) {
super(machine);
Expand All @@ -58,9 +56,10 @@ public FluidStack getFluidInTank(int tank) {
return proxy == null ? FluidStack.EMPTY : proxy.getFluidInTank(tank);
}

@Override
public void setFluidInTank(int tank, @NotNull FluidStack fluidStack) {
if (proxy != null) {
// proxy.setFluidInTank(tank, fluidStack);
proxy.setFluidInTank(tank, fluidStack);
}
}

Expand Down Expand Up @@ -137,7 +136,7 @@ public void exportToNearby(Direction... facings) {
var level = getMachine().getLevel();
var pos = getMachine().getPos();
for (Direction facing : facings) {
GTUtil.getAdjacentFluidHandler(level, pos, facing).ifPresent(
GTTransferUtils.getAdjacentFluidHandler(level, pos, facing).ifPresent(
h -> FluidUtil.tryFluidTransfer(h, this, Integer.MAX_VALUE, true));
}
}
Expand Down
Loading

0 comments on commit 1d4bc3f

Please sign in to comment.