new TV-safe watch UI

This commit is contained in:
minjaesong
2019-01-24 02:32:28 +09:00
parent e4f456ffa7
commit bdbf6cd458
9 changed files with 56 additions and 22 deletions

View File

@@ -0,0 +1,15 @@
SET basefilename=%~d1%~p1%~n1
SET inputextension=%~x1
rem inputextension should be dot-psd
rem color space must be Lab16
IF "%inputextension%" NEQ ".psd" goto fail
convert %1 -colorspace sRGB -write mpr:temp -background black -alpha Remove mpr:temp -compose Copy_Opacity -composite "%basefilename%.tga"
exit
:fail
echo "File not PSD"
pause
exit /b 1

Binary file not shown.

View File

@@ -337,7 +337,10 @@ open class Ingame(batch: SpriteBatch) : IngameInstance(batch) {
uiWatchTierOne = UITierOneWatch(actorNowPlaying)
uiWatchTierOne.setAsAlwaysVisible()
uiWatchTierOne.setPosition(Terrarum.WIDTH - uiWatchTierOne.width, uiWatchBasic.height - 2)
uiWatchTierOne.setPosition(
((Terrarum.WIDTH - AppLoader.getTvSafeActionWidth()) - (uiQuickBar.posX + uiQuickBar.width) - uiWatchTierOne.width) / 2 + (uiQuickBar.posX + uiQuickBar.width),
AppLoader.getTvSafeGraphicsHeight() + 7
)
uiTooltip = UITooltip()
@@ -512,14 +515,6 @@ open class Ingame(batch: SpriteBatch) : IngameInstance(batch) {
// TODO thread pool(?)
CollisionSolver.process()
visibleActorsRenderBehind = actorsRenderBehind.filter { it.inScreen() }
visibleActorsRenderMiddle = actorsRenderMiddle.filter { it.inScreen() }
visibleActorsRenderMidTop = actorsRenderMidTop.filter { it.inScreen() }
visibleActorsRenderFront = actorsRenderFront.filter { it.inScreen() }
visibleActorsRenderOverlay=actorsRenderOverlay.filter { it.inScreen() }
WorldCamera.update(gameworld, actorNowPlaying)
}
@@ -542,6 +537,8 @@ open class Ingame(batch: SpriteBatch) : IngameInstance(batch) {
private fun renderGame() {
Gdx.graphics.setTitle(getCanonicalTitle())
filterVisibleActors()
IngameRenderer.invoke(
world as GameWorldExtension,
visibleActorsRenderBehind,
@@ -556,6 +553,14 @@ open class Ingame(batch: SpriteBatch) : IngameInstance(batch) {
}
private fun filterVisibleActors() {
visibleActorsRenderBehind = actorsRenderBehind.filter { it.inScreen() }
visibleActorsRenderMiddle = actorsRenderMiddle.filter { it.inScreen() }
visibleActorsRenderMidTop = actorsRenderMidTop.filter { it.inScreen() }
visibleActorsRenderFront = actorsRenderFront.filter { it.inScreen() }
visibleActorsRenderOverlay=actorsRenderOverlay.filter { it.inScreen() }
}
private fun repossessActor() {
// check if currently pocessed actor is removed from game
if (!theGameHasActor(actorNowPlaying)) {
@@ -913,6 +918,7 @@ open class Ingame(batch: SpriteBatch) : IngameInstance(batch) {
notifier.setPosition(
(Terrarum.WIDTH - notifier.width) / 2, Terrarum.HEIGHT - notifier.height)
uiQuickBar.setPosition((Terrarum.WIDTH - uiQuickBar.width) / 2, AppLoader.getTvSafeGraphicsHeight())
// inventory
/*uiInventoryPlayer =
@@ -925,7 +931,11 @@ open class Ingame(batch: SpriteBatch) : IngameInstance(batch) {
// basic watch-style notification bar (temperature, new mail)
uiWatchBasic.setPosition(Terrarum.WIDTH - uiWatchBasic.width, 0)
uiWatchTierOne.setPosition(Terrarum.WIDTH - uiWatchTierOne.width, uiWatchBasic.height - 2)
uiWatchTierOne.setPosition(
((Terrarum.WIDTH - AppLoader.getTvSafeGraphicsWidth()) - (uiQuickBar.posX + uiQuickBar.width) - uiWatchTierOne.width) / 2 + (uiQuickBar.posX + uiQuickBar.width),
AppLoader.getTvSafeGraphicsHeight() + 7
)
}

View File

@@ -18,15 +18,15 @@ import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
* Created by minjaesong on 2017-06-11.
*/
class UITierOneWatch(private val player: ActorHumanoid?) : UICanvas() {
override var width = 77
override var height = 53
override var width = 160
override var height = 25
override var openCloseTime: Second = 0f
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/watchface2_atlas.tga"), width, height)
private var atlas = TextureRegionPack(ModMgr.getPath("basegame", "gui/watchface_atlas.tga"), width, height)
private var littleFont = Watch7SegSmall
private var timeFont = Watch7SegMain
@@ -68,7 +68,7 @@ class UITierOneWatch(private val player: ActorHumanoid?) : UICanvas() {
}
else {
// backplate
batch.color = drawCol
batch.color = Color.WHITE
batch.draw(atlas.get(0, 0), 0f, 0f)
}
@@ -80,15 +80,15 @@ class UITierOneWatch(private val player: ActorHumanoid?) : UICanvas() {
// day name
batch.color = lcdLitCol
textFont.draw(batch, worldTime.getDayNameShort().toUpperCase(), 9f, 5f)
textFont.draw(batch, worldTime.getDayNameShort().toUpperCase(), 71f, 7f)
// day
littleFont.draw(batch, worldTime.days.toString().padStart(2, ' '), 54f, 4f)
littleFont.draw(batch, worldTime.days.toString().padStart(2, ' '), 110f, 6f)
// hour
timeFont.draw(batch, worldTime.hours.toString().padStart(2, '/'), 25f, 31f)
littleFont.draw(batch, worldTime.hours.toString().padStart(2, '/'), 26f, 6f)
// minute
timeFont.draw(batch, worldTime.minutes.toString().padStart(2, '0'), 53f, 31f)
littleFont.draw(batch, worldTime.minutes.toString().padStart(2, '0'), 48f, 6f)
// season marker
batch.draw(atlas.get(1, worldTime.months - 1), 0f, 0f)
@@ -97,7 +97,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), 4f, 19f)
batch.draw(moonDial.get(moonPhase, 0), 6f, 4f)
}
override fun doOpening(delta: Float) {

Binary file not shown.

Binary file not shown.