Skip to content

Commit

Permalink
some improvements for BiomeUtils
Browse files Browse the repository at this point in the history
  • Loading branch information
Brokkonaut committed Jan 25, 2023
1 parent 634e8f0 commit bd87033
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 22 deletions.
Expand Up @@ -7,7 +7,7 @@
import org.bukkit.NamespacedKey;

public interface BiomeUtils {
CustomBiome registerCustomBiome(NamespacedKey id, float downfall, float temperature, Precipitation precipitation, int fogColor, int waterColor, int waterFogColor, int skyColor, Integer foliageColor, Integer grassColor);
CustomBiome registerCustomBiome(NamespacedKey id, float downfall, float temperature, Precipitation precipitation, Integer fogColor, Integer waterColor, Integer waterFogColor, Integer skyColor, Integer foliageColor, Integer grassColor);

CustomBiome getCustomBiome(NamespacedKey id);

Expand Down
@@ -1,5 +1,12 @@
package de.cubeside.nmsutils.biome;

import org.bukkit.Location;
import org.bukkit.NamespacedKey;

public interface CustomBiome {

NamespacedKey getId();

boolean setBiome(Location location);

}
Expand Up @@ -57,7 +57,7 @@ public NMSUtils getNMSUtils() {
}

@Override
public CustomBiome registerCustomBiome(NamespacedKey id, float downfall, float temperature, de.cubeside.nmsutils.biome.Precipitation precipitation, int fogColor, int waterColor, int waterFogColor, int skyColor, Integer foliageColor, Integer grassColor) {
public CustomBiome registerCustomBiome(NamespacedKey id, float downfall, float temperature, de.cubeside.nmsutils.biome.Precipitation precipitation, Integer fogColor, Integer waterColor, Integer waterFogColor, Integer skyColor, Integer foliageColor, Integer grassColor) {
nmsUtils.getPlugin().getLogger().warning("Injecting biome " + id + "!");
Server server = nmsUtils.getPlugin().getServer();
CraftServer craftserver = (CraftServer) server;
Expand All @@ -74,23 +74,6 @@ public CustomBiome registerCustomBiome(NamespacedKey id, float downfall, float t
} catch (IllegalArgumentException | IllegalAccessException e) {
throw new RuntimeException(e);
}
// Field unregisteredIntrusiveHoldersField = null;
// boolean nextIsUnregisteredIntrusiveHoldersField = false;
// for (Field f : MappedRegistry.class.getDeclaredFields()) {
// if (f.getType() == boolean.class) {
// nextIsUnregisteredIntrusiveHoldersField = true;
// f.setAccessible(true);
// } else if (nextIsUnregisteredIntrusiveHoldersField) {
// nextIsUnregisteredIntrusiveHoldersField = false;
// unregisteredIntrusiveHoldersField = f;
// unregisteredIntrusiveHoldersField.setAccessible(true);
// }
// }
// try {
// unregisteredIntrusiveHoldersField.set(registrywritable, new IdentityHashMap<>());
// } catch (IllegalArgumentException | IllegalAccessException e) {
// throw new RuntimeException(e);
// }

Biome forestbiome = registrywritable.get(oldKey);

Expand All @@ -108,7 +91,10 @@ public CustomBiome registerCustomBiome(NamespacedKey id, float downfall, float t
builder.generationSettings(forestbiome.getGenerationSettings());
builder.temperatureAdjustment(TemperatureModifier.NONE);
Builder effects = new BiomeSpecialEffects.Builder();
effects.waterColor(waterColor).waterFogColor(waterFogColor).fogColor(fogColor).skyColor(skyColor);
effects.waterColor(waterColor == null ? forestbiome.getWaterColor() : waterColor);
effects.waterFogColor(waterFogColor == null ? forestbiome.getWaterFogColor() : waterFogColor);
effects.fogColor(fogColor == null ? forestbiome.getFogColor() : fogColor);
effects.skyColor(skyColor == null ? forestbiome.getSkyColor() : skyColor);
if (foliageColor != null) {
effects.foliageColorOverride(foliageColor);
}
Expand All @@ -125,7 +111,6 @@ public CustomBiome registerCustomBiome(NamespacedKey id, float downfall, float t

try {
FIELD_MAPPED_REGISTRY_UNREGISTERED_INTRUSIVE_HOLDERS.set(registrywritable, null);
// unregisteredIntrusiveHoldersField.set(registrywritable, null);
} catch (IllegalArgumentException | IllegalAccessException e) {
throw new RuntimeException(e);
}
Expand Down
Expand Up @@ -20,10 +20,12 @@ public CustomBiomeImpl(NamespacedKey bukkitKey, ResourceKey<Biome> key, Biome bi
this.biomeHolder = biomeHolder;
}

public NamespacedKey getBukkitKey() {
@Override
public NamespacedKey getId() {
return bukkitKey;
}

@Override
public boolean setBiome(Location location) {
location.getWorld().getChunkAt(location);
Level level = ((CraftWorld) location.getWorld()).getHandle();
Expand Down

0 comments on commit bd87033

Please sign in to comment.