PNG -> TGA

Former-commit-id: 394d3af24b5f1a125c40197a09f47867cc6fc566
Former-commit-id: 5428b1d2d7370b5a912851d5f5aa9f6b036f64f5
This commit is contained in:
Song Minjae
2017-01-16 18:24:19 +09:00
parent 1f1e2f6899
commit e9c7ef4930
187 changed files with 223 additions and 149 deletions

View File

@@ -6,9 +6,11 @@ import net.torvald.terrarum.itemproperties.ItemCodex
import org.newdawn.slick.GameContainer
/**
* @param renderOrder invisible/technical -> ActorOrder.MIDDLE
*
* Created by minjaesong on 15-12-31.
*/
abstract class Actor : Comparable<Actor>, Runnable {
abstract class Actor(val renderOrder: ActorOrder) : Comparable<Actor>, Runnable {
abstract fun update(gc: GameContainer, delta: Int)
@@ -37,10 +39,29 @@ abstract class Actor : Comparable<Actor>, Runnable {
* override var referenceID: Int = generateUniqueReferenceID()
*/
fun generateUniqueReferenceID(): Int {
fun checkForCollision(value: Int) =
Terrarum.ingame.hasActor(value) ||
value < ItemCodex.ITEM_COUNT_MAX ||
value < when (renderOrder) {
ActorOrder.BEHIND -> ItemCodex.ITEM_COUNT_MAX
ActorOrder.MIDDLE -> 0x10000000
ActorOrder.MIDTOP -> 0x60000000
ActorOrder.FRONT -> 0x70000000
} ||
value > when (renderOrder) {
ActorOrder.BEHIND -> 0x0FFFFFFF
ActorOrder.MIDDLE -> 0x5FFFFFFF
ActorOrder.MIDTOP -> 0x6FFFFFFF
ActorOrder.FRONT -> 0x7FFFFFFF
}
var ret: Int
do {
ret = HQRNG().nextInt().and(0x7FFFFFFF) // set new ID
} while (Terrarum.ingame.hasActor(ret) || ret < ItemCodex.ITEM_COUNT_MAX) // check for collision
} while (checkForCollision(ret)) // check for collision
return ret
}
}
}
enum class ActorOrder { BEHIND, MIDDLE, MIDTOP, FRONT }

View File

@@ -21,7 +21,7 @@ import java.util.*
*
* Created by minjaesong on 16-01-13.
*/
open class ActorWithBody : Actor() {
open class ActorWithBody(renderOrder: ActorOrder) : Actor(renderOrder) {
/** !! ActorValue macros are on the very bottom of the source !! **/
@@ -32,8 +32,6 @@ open class ActorWithBody : Actor() {
@Transient internal var spriteGlow: SpriteAnimation? = null
var drawMode = BLEND_NORMAL
/** for fake tiles. Draw on top of player(s) */
var drawTopmost = false
@Transient private val world: GameWorld = Terrarum.ingame.world
@@ -909,7 +907,7 @@ open class ActorWithBody : Actor() {
private fun updateHitbox() = hitbox.reassign(nextHitbox)
open fun drawGlow(gc: GameContainer, g: Graphics) {
open fun drawGlow(g: Graphics) {
if (isVisible && spriteGlow != null) {
blendLightenOnly()
@@ -952,7 +950,7 @@ open class ActorWithBody : Actor() {
}
}
open fun drawBody(gc: GameContainer, g: Graphics) {
open fun drawBody(g: Graphics) {
if (isVisible && sprite != null) {

View File

@@ -19,7 +19,7 @@ object CreatureBuilder {
*/
@Throws(IOException::class, SlickException::class)
operator fun invoke(jsonFileName: String): ActorWithBody {
val actor = ActorWithBody()
val actor = ActorWithBody(ActorOrder.MIDDLE)
InjectCreatureRaw(actor.actorValue, jsonFileName)
return actor

View File

@@ -9,7 +9,7 @@ import org.newdawn.slick.Graphics
/**
* Created by minjaesong on 16-03-15.
*/
class DroppedItem(private val item: InventoryItem) : ActorWithBody() {
class DroppedItem(private val item: InventoryItem) : ActorWithBody(ActorOrder.MIDTOP) {
init {
if (item.id >= ItemCodex.ITEM_COUNT_MAX)
@@ -29,7 +29,7 @@ class DroppedItem(private val item: InventoryItem) : ActorWithBody() {
item.effectWhenEquipped(gc, delta)
}
override fun drawBody(gc: GameContainer, g: Graphics) {
override fun drawBody(g: Graphics) {
}
}

View File

@@ -5,7 +5,7 @@ import net.torvald.spriteanimation.SpriteAnimation
/**
* Created by minjaesong on 16-06-17.
*/
open class FixtureBase : ActorWithBody() {
open class FixtureBase : ActorWithBody(ActorOrder.BEHIND) {
/**
* 0: Open
* 1: Blocked

View File

@@ -26,7 +26,7 @@ class FixtureTikiTorch : FixtureBase(), Luminous {
lightBoxList.add(Hitbox(3.0, 0.0, 4.0, 3.0))
makeNewSprite(10, 27)
sprite!!.setSpriteImage("assets/graphics/sprites/fixtures/tiki_torch.png")
sprite!!.setSpriteImage("assets/graphics/sprites/fixtures/tiki_torch.tga")
sprite!!.setDelay(200)
sprite!!.setRowsAndFrames(1, 1)

View File

@@ -11,7 +11,7 @@ import org.newdawn.slick.Input
*
* Created by minjaesong on 16-10-10.
*/
open class HistoricalFigure(val born: GameDate, val dead: GameDate? = null) : ActorWithBody() {
open class HistoricalFigure(val born: GameDate, val dead: GameDate? = null) : ActorWithBody(ActorOrder.MIDDLE) {
init {
this.actorValue["_bornyear"] = born.year

View File

@@ -10,7 +10,7 @@ import org.newdawn.slick.Graphics
/**
* Created by minjaesong on 16-03-05.
*/
class PhysTestBall : ActorWithBody() {
class PhysTestBall : ActorWithBody(ActorOrder.MIDDLE) {
private var color = Color.orange
@@ -22,7 +22,7 @@ class PhysTestBall : ActorWithBody() {
color = RoguelikeRandomiser.composeColourFrom(RoguelikeRandomiser.POTION_PRIMARY_COLSET)
}
override fun drawBody(gc: GameContainer, g: Graphics) {
override fun drawBody(g: Graphics) {
g.color = color
g.fillOval(
hitbox.posX.toFloat(),

View File

@@ -20,7 +20,7 @@ object PlayerBuilderCynthia {
p.makeNewSprite(26, 42)
p.sprite!!.setSpriteImage("assets/graphics/sprites/test_player_2.png")
p.sprite!!.setSpriteImage("assets/graphics/sprites/test_player_2.tga")
p.sprite!!.setDelay(200)
p.sprite!!.setRowsAndFrames(1, 1)
@@ -31,7 +31,7 @@ object PlayerBuilderCynthia {
p.referenceID = 12345678
p.referenceID = 321321321

View File

@@ -27,12 +27,12 @@ object PlayerBuilderSigrid {
p.referenceID = 0x51621D // the only constant of this procedural universe
p.makeNewSprite(28, 51)
p.sprite!!.setSpriteImage("assets/graphics/sprites/test_player.png")
p.sprite!!.setSpriteImage("assets/graphics/sprites/test_player.tga")
p.sprite!!.setDelay(200)
p.sprite!!.setRowsAndFrames(1, 1)
p.makeNewSpriteGlow(28, 51)
p.spriteGlow!!.setSpriteImage("assets/graphics/sprites/test_player_glow.png")
p.spriteGlow!!.setSpriteImage("assets/graphics/sprites/test_player_glow.tga")
p.spriteGlow!!.setDelay(200)
p.spriteGlow!!.setRowsAndFrames(1, 1)

View File

@@ -19,7 +19,7 @@ open class ProjectileSimple(
private val type: Int,
fromPoint: Vector2, // projected coord
toPoint: Vector2 // arriving coord
) : ActorWithBody(), Luminous, Projectile {
) : ActorWithBody(ActorOrder.MIDTOP), Luminous, Projectile {
val damage: Int
val displayColour: Color
@@ -76,7 +76,7 @@ open class ProjectileSimple(
super.update(gc, delta)
}
override fun drawBody(gc: GameContainer, g: Graphics) {
override fun drawBody(g: Graphics) {
val colourTail = displayColour.darker(0f) // clone a colour
colourTail.a = 0.16f
@@ -92,7 +92,7 @@ open class ProjectileSimple(
)
}
override fun drawGlow(gc: GameContainer, g: Graphics) = drawBody(gc, g)
override fun drawGlow(g: Graphics) = drawBody(g)
companion object {
val OFFSET_DAMAGE = 0

View File

@@ -24,8 +24,8 @@ class TapestryObject(val image: Image, val artName: String, val artAuthor: Strin
super.update(gc, delta)
}
override fun drawBody(gc: GameContainer, g: Graphics) {
super.drawBody(gc, g)
override fun drawBody(g: Graphics) {
super.drawBody(g)
}
override fun updateBodySprite(gc: GameContainer, delta: Int) {

View File

@@ -3,7 +3,7 @@ package net.torvald.terrarum.gameactors
/**
* Created by minjaesong on 16-04-26.
*/
class WeaponSwung(val itemID: Int) : ActorWithBody(), Luminous {
class WeaponSwung(val itemID: Int) : ActorWithBody(ActorOrder.MIDTOP), Luminous {
// just let the solver use AABB; it's cheap but works just enough
/**