mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-12 06:41:51 +09:00
youcankillmenow;)
Former-commit-id: 906db790ab715ecdb1b7b9df11c74bc188afceb0 Former-commit-id: c229422f3faeafe31c44870183fa753564b32fa7
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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}
|
||||
Reference in New Issue
Block a user