fix integrated block tests and don't replace block states

This commit is contained in:
Moritz Zwerger 2023-10-07 21:48:45 +02:00
parent adf16fe156
commit 42d135b98a
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
6 changed files with 15 additions and 9 deletions

View File

@ -154,7 +154,7 @@ object VerifyIntegratedBlockRegistry {
continue
}
val parsed = PixLyzerBlock.deserialize(registries, identifier, value).unsafeCast<PixLyzerBlock>()
registries.block.flattened(parsed, value, registries)
registries.block.flattened(parsed, value, registries, false)
parsed.postInit(registries)
parsed.inject(registries)

View File

@ -20,7 +20,7 @@ import de.bixilon.minosoft.data.registries.blocks.MinecraftBlocks
import de.bixilon.minosoft.data.registries.identified.Namespaces.minecraft
import de.bixilon.minosoft.data.registries.item.MinecraftItems
import de.bixilon.minosoft.data.registries.registries.Registries
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_1_19_3
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_1_17
import de.bixilon.minosoft.protocol.versions.Version
import de.bixilon.minosoft.protocol.versions.Versions
import org.testng.Assert.assertEquals
@ -57,7 +57,7 @@ abstract class RegistryLoadingTest(val versionName: String) {
}
fun biome() {
if (version > V_1_19_3) return // biomes are datapack only in those versions -> empty registry
if (version >= V_1_17) throw SkipException("Biomes are datapack only")
assertNotNull(registries.biome[minecraft("plains")]?.identifier)
}

View File

@ -68,7 +68,7 @@ class InitializeS2CPTest {
fun vanilla_1_7_10() {
val packet = PacketReadingTestUtil.read("initialize/vanilla_1_7_10", "1.7.10", constructor = ::InitializeS2CP)
assertEquals(packet.gamemode, Gamemodes.CREATIVE)
assertEquals(packet.dimension?.effects, OverworldEffects.identifier)
assertEquals(packet.dimension?.effects, OverworldEffects)
assertNull(packet.registries)
}
}

View File

@ -83,7 +83,7 @@ class BlockRegistry(
block.updateStates(states, default, properties.mapValues { it.value.toTypedArray() })
}
fun flattened(block: Block, data: JsonObject, registries: Registries) {
fun flattened(block: Block, data: JsonObject, registries: Registries, addBlockStates: Boolean) {
val properties: MutableMap<BlockProperty<*>, MutableSet<Any>> = mutableMapOf()
val states: MutableSet<BlockState> = ObjectOpenHashSet()
@ -92,7 +92,9 @@ class BlockRegistry(
val state = if (block is BlockStateBuilder) block.buildState(settings) else AdvancedBlockState(block, settings)
states += state
registries.blockState[stateId.toInt()] = state
if (addBlockStates) {
registries.blockState[stateId.toInt()] = state
}
if (state !is PropertyBlockState) continue
@ -120,7 +122,7 @@ class BlockRegistry(
}
if (flattened) {
flattened(block, data, registries)
flattened(block, data, registries, true)
} else {
legacy(block, data, registries)
}

View File

@ -16,12 +16,16 @@ package de.bixilon.minosoft.data.registries.blocks.types.dirt
import de.bixilon.minosoft.data.registries.blocks.factory.BlockFactory
import de.bixilon.minosoft.data.registries.blocks.settings.BlockSettings
import de.bixilon.minosoft.data.registries.blocks.types.legacy.FlatteningRenamedModel
import de.bixilon.minosoft.data.registries.blocks.types.properties.item.BlockWithItem
import de.bixilon.minosoft.data.registries.blocks.types.properties.shape.special.FullOpaqueBlock
import de.bixilon.minosoft.data.registries.identified.Namespaces.minecraft
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
import de.bixilon.minosoft.data.registries.item.items.Item
import de.bixilon.minosoft.data.registries.item.items.tool.shovel.ShovelRequirement
import de.bixilon.minosoft.data.registries.registries.Registries
open class GrassBlock(identifier: ResourceLocation = Companion.identifier, settings: BlockSettings) : SnowyBlock(identifier, settings), FullOpaqueBlock, FlatteningRenamedModel {
open class GrassBlock(identifier: ResourceLocation = Companion.identifier, settings: BlockSettings) : SnowyBlock(identifier, settings), FullOpaqueBlock, FlatteningRenamedModel, ShovelRequirement, BlockWithItem<Item> {
override val item: Item = this::item.inject(identifier)
override val hardness get() = 0.6f
override val legacyModelName get() = minecraft("grass")

View File

@ -58,7 +58,7 @@ class BlockStateRegistry(var flattened: Boolean) : AbstractRegistry<BlockState?>
internal operator fun set(id: Int, state: BlockState) {
val previous = idMap.put(id, state)
if (previous != null) {
Log.log(LogMessageType.LOADING, LogLevels.WARN) { "Block $state just replaced $previous (id=$id)" }
Log.log(LogMessageType.LOADING, LogLevels.WARN) { "Block state $state just replaced $previous (id=$id)" }
}
}