mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-11 02:54:04 +09:00
visible actors are defaulted to Visible, SpriteAnimations now has "parent" actors and uses its Visible property
Former-commit-id: 0e240de4ca38a59724f364df4624c8dc79c0112d Former-commit-id: b017b24ab7591ea2fd2518308bd5656597c14f47
This commit is contained in:
@@ -45,7 +45,7 @@ object WriteMeta {
|
|||||||
|
|
||||||
// define Strings to be hashed
|
// define Strings to be hashed
|
||||||
val props = arrayOf(
|
val props = arrayOf(
|
||||||
TilePropCSV.text
|
TilePropCSV()
|
||||||
//, (item, mat, ...)
|
//, (item, mat, ...)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -7,13 +7,13 @@ package net.torvald.spriteanimation
|
|||||||
import net.torvald.terrarum.StateInGame
|
import net.torvald.terrarum.StateInGame
|
||||||
import net.torvald.terrarum.Terrarum
|
import net.torvald.terrarum.Terrarum
|
||||||
import com.jme3.math.FastMath
|
import com.jme3.math.FastMath
|
||||||
|
import net.torvald.terrarum.gameactors.ActorWithBody
|
||||||
import org.newdawn.slick.Graphics
|
import org.newdawn.slick.Graphics
|
||||||
import org.newdawn.slick.Image
|
import org.newdawn.slick.Image
|
||||||
import org.newdawn.slick.SlickException
|
import org.newdawn.slick.SlickException
|
||||||
import org.newdawn.slick.SpriteSheet
|
import org.newdawn.slick.SpriteSheet
|
||||||
|
|
||||||
class SpriteAnimation @Throws(SlickException::class)
|
class SpriteAnimation(val parentActor: ActorWithBody) {
|
||||||
constructor() {
|
|
||||||
|
|
||||||
private var spriteImage: SpriteSheet? = null
|
private var spriteImage: SpriteSheet? = null
|
||||||
var height: Int = 0
|
var height: Int = 0
|
||||||
@@ -30,7 +30,8 @@ constructor() {
|
|||||||
private var animationRunning = true
|
private var animationRunning = true
|
||||||
private var flipHorizontal = false
|
private var flipHorizontal = false
|
||||||
private var flipVertical = false
|
private var flipVertical = false
|
||||||
private var visible = false
|
private val visible: Boolean
|
||||||
|
get() = parentActor.isVisible
|
||||||
|
|
||||||
private val offsetX = 0
|
private val offsetX = 0
|
||||||
private val offsetY = 0
|
private val offsetY = 0
|
||||||
@@ -81,14 +82,6 @@ constructor() {
|
|||||||
nFrames = frames
|
nFrames = frames
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setAsVisible() {
|
|
||||||
visible = true
|
|
||||||
}
|
|
||||||
|
|
||||||
fun setAsInvisible() {
|
|
||||||
visible = false
|
|
||||||
}
|
|
||||||
|
|
||||||
fun update(delta: Int) {
|
fun update(delta: Int) {
|
||||||
if (animationRunning) {
|
if (animationRunning) {
|
||||||
//skip this if animation is stopped
|
//skip this if animation is stopped
|
||||||
|
|||||||
@@ -123,11 +123,17 @@ constructor() : BasicGameState() {
|
|||||||
|
|
||||||
|
|
||||||
// add new player and put it to actorContainer
|
// add new player and put it to actorContainer
|
||||||
playableActorDelegate = PlayableActorDelegate(PlayerBuilderSigrid.create())
|
playableActorDelegate = PlayableActorDelegate(PlayerBuilderSigrid())
|
||||||
//player = PBCynthia.create()
|
//player = PBCynthia.create()
|
||||||
//player.setNoClip(true);
|
//player.setNoClip(true);
|
||||||
addActor(player)
|
addActor(player)
|
||||||
|
|
||||||
|
|
||||||
|
// test actor
|
||||||
|
addActor(PlayerBuilderCynthia())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// init console window
|
// init console window
|
||||||
consoleHandler = UIHandler(ConsoleWindow())
|
consoleHandler = UIHandler(ConsoleWindow())
|
||||||
consoleHandler.setPosition(0, 0)
|
consoleHandler.setPosition(0, 0)
|
||||||
@@ -488,7 +494,7 @@ constructor() : BasicGameState() {
|
|||||||
}
|
}
|
||||||
// inactivate distant actors
|
// inactivate distant actors
|
||||||
else if (actor is ActorWithBody && !actor.inUpdateRange()) {
|
else if (actor is ActorWithBody && !actor.inUpdateRange()) {
|
||||||
if (actor !is Projectile) { // if it's a projectile, just kill it.
|
if (actor !is Projectile) { // if it's a projectile, don't inactivate it; just kill it.
|
||||||
actorContainerInactive.add(actor) // naïve add; duplicates are checked when the actor is re-activated
|
actorContainerInactive.add(actor) // naïve add; duplicates are checked when the actor is re-activated
|
||||||
}
|
}
|
||||||
actorContainer.removeAt(actorIndex)
|
actorContainer.removeAt(actorIndex)
|
||||||
|
|||||||
@@ -111,10 +111,10 @@ constructor(gamename: String) : StateBasedGame(gamename) {
|
|||||||
//addState(StateSplash())
|
//addState(StateSplash())
|
||||||
//addState(StateMonitorCheck())
|
//addState(StateMonitorCheck())
|
||||||
//addState(StateFontTester())
|
//addState(StateFontTester())
|
||||||
addState(StateNoiseTexGen())
|
//addState(StateNoiseTexGen())
|
||||||
|
|
||||||
//ingame = StateInGame()
|
ingame = StateInGame()
|
||||||
//addState(ingame)
|
addState(ingame)
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
@@ -218,17 +218,17 @@ constructor(gamename: String) : StateBasedGame(gamename) {
|
|||||||
var hasController = false
|
var hasController = false
|
||||||
val CONTROLLER_DEADZONE = 0.1f
|
val CONTROLLER_DEADZONE = 0.1f
|
||||||
|
|
||||||
/** Available CPU cores */
|
/** Available CPU threads */
|
||||||
val CORES = Runtime.getRuntime().availableProcessors()
|
val THREADS = Runtime.getRuntime().availableProcessors()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If the game is multithreading.
|
* If the game is multithreading.
|
||||||
* True if:
|
* True if:
|
||||||
*
|
*
|
||||||
* CORES >= 2 and config "multithread" is true
|
* THREADS >= 2 and config "multithread" is true
|
||||||
*/
|
*/
|
||||||
val MULTITHREAD: Boolean
|
val MULTITHREAD: Boolean
|
||||||
get() = CORES >= 2 && getConfigBoolean("multithread")
|
get() = THREADS >= 2 && getConfigBoolean("multithread")
|
||||||
|
|
||||||
private lateinit var configDir: String
|
private lateinit var configDir: String
|
||||||
|
|
||||||
@@ -432,6 +432,8 @@ fun main(args: Array<String>) {
|
|||||||
Terrarum.main(args)
|
Terrarum.main(args)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// I must say: What the fuck is wrong with you, Slick2D?!
|
||||||
|
|
||||||
fun blendMul() {
|
fun blendMul() {
|
||||||
GL11.glEnable(GL11.GL_BLEND)
|
GL11.glEnable(GL11.GL_BLEND)
|
||||||
GL11.glColorMask(true, true, true, true)
|
GL11.glColorMask(true, true, true, true)
|
||||||
@@ -445,8 +447,8 @@ fun blendNormal() {
|
|||||||
|
|
||||||
// TODO seems working as intended (no more whitened-out semitransparent colour), but needs further investigation
|
// TODO seems working as intended (no more whitened-out semitransparent colour), but needs further investigation
|
||||||
GL14.glBlendFuncSeparate(
|
GL14.glBlendFuncSeparate(
|
||||||
GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA,
|
GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, // blend func for RGB channels
|
||||||
GL11.GL_ONE, GL11.GL_ONE_MINUS_SRC_ALPHA
|
GL11.GL_ONE, GL11.GL_ONE_MINUS_SRC_ALPHA // blend func for alpha channels
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import java.util.*
|
|||||||
* Created by minjaesong on 16-05-25.
|
* Created by minjaesong on 16-05-25.
|
||||||
*/
|
*/
|
||||||
object ThreadPool {
|
object ThreadPool {
|
||||||
val POOL_SIZE = Terrarum.CORES + 1
|
val POOL_SIZE = Terrarum.THREADS + 1
|
||||||
|
|
||||||
private val pool: Array<Thread?> = Array(POOL_SIZE, { null })
|
private val pool: Array<Thread?> = Array(POOL_SIZE, { null })
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ abstract class Actor : Comparable<Actor>, Runnable {
|
|||||||
* Valid RefID is equal to or greater than 16777216.
|
* Valid RefID is equal to or greater than 16777216.
|
||||||
* @return Reference ID. (16777216-0x7FFF_FFFF)
|
* @return Reference ID. (16777216-0x7FFF_FFFF)
|
||||||
*/
|
*/
|
||||||
abstract var referenceID: Int
|
open var referenceID: Int = generateUniqueReferenceID()
|
||||||
abstract var actorValue: ActorValue
|
abstract var actorValue: ActorValue
|
||||||
abstract var flagDespawn: Boolean
|
abstract var flagDespawn: Boolean
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ import java.util.*
|
|||||||
*/
|
*/
|
||||||
open class ActorWithBody : Actor() {
|
open class ActorWithBody : Actor() {
|
||||||
|
|
||||||
override var referenceID: Int = generateUniqueReferenceID()
|
|
||||||
override var actorValue: ActorValue = ActorValue()
|
override var actorValue: ActorValue = ActorValue()
|
||||||
|
|
||||||
@Transient internal var sprite: SpriteAnimation? = null
|
@Transient internal var sprite: SpriteAnimation? = null
|
||||||
@@ -155,8 +154,8 @@ open class ActorWithBody : Actor() {
|
|||||||
|
|
||||||
@Volatile var grounded = false
|
@Volatile var grounded = false
|
||||||
override @Volatile var flagDespawn = false
|
override @Volatile var flagDespawn = false
|
||||||
/** Default to 'false' */
|
/** Default to 'true' */
|
||||||
var isVisible = false
|
var isVisible = true
|
||||||
/** Default to 'true' */
|
/** Default to 'true' */
|
||||||
var isUpdate = true
|
var isUpdate = true
|
||||||
var isNoSubjectToGrav = false
|
var isNoSubjectToGrav = false
|
||||||
@@ -255,12 +254,12 @@ open class ActorWithBody : Actor() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun makeNewSprite(w: Int, h: Int) {
|
fun makeNewSprite(w: Int, h: Int) {
|
||||||
sprite = SpriteAnimation()
|
sprite = SpriteAnimation(this)
|
||||||
sprite!!.setDimension(w, h)
|
sprite!!.setDimension(w, h)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun makeNewSpriteGlow(w: Int, h: Int) {
|
fun makeNewSpriteGlow(w: Int, h: Int) {
|
||||||
spriteGlow = SpriteAnimation()
|
spriteGlow = SpriteAnimation(this)
|
||||||
spriteGlow!!.setDimension(w, h)
|
spriteGlow!!.setDimension(w, h)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -943,6 +942,8 @@ open class ActorWithBody : Actor() {
|
|||||||
|
|
||||||
open fun drawBody(gc: GameContainer, g: Graphics) {
|
open fun drawBody(gc: GameContainer, g: Graphics) {
|
||||||
if (isVisible && sprite != null) {
|
if (isVisible && sprite != null) {
|
||||||
|
|
||||||
|
|
||||||
when (drawMode) {
|
when (drawMode) {
|
||||||
BLEND_NORMAL -> blendNormal()
|
BLEND_NORMAL -> blendNormal()
|
||||||
BLEND_MULTIPLY -> blendMul()
|
BLEND_MULTIPLY -> blendMul()
|
||||||
|
|||||||
@@ -18,9 +18,9 @@ object CreatureBuilder {
|
|||||||
* @Param jsonFileName with extension
|
* @Param jsonFileName with extension
|
||||||
*/
|
*/
|
||||||
@Throws(IOException::class, SlickException::class)
|
@Throws(IOException::class, SlickException::class)
|
||||||
fun create(jsonFileName: String): ActorWithBody {
|
operator fun invoke(jsonFileName: String): ActorWithBody {
|
||||||
val actor = ActorWithBody()
|
val actor = ActorWithBody()
|
||||||
CreatureRawInjector.inject(actor.actorValue, jsonFileName)
|
InjectCreatureRaw(actor.actorValue, jsonFileName)
|
||||||
|
|
||||||
return actor
|
return actor
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ class FixtureTikiTorch : FixtureBase(), Luminous {
|
|||||||
override val lightBoxList: ArrayList<Hitbox>
|
override val lightBoxList: ArrayList<Hitbox>
|
||||||
|
|
||||||
init {
|
init {
|
||||||
isVisible = true
|
|
||||||
density = 1200.0
|
density = 1200.0
|
||||||
|
|
||||||
setHitboxDimension(10, 24, 0, 0)
|
setHitboxDimension(10, 24, 0, 0)
|
||||||
@@ -26,12 +25,10 @@ class FixtureTikiTorch : FixtureBase(), Luminous {
|
|||||||
lightBoxList = ArrayList(1)
|
lightBoxList = ArrayList(1)
|
||||||
lightBoxList.add(Hitbox(3.0, 0.0, 4.0, 3.0))
|
lightBoxList.add(Hitbox(3.0, 0.0, 4.0, 3.0))
|
||||||
|
|
||||||
sprite = SpriteAnimation()
|
makeNewSprite(10, 27)
|
||||||
sprite!!.setDimension(10, 27)
|
|
||||||
sprite!!.setSpriteImage("assets/graphics/sprites/fixtures/tiki_torch.png")
|
sprite!!.setSpriteImage("assets/graphics/sprites/fixtures/tiki_torch.png")
|
||||||
sprite!!.setDelay(200)
|
sprite!!.setDelay(200)
|
||||||
sprite!!.setRowsAndFrames(1, 1)
|
sprite!!.setRowsAndFrames(1, 1)
|
||||||
sprite!!.setAsVisible()
|
|
||||||
|
|
||||||
actorValue[AVKey.BASEMASS] = 1.0
|
actorValue[AVKey.BASEMASS] = 1.0
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,22 +18,15 @@ import java.io.Reader
|
|||||||
/**
|
/**
|
||||||
* Created by minjaesong on 16-01-31.
|
* Created by minjaesong on 16-01-31.
|
||||||
*/
|
*/
|
||||||
open class HumanoidNPC(aiFile: String, born: GameDate) : ActorHumanoid(born), AIControlled, CanBeAnItem {
|
open class HumanoidNPC(luaScript: String, born: GameDate) : ActorHumanoid(born), AIControlled, CanBeAnItem {
|
||||||
|
|
||||||
override val scriptPath: String = aiFile
|
override val scriptPath: String = ""
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
protected val luag = Globals()
|
protected val luag = Globals()
|
||||||
|
|
||||||
init {
|
init {
|
||||||
luag.load(JseBaseLib())
|
luag.load(JseBaseLib())
|
||||||
luag.load(TableLib())
|
|
||||||
luag.load(StringLib())
|
|
||||||
luag.load(TableLib())
|
|
||||||
luag.load(CoroutineLib())
|
|
||||||
luag.load(Bit32Lib())
|
|
||||||
luag.load(PackageLib())
|
|
||||||
luag.load(JseMathLib())
|
|
||||||
LoadState.install(luag)
|
LoadState.install(luag)
|
||||||
LuaC.install(luag)
|
LuaC.install(luag)
|
||||||
}
|
}
|
||||||
@@ -77,8 +70,9 @@ open class HumanoidNPC(aiFile: String, born: GameDate) : ActorHumanoid(born), AI
|
|||||||
|
|
||||||
|
|
||||||
init {
|
init {
|
||||||
val inputStream = javaClass.getResourceAsStream(scriptPath)
|
//val inputStream = javaClass.getResourceAsStream(scriptPath)
|
||||||
runCommand(InputStreamReader(inputStream), scriptPath)
|
//runCommand(InputStreamReader(inputStream), scriptPath)
|
||||||
|
runCommand(luaScript)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -130,6 +124,14 @@ open class HumanoidNPC(aiFile: String, born: GameDate) : ActorHumanoid(born), AI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun runCommand(script: String) {
|
||||||
|
if (!threadRun && !flagDespawn) {
|
||||||
|
currentExecutionThread = Thread(ThreadRunCommand(luag, script, "="))
|
||||||
|
currentExecutionThread.start()
|
||||||
|
threadRun = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class ThreadRunCommand : Runnable {
|
class ThreadRunCommand : Runnable {
|
||||||
|
|
||||||
val mode: Int
|
val mode: Int
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import java.security.SecureRandom
|
|||||||
/**
|
/**
|
||||||
* Created by minjaesong on 16-03-25.
|
* Created by minjaesong on 16-03-25.
|
||||||
*/
|
*/
|
||||||
object CreatureRawInjector {
|
object InjectCreatureRaw {
|
||||||
|
|
||||||
const val JSONPATH = "./assets/raw/creatures/"
|
const val JSONPATH = "./assets/raw/creatures/"
|
||||||
private const val MULTIPLIER_RAW_ELEM_SUFFIX = AVKey.MULT
|
private const val MULTIPLIER_RAW_ELEM_SUFFIX = AVKey.MULT
|
||||||
@@ -23,8 +23,7 @@ object CreatureRawInjector {
|
|||||||
* @param actorValueRef ActorValue object to be injected.
|
* @param actorValueRef ActorValue object to be injected.
|
||||||
* @param jsonFileName with extension
|
* @param jsonFileName with extension
|
||||||
*/
|
*/
|
||||||
@Throws(IOException::class, SlickException::class)
|
operator fun invoke(actorValueRef: ActorValue, jsonFileName: String) {
|
||||||
fun inject(actorValueRef: ActorValue, jsonFileName: String) {
|
|
||||||
val jsonObj = JsonFetcher(JSONPATH + jsonFileName)
|
val jsonObj = JsonFetcher(JSONPATH + jsonFileName)
|
||||||
|
|
||||||
val elementsInt = arrayOf(AVKey.BASEHEIGHT, AVKey.TOOLSIZE, AVKey.ENCUMBRANCE)
|
val elementsInt = arrayOf(AVKey.BASEHEIGHT, AVKey.TOOLSIZE, AVKey.ENCUMBRANCE)
|
||||||
@@ -16,7 +16,6 @@ class PhysTestBall : ActorWithBody() {
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
setHitboxDimension(16, 16, 0, 0)
|
setHitboxDimension(16, 16, 0, 0)
|
||||||
isVisible = true
|
|
||||||
mass = 10.0
|
mass = 10.0
|
||||||
density = 200.0
|
density = 200.0
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ class Player(born: GameDate) : ActorHumanoid(born) {
|
|||||||
* @throws SlickException
|
* @throws SlickException
|
||||||
*/
|
*/
|
||||||
init {
|
init {
|
||||||
isVisible = true
|
|
||||||
referenceID = PLAYER_REF_ID // forcibly set ID
|
referenceID = PLAYER_REF_ID // forcibly set ID
|
||||||
density = BASE_DENSITY
|
density = BASE_DENSITY
|
||||||
collisionType = COLLISION_KINEMATIC
|
collisionType = COLLISION_KINEMATIC
|
||||||
|
|||||||
@@ -11,9 +11,9 @@ object PlayerBuilder {
|
|||||||
private val JSONPATH = "./assets/raw/"
|
private val JSONPATH = "./assets/raw/"
|
||||||
private val jsonString = String()
|
private val jsonString = String()
|
||||||
|
|
||||||
fun create(): Actor {
|
operator fun invoke(): Actor {
|
||||||
val p: Actor = Player(Terrarum.ingame.world.time.currentTimeAsGameDate)
|
val p: Actor = Player(Terrarum.ingame.world.time.currentTimeAsGameDate)
|
||||||
CreatureRawInjector.inject(p.actorValue, "CreatureHuman.json")
|
InjectCreatureRaw(p.actorValue, "CreatureHuman.json")
|
||||||
|
|
||||||
// attach sprite
|
// attach sprite
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package net.torvald.terrarum.gameactors
|
|||||||
|
|
||||||
import net.torvald.spriteanimation.SpriteAnimation
|
import net.torvald.spriteanimation.SpriteAnimation
|
||||||
import net.torvald.terrarum.gameactors.ActorHumanoid
|
import net.torvald.terrarum.gameactors.ActorHumanoid
|
||||||
|
import net.torvald.terrarum.gameactors.ai.scripts.PokemonNPCAI
|
||||||
import net.torvald.terrarum.mapdrawer.MapDrawer
|
import net.torvald.terrarum.mapdrawer.MapDrawer
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -9,25 +10,25 @@ import net.torvald.terrarum.mapdrawer.MapDrawer
|
|||||||
*/
|
*/
|
||||||
object PlayerBuilderCynthia {
|
object PlayerBuilderCynthia {
|
||||||
|
|
||||||
fun create(): Player {
|
operator fun invoke(): ActorWithBody {
|
||||||
val p: Player = Player(GameDate(100, 143)) // random value thrown
|
//val p: Player = Player(GameDate(100, 143)) // random value thrown
|
||||||
CreatureRawInjector.inject(p.actorValue, "CreatureHuman.json")
|
val p: HumanoidNPC = HumanoidNPC(PokemonNPCAI(), GameDate(100, 143)) // random value thrown
|
||||||
|
InjectCreatureRaw(p.actorValue, "CreatureHuman.json")
|
||||||
|
|
||||||
p.actorValue[AVKey.__PLAYER_QUICKBARSEL] = 0
|
p.actorValue[AVKey.__PLAYER_QUICKBARSEL] = 0
|
||||||
p.actorValue["__selectedtile"] = 16
|
|
||||||
|
|
||||||
|
|
||||||
p.makeNewSprite(26, 42)
|
p.makeNewSprite(26, 42)
|
||||||
p.sprite!!.setSpriteImage("assets/graphics/sprites/test_player_2.png")
|
p.sprite!!.setSpriteImage("assets/graphics/sprites/test_player_2.png")
|
||||||
p.sprite!!.setDelay(200)
|
p.sprite!!.setDelay(200)
|
||||||
p.sprite!!.setRowsAndFrames(1, 1)
|
p.sprite!!.setRowsAndFrames(1, 1)
|
||||||
p.sprite!!.setAsVisible()
|
|
||||||
|
|
||||||
p.setHitboxDimension(15, p.actorValue.getAsInt(AVKey.BASEHEIGHT) ?: ActorHumanoid.BASE_HEIGHT, 9, 0)
|
p.setHitboxDimension(15, p.actorValue.getAsInt(AVKey.BASEHEIGHT) ?: ActorHumanoid.BASE_HEIGHT, 9, 0)
|
||||||
|
|
||||||
p.setPosition((4096 * MapDrawer.TILE_SIZE).toDouble(), (300 * 16).toDouble())
|
p.setPosition(4096.0 * MapDrawer.TILE_SIZE, 300.0 * MapDrawer.TILE_SIZE)
|
||||||
|
|
||||||
return p
|
return p
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -21,7 +21,7 @@ import java.io.IOException
|
|||||||
|
|
||||||
object PlayerBuilderSigrid {
|
object PlayerBuilderSigrid {
|
||||||
|
|
||||||
fun create(): Player {
|
operator fun invoke(): Player {
|
||||||
val p = Player(GameDate(-2147483648, 0)) // XD
|
val p = Player(GameDate(-2147483648, 0)) // XD
|
||||||
|
|
||||||
p.referenceID = 0x51621D // the only constant of this procedural universe
|
p.referenceID = 0x51621D // the only constant of this procedural universe
|
||||||
@@ -30,13 +30,11 @@ object PlayerBuilderSigrid {
|
|||||||
p.sprite!!.setSpriteImage("assets/graphics/sprites/test_player.png")
|
p.sprite!!.setSpriteImage("assets/graphics/sprites/test_player.png")
|
||||||
p.sprite!!.setDelay(200)
|
p.sprite!!.setDelay(200)
|
||||||
p.sprite!!.setRowsAndFrames(1, 1)
|
p.sprite!!.setRowsAndFrames(1, 1)
|
||||||
p.sprite!!.setAsVisible()
|
|
||||||
|
|
||||||
p.makeNewSpriteGlow(28, 51)
|
p.makeNewSpriteGlow(28, 51)
|
||||||
p.spriteGlow!!.setSpriteImage("assets/graphics/sprites/test_player_glow.tga")
|
p.spriteGlow!!.setSpriteImage("assets/graphics/sprites/test_player_glow.tga")
|
||||||
p.spriteGlow!!.setDelay(200)
|
p.spriteGlow!!.setDelay(200)
|
||||||
p.spriteGlow!!.setRowsAndFrames(1, 1)
|
p.spriteGlow!!.setRowsAndFrames(1, 1)
|
||||||
p.spriteGlow!!.setAsVisible()
|
|
||||||
|
|
||||||
p.actorValue = ActorValue()
|
p.actorValue = ActorValue()
|
||||||
p.actorValue[AVKey.SCALE] = 1.0
|
p.actorValue[AVKey.SCALE] = 1.0
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package net.torvald.terrarum.gameactors.ai.scripts
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by SKYHi14 on 2016-12-23.
|
||||||
|
*/
|
||||||
|
object PokemonNPCAI {
|
||||||
|
operator fun invoke(): String = """
|
||||||
|
|
||||||
|
"""
|
||||||
|
}
|
||||||
@@ -29,7 +29,7 @@ object TileCodex {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
// todo verify CSV using pre-calculated SHA256 hash
|
// todo verify CSV using pre-calculated SHA256 hash
|
||||||
val records = CSVFetcher.readFromString(TilePropCSV.text)
|
val records = CSVFetcher.readFromString(TilePropCSV())
|
||||||
|
|
||||||
println("[TileCodex] Building tile properties table")
|
println("[TileCodex] Building tile properties table")
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ package net.torvald.terrarum.tileproperties
|
|||||||
* Created by minjaesong on 16-09-11.
|
* Created by minjaesong on 16-09-11.
|
||||||
*/
|
*/
|
||||||
object TilePropCSV {
|
object TilePropCSV {
|
||||||
const val text = """
|
operator fun invoke() = """
|
||||||
"id";"dmg";"name" ; "opacity";"strength";"dsty";"mate";"fluid";"solid";"wall"; "lumcolor";"drop";"ddmg";"fall";"dlfn";"friction"
|
"id";"dmg";"name" ; "opacity";"strength";"dsty";"mate";"fluid";"solid";"wall"; "lumcolor";"drop";"ddmg";"fall";"dlfn";"friction"
|
||||||
"0"; "0";"TILE_AIR" ; "8396808"; "0"; "1";"null"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0";"4"
|
"0"; "0";"TILE_AIR" ; "8396808"; "0"; "1";"null"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0";"4"
|
||||||
"1"; "0";"TILE_STONE" ; "33587232"; "25";"2400";"rock"; "0"; "1"; "1"; "0"; "1"; "0"; "0"; "0";"16"
|
"1"; "0";"TILE_STONE" ; "33587232"; "25";"2400";"rock"; "0"; "1"; "1"; "0"; "1"; "0"; "0"; "0";"16"
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ class BasicDebugInfoWindow : UICanvas {
|
|||||||
g.color = GameFontBase.codeToCol["y"]
|
g.color = GameFontBase.codeToCol["y"]
|
||||||
g.drawString("${ccY}MEM ", (Terrarum.WIDTH - 15 * 8 - 2).toFloat(), 2f)
|
g.drawString("${ccY}MEM ", (Terrarum.WIDTH - 15 * 8 - 2).toFloat(), 2f)
|
||||||
//g.drawString("${ccY}FPS $ccG${Terrarum.appgc.fps}", (Terrarum.WIDTH - 6 * 8 - 2).toFloat(), 10f)
|
//g.drawString("${ccY}FPS $ccG${Terrarum.appgc.fps}", (Terrarum.WIDTH - 6 * 8 - 2).toFloat(), 10f)
|
||||||
g.drawString("${ccY}CPUs ${if (Terrarum.MULTITHREAD) ccG else ccR}${Terrarum.CORES}",
|
g.drawString("${ccY}CPUs ${if (Terrarum.MULTITHREAD) ccG else ccR}${Terrarum.THREADS}",
|
||||||
(Terrarum.WIDTH - 2 - 6*8).toFloat(), 10f)
|
(Terrarum.WIDTH - 2 - 6*8).toFloat(), 10f)
|
||||||
|
|
||||||
g.color = GameFontBase.codeToCol["g"]
|
g.color = GameFontBase.codeToCol["g"]
|
||||||
|
|||||||
@@ -910,7 +910,7 @@
|
|||||||
"containerChangeable": false,
|
"containerChangeable": false,
|
||||||
"containerExtending": false,
|
"containerExtending": false,
|
||||||
"left": 81,
|
"left": 81,
|
||||||
"top": 655,
|
"top": 649,
|
||||||
"width": 0,
|
"width": 0,
|
||||||
"height": 13,
|
"height": 13,
|
||||||
"autoResize": false,
|
"autoResize": false,
|
||||||
@@ -944,7 +944,7 @@
|
|||||||
"containerChangeable": false,
|
"containerChangeable": false,
|
||||||
"containerExtending": false,
|
"containerExtending": false,
|
||||||
"left": 66,
|
"left": 66,
|
||||||
"top": 655,
|
"top": 649,
|
||||||
"width": 0,
|
"width": 0,
|
||||||
"height": 13,
|
"height": 13,
|
||||||
"autoResize": false,
|
"autoResize": false,
|
||||||
@@ -978,7 +978,7 @@
|
|||||||
"containerChangeable": false,
|
"containerChangeable": false,
|
||||||
"containerExtending": false,
|
"containerExtending": false,
|
||||||
"left": 111,
|
"left": 111,
|
||||||
"top": 656,
|
"top": 650,
|
||||||
"width": 0,
|
"width": 0,
|
||||||
"height": 13,
|
"height": 13,
|
||||||
"autoResize": false,
|
"autoResize": false,
|
||||||
@@ -1010,7 +1010,7 @@
|
|||||||
"$ref": "AAAAAAFYplWBi2f5GNY="
|
"$ref": "AAAAAAFYplWBi2f5GNY="
|
||||||
},
|
},
|
||||||
"lineStyle": 2,
|
"lineStyle": 2,
|
||||||
"points": "128:662;96:662;96:480",
|
"points": "128:656;96:656;96:480",
|
||||||
"stereotypeDisplay": "label",
|
"stereotypeDisplay": "label",
|
||||||
"showVisibility": true,
|
"showVisibility": true,
|
||||||
"showProperty": true,
|
"showProperty": true,
|
||||||
@@ -4591,7 +4591,7 @@
|
|||||||
"showShadow": true,
|
"showShadow": true,
|
||||||
"containerChangeable": false,
|
"containerChangeable": false,
|
||||||
"containerExtending": false,
|
"containerExtending": false,
|
||||||
"left": 744,
|
"left": 696,
|
||||||
"top": 1136,
|
"top": 1136,
|
||||||
"width": 0,
|
"width": 0,
|
||||||
"height": 13,
|
"height": 13,
|
||||||
@@ -4616,7 +4616,7 @@
|
|||||||
"showShadow": true,
|
"showShadow": true,
|
||||||
"containerChangeable": false,
|
"containerChangeable": false,
|
||||||
"containerExtending": false,
|
"containerExtending": false,
|
||||||
"left": 621,
|
"left": 597,
|
||||||
"top": 1111,
|
"top": 1111,
|
||||||
"width": 40.94873046875,
|
"width": 40.94873046875,
|
||||||
"height": 13,
|
"height": 13,
|
||||||
@@ -4642,7 +4642,7 @@
|
|||||||
"showShadow": true,
|
"showShadow": true,
|
||||||
"containerChangeable": false,
|
"containerChangeable": false,
|
||||||
"containerExtending": false,
|
"containerExtending": false,
|
||||||
"left": 744,
|
"left": 696,
|
||||||
"top": 1136,
|
"top": 1136,
|
||||||
"width": 223,
|
"width": 223,
|
||||||
"height": 13,
|
"height": 13,
|
||||||
@@ -4668,7 +4668,7 @@
|
|||||||
"showShadow": true,
|
"showShadow": true,
|
||||||
"containerChangeable": false,
|
"containerChangeable": false,
|
||||||
"containerExtending": false,
|
"containerExtending": false,
|
||||||
"left": 744,
|
"left": 696,
|
||||||
"top": 1136,
|
"top": 1136,
|
||||||
"width": 0,
|
"width": 0,
|
||||||
"height": 13,
|
"height": 13,
|
||||||
@@ -4688,7 +4688,7 @@
|
|||||||
"showShadow": true,
|
"showShadow": true,
|
||||||
"containerChangeable": false,
|
"containerChangeable": false,
|
||||||
"containerExtending": false,
|
"containerExtending": false,
|
||||||
"left": 616,
|
"left": 592,
|
||||||
"top": 1104,
|
"top": 1104,
|
||||||
"width": 50.94873046875,
|
"width": 50.94873046875,
|
||||||
"height": 25,
|
"height": 25,
|
||||||
@@ -4724,7 +4724,7 @@
|
|||||||
"showShadow": true,
|
"showShadow": true,
|
||||||
"containerChangeable": false,
|
"containerChangeable": false,
|
||||||
"containerExtending": false,
|
"containerExtending": false,
|
||||||
"left": 616,
|
"left": 592,
|
||||||
"top": 1129,
|
"top": 1129,
|
||||||
"width": 50.94873046875,
|
"width": 50.94873046875,
|
||||||
"height": 10,
|
"height": 10,
|
||||||
@@ -4748,7 +4748,7 @@
|
|||||||
"showShadow": true,
|
"showShadow": true,
|
||||||
"containerChangeable": false,
|
"containerChangeable": false,
|
||||||
"containerExtending": false,
|
"containerExtending": false,
|
||||||
"left": 616,
|
"left": 592,
|
||||||
"top": 1139,
|
"top": 1139,
|
||||||
"width": 50.94873046875,
|
"width": 50.94873046875,
|
||||||
"height": 10,
|
"height": 10,
|
||||||
@@ -4772,7 +4772,7 @@
|
|||||||
"showShadow": true,
|
"showShadow": true,
|
||||||
"containerChangeable": false,
|
"containerChangeable": false,
|
||||||
"containerExtending": false,
|
"containerExtending": false,
|
||||||
"left": 432,
|
"left": 408,
|
||||||
"top": 528,
|
"top": 528,
|
||||||
"width": 10,
|
"width": 10,
|
||||||
"height": 10,
|
"height": 10,
|
||||||
@@ -4796,7 +4796,7 @@
|
|||||||
"showShadow": true,
|
"showShadow": true,
|
||||||
"containerChangeable": false,
|
"containerChangeable": false,
|
||||||
"containerExtending": false,
|
"containerExtending": false,
|
||||||
"left": 432,
|
"left": 408,
|
||||||
"top": 528,
|
"top": 528,
|
||||||
"width": 10,
|
"width": 10,
|
||||||
"height": 10,
|
"height": 10,
|
||||||
@@ -4812,7 +4812,7 @@
|
|||||||
"showShadow": true,
|
"showShadow": true,
|
||||||
"containerChangeable": true,
|
"containerChangeable": true,
|
||||||
"containerExtending": false,
|
"containerExtending": false,
|
||||||
"left": 616,
|
"left": 592,
|
||||||
"top": 1104,
|
"top": 1104,
|
||||||
"width": 50.94873046875,
|
"width": 50.94873046875,
|
||||||
"height": 45,
|
"height": 45,
|
||||||
@@ -4881,7 +4881,7 @@
|
|||||||
"containerExtending": false,
|
"containerExtending": false,
|
||||||
"left": 357,
|
"left": 357,
|
||||||
"top": 821,
|
"top": 821,
|
||||||
"width": 166.92431640625,
|
"width": 167,
|
||||||
"height": 13,
|
"height": 13,
|
||||||
"autoResize": false,
|
"autoResize": false,
|
||||||
"underline": false,
|
"underline": false,
|
||||||
@@ -4907,7 +4907,7 @@
|
|||||||
"containerExtending": false,
|
"containerExtending": false,
|
||||||
"left": 357,
|
"left": 357,
|
||||||
"top": 836,
|
"top": 836,
|
||||||
"width": 166.92431640625,
|
"width": 167,
|
||||||
"height": 13,
|
"height": 13,
|
||||||
"autoResize": false,
|
"autoResize": false,
|
||||||
"underline": false,
|
"underline": false,
|
||||||
@@ -4979,7 +4979,7 @@
|
|||||||
"containerExtending": false,
|
"containerExtending": false,
|
||||||
"left": 352,
|
"left": 352,
|
||||||
"top": 816,
|
"top": 816,
|
||||||
"width": 176.92431640625,
|
"width": 177,
|
||||||
"height": 38,
|
"height": 38,
|
||||||
"autoResize": false,
|
"autoResize": false,
|
||||||
"stereotypeLabel": {
|
"stereotypeLabel": {
|
||||||
@@ -5025,7 +5025,7 @@
|
|||||||
"containerExtending": false,
|
"containerExtending": false,
|
||||||
"left": 357,
|
"left": 357,
|
||||||
"top": 859,
|
"top": 859,
|
||||||
"width": 166.92431640625,
|
"width": 167,
|
||||||
"height": 13,
|
"height": 13,
|
||||||
"autoResize": false,
|
"autoResize": false,
|
||||||
"underline": false,
|
"underline": false,
|
||||||
@@ -5054,7 +5054,7 @@
|
|||||||
"containerExtending": false,
|
"containerExtending": false,
|
||||||
"left": 357,
|
"left": 357,
|
||||||
"top": 874,
|
"top": 874,
|
||||||
"width": 166.92431640625,
|
"width": 167,
|
||||||
"height": 13,
|
"height": 13,
|
||||||
"autoResize": false,
|
"autoResize": false,
|
||||||
"underline": false,
|
"underline": false,
|
||||||
@@ -5075,7 +5075,7 @@
|
|||||||
"containerExtending": false,
|
"containerExtending": false,
|
||||||
"left": 352,
|
"left": 352,
|
||||||
"top": 854,
|
"top": 854,
|
||||||
"width": 176.92431640625,
|
"width": 177,
|
||||||
"height": 38,
|
"height": 38,
|
||||||
"autoResize": false
|
"autoResize": false
|
||||||
},
|
},
|
||||||
@@ -5099,7 +5099,7 @@
|
|||||||
"containerExtending": false,
|
"containerExtending": false,
|
||||||
"left": 352,
|
"left": 352,
|
||||||
"top": 892,
|
"top": 892,
|
||||||
"width": 176.92431640625,
|
"width": 177,
|
||||||
"height": 10,
|
"height": 10,
|
||||||
"autoResize": false
|
"autoResize": false
|
||||||
},
|
},
|
||||||
@@ -5163,7 +5163,7 @@
|
|||||||
"containerExtending": false,
|
"containerExtending": false,
|
||||||
"left": 352,
|
"left": 352,
|
||||||
"top": 816,
|
"top": 816,
|
||||||
"width": 176.92431640625,
|
"width": 177,
|
||||||
"height": 86,
|
"height": 86,
|
||||||
"autoResize": false,
|
"autoResize": false,
|
||||||
"stereotypeDisplay": "label",
|
"stereotypeDisplay": "label",
|
||||||
@@ -9376,6 +9376,580 @@
|
|||||||
"propertyLabel": {
|
"propertyLabel": {
|
||||||
"$ref": "AAAAAAFZB/aY/8WcvSw="
|
"$ref": "AAAAAAFZB/aY/8WcvSw="
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_type": "UMLClassView",
|
||||||
|
"_id": "AAAAAAFZJ0Tfp5SKqYM=",
|
||||||
|
"_parent": {
|
||||||
|
"$ref": "AAAAAAFF+qBtyKM79qY="
|
||||||
|
},
|
||||||
|
"model": {
|
||||||
|
"$ref": "AAAAAAFZJ0TfppSIKrU="
|
||||||
|
},
|
||||||
|
"subViews": [
|
||||||
|
{
|
||||||
|
"_type": "UMLNameCompartmentView",
|
||||||
|
"_id": "AAAAAAFZJ0Tfp5SLuHo=",
|
||||||
|
"_parent": {
|
||||||
|
"$ref": "AAAAAAFZJ0Tfp5SKqYM="
|
||||||
|
},
|
||||||
|
"model": {
|
||||||
|
"$ref": "AAAAAAFZJ0TfppSIKrU="
|
||||||
|
},
|
||||||
|
"subViews": [
|
||||||
|
{
|
||||||
|
"_type": "LabelView",
|
||||||
|
"_id": "AAAAAAFZJ0TfqJSM630=",
|
||||||
|
"_parent": {
|
||||||
|
"$ref": "AAAAAAFZJ0Tfp5SLuHo="
|
||||||
|
},
|
||||||
|
"visible": false,
|
||||||
|
"enabled": true,
|
||||||
|
"lineColor": "#000000",
|
||||||
|
"fillColor": "#ffffff",
|
||||||
|
"fontColor": "#000000",
|
||||||
|
"font": "Arial;13;0",
|
||||||
|
"showShadow": true,
|
||||||
|
"containerChangeable": false,
|
||||||
|
"containerExtending": false,
|
||||||
|
"left": -64,
|
||||||
|
"top": 0,
|
||||||
|
"width": 0,
|
||||||
|
"height": 13,
|
||||||
|
"autoResize": false,
|
||||||
|
"underline": false,
|
||||||
|
"horizontalAlignment": 2,
|
||||||
|
"verticalAlignment": 5,
|
||||||
|
"wordWrap": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_type": "LabelView",
|
||||||
|
"_id": "AAAAAAFZJ0TfqJSNGMw=",
|
||||||
|
"_parent": {
|
||||||
|
"$ref": "AAAAAAFZJ0Tfp5SLuHo="
|
||||||
|
},
|
||||||
|
"visible": true,
|
||||||
|
"enabled": true,
|
||||||
|
"lineColor": "#000000",
|
||||||
|
"fillColor": "#ffffff",
|
||||||
|
"fontColor": "#000000",
|
||||||
|
"font": "Arial;13;1",
|
||||||
|
"showShadow": true,
|
||||||
|
"containerChangeable": false,
|
||||||
|
"containerExtending": false,
|
||||||
|
"left": 661,
|
||||||
|
"top": 1111,
|
||||||
|
"width": 91,
|
||||||
|
"height": 13,
|
||||||
|
"autoResize": false,
|
||||||
|
"underline": false,
|
||||||
|
"text": "HumanoidNPC",
|
||||||
|
"horizontalAlignment": 2,
|
||||||
|
"verticalAlignment": 5,
|
||||||
|
"wordWrap": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_type": "LabelView",
|
||||||
|
"_id": "AAAAAAFZJ0TfqJSOOvU=",
|
||||||
|
"_parent": {
|
||||||
|
"$ref": "AAAAAAFZJ0Tfp5SLuHo="
|
||||||
|
},
|
||||||
|
"visible": false,
|
||||||
|
"enabled": true,
|
||||||
|
"lineColor": "#000000",
|
||||||
|
"fillColor": "#ffffff",
|
||||||
|
"fontColor": "#000000",
|
||||||
|
"font": "Arial;13;0",
|
||||||
|
"showShadow": true,
|
||||||
|
"containerChangeable": false,
|
||||||
|
"containerExtending": false,
|
||||||
|
"left": -64,
|
||||||
|
"top": 0,
|
||||||
|
"width": 73.67724609375,
|
||||||
|
"height": 13,
|
||||||
|
"autoResize": false,
|
||||||
|
"underline": false,
|
||||||
|
"text": "(from Model)",
|
||||||
|
"horizontalAlignment": 2,
|
||||||
|
"verticalAlignment": 5,
|
||||||
|
"wordWrap": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_type": "LabelView",
|
||||||
|
"_id": "AAAAAAFZJ0TfqJSPUL8=",
|
||||||
|
"_parent": {
|
||||||
|
"$ref": "AAAAAAFZJ0Tfp5SLuHo="
|
||||||
|
},
|
||||||
|
"visible": false,
|
||||||
|
"enabled": true,
|
||||||
|
"lineColor": "#000000",
|
||||||
|
"fillColor": "#ffffff",
|
||||||
|
"fontColor": "#000000",
|
||||||
|
"font": "Arial;13;0",
|
||||||
|
"showShadow": true,
|
||||||
|
"containerChangeable": false,
|
||||||
|
"containerExtending": false,
|
||||||
|
"left": -64,
|
||||||
|
"top": 0,
|
||||||
|
"width": 0,
|
||||||
|
"height": 13,
|
||||||
|
"autoResize": false,
|
||||||
|
"underline": false,
|
||||||
|
"horizontalAlignment": 1,
|
||||||
|
"verticalAlignment": 5,
|
||||||
|
"wordWrap": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"visible": true,
|
||||||
|
"enabled": true,
|
||||||
|
"lineColor": "#000000",
|
||||||
|
"fillColor": "#ffffff",
|
||||||
|
"fontColor": "#000000",
|
||||||
|
"font": "Arial;13;0",
|
||||||
|
"showShadow": true,
|
||||||
|
"containerChangeable": false,
|
||||||
|
"containerExtending": false,
|
||||||
|
"left": 656,
|
||||||
|
"top": 1104,
|
||||||
|
"width": 101,
|
||||||
|
"height": 25,
|
||||||
|
"autoResize": false,
|
||||||
|
"stereotypeLabel": {
|
||||||
|
"$ref": "AAAAAAFZJ0TfqJSM630="
|
||||||
|
},
|
||||||
|
"nameLabel": {
|
||||||
|
"$ref": "AAAAAAFZJ0TfqJSNGMw="
|
||||||
|
},
|
||||||
|
"namespaceLabel": {
|
||||||
|
"$ref": "AAAAAAFZJ0TfqJSOOvU="
|
||||||
|
},
|
||||||
|
"propertyLabel": {
|
||||||
|
"$ref": "AAAAAAFZJ0TfqJSPUL8="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_type": "UMLAttributeCompartmentView",
|
||||||
|
"_id": "AAAAAAFZJ0TfqJSQoc8=",
|
||||||
|
"_parent": {
|
||||||
|
"$ref": "AAAAAAFZJ0Tfp5SKqYM="
|
||||||
|
},
|
||||||
|
"model": {
|
||||||
|
"$ref": "AAAAAAFZJ0TfppSIKrU="
|
||||||
|
},
|
||||||
|
"visible": true,
|
||||||
|
"enabled": true,
|
||||||
|
"lineColor": "#000000",
|
||||||
|
"fillColor": "#ffffff",
|
||||||
|
"fontColor": "#000000",
|
||||||
|
"font": "Arial;13;0",
|
||||||
|
"showShadow": true,
|
||||||
|
"containerChangeable": false,
|
||||||
|
"containerExtending": false,
|
||||||
|
"left": 656,
|
||||||
|
"top": 1129,
|
||||||
|
"width": 101,
|
||||||
|
"height": 10,
|
||||||
|
"autoResize": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_type": "UMLOperationCompartmentView",
|
||||||
|
"_id": "AAAAAAFZJ0TfqJSRzvI=",
|
||||||
|
"_parent": {
|
||||||
|
"$ref": "AAAAAAFZJ0Tfp5SKqYM="
|
||||||
|
},
|
||||||
|
"model": {
|
||||||
|
"$ref": "AAAAAAFZJ0TfppSIKrU="
|
||||||
|
},
|
||||||
|
"visible": true,
|
||||||
|
"enabled": true,
|
||||||
|
"lineColor": "#000000",
|
||||||
|
"fillColor": "#ffffff",
|
||||||
|
"fontColor": "#000000",
|
||||||
|
"font": "Arial;13;0",
|
||||||
|
"showShadow": true,
|
||||||
|
"containerChangeable": false,
|
||||||
|
"containerExtending": false,
|
||||||
|
"left": 656,
|
||||||
|
"top": 1139,
|
||||||
|
"width": 101,
|
||||||
|
"height": 10,
|
||||||
|
"autoResize": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_type": "UMLReceptionCompartmentView",
|
||||||
|
"_id": "AAAAAAFZJ0TfqJSStM8=",
|
||||||
|
"_parent": {
|
||||||
|
"$ref": "AAAAAAFZJ0Tfp5SKqYM="
|
||||||
|
},
|
||||||
|
"model": {
|
||||||
|
"$ref": "AAAAAAFZJ0TfppSIKrU="
|
||||||
|
},
|
||||||
|
"visible": false,
|
||||||
|
"enabled": true,
|
||||||
|
"lineColor": "#000000",
|
||||||
|
"fillColor": "#ffffff",
|
||||||
|
"fontColor": "#000000",
|
||||||
|
"font": "Arial;13;0",
|
||||||
|
"showShadow": true,
|
||||||
|
"containerChangeable": false,
|
||||||
|
"containerExtending": false,
|
||||||
|
"left": -32,
|
||||||
|
"top": 0,
|
||||||
|
"width": 10,
|
||||||
|
"height": 10,
|
||||||
|
"autoResize": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_type": "UMLTemplateParameterCompartmentView",
|
||||||
|
"_id": "AAAAAAFZJ0TfqJSTJSI=",
|
||||||
|
"_parent": {
|
||||||
|
"$ref": "AAAAAAFZJ0Tfp5SKqYM="
|
||||||
|
},
|
||||||
|
"model": {
|
||||||
|
"$ref": "AAAAAAFZJ0TfppSIKrU="
|
||||||
|
},
|
||||||
|
"visible": false,
|
||||||
|
"enabled": true,
|
||||||
|
"lineColor": "#000000",
|
||||||
|
"fillColor": "#ffffff",
|
||||||
|
"fontColor": "#000000",
|
||||||
|
"font": "Arial;13;0",
|
||||||
|
"showShadow": true,
|
||||||
|
"containerChangeable": false,
|
||||||
|
"containerExtending": false,
|
||||||
|
"left": -32,
|
||||||
|
"top": 0,
|
||||||
|
"width": 10,
|
||||||
|
"height": 10,
|
||||||
|
"autoResize": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"visible": true,
|
||||||
|
"enabled": true,
|
||||||
|
"lineColor": "#000000",
|
||||||
|
"fillColor": "#ffffff",
|
||||||
|
"fontColor": "#000000",
|
||||||
|
"font": "Arial;13;0",
|
||||||
|
"showShadow": true,
|
||||||
|
"containerChangeable": true,
|
||||||
|
"containerExtending": false,
|
||||||
|
"left": 656,
|
||||||
|
"top": 1104,
|
||||||
|
"width": 101,
|
||||||
|
"height": 45,
|
||||||
|
"autoResize": false,
|
||||||
|
"stereotypeDisplay": "label",
|
||||||
|
"showVisibility": true,
|
||||||
|
"showNamespace": false,
|
||||||
|
"showProperty": true,
|
||||||
|
"showType": true,
|
||||||
|
"nameCompartment": {
|
||||||
|
"$ref": "AAAAAAFZJ0Tfp5SLuHo="
|
||||||
|
},
|
||||||
|
"wordWrap": false,
|
||||||
|
"suppressAttributes": false,
|
||||||
|
"suppressOperations": false,
|
||||||
|
"suppressReceptions": true,
|
||||||
|
"showMultiplicity": true,
|
||||||
|
"showOperationSignature": true,
|
||||||
|
"attributeCompartment": {
|
||||||
|
"$ref": "AAAAAAFZJ0TfqJSQoc8="
|
||||||
|
},
|
||||||
|
"operationCompartment": {
|
||||||
|
"$ref": "AAAAAAFZJ0TfqJSRzvI="
|
||||||
|
},
|
||||||
|
"receptionCompartment": {
|
||||||
|
"$ref": "AAAAAAFZJ0TfqJSStM8="
|
||||||
|
},
|
||||||
|
"templateParameterCompartment": {
|
||||||
|
"$ref": "AAAAAAFZJ0TfqJSTJSI="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_type": "UMLGeneralizationView",
|
||||||
|
"_id": "AAAAAAFZJ0UJUJTYebA=",
|
||||||
|
"_parent": {
|
||||||
|
"$ref": "AAAAAAFF+qBtyKM79qY="
|
||||||
|
},
|
||||||
|
"model": {
|
||||||
|
"$ref": "AAAAAAFZJ0UJT5TW9Ys="
|
||||||
|
},
|
||||||
|
"subViews": [
|
||||||
|
{
|
||||||
|
"_type": "EdgeLabelView",
|
||||||
|
"_id": "AAAAAAFZJ0UJUJTZJhg=",
|
||||||
|
"_parent": {
|
||||||
|
"$ref": "AAAAAAFZJ0UJUJTYebA="
|
||||||
|
},
|
||||||
|
"model": {
|
||||||
|
"$ref": "AAAAAAFZJ0UJT5TW9Ys="
|
||||||
|
},
|
||||||
|
"visible": false,
|
||||||
|
"enabled": true,
|
||||||
|
"lineColor": "#000000",
|
||||||
|
"fillColor": "#ffffff",
|
||||||
|
"fontColor": "#000000",
|
||||||
|
"font": "Arial;13;0",
|
||||||
|
"showShadow": true,
|
||||||
|
"containerChangeable": false,
|
||||||
|
"containerExtending": false,
|
||||||
|
"left": 667,
|
||||||
|
"top": 1071,
|
||||||
|
"width": 0,
|
||||||
|
"height": 13,
|
||||||
|
"autoResize": false,
|
||||||
|
"alpha": 1.5707963267948966,
|
||||||
|
"distance": 15,
|
||||||
|
"hostEdge": {
|
||||||
|
"$ref": "AAAAAAFZJ0UJUJTYebA="
|
||||||
|
},
|
||||||
|
"edgePosition": 1,
|
||||||
|
"underline": false,
|
||||||
|
"horizontalAlignment": 2,
|
||||||
|
"verticalAlignment": 5,
|
||||||
|
"wordWrap": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_type": "EdgeLabelView",
|
||||||
|
"_id": "AAAAAAFZJ0UJUJTaOQY=",
|
||||||
|
"_parent": {
|
||||||
|
"$ref": "AAAAAAFZJ0UJUJTYebA="
|
||||||
|
},
|
||||||
|
"model": {
|
||||||
|
"$ref": "AAAAAAFZJ0UJT5TW9Ys="
|
||||||
|
},
|
||||||
|
"visible": null,
|
||||||
|
"enabled": true,
|
||||||
|
"lineColor": "#000000",
|
||||||
|
"fillColor": "#ffffff",
|
||||||
|
"fontColor": "#000000",
|
||||||
|
"font": "Arial;13;0",
|
||||||
|
"showShadow": true,
|
||||||
|
"containerChangeable": false,
|
||||||
|
"containerExtending": false,
|
||||||
|
"left": 652,
|
||||||
|
"top": 1071,
|
||||||
|
"width": 0,
|
||||||
|
"height": 13,
|
||||||
|
"autoResize": false,
|
||||||
|
"alpha": 1.5707963267948966,
|
||||||
|
"distance": 30,
|
||||||
|
"hostEdge": {
|
||||||
|
"$ref": "AAAAAAFZJ0UJUJTYebA="
|
||||||
|
},
|
||||||
|
"edgePosition": 1,
|
||||||
|
"underline": false,
|
||||||
|
"horizontalAlignment": 2,
|
||||||
|
"verticalAlignment": 5,
|
||||||
|
"wordWrap": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_type": "EdgeLabelView",
|
||||||
|
"_id": "AAAAAAFZJ0UJUJTbT+U=",
|
||||||
|
"_parent": {
|
||||||
|
"$ref": "AAAAAAFZJ0UJUJTYebA="
|
||||||
|
},
|
||||||
|
"model": {
|
||||||
|
"$ref": "AAAAAAFZJ0UJT5TW9Ys="
|
||||||
|
},
|
||||||
|
"visible": false,
|
||||||
|
"enabled": true,
|
||||||
|
"lineColor": "#000000",
|
||||||
|
"fillColor": "#ffffff",
|
||||||
|
"fontColor": "#000000",
|
||||||
|
"font": "Arial;13;0",
|
||||||
|
"showShadow": true,
|
||||||
|
"containerChangeable": false,
|
||||||
|
"containerExtending": false,
|
||||||
|
"left": 696,
|
||||||
|
"top": 1072,
|
||||||
|
"width": 0,
|
||||||
|
"height": 13,
|
||||||
|
"autoResize": false,
|
||||||
|
"alpha": -1.5707963267948966,
|
||||||
|
"distance": 15,
|
||||||
|
"hostEdge": {
|
||||||
|
"$ref": "AAAAAAFZJ0UJUJTYebA="
|
||||||
|
},
|
||||||
|
"edgePosition": 1,
|
||||||
|
"underline": false,
|
||||||
|
"horizontalAlignment": 2,
|
||||||
|
"verticalAlignment": 5,
|
||||||
|
"wordWrap": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"visible": true,
|
||||||
|
"enabled": true,
|
||||||
|
"lineColor": "#000000",
|
||||||
|
"fillColor": "#ffffff",
|
||||||
|
"fontColor": "#000000",
|
||||||
|
"font": "Arial;13;0",
|
||||||
|
"showShadow": true,
|
||||||
|
"containerChangeable": false,
|
||||||
|
"containerExtending": false,
|
||||||
|
"head": {
|
||||||
|
"$ref": "AAAAAAFYplR452dt4u8="
|
||||||
|
},
|
||||||
|
"tail": {
|
||||||
|
"$ref": "AAAAAAFZJ0Tfp5SKqYM="
|
||||||
|
},
|
||||||
|
"lineStyle": 2,
|
||||||
|
"points": "682:1104;682:1052",
|
||||||
|
"stereotypeDisplay": "label",
|
||||||
|
"showVisibility": true,
|
||||||
|
"showProperty": true,
|
||||||
|
"nameLabel": {
|
||||||
|
"$ref": "AAAAAAFZJ0UJUJTZJhg="
|
||||||
|
},
|
||||||
|
"stereotypeLabel": {
|
||||||
|
"$ref": "AAAAAAFZJ0UJUJTaOQY="
|
||||||
|
},
|
||||||
|
"propertyLabel": {
|
||||||
|
"$ref": "AAAAAAFZJ0UJUJTbT+U="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_type": "UMLGeneralizationView",
|
||||||
|
"_id": "AAAAAAFZK34BdLP0LR4=",
|
||||||
|
"_parent": {
|
||||||
|
"$ref": "AAAAAAFF+qBtyKM79qY="
|
||||||
|
},
|
||||||
|
"model": {
|
||||||
|
"$ref": "AAAAAAFZK34BdLPyGik="
|
||||||
|
},
|
||||||
|
"subViews": [
|
||||||
|
{
|
||||||
|
"_type": "EdgeLabelView",
|
||||||
|
"_id": "AAAAAAFZK34BdLP1hH4=",
|
||||||
|
"_parent": {
|
||||||
|
"$ref": "AAAAAAFZK34BdLP0LR4="
|
||||||
|
},
|
||||||
|
"model": {
|
||||||
|
"$ref": "AAAAAAFZK34BdLPyGik="
|
||||||
|
},
|
||||||
|
"visible": false,
|
||||||
|
"enabled": true,
|
||||||
|
"lineColor": "#000000",
|
||||||
|
"fillColor": "#ffffff",
|
||||||
|
"fontColor": "#000000",
|
||||||
|
"font": "Arial;13;0",
|
||||||
|
"showShadow": true,
|
||||||
|
"containerChangeable": false,
|
||||||
|
"containerExtending": false,
|
||||||
|
"left": 230,
|
||||||
|
"top": 649,
|
||||||
|
"width": 0,
|
||||||
|
"height": 13,
|
||||||
|
"autoResize": false,
|
||||||
|
"alpha": 1.5707963267948966,
|
||||||
|
"distance": 15,
|
||||||
|
"hostEdge": {
|
||||||
|
"$ref": "AAAAAAFZK34BdLP0LR4="
|
||||||
|
},
|
||||||
|
"edgePosition": 1,
|
||||||
|
"underline": false,
|
||||||
|
"horizontalAlignment": 2,
|
||||||
|
"verticalAlignment": 5,
|
||||||
|
"wordWrap": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_type": "EdgeLabelView",
|
||||||
|
"_id": "AAAAAAFZK34BdLP2MlI=",
|
||||||
|
"_parent": {
|
||||||
|
"$ref": "AAAAAAFZK34BdLP0LR4="
|
||||||
|
},
|
||||||
|
"model": {
|
||||||
|
"$ref": "AAAAAAFZK34BdLPyGik="
|
||||||
|
},
|
||||||
|
"visible": null,
|
||||||
|
"enabled": true,
|
||||||
|
"lineColor": "#000000",
|
||||||
|
"fillColor": "#ffffff",
|
||||||
|
"fontColor": "#000000",
|
||||||
|
"font": "Arial;13;0",
|
||||||
|
"showShadow": true,
|
||||||
|
"containerChangeable": false,
|
||||||
|
"containerExtending": false,
|
||||||
|
"left": 215,
|
||||||
|
"top": 649,
|
||||||
|
"width": 0,
|
||||||
|
"height": 13,
|
||||||
|
"autoResize": false,
|
||||||
|
"alpha": 1.5707963267948966,
|
||||||
|
"distance": 30,
|
||||||
|
"hostEdge": {
|
||||||
|
"$ref": "AAAAAAFZK34BdLP0LR4="
|
||||||
|
},
|
||||||
|
"edgePosition": 1,
|
||||||
|
"underline": false,
|
||||||
|
"horizontalAlignment": 2,
|
||||||
|
"verticalAlignment": 5,
|
||||||
|
"wordWrap": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_type": "EdgeLabelView",
|
||||||
|
"_id": "AAAAAAFZK34BdbP39AM=",
|
||||||
|
"_parent": {
|
||||||
|
"$ref": "AAAAAAFZK34BdLP0LR4="
|
||||||
|
},
|
||||||
|
"model": {
|
||||||
|
"$ref": "AAAAAAFZK34BdLPyGik="
|
||||||
|
},
|
||||||
|
"visible": false,
|
||||||
|
"enabled": true,
|
||||||
|
"lineColor": "#000000",
|
||||||
|
"fillColor": "#ffffff",
|
||||||
|
"fontColor": "#000000",
|
||||||
|
"font": "Arial;13;0",
|
||||||
|
"showShadow": true,
|
||||||
|
"containerChangeable": false,
|
||||||
|
"containerExtending": false,
|
||||||
|
"left": 260,
|
||||||
|
"top": 650,
|
||||||
|
"width": 0,
|
||||||
|
"height": 13,
|
||||||
|
"autoResize": false,
|
||||||
|
"alpha": -1.5707963267948966,
|
||||||
|
"distance": 15,
|
||||||
|
"hostEdge": {
|
||||||
|
"$ref": "AAAAAAFZK34BdLP0LR4="
|
||||||
|
},
|
||||||
|
"edgePosition": 1,
|
||||||
|
"underline": false,
|
||||||
|
"horizontalAlignment": 2,
|
||||||
|
"verticalAlignment": 5,
|
||||||
|
"wordWrap": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"visible": true,
|
||||||
|
"enabled": true,
|
||||||
|
"lineColor": "#000000",
|
||||||
|
"fillColor": "#ffffff",
|
||||||
|
"fontColor": "#000000",
|
||||||
|
"font": "Arial;13;0",
|
||||||
|
"showShadow": true,
|
||||||
|
"containerChangeable": false,
|
||||||
|
"containerExtending": false,
|
||||||
|
"head": {
|
||||||
|
"$ref": "AAAAAAFYplBdqGVJPVc="
|
||||||
|
},
|
||||||
|
"tail": {
|
||||||
|
"$ref": "AAAAAAFYplPlN2cIYnI="
|
||||||
|
},
|
||||||
|
"lineStyle": 2,
|
||||||
|
"points": "352:656;245:656;245:480",
|
||||||
|
"stereotypeDisplay": "label",
|
||||||
|
"showVisibility": true,
|
||||||
|
"showProperty": true,
|
||||||
|
"nameLabel": {
|
||||||
|
"$ref": "AAAAAAFZK34BdLP1hH4="
|
||||||
|
},
|
||||||
|
"stereotypeLabel": {
|
||||||
|
"$ref": "AAAAAAFZK34BdLP2MlI="
|
||||||
|
},
|
||||||
|
"propertyLabel": {
|
||||||
|
"$ref": "AAAAAAFZK34BdbP39AM="
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -10047,6 +10621,20 @@
|
|||||||
"$ref": "AAAAAAFYpmYlfnwyF/k="
|
"$ref": "AAAAAAFYpmYlfnwyF/k="
|
||||||
},
|
},
|
||||||
"visibility": "public"
|
"visibility": "public"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_type": "UMLGeneralization",
|
||||||
|
"_id": "AAAAAAFZK34BdLPyGik=",
|
||||||
|
"_parent": {
|
||||||
|
"$ref": "AAAAAAFYplPlN2cGJWo="
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"$ref": "AAAAAAFYplPlN2cGJWo="
|
||||||
|
},
|
||||||
|
"target": {
|
||||||
|
"$ref": "AAAAAAFYplBdp2VHGxk="
|
||||||
|
},
|
||||||
|
"visibility": "public"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"visibility": "public",
|
"visibility": "public",
|
||||||
@@ -11140,6 +11728,35 @@
|
|||||||
"isAbstract": false,
|
"isAbstract": false,
|
||||||
"isFinalSpecialization": false,
|
"isFinalSpecialization": false,
|
||||||
"isLeaf": false
|
"isLeaf": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_type": "UMLClass",
|
||||||
|
"_id": "AAAAAAFZJ0TfppSIKrU=",
|
||||||
|
"_parent": {
|
||||||
|
"$ref": "AAAAAAFF+qBWK6M3Z8Y="
|
||||||
|
},
|
||||||
|
"name": "HumanoidNPC",
|
||||||
|
"ownedElements": [
|
||||||
|
{
|
||||||
|
"_type": "UMLGeneralization",
|
||||||
|
"_id": "AAAAAAFZJ0UJT5TW9Ys=",
|
||||||
|
"_parent": {
|
||||||
|
"$ref": "AAAAAAFZJ0TfppSIKrU="
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"$ref": "AAAAAAFZJ0TfppSIKrU="
|
||||||
|
},
|
||||||
|
"target": {
|
||||||
|
"$ref": "AAAAAAFYplR452drOZI="
|
||||||
|
},
|
||||||
|
"visibility": "public"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"visibility": "public",
|
||||||
|
"isAbstract": false,
|
||||||
|
"isFinalSpecialization": false,
|
||||||
|
"isLeaf": false,
|
||||||
|
"isActive": false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"visibility": "public"
|
"visibility": "public"
|
||||||
|
|||||||
BIN
work_files/UML/actors.png
Normal file
BIN
work_files/UML/actors.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 150 KiB |
Reference in New Issue
Block a user