From a18d02e6052d22244014b4435da4c103921f83c1 Mon Sep 17 00:00:00 2001 From: Bixilon Date: Fri, 7 Oct 2022 09:20:28 +0200 Subject: [PATCH] minor performance and memory improvements --- .../profiles/account/AccountProfileManager.kt | 2 +- .../profiles/audio/AudioProfileManager.kt | 2 +- .../profiles/block/BlockProfileManager.kt | 2 +- .../connection/ConnectionProfileManager.kt | 2 +- .../controls/ControlsProfileManager.kt | 2 +- .../profiles/entity/EntityProfileManager.kt | 2 +- .../profiles/eros/ErosProfileManager.kt | 2 +- .../profile/profiles/gui/GUIProfileManager.kt | 2 +- .../profiles/other/OtherProfileManager.kt | 2 +- .../particle/ParticleProfileManager.kt | 2 +- .../rendering/RenderingProfileManager.kt | 2 +- .../resources/ResourcesProfileManager.kt | 2 +- .../palette/palettes/BiomePaletteFactory.kt | 2 +- .../palettes/BlockStatePaletteFactory.kt | 2 +- .../overlays/simple/PowderSnowOverlay.kt | 2 +- .../bixilon/minosoft/util/chunk/ChunkUtil.kt | 18 ++++++++---------- 16 files changed, 23 insertions(+), 25 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/config/profile/profiles/account/AccountProfileManager.kt b/src/main/java/de/bixilon/minosoft/config/profile/profiles/account/AccountProfileManager.kt index b0f10765b..4c0253cf8 100644 --- a/src/main/java/de/bixilon/minosoft/config/profile/profiles/account/AccountProfileManager.kt +++ b/src/main/java/de/bixilon/minosoft/config/profile/profiles/account/AccountProfileManager.kt @@ -28,7 +28,7 @@ import java.util.concurrent.locks.ReentrantLock object AccountProfileManager : ProfileManager { override val namespace = "minosoft:account".toResourceLocation() - override val latestVersion = 1 + override val latestVersion get() = 1 override val saveLock = ReentrantLock() override val profileClass = AccountProfile::class.java override val jacksonProfileType: JavaType = Jackson.MAPPER.typeFactory.constructType(profileClass) diff --git a/src/main/java/de/bixilon/minosoft/config/profile/profiles/audio/AudioProfileManager.kt b/src/main/java/de/bixilon/minosoft/config/profile/profiles/audio/AudioProfileManager.kt index d7c0ed012..31f47c80c 100644 --- a/src/main/java/de/bixilon/minosoft/config/profile/profiles/audio/AudioProfileManager.kt +++ b/src/main/java/de/bixilon/minosoft/config/profile/profiles/audio/AudioProfileManager.kt @@ -29,7 +29,7 @@ import java.util.concurrent.locks.ReentrantLock object AudioProfileManager : ProfileManager { override val namespace = "minosoft:audio".toResourceLocation() - override val latestVersion = 1 + override val latestVersion get() = 1 override val saveLock = ReentrantLock() override val profileClass = AudioProfile::class.java override val jacksonProfileType: JavaType = Jackson.MAPPER.typeFactory.constructType(profileClass) diff --git a/src/main/java/de/bixilon/minosoft/config/profile/profiles/block/BlockProfileManager.kt b/src/main/java/de/bixilon/minosoft/config/profile/profiles/block/BlockProfileManager.kt index 6f57dacda..522a49bcf 100644 --- a/src/main/java/de/bixilon/minosoft/config/profile/profiles/block/BlockProfileManager.kt +++ b/src/main/java/de/bixilon/minosoft/config/profile/profiles/block/BlockProfileManager.kt @@ -28,7 +28,7 @@ import java.util.concurrent.locks.ReentrantLock object BlockProfileManager : ProfileManager { override val namespace = "minosoft:block".toResourceLocation() - override val latestVersion = 1 + override val latestVersion get() = 1 override val saveLock = ReentrantLock() override val profileClass = BlockProfile::class.java override val jacksonProfileType: JavaType = Jackson.MAPPER.typeFactory.constructType(profileClass) diff --git a/src/main/java/de/bixilon/minosoft/config/profile/profiles/connection/ConnectionProfileManager.kt b/src/main/java/de/bixilon/minosoft/config/profile/profiles/connection/ConnectionProfileManager.kt index 182555e45..fba211848 100644 --- a/src/main/java/de/bixilon/minosoft/config/profile/profiles/connection/ConnectionProfileManager.kt +++ b/src/main/java/de/bixilon/minosoft/config/profile/profiles/connection/ConnectionProfileManager.kt @@ -28,7 +28,7 @@ import java.util.concurrent.locks.ReentrantLock object ConnectionProfileManager : ProfileManager { override val namespace = "minosoft:connection".toResourceLocation() - override val latestVersion = 1 + override val latestVersion get() = 1 override val saveLock = ReentrantLock() override val profileClass = ConnectionProfile::class.java override val jacksonProfileType: JavaType = Jackson.MAPPER.typeFactory.constructType(profileClass) diff --git a/src/main/java/de/bixilon/minosoft/config/profile/profiles/controls/ControlsProfileManager.kt b/src/main/java/de/bixilon/minosoft/config/profile/profiles/controls/ControlsProfileManager.kt index 144297f5a..bcd22405f 100644 --- a/src/main/java/de/bixilon/minosoft/config/profile/profiles/controls/ControlsProfileManager.kt +++ b/src/main/java/de/bixilon/minosoft/config/profile/profiles/controls/ControlsProfileManager.kt @@ -28,7 +28,7 @@ import java.util.concurrent.locks.ReentrantLock object ControlsProfileManager : ProfileManager { override val namespace = "minosoft:controls".toResourceLocation() - override val latestVersion = 1 + override val latestVersion get() = 1 override val saveLock = ReentrantLock() override val profileClass = ControlsProfile::class.java override val jacksonProfileType: JavaType = Jackson.MAPPER.typeFactory.constructType(profileClass) diff --git a/src/main/java/de/bixilon/minosoft/config/profile/profiles/entity/EntityProfileManager.kt b/src/main/java/de/bixilon/minosoft/config/profile/profiles/entity/EntityProfileManager.kt index 2c268b288..6562b61b6 100644 --- a/src/main/java/de/bixilon/minosoft/config/profile/profiles/entity/EntityProfileManager.kt +++ b/src/main/java/de/bixilon/minosoft/config/profile/profiles/entity/EntityProfileManager.kt @@ -28,7 +28,7 @@ import java.util.concurrent.locks.ReentrantLock object EntityProfileManager : ProfileManager { override val namespace = "minosoft:entity".toResourceLocation() - override val latestVersion = 1 + override val latestVersion get() = 1 override val saveLock = ReentrantLock() override val profileClass = EntityProfile::class.java override val jacksonProfileType: JavaType = Jackson.MAPPER.typeFactory.constructType(profileClass) diff --git a/src/main/java/de/bixilon/minosoft/config/profile/profiles/eros/ErosProfileManager.kt b/src/main/java/de/bixilon/minosoft/config/profile/profiles/eros/ErosProfileManager.kt index 75a21f3ca..7b91b0d49 100644 --- a/src/main/java/de/bixilon/minosoft/config/profile/profiles/eros/ErosProfileManager.kt +++ b/src/main/java/de/bixilon/minosoft/config/profile/profiles/eros/ErosProfileManager.kt @@ -37,7 +37,7 @@ import java.util.concurrent.locks.ReentrantLock object ErosProfileManager : ProfileManager { override val namespace = "minosoft:eros".toResourceLocation() - override val latestVersion = 1 + override val latestVersion get() = 1 override val saveLock = ReentrantLock() override val profileClass = ErosProfile::class.java override val jacksonProfileType: JavaType = Jackson.MAPPER.typeFactory.constructType(profileClass) diff --git a/src/main/java/de/bixilon/minosoft/config/profile/profiles/gui/GUIProfileManager.kt b/src/main/java/de/bixilon/minosoft/config/profile/profiles/gui/GUIProfileManager.kt index 3a0049fd2..e5b968ca3 100644 --- a/src/main/java/de/bixilon/minosoft/config/profile/profiles/gui/GUIProfileManager.kt +++ b/src/main/java/de/bixilon/minosoft/config/profile/profiles/gui/GUIProfileManager.kt @@ -28,7 +28,7 @@ import java.util.concurrent.locks.ReentrantLock object GUIProfileManager : ProfileManager { override val namespace = "minosoft:gui".toResourceLocation() - override val latestVersion = 1 + override val latestVersion get() = 1 override val saveLock = ReentrantLock() override val profileClass = GUIProfile::class.java override val jacksonProfileType: JavaType = Jackson.MAPPER.typeFactory.constructType(profileClass) diff --git a/src/main/java/de/bixilon/minosoft/config/profile/profiles/other/OtherProfileManager.kt b/src/main/java/de/bixilon/minosoft/config/profile/profiles/other/OtherProfileManager.kt index a45721da9..8527089ad 100644 --- a/src/main/java/de/bixilon/minosoft/config/profile/profiles/other/OtherProfileManager.kt +++ b/src/main/java/de/bixilon/minosoft/config/profile/profiles/other/OtherProfileManager.kt @@ -28,7 +28,7 @@ import java.util.concurrent.locks.ReentrantLock object OtherProfileManager : ProfileManager { override val namespace = "minosoft:other".toResourceLocation() - override val latestVersion = 2 + override val latestVersion get() = 2 override val saveLock = ReentrantLock() override val profileClass = OtherProfile::class.java override val jacksonProfileType: JavaType = Jackson.MAPPER.typeFactory.constructType(profileClass) diff --git a/src/main/java/de/bixilon/minosoft/config/profile/profiles/particle/ParticleProfileManager.kt b/src/main/java/de/bixilon/minosoft/config/profile/profiles/particle/ParticleProfileManager.kt index 0afb3116f..c8291e81a 100644 --- a/src/main/java/de/bixilon/minosoft/config/profile/profiles/particle/ParticleProfileManager.kt +++ b/src/main/java/de/bixilon/minosoft/config/profile/profiles/particle/ParticleProfileManager.kt @@ -28,7 +28,7 @@ import java.util.concurrent.locks.ReentrantLock object ParticleProfileManager : ProfileManager { override val namespace = "minosoft:particle".toResourceLocation() - override val latestVersion = 1 + override val latestVersion get() = 1 override val saveLock = ReentrantLock() override val profileClass = ParticleProfile::class.java override val jacksonProfileType: JavaType = Jackson.MAPPER.typeFactory.constructType(profileClass) diff --git a/src/main/java/de/bixilon/minosoft/config/profile/profiles/rendering/RenderingProfileManager.kt b/src/main/java/de/bixilon/minosoft/config/profile/profiles/rendering/RenderingProfileManager.kt index 5d5574b9a..a037fbd64 100644 --- a/src/main/java/de/bixilon/minosoft/config/profile/profiles/rendering/RenderingProfileManager.kt +++ b/src/main/java/de/bixilon/minosoft/config/profile/profiles/rendering/RenderingProfileManager.kt @@ -28,7 +28,7 @@ import java.util.concurrent.locks.ReentrantLock object RenderingProfileManager : ProfileManager { override val namespace = "minosoft:rendering".toResourceLocation() - override val latestVersion = 1 + override val latestVersion get() = 1 override val saveLock = ReentrantLock() override val profileClass = RenderingProfile::class.java override val jacksonProfileType: JavaType = Jackson.MAPPER.typeFactory.constructType(profileClass) diff --git a/src/main/java/de/bixilon/minosoft/config/profile/profiles/resources/ResourcesProfileManager.kt b/src/main/java/de/bixilon/minosoft/config/profile/profiles/resources/ResourcesProfileManager.kt index c5a943da6..15892c9c6 100644 --- a/src/main/java/de/bixilon/minosoft/config/profile/profiles/resources/ResourcesProfileManager.kt +++ b/src/main/java/de/bixilon/minosoft/config/profile/profiles/resources/ResourcesProfileManager.kt @@ -28,7 +28,7 @@ import java.util.concurrent.locks.ReentrantLock object ResourcesProfileManager : ProfileManager { override val namespace = "minosoft:resources".toResourceLocation() - override val latestVersion = 1 + override val latestVersion get() = 1 override val saveLock = ReentrantLock() override val profileClass = ResourcesProfile::class.java override val jacksonProfileType: JavaType = Jackson.MAPPER.typeFactory.constructType(profileClass) diff --git a/src/main/java/de/bixilon/minosoft/data/world/container/palette/palettes/BiomePaletteFactory.kt b/src/main/java/de/bixilon/minosoft/data/world/container/palette/palettes/BiomePaletteFactory.kt index 305012400..c8d1d356b 100644 --- a/src/main/java/de/bixilon/minosoft/data/world/container/palette/palettes/BiomePaletteFactory.kt +++ b/src/main/java/de/bixilon/minosoft/data/world/container/palette/palettes/BiomePaletteFactory.kt @@ -16,7 +16,7 @@ package de.bixilon.minosoft.data.world.container.palette.palettes import de.bixilon.minosoft.data.registries.registries.registry.AbstractRegistry object BiomePaletteFactory : PaletteFactory { - override val edgeBits = 2 + override val edgeBits get() = 2 override fun createPalette(registry: AbstractRegistry, bits: Int): Palette { return when (bits) { diff --git a/src/main/java/de/bixilon/minosoft/data/world/container/palette/palettes/BlockStatePaletteFactory.kt b/src/main/java/de/bixilon/minosoft/data/world/container/palette/palettes/BlockStatePaletteFactory.kt index dc60a93b2..22ff7ebe4 100644 --- a/src/main/java/de/bixilon/minosoft/data/world/container/palette/palettes/BlockStatePaletteFactory.kt +++ b/src/main/java/de/bixilon/minosoft/data/world/container/palette/palettes/BlockStatePaletteFactory.kt @@ -16,7 +16,7 @@ package de.bixilon.minosoft.data.world.container.palette.palettes import de.bixilon.minosoft.data.registries.registries.registry.AbstractRegistry object BlockStatePaletteFactory : PaletteFactory { - override val edgeBits = 4 + override val edgeBits get() = 4 override fun createPalette(registry: AbstractRegistry, bits: Int): Palette { return when (bits) { diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/framebuffer/world/overlay/overlays/simple/PowderSnowOverlay.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/framebuffer/world/overlay/overlays/simple/PowderSnowOverlay.kt index c297baa9b..f4376ff54 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/framebuffer/world/overlay/overlays/simple/PowderSnowOverlay.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/framebuffer/world/overlay/overlays/simple/PowderSnowOverlay.kt @@ -38,7 +38,7 @@ class PowderSnowOverlay(renderWindow: RenderWindow, z: Float) : SimpleOverlay(re private val OVERLAY_TEXTURE = "misc/powder_snow_outline".toResourceLocation().texture() override fun build(renderWindow: RenderWindow, z: Float): PowderSnowOverlay? { - if (renderWindow.connection.assetsManager.getOrNull(OVERLAY_TEXTURE) == null) { // ToDo: Don't get twice + if (!renderWindow.connection.assetsManager.contains(OVERLAY_TEXTURE)) { // overlay not yet available (< 1.17) return null } diff --git a/src/main/java/de/bixilon/minosoft/util/chunk/ChunkUtil.kt b/src/main/java/de/bixilon/minosoft/util/chunk/ChunkUtil.kt index d3b53e127..4732a55b5 100644 --- a/src/main/java/de/bixilon/minosoft/util/chunk/ChunkUtil.kt +++ b/src/main/java/de/bixilon/minosoft/util/chunk/ChunkUtil.kt @@ -221,17 +221,15 @@ object ChunkUtil { private fun readLegacyBiomeArray(buffer: PlayInByteBuffer): XZBiomeArray { - val biomes: MutableList = mutableListOf() - for (i in 0 until ProtocolDefinition.SECTION_WIDTH_X * ProtocolDefinition.SECTION_WIDTH_Z) { - biomes.add( - i, buffer.connection.registries.biomeRegistry[if (buffer.versionId < V_1_13_2) { // ToDo: Was V_15W35A, but this can't be correct - buffer.readUnsignedByte() - } else { - buffer.readInt() - }] - ) + val biomes: Array = arrayOfNulls(ProtocolDefinition.SECTION_WIDTH_X * ProtocolDefinition.SECTION_WIDTH_Z) + for (i in biomes.indices) { + biomes[i] = buffer.connection.registries.biomeRegistry[if (buffer.versionId < V_1_13_2) { // ToDo: Was V_15W35A, but this can't be correct + buffer.readUnsignedByte() + } else { + buffer.readInt() + }] } - return XZBiomeArray(biomes.toTypedArray()) + return XZBiomeArray(biomes) } val Array.fullyLoaded: Boolean