mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-15 04:54:05 +09:00
not reading material csv issue fixed
This commit is contained in:
@@ -44,11 +44,15 @@ open class GameWorld {
|
||||
val loadTime: Long = System.currentTimeMillis() / 1000L
|
||||
|
||||
//layers
|
||||
@TEMzPayload("WALL", TEMzPayload.EIGHT_MSB)
|
||||
val layerWall: MapLayer
|
||||
@TEMzPayload("TERR", TEMzPayload.EIGHT_MSB)
|
||||
val layerTerrain: MapLayer
|
||||
//val layerWire: MapLayer
|
||||
|
||||
@TEMzPayload("WALL", TEMzPayload.FOUR_LSB)
|
||||
val layerWallLowBits: PairedMapLayer
|
||||
@TEMzPayload("TERR", TEMzPayload.FOUR_LSB)
|
||||
val layerTerrainLowBits: PairedMapLayer
|
||||
|
||||
//val layerThermal: MapLayerHalfFloat // in Kelvins
|
||||
@@ -59,11 +63,17 @@ open class GameWorld {
|
||||
/** Tilewise spawn point */
|
||||
var spawnY: Int
|
||||
|
||||
@TEMzPayload("WdMG", TEMzPayload.INT48_FLOAT_PAIR)
|
||||
val wallDamages: HashMap<BlockAddress, Float>
|
||||
@TEMzPayload("TdMG", TEMzPayload.INT48_FLOAT_PAIR)
|
||||
val terrainDamages: HashMap<BlockAddress, Float>
|
||||
@TEMzPayload("FlTP", TEMzPayload.INT48_SHORT_PAIR)
|
||||
val fluidTypes: HashMap<BlockAddress, FluidType>
|
||||
@TEMzPayload("FlFL", TEMzPayload.INT48_FLOAT_PAIR)
|
||||
val fluidFills: HashMap<BlockAddress, Float>
|
||||
@TEMzPayload("CtYP", TEMzPayload.INT48_INT_PAIR)
|
||||
val conduitTypes: HashMap<BlockAddress, Int> // 1 bit = 1 conduit (pipe/wire) type
|
||||
@TEMzPayload("CfL", TEMzPayload.INT48_FLOAT_PAIR)
|
||||
val conduitFills: Array<HashMap<BlockAddress, Float>>
|
||||
val conduitFills0: HashMap<BlockAddress, Float> // size of liquid packet on the block
|
||||
get() = conduitFills[0]
|
||||
@@ -483,4 +493,21 @@ infix fun Float.fmod(other: Float) = if (this >= 0f) this % other else (this % o
|
||||
inline class FluidType(val value: Int) {
|
||||
infix fun sameAs(other: FluidType) = this.value.absoluteValue == other.value.absoluteValue
|
||||
fun abs() = this.value.absoluteValue
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param payloadName Payload name defined in Map Data Format.txt
|
||||
* * 4 Letters: regular payload
|
||||
* * 3 Letters: only valid for arrays with 16 elements, names are auto-generated by appending '0'..'9'+'a'..'f'. E.g.: 'CfL' turns into 'CfL0', 'CfL1' ... 'CfLe', 'CfLf'
|
||||
*
|
||||
* @param arg 0 for 8 MSBs of Terrain/Wall layer, 1 for 4 LSBs of Terrain/Wall layer, 2 for Int48-Float pair, 3 for Int48-Short pair, 4 for Int48-Int pair
|
||||
*/
|
||||
annotation class TEMzPayload(val payloadName: String, val arg: Int) {
|
||||
companion object {
|
||||
const val EIGHT_MSB = 0
|
||||
const val FOUR_LSB = 1
|
||||
const val INT48_FLOAT_PAIR = 2
|
||||
const val INT48_SHORT_PAIR = 3
|
||||
const val INT48_INT_PAIR = 4
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user