From 32afb2e2e5f77cea470a9ff6159dc44c3e242e40 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Sun, 6 Jan 2019 19:28:06 +0900 Subject: [PATCH] updated the psd with the actual assembly --- .../spriteassembler/AssembleFrameGdxPixmap.kt | 22 --------- .../spriteassembler/AssembleFrameJava.kt | 49 +++++++++++++++++++ work_files/graphics/sprites/sprite_joints.psd | 4 +- 3 files changed, 51 insertions(+), 24 deletions(-) delete mode 100644 src/net/torvald/spriteassembler/AssembleFrameGdxPixmap.kt create mode 100644 src/net/torvald/spriteassembler/AssembleFrameJava.kt diff --git a/src/net/torvald/spriteassembler/AssembleFrameGdxPixmap.kt b/src/net/torvald/spriteassembler/AssembleFrameGdxPixmap.kt deleted file mode 100644 index 0420aaefe..000000000 --- a/src/net/torvald/spriteassembler/AssembleFrameGdxPixmap.kt +++ /dev/null @@ -1,22 +0,0 @@ -package net.torvald.spriteassembler - -/** - * Assembles the single frame of the animation, outputs GDX Pixmap. - * - * Created by minjaesong on 2019-01-06. - */ -object AssembleFrameGdxPixmap { - - operator fun invoke(properties: ADProperties, frameName: String) { - val theAnim = properties.getAnimByFrameName(frameName) - val skeleton = theAnim.skeleton.joints - - println("Test") - - // test print required body part filename - skeleton.reversed().forEach { - println(properties.toFilename(it.name)) - } - } - -} \ No newline at end of file diff --git a/src/net/torvald/spriteassembler/AssembleFrameJava.kt b/src/net/torvald/spriteassembler/AssembleFrameJava.kt new file mode 100644 index 000000000..05fd27976 --- /dev/null +++ b/src/net/torvald/spriteassembler/AssembleFrameJava.kt @@ -0,0 +1,49 @@ +package net.torvald.spriteassembler + +import net.torvald.terrarum.AppLoader.printdbg +import java.awt.Image +import java.awt.Toolkit +import java.awt.image.BufferedImage +import java.io.File + +/** + * Assembles the single frame of the animation, outputs Java AWT image. + * + * Created by minjaesong on 2019-01-06. + */ +object AssembleFrameAWT { + + operator fun invoke(properties: ADProperties, frameName: String, assembleConfig: AssembleConfig = AssembleConfig()) { + val theAnim = properties.getAnimByFrameName(frameName) + val skeleton = theAnim.skeleton.joints.reversed() + val bodyparts = Array(skeleton.size) { + // if file does not exist, null it + val file = File("assets/" + properties.toFilename(skeleton[it].name)) + + //printdbg(this, "Loading file ${file.absolutePath}, exists: ${file.exists()}") + + val toolkit = Toolkit.getDefaultToolkit() + /*return*/if (file.exists()) { + toolkit.getImage(file.absolutePath) + } + else { + null + } + } + val canvas = BufferedImage(assembleConfig.fw, assembleConfig.fh, BufferedImage.TYPE_4BYTE_ABGR) + + + //printdbg(this, "==============================") + + properties[frameName].forEach { printdbg(this, it) } + } + +} + +/** + * @param fw Frame Width + * @param fh Frame Height + * @param ox Origin-X, leftmost point being zero + * @param oy Origin-Y, bottommost point being zero + */ +data class AssembleConfig(val fw: Int = 48, val fh: Int = 56, val ox: Int = 29, val oy: Int = 0) \ No newline at end of file diff --git a/work_files/graphics/sprites/sprite_joints.psd b/work_files/graphics/sprites/sprite_joints.psd index 02913558b..5df1dbfa5 100644 --- a/work_files/graphics/sprites/sprite_joints.psd +++ b/work_files/graphics/sprites/sprite_joints.psd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e2219270b7e6225c79137b5df3157d73e0962b4ad4b16eaa6b0b611396da15d0 -size 45481 +oid sha256:a5d8237149657e70cd6a677b4bcec50419e3dd942b2a25225157d2a6e2648188 +size 58739