mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-07 20:31:51 +09:00
referencing ranges for wire overlay; more pronounced torch flicker
This commit is contained in:
@@ -17,11 +17,13 @@ object ReferencingRanges {
|
||||
val ACTORS_MIDDLE = 0x2000_0000..0x4FFF_FFFF // Regular actors (e.g. almost all of them)
|
||||
val ACTORS_MIDTOP = 0x5000_0000..0x5FFF_FFFF // Special (e.g. weapon swung, bullets, dropped item, particles)
|
||||
val ACTORS_FRONT = 0x6000_0000..0x6EFF_FFFF // Rendered front (e.g. fake tile)
|
||||
val ACTORS_WIRES = 0x6FFF_0000..0x6FFF_FFFF // Rendered front--weres
|
||||
val ACTORS_OVERLAY = 0x7000_0000..0x7FFF_FFFF // Rendered as screen overlay, not affected by light nor environment overlays
|
||||
|
||||
val VIRTUAL_TILES = -2 downTo -1048576 // index of -1 breaks things for some reason :(
|
||||
val ACTORS_WIRES = 0x6FFF_0000..0x6FFF_FFFF // Rendered front--wires
|
||||
val ACTORS_WIRES_HELPER = 0x7000_0000..0x7000_FFFF // Rendered overlay--wiring port icons and logic gates
|
||||
|
||||
val PREFIX_DYNAMICITEM = "dyn:"
|
||||
val PREFIX_ACTORITEM = "actor:"
|
||||
val ACTORS_OVERLAY = 0x7001_0000..0x7FFF_FFFF // Rendered as screen overlay, not affected by light nor environment overlays
|
||||
|
||||
val PREFIX_DYNAMICITEM = "dyn"
|
||||
val PREFIX_ACTORITEM = "actor"
|
||||
val PREFIX_VIRTUALTILE = "virt"
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import net.torvald.terrarum.AppLoader
|
||||
import net.torvald.terrarum.AppLoader.printdbg
|
||||
import net.torvald.terrarum.AppLoader.printmsg
|
||||
import net.torvald.terrarum.ReferencingRanges
|
||||
import net.torvald.terrarum.ReferencingRanges.PREFIX_VIRTUALTILE
|
||||
import net.torvald.terrarum.gameitem.ItemID
|
||||
import net.torvald.terrarum.gameworld.FluidType
|
||||
import net.torvald.terrarum.gameworld.GameWorld
|
||||
@@ -72,12 +73,12 @@ object BlockCodex {
|
||||
// add virtual props for dynamic lights
|
||||
val virtualChunk = ArrayList<ItemID>()
|
||||
repeat(DYNAMIC_RANDOM_CASES) { _ ->
|
||||
val virtualID = "virt:$virtualTileCursor"
|
||||
val virtualID = "$PREFIX_VIRTUALTILE:$virtualTileCursor"
|
||||
|
||||
virtualToTile[virtualID] = tileId
|
||||
virtualChunk.add(virtualID)
|
||||
|
||||
setProp("virt", virtualTileCursor, it)
|
||||
setProp(PREFIX_VIRTUALTILE, virtualTileCursor, it)
|
||||
|
||||
printdbg(this, "Block ID $tileId -> Virtual ID $virtualID, baseLum: ${blockProps[virtualID]?.baseLumCol}")
|
||||
virtualTileCursor += 1
|
||||
|
||||
@@ -15,7 +15,7 @@ import net.torvald.terrarum.weather.WeatherMixer
|
||||
object BlockPropUtil {
|
||||
//var flickerFuncX: Second = 0f // saves current status (time) of func
|
||||
val flickerFuncDomain: Second = 0.08f // time between two noise sample
|
||||
val flickerFuncRange = 0.012f // intensity [0, 1]
|
||||
val flickerFuncRange = 0.022f // intensity [0, 1]
|
||||
|
||||
//var breathFuncX = 0f
|
||||
val breathRange = 0.02f
|
||||
|
||||
@@ -27,9 +27,11 @@ abstract class Actor(val renderOrder: RenderOrder) : Comparable<Actor>, Runnable
|
||||
val RANGE_BEHIND = ReferencingRanges.ACTORS_BEHIND // 1
|
||||
val RANGE_MIDDLE = ReferencingRanges.ACTORS_MIDDLE // 3
|
||||
val RANGE_MIDTOP = ReferencingRanges.ACTORS_MIDTOP // 1
|
||||
val RANGE_FRONT = ReferencingRanges.ACTORS_FRONT // 1
|
||||
val RANGE_FRONT = ReferencingRanges.ACTORS_FRONT // 0.9375
|
||||
val RANGE_OVERLAY= ReferencingRanges.ACTORS_OVERLAY // 0.9375
|
||||
|
||||
val RANGE_WIRES = ReferencingRanges.ACTORS_WIRES // 0.0002
|
||||
val RANGE_WIRES_HELPER = ReferencingRanges.ACTORS_WIRES_HELPER // 0.0002
|
||||
}
|
||||
|
||||
abstract fun update(delta: Float)
|
||||
|
||||
@@ -295,7 +295,7 @@ abstract class GameItem(val originalID: ItemID) : Comparable<GameItem>, Cloneabl
|
||||
|
||||
|
||||
fun generateUniqueDynamicID(inventory: ActorInventory): GameItem {
|
||||
dynamicID = "$PREFIX_DYNAMICITEM${Companion.generateUniqueDynamicID(inventory)}"
|
||||
dynamicID = "$PREFIX_DYNAMICITEM:${Companion.generateUniqueDynamicID(inventory)}"
|
||||
ItemCodex.registerNewDynamicItem(dynamicID, this)
|
||||
return this
|
||||
}
|
||||
@@ -308,7 +308,7 @@ abstract class GameItem(val originalID: ItemID) : Comparable<GameItem>, Cloneabl
|
||||
var ret: Int
|
||||
do {
|
||||
ret = (1..2147483647).pickRandom()
|
||||
} while (inventory.contains("$PREFIX_DYNAMICITEM$ret"))
|
||||
} while (inventory.contains("$PREFIX_DYNAMICITEM:$ret"))
|
||||
|
||||
return ret
|
||||
}
|
||||
|
||||
@@ -53,9 +53,9 @@ object ItemCodex {
|
||||
operator fun get(code: ItemID?): GameItem? {
|
||||
if (code == null) return null
|
||||
|
||||
if (code.startsWith(PREFIX_DYNAMICITEM))
|
||||
if (code.startsWith("$PREFIX_DYNAMICITEM:"))
|
||||
return dynamicItemDescription[code]!!
|
||||
else if (code.startsWith(PREFIX_ACTORITEM)) {
|
||||
else if (code.startsWith("$PREFIX_ACTORITEM:")) {
|
||||
val a = (Terrarum.ingame!! as TerrarumIngame).getActorByID(code.substring(6).toInt()) // actor item
|
||||
if (a is CanBeAnItem) return a.itemData
|
||||
|
||||
@@ -89,7 +89,7 @@ object ItemCodex {
|
||||
if (itemID == null) return null
|
||||
|
||||
// dynamic item
|
||||
if (itemID.startsWith(PREFIX_DYNAMICITEM)) {
|
||||
if (itemID.startsWith("$PREFIX_DYNAMICITEM:")) {
|
||||
return getItemImage(dynamicToStaticID(itemID))
|
||||
}
|
||||
// item
|
||||
|
||||
Reference in New Issue
Block a user