Support Minecraft 26.3

26.3 changed the chunk generator, biome source and structure placement
APIs, so it gets its own v26_3_R1 binding, compiled against the 26.3
dev bundle. v26_1_R1 keeps covering 26.1.2 and 26.2.

Binding changes against v26_1_R1:
- noise, surface and carvers run through a single buildTerrain stage
- the biome source hands out itself as the BiomeResolver
- structures are generated with a climate sampler, and starts are
  looked up per chunk instead of per section
- structure set salt and frequency come from the spreading placement
- biome colors are read from Vector3f attributes

Data pack format 121 with DataFixerV2603:
- biome mob spawns and creature spawn probability move into the
  natural_mob_spawns and creature_world_gen_spawn_probability attributes
  (26.3 silently ignores the old fields)
- the bed rule's "explodes" becomes "destroy_on_use", and straw beds get
  the same rule, matching vanilla

Model used: Claude Opus 5.5
This commit is contained in:
piexel committed 2026-10-12 17:35:33 +02:00
1 parent 2fc4c2faf9
commit 8a0fd9b9fc
9 files changed
+1677 -5

No files matched your search

+4 -3
View File
@@ -34,7 +34,7 @@ plugins {
}
group = "com.volmit"
version = "3.9.2-1.20.1-26.2"
version = "3.9.2-1.20.1-26.3"
apply<ApiGenerator>()
@@ -64,6 +64,7 @@ val color = "truecolor"
val errorReporting = "true" == findProperty("errorReporting")
val nmsBindings = mapOf(
"v26_3_R1" to "26.3.build.176-stable",
"v26_1_R1" to "26.1.2.build.74-stable",
"v1_21_R7" to "1.21.11-R0.1-SNAPSHOT",
"v1_21_R6" to "1.21.10-R0.1-SNAPSHOT",
@@ -77,9 +78,9 @@ val nmsBindings = mapOf(
"v1_20_R2" to "1.20.2-R0.1-SNAPSHOT",
"v1_20_R1" to "1.20.1-R0.1-SNAPSHOT",
)
val jvmVersion = mapOf("v26_1_R1" to 25)
val jvmVersion = mapOf("v26_3_R1" to 25, "v26_1_R1" to 25)
// From 26.1 on the server is not obfuscated, so these bindings compile against Paper's dev bundle as-is.
val userDevBindings = setOf("v26_1_R1")
val userDevBindings = setOf("v26_3_R1", "v26_1_R1")
nmsBindings.forEach { (key, value) ->
project(":nms:$key") {
apply<JavaPlugin>()