From 02d36c338782ec2e1d2ccbcd9e246dffbc291799 Mon Sep 17 00:00:00 2001 From: tech22 <37029404+TechLord22@users.noreply.github.com> Date: Fri, 28 Jan 2022 00:33:54 -0500 Subject: [PATCH] some ct support --- .../api/fluids/fluidType/FluidType.java | 29 ++++++++++++++++++- .../api/fluids/fluidType/FluidTypes.java | 13 +++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/main/java/gregtech/api/fluids/fluidType/FluidType.java b/src/main/java/gregtech/api/fluids/fluidType/FluidType.java index 3824c1aab3f..0f34faeacf9 100644 --- a/src/main/java/gregtech/api/fluids/fluidType/FluidType.java +++ b/src/main/java/gregtech/api/fluids/fluidType/FluidType.java @@ -1,13 +1,24 @@ package gregtech.api.fluids.fluidType; +import crafttweaker.annotations.ZenRegister; +import crafttweaker.api.liquid.ILiquidStack; +import gregtech.api.GTValues; +import gregtech.api.GregTechAPI; import gregtech.api.unification.material.Material; +import gregtech.api.util.GTLog; import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fml.common.Optional; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenGetter; +import stanhebben.zenscript.annotations.ZenMethod; import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.HashMap; import java.util.Map; +@ZenClass() +@ZenRegister public abstract class FluidType { private static final Map FLUID_TYPES = new HashMap<>(); @@ -29,7 +40,7 @@ public FluidType(@Nonnull String name, @Nonnull String prefix, @Nonnull String s } public String getNameForMaterial(@Nonnull Material material) { - return this.prefix + "." + material.toString() + "." + this.suffix; + return this.prefix + "." + material + "." + this.suffix; } public static void setFluidProperties(@Nonnull FluidType fluidType, @Nonnull Fluid fluid) { @@ -38,19 +49,35 @@ public static void setFluidProperties(@Nonnull FluidType fluidType, @Nonnull Flu protected abstract void setFluidProperties(@Nonnull Fluid fluid); + @ZenMethod + @Optional.Method(modid = GTValues.MODID_CT) + public static void setFluidPropertiesCT(FluidType fluidType, @Nonnull ILiquidStack liquidStack) { + Material material = GregTechAPI.MATERIAL_REGISTRY.getObject(liquidStack.getName()); + if (material == null) { + GTLog.logger.warn("LiquidStack {} does not have a FluidProperty!", liquidStack.getName()); + return; + } + + fluidType.setFluidProperties(material.getFluid()); + } + + @ZenGetter public String getLocalization() { return this.localization; } + @ZenGetter public String getPrefix() { return this.prefix; } + @ZenGetter public String getName() { return this.name; } @Nullable + @ZenMethod public static FluidType getByName(@Nonnull String name) { return FLUID_TYPES.get(name); } diff --git a/src/main/java/gregtech/api/fluids/fluidType/FluidTypes.java b/src/main/java/gregtech/api/fluids/fluidType/FluidTypes.java index c1d3c2b7458..4b2f90d45dd 100644 --- a/src/main/java/gregtech/api/fluids/fluidType/FluidTypes.java +++ b/src/main/java/gregtech/api/fluids/fluidType/FluidTypes.java @@ -1,9 +1,22 @@ package gregtech.api.fluids.fluidType; +import crafttweaker.annotations.ZenRegister; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenProperty; + +@ZenClass("mods.gregtech.material.FluidTypes") +@ZenRegister public class FluidTypes { + @ZenProperty public static final FluidType LIQUID = new FluidTypeLiquid("liquid", "", "", "gregtech.fluid.generic"); + + @ZenProperty public static final FluidType ACID = new FluidTypeAcid("acid", "", "", "gregtech.fluid.generic"); + + @ZenProperty public static final FluidType GAS = new FluidTypeGas("gas", "", "", "gregtech.fluid.generic"); + + @ZenProperty public static final FluidType PLASMA = new FluidTypePlasma("plasma", "plasma", "", "gregtech.fluid.plasma"); }