block: option to provide translation key

This commit is contained in:
Moritz Zwerger 2023-10-07 19:17:13 +02:00
parent dcfe89d739
commit 17fb146850
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
3 changed files with 7 additions and 2 deletions

View File

@ -15,22 +15,26 @@ package de.bixilon.minosoft.data.registries.blocks.settings
import de.bixilon.kutil.json.JsonObject
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
import de.bixilon.minosoft.data.registries.registries.Registries
import de.bixilon.minosoft.data.registries.sound.SoundGroup
import de.bixilon.minosoft.protocol.versions.Version
import de.bixilon.minosoft.util.KUtil.toResourceLocation
class BlockSettings(
val version: Version,
val soundGroup: SoundGroup? = null,
val translationKey: ResourceLocation? = null,
) {
companion object {
fun of(version: Version, registries: Registries, data: JsonObject): BlockSettings {
val soundGroup = data["sound_group"]?.toInt()?.let { registries.soundGroup[it] }
val translationKey = data["translation_key"]?.toResourceLocation()
return BlockSettings(version, soundGroup = soundGroup)
return BlockSettings(version, soundGroup = soundGroup, translationKey = translationKey)
}
}
}

View File

@ -42,7 +42,7 @@ abstract class Block(
var model: BlockRender? = null
override val translationKey: ResourceLocation = identifier.translation("block")
override val translationKey: ResourceLocation = settings.translationKey ?: identifier.translation("block")
@Deprecated("Interface")
var tintProvider: TintProvider? = null

View File

@ -29,6 +29,7 @@ import kotlin.reflect.jvm.javaField
abstract class BlockItem<T : Block>(identifier: ResourceLocation) : Item(identifier), StackableItem, PlaceableItem {
val block: T = unsafeNull()
protected abstract val _block: Identified
override val translationKey: ResourceLocation get() = block.translationKey
override var model: ItemRender?
get() = super.model ?: block.model ?: block.states.default.model
set(value) {