new watch design consistent with existing UI

This commit is contained in:
minjaesong
2019-01-24 19:27:12 +09:00
parent 4ddf037626
commit 55cfae831a
12 changed files with 79 additions and 36 deletions

View File

@@ -8,9 +8,7 @@ import net.torvald.terrarum.*
import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid
import net.torvald.terrarum.modulebasegame.gameworld.GameWorldExtension
import net.torvald.terrarum.modulebasegame.gameworld.WorldTime
import net.torvald.terrarum.modulebasegame.imagefont.Watch7SegMain
import net.torvald.terrarum.modulebasegame.imagefont.Watch7SegSmall
import net.torvald.terrarum.modulebasegame.imagefont.WatchDotAlph
import net.torvald.terrarum.modulebasegame.imagefont.WatchFont
import net.torvald.terrarum.ui.UICanvas
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
@@ -19,7 +17,7 @@ import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
*/
class UITierOneWatch(private val player: ActorHumanoid?) : UICanvas() {
override var width = 160
override var height = 25
override var height = 23
override var openCloseTime: Second = 0f
private var ELuptimer = 10f // init value higher than uptime: to make the light turned off by default
@@ -28,18 +26,16 @@ class UITierOneWatch(private val player: ActorHumanoid?) : UICanvas() {
private var atlas = TextureRegionPack(ModMgr.getPath("basegame", "gui/watchface_atlas.tga"), width, height)
private var littleFont = Watch7SegSmall
private var timeFont = Watch7SegMain
private var textFont = WatchDotAlph
private var watchFont = WatchFont
private var moonDial = TextureRegionPack(ModMgr.getPath("basegame", "fonts/watch_17pxmoondial.tga"), 17, 17)
private var moonDialCount = moonDial.horizontalCount
private val drawCol = Color(1f,1f,1f,0.5f)
private val lcdLitColELoff = Color(0x141414_aa)
private val lcdLitColELon = Color(0x141414_ff)
private val drawCol = Color(1f,1f,1f,UIQuickslotBar.DISPLAY_OPACITY)
private val lcdLitColELoff = Color(0xc0c0c0ff.toInt()) mul drawCol
private val lcdLitColELon = Color(0x404040ff) mul drawCol
private val lcdLitCol: Color
get() = if (ELon) lcdLitColELon else lcdLitColELoff
private val lcdLitCol: Color = lcdLitColELoff
//get() = if (ELon) lcdLitColELon else lcdLitColELoff
private val worldTime: WorldTime
get() = (Terrarum.ingame!!.world as GameWorldExtension).time
@@ -62,33 +58,30 @@ class UITierOneWatch(private val player: ActorHumanoid?) : UICanvas() {
override fun renderUI(batch: SpriteBatch, camera: Camera) {
// light overlay or EL
/*blendNormal(batch)
if (ELon) {
blendNormal(batch)
batch.draw(atlas.get(0, 2), 0f, 0f)
}
else {
// backplate
batch.color = Color.WHITE
batch.draw(atlas.get(0, 0), 0f, 0f)
}
// LCD back
blendNormal(batch)
batch.draw(atlas.get(0, 3), 0f, 0f)
}*/
// disabling light button
batch.color = drawCol
batch.draw(atlas.get(0, 0), 0f, 0f)
// day name
batch.color = lcdLitCol
textFont.draw(batch, worldTime.getDayNameShort().toUpperCase(), 71f, 7f)
watchFont.draw(batch, worldTime.getDayNameShort().toUpperCase(), 73f, 7f)
// day
littleFont.draw(batch, worldTime.days.toString().padStart(2, ' '), 110f, 6f)
watchFont.draw(batch, worldTime.days.toString().padStart(2, '@'), 107f, 7f)
// hour
littleFont.draw(batch, worldTime.hours.toString().padStart(2, '/'), 26f, 6f)
watchFont.draw(batch, worldTime.hours.toString().padStart(2, '@'), 27f, 7f)
// minute
littleFont.draw(batch, worldTime.minutes.toString().padStart(2, '0'), 48f, 6f)
watchFont.draw(batch, worldTime.minutes.toString().padStart(2, '0'), 49f, 7f)
// season marker
batch.draw(atlas.get(1, worldTime.months - 1), 0f, 0f)
@@ -97,7 +90,7 @@ class UITierOneWatch(private val player: ActorHumanoid?) : UICanvas() {
// moon dial
val moonPhase = (worldTime.moonPhase * moonDialCount).roundInt() % moonDialCount
batch.color = lcdLitCol
batch.draw(moonDial.get(moonPhase, 0), 6f, 4f)
batch.draw(moonDial.get(moonPhase, 0), 6f, 3f)
}
override fun doOpening(delta: Float) {