mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-13 20:14:05 +09:00
fix: zooming would not properly center the cam if streamers mode is on
This commit is contained in:
@@ -21,7 +21,6 @@ import net.torvald.terrarum.gameactors.ActorWithBody.Companion.METER
|
|||||||
import net.torvald.terrarum.gameactors.ActorWithBody.Companion.SI_TO_GAME_ACC
|
import net.torvald.terrarum.gameactors.ActorWithBody.Companion.SI_TO_GAME_ACC
|
||||||
import net.torvald.terrarum.gamecontroller.KeyToggler
|
import net.torvald.terrarum.gamecontroller.KeyToggler
|
||||||
import net.torvald.terrarum.gameitems.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.gameitems.ItemID
|
|
||||||
import net.torvald.terrarum.gameitems.mouseInInteractableRange
|
import net.torvald.terrarum.gameitems.mouseInInteractableRange
|
||||||
import net.torvald.terrarum.gameparticles.ParticleBase
|
import net.torvald.terrarum.gameparticles.ParticleBase
|
||||||
import net.torvald.terrarum.gameworld.GameWorld
|
import net.torvald.terrarum.gameworld.GameWorld
|
||||||
@@ -31,7 +30,6 @@ import net.torvald.terrarum.modulebasegame.gameitems.ItemThrowable
|
|||||||
import net.torvald.terrarum.modulebasegame.gameitems.getThrowPosAndVector
|
import net.torvald.terrarum.modulebasegame.gameitems.getThrowPosAndVector
|
||||||
import net.torvald.terrarum.ui.Toolkit
|
import net.torvald.terrarum.ui.Toolkit
|
||||||
import net.torvald.terrarum.weather.WeatherMixer
|
import net.torvald.terrarum.weather.WeatherMixer
|
||||||
import net.torvald.terrarum.weather.WeatherMixer.render
|
|
||||||
import net.torvald.terrarum.worlddrawer.BlocksDrawer
|
import net.torvald.terrarum.worlddrawer.BlocksDrawer
|
||||||
import net.torvald.terrarum.worlddrawer.FeaturesDrawer
|
import net.torvald.terrarum.worlddrawer.FeaturesDrawer
|
||||||
import net.torvald.terrarum.worlddrawer.LightmapRenderer
|
import net.torvald.terrarum.worlddrawer.LightmapRenderer
|
||||||
@@ -217,6 +215,17 @@ object IngameRenderer : Disposable {
|
|||||||
|
|
||||||
private var oldCamX = 0
|
private var oldCamX = 0
|
||||||
|
|
||||||
|
private fun FlippingSpriteBatch.drawFramebufferWithZoom(buf: TextureRegion, zoom: Float) {
|
||||||
|
val t = (if (App.getConfigBoolean("fx_streamerslayout")) App.scr.chatWidth / 2 else 0).toFloat()
|
||||||
|
|
||||||
|
this.draw(buf,
|
||||||
|
-0.5f * buf.regionWidth * zoom + 0.5f * buf.regionWidth + t * (zoom - 1f),
|
||||||
|
-0.5f * buf.regionHeight * zoom + 0.5f * buf.regionHeight,
|
||||||
|
buf.regionWidth * zoom,
|
||||||
|
buf.regionHeight * zoom
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
operator fun invoke(
|
operator fun invoke(
|
||||||
frameDelta: Float,
|
frameDelta: Float,
|
||||||
gamePaused: Boolean,
|
gamePaused: Boolean,
|
||||||
@@ -300,12 +309,7 @@ object IngameRenderer : Disposable {
|
|||||||
blendNormalStraightAlpha(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
batch.shader = shaderBlendGlow
|
batch.shader = shaderBlendGlow
|
||||||
shaderBlendGlow.setUniformi("tex1", 1)
|
shaderBlendGlow.setUniformi("tex1", 1)
|
||||||
batch.draw(rgbTex,
|
batch.drawFramebufferWithZoom(rgbTex, zoom)
|
||||||
-0.5f * rgbTex.regionWidth * zoom + 0.5f * rgbTex.regionWidth,
|
|
||||||
-0.5f * rgbTex.regionHeight * zoom + 0.5f * rgbTex.regionHeight,
|
|
||||||
rgbTex.regionWidth * zoom,
|
|
||||||
rgbTex.regionHeight * zoom
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -317,12 +321,7 @@ object IngameRenderer : Disposable {
|
|||||||
batch.inUse {
|
batch.inUse {
|
||||||
blendNormalStraightAlpha(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
batch.shader = null
|
batch.shader = null
|
||||||
batch.draw(rgbTex,
|
batch.drawFramebufferWithZoom(rgbTex, zoom)
|
||||||
-0.5f * rgbTex.regionWidth * zoom + 0.5f * rgbTex.regionWidth,
|
|
||||||
-0.5f * rgbTex.regionHeight * zoom + 0.5f * rgbTex.regionHeight,
|
|
||||||
rgbTex.regionWidth * zoom,
|
|
||||||
rgbTex.regionHeight * zoom
|
|
||||||
)
|
|
||||||
|
|
||||||
// indicator
|
// indicator
|
||||||
batch.color = Color.RED
|
batch.color = Color.RED
|
||||||
@@ -344,12 +343,7 @@ object IngameRenderer : Disposable {
|
|||||||
batch.inUse {
|
batch.inUse {
|
||||||
blendNormalStraightAlpha(batch)
|
blendNormalStraightAlpha(batch)
|
||||||
batch.shader = null
|
batch.shader = null
|
||||||
batch.draw(aTex,
|
batch.drawFramebufferWithZoom(aTex, zoom)
|
||||||
-0.5f * aTex.regionWidth * zoom + 0.5f * aTex.regionWidth,
|
|
||||||
-0.5f * aTex.regionHeight * zoom + 0.5f * aTex.regionHeight,
|
|
||||||
aTex.regionWidth * zoom,
|
|
||||||
aTex.regionHeight * zoom
|
|
||||||
)
|
|
||||||
|
|
||||||
// indicator
|
// indicator
|
||||||
batch.color = Color.WHITE
|
batch.color = Color.WHITE
|
||||||
|
|||||||
Reference in New Issue
Block a user