mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-12 11:34:05 +09:00
radar reading rcs from materials
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
"id";"drop";"spawn";"name";"shdr";"shdg";"shdb";"shduv";"str";"dsty";"mate";"solid";"wall";"grav";"dlfn";"fv";"fr";"lumr";"lumg";"lumb";"lumuv";"colour";"vscs";"refl";"tags"
|
"id";"drop";"spawn";"name";"shdr";"shdg";"shdb";"shduv";"str";"dsty";"mate";"solid";"wall";"grav";"dlfn";"fv";"fr";"lumr";"lumg";"lumb";"lumuv";"colour";"vscs";"refl";"tags"
|
||||||
"0";"0";"0";"BLOCK_AIR";"0.0312";"0.0312";"0.0312";"0.0312";"1";"1";"NULL";"0";"1";"N/A";"0";"0";"4";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"INCONSEQUENTIAL,AIR"
|
"0";"0";"0";"BLOCK_AIR";"0.0312";"0.0312";"0.0312";"0.0312";"1";"1";"AIIR";"0";"1";"N/A";"0";"0";"4";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"INCONSEQUENTIAL,AIR"
|
||||||
"1";"0";"0";"BLOCK_UPDATE";"0.0312";"0.0312";"0.0312";"0.0312";"1";"1";"NULL";"0";"1";"N/A";"0";"0";"4";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"INTERNAL"
|
"1";"0";"0";"BLOCK_UPDATE";"0.0312";"0.0312";"0.0312";"0.0312";"1";"1";"AIIR";"0";"1";"N/A";"0";"0";"4";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"INTERNAL"
|
||||||
"16";"17";"17";"BLOCK_STONE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"1";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"ROCK,NATURAL"
|
"16";"17";"17";"BLOCK_STONE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"1";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"ROCK,NATURAL"
|
||||||
"17";"17";"17";"BLOCK_STONE_QUARRIED";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"1";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"ROCK,NATURAL"
|
"17";"17";"17";"BLOCK_STONE_QUARRIED";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"1";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"ROCK,NATURAL"
|
||||||
"18";"18";"18";"BLOCK_STONE_TILE_WHITE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"1";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.18";"STONE"
|
"18";"18";"18";"BLOCK_STONE_TILE_WHITE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"1";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.18";"STONE"
|
||||||
|
|||||||
|
@@ -1,23 +1,26 @@
|
|||||||
idst;tens;impf;dsty;fmod;endurance;tcond;reach;comments
|
idst;tens;impf;dsty;fmod;endurance;tcond;reach;rcs;comments
|
||||||
WOOD;10;10;800;1;0.173;0.17;5;just a generic wood
|
WOOD;10;10;800;1;0.173;0.17;5;18;just a generic wood
|
||||||
ROCK;15;210;3000;1;0.42;2.9;5;data is that of marble
|
ROCK;15;210;3000;1;0.42;2.9;5;48;data is that of marble
|
||||||
OORE;15;210;3000;1;0.42;2.9;5;data is that of marble
|
OORE;15;210;3000;1;0.42;2.9;5;100;data is that of marble
|
||||||
OGEM;15;210;3000;1;0.42;2.9;5;data is that of marble
|
OGEM;15;210;3000;1;0.42;2.9;5;80;data is that of marble
|
||||||
CUPR;210;770;8960;2;1.00;401.0;5;copper
|
CUPR;210;770;8960;2;1.00;401.0;5;120;copper
|
||||||
EGLS;33;1000;2325;4;0.82;1.0;6;elven glass/moldavite
|
EGLS;33;1000;2325;4;0.82;1.0;6;10;elven glass/moldavite
|
||||||
IRON;350;1085;7874;5;1.42;80.4;6;not wrought iron,just natural iron
|
IRON;350;1085;7874;5;1.42;80.4;6;120;not wrought iron,just natural iron
|
||||||
ARGN;170;595;10490;9;0.91;429.0;6;argentum/silver
|
ARGN;170;595;10490;9;0.91;429.0;6;120;argentum/silver
|
||||||
AURM;120;350;19300;9;0.88;318.0;6;aurum/gold
|
AURM;120;350;19300;9;0.88;318.0;6;120;aurum/gold
|
||||||
STAL;531;2520;7874;14;1.73;26.0;7;steel
|
STAL;531;2520;7874;14;1.73;26.0;7;120;steel
|
||||||
EAUR;768;0;8192;21;1.36;1.0;7;elven aurichalcum
|
EAUR;768;0;8192;21;1.36;1.0;7;120;elven aurichalcum
|
||||||
TIAL;900;0;4420;33;2.16;1.0;8;titanium alloy (Ti6Al4V)
|
TIAL;900;0;4420;33;2.16;1.0;8;120;titanium alloy (Ti6Al4V)
|
||||||
ADMT;2000;4090;2700;71;3.42;1.0;8;adamant
|
ADMT;2000;4090;2700;71;3.42;1.0;8;120;adamant
|
||||||
OOZE;20;0;1000;1;0.08;0.5;0;genetic ooze,data is about human skin
|
OOZE;20;0;1000;1;0.08;0.5;0;10;genetic ooze,data is about human skin
|
||||||
BONE;130;0;2000;1;0.23;0.55;4;data is that of bovine bone
|
BONE;130;0;2000;1;0.23;0.55;4;10;data is that of bovine bone
|
||||||
BRAS;315;1015;8530;3;1.00;120;5;brass
|
BRAS;315;1015;8530;3;1.00;120;5;120;brass
|
||||||
BRNZ;310;843;8770;3;1.20;75;5;bronze
|
BRNZ;310;843;8770;3;1.20;75;5;120;bronze
|
||||||
TINN;220;350;7310;2;1.00;69;5;tin
|
TINN;220;350;7310;2;1.00;69;5;120;tin
|
||||||
ZINC;90;525;7140;2;1.00;116;5;zinc
|
ZINC;90;525;7140;2;1.00;116;5;120;zinc
|
||||||
|
DIRT;1;1;1400;0.0;0.0;36;0;10;dirt
|
||||||
|
PLST;1;1;1400;0.0;0.0;36;0;16;TODO plastic (polyethylene)
|
||||||
|
AIIR;1;1;0;0.0;0.0;36;0;1;air
|
||||||
|
|
||||||
# idst: ID_STRING, ALL CAPS
|
# idst: ID_STRING, ALL CAPS
|
||||||
#
|
#
|
||||||
|
|||||||
|
@@ -29,6 +29,8 @@ class Material {
|
|||||||
|
|
||||||
var toolReach: Int = 6
|
var toolReach: Int = 6
|
||||||
|
|
||||||
|
var rcs: Int = 10
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mainly intended to be used by third-party modules
|
* Mainly intended to be used by third-party modules
|
||||||
*/
|
*/
|
||||||
@@ -70,6 +72,7 @@ class MaterialCodex {
|
|||||||
prop.thermalConductivity = it.floatVal("tcond")
|
prop.thermalConductivity = it.floatVal("tcond")
|
||||||
prop.identifier = it.get("idst").toUpperCase()
|
prop.identifier = it.get("idst").toUpperCase()
|
||||||
prop.toolReach = it.intVal("reach")
|
prop.toolReach = it.intVal("reach")
|
||||||
|
prop.rcs = it.intVal("rcs")
|
||||||
|
|
||||||
materialProps[prop.identifier] = prop
|
materialProps[prop.identifier] = prop
|
||||||
|
|
||||||
@@ -86,6 +89,6 @@ class MaterialCodex {
|
|||||||
throw NullPointerException("Material with id $identifier does not exist.")
|
throw NullPointerException("Material with id $identifier does not exist.")
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getOrDefault(identifier: String) = materialProps[identifier.toUpperCase()] ?: nullMaterial
|
fun getOrDefault(identifier: String?) = materialProps[identifier?.toUpperCase()] ?: nullMaterial
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -2,13 +2,12 @@ package net.torvald.terrarum.modulebasegame.console
|
|||||||
|
|
||||||
import com.jme3.math.FastMath
|
import com.jme3.math.FastMath
|
||||||
import net.torvald.gdx.graphics.Cvec
|
import net.torvald.gdx.graphics.Cvec
|
||||||
import net.torvald.terrarum.App
|
import net.torvald.terrarum.*
|
||||||
import net.torvald.terrarum.BlockCodex
|
|
||||||
import net.torvald.terrarum.INGAME
|
|
||||||
import net.torvald.terrarum.blockproperties.Block
|
import net.torvald.terrarum.blockproperties.Block
|
||||||
import net.torvald.terrarum.console.ConsoleCommand
|
import net.torvald.terrarum.console.ConsoleCommand
|
||||||
import net.torvald.terrarum.console.Echo
|
import net.torvald.terrarum.console.Echo
|
||||||
import net.torvald.terrarum.console.EchoError
|
import net.torvald.terrarum.console.EchoError
|
||||||
|
import net.torvald.terrarum.gameitems.ItemID
|
||||||
import net.torvald.terrarum.gameworld.fmod
|
import net.torvald.terrarum.gameworld.fmod
|
||||||
import net.torvald.terrarum.serialise.toUint
|
import net.torvald.terrarum.serialise.toUint
|
||||||
import net.torvald.terrarum.utils.RasterWriter
|
import net.torvald.terrarum.utils.RasterWriter
|
||||||
@@ -27,17 +26,12 @@ import kotlin.math.sign
|
|||||||
*/
|
*/
|
||||||
internal object ExportMap2 : ConsoleCommand {
|
internal object ExportMap2 : ConsoleCommand {
|
||||||
|
|
||||||
//private var mapData: ByteArray? = null
|
private fun getOreRCS(ore: ItemID) =
|
||||||
// private var mapDataPointer = 0
|
ItemCodex[OreCodex.oreProps.getOrElse(ore) { null }?.item]?.material?.rcs ?: MaterialCodex.nullMaterial.rcs
|
||||||
|
private fun getBlockRCS(block: ItemID) =
|
||||||
|
MaterialCodex.getOrDefault(BlockCodex.getOrNull(block)?.material).rcs
|
||||||
|
|
||||||
|
|
||||||
private val oreColourMap = hashMapOf(
|
|
||||||
Block.AIR to 0,
|
|
||||||
"ores@basegame:1" to 160,
|
|
||||||
"ores@basegame:2" to 128,
|
|
||||||
"ores@basegame:3" to 96,
|
|
||||||
)
|
|
||||||
|
|
||||||
private fun triangularRand(amp: Float) = (((Math.random() + Math.random()) - 1.0) * amp).toFloat()
|
private fun triangularRand(amp: Float) = (((Math.random() + Math.random()) - 1.0) * amp).toFloat()
|
||||||
|
|
||||||
private fun strToRandAmp(str: Float) = FastMath.log(str.absoluteValue.coerceAtLeast(4f), 2f).coerceAtLeast(0f)
|
private fun strToRandAmp(str: Float) = FastMath.log(str.absoluteValue.coerceAtLeast(4f), 2f).coerceAtLeast(0f)
|
||||||
@@ -52,6 +46,9 @@ internal object ExportMap2 : ConsoleCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun execute(args: Array<String>) {
|
override fun execute(args: Array<String>) {
|
||||||
|
println("Air RCS: ${getBlockRCS(Block.AIR)}")
|
||||||
|
|
||||||
|
|
||||||
val world = (INGAME.world)
|
val world = (INGAME.world)
|
||||||
if (args.size == 2) {
|
if (args.size == 2) {
|
||||||
|
|
||||||
@@ -69,9 +66,7 @@ internal object ExportMap2 : ConsoleCommand {
|
|||||||
val terr = world.getTileFromTerrain(x, y)
|
val terr = world.getTileFromTerrain(x, y)
|
||||||
val ore = world.getTileFromOre(x, y).item
|
val ore = world.getTileFromOre(x, y).item
|
||||||
|
|
||||||
val colOre = (oreColourMap.get(ore) ?: throw NullPointerException("nullore $ore"))
|
val reflection0 = maxOf(getOreRCS(ore), getBlockRCS(terr))
|
||||||
val colFore = (BlockCodex.getOrNull(terr)?.strength ?: throw NullPointerException("nullterr $terr"))
|
|
||||||
val reflection0 = maxOf(colOre, colFore)
|
|
||||||
val reflection = reflection0 + triangularRand(strToRandAmp(reflection0.toFloat()))
|
val reflection = reflection0 + triangularRand(strToRandAmp(reflection0.toFloat()))
|
||||||
|
|
||||||
val delta = (reflection - akku).coerceAtLeast(0f)
|
val delta = (reflection - akku).coerceAtLeast(0f)
|
||||||
|
|||||||
@@ -44,19 +44,16 @@ class OreStick(originalID: ItemID) : OreItemBase(originalID) {
|
|||||||
}
|
}
|
||||||
class OreCopper(originalID: ItemID) : OreItemBase(originalID) {
|
class OreCopper(originalID: ItemID) : OreItemBase(originalID) {
|
||||||
override var originalName = "ITEM_ORE_MALACHITE"
|
override var originalName = "ITEM_ORE_MALACHITE"
|
||||||
override val materialId = "ROCK"
|
|
||||||
override val itemImage: TextureRegion
|
override val itemImage: TextureRegion
|
||||||
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(2,6)
|
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(2,6)
|
||||||
}
|
}
|
||||||
class OreIron(originalID: ItemID) : OreItemBase(originalID) {
|
class OreIron(originalID: ItemID) : OreItemBase(originalID) {
|
||||||
override var originalName = "ITEM_ORE_HAEMATITE"
|
override var originalName = "ITEM_ORE_HAEMATITE"
|
||||||
override val materialId = "ROCK"
|
|
||||||
override val itemImage: TextureRegion
|
override val itemImage: TextureRegion
|
||||||
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(3,6)
|
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(3,6)
|
||||||
}
|
}
|
||||||
class OreCoal(originalID: ItemID) : OreItemBase(originalID) {
|
class OreCoal(originalID: ItemID) : OreItemBase(originalID) {
|
||||||
override var originalName = "ITEM_ORE_COAL"
|
override var originalName = "ITEM_ORE_COAL"
|
||||||
override val materialId = "ROCK"
|
|
||||||
override val itemImage: TextureRegion
|
override val itemImage: TextureRegion
|
||||||
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(4,6)
|
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(4,6)
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user