mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-17 19:35:00 -04:00
deprecate some stuff, ConnectionUtil, cleanup RenderWindow a bit
This commit is contained in:
parent
79de462d77
commit
4fda0e0849
@ -18,20 +18,15 @@ import de.bixilon.kutil.latch.CountUpAndDownLatch
|
|||||||
import de.bixilon.kutil.math.MMath.round10
|
import de.bixilon.kutil.math.MMath.round10
|
||||||
import de.bixilon.kutil.primitive.BooleanUtil.decide
|
import de.bixilon.kutil.primitive.BooleanUtil.decide
|
||||||
import de.bixilon.kutil.time.TimeUtil
|
import de.bixilon.kutil.time.TimeUtil
|
||||||
import de.bixilon.minosoft.config.key.KeyAction
|
|
||||||
import de.bixilon.minosoft.config.key.KeyBinding
|
|
||||||
import de.bixilon.minosoft.config.key.KeyCodes
|
|
||||||
import de.bixilon.minosoft.config.profile.delegate.watcher.SimpleProfileDelegateWatcher.Companion.profileWatch
|
import de.bixilon.minosoft.config.profile.delegate.watcher.SimpleProfileDelegateWatcher.Companion.profileWatch
|
||||||
import de.bixilon.minosoft.data.registries.ResourceLocation
|
import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||||
import de.bixilon.minosoft.data.text.BaseComponent
|
|
||||||
import de.bixilon.minosoft.data.text.ChatColors
|
|
||||||
import de.bixilon.minosoft.data.text.ChatComponent
|
|
||||||
import de.bixilon.minosoft.gui.rendering.camera.Camera
|
import de.bixilon.minosoft.gui.rendering.camera.Camera
|
||||||
import de.bixilon.minosoft.gui.rendering.font.Font
|
import de.bixilon.minosoft.gui.rendering.font.Font
|
||||||
import de.bixilon.minosoft.gui.rendering.font.FontLoader
|
import de.bixilon.minosoft.gui.rendering.font.FontLoader
|
||||||
import de.bixilon.minosoft.gui.rendering.framebuffer.FramebufferManager
|
import de.bixilon.minosoft.gui.rendering.framebuffer.FramebufferManager
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.hud.atlas.TextureLike
|
import de.bixilon.minosoft.gui.rendering.gui.hud.atlas.TextureLike
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.hud.atlas.TextureLikeTexture
|
import de.bixilon.minosoft.gui.rendering.gui.hud.atlas.TextureLikeTexture
|
||||||
|
import de.bixilon.minosoft.gui.rendering.input.key.DefaultKeyCombinations
|
||||||
import de.bixilon.minosoft.gui.rendering.input.key.RenderWindowInputHandler
|
import de.bixilon.minosoft.gui.rendering.input.key.RenderWindowInputHandler
|
||||||
import de.bixilon.minosoft.gui.rendering.modding.events.*
|
import de.bixilon.minosoft.gui.rendering.modding.events.*
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.RendererManager
|
import de.bixilon.minosoft.gui.rendering.renderer.RendererManager
|
||||||
@ -40,21 +35,17 @@ import de.bixilon.minosoft.gui.rendering.stats.AbstractRenderStats
|
|||||||
import de.bixilon.minosoft.gui.rendering.stats.ExperimentalRenderStats
|
import de.bixilon.minosoft.gui.rendering.stats.ExperimentalRenderStats
|
||||||
import de.bixilon.minosoft.gui.rendering.stats.RenderStats
|
import de.bixilon.minosoft.gui.rendering.stats.RenderStats
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.IntegratedBufferTypes
|
import de.bixilon.minosoft.gui.rendering.system.base.IntegratedBufferTypes
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.PolygonModes
|
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem
|
import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem
|
||||||
import de.bixilon.minosoft.gui.rendering.system.opengl.OpenGLRenderSystem
|
import de.bixilon.minosoft.gui.rendering.system.opengl.OpenGLRenderSystem
|
||||||
import de.bixilon.minosoft.gui.rendering.system.window.BaseWindow
|
import de.bixilon.minosoft.gui.rendering.system.window.BaseWindow
|
||||||
import de.bixilon.minosoft.gui.rendering.system.window.GLFWWindow
|
import de.bixilon.minosoft.gui.rendering.system.window.GLFWWindow
|
||||||
import de.bixilon.minosoft.gui.rendering.tint.TintManager
|
import de.bixilon.minosoft.gui.rendering.tint.TintManager
|
||||||
import de.bixilon.minosoft.gui.rendering.util.ScreenshotTaker
|
import de.bixilon.minosoft.gui.rendering.util.ScreenshotTaker
|
||||||
import de.bixilon.minosoft.modding.event.events.InternalMessageReceiveEvent
|
|
||||||
import de.bixilon.minosoft.modding.event.events.PacketReceiveEvent
|
import de.bixilon.minosoft.modding.event.events.PacketReceiveEvent
|
||||||
import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker
|
import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker
|
||||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||||
import de.bixilon.minosoft.protocol.packets.s2c.play.PositionAndRotationS2CP
|
import de.bixilon.minosoft.protocol.packets.s2c.play.PositionAndRotationS2CP
|
||||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
||||||
import de.bixilon.minosoft.util.KUtil.format
|
|
||||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
|
||||||
import de.bixilon.minosoft.util.Stopwatch
|
import de.bixilon.minosoft.util.Stopwatch
|
||||||
import de.bixilon.minosoft.util.logging.Log
|
import de.bixilon.minosoft.util.logging.Log
|
||||||
import de.bixilon.minosoft.util.logging.LogLevels
|
import de.bixilon.minosoft.util.logging.LogLevels
|
||||||
@ -86,7 +77,6 @@ class RenderWindow(
|
|||||||
|
|
||||||
var initialized = false
|
var initialized = false
|
||||||
private set
|
private set
|
||||||
private lateinit var renderThread: Thread
|
|
||||||
lateinit var renderStats: AbstractRenderStats
|
lateinit var renderStats: AbstractRenderStats
|
||||||
private set
|
private set
|
||||||
|
|
||||||
@ -140,7 +130,6 @@ class RenderWindow(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun init(latch: CountUpAndDownLatch) {
|
fun init(latch: CountUpAndDownLatch) {
|
||||||
renderThread = Thread.currentThread()
|
|
||||||
Log.log(LogMessageType.RENDERING_LOADING) { "Creating window..." }
|
Log.log(LogMessageType.RENDERING_LOADING) { "Creating window..." }
|
||||||
val stopwatch = Stopwatch()
|
val stopwatch = Stopwatch()
|
||||||
|
|
||||||
@ -196,7 +185,7 @@ class RenderWindow(
|
|||||||
|
|
||||||
|
|
||||||
inputHandler.init()
|
inputHandler.init()
|
||||||
registerGlobalKeyCombinations()
|
DefaultKeyCombinations.registerAll(this)
|
||||||
|
|
||||||
|
|
||||||
connection.fireEvent(ResizeWindowEvent(previousSize = Vec2i(0, 0), size = window.size))
|
connection.fireEvent(ResizeWindowEvent(previousSize = Vec2i(0, 0), size = window.size))
|
||||||
@ -211,70 +200,6 @@ class RenderWindow(
|
|||||||
Log.log(LogMessageType.RENDERING_GENERAL) { "Showing window after ${stopwatch.totalTime()}" }
|
Log.log(LogMessageType.RENDERING_GENERAL) { "Showing window after ${stopwatch.totalTime()}" }
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun registerGlobalKeyCombinations() {
|
|
||||||
inputHandler.registerKeyCallback("minosoft:enable_debug_polygon".toResourceLocation(),
|
|
||||||
KeyBinding(
|
|
||||||
mapOf(
|
|
||||||
KeyAction.MODIFIER to setOf(KeyCodes.KEY_F4),
|
|
||||||
KeyAction.STICKY to setOf(KeyCodes.KEY_P),
|
|
||||||
),
|
|
||||||
)) {
|
|
||||||
val nextMode = it.decide(PolygonModes.LINE, PolygonModes.FILL)
|
|
||||||
renderSystem.framebuffer = framebufferManager.world.framebuffer
|
|
||||||
renderSystem.polygonMode = nextMode
|
|
||||||
sendDebugMessage("Polygon mode: ${nextMode.format()}")
|
|
||||||
}
|
|
||||||
|
|
||||||
inputHandler.registerKeyCallback("minosoft:quit_rendering".toResourceLocation(),
|
|
||||||
KeyBinding(
|
|
||||||
mapOf(
|
|
||||||
KeyAction.RELEASE to setOf(KeyCodes.KEY_ESCAPE),
|
|
||||||
),
|
|
||||||
)) { window.close() }
|
|
||||||
|
|
||||||
inputHandler.registerKeyCallback("minosoft:take_screenshot".toResourceLocation(),
|
|
||||||
KeyBinding(
|
|
||||||
mapOf(
|
|
||||||
KeyAction.PRESS to setOf(KeyCodes.KEY_F2),
|
|
||||||
),
|
|
||||||
ignoreConsumer = true,
|
|
||||||
)) { screenshotTaker.takeScreenshot() }
|
|
||||||
|
|
||||||
inputHandler.registerKeyCallback("minosoft:pause_incoming_packets".toResourceLocation(),
|
|
||||||
KeyBinding(
|
|
||||||
mapOf(
|
|
||||||
KeyAction.MODIFIER to setOf(KeyCodes.KEY_F4),
|
|
||||||
KeyAction.STICKY to setOf(KeyCodes.KEY_I),
|
|
||||||
),
|
|
||||||
ignoreConsumer = true,
|
|
||||||
)) {
|
|
||||||
sendDebugMessage("Pausing incoming packets: ${it.format()}")
|
|
||||||
connection.network.pauseReceiving(it)
|
|
||||||
}
|
|
||||||
|
|
||||||
inputHandler.registerKeyCallback("minosoft:pause_outgoing_packets".toResourceLocation(),
|
|
||||||
KeyBinding(
|
|
||||||
mapOf(
|
|
||||||
KeyAction.MODIFIER to setOf(KeyCodes.KEY_F4),
|
|
||||||
KeyAction.STICKY to setOf(KeyCodes.KEY_O),
|
|
||||||
),
|
|
||||||
ignoreConsumer = true,
|
|
||||||
)) {
|
|
||||||
sendDebugMessage("Pausing outgoing packets: ${it.format()}")
|
|
||||||
connection.network.pauseSending(it)
|
|
||||||
}
|
|
||||||
|
|
||||||
inputHandler.registerKeyCallback("minosoft:toggle_fullscreen".toResourceLocation(),
|
|
||||||
KeyBinding(
|
|
||||||
mapOf(
|
|
||||||
KeyAction.PRESS to setOf(KeyCodes.KEY_F11),
|
|
||||||
),
|
|
||||||
ignoreConsumer = true,
|
|
||||||
)) {
|
|
||||||
window.fullscreen = !window.fullscreen
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun startLoop() {
|
fun startLoop() {
|
||||||
Log.log(LogMessageType.RENDERING_LOADING) { "Starting loop" }
|
Log.log(LogMessageType.RENDERING_LOADING) { "Starting loop" }
|
||||||
var closed = false
|
var closed = false
|
||||||
@ -348,12 +273,4 @@ class RenderWindow(
|
|||||||
// disconnect
|
// disconnect
|
||||||
connection.disconnect()
|
connection.disconnect()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun sendDebugMessage(message: Any) {
|
|
||||||
connection.fireEvent(InternalMessageReceiveEvent(connection, BaseComponent(RenderConstants.DEBUG_MESSAGES_PREFIX, ChatComponent.of(message).apply { applyDefaultColor(ChatColors.BLUE) })))
|
|
||||||
}
|
|
||||||
|
|
||||||
fun assertOnRenderThread() {
|
|
||||||
check(Thread.currentThread() === renderThread) { "Current thread (${Thread.currentThread().name} is not the render thread!" }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -100,7 +100,7 @@ class EntityHitboxRenderer(
|
|||||||
),
|
),
|
||||||
), defaultPressed = profile.enabled) {
|
), defaultPressed = profile.enabled) {
|
||||||
profile.enabled = it
|
profile.enabled = it
|
||||||
renderWindow.sendDebugMessage("Entity hit boxes: ${it.format()}")
|
connection.util.sendDebugMessage("Entity hit boxes: ${it.format()}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ import de.bixilon.minosoft.gui.rendering.framebuffer.gui.GUIFramebuffer
|
|||||||
import de.bixilon.minosoft.gui.rendering.framebuffer.world.WorldFramebuffer
|
import de.bixilon.minosoft.gui.rendering.framebuffer.world.WorldFramebuffer
|
||||||
import de.bixilon.minosoft.gui.rendering.modding.events.ResizeWindowEvent
|
import de.bixilon.minosoft.gui.rendering.modding.events.ResizeWindowEvent
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Drawable
|
import de.bixilon.minosoft.gui.rendering.renderer.Drawable
|
||||||
|
import de.bixilon.minosoft.gui.rendering.system.base.PolygonModes
|
||||||
import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker
|
import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker
|
||||||
|
|
||||||
class FramebufferManager(
|
class FramebufferManager(
|
||||||
@ -32,6 +33,7 @@ class FramebufferManager(
|
|||||||
|
|
||||||
|
|
||||||
override fun draw() {
|
override fun draw() {
|
||||||
|
renderWindow.renderSystem.polygonMode = PolygonModes.FILL
|
||||||
world.draw()
|
world.draw()
|
||||||
gui.draw()
|
gui.draw()
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package de.bixilon.minosoft.gui.rendering.framebuffer
|
|||||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Drawable
|
import de.bixilon.minosoft.gui.rendering.renderer.Drawable
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.IntegratedBufferTypes
|
import de.bixilon.minosoft.gui.rendering.system.base.IntegratedBufferTypes
|
||||||
|
import de.bixilon.minosoft.gui.rendering.system.base.PolygonModes
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.frame.Framebuffer
|
import de.bixilon.minosoft.gui.rendering.system.base.buffer.frame.Framebuffer
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||||
import de.bixilon.minosoft.gui.rendering.util.mesh.Mesh
|
import de.bixilon.minosoft.gui.rendering.util.mesh.Mesh
|
||||||
@ -12,6 +13,7 @@ interface IntegratedFramebuffer : Drawable {
|
|||||||
val shader: Shader
|
val shader: Shader
|
||||||
val framebuffer: Framebuffer
|
val framebuffer: Framebuffer
|
||||||
val mesh: Mesh
|
val mesh: Mesh
|
||||||
|
val polygonMode: PolygonModes
|
||||||
|
|
||||||
|
|
||||||
fun init() {
|
fun init() {
|
||||||
|
@ -3,6 +3,7 @@ package de.bixilon.minosoft.gui.rendering.framebuffer.gui
|
|||||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||||
import de.bixilon.minosoft.gui.rendering.framebuffer.FramebufferMesh
|
import de.bixilon.minosoft.gui.rendering.framebuffer.FramebufferMesh
|
||||||
import de.bixilon.minosoft.gui.rendering.framebuffer.IntegratedFramebuffer
|
import de.bixilon.minosoft.gui.rendering.framebuffer.IntegratedFramebuffer
|
||||||
|
import de.bixilon.minosoft.gui.rendering.system.base.PolygonModes
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.frame.Framebuffer
|
import de.bixilon.minosoft.gui.rendering.system.base.buffer.frame.Framebuffer
|
||||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||||
|
|
||||||
@ -12,4 +13,5 @@ class GUIFramebuffer(
|
|||||||
override val shader = renderWindow.renderSystem.createShader("minosoft:framebuffer/gui".toResourceLocation())
|
override val shader = renderWindow.renderSystem.createShader("minosoft:framebuffer/gui".toResourceLocation())
|
||||||
override val framebuffer: Framebuffer = renderWindow.renderSystem.createFramebuffer()
|
override val framebuffer: Framebuffer = renderWindow.renderSystem.createFramebuffer()
|
||||||
override val mesh = FramebufferMesh(renderWindow)
|
override val mesh = FramebufferMesh(renderWindow)
|
||||||
|
override var polygonMode: PolygonModes = PolygonModes.DEFAULT
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package de.bixilon.minosoft.gui.rendering.framebuffer.world
|
|||||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||||
import de.bixilon.minosoft.gui.rendering.framebuffer.FramebufferMesh
|
import de.bixilon.minosoft.gui.rendering.framebuffer.FramebufferMesh
|
||||||
import de.bixilon.minosoft.gui.rendering.framebuffer.IntegratedFramebuffer
|
import de.bixilon.minosoft.gui.rendering.framebuffer.IntegratedFramebuffer
|
||||||
|
import de.bixilon.minosoft.gui.rendering.system.base.PolygonModes
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.frame.Framebuffer
|
import de.bixilon.minosoft.gui.rendering.system.base.buffer.frame.Framebuffer
|
||||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||||
|
|
||||||
@ -12,4 +13,5 @@ class WorldFramebuffer(
|
|||||||
override val shader = renderWindow.renderSystem.createShader("minosoft:framebuffer/world".toResourceLocation())
|
override val shader = renderWindow.renderSystem.createShader("minosoft:framebuffer/world".toResourceLocation())
|
||||||
override val framebuffer: Framebuffer = renderWindow.renderSystem.createFramebuffer()
|
override val framebuffer: Framebuffer = renderWindow.renderSystem.createFramebuffer()
|
||||||
override val mesh = FramebufferMesh(renderWindow)
|
override val mesh = FramebufferMesh(renderWindow)
|
||||||
|
override var polygonMode: PolygonModes = PolygonModes.DEFAULT
|
||||||
}
|
}
|
||||||
|
@ -43,6 +43,7 @@ import de.bixilon.minosoft.gui.rendering.renderer.Drawable
|
|||||||
import de.bixilon.minosoft.gui.rendering.renderer.Renderer
|
import de.bixilon.minosoft.gui.rendering.renderer.Renderer
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.RendererBuilder
|
import de.bixilon.minosoft.gui.rendering.renderer.RendererBuilder
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.IntegratedBufferTypes
|
import de.bixilon.minosoft.gui.rendering.system.base.IntegratedBufferTypes
|
||||||
|
import de.bixilon.minosoft.gui.rendering.system.base.PolygonModes
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem
|
import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.frame.Framebuffer
|
import de.bixilon.minosoft.gui.rendering.system.base.buffer.frame.Framebuffer
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.phases.OtherDrawable
|
import de.bixilon.minosoft.gui.rendering.system.base.phases.OtherDrawable
|
||||||
@ -69,6 +70,8 @@ class HUDRenderer(
|
|||||||
private set
|
private set
|
||||||
override val framebuffer: Framebuffer
|
override val framebuffer: Framebuffer
|
||||||
get() = renderWindow.framebufferManager.gui.framebuffer
|
get() = renderWindow.framebufferManager.gui.framebuffer
|
||||||
|
override val polygonMode: PolygonModes
|
||||||
|
get() = renderWindow.framebufferManager.gui.polygonMode
|
||||||
|
|
||||||
private val hudElements: MutableMap<ResourceLocation, HUDElement> = synchronizedMapOf()
|
private val hudElements: MutableMap<ResourceLocation, HUDElement> = synchronizedMapOf()
|
||||||
|
|
||||||
|
@ -0,0 +1,80 @@
|
|||||||
|
package de.bixilon.minosoft.gui.rendering.input.key
|
||||||
|
|
||||||
|
import de.bixilon.kutil.primitive.BooleanUtil.decide
|
||||||
|
import de.bixilon.minosoft.config.key.KeyAction
|
||||||
|
import de.bixilon.minosoft.config.key.KeyBinding
|
||||||
|
import de.bixilon.minosoft.config.key.KeyCodes
|
||||||
|
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||||
|
import de.bixilon.minosoft.gui.rendering.system.base.PolygonModes
|
||||||
|
import de.bixilon.minosoft.util.KUtil.format
|
||||||
|
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||||
|
|
||||||
|
object DefaultKeyCombinations {
|
||||||
|
|
||||||
|
fun registerAll(renderWindow: RenderWindow) {
|
||||||
|
val inputHandler = renderWindow.inputHandler
|
||||||
|
val window = renderWindow.window
|
||||||
|
val connection = renderWindow.connection
|
||||||
|
|
||||||
|
inputHandler.registerKeyCallback("minosoft:enable_debug_polygon".toResourceLocation(),
|
||||||
|
KeyBinding(
|
||||||
|
mapOf(
|
||||||
|
KeyAction.MODIFIER to setOf(KeyCodes.KEY_F4),
|
||||||
|
KeyAction.STICKY to setOf(KeyCodes.KEY_P),
|
||||||
|
),
|
||||||
|
)) {
|
||||||
|
val nextMode = it.decide(PolygonModes.LINE, PolygonModes.FILL)
|
||||||
|
renderWindow.framebufferManager.world.polygonMode = nextMode
|
||||||
|
connection.util.sendDebugMessage("Polygon mode: ${nextMode.format()}")
|
||||||
|
}
|
||||||
|
|
||||||
|
inputHandler.registerKeyCallback("minosoft:quit_rendering".toResourceLocation(),
|
||||||
|
KeyBinding(
|
||||||
|
mapOf(
|
||||||
|
KeyAction.RELEASE to setOf(KeyCodes.KEY_ESCAPE),
|
||||||
|
),
|
||||||
|
)) { window.close() }
|
||||||
|
|
||||||
|
inputHandler.registerKeyCallback("minosoft:take_screenshot".toResourceLocation(),
|
||||||
|
KeyBinding(
|
||||||
|
mapOf(
|
||||||
|
KeyAction.PRESS to setOf(KeyCodes.KEY_F2),
|
||||||
|
),
|
||||||
|
ignoreConsumer = true,
|
||||||
|
)) { renderWindow.screenshotTaker.takeScreenshot() }
|
||||||
|
|
||||||
|
inputHandler.registerKeyCallback("minosoft:pause_incoming_packets".toResourceLocation(),
|
||||||
|
KeyBinding(
|
||||||
|
mapOf(
|
||||||
|
KeyAction.MODIFIER to setOf(KeyCodes.KEY_F4),
|
||||||
|
KeyAction.STICKY to setOf(KeyCodes.KEY_I),
|
||||||
|
),
|
||||||
|
ignoreConsumer = true,
|
||||||
|
)) {
|
||||||
|
connection.util.sendDebugMessage("Pausing incoming packets: ${it.format()}")
|
||||||
|
connection.network.pauseReceiving(it)
|
||||||
|
}
|
||||||
|
|
||||||
|
inputHandler.registerKeyCallback("minosoft:pause_outgoing_packets".toResourceLocation(),
|
||||||
|
KeyBinding(
|
||||||
|
mapOf(
|
||||||
|
KeyAction.MODIFIER to setOf(KeyCodes.KEY_F4),
|
||||||
|
KeyAction.STICKY to setOf(KeyCodes.KEY_O),
|
||||||
|
),
|
||||||
|
ignoreConsumer = true,
|
||||||
|
)) {
|
||||||
|
connection.util.sendDebugMessage("Pausing outgoing packets: ${it.format()}")
|
||||||
|
connection.network.pauseSending(it)
|
||||||
|
}
|
||||||
|
|
||||||
|
inputHandler.registerKeyCallback("minosoft:toggle_fullscreen".toResourceLocation(),
|
||||||
|
KeyBinding(
|
||||||
|
mapOf(
|
||||||
|
KeyAction.PRESS to setOf(KeyCodes.KEY_F11),
|
||||||
|
),
|
||||||
|
ignoreConsumer = true,
|
||||||
|
)) {
|
||||||
|
window.fullscreen = !window.fullscreen
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -65,7 +65,7 @@ class RenderWindowInputHandler(
|
|||||||
CursorModes.HIDDEN -> CursorModes.NORMAL
|
CursorModes.HIDDEN -> CursorModes.NORMAL
|
||||||
}
|
}
|
||||||
renderWindow.window.cursorMode = nextMode
|
renderWindow.window.cursorMode = nextMode
|
||||||
renderWindow.sendDebugMessage("Cursor mode: ${nextMode.format()}")
|
connection.util.sendDebugMessage("Cursor mode: ${nextMode.format()}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
package de.bixilon.minosoft.gui.rendering.renderer
|
package de.bixilon.minosoft.gui.rendering.renderer
|
||||||
|
|
||||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||||
|
import de.bixilon.minosoft.gui.rendering.system.base.PolygonModes
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem
|
import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.frame.Framebuffer
|
import de.bixilon.minosoft.gui.rendering.system.base.buffer.frame.Framebuffer
|
||||||
|
|
||||||
@ -22,6 +23,8 @@ interface Renderer {
|
|||||||
val renderSystem: RenderSystem
|
val renderSystem: RenderSystem
|
||||||
val framebuffer: Framebuffer?
|
val framebuffer: Framebuffer?
|
||||||
get() = renderWindow.framebufferManager.world.framebuffer
|
get() = renderWindow.framebufferManager.world.framebuffer
|
||||||
|
val polygonMode: PolygonModes
|
||||||
|
get() = renderWindow.framebufferManager.world.polygonMode
|
||||||
|
|
||||||
fun init() = Unit
|
fun init() = Unit
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ class RendererManager(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun renderAll(rendererList: Collection<Renderer>) {
|
private fun renderNormal(rendererList: Collection<Renderer>) {
|
||||||
for (phase in RenderPhases.VALUES) {
|
for (phase in RenderPhases.VALUES) {
|
||||||
for (renderer in rendererList) {
|
for (renderer in rendererList) {
|
||||||
if (renderer is SkipAll && renderer.skipAll) {
|
if (renderer is SkipAll && renderer.skipAll) {
|
||||||
@ -83,6 +83,7 @@ class RendererManager(
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
renderSystem.framebuffer = renderer.framebuffer
|
renderSystem.framebuffer = renderer.framebuffer
|
||||||
|
renderSystem.polygonMode = renderer.polygonMode
|
||||||
phase.invokeSetup(renderer)
|
phase.invokeSetup(renderer)
|
||||||
phase.invokeDraw(renderer)
|
phase.invokeDraw(renderer)
|
||||||
}
|
}
|
||||||
@ -93,10 +94,9 @@ class RendererManager(
|
|||||||
val renderers = renderers.values
|
val renderers = renderers.values
|
||||||
|
|
||||||
for (renderer in renderers) {
|
for (renderer in renderers) {
|
||||||
renderSystem.framebuffer = renderer.framebuffer
|
|
||||||
renderer.prepareDraw()
|
renderer.prepareDraw()
|
||||||
}
|
}
|
||||||
renderAll(renderers)
|
renderNormal(renderers)
|
||||||
|
|
||||||
renderSystem.framebuffer = null
|
renderSystem.framebuffer = null
|
||||||
renderPre(renderers)
|
renderPre(renderers)
|
||||||
@ -115,6 +115,7 @@ class RendererManager(
|
|||||||
if (renderer.skipPre) {
|
if (renderer.skipPre) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
renderSystem.polygonMode = renderer.polygonMode
|
||||||
renderSystem.framebuffer = renderer.framebuffer
|
renderSystem.framebuffer = renderer.framebuffer
|
||||||
renderer.drawPre()
|
renderer.drawPre()
|
||||||
}
|
}
|
||||||
@ -131,6 +132,7 @@ class RendererManager(
|
|||||||
if (renderer.skipPost) {
|
if (renderer.skipPost) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
renderSystem.polygonMode = renderer.polygonMode
|
||||||
renderSystem.framebuffer = renderer.framebuffer
|
renderSystem.framebuffer = renderer.framebuffer
|
||||||
renderer.drawPost()
|
renderer.drawPost()
|
||||||
}
|
}
|
||||||
|
@ -21,10 +21,7 @@ import de.bixilon.minosoft.gui.rendering.RenderWindow
|
|||||||
import de.bixilon.minosoft.gui.rendering.modding.events.CameraMatrixChangeEvent
|
import de.bixilon.minosoft.gui.rendering.modding.events.CameraMatrixChangeEvent
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Renderer
|
import de.bixilon.minosoft.gui.rendering.renderer.Renderer
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.RendererBuilder
|
import de.bixilon.minosoft.gui.rendering.renderer.RendererBuilder
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.BlendingFunctions
|
import de.bixilon.minosoft.gui.rendering.system.base.*
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.DepthFunctions
|
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem
|
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.RenderingCapabilities
|
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.frame.Framebuffer
|
import de.bixilon.minosoft.gui.rendering.system.base.buffer.frame.Framebuffer
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.phases.PostDrawable
|
import de.bixilon.minosoft.gui.rendering.system.base.phases.PostDrawable
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.texture.AbstractTexture
|
import de.bixilon.minosoft.gui.rendering.system.base.texture.texture.AbstractTexture
|
||||||
@ -50,6 +47,7 @@ class SkyRenderer(
|
|||||||
private var updateSun: Boolean = true
|
private var updateSun: Boolean = true
|
||||||
var baseColor = RenderConstants.DEFAULT_SKY_COLOR
|
var baseColor = RenderConstants.DEFAULT_SKY_COLOR
|
||||||
override val framebuffer: Framebuffer? = null
|
override val framebuffer: Framebuffer? = null
|
||||||
|
override val polygonMode: PolygonModes = PolygonModes.DEFAULT
|
||||||
|
|
||||||
override fun init() {
|
override fun init() {
|
||||||
skyboxShader.load()
|
skyboxShader.load()
|
||||||
|
@ -18,4 +18,8 @@ enum class PolygonModes {
|
|||||||
LINE,
|
LINE,
|
||||||
POINT,
|
POINT,
|
||||||
;
|
;
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
val DEFAULT = FILL
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -72,7 +72,7 @@ class ScreenshotTaker(
|
|||||||
|
|
||||||
ImageIO.write(bufferedImage, "png", file)
|
ImageIO.write(bufferedImage, "png", file)
|
||||||
|
|
||||||
renderWindow.sendDebugMessage(BaseComponent(
|
renderWindow.connection.util.sendDebugMessage(BaseComponent(
|
||||||
"§aScreenshot saved to ",
|
"§aScreenshot saved to ",
|
||||||
TextComponent(file.name).apply {
|
TextComponent(file.name).apply {
|
||||||
color = ChatColors.WHITE
|
color = ChatColors.WHITE
|
||||||
@ -101,7 +101,7 @@ class ScreenshotTaker(
|
|||||||
|
|
||||||
private fun Throwable?.fail() {
|
private fun Throwable?.fail() {
|
||||||
this?.printStackTrace()
|
this?.printStackTrace()
|
||||||
renderWindow.sendDebugMessage("§cFailed to make a screenshot: ${this?.message}")
|
renderWindow.connection.util.sendDebugMessage("§cFailed to make a screenshot: ${this?.message}")
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
@ -53,7 +53,7 @@ class ChunkBorderRenderer(
|
|||||||
),
|
),
|
||||||
), defaultPressed = profile.chunkBorder.enabled) {
|
), defaultPressed = profile.chunkBorder.enabled) {
|
||||||
profile.chunkBorder.enabled = it
|
profile.chunkBorder.enabled = it
|
||||||
renderWindow.sendDebugMessage("Chunk borders: ${it.format()}")
|
connection.util.sendDebugMessage("Chunk borders: ${it.format()}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,16 @@
|
|||||||
|
package de.bixilon.minosoft.protocol.network.connection.play
|
||||||
|
|
||||||
|
import de.bixilon.minosoft.data.text.BaseComponent
|
||||||
|
import de.bixilon.minosoft.data.text.ChatColors
|
||||||
|
import de.bixilon.minosoft.data.text.ChatComponent
|
||||||
|
import de.bixilon.minosoft.gui.rendering.RenderConstants
|
||||||
|
import de.bixilon.minosoft.modding.event.events.InternalMessageReceiveEvent
|
||||||
|
|
||||||
|
class ConnectionUtil(
|
||||||
|
private val connection: PlayConnection,
|
||||||
|
) {
|
||||||
|
|
||||||
|
fun sendDebugMessage(message: Any) {
|
||||||
|
connection.fireEvent(InternalMessageReceiveEvent(connection, BaseComponent(RenderConstants.DEBUG_MESSAGES_PREFIX, ChatComponent.of(message).apply { applyDefaultColor(ChatColors.BLUE) })))
|
||||||
|
}
|
||||||
|
}
|
@ -78,6 +78,7 @@ class PlayConnection(
|
|||||||
val tabList = TabList()
|
val tabList = TabList()
|
||||||
val scoreboardManager = ScoreboardManager(this)
|
val scoreboardManager = ScoreboardManager(this)
|
||||||
val bossbarManager = BossbarManager()
|
val bossbarManager = BossbarManager()
|
||||||
|
val util = ConnectionUtil(this)
|
||||||
|
|
||||||
@Deprecated(message = "PacketSender is deprecated")
|
@Deprecated(message = "PacketSender is deprecated")
|
||||||
val sender = PacketSender(this)
|
val sender = PacketSender(this)
|
||||||
@ -255,11 +256,13 @@ class PlayConnection(
|
|||||||
latch.count = count
|
latch.count = count
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated("ToDo: Version?")
|
||||||
override fun getPacketId(packetType: PacketTypes.C2S): Int {
|
override fun getPacketId(packetType: PacketTypes.C2S): Int {
|
||||||
// ToDo: Improve speed
|
// ToDo: Improve speed
|
||||||
return version.c2sPackets[packetType.state]?.indexOf(packetType) ?: Protocol.getPacketId(packetType) ?: error("Can not find packet $packetType for $version")
|
return version.c2sPackets[packetType.state]?.indexOf(packetType) ?: Protocol.getPacketId(packetType) ?: error("Can not find packet $packetType for $version")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated("ToDo: Version?")
|
||||||
override fun getPacketById(packetId: Int): PacketTypes.S2C {
|
override fun getPacketById(packetId: Int): PacketTypes.S2C {
|
||||||
return version.s2cPackets[protocolState]?.getOrNull(packetId) ?: Protocol.getPacketById(protocolState, packetId) ?: let {
|
return version.s2cPackets[protocolState]?.getOrNull(packetId) ?: Protocol.getPacketById(protocolState, packetId) ?: let {
|
||||||
// wtf, notchain sends play disconnect packet in login state...
|
// wtf, notchain sends play disconnect packet in login state...
|
||||||
@ -274,6 +277,7 @@ class PlayConnection(
|
|||||||
} ?: error("Can not find packet $packetId in $protocolState for $version")
|
} ?: error("Can not find packet $packetId in $protocolState for $version")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated("ToDo: Packet handler")
|
||||||
override fun handlePacket(packet: S2CPacket) {
|
override fun handlePacket(packet: S2CPacket) {
|
||||||
if (!protocolState.connected) {
|
if (!protocolState.connected) {
|
||||||
return
|
return
|
||||||
@ -292,6 +296,7 @@ class PlayConnection(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated("ToDo: Tag manager")
|
||||||
fun inTag(`object`: Any?, tagType: ResourceLocation, tag: ResourceLocation): Boolean {
|
fun inTag(`object`: Any?, tagType: ResourceLocation, tag: ResourceLocation): Boolean {
|
||||||
|
|
||||||
fun fallback(): Boolean {
|
fun fallback(): Boolean {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user