Path: blob/1.21.x/src/main/java/net/minecraftforge/client/model/generators/loaders/DynamicFluidContainerModelBuilder.java
7003 views
/*1* Copyright (c) Forge Development LLC and contributors2* SPDX-License-Identifier: LGPL-2.1-only3*/45package net.minecraftforge.client.model.generators.loaders;67import com.google.common.base.Preconditions;8import com.google.gson.JsonObject;9import net.minecraft.world.level.material.Fluid;10import net.minecraft.resources.ResourceLocation;11import net.minecraftforge.client.model.generators.CustomLoaderBuilder;12import net.minecraftforge.client.model.generators.ModelBuilder;13import net.minecraftforge.common.data.ExistingFileHelper;14import net.minecraftforge.registries.ForgeRegistries;1516/**17* In 1.21.4 Mojang exposed their data generators for their models. So it should be feasible to just use theirs.18* If you find something lacking feel free to open a PR so that we can extend it.19* @deprecated Use Vanilla's providers {@link net.minecraft.client.data.models.ModelProvider}20*/21public class DynamicFluidContainerModelBuilder<T extends ModelBuilder<T>> extends CustomLoaderBuilder<T>22{23private static final ResourceLocation NAME = ResourceLocation.fromNamespaceAndPath("forge", "fluid_container");24public static <T extends ModelBuilder<T>> DynamicFluidContainerModelBuilder<T> begin(T parent, ExistingFileHelper existingFileHelper)25{26return new DynamicFluidContainerModelBuilder<>(parent, existingFileHelper);27}2829private ResourceLocation fluid;30private Boolean flipGas;31private Boolean applyTint;32private Boolean coverIsMask;33private Boolean applyFluidLuminosity;3435protected DynamicFluidContainerModelBuilder(T parent, ExistingFileHelper existingFileHelper)36{37super(NAME, parent, existingFileHelper);38}3940public DynamicFluidContainerModelBuilder<T> fluid(Fluid fluid)41{42Preconditions.checkNotNull(fluid, "fluid must not be null");43this.fluid = ForgeRegistries.FLUIDS.getKey(fluid);44return this;45}4647public DynamicFluidContainerModelBuilder<T> flipGas(boolean flip)48{49this.flipGas = flip;50return this;51}5253public DynamicFluidContainerModelBuilder<T> applyTint(boolean tint)54{55this.applyTint = tint;56return this;57}5859public DynamicFluidContainerModelBuilder<T> coverIsMask(boolean coverIsMask)60{61this.coverIsMask = coverIsMask;62return this;63}6465public DynamicFluidContainerModelBuilder<T> applyFluidLuminosity(boolean applyFluidLuminosity)66{67this.applyFluidLuminosity = applyFluidLuminosity;68return this;69}7071@Override72public JsonObject toJson(JsonObject json)73{74json = super.toJson(json);7576Preconditions.checkNotNull(fluid, "fluid must not be null");7778json.addProperty("fluid", fluid.toString());7980if (flipGas != null)81json.addProperty("flip_gas", flipGas);8283if (applyTint != null)84json.addProperty("apply_tint", applyTint);8586if (coverIsMask != null)87json.addProperty("cover_is_mask", coverIsMask);8889if (applyFluidLuminosity != null)90json.addProperty("apply_fluid_luminosity", applyFluidLuminosity);9192return json;93}94}959697