From 71f387ed94a9daca1104312848ed8447ab0a9afd Mon Sep 17 00:00:00 2001 From: minjaesong Date: Tue, 6 Nov 2018 23:40:36 +0900 Subject: [PATCH] a new watchface to support seasons instead of months --- assets/mods/basegame/gui/watchface2_atlas.tga | 3 +++ assets/tiling.frag | 2 +- .../terrarum/modulebasegame/IngameRenderer.kt | 2 -- .../modulebasegame/ui/UITierOneWatch.kt | 23 ++++++++++--------- .../terrarum/worlddrawer/BlocksDrawerNew.kt | 4 ++++ work_files/UI/watchface_mockup.psd | 4 ++-- 6 files changed, 22 insertions(+), 16 deletions(-) create mode 100644 assets/mods/basegame/gui/watchface2_atlas.tga diff --git a/assets/mods/basegame/gui/watchface2_atlas.tga b/assets/mods/basegame/gui/watchface2_atlas.tga new file mode 100644 index 000000000..966beb23f --- /dev/null +++ b/assets/mods/basegame/gui/watchface2_atlas.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b43034bbb6c094f6e4c93e85c7c8e5ea9fc48133c27718659f893ff3a0e1de64 +size 130636 diff --git a/assets/tiling.frag b/assets/tiling.frag index b8887400c..2b2359052 100644 --- a/assets/tiling.frag +++ b/assets/tiling.frag @@ -72,7 +72,7 @@ void main() { // TODO blend a breakage (0xrrggbb where 0xr0 -- upper 4 bits of int_red component) - // if statements considered harmful + // if statements considered harmful (on shader program) // --definitely not Dijkstra /*if (tileXY.x == 0 && tileXY.y == 0) gl_FragColor = nocolour; diff --git a/src/net/torvald/terrarum/modulebasegame/IngameRenderer.kt b/src/net/torvald/terrarum/modulebasegame/IngameRenderer.kt index 72e21c35a..0d63981f1 100644 --- a/src/net/torvald/terrarum/modulebasegame/IngameRenderer.kt +++ b/src/net/torvald/terrarum/modulebasegame/IngameRenderer.kt @@ -9,9 +9,7 @@ import net.torvald.dataclass.CircularArray import net.torvald.terrarum.* import net.torvald.terrarum.gameactors.ActorWithBody import net.torvald.terrarum.gamecontroller.KeyToggler -import net.torvald.terrarum.gameworld.GameWorld import net.torvald.terrarum.gameworld.fmod -import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid import net.torvald.terrarum.modulebasegame.gameactors.ParticleBase import net.torvald.terrarum.modulebasegame.gameworld.GameWorldExtension import net.torvald.terrarum.ui.UICanvas diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UITierOneWatch.kt b/src/net/torvald/terrarum/modulebasegame/ui/UITierOneWatch.kt index 1a204d57f..6eeeefa58 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UITierOneWatch.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UITierOneWatch.kt @@ -22,15 +22,15 @@ import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack * Created by minjaesong on 2017-06-11. */ class UITierOneWatch(private val player: ActorHumanoid?) : UICanvas() { - override var width = 85 - override var height = 52 + override var width = 77 + override var height = 53 override var openCloseTime: Second = 0f - private var ELuptimer = 10f // to make the light turned off by default + private var ELuptimer = 10f // init value higher than uptime: to make the light turned off by default private val ELuptime = 4f private var ELon = false - private var atlas = TextureRegionPack(ModMgr.getPath("basegame", "gui/watchface_atlas.tga"), width, height) + private var atlas = TextureRegionPack(ModMgr.getPath("basegame", "gui/watchface2_atlas.tga"), width, height) private var littleFont = Watch7SegSmall private var timeFont = Watch7SegMain @@ -91,23 +91,24 @@ class UITierOneWatch(private val player: ActorHumanoid?) : UICanvas() { // day name batch.color = lcdLitCol - textFont.draw(batch, worldTime.getDayNameShort().toUpperCase(), 7f, 7f) + textFont.draw(batch, worldTime.getDayNameShort().toUpperCase(), 9f, 5f) - // month - littleFont.draw(batch, worldTime.months.toString().padStart(2, ' '), 40f, 6f) // day - littleFont.draw(batch, worldTime.days.toString().padStart(2, ' '), 62f, 6f) + littleFont.draw(batch, worldTime.days.toString().padStart(2, ' '), 54f, 4f) // hour - timeFont.draw(batch, worldTime.hours.toString().padStart(2, '/'), 30f, 28f) + timeFont.draw(batch, worldTime.hours.toString().padStart(2, '/'), 25f, 31f) // minute - timeFont.draw(batch, worldTime.minutes.toString().padStart(2, '0'), 58f, 28f) + timeFont.draw(batch, worldTime.minutes.toString().padStart(2, '0'), 53f, 31f) + + // season marker + batch.draw(atlas.get(1, worldTime.months - 1), 0f, 0f) // moon dial val moonPhase = (worldTime.moonPhase * moonDialCount).roundInt() % moonDialCount batch.color = lcdLitCol - batch.draw(moonDial.get(moonPhase, 0), 4f, 22f) + batch.draw(moonDial.get(moonPhase, 0), 4f, 19f) } override fun doOpening(delta: Float) { diff --git a/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt b/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt index e2c0feb17..281bb0b84 100644 --- a/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt +++ b/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt @@ -24,6 +24,10 @@ import java.util.zip.GZIPInputStream /** * Sub-portion of IngameRenderer. You are not supposed to directly deal with this. * + * The terrain texture atlas is HARD CODED as "4096x4096, on which 256x256 tiles are contained" + * in the shader (tiling.frag). This will not be a problem in the base game, but if you are modifying + * this engine for your project, you must edit the shader program accordingly. + * * Created by minjaesong on 2016-01-19. */ internal object BlocksDrawer { diff --git a/work_files/UI/watchface_mockup.psd b/work_files/UI/watchface_mockup.psd index 16227af2e..dd99bcc36 100644 --- a/work_files/UI/watchface_mockup.psd +++ b/work_files/UI/watchface_mockup.psd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e707caae1ce2557bc81a4f2592b9eac1164b3a4bdaf77375bd51b987381575d3 -size 3430728 +oid sha256:734ec99e113a0b3d31d0cab91326e8bd96687ac2e1784b4a87fab2cd67132ca7 +size 3514819