From 9ce15dc70ab44107567c4b18d9b75a20282d15d7 Mon Sep 17 00:00:00 2001 From: EmmaTheMartian Date: Thu, 10 Jul 2025 16:09:16 -0500 Subject: [PATCH] Add capacity to fluid tank data --- .../dan200/computercraft/shared/details/FluidDetails.java | 1 + .../dan200/computercraft/shared/details/FluidData.java | 2 ++ .../shared/peripheral/generic/methods/FluidMethods.java | 8 +++++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/projects/fabric/src/main/java/dan200/computercraft/shared/details/FluidDetails.java b/projects/fabric/src/main/java/dan200/computercraft/shared/details/FluidDetails.java index 3263982276..0fb60673a7 100644 --- a/projects/fabric/src/main/java/dan200/computercraft/shared/details/FluidDetails.java +++ b/projects/fabric/src/main/java/dan200/computercraft/shared/details/FluidDetails.java @@ -21,6 +21,7 @@ public class FluidDetails { public static void fillBasic(Map data, StorageView fluid) { data.put("name", DetailHelpers.getId(BuiltInRegistries.FLUID, fluid.getResource().getFluid())); data.put("amount", fluid.getAmount()); + data.put("capacity", fluid.getCapacity()); } public static void fill(Map data, StorageView fluid) { diff --git a/projects/forge/src/main/java/dan200/computercraft/shared/details/FluidData.java b/projects/forge/src/main/java/dan200/computercraft/shared/details/FluidData.java index 8fcf72c497..a24ad05351 100644 --- a/projects/forge/src/main/java/dan200/computercraft/shared/details/FluidData.java +++ b/projects/forge/src/main/java/dan200/computercraft/shared/details/FluidData.java @@ -13,6 +13,8 @@ public class FluidData { public static void fillBasic(Map data, FluidStack stack) { data.put("name", DetailHelpers.getId(BuiltInRegistries.FLUID, stack.getFluid())); data.put("amount", stack.getAmount()); + // "capacity" is added manually elsewhere since FluidStack does not contain a capacity. + // See: dan200.computercraft.shared.peripheral.generic.methods.FluidMethods#tanks } public static void fill(Map data, FluidStack stack) { diff --git a/projects/forge/src/main/java/dan200/computercraft/shared/peripheral/generic/methods/FluidMethods.java b/projects/forge/src/main/java/dan200/computercraft/shared/peripheral/generic/methods/FluidMethods.java index 7b1286a147..07a9d7ad52 100644 --- a/projects/forge/src/main/java/dan200/computercraft/shared/peripheral/generic/methods/FluidMethods.java +++ b/projects/forge/src/main/java/dan200/computercraft/shared/peripheral/generic/methods/FluidMethods.java @@ -35,7 +35,13 @@ public final class FluidMethods extends AbstractFluidMethods { var size = fluids.getTanks(); for (var i = 0; i < size; i++) { var stack = fluids.getFluidInTank(i); - if (!stack.isEmpty()) result.put(i + 1, ForgeDetailRegistries.FLUID_STACK.getBasicDetails(stack)); + if (!stack.isEmpty()) { + var data = ForgeDetailRegistries.FLUID_STACK.getBasicDetails(stack); + // FluidStacks do not keep capacity, meaning the DetailRegistry cannot add it by itself. We'll + // add it manually here instead. + data.put("capacity", fluids.getTankCapacity(i)); + result.put(i + 1, data); + } } return result;