diff --git a/src/main/kotlin/de/bixilon/pixlyzer/generator/Generators.kt b/src/main/kotlin/de/bixilon/pixlyzer/generator/Generators.kt index 4866289..f2118c2 100644 --- a/src/main/kotlin/de/bixilon/pixlyzer/generator/Generators.kt +++ b/src/main/kotlin/de/bixilon/pixlyzer/generator/Generators.kt @@ -13,6 +13,8 @@ object Generators { CatVariantGenerator, FrogVariantGenerator, + BiomeCategoryGenerator, + EntityDataDataTypeGenerator, MiscGenerator, ContainerTypeGenerator, diff --git a/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/BiomeCategoryGenerator.kt b/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/BiomeCategoryGenerator.kt new file mode 100644 index 0000000..47763fa --- /dev/null +++ b/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/BiomeCategoryGenerator.kt @@ -0,0 +1,20 @@ +package de.bixilon.pixlyzer.generator.generators + +import de.bixilon.pixlyzer.generator.Generator +import de.bixilon.pixlyzer.util.ReflectionUtil.getClass + +object BiomeCategoryGenerator : Generator( + "biome_categories", + allowEmpty = true, +) { + private val CATEGORY_CLASS = getClass("net.minecraft.world.biome.Biome\$Category") + + override fun generate() { + val categories = CATEGORY_CLASS?.enumConstants ?: return + for (biomeCategory in categories) { + check(biomeCategory is Enum<*>) + data[biomeCategory.ordinal] = mutableMapOf("name" to biomeCategory.name) + } + } + +} diff --git a/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/BiomeGenerator.kt b/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/BiomeGenerator.kt index df63a9f..8800961 100644 --- a/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/BiomeGenerator.kt +++ b/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/BiomeGenerator.kt @@ -20,9 +20,15 @@ object BiomeGenerator : Generator( for ((resourceLocation, id, biome) in getBiomes()) { val biomeData: MutableMap = mutableMapOf( "id" to id, - "water_color" to biome.getWaterColor(), // do not cleanuo! - "water_fog_color" to biome.getWaterFogColor(), // do not cleanuo! + "water_color" to biome.getWaterColor(), // do not clean up! + "water_fog_color" to biome.getWaterFogColor(), // do not clean up! ) + + getField(Biome::class.java, "category")?.get(biome)?.let { + check(it is Enum<*>) + biomeData["category"] = Enum::class.java.getDeclaredMethod("ordinal").apply { isAccessible = true }.invoke(it) + } + BIOME_DEPTH_FIELD?.let { biomeData["depth"] = it.getFloat(biome) } BIOME_SCALE_FIELD?.let { biomeData["scale"] = it.getFloat(biome) } diff --git a/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/DimensionGenerator.kt b/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/DimensionGenerator.kt index 427205e..b4b50fe 100644 --- a/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/DimensionGenerator.kt +++ b/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/DimensionGenerator.kt @@ -152,7 +152,6 @@ object DimensionGenerator : Generator( } } } catch (exception: Exception) { - exception.printStackTrace() } if (types.isEmpty()) {