From 9937c34d2552267226f7ab5ab5000243f886abdf Mon Sep 17 00:00:00 2001 From: minjaesong Date: Sun, 27 Jan 2019 00:30:56 +0900 Subject: [PATCH] light calc takes fluid into account --- assets/books/userguide_ENG.tex | 2 +- assets/mods/basegame/blocks/blocks.csv | 6 ++-- assets/mods/basegame/default.json | 26 +++++++------- src/net/torvald/terrarum/AppLoader.java | 30 +++++++++++++++- src/net/torvald/terrarum/DefaultConfig.kt | 26 +++++++------- src/net/torvald/terrarum/Terrarum.kt | 36 +++++++++---------- .../terrarum/blockproperties/BlockCodex.kt | 15 ++++++++ .../terrarum/itemproperties/GameItem.kt | 6 ++-- src/net/torvald/terrarum/langpack/Lang.kt | 2 +- .../gameactors/ActorHumanoid.kt | 26 +++++++------- .../terrarum/modulebasegame/ui/UIInventory.kt | 4 +-- .../modulebasegame/ui/UIInventoryFull.kt | 4 +-- .../modulebasegame/ui/UITitleRemoConYaml.kt | 5 +-- .../terrarum/ui/BasicDebugInfoWindow.kt | 10 +++--- .../worlddrawer/LightmapRendererNew.kt | 10 ++++-- work_files/UI/inventory_equip_icons.psd | 4 +-- work_files/UI/options-controls.psd | 4 +-- work_files/graphics/fonts/puae000-e0ff.psd | 4 +-- 18 files changed, 133 insertions(+), 87 deletions(-) diff --git a/assets/books/userguide_ENG.tex b/assets/books/userguide_ENG.tex index 829405d15..dbeac1dbe 100644 --- a/assets/books/userguide_ENG.tex +++ b/assets/books/userguide_ENG.tex @@ -71,7 +71,7 @@ The control is omnidirectional. In other words, \emph{not} cell-based. \subsubsection{ISO\slash ANSI\slash JIS pedalboards} Your default moving around uses ESDF (qwerty)\slash FRST (colemak)\slash .OEW (dvorak) pedals for default `WASD', in order for you to provide more modifier pedals---QAZ (qwerty\slash colemak), /A; (dvorak)---that are pressed with your little finger and more comfort to some pedalboards with Topre actuators.\footnote{Writers of this book would recommend you to use pedalboard with Cherry MX Red actuators, though any decent pedalboard should be sufficient.} - \subsubsection{Joypads} + \subsubsection{gamepads} Your moving around uses left stick, and direction of the movement is \emph{not} limited to 8 directions, hence the term, “omni\-direc\-tion\-al”. \section{World} diff --git a/assets/mods/basegame/blocks/blocks.csv b/assets/mods/basegame/blocks/blocks.csv index 8eabf78b6..4e9522225 100644 --- a/assets/mods/basegame/blocks/blocks.csv +++ b/assets/mods/basegame/blocks/blocks.csv @@ -98,15 +98,15 @@ "256"; "256";"BLOCK_LANTERN_IRON_REGULAR" ;"0.0312";"0.0312";"0.0312";"0.0312"; "1"; "N/A";"FXTR"; "0"; "0"; "1"; "0"; "0"; "0"; "N/A"; "0";"16";"1.0000";"0.6372";"0.0000";"0.0000" "257"; "257";"BLOCK_SUNSTONE" ;"0.1252";"0.1252";"0.1252";"0.1252"; "1"; "N/A";"ROCK"; "1"; "0"; "0"; "0"; "0"; "2"; "N/A"; "0";"16";"0.0000";"0.0000";"0.0000";"0.0000" "258"; "258";"BLOCK_DAYLIGHT_CAPACITOR" ;"0.1252";"0.1252";"0.1252";"0.1252"; "1"; "N/A";"GLAS"; "1"; "0"; "0"; "0"; "0"; "3"; "N/A"; "0";"16";"0.0000";"0.0000";"0.0000";"0.0000" -"4094"; "0";"BLOCK_LAVA" ;"0.9696";"0.9696";"0.9696";"0.9696";"100";"2600";"ROCK"; "0"; "0"; "1"; "0"; "0"; "0"; "32"; "0";"16";"0.7664";"0.2032";"0.0000";"0.0000" -"4095"; "0";"BLOCK_WATER" ;"0.1016";"0.0744";"0.0508";"0.0508";"100";"1000";"WATR"; "0"; "0"; "1"; "0"; "0"; "0"; "16"; "0";"16";"0.0000";"0.0000";"0.0000";"0.0000" +"4096"; "0";"BLOCK_WATER" ;"0.1016";"0.0744";"0.0508";"0.0508";"100";"1000";"WATR"; "0"; "0"; "1"; "0"; "0"; "0"; "16"; "0";"16";"0.0000";"0.0000";"0.0000";"0.0000" +"4097"; "0";"BLOCK_LAVA" ;"0.9696";"0.9696";"0.9696";"0.9696";"100";"2600";"ROCK"; "0"; "0"; "1"; "0"; "0"; "0"; "32"; "0";"16";"0.7664";"0.2032";"0.0000";"0.0000" "-1"; "0";"BLOCK_NULL" ;"4.0000";"4.0000";"4.0000";"4.0000"; "-1";"2600";"NULL"; "0"; "0"; "1"; "1"; "0"; "0"; "N/A"; "0";"16";"0.0000";"0.0000";"0.0000";"0.0000" ## Notes ## # # Lava/Water props are left for future references, do not delete them until FluidCodex is built # # -# id: Block ID +# id: Block ID. ID equal to or greater than 4096 is for fluids, mainly for lighting calculation. # drop: Drop ID # # shdr/g/b, lumr/g/b: Shade RGB/ Lum RGB. diff --git a/assets/mods/basegame/default.json b/assets/mods/basegame/default.json index 00dd8d51c..8167663d2 100644 --- a/assets/mods/basegame/default.json +++ b/assets/mods/basegame/default.json @@ -8,22 +8,22 @@ "multithread": true, - "joypadkeyn": 4, - "joypadkeyw": 1, - "joypadkeys": 2, - "joypadkeye": 3, + "gamepadkeyn": 4, + "gamepadkeyw": 1, + "gamepadkeys": 2, + "gamepadkeye": 3, - "joypadlup": 4, - "joypadrup": 5, - "joypadldown": 6, - "joypadrdown": 7, + "gamepadlup": 4, + "gamepadrup": 5, + "gamepadldown": 6, + "gamepadrdown": 7, - "joypadlstickx": 0, - "joypadlsticky": 1, - "joypadrstickx": 2, - "joypadrsticky": 3, + "gamepadlstickx": 0, + "gamepadlsticky": 1, + "gamepadrstickx": 2, + "gamepadrsticky": 3, - "joypadlabelstyle": "msxb360", + "gamepadlabelstyle": "msxb360", "keyup": 33, diff --git a/src/net/torvald/terrarum/AppLoader.java b/src/net/torvald/terrarum/AppLoader.java index 3906ebc06..b39e4b8b4 100644 --- a/src/net/torvald/terrarum/AppLoader.java +++ b/src/net/torvald/terrarum/AppLoader.java @@ -24,6 +24,8 @@ import net.torvald.terrarum.utils.JsonFetcher; import net.torvald.terrarum.utils.JsonWriter; import net.torvald.terrarumsansbitmap.gdx.GameFontBase; import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack; +import org.lwjgl.input.Controller; +import org.lwjgl.input.Controllers; import java.io.File; import java.io.IOException; @@ -160,6 +162,10 @@ public class AppLoader implements ApplicationListener { public static GameFontBase fontGame; public static TinyAlphNum fontSmallNumbers; + /** A gamepad. Multiple gamepads may controll this single virtualised gamepad. */ + public static org.lwjgl.input.Controller gamepad = null; + public static float gamepadDeadzone = 0.1f; + /** * For the events depends on rendering frame (e.g. flicker on post-hit invincibility) */ @@ -244,14 +250,17 @@ public class AppLoader implements ApplicationListener { @Override public void create() { + // set basis of draw logoBatch = new SpriteBatch(); camera = new OrthographicCamera(((float) appConfig.width), ((float) appConfig.height)); initViewPort(appConfig.width, appConfig.height); + // logo here :p logo = new TextureRegion(new Texture(Gdx.files.internal("assets/graphics/logo_placeholder.tga"))); logo.flip(false, true); + // set GL graphics constants shaderBayerSkyboxFill = loadShader("assets/4096.vert", "assets/4096_bayer_skyboxfill.frag"); shaderHicolour = loadShader("assets/4096.vert", "assets/hicolour.frag"); shaderColLUT = loadShader("assets/4096.vert", "assets/passthru.frag"); @@ -263,6 +272,22 @@ public class AppLoader implements ApplicationListener { VertexAttribute.TexCoords(0) ); updateFullscreenQuad(appConfig.width, appConfig.height); + + // enlist suitable gamepads + try { + Controllers.create(); + + printdbg(this, "Available gamepads: " + Controllers.getControllerCount()); + for (int x = 0; x < Controllers.getControllerCount(); x++) { + Controller gamepad = Controllers.getController(x); + printdbg(this, String.format("Gamepad #%d: %s", x + 1, gamepad.getName())); + } + } + catch (Throwable e) { + printdbg(this, "Exception occured while creating controllers -- there will be no gamepads available."); + printdbg(this, e); + } + } /** @@ -407,7 +432,7 @@ public class AppLoader implements ApplicationListener { } IngameRenderer.INSTANCE.dispose(); - + if (Controllers.isCreated()) Controllers.destroy(); // delete temp files new File("./tmp_wenquanyi.tga").delete(); // FIXME this is pretty much ad-hoc @@ -440,6 +465,9 @@ public class AppLoader implements ApplicationListener { printdbg(this, "Screen transisiton complete: " + this.screen.getClass().getCanonicalName()); } + /** + * Init stuffs which needs GL context + */ private void postInit() { textureWhiteSquare = new Texture(Gdx.files.internal("assets/graphics/ortho_line_tex_2px.tga")); textureWhiteSquare.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest); diff --git a/src/net/torvald/terrarum/DefaultConfig.kt b/src/net/torvald/terrarum/DefaultConfig.kt index 7ac66f495..ec094afa0 100644 --- a/src/net/torvald/terrarum/DefaultConfig.kt +++ b/src/net/torvald/terrarum/DefaultConfig.kt @@ -28,22 +28,22 @@ object DefaultConfig { // control-gamepad - jsonObject.addProperty("joypadkeyn", 4) - jsonObject.addProperty("joypadkeyw", 1) - jsonObject.addProperty("joypadkeys", 2) - jsonObject.addProperty("joypadkeye", 3) // logitech indices + jsonObject.addProperty("gamepadkeyn", 4) + jsonObject.addProperty("gamepadkeyw", 1) + jsonObject.addProperty("gamepadkeys", 2) + jsonObject.addProperty("gamepadkeye", 3) // logitech indices - jsonObject.addProperty("joypadlup", 4) - jsonObject.addProperty("joypadrup", 5) - jsonObject.addProperty("joypadldown", 6) - jsonObject.addProperty("joypadrdown", 7) // logitech indices + jsonObject.addProperty("gamepadlup", 4) + jsonObject.addProperty("gamepadrup", 5) + jsonObject.addProperty("gamepadldown", 6) + jsonObject.addProperty("gamepadrdown", 7) // logitech indices - jsonObject.addProperty("joypadlstickx", 0) - jsonObject.addProperty("joypadlsticky", 1) - jsonObject.addProperty("joypadrstickx", 2) - jsonObject.addProperty("joypadrsticky", 3) // 0-1-2-3 but sometimes 3-2-1-0 ?! what the actual fuck? + jsonObject.addProperty("gamepadlstickx", 0) + jsonObject.addProperty("gamepadlsticky", 1) + jsonObject.addProperty("gamepadrstickx", 2) + jsonObject.addProperty("gamepadrsticky", 3) // 0-1-2-3 but sometimes 3-2-1-0 ?! what the actual fuck? - jsonObject.addProperty("joypadlabelstyle", "msxb360") // "nwii", "logitech", "sonyps", "msxb360", "generic" + jsonObject.addProperty("gamepadlabelstyle", "msxb360") // "nwii", "logitech", "sonyps", "msxb360", "generic" diff --git a/src/net/torvald/terrarum/Terrarum.kt b/src/net/torvald/terrarum/Terrarum.kt index f9814ac2c..d033ce2de 100644 --- a/src/net/torvald/terrarum/Terrarum.kt +++ b/src/net/torvald/terrarum/Terrarum.kt @@ -124,20 +124,20 @@ object Terrarum : Screen { val fontGame: GameFontBase = AppLoader.fontGame val fontSmallNumbers: TinyAlphNum = AppLoader.fontSmallNumbers - var joypadLabelStart: Char = 0xE000.toChar() // lateinit - var joypadLableSelect: Char = 0xE000.toChar() // lateinit - var joypadLabelNinA: Char = 0xE000.toChar() // lateinit TODO - var joypadLabelNinB: Char = 0xE000.toChar() // lateinit TODO - var joypadLabelNinX: Char = 0xE000.toChar() // lateinit TODO - var joypadLabelNinY: Char = 0xE000.toChar() // lateinit TODO - var joypadLabelNinL: Char = 0xE000.toChar() // lateinit TODO - var joypadLabelNinR: Char = 0xE000.toChar() // lateinit TODO - var joypadLabelNinZL: Char = 0xE000.toChar() // lateinit TODO - var joypadLabelNinZR: Char = 0xE000.toChar() // lateinit TODO - val joypadLabelLEFT = 0xE068.toChar() - val joypadLabelDOWN = 0xE069.toChar() - val joypadLabelUP = 0xE06A.toChar() - val joypadLabelRIGHT = 0xE06B.toChar() + var gamepadLabelStart: Char = 0xE000.toChar() // lateinit + var gamepadLableSelect: Char = 0xE000.toChar() // lateinit + var gamepadLabelNinA: Char = 0xE000.toChar() // lateinit TODO + var gamepadLabelNinB: Char = 0xE000.toChar() // lateinit TODO + var gamepadLabelNinX: Char = 0xE000.toChar() // lateinit TODO + var gamepadLabelNinY: Char = 0xE000.toChar() // lateinit TODO + var gamepadLabelNinL: Char = 0xE000.toChar() // lateinit TODO + var gamepadLabelNinR: Char = 0xE000.toChar() // lateinit TODO + var gamepadLabelNinZL: Char = 0xE000.toChar() // lateinit TODO + var gamepadLabelNinZR: Char = 0xE000.toChar() // lateinit TODO + val gamepadLabelLEFT = 0xE068.toChar() + val gamepadLabelDOWN = 0xE069.toChar() + val gamepadLabelUP = 0xE06A.toChar() + val gamepadLabelRIGHT = 0xE06B.toChar() // 0x0 - 0xF: Game-related // 0x10 - 0x1F: Config @@ -160,10 +160,6 @@ object Terrarum : Screen { val STATE_ID_TOOL_NOISEGEN = 0x200 val STATE_ID_TOOL_RUMBLE_DIAGNOSIS = 0x201 - var controller: org.lwjgl.input.Controller? = null - private set - val CONTROLLER_DEADZONE = 0.1f - /** Available CPU threads */ val THREADS = Runtime.getRuntime().availableProcessors() + 1 @@ -223,12 +219,12 @@ object Terrarum : Screen { println("vendor = $processorVendor") - joypadLabelStart = when (getConfigString("joypadlabelstyle")) { + gamepadLabelStart = when (getConfigString("gamepadlabelstyle")) { "nwii" -> 0xE04B.toChar() // + mark "logitech" -> 0xE05A.toChar() // number 10 else -> 0xE042.toChar() // |> mark (sonyps, msxb360, generic) } - joypadLableSelect = when (getConfigString("joypadlabelstyle")) { + gamepadLableSelect = when (getConfigString("gamepadlabelstyle")) { "nwii" -> 0xE04D.toChar() // - mark "logitech" -> 0xE059.toChar() // number 9 "sonyps" -> 0xE043.toChar() // solid rectangle diff --git a/src/net/torvald/terrarum/blockproperties/BlockCodex.kt b/src/net/torvald/terrarum/blockproperties/BlockCodex.kt index 24f07f7ac..0306c466f 100644 --- a/src/net/torvald/terrarum/blockproperties/BlockCodex.kt +++ b/src/net/torvald/terrarum/blockproperties/BlockCodex.kt @@ -1,6 +1,8 @@ package net.torvald.terrarum.blockproperties import net.torvald.terrarum.AppLoader +import net.torvald.terrarum.gameworld.FluidType +import net.torvald.terrarum.gameworld.GameWorld import net.torvald.terrarum.gameworld.MapLayer import net.torvald.terrarum.gameworld.PairedMapLayer import net.torvald.terrarum.utils.CSVFetcher @@ -72,6 +74,19 @@ object BlockCodex { } } + operator fun get(fluidType: FluidType?): BlockProp { + if (fluidType == null || fluidType.value == 0) { + return blockProps[Block.AIR] + } + + try { + return blockProps[fluidType.abs() + GameWorld.TILES_SUPPORTED - 1] + } + catch (e: NullPointerException) { + throw NullPointerException("Blockprop with raw id $fluidType does not exist.") + } + } + fun getOrNull(rawIndex: Int?): BlockProp? { if (rawIndex == null || rawIndex == Block.NULL) { return null diff --git a/src/net/torvald/terrarum/itemproperties/GameItem.kt b/src/net/torvald/terrarum/itemproperties/GameItem.kt index e70c96e7f..0f21d57a8 100644 --- a/src/net/torvald/terrarum/itemproperties/GameItem.kt +++ b/src/net/torvald/terrarum/itemproperties/GameItem.kt @@ -210,13 +210,13 @@ abstract class GameItem : Comparable, Cloneable { // you can add alias to address something like LEGGINGS, BREASTPLATE, RINGS, NECKLACES, etc. @JvmStatic val BODY_ARMOUR = 0 - @JvmStatic val BODY_BACKPACK = 1 // wings, jetpacks, etc. + @JvmStatic val BODY_FOOTWEAR = 1 // wings, jetpacks, etc. @JvmStatic val HEADGEAR = 2 - @JvmStatic val FOOTWEAR = 3 + @JvmStatic val HAND_GAUNTLET = 3 @JvmStatic val HAND_GRIP = 4 - @JvmStatic val HAND_GAUNTLET = 5 + @JvmStatic val TOOL_HOOKSHOT = 5 @JvmStatic val BODY_BUFF1 = 6 @JvmStatic val BODY_BUFF2 = 8 diff --git a/src/net/torvald/terrarum/langpack/Lang.kt b/src/net/torvald/terrarum/langpack/Lang.kt index 038a93007..60d6790a7 100644 --- a/src/net/torvald/terrarum/langpack/Lang.kt +++ b/src/net/torvald/terrarum/langpack/Lang.kt @@ -118,7 +118,7 @@ object Lang { // special treatment if (key.startsWith("MENU_LABEL_PRESS_START_SYMBOL")) - return ret2.replace('>', Terrarum.joypadLabelStart).capitalize() + return ret2.replace('>', Terrarum.gamepadLabelStart).capitalize() return if (key.getEndTag().contains("bg")) "${AppLoader.fontGame.charsetOverrideBulgarian}${ret2.capitalize()}${AppLoader.fontGame.charsetOverrideDefault}" diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt index ce72f952b..a6dea7ab8 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt @@ -225,20 +225,20 @@ open class ActorHumanoid( isRightDown = Gdx.input.isKeyPressed(AppLoader.getConfigInt("keyright")) isJumpDown = Gdx.input.isKeyPressed(AppLoader.getConfigInt("keyjump")) - if (Terrarum.controller != null) { - axisX = Terrarum.controller!!.getAxisValue(AppLoader.getConfigInt("joypadlstickx")) - axisY = Terrarum.controller!!.getAxisValue(AppLoader.getConfigInt("joypadlsticky")) - axisRX = Terrarum.controller!!.getAxisValue(AppLoader.getConfigInt("joypadrstickx")) - axisRY = Terrarum.controller!!.getAxisValue(AppLoader.getConfigInt("joypadrsticky")) + if (AppLoader.gamepad != null) { + axisX = AppLoader.gamepad!!.getAxisValue(AppLoader.getConfigInt("gamepadlstickx")) + axisY = AppLoader.gamepad!!.getAxisValue(AppLoader.getConfigInt("gamepadlsticky")) + axisRX = AppLoader.gamepad!!.getAxisValue(AppLoader.getConfigInt("gamepadrstickx")) + axisRY = AppLoader.gamepad!!.getAxisValue(AppLoader.getConfigInt("gamepadrsticky")) // deadzonning - if (Math.abs(axisX) < Terrarum.CONTROLLER_DEADZONE) axisX = 0f - if (Math.abs(axisY) < Terrarum.CONTROLLER_DEADZONE) axisY = 0f - if (Math.abs(axisRX) < Terrarum.CONTROLLER_DEADZONE) axisRX = 0f - if (Math.abs(axisRY) < Terrarum.CONTROLLER_DEADZONE) axisRY = 0f + if (Math.abs(axisX) < AppLoader.gamepadDeadzone) axisX = 0f + if (Math.abs(axisY) < AppLoader.gamepadDeadzone) axisY = 0f + if (Math.abs(axisRX) < AppLoader.gamepadDeadzone) axisRX = 0f + if (Math.abs(axisRY) < AppLoader.gamepadDeadzone) axisRY = 0f isJumpDown = Gdx.input.isKeyPressed(AppLoader.getConfigInt("keyjump")) || - Terrarum.controller!!.isButtonPressed(GAMEPAD_JUMP) + AppLoader.gamepad!!.isButtonPressed(GAMEPAD_JUMP) } } else { @@ -250,7 +250,7 @@ open class ActorHumanoid( } private inline val hasController: Boolean - get() = if (isGamer) Terrarum.controller != null + get() = if (isGamer) AppLoader.gamepad != null else true private fun processInput(delta: Float) { @@ -384,7 +384,7 @@ open class ActorHumanoid( * * Be warned. * - * @param left (even if the game is joypad controlled, you must give valid value) + * @param left (even if the game is gamepad controlled, you must give valid value) * @param absAxisVal (set AXIS_KEYBOARD if keyboard controlled) * @author minjaesong */ @@ -424,7 +424,7 @@ open class ActorHumanoid( /** - * @param up (even if the game is joypad controlled, you must give valid value) + * @param up (even if the game is gamepad controlled, you must give valid value) * * * @param absAxisVal (set AXIS_KEYBOARD if keyboard controlled) */ diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventory.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventory.kt index 319243571..a55c51b79 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventory.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventory.kt @@ -142,9 +142,9 @@ package net.torvald.terrarum.modulebasegame.ui "${0xe011.toChar()}..${0xe010.toChar()} ${Lang["GAME_INVENTORY_REGISTER"]}$SP" + "${0xe034.toChar()} ${Lang["GAME_INVENTORY_DROP"]}" else - "$joypadLabelNinY ${Lang["GAME_INVENTORY_USE"]}$SP" + + "$gamepadLabelNinY ${Lang["GAME_INVENTORY_USE"]}$SP" + "${0xe011.toChar()}${0xe010.toChar()} ${Lang["GAME_INVENTORY_REGISTER"]}$SP" + - "$joypadLabelNinA ${Lang["GAME_INVENTORY_DROP"]}" + "$gamepadLabelNinA ${Lang["GAME_INVENTORY_DROP"]}" val listControlClose: String get() = if (Terrarum.environment == RunningEnvironment.PC) "${0xe037.toChar()} ${Lang["GAME_ACTION_CLOSE"]}" diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt index 818db81b2..dbf57004b 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt @@ -51,9 +51,9 @@ class UIInventoryFull( "${0xe034.toChar()} ${Lang["GAME_INVENTORY_DROP"]}" else "${0xe069.toChar()} ${Lang["GAME_ACTION_CLOSE"]}$SP" + - "${Terrarum.joypadLabelNinY} ${Lang["GAME_INVENTORY_USE"]}$SP" + + "${Terrarum.gamepadLabelNinY} ${Lang["GAME_INVENTORY_USE"]}$SP" + "${0xe011.toChar()}${0xe010.toChar()} ${Lang["GAME_INVENTORY_REGISTER"]}$SP" + - "${Terrarum.joypadLabelNinA} ${Lang["GAME_INVENTORY_DROP"]}" + "${Terrarum.gamepadLabelNinA} ${Lang["GAME_INVENTORY_DROP"]}" val controlHelpHeight = Terrarum.fontGame.lineHeight private var encumbrancePerc = 0f diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConYaml.kt b/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConYaml.kt index e7eae2a2d..cd101bbed 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConYaml.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConYaml.kt @@ -1,9 +1,7 @@ package net.torvald.terrarum.modulebasegame.ui import net.torvald.terrarum.AppLoader -import net.torvald.terrarum.QNDTreeNode import net.torvald.terrarum.Yaml -import java.util.* @@ -24,6 +22,9 @@ object UITitleRemoConYaml { - MENU_OPTIONS - MENU_OPTIONS_GRAPHICS - MENU_OPTIONS_CONTROLS + - MENU_CONTROLS_KEYBOARD + - MENU_CONTROLS_GAMEPAD + - MENU_LABEL_RETURN - MENU_OPTIONS_SOUND - MENU_LABEL_RETURN - MENU_MODULES : net.torvald.terrarum.modulebasegame.ui.UITitleModules diff --git a/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt b/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt index 19b5658df..0d0d81bff 100644 --- a/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt +++ b/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt @@ -182,10 +182,10 @@ class BasicDebugInfoWindow : UICanvas() { batch.color = Color.WHITE - if (Terrarum.controller != null) { + if (AppLoader.gamepad != null) { drawGamepadAxis(batch, - Terrarum.controller!!.getAxisValue(3), - Terrarum.controller!!.getAxisValue(2), + AppLoader.gamepad!!.getAxisValue(3), + AppLoader.gamepad!!.getAxisValue(2), Terrarum.WIDTH - 135, 40 ) @@ -304,8 +304,8 @@ class BasicDebugInfoWindow : UICanvas() { val pointDX = axisX * halfW val pointDY = axisY * halfH - val padName = if (Terrarum.controller!!.name.isEmpty()) "Gamepad" - else Terrarum.controller!!.name + val padName = if (AppLoader.gamepad!!.name.isEmpty()) "Gamepad" + else AppLoader.gamepad!!.name blendNormal(batch) diff --git a/src/net/torvald/terrarum/worlddrawer/LightmapRendererNew.kt b/src/net/torvald/terrarum/worlddrawer/LightmapRendererNew.kt index 14ae89ede..1ec124eca 100644 --- a/src/net/torvald/terrarum/worlddrawer/LightmapRendererNew.kt +++ b/src/net/torvald/terrarum/worlddrawer/LightmapRendererNew.kt @@ -11,6 +11,7 @@ import net.torvald.terrarum.* import net.torvald.terrarum.AppLoader.printdbg import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.blockproperties.BlockCodex +import net.torvald.terrarum.blockproperties.Fluid import net.torvald.terrarum.concurrent.ParallelUtils.sliceEvenly import net.torvald.terrarum.concurrent.ThreadParallel import net.torvald.terrarum.gameactors.ActorWBMovable @@ -408,6 +409,7 @@ object LightmapRenderer { //private val ambientAccumulator = Color(0f,0f,0f,0f) private val lightLevelThis = Color(0f,0f,0f,0f) private var thisTerrain = 0 + private var thisFluid = Fluid.NULL private var thisWall = 0 private val thisTileLuminosity = Color(0f,0f,0f,0f) private val thisTileOpacity = Color(0f,0f,0f,0f) @@ -428,9 +430,13 @@ object LightmapRenderer { // this six fetch tasks take 2 ms ?! lightLevelThis.set(colourNull) thisTerrain = world.getTileFromTerrain(x, y) ?: Block.STONE + thisFluid = world.getFluid(x, y).type thisWall = world.getTileFromWall(x, y) ?: Block.STONE - thisTileLuminosity.set(BlockCodex[thisTerrain].luminosity) // already been div by four - thisTileOpacity.set(BlockCodex[thisTerrain].opacity) // already been div by four + thisTileLuminosity.set(BlockCodex[thisTerrain].luminosity maxBlend BlockCodex[thisFluid].luminosity) // already been div by four + + // TODO thisTileOpacity: take fluid amount into account + + thisTileOpacity.set(BlockCodex[thisTerrain].opacity maxBlend BlockCodex[thisFluid].opacity) // already been div by four thisTileOpacity2.set(thisTileOpacity); thisTileOpacity2.mul(1.41421356f) sunLight.set(world.globalLight); sunLight.mul(DIV_FLOAT) diff --git a/work_files/UI/inventory_equip_icons.psd b/work_files/UI/inventory_equip_icons.psd index 4f84a1eed..5c7abbda5 100644 --- a/work_files/UI/inventory_equip_icons.psd +++ b/work_files/UI/inventory_equip_icons.psd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:895c0b10fe5756f4d02f526832ba0861dc62c9c7680a04c9bd40936e2677fa7c -size 3953551 +oid sha256:b3ffda4dfa461bc046d1779f08084369c6c2a97a768900d51fde9588fdaf2638 +size 3951913 diff --git a/work_files/UI/options-controls.psd b/work_files/UI/options-controls.psd index 155120e3d..d0370e27d 100644 --- a/work_files/UI/options-controls.psd +++ b/work_files/UI/options-controls.psd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:97bd33ff7d90c774b686dd5cca5cd3887212ae46276b793b01da6421df4a9e08 -size 14045084 +oid sha256:9df1b27814cb9541bd7580e2d2a7acea151097732c402e799696f102c5173038 +size 14062352 diff --git a/work_files/graphics/fonts/puae000-e0ff.psd b/work_files/graphics/fonts/puae000-e0ff.psd index e5dcb65c2..e376379b4 100644 --- a/work_files/graphics/fonts/puae000-e0ff.psd +++ b/work_files/graphics/fonts/puae000-e0ff.psd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:849fb23aa243ccbfc711b0344b042e9d9ac980c7a0c0be4a182902196c4b2aed -size 184676 +oid sha256:f6b85a5f4606fca51e23b65abe48e541b1390263f284ab687419dad6522deed3 +size 184648