extra fields for something-props

This commit is contained in:
minjaesong
2021-09-06 10:39:31 +09:00
parent 6b86f65681
commit ec08f8d07e
9 changed files with 46 additions and 8 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -46,8 +46,6 @@ open class KVHashMap {
if (value == null) return null if (value == null) return null
// if (value is JsonPrimitive) return value.asInt
return value as Int return value as Int
} }
@@ -58,12 +56,17 @@ open class KVHashMap {
if (value is Int) if (value is Int)
return value.toDouble() return value.toDouble()
// else if (value is JsonPrimitive) return value.asDouble
return value as Double return value as Double
} }
fun getAsFloat(key: String): Float? { fun getAsFloat(key: String): Float? {
val value = get(key)
if (value == null) return null
if (value is Float) return value as Float
return getAsDouble(key)?.toFloat() return getAsDouble(key)?.toFloat()
} }
@@ -72,8 +75,6 @@ open class KVHashMap {
if (value == null) return null if (value == null) return null
// if (value is JsonPrimitive) return value.asString
return value as String return value as String
} }
@@ -82,8 +83,6 @@ open class KVHashMap {
if (value == null) return null if (value == null) return null
// if (value is JsonPrimitive) return value.asBoolean
return value as Boolean return value as Boolean
} }

View File

@@ -12,6 +12,7 @@ import com.badlogic.gdx.graphics.glutils.ShapeRenderer
import com.badlogic.gdx.utils.Disposable import com.badlogic.gdx.utils.Disposable
import com.jme3.math.FastMath import com.jme3.math.FastMath
import net.torvald.UnsafeHelper import net.torvald.UnsafeHelper
import net.torvald.gdx.graphics.Cvec
import net.torvald.random.HQRNG import net.torvald.random.HQRNG
import net.torvald.terrarum.AppLoader.* import net.torvald.terrarum.AppLoader.*
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
@@ -655,3 +656,15 @@ val FactionCodex: FactionCodex
get() = Terrarum.factionCodex get() = Terrarum.factionCodex
val Apocryphas: HashMap<String, Any> val Apocryphas: HashMap<String, Any>
get() = Terrarum.apocryphas get() = Terrarum.apocryphas
class Codex : KVHashMap() {
fun getAsCvec(key: String): Cvec? {
val value = get(key)
if (value == null) return null
return value as Cvec
}
}

View File

@@ -95,4 +95,9 @@ class BlockProp {
@Transient var rngBase0 = Math.random().toFloat() // initial cycle phase (xxxxFuncX) @Transient var rngBase0 = Math.random().toFloat() // initial cycle phase (xxxxFuncX)
@Transient var rngBase1 = Math.random().toFloat() // flicker P0, etc @Transient var rngBase1 = Math.random().toFloat() // flicker P0, etc
@Transient var rngBase2 = Math.random().toFloat() // flicker P1, etc @Transient var rngBase2 = Math.random().toFloat() // flicker P1, etc
/**
* Mainly intended to be used by third-party modules
*/
val extra = Codex()
} }

View File

@@ -1,5 +1,6 @@
package net.torvald.terrarum.blockproperties package net.torvald.terrarum.blockproperties
import net.torvald.terrarum.Codex
import net.torvald.terrarum.gameitem.ItemID import net.torvald.terrarum.gameitem.ItemID
/** /**
@@ -19,4 +20,8 @@ class WireProp {
var canBranch: Boolean = true var canBranch: Boolean = true
/**
* Mainly intended to be used by third-party modules
*/
val extra = Codex()
} }

View File

@@ -18,6 +18,11 @@ class Faction(name: String) : Comparable<Faction> {
lateinit var factionFearful: HashSet<String> lateinit var factionFearful: HashSet<String>
var referenceID: FactionID = generateUniqueID() var referenceID: FactionID = generateUniqueID()
/**
* Mainly intended to be used by third-party modules
*/
val extra = Codex()
init { init {
factionAmicable = HashSet<String>() factionAmicable = HashSet<String>()
factionNeutral = HashSet<String>() factionNeutral = HashSet<String>()

View File

@@ -143,6 +143,11 @@ abstract class GameItem(val originalID: ItemID) : Comparable<GameItem>, Cloneabl
@Transient var using = false // Always false when loaded from savegame @Transient var using = false // Always false when loaded from savegame
/**
* Mainly intended to be used by third-party modules
*/
open val extra = Codex()
/** /**
* Effects applied continuously while in pocket * Effects applied continuously while in pocket
*/ */

View File

@@ -1,6 +1,7 @@
package net.torvald.terrarum.itemproperties package net.torvald.terrarum.itemproperties
import net.torvald.terrarum.AppLoader.printmsg import net.torvald.terrarum.AppLoader.printmsg
import net.torvald.terrarum.Codex
import net.torvald.terrarum.blockproperties.floatVal import net.torvald.terrarum.blockproperties.floatVal
import net.torvald.terrarum.blockproperties.intVal import net.torvald.terrarum.blockproperties.intVal
import net.torvald.terrarum.utils.CSVFetcher import net.torvald.terrarum.utils.CSVFetcher
@@ -24,6 +25,11 @@ class Material {
var durability: Int = 0 // tools only var durability: Int = 0 // tools only
var identifier: String = "Name not set" var identifier: String = "Name not set"
/**
* Mainly intended to be used by third-party modules
*/
val extra = Codex()
} }
class MaterialCodex { class MaterialCodex {