From 3acca96dcd551bf3623e338578936985678de98b Mon Sep 17 00:00:00 2001 From: stuffpicklesays Date: Tue, 25 Aug 2026 23:07:17 +0100 Subject: [PATCH 1/3] Added flammability values (burn_chance and spread_chance) --- .../com/steelextractor/extractors/Blocks.kt | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/com/steelextractor/extractors/Blocks.kt b/src/main/kotlin/com/steelextractor/extractors/Blocks.kt index 17db734..aee83e6 100644 --- a/src/main/kotlin/com/steelextractor/extractors/Blocks.kt +++ b/src/main/kotlin/com/steelextractor/extractors/Blocks.kt @@ -12,6 +12,7 @@ import net.minecraft.resources.RegistryOps import net.minecraft.server.MinecraftServer import net.minecraft.world.level.EmptyBlockGetter import net.minecraft.world.level.block.Block +import net.minecraft.world.level.block.FireBlock import net.minecraft.world.level.block.state.BlockBehaviour import net.minecraft.world.level.block.state.BlockState import net.minecraft.world.level.block.state.properties.BlockStateProperties @@ -556,6 +557,7 @@ class Blocks : SteelExtractor.Extractor { val blocksJson = JsonArray() + val fireBlock = net.minecraft.world.level.block.Blocks.FIRE as FireBlock for (block in BuiltInRegistries.BLOCK) { val blockJson = JsonObject() @@ -575,6 +577,7 @@ class Blocks : SteelExtractor.Extractor { "explosionResistance", getPrivateFieldValue(behaviourProps, "explosionResistance") ) + behaviourJson.addProperty( "isRandomlyTicking", getPrivateFieldValue(behaviourProps, "isRandomlyTicking") @@ -606,10 +609,7 @@ class Blocks : SteelExtractor.Extractor { behaviourJson.addProperty("maxVerticalOffset", getProtectedFloatMethodValue(block, "getMaxVerticalOffset")) behaviourJson.addProperty("destroyTime", getPrivateFieldValue(behaviourProps, "destroyTime")) - behaviourJson.addProperty( - "explosionResistance", - getPrivateFieldValue(behaviourProps, "explosionResistance") - ) + behaviourJson.addProperty("ignitedByLava", getPrivateFieldValue(behaviourProps, "ignitedByLava")) behaviourJson.addProperty("liquid", getPrivateFieldValue(behaviourProps, "liquid")) @@ -660,6 +660,17 @@ class Blocks : SteelExtractor.Extractor { }, ) + val igniteOddsMethod = fireBlock.javaClass.getDeclaredMethod("getIgniteOdds", BlockState::class.java).apply { isAccessible = true } + val burnOddsMethod = fireBlock.javaClass.getDeclaredMethod("getBurnOdds", BlockState::class.java).apply { isAccessible = true } + + val defaultState = block.defaultBlockState() + + val spreadChance = igniteOddsMethod.invoke(fireBlock, defaultState) as Int + val burnChance = burnOddsMethod.invoke(fireBlock, defaultState) as Int + + blockJson.addProperty("spread_chance", spreadChance) + blockJson.addProperty("burn_chance", burnChance) + // Only add if there are actual differences if (behaviourJson.size() > 0) { blockJson.add("behavior_properties", behaviourJson) From 94921ada1c373eb372ec9ed55f8b3dd933420a54 Mon Sep 17 00:00:00 2001 From: stuffpicklesays Date: Tue, 25 Aug 2026 23:59:18 +0100 Subject: [PATCH 2/3] switched to single json object for flammability --- .../com/steelextractor/extractors/Blocks.kt | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main/kotlin/com/steelextractor/extractors/Blocks.kt b/src/main/kotlin/com/steelextractor/extractors/Blocks.kt index aee83e6..099ce05 100644 --- a/src/main/kotlin/com/steelextractor/extractors/Blocks.kt +++ b/src/main/kotlin/com/steelextractor/extractors/Blocks.kt @@ -558,7 +558,8 @@ class Blocks : SteelExtractor.Extractor { val blocksJson = JsonArray() val fireBlock = net.minecraft.world.level.block.Blocks.FIRE as FireBlock - + val igniteOddsMethod = fireBlock.javaClass.getDeclaredMethod("getIgniteOdds", BlockState::class.java).apply { isAccessible = true } + val burnOddsMethod = fireBlock.javaClass.getDeclaredMethod("getBurnOdds", BlockState::class.java).apply { isAccessible = true } for (block in BuiltInRegistries.BLOCK) { val blockJson = JsonObject() blockJson.addProperty("id", BuiltInRegistries.BLOCK.getId(block)) @@ -660,17 +661,18 @@ class Blocks : SteelExtractor.Extractor { }, ) - val igniteOddsMethod = fireBlock.javaClass.getDeclaredMethod("getIgniteOdds", BlockState::class.java).apply { isAccessible = true } - val burnOddsMethod = fireBlock.javaClass.getDeclaredMethod("getBurnOdds", BlockState::class.java).apply { isAccessible = true } val defaultState = block.defaultBlockState() val spreadChance = igniteOddsMethod.invoke(fireBlock, defaultState) as Int val burnChance = burnOddsMethod.invoke(fireBlock, defaultState) as Int - - blockJson.addProperty("spread_chance", spreadChance) - blockJson.addProperty("burn_chance", burnChance) - + if (spreadChance > 0 || burnChance > 0) { + val flammabilityJson = JsonObject().apply { + addProperty("spread_chance", spreadChance) + addProperty("burn_chance", burnChance) + } + blockJson.add("flammability", flammabilityJson) + } // Only add if there are actual differences if (behaviourJson.size() > 0) { blockJson.add("behavior_properties", behaviourJson) From 42bce82273ac0cbc241f2303a43f2f78a494ff58 Mon Sep 17 00:00:00 2001 From: stuffpicklesays Date: Wed, 26 Aug 2026 11:27:31 +0100 Subject: [PATCH 3/3] Removed if statement to ensure flammability is present for all blocks --- .../kotlin/com/steelextractor/extractors/Blocks.kt | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/com/steelextractor/extractors/Blocks.kt b/src/main/kotlin/com/steelextractor/extractors/Blocks.kt index 099ce05..f31f985 100644 --- a/src/main/kotlin/com/steelextractor/extractors/Blocks.kt +++ b/src/main/kotlin/com/steelextractor/extractors/Blocks.kt @@ -666,13 +666,12 @@ class Blocks : SteelExtractor.Extractor { val spreadChance = igniteOddsMethod.invoke(fireBlock, defaultState) as Int val burnChance = burnOddsMethod.invoke(fireBlock, defaultState) as Int - if (spreadChance > 0 || burnChance > 0) { - val flammabilityJson = JsonObject().apply { - addProperty("spread_chance", spreadChance) - addProperty("burn_chance", burnChance) - } - blockJson.add("flammability", flammabilityJson) + val flammabilityJson = JsonObject().apply { + addProperty("spread_chance", spreadChance) + addProperty("burn_chance", burnChance) } + blockJson.add("flammability", flammabilityJson) + // Only add if there are actual differences if (behaviourJson.size() > 0) { blockJson.add("behavior_properties", behaviourJson)