1111import net .minecraftforge .fluids .Fluid ;
1212import net .minecraftforge .fluids .FluidRegistry ;
1313import net .minecraftforge .fluids .FluidStack ;
14+ import net .minecraftforge .fml .common .Loader ;
15+ import net .minecraftforge .fml .common .ModContainer ;
1416
1517import com .cleanroommc .modularui .api .drawable .IKey ;
1618import com .cleanroommc .modularui .screen .RichTooltip ;
@@ -133,6 +135,27 @@ public static Supplier<List<String>> createFluidTooltip(@Nullable Material mater
133135 };
134136 }
135137
138+ public static void fluidInfo (@ Nullable FluidStack stack , @ NotNull RichTooltip tooltip , boolean showAmount ,
139+ boolean showTooltip , boolean showMolAmount ) {
140+ if (stack == null ) return ;
141+
142+ if (showAmount ) {
143+ tooltip .addLine (IKey .str ("%,d L" , stack .amount ));
144+ }
145+
146+ if (showTooltip ) {
147+ handleFluidTooltip (tooltip , stack );
148+ }
149+
150+ if (showMolAmount ) {
151+ addIngotMolFluidTooltip (tooltip , stack );
152+ }
153+ }
154+
155+ public static void fluidInfo (@ Nullable FluidStack stack , @ NotNull RichTooltip tooltip ) {
156+ fluidInfo (stack , tooltip , true , true , true );
157+ }
158+
136159 public static void addIngotMolFluidTooltip (@ NotNull RichTooltip tooltip , @ NotNull FluidStack fluidStack ) {
137160 // Add tooltip showing how many "ingot moles" (increments of 144) this fluid is if shift is held
138161 if (TooltipHelper .isShiftDown () && fluidStack .amount > GTValues .L ) {
@@ -142,7 +165,27 @@ public static void addIngotMolFluidTooltip(@NotNull RichTooltip tooltip, @NotNul
142165 if (extra != 0 ) {
143166 fluidAmount += String .format (" + %d L" , extra );
144167 }
145- tooltip .add ( TextFormatting .GRAY + LocalizationUtils . format ( "gregtech.gui.amount_raw" ) + fluidAmount );
168+ tooltip .addLine ( KeyUtil . lang ( TextFormatting .GRAY , "gregtech.gui.amount_raw" , fluidAmount ) );
146169 }
147170 }
171+
172+ public static @ NotNull IKey getFluidModNameKey (@ NotNull FluidStack fluidStack ) {
173+ return IKey .str (getFluidModName (fluidStack .getFluid ()));
174+ }
175+
176+ public static @ NotNull String getFluidModName (@ NotNull FluidStack fluidStack ) {
177+ return getFluidModName (fluidStack .getFluid ());
178+ }
179+
180+ public static @ NotNull String getFluidModName (@ NotNull Fluid fluid ) {
181+ ModContainer modContainer = Loader .instance ().getIndexedModList ().get (getFluidModID (fluid ));
182+ if (modContainer == null ) throw new IllegalStateException (
183+ "Tried to get the mod name of a fluid that isn't registered to the Forge FluidRegistry" );
184+ return "§9§o" + modContainer .getName () + "§r" ;
185+ }
186+
187+ public static @ NotNull String getFluidModID (@ NotNull Fluid fluid ) {
188+ String fluidModName = FluidRegistry .getDefaultFluidName (fluid );
189+ return fluidModName .substring (0 , fluidModName .indexOf (":" ));
190+ }
148191}
0 commit comments