mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-14 12:34:05 +09:00
a point to insert the item image to the item sprite
This commit is contained in:
@@ -4,6 +4,7 @@ import com.badlogic.gdx.graphics.Texture
|
|||||||
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
||||||
import net.torvald.spriteassembler.ADProperties
|
import net.torvald.spriteassembler.ADProperties
|
||||||
import net.torvald.spriteassembler.AssembleSheetPixmap
|
import net.torvald.spriteassembler.AssembleSheetPixmap
|
||||||
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -30,11 +31,11 @@ interface HasAssembledSprite {
|
|||||||
* reassembleSprite(this.sprite, this.spriteGlow)
|
* reassembleSprite(this.sprite, this.spriteGlow)
|
||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
fun reassembleSprite(sprite: SpriteAnimation?, spriteGlow: SpriteAnimation? = null) {
|
fun reassembleSprite(sprite: SpriteAnimation?, spriteGlow: SpriteAnimation? = null, item: GameItem?) {
|
||||||
if (animDesc != null && sprite != null)
|
if (animDesc != null && sprite != null)
|
||||||
_rebuild(animDesc!!, sprite)
|
_rebuild(animDesc!!, sprite, null)
|
||||||
if (animDescGlow != null && spriteGlow != null)
|
if (animDescGlow != null && spriteGlow != null)
|
||||||
_rebuild(animDescGlow!!, spriteGlow)
|
_rebuild(animDescGlow!!, spriteGlow, null)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*fun reassembleSprite(disk: SimpleFileSystem, sprite: SpriteAnimation?, anim: ADProperties?, spriteGlow: SpriteAnimation? = null, animGlow: ADProperties? = null) {
|
/*fun reassembleSprite(disk: SimpleFileSystem, sprite: SpriteAnimation?, anim: ADProperties?, spriteGlow: SpriteAnimation? = null, animGlow: ADProperties? = null) {
|
||||||
@@ -44,10 +45,10 @@ interface HasAssembledSprite {
|
|||||||
_rebuild(disk, animGlow, spriteGlow)
|
_rebuild(disk, animGlow, spriteGlow)
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
private fun _rebuild(ad: ADProperties, sprite: SpriteAnimation) {
|
private fun _rebuild(ad: ADProperties, sprite: SpriteAnimation, item: GameItem?) {
|
||||||
// TODO injecting held item/armour pictures? Would it be AssembleSheetPixmap's job?
|
// TODO injecting held item/armour pictures? Would it be AssembleSheetPixmap's job?
|
||||||
|
|
||||||
val pixmap = AssembleSheetPixmap.fromAssetsDir(ad)
|
val pixmap = AssembleSheetPixmap.fromAssetsDir(ad, item)
|
||||||
val texture = Texture(pixmap)
|
val texture = Texture(pixmap)
|
||||||
texture.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest)
|
texture.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest)
|
||||||
pixmap.dispose()
|
pixmap.dispose()
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import com.badlogic.gdx.graphics.Pixmap
|
|||||||
import com.badlogic.gdx.graphics.Texture
|
import com.badlogic.gdx.graphics.Texture
|
||||||
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
||||||
import com.badlogic.gdx.utils.GdxRuntimeException
|
import com.badlogic.gdx.utils.GdxRuntimeException
|
||||||
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.linearSearch
|
import net.torvald.terrarum.linearSearch
|
||||||
import net.torvald.terrarum.savegame.ByteArray64InputStream
|
import net.torvald.terrarum.savegame.ByteArray64InputStream
|
||||||
import net.torvald.terrarum.savegame.ByteArray64Reader
|
import net.torvald.terrarum.savegame.ByteArray64Reader
|
||||||
@@ -47,25 +48,25 @@ object AssembleSheetPixmap {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun drawAndGetCanvas(properties: ADProperties, fileGetter: (String) -> InputStream?): Pixmap {
|
private fun drawAndGetCanvas(properties: ADProperties, fileGetter: (String) -> InputStream?, injectedItem: GameItem?): Pixmap {
|
||||||
val canvas = Pixmap(properties.cols * properties.frameWidth, properties.rows * properties.frameHeight, Pixmap.Format.RGBA8888)
|
val canvas = Pixmap(properties.cols * properties.frameWidth, properties.rows * properties.frameHeight, Pixmap.Format.RGBA8888)
|
||||||
canvas.blending = Pixmap.Blending.SourceOver
|
canvas.blending = Pixmap.Blending.SourceOver
|
||||||
|
|
||||||
// actually draw
|
// actually draw
|
||||||
properties.transforms.forEach { t, _ ->
|
properties.transforms.forEach { t, _ ->
|
||||||
drawThisFrame(t, canvas, properties, fileGetter)
|
drawThisFrame(t, canvas, properties, fileGetter, injectedItem)
|
||||||
}
|
}
|
||||||
|
|
||||||
return canvas
|
return canvas
|
||||||
}
|
}
|
||||||
|
|
||||||
fun fromAssetsDir(properties: ADProperties) = drawAndGetCanvas(properties, getAssetsDirFileGetter(properties))
|
fun fromAssetsDir(properties: ADProperties, injectedItem: GameItem?) = drawAndGetCanvas(properties, getAssetsDirFileGetter(properties), injectedItem)
|
||||||
|
|
||||||
fun fromVirtualDisk(disk: SimpleFileSystem, entrynum: Long, properties: ADProperties): Pixmap {
|
fun fromVirtualDisk(disk: SimpleFileSystem, entrynum: Long, properties: ADProperties, injectedItem: GameItem?): Pixmap {
|
||||||
val bodypartMapping = Properties()
|
val bodypartMapping = Properties()
|
||||||
bodypartMapping.load(ByteArray64Reader(disk.getFile(entrynum)!!.bytes, Common.CHARSET))
|
bodypartMapping.load(ByteArray64Reader(disk.getFile(entrynum)!!.bytes, Common.CHARSET))
|
||||||
|
|
||||||
return drawAndGetCanvas(properties, getVirtualDiskFileGetter(bodypartMapping, disk))
|
return drawAndGetCanvas(properties, getVirtualDiskFileGetter(bodypartMapping, disk), injectedItem)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getPartPixmap(getFile: (String) -> InputStream?, partName: String): Pixmap? {
|
fun getPartPixmap(getFile: (String) -> InputStream?, partName: String): Pixmap? {
|
||||||
@@ -131,7 +132,8 @@ object AssembleSheetPixmap {
|
|||||||
private fun drawThisFrame(frameName: String,
|
private fun drawThisFrame(frameName: String,
|
||||||
canvas: Pixmap,
|
canvas: Pixmap,
|
||||||
properties: ADProperties,
|
properties: ADProperties,
|
||||||
fileGetter: (String) -> InputStream?
|
fileGetter: (String) -> InputStream?,
|
||||||
|
injectedItem: GameItem?
|
||||||
) {
|
) {
|
||||||
val theAnim = properties.getAnimByFrameName(frameName)
|
val theAnim = properties.getAnimByFrameName(frameName)
|
||||||
val skeleton = theAnim.skeleton.joints.reversed()
|
val skeleton = theAnim.skeleton.joints.reversed()
|
||||||
@@ -158,7 +160,7 @@ object AssembleSheetPixmap {
|
|||||||
|
|
||||||
// AppLoader.printdbg(this, "Frame to draw: $frameName (R$animRow C$animFrame)")
|
// AppLoader.printdbg(this, "Frame to draw: $frameName (R$animRow C$animFrame)")
|
||||||
|
|
||||||
drawFrame(animRow, animFrame, canvas, properties, bodypartOrigins, bodypartImages, transformList)
|
drawFrame(animRow, animFrame, canvas, properties, bodypartOrigins, bodypartImages, transformList, injectedItem)
|
||||||
|
|
||||||
bodypartImages.values.forEach { it?.dispose() }
|
bodypartImages.values.forEach { it?.dispose() }
|
||||||
}
|
}
|
||||||
@@ -168,7 +170,8 @@ object AssembleSheetPixmap {
|
|||||||
props: ADProperties,
|
props: ADProperties,
|
||||||
bodypartOrigins: HashMap<String, ADPropertyObject.Vector2i>,
|
bodypartOrigins: HashMap<String, ADPropertyObject.Vector2i>,
|
||||||
bodypartImages: Map<String, Pixmap?>,
|
bodypartImages: Map<String, Pixmap?>,
|
||||||
transformList: List<Pair<String, ADPropertyObject.Vector2i>>
|
transformList: List<Pair<String, ADPropertyObject.Vector2i>>,
|
||||||
|
injectedItem: GameItem?
|
||||||
) {
|
) {
|
||||||
val tmpFrame = Pixmap(props.frameWidth, props.frameHeight, Pixmap.Format.RGBA8888)
|
val tmpFrame = Pixmap(props.frameWidth, props.frameHeight, Pixmap.Format.RGBA8888)
|
||||||
|
|
||||||
@@ -187,6 +190,8 @@ object AssembleSheetPixmap {
|
|||||||
(row - 1) * props.frameHeight
|
(row - 1) * props.frameHeight
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// TODO use injectedItem
|
||||||
|
|
||||||
tmpFrame.dispose()
|
tmpFrame.dispose()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -298,7 +298,7 @@ class SpriteAssemblerPreview: Game() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun assembleImage(prop: ADProperties) {
|
private fun assembleImage(prop: ADProperties) {
|
||||||
image = AssembleSheetPixmap.fromAssetsDir(prop)
|
image = AssembleSheetPixmap.fromAssetsDir(prop, null)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO rename to requestAssembly
|
// TODO rename to requestAssembly
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import net.torvald.spriteassembler.AssembleSheetPixmap
|
|||||||
import net.torvald.terrarum.App
|
import net.torvald.terrarum.App
|
||||||
import net.torvald.terrarum.Terrarum
|
import net.torvald.terrarum.Terrarum
|
||||||
import net.torvald.terrarum.gameactors.AVKey
|
import net.torvald.terrarum.gameactors.AVKey
|
||||||
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.savegame.SimpleFileSystem
|
import net.torvald.terrarum.savegame.SimpleFileSystem
|
||||||
import net.torvald.terrarum.utils.PlayerLastStatus
|
import net.torvald.terrarum.utils.PlayerLastStatus
|
||||||
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||||
@@ -71,6 +72,12 @@ class IngamePlayer : ActorHumanoid {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** To be used later by the game to rebuild the sprite.
|
||||||
|
* Which `_rebuild` function to use is determined at the load time.
|
||||||
|
*/
|
||||||
|
private lateinit var rebuildfun: (item: GameItem?) -> Unit
|
||||||
|
private lateinit var rebuildfunGlow: (item: GameItem?) -> Unit
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Example usage:
|
* Example usage:
|
||||||
@@ -82,19 +89,19 @@ class IngamePlayer : ActorHumanoid {
|
|||||||
* reassembleSprite(this.sprite, this.spriteGlow)
|
* reassembleSprite(this.sprite, this.spriteGlow)
|
||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
fun reassembleSprite(sprite: SpriteAnimation?, spriteGlow: SpriteAnimation? = null) {
|
fun reassembleSprite(sprite: SpriteAnimation?, spriteGlow: SpriteAnimation?, heldItem: GameItem?) {
|
||||||
if (animDesc != null && sprite != null) {
|
if (animDesc != null && sprite != null) {
|
||||||
_rebuild(animDesc!!, sprite)
|
rebuildfun = { item: GameItem? -> _rebuild(animDesc!!, sprite, item) }; rebuildfun(heldItem)
|
||||||
spriteHeadTexture = AssembleSheetPixmap.getMugshotFromAssetsDir(animDesc!!)
|
spriteHeadTexture = AssembleSheetPixmap.getMugshotFromAssetsDir(animDesc!!)
|
||||||
}
|
}
|
||||||
if (animDescGlow != null && spriteGlow != null)
|
if (animDescGlow != null && spriteGlow != null)
|
||||||
_rebuild(animDescGlow!!, spriteGlow)
|
rebuildfunGlow = { item: GameItem? -> _rebuild(animDescGlow!!, spriteGlow, item) }; rebuildfunGlow(heldItem)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun reassembleSprite(disk: SimpleFileSystem, sprite: SpriteAnimation?, spriteGlow: SpriteAnimation? = null) {
|
fun reassembleSpriteFromDisk(disk: SimpleFileSystem, sprite: SpriteAnimation?, spriteGlow: SpriteAnimation?, heldItem: GameItem?) {
|
||||||
if (animDesc != null && sprite != null) {
|
if (animDesc != null && sprite != null) {
|
||||||
_rebuild(disk, -1025L, animDesc!!, sprite)
|
rebuildfun = { item: GameItem? -> _rebuild(disk, -1025L, animDesc!!, sprite, item) }; rebuildfun(heldItem)
|
||||||
|
|
||||||
if (disk.getEntry(-1025L) != null)
|
if (disk.getEntry(-1025L) != null)
|
||||||
spriteHeadTexture = AssembleSheetPixmap.getMugshotFromVirtualDisk(disk, -1025L, animDesc!!)
|
spriteHeadTexture = AssembleSheetPixmap.getMugshotFromVirtualDisk(disk, -1025L, animDesc!!)
|
||||||
@@ -102,13 +109,13 @@ class IngamePlayer : ActorHumanoid {
|
|||||||
spriteHeadTexture = AssembleSheetPixmap.getMugshotFromAssetsDir(animDesc!!)
|
spriteHeadTexture = AssembleSheetPixmap.getMugshotFromAssetsDir(animDesc!!)
|
||||||
}
|
}
|
||||||
if (animDescGlow != null && spriteGlow != null)
|
if (animDescGlow != null && spriteGlow != null)
|
||||||
_rebuild(disk, -1026L, animDescGlow!!, spriteGlow)
|
rebuildfunGlow = { item: GameItem? -> _rebuild(disk, -1026L, animDescGlow!!, spriteGlow, item) }; rebuildfunGlow(heldItem)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun _rebuild(ad: ADProperties, sprite: SpriteAnimation) {
|
private fun _rebuild(ad: ADProperties, sprite: SpriteAnimation, item: GameItem?) {
|
||||||
// TODO injecting held item/armour pictures? Would it be AssembleSheetPixmap's job?
|
// TODO injecting held item/armour pictures? Would it be AssembleSheetPixmap's job?
|
||||||
|
|
||||||
val pixmap = AssembleSheetPixmap.fromAssetsDir(ad)
|
val pixmap = AssembleSheetPixmap.fromAssetsDir(ad, item)
|
||||||
val texture = Texture(pixmap)
|
val texture = Texture(pixmap)
|
||||||
texture.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest)
|
texture.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest)
|
||||||
pixmap.dispose()
|
pixmap.dispose()
|
||||||
@@ -129,10 +136,10 @@ class IngamePlayer : ActorHumanoid {
|
|||||||
sprite.nRows = newAnimDelays.size
|
sprite.nRows = newAnimDelays.size
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun _rebuild(disk: SimpleFileSystem, entrynum: Long, ad: ADProperties, sprite: SpriteAnimation) {
|
private fun _rebuild(disk: SimpleFileSystem, entrynum: Long, ad: ADProperties, sprite: SpriteAnimation, item: GameItem?) {
|
||||||
// TODO injecting held item/armour pictures? Would it be AssembleSheetPixmap's job?
|
// TODO injecting held item/armour pictures? Would it be AssembleSheetPixmap's job?
|
||||||
|
|
||||||
val pixmap = if (disk.getEntry(entrynum) != null) AssembleSheetPixmap.fromVirtualDisk(disk, entrynum, ad) else AssembleSheetPixmap.fromAssetsDir(ad)
|
val pixmap = if (disk.getEntry(entrynum) != null) AssembleSheetPixmap.fromVirtualDisk(disk, entrynum, ad, item) else AssembleSheetPixmap.fromAssetsDir(ad, item)
|
||||||
val texture = Texture(pixmap)
|
val texture = Texture(pixmap)
|
||||||
texture.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest)
|
texture.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest)
|
||||||
pixmap.dispose()
|
pixmap.dispose()
|
||||||
@@ -156,4 +163,24 @@ class IngamePlayer : ActorHumanoid {
|
|||||||
override fun getSpriteHead(): TextureRegion? {
|
override fun getSpriteHead(): TextureRegion? {
|
||||||
return spriteHeadTexture
|
return spriteHeadTexture
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun equipItem(item: GameItem) {
|
||||||
|
super.equipItem(item)
|
||||||
|
|
||||||
|
// TODO redraw sprite with held item sprite (use sprite joint "HELD_ITEM")
|
||||||
|
if (item.equipPosition == GameItem.EquipPosition.HAND_GRIP) {
|
||||||
|
rebuildfun(item)
|
||||||
|
animDescGlow?.let { rebuildfunGlow(item) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun unequipItem(item: GameItem?) {
|
||||||
|
super.unequipItem(item)
|
||||||
|
|
||||||
|
// redraw sprite without held item sprite (use sprite joint "HELD_ITEM")
|
||||||
|
item?.let { item -> if (item.equipPosition == GameItem.EquipPosition.HAND_GRIP) {
|
||||||
|
rebuildfun(null)
|
||||||
|
animDescGlow?.let { rebuildfunGlow(null) }
|
||||||
|
} }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -29,7 +29,7 @@ object PlayerBuilderTestSubject1 {
|
|||||||
|
|
||||||
p.sprite = SpriteAnimation(p)
|
p.sprite = SpriteAnimation(p)
|
||||||
p.spriteGlow = SpriteAnimation(p)
|
p.spriteGlow = SpriteAnimation(p)
|
||||||
p.reassembleSprite(p.sprite, p.spriteGlow)
|
p.reassembleSprite(p.sprite, p.spriteGlow, null)
|
||||||
p.setHitboxDimension(15, p.actorValue.getAsInt(AVKey.BASEHEIGHT) ?: ActorHumanoid.BASE_HEIGHT, 21, 0)
|
p.setHitboxDimension(15, p.actorValue.getAsInt(AVKey.BASEHEIGHT) ?: ActorHumanoid.BASE_HEIGHT, 21, 0)
|
||||||
|
|
||||||
// ingame must teleport the player to the spawn point
|
// ingame must teleport the player to the spawn point
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ object PlayerBuilderWerebeastTest {
|
|||||||
|
|
||||||
p.sprite = SpriteAnimation(p)
|
p.sprite = SpriteAnimation(p)
|
||||||
p.spriteGlow = SpriteAnimation(p)
|
p.spriteGlow = SpriteAnimation(p)
|
||||||
p.reassembleSprite(p.sprite, p.spriteGlow)
|
p.reassembleSprite(p.sprite, p.spriteGlow, null)
|
||||||
p.setHitboxDimension(22, p.actorValue.getAsInt(AVKey.BASEHEIGHT)!!, 30, 0)
|
p.setHitboxDimension(22, p.actorValue.getAsInt(AVKey.BASEHEIGHT)!!, 30, 0)
|
||||||
|
|
||||||
p.setPosition(3.0 * TILE_SIZE, 3.0 * TILE_SIZE)
|
p.setPosition(3.0 * TILE_SIZE, 3.0 * TILE_SIZE)
|
||||||
|
|||||||
@@ -551,7 +551,7 @@ class UIItemPlayerCells(
|
|||||||
val p = ReadPlayer(skimmer, ByteArray64Reader(it, Common.CHARSET))
|
val p = ReadPlayer(skimmer, ByteArray64Reader(it, Common.CHARSET))
|
||||||
p.sprite = SpriteAnimation(p)
|
p.sprite = SpriteAnimation(p)
|
||||||
p.animDesc = ADProperties(ByteArray64Reader(animFile.bytes, Common.CHARSET))
|
p.animDesc = ADProperties(ByteArray64Reader(animFile.bytes, Common.CHARSET))
|
||||||
p.reassembleSprite(skimmer, p.sprite)
|
p.reassembleSpriteFromDisk(skimmer, p.sprite, null, null)
|
||||||
p.sprite!!.textureRegion.get(0,0).let {
|
p.sprite!!.textureRegion.get(0,0).let {
|
||||||
thumb = it
|
thumb = it
|
||||||
thumb!!.flip(false, false)
|
thumb!!.flip(false, false)
|
||||||
|
|||||||
@@ -441,9 +441,9 @@ removefile:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fun dispose() {
|
// fun dispose() {
|
||||||
fa.close()
|
// fa.close()
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|||||||
@@ -3,8 +3,10 @@ package net.torvald.terrarum.serialise
|
|||||||
import net.torvald.spriteanimation.HasAssembledSprite
|
import net.torvald.spriteanimation.HasAssembledSprite
|
||||||
import net.torvald.spriteanimation.SpriteAnimation
|
import net.torvald.spriteanimation.SpriteAnimation
|
||||||
import net.torvald.spriteassembler.ADProperties
|
import net.torvald.spriteassembler.ADProperties
|
||||||
|
import net.torvald.terrarum.ItemCodex
|
||||||
import net.torvald.terrarum.gameactors.Actor
|
import net.torvald.terrarum.gameactors.Actor
|
||||||
import net.torvald.terrarum.gameactors.ActorWithBody
|
import net.torvald.terrarum.gameactors.ActorWithBody
|
||||||
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.IngamePlayer
|
import net.torvald.terrarum.modulebasegame.gameactors.IngamePlayer
|
||||||
import net.torvald.terrarum.savegame.*
|
import net.torvald.terrarum.savegame.*
|
||||||
@@ -140,16 +142,18 @@ object ReadActor {
|
|||||||
actor.animDescGlow = ADProperties(ByteArray64Reader(animFileGlow.bytes, Common.CHARSET))
|
actor.animDescGlow = ADProperties(ByteArray64Reader(animFileGlow.bytes, Common.CHARSET))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val heldItem = ItemCodex[actor.inventory.itemEquipped[GameItem.EquipPosition.HAND_GRIP]]
|
||||||
|
|
||||||
if (bodypartsFile != null)
|
if (bodypartsFile != null)
|
||||||
actor.reassembleSprite(disk, actor.sprite!!, actor.spriteGlow)
|
actor.reassembleSpriteFromDisk(disk, actor.sprite!!, actor.spriteGlow, heldItem)
|
||||||
else
|
else
|
||||||
actor.reassembleSprite(actor.sprite!!, actor.spriteGlow)
|
actor.reassembleSprite(actor.sprite!!, actor.spriteGlow, heldItem)
|
||||||
}
|
}
|
||||||
else if (actor is ActorWithBody && actor is HasAssembledSprite) {
|
else if (actor is ActorWithBody && actor is HasAssembledSprite) {
|
||||||
if (actor.animDesc != null) actor.sprite = SpriteAnimation(actor)
|
if (actor.animDesc != null) actor.sprite = SpriteAnimation(actor)
|
||||||
if (actor.animDescGlow != null) actor.spriteGlow = SpriteAnimation(actor)
|
if (actor.animDescGlow != null) actor.spriteGlow = SpriteAnimation(actor)
|
||||||
|
|
||||||
actor.reassembleSprite(actor.sprite, actor.spriteGlow)
|
actor.reassembleSprite(actor.sprite, actor.spriteGlow, null)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -163,8 +163,8 @@ object LoadSavegame {
|
|||||||
newIngame.worldSavefileName = getWorldSavefileName(newIngame.savegameNickname, world)
|
newIngame.worldSavefileName = getWorldSavefileName(newIngame.savegameNickname, world)
|
||||||
newIngame.playerSavefileName = getPlayerSavefileName(player)
|
newIngame.playerSavefileName = getPlayerSavefileName(player)
|
||||||
|
|
||||||
worldDisk.dispose()
|
// worldDisk.dispose()
|
||||||
playerDisk.dispose()
|
// playerDisk.dispose()
|
||||||
|
|
||||||
val loadJob = { it: LoadScreenBase ->
|
val loadJob = { it: LoadScreenBase ->
|
||||||
val loadscreen = it as ChunkLoadingLoadScreen
|
val loadscreen = it as ChunkLoadingLoadScreen
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ class SpriteAssemblerTest {
|
|||||||
|
|
||||||
operator fun invoke() {
|
operator fun invoke() {
|
||||||
val properties = ADProperties(StringReader(ADLParsingTest().TEST_STR))
|
val properties = ADProperties(StringReader(ADLParsingTest().TEST_STR))
|
||||||
AssembleSheetPixmap.fromAssetsDir(properties)
|
AssembleSheetPixmap.fromAssetsDir(properties, null)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user