mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-07 12:21:52 +09:00
fix: getGradientCloud not sampling correct coord
This commit is contained in:
@@ -18,11 +18,8 @@ import net.torvald.terrarum.modulecomputers.gameactors.FixtureHomeComputer
|
|||||||
class ItemHomeComputer(originalID: ItemID) : GameItem(originalID) {
|
class ItemHomeComputer(originalID: ItemID) : GameItem(originalID) {
|
||||||
|
|
||||||
override var dynamicID: ItemID = originalID
|
override var dynamicID: ItemID = originalID
|
||||||
override val originalName = "Computer"
|
|
||||||
override var baseMass = 20.0
|
override var baseMass = 20.0
|
||||||
override var stackable = true
|
|
||||||
override var inventoryCategory = Category.MISC
|
override var inventoryCategory = Category.MISC
|
||||||
override val isUnique = false
|
|
||||||
override val isDynamic = false
|
override val isDynamic = false
|
||||||
override val materialId = ""
|
override val materialId = ""
|
||||||
override val itemImage: TextureRegion
|
override val itemImage: TextureRegion
|
||||||
@@ -32,6 +29,7 @@ class ItemHomeComputer(originalID: ItemID) : GameItem(originalID) {
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
equipPosition = EquipPosition.HAND_GRIP
|
equipPosition = EquipPosition.HAND_GRIP
|
||||||
|
originalName = "ITEM_DESKTOP_COMPUTER"
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) = mouseInInteractableRange(actor) { _, _, mtx, mty ->
|
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) = mouseInInteractableRange(actor) { _, _, mtx, mty ->
|
||||||
|
|||||||
BIN
assets/clut/skyboxavr.png
LFS
BIN
assets/clut/skyboxavr.png
LFS
Binary file not shown.
@@ -1,29 +1,29 @@
|
|||||||
{
|
{
|
||||||
"basegame:160": {
|
"basegame:160": { /* stone platform */
|
||||||
"workbench": "",
|
"workbench": "",
|
||||||
"ingredients": [
|
"ingredients": [
|
||||||
[2, 1, "$ROCK"]
|
[2, 1, "$ROCK"]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"basegame:161": {
|
"basegame:161": { /* wooden platform */
|
||||||
"workbench": "",
|
"workbench": "",
|
||||||
"ingredients": [
|
"ingredients": [
|
||||||
[2, 1, "basegame:48"]
|
[2, 1, "basegame:48"]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"basegame:162": {
|
"basegame:162": { /* ebony platform */
|
||||||
"workbench": "",
|
"workbench": "",
|
||||||
"ingredients": [
|
"ingredients": [
|
||||||
[2, 1, "basegame:49"]
|
[2, 1, "basegame:49"]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"basegame:163": {
|
"basegame:163": { /* birch platform */
|
||||||
"workbench": "",
|
"workbench": "",
|
||||||
"ingredients": [
|
"ingredients": [
|
||||||
[2, 1, "basegame:50"]
|
[2, 1, "basegame:50"]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"basegame:164": {
|
"basegame:164": { /* rosewood platform */
|
||||||
"workbench": "",
|
"workbench": "",
|
||||||
"ingredients": [
|
"ingredients": [
|
||||||
[2, 1, "basegame:51"]
|
[2, 1, "basegame:51"]
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"item@basegame:5": {
|
"item@basegame:5": { /* tiki torch */
|
||||||
"workbench": "",
|
"workbench": "",
|
||||||
"ingredients": [
|
"ingredients": [
|
||||||
[1, 3, "$WOOD", 1, "basegame:176"],
|
[1, 3, "$WOOD", 1, "basegame:176"],
|
||||||
@@ -7,32 +7,32 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
"item@basegame:16": {
|
"item@basegame:16": { /* workbench */
|
||||||
"workbench": "",
|
"workbench": "",
|
||||||
"ingredients": [
|
"ingredients": [
|
||||||
[1, 6, "$WOOD"]
|
[1, 8, "$WOOD"]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
"item@basegame:256": {
|
"item@basegame:256": { /* oak door */
|
||||||
"workbench": "basiccrafting",
|
"workbench": "basiccrafting",
|
||||||
"ingredients": [
|
"ingredients": [
|
||||||
[1, 4, "basegame:48"]
|
[1, 4, "basegame:48"]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"item@basegame:257": {
|
"item@basegame:257": { /* ebony door */
|
||||||
"workbench": "basiccrafting",
|
"workbench": "basiccrafting",
|
||||||
"ingredients": [
|
"ingredients": [
|
||||||
[1, 4, "basegame:49"]
|
[1, 4, "basegame:49"]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"item@basegame:258": {
|
"item@basegame:258": { /* birch door */
|
||||||
"workbench": "basiccrafting",
|
"workbench": "basiccrafting",
|
||||||
"ingredients": [
|
"ingredients": [
|
||||||
[1, 4, "basegame:50"]
|
[1, 4, "basegame:50"]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"item@basegame:259": {
|
"item@basegame:259": { /* rosewood door */
|
||||||
"workbench": "basiccrafting",
|
"workbench": "basiccrafting",
|
||||||
"ingredients": [
|
"ingredients": [
|
||||||
[1, 4, "basegame:51"]
|
[1, 4, "basegame:51"]
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ class GenerateSkyboxTextureAtlas {
|
|||||||
File("./assets/clut/skybox.tga").writeBytes(bytes)
|
File("./assets/clut/skybox.tga").writeBytes(bytes)
|
||||||
}
|
}
|
||||||
|
|
||||||
private val gradSizes = (0 until Skybox.gradSize)
|
private val gradSizes = listOf(50)
|
||||||
|
|
||||||
private fun getByte(gammaPair: Int, albedo0: Int, turb0: Int, elev0: Int, yp: Int, channel: Int): Byte {
|
private fun getByte(gammaPair: Int, albedo0: Int, turb0: Int, elev0: Int, yp: Int, channel: Int): Byte {
|
||||||
val imgOffX = albedo0 * Skybox.elevCnt + elev0 + Skybox.elevCnt * Skybox.albedoCnt * gammaPair
|
val imgOffX = albedo0 * Skybox.elevCnt + elev0 + Skybox.elevCnt * Skybox.albedoCnt * gammaPair
|
||||||
@@ -179,12 +179,12 @@ class GenerateSkyboxTextureAtlas {
|
|||||||
println("....... Turbidity=$turbidity")
|
println("....... Turbidity=$turbidity")
|
||||||
for (elev0 in 0 until Skybox.elevCnt) {
|
for (elev0 in 0 until Skybox.elevCnt) {
|
||||||
|
|
||||||
val avrB = (gradSizes.sumOf { getByte(gammaPair, albedo0, turb0, elev0, it, 0).toUint() }.toDouble() / Skybox.gradSize).div(255.0).srgbLinearise().toFloat()
|
val avrB = (gradSizes.sumOf { getByte(gammaPair, albedo0, turb0, elev0, it, 0).toUint() }.toDouble() / gradSizes.size).div(255.0).toFloat()
|
||||||
val avrG = (gradSizes.sumOf { getByte(gammaPair, albedo0, turb0, elev0, it, 1).toUint() }.toDouble() / Skybox.gradSize).div(255.0).srgbLinearise().toFloat()
|
val avrG = (gradSizes.sumOf { getByte(gammaPair, albedo0, turb0, elev0, it, 1).toUint() }.toDouble() / gradSizes.size).div(255.0).toFloat()
|
||||||
val avrR = (gradSizes.sumOf { getByte(gammaPair, albedo0, turb0, elev0, it, 2).toUint() }.toDouble() / Skybox.gradSize).div(255.0).srgbLinearise().toFloat()
|
val avrR = (gradSizes.sumOf { getByte(gammaPair, albedo0, turb0, elev0, it, 2).toUint() }.toDouble() / gradSizes.size).div(255.0).toFloat()
|
||||||
val avrA = (gradSizes.sumOf { getByte(gammaPair, albedo0, turb0, elev0, it, 3).toUint() }.toDouble() / Skybox.gradSize).div(255.0).srgbLinearise().toFloat()
|
val avrA = (gradSizes.sumOf { getByte(gammaPair, albedo0, turb0, elev0, it, 3).toUint() }.toDouble() / gradSizes.size).div(255.0).toFloat()
|
||||||
|
|
||||||
val colour = Cvec(avrR, avrG, avrB, avrA).saturate(1.6666667f)
|
val colour = Cvec(avrR, avrG, avrB, avrA).mul(1.02f).vibrancy(1.1f)
|
||||||
|
|
||||||
val colourBytes = arrayOf(
|
val colourBytes = arrayOf(
|
||||||
colour.b.times(255f).roundToInt().coerceIn(0..255).toByte(),
|
colour.b.times(255f).roundToInt().coerceIn(0..255).toByte(),
|
||||||
@@ -223,9 +223,12 @@ class GenerateSkyboxTextureAtlas {
|
|||||||
this * 12.92
|
this * 12.92
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Cvec.saturate(intensity: Float): Cvec {
|
private fun Cvec.vibrancy(intensity: Float): Cvec {
|
||||||
val luv = HUSLColorConverter.rgbToHsluv(floatArrayOf(this.r, this.g, this.b))
|
val luv = HUSLColorConverter.rgbToHsluv(floatArrayOf(this.r, this.g, this.b))
|
||||||
luv[1] *= intensity
|
|
||||||
|
val sat = luv[1] // 0..100
|
||||||
|
luv[1] = (sat / 100f).pow(1f / intensity) * 100f
|
||||||
|
|
||||||
val rgb = HUSLColorConverter.hsluvToRgb(luv)
|
val rgb = HUSLColorConverter.hsluvToRgb(luv)
|
||||||
this.r = rgb[0]
|
this.r = rgb[0]
|
||||||
this.g = rgb[1]
|
this.g = rgb[1]
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ abstract class GameItem(val originalID: ItemID) : Comparable<GameItem>, Cloneabl
|
|||||||
*
|
*
|
||||||
* e.g. Key Items (in a Pokémon sense); only the single instance of the item can exist in the pocket
|
* e.g. Key Items (in a Pokémon sense); only the single instance of the item can exist in the pocket
|
||||||
*/
|
*/
|
||||||
abstract val isUnique: Boolean
|
@Transient var isUnique: Boolean = false
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* OriginalName is always read from Language files.
|
* OriginalName is always read from Language files.
|
||||||
@@ -52,10 +52,10 @@ abstract class GameItem(val originalID: ItemID) : Comparable<GameItem>, Cloneabl
|
|||||||
* - `BLOCK_AIR` – Prints out `Lang.get("BLOCK_AIR")`
|
* - `BLOCK_AIR` – Prints out `Lang.get("BLOCK_AIR")`
|
||||||
* - `BLOCK_AIR>>=BLOCK_WALL_NAME_TEMPLATE` – Prints out `Formatter().format(Lang.get("BLOCK_WALL_NAME_TEMPLATE"), Lang.get("BLOCK_AIR")).toString()`
|
* - `BLOCK_AIR>>=BLOCK_WALL_NAME_TEMPLATE` – Prints out `Formatter().format(Lang.get("BLOCK_WALL_NAME_TEMPLATE"), Lang.get("BLOCK_AIR")).toString()`
|
||||||
*/
|
*/
|
||||||
abstract val originalName: String
|
@Transient var originalName: String = ""
|
||||||
|
|
||||||
|
|
||||||
var newName: String = "I AM VITUN PLACEHOLDER"
|
var newName: String = ""
|
||||||
private set
|
private set
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -84,7 +84,7 @@ abstract class GameItem(val originalID: ItemID) : Comparable<GameItem>, Cloneabl
|
|||||||
var itemProperties = ItemValue()
|
var itemProperties = ItemValue()
|
||||||
|
|
||||||
/** Single-use then destroyed (e.g. Tiles), same as "consumable" */
|
/** Single-use then destroyed (e.g. Tiles), same as "consumable" */
|
||||||
abstract var stackable: Boolean
|
@Transient var stackable: Boolean = true
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -110,7 +110,7 @@ abstract class GameItem(val originalID: ItemID) : Comparable<GameItem>, Cloneabl
|
|||||||
* }
|
* }
|
||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
var equipPosition: Int = EquipPosition.NULL
|
@Transient var equipPosition: Int = EquipPosition.NULL
|
||||||
|
|
||||||
internal val material: Material
|
internal val material: Material
|
||||||
get() = MaterialCodex.getOrDefault(materialId)
|
get() = MaterialCodex.getOrDefault(materialId)
|
||||||
@@ -180,7 +180,7 @@ abstract class GameItem(val originalID: ItemID) : Comparable<GameItem>, Cloneabl
|
|||||||
/**
|
/**
|
||||||
* Set to zero (GameItem.DURABILITY_NA) if durability not applicable
|
* Set to zero (GameItem.DURABILITY_NA) if durability not applicable
|
||||||
*/
|
*/
|
||||||
open var maxDurability: Int = 0
|
@Transient open var maxDurability: Int = 0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Float. NOT A MISTAKE
|
* Float. NOT A MISTAKE
|
||||||
@@ -189,7 +189,15 @@ 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
|
||||||
|
|
||||||
var tags = HashSet<String>()
|
/**
|
||||||
|
* Tags defined by the basegame
|
||||||
|
*/
|
||||||
|
@Transient var tags = HashSet<String>()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tags added/removed by dynamic items
|
||||||
|
*/
|
||||||
|
var modifiers = HashSet<String>()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mainly intended to be used by third-party modules
|
* Mainly intended to be used by third-party modules
|
||||||
|
|||||||
@@ -91,10 +91,8 @@ class EntryPoint : ModuleEntryPoint() {
|
|||||||
private fun makeNewItemObj(tile: BlockProp, isWall: Boolean) = object : GameItem(
|
private fun makeNewItemObj(tile: BlockProp, isWall: Boolean) = object : GameItem(
|
||||||
if (isWall) "wall@"+tile.id else tile.id
|
if (isWall) "wall@"+tile.id else tile.id
|
||||||
) {
|
) {
|
||||||
override val isUnique: Boolean = false
|
|
||||||
override var baseMass: Double = tile.density / 1000.0
|
override var baseMass: Double = tile.density / 1000.0
|
||||||
override var baseToolSize: Double? = null
|
override var baseToolSize: Double? = null
|
||||||
override var stackable = true
|
|
||||||
override var inventoryCategory = if (isWall) Category.WALL else Category.BLOCK
|
override var inventoryCategory = if (isWall) Category.WALL else Category.BLOCK
|
||||||
override var isDynamic = false
|
override var isDynamic = false
|
||||||
override val materialId = tile.material
|
override val materialId = tile.material
|
||||||
@@ -111,13 +109,13 @@ class EntryPoint : ModuleEntryPoint() {
|
|||||||
init {
|
init {
|
||||||
equipPosition = EquipPosition.HAND_GRIP
|
equipPosition = EquipPosition.HAND_GRIP
|
||||||
tags.addAll(tile.tags)
|
tags.addAll(tile.tags)
|
||||||
|
originalName =
|
||||||
|
if (isWall && tags.contains("UNLIT")) "${tile.nameKey}>>=BLOCK_UNLIT_TEMPLATE>>=BLOCK_WALL_NAME_TEMPLATE"
|
||||||
|
else if (isWall) "${tile.nameKey}>>=BLOCK_WALL_NAME_TEMPLATE"
|
||||||
|
else if (tags.contains("UNLIT")) "${tile.nameKey}>>=BLOCK_UNLIT_TEMPLATE"
|
||||||
|
else tile.nameKey
|
||||||
}
|
}
|
||||||
|
|
||||||
override val originalName: String =
|
|
||||||
if (isWall && tags.contains("UNLIT")) "${tile.nameKey}>>=BLOCK_UNLIT_TEMPLATE>>=BLOCK_WALL_NAME_TEMPLATE"
|
|
||||||
else if (isWall) "${tile.nameKey}>>=BLOCK_WALL_NAME_TEMPLATE"
|
|
||||||
else if (tags.contains("UNLIT")) "${tile.nameKey}>>=BLOCK_UNLIT_TEMPLATE"
|
|
||||||
else tile.nameKey
|
|
||||||
|
|
||||||
override fun startPrimaryUse(actor: ActorWithBody, delta: Float): Long {
|
override fun startPrimaryUse(actor: ActorWithBody, delta: Float): Long {
|
||||||
return BlockBase.blockStartPrimaryUse(actor, this, dynamicID, delta)
|
return BlockBase.blockStartPrimaryUse(actor, this, dynamicID, delta)
|
||||||
|
|||||||
@@ -186,14 +186,16 @@ open class ActorHumanoid : ActorWithBody, Controllable, Pocketed, Factionable, L
|
|||||||
private var jumpJustPressedLatched = false
|
private var jumpJustPressedLatched = false
|
||||||
|
|
||||||
@Transient private val nullItem = object : GameItem("item@basegame:0") {
|
@Transient private val nullItem = object : GameItem("item@basegame:0") {
|
||||||
override val isUnique: Boolean = false
|
|
||||||
override var baseMass: Double = 0.0
|
override var baseMass: Double = 0.0
|
||||||
override var baseToolSize: Double? = null
|
override var baseToolSize: Double? = null
|
||||||
override var inventoryCategory = "should_not_be_seen"
|
override var inventoryCategory = "should_not_be_seen"
|
||||||
override val originalName: String = actorValue.getAsString(AVKey.NAME) ?: "(no name)"
|
|
||||||
override var stackable = false
|
|
||||||
override val isDynamic = false
|
override val isDynamic = false
|
||||||
override val materialId = ""
|
override val materialId = ""
|
||||||
|
|
||||||
|
init {
|
||||||
|
stackable = false
|
||||||
|
originalName = actorValue.getAsString(AVKey.NAME) ?: "(no name)"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun update(delta: Float) {
|
override fun update(delta: Float) {
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ open class HumanoidNPC : ActorHumanoid, AIControlled, CanBeAnItem {
|
|||||||
|
|
||||||
// we're having GameItem data so that this class could be somewhat universal
|
// we're having GameItem data so that this class could be somewhat universal
|
||||||
override var itemData: GameItem = object : GameItem("actor:"+referenceID) {//GameItem(referenceID ?: forceAssignRefID!!) {
|
override var itemData: GameItem = object : GameItem("actor:"+referenceID) {//GameItem(referenceID ?: forceAssignRefID!!) {
|
||||||
override val isUnique = true
|
|
||||||
override var baseMass: Double
|
override var baseMass: Double
|
||||||
get() = actorValue.getAsDouble(AVKey.BASEMASS)!!
|
get() = actorValue.getAsDouble(AVKey.BASEMASS)!!
|
||||||
set(value) { actorValue[AVKey.BASEMASS] = value }
|
set(value) { actorValue[AVKey.BASEMASS] = value }
|
||||||
@@ -47,8 +46,6 @@ open class HumanoidNPC : ActorHumanoid, AIControlled, CanBeAnItem {
|
|||||||
actorValue[AVKey.SCALE] = value
|
actorValue[AVKey.SCALE] = value
|
||||||
}
|
}
|
||||||
override var inventoryCategory = "npc"
|
override var inventoryCategory = "npc"
|
||||||
override val originalName: String = actorValue.getAsString(AVKey.NAME) ?: "NPC"
|
|
||||||
override var stackable = true
|
|
||||||
override val isDynamic = false
|
override val isDynamic = false
|
||||||
override val materialId = ""
|
override val materialId = ""
|
||||||
|
|
||||||
@@ -65,6 +62,12 @@ open class HumanoidNPC : ActorHumanoid, AIControlled, CanBeAnItem {
|
|||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
init {
|
||||||
|
isUnique = true
|
||||||
|
stackable = false
|
||||||
|
originalName = actorValue.getAsString(AVKey.NAME) ?: "NPC"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getItemWeight(): Double {
|
override fun getItemWeight(): Double {
|
||||||
|
|||||||
@@ -39,11 +39,8 @@ open class FixtureItemBase(originalID: ItemID, val fixtureClassName: String) : G
|
|||||||
@Transient private var ghostInit = AtomicBoolean(false)
|
@Transient private var ghostInit = AtomicBoolean(false)
|
||||||
|
|
||||||
override var dynamicID: ItemID = originalID
|
override var dynamicID: ItemID = originalID
|
||||||
override val originalName = "FIXTUREBASE"
|
|
||||||
override var baseMass = 1.0
|
override var baseMass = 1.0
|
||||||
override var stackable = true
|
|
||||||
override var inventoryCategory = Category.MISC
|
override var inventoryCategory = Category.MISC
|
||||||
override val isUnique = false
|
|
||||||
override val isDynamic = false
|
override val isDynamic = false
|
||||||
override val materialId = ""
|
override val materialId = ""
|
||||||
|
|
||||||
|
|||||||
@@ -11,11 +11,8 @@ import net.torvald.terrarum.modulebasegame.gameactors.FixtureLogicSignalEmitter
|
|||||||
class ItemLogicSignalEmitter(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureLogicSignalEmitter") {
|
class ItemLogicSignalEmitter(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureLogicSignalEmitter") {
|
||||||
|
|
||||||
override var dynamicID: ItemID = originalID
|
override var dynamicID: ItemID = originalID
|
||||||
override val originalName = "ITEM_LOGIC_SIGNAL_EMITTER"
|
|
||||||
override var baseMass = FixtureLogicSignalEmitter.MASS
|
override var baseMass = FixtureLogicSignalEmitter.MASS
|
||||||
override var stackable = true
|
|
||||||
override var inventoryCategory = Category.MISC
|
override var inventoryCategory = Category.MISC
|
||||||
override val isUnique = false
|
|
||||||
override val isDynamic = false
|
override val isDynamic = false
|
||||||
override val materialId = ""
|
override val materialId = ""
|
||||||
override val itemImage: TextureRegion
|
override val itemImage: TextureRegion
|
||||||
@@ -25,6 +22,7 @@ class ItemLogicSignalEmitter(originalID: ItemID) : FixtureItemBase(originalID, "
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
equipPosition = EquipPosition.HAND_GRIP
|
equipPosition = EquipPosition.HAND_GRIP
|
||||||
|
originalName = "ITEM_LOGIC_SIGNAL_EMITTER"
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) {
|
override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) {
|
||||||
|
|||||||
@@ -13,11 +13,8 @@ import net.torvald.terrarum.modulebasegame.gameactors.FixtureTikiTorch
|
|||||||
class ItemStorageChest(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureStorageChest") {
|
class ItemStorageChest(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureStorageChest") {
|
||||||
|
|
||||||
override var dynamicID: ItemID = originalID
|
override var dynamicID: ItemID = originalID
|
||||||
override val originalName = "ITEM_STORAGE_CHEST"
|
|
||||||
override var baseMass = FixtureTikiTorch.MASS
|
override var baseMass = FixtureTikiTorch.MASS
|
||||||
override var stackable = true
|
|
||||||
override var inventoryCategory = Category.MISC
|
override var inventoryCategory = Category.MISC
|
||||||
override val isUnique = false
|
|
||||||
override val isDynamic = false
|
override val isDynamic = false
|
||||||
override val materialId = ""
|
override val materialId = ""
|
||||||
override val itemImage: TextureRegion
|
override val itemImage: TextureRegion
|
||||||
@@ -26,6 +23,7 @@ class ItemStorageChest(originalID: ItemID) : FixtureItemBase(originalID, "net.to
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
equipPosition = EquipPosition.HAND_GRIP
|
equipPosition = EquipPosition.HAND_GRIP
|
||||||
|
originalName = "ITEM_STORAGE_CHEST"
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -13,11 +13,8 @@ class ItemSwingingDoorOak(originalID: ItemID) :
|
|||||||
FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureSwingingDoorOak") {
|
FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureSwingingDoorOak") {
|
||||||
|
|
||||||
override var dynamicID: ItemID = originalID
|
override var dynamicID: ItemID = originalID
|
||||||
override val originalName = "ITEM_DOOR_OAK"
|
|
||||||
override var baseMass = 20.0 // 360[L] * 0.1 * 0.56[SpecificGravity], rounded to the nearest integer
|
override var baseMass = 20.0 // 360[L] * 0.1 * 0.56[SpecificGravity], rounded to the nearest integer
|
||||||
override var stackable = true
|
|
||||||
override var inventoryCategory = Category.MISC
|
override var inventoryCategory = Category.MISC
|
||||||
override val isUnique = false
|
|
||||||
override val isDynamic = false
|
override val isDynamic = false
|
||||||
override val materialId = ""
|
override val materialId = ""
|
||||||
override val itemImage: TextureRegion
|
override val itemImage: TextureRegion
|
||||||
@@ -26,6 +23,7 @@ class ItemSwingingDoorOak(originalID: ItemID) :
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
equipPosition = EquipPosition.HAND_GRIP
|
equipPosition = EquipPosition.HAND_GRIP
|
||||||
|
originalName = "ITEM_DOOR_OAK"
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transient override val makeFixture: () -> FixtureBase = {
|
@Transient override val makeFixture: () -> FixtureBase = {
|
||||||
@@ -38,11 +36,8 @@ class ItemSwingingDoorEbony(originalID: ItemID) :
|
|||||||
FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureSwingingDoorEbony") {
|
FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureSwingingDoorEbony") {
|
||||||
|
|
||||||
override var dynamicID: ItemID = originalID
|
override var dynamicID: ItemID = originalID
|
||||||
override val originalName = "ITEM_DOOR_EBONY"
|
|
||||||
override var baseMass = 30.0 // 360[L] * 0.1 * 0.82[SpecificGravity], rounded to the nearest integer
|
override var baseMass = 30.0 // 360[L] * 0.1 * 0.82[SpecificGravity], rounded to the nearest integer
|
||||||
override var stackable = true
|
|
||||||
override var inventoryCategory = Category.MISC
|
override var inventoryCategory = Category.MISC
|
||||||
override val isUnique = false
|
|
||||||
override val isDynamic = false
|
override val isDynamic = false
|
||||||
override val materialId = ""
|
override val materialId = ""
|
||||||
override val itemImage: TextureRegion
|
override val itemImage: TextureRegion
|
||||||
@@ -51,6 +46,7 @@ class ItemSwingingDoorEbony(originalID: ItemID) :
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
equipPosition = EquipPosition.HAND_GRIP
|
equipPosition = EquipPosition.HAND_GRIP
|
||||||
|
originalName = "ITEM_DOOR_EBONY"
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transient override val makeFixture: () -> FixtureBase = {
|
@Transient override val makeFixture: () -> FixtureBase = {
|
||||||
@@ -63,11 +59,8 @@ class ItemSwingingDoorBirch(originalID: ItemID) :
|
|||||||
FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureSwingingDoorBirch") {
|
FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureSwingingDoorBirch") {
|
||||||
|
|
||||||
override var dynamicID: ItemID = originalID
|
override var dynamicID: ItemID = originalID
|
||||||
override val originalName = "ITEM_DOOR_BIRCH"
|
|
||||||
override var baseMass = 17.0 // 360[L] * 0.1 * 0.48[SpecificGravity], rounded to the nearest integer
|
override var baseMass = 17.0 // 360[L] * 0.1 * 0.48[SpecificGravity], rounded to the nearest integer
|
||||||
override var stackable = true
|
|
||||||
override var inventoryCategory = Category.MISC
|
override var inventoryCategory = Category.MISC
|
||||||
override val isUnique = false
|
|
||||||
override val isDynamic = false
|
override val isDynamic = false
|
||||||
override val materialId = ""
|
override val materialId = ""
|
||||||
override val itemImage: TextureRegion
|
override val itemImage: TextureRegion
|
||||||
@@ -76,6 +69,7 @@ class ItemSwingingDoorBirch(originalID: ItemID) :
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
equipPosition = EquipPosition.HAND_GRIP
|
equipPosition = EquipPosition.HAND_GRIP
|
||||||
|
originalName = "ITEM_DOOR_BIRCH"
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transient override val makeFixture: () -> FixtureBase = {
|
@Transient override val makeFixture: () -> FixtureBase = {
|
||||||
@@ -88,11 +82,8 @@ class ItemSwingingDoorRosewood(originalID: ItemID) :
|
|||||||
FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureSwingingDoorRosewood") {
|
FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureSwingingDoorRosewood") {
|
||||||
|
|
||||||
override var dynamicID: ItemID = originalID
|
override var dynamicID: ItemID = originalID
|
||||||
override val originalName = "ITEM_DOOR_ROSEWOOD"
|
|
||||||
override var baseMass = 24.0 // 360[L] * 0.1 * 0.68[SpecificGravity], rounded to the nearest integer
|
override var baseMass = 24.0 // 360[L] * 0.1 * 0.68[SpecificGravity], rounded to the nearest integer
|
||||||
override var stackable = true
|
|
||||||
override var inventoryCategory = Category.MISC
|
override var inventoryCategory = Category.MISC
|
||||||
override val isUnique = false
|
|
||||||
override val isDynamic = false
|
override val isDynamic = false
|
||||||
override val materialId = ""
|
override val materialId = ""
|
||||||
override val itemImage: TextureRegion
|
override val itemImage: TextureRegion
|
||||||
@@ -101,6 +92,7 @@ class ItemSwingingDoorRosewood(originalID: ItemID) :
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
equipPosition = EquipPosition.HAND_GRIP
|
equipPosition = EquipPosition.HAND_GRIP
|
||||||
|
originalName = "ITEM_DOOR_ROSEWOOD"
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transient override val makeFixture: () -> FixtureBase = {
|
@Transient override val makeFixture: () -> FixtureBase = {
|
||||||
|
|||||||
@@ -15,11 +15,8 @@ import net.torvald.terrarum.modulebasegame.gameactors.FixtureTapestry
|
|||||||
class ItemTapestry(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureTapestry") {
|
class ItemTapestry(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureTapestry") {
|
||||||
|
|
||||||
override var dynamicID: ItemID = originalID
|
override var dynamicID: ItemID = originalID
|
||||||
override val originalName = "ITEM_TAPESTRY"
|
|
||||||
override var baseMass = 6.0
|
override var baseMass = 6.0
|
||||||
override var stackable = true
|
|
||||||
override var inventoryCategory = Category.MISC
|
override var inventoryCategory = Category.MISC
|
||||||
override val isUnique = false
|
|
||||||
override val isDynamic = false
|
override val isDynamic = false
|
||||||
override val materialId = ""
|
override val materialId = ""
|
||||||
override val itemImage: TextureRegion
|
override val itemImage: TextureRegion
|
||||||
@@ -28,6 +25,7 @@ class ItemTapestry(originalID: ItemID) : FixtureItemBase(originalID, "net.torval
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
equipPosition = EquipPosition.HAND_GRIP
|
equipPosition = EquipPosition.HAND_GRIP
|
||||||
|
originalName = "ITEM_TAPESTRY"
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transient override val makeFixture: () -> FixtureBase = {
|
@Transient override val makeFixture: () -> FixtureBase = {
|
||||||
|
|||||||
@@ -11,11 +11,8 @@ import net.torvald.terrarum.modulebasegame.gameactors.FixtureTikiTorch
|
|||||||
class ItemTikiTorch(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureTikiTorch") {
|
class ItemTikiTorch(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureTikiTorch") {
|
||||||
|
|
||||||
override var dynamicID: ItemID = originalID
|
override var dynamicID: ItemID = originalID
|
||||||
override val originalName = "ITEM_TIKI_TORCH"
|
|
||||||
override var baseMass = FixtureTikiTorch.MASS
|
override var baseMass = FixtureTikiTorch.MASS
|
||||||
override var stackable = true
|
|
||||||
override var inventoryCategory = Category.MISC
|
override var inventoryCategory = Category.MISC
|
||||||
override val isUnique = false
|
|
||||||
override val isDynamic = false
|
override val isDynamic = false
|
||||||
override val materialId = ""
|
override val materialId = ""
|
||||||
override val itemImage: TextureRegion
|
override val itemImage: TextureRegion
|
||||||
@@ -25,6 +22,7 @@ class ItemTikiTorch(originalID: ItemID) : FixtureItemBase(originalID, "net.torva
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
equipPosition = EquipPosition.HAND_GRIP
|
equipPosition = EquipPosition.HAND_GRIP
|
||||||
|
originalName = "ITEM_TIKI_TORCH"
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -11,11 +11,8 @@ import net.torvald.terrarum.modulebasegame.gameactors.FixtureTikiTorch
|
|||||||
class ItemTypewriter(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureTypewriter") {
|
class ItemTypewriter(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureTypewriter") {
|
||||||
|
|
||||||
override var dynamicID: ItemID = originalID
|
override var dynamicID: ItemID = originalID
|
||||||
override val originalName = "ITEM_TYPEWRITER"
|
|
||||||
override var baseMass = FixtureTikiTorch.MASS
|
override var baseMass = FixtureTikiTorch.MASS
|
||||||
override var stackable = true
|
|
||||||
override var inventoryCategory = Category.MISC
|
override var inventoryCategory = Category.MISC
|
||||||
override val isUnique = false
|
|
||||||
override val isDynamic = false
|
override val isDynamic = false
|
||||||
override val materialId = ""
|
override val materialId = ""
|
||||||
override val itemImage: TextureRegion
|
override val itemImage: TextureRegion
|
||||||
@@ -25,6 +22,7 @@ class ItemTypewriter(originalID: ItemID) : FixtureItemBase(originalID, "net.torv
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
equipPosition = EquipPosition.HAND_GRIP
|
equipPosition = EquipPosition.HAND_GRIP
|
||||||
|
originalName = "ITEM_TYPEWRITER"
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -10,11 +10,8 @@ import net.torvald.terrarum.gameitems.ItemID
|
|||||||
class ItemWallCalendar(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureWallCalendar") {
|
class ItemWallCalendar(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureWallCalendar") {
|
||||||
|
|
||||||
override var dynamicID: ItemID = originalID
|
override var dynamicID: ItemID = originalID
|
||||||
override val originalName = "ITEM_CALENDAR"
|
|
||||||
override var baseMass = 1.0
|
override var baseMass = 1.0
|
||||||
override var stackable = true
|
|
||||||
override var inventoryCategory = Category.MISC
|
override var inventoryCategory = Category.MISC
|
||||||
override val isUnique = false
|
|
||||||
override val isDynamic = false
|
override val isDynamic = false
|
||||||
override val materialId = ""
|
override val materialId = ""
|
||||||
override val itemImage: TextureRegion
|
override val itemImage: TextureRegion
|
||||||
@@ -24,6 +21,7 @@ class ItemWallCalendar(originalID: ItemID) : FixtureItemBase(originalID, "net.to
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
equipPosition = EquipPosition.HAND_GRIP
|
equipPosition = EquipPosition.HAND_GRIP
|
||||||
|
originalName = "ITEM_CALENDAR"
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -9,11 +9,8 @@ import net.torvald.terrarum.gameitems.ItemID
|
|||||||
class ItemWorkbench(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureWorkbench") {
|
class ItemWorkbench(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureWorkbench") {
|
||||||
|
|
||||||
|
|
||||||
override val originalName = "ITEM_WORKBENCH"
|
|
||||||
override var baseMass = 20.0
|
override var baseMass = 20.0
|
||||||
override var stackable = true
|
|
||||||
override var inventoryCategory = Category.MISC
|
override var inventoryCategory = Category.MISC
|
||||||
override val isUnique = false
|
|
||||||
override val isDynamic = false
|
override val isDynamic = false
|
||||||
override val materialId = ""
|
override val materialId = ""
|
||||||
override val itemImage: TextureRegion
|
override val itemImage: TextureRegion
|
||||||
@@ -23,6 +20,7 @@ class ItemWorkbench(originalID: ItemID) : FixtureItemBase(originalID, "net.torva
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
equipPosition = EquipPosition.HAND_GRIP
|
equipPosition = EquipPosition.HAND_GRIP
|
||||||
|
originalName = "ITEM_WORKBENCH"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -11,11 +11,8 @@ import net.torvald.terrarum.modulebasegame.gameactors.FixtureTikiTorch
|
|||||||
class ItemWorldPortal(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureWorldPortal") {
|
class ItemWorldPortal(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureWorldPortal") {
|
||||||
|
|
||||||
override var dynamicID: ItemID = originalID
|
override var dynamicID: ItemID = originalID
|
||||||
override val originalName = "ITEM_WORLD_PORTAL"
|
|
||||||
override var baseMass = 6000.0
|
override var baseMass = 6000.0
|
||||||
override var stackable = true
|
|
||||||
override var inventoryCategory = Category.MISC
|
override var inventoryCategory = Category.MISC
|
||||||
override val isUnique = false
|
|
||||||
override val isDynamic = false
|
override val isDynamic = false
|
||||||
override val materialId = ""
|
override val materialId = ""
|
||||||
override val itemImage: TextureRegion
|
override val itemImage: TextureRegion
|
||||||
@@ -25,6 +22,7 @@ class ItemWorldPortal(originalID: ItemID) : FixtureItemBase(originalID, "net.tor
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
equipPosition = EquipPosition.HAND_GRIP
|
equipPosition = EquipPosition.HAND_GRIP
|
||||||
|
originalName = "ITEM_WORLD_PORTAL"
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -112,11 +112,8 @@ object PickaxeCore {
|
|||||||
class PickaxeCopper(originalID: ItemID) : GameItem(originalID) {
|
class PickaxeCopper(originalID: ItemID) : GameItem(originalID) {
|
||||||
internal constructor() : this("-uninitialised-")
|
internal constructor() : this("-uninitialised-")
|
||||||
|
|
||||||
override val originalName = "ITEM_PICK_COPPER"
|
|
||||||
override var baseToolSize: Double? = BASE_MASS_AND_SIZE
|
override var baseToolSize: Double? = BASE_MASS_AND_SIZE
|
||||||
override var stackable = true
|
|
||||||
override var inventoryCategory = Category.TOOL
|
override var inventoryCategory = Category.TOOL
|
||||||
override val isUnique = false
|
|
||||||
override val isDynamic = true
|
override val isDynamic = true
|
||||||
override val materialId = "CUPR"
|
override val materialId = "CUPR"
|
||||||
override var baseMass = material.density.toDouble() / MaterialCodex["IRON"].density * BASE_MASS_AND_SIZE
|
override var baseMass = material.density.toDouble() / MaterialCodex["IRON"].density * BASE_MASS_AND_SIZE
|
||||||
@@ -124,10 +121,11 @@ class PickaxeCopper(originalID: ItemID) : GameItem(originalID) {
|
|||||||
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(0,0)
|
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(0,0)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
super.equipPosition = GameItem.EquipPosition.HAND_GRIP
|
equipPosition = GameItem.EquipPosition.HAND_GRIP
|
||||||
super.maxDurability = (TOOL_DURABILITY_BASE * material.enduranceMod).roundToInt()
|
maxDurability = (TOOL_DURABILITY_BASE * material.enduranceMod).roundToInt()
|
||||||
super.durability = maxDurability.toFloat()
|
durability = maxDurability.toFloat()
|
||||||
super.tags.add("PICK")
|
tags.add("PICK")
|
||||||
|
originalName = "ITEM_PICK_COPPER"
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) =
|
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) =
|
||||||
@@ -141,11 +139,8 @@ class PickaxeCopper(originalID: ItemID) : GameItem(originalID) {
|
|||||||
class PickaxeIron(originalID: ItemID) : GameItem(originalID) {
|
class PickaxeIron(originalID: ItemID) : GameItem(originalID) {
|
||||||
internal constructor() : this("-uninitialised-")
|
internal constructor() : this("-uninitialised-")
|
||||||
|
|
||||||
override val originalName = "ITEM_PICK_IRON"
|
|
||||||
override var baseToolSize: Double? = BASE_MASS_AND_SIZE
|
override var baseToolSize: Double? = BASE_MASS_AND_SIZE
|
||||||
override var stackable = true
|
|
||||||
override var inventoryCategory = Category.TOOL
|
override var inventoryCategory = Category.TOOL
|
||||||
override val isUnique = false
|
|
||||||
override val isDynamic = true
|
override val isDynamic = true
|
||||||
override val materialId = "IRON"
|
override val materialId = "IRON"
|
||||||
override var baseMass = material.density.toDouble() / MaterialCodex["IRON"].density * BASE_MASS_AND_SIZE
|
override var baseMass = material.density.toDouble() / MaterialCodex["IRON"].density * BASE_MASS_AND_SIZE
|
||||||
@@ -153,10 +148,11 @@ class PickaxeIron(originalID: ItemID) : GameItem(originalID) {
|
|||||||
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(1,0)
|
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(1,0)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
super.equipPosition = GameItem.EquipPosition.HAND_GRIP
|
equipPosition = GameItem.EquipPosition.HAND_GRIP
|
||||||
super.maxDurability = (TOOL_DURABILITY_BASE * material.enduranceMod).roundToInt()
|
maxDurability = (TOOL_DURABILITY_BASE * material.enduranceMod).roundToInt()
|
||||||
super.durability = maxDurability.toFloat()
|
durability = maxDurability.toFloat()
|
||||||
super.tags.add("PICK")
|
tags.add("PICK")
|
||||||
|
originalName = "ITEM_PICK_IRON"
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) =
|
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) =
|
||||||
@@ -170,11 +166,8 @@ class PickaxeIron(originalID: ItemID) : GameItem(originalID) {
|
|||||||
class PickaxeSteel(originalID: ItemID) : GameItem(originalID) {
|
class PickaxeSteel(originalID: ItemID) : GameItem(originalID) {
|
||||||
internal constructor() : this("-uninitialised-")
|
internal constructor() : this("-uninitialised-")
|
||||||
|
|
||||||
override val originalName = "ITEM_PICK_STEEL"
|
|
||||||
override var baseToolSize: Double? = BASE_MASS_AND_SIZE
|
override var baseToolSize: Double? = BASE_MASS_AND_SIZE
|
||||||
override var stackable = true
|
|
||||||
override var inventoryCategory = Category.TOOL
|
override var inventoryCategory = Category.TOOL
|
||||||
override val isUnique = false
|
|
||||||
override val isDynamic = true
|
override val isDynamic = true
|
||||||
override val materialId = "STAL"
|
override val materialId = "STAL"
|
||||||
override var baseMass = material.density.toDouble() / MaterialCodex["IRON"].density * BASE_MASS_AND_SIZE
|
override var baseMass = material.density.toDouble() / MaterialCodex["IRON"].density * BASE_MASS_AND_SIZE
|
||||||
@@ -182,10 +175,11 @@ class PickaxeSteel(originalID: ItemID) : GameItem(originalID) {
|
|||||||
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(2,0)
|
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(2,0)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
super.equipPosition = GameItem.EquipPosition.HAND_GRIP
|
equipPosition = GameItem.EquipPosition.HAND_GRIP
|
||||||
super.maxDurability = (TOOL_DURABILITY_BASE * material.enduranceMod).roundToInt()
|
maxDurability = (TOOL_DURABILITY_BASE * material.enduranceMod).roundToInt()
|
||||||
super.durability = maxDurability.toFloat()
|
durability = maxDurability.toFloat()
|
||||||
super.tags.add("PICK")
|
tags.add("PICK")
|
||||||
|
originalName = "ITEM_PICK_STEEL"
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) =
|
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) =
|
||||||
|
|||||||
@@ -118,11 +118,8 @@ object SledgehammerCore {
|
|||||||
class SledgehammerCopper(originalID: ItemID) : GameItem(originalID) {
|
class SledgehammerCopper(originalID: ItemID) : GameItem(originalID) {
|
||||||
internal constructor() : this("-uninitialised-")
|
internal constructor() : this("-uninitialised-")
|
||||||
|
|
||||||
override val originalName = "ITEM_SLEDGEHAMMER_COPPER"
|
|
||||||
override var baseToolSize: Double? = BASE_MASS_AND_SIZE
|
override var baseToolSize: Double? = BASE_MASS_AND_SIZE
|
||||||
override var stackable = true
|
|
||||||
override var inventoryCategory = Category.TOOL
|
override var inventoryCategory = Category.TOOL
|
||||||
override val isUnique = false
|
|
||||||
override val isDynamic = true
|
override val isDynamic = true
|
||||||
override val materialId = "CUPR"
|
override val materialId = "CUPR"
|
||||||
override var baseMass = material.density.toDouble() / MaterialCodex["IRON"].density * BASE_MASS_AND_SIZE
|
override var baseMass = material.density.toDouble() / MaterialCodex["IRON"].density * BASE_MASS_AND_SIZE
|
||||||
@@ -130,10 +127,11 @@ class SledgehammerCopper(originalID: ItemID) : GameItem(originalID) {
|
|||||||
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(6,0)
|
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(6,0)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
super.equipPosition = GameItem.EquipPosition.HAND_GRIP
|
equipPosition = GameItem.EquipPosition.HAND_GRIP
|
||||||
super.maxDurability = (TOOL_DURABILITY_BASE * material.enduranceMod).roundToInt()
|
maxDurability = (TOOL_DURABILITY_BASE * material.enduranceMod).roundToInt()
|
||||||
super.durability = maxDurability.toFloat()
|
durability = maxDurability.toFloat()
|
||||||
super.tags.add("HAMR")
|
tags.add("SLEDGEHAMMER")
|
||||||
|
originalName = "ITEM_SLEDGEHAMMER_COPPER"
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) =
|
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) =
|
||||||
@@ -144,11 +142,8 @@ class SledgehammerCopper(originalID: ItemID) : GameItem(originalID) {
|
|||||||
class SledgehammerIron(originalID: ItemID) : GameItem(originalID) {
|
class SledgehammerIron(originalID: ItemID) : GameItem(originalID) {
|
||||||
internal constructor() : this("-uninitialised-")
|
internal constructor() : this("-uninitialised-")
|
||||||
|
|
||||||
override val originalName = "ITEM_SLEDGEHAMMER_IRON"
|
|
||||||
override var baseToolSize: Double? = BASE_MASS_AND_SIZE
|
override var baseToolSize: Double? = BASE_MASS_AND_SIZE
|
||||||
override var stackable = true
|
|
||||||
override var inventoryCategory = Category.TOOL
|
override var inventoryCategory = Category.TOOL
|
||||||
override val isUnique = false
|
|
||||||
override val isDynamic = true
|
override val isDynamic = true
|
||||||
override val materialId = "IRON"
|
override val materialId = "IRON"
|
||||||
override var baseMass = material.density.toDouble() / MaterialCodex["IRON"].density * BASE_MASS_AND_SIZE
|
override var baseMass = material.density.toDouble() / MaterialCodex["IRON"].density * BASE_MASS_AND_SIZE
|
||||||
@@ -156,10 +151,11 @@ class SledgehammerIron(originalID: ItemID) : GameItem(originalID) {
|
|||||||
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(7,0)
|
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(7,0)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
super.equipPosition = GameItem.EquipPosition.HAND_GRIP
|
equipPosition = GameItem.EquipPosition.HAND_GRIP
|
||||||
super.maxDurability = (TOOL_DURABILITY_BASE * material.enduranceMod).roundToInt()
|
maxDurability = (TOOL_DURABILITY_BASE * material.enduranceMod).roundToInt()
|
||||||
super.durability = maxDurability.toFloat()
|
durability = maxDurability.toFloat()
|
||||||
super.tags.add("HAMR")
|
tags.add("SLEDGEHAMMER")
|
||||||
|
originalName = "ITEM_SLEDGEHAMMER_IRON"
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) =
|
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) =
|
||||||
@@ -170,11 +166,8 @@ class SledgehammerIron(originalID: ItemID) : GameItem(originalID) {
|
|||||||
class SledgehammerSteel(originalID: ItemID) : GameItem(originalID) {
|
class SledgehammerSteel(originalID: ItemID) : GameItem(originalID) {
|
||||||
internal constructor() : this("-uninitialised-")
|
internal constructor() : this("-uninitialised-")
|
||||||
|
|
||||||
override val originalName = "ITEM_SLEDGEHAMMER_STEEL"
|
|
||||||
override var baseToolSize: Double? = BASE_MASS_AND_SIZE
|
override var baseToolSize: Double? = BASE_MASS_AND_SIZE
|
||||||
override var stackable = true
|
|
||||||
override var inventoryCategory = Category.TOOL
|
override var inventoryCategory = Category.TOOL
|
||||||
override val isUnique = false
|
|
||||||
override val isDynamic = true
|
override val isDynamic = true
|
||||||
override val materialId = "STAL"
|
override val materialId = "STAL"
|
||||||
override var baseMass = material.density.toDouble() / MaterialCodex["IRON"].density * BASE_MASS_AND_SIZE
|
override var baseMass = material.density.toDouble() / MaterialCodex["IRON"].density * BASE_MASS_AND_SIZE
|
||||||
@@ -182,10 +175,11 @@ class SledgehammerSteel(originalID: ItemID) : GameItem(originalID) {
|
|||||||
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(8,0)
|
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(8,0)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
super.equipPosition = GameItem.EquipPosition.HAND_GRIP
|
equipPosition = GameItem.EquipPosition.HAND_GRIP
|
||||||
super.maxDurability = (TOOL_DURABILITY_BASE * material.enduranceMod).roundToInt()
|
maxDurability = (TOOL_DURABILITY_BASE * material.enduranceMod).roundToInt()
|
||||||
super.durability = maxDurability.toFloat()
|
durability = maxDurability.toFloat()
|
||||||
super.tags.add("HAMR")
|
tags.add("SLEDGEHAMMER")
|
||||||
|
originalName = "ITEM_SLEDGEHAMMER_STEEL"
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) =
|
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) =
|
||||||
|
|||||||
@@ -85,19 +85,19 @@ object WireCutterBase {
|
|||||||
class WireCutterAll(originalID: ItemID) : GameItem(originalID) {
|
class WireCutterAll(originalID: ItemID) : GameItem(originalID) {
|
||||||
|
|
||||||
override var dynamicID: ItemID = originalID
|
override var dynamicID: ItemID = originalID
|
||||||
override val originalName = "ITEM_WIRE_CUTTER"
|
|
||||||
override var baseMass = 0.1
|
override var baseMass = 0.1
|
||||||
override var baseToolSize: Double? = baseMass
|
override var baseToolSize: Double? = baseMass
|
||||||
override var stackable = false
|
|
||||||
override var inventoryCategory = Category.TOOL
|
override var inventoryCategory = Category.TOOL
|
||||||
override val isUnique = true
|
|
||||||
override val isDynamic = false
|
override val isDynamic = false
|
||||||
override val materialId = ""
|
override val materialId = ""
|
||||||
override val itemImage: TextureRegion
|
override val itemImage: TextureRegion
|
||||||
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(1, 3)
|
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(1, 3)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
super.equipPosition = GameItem.EquipPosition.HAND_GRIP
|
stackable = false
|
||||||
|
isUnique = true
|
||||||
|
equipPosition = GameItem.EquipPosition.HAND_GRIP
|
||||||
|
originalName = "ITEM_WIRE_CUTTER"
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) =
|
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) =
|
||||||
|
|||||||
@@ -12,11 +12,8 @@ import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
|||||||
|
|
||||||
class WireGraphDebugger(originalID: ItemID) : GameItem(originalID) {
|
class WireGraphDebugger(originalID: ItemID) : GameItem(originalID) {
|
||||||
|
|
||||||
override val originalName = "WIRE_DEBUGGER"
|
|
||||||
override var baseToolSize: Double? = PickaxeCore.BASE_MASS_AND_SIZE
|
override var baseToolSize: Double? = PickaxeCore.BASE_MASS_AND_SIZE
|
||||||
override var stackable = false
|
|
||||||
override var inventoryCategory = Category.TOOL
|
override var inventoryCategory = Category.TOOL
|
||||||
override val isUnique = true
|
|
||||||
override val isDynamic = false
|
override val isDynamic = false
|
||||||
override val materialId = "CUPR"
|
override val materialId = "CUPR"
|
||||||
override var baseMass = 2.0
|
override var baseMass = 2.0
|
||||||
@@ -24,8 +21,11 @@ class WireGraphDebugger(originalID: ItemID) : GameItem(originalID) {
|
|||||||
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(2,3)
|
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(2,3)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
super.equipPosition = GameItem.EquipPosition.HAND_GRIP
|
equipPosition = GameItem.EquipPosition.HAND_GRIP
|
||||||
super.name = "Wire Debugger"
|
name = "Wire Debugger"
|
||||||
|
stackable = false
|
||||||
|
isUnique = true
|
||||||
|
originalName = "WIRE_DEBUGGER"
|
||||||
}
|
}
|
||||||
|
|
||||||
private val sb = StringBuilder()
|
private val sb = StringBuilder()
|
||||||
|
|||||||
@@ -15,19 +15,17 @@ import net.torvald.terrarum.itemproperties.Material
|
|||||||
class WirePieceSignalWire(originalID: ItemID, private val atlasID: String, private val sheetX: Int, private val sheetY: Int) : GameItem(originalID) {
|
class WirePieceSignalWire(originalID: ItemID, private val atlasID: String, private val sheetX: Int, private val sheetY: Int) : GameItem(originalID) {
|
||||||
|
|
||||||
override var dynamicID: ItemID = originalID
|
override var dynamicID: ItemID = originalID
|
||||||
override val originalName = "ITEM_WIRE"
|
|
||||||
override var baseMass = 0.001
|
override var baseMass = 0.001
|
||||||
override var baseToolSize: Double? = null
|
override var baseToolSize: Double? = null
|
||||||
override var stackable = true
|
|
||||||
override var inventoryCategory = Category.WIRE
|
override var inventoryCategory = Category.WIRE
|
||||||
override val isUnique = false
|
|
||||||
override val isDynamic = false
|
override val isDynamic = false
|
||||||
override val materialId = ""
|
override val materialId = ""
|
||||||
override val itemImage: TextureRegion
|
override val itemImage: TextureRegion
|
||||||
get() = CommonResourcePool.getAsItemSheet(atlasID).get(sheetX, sheetY)
|
get() = CommonResourcePool.getAsItemSheet(atlasID).get(sheetX, sheetY)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
super.equipPosition = GameItem.EquipPosition.HAND_GRIP
|
equipPosition = GameItem.EquipPosition.HAND_GRIP
|
||||||
|
originalName = "ITEM_WIRE"
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun startPrimaryUse(actor: ActorWithBody, delta: Float): Long {
|
override fun startPrimaryUse(actor: ActorWithBody, delta: Float): Long {
|
||||||
|
|||||||
@@ -592,9 +592,9 @@ internal object WeatherMixer : RNGConsumer {
|
|||||||
clouds.forEach {
|
clouds.forEach {
|
||||||
val altOfSolarRay = cloudYtoSolarAlt(it.posY*-1.0, solarElev)
|
val altOfSolarRay = cloudYtoSolarAlt(it.posY*-1.0, solarElev)
|
||||||
|
|
||||||
val cloudCol1 = getGradientCloud(skyboxavr, solarElev, mornNoonBlend.toDouble(), turbidity, albedo)
|
val cloudCol1 = getGradientCloud(skyboxavr, solarElev, 1.0, turbidity, albedo)
|
||||||
val cloudCol2 = getGradientColour2(currentWeather.daylightClut, altOfSolarRay, timeNow, 4)
|
val cloudCol2 = getGradientColour2(currentWeather.daylightClut, altOfSolarRay, timeNow, 4)
|
||||||
val cloudDrawColour = lerp(0.75, cloudCol1, cloudCol2) // no srgblerp for performance
|
val cloudDrawColour = lerp(0.7, cloudCol1, cloudCol2) // no srgblerp for performance
|
||||||
|
|
||||||
val shadiness = (1.0 / cosh(altOfSolarRay * 0.5)).toFloat().coerceAtLeast(if (altOfSolarRay < 0) 0.6666f else 0f)
|
val shadiness = (1.0 / cosh(altOfSolarRay * 0.5)).toFloat().coerceAtLeast(if (altOfSolarRay < 0) 0.6666f else 0f)
|
||||||
|
|
||||||
@@ -653,7 +653,7 @@ internal object WeatherMixer : RNGConsumer {
|
|||||||
turbidity0 =
|
turbidity0 =
|
||||||
(world.weatherbox.oldWeather.json.getDouble("atmoTurbidity") + turbidityCoeff * 2.5).coerceIn(1.0, 10.0)
|
(world.weatherbox.oldWeather.json.getDouble("atmoTurbidity") + turbidityCoeff * 2.5).coerceIn(1.0, 10.0)
|
||||||
turbidity1 = (currentWeather.json.getDouble("atmoTurbidity") + turbidityCoeff * 2.5).coerceIn(1.0, 10.0)
|
turbidity1 = (currentWeather.json.getDouble("atmoTurbidity") + turbidityCoeff * 2.5).coerceIn(1.0, 10.0)
|
||||||
turbidity = FastMath.interpolateLinear(oldNewBlend.toDouble(), turbidity0, turbidity1)
|
turbidity = forceTurbidity ?: FastMath.interpolateLinear(oldNewBlend.toDouble(), turbidity0, turbidity1)
|
||||||
val oldTurbidity = forceTurbidity ?: turbidity0
|
val oldTurbidity = forceTurbidity ?: turbidity0
|
||||||
val thisTurbidity = forceTurbidity ?: turbidity1
|
val thisTurbidity = forceTurbidity ?: turbidity1
|
||||||
|
|
||||||
@@ -839,31 +839,36 @@ internal object WeatherMixer : RNGConsumer {
|
|||||||
val turbY = turbidity.coerceIn(Skybox.turbiditiesD.first(), Skybox.turbiditiesD.last()).minus(1.0)
|
val turbY = turbidity.coerceIn(Skybox.turbiditiesD.first(), Skybox.turbiditiesD.last()).minus(1.0)
|
||||||
.times(Skybox.turbDivisor)
|
.times(Skybox.turbDivisor)
|
||||||
val turbY1 = turbY.floorToInt()
|
val turbY1 = turbY.floorToInt()
|
||||||
val turbY2 = (turbY1).coerceAtMost(Skybox.turbCnt - 1)
|
val turbY2 = (turbY1 + 1).coerceAtMost(Skybox.turbCnt - 1)
|
||||||
val tx = turbY - turbY1
|
val tx = turbY - turbY1
|
||||||
// coarse-grained
|
// coarse-grained
|
||||||
val albX =
|
val albX =
|
||||||
albedo.coerceIn(Skybox.albedos.first(), Skybox.albedos.last()).times(5.0) * Skybox.elevCnt // 0*151..5*151
|
albedo.coerceIn(Skybox.albedos.first(), Skybox.albedos.last()).times(5.0) // 0..5
|
||||||
val albX1 = albX.floorToInt()
|
val albX1 = albX.floorToInt() * elevCnt
|
||||||
val albX2 = (albX1 + 1).coerceAtMost(5 * Skybox.elevCnt)
|
val albX2 = (albX + 1).floorToInt().coerceAtMost(5) * elevCnt
|
||||||
val bx = albX - albX1
|
val bx = ((albX * elevCnt) - albX1) / elevCnt
|
||||||
|
|
||||||
val a1t1b1A = colorMap.getCvec(albX1 * elevCnt + angleX1, turbY1)
|
|
||||||
val a2t1b1A = colorMap.getCvec(albX1 * elevCnt + angleX2, turbY1)
|
// println("AngleX: ($angleX1,$angleX2); TurbY: ($turbY1,$turbY2); AlbX: ($albX1,$albX2); MornNoon=(0,${Skybox.albedoCnt * elevCnt}); Albedo: $albedo")
|
||||||
val a1t2b1A = colorMap.getCvec(albX1 * elevCnt + angleX1, turbY2)
|
// println("ax=$ax; tx=$tx; bx=$bx")
|
||||||
val a2t2b1A = colorMap.getCvec(albX1 * elevCnt + angleX2, turbY2)
|
// println("XY: ${albX1 + angleX1 + Skybox.albedoCnt * elevCnt}, $turbY1")
|
||||||
val a1t1b2A = colorMap.getCvec(albX2 * elevCnt + angleX1, turbY1)
|
|
||||||
val a2t1b2A = colorMap.getCvec(albX2 * elevCnt + angleX2, turbY1)
|
val a1t1b1A = colorMap.getCvec(albX1 + angleX1, turbY1)
|
||||||
val a1t2b2A = colorMap.getCvec(albX2 * elevCnt + angleX1, turbY2)
|
val a2t1b1A = colorMap.getCvec(albX1 + angleX2, turbY1)
|
||||||
val a2t2b2A = colorMap.getCvec(albX2 * elevCnt + angleX2, turbY2)
|
val a1t2b1A = colorMap.getCvec(albX1 + angleX1, turbY2)
|
||||||
val a1t1b1B = colorMap.getCvec(albX1 * elevCnt + angleX1 + Skybox.albedoCnt * elevCnt, turbY1)
|
val a2t2b1A = colorMap.getCvec(albX1 + angleX2, turbY2)
|
||||||
val a2t1b1B = colorMap.getCvec(albX1 * elevCnt + angleX2 + Skybox.albedoCnt * elevCnt, turbY1)
|
val a1t1b2A = colorMap.getCvec(albX2 + angleX1, turbY1)
|
||||||
val a1t2b1B = colorMap.getCvec(albX1 * elevCnt + angleX1 + Skybox.albedoCnt * elevCnt, turbY2)
|
val a2t1b2A = colorMap.getCvec(albX2 + angleX2, turbY1)
|
||||||
val a2t2b1B = colorMap.getCvec(albX1 * elevCnt + angleX2 + Skybox.albedoCnt * elevCnt, turbY2)
|
val a1t2b2A = colorMap.getCvec(albX2 + angleX1, turbY2)
|
||||||
val a1t1b2B = colorMap.getCvec(albX2 * elevCnt + angleX1 + Skybox.albedoCnt * elevCnt, turbY1)
|
val a2t2b2A = colorMap.getCvec(albX2 + angleX2, turbY2)
|
||||||
val a2t1b2B = colorMap.getCvec(albX2 * elevCnt + angleX2 + Skybox.albedoCnt * elevCnt, turbY1)
|
val a1t1b1B = colorMap.getCvec(albX1 + angleX1 + Skybox.albedoCnt * elevCnt, turbY1)
|
||||||
val a1t2b2B = colorMap.getCvec(albX2 * elevCnt + angleX1 + Skybox.albedoCnt * elevCnt, turbY2)
|
val a2t1b1B = colorMap.getCvec(albX1 + angleX2 + Skybox.albedoCnt * elevCnt, turbY1)
|
||||||
val a2t2b2B = colorMap.getCvec(albX2 * elevCnt + angleX2 + Skybox.albedoCnt * elevCnt, turbY2)
|
val a1t2b1B = colorMap.getCvec(albX1 + angleX1 + Skybox.albedoCnt * elevCnt, turbY2)
|
||||||
|
val a2t2b1B = colorMap.getCvec(albX1 + angleX2 + Skybox.albedoCnt * elevCnt, turbY2)
|
||||||
|
val a1t1b2B = colorMap.getCvec(albX2 + angleX1 + Skybox.albedoCnt * elevCnt, turbY1)
|
||||||
|
val a2t1b2B = colorMap.getCvec(albX2 + angleX2 + Skybox.albedoCnt * elevCnt, turbY1)
|
||||||
|
val a1t2b2B = colorMap.getCvec(albX2 + angleX1 + Skybox.albedoCnt * elevCnt, turbY2)
|
||||||
|
val a2t2b2B = colorMap.getCvec(albX2 + angleX2 + Skybox.albedoCnt * elevCnt, turbY2)
|
||||||
|
|
||||||
// no srgblerp here to match the skybox shader's behaviour
|
// no srgblerp here to match the skybox shader's behaviour
|
||||||
|
|
||||||
@@ -884,7 +889,7 @@ internal object WeatherMixer : RNGConsumer {
|
|||||||
val A = lerp(bx, b1A, b2A)
|
val A = lerp(bx, b1A, b2A)
|
||||||
val B = lerp(bx, b1B, b2B)
|
val B = lerp(bx, b1B, b2B)
|
||||||
|
|
||||||
return lerp(mornNoonBlend, A, B)
|
return B//lerp(mornNoonBlend, A, B)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun lerp(x: Double, c1: Cvec, c2: Cvec): Cvec {
|
private fun lerp(x: Double, c1: Cvec, c2: Cvec): Cvec {
|
||||||
|
|||||||
Reference in New Issue
Block a user