Rename MaterialModifier to TileModifier

This commit is contained in:
DBotThePony 2024-03-28 21:54:55 +07:00
parent 0c60dd6a02
commit 77f19b77ff
Signed by: DBot
GPG Key ID: DCC23B5715498507
11 changed files with 27 additions and 34 deletions

View File

@ -34,7 +34,7 @@ import ru.dbotthepony.kstarbound.defs.animation.ParticleConfig
import ru.dbotthepony.kstarbound.defs.projectile.ProjectileDefinition import ru.dbotthepony.kstarbound.defs.projectile.ProjectileDefinition
import ru.dbotthepony.kstarbound.defs.quest.QuestTemplate import ru.dbotthepony.kstarbound.defs.quest.QuestTemplate
import ru.dbotthepony.kstarbound.defs.tile.LiquidDefinition import ru.dbotthepony.kstarbound.defs.tile.LiquidDefinition
import ru.dbotthepony.kstarbound.defs.tile.MaterialModifier import ru.dbotthepony.kstarbound.defs.tile.TileModifierDefinition
import ru.dbotthepony.kstarbound.defs.tile.TileDefinition import ru.dbotthepony.kstarbound.defs.tile.TileDefinition
import ru.dbotthepony.kstarbound.defs.world.BushVariant import ru.dbotthepony.kstarbound.defs.world.BushVariant
import ru.dbotthepony.kstarbound.defs.world.GrassVariant import ru.dbotthepony.kstarbound.defs.world.GrassVariant
@ -59,7 +59,7 @@ object Registries {
} }
val tiles = Registry<TileDefinition>("tiles").also(registriesInternal::add).also { adapters.add(it.adapter()) } val tiles = Registry<TileDefinition>("tiles").also(registriesInternal::add).also { adapters.add(it.adapter()) }
val tileModifiers = Registry<MaterialModifier>("tile modifiers").also(registriesInternal::add).also { adapters.add(it.adapter()) } val tileModifiers = Registry<TileModifierDefinition>("tile modifiers").also(registriesInternal::add).also { adapters.add(it.adapter()) }
val liquid = Registry<LiquidDefinition>("liquid").also(registriesInternal::add).also { adapters.add(it.adapter()) } val liquid = Registry<LiquidDefinition>("liquid").also(registriesInternal::add).also { adapters.add(it.adapter()) }
val species = Registry<Species>("species").also(registriesInternal::add).also { adapters.add(it.adapter()) } val species = Registry<Species>("species").also(registriesInternal::add).also { adapters.add(it.adapter()) }
val statusEffects = Registry<StatusEffectDefinition>("status effect").also(registriesInternal::add).also { adapters.add(it.adapter()) } val statusEffects = Registry<StatusEffectDefinition>("status effect").also(registriesInternal::add).also { adapters.add(it.adapter()) }
@ -144,7 +144,7 @@ object Registries {
tasks.addAll(loadTerrainSelectors(fileTree["terrain"] ?: listOf())) tasks.addAll(loadTerrainSelectors(fileTree["terrain"] ?: listOf()))
tasks.addAll(loadRegistry(tiles, fileTree["material"] ?: listOf(), key(TileDefinition::materialName, TileDefinition::materialId))) tasks.addAll(loadRegistry(tiles, fileTree["material"] ?: listOf(), key(TileDefinition::materialName, TileDefinition::materialId)))
tasks.addAll(loadRegistry(tileModifiers, fileTree["matmod"] ?: listOf(), key(MaterialModifier::modName, MaterialModifier::modId))) tasks.addAll(loadRegistry(tileModifiers, fileTree["matmod"] ?: listOf(), key(TileModifierDefinition::modName, TileModifierDefinition::modId)))
tasks.addAll(loadRegistry(liquid, fileTree["liquid"] ?: listOf(), key(LiquidDefinition::name, LiquidDefinition::liquidId))) tasks.addAll(loadRegistry(liquid, fileTree["liquid"] ?: listOf(), key(LiquidDefinition::name, LiquidDefinition::liquidId)))
tasks.addAll(loadRegistry(worldObjects, fileTree["object"] ?: listOf(), key(ObjectDefinition::objectName))) tasks.addAll(loadRegistry(worldObjects, fileTree["object"] ?: listOf(), key(ObjectDefinition::objectName)))

View File

@ -14,14 +14,12 @@ import ru.dbotthepony.kstarbound.client.gl.*
import ru.dbotthepony.kstarbound.client.gl.shader.UberShader import ru.dbotthepony.kstarbound.client.gl.shader.UberShader
import ru.dbotthepony.kstarbound.client.gl.vertex.* import ru.dbotthepony.kstarbound.client.gl.vertex.*
import ru.dbotthepony.kstarbound.defs.tile.* import ru.dbotthepony.kstarbound.defs.tile.*
import ru.dbotthepony.kstarbound.util.random.staticRandom32
import ru.dbotthepony.kstarbound.util.random.staticRandomFloat import ru.dbotthepony.kstarbound.util.random.staticRandomFloat
import ru.dbotthepony.kstarbound.world.api.ITileAccess import ru.dbotthepony.kstarbound.world.api.ITileAccess
import ru.dbotthepony.kstarbound.world.api.AbstractTileState import ru.dbotthepony.kstarbound.world.api.AbstractTileState
import ru.dbotthepony.kstarbound.world.api.TileColor import ru.dbotthepony.kstarbound.world.api.TileColor
import java.time.Duration import java.time.Duration
import java.util.concurrent.Callable import java.util.concurrent.Callable
import kotlin.math.absoluteValue
import kotlin.math.roundToInt import kotlin.math.roundToInt
/** /**
@ -103,7 +101,7 @@ private class TileEqualityTester(val definition: TileDefinition) : EqualityRuleT
} }
} }
private class ModifierEqualityTester(val definition: MaterialModifier) : EqualityRuleTester { private class ModifierEqualityTester(val definition: TileModifierDefinition) : EqualityRuleTester {
override fun test(thisTile: AbstractTileState?, otherTile: AbstractTileState?): Boolean { override fun test(thisTile: AbstractTileState?, otherTile: AbstractTileState?): Boolean {
return otherTile?.modifier?.value == definition return otherTile?.modifier?.value == definition
} }
@ -121,7 +119,7 @@ class TileRenderer(val renderers: TileRenderers, val def: IRenderableTile) {
val equalityTester: EqualityRuleTester = when (def) { val equalityTester: EqualityRuleTester = when (def) {
is TileDefinition -> TileEqualityTester(def) is TileDefinition -> TileEqualityTester(def)
is MaterialModifier -> ModifierEqualityTester(def) is TileModifierDefinition -> ModifierEqualityTester(def)
else -> throw IllegalStateException() else -> throw IllegalStateException()
} }

View File

@ -8,7 +8,7 @@ import ru.dbotthepony.kstarbound.json.builder.JsonFactory
import ru.dbotthepony.kstarbound.json.builder.JsonFlat import ru.dbotthepony.kstarbound.json.builder.JsonFlat
@JsonFactory @JsonFactory
data class MaterialModifier( data class TileModifierDefinition(
val modId: Int, val modId: Int,
val modName: String, val modName: String,
val itemDrop: String? = null, val itemDrop: String? = null,

View File

@ -9,7 +9,6 @@ import ru.dbotthepony.kstarbound.Starbound
import ru.dbotthepony.kstarbound.collect.WeightedList import ru.dbotthepony.kstarbound.collect.WeightedList
import ru.dbotthepony.kstarbound.defs.AssetReference import ru.dbotthepony.kstarbound.defs.AssetReference
import ru.dbotthepony.kstarbound.defs.JsonConfigFunction import ru.dbotthepony.kstarbound.defs.JsonConfigFunction
import ru.dbotthepony.kstarbound.defs.tile.MaterialModifier
import ru.dbotthepony.kstarbound.defs.tile.TileDefinition import ru.dbotthepony.kstarbound.defs.tile.TileDefinition
import ru.dbotthepony.kstarbound.json.NativeLegacy import ru.dbotthepony.kstarbound.json.NativeLegacy
import ru.dbotthepony.kstarbound.json.builder.JsonFactory import ru.dbotthepony.kstarbound.json.builder.JsonFactory

View File

@ -5,7 +5,6 @@ import com.google.common.collect.ImmutableSet
import com.google.gson.Gson import com.google.gson.Gson
import com.google.gson.JsonArray import com.google.gson.JsonArray
import com.google.gson.JsonElement import com.google.gson.JsonElement
import com.google.gson.JsonObject
import com.google.gson.JsonPrimitive import com.google.gson.JsonPrimitive
import com.google.gson.JsonSyntaxException import com.google.gson.JsonSyntaxException
import com.google.gson.TypeAdapter import com.google.gson.TypeAdapter
@ -21,7 +20,7 @@ import ru.dbotthepony.kstarbound.Registry
import ru.dbotthepony.kstarbound.Starbound import ru.dbotthepony.kstarbound.Starbound
import ru.dbotthepony.kstarbound.collect.WeightedList import ru.dbotthepony.kstarbound.collect.WeightedList
import ru.dbotthepony.kstarbound.defs.PerlinNoiseParameters import ru.dbotthepony.kstarbound.defs.PerlinNoiseParameters
import ru.dbotthepony.kstarbound.defs.tile.MaterialModifier import ru.dbotthepony.kstarbound.defs.tile.TileModifierDefinition
import ru.dbotthepony.kstarbound.json.NativeLegacy import ru.dbotthepony.kstarbound.json.NativeLegacy
import ru.dbotthepony.kstarbound.json.builder.JsonFactory import ru.dbotthepony.kstarbound.json.builder.JsonFactory
import ru.dbotthepony.kstarbound.json.builder.JsonFlat import ru.dbotthepony.kstarbound.json.builder.JsonFlat
@ -31,8 +30,8 @@ import java.util.stream.Stream
@JsonFactory @JsonFactory
data class BiomePlaceables( data class BiomePlaceables(
val grassMod: NativeLegacy.TileMod = NativeLegacy.TileMod(null as Registry.Ref<MaterialModifier>?), val grassMod: NativeLegacy.TileMod = NativeLegacy.TileMod(null as Registry.Ref<TileModifierDefinition>?),
val ceilingGrassMod: NativeLegacy.TileMod = NativeLegacy.TileMod(null as Registry.Ref<MaterialModifier>?), val ceilingGrassMod: NativeLegacy.TileMod = NativeLegacy.TileMod(null as Registry.Ref<TileModifierDefinition>?),
val grassModDensity: Double = 0.0, val grassModDensity: Double = 0.0,
val ceilingGrassModDensity: Double = 0.0, val ceilingGrassModDensity: Double = 0.0,
val itemDistributions: ImmutableList<DistributionItem> = ImmutableList.of(), val itemDistributions: ImmutableList<DistributionItem> = ImmutableList.of(),

View File

@ -10,12 +10,11 @@ import ru.dbotthepony.kstarbound.Registry
import ru.dbotthepony.kstarbound.collect.WeightedList import ru.dbotthepony.kstarbound.collect.WeightedList
import ru.dbotthepony.kstarbound.defs.AssetReference import ru.dbotthepony.kstarbound.defs.AssetReference
import ru.dbotthepony.kstarbound.defs.PerlinNoiseParameters import ru.dbotthepony.kstarbound.defs.PerlinNoiseParameters
import ru.dbotthepony.kstarbound.defs.tile.MaterialModifier import ru.dbotthepony.kstarbound.defs.tile.TileModifierDefinition
import ru.dbotthepony.kstarbound.json.NativeLegacy import ru.dbotthepony.kstarbound.json.NativeLegacy
import ru.dbotthepony.kstarbound.json.builder.IStringSerializable import ru.dbotthepony.kstarbound.json.builder.IStringSerializable
import ru.dbotthepony.kstarbound.json.builder.JsonFactory import ru.dbotthepony.kstarbound.json.builder.JsonFactory
import ru.dbotthepony.kstarbound.json.builder.JsonFlat import ru.dbotthepony.kstarbound.json.builder.JsonFlat
import ru.dbotthepony.kstarbound.json.builder.JsonSingleton
import ru.dbotthepony.kstarbound.util.random.AbstractPerlinNoise import ru.dbotthepony.kstarbound.util.random.AbstractPerlinNoise
import ru.dbotthepony.kstarbound.util.random.nextRange import ru.dbotthepony.kstarbound.util.random.nextRange
import ru.dbotthepony.kstarbound.util.random.random import ru.dbotthepony.kstarbound.util.random.random
@ -23,9 +22,9 @@ import java.util.stream.IntStream
@JsonFactory @JsonFactory
data class BiomePlaceablesDefinition( data class BiomePlaceablesDefinition(
val grassMod: ImmutableList<Registry.Ref<MaterialModifier>> = ImmutableList.of(), val grassMod: ImmutableList<Registry.Ref<TileModifierDefinition>> = ImmutableList.of(),
val grassModDensity: Double = 0.0, val grassModDensity: Double = 0.0,
val ceilingGrassMod: ImmutableList<Registry.Ref<MaterialModifier>> = ImmutableList.of(), val ceilingGrassMod: ImmutableList<Registry.Ref<TileModifierDefinition>> = ImmutableList.of(),
val ceilingGrassModDensity: Double = 0.0, val ceilingGrassModDensity: Double = 0.0,
val items: ImmutableList<DistributionItem> = ImmutableList.of(), val items: ImmutableList<DistributionItem> = ImmutableList.of(),
) { ) {

View File

@ -12,8 +12,7 @@ import ru.dbotthepony.kommons.util.KOptional
import ru.dbotthepony.kstarbound.Registries import ru.dbotthepony.kstarbound.Registries
import ru.dbotthepony.kstarbound.Registry import ru.dbotthepony.kstarbound.Registry
import ru.dbotthepony.kstarbound.Starbound import ru.dbotthepony.kstarbound.Starbound
import ru.dbotthepony.kstarbound.defs.tile.BuiltinMetaMaterials import ru.dbotthepony.kstarbound.defs.tile.TileModifierDefinition
import ru.dbotthepony.kstarbound.defs.tile.MaterialModifier
import ru.dbotthepony.kstarbound.defs.tile.TileDefinition import ru.dbotthepony.kstarbound.defs.tile.TileDefinition
import java.lang.reflect.Constructor import java.lang.reflect.Constructor
import java.lang.reflect.ParameterizedType import java.lang.reflect.ParameterizedType
@ -74,26 +73,26 @@ abstract class NativeLegacy<NATIVE, LEGACY> {
} }
} }
class TileMod() : NativeLegacy<Registry.Ref<MaterialModifier>, Int?>() { class TileMod() : NativeLegacy<Registry.Ref<TileModifierDefinition>, Int?>() {
constructor(tile: Registry.Entry<MaterialModifier>?) : this() { constructor(tile: Registry.Entry<TileModifierDefinition>?) : this() {
if (tile == null) if (tile == null)
legacyValue = KOptional(65535) legacyValue = KOptional(65535)
else else
nativeValue = KOptional(tile.ref) nativeValue = KOptional(tile.ref)
} }
constructor(tile: Registry.Ref<MaterialModifier>?) : this() { constructor(tile: Registry.Ref<TileModifierDefinition>?) : this() {
if (tile == null) if (tile == null)
legacyValue = KOptional(65535) legacyValue = KOptional(65535)
else else
nativeValue = KOptional(tile) nativeValue = KOptional(tile)
} }
override fun computeLegacy(value: Registry.Ref<MaterialModifier>): Int { override fun computeLegacy(value: Registry.Ref<TileModifierDefinition>): Int {
return value.value?.modId ?: 65535 return value.value?.modId ?: 65535
} }
override fun computeNative(value: Int?): Registry.Ref<MaterialModifier> { override fun computeNative(value: Int?): Registry.Ref<TileModifierDefinition> {
value ?: return Registries.tileModifiers.emptyRef value ?: return Registries.tileModifiers.emptyRef
return Registries.tileModifiers.ref(value) return Registries.tileModifiers.ref(value)
} }

View File

@ -8,14 +8,14 @@ class EmptyNoise(parameters: PerlinNoiseParameters) : AbstractPerlinNoise(parame
} }
override fun get(x: Double): Double { override fun get(x: Double): Double {
return 0.0 throw IllegalStateException("Tried to sample uninitialized noise")
} }
override fun get(x: Double, y: Double): Double { override fun get(x: Double, y: Double): Double {
return 0.0 throw IllegalStateException("Tried to sample uninitialized noise")
} }
override fun get(x: Double, y: Double, z: Double): Double { override fun get(x: Double, y: Double, z: Double): Double {
return 0.0 throw IllegalStateException("Tried to sample uninitialized noise")
} }
} }

View File

@ -4,16 +4,15 @@ import com.github.benmanes.caffeine.cache.Interner
import ru.dbotthepony.kstarbound.Registry import ru.dbotthepony.kstarbound.Registry
import ru.dbotthepony.kstarbound.Starbound import ru.dbotthepony.kstarbound.Starbound
import ru.dbotthepony.kstarbound.defs.tile.BuiltinMetaMaterials import ru.dbotthepony.kstarbound.defs.tile.BuiltinMetaMaterials
import ru.dbotthepony.kstarbound.defs.tile.MaterialModifier import ru.dbotthepony.kstarbound.defs.tile.TileModifierDefinition
import ru.dbotthepony.kstarbound.defs.tile.TileDefinition import ru.dbotthepony.kstarbound.defs.tile.TileDefinition
import ru.dbotthepony.kstarbound.network.LegacyNetworkTileState import ru.dbotthepony.kstarbound.network.LegacyNetworkTileState
import ru.dbotthepony.kstarbound.util.HashTableInterner
import java.io.DataInputStream import java.io.DataInputStream
import java.io.DataOutputStream import java.io.DataOutputStream
sealed class AbstractTileState { sealed class AbstractTileState {
abstract val material: Registry.Entry<TileDefinition> abstract val material: Registry.Entry<TileDefinition>
abstract val modifier: Registry.Entry<MaterialModifier>? abstract val modifier: Registry.Entry<TileModifierDefinition>?
abstract val color: TileColor abstract val color: TileColor
abstract val hueShift: Float abstract val hueShift: Float
abstract val modifierHueShift: Float abstract val modifierHueShift: Float

View File

@ -2,13 +2,13 @@ package ru.dbotthepony.kstarbound.world.api
import ru.dbotthepony.kstarbound.Registry import ru.dbotthepony.kstarbound.Registry
import ru.dbotthepony.kstarbound.defs.tile.BuiltinMetaMaterials import ru.dbotthepony.kstarbound.defs.tile.BuiltinMetaMaterials
import ru.dbotthepony.kstarbound.defs.tile.MaterialModifier import ru.dbotthepony.kstarbound.defs.tile.TileModifierDefinition
import ru.dbotthepony.kstarbound.defs.tile.TileDefinition import ru.dbotthepony.kstarbound.defs.tile.TileDefinition
import ru.dbotthepony.kstarbound.network.LegacyNetworkTileState import ru.dbotthepony.kstarbound.network.LegacyNetworkTileState
data class ImmutableTileState( data class ImmutableTileState(
override var material: Registry.Entry<TileDefinition> = BuiltinMetaMaterials.NULL, override var material: Registry.Entry<TileDefinition> = BuiltinMetaMaterials.NULL,
override var modifier: Registry.Entry<MaterialModifier>? = null, override var modifier: Registry.Entry<TileModifierDefinition>? = null,
override var color: TileColor = TileColor.DEFAULT, override var color: TileColor = TileColor.DEFAULT,
override var hueShift: Float = 0f, override var hueShift: Float = 0f,
override var modifierHueShift: Float = 0f, override var modifierHueShift: Float = 0f,

View File

@ -3,13 +3,13 @@ package ru.dbotthepony.kstarbound.world.api
import ru.dbotthepony.kstarbound.Registries import ru.dbotthepony.kstarbound.Registries
import ru.dbotthepony.kstarbound.Registry import ru.dbotthepony.kstarbound.Registry
import ru.dbotthepony.kstarbound.defs.tile.BuiltinMetaMaterials import ru.dbotthepony.kstarbound.defs.tile.BuiltinMetaMaterials
import ru.dbotthepony.kstarbound.defs.tile.MaterialModifier import ru.dbotthepony.kstarbound.defs.tile.TileModifierDefinition
import ru.dbotthepony.kstarbound.defs.tile.TileDefinition import ru.dbotthepony.kstarbound.defs.tile.TileDefinition
import java.io.DataInputStream import java.io.DataInputStream
data class MutableTileState( data class MutableTileState(
override var material: Registry.Entry<TileDefinition> = BuiltinMetaMaterials.NULL, override var material: Registry.Entry<TileDefinition> = BuiltinMetaMaterials.NULL,
override var modifier: Registry.Entry<MaterialModifier>? = null, override var modifier: Registry.Entry<TileModifierDefinition>? = null,
override var color: TileColor = TileColor.DEFAULT, override var color: TileColor = TileColor.DEFAULT,
override var hueShift: Float = 0f, override var hueShift: Float = 0f,
override var modifierHueShift: Float = 0f, override var modifierHueShift: Float = 0f,