49 lines
1.5 KiB
Java
49 lines
1.5 KiB
Java
package net.halbear.supernova.custom.fluid;
|
|
|
|
import net.minecraft.fluid.Fluid;
|
|
import net.minecraft.util.ResourceLocation;
|
|
|
|
import java.util.function.BiFunction;
|
|
|
|
public class SupernovaFluidAttributes {
|
|
|
|
private final boolean flammable;
|
|
private final boolean ExpandsGas;
|
|
private final ResourceLocation OverlayTexture;
|
|
|
|
protected SupernovaFluidAttributes(SupernovaFluidBuilder ExtendedBuilder, Fluid fluid) {
|
|
this.flammable = ExtendedBuilder.flammable;
|
|
this.ExpandsGas = ExtendedBuilder.ExpandsGas;
|
|
this.OverlayTexture = ExtendedBuilder.OverlayTexture;
|
|
}
|
|
|
|
public static SupernovaFluidBuilder Supernovabuilder(ResourceLocation OVERLAY_TEXTURE) {
|
|
return new SupernovaFluidBuilder(OVERLAY_TEXTURE, SupernovaFluidAttributes::new);
|
|
}
|
|
|
|
public static class SupernovaFluidBuilder {
|
|
|
|
private ResourceLocation OverlayTexture;
|
|
private boolean flammable;
|
|
private boolean ExpandsGas;
|
|
|
|
private BiFunction<SupernovaFluidBuilder, Fluid, SupernovaFluidAttributes> factory;
|
|
|
|
protected SupernovaFluidBuilder(ResourceLocation OVERLAY_TEXTURE, BiFunction<SupernovaFluidBuilder, Fluid, SupernovaFluidAttributes> factory) {
|
|
this.factory = factory;
|
|
this.OverlayTexture = OVERLAY_TEXTURE;
|
|
}
|
|
|
|
public final SupernovaFluidBuilder Flammable() {
|
|
this.flammable = true;
|
|
return this;
|
|
}
|
|
|
|
public final SupernovaFluidBuilder GasExpands() {
|
|
this.ExpandsGas = true;
|
|
return this;
|
|
}
|
|
}
|
|
|
|
}
|