youcankillmenow;)

Former-commit-id: 906db790ab715ecdb1b7b9df11c74bc188afceb0
Former-commit-id: c229422f3faeafe31c44870183fa753564b32fa7
This commit is contained in:
Song Minjae
2016-12-12 20:35:00 +09:00
parent 3fa4f61eec
commit 870c9b36ff
29 changed files with 512 additions and 20 deletions

View File

@@ -55,6 +55,8 @@ object DefaultConfig {
jsonObject.addProperty("keyquicksel", Key.CAPS_LOCK) // pie menu
val keyquickselalt = JsonArray(); keyquickselalt.add(Key.BACKSPACE); keyquickselalt.add(Key.L_COMMAND); keyquickselalt.add(Key.L_CONTROL)
// Colemak, Workman and some typers use CapsLock as Backspace, Apple-JIS and HHKB has Control in place of CapsLock and often re-assigned to Command
// so these keys are treated as the same.
// FOR ~~FUCKS~~ERGONOMICS' SAKE DON'T USE CTRL AND ALT AS A KEY!
jsonObject.add("keyquickselalt", keyquickselalt)
jsonObject.addProperty("keyjump", Key.SPACE)

View File

@@ -1,6 +1,7 @@
package net.torvald.terrarum
import net.torvald.imagefont.GameFontBase
import net.torvald.random.HQRNG
import net.torvald.terrarum.audio.AudioResourceLibrary
import net.torvald.terrarum.concurrent.ThreadPool
import net.torvald.terrarum.gameactors.ActorHumanoid
@@ -59,9 +60,9 @@ constructor() : BasicGameState() {
lateinit var debugWindow: UIHandler
lateinit var notifier: UIHandler
lateinit internal var playableActorWrapper: PlayableActorWrapper
lateinit internal var playableActorDelegate: PlayableActorDelegate
internal val player: ActorHumanoid // currently POSSESSED actor :)
get() = playableActorWrapper.actor
get() = playableActorDelegate.actor
//private var GRADIENT_IMAGE: Image? = null
//private var skyBox: Rectangle? = null
@@ -74,9 +75,8 @@ constructor() : BasicGameState() {
val actorsDrawFrameBuffer = Image(Terrarum.WIDTH, Terrarum.HEIGHT)
val uisDrawFrameBuffer = Image(Terrarum.WIDTH, Terrarum.HEIGHT)
private lateinit var shader12BitCol: Shader
private lateinit var shaderBlurH: Shader
private lateinit var shaderBlurV: Shader
//private lateinit var shader12BitCol: Shader // grab LibGDX if you want some shader
//private lateinit var shaderBlur: Shader
private val useShader: Boolean = false
private val shaderProgram = 0
@@ -107,9 +107,8 @@ constructor() : BasicGameState() {
override fun enter(gc: GameContainer, sbg: StateBasedGame) {
// load things when the game entered this "state"
// load necessary shaders
shader12BitCol = Shader.makeShader("./assets/4096.vrt", "./assets/4096.frg")
shaderBlurH = Shader.makeShader("./assets/blurH.vrt", "./assets/blur.frg")
shaderBlurV = Shader.makeShader("./assets/blurV.vrt", "./assets/blur.frg")
//shader12BitCol = Shader.makeShader("./assets/4096.vert", "./assets/4096.frag")
//shaderBlur = Shader.makeShader("./assets/blur.vert", "./assets/blur.frag")
// init map as chosen size
world = GameWorld(8192, 2048)
@@ -117,16 +116,15 @@ constructor() : BasicGameState() {
// generate terrain for the map
WorldGenerator.attachMap(world)
WorldGenerator.SEED = 0x51621D2
//mapgenerator.setSeed(new HQRNG().nextLong());
//WorldGenerator.SEED = HQRNG().nextLong()
WorldGenerator.generateMap()
RoguelikeRandomiser.seed = 0x540198
//RoguelikeRandomiser.setSeed(new HQRNG().nextLong());
RoguelikeRandomiser.seed = HQRNG().nextLong()
// add new player and put it to actorContainer
playableActorWrapper = PlayableActorWrapper(PlayerBuilderSigrid.create())
playableActorDelegate = PlayableActorDelegate(PlayerBuilderSigrid.create())
//player = PBCynthia.create()
//player.setNoClip(true);
addActor(player)
@@ -244,12 +242,12 @@ constructor() : BasicGameState() {
changePossession(Player.PLAYER_REF_ID) // TODO completely other behaviour?
}
private fun changePossession(newActor: PlayableActorWrapper) {
private fun changePossession(newActor: PlayableActorDelegate) {
if (!hasActor(player)) {
throw IllegalArgumentException("No such actor in actorContainer: $newActor")
}
playableActorWrapper = newActor
playableActorDelegate = newActor
WorldSimulator(world, player, UPDATE_DELTA)
}
@@ -258,7 +256,7 @@ constructor() : BasicGameState() {
throw IllegalArgumentException("No such actor in actorContainer: $refid")
}
playableActorWrapper = PlayableActorWrapper(getActorByID(refid) as ActorHumanoid)
playableActorDelegate = PlayableActorDelegate(getActorByID(refid) as ActorHumanoid)
WorldSimulator(world, player, UPDATE_DELTA)
}

View File

@@ -38,13 +38,13 @@ constructor(gamename: String) : StateBasedGame(gamename) {
joypadLabelStart = when (getConfigString("joypadlabelstyle")) {
"nwii" -> 0xE04B.toChar() // + mark
"logitech" -> 0xE05A.toChar() // number 10
else -> 0xE042.toChar() // > mark (sonyps, msxb360, generic)
else -> 0xE042.toChar() // |> mark (sonyps, msxb360, generic)
}
joypadLableSelect = when (getConfigString("joypadlabelstyle")) {
"nwii" -> 0xE04D.toChar() // - mark
"logitech" -> 0xE059.toChar() // number 9
"sonyps" -> 0xE043.toChar() // solid rectangle
"msxb360" -> 0xE041.toChar() // < mark
"msxb360" -> 0xE041.toChar() // <| mark
else -> 0xE043.toChar() // solid rectangle
}
@@ -142,7 +142,7 @@ constructor(gamename: String) : StateBasedGame(gamename) {
lateinit var appgc: AppGameContainer
var WIDTH = 1072
var HEIGHT = 742 // IMAX ratio
var HEIGHT = 742 // IMAX ratiso
var VSYNC = true
val VSYNC_TRIGGER_THRESHOLD = 56

View File

@@ -6,10 +6,10 @@ import org.newdawn.slick.Input
/**
* A wrapper to support instant player changing (or possessing other NPCs maybe)
*
* @param actor : here you 'snap in' the actor you wish to control
* @param actor : here you 'attach' the actor you wish to control
* Created by minjaesong on 16-10-23.
*/
class PlayableActorWrapper(val actor: ActorHumanoid) {
class PlayableActorDelegate(val actor: ActorHumanoid) {
init {
if (actor !is Controllable)

View File

@@ -0,0 +1,34 @@
-- TBASIC extension
-- these are utilities. Do not touch these lines
local __assert = _TBASIC.__assert
local __assertlhand = _TBASIC.__assertlhand
local __assertrhand = _TBASIC.__assertrhand
local __checknumber = _TBASIC.__checknumber
local __checkstring = _TBASIC.__checkstring
local __readvar = _TBASIC.__readvar
local __resolvevararg = _TBASIC.__resolvevarar
local vararg = -13 -- magic
-- end of utilities
-- these are the sample code for defining your own words
--[[
-- actual function that does the job
local function _fnupgoer(n)
print("Up-goer "..__checknumber(n).." goes up!")
end
-- add the word UPGOER to word list
table.insert(_TBASIC._FNCTION, "UPGOER")
-- add the actual function '_fnupgoer' and its number of arguments (1) to
-- '_TBASIC.LUAFN'. 'UPGOER' part should match with the word you just
-- inserted to _TBASIC._FNCTION.
_TBASIC.LUAFN.UPGOER = {_fnupgoer, 1}
]]
-- little debugger's blessing
local function _fnenableluatrace() _TBASIC.SHOWLUAERROR = true end
table.insert(_TBASIC._FNCTION, "LUATRACEON")
_TBASIC.LUAFN.LUATRACEON = {_fnenableluatrace, 0}