From 10c7d711def6d07555c0ac03d949341362c0db22 Mon Sep 17 00:00:00 2001 From: GreatWyrm Date: Tue, 4 Feb 2025 04:24:30 -0800 Subject: [PATCH] Remove precipitation enum and add boolean (#2648) --- .../net/minestom/server/world/biome/Biome.java | 14 +++++--------- .../net/minestom/server/world/biome/BiomeImpl.java | 13 ++++--------- 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/src/main/java/net/minestom/server/world/biome/Biome.java b/src/main/java/net/minestom/server/world/biome/Biome.java index 30ba781b3..474a8bb91 100644 --- a/src/main/java/net/minestom/server/world/biome/Biome.java +++ b/src/main/java/net/minestom/server/world/biome/Biome.java @@ -37,16 +37,12 @@ public sealed interface Biome extends Biomes, ProtocolObject permits BiomeImpl { @NotNull BiomeEffects effects(); - @NotNull Precipitation precipitation(); + boolean hasPrecipitation(); @NotNull TemperatureModifier temperatureModifier(); @Nullable Registry.BiomeEntry registry(); - enum Precipitation { - NONE, RAIN, SNOW; - } - enum TemperatureModifier { NONE, FROZEN; } @@ -78,7 +74,7 @@ public sealed interface Biome extends Biomes, ProtocolObject permits BiomeImpl { private float temperature = 0.25f; private float downfall = 0.8f; private BiomeEffects effects = DEFAULT_EFFECTS; - private Precipitation precipitation = Precipitation.RAIN; + private boolean hasPrecipitation = false; private TemperatureModifier temperatureModifier = TemperatureModifier.NONE; private Builder() { @@ -103,8 +99,8 @@ public sealed interface Biome extends Biomes, ProtocolObject permits BiomeImpl { } @Contract(value = "_ -> this", pure = true) - public @NotNull Builder precipitation(@NotNull Biome.Precipitation precipitation) { - this.precipitation = precipitation; + public @NotNull Builder hasPrecipitation(boolean precipitation) { + this.hasPrecipitation = precipitation; return this; } @@ -116,7 +112,7 @@ public sealed interface Biome extends Biomes, ProtocolObject permits BiomeImpl { @Contract(pure = true) public @NotNull Biome build() { - return new BiomeImpl(temperature, downfall, effects, precipitation, temperatureModifier, null); + return new BiomeImpl(temperature, downfall, effects, hasPrecipitation, temperatureModifier, null); } } } diff --git a/src/main/java/net/minestom/server/world/biome/BiomeImpl.java b/src/main/java/net/minestom/server/world/biome/BiomeImpl.java index 2d64aebe1..fa16a5c14 100644 --- a/src/main/java/net/minestom/server/world/biome/BiomeImpl.java +++ b/src/main/java/net/minestom/server/world/biome/BiomeImpl.java @@ -12,12 +12,12 @@ record BiomeImpl( float temperature, float downfall, @NotNull BiomeEffects effects, - @NotNull Precipitation precipitation, + boolean hasPrecipitation, @NotNull TemperatureModifier temperatureModifier, @Nullable Registry.BiomeEntry registry ) implements Biome { // https://minecraft.wiki/w/Rain - private final static Double SNOW_TEMPERATURE = 0.15; + private final static double SNOW_TEMPERATURE = 0.15; static final BinaryTagSerializer REGISTRY_NBT_TYPE = BinaryTagSerializer.COMPOUND.map( tag -> { @@ -27,8 +27,7 @@ record BiomeImpl( CompoundBinaryTag.Builder builder = CompoundBinaryTag.builder() .putFloat("temperature", biome.temperature()) .putFloat("downfall", biome.downfall()) - .putByte("has_precipitation", (byte) (biome.precipitation() == Precipitation.NONE ? 0 : 1)) - .putString("precipitation", biome.precipitation().name().toLowerCase(Locale.ROOT)); + .putBoolean("has_precipitation", biome.hasPrecipitation()); if (biome.temperatureModifier() != TemperatureModifier.NONE) builder.putString("temperature_modifier", biome.temperatureModifier().name().toLowerCase(Locale.ROOT)); return builder @@ -39,11 +38,7 @@ record BiomeImpl( BiomeImpl(Registry.BiomeEntry entry) { this(entry.temperature(), entry.downfall(), getBuilder(entry).build(), - entry.hasPrecipitation() - ? entry.temperature() < SNOW_TEMPERATURE - ? Precipitation.SNOW - : Precipitation.RAIN - : Precipitation.NONE, + entry.hasPrecipitation(), entry.temperature() < SNOW_TEMPERATURE ? TemperatureModifier.FROZEN : TemperatureModifier.NONE, entry );