diff --git a/src/main/java/de/bixilon/minosoft/Minosoft.kt b/src/main/java/de/bixilon/minosoft/Minosoft.kt index b884fad86..1897ef603 100644 --- a/src/main/java/de/bixilon/minosoft/Minosoft.kt +++ b/src/main/java/de/bixilon/minosoft/Minosoft.kt @@ -30,7 +30,6 @@ import de.bixilon.minosoft.config.profile.profiles.eros.ErosProfileManager import de.bixilon.minosoft.data.language.LanguageManager.Companion.load import de.bixilon.minosoft.data.language.MultiLanguageManager import de.bixilon.minosoft.data.registries.DefaultRegistries -import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.versions.Versions import de.bixilon.minosoft.gui.eros.Eros import de.bixilon.minosoft.gui.eros.XStartOnFirstThreadWarning @@ -49,6 +48,7 @@ import de.bixilon.minosoft.terminal.RunConfiguration import de.bixilon.minosoft.terminal.cli.CLI import de.bixilon.minosoft.util.GitInfo import de.bixilon.minosoft.util.KUtil +import de.bixilon.minosoft.util.KUtil.minosoft import de.bixilon.minosoft.util.RenderPolling import de.bixilon.minosoft.util.YggdrasilUtil import de.bixilon.minosoft.util.logging.Log @@ -128,7 +128,7 @@ object Minosoft { val language = ErosProfileManager.selected.general.language ErosProfileManager.selected.general::language.profileWatch(this, true) { Log.log(LogMessageType.OTHER, LogLevels.VERBOSE) { "Loading language files (${language})" } - LANGUAGE_MANAGER.translators[ProtocolDefinition.MINOSOFT_NAMESPACE] = load(it, null, MINOSOFT_ASSETS_MANAGER, ResourceLocation(ProtocolDefinition.MINOSOFT_NAMESPACE, "language/")) + LANGUAGE_MANAGER.translators[ProtocolDefinition.MINOSOFT_NAMESPACE] = load(it, null, MINOSOFT_ASSETS_MANAGER, minosoft("language/")) Log.log(LogMessageType.OTHER, LogLevels.VERBOSE) { "Language files loaded!" } } } diff --git a/src/main/java/de/bixilon/minosoft/data/language/LanguageUtil.kt b/src/main/java/de/bixilon/minosoft/data/language/LanguageUtil.kt index 12fa8c14d..37b5f4d11 100644 --- a/src/main/java/de/bixilon/minosoft/data/language/LanguageUtil.kt +++ b/src/main/java/de/bixilon/minosoft/data/language/LanguageUtil.kt @@ -1,6 +1,6 @@ /* * Minosoft - * Copyright (C) 2022 Moritz Zwerger + * Copyright (C) 2020-2022 Moritz Zwerger * * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * @@ -13,8 +13,8 @@ package de.bixilon.minosoft.data.language -import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition +import de.bixilon.minosoft.util.KUtil.minosoft import de.bixilon.minosoft.util.KUtil.toResourceLocation object LanguageUtil { @@ -23,7 +23,7 @@ object LanguageUtil { fun String?.i18n(): Translated { val resourceLocation = this.toResourceLocation() if (resourceLocation.namespace == ProtocolDefinition.DEFAULT_NAMESPACE) { - return Translated(ResourceLocation(ProtocolDefinition.MINOSOFT_NAMESPACE, resourceLocation.path)) + return Translated(minosoft(resourceLocation.path)) } return Translated(resourceLocation) } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/ShaderManager.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/ShaderManager.kt index e8d0469c7..3413d69bf 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/ShaderManager.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/ShaderManager.kt @@ -13,16 +13,15 @@ package de.bixilon.minosoft.gui.rendering -import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader.Companion.loadAnimated -import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition +import de.bixilon.minosoft.util.KUtil.minosoft class ShaderManager( val renderWindow: RenderWindow, ) { - val genericColorShader = renderWindow.renderSystem.createShader(ResourceLocation(ProtocolDefinition.MINOSOFT_NAMESPACE, "generic/color")) - val genericTextureShader = renderWindow.renderSystem.createShader(ResourceLocation(ProtocolDefinition.MINOSOFT_NAMESPACE, "generic/texture")) - val genericTexture2dShader = renderWindow.renderSystem.createShader(ResourceLocation(ProtocolDefinition.MINOSOFT_NAMESPACE, "generic/texture_2d")) + val genericColorShader = renderWindow.renderSystem.createShader(minosoft("generic/color")) + val genericTextureShader = renderWindow.renderSystem.createShader(minosoft("generic/texture")) + val genericTexture2dShader = renderWindow.renderSystem.createShader(minosoft("generic/texture_2d")) fun postInit() { diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/particle/ParticleRenderer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/particle/ParticleRenderer.kt index 9d5b59638..60cd6bfd7 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/particle/ParticleRenderer.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/particle/ParticleRenderer.kt @@ -41,6 +41,7 @@ import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnectionStates import de.bixilon.minosoft.protocol.network.connection.play.PlayConnectionStates.Companion.disconnected import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition +import de.bixilon.minosoft.util.KUtil.minosoft import de.bixilon.minosoft.util.chunk.ChunkUtil.isInViewDistance import de.bixilon.minosoft.util.collections.floats.DirectArrayFloatList @@ -51,8 +52,8 @@ class ParticleRenderer( ) : Renderer, TransparentDrawable, TranslucentDrawable, SkipAll, AbstractParticleRenderer { override val renderSystem: RenderSystem = renderWindow.renderSystem private val profile = connection.profiles.particle - private val transparentShader: Shader = renderSystem.createShader(ResourceLocation(ProtocolDefinition.MINOSOFT_NAMESPACE, "particle")) - private val translucentShader: Shader = renderSystem.createShader(ResourceLocation(ProtocolDefinition.MINOSOFT_NAMESPACE, "particle")) + private val transparentShader: Shader = renderSystem.createShader(minosoft("particle")) + private val translucentShader: Shader = renderSystem.createShader(minosoft("particle")) // There is no opaque mesh because it is simply not needed (every particle has transparency) private var transparentMesh = ParticleMesh(renderWindow, DirectArrayFloatList(RenderConstants.MAXIMUM_PARTICLE_AMOUNT * ParticleMesh.ParticleMeshStruct.FLOATS_PER_VERTEX)) diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/skeletal/SkeletalManager.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/skeletal/SkeletalManager.kt index b4b1eb106..9bbafc857 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/skeletal/SkeletalManager.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/skeletal/SkeletalManager.kt @@ -13,17 +13,16 @@ package de.bixilon.minosoft.gui.rendering.skeletal -import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.gui.rendering.RenderWindow import de.bixilon.minosoft.gui.rendering.skeletal.instance.SkeletalInstance import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader.Companion.loadAnimated -import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition +import de.bixilon.minosoft.util.KUtil.minosoft import org.lwjgl.system.MemoryUtil.memAllocFloat class SkeletalManager( val renderWindow: RenderWindow, ) { - val shader = renderWindow.renderSystem.createShader(ResourceLocation(ProtocolDefinition.MINOSOFT_NAMESPACE, "skeletal")) + val shader = renderWindow.renderSystem.createShader(minosoft("skeletal")) private val uniformBuffer = renderWindow.renderSystem.createFloatUniformBuffer(memAllocFloat(TRANSFORMS * MAT4_SIZE)) fun init() { diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/sky/SkyRenderer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/sky/SkyRenderer.kt index 863d135fc..764441bcd 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/sky/SkyRenderer.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/sky/SkyRenderer.kt @@ -34,15 +34,15 @@ import de.bixilon.minosoft.gui.rendering.util.mesh.SimpleTextureMesh import de.bixilon.minosoft.modding.event.events.TimeChangeEvent import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition +import de.bixilon.minosoft.util.KUtil.minosoft class SkyRenderer( private val connection: PlayConnection, override val renderWindow: RenderWindow, ) : Renderer, PreDrawable { override val renderSystem: RenderSystem = renderWindow.renderSystem - private val skyboxShader = renderSystem.createShader(ResourceLocation(ProtocolDefinition.MINOSOFT_NAMESPACE, "sky/skybox")) - private val skySunShader = renderSystem.createShader(ResourceLocation(ProtocolDefinition.MINOSOFT_NAMESPACE, "sky/sun")) + private val skyboxShader = renderSystem.createShader(minosoft("sky/skybox")) + private val skySunShader = renderSystem.createShader(minosoft("sky/sun")) private val skyboxMesh = SkyboxMesh(renderWindow) private var skySunMesh = SimpleTextureMesh(renderWindow) private lateinit var sunTexture: AbstractTexture diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/world/border/WorldBorderRenderer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/world/border/WorldBorderRenderer.kt index 7494aace2..9b38dc42b 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/world/border/WorldBorderRenderer.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/world/border/WorldBorderRenderer.kt @@ -30,14 +30,14 @@ import de.bixilon.minosoft.gui.rendering.system.base.shader.ShaderUniforms import de.bixilon.minosoft.gui.rendering.system.base.texture.texture.AbstractTexture import de.bixilon.minosoft.gui.rendering.textures.TextureUtil.texture import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition +import de.bixilon.minosoft.util.KUtil.minosoft import de.bixilon.minosoft.util.KUtil.toResourceLocation class WorldBorderRenderer( override val renderWindow: RenderWindow, ) : Renderer, TranslucentDrawable { override val renderSystem: RenderSystem = renderWindow.renderSystem - private val shader = renderSystem.createShader(ResourceLocation(ProtocolDefinition.MINOSOFT_NAMESPACE, "world/border")) + private val shader = renderSystem.createShader(minosoft("world/border")) private var borderMesh = WorldBorderMesh(renderWindow) private val border = renderWindow.connection.world.border private lateinit var texture: AbstractTexture diff --git a/src/main/java/de/bixilon/minosoft/util/GitInfo.kt b/src/main/java/de/bixilon/minosoft/util/GitInfo.kt index cf70d881c..f77047a25 100644 --- a/src/main/java/de/bixilon/minosoft/util/GitInfo.kt +++ b/src/main/java/de/bixilon/minosoft/util/GitInfo.kt @@ -18,9 +18,8 @@ import de.bixilon.kutil.primitive.BooleanUtil.toBoolean import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.assets.util.FileUtil.readJsonObject -import de.bixilon.minosoft.data.registries.ResourceLocation -import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition import de.bixilon.minosoft.terminal.RunConfiguration +import de.bixilon.minosoft.util.KUtil.minosoft import de.bixilon.minosoft.util.logging.Log import de.bixilon.minosoft.util.logging.LogLevels import de.bixilon.minosoft.util.logging.LogMessageType @@ -80,7 +79,7 @@ object GitInfo { fun load() { try { val dateFormat: DateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZZZ") - val json = Minosoft.MINOSOFT_ASSETS_MANAGER[ResourceLocation(ProtocolDefinition.MINOSOFT_NAMESPACE, "git.json")].readJsonObject() + val json = Minosoft.MINOSOFT_ASSETS_MANAGER[minosoft("git.json")].readJsonObject() GIT_BRANCH = json["git.branch"].unsafeCast() GIT_BUILD_HOST_BRANCH = json["git.build.host"].unsafeCast() GIT_BUILD_TIME = dateFormat.parse(json["git.build.time"].unsafeCast()).time diff --git a/src/main/java/de/bixilon/minosoft/util/KUtil.kt b/src/main/java/de/bixilon/minosoft/util/KUtil.kt index 45c98eef7..8adb39f0e 100644 --- a/src/main/java/de/bixilon/minosoft/util/KUtil.kt +++ b/src/main/java/de/bixilon/minosoft/util/KUtil.kt @@ -71,6 +71,10 @@ object KUtil { } } + fun minosoft(path: String): ResourceLocation { + return ResourceLocation(ProtocolDefinition.MINOSOFT_NAMESPACE, path) + } + fun T.synchronizedDeepCopy(): T { return when (this) { is Map<*, *> -> {