mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-19 12:25:12 -04:00
render window: remove initialPosition check, check for connection state
This commit is contained in:
parent
794a6da851
commit
a4d5b9502d
@ -41,10 +41,10 @@ import de.bixilon.minosoft.gui.rendering.system.window.BaseWindow
|
||||
import de.bixilon.minosoft.gui.rendering.system.window.GLFWWindow
|
||||
import de.bixilon.minosoft.gui.rendering.tint.TintManager
|
||||
import de.bixilon.minosoft.gui.rendering.util.ScreenshotTaker
|
||||
import de.bixilon.minosoft.modding.event.events.PacketReceiveEvent
|
||||
import de.bixilon.minosoft.modding.event.events.connection.play.PlayConnectionStateChangeEvent
|
||||
import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.play.PositionAndRotationS2CP
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnectionStates
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
||||
import de.bixilon.minosoft.util.Stopwatch
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
@ -92,8 +92,6 @@ class RenderWindow(
|
||||
var tickCount = 0L
|
||||
var lastTickTimer = TimeUtil.time
|
||||
|
||||
private var initialPositionReceived = false
|
||||
|
||||
|
||||
var renderingState = RenderingStates.RUNNING
|
||||
private set(value) {
|
||||
@ -109,14 +107,9 @@ class RenderWindow(
|
||||
}
|
||||
|
||||
init {
|
||||
connection.registerEvent(CallbackEventInvoker.of<PacketReceiveEvent> {
|
||||
val packet = it.packet
|
||||
if (packet !is PositionAndRotationS2CP) {
|
||||
return@of
|
||||
}
|
||||
if (!initialPositionReceived) {
|
||||
connection.registerEvent(CallbackEventInvoker.of<PlayConnectionStateChangeEvent> {
|
||||
if (it.state == PlayConnectionStates.PLAYING && latch.count > 0) {
|
||||
latch.dec()
|
||||
initialPositionReceived = true
|
||||
}
|
||||
})
|
||||
profile.experimental::fps.profileWatch(this, true, profile) {
|
||||
|
@ -19,7 +19,6 @@ import de.bixilon.minosoft.protocol.packets.c2s.play.PositionAndRotationC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.TeleportConfirmC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.PlayS2CPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.PlayInByteBuffer
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolStates
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.util.BitByte
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
@ -87,7 +86,7 @@ class PositionAndRotationS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket() {
|
||||
}
|
||||
connection.sendPacket(PositionAndRotationC2SP(position, rotation, isOnGround))
|
||||
|
||||
if (connection.state != PlayConnectionStates.PLAYING && connection.protocolState != ProtocolStates.DISCONNECTED) {
|
||||
if (connection.state == PlayConnectionStates.SPAWNING) {
|
||||
connection.state = PlayConnectionStates.PLAYING
|
||||
}
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ import de.bixilon.minosoft.data.registries.dimension.DimensionProperties
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY
|
||||
import de.bixilon.minosoft.modding.event.events.RespawnEvent
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnectionStates
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.PlayS2CPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.PlayInByteBuffer
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
@ -90,6 +91,7 @@ class RespawnS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket() {
|
||||
|
||||
override fun handle(connection: PlayConnection) {
|
||||
// clear all chunks
|
||||
connection.state = PlayConnectionStates.SPAWNING
|
||||
connection.world.chunks.clear()
|
||||
connection.world.dimension = dimension
|
||||
connection.player.isSpawnConfirmed = false
|
||||
|
@ -18,6 +18,7 @@ import kotlin.reflect.KProperty
|
||||
import kotlin.reflect.KProperty0
|
||||
import kotlin.reflect.KProperty1
|
||||
|
||||
@Deprecated("Will be integrated in KUtil")
|
||||
object DelegateManager {
|
||||
// [field][<receiver>][reference][listener]
|
||||
private val listeners: SynchronizedMap<String, SynchronizedMap<WeakReference<Any>, MutableSet<Pair<WeakReference<Any>, DelegateListener<Any>>>>> = synchronizedMapOf()
|
||||
|
Loading…
x
Reference in New Issue
Block a user