From 31ce0b4557799f882cc5e14f29bc8d167ac81726 Mon Sep 17 00:00:00 2001 From: Bixilon Date: Mon, 5 Apr 2021 20:41:45 +0200 Subject: [PATCH] basic data test --- .../de/bixilon/pixlyzer/EntitySpawner.kt | 6 +---- .../kotlin/de/bixilon/pixlyzer/PixLyzer.kt | 10 +++++-- .../bixilon/pixlyzer/generator/Generator.kt | 2 ++ .../generator/generators/BiomeGenerator.kt | 8 ++++++ .../generators/DimensionGenerator.kt | 26 ++++++++++++++++++- 5 files changed, 44 insertions(+), 8 deletions(-) diff --git a/src/main/kotlin/de/bixilon/pixlyzer/EntitySpawner.kt b/src/main/kotlin/de/bixilon/pixlyzer/EntitySpawner.kt index bf5dc02..c99288a 100644 --- a/src/main/kotlin/de/bixilon/pixlyzer/EntitySpawner.kt +++ b/src/main/kotlin/de/bixilon/pixlyzer/EntitySpawner.kt @@ -9,8 +9,6 @@ import net.minecraft.entity.Entity import net.minecraft.entity.EntityType import net.minecraft.entity.EyeOfEnderEntity import net.minecraft.entity.decoration.ItemFrameEntity -import net.minecraft.entity.projectile.ArrowEntity -import net.minecraft.entity.projectile.SpectralArrowEntity import net.minecraft.entity.projectile.thrown.* import net.minecraft.scoreboard.Scoreboard import net.minecraft.world.World @@ -42,7 +40,7 @@ object EntitySpawner { return entity } - // ToDo: This crashed in 21w13a? + // ToDo: This crashes in 21w13a? when (entityType) { EntityType.EGG -> return OBJENSIS.newInstance(EggEntity::class.java) as Entity EntityType.SNOWBALL -> return OBJENSIS.newInstance(SnowballEntity::class.java) as Entity @@ -50,8 +48,6 @@ object EntitySpawner { EntityType.EYE_OF_ENDER -> return OBJENSIS.newInstance(EyeOfEnderEntity::class.java) as Entity EntityType.EXPERIENCE_BOTTLE -> return OBJENSIS.newInstance(ExperienceBottleEntity::class.java) as Entity EntityType.POTION -> return OBJENSIS.newInstance(PotionEntity::class.java) as Entity - EntityType.ARROW -> return OBJENSIS.newInstance(ArrowEntity::class.java) as Entity - EntityType.SPECTRAL_ARROW -> return OBJENSIS.newInstance(SpectralArrowEntity::class.java) as Entity } TODO("Entity type: $entityType") diff --git a/src/main/kotlin/de/bixilon/pixlyzer/PixLyzer.kt b/src/main/kotlin/de/bixilon/pixlyzer/PixLyzer.kt index 3ffb0b5..300ad61 100644 --- a/src/main/kotlin/de/bixilon/pixlyzer/PixLyzer.kt +++ b/src/main/kotlin/de/bixilon/pixlyzer/PixLyzer.kt @@ -77,9 +77,15 @@ object PixLyzer { println("Skipping ${generator.name}: ${exception.message}") continue } - if (generator.data.size() == 0 && !generator.allowEmpty) { - error("${generator.name} has 0 entries!") + if (generator.data.size() == 0) { + if (generator.allowEmpty) { + continue + } else { + error("${generator.name} has 0 entries!") + } } + generator.test() + println("Tests succeeded for ${generator.name}") println("Saving to ${outputDirectory.absolutePath}/${generator.name}.json") diff --git a/src/main/kotlin/de/bixilon/pixlyzer/generator/Generator.kt b/src/main/kotlin/de/bixilon/pixlyzer/generator/Generator.kt index ddbe96c..cee367b 100644 --- a/src/main/kotlin/de/bixilon/pixlyzer/generator/Generator.kt +++ b/src/main/kotlin/de/bixilon/pixlyzer/generator/Generator.kt @@ -13,4 +13,6 @@ abstract class Generator( val data = JsonObject() abstract fun generate() + + open fun test() {} } 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 8f3b2b9..c4d8d08 100644 --- a/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/BiomeGenerator.kt +++ b/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/BiomeGenerator.kt @@ -139,4 +139,12 @@ object BiomeGenerator : Generator( return ret } + + + override fun test() { + data["minecraft:ocean"].asJsonObject + data["minecraft:taiga"].asJsonObject + + check(data["minecraft:swamp"].asJsonObject["foliage_color_override"].asInt == 6975545) + } } 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 adc37a1..1f70198 100644 --- a/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/DimensionGenerator.kt +++ b/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/DimensionGenerator.kt @@ -76,6 +76,21 @@ object DimensionGenerator : Generator( dimensionData.addProperty("ambient_light", it.getFloat(dimension)) } + DIMENSION_BIOME_ZOOMER_FIELD?.get(dimension)?.let { + when (it::class.java.simpleName) { + "VoronoiBiomeAccessType" -> { + dimensionData.addProperty("supports_3d_biomes", true) + } + "HorizontalVoronoiBiomeAccessType" -> { + dimensionData.addProperty("supports_3d_biomes", false) + } + else -> { + TODO("Can not check if dimension $resourceLocation supports 3d biomes!") + } + } + } + + data.add(resourceLocation.toString(), dimensionData) } } @@ -93,7 +108,7 @@ object DimensionGenerator : Generator( private val BED_WORKS_FIELD = getField(DIMENSION_TYPE_CLASS, "bedWorks") private val RESPAWN_ANCHOR_WORKS_FIELD = getField(DIMENSION_TYPE_CLASS, "respawnAnchorWorks") private val HAS_RAIDS_FIELD = getField(DIMENSION_TYPE_CLASS, "hasRaids") - private val MIN_Y_FIELD = getField(DIMENSION_TYPE_CLASS, "minY") + private val MIN_Y_FIELD = getField(DIMENSION_TYPE_CLASS, "minimumY") private val HEIGHT_FIELD = getField(DIMENSION_TYPE_CLASS, "height") private val LOGICAL_HEIGHT_FIELD = getField(DIMENSION_TYPE_CLASS, "logicalHeight") private val INFINIBURN_FIELD = getField(DIMENSION_TYPE_CLASS, "infiniburn") @@ -105,6 +120,8 @@ object DimensionGenerator : Generator( private val RESOURCE_KEY_LOCATION_METHOD = RESOURCE_KEY_CLASS?.getDeclaredMethod("location") + private val DIMENSION_BIOME_ZOOMER_FIELD = getField(DimensionType::class.java, "biomeAccessType") + private fun getDimensions(): MutableSet> { val types: MutableSet> = mutableSetOf() @@ -151,4 +168,11 @@ object DimensionGenerator : Generator( return types } + + + override fun test() { + check(data["minecraft:overworld"].asJsonObject["has_sky_light"].asBoolean) + check(!data["minecraft:the_nether"].asJsonObject["has_sky_light"].asBoolean) + check(!data["minecraft:the_end"].asJsonObject["has_sky_light"].asBoolean) + } }