diff --git a/assets/locales/en/terrarum.json b/assets/locales/en/terrarum.json index 901e1970c..9d9cee07a 100644 --- a/assets/locales/en/terrarum.json +++ b/assets/locales/en/terrarum.json @@ -11,5 +11,6 @@ "MENU_LABEL_RESET" : "Reset", "GAME_32BIT_WARNING1": "It looks like you’re running a 32-Bit version of Java.", "GAME_32BIT_WARNING2": "Please download and install the latest 64-Bit Java at:", - "GAME_32BIT_WARNING3": "https://www.java.com/en/download/" + "GAME_32BIT_WARNING3": "https://www.java.com/en/download/", + "MENU_OPTION_STREAMERS_LAYOUT": "Chat Overlay Mode" } \ No newline at end of file diff --git a/assets/locales/koKR/terrarum.json b/assets/locales/koKR/terrarum.json index c133c2fbd..41a2cb60a 100644 --- a/assets/locales/koKR/terrarum.json +++ b/assets/locales/koKR/terrarum.json @@ -10,5 +10,6 @@ "MENU_LABEL_RESET" : "재설정", "GAME_32BIT_WARNING1": "32비트 버전의 Java를 사용중인 것 같습니다.", "GAME_32BIT_WARNING2": "아래 링크에서 최신 64비트 Java를 내려받아 설치해주세요.", - "GAME_32BIT_WARNING3": "https://www.java.com/ko/download/" + "GAME_32BIT_WARNING3": "https://www.java.com/ko/download/", + "MENU_OPTION_STREAMERS_LAYOUT": "스트리머 채팅창 모드" } \ No newline at end of file diff --git a/src/net/torvald/terrarum/DefaultConfig.kt b/src/net/torvald/terrarum/DefaultConfig.kt index e9955b090..d6dcc1ce5 100644 --- a/src/net/torvald/terrarum/DefaultConfig.kt +++ b/src/net/torvald/terrarum/DefaultConfig.kt @@ -96,6 +96,7 @@ object DefaultConfig { "fx_dither" to true, "fx_retro" to false, "fx_backgroundblur" to true, + "fx_streamerslayout" to false, //"fx_3dlut" to false, diff --git a/src/net/torvald/terrarum/PostProcessor.kt b/src/net/torvald/terrarum/PostProcessor.kt index 940366553..79f422277 100644 --- a/src/net/torvald/terrarum/PostProcessor.kt +++ b/src/net/torvald/terrarum/PostProcessor.kt @@ -14,6 +14,7 @@ import com.badlogic.gdx.math.Matrix4 import com.badlogic.gdx.utils.Disposable import net.torvald.terrarum.gamecontroller.KeyToggler import net.torvald.terrarum.ui.BasicDebugInfoWindow +import net.torvald.terrarum.ui.Toolkit /** * Must be called by the App Loader @@ -88,6 +89,7 @@ object PostProcessor : Disposable { drawSafeArea() } + if (KeyToggler.isOn(Input.Keys.F1)) { batch.color = Color.WHITE batch.inUse { @@ -150,29 +152,31 @@ object PostProcessor : Disposable { val tvSafeArea2W = App.scr.tvSafeActionWidth.toFloat() val tvSafeArea2H = App.scr.tvSafeActionHeight.toFloat() + val scrw = Toolkit.drawWidthf + shapeRenderer.inUse(ShapeRenderer.ShapeType.Line) { // centre ind shapeRenderer.color = safeAreaCol2 - shapeRenderer.line(0f, 0f, App.scr.wf, App.scr.hf) - shapeRenderer.line(0f, App.scr.hf, App.scr.wf, 0f) + shapeRenderer.line(0f, 0f, scrw, App.scr.hf) + shapeRenderer.line(0f, App.scr.hf, scrw, 0f) // safe action area shapeRenderer.color = safeAreaCol2 shapeRenderer.rect( - tvSafeArea2W, tvSafeArea2H, App.scr.width - 2 * tvSafeArea2W, App.scr.height - 2 * tvSafeArea2H + tvSafeArea2W, tvSafeArea2H, scrw - 2 * tvSafeArea2W, App.scr.height - 2 * tvSafeArea2H ) // safe graphics area shapeRenderer.color = safeAreaCol shapeRenderer.rect( - tvSafeAreaW, tvSafeAreaH, App.scr.width - 2 * tvSafeAreaW, App.scr.height - 2 * tvSafeAreaH + tvSafeAreaW, tvSafeAreaH, scrw - 2 * tvSafeAreaW, App.scr.height - 2 * tvSafeAreaH ) // default res ind shapeRenderer.color = defaultResCol shapeRenderer.rect( - (App.scr.width - TerrarumScreenSize.minimumW).div(2).toFloat(), + (scrw - TerrarumScreenSize.minimumW).div(2).toFloat(), (App.scr.height - TerrarumScreenSize.minimumH).div(2).toFloat(), TerrarumScreenSize.minimumW.toFloat(), TerrarumScreenSize.minimumH.toFloat() @@ -190,14 +194,14 @@ object PostProcessor : Disposable { batch.color = defaultResCol App.fontSmallNumbers.draw( batch, defaultResStr, - (App.scr.width - TerrarumScreenSize.minimumW).div(2).toFloat(), + (scrw - TerrarumScreenSize.minimumW).div(2).toFloat(), (App.scr.height - TerrarumScreenSize.minimumH).div(2).toFloat() ) batch.color = currentResCol App.fontSmallNumbers.draw( batch, currentResStr, - App.scr.width - 80f, + scrw - 80f, 0f ) } diff --git a/src/net/torvald/terrarum/TerrarumScreenSize.kt b/src/net/torvald/terrarum/TerrarumScreenSize.kt index d80933957..d7bef600d 100644 --- a/src/net/torvald/terrarum/TerrarumScreenSize.kt +++ b/src/net/torvald/terrarum/TerrarumScreenSize.kt @@ -1,5 +1,7 @@ package net.torvald.terrarum +import kotlin.math.roundToInt + class TerrarumScreenSize(scrw: Int = defaultW, scrh: Int = defaultH) { companion object { @@ -21,7 +23,7 @@ class TerrarumScreenSize(scrw: Int = defaultW, scrh: Int = defaultH) { var halfwf: Float = 0f; private set var halfhf: Float = 0f; private set var aspectRatio: Float = 0f; private set - + var chatWidth: Int = 0; private set val tvSafeGraphicsWidth: Int; get() = Math.round(width * TV_SAFE_GRAPHICS) @@ -43,6 +45,7 @@ class TerrarumScreenSize(scrw: Int = defaultW, scrh: Int = defaultH) { halfwf = wf / 2f halfhf = hf / 2f aspectRatio = wf / hf + chatWidth = (width - (width * 0.84375).roundToInt()) and 0x7FFFFFFE } } \ No newline at end of file diff --git a/src/net/torvald/terrarum/TitleScreen.kt b/src/net/torvald/terrarum/TitleScreen.kt index d41ef6987..b93f49bfb 100644 --- a/src/net/torvald/terrarum/TitleScreen.kt +++ b/src/net/torvald/terrarum/TitleScreen.kt @@ -321,11 +321,12 @@ class TitleScreen(batch: SpriteBatch) : IngameInstance(batch) { TerrarumAppConfiguration.COPYRIGHT_DATE_NAME, TerrarumAppConfiguration.COPYRIGHT_LICENSE ) + val drawWidth = Toolkit.drawWidth COPYTING.forEachIndexed { index, s -> val textWidth = App.fontGame.getWidth(s) App.fontGame.draw(batch, s, - (App.scr.width - textWidth - 1f).toInt().toFloat(), + (drawWidth - textWidth - 1f).toInt().toFloat(), (App.scr.height - App.fontGame.lineHeight * (COPYTING.size - index) - 1f).toInt().toFloat() ) } @@ -345,7 +346,7 @@ class TitleScreen(batch: SpriteBatch) : IngameInstance(batch) { for (i in 0..2) { val text = Lang.get("GAME_32BIT_WARNING${i+1}", (i != 2)) if (i == 2) batch.color = UIItemTextButton.defaultHighlightCol - App.fontGame.draw(batch, text, ((App.scr.width - App.fontGame.getWidth(text)) / 2).toFloat(), yoff + imgTxtGap + 64f + linegap + i*(20+linegap)) + App.fontGame.draw(batch, text, ((drawWidth - App.fontGame.getWidth(text)) / 2).toFloat(), yoff + imgTxtGap + 64f + linegap + i*(20+linegap)) } } } diff --git a/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt b/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt index eb63e4910..1c8c5662a 100644 --- a/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt +++ b/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt @@ -37,6 +37,7 @@ import net.torvald.terrarum.realestate.LandUtil import net.torvald.terrarum.serialise.* import net.torvald.terrarum.tvda.VDUtil import net.torvald.terrarum.tvda.VirtualDisk +import net.torvald.terrarum.ui.Toolkit import net.torvald.terrarum.ui.UIAutosaveNotifier import net.torvald.terrarum.ui.UICanvas import net.torvald.terrarum.weather.WeatherMixer @@ -391,6 +392,7 @@ open class TerrarumIngame(batch: SpriteBatch) : IngameInstance(batch) { //consoleHandler = ConsoleWindow() //consoleHandler.setPosition(0, 0) + val drawWidth = Toolkit.drawWidth @@ -402,11 +404,11 @@ open class TerrarumIngame(batch: SpriteBatch) : IngameInstance(batch) { // quick bar uiQuickBar = UIQuickslotBar() uiQuickBar.isVisible = true - uiQuickBar.setPosition((App.scr.width - uiQuickBar.width) / 2, App.scr.tvSafeGraphicsHeight) + uiQuickBar.setPosition((drawWidth - uiQuickBar.width) / 2, App.scr.tvSafeGraphicsHeight) // pie menu uiPieMenu = UIQuickslotPie() - uiPieMenu.setPosition(App.scr.halfw, App.scr.halfh) + uiPieMenu.setPosition(drawWidth / 2, App.scr.halfh) // vital metre // fill in getter functions by @@ -425,7 +427,7 @@ open class TerrarumIngame(batch: SpriteBatch) : IngameInstance(batch) { uiWatchTierOne = UITierOneWatch() uiWatchTierOne.setAsAlwaysVisible() uiWatchTierOne.setPosition( - ((App.scr.width - App.scr.tvSafeActionWidth) - (uiQuickBar.posX + uiQuickBar.width) - uiWatchTierOne.width) / 2 + (uiQuickBar.posX + uiQuickBar.width), + ((drawWidth - App.scr.tvSafeActionWidth) - (uiQuickBar.posX + uiQuickBar.width) - uiWatchTierOne.width) / 2 + (uiQuickBar.posX + uiQuickBar.width), App.scr.tvSafeGraphicsHeight + 8 ) @@ -1171,7 +1173,7 @@ open class TerrarumIngame(batch: SpriteBatch) : IngameInstance(batch) { IngameRenderer.resize(App.scr.width, App.scr.height) - + val drawWidth = Toolkit.drawWidth if (gameInitialised) { //LightmapRenderer.fireRecalculateEvent() @@ -1182,8 +1184,8 @@ open class TerrarumIngame(batch: SpriteBatch) : IngameInstance(batch) { // resize UIs notifier.setPosition( - (App.scr.width - notifier.width) / 2, App.scr.height - notifier.height) - uiQuickBar.setPosition((App.scr.width - uiQuickBar.width) / 2, App.scr.tvSafeGraphicsHeight) + (drawWidth - notifier.width) / 2, App.scr.height - notifier.height) + uiQuickBar.setPosition((drawWidth - uiQuickBar.width) / 2, App.scr.tvSafeGraphicsHeight) // inventory /*uiInventoryPlayer = @@ -1195,9 +1197,9 @@ open class TerrarumIngame(batch: SpriteBatch) : IngameInstance(batch) { // basic watch-style notification bar (temperature, new mail) - uiBasicInfo.setPosition(App.scr.width - uiBasicInfo.width, 0) + uiBasicInfo.setPosition(drawWidth - uiBasicInfo.width, 0) uiWatchTierOne.setPosition( - ((App.scr.width - App.scr.tvSafeGraphicsWidth) - (uiQuickBar.posX + uiQuickBar.width) - uiWatchTierOne.width) / 2 + (uiQuickBar.posX + uiQuickBar.width), + ((drawWidth - App.scr.tvSafeGraphicsWidth) - (uiQuickBar.posX + uiQuickBar.width) - uiWatchTierOne.width) / 2 + (uiQuickBar.posX + uiQuickBar.width), App.scr.tvSafeGraphicsHeight + 8 ) } diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryCells.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryCells.kt index b02b6c259..55ad668d3 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryCells.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryCells.kt @@ -10,18 +10,19 @@ import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.CELLS_HO import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.CELLS_VRT import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_OFFSET_X import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_OFFSET_Y -import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.internalWidth import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVEN_DEBUG_MODE import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.controlHelpHeight +import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.internalWidth import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryItemGrid.Companion.createInvCellGenericKeyDownFun import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryItemGrid.Companion.createInvCellGenericTouchDownFun +import net.torvald.terrarum.ui.Toolkit import net.torvald.terrarum.ui.UICanvas internal class UIInventoryCells( val full: UIInventoryFull ) : UICanvas() { - override var width: Int = App.scr.width + override var width: Int = Toolkit.drawWidth override var height: Int = App.scr.height override var openCloseTime: Second = 0.0f @@ -52,7 +53,7 @@ internal class UIInventoryCells( private val equipped: UIItemInventoryEquippedView = UIItemInventoryEquippedView( full, - internalWidth - UIItemInventoryEquippedView.WIDTH + (App.scr.width - internalWidth) / 2, + internalWidth - UIItemInventoryEquippedView.WIDTH + (width - internalWidth) / 2, INVENTORY_CELLS_OFFSET_Y, { rebuildList() } ) diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryEscMenu.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryEscMenu.kt index 8bea2dae8..5eedb5295 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryEscMenu.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryEscMenu.kt @@ -9,6 +9,7 @@ import net.torvald.terrarum.modulebasegame.TerrarumIngame import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_OFFSET_Y import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_UI_HEIGHT import net.torvald.terrarum.serialise.WriteSavegame +import net.torvald.terrarum.ui.Toolkit import net.torvald.terrarum.ui.UICanvas import net.torvald.terrarum.ui.UIItem import net.torvald.terrarum.ui.UIItemTextButtonList @@ -17,7 +18,7 @@ import java.io.File class UIInventoryEscMenu(val full: UIInventoryFull) : UICanvas() { - override var width: Int = App.scr.width + override var width: Int = Toolkit.drawWidth override var height: Int = App.scr.height override var openCloseTime = 0.0f @@ -32,7 +33,7 @@ class UIInventoryEscMenu(val full: UIInventoryFull) : UICanvas() { private val gameMenuListWidth = 400 private val gameMenuButtons = UIItemTextButtonList( this, DEFAULT_LINE_HEIGHT, gameMenu, - (App.scr.width - gameMenuListWidth) / 2, + (width - gameMenuListWidth) / 2, INVENTORY_CELLS_OFFSET_Y + (INVENTORY_CELLS_UI_HEIGHT - gameMenuListHeight) / 2, gameMenuListWidth, gameMenuListHeight, readFromLang = true, @@ -45,7 +46,7 @@ class UIInventoryEscMenu(val full: UIInventoryFull) : UICanvas() { ) private val areYouSureMainMenuButtons = UIItemTextButtonList( this, DEFAULT_LINE_HEIGHT, arrayOf("MENU_LABEL_RETURN_MAIN_QUESTION", "MENU_LABEL_RETURN_MAIN", "MENU_LABEL_CANCEL"), - (App.scr.width - gameMenuListWidth) / 2, + (width - gameMenuListWidth) / 2, INVENTORY_CELLS_OFFSET_Y + (INVENTORY_CELLS_UI_HEIGHT - (DEFAULT_LINE_HEIGHT * 3)) / 2, gameMenuListWidth, DEFAULT_LINE_HEIGHT * 3, readFromLang = true, @@ -58,7 +59,7 @@ class UIInventoryEscMenu(val full: UIInventoryFull) : UICanvas() { ) private val areYouSureQuitButtons = UIItemTextButtonList( this, DEFAULT_LINE_HEIGHT, arrayOf("MENU_LABEL_DESKTOP_QUESTION", "MENU_LABEL_DESKTOP", "MENU_LABEL_CANCEL"), - (App.scr.width - gameMenuListWidth) / 2, + (width - gameMenuListWidth) / 2, INVENTORY_CELLS_OFFSET_Y + (INVENTORY_CELLS_UI_HEIGHT - (DEFAULT_LINE_HEIGHT * 3)) / 2, gameMenuListWidth, DEFAULT_LINE_HEIGHT * 3, readFromLang = true, diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt index b8842ae6c..870c87436 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt @@ -11,6 +11,7 @@ import net.torvald.terrarum.App.* import net.torvald.terrarum.blockstats.MinimapComposer import net.torvald.terrarum.langpack.Lang import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid +import net.torvald.terrarum.ui.Toolkit import net.torvald.terrarum.ui.UICanvas import net.torvald.terrarum.ui.UIItemHorizontalFadeSlide import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack @@ -28,7 +29,7 @@ class UIInventoryFull( val actor: ActorHumanoid get() = INGAME.actorNowPlaying!! - override var width: Int = App.scr.width + override var width: Int = Toolkit.drawWidth override var height: Int = App.scr.height override var openCloseTime: Second = 0.0f @@ -48,7 +49,7 @@ class UIInventoryFull( val itemListHeight: Int = CELLS_VRT * UIItemInventoryElemSimple.height + (CELLS_VRT - 1) * net.torvald.terrarum.modulebasegame.ui.UIItemInventoryItemGrid.Companion.listGap val INVENTORY_CELLS_UI_HEIGHT: Int = CELLS_VRT * UIItemInventoryElemSimple.height + (CELLS_VRT - 1) * UIItemInventoryItemGrid.listGap - val INVENTORY_CELLS_OFFSET_X = 0 + (App.scr.width - internalWidth) / 2 + val INVENTORY_CELLS_OFFSET_X = 0 + (Toolkit.drawWidth - internalWidth) / 2 val INVENTORY_CELLS_OFFSET_Y: Int = 107 + (App.scr.height - internalHeight) / 2 val catBarWidth = 330 @@ -148,7 +149,7 @@ class UIInventoryFull( val catBar = UIItemInventoryCatBar( this, - (App.scr.width - catBarWidth) / 2, + (width - catBarWidth) / 2, 42 + (App.scr.height - internalHeight) / 2, internalWidth, catBarWidth, @@ -162,9 +163,9 @@ class UIInventoryFull( private val transitionalEscMenu = UIInventoryEscMenu(this) private val transitionPanel = UIItemHorizontalFadeSlide( this, - (App.scr.width - internalWidth) / 2, + (width - internalWidth) / 2, INVENTORY_CELLS_OFFSET_Y, - App.scr.width, + width, App.scr.height, 1f, transitionalMinimap, transitionalItemCells, transitionalEscMenu @@ -213,7 +214,7 @@ class UIInventoryFull( } - internal var offsetX = ((App.scr.width - internalWidth) / 2).toFloat() + internal var offsetX = ((width - internalWidth) / 2).toFloat() private set internal var offsetY = ((App.scr.height - internalHeight) / 2).toFloat() private set @@ -234,7 +235,7 @@ class UIInventoryFull( //private val gradHeight = 48f private val shapeRenderer = ShapeRenderer() - internal var xEnd = (App.scr.width + internalWidth).div(2).toFloat() + internal var xEnd = (width + internalWidth).div(2).toFloat() private set internal var yEnd = (App.scr.height + internalHeight).div(2).toFloat() private set @@ -299,10 +300,10 @@ class UIInventoryFull( override fun resize(width: Int, height: Int) { super.resize(width, height) - offsetX = ((App.scr.width - internalWidth) / 2).toFloat() + offsetX = ((width - internalWidth) / 2).toFloat() offsetY = ((App.scr.height - internalHeight) / 2).toFloat() - xEnd = (App.scr.width + internalWidth).div(2).toFloat() + xEnd = (width + internalWidth).div(2).toFloat() yEnd = (App.scr.height + internalHeight).div(2).toFloat() } } diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryMinimap.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryMinimap.kt index 0dcf9d5f8..ce936f93a 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryMinimap.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryMinimap.kt @@ -9,13 +9,14 @@ import net.torvald.terrarum.* import net.torvald.terrarum.blockstats.MinimapComposer import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_OFFSET_Y import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_UI_HEIGHT +import net.torvald.terrarum.ui.Toolkit import net.torvald.terrarum.ui.UICanvas class UIInventoryMinimap(val full: UIInventoryFull) : UICanvas() { private val debugvals = true - override var width: Int = App.scr.width + override var width: Int = Toolkit.drawWidth override var height: Int = App.scr.height override var openCloseTime = 0.0f @@ -115,23 +116,23 @@ class UIInventoryMinimap(val full: UIInventoryFull) : UICanvas() { batch.begin() if (debugvals) { - App.fontSmallNumbers.draw(batch, "$minimapPanX, $minimapPanY; x$minimapZoom", (App.scr.width - MINIMAP_WIDTH) / 2, -10f + INVENTORY_CELLS_OFFSET_Y) + App.fontSmallNumbers.draw(batch, "$minimapPanX, $minimapPanY; x$minimapZoom", (width - MINIMAP_WIDTH) / 2, -10f + INVENTORY_CELLS_OFFSET_Y) } batch.projectionMatrix = camera.combined // 1px stroke batch.color = Color.WHITE - batch.fillRect((App.scr.width - MINIMAP_WIDTH) / 2, -1 + INVENTORY_CELLS_OFFSET_Y.toFloat(), MINIMAP_WIDTH, 1f) - batch.fillRect((App.scr.width - MINIMAP_WIDTH) / 2, INVENTORY_CELLS_OFFSET_Y + MINIMAP_HEIGHT, MINIMAP_WIDTH, 1f) - batch.fillRect(-1 + (App.scr.width - MINIMAP_WIDTH) / 2, INVENTORY_CELLS_OFFSET_Y.toFloat(), 1f, MINIMAP_HEIGHT) - batch.fillRect((App.scr.width - MINIMAP_WIDTH) / 2 + MINIMAP_WIDTH, INVENTORY_CELLS_OFFSET_Y.toFloat(), 1f, MINIMAP_HEIGHT) + batch.fillRect((width - MINIMAP_WIDTH) / 2, -1 + INVENTORY_CELLS_OFFSET_Y.toFloat(), MINIMAP_WIDTH, 1f) + batch.fillRect((width - MINIMAP_WIDTH) / 2, INVENTORY_CELLS_OFFSET_Y + MINIMAP_HEIGHT, MINIMAP_WIDTH, 1f) + batch.fillRect(-1 + (width - MINIMAP_WIDTH) / 2, INVENTORY_CELLS_OFFSET_Y.toFloat(), 1f, MINIMAP_HEIGHT) + batch.fillRect((width - MINIMAP_WIDTH) / 2 + MINIMAP_WIDTH, INVENTORY_CELLS_OFFSET_Y.toFloat(), 1f, MINIMAP_HEIGHT) // control hints batch.color = Color.WHITE App.fontGame.draw(batch, full.minimapControlHelp, full.offsetX, full.yEnd - 20) // the minimap - batch.draw(minimapFBO.colorBufferTexture, (App.scr.width - MINIMAP_WIDTH) / 2, INVENTORY_CELLS_OFFSET_Y.toFloat()) + batch.draw(minimapFBO.colorBufferTexture, (width - MINIMAP_WIDTH) / 2, INVENTORY_CELLS_OFFSET_Y.toFloat()) } override fun doOpening(delta: Float) {} diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIKeyboardControlPanel.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIKeyboardControlPanel.kt index 45bc2a8aa..3f74c351f 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIKeyboardControlPanel.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIKeyboardControlPanel.kt @@ -31,7 +31,7 @@ class UIKeyboardControlPanel : UICanvas() { override var height = 600 override var openCloseTime = 0f - private val drawX = (App.scr.width - width) / 2 + private val drawX = (Toolkit.drawWidth - width) / 2 private val drawY = (App.scr.height - height) / 2 internal val kbx = drawX + 61 @@ -128,7 +128,7 @@ class UIKeyboardControlPanel : UICanvas() { private val symbolGrapplingHook = labels.get(5,1) private val symbolGamemenu = labels.get(6,2) - private val controlPalette = UIItemControlPaletteBaloon(this, (App.scr.width - 480) / 2, kby + 219) + private val controlPalette = UIItemControlPaletteBaloon(this, (Toolkit.drawWidth - 480) / 2, kby + 219) init { keycaps.values.forEach { addUIitem(it) } diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt b/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt index 2f829a2ec..cf24a560a 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt @@ -44,7 +44,7 @@ class UILoadDemoSavefiles : UICanvas() { } override var width: Int - get() = App.scr.width + get() = Toolkit.drawWidth set(value) {} override var height: Int get() = App.scr.height @@ -107,7 +107,7 @@ class UILoadDemoSavefiles : UICanvas() { // read savegames var savegamesCount = 0 App.savegames.forEach { skimmer -> - val x = uiX + val x = uiX + if (App.getConfigBoolean("fx_streamerslayout")) App.scr.chatWidth / 2 else 0 val y = titleTopGradEnd + cellInterval * savegamesCount try { addUIitem(UIItemDemoSaveCells(this, x, y, skimmer)) diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIQuickslotPie.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIQuickslotPie.kt index 50cb3b2f0..7ca2eb209 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIQuickslotPie.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIQuickslotPie.kt @@ -5,15 +5,16 @@ import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.jme3.math.FastMath import net.torvald.terrarum.App +import net.torvald.terrarum.ItemCodex import net.torvald.terrarum.Second import net.torvald.terrarum.Terrarum import net.torvald.terrarum.gameactors.AVKey import net.torvald.terrarum.modulebasegame.TerrarumIngame import net.torvald.terrarum.modulebasegame.ui.UIQuickslotBar.Companion.COMMON_OPEN_CLOSE import net.torvald.terrarum.modulebasegame.ui.UIQuickslotBar.Companion.SLOT_COUNT +import net.torvald.terrarum.ui.Toolkit import net.torvald.terrarum.ui.UICanvas import org.dyn4j.geometry.Vector2 -import net.torvald.terrarum.* /** * The Sims styled pie representation of the Quickslot. @@ -49,7 +50,7 @@ class UIQuickslotPie : UICanvas() { // update controls if (handler.isOpened || handler.isOpening) { val cursorPos = Vector2(Terrarum.mouseScreenX.toDouble(), Terrarum.mouseScreenY.toDouble()) - val centre = Vector2(App.scr.halfw.toDouble(), App.scr.halfh.toDouble()) + val centre = Vector2(Toolkit.drawWidth / 2.0, App.scr.halfh.toDouble()) val deg = -(centre - cursorPos).direction.toFloat() selection = Math.round(deg * slotCount / FastMath.TWO_PI) diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIRemoCon.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIRemoCon.kt index 12ed6245a..82e064c5a 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIRemoCon.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIRemoCon.kt @@ -11,6 +11,7 @@ import net.torvald.terrarum.QNDTreeNode import net.torvald.terrarum.TitleScreen import net.torvald.terrarum.Yaml import net.torvald.terrarum.serialise.WriteConfig +import net.torvald.terrarum.ui.Toolkit import net.torvald.terrarum.ui.UICanvas import net.torvald.terrarum.ui.UIItemTextButton import net.torvald.terrarum.ui.UIItemTextButtonList @@ -309,7 +310,7 @@ open class UIRemoCon(val parent: TitleScreen, treeRepresentation: QNDTreeNode) = DEFAULT_LINE_HEIGHT * menu.size.plus(1) fun getRemoConHeight(menu: Array) = DEFAULT_LINE_HEIGHT * menu.size.plus(1) - val menubarOffX: Int; get() = (0.11 * App.scr.width).toInt() + val menubarOffX: Int; get() = (0.11 * Toolkit.drawWidth).toInt() val menubarOffY: Int; get() = (0.82 * App.scr.height).toInt() } } \ No newline at end of file diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UITitleLanguage.kt b/src/net/torvald/terrarum/modulebasegame/ui/UITitleLanguage.kt index f7d76cd49..69659ddd6 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UITitleLanguage.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UITitleLanguage.kt @@ -6,6 +6,7 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.App import net.torvald.terrarum.Second import net.torvald.terrarum.langpack.Lang +import net.torvald.terrarum.ui.Toolkit import net.torvald.terrarum.ui.UICanvas import net.torvald.terrarum.ui.UIItemTextButtonList @@ -32,7 +33,7 @@ class UITitleLanguage : UICanvas() { private val textArea1 = UIItemTextButtonList(this, textButtonLineHeight, localeFirstHalf.map { Lang.getByLocale("MENU_LANGUAGE_THIS", it, true) ?: "!ERR: $it" }.toTypedArray(), - (App.scr.width - width) / 2, (App.scr.height - height) / 2, + (Toolkit.drawWidth - width) / 2, (App.scr.height - height) / 2, width / 2, height, textAreaWidth = width / 2, readFromLang = false, @@ -45,7 +46,7 @@ class UITitleLanguage : UICanvas() { private val textArea2 = UIItemTextButtonList(this, textButtonLineHeight, localeSecondHalf.map { Lang.getByLocale("MENU_LANGUAGE_THIS", it, true) ?: "!ERR: $it" }.toTypedArray(), - (App.scr.width - width) / 2 + (width / 2), (App.scr.height - height) / 2, + (Toolkit.drawWidth - width) / 2 + (width / 2), (App.scr.height - height) / 2, width / 2, height, textAreaWidth = width / 2, readFromLang = false, diff --git a/src/net/torvald/terrarum/ui/Toolkit.kt b/src/net/torvald/terrarum/ui/Toolkit.kt index 3751ad66e..312c8d411 100644 --- a/src/net/torvald/terrarum/ui/Toolkit.kt +++ b/src/net/torvald/terrarum/ui/Toolkit.kt @@ -40,15 +40,19 @@ object Toolkit : Disposable { baloonTile.dispose() } + val drawWidth: Int + get() = App.scr.width - if (App.getConfigBoolean("fx_streamerslayout")) App.scr.chatWidth else 0 + val drawWidthf: Float + get() = drawWidth.toFloat() fun drawCentered(batch: SpriteBatch, image: Texture, screenPosY: Int, ui: UICanvas? = null) { val imageW = image.width - val targetW = ui?.width ?: App.scr.width + val targetW = ui?.width ?: drawWidth batch.draw(image, targetW.minus(imageW).ushr(1).toFloat(), screenPosY.toFloat()) } fun drawCentered(batch: SpriteBatch, image: TextureRegion, screenPosY: Int, ui: UICanvas? = null) { val imageW = image.regionWidth - val targetW = ui?.width ?: App.scr.width + val targetW = ui?.width ?: drawWidth batch.draw(image, targetW.minus(imageW).ushr(1).toFloat(), screenPosY.toFloat()) } diff --git a/src/net/torvald/terrarum/worlddrawer/LightmapRenderer.kt b/src/net/torvald/terrarum/worlddrawer/LightmapRenderer.kt index d4a62ac9e..90c634455 100644 --- a/src/net/torvald/terrarum/worlddrawer/LightmapRenderer.kt +++ b/src/net/torvald/terrarum/worlddrawer/LightmapRenderer.kt @@ -167,8 +167,8 @@ object LightmapRenderer { for_x_end = for_x_start + WorldCamera.zoomedWidth / TILE_SIZE + 3 for_y_end = for_y_start + WorldCamera.zoomedHeight / TILE_SIZE + 3 // same fix as above - for_draw_x_end = for_draw_x_start + WorldCamera.width / TILE_SIZE + 1 + LIGHTMAP_OVERRENDER - for_draw_y_end = for_draw_y_start + WorldCamera.height / TILE_SIZE + 1 + LIGHTMAP_OVERRENDER + for_draw_x_end = for_draw_x_start + WorldCamera.width / TILE_SIZE + 3 + LIGHTMAP_OVERRENDER + for_draw_y_end = for_draw_y_start + WorldCamera.height / TILE_SIZE + 3 + LIGHTMAP_OVERRENDER camX = WorldCamera.x / TILE_SIZE camY = WorldCamera.y / TILE_SIZE diff --git a/src/net/torvald/terrarum/worlddrawer/WorldCamera.kt b/src/net/torvald/terrarum/worlddrawer/WorldCamera.kt index f293a8228..8f4919a30 100644 --- a/src/net/torvald/terrarum/worlddrawer/WorldCamera.kt +++ b/src/net/torvald/terrarum/worlddrawer/WorldCamera.kt @@ -99,7 +99,8 @@ object WorldCamera { val oldX = x.toFloat() - val newX1 = (player.hitbox.centeredX).toFloat() - (width / 2) + val newX1 = (player.hitbox.centeredX).toFloat() - (width / 2) + + if (App.getConfigBoolean("fx_streamerslayout")) App.scr.chatWidth / 2 else 0 val newX2 = newX1 + worldWidth val newX = if (Math.abs(newX1 - oldX) < Math.abs(newX2 - oldX)) newX1 else newX2