From 23bd1765362514b00117dab007c969f90ee76782 Mon Sep 17 00:00:00 2001 From: kedor <99351777+aure31@users.noreply.github.com> Date: Thu, 9 Jul 2026 18:10:37 +0200 Subject: [PATCH 1/4] adding world clock to the generation --- .../kotlin/de/snowii/extractor/Extractor.kt | 1 + .../snowii/extractor/extractors/WorldClock.kt | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 src/main/kotlin/de/snowii/extractor/extractors/WorldClock.kt diff --git a/src/main/kotlin/de/snowii/extractor/Extractor.kt b/src/main/kotlin/de/snowii/extractor/Extractor.kt index e56fd4c..56e7471 100644 --- a/src/main/kotlin/de/snowii/extractor/Extractor.kt +++ b/src/main/kotlin/de/snowii/extractor/Extractor.kt @@ -90,6 +90,7 @@ class Extractor : ModInitializer { CustomStats(), Stats(), SlotRanges(), + WorldClock(), /* ChunkDumpTests.NoiseDump( "no_blend_no_beard_0_0.chunk", 0, diff --git a/src/main/kotlin/de/snowii/extractor/extractors/WorldClock.kt b/src/main/kotlin/de/snowii/extractor/extractors/WorldClock.kt new file mode 100644 index 0000000..1eed1cf --- /dev/null +++ b/src/main/kotlin/de/snowii/extractor/extractors/WorldClock.kt @@ -0,0 +1,26 @@ +package de.snowii.extractor.extractors + +import com.google.gson.JsonArray +import com.google.gson.JsonElement +import de.snowii.extractor.Extractor +import net.minecraft.core.registries.Registries +import net.minecraft.server.MinecraftServer + +class WorldClock : Extractor.Extractor { + override fun fileName(): String { + return "world_clock.json" + } + + override fun extract(server: MinecraftServer): JsonElement { + val worldClockJson = JsonArray() + val registry = + server.registryAccess().lookupOrThrow(Registries.WORLD_CLOCK) + for (event in registry) { + worldClockJson.add( + registry.getKey(event)!!.path, + ) + } + + return worldClockJson + } +} \ No newline at end of file From 2a26f39956ca944953d036536762d2234a518bda Mon Sep 17 00:00:00 2001 From: kedor <99351777+aure31@users.noreply.github.com> Date: Thu, 9 Jul 2026 18:17:47 +0200 Subject: [PATCH 2/4] renaming event to clock --- src/main/kotlin/de/snowii/extractor/extractors/WorldClock.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/de/snowii/extractor/extractors/WorldClock.kt b/src/main/kotlin/de/snowii/extractor/extractors/WorldClock.kt index 1eed1cf..dd06a84 100644 --- a/src/main/kotlin/de/snowii/extractor/extractors/WorldClock.kt +++ b/src/main/kotlin/de/snowii/extractor/extractors/WorldClock.kt @@ -15,9 +15,9 @@ class WorldClock : Extractor.Extractor { val worldClockJson = JsonArray() val registry = server.registryAccess().lookupOrThrow(Registries.WORLD_CLOCK) - for (event in registry) { + for (clock in registry) { worldClockJson.add( - registry.getKey(event)!!.path, + registry.getKey(clock)!!.path, ) } From 2201f1477dcd80c59f52232a0d8706c7a25bdc00 Mon Sep 17 00:00:00 2001 From: kedor <99351777+aure31@users.noreply.github.com> Date: Thu, 9 Jul 2026 18:39:00 +0200 Subject: [PATCH 3/4] adding timeline --- .../kotlin/de/snowii/extractor/Extractor.kt | 1 + .../snowii/extractor/extractors/TimeLine.kt | 33 +++++++++++++++++++ .../snowii/extractor/extractors/WorldClock.kt | 1 + 3 files changed, 35 insertions(+) create mode 100644 src/main/kotlin/de/snowii/extractor/extractors/TimeLine.kt diff --git a/src/main/kotlin/de/snowii/extractor/Extractor.kt b/src/main/kotlin/de/snowii/extractor/Extractor.kt index 56e7471..c244425 100644 --- a/src/main/kotlin/de/snowii/extractor/Extractor.kt +++ b/src/main/kotlin/de/snowii/extractor/Extractor.kt @@ -91,6 +91,7 @@ class Extractor : ModInitializer { Stats(), SlotRanges(), WorldClock(), + TimeLine(), /* ChunkDumpTests.NoiseDump( "no_blend_no_beard_0_0.chunk", 0, diff --git a/src/main/kotlin/de/snowii/extractor/extractors/TimeLine.kt b/src/main/kotlin/de/snowii/extractor/extractors/TimeLine.kt new file mode 100644 index 0000000..1ab7e58 --- /dev/null +++ b/src/main/kotlin/de/snowii/extractor/extractors/TimeLine.kt @@ -0,0 +1,33 @@ +package de.snowii.extractor.extractors + +import com.google.gson.JsonArray +import com.google.gson.JsonElement +import com.google.gson.JsonObject +import com.mojang.serialization.JsonOps +import de.snowii.extractor.Extractor +import net.minecraft.core.registries.Registries +import net.minecraft.server.MinecraftServer +import net.minecraft.world.timeline.Timeline + +class TimeLine : Extractor.Extractor { + override fun fileName(): String { + return "timeline.json" + } + + override fun extract(server: MinecraftServer): JsonElement { + val worldClockJson = JsonObject() + val ops = server.registryAccess().createSerializationContext(JsonOps.INSTANCE) + val registry = + server.registryAccess().lookupOrThrow(Registries.TIMELINE) + for (timeline in registry) { + val sub = Timeline.DIRECT_CODEC + .encodeStart(ops,timeline) + .getOrThrow() as JsonObject; + worldClockJson.add( + registry.getKey(timeline)!!.path, + sub + ) + } + return worldClockJson + } +} \ No newline at end of file diff --git a/src/main/kotlin/de/snowii/extractor/extractors/WorldClock.kt b/src/main/kotlin/de/snowii/extractor/extractors/WorldClock.kt index dd06a84..c8ef9a4 100644 --- a/src/main/kotlin/de/snowii/extractor/extractors/WorldClock.kt +++ b/src/main/kotlin/de/snowii/extractor/extractors/WorldClock.kt @@ -15,6 +15,7 @@ class WorldClock : Extractor.Extractor { val worldClockJson = JsonArray() val registry = server.registryAccess().lookupOrThrow(Registries.WORLD_CLOCK) + for (clock in registry) { worldClockJson.add( registry.getKey(clock)!!.path, From ef7341af49321c395f6411fda01340013f8f4916 Mon Sep 17 00:00:00 2001 From: kedor <99351777+aure31@users.noreply.github.com> Date: Thu, 9 Jul 2026 19:08:53 +0200 Subject: [PATCH 4/4] adding environment attribute --- .../kotlin/de/snowii/extractor/Extractor.kt | 1 + .../extractors/EnvironmentAttribute.kt | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 src/main/kotlin/de/snowii/extractor/extractors/EnvironmentAttribute.kt diff --git a/src/main/kotlin/de/snowii/extractor/Extractor.kt b/src/main/kotlin/de/snowii/extractor/Extractor.kt index c244425..27a9aea 100644 --- a/src/main/kotlin/de/snowii/extractor/Extractor.kt +++ b/src/main/kotlin/de/snowii/extractor/Extractor.kt @@ -92,6 +92,7 @@ class Extractor : ModInitializer { SlotRanges(), WorldClock(), TimeLine(), + EnvironmentAttribute(), /* ChunkDumpTests.NoiseDump( "no_blend_no_beard_0_0.chunk", 0, diff --git a/src/main/kotlin/de/snowii/extractor/extractors/EnvironmentAttribute.kt b/src/main/kotlin/de/snowii/extractor/extractors/EnvironmentAttribute.kt new file mode 100644 index 0000000..08c8e5c --- /dev/null +++ b/src/main/kotlin/de/snowii/extractor/extractors/EnvironmentAttribute.kt @@ -0,0 +1,32 @@ +package de.snowii.extractor.extractors + +import com.google.gson.JsonElement +import com.google.gson.JsonObject +import com.mojang.serialization.JsonOps +import de.snowii.extractor.Extractor +import net.minecraft.core.registries.Registries +import net.minecraft.server.MinecraftServer +import net.minecraft.world.attribute.EnvironmentAttributes + +class EnvironmentAttribute : Extractor.Extractor { + override fun fileName(): String { + return "environement_attribute.json" + } + + override fun extract(server: MinecraftServer): JsonElement { + val environnementAttribute = JsonObject() + val ops = server.registryAccess().createSerializationContext(JsonOps.INSTANCE) + val registry = + server.registryAccess().lookupOrThrow(Registries.ENVIRONMENT_ATTRIBUTE) + for (attribute in registry) { + val sub = EnvironmentAttributes.CODEC + .encodeStart(ops,attribute) + .getOrThrow() as JsonObject; + environnementAttribute.add( + registry.getKey(attribute)!!.path, + sub + ) + } + return environnementAttribute + } +} \ No newline at end of file