mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-12 17:07:55 -04:00
move integrated assets managers to own holder
This commit is contained in:
parent
bd6a072dcb
commit
a2cb6b6258
@ -15,6 +15,7 @@ package de.bixilon.minosoft
|
|||||||
|
|
||||||
import de.bixilon.kutil.latch.SimpleLatch
|
import de.bixilon.kutil.latch.SimpleLatch
|
||||||
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet
|
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet
|
||||||
|
import de.bixilon.minosoft.assets.IntegratedAssets
|
||||||
import de.bixilon.minosoft.assets.meta.MinosoftMeta
|
import de.bixilon.minosoft.assets.meta.MinosoftMeta
|
||||||
import de.bixilon.minosoft.assets.properties.version.AssetsVersionProperties
|
import de.bixilon.minosoft.assets.properties.version.AssetsVersionProperties
|
||||||
import de.bixilon.minosoft.data.registries.fallback.FallbackRegistries
|
import de.bixilon.minosoft.data.registries.fallback.FallbackRegistries
|
||||||
@ -78,7 +79,8 @@ internal object MinosoftSIT {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun initAssetsManager() {
|
fun initAssetsManager() {
|
||||||
Minosoft.MINOSOFT_ASSETS_MANAGER.load()
|
IntegratedAssets.DEFAULT.load()
|
||||||
|
IntegratedAssets.OVERRIDE.load()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun loadVersionsJson() {
|
fun loadVersionsJson() {
|
||||||
|
@ -30,7 +30,7 @@ import de.bixilon.kutil.shutdown.AbstractShutdownReason
|
|||||||
import de.bixilon.kutil.shutdown.ShutdownManager
|
import de.bixilon.kutil.shutdown.ShutdownManager
|
||||||
import de.bixilon.kutil.time.TimeUtil.nanos
|
import de.bixilon.kutil.time.TimeUtil.nanos
|
||||||
import de.bixilon.kutil.unit.UnitFormatter.formatNanos
|
import de.bixilon.kutil.unit.UnitFormatter.formatNanos
|
||||||
import de.bixilon.minosoft.assets.file.ResourcesAssetsUtil
|
import de.bixilon.minosoft.assets.IntegratedAssets
|
||||||
import de.bixilon.minosoft.assets.meta.MinosoftMeta
|
import de.bixilon.minosoft.assets.meta.MinosoftMeta
|
||||||
import de.bixilon.minosoft.assets.properties.version.AssetsVersionProperties
|
import de.bixilon.minosoft.assets.properties.version.AssetsVersionProperties
|
||||||
import de.bixilon.minosoft.config.StaticConfiguration
|
import de.bixilon.minosoft.config.StaticConfiguration
|
||||||
@ -73,21 +73,22 @@ import de.bixilon.minosoft.util.yggdrasil.YggdrasilUtil
|
|||||||
|
|
||||||
|
|
||||||
object Minosoft {
|
object Minosoft {
|
||||||
val MINOSOFT_ASSETS_MANAGER = ResourcesAssetsUtil.create(Minosoft::class.java, canUnload = false)
|
|
||||||
val OVERRIDE_ASSETS_MANAGER = ResourcesAssetsUtil.create(Minosoft::class.java, canUnload = false, prefix = "assets_override")
|
|
||||||
val LANGUAGE_MANAGER = MultiLanguageManager()
|
val LANGUAGE_MANAGER = MultiLanguageManager()
|
||||||
val BOOT_LATCH = CallbackLatch(1)
|
val BOOT_LATCH = CallbackLatch(1)
|
||||||
|
|
||||||
|
|
||||||
private fun preBoot(args: Array<String>) {
|
private fun preBoot(args: Array<String>) {
|
||||||
|
val assets = SimpleLatch(1)
|
||||||
|
DefaultThreadPool += ForcePooledRunnable { IntegratedAssets.DEFAULT.load(); assets.dec() }
|
||||||
DefaultThreadPool += ForcePooledRunnable { Jackson.init(); MinosoftPropertiesLoader.init() }
|
DefaultThreadPool += ForcePooledRunnable { Jackson.init(); MinosoftPropertiesLoader.init() }
|
||||||
DefaultThreadPool += ForcePooledRunnable { KUtil.initBootClasses() }
|
DefaultThreadPool += ForcePooledRunnable { KUtil.initBootClasses() }
|
||||||
CommandLineArguments.parse(args)
|
CommandLineArguments.parse(args)
|
||||||
Log.log(LogMessageType.OTHER, LogLevels.INFO) { "Starting minosoft..." }
|
Log.log(LogMessageType.OTHER, LogLevels.INFO) { "Starting minosoft..." }
|
||||||
|
|
||||||
val latch = SimpleLatch(2)
|
val latch = SimpleLatch(2)
|
||||||
DefaultThreadPool += ForcePooledRunnable { MINOSOFT_ASSETS_MANAGER.load(); MinosoftPropertiesLoader.load(); latch.dec() }
|
|
||||||
DefaultThreadPool += ForcePooledRunnable { ModLoader.initModLoading(); latch.dec() }
|
DefaultThreadPool += ForcePooledRunnable { ModLoader.initModLoading(); latch.dec() }
|
||||||
|
assets.await()
|
||||||
|
DefaultThreadPool += ForcePooledRunnable { MinosoftPropertiesLoader.load(); latch.dec() }
|
||||||
|
|
||||||
KUtil.init()
|
KUtil.init()
|
||||||
|
|
||||||
@ -122,7 +123,7 @@ object Minosoft {
|
|||||||
}
|
}
|
||||||
taskWorker += WorkerTask(identifier = BootTasks.YGGDRASIL, executor = { YggdrasilUtil.load() })
|
taskWorker += WorkerTask(identifier = BootTasks.YGGDRASIL, executor = { YggdrasilUtil.load() })
|
||||||
|
|
||||||
taskWorker += WorkerTask(identifier = BootTasks.ASSETS_OVERRIDE, executor = { OVERRIDE_ASSETS_MANAGER.load(it) })
|
taskWorker += WorkerTask(identifier = BootTasks.ASSETS_OVERRIDE, executor = { IntegratedAssets.OVERRIDE.load(it) })
|
||||||
taskWorker += WorkerTask(identifier = BootTasks.MODS, executor = { ModLoader.load(LoadingPhases.BOOT, it) })
|
taskWorker += WorkerTask(identifier = BootTasks.MODS, executor = { ModLoader.load(LoadingPhases.BOOT, it) })
|
||||||
taskWorker += WorkerTask(identifier = BootTasks.DATA_FIXER, executor = { DataFixer.load() })
|
taskWorker += WorkerTask(identifier = BootTasks.DATA_FIXER, executor = { DataFixer.load() })
|
||||||
taskWorker += WorkerTask(identifier = BootTasks.CLI, priority = ThreadPool.LOW, executor = CLI::startThread)
|
taskWorker += WorkerTask(identifier = BootTasks.CLI, priority = ThreadPool.LOW, executor = CLI::startThread)
|
||||||
@ -187,7 +188,7 @@ object Minosoft {
|
|||||||
val language = ErosProfileManager.selected.general.language
|
val language = ErosProfileManager.selected.general.language
|
||||||
ErosProfileManager.selected.general::language.observe(this, true) {
|
ErosProfileManager.selected.general::language.observe(this, true) {
|
||||||
Log.log(LogMessageType.OTHER, LogLevels.VERBOSE) { "Loading language files (${language})" }
|
Log.log(LogMessageType.OTHER, LogLevels.VERBOSE) { "Loading language files (${language})" }
|
||||||
LANGUAGE_MANAGER.translators[Namespaces.MINOSOFT] = LanguageUtil.load(it, null, MINOSOFT_ASSETS_MANAGER, minosoft("language/"))
|
LANGUAGE_MANAGER.translators[Namespaces.MINOSOFT] = LanguageUtil.load(it, null, IntegratedAssets.DEFAULT, minosoft("language/"))
|
||||||
Log.log(LogMessageType.OTHER, LogLevels.VERBOSE) { "Language files loaded!" }
|
Log.log(LogMessageType.OTHER, LogLevels.VERBOSE) { "Language files loaded!" }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
package de.bixilon.minosoft.assets
|
package de.bixilon.minosoft.assets
|
||||||
|
|
||||||
import de.bixilon.kutil.latch.AbstractLatch
|
import de.bixilon.kutil.latch.AbstractLatch
|
||||||
import de.bixilon.minosoft.Minosoft
|
|
||||||
import de.bixilon.minosoft.assets.connection.ConnectionAssetsManager
|
import de.bixilon.minosoft.assets.connection.ConnectionAssetsManager
|
||||||
import de.bixilon.minosoft.assets.minecraft.JarAssetsManager
|
import de.bixilon.minosoft.assets.minecraft.JarAssetsManager
|
||||||
import de.bixilon.minosoft.assets.minecraft.MinecraftPackFormat.packFormat
|
import de.bixilon.minosoft.assets.minecraft.MinecraftPackFormat.packFormat
|
||||||
@ -50,7 +49,7 @@ object AssetsLoader {
|
|||||||
|
|
||||||
val assetsManager = ConnectionAssetsManager(properties)
|
val assetsManager = ConnectionAssetsManager(properties)
|
||||||
|
|
||||||
assetsManager += Minosoft.OVERRIDE_ASSETS_MANAGER
|
assetsManager += IntegratedAssets.OVERRIDE
|
||||||
|
|
||||||
assetsManager.addPacks(profile, latch)
|
assetsManager.addPacks(profile, latch)
|
||||||
|
|
||||||
@ -60,7 +59,7 @@ object AssetsLoader {
|
|||||||
if (!profile.assets.disableJarAssets) {
|
if (!profile.assets.disableJarAssets) {
|
||||||
assetsManager += JarAssetsManager(property.jarAssetsHash, property.clientJarHash, profile, version, property.jarAssetsTarBytes ?: JarAssetsManager.DEFAULT_TAR_BYTES)
|
assetsManager += JarAssetsManager(property.jarAssetsHash, property.clientJarHash, profile, version, property.jarAssetsTarBytes ?: JarAssetsManager.DEFAULT_TAR_BYTES)
|
||||||
}
|
}
|
||||||
assetsManager += Minosoft.MINOSOFT_ASSETS_MANAGER
|
assetsManager += IntegratedAssets.DEFAULT
|
||||||
|
|
||||||
return assetsManager
|
return assetsManager
|
||||||
}
|
}
|
||||||
|
21
src/main/java/de/bixilon/minosoft/assets/IntegratedAssets.kt
Normal file
21
src/main/java/de/bixilon/minosoft/assets/IntegratedAssets.kt
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
* Minosoft
|
||||||
|
* Copyright (C) 2020-2023 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.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package de.bixilon.minosoft.assets
|
||||||
|
|
||||||
|
import de.bixilon.minosoft.assets.file.ResourcesAssetsUtil
|
||||||
|
|
||||||
|
object IntegratedAssets {
|
||||||
|
val DEFAULT = ResourcesAssetsUtil.create(IntegratedAssets::class.java, canUnload = false)
|
||||||
|
val OVERRIDE = ResourcesAssetsUtil.create(IntegratedAssets::class.java, canUnload = false, prefix = "assets_override")
|
||||||
|
}
|
@ -19,7 +19,7 @@ import de.bixilon.kutil.json.JsonObject
|
|||||||
import de.bixilon.kutil.string.StringUtil.formatPlaceholder
|
import de.bixilon.kutil.string.StringUtil.formatPlaceholder
|
||||||
import de.bixilon.kutil.url.URLUtil.toURL
|
import de.bixilon.kutil.url.URLUtil.toURL
|
||||||
import de.bixilon.mbf.MBFBinaryReader
|
import de.bixilon.mbf.MBFBinaryReader
|
||||||
import de.bixilon.minosoft.Minosoft
|
import de.bixilon.minosoft.assets.IntegratedAssets
|
||||||
import de.bixilon.minosoft.assets.util.FileAssetsTypes
|
import de.bixilon.minosoft.assets.util.FileAssetsTypes
|
||||||
import de.bixilon.minosoft.assets.util.FileAssetsUtil
|
import de.bixilon.minosoft.assets.util.FileAssetsUtil
|
||||||
import de.bixilon.minosoft.assets.util.HashTypes
|
import de.bixilon.minosoft.assets.util.HashTypes
|
||||||
@ -37,7 +37,7 @@ object MinosoftMeta {
|
|||||||
|
|
||||||
|
|
||||||
fun load() {
|
fun load() {
|
||||||
this.root = Minosoft.MINOSOFT_ASSETS_MANAGER[INDEX].readJson<MetaRoot>()
|
this.root = IntegratedAssets.DEFAULT[INDEX].readJson<MetaRoot>()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun ByteArray.load(): JsonObject {
|
private fun ByteArray.load(): JsonObject {
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
package de.bixilon.minosoft.assets.properties.version
|
package de.bixilon.minosoft.assets.properties.version
|
||||||
|
|
||||||
import de.bixilon.kutil.latch.AbstractLatch
|
import de.bixilon.kutil.latch.AbstractLatch
|
||||||
import de.bixilon.minosoft.Minosoft
|
import de.bixilon.minosoft.assets.IntegratedAssets
|
||||||
import de.bixilon.minosoft.assets.util.InputStreamUtil.readJson
|
import de.bixilon.minosoft.assets.util.InputStreamUtil.readJson
|
||||||
import de.bixilon.minosoft.protocol.versions.Version
|
import de.bixilon.minosoft.protocol.versions.Version
|
||||||
import de.bixilon.minosoft.protocol.versions.Versions
|
import de.bixilon.minosoft.protocol.versions.Versions
|
||||||
@ -32,7 +32,7 @@ object AssetsVersionProperties {
|
|||||||
throw IllegalStateException("Already loaded!")
|
throw IllegalStateException("Already loaded!")
|
||||||
}
|
}
|
||||||
Log.log(LogMessageType.OTHER, LogLevels.VERBOSE) { "Loading assets properties..." }
|
Log.log(LogMessageType.OTHER, LogLevels.VERBOSE) { "Loading assets properties..." }
|
||||||
val assetsProperties: Map<String, AssetsVersionProperty> = Minosoft.MINOSOFT_ASSETS_MANAGER[ASSETS_PROPERTIES_FILE].readJson()
|
val assetsProperties: Map<String, AssetsVersionProperty> = IntegratedAssets.DEFAULT[ASSETS_PROPERTIES_FILE].readJson()
|
||||||
for ((versionName, property) in assetsProperties) {
|
for ((versionName, property) in assetsProperties) {
|
||||||
PROPERTIES[Versions[versionName] ?: continue] = property
|
PROPERTIES[Versions[versionName] ?: continue] = property
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,7 @@ package de.bixilon.minosoft.data.entities.event
|
|||||||
import de.bixilon.kutil.cast.CollectionCast.asAnyMap
|
import de.bixilon.kutil.cast.CollectionCast.asAnyMap
|
||||||
import de.bixilon.kutil.json.JsonUtil.asJsonObject
|
import de.bixilon.kutil.json.JsonUtil.asJsonObject
|
||||||
import de.bixilon.kutil.primitive.IntUtil.toInt
|
import de.bixilon.kutil.primitive.IntUtil.toInt
|
||||||
import de.bixilon.minosoft.Minosoft
|
import de.bixilon.minosoft.assets.IntegratedAssets
|
||||||
import de.bixilon.minosoft.assets.util.InputStreamUtil.readJson
|
import de.bixilon.minosoft.assets.util.InputStreamUtil.readJson
|
||||||
import de.bixilon.minosoft.data.entities.entities.Entity
|
import de.bixilon.minosoft.data.entities.entities.Entity
|
||||||
import de.bixilon.minosoft.data.entities.event.events.damage.*
|
import de.bixilon.minosoft.data.entities.event.events.damage.*
|
||||||
@ -58,7 +58,7 @@ object EntityEvents : DefaultFactory<EntityEvent<*>>(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun load() {
|
fun load() {
|
||||||
val json: Map<ResourceLocation, Any> = Minosoft.MINOSOFT_ASSETS_MANAGER[FILE].readJson()
|
val json: Map<ResourceLocation, Any> = IntegratedAssets.DEFAULT[FILE].readJson()
|
||||||
for ((name, data) in json) {
|
for ((name, data) in json) {
|
||||||
val clazz = DefaultEntityFactories.ABSTRACT_ENTITY_DATA_CLASSES[name]?.java ?: DefaultEntityFactories[name]?.javaClass // TODO: This is the companion class
|
val clazz = DefaultEntityFactories.ABSTRACT_ENTITY_DATA_CLASSES[name]?.java ?: DefaultEntityFactories[name]?.javaClass // TODO: This is the companion class
|
||||||
if (clazz == null) {
|
if (clazz == null) {
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
package de.bixilon.minosoft.data.registries.fallback
|
package de.bixilon.minosoft.data.registries.fallback
|
||||||
|
|
||||||
import de.bixilon.kutil.json.JsonUtil.asJsonObject
|
import de.bixilon.kutil.json.JsonUtil.asJsonObject
|
||||||
import de.bixilon.minosoft.Minosoft
|
import de.bixilon.minosoft.assets.IntegratedAssets
|
||||||
import de.bixilon.minosoft.assets.util.InputStreamUtil.readJson
|
import de.bixilon.minosoft.assets.util.InputStreamUtil.readJson
|
||||||
import de.bixilon.minosoft.data.container.equipment.EquipmentSlots
|
import de.bixilon.minosoft.data.container.equipment.EquipmentSlots
|
||||||
import de.bixilon.minosoft.data.entities.EntityAnimations
|
import de.bixilon.minosoft.data.entities.EntityAnimations
|
||||||
@ -76,7 +76,7 @@ object FallbackRegistries {
|
|||||||
check(!initialized) { "Already initialized!" }
|
check(!initialized) { "Already initialized!" }
|
||||||
Log.log(LogMessageType.OTHER, LogLevels.VERBOSE) { "Loading default registries..." }
|
Log.log(LogMessageType.OTHER, LogLevels.VERBOSE) { "Loading default registries..." }
|
||||||
|
|
||||||
val enumJson: Map<ResourceLocation, Any> = Minosoft.MINOSOFT_ASSETS_MANAGER[ENUM_RESOURCE_LOCATION].readJson()
|
val enumJson: Map<ResourceLocation, Any> = IntegratedAssets.DEFAULT[ENUM_RESOURCE_LOCATION].readJson()
|
||||||
|
|
||||||
EQUIPMENT_SLOTS_REGISTRY.initialize(enumJson[ResourceLocation.of("equipment_slots")].asJsonObject())
|
EQUIPMENT_SLOTS_REGISTRY.initialize(enumJson[ResourceLocation.of("equipment_slots")].asJsonObject())
|
||||||
HAND_EQUIPMENT_SLOTS_REGISTRY.initialize(enumJson[ResourceLocation.of("hand_equipment_slots")].asJsonObject())
|
HAND_EQUIPMENT_SLOTS_REGISTRY.initialize(enumJson[ResourceLocation.of("hand_equipment_slots")].asJsonObject())
|
||||||
@ -91,7 +91,7 @@ object FallbackRegistries {
|
|||||||
ENTITY_ACTIONS_REGISTRY.initialize(enumJson[ResourceLocation.of("entity_actions")].asJsonObject())
|
ENTITY_ACTIONS_REGISTRY.initialize(enumJson[ResourceLocation.of("entity_actions")].asJsonObject())
|
||||||
|
|
||||||
|
|
||||||
val registriesJson: Map<ResourceLocation, Any> = Minosoft.MINOSOFT_ASSETS_MANAGER[REGISTRIES_RESOURCE_LOCATION].readJson()
|
val registriesJson: Map<ResourceLocation, Any> = IntegratedAssets.DEFAULT[REGISTRIES_RESOURCE_LOCATION].readJson()
|
||||||
|
|
||||||
DEFAULT_PLUGIN_CHANNELS_REGISTRY.initialize(registriesJson[ResourceLocation.of("default_channels")].asJsonObject(), PluginChannel)
|
DEFAULT_PLUGIN_CHANNELS_REGISTRY.initialize(registriesJson[ResourceLocation.of("default_channels")].asJsonObject(), PluginChannel)
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ package de.bixilon.minosoft.data.registries.fallback.tags
|
|||||||
|
|
||||||
import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
||||||
import de.bixilon.kutil.cast.CollectionCast.asAnyCollection
|
import de.bixilon.kutil.cast.CollectionCast.asAnyCollection
|
||||||
import de.bixilon.minosoft.Minosoft
|
import de.bixilon.minosoft.assets.IntegratedAssets
|
||||||
import de.bixilon.minosoft.assets.util.InputStreamUtil.readJsonObject
|
import de.bixilon.minosoft.assets.util.InputStreamUtil.readJsonObject
|
||||||
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
||||||
import de.bixilon.minosoft.data.registries.item.items.tool.ToolLevels
|
import de.bixilon.minosoft.data.registries.item.items.tool.ToolLevels
|
||||||
@ -40,7 +40,7 @@ object FallbackTags {
|
|||||||
private val tags: MutableMap<ResourceLocation, MutableMap<ResourceLocation, Set<ResourceLocation>>> = mutableMapOf()
|
private val tags: MutableMap<ResourceLocation, MutableMap<ResourceLocation, Set<ResourceLocation>>> = mutableMapOf()
|
||||||
|
|
||||||
private fun read(type: ResourceLocation, name: ResourceLocation): Set<ResourceLocation> {
|
private fun read(type: ResourceLocation, name: ResourceLocation): Set<ResourceLocation> {
|
||||||
val content = Minosoft.MINOSOFT_ASSETS_MANAGER[ResourceLocation(name.namespace, "tags/${type.path}/${name.path}.json")].readJsonObject()["values"].asAnyCollection()
|
val content = IntegratedAssets.DEFAULT[ResourceLocation(name.namespace, "tags/${type.path}/${name.path}.json")].readJsonObject()["values"].asAnyCollection()
|
||||||
|
|
||||||
val set: MutableSet<ResourceLocation> = ObjectOpenHashSet()
|
val set: MutableSet<ResourceLocation> = ObjectOpenHashSet()
|
||||||
for (entry in content) {
|
for (entry in content) {
|
||||||
|
@ -15,7 +15,7 @@ package de.bixilon.minosoft.datafixer.rls
|
|||||||
|
|
||||||
import de.bixilon.kutil.cast.CastUtil.unsafeNull
|
import de.bixilon.kutil.cast.CastUtil.unsafeNull
|
||||||
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet
|
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet
|
||||||
import de.bixilon.minosoft.Minosoft
|
import de.bixilon.minosoft.assets.IntegratedAssets
|
||||||
import de.bixilon.minosoft.assets.util.InputStreamUtil.readJson
|
import de.bixilon.minosoft.assets.util.InputStreamUtil.readJson
|
||||||
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
||||||
import de.bixilon.minosoft.datafixer.Fixer
|
import de.bixilon.minosoft.datafixer.Fixer
|
||||||
@ -25,7 +25,7 @@ abstract class ResourceLocationFixer(private val path: ResourceLocation) : Fixer
|
|||||||
|
|
||||||
|
|
||||||
override fun load() {
|
override fun load() {
|
||||||
this::renames.forceSet(Minosoft.MINOSOFT_ASSETS_MANAGER[this.path.fixer()].readJson())
|
this::renames.forceSet(IntegratedAssets.DEFAULT[this.path.fixer()].readJson())
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun fix(resourceLocation: ResourceLocation): ResourceLocation {
|
open fun fix(resourceLocation: ResourceLocation): ResourceLocation {
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
package de.bixilon.minosoft.gui.eros.card
|
package de.bixilon.minosoft.gui.eros.card
|
||||||
|
|
||||||
import de.bixilon.minosoft.Minosoft
|
import de.bixilon.minosoft.assets.IntegratedAssets
|
||||||
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
||||||
import de.bixilon.minosoft.gui.eros.util.JavaFXUtil
|
import de.bixilon.minosoft.gui.eros.util.JavaFXUtil
|
||||||
import javafx.scene.control.ListCell
|
import javafx.scene.control.ListCell
|
||||||
@ -24,7 +24,7 @@ interface CardFactory<T : ListCell<*>> {
|
|||||||
fun build(): T {
|
fun build(): T {
|
||||||
val loader = JavaFXUtil.createLoader()
|
val loader = JavaFXUtil.createLoader()
|
||||||
|
|
||||||
loader.load<Any>(Minosoft.MINOSOFT_ASSETS_MANAGER[LAYOUT])
|
loader.load<Any>(IntegratedAssets.DEFAULT[LAYOUT])
|
||||||
|
|
||||||
return loader.getController()
|
return loader.getController()
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ import de.bixilon.kutil.concurrent.worker.unconditional.UnconditionalWorker
|
|||||||
import de.bixilon.kutil.exception.ExceptionUtil.catchAll
|
import de.bixilon.kutil.exception.ExceptionUtil.catchAll
|
||||||
import de.bixilon.kutil.latch.SimpleLatch
|
import de.bixilon.kutil.latch.SimpleLatch
|
||||||
import de.bixilon.kutil.shutdown.ShutdownManager
|
import de.bixilon.kutil.shutdown.ShutdownManager
|
||||||
import de.bixilon.minosoft.Minosoft
|
import de.bixilon.minosoft.assets.IntegratedAssets
|
||||||
import de.bixilon.minosoft.gui.eros.crash.ErosCrashReport.Companion.crash
|
import de.bixilon.minosoft.gui.eros.crash.ErosCrashReport.Companion.crash
|
||||||
import de.bixilon.minosoft.util.DesktopUtil
|
import de.bixilon.minosoft.util.DesktopUtil
|
||||||
import de.bixilon.minosoft.util.logging.Log
|
import de.bixilon.minosoft.util.logging.Log
|
||||||
@ -41,7 +41,7 @@ class JavaFXInitializer internal constructor() : Application() {
|
|||||||
DesktopUtil.initialize()
|
DesktopUtil.initialize()
|
||||||
|
|
||||||
val worker = UnconditionalWorker(autoWork = true)
|
val worker = UnconditionalWorker(autoWork = true)
|
||||||
worker += { JavaFXUtil.MINOSOFT_LOGO = Image(Minosoft.MINOSOFT_ASSETS_MANAGER[DesktopUtil.ICON]) }
|
worker += { JavaFXUtil.MINOSOFT_LOGO = Image(IntegratedAssets.DEFAULT[DesktopUtil.ICON]) }
|
||||||
worker.work(LATCH)
|
worker.work(LATCH)
|
||||||
|
|
||||||
Log.log(LogMessageType.JAVAFX, LogLevels.VERBOSE) { "Initialized JavaFX Toolkit!" }
|
Log.log(LogMessageType.JAVAFX, LogLevels.VERBOSE) { "Initialized JavaFX Toolkit!" }
|
||||||
|
@ -21,7 +21,9 @@ import de.bixilon.kutil.reflection.ReflectionUtil.forceSet
|
|||||||
import de.bixilon.kutil.reflection.ReflectionUtil.jvmField
|
import de.bixilon.kutil.reflection.ReflectionUtil.jvmField
|
||||||
import de.bixilon.kutil.url.URLUtil.toURL
|
import de.bixilon.kutil.url.URLUtil.toURL
|
||||||
import de.bixilon.minosoft.Minosoft
|
import de.bixilon.minosoft.Minosoft
|
||||||
|
import de.bixilon.minosoft.assets.IntegratedAssets
|
||||||
import de.bixilon.minosoft.config.profile.profiles.eros.ErosProfileManager
|
import de.bixilon.minosoft.config.profile.profiles.eros.ErosProfileManager
|
||||||
|
import de.bixilon.minosoft.data.registries.identified.Namespaces.minosoft
|
||||||
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
||||||
import de.bixilon.minosoft.gui.eros.controller.EmbeddedJavaFXController
|
import de.bixilon.minosoft.gui.eros.controller.EmbeddedJavaFXController
|
||||||
import de.bixilon.minosoft.gui.eros.controller.JavaFXController
|
import de.bixilon.minosoft.gui.eros.controller.JavaFXController
|
||||||
@ -59,10 +61,10 @@ object JavaFXUtil {
|
|||||||
lateinit var JAVA_FX_THREAD: Thread
|
lateinit var JAVA_FX_THREAD: Thread
|
||||||
lateinit var MINOSOFT_LOGO: Image
|
lateinit var MINOSOFT_LOGO: Image
|
||||||
lateinit var HOST_SERVICES: HostServices
|
lateinit var HOST_SERVICES: HostServices
|
||||||
val BIXILON_LOGO: Group? by lazy { catchAll { SvgLoader().loadSvg(Minosoft.MINOSOFT_ASSETS_MANAGER["minosoft:textures/icons/bixilon_logo.svg".toResourceLocation()]) } }
|
val BIXILON_LOGO: Group? by lazy { catchAll { SvgLoader().loadSvg(IntegratedAssets.DEFAULT[minosoft("textures/icons/bixilon_logo.svg")]) } }
|
||||||
private var watchingTheme = false
|
private var watchingTheme = false
|
||||||
|
|
||||||
val THEME_ASSETS_MANAGER = Minosoft.MINOSOFT_ASSETS_MANAGER
|
val THEME_ASSETS_MANAGER = IntegratedAssets.DEFAULT
|
||||||
|
|
||||||
private fun startThemeWatcher() {
|
private fun startThemeWatcher() {
|
||||||
if (watchingTheme) {
|
if (watchingTheme) {
|
||||||
@ -109,7 +111,7 @@ object JavaFXUtil {
|
|||||||
startThemeWatcher()
|
startThemeWatcher()
|
||||||
val fxmlLoader = createLoader()
|
val fxmlLoader = createLoader()
|
||||||
controller?.let { fxmlLoader.setController(it) }
|
controller?.let { fxmlLoader.setController(it) }
|
||||||
val parent: Parent = fxmlLoader.load(Minosoft.MINOSOFT_ASSETS_MANAGER[layout])
|
val parent: Parent = fxmlLoader.load(IntegratedAssets.DEFAULT[layout])
|
||||||
parent.registerFreezeDumpKey()
|
parent.registerFreezeDumpKey()
|
||||||
return loadController(title, fxmlLoader, parent, modality)
|
return loadController(title, fxmlLoader, parent, modality)
|
||||||
}
|
}
|
||||||
@ -119,7 +121,7 @@ object JavaFXUtil {
|
|||||||
startThemeWatcher()
|
startThemeWatcher()
|
||||||
val fxmlLoader = createLoader()
|
val fxmlLoader = createLoader()
|
||||||
controller?.let { fxmlLoader.setController(it) }
|
controller?.let { fxmlLoader.setController(it) }
|
||||||
val parent: Parent = fxmlLoader.load(Minosoft.MINOSOFT_ASSETS_MANAGER[layout])
|
val parent: Parent = fxmlLoader.load(IntegratedAssets.DEFAULT[layout])
|
||||||
parent.registerFreezeDumpKey()
|
parent.registerFreezeDumpKey()
|
||||||
|
|
||||||
if (callback == null) {
|
if (callback == null) {
|
||||||
@ -133,7 +135,7 @@ object JavaFXUtil {
|
|||||||
fun <T : EmbeddedJavaFXController<out Pane>> loadEmbeddedController(layout: ResourceLocation, controller: T? = null): T {
|
fun <T : EmbeddedJavaFXController<out Pane>> loadEmbeddedController(layout: ResourceLocation, controller: T? = null): T {
|
||||||
val fxmlLoader = createLoader()
|
val fxmlLoader = createLoader()
|
||||||
controller?.let { fxmlLoader.setController(it) }
|
controller?.let { fxmlLoader.setController(it) }
|
||||||
val pane = fxmlLoader.load<Pane>(Minosoft.MINOSOFT_ASSETS_MANAGER[layout])
|
val pane = fxmlLoader.load<Pane>(IntegratedAssets.DEFAULT[layout])
|
||||||
|
|
||||||
val controller = fxmlLoader.getController<T>()
|
val controller = fxmlLoader.getController<T>()
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
package de.bixilon.minosoft.properties
|
package de.bixilon.minosoft.properties
|
||||||
|
|
||||||
import de.bixilon.minosoft.Minosoft
|
import de.bixilon.minosoft.assets.IntegratedAssets
|
||||||
import de.bixilon.minosoft.assets.util.InputStreamUtil.readJson
|
import de.bixilon.minosoft.assets.util.InputStreamUtil.readJson
|
||||||
import de.bixilon.minosoft.data.registries.identified.Namespaces.minosoft
|
import de.bixilon.minosoft.data.registries.identified.Namespaces.minosoft
|
||||||
import de.bixilon.minosoft.properties.general.GeneralP
|
import de.bixilon.minosoft.properties.general.GeneralP
|
||||||
@ -29,7 +29,7 @@ object MinosoftPropertiesLoader {
|
|||||||
val reader = Jackson.MAPPER.readerFor(type)
|
val reader = Jackson.MAPPER.readerFor(type)
|
||||||
|
|
||||||
fun load() {
|
fun load() {
|
||||||
val properties = Minosoft.MINOSOFT_ASSETS_MANAGER.getOrNull(minosoft("version.json"))?.readJson<MinosoftP>(reader = reader)
|
val properties = IntegratedAssets.DEFAULT.getOrNull(minosoft("version.json"))?.readJson<MinosoftP>(reader = reader)
|
||||||
MinosoftProperties = if (properties == null) {
|
MinosoftProperties = if (properties == null) {
|
||||||
Log.log(LogMessageType.OTHER, LogLevels.FATAL) { "Can not load version.json! Did you compile with gradle?" }
|
Log.log(LogMessageType.OTHER, LogLevels.FATAL) { "Can not load version.json! Did you compile with gradle?" }
|
||||||
MinosoftP(GeneralP("unknown", false), null)
|
MinosoftP(GeneralP("unknown", false), null)
|
||||||
|
@ -17,7 +17,7 @@ import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
|||||||
import de.bixilon.kutil.json.JsonObject
|
import de.bixilon.kutil.json.JsonObject
|
||||||
import de.bixilon.kutil.latch.AbstractLatch
|
import de.bixilon.kutil.latch.AbstractLatch
|
||||||
import de.bixilon.kutil.primitive.IntUtil.toInt
|
import de.bixilon.kutil.primitive.IntUtil.toInt
|
||||||
import de.bixilon.minosoft.Minosoft
|
import de.bixilon.minosoft.assets.IntegratedAssets
|
||||||
import de.bixilon.minosoft.assets.util.InputStreamUtil.readJson
|
import de.bixilon.minosoft.assets.util.InputStreamUtil.readJson
|
||||||
import de.bixilon.minosoft.data.registries.identified.Namespaces.minosoft
|
import de.bixilon.minosoft.data.registries.identified.Namespaces.minosoft
|
||||||
import de.bixilon.minosoft.protocol.packets.registry.DefaultPackets
|
import de.bixilon.minosoft.protocol.packets.registry.DefaultPackets
|
||||||
@ -86,7 +86,7 @@ object VersionLoader {
|
|||||||
|
|
||||||
fun load(latch: AbstractLatch?) {
|
fun load(latch: AbstractLatch?) {
|
||||||
Log.log(LogMessageType.LOADING, LogLevels.VERBOSE) { "Loading versions..." }
|
Log.log(LogMessageType.LOADING, LogLevels.VERBOSE) { "Loading versions..." }
|
||||||
val index: VersionIndex = Minosoft.MINOSOFT_ASSETS_MANAGER[INDEX].readJson()
|
val index: VersionIndex = IntegratedAssets.DEFAULT[INDEX].readJson()
|
||||||
|
|
||||||
for ((versionId, data) in index) {
|
for ((versionId, data) in index) {
|
||||||
load(versionId, index, data)
|
load(versionId, index, data)
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
package de.bixilon.minosoft.util
|
package de.bixilon.minosoft.util
|
||||||
|
|
||||||
import de.bixilon.minosoft.Minosoft
|
import de.bixilon.minosoft.assets.IntegratedAssets
|
||||||
import de.bixilon.minosoft.data.registries.identified.Namespaces.minosoft
|
import de.bixilon.minosoft.data.registries.identified.Namespaces.minosoft
|
||||||
import de.bixilon.minosoft.gui.eros.util.JavaFXUtil
|
import de.bixilon.minosoft.gui.eros.util.JavaFXUtil
|
||||||
import de.bixilon.minosoft.gui.rendering.textures.TextureUtil.texture
|
import de.bixilon.minosoft.gui.rendering.textures.TextureUtil.texture
|
||||||
@ -66,7 +66,7 @@ object DesktopUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun Taskbar.setDockIcon() {
|
private fun Taskbar.setDockIcon() {
|
||||||
iconImage = Toolkit.getDefaultToolkit().createImage(Minosoft.MINOSOFT_ASSETS_MANAGER[ICON].readAllBytes())
|
iconImage = Toolkit.getDefaultToolkit().createImage(IntegratedAssets.DEFAULT[ICON].readAllBytes())
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Taskbar.initialize() {
|
private fun Taskbar.initialize() {
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
package de.bixilon.minosoft.util.url
|
package de.bixilon.minosoft.util.url
|
||||||
|
|
||||||
import de.bixilon.minosoft.Minosoft
|
import de.bixilon.minosoft.assets.IntegratedAssets
|
||||||
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
import java.net.URL
|
import java.net.URL
|
||||||
@ -33,7 +33,7 @@ object ResourceURLHandler : URLStreamHandler() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun getInputStream(): InputStream {
|
override fun getInputStream(): InputStream {
|
||||||
return Minosoft.MINOSOFT_ASSETS_MANAGER[ResourceLocation.of(url.path)]
|
return IntegratedAssets.DEFAULT[ResourceLocation.of(url.path)]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
package de.bixilon.minosoft.util.yggdrasil
|
package de.bixilon.minosoft.util.yggdrasil
|
||||||
|
|
||||||
import de.bixilon.minosoft.Minosoft
|
import de.bixilon.minosoft.assets.IntegratedAssets
|
||||||
import de.bixilon.minosoft.data.registries.identified.Namespaces.mojang
|
import de.bixilon.minosoft.data.registries.identified.Namespaces.mojang
|
||||||
import de.bixilon.minosoft.terminal.RunConfiguration
|
import de.bixilon.minosoft.terminal.RunConfiguration
|
||||||
import de.bixilon.minosoft.util.logging.Log
|
import de.bixilon.minosoft.util.logging.Log
|
||||||
@ -36,7 +36,7 @@ object YggdrasilUtil {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
check(!this::PUBLIC_KEY.isInitialized) { "Already loaded!" }
|
check(!this::PUBLIC_KEY.isInitialized) { "Already loaded!" }
|
||||||
val spec = X509EncodedKeySpec(Minosoft.MINOSOFT_ASSETS_MANAGER[mojang("yggdrasil/pubkey.der")].readAllBytes())
|
val spec = X509EncodedKeySpec(IntegratedAssets.DEFAULT[mojang("yggdrasil/pubkey.der")].readAllBytes())
|
||||||
val keyFactory: KeyFactory = KeyFactory.getInstance("RSA")
|
val keyFactory: KeyFactory = KeyFactory.getInstance("RSA")
|
||||||
PUBLIC_KEY = keyFactory.generatePublic(spec)
|
PUBLIC_KEY = keyFactory.generatePublic(spec)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user