mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-18 22:44:04 +09:00
PNG -> TGA
Former-commit-id: 394d3af24b5f1a125c40197a09f47867cc6fc566 Former-commit-id: 5428b1d2d7370b5a912851d5f5aa9f6b036f64f5
This commit is contained in:
@@ -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 }
|
||||
@@ -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) {
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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(),
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user