mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-10 13:51:53 +09:00
blocks now have properly formatted ids
This commit is contained in:
@@ -54,10 +54,10 @@ class StateInGame : BasicGameState() {
|
||||
val particlesContainer = CircularArray<ParticleBase>(PARTICLES_MAX)
|
||||
val uiContainer = ArrayList<UIHandler>()
|
||||
|
||||
private val actorsRenderBehind = ArrayList<ActorVisible>(ACTORCONTAINER_INITIAL_SIZE)
|
||||
private val actorsRenderMiddle = ArrayList<ActorVisible>(ACTORCONTAINER_INITIAL_SIZE)
|
||||
private val actorsRenderMidTop = ArrayList<ActorVisible>(ACTORCONTAINER_INITIAL_SIZE)
|
||||
private val actorsRenderFront = ArrayList<ActorVisible>(ACTORCONTAINER_INITIAL_SIZE)
|
||||
private val actorsRenderBehind = ArrayList<ActorWithBody>(ACTORCONTAINER_INITIAL_SIZE)
|
||||
private val actorsRenderMiddle = ArrayList<ActorWithBody>(ACTORCONTAINER_INITIAL_SIZE)
|
||||
private val actorsRenderMidTop = ArrayList<ActorWithBody>(ACTORCONTAINER_INITIAL_SIZE)
|
||||
private val actorsRenderFront = ArrayList<ActorWithBody>(ACTORCONTAINER_INITIAL_SIZE)
|
||||
|
||||
var playableActorDelegate: PlayableActorDelegate? = null // DO NOT LATEINIT!
|
||||
private set
|
||||
@@ -204,11 +204,13 @@ class StateInGame : BasicGameState() {
|
||||
|
||||
// batch-process uiAliases
|
||||
uiAliases = arrayListOf(
|
||||
uiPieMenu,
|
||||
uiQuickBar,
|
||||
// drawn first
|
||||
uiVitalPrimary,
|
||||
uiVitalSecondary,
|
||||
uiVitalItem
|
||||
uiVitalItem,
|
||||
uiPieMenu,
|
||||
uiQuickBar
|
||||
// drawn last
|
||||
)
|
||||
uiAlasesPausing = arrayListOf(
|
||||
uiInventoryPlayer,
|
||||
@@ -391,7 +393,7 @@ class StateInGame : BasicGameState() {
|
||||
actorsRenderMidTop.forEach { it.drawBody(worldG) }
|
||||
player?.drawBody(worldG)
|
||||
actorsRenderFront.forEach { it.drawBody(worldG) }
|
||||
// --> Change of blend mode <-- introduced by ActorVisible //
|
||||
// --> Change of blend mode <-- introduced by childs of ActorWithBody //
|
||||
|
||||
|
||||
/////////////////////////////
|
||||
@@ -418,7 +420,7 @@ class StateInGame : BasicGameState() {
|
||||
actorsRenderMidTop.forEach { it.drawGlow(worldG) }
|
||||
player?.drawGlow(worldG)
|
||||
actorsRenderFront.forEach { it.drawGlow(worldG) }
|
||||
// --> blendLightenOnly() <-- introduced by ActorVisible //
|
||||
// --> blendLightenOnly() <-- introduced by childs of ActorWithBody //
|
||||
|
||||
|
||||
////////////////////////
|
||||
@@ -428,7 +430,7 @@ class StateInGame : BasicGameState() {
|
||||
// draw reference ID if debugWindow is open
|
||||
if (debugWindow.isVisible) {
|
||||
actorContainer.forEachIndexed { i, actor ->
|
||||
if (actor is ActorVisible) {
|
||||
if (actor is ActorWithBody) {
|
||||
worldG.color = Color.white
|
||||
worldG.font = Terrarum.fontSmallNumbers
|
||||
worldG.drawString(
|
||||
@@ -540,7 +542,7 @@ class StateInGame : BasicGameState() {
|
||||
var i = 0
|
||||
while (i < actorContainerSize) { // loop through actorContainerInactive
|
||||
val actor = actorContainerInactive[i]
|
||||
if (actor is ActorVisible && actor.inUpdateRange()) {
|
||||
if (actor is ActorWithBody && actor.inUpdateRange()) {
|
||||
activateDormantActor(actor) // duplicates are checked here
|
||||
actorContainerSize -= 1
|
||||
i-- // array removed 1 elem, so we also decrement counter by 1
|
||||
@@ -567,7 +569,7 @@ class StateInGame : BasicGameState() {
|
||||
i-- // array removed 1 elem, so we also decrement counter by 1
|
||||
}
|
||||
// inactivate distant actors
|
||||
else if (actor is ActorVisible && !actor.inUpdateRange()) {
|
||||
else if (actor is ActorWithBody && !actor.inUpdateRange()) {
|
||||
if (actor !is Projectile) { // if it's a projectile, don't inactivate it; just kill it.
|
||||
actorContainerInactive.add(actor) // naïve add; duplicates are checked when the actor is re-activated
|
||||
}
|
||||
@@ -626,7 +628,7 @@ class StateInGame : BasicGameState() {
|
||||
d.forEach { if (it < ret) ret = it }
|
||||
return ret
|
||||
}
|
||||
private fun distToActorSqr(a: ActorVisible, p: ActorVisible) =
|
||||
private fun distToActorSqr(a: ActorWithBody, p: ActorWithBody) =
|
||||
min(// take min of normal position and wrapped (x < 0) position
|
||||
(a.hitbox.centeredX - p.hitbox.centeredX).sqr() +
|
||||
(a.hitbox.centeredY - p.hitbox.centeredY).sqr(),
|
||||
@@ -635,7 +637,7 @@ class StateInGame : BasicGameState() {
|
||||
(a.hitbox.centeredX - p.hitbox.centeredX - world.width * TILE_SIZE).sqr() +
|
||||
(a.hitbox.centeredY - p.hitbox.centeredY).sqr()
|
||||
)
|
||||
private fun distToCameraSqr(a: ActorVisible) =
|
||||
private fun distToCameraSqr(a: ActorWithBody) =
|
||||
min(
|
||||
(a.hitbox.posX - WorldCamera.x).sqr() +
|
||||
(a.hitbox.posY - WorldCamera.y).sqr(),
|
||||
@@ -646,14 +648,14 @@ class StateInGame : BasicGameState() {
|
||||
)
|
||||
|
||||
/** whether the actor is within screen */
|
||||
private fun ActorVisible.inScreen() =
|
||||
private fun ActorWithBody.inScreen() =
|
||||
distToCameraSqr(this) <=
|
||||
(Terrarum.WIDTH.plus(this.hitbox.width.div(2)).times(1 / Terrarum.ingame!!.screenZoom).sqr() +
|
||||
Terrarum.HEIGHT.plus(this.hitbox.height.div(2)).times(1 / Terrarum.ingame!!.screenZoom).sqr())
|
||||
|
||||
|
||||
/** whether the actor is within update range */
|
||||
private fun ActorVisible.inUpdateRange() = distToCameraSqr(this) <= ACTOR_UPDATE_RANGE.sqr()
|
||||
private fun ActorWithBody.inUpdateRange() = distToCameraSqr(this) <= ACTOR_UPDATE_RANGE.sqr()
|
||||
|
||||
/**
|
||||
* actorContainer extensions
|
||||
@@ -693,7 +695,7 @@ class StateInGame : BasicGameState() {
|
||||
|
||||
// indexToDelete >= 0 means that the actor certainly exists in the game
|
||||
// which means we don't need to check if i >= 0 again
|
||||
if (actor is ActorVisible) {
|
||||
if (actor is ActorWithBody) {
|
||||
when (actor.renderOrder) {
|
||||
Actor.RenderOrder.BEHIND -> {
|
||||
val i = actorsRenderBehind.binarySearch(actor.referenceID)
|
||||
@@ -727,7 +729,7 @@ class StateInGame : BasicGameState() {
|
||||
actorContainer.add(actor)
|
||||
insertionSortLastElem(actorContainer) // we can do this as we are only adding single actor
|
||||
|
||||
if (actor is ActorVisible) {
|
||||
if (actor is ActorWithBody) {
|
||||
when (actor.renderOrder) {
|
||||
Actor.RenderOrder.BEHIND -> {
|
||||
actorsRenderBehind.add(actor); insertionSortLastElemAV(actorsRenderBehind)
|
||||
@@ -758,7 +760,7 @@ class StateInGame : BasicGameState() {
|
||||
actorContainer.add(actor)
|
||||
insertionSortLastElem(actorContainer) // we can do this as we are only adding single actor
|
||||
|
||||
if (actor is ActorVisible) {
|
||||
if (actor is ActorWithBody) {
|
||||
when (actor.renderOrder) {
|
||||
Actor.RenderOrder.BEHIND -> {
|
||||
actorsRenderBehind.add(actor); insertionSortLastElemAV(actorsRenderBehind)
|
||||
@@ -820,7 +822,7 @@ class StateInGame : BasicGameState() {
|
||||
arr[j + 1] = x
|
||||
}
|
||||
}
|
||||
private fun insertionSortLastElemAV(arr: ArrayList<ActorVisible>) { // out-projection doesn't work, duh
|
||||
private fun insertionSortLastElemAV(arr: ArrayList<ActorWithBody>) { // out-projection doesn't work, duh
|
||||
lock(ReentrantLock()) {
|
||||
var j = arr.lastIndex - 1
|
||||
val x = arr.last()
|
||||
|
||||
@@ -7,147 +7,147 @@ object Block {
|
||||
|
||||
val AIR = 0 // hard coded; this is the standard
|
||||
|
||||
val STONE = BlockCodex.idDamageToIndex(1, 0)
|
||||
val STONE_QUARRIED = BlockCodex.idDamageToIndex(1, 1)
|
||||
val STONE_TILE_WHITE = BlockCodex.idDamageToIndex(1, 2)
|
||||
val STONE_BRICKS = BlockCodex.idDamageToIndex(1, 3)
|
||||
val STONE = 16
|
||||
val STONE_QUARRIED = 17
|
||||
val STONE_TILE_WHITE = 18
|
||||
val STONE_BRICKS = 19
|
||||
|
||||
val DIRT = BlockCodex.idDamageToIndex(2, 0)
|
||||
val GRASS = BlockCodex.idDamageToIndex(2, 1)
|
||||
val GRASSWALL = BlockCodex.idDamageToIndex(2, 2)
|
||||
val DIRT = 32
|
||||
val GRASS = 33
|
||||
val GRASSWALL = 34
|
||||
|
||||
val PLANK_NORMAL = BlockCodex.idDamageToIndex(3, 0)
|
||||
val PLANK_EBONY = BlockCodex.idDamageToIndex(3, 1)
|
||||
val PLANK_BIRCH = BlockCodex.idDamageToIndex(3, 2)
|
||||
val PLANK_BLOODROSE = BlockCodex.idDamageToIndex(3, 3)
|
||||
val PLANK_NORMAL = 48
|
||||
val PLANK_EBONY = 49
|
||||
val PLANK_BIRCH = 50
|
||||
val PLANK_BLOODROSE = 51
|
||||
|
||||
val TRUNK_NORMAL = BlockCodex.idDamageToIndex(4, 0)
|
||||
val TRUNK_EBONY = BlockCodex.idDamageToIndex(4, 1)
|
||||
val TRUNK_BIRCH = BlockCodex.idDamageToIndex(4, 2)
|
||||
val TRUNK_BLOODROSE = BlockCodex.idDamageToIndex(4, 3)
|
||||
val TRUNK_NORMAL = 64
|
||||
val TRUNK_EBONY = 65
|
||||
val TRUNK_BIRCH = 66
|
||||
val TRUNK_BLOODROSE = 67
|
||||
|
||||
val SAND = BlockCodex.idDamageToIndex(5, 0)
|
||||
val SAND_WHITE = BlockCodex.idDamageToIndex(5, 1)
|
||||
val SAND_RED = BlockCodex.idDamageToIndex(5, 2)
|
||||
val SAND_DESERT = BlockCodex.idDamageToIndex(5, 3)
|
||||
val SAND_BLACK = BlockCodex.idDamageToIndex(5, 4)
|
||||
val SAND_GREEN = BlockCodex.idDamageToIndex(5, 5)
|
||||
val SAND = 80
|
||||
val SAND_WHITE = 81
|
||||
val SAND_RED = 82
|
||||
val SAND_DESERT = 83
|
||||
val SAND_BLACK = 84
|
||||
val SAND_GREEN = 85
|
||||
|
||||
val GRAVEL = BlockCodex.idDamageToIndex(6, 0)
|
||||
val GRAVEL_GREY = BlockCodex.idDamageToIndex(6, 1)
|
||||
val GRAVEL = 96
|
||||
val GRAVEL_GREY = 97
|
||||
|
||||
val ORE_COPPER = BlockCodex.idDamageToIndex(7, 0)
|
||||
val ORE_IRON = BlockCodex.idDamageToIndex(7, 1)
|
||||
val ORE_GOLD = BlockCodex.idDamageToIndex(7, 2)
|
||||
val ORE_SILVER = BlockCodex.idDamageToIndex(7, 3)
|
||||
val ORE_ILMENITE = BlockCodex.idDamageToIndex(7, 4)
|
||||
val ORE_AURICHALCUM = BlockCodex.idDamageToIndex(7, 5)
|
||||
val ORE_COPPER = 112
|
||||
val ORE_IRON = 113
|
||||
val ORE_GOLD = 114
|
||||
val ORE_SILVER = 115
|
||||
val ORE_ILMENITE = 116
|
||||
val ORE_AURICHALCUM = 117
|
||||
|
||||
val RAW_RUBY = BlockCodex.idDamageToIndex(8, 0)
|
||||
val RAW_EMERALD = BlockCodex.idDamageToIndex(8, 1)
|
||||
val RAW_SAPPHIRE = BlockCodex.idDamageToIndex(8, 2)
|
||||
val RAW_TOPAZ = BlockCodex.idDamageToIndex(8, 3)
|
||||
val RAW_DIAMOND = BlockCodex.idDamageToIndex(8, 4)
|
||||
val RAW_AMETHYST = BlockCodex.idDamageToIndex(8, 5)
|
||||
val RAW_RUBY = 128
|
||||
val RAW_EMERALD = 129
|
||||
val RAW_SAPPHIRE = 130
|
||||
val RAW_TOPAZ = 131
|
||||
val RAW_DIAMOND = 132
|
||||
val RAW_AMETHYST = 133
|
||||
|
||||
val SNOW = BlockCodex.idDamageToIndex(9, 0)
|
||||
val ICE_FRAGILE = BlockCodex.idDamageToIndex(9, 1)
|
||||
val ICE_NATURAL = BlockCodex.idDamageToIndex(9, 2)
|
||||
val ICE_MAGICAL = BlockCodex.idDamageToIndex(9, 3)
|
||||
val SNOW = 144
|
||||
val ICE_FRAGILE = 145
|
||||
val ICE_NATURAL = 146
|
||||
val ICE_MAGICAL = 147
|
||||
|
||||
val GLASS_CRUDE = BlockCodex.idDamageToIndex(9, 4)
|
||||
val GLASS_CLEAN = BlockCodex.idDamageToIndex(9, 5)
|
||||
val GLASS_CRUDE = 148
|
||||
val GLASS_CLEAN = 149
|
||||
|
||||
val PLATFORM_STONE = BlockCodex.idDamageToIndex(10, 0)
|
||||
val PLATFORM_WOODEN = BlockCodex.idDamageToIndex(10, 1)
|
||||
val PLATFORM_EBONY = BlockCodex.idDamageToIndex(10, 2)
|
||||
val PLATFORM_BIRCH = BlockCodex.idDamageToIndex(10, 3)
|
||||
val PLATFORM_BLOODROSE = BlockCodex.idDamageToIndex(10, 4)
|
||||
val PLATFORM_STONE = 160
|
||||
val PLATFORM_WOODEN = 161
|
||||
val PLATFORM_EBONY = 162
|
||||
val PLATFORM_BIRCH = 163
|
||||
val PLATFORM_BLOODROSE = 164
|
||||
|
||||
val TORCH = BlockCodex.idDamageToIndex(11, 0)
|
||||
val TORCH_FROST = BlockCodex.idDamageToIndex(11, 1)
|
||||
val TORCH = 176
|
||||
val TORCH_FROST = 177
|
||||
|
||||
val TORCH_OFF = BlockCodex.idDamageToIndex(12, 0)
|
||||
val TORCH_FROST_OFF = BlockCodex.idDamageToIndex(12, 1)
|
||||
val TORCH_OFF = 192
|
||||
val TORCH_FROST_OFF = 193
|
||||
|
||||
val ILLUMINATOR_WHITE = BlockCodex.idDamageToIndex(13, 0)
|
||||
val ILLUMINATOR_YELLOW = BlockCodex.idDamageToIndex(13, 1)
|
||||
val ILLUMINATOR_ORANGE = BlockCodex.idDamageToIndex(13, 2)
|
||||
val ILLUMINATOR_RED = BlockCodex.idDamageToIndex(13, 3)
|
||||
val ILLUMINATOR_FUCHSIA = BlockCodex.idDamageToIndex(13, 4)
|
||||
val ILLUMINATOR_PURPLE = BlockCodex.idDamageToIndex(13, 5)
|
||||
val ILLUMINATOR_BLUE = BlockCodex.idDamageToIndex(13, 6)
|
||||
val ILLUMINATOR_CYAN = BlockCodex.idDamageToIndex(13, 7)
|
||||
val ILLUMINATOR_GREEN = BlockCodex.idDamageToIndex(13, 8)
|
||||
val ILLUMINATOR_GREEN_DARK = BlockCodex.idDamageToIndex(13, 9)
|
||||
val ILLUMINATOR_BROWN = BlockCodex.idDamageToIndex(13, 10)
|
||||
val ILLUMINATOR_TAN = BlockCodex.idDamageToIndex(13, 11)
|
||||
val ILLUMINATOR_GREY_LIGHT = BlockCodex.idDamageToIndex(13, 12)
|
||||
val ILLUMINATOR_GREY_MED = BlockCodex.idDamageToIndex(13, 13)
|
||||
val ILLUMINATOR_GREY_DARK = BlockCodex.idDamageToIndex(13, 14)
|
||||
val ILLUMINATOR_BLACK = BlockCodex.idDamageToIndex(13, 15)
|
||||
val ILLUMINATOR_WHITE = 208
|
||||
val ILLUMINATOR_YELLOW = 209
|
||||
val ILLUMINATOR_ORANGE = 210
|
||||
val ILLUMINATOR_RED = 211
|
||||
val ILLUMINATOR_FUCHSIA = 212
|
||||
val ILLUMINATOR_PURPLE = 213
|
||||
val ILLUMINATOR_BLUE = 214
|
||||
val ILLUMINATOR_CYAN = 215
|
||||
val ILLUMINATOR_GREEN = 216
|
||||
val ILLUMINATOR_GREEN_DARK = 217
|
||||
val ILLUMINATOR_BROWN = 218
|
||||
val ILLUMINATOR_TAN = 219
|
||||
val ILLUMINATOR_GREY_LIGHT = 220
|
||||
val ILLUMINATOR_GREY_MED = 221
|
||||
val ILLUMINATOR_GREY_DARK = 222
|
||||
val ILLUMINATOR_BLACK = 223
|
||||
|
||||
val ILLUMINATOR_WHITE_OFF = BlockCodex.idDamageToIndex(14, 0)
|
||||
val ILLUMINATOR_YELLOW_OFF = BlockCodex.idDamageToIndex(14, 1)
|
||||
val ILLUMINATOR_ORANGE_OFF = BlockCodex.idDamageToIndex(14, 2)
|
||||
val ILLUMINATOR_RED_OFF = BlockCodex.idDamageToIndex(14, 3)
|
||||
val ILLUMINATOR_FUCHSIA_OFF = BlockCodex.idDamageToIndex(14, 4)
|
||||
val ILLUMINATOR_PURPLE_OFF = BlockCodex.idDamageToIndex(14, 5)
|
||||
val ILLUMINATOR_BLUE_OFF = BlockCodex.idDamageToIndex(14, 6)
|
||||
val ILLUMINATOR_CYAN_OFF = BlockCodex.idDamageToIndex(14, 7)
|
||||
val ILLUMINATOR_GREEN_OFF = BlockCodex.idDamageToIndex(14, 8)
|
||||
val ILLUMINATOR_GREEN_DARK_OFF = BlockCodex.idDamageToIndex(14, 9)
|
||||
val ILLUMINATOR_BROWN_OFF = BlockCodex.idDamageToIndex(14, 10)
|
||||
val ILLUMINATOR_TAN_OFF = BlockCodex.idDamageToIndex(14, 11)
|
||||
val ILLUMINATOR_GREY_LIGHT_OFF = BlockCodex.idDamageToIndex(14, 12)
|
||||
val ILLUMINATOR_GREY_MED_OFF = BlockCodex.idDamageToIndex(14, 13)
|
||||
val ILLUMINATOR_GREY_DARK_OFF = BlockCodex.idDamageToIndex(14, 14)
|
||||
val ILLUMINATOR_BLACK_OFF = BlockCodex.idDamageToIndex(14, 15)
|
||||
val ILLUMINATOR_WHITE_OFF = 224
|
||||
val ILLUMINATOR_YELLOW_OFF = 225
|
||||
val ILLUMINATOR_ORANGE_OFF = 226
|
||||
val ILLUMINATOR_RED_OFF = 227
|
||||
val ILLUMINATOR_FUCHSIA_OFF = 228
|
||||
val ILLUMINATOR_PURPLE_OFF = 229
|
||||
val ILLUMINATOR_BLUE_OFF = 230
|
||||
val ILLUMINATOR_CYAN_OFF = 231
|
||||
val ILLUMINATOR_GREEN_OFF = 232
|
||||
val ILLUMINATOR_GREEN_DARK_OFF = 233
|
||||
val ILLUMINATOR_BROWN_OFF = 234
|
||||
val ILLUMINATOR_TAN_OFF = 235
|
||||
val ILLUMINATOR_GREY_LIGHT_OFF = 236
|
||||
val ILLUMINATOR_GREY_MED_OFF = 237
|
||||
val ILLUMINATOR_GREY_DARK_OFF = 238
|
||||
val ILLUMINATOR_BLACK_OFF = 239
|
||||
|
||||
val SANDSTONE = BlockCodex.idDamageToIndex(15, 0)
|
||||
val SANDSTONE_WHITE = BlockCodex.idDamageToIndex(15, 1)
|
||||
val SANDSTONE_RED = BlockCodex.idDamageToIndex(15, 2)
|
||||
val SANDSTONE_DESERT = BlockCodex.idDamageToIndex(15, 3)
|
||||
val SANDSTONE_BLACK = BlockCodex.idDamageToIndex(15, 4)
|
||||
val SANDSTONE_GREEN = BlockCodex.idDamageToIndex(15, 5)
|
||||
val SANDSTONE = 240
|
||||
val SANDSTONE_WHITE = 241
|
||||
val SANDSTONE_RED = 242
|
||||
val SANDSTONE_DESERT = 243
|
||||
val SANDSTONE_BLACK = 244
|
||||
val SANDSTONE_GREEN = 245
|
||||
|
||||
val LANTERN = BlockCodex.idDamageToIndex(16, 0)
|
||||
val SUNSTONE = BlockCodex.idDamageToIndex(16, 1)
|
||||
val DAYLIGHT_CAPACITOR = BlockCodex.idDamageToIndex(16, 2)
|
||||
val LANTERN = 256
|
||||
val SUNSTONE = 257
|
||||
val DAYLIGHT_CAPACITOR = 258
|
||||
|
||||
val WATER_1 = BlockCodex.idDamageToIndex(255, 0)
|
||||
val WATER_2 = BlockCodex.idDamageToIndex(255, 1)
|
||||
val WATER_3 = BlockCodex.idDamageToIndex(255, 2)
|
||||
val WATER_4 = BlockCodex.idDamageToIndex(255, 3)
|
||||
val WATER_5 = BlockCodex.idDamageToIndex(255, 4)
|
||||
val WATER_6 = BlockCodex.idDamageToIndex(255, 5)
|
||||
val WATER_7 = BlockCodex.idDamageToIndex(255, 6)
|
||||
val WATER_8 = BlockCodex.idDamageToIndex(255, 7)
|
||||
val WATER_9 = BlockCodex.idDamageToIndex(255, 8)
|
||||
val WATER_10 = BlockCodex.idDamageToIndex(255, 9)
|
||||
val WATER_11 = BlockCodex.idDamageToIndex(255, 10)
|
||||
val WATER_12 = BlockCodex.idDamageToIndex(255, 11)
|
||||
val WATER_13 = BlockCodex.idDamageToIndex(255, 12)
|
||||
val WATER_14 = BlockCodex.idDamageToIndex(255, 13)
|
||||
val WATER_15 = BlockCodex.idDamageToIndex(255, 14)
|
||||
val WATER = BlockCodex.idDamageToIndex(255, 15)
|
||||
val WATER_1 = 4080
|
||||
val WATER_2 = 4081
|
||||
val WATER_3 = 4082
|
||||
val WATER_4 = 4083
|
||||
val WATER_5 = 4084
|
||||
val WATER_6 = 4085
|
||||
val WATER_7 = 4086
|
||||
val WATER_8 = 4087
|
||||
val WATER_9 = 4088
|
||||
val WATER_10 = 4089
|
||||
val WATER_11 = 4090
|
||||
val WATER_12 = 4091
|
||||
val WATER_13 = 4092
|
||||
val WATER_14 = 4093
|
||||
val WATER_15 = 4094
|
||||
val WATER = 4095
|
||||
|
||||
val LAVA_1 = BlockCodex.idDamageToIndex(254, 0)
|
||||
val LAVA_2 = BlockCodex.idDamageToIndex(254, 1)
|
||||
val LAVA_3 = BlockCodex.idDamageToIndex(254, 2)
|
||||
val LAVA_4 = BlockCodex.idDamageToIndex(254, 3)
|
||||
val LAVA_5 = BlockCodex.idDamageToIndex(254, 4)
|
||||
val LAVA_6 = BlockCodex.idDamageToIndex(254, 5)
|
||||
val LAVA_7 = BlockCodex.idDamageToIndex(254, 6)
|
||||
val LAVA_8 = BlockCodex.idDamageToIndex(254, 7)
|
||||
val LAVA_9 = BlockCodex.idDamageToIndex(254, 8)
|
||||
val LAVA_10 = BlockCodex.idDamageToIndex(254, 9)
|
||||
val LAVA_11 = BlockCodex.idDamageToIndex(254, 10)
|
||||
val LAVA_12 = BlockCodex.idDamageToIndex(254, 11)
|
||||
val LAVA_13 = BlockCodex.idDamageToIndex(254, 12)
|
||||
val LAVA_14 = BlockCodex.idDamageToIndex(254, 13)
|
||||
val LAVA_15 = BlockCodex.idDamageToIndex(254, 14)
|
||||
val LAVA = BlockCodex.idDamageToIndex(254, 15)
|
||||
val LAVA_1 = 4064
|
||||
val LAVA_2 = 4065
|
||||
val LAVA_3 = 4066
|
||||
val LAVA_4 = 4067
|
||||
val LAVA_5 = 4068
|
||||
val LAVA_6 = 4069
|
||||
val LAVA_7 = 4070
|
||||
val LAVA_8 = 4071
|
||||
val LAVA_9 = 4072
|
||||
val LAVA_10 = 4073
|
||||
val LAVA_11 = 4074
|
||||
val LAVA_12 = 4075
|
||||
val LAVA_13 = 4076
|
||||
val LAVA_14 = 4077
|
||||
val LAVA_15 = 4078
|
||||
val LAVA = 4079
|
||||
|
||||
val NULL = -1
|
||||
}
|
||||
|
||||
@@ -29,13 +29,11 @@ object BlockCodex {
|
||||
println("[BlockCodex] Building block properties table")
|
||||
|
||||
records.forEach {
|
||||
if (intVal(it, "sid") == -1) {
|
||||
if (intVal(it, "blid") == -1) {
|
||||
setProp(nullProp, it)
|
||||
}
|
||||
else {
|
||||
setProp(
|
||||
blockProps[idDamageToIndex(intVal(it, "id"), intVal(it, "sid"))], it
|
||||
)
|
||||
setProp(blockProps[intVal(it, "blid")], it)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -44,15 +42,13 @@ object BlockCodex {
|
||||
}
|
||||
}
|
||||
|
||||
fun get(index: Int, subID: Int): BlockProp {
|
||||
fun get(index: Int): BlockProp {
|
||||
try {
|
||||
blockProps[idDamageToIndex(index, subID)].id
|
||||
return blockProps[index]
|
||||
}
|
||||
catch (e: NullPointerException) {
|
||||
throw NullPointerException("Blockprop with id $index and subID $subID does not exist.")
|
||||
throw NullPointerException("Blockprop with id $index does not exist.")
|
||||
}
|
||||
|
||||
return blockProps[idDamageToIndex(index, subID)]
|
||||
}
|
||||
|
||||
operator fun get(rawIndex: Int?): BlockProp {
|
||||
@@ -71,14 +67,13 @@ object BlockCodex {
|
||||
private fun setProp(prop: BlockProp, record: CSVRecord) {
|
||||
prop.nameKey = record.get("name")
|
||||
|
||||
prop.id = idDamageToIndex(intVal(record, "id"), intVal(record, "sid"))
|
||||
prop.id = intVal(record, "blid")
|
||||
prop.drop = intVal(record, "drid")
|
||||
|
||||
prop.opacity = intVal(record, "opacity")
|
||||
prop.strength = intVal(record, "strength")
|
||||
prop.density = intVal(record, "dsty")
|
||||
prop.luminosity = intVal(record, "lumcolor")
|
||||
prop.drop = intVal(record, "drop")
|
||||
prop.dropDamage = intVal(record, "ddmg")
|
||||
prop.friction = intVal(record, "friction")
|
||||
prop.viscosity = intVal(record, "vscs")
|
||||
|
||||
@@ -90,7 +85,7 @@ object BlockCodex {
|
||||
|
||||
prop.dynamicLuminosityFunction = intVal(record, "dlfn")
|
||||
|
||||
print(formatNum3(intVal(record, "id")) + ":" + formatNum2(intVal(record, "sid")))
|
||||
print("${intVal(record, "blid")}")
|
||||
println("\t" + prop.nameKey)
|
||||
}
|
||||
|
||||
@@ -107,16 +102,5 @@ object BlockCodex {
|
||||
|
||||
private fun boolVal(rec: CSVRecord, s: String) = intVal(rec, s) != 0
|
||||
|
||||
fun idDamageToIndex(index: Int, damage: Int) = index * PairedMapLayer.RANGE + damage
|
||||
|
||||
private fun formatNum3(i: Int): String {
|
||||
if (i < 10)
|
||||
return "00" + i
|
||||
else if (i < 100)
|
||||
return "0" + i
|
||||
else
|
||||
return i.toString()
|
||||
}
|
||||
|
||||
private fun formatNum2(i: Int) = if (i < 10) "0" + i else i.toString()
|
||||
}
|
||||
|
||||
@@ -33,7 +33,6 @@ class BlockProp {
|
||||
get() = BlockPropUtil.getDynamicLumFunc(field, dynamicLuminosityFunction)
|
||||
|
||||
var drop: Int = 0
|
||||
var dropDamage: Int = 0
|
||||
|
||||
var isFallable: Boolean = false
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import net.torvald.terrarum.gamecontroller.Key
|
||||
import net.torvald.terrarum.itemproperties.InventoryItem
|
||||
import net.torvald.terrarum.itemproperties.Material
|
||||
import net.torvald.terrarum.realestate.LandUtil
|
||||
import net.torvald.terrarum.ui.UIInventory
|
||||
import org.newdawn.slick.GameContainer
|
||||
import org.newdawn.slick.Input
|
||||
import java.util.*
|
||||
@@ -479,12 +480,15 @@ open class ActorHumanoid(birth: GameDate, death: GameDate? = null)
|
||||
// ONLY FOR HAND_GRIPs!!
|
||||
val quickBarItem = inventory.getQuickBar(actorValue.getAsInt(key)!!)?.item
|
||||
|
||||
if (quickBarItem == null) {
|
||||
unequipSlot(InventoryItem.EquipPosition.HAND_GRIP)
|
||||
}
|
||||
else if (quickBarItem.equipPosition == InventoryItem.EquipPosition.HAND_GRIP) {
|
||||
if (quickBarItem != null && quickBarItem.equipPosition == InventoryItem.EquipPosition.HAND_GRIP) {
|
||||
equipItem(quickBarItem)
|
||||
}
|
||||
|
||||
// force update inventory UI
|
||||
try {
|
||||
(Terrarum.ingame!!.uiInventoryPlayer.UI as UIInventory).shutUpAndRebuild()
|
||||
}
|
||||
catch (LateInitMyArse: kotlin.UninitializedPropertyAccessException) { }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,9 +8,8 @@ import org.newdawn.slick.Graphics
|
||||
*
|
||||
* Created by minjaesong on 2017-01-21.
|
||||
*/
|
||||
abstract class ActorVisible(renderOrder: RenderOrder) : Actor(renderOrder) {
|
||||
abstract class ActorWithBody(renderOrder: RenderOrder) : Actor(renderOrder) {
|
||||
open val hitbox = Hitbox(0.0, 0.0, 0.0, 0.0)
|
||||
override abstract fun update(gc: GameContainer, delta: Int)
|
||||
abstract fun drawBody(g: Graphics)
|
||||
abstract fun drawGlow(g: Graphics)
|
||||
}
|
||||
@@ -26,7 +26,7 @@ import java.util.*
|
||||
*
|
||||
* Created by minjaesong on 16-01-13.
|
||||
*/
|
||||
open class ActorWithPhysics(renderOrder: RenderOrder, val immobileBody: Boolean = false, physics: Boolean = true) : ActorVisible(renderOrder) {
|
||||
open class ActorWithPhysics(renderOrder: RenderOrder, val immobileBody: Boolean = false, physics: Boolean = true) : ActorWithBody(renderOrder) {
|
||||
|
||||
/** !! ActorValue macros are on the very bottom of the source !! **/
|
||||
|
||||
|
||||
@@ -13,7 +13,11 @@ typealias AnyPlayer = HistoricalFigure
|
||||
*
|
||||
* Created by minjaesong on 16-10-10.
|
||||
*/
|
||||
open class HistoricalFigure(val born: GameDate, val dead: GameDate? = null, realAirFriction: Boolean = false) : ActorWithPhysics(Actor.RenderOrder.MIDDLE, realAirFriction) {
|
||||
open class HistoricalFigure(
|
||||
val born: GameDate,
|
||||
val dead: GameDate? = null,
|
||||
realAirFriction: Boolean = false
|
||||
) : ActorWithPhysics(Actor.RenderOrder.MIDDLE, realAirFriction) {
|
||||
|
||||
init {
|
||||
this.actorValue["_bornyear"] = born.year
|
||||
|
||||
@@ -115,11 +115,11 @@ class UIInventory(
|
||||
val listControlHelp: String
|
||||
get() = if (Terrarum.environment == RunningEnvironment.PC)
|
||||
"${0xe006.toChar()} ${Lang["GAME_INVENTORY_USE"]}$SP" +
|
||||
"${0xe011.toChar()}..${0xe019.toChar()} ${Lang["GAME_INVENTORY_REGISTER"]}$SP" +
|
||||
"${0xe011.toChar()}..${0xe010.toChar()} ${Lang["GAME_INVENTORY_REGISTER"]}$SP" +
|
||||
"${0xe034.toChar()} ${Lang["GAME_INVENTORY_DROP"]}"
|
||||
else
|
||||
"$joypadLabelNinY ${Lang["GAME_INVENTORY_USE"]}$SP" +
|
||||
"${0xe011.toChar()}${0xe019.toChar()} ${Lang["GAME_INVENTORY_REGISTER"]}$SP" +
|
||||
"${0xe011.toChar()}${0xe010.toChar()} ${Lang["GAME_INVENTORY_REGISTER"]}$SP" +
|
||||
"$joypadLabelNinA ${Lang["GAME_INVENTORY_DROP"]}"
|
||||
val listControlClose: String
|
||||
get() = if (Terrarum.environment == RunningEnvironment.PC)
|
||||
|
||||
Reference in New Issue
Block a user