mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-13 20:14:05 +09:00
sprite: emissive layer
This commit is contained in:
@@ -747,16 +747,19 @@ open class ActorHumanoid : ActorWithBody, Controllable, Pocketed, Factionable, L
|
||||
open fun updateSprite(delta: Float) {
|
||||
sprite?.update(delta)
|
||||
spriteGlow?.update(delta)
|
||||
spriteEmissive?.update(delta)
|
||||
|
||||
if (walledBottom && controllerV?.x != 0.0) {
|
||||
//switch row
|
||||
if (this is HasAssembledSprite) {
|
||||
(sprite as? AssembledSpriteAnimation)?.currentAnimation = "ANIM_RUN"
|
||||
(spriteGlow as? AssembledSpriteAnimation)?.currentAnimation = "ANIM_RUN"
|
||||
(spriteEmissive as? AssembledSpriteAnimation)?.currentAnimation = "ANIM_RUN"
|
||||
}
|
||||
else {
|
||||
(sprite as? SheetSpriteAnimation)?.switchRow(SPRITE_ROW_WALK)
|
||||
(spriteGlow as? SheetSpriteAnimation)?.switchRow(SPRITE_ROW_WALK)
|
||||
(spriteEmissive as? SheetSpriteAnimation)?.switchRow(SPRITE_ROW_WALK)
|
||||
}
|
||||
|
||||
// set anim frame delay
|
||||
@@ -772,6 +775,7 @@ open class ActorHumanoid : ActorWithBody, Controllable, Pocketed, Factionable, L
|
||||
|
||||
(sprite as? AssembledSpriteAnimation)?.overrideDelay = finalDelay
|
||||
(spriteGlow as? AssembledSpriteAnimation)?.overrideDelay = finalDelay
|
||||
(spriteEmissive as? AssembledSpriteAnimation)?.overrideDelay = finalDelay
|
||||
}
|
||||
catch (e: NullPointerException) {
|
||||
println(animDesc!!.animations.keys.joinToString())
|
||||
@@ -784,10 +788,12 @@ open class ActorHumanoid : ActorWithBody, Controllable, Pocketed, Factionable, L
|
||||
if (walkHeading == LEFT) {
|
||||
sprite?.flip(true, false)
|
||||
spriteGlow?.flip(true, false)
|
||||
spriteEmissive?.flip(true, false)
|
||||
}
|
||||
else {
|
||||
sprite?.flip(false, false)
|
||||
spriteGlow?.flip(false, false)
|
||||
spriteEmissive?.flip(false, false)
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -795,12 +801,15 @@ open class ActorHumanoid : ActorWithBody, Controllable, Pocketed, Factionable, L
|
||||
if (this is HasAssembledSprite) {
|
||||
(sprite as? AssembledSpriteAnimation)?.currentAnimation = "ANIM_IDLE"
|
||||
(spriteGlow as? AssembledSpriteAnimation)?.currentAnimation = "ANIM_IDLE"
|
||||
(spriteEmissive as? AssembledSpriteAnimation)?.currentAnimation = "ANIM_IDLE"
|
||||
(sprite as? AssembledSpriteAnimation)?.overrideDelay = 0f
|
||||
(spriteGlow as? AssembledSpriteAnimation)?.overrideDelay = 0f
|
||||
(spriteEmissive as? AssembledSpriteAnimation)?.overrideDelay = 0f
|
||||
}
|
||||
else {
|
||||
(sprite as? SheetSpriteAnimation)?.switchRow(SPRITE_ROW_IDLE)
|
||||
(spriteGlow as? SheetSpriteAnimation)?.switchRow(SPRITE_ROW_IDLE)
|
||||
(spriteEmissive as? SheetSpriteAnimation)?.switchRow(SPRITE_ROW_IDLE)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ class FixtureFurnaceAndAnvil : FixtureBase, CraftingStation {
|
||||
|
||||
|
||||
val itemImage = FixtureItemBase.getItemImageFromSingleImage("basegame", "sprites/fixtures/metalworking_furnace_and_anvil.tga")
|
||||
// val itemImage2 = FixtureItemBase.getItemImageFromSingleImage("basegame", "sprites/fixtures/metalworking_furnace_and_anvil_illum.tga") // put this sprite to the hypothetical "SpriteIllum"
|
||||
val itemImage2 = FixtureItemBase.getItemImageFromSingleImage("basegame", "sprites/fixtures/metalworking_furnace_and_anvil_emsv.tga")
|
||||
|
||||
density = BlockCodex[Block.STONE].density.toDouble()
|
||||
setHitboxDimension(itemImage.texture.width, itemImage.texture.height, 0, 0)
|
||||
@@ -40,9 +40,9 @@ class FixtureFurnaceAndAnvil : FixtureBase, CraftingStation {
|
||||
makeNewSprite(TextureRegionPack(itemImage.texture, itemImage.texture.width, itemImage.texture.height)).let {
|
||||
it.setRowsAndFrames(1,1)
|
||||
}
|
||||
/*makeNewSpriteGlow(TextureRegionPack(itemImage2.texture, itemImage.texture.width, itemImage.texture.height)).let {
|
||||
makeNewSpriteEmissive(TextureRegionPack(itemImage2.texture, itemImage.texture.width, itemImage.texture.height)).let {
|
||||
it.setRowsAndFrames(1,1)
|
||||
}*/
|
||||
}
|
||||
|
||||
actorValue[AVKey.BASEMASS] = 100.0
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ class FixtureSmelterBasic : FixtureBase, CraftingStation {
|
||||
|
||||
|
||||
val itemImage = FixtureItemBase.getItemImageFromSingleImage("basegame", "sprites/fixtures/smelter_tall.tga")
|
||||
// val itemImage2 = FixtureItemBase.getItemImageFromSingleImage("basegame", "sprites/fixtures/smelter_tall_illum.tga") // put this sprite to the hypothetical "SpriteIllum"
|
||||
val itemImage2 = FixtureItemBase.getItemImageFromSingleImage("basegame", "sprites/fixtures/smelter_tall_emsv.tga")
|
||||
|
||||
density = BlockCodex[Block.STONE].density.toDouble()
|
||||
setHitboxDimension(itemImage.texture.width, itemImage.texture.height, 0, 0)
|
||||
@@ -43,9 +43,9 @@ class FixtureSmelterBasic : FixtureBase, CraftingStation {
|
||||
makeNewSprite(TextureRegionPack(itemImage.texture, itemImage.texture.width, itemImage.texture.height)).let {
|
||||
it.setRowsAndFrames(1,1)
|
||||
}
|
||||
/*makeNewSpriteGlow(TextureRegionPack(itemImage2.texture, itemImage.texture.width, itemImage.texture.height)).let {
|
||||
makeNewSpriteEmissive(TextureRegionPack(itemImage2.texture, itemImage.texture.width, itemImage.texture.height)).let {
|
||||
it.setRowsAndFrames(1,1)
|
||||
}*/
|
||||
}
|
||||
|
||||
actorValue[AVKey.BASEMASS] = 100.0
|
||||
|
||||
|
||||
@@ -39,6 +39,8 @@ class IngamePlayer : ActorHumanoid, HasAssembledSprite, NoSerialise {
|
||||
@Transient override var animDesc: ADProperties? = null
|
||||
/** ADL for glow sprite. Optional. */
|
||||
@Transient override var animDescGlow: ADProperties? = null
|
||||
/** ADL for glow sprite. Optional. */
|
||||
@Transient override var animDescEmissive: ADProperties? = null
|
||||
|
||||
|
||||
private constructor()
|
||||
|
||||
@@ -26,6 +26,7 @@ object PlayerBuilderWerebeastTest {
|
||||
|
||||
p.animDesc?.let { p.sprite = AssembledSpriteAnimation(it, p, false) }
|
||||
p.animDescGlow?.let { p.spriteGlow = AssembledSpriteAnimation(it, p, true) }
|
||||
p.animDescEmissive?.let { p.spriteEmissive = AssembledSpriteAnimation(it, p, true) }
|
||||
p.setHitboxDimension(22, p.actorValue.getAsInt(AVKey.BASEHEIGHT)!!, 30, 0)
|
||||
|
||||
p.setPosition(3.0 * TILE_SIZE, 3.0 * TILE_SIZE)
|
||||
|
||||
Reference in New Issue
Block a user