From 720df532aaf34b11f5ea0b855d939ad4da2433d1 Mon Sep 17 00:00:00 2001 From: Song Minjae Date: Thu, 25 Aug 2016 21:46:01 +0900 Subject: [PATCH] more pictogrammes Former-commit-id: 670df70bbed466e56034dbdd33d7a1da31cd88d7 Former-commit-id: 2b106753155be6080d4651acca1981f10d614421 --- assets/graphics/gui/health_take_a_break.png | Bin 579 -> 18677 bytes assets/graphics/gui/monitor_bad.png | Bin 0 -> 21913 bytes assets/graphics/gui/monitor_good.png | Bin 0 -> 21825 bytes assets/graphics/gui/monitor_good_alt_maru.png | Bin 0 -> 19393 bytes assets/graphics/gui/quickbar/.gitattributes | 1 + .../graphics/sprites/test_player_2_testa.png | Bin 0 -> 19283 bytes assets/graphics/terrain/.gitattributes | 1 + assets/graphics/terrain/terrain.png | Bin 361326 -> 361730 bytes assets/locales/de/Polyglot-100_de.json | 2 +- assets/raw/Creature_raw_doc.md | 4 +- assets/raw/creatures/CreatureHuman.json | 2 +- src/net/torvald/RasterWriter.kt | 2 - src/net/torvald/serialise/ReadGameMapData.kt | 38 +++ src/net/torvald/serialise/WriteMeta.kt | 4 +- src/net/torvald/terrarum/StateFontTester.kt | 2 +- src/net/torvald/terrarum/StateInGame.kt | 111 ++++--- src/net/torvald/terrarum/StateMonitorCheck.kt | 49 ++- src/net/torvald/terrarum/StateSplash.kt | 40 +-- src/net/torvald/terrarum/Terrarum.kt | 32 +- .../torvald/terrarum/console/CommandDict.kt | 2 +- ...ightLevel.kt => SetGlobalLightOverride.kt} | 14 +- src/net/torvald/terrarum/gameactors/Actor.kt | 2 +- .../terrarum/gameactors/ActorWithBody.kt | 2 +- .../gameactors/CreatureRawInjector.kt | 22 +- .../torvald/terrarum/gameactors/PBCynthia.kt | 2 + .../torvald/terrarum/gameactors/PBSigrid.kt | 1 - src/net/torvald/terrarum/gameactors/Player.kt | 12 +- .../torvald/terrarum/gamemap/FluidCodex.kt | 9 + src/net/torvald/terrarum/gamemap/MapLayer.kt | 5 +- .../terrarum/gamemap/WorldSimulator.kt | 288 ++++++++++++------ .../torvald/terrarum/mapdrawer/MapCamera.kt | 7 +- .../terrarum/mapgenerator/NoiseFilterCubic.kt | 10 +- .../mapgenerator/NoiseFilterMinusQuadratic.kt | 10 +- .../mapgenerator/NoiseFilterQuadratic.kt | 10 +- .../terrarum/mapgenerator/NoiseFilterSqrt.kt | 6 +- .../mapgenerator/ThreadProcessNoiseLayers.kt | 20 +- .../{MapGenerator.kt => WorldGenerator.kt} | 4 +- .../terrarum/tileproperties/tileprop.csv | 10 +- .../terrarum/ui/BasicDebugInfoWindow.kt | 2 +- src/net/torvald/terrarum/ui/DrawUtil.kt | 5 + .../torvald/terrarum/ui/GamepadControlled.kt | 1 - .../torvald/terrarum/ui/ItemImageGallery.kt | 80 +++++ .../terrarum/ui/ItemSlotImageBuilder.kt | 4 +- .../torvald/terrarum/ui/KeyboardControlled.kt | 1 - .../torvald/terrarum/ui/MouseControlled.kt | 4 - src/net/torvald/terrarum/ui/UIHandler.kt | 4 +- src/net/torvald/terrarum/ui/UIItem.kt | 25 +- src/net/torvald/terrarum/ui/UIPieMenu.kt | 2 + src/net/torvald/terrarum/ui/UIQuickBar.kt | 2 +- work_files/health_and_safety_2.tiff | Bin 0 -> 29068 bytes 50 files changed, 589 insertions(+), 265 deletions(-) create mode 100644 assets/graphics/gui/monitor_bad.png create mode 100644 assets/graphics/gui/monitor_good.png create mode 100644 assets/graphics/gui/monitor_good_alt_maru.png create mode 100644 assets/graphics/gui/quickbar/.gitattributes create mode 100644 assets/graphics/sprites/test_player_2_testa.png create mode 100644 assets/graphics/terrain/.gitattributes create mode 100644 src/net/torvald/serialise/ReadGameMapData.kt rename src/net/torvald/terrarum/console/{SetGlobalLightLevel.kt => SetGlobalLightOverride.kt} (78%) create mode 100644 src/net/torvald/terrarum/gamemap/FluidCodex.kt rename src/net/torvald/terrarum/mapgenerator/{MapGenerator.kt => WorldGenerator.kt} (99%) create mode 100644 src/net/torvald/terrarum/ui/ItemImageGallery.kt create mode 100644 work_files/health_and_safety_2.tiff diff --git a/assets/graphics/gui/health_take_a_break.png b/assets/graphics/gui/health_take_a_break.png index c72e02eaa6d265c061627541eead99f66056f83c..b795eab8efa5002c7ae044790aa5947e07621045 100644 GIT binary patch literal 18677 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 JK*!Dgf!`W?=g?y9B$H0 zk-+dhWwM|Xku^s)yBrSr7prFYvC;@!Qnd9S5tz&W4nbB!LcV_%ksQ@!do3ap)zKqD zNJC|b)PTq&Q5i`O2%6NcM5u{dLI`9-RmlPBmT(}|5(eZgkqm{Ys*ESw5=E^gfcLT` zvMy#=B1tPxDghVY5)ebKBfQK;1ihX}A(81oHK9Osi+)0^o+yPIsU;W_Nr7~h?->6` zST5w0&Ny%W&clCc_)P&%j%$Lzc^G9nVhI)! zo*a|-QAs`O8|AF8Z zG4XK0wl~;)UK9Qzv77FWh(pCjXsC|bPoSIde!}_*?I%!8(C4$65K;@zb|P_3n~BUh zYbT5)&+P=C3GXGycETZ^l*yV2SqL^0%Zqdqo^MGcE@?aAiPS#A#4>Uxq3Om%COtv4 z=*@&@LTE2Ngoyzexr5Mo>bAseNi&faqIs#}m?Qp{_zA&(o|CmOpppOp002ovPDHLk FV1j0a{bB$B diff --git a/assets/graphics/gui/monitor_bad.png b/assets/graphics/gui/monitor_bad.png new file mode 100644 index 0000000000000000000000000000000000000000..661fb77d6f5533bf8a5203bbf59da316c98bbba7 GIT binary patch literal 21913 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�TTKicN1W?g;g-OTsMI5i+x5nA*bH{g>0~tG8WWMNS)Q_oZof$ERfn zK6ti%ifewHSst^x!bHkvdXq|8iK!#A?mpipa&fuw8ka5iFD~i0Z0HcUIAd)~hq__% zgOyq*+D`dJEQarHRVgxqcNs-2Hc4&=3cOQiy?pX<)(Xv|XWO*LFPfh8CdtuaRq9gn zq_;qU2eYHxy-6i9fs*HK*Q`U-{y zW=7&j|Ft=9#!CSDOSJxU$V3(6NaXn$uuDeUFf}J4CalUCNA(%r;I%Lp0}I$XPHYJK zdF$Tv^%3zuQ!~s}ga;`PrrRI5lC8}ZQ$Urz1)vU#(6IwddfxyCKxHGKs^0rH&;$a} e)2{nP0C2}{JNx=mLaKDX&2gURblPFr`u_pg*_xvO literal 0 HcmV?d00001 diff --git a/assets/graphics/gui/monitor_good_alt_maru.png b/assets/graphics/gui/monitor_good_alt_maru.png new file mode 100644 index 0000000000000000000000000000000000000000..440187b1c0510fe8ae3c20ebbffd34b3ffc0fa82 GIT binary patch literal 19393 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 Jzi7*m{{e6Is6zk% delta 102530 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

xK&S6>y(_DMrappT%NPsNis7tKec>O7cfL! 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 b.size) { + throw IndexOutOfBoundsException() + } else if (len == 0) { + return 0 + } + + var c = read() + if (c == -1) { + return -1 + } + b[0] = c.toByte() + + var i = 1 + try { + while (i < len) { + c = read() + if (c == -1) { + break + } + b[i] = c.toByte() + i++ + } + } catch (ee: IOException) { + } + + return i + } +} \ No newline at end of file diff --git a/src/net/torvald/serialise/WriteMeta.kt b/src/net/torvald/serialise/WriteMeta.kt index 686587af5..a02356485 100644 --- a/src/net/torvald/serialise/WriteMeta.kt +++ b/src/net/torvald/serialise/WriteMeta.kt @@ -1,6 +1,6 @@ package net.torvald.serialise -import net.torvald.terrarum.mapgenerator.MapGenerator +import net.torvald.terrarum.mapgenerator.WorldGenerator import net.torvald.terrarum.mapgenerator.RoguelikeRandomiser import net.torvald.terrarum.Terrarum import net.torvald.terrarum.itemproperties.ItemPropCodex @@ -29,7 +29,7 @@ object WriteMeta { val BYTE_NULL: Byte = 0 - val terraseed: Long = MapGenerator.SEED + val terraseed: Long = WorldGenerator.SEED val rogueseed: Long = RoguelikeRandomiser.seed /** diff --git a/src/net/torvald/terrarum/StateFontTester.kt b/src/net/torvald/terrarum/StateFontTester.kt index 8be5f5ff7..91a3b2f07 100644 --- a/src/net/torvald/terrarum/StateFontTester.kt +++ b/src/net/torvald/terrarum/StateFontTester.kt @@ -48,5 +48,5 @@ class StateFontTester : BasicGameState() { } } - override fun getID(): Int = Terrarum.SCENE_ID_TEST_FONT + override fun getID(): Int = Terrarum.STATE_ID_TEST_FONT } \ No newline at end of file diff --git a/src/net/torvald/terrarum/StateInGame.kt b/src/net/torvald/terrarum/StateInGame.kt index c51894eb8..9306995a3 100644 --- a/src/net/torvald/terrarum/StateInGame.kt +++ b/src/net/torvald/terrarum/StateInGame.kt @@ -5,6 +5,8 @@ import net.torvald.terrarum.audio.AudioResourceLibrary import net.torvald.terrarum.concurrent.ThreadPool import net.torvald.terrarum.gameactors.* import net.torvald.terrarum.console.Authenticator +import net.torvald.terrarum.console.CommandDict +import net.torvald.terrarum.console.SetGlobalLightOverride import net.torvald.terrarum.gameactors.physicssolver.CollisionSolver import net.torvald.terrarum.gamecontroller.GameController import net.torvald.terrarum.gamecontroller.Key @@ -16,7 +18,7 @@ import net.torvald.terrarum.gamemap.WorldTime import net.torvald.terrarum.mapdrawer.LightmapRenderer import net.torvald.terrarum.mapdrawer.MapCamera import net.torvald.terrarum.mapdrawer.MapDrawer -import net.torvald.terrarum.mapgenerator.MapGenerator +import net.torvald.terrarum.mapgenerator.WorldGenerator import net.torvald.terrarum.mapgenerator.RoguelikeRandomiser import net.torvald.terrarum.tileproperties.TilePropCodex import net.torvald.terrarum.tilestats.TileStats @@ -94,6 +96,11 @@ constructor() : BasicGameState() { @Throws(SlickException::class) override fun init(gameContainer: GameContainer, stateBasedGame: StateBasedGame) { + // state init code. Executed before the game goes into any "state" in states in StateBasedGame.java + } + + 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") @@ -103,10 +110,10 @@ constructor() : BasicGameState() { world = GameWorld(8192, 2048) // generate terrain for the map - MapGenerator.attachMap(world) - MapGenerator.SEED = 0x51621D2 + WorldGenerator.attachMap(world) + WorldGenerator.SEED = 0x51621D2 //mapgenerator.setSeed(new HQRNG().nextLong()); - MapGenerator.generateMap() + WorldGenerator.generateMap() RoguelikeRandomiser.seed = 0x540198 @@ -114,8 +121,8 @@ constructor() : BasicGameState() { // add new player and put it to actorContainer - player = PBSigrid.create() - //player = PFCynthia.create() + //player = PBSigrid.create() + player = PBCynthia.create() //player.setNoClip(true); addActor(player) @@ -159,16 +166,18 @@ constructor() : BasicGameState() { override fun update(gc: GameContainer, sbg: StateBasedGame, delta: Int) { UPDATE_DELTA = delta - setAppTitle() + /////////////////////////// // world-related updates // /////////////////////////// world.updateWorldTime(delta) WorldSimulator(world, player, delta) WeatherMixer.update(gc, delta) - world.globalLight = globalLightByTime.toInt() + TileStats.update() + if (!(CommandDict["setgl"] as SetGlobalLightOverride).lightOverride) + world.globalLight = globalLightByTime.toInt() /////////////////////////// @@ -178,9 +187,6 @@ constructor() : BasicGameState() { uiContainer.forEach { it.processInput(gc.input) } - TileStats.update() - - //////////////////////////// // camera-related updates // //////////////////////////// @@ -213,6 +219,9 @@ constructor() : BasicGameState() { // app-related updates // ///////////////////////// Terrarum.appgc.setVSync(Terrarum.appgc.fps >= Terrarum.VSYNC_TRIGGER_THRESHOLD) + + // determine if lightmap blending should be done + Terrarum.gameConfig["smoothlighting"] = KeyToggler.isOn(KEY_LIGHTMAP_SMOOTH) } private fun setAppTitle() { @@ -225,34 +234,41 @@ constructor() : BasicGameState() { override fun render(gc: GameContainer, sbg: StateBasedGame, g: Graphics) { setBlendNormal() - // determine if lightmap blending should be done - Terrarum.gameConfig["smoothlighting"] = KeyToggler.isOn(KEY_LIGHTMAP_SMOOTH) - - // set antialias as on - if (!g.isAntiAlias) g.isAntiAlias = true drawSkybox(g) + + // make camara work // // compensate for zoom. UIs have to be treated specially! (see UIHandler) g.translate(-MapCamera.cameraX * screenZoom, -MapCamera.cameraY * screenZoom) + + ///////////////////////////// + // draw map related stuffs // + ///////////////////////////// MapCamera.renderBehind(gc, g) - // draw actors - run { - actorContainer.forEach { actor -> - if (actor is Visible && actor.inScreen() && actor !is Player) { // if visible and within screen - actor.drawBody(gc, g) - } - } - player.drawBody(gc, g) - } + ///////////////// + // draw actors // + ///////////////// + actorContainer.forEach { actor -> + if (actor is Visible && actor.inScreen() && actor !is Player) { // if visible and within screen + actor.drawBody(gc, g) + } + } + player.drawBody(gc, g) + + + ///////////////////////////// + // draw map related stuffs // + ///////////////////////////// LightmapRenderer.renderLightMap() MapCamera.renderFront(gc, g) MapDrawer.render(gc, g) + setBlendMul() MapDrawer.drawEnvOverlay(g) @@ -260,22 +276,27 @@ constructor() : BasicGameState() { LightmapRenderer.draw(g) setBlendNormal() - // draw actor glows - run { - actorContainer.forEach { actor -> - if (actor is Visible && actor.inScreen() && actor !is Player) { // if visible and within screen - actor.drawGlow(gc, g) - } - } - player.drawGlow(gc, g) - } + ////////////////////// + // draw actor glows // + ////////////////////// + actorContainer.forEach { actor -> + if (actor is Visible && actor.inScreen() && actor !is Player) { // if visible and within screen + actor.drawGlow(gc, g) + } + } + player.drawGlow(gc, g) + + + //////////////////////// + // debug informations // + //////////////////////// // draw reference ID if debugWindow is open if (debugWindow.isVisible) { actorContainer.forEachIndexed { i, actor -> if (actor is Visible) { g.color = Color.white - g.font = Terrarum.smallNumbers + g.font = Terrarum.fontSmallNumbers g.drawString( actor.referenceID.toString(), actor.hitbox.posX.toFloat(), @@ -293,14 +314,18 @@ constructor() : BasicGameState() { } } } + // fluidmap debug + if (KeyToggler.isOn(Key.F4)) + WorldSimulator.drawFluidMapDebug(player, g) - // draw UIs - run { - uiContainer.forEach { ui -> ui.render(gc, sbg, g) } - debugWindow.render(gc, sbg, g) - consoleHandler.render(gc, sbg, g) - notifier.render(gc, sbg, g) - } + + ////////////// + // draw UIs // + ////////////// + uiContainer.forEach { ui -> ui.render(gc, sbg, g) } + debugWindow.render(gc, sbg, g) + consoleHandler.render(gc, sbg, g) + notifier.render(gc, sbg, g) } override fun keyPressed(key: Int, c: Char) { @@ -369,7 +394,7 @@ constructor() : BasicGameState() { uiContainer.forEach { it.controllerButtonReleased(controller, button) } // for GamepadControlled UIcanvases } - override fun getID(): Int = Terrarum.SCENE_ID_GAME + override fun getID(): Int = Terrarum.STATE_ID_GAME private fun drawSkybox(g: Graphics) = WeatherMixer.render(g) diff --git a/src/net/torvald/terrarum/StateMonitorCheck.kt b/src/net/torvald/terrarum/StateMonitorCheck.kt index 18055aff4..3f6901bfc 100644 --- a/src/net/torvald/terrarum/StateMonitorCheck.kt +++ b/src/net/torvald/terrarum/StateMonitorCheck.kt @@ -1,16 +1,11 @@ package net.torvald.terrarum import net.torvald.terrarum.langpack.Lang -import net.torvald.terrarum.ui.Typography -import net.torvald.terrarum.ui.UICanvas -import net.torvald.terrarum.ui.UIHandler -import net.torvald.terrarum.ui.KeyboardControlled -import org.newdawn.slick.Color -import org.newdawn.slick.GameContainer -import org.newdawn.slick.Graphics -import org.newdawn.slick.Input +import net.torvald.terrarum.ui.* +import org.newdawn.slick.* import org.newdawn.slick.state.BasicGameState import org.newdawn.slick.state.StateBasedGame +import java.util.* /** * Created by minjaesong on 16-07-06. @@ -35,7 +30,7 @@ class StateMonitorCheck : BasicGameState() { //uiMonitorCheck.setAsClose() } - override fun getID(): Int = Terrarum.SCENE_ID_CONFIG_CALIBRATE + override fun getID(): Int = Terrarum.STATE_ID_CONFIG_CALIBRATE class MonitorCheckUI : UICanvas { override var width = Terrarum.WIDTH @@ -44,6 +39,8 @@ class StateMonitorCheck : BasicGameState() { override var handler: UIHandler? = null + private val backgroundCol = Color(0x404040) + private val colourLUT = arrayOf( 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78, 0x80, @@ -51,13 +48,29 @@ class StateMonitorCheck : BasicGameState() { 0xC8, 0xD0, 0xD8, 0xE0, 0xE8, 0xF0, 0xF8, 0xFF ) + val pictograms = ArrayList() + lateinit var imageGallery: ItemImageGallery + + val instructionY = Terrarum.HEIGHT / 2//Terrarum.HEIGHT * 9 / 16 + val anykeyY = Terrarum.HEIGHT * 15 / 16 + + val maru_alt = Regex("CN|JP|K[RP]|TW") + + init { + if (Terrarum.gameLocale.length >= 4 && Terrarum.gameLocale.contains(maru_alt)) + pictograms.add(Image("./assets/graphics/gui/monitor_good_alt_maru.png")) + else + pictograms.add(Image("./assets/graphics/gui/monitor_good.png")) + pictograms.add(Image("./assets/graphics/gui/monitor_bad.png")) + + imageGallery = ItemImageGallery(0, instructionY, Terrarum.WIDTH, anykeyY - instructionY, pictograms) + } + override fun update(gc: GameContainer, delta: Int) { } override fun render(gc: GameContainer, g: Graphics) { val titleY = Terrarum.HEIGHT * 7 / 16 - val instructionY = Terrarum.HEIGHT * 9 / 16 - val anykeyY = Terrarum.HEIGHT * 15 / 16 val barWidthAll = Terrarum.WIDTH.div(100).times(100) * 9 / 10 val barWidth: Int = barWidthAll / 32 + 1 @@ -77,7 +90,7 @@ class StateMonitorCheck : BasicGameState() { // bar start point indicator if (i == 0) { - g.color = Color(0x404040) + g.color = backgroundCol g.drawLine( barXstart.toFloat(), barYstart - barNumberGap - labelH.toFloat(), barXstart.toFloat(), barYstart - barNumberGap.toFloat() @@ -105,7 +118,7 @@ class StateMonitorCheck : BasicGameState() { } // messages background - g.color = Color(0x404040) + g.color = backgroundCol g.fillRect( 0f, Terrarum.HEIGHT.shr(1).toFloat(), Terrarum.WIDTH.toFloat(), Terrarum.HEIGHT.shr(1).plus(1).toFloat() @@ -119,14 +132,20 @@ class StateMonitorCheck : BasicGameState() { this ) - (1..12).forEach { + // message text + /*(1..12).forEach { Typography.printCentered( g, Lang["MENU_MONITOR_CALI_LABEL_$it"], instructionY + it.minus(2).times(g.font.lineHeight), this ) - } + }*/ + // message pictogram + imageGallery.render(gc, g) + + + // anykey Typography.printCentered( g, Lang["MENU_LABEL_PRESS_ANYKEY_CONTINUE"], anykeyY, diff --git a/src/net/torvald/terrarum/StateSplash.kt b/src/net/torvald/terrarum/StateSplash.kt index a1e57980c..b561dc7ca 100644 --- a/src/net/torvald/terrarum/StateSplash.kt +++ b/src/net/torvald/terrarum/StateSplash.kt @@ -5,6 +5,7 @@ import net.torvald.terrarum.gameactors.roundInt import net.torvald.terrarum.gamecontroller.Key import net.torvald.terrarum.langpack.Lang import net.torvald.terrarum.ui.DrawUtil +import net.torvald.terrarum.ui.ItemImageGallery import net.torvald.terrarum.ui.Typography import org.newdawn.slick.Color import org.newdawn.slick.GameContainer @@ -37,13 +38,16 @@ class StateSplash : BasicGameState() { val backgroundColour = Color(0x303030) - var delta = 0 val deltathre = 500 - val auto_dismiss = 5000 + val auto_dismiss = 6500 var opened = false + var init = false + + lateinit var imageGallery: ItemImageGallery + override fun init(container: GameContainer?, game: StateBasedGame?) { // pre-load lang Lang["MENU_LANGUAGE_THIS"] @@ -53,19 +57,24 @@ class StateSplash : BasicGameState() { fadeSheet = Image(Terrarum.WIDTH, Terrarum.HEIGHT) thisG = fadeSheet.graphics - thisG.font = Terrarum.gameFont + thisG.font = Terrarum.fontGame + + imageBoardHeight = Terrarum.HEIGHT - thisG.font.lineHeight.times(6) + imageBoardOffset = thisG.font.lineHeight.times(3) + + imageGallery = ItemImageGallery(0, imageBoardOffset, Terrarum.WIDTH, imageBoardHeight, pictogramCollection) } override fun update(container: GameContainer, game: StateBasedGame, delta: Int) { - this.delta = delta - // next splash or load next scene - if (anykey_hit && opacity == 0f) { - System.exit(0) + if (anykey_hit && opened) { + game.enterState(Terrarum.STATE_ID_GAME) } // fade-in if (delta < deltathre) { + init = true + if (opacity < 1f && !anykey_hit) { opacity = FastMath.interpolateLinear( fadeTimer.toFloat() / fadeTime, 0f, 1f @@ -85,18 +94,15 @@ class StateSplash : BasicGameState() { // auto dismiss if (opened && fadeTimer >= auto_dismiss) - doAnykeyThingy() + //doAnykeyThingy() fadeTimer += delta + println(fadeTimer) } - override fun getID(): Int = Terrarum.SCENE_ID_SPLASH - - override fun render(container: GameContainer?, game: StateBasedGame?, g: Graphics) { - - imageBoardHeight = Terrarum.HEIGHT - thisG.font.lineHeight.times(6) - imageBoardOffset = thisG.font.lineHeight.times(3) + override fun getID(): Int = Terrarum.STATE_ID_SPLASH + override fun render(container: GameContainer, game: StateBasedGame, g: Graphics) { thisG.color = backgroundColour thisG.fillRect(0f, 0f, fadeSheet.width.toFloat(), fadeSheet.height.toFloat()) @@ -108,9 +114,7 @@ class StateSplash : BasicGameState() { Typography.printCentered(thisG, Lang["MENU_LABEL_PRESS_ANYKEY_CONTINUE"], Terrarum.HEIGHT - thisG.font.lineHeight.times(3)) - pictogramCollection.forEachIndexed { i, image -> - DrawUtil.drawCentered(thisG, image, knowYourPlace(i) + imageBoardOffset) - } + imageGallery.render(container, thisG) g.drawImage(fadeSheet, 0f, 0f, Color(1f, 1f, 1f, opacity)) } @@ -131,7 +135,7 @@ class StateSplash : BasicGameState() { } private fun doAnykeyThingy() { - if (delta < deltathre && !anykey_hit) { + if (!anykey_hit) { anykey_hit = true fadeTimer = 0 } diff --git a/src/net/torvald/terrarum/Terrarum.kt b/src/net/torvald/terrarum/Terrarum.kt index 006b296dd..63f386818 100644 --- a/src/net/torvald/terrarum/Terrarum.kt +++ b/src/net/torvald/terrarum/Terrarum.kt @@ -26,6 +26,10 @@ import java.util.logging.SimpleFormatter class Terrarum @Throws(SlickException::class) constructor(gamename: String) : StateBasedGame(gamename) { + // these properties goes into the GameContainer + + var previousState: Int? = null // to be used with temporary states like StateMonitorCheck + init { gameConfig = GameConfig() @@ -63,8 +67,8 @@ constructor(gamename: String) : StateBasedGame(gamename) { override fun initStatesList(gc: GameContainer) { gc.input.enableKeyRepeat() - gameFont = GameFontWhite() - smallNumbers = TinyAlphNum() + fontGame = GameFontWhite() + fontSmallNumbers = TinyAlphNum() hasController = gc.input.controllerCount > 0 if (hasController) { @@ -75,11 +79,11 @@ constructor(gamename: String) : StateBasedGame(gamename) { gc.graphics.clear() // clean up any 'dust' in the buffer - ingame = StateInGame() - //addState(ingame) - //addState(StateMonitorCheck()) + //addState(StateSplash()) + addState(StateMonitorCheck()) //addState(StateFontTester()) - addState(StateSplash()) + ingame = StateInGame() + addState(ingame) } companion object { @@ -137,20 +141,20 @@ constructor(gamename: String) : StateBasedGame(gamename) { field = value } - lateinit var gameFont: Font + lateinit var fontGame: Font private set - lateinit var smallNumbers: Font + lateinit var fontSmallNumbers: Font private set // 0x0 - 0xF: Game-related // 0x10 - 0x1F: Config // 0x100 and onward: unit tests for dev - val SCENE_ID_SPLASH = 0x0 - val SCENE_ID_HOME = 0x1 - val SCENE_ID_GAME = 0x3 - val SCENE_ID_CONFIG_CALIBRATE = 0x11 + val STATE_ID_SPLASH = 0x0 + val STATE_ID_HOME = 0x1 + val STATE_ID_GAME = 0x3 + val STATE_ID_CONFIG_CALIBRATE = 0x11 - val SCENE_ID_TEST_FONT = 0x100 + val STATE_ID_TEST_FONT = 0x100 var hasController = false val CONTROLLER_DEADZONE = 0.1f @@ -367,7 +371,7 @@ fun main(args: Array) = Terrarum.main(args) fun setBlendMul() { GL11.glEnable(GL11.GL_BLEND) - GL11.glColorMask(true, true, true, false) + GL11.glColorMask(true, true, true, true) GL11.glBlendFunc(GL11.GL_DST_COLOR, GL11.GL_ONE_MINUS_SRC_ALPHA) } diff --git a/src/net/torvald/terrarum/console/CommandDict.kt b/src/net/torvald/terrarum/console/CommandDict.kt index bd24e2a21..e06063a1b 100644 --- a/src/net/torvald/terrarum/console/CommandDict.kt +++ b/src/net/torvald/terrarum/console/CommandDict.kt @@ -27,7 +27,7 @@ object CommandDict { Pair("tp", TeleportPlayer()), Pair("cat", CatStdout()), Pair("exportav", ExportAV()), - Pair("setgl", SetGlobalLightLevel()), + Pair("setgl", SetGlobalLightOverride()), Pair("getfaction", GetFactioning()), Pair("auth", Terrarum.ingame.auth), Pair("spawnball", SpawnPhysTestBall()), diff --git a/src/net/torvald/terrarum/console/SetGlobalLightLevel.kt b/src/net/torvald/terrarum/console/SetGlobalLightOverride.kt similarity index 78% rename from src/net/torvald/terrarum/console/SetGlobalLightLevel.kt rename to src/net/torvald/terrarum/console/SetGlobalLightOverride.kt index 7dfe6a42e..a5a1b25f7 100644 --- a/src/net/torvald/terrarum/console/SetGlobalLightLevel.kt +++ b/src/net/torvald/terrarum/console/SetGlobalLightOverride.kt @@ -6,7 +6,11 @@ import net.torvald.terrarum.Terrarum /** * Created by minjaesong on 16-02-17. */ -class SetGlobalLightLevel : ConsoleCommand { +class SetGlobalLightOverride : ConsoleCommand { + + var lightOverride = false + private set + override fun execute(args: Array) { if (args.size == 4) { try { @@ -15,6 +19,7 @@ class SetGlobalLightLevel : ConsoleCommand { val b = args[3].toInt() val GL = LightmapRenderer.constructRGBFromInt(r, g, b) + lightOverride = true Terrarum.ingame.world.globalLight = GL } catch (e: NumberFormatException) { @@ -37,7 +42,10 @@ class SetGlobalLightLevel : ConsoleCommand { } } catch (e: NumberFormatException) { - Echo().execute("Wrong number input.") + if (args[1].toLowerCase() == "none") + lightOverride = false + else + Echo().execute("Wrong number input.") } } @@ -47,6 +55,6 @@ class SetGlobalLightLevel : ConsoleCommand { } override fun printUsage() { - Echo().execute("Usage: setgl [raw_value|r g b]") + Echo().execute("Usage: setgl [raw_value|r g b|“none”]") } } diff --git a/src/net/torvald/terrarum/gameactors/Actor.kt b/src/net/torvald/terrarum/gameactors/Actor.kt index 1b4916951..537efeb31 100644 --- a/src/net/torvald/terrarum/gameactors/Actor.kt +++ b/src/net/torvald/terrarum/gameactors/Actor.kt @@ -29,7 +29,7 @@ abstract class Actor : Comparable, Runnable { "ID: ${hashCode()} (${actorValue.getAsString(AVKey.NAME)})" override fun compareTo(other: Actor): Int = (this.referenceID - other.referenceID).sign() - fun Int.sign(): Int = if (this > 0) 1 else if (this < 0) -1 else this + fun Int.sign(): Int = if (this > 0) 1 else if (this < 0) -1 else 0 /** * Usage: diff --git a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt index be3b4421b..cd82204c6 100644 --- a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt +++ b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt @@ -769,7 +769,7 @@ open class ActorWithBody : Actor(), Visible { Hitbox(nextHitbox.posX, nextHitbox.posY, nextHitbox.width + 2.0, nextHitbox.height + 2.0) // when not walking, enlarge the hitbox for calculation so that - // feet tiles are to be taken into calculation + // feet tiles are also counted else nextHitbox.clone() diff --git a/src/net/torvald/terrarum/gameactors/CreatureRawInjector.kt b/src/net/torvald/terrarum/gameactors/CreatureRawInjector.kt index 7f151ba66..53a57d441 100644 --- a/src/net/torvald/terrarum/gameactors/CreatureRawInjector.kt +++ b/src/net/torvald/terrarum/gameactors/CreatureRawInjector.kt @@ -13,7 +13,7 @@ import java.security.SecureRandom */ object CreatureRawInjector { - const val JSONPATH = "./res/raw/creatures/" + const val JSONPATH = "./assets/raw/creatures/" private const val MULTIPLIER_RAW_ELEM_SUFFIX = AVKey.MULT /** @@ -26,12 +26,14 @@ object CreatureRawInjector { fun inject(actorValueRef: ActorValue, jsonFileName: String) { val jsonObj = JsonFetcher(JSONPATH + jsonFileName) + val elementsInt = arrayOf(AVKey.BASEHEIGHT, AVKey.TOOLSIZE, AVKey.ENCUMBRANCE) val elementsString = arrayOf(AVKey.RACENAME, AVKey.RACENAMEPLURAL) - val elementsDouble = arrayOf(AVKey.BASEHEIGHT, AVKey.BASEMASS, AVKey.ACCEL, AVKey.TOOLSIZE, AVKey.ENCUMBRANCE) - val elementsDoubleVariable = arrayOf(AVKey.STRENGTH, AVKey.SPEED, AVKey.JUMPPOWER, AVKey.SCALE, AVKey.SPEED) + val elementsDouble = arrayOf(AVKey.BASEMASS, AVKey.ACCEL) + val elementsDoubleVariable = arrayOf(AVKey.STRENGTH, AVKey.SPEED, AVKey.JUMPPOWER, AVKey.SCALE) val elementsBoolean = arrayOf(AVKey.INTELLIGENT) // val elementsMultiplyFromOne = arrayOf() + setAVInts(actorValueRef, elementsInt, jsonObj) setAVStrings(actorValueRef, elementsString, jsonObj) setAVDoubles(actorValueRef, elementsDouble, jsonObj) setAVDoublesVariable(actorValueRef, elementsDoubleVariable, jsonObj) @@ -93,6 +95,20 @@ object CreatureRawInjector { } } + /** + * Fetch and set int actor values + * @param avRef + * * + * @param elemSet + * * + * @param jsonObject + */ + private fun setAVInts(avRef: ActorValue, elemSet: Array, jsonObject: JsonObject) { + for (s in elemSet) { + avRef[s] = jsonObject.get(s).asInt + } + } + /** * Fetch and set actor values that should multiplier be applied to the base value of 1. * E.g. physiquemult diff --git a/src/net/torvald/terrarum/gameactors/PBCynthia.kt b/src/net/torvald/terrarum/gameactors/PBCynthia.kt index bfae41fad..ae1f797b9 100644 --- a/src/net/torvald/terrarum/gameactors/PBCynthia.kt +++ b/src/net/torvald/terrarum/gameactors/PBCynthia.kt @@ -12,8 +12,10 @@ object PBCynthia { val p: Player = Player() CreatureRawInjector.inject(p.actorValue, "CreatureHuman.json") + p.actorValue[AVKey._PLAYER_QUICKBARSEL] = 0 p.actorValue["selectedtile"] = 16 + p.sprite = SpriteAnimation() p.sprite!!.setDimension(26, 42) p.sprite!!.setSpriteImage("assets/graphics/sprites/test_player_2.png") diff --git a/src/net/torvald/terrarum/gameactors/PBSigrid.kt b/src/net/torvald/terrarum/gameactors/PBSigrid.kt index 93aa73f98..4812c9441 100644 --- a/src/net/torvald/terrarum/gameactors/PBSigrid.kt +++ b/src/net/torvald/terrarum/gameactors/PBSigrid.kt @@ -59,7 +59,6 @@ object PBSigrid { p.actorValue[AVKey.BASEDEFENCE] = 141 p.actorValue["selectedtile"] = 16 - p.actorValue[AVKey._PLAYER_QUICKBARSEL] = 0 p.setHitboxDimension(15, p.actorValue.getAsInt(AVKey.BASEHEIGHT)!!, 10, 0) diff --git a/src/net/torvald/terrarum/gameactors/Player.kt b/src/net/torvald/terrarum/gameactors/Player.kt index 5f12434d5..f465091fa 100644 --- a/src/net/torvald/terrarum/gameactors/Player.kt +++ b/src/net/torvald/terrarum/gameactors/Player.kt @@ -172,14 +172,14 @@ class Player : ActorWithBody(), Controllable, Pocketed, Factionable, Luminous, L walkCounterX += 1 - // Heading flag - if (left) - walkHeading = LEFT - else - walkHeading = RIGHT - isWalkingH = true } + + // Heading flag + if (left) + walkHeading = LEFT + else + walkHeading = RIGHT } /** diff --git a/src/net/torvald/terrarum/gamemap/FluidCodex.kt b/src/net/torvald/terrarum/gamemap/FluidCodex.kt new file mode 100644 index 000000000..d9d7e3c1b --- /dev/null +++ b/src/net/torvald/terrarum/gamemap/FluidCodex.kt @@ -0,0 +1,9 @@ +package net.torvald.terrarum.gamemap + +/** + * Created by minjaesong on 16-08-06. + */ +object FluidCodex { + const val FLUID_LAVA = 0xFE.toByte() + const val FLUID_WATER = 0xFF.toByte() +} \ No newline at end of file diff --git a/src/net/torvald/terrarum/gamemap/MapLayer.kt b/src/net/torvald/terrarum/gamemap/MapLayer.kt index ab3883243..a619c8e1a 100644 --- a/src/net/torvald/terrarum/gamemap/MapLayer.kt +++ b/src/net/torvald/terrarum/gamemap/MapLayer.kt @@ -40,7 +40,7 @@ class MapLayer(var width: Int, var height: Int) : Iterable { return if (x !in 0..width - 1 || y !in 0..height - 1) null else - uint8ToInt32(data[y][x]) + data[y][x].toUint() } internal fun setTile(x: Int, y: Int, tile: Byte) { @@ -49,11 +49,10 @@ class MapLayer(var width: Int, var height: Int) : Iterable { fun isInBound(x: Int, y: Int) = (x >= 0 && y >= 0 && x < width && y < height) - private fun uint8ToInt32(x: Byte): Int = java.lang.Byte.toUnsignedInt(x) - companion object { @Transient const val RANGE = 256 @Transient const val SIZEOF: Byte = 1 // 1 for 8-bit, 2 for 16-bit, ... } } +fun Byte.toUint() = java.lang.Byte.toUnsignedInt(this) diff --git a/src/net/torvald/terrarum/gamemap/WorldSimulator.kt b/src/net/torvald/terrarum/gamemap/WorldSimulator.kt index 26b27028f..48d9274e3 100644 --- a/src/net/torvald/terrarum/gamemap/WorldSimulator.kt +++ b/src/net/torvald/terrarum/gamemap/WorldSimulator.kt @@ -1,11 +1,15 @@ package net.torvald.terrarum.gamemap import net.torvald.random.HQRNG +import net.torvald.terrarum.Terrarum import net.torvald.terrarum.gameactors.Player import net.torvald.terrarum.gameactors.roundInt +import net.torvald.terrarum.gamemap.WorldSimulator.isSolid +import net.torvald.terrarum.mapdrawer.MapCamera import net.torvald.terrarum.mapdrawer.MapDrawer import net.torvald.terrarum.tileproperties.TileNameCode import net.torvald.terrarum.tileproperties.TilePropCodex +import org.newdawn.slick.Color import org.newdawn.slick.Graphics /** @@ -16,16 +20,31 @@ object WorldSimulator { * In tiles; * square width/height = field * 2 */ - const val FLUID_UPDATING_SQUARE_RADIUS = 128 + const val FLUID_UPDATING_SQUARE_RADIUS = 64 // larger value will have dramatic impact on performance const private val DOUBLE_RADIUS = FLUID_UPDATING_SQUARE_RADIUS * 2 private val fluidMap = Array(DOUBLE_RADIUS, { IntArray(DOUBLE_RADIUS) }) + private val fluidTypeMap = Array(DOUBLE_RADIUS, { ByteArray(DOUBLE_RADIUS) }) const val DISPLACE_CAP = 4 const val FLUID_MAX = 16 + var updateXFrom = 0 + var updateXTo = 0 + var updateYFrom = 0 + var updateYTo = 0 + + val colourNone = Color(0x808080) + val colourWater = Color(0x66BBFF) + operator fun invoke(world: GameWorld, p: Player, delta: Int) { + updateXFrom = p.hitbox.centeredX.div(MapDrawer.TILE_SIZE).minus(FLUID_UPDATING_SQUARE_RADIUS).roundInt() + updateYFrom = p.hitbox.centeredY.div(MapDrawer.TILE_SIZE).minus(FLUID_UPDATING_SQUARE_RADIUS).roundInt() + updateXTo = updateXFrom + DOUBLE_RADIUS + updateYTo = updateYFrom + DOUBLE_RADIUS + moveFluids(world, p, delta) + displaceFallables(world, p, delta) } /** @@ -34,148 +53,169 @@ object WorldSimulator { * reverse-gravity. */ fun moveFluids(world: GameWorld, p: Player, delta: Int) { - val updateXFrom = p.hitbox.centeredX.div(MapDrawer.TILE_SIZE).minus(FLUID_UPDATING_SQUARE_RADIUS).roundInt() - val updateYFrom = p.hitbox.centeredY.div(MapDrawer.TILE_SIZE).minus(FLUID_UPDATING_SQUARE_RADIUS).roundInt() - val updateXTo = updateXFrom + 1 * FLUID_UPDATING_SQUARE_RADIUS - val updateYTo = updateYFrom + 1 * FLUID_UPDATING_SQUARE_RADIUS - - /** - * @return amount of fluid actually drained. - * (intended drainage - this) will give you how much fluid is not yet drained. - */ - fun drain(x: Int, y: Int, amount: Int): Int { - val displacement = Math.min(fluidMap[y - updateYFrom][x - updateXFrom], amount) - - fluidMap[y - updateYFrom][x - updateXFrom] -= displacement - - return displacement - } - - fun pour(x: Int, y: Int, amount: Int) { - fun pourInternal(xpos: Int, ypos: Int, volume: Int): Int { - var spil = 0 - - val addrX = xpos - updateXFrom - val addrY = ypos - updateYFrom - - if (addrX >= 0 && addrY >= 0 && addrX < DOUBLE_RADIUS && addrY < DOUBLE_RADIUS) { - fluidMap[addrY][addrX] += volume - if (fluidMap[addrY][addrX] > FLUID_MAX) { - spil = fluidMap[addrY][addrX] - FLUID_MAX - fluidMap[addrY][addrX] = FLUID_MAX - } - } - - return spil - } - - // pour the fluid - var spillage = pourInternal(x, y, amount) - - if (spillage == 0) return - - // deal with the spillage - - val tileUp = world.getTileFromTerrain(x - updateXFrom, y - updateYFrom - 1) - val tileDown = world.getTileFromTerrain(x - updateXFrom, y - updateYFrom + 1) - - // try to fill downward - if (tileDown != null && !tileDown.isSolid()) { - spillage = pourInternal(x, y + 1, spillage) - } - // else, try to fill upward. if there is no space, just discard - if (tileUp != null && !tileUp.isSolid()) { - pourInternal(x, y - 1, spillage) - } - } - + //////////////////// + // build fluidmap // + //////////////////// purgeFluidMap() + worldToFluidMap(world) + ///////////////////////////////////////////////////////////// // displace fluids. Record displacements into the fluidMap // ///////////////////////////////////////////////////////////// for (y in updateYFrom..updateYTo) { for (x in updateXFrom..updateXTo) { - val tile = world.getTileFromTerrain(x, y) - val tileBottom = world.getTileFromTerrain(x, y + 1) - val tileLeft = world.getTileFromTerrain(x - 1, y) - val tileRight = world.getTileFromTerrain(x + 1, y) - if (tile != null && tile.isFluid()) { + val tile = world.getTileFromTerrain(x, y) ?: TileNameCode.STONE + val tileBottom = world.getTileFromTerrain(x, y + 1) ?: TileNameCode.STONE + val tileLeft = world.getTileFromTerrain(x - 1, y) ?: TileNameCode.STONE + val tileRight = world.getTileFromTerrain(x + 1, y) ?: TileNameCode.STONE + if (tile.isFluid()) { // move down if not obstructed - if (tileBottom != null && !tileBottom.isSolid()) { - val drainage = drain(x, y, DISPLACE_CAP) - pour(x, y + 1, drainage) + if (!tileBottom.isSolid()) { + val drainage = drain(world, x, y, DISPLACE_CAP) + pour(world, x, y + 1, drainage) } - // left and right both open (null is considered as open) - else if ((tileLeft != null && tileRight != null && !tileLeft.isSolid() && !tileRight.isSolid()) || - tileLeft == null && tileRight == null) { + // left and right both open + else if (!tileLeft.isSolid() && !tileRight.isSolid()) { // half-breaker val moreToTheRight = HQRNG().nextBoolean() - val displacement = drain(x, y, DISPLACE_CAP) + val displacement = drain(world, x, y, DISPLACE_CAP) if (displacement.isEven()) { - pour(x - 1, y, displacement shr 1) - pour(x + 1, y, displacement shr 1) + pour(world, x - 1, y, displacement shr 1) + pour(world, x + 1, y, displacement shr 1) } else { - pour(x - 1, y, (displacement shr 1) + if (moreToTheRight) 0 else 1) - pour(x + 1, y, (displacement shr 1) + if (moreToTheRight) 1 else 0) + pour(world, x - 1, y, (displacement shr 1) + if (moreToTheRight) 0 else 1) + pour(world, x + 1, y, (displacement shr 1) + if (moreToTheRight) 1 else 0) } } - // left open (null is considered as open) - else if ((tileLeft != null && !tileLeft.isSolid()) || tileLeft == null) { - val displacement = drain(x, y, DISPLACE_CAP) - pour(x - 1, y, displacement) + // left open + else if (!tileLeft.isSolid()) { + val displacement = drain(world, x, y, DISPLACE_CAP) + pour(world, x - 1, y, displacement) } - // right open (null is considered as open) - else if ((tileRight != null && !tileRight.isSolid()) || tileRight == null) { - val displacement = drain(x, y, DISPLACE_CAP) - pour(x + 1, y, displacement) + // right open + else if (!tileRight.isSolid()) { + val displacement = drain(world, x, y, DISPLACE_CAP) + pour(world, x + 1, y, displacement) } // nowhere open; do default (fill top) else { - pour(x, y - 1, DISPLACE_CAP) + pour(world, x, y - 1, DISPLACE_CAP) } } } } + + ///////////////////////////////////////////////////// // replace fluids in the map according to fluidMap // ///////////////////////////////////////////////////// - for (y in 0..fluidMap.size - 1) { - for (x in 0..fluidMap[0].size - 1) { - placeFluid(world, updateXFrom + x, updateYFrom + y, WATER, fluidMap[y][x].minus(1)) - // FIXME test code: deals with water only! - } - } + fluidMapToWorld(world) } + /** + * displace fallable tiles. It is scanned bottom-left first. To achieve the sens ofreal + * falling, each tiles are displaced by ONLY ONE TILE below. + */ + fun displaceFallables(world: GameWorld, p: Player, delta: Int) { + for (y in updateYFrom..updateYTo) { + for (x in updateXFrom..updateXTo) { + val tile = world.getTileFromTerrain(x, y) ?: TileNameCode.STONE + val tileBelow = world.getTileFromTerrain(x, y + 1) ?: TileNameCode.STONE + + if (tile.isFallable()) { + // displace fluid. This statement must precede isSolid() + if (tileBelow.isFluid()) { + // remove tileThis to create air pocket + world.setTileTerrain(x, y, TileNameCode.AIR) + + pour(world, x, y, drain(world, x, y, tileBelow.fluidLevel())) + // place our tile + world.setTileTerrain(x, y + 1, tile) + } + else if (!tileBelow.isSolid()) { + world.setTileTerrain(x, y, TileNameCode.AIR) + world.setTileTerrain(x, y + 1, tile) + } + } + } + } + } + fun drawFluidMapDebug(p: Player, g: Graphics) { + g.font = Terrarum.fontSmallNumbers + g.color = colourWater + for (y in 0..fluidMap.size - 1) { for (x in 0..fluidMap[0].size - 1) { + val data = fluidMap[y][x] + if (MapCamera.tileInCamera(x + updateXFrom, y + updateYFrom)) { + if (data == 0) + g.color = colourNone + else + g.color = colourWater + g.drawString(data.toString(), + updateXFrom.plus(x).times(MapDrawer.TILE_SIZE).toFloat() + + if (data < 10) 4f else 0f, + updateYFrom.plus(y).times(MapDrawer.TILE_SIZE) + 4f + ) + } + + + //if (data > 0) println(data) } } } private fun purgeFluidMap() { - for (y in 1..DOUBLE_RADIUS) - for (x in 1..DOUBLE_RADIUS) + for (y in 1..DOUBLE_RADIUS) { + for (x in 1..DOUBLE_RADIUS) { fluidMap[y - 1][x - 1] = 0 + fluidTypeMap[y - 1][x - 1] = 0 + } + } + } + + private fun worldToFluidMap(world: GameWorld) { + for (y in updateYFrom..updateYTo) { + for (x in updateXFrom..updateXTo) { + val tile = world.getTileFromTerrain(x, y) ?: TileNameCode.STONE + if (tile.isFluid()) { + fluidMap[y - updateYFrom][x - updateXFrom] = tile.fluidLevel() + fluidTypeMap[y - updateYFrom][x - updateXFrom] = tile.fluidType().toByte() + } + } + } + } + + private fun fluidMapToWorld(world: GameWorld) { + for (y in 0..fluidMap.size - 1) { + for (x in 0..fluidMap[0].size - 1) { + placeFluid(world, updateXFrom + x, updateYFrom + y + , FluidCodex.FLUID_WATER, fluidMap[y][x] - 1 + ) + // FIXME test code: deals with water only! + } + } } fun Int.isFluid() = TilePropCodex.getProp(this).isFluid - fun Int.isSolid() = TilePropCodex.getProp(this).isSolid + fun Int.isSolid() = this.fluidLevel() == FLUID_MAX || TilePropCodex.getProp(this).isSolid //fun Int.viscosity() = TilePropCodex.getProp(this). - fun Int.fluidLevel() = this % FLUID_MAX + fun Int.fluidLevel() = if (!this.isFluid()) 0 else (this % FLUID_MAX) + 1 + fun Int.fluidType() = this / FLUID_MAX fun Int.isEven() = (this and 0x01) == 0 + fun Int.isFallable() = TilePropCodex.getProp(this).isFallable - private fun placeFluid(world: GameWorld, x: Int, y: Int, tileFluid: Int, amount: Int) { + private fun placeFluid(world: GameWorld, x: Int, y: Int, fluidType: Byte, amount: Int) { if (world.layerTerrain.isInBound(x, y)) { if (amount > 0 && !world.getTileFromTerrain(x, y)!!.isSolid()) { - world.setTileTerrain(x, y, amount.minus(1).plus(tileFluid)) + world.setTileTerrain(x, y, fluidType, amount - 1) } else if (amount == 0 && world.getTileFromTerrain(x, y)!!.isFluid()) { world.setTileTerrain(x, y, TileNameCode.AIR) @@ -183,6 +223,64 @@ object WorldSimulator { } } - val LAVA = TileNameCode.LAVA_1 - val WATER = TileNameCode.WATER_1 + /** + * @param x and y: world tile coord + * @return amount of fluid actually drained. + * (intended drainage - this) will give you how much fluid is not yet drained. + * TODO add fluidType support + */ + private fun drain(world: GameWorld, x: Int, y: Int, amount: Int): Int { + val displacement = Math.min(fluidMap[y - updateYFrom][x - updateXFrom], amount) + + fluidMap[y - updateYFrom][x - updateXFrom] -= displacement + + return displacement + } + + /** + * @param x and y: world tile coord + * TODO add fluidType support + */ + private fun pour(world: GameWorld, x: Int, y: Int, amount: Int) { + /** + * @param x and y: world tile coord + * @return spillage + * TODO add fluidType support + */ + fun pourInternal(worldXpos: Int, worldYPos: Int, volume: Int): Int { + var spil = 0 + + val addrX = worldXpos - updateXFrom + val addrY = worldYPos - updateYFrom + + if (addrX >= 0 && addrY >= 0 && addrX < DOUBLE_RADIUS && addrY < DOUBLE_RADIUS) { + fluidMap[addrY][addrX] += volume + if (fluidMap[addrY][addrX] > FLUID_MAX) { + spil = fluidMap[addrY][addrX] - FLUID_MAX + fluidMap[addrY][addrX] = FLUID_MAX + } + } + + return spil + } + + // pour the fluid + var spillage = pourInternal(x, y, amount) + + if (spillage <= 0) return + + // deal with the spillage + + val tileUp = world.getTileFromTerrain(x - updateXFrom, y - updateYFrom - 1) + val tileDown = world.getTileFromTerrain(x - updateXFrom, y - updateYFrom + 1) + + // try to fill downward + if (tileDown != null && !tileDown.isSolid()) { + spillage = pourInternal(x, y + 1, spillage) + } + // else, try to fill upward. if there is no space, just discard + if (spillage >= 0 && tileUp != null && !tileUp.isSolid()) { + pourInternal(x, y - 1, spillage) + } + } } \ No newline at end of file diff --git a/src/net/torvald/terrarum/mapdrawer/MapCamera.kt b/src/net/torvald/terrarum/mapdrawer/MapCamera.kt index 581d19b02..40b84f2be 100644 --- a/src/net/torvald/terrarum/mapdrawer/MapCamera.kt +++ b/src/net/torvald/terrarum/mapdrawer/MapCamera.kt @@ -31,8 +31,8 @@ object MapCamera { var tilesWall: SpriteSheet = SpriteSheet("./assets/graphics/terrain/wall.png", TSIZE, TSIZE) private set - var tilesTerrain: SpriteSheet = SpriteSheet("./assets/graphics/terrain/terrain.png", TSIZE, TSIZE) - private set + var tilesTerrain: SpriteSheet = SpriteSheet("./assets/graphics/terrain/terrain.tga", TSIZE, TSIZE) + private set // Slick has some weird quirks with PNG's transparency. I'm using 32-bit targa here. var tilesWire: SpriteSheet = SpriteSheet("./assets/graphics/terrain/wire.png", TSIZE, TSIZE) private set var tilesetBook: Array = arrayOf(tilesWall, tilesTerrain, tilesWire) @@ -494,4 +494,7 @@ object MapCamera { fun isPlatform(b: Int?): Boolean = TILES_WALL_STICKER_CONNECT_SELF.contains(b) fun isBlendMul(b: Int?): Boolean = TILES_BLEND_MUL.contains(b) + fun tileInCamera(x: Int, y: Int) = + x >= cameraX.div(TSIZE) && y >= cameraY.div(TSIZE) && + x <= cameraX.plus(renderWidth).div(TSIZE) && y <= cameraY.plus(renderWidth).div(TSIZE) } \ No newline at end of file diff --git a/src/net/torvald/terrarum/mapgenerator/NoiseFilterCubic.kt b/src/net/torvald/terrarum/mapgenerator/NoiseFilterCubic.kt index 28397e2cd..bec042a76 100644 --- a/src/net/torvald/terrarum/mapgenerator/NoiseFilterCubic.kt +++ b/src/net/torvald/terrarum/mapgenerator/NoiseFilterCubic.kt @@ -31,13 +31,13 @@ import com.jme3.math.FastMath */ object NoiseFilterCubic : NoiseFilter { override fun getGrad(func_argX: Int, start: Float, end: Float): Float { - val graph_gradient = -FastMath.pow(FastMath.pow((1 - MapGenerator.TERRAIN_AVERAGE_HEIGHT).toFloat(), 3f), -1f) * // 1/4 -> 3/4 -> 9/16 -> 16/9 - (start - end) / FastMath.pow(MapGenerator.HEIGHT.toFloat(), 3f) * - FastMath.pow((func_argX - MapGenerator.HEIGHT).toFloat(), 3f) + end + val graph_gradient = -FastMath.pow(FastMath.pow((1 - WorldGenerator.TERRAIN_AVERAGE_HEIGHT).toFloat(), 3f), -1f) * // 1/4 -> 3/4 -> 9/16 -> 16/9 + (start - end) / FastMath.pow(WorldGenerator.HEIGHT.toFloat(), 3f) * + FastMath.pow((func_argX - WorldGenerator.HEIGHT).toFloat(), 3f) + end - if (func_argX < MapGenerator.TERRAIN_AVERAGE_HEIGHT) { + if (func_argX < WorldGenerator.TERRAIN_AVERAGE_HEIGHT) { return start - } else if (func_argX >= MapGenerator.HEIGHT) { + } else if (func_argX >= WorldGenerator.HEIGHT) { return end } else { return graph_gradient diff --git a/src/net/torvald/terrarum/mapgenerator/NoiseFilterMinusQuadratic.kt b/src/net/torvald/terrarum/mapgenerator/NoiseFilterMinusQuadratic.kt index 8c3292834..cd01f4736 100644 --- a/src/net/torvald/terrarum/mapgenerator/NoiseFilterMinusQuadratic.kt +++ b/src/net/torvald/terrarum/mapgenerator/NoiseFilterMinusQuadratic.kt @@ -31,13 +31,13 @@ import com.jme3.math.FastMath */ object NoiseFilterMinusQuadratic : NoiseFilter { override fun getGrad(func_argX: Int, start: Float, end: Float): Float { - val graph_gradient = -FastMath.pow(FastMath.sqr((1 - MapGenerator.TERRAIN_AVERAGE_HEIGHT).toFloat()), -1f) * // 1/4 -> 3/4 -> 9/16 -> 16/9 - (start - end) / FastMath.sqr(MapGenerator.HEIGHT.toFloat()) * - FastMath.sqr((func_argX - MapGenerator.TERRAIN_AVERAGE_HEIGHT).toFloat()) + start + val graph_gradient = -FastMath.pow(FastMath.sqr((1 - WorldGenerator.TERRAIN_AVERAGE_HEIGHT).toFloat()), -1f) * // 1/4 -> 3/4 -> 9/16 -> 16/9 + (start - end) / FastMath.sqr(WorldGenerator.HEIGHT.toFloat()) * + FastMath.sqr((func_argX - WorldGenerator.TERRAIN_AVERAGE_HEIGHT).toFloat()) + start - if (func_argX < MapGenerator.TERRAIN_AVERAGE_HEIGHT) { + if (func_argX < WorldGenerator.TERRAIN_AVERAGE_HEIGHT) { return start - } else if (func_argX >= MapGenerator.HEIGHT) { + } else if (func_argX >= WorldGenerator.HEIGHT) { return end } else { return graph_gradient diff --git a/src/net/torvald/terrarum/mapgenerator/NoiseFilterQuadratic.kt b/src/net/torvald/terrarum/mapgenerator/NoiseFilterQuadratic.kt index c2ffbb410..1616755b8 100644 --- a/src/net/torvald/terrarum/mapgenerator/NoiseFilterQuadratic.kt +++ b/src/net/torvald/terrarum/mapgenerator/NoiseFilterQuadratic.kt @@ -32,13 +32,13 @@ import com.jme3.math.FastMath */ object NoiseFilterQuadratic : NoiseFilter { override fun getGrad(func_argX: Int, start: Float, end: Float): Float { - val graph_gradient = FastMath.pow(FastMath.sqr((1 - MapGenerator.TERRAIN_AVERAGE_HEIGHT).toFloat()), -1f) * // 1/4 -> 3/4 -> 9/16 -> 16/9 - (start - end) / FastMath.sqr(MapGenerator.HEIGHT.toFloat()) * - FastMath.sqr((func_argX - MapGenerator.HEIGHT).toFloat()) + end + val graph_gradient = FastMath.pow(FastMath.sqr((1 - WorldGenerator.TERRAIN_AVERAGE_HEIGHT).toFloat()), -1f) * // 1/4 -> 3/4 -> 9/16 -> 16/9 + (start - end) / FastMath.sqr(WorldGenerator.HEIGHT.toFloat()) * + FastMath.sqr((func_argX - WorldGenerator.HEIGHT).toFloat()) + end - if (func_argX < MapGenerator.TERRAIN_AVERAGE_HEIGHT) { + if (func_argX < WorldGenerator.TERRAIN_AVERAGE_HEIGHT) { return start - } else if (func_argX >= MapGenerator.HEIGHT) { + } else if (func_argX >= WorldGenerator.HEIGHT) { return end } else { return graph_gradient diff --git a/src/net/torvald/terrarum/mapgenerator/NoiseFilterSqrt.kt b/src/net/torvald/terrarum/mapgenerator/NoiseFilterSqrt.kt index 2e46593cc..fd58f03d4 100644 --- a/src/net/torvald/terrarum/mapgenerator/NoiseFilterSqrt.kt +++ b/src/net/torvald/terrarum/mapgenerator/NoiseFilterSqrt.kt @@ -7,11 +7,11 @@ import com.jme3.math.FastMath */ object NoiseFilterSqrt : NoiseFilter { override fun getGrad(func_argX: Int, start: Float, end: Float): Float { - val graph_gradient = (end - start) / FastMath.sqrt((MapGenerator.HEIGHT - MapGenerator.TERRAIN_AVERAGE_HEIGHT).toFloat()) * FastMath.sqrt((func_argX - MapGenerator.TERRAIN_AVERAGE_HEIGHT).toFloat()) + start + val graph_gradient = (end - start) / FastMath.sqrt((WorldGenerator.HEIGHT - WorldGenerator.TERRAIN_AVERAGE_HEIGHT).toFloat()) * FastMath.sqrt((func_argX - WorldGenerator.TERRAIN_AVERAGE_HEIGHT).toFloat()) + start - if (func_argX < MapGenerator.TERRAIN_AVERAGE_HEIGHT) { + if (func_argX < WorldGenerator.TERRAIN_AVERAGE_HEIGHT) { return start - } else if (func_argX >= MapGenerator.HEIGHT) { + } else if (func_argX >= WorldGenerator.HEIGHT) { return end } else { return graph_gradient diff --git a/src/net/torvald/terrarum/mapgenerator/ThreadProcessNoiseLayers.kt b/src/net/torvald/terrarum/mapgenerator/ThreadProcessNoiseLayers.kt index 62836b36f..c1680a71f 100644 --- a/src/net/torvald/terrarum/mapgenerator/ThreadProcessNoiseLayers.kt +++ b/src/net/torvald/terrarum/mapgenerator/ThreadProcessNoiseLayers.kt @@ -4,14 +4,14 @@ package net.torvald.terrarum.mapgenerator * Created by minjaesong on 16-06-13. */ class ThreadProcessNoiseLayers(val startIndex: Int, val endIndex: Int, - val noiseRecords: Array) : Runnable { + val noiseRecords: Array) : Runnable { override fun run() { for (record in noiseRecords) { println("[mapgenerator] ${record.message}...") for (y in startIndex..endIndex) { - for (x in 0..MapGenerator.WIDTH - 1) { + for (x in 0..WorldGenerator.WIDTH - 1) { val noise: Float = record.noiseModule.get( x.toDouble() / 48.0, // 48: Fixed value y.toDouble() / 48.0 @@ -24,11 +24,11 @@ class ThreadProcessNoiseLayers(val startIndex: Int, val endIndex: Int, // replace to designated tile is Int -> record.replaceTo as Int // replace to randomly selected tile from given array of tile IDs - is IntArray -> (record.replaceTo as IntArray)[MapGenerator.random.nextInt((record.replaceTo as IntArray).size)] + is IntArray -> (record.replaceTo as IntArray)[WorldGenerator.random.nextInt((record.replaceTo as IntArray).size)] else -> throw IllegalArgumentException("[mapgenerator] Unknown replaceTo tile type '${record.replaceTo.javaClass.canonicalName}': Only 'kotlin.Int' and 'kotlin.IntArray' is valid.") } // replace to ALL? this is bullshit - if (to == MapGenerator.TILE_MACRO_ALL) throw IllegalArgumentException("[mapgenerator] Invalid replaceTo: TILE_MACRO_ALL") + if (to == WorldGenerator.TILE_MACRO_ALL) throw IllegalArgumentException("[mapgenerator] Invalid replaceTo: TILE_MACRO_ALL") // filtered threshold val threshold = record.filter.getGrad(y, record.filterArg1, record.filterArg2) @@ -38,15 +38,15 @@ class ThreadProcessNoiseLayers(val startIndex: Int, val endIndex: Int, for (i in 0..fromTerr.size - 1) { val fromTerrVariable = fromTerr[i] - if ((MapGenerator.world.getTileFromTerrain(x, y) == fromTerrVariable || fromTerrVariable == MapGenerator.TILE_MACRO_ALL) - && (MapGenerator.world.getTileFromWall(x, y) == fromWall || fromWall == MapGenerator.TILE_MACRO_ALL)) { - MapGenerator.world.setTileTerrain(x, y, to) + if ((WorldGenerator.world.getTileFromTerrain(x, y) == fromTerrVariable || fromTerrVariable == WorldGenerator.TILE_MACRO_ALL) + && (WorldGenerator.world.getTileFromWall(x, y) == fromWall || fromWall == WorldGenerator.TILE_MACRO_ALL)) { + WorldGenerator.world.setTileTerrain(x, y, to) } } } - else if ((MapGenerator.world.getTileFromTerrain(x, y) == fromTerr || fromTerr == MapGenerator.TILE_MACRO_ALL) - && (MapGenerator.world.getTileFromWall(x, y) == fromWall || fromWall == MapGenerator.TILE_MACRO_ALL)) { - MapGenerator.world.setTileTerrain(x, y, to) + else if ((WorldGenerator.world.getTileFromTerrain(x, y) == fromTerr || fromTerr == WorldGenerator.TILE_MACRO_ALL) + && (WorldGenerator.world.getTileFromWall(x, y) == fromWall || fromWall == WorldGenerator.TILE_MACRO_ALL)) { + WorldGenerator.world.setTileTerrain(x, y, to) } } } diff --git a/src/net/torvald/terrarum/mapgenerator/MapGenerator.kt b/src/net/torvald/terrarum/mapgenerator/WorldGenerator.kt similarity index 99% rename from src/net/torvald/terrarum/mapgenerator/MapGenerator.kt rename to src/net/torvald/terrarum/mapgenerator/WorldGenerator.kt index ee6433f66..88a87c653 100644 --- a/src/net/torvald/terrarum/mapgenerator/MapGenerator.kt +++ b/src/net/torvald/terrarum/mapgenerator/WorldGenerator.kt @@ -11,7 +11,7 @@ import net.torvald.terrarum.concurrent.ThreadPool import net.torvald.terrarum.gameactors.ThreadActorUpdate import java.util.* -object MapGenerator { +object WorldGenerator { internal lateinit var world: GameWorld internal lateinit var random: Random @@ -74,7 +74,7 @@ object MapGenerator { DIRT_LAYER_DEPTH = (100 * HEIGHT / 1024f).toInt() minimumFloatingIsleHeight = (25 * (HEIGHT / 1024f)).toInt() - TERRAIN_AVERAGE_HEIGHT = HEIGHT / 4 + TERRAIN_AVERAGE_HEIGHT = HEIGHT / 3 OCEAN_WIDTH = Math.round(OCEAN_WIDTH * widthMulFactor) SHORE_WIDTH = Math.round(SHORE_WIDTH * widthMulFactor) diff --git a/src/net/torvald/terrarum/tileproperties/tileprop.csv b/src/net/torvald/terrarum/tileproperties/tileprop.csv index 02bea2db9..67cdd2220 100644 --- a/src/net/torvald/terrarum/tileproperties/tileprop.csv +++ b/src/net/torvald/terrarum/tileproperties/tileprop.csv @@ -50,14 +50,14 @@ "12"; "0";"TILE_TORCH" ; "8396808"; "0"; "N/A"; "0"; "0"; "0"; "0"; "11"; "0"; "0"; "0";"16" "12"; "1";"TILE_TORCH_FROST" ; "8396808"; "0"; "N/A"; "0"; "0"; "0"; "0"; "11"; "1"; "0"; "0";"16" "13"; "0";"TILE_ILLUMINATOR_WHITE" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "239319274"; "13"; "0"; "0"; "0";"16" - "13"; "1";"TILE_ILLUMINATOR_YELLOW" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "246656000"; "13"; "1"; "0"; "0";"16" - "13"; "2";"TILE_ILLUMINATOR_ORANGE" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "246602752"; "13"; "2"; "0"; "0";"16" + "13"; "1";"TILE_ILLUMINATOR_YELLOW" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "267607040"; "13"; "1"; "0"; "0";"16" + "13"; "2";"TILE_ILLUMINATOR_ORANGE" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "267546624"; "13"; "2"; "0"; "0";"16" "13"; "3";"TILE_ILLUMINATOR_RED" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "246415360"; "13"; "3"; "0"; "0";"16" "13"; "4";"TILE_ILLUMINATOR_FUCHSIA" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "246415543"; "13"; "4"; "0"; "0";"16" "13"; "5";"TILE_ILLUMINATOR_PURPLE" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "191889643"; "13"; "5"; "0"; "0";"16" - "13"; "6";"TILE_ILLUMINATOR_BLUE" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "235"; "13"; "6"; "0"; "0";"16" - "13"; "7";"TILE_ILLUMINATOR_CYAN" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "207083"; "13"; "7"; "0"; "0";"16" - "13"; "8";"TILE_ILLUMINATOR_GREEN" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "68364288"; "13"; "8"; "0"; "0";"16" + "13"; "6";"TILE_ILLUMINATOR_BLUE" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "52479"; "13"; "6"; "0"; "0";"16" + "13"; "7";"TILE_ILLUMINATOR_CYAN" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "219391"; "13"; "7"; "0"; "0";"16" + "13"; "8";"TILE_ILLUMINATOR_GREEN" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "56884224"; "13"; "8"; "0"; "0";"16" "13"; "9";"TILE_ILLUMINATOR_GREEN_DARK";"8396808"; "0"; "N/A"; "0"; "1"; "1"; "33660928"; "13"; "9"; "0"; "0";"16" "13"; "10";"TILE_ILLUMINATOR_BROWN" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "89161728"; "13"; "10"; "0"; "0";"16" "13"; "11";"TILE_ILLUMINATOR_TAN" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "157392948"; "13"; "11"; "0"; "0";"16" diff --git a/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt b/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt index f196c0949..59d009ebe 100644 --- a/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt +++ b/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt @@ -68,7 +68,7 @@ class BasicDebugInfoWindow : UICanvas { val mouseTileX = ((MapCamera.cameraX + gc.input.mouseX / Terrarum.ingame.screenZoom) / MapDrawer.TILE_SIZE).toInt() val mouseTileY = ((MapCamera.cameraY + gc.input.mouseY / Terrarum.ingame.screenZoom) / MapDrawer.TILE_SIZE).toInt() - g.font = Terrarum.smallNumbers + g.font = Terrarum.fontSmallNumbers g.color = GameFontBase.codeToCol["y"] val hitbox = player.hitbox diff --git a/src/net/torvald/terrarum/ui/DrawUtil.kt b/src/net/torvald/terrarum/ui/DrawUtil.kt index 09b2018a5..d59c2044a 100644 --- a/src/net/torvald/terrarum/ui/DrawUtil.kt +++ b/src/net/torvald/terrarum/ui/DrawUtil.kt @@ -14,4 +14,9 @@ object DrawUtil { g.drawImage(image, targetW.minus(imageW).ushr(1).toFloat(), screenPosY.toFloat()) } + + fun drawCentered(g: Graphics, image: Image, screenPosY: Int, targetW: Int, offsetX: Int = 0, offsetY: Int = 0) { + val imageW = image.width + g.drawImage(image, targetW.minus(imageW).ushr(1).toFloat() + offsetX, screenPosY.toFloat() + offsetY) + } } \ No newline at end of file diff --git a/src/net/torvald/terrarum/ui/GamepadControlled.kt b/src/net/torvald/terrarum/ui/GamepadControlled.kt index 1ae4e8030..f50e21098 100644 --- a/src/net/torvald/terrarum/ui/GamepadControlled.kt +++ b/src/net/torvald/terrarum/ui/GamepadControlled.kt @@ -7,6 +7,5 @@ package net.torvald.terrarum.ui */ interface GamepadControlled { fun controllerButtonPressed(controller: Int, button: Int) - fun controllerButtonReleased(controller: Int, button: Int) } \ No newline at end of file diff --git a/src/net/torvald/terrarum/ui/ItemImageGallery.kt b/src/net/torvald/terrarum/ui/ItemImageGallery.kt new file mode 100644 index 000000000..7cf0b3fe7 --- /dev/null +++ b/src/net/torvald/terrarum/ui/ItemImageGallery.kt @@ -0,0 +1,80 @@ +package net.torvald.terrarum.ui + +import net.torvald.terrarum.gameactors.roundInt +import org.newdawn.slick.GameContainer +import org.newdawn.slick.Graphics +import org.newdawn.slick.Image +import java.util.* + +/** + * Image gallery. Images will be equally spaced, counted from top-left to bottom-right. + * Created by minjaesong on 16-08-08. + */ +class ItemImageGallery( + override var posX: Int, + override var posY: Int, + val width: Int, + val height: Int, + val imageList: ArrayList, + val column: Int = 1 +) : UIItem { + + override fun update(gc: GameContainer, delta: Int) { + } + + override fun render(gc: GameContainer, g: Graphics) { + fun column(i: Int) = i % column + fun row(i: Int) = i / column + + fun imagePosY(i: Int): Int { + val gutter = (height - imageList[i].height.times(imageList.size)).toFloat().div( + imageList.size + 1f + ) + return row((gutter * i.plus(1) + imageList[i].height * i).roundInt()) + } + + imageList.forEachIndexed { i, image -> + DrawUtil.drawCentered(g, image, + imagePosY(i), + width.toFloat().div(column).times(column(i).plus(1)).roundInt(), + posX, posY + ) + } + } + + override fun keyPressed(key: Int, c: Char) { + throw UnsupportedOperationException("not implemented") //To change body of created functions use File | Settings | File Templates. + } + + override fun keyReleased(key: Int, c: Char) { + throw UnsupportedOperationException("not implemented") //To change body of created functions use File | Settings | File Templates. + } + + override fun mouseMoved(oldx: Int, oldy: Int, newx: Int, newy: Int) { + throw UnsupportedOperationException("not implemented") //To change body of created functions use File | Settings | File Templates. + } + + override fun mouseDragged(oldx: Int, oldy: Int, newx: Int, newy: Int) { + throw UnsupportedOperationException("not implemented") //To change body of created functions use File | Settings | File Templates. + } + + override fun mousePressed(button: Int, x: Int, y: Int) { + throw UnsupportedOperationException("not implemented") //To change body of created functions use File | Settings | File Templates. + } + + override fun mouseReleased(button: Int, x: Int, y: Int) { + throw UnsupportedOperationException("not implemented") //To change body of created functions use File | Settings | File Templates. + } + + override fun mouseWheelMoved(change: Int) { + throw UnsupportedOperationException("not implemented") //To change body of created functions use File | Settings | File Templates. + } + + override fun controllerButtonPressed(controller: Int, button: Int) { + throw UnsupportedOperationException("not implemented") //To change body of created functions use File | Settings | File Templates. + } + + override fun controllerButtonReleased(controller: Int, button: Int) { + throw UnsupportedOperationException("not implemented") //To change body of created functions use File | Settings | File Templates. + } +} \ No newline at end of file diff --git a/src/net/torvald/terrarum/ui/ItemSlotImageBuilder.kt b/src/net/torvald/terrarum/ui/ItemSlotImageBuilder.kt index 19190cbda..6c447e9b0 100644 --- a/src/net/torvald/terrarum/ui/ItemSlotImageBuilder.kt +++ b/src/net/torvald/terrarum/ui/ItemSlotImageBuilder.kt @@ -16,8 +16,8 @@ object ItemSlotImageBuilder { const val COLOR_BLACK = 1 const val COLOR_WHITE = 2 - private val colourBlack = Color(0x404040) - private val colourWhite = Color(0xC0C0C0) + private val colourBlack = Color(0x40, 0x40, 0x40, 0xEE) + private val colourWhite = Color(0xC0, 0xC0, 0xC0, 0xEE) private val numberFont = SpriteSheetFont( SpriteSheet("./assets/graphics/fonts/numeric_small.png", 5, 8), diff --git a/src/net/torvald/terrarum/ui/KeyboardControlled.kt b/src/net/torvald/terrarum/ui/KeyboardControlled.kt index 6de72d6e8..360884f09 100644 --- a/src/net/torvald/terrarum/ui/KeyboardControlled.kt +++ b/src/net/torvald/terrarum/ui/KeyboardControlled.kt @@ -5,6 +5,5 @@ package net.torvald.terrarum.ui */ interface KeyboardControlled { fun keyPressed(key: Int, c: Char) - fun keyReleased(key: Int, c: Char) } \ No newline at end of file diff --git a/src/net/torvald/terrarum/ui/MouseControlled.kt b/src/net/torvald/terrarum/ui/MouseControlled.kt index 181d6a3b5..80e04a378 100644 --- a/src/net/torvald/terrarum/ui/MouseControlled.kt +++ b/src/net/torvald/terrarum/ui/MouseControlled.kt @@ -5,12 +5,8 @@ package net.torvald.terrarum.ui */ interface MouseControlled { fun mouseMoved(oldx: Int, oldy: Int, newx: Int, newy: Int) - fun mouseDragged(oldx: Int, oldy: Int, newx: Int, newy: Int) - fun mousePressed(button: Int, x: Int, y: Int) - fun mouseReleased(button: Int, x: Int, y: Int) - fun mouseWheelMoved(change: Int) } \ No newline at end of file diff --git a/src/net/torvald/terrarum/ui/UIHandler.kt b/src/net/torvald/terrarum/ui/UIHandler.kt index 3713549d2..e185e576d 100644 --- a/src/net/torvald/terrarum/ui/UIHandler.kt +++ b/src/net/torvald/terrarum/ui/UIHandler.kt @@ -117,10 +117,10 @@ constructor(val UI: UICanvas) { fun render(gc: GameContainer, sbg: StateBasedGame, ingameGraphics: Graphics) { if (isVisible || alwaysVisible) { UIGraphicInstance.clear() - UIGraphicInstance.font = Terrarum.gameFont + UIGraphicInstance.font = Terrarum.fontGame UI.render(gc, UIGraphicInstance) - if (sbg.currentStateID == Terrarum.SCENE_ID_GAME) { + if (sbg.currentStateID == Terrarum.STATE_ID_GAME) { ingameGraphics.drawImage(UIDrawnCanvas.getScaledCopy(scale), posX + MapCamera.cameraX * Terrarum.ingame.screenZoom - (UI.width / 2f * scale.minus(1)), posY + MapCamera.cameraY * Terrarum.ingame.screenZoom - (UI.height / 2f * scale.minus(1)), diff --git a/src/net/torvald/terrarum/ui/UIItem.kt b/src/net/torvald/terrarum/ui/UIItem.kt index 7e26e68fc..2fdc801bd 100644 --- a/src/net/torvald/terrarum/ui/UIItem.kt +++ b/src/net/torvald/terrarum/ui/UIItem.kt @@ -1,13 +1,32 @@ package net.torvald.terrarum.ui +import org.newdawn.slick.GameContainer +import org.newdawn.slick.Graphics + /** * Created by minjaesong on 15-12-31. */ -class UIItem { +interface UIItem { // X/Y Position relative to the containing canvas - internal var posX: Int = 0 - internal var posY: Int = 0 + var posX: Int + var posY: Int + fun update(gc: GameContainer, delta: Int) + fun render(gc: GameContainer, g: Graphics) + // keyboard controlled + fun keyPressed(key: Int, c: Char) + fun keyReleased(key: Int, c: Char) + + // mouse controlled + fun mouseMoved(oldx: Int, oldy: Int, newx: Int, newy: Int) + fun mouseDragged(oldx: Int, oldy: Int, newx: Int, newy: Int) + fun mousePressed(button: Int, x: Int, y: Int) + fun mouseReleased(button: Int, x: Int, y: Int) + fun mouseWheelMoved(change: Int) + + // gamepad controlled + fun controllerButtonPressed(controller: Int, button: Int) + fun controllerButtonReleased(controller: Int, button: Int) } diff --git a/src/net/torvald/terrarum/ui/UIPieMenu.kt b/src/net/torvald/terrarum/ui/UIPieMenu.kt index 245872dbb..38c28f8b1 100644 --- a/src/net/torvald/terrarum/ui/UIPieMenu.kt +++ b/src/net/torvald/terrarum/ui/UIPieMenu.kt @@ -36,6 +36,8 @@ class UIPieMenu : UICanvas { if (selection >= 0) Terrarum.ingame.player.actorValue[AVKey._PLAYER_QUICKBARSEL] = selection % slotCount + + } override fun render(gc: GameContainer, g: Graphics) { diff --git a/src/net/torvald/terrarum/ui/UIQuickBar.kt b/src/net/torvald/terrarum/ui/UIQuickBar.kt index 799a2e957..6ec66cecc 100644 --- a/src/net/torvald/terrarum/ui/UIQuickBar.kt +++ b/src/net/torvald/terrarum/ui/UIQuickBar.kt @@ -12,7 +12,7 @@ import org.newdawn.slick.Input class UIQuickBar : UICanvas, MouseControlled { private val gutter = 8 override var width: Int = (ItemSlotImageBuilder.slotImageSize + gutter) * SLOT_COUNT - override var height: Int = ItemSlotImageBuilder.slotImageSize + 4 + Terrarum.gameFont.lineHeight + override var height: Int = ItemSlotImageBuilder.slotImageSize + 4 + Terrarum.fontGame.lineHeight /** * In milliseconds */ diff --git a/work_files/health_and_safety_2.tiff b/work_files/health_and_safety_2.tiff new file mode 100644 index 0000000000000000000000000000000000000000..8c5f7585e40bc6b19688722f480f64c23c95c296 GIT binary patch literal 29068 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

kxDfEDyf!iW>ZWJ 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%0A~oXb$I+ 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 O%PYC7g>QD>zWpx~bZA`w literal 0 HcmV?d00001