diff --git a/src/main/java/de/bixilon/minosoft/data/registries/blocks/entites/BlockEntityTypeRegistry.kt b/src/main/java/de/bixilon/minosoft/data/registries/blocks/entites/BlockEntityTypeRegistry.kt index 412f29dd2..6d91739c1 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/blocks/entites/BlockEntityTypeRegistry.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/blocks/entites/BlockEntityTypeRegistry.kt @@ -30,6 +30,13 @@ class BlockEntityTypeRegistry( return blockTypeMap[block] ?: parentRegistry?.get(block) } + override fun get(any: Any?): BlockEntityType<*>? { + if (any is Block) { + return get(any) + } + return super.get(any) + } + override fun initialize(data: Map?, registries: Registries?, deserializer: ResourceLocationDeserializer>?, flattened: Boolean, metaType: MetaTypes, alternative: AbstractRegistry>?): Registry> { super.initialize(data, registries, deserializer, flattened, metaType, alternative) diff --git a/src/main/java/de/bixilon/minosoft/data/registries/registries/Registries.kt b/src/main/java/de/bixilon/minosoft/data/registries/registries/Registries.kt index c9f3fcd36..167fabd07 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/registries/Registries.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/registries/Registries.kt @@ -179,6 +179,7 @@ class Registries { field.get(this).unsafeCast>().postInit(this) } isFullyLoaded = true + shapes.clear() } private fun loadShapes(pixlyzerData: Map?) { diff --git a/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/Registry.kt b/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/Registry.kt index 7cf2aa02b..a1a925bf6 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/Registry.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/Registry.kt @@ -78,18 +78,14 @@ open class Registry( idValueMap[any] = value valueIdMap[value] = any } - is ResourceLocation -> { - resourceLocationMap[any] = value - } - is ResourceLocationAble -> { - resourceLocationMap[any.resourceLocation] = value - } + is ResourceLocation -> resourceLocationMap[any] = value + is ResourceLocationAble -> resourceLocationMap[any.resourceLocation] = value is MultiResourceLocationAble -> { for (resourceLocation in any.ALIASES) { resourceLocationMap[resourceLocation] = value } } - else -> TODO() + else -> TODO("Can not set $any, value=$value") } } diff --git a/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/RegistryItem.kt b/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/RegistryItem.kt index 1ac7e2245..c4b7008cb 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/RegistryItem.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/RegistryItem.kt @@ -1,6 +1,6 @@ /* * Minosoft - * Copyright (C) 2021 Moritz Zwerger + * Copyright (C) 2020-2022 Moritz Zwerger * * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * @@ -39,8 +39,7 @@ abstract class RegistryItem : ResourceLocationAble { val javaField = field.javaField ?: continue var value: Any? = null for (key in keys) { - val currentValue = registries[javaField.type as Class]?.get(key) ?: continue - value = currentValue + value = registries[javaField.type as Class]?.get(key) ?: continue break } value ?: continue