remove mod loading, outsource more to kutil, bump kutil to 1.1

This commit is contained in:
Bixilon 2021-12-27 14:48:09 +01:00
parent e1943a1d10
commit ac528e5f1f
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
155 changed files with 307 additions and 1371 deletions

View File

@ -104,20 +104,20 @@ If your start function needs much time, you can set the loading priority in the
Create a Main class, here is an example Create a Main class, here is an example
```java ```java
package de.bixilon.example.mod.main; package de.bixilon.example.mod.main;
import de.bixilon.minosoft.modding.MinosoftMod;
import de.bixilon.minosoft.modding.loading.ModPhases; import de.bixilon.minosoft.modding.loading.ModPhases;
public class TestMod extends MinosoftMod { public class TestMod extends MinosoftMod {
public boolean start(ModPhases phase) { public boolean start(ModPhases phase) {
if (phase == ModPhases.BOOTING) { if (phase == ModPhases.BOOTING) {
getLogger().info("Hello world!"); getLogger().info("Hello world!");
}
return true;
} }
return true;
}
} }
``` ```
Your `mod.json` can look like this Your `mod.json` can look like this

View File

@ -457,7 +457,7 @@
<dependency> <dependency>
<groupId>de.bixilon</groupId> <groupId>de.bixilon</groupId>
<artifactId>kutil</artifactId> <artifactId>kutil</artifactId>
<version>1.0</version> <version>1.1</version>
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>

View File

@ -16,8 +16,9 @@ package de.bixilon.minosoft
import de.bixilon.kutil.concurrent.pool.ThreadPool import de.bixilon.kutil.concurrent.pool.ThreadPool
import de.bixilon.kutil.concurrent.worker.TaskWorker import de.bixilon.kutil.concurrent.worker.TaskWorker
import de.bixilon.kutil.concurrent.worker.tasks.Task import de.bixilon.kutil.concurrent.worker.tasks.Task
import de.bixilon.kutil.general.OSUtil import de.bixilon.kutil.file.watcher.FileWatcherService
import de.bixilon.kutil.latch.CountUpAndDownLatch import de.bixilon.kutil.latch.CountUpAndDownLatch
import de.bixilon.kutil.os.OSUtil
import de.bixilon.minosoft.assets.file.ResourcesAssetsUtil import de.bixilon.minosoft.assets.file.ResourcesAssetsUtil
import de.bixilon.minosoft.assets.properties.version.AssetsVersionProperties import de.bixilon.minosoft.assets.properties.version.AssetsVersionProperties
import de.bixilon.minosoft.config.profile.GlobalProfileManager import de.bixilon.minosoft.config.profile.GlobalProfileManager
@ -35,7 +36,6 @@ import de.bixilon.minosoft.gui.eros.dialog.StartingDialog
import de.bixilon.minosoft.gui.eros.util.JavaFXInitializer import de.bixilon.minosoft.gui.eros.util.JavaFXInitializer
import de.bixilon.minosoft.modding.event.events.FinishInitializingEvent import de.bixilon.minosoft.modding.event.events.FinishInitializingEvent
import de.bixilon.minosoft.modding.event.master.GlobalEventMaster import de.bixilon.minosoft.modding.event.master.GlobalEventMaster
import de.bixilon.minosoft.modding.loading.ModLoader
import de.bixilon.minosoft.protocol.protocol.LANServerListener import de.bixilon.minosoft.protocol.protocol.LANServerListener
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.terminal.AutoConnect import de.bixilon.minosoft.terminal.AutoConnect
@ -46,7 +46,6 @@ import de.bixilon.minosoft.util.GitInfo
import de.bixilon.minosoft.util.RenderPolling import de.bixilon.minosoft.util.RenderPolling
import de.bixilon.minosoft.util.Util import de.bixilon.minosoft.util.Util
import de.bixilon.minosoft.util.YggdrasilUtil import de.bixilon.minosoft.util.YggdrasilUtil
import de.bixilon.minosoft.util.filewatcher.FileWatcherService
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
import de.bixilon.minosoft.util.logging.LogMessageType import de.bixilon.minosoft.util.logging.LogMessageType
@ -111,8 +110,6 @@ object Minosoft {
Log.log(LogMessageType.OTHER, LogLevels.VERBOSE) { "Default registries loaded!" } Log.log(LogMessageType.OTHER, LogLevels.VERBOSE) { "Default registries loaded!" }
}) })
taskWorker += Task(identifier = StartupTasks.LOAD_MODS, dependencies = arrayOf(StartupTasks.LOAD_PROFILES), executor = { ModLoader.loadMods(it) })
taskWorker += Task(identifier = StartupTasks.LISTEN_LAN_SERVERS, dependencies = arrayOf(StartupTasks.LOAD_PROFILES), executor = { taskWorker += Task(identifier = StartupTasks.LISTEN_LAN_SERVERS, dependencies = arrayOf(StartupTasks.LOAD_PROFILES), executor = {
LANServerListener.listen() LANServerListener.listen()

View File

@ -13,12 +13,12 @@
package de.bixilon.minosoft.assets.directory package de.bixilon.minosoft.assets.directory
import de.bixilon.kutil.file.FileUtil.slashPath
import de.bixilon.kutil.latch.CountUpAndDownLatch import de.bixilon.kutil.latch.CountUpAndDownLatch
import de.bixilon.minosoft.assets.AssetsManager import de.bixilon.minosoft.assets.AssetsManager
import de.bixilon.minosoft.assets.util.FileAssetsUtil.toAssetName import de.bixilon.minosoft.assets.util.FileAssetsUtil.toAssetName
import de.bixilon.minosoft.assets.util.FileUtil import de.bixilon.minosoft.assets.util.FileUtil
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.util.KUtil.slashPath
import java.io.File import java.io.File
import java.io.FileNotFoundException import java.io.FileNotFoundException
import java.io.InputStream import java.io.InputStream

View File

@ -18,6 +18,7 @@ import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
import de.bixilon.kutil.concurrent.pool.ThreadPool import de.bixilon.kutil.concurrent.pool.ThreadPool
import de.bixilon.kutil.concurrent.pool.ThreadPoolRunnable import de.bixilon.kutil.concurrent.pool.ThreadPoolRunnable
import de.bixilon.kutil.latch.CountUpAndDownLatch import de.bixilon.kutil.latch.CountUpAndDownLatch
import de.bixilon.kutil.primitive.LongUtil.toLong
import de.bixilon.minosoft.assets.minecraft.MinecraftAssetsManager import de.bixilon.minosoft.assets.minecraft.MinecraftAssetsManager
import de.bixilon.minosoft.assets.util.FileAssetsUtil import de.bixilon.minosoft.assets.util.FileAssetsUtil
import de.bixilon.minosoft.assets.util.FileAssetsUtil.toAssetName import de.bixilon.minosoft.assets.util.FileAssetsUtil.toAssetName
@ -27,7 +28,6 @@ import de.bixilon.minosoft.config.StaticConfiguration
import de.bixilon.minosoft.config.profile.profiles.resources.ResourcesProfile import de.bixilon.minosoft.config.profile.profiles.resources.ResourcesProfile
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.KUtil.toLong
import de.bixilon.minosoft.util.Util import de.bixilon.minosoft.util.Util
import de.bixilon.minosoft.util.json.Jackson import de.bixilon.minosoft.util.json.Jackson
import de.bixilon.minosoft.util.logging.Log import de.bixilon.minosoft.util.logging.Log

View File

@ -15,10 +15,10 @@ package de.bixilon.minosoft.assets.util
import com.github.luben.zstd.ZstdInputStream import com.github.luben.zstd.ZstdInputStream
import com.github.luben.zstd.ZstdOutputStream import com.github.luben.zstd.ZstdOutputStream
import de.bixilon.kutil.hex.HexUtil.isHexString
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.terminal.RunConfiguration import de.bixilon.minosoft.terminal.RunConfiguration
import de.bixilon.minosoft.util.KUtil.isHexString
import de.bixilon.minosoft.util.Util import de.bixilon.minosoft.util.Util
import java.io.* import java.io.*
import java.net.URL import java.net.URL

View File

@ -7,6 +7,7 @@ import de.bixilon.kutil.collections.map.LockMap
import de.bixilon.kutil.concurrent.pool.DefaultThreadPool import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
import de.bixilon.kutil.concurrent.time.TimeWorker import de.bixilon.kutil.concurrent.time.TimeWorker
import de.bixilon.kutil.concurrent.time.TimeWorkerTask import de.bixilon.kutil.concurrent.time.TimeWorkerTask
import de.bixilon.kutil.file.FileUtil
import de.bixilon.minosoft.config.profile.profiles.Profile import de.bixilon.minosoft.config.profile.profiles.Profile
import de.bixilon.minosoft.config.profile.profiles.account.AccountProfileManager import de.bixilon.minosoft.config.profile.profiles.account.AccountProfileManager
import de.bixilon.minosoft.config.profile.profiles.audio.AudioProfileManager import de.bixilon.minosoft.config.profile.profiles.audio.AudioProfileManager
@ -23,7 +24,6 @@ import de.bixilon.minosoft.config.profile.profiles.resources.ResourcesProfileMan
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.gui.eros.crash.ErosCrashReport.Companion.crash import de.bixilon.minosoft.gui.eros.crash.ErosCrashReport.Companion.crash
import de.bixilon.minosoft.terminal.RunConfiguration import de.bixilon.minosoft.terminal.RunConfiguration
import de.bixilon.minosoft.util.KUtil
import de.bixilon.minosoft.util.Util import de.bixilon.minosoft.util.Util
import de.bixilon.minosoft.util.json.Jackson import de.bixilon.minosoft.util.json.Jackson
import java.io.File import java.io.File
@ -90,7 +90,7 @@ object GlobalProfileManager {
val data: Map<String, String> = Jackson.MAPPER.convertValue(selectedProfiles.original, SELECTED_PROFILES_TYPE) val data: Map<String, String> = Jackson.MAPPER.convertValue(selectedProfiles.original, SELECTED_PROFILES_TYPE)
val jsonString = Jackson.MAPPER.writerWithDefaultPrettyPrinter().writeValueAsString(data) val jsonString = Jackson.MAPPER.writerWithDefaultPrettyPrinter().writeValueAsString(data)
KUtil.safeSaveToFile(File(RunConfiguration.HOME_DIRECTORY + "config/selected_profiles.json"), jsonString) FileUtil.safeSaveToFile(File(RunConfiguration.HOME_DIRECTORY + "config/selected_profiles.json"), jsonString)
selectedProfilesChanges = false selectedProfilesChanges = false
} catch (exception: Exception) { } catch (exception: Exception) {
exception.crash() exception.crash()

View File

@ -2,6 +2,11 @@ package de.bixilon.minosoft.config.profile
import com.google.common.collect.HashBiMap import com.google.common.collect.HashBiMap
import de.bixilon.kutil.concurrent.pool.DefaultThreadPool import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
import de.bixilon.kutil.exception.ExceptionUtil.tryCatch
import de.bixilon.kutil.file.FileUtil
import de.bixilon.kutil.file.watcher.FileWatcher
import de.bixilon.kutil.file.watcher.FileWatcherService
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.config.profile.delegate.delegate.BackingDelegate import de.bixilon.minosoft.config.profile.delegate.delegate.BackingDelegate
import de.bixilon.minosoft.config.profile.delegate.delegate.ProfileDelegate import de.bixilon.minosoft.config.profile.delegate.delegate.ProfileDelegate
import de.bixilon.minosoft.config.profile.delegate.delegate.entry.ListDelegateProfile import de.bixilon.minosoft.config.profile.delegate.delegate.entry.ListDelegateProfile
@ -11,11 +16,7 @@ import de.bixilon.minosoft.config.profile.profiles.Profile
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.gui.eros.crash.ErosCrashReport.Companion.crash import de.bixilon.minosoft.gui.eros.crash.ErosCrashReport.Companion.crash
import de.bixilon.minosoft.terminal.RunConfiguration import de.bixilon.minosoft.terminal.RunConfiguration
import de.bixilon.minosoft.util.KUtil
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.Util import de.bixilon.minosoft.util.Util
import de.bixilon.minosoft.util.filewatcher.FileWatcher
import de.bixilon.minosoft.util.filewatcher.FileWatcherService
import de.bixilon.minosoft.util.json.Jackson import de.bixilon.minosoft.util.json.Jackson
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
@ -183,7 +184,7 @@ interface ProfileManager<T : Profile> {
val profileFile = File(getPath(profile.name)) val profileFile = File(getPath(profile.name))
profile.ignoreNextReload = true profile.ignoreNextReload = true
KUtil.safeSaveToFile(profileFile, jsonString) FileUtil.safeSaveToFile(profileFile, jsonString)
profile.saved = true profile.saved = true
} catch (exception: Exception) { } catch (exception: Exception) {
exception.printStackTrace() exception.printStackTrace()
@ -237,7 +238,7 @@ interface ProfileManager<T : Profile> {
fun readAndMigrate(path: String): Pair<Boolean, MutableMap<String, Any?>?> { fun readAndMigrate(path: String): Pair<Boolean, MutableMap<String, Any?>?> {
var saveFile = false var saveFile = false
val json: MutableMap<String, Any?>? val json: MutableMap<String, Any?>?
val jsonString = KUtil.tryCatch(FileNotFoundException::class.java) { Util.readFile(path) } val jsonString = tryCatch(FileNotFoundException::class.java) { Util.readFile(path) }
if (jsonString != null) { if (jsonString != null) {
json = Jackson.MAPPER.readValue(jsonString, Jackson.JSON_MAP_TYPE)!! json = Jackson.MAPPER.readValue(jsonString, Jackson.JSON_MAP_TYPE)!!
val version = json["version"]?.toInt() ?: throw IllegalArgumentException("Can not find version attribute in profile: $path") val version = json["version"]?.toInt() ?: throw IllegalArgumentException("Can not find version attribute in profile: $path")

View File

@ -2,13 +2,13 @@ package de.bixilon.minosoft.config.profile.profiles.eros.general
import com.fasterxml.jackson.annotation.JsonIgnore import com.fasterxml.jackson.annotation.JsonIgnore
import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.annotation.JsonProperty
import de.bixilon.kutil.locale.LocaleUtil.fullName
import de.bixilon.minosoft.config.profile.profiles.account.AccountProfile import de.bixilon.minosoft.config.profile.profiles.account.AccountProfile
import de.bixilon.minosoft.config.profile.profiles.account.AccountProfileManager import de.bixilon.minosoft.config.profile.profiles.account.AccountProfileManager
import de.bixilon.minosoft.config.profile.profiles.eros.ErosProfileManager.delegate import de.bixilon.minosoft.config.profile.profiles.eros.ErosProfileManager.delegate
import de.bixilon.minosoft.config.profile.profiles.eros.ErosProfileManager.mapDelegate import de.bixilon.minosoft.config.profile.profiles.eros.ErosProfileManager.mapDelegate
import de.bixilon.minosoft.data.language.LanguageManager import de.bixilon.minosoft.data.language.LanguageManager
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.util.KUtil.fullName
import java.util.* import java.util.*
class GeneralC { class GeneralC {

View File

@ -13,8 +13,8 @@
package de.bixilon.minosoft.data.abilities package de.bixilon.minosoft.data.abilities
import de.bixilon.kutil.time.TimeUtil
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.KUtil
data class ItemCooldown( data class ItemCooldown(
val start: Long, val start: Long,
@ -23,5 +23,5 @@ data class ItemCooldown(
val end: Long = start + (time * ProtocolDefinition.TICK_TIME) val end: Long = start + (time * ProtocolDefinition.TICK_TIME)
val ended: Boolean val ended: Boolean
get() = KUtil.time >= end get() = TimeUtil.time >= end
} }

View File

@ -16,11 +16,11 @@ package de.bixilon.minosoft.data.accounts.types
import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.annotation.JsonProperty
import de.bixilon.kutil.cast.CastUtil.nullCast import de.bixilon.kutil.cast.CastUtil.nullCast
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.uuid.UUIDUtil.toUUID
import de.bixilon.minosoft.data.accounts.Account import de.bixilon.minosoft.data.accounts.Account
import de.bixilon.minosoft.data.player.properties.PlayerProperties import de.bixilon.minosoft.data.player.properties.PlayerProperties
import de.bixilon.minosoft.data.registries.CompanionResourceLocation import de.bixilon.minosoft.data.registries.CompanionResourceLocation
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.util.KUtil.asUUID
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import de.bixilon.minosoft.util.account.AccountUtil import de.bixilon.minosoft.util.account.AccountUtil
import de.bixilon.minosoft.util.http.HTTP2.postJson import de.bixilon.minosoft.util.http.HTTP2.postJson
@ -117,7 +117,7 @@ class MojangAccount(
Log.log(LogMessageType.AUTHENTICATION, LogLevels.VERBOSE) { "Mojang login successful (email=$email)" } Log.log(LogMessageType.AUTHENTICATION, LogLevels.VERBOSE) { "Mojang login successful (email=$email)" }
val uuid = response.body["selectedProfile"].asCompound()["id"].toString().asUUID() val uuid = response.body["selectedProfile"].asCompound()["id"].toString().toUUID()
return MojangAccount( return MojangAccount(
id = response.body["user"].asCompound()["id"].unsafeCast(), id = response.body["user"].asCompound()["id"].unsafeCast(),
username = response.body["selectedProfile"].asCompound()["name"].unsafeCast(), username = response.body["selectedProfile"].asCompound()["name"].unsafeCast(),

View File

@ -23,7 +23,6 @@ import de.bixilon.minosoft.data.commands.parser.properties.ParserProperties;
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection; import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection;
import de.bixilon.minosoft.protocol.protocol.InByteBuffer; import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition; import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition;
import de.bixilon.minosoft.util.Util;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -101,7 +100,8 @@ public class EntityParser extends CommandParser {
throw new PlayerOnlyEntityCommandParseException(stringReader, value); throw new PlayerOnlyEntityCommandParseException(stringReader, value);
} }
try { try {
return Util.getUUIDFromString(value); // return Util.getUUIDFromString(value);
throw new IllegalArgumentException("TODO");
} catch (Exception ignored) { } catch (Exception ignored) {
} }
throw new UnknownEntitySelectorCommandParseException(stringReader, value); throw new UnknownEntitySelectorCommandParseException(stringReader, value);

View File

@ -16,7 +16,6 @@ import de.bixilon.minosoft.data.commands.CommandStringReader
import de.bixilon.minosoft.data.commands.parser.exceptions.UUIDCommandParseException import de.bixilon.minosoft.data.commands.parser.exceptions.UUIDCommandParseException
import de.bixilon.minosoft.data.commands.parser.properties.ParserProperties import de.bixilon.minosoft.data.commands.parser.properties.ParserProperties
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.Util
import java.util.* import java.util.*
object UUIDParser : CommandParser() { object UUIDParser : CommandParser() {
@ -24,7 +23,7 @@ object UUIDParser : CommandParser() {
override fun parse(connection: PlayConnection, properties: ParserProperties?, stringReader: CommandStringReader): UUID { override fun parse(connection: PlayConnection, properties: ParserProperties?, stringReader: CommandStringReader): UUID {
val argument = stringReader.readString() val argument = stringReader.readString()
try { try {
return Util.getUUIDFromString(argument) return TODO() // Util.getUUIDFromString(argument)
} catch (exception: IllegalArgumentException) { } catch (exception: IllegalArgumentException) {
throw UUIDCommandParseException(stringReader, argument, exception) throw UUIDCommandParseException(stringReader, argument, exception)
} }

View File

@ -12,17 +12,17 @@
*/ */
package de.bixilon.minosoft.data.entities package de.bixilon.minosoft.data.entities
import de.bixilon.kutil.time.TimeUtil
import de.bixilon.minosoft.data.registries.effects.StatusEffect import de.bixilon.minosoft.data.registries.effects.StatusEffect
import de.bixilon.minosoft.util.KUtil
data class StatusEffectInstance( data class StatusEffectInstance(
val statusEffect: StatusEffect, val statusEffect: StatusEffect,
val amplifier: Int, val amplifier: Int,
val duration: Int, val duration: Int,
) { ) {
private val startMillis = KUtil.time private val startMillis = TimeUtil.time
val remainingMillis: Long val remainingMillis: Long
get() = KUtil.time - startMillis get() = TimeUtil.time - startMillis
} }

View File

@ -14,6 +14,8 @@
package de.bixilon.minosoft.data.entities.block package de.bixilon.minosoft.data.entities.block
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.kutil.random.RandomUtil.chance
import de.bixilon.minosoft.data.direction.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.inventory.ItemStack
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
@ -23,8 +25,6 @@ import de.bixilon.minosoft.data.registries.blocks.types.CampfireBlock
import de.bixilon.minosoft.gui.rendering.RenderConstants import de.bixilon.minosoft.gui.rendering.RenderConstants
import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.fire.SmokeParticle import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.fire.SmokeParticle
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.chance
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.listCast import de.bixilon.minosoft.util.nbt.tag.NBTUtil.listCast
import glm_.vec3.Vec3d import glm_.vec3.Vec3d
import glm_.vec3.Vec3i import glm_.vec3.Vec3i

View File

@ -13,6 +13,7 @@
package de.bixilon.minosoft.data.entities.block package de.bixilon.minosoft.data.entities.block
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.blocks.BlockState import de.bixilon.minosoft.data.registries.blocks.BlockState
import de.bixilon.minosoft.data.world.WorldEntities import de.bixilon.minosoft.data.world.WorldEntities
@ -23,7 +24,6 @@ import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus
import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3d import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3d
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.toInt
import glm_.vec3.Vec3d import glm_.vec3.Vec3d
import glm_.vec3.Vec3i import glm_.vec3.Vec3i
import kotlin.random.Random import kotlin.random.Random

View File

@ -13,6 +13,7 @@
package de.bixilon.minosoft.data.entities.block package de.bixilon.minosoft.data.entities.block
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.registries.MultiResourceLocationAble import de.bixilon.minosoft.data.registries.MultiResourceLocationAble
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.blocks.BlockState import de.bixilon.minosoft.data.registries.blocks.BlockState
@ -21,7 +22,6 @@ import de.bixilon.minosoft.data.registries.blocks.properties.Instruments
import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.NoteParticle import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.NoteParticle
import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3d import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3d
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import glm_.vec3.Vec3d import glm_.vec3.Vec3d
import glm_.vec3.Vec3i import glm_.vec3.Vec3i

View File

@ -15,6 +15,7 @@ package de.bixilon.minosoft.data.entities.entities
import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf
import de.bixilon.kutil.collections.CollectionUtil.synchronizedSetOf import de.bixilon.kutil.collections.CollectionUtil.synchronizedSetOf
import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedMap import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedMap
import de.bixilon.kutil.time.TimeUtil
import de.bixilon.minosoft.data.entities.EntityMetaDataFields import de.bixilon.minosoft.data.entities.EntityMetaDataFields
import de.bixilon.minosoft.data.entities.EntityRotation import de.bixilon.minosoft.data.entities.EntityRotation
import de.bixilon.minosoft.data.entities.Poses import de.bixilon.minosoft.data.entities.Poses
@ -56,7 +57,6 @@ import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.KUtil
import glm_.func.common.floor import glm_.func.common.floor
import glm_.vec2.Vec2 import glm_.vec2.Vec2
import glm_.vec3.Vec3 import glm_.vec3.Vec3
@ -346,7 +346,7 @@ abstract class Entity(
@Synchronized @Synchronized
fun tick() { fun tick() {
val currentTime = KUtil.time val currentTime = TimeUtil.time
if (lastFakeTickTime == -1L) { if (lastFakeTickTime == -1L) {
lastFakeTickTime = currentTime lastFakeTickTime = currentTime
return return

View File

@ -12,6 +12,7 @@
*/ */
package de.bixilon.minosoft.data.entities.entities package de.bixilon.minosoft.data.entities.entities
import de.bixilon.kutil.random.RandomUtil.chance
import de.bixilon.minosoft.data.entities.EntityMetaDataFields import de.bixilon.minosoft.data.entities.EntityMetaDataFields
import de.bixilon.minosoft.data.entities.EntityRotation import de.bixilon.minosoft.data.entities.EntityRotation
import de.bixilon.minosoft.data.entities.Poses import de.bixilon.minosoft.data.entities.Poses
@ -25,7 +26,6 @@ import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.sp
import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.spell.EntityEffectParticle import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.spell.EntityEffectParticle
import de.bixilon.minosoft.gui.rendering.util.VecUtil.horizontal import de.bixilon.minosoft.gui.rendering.util.VecUtil.horizontal
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.chance
import glm_.vec3.Vec3d import glm_.vec3.Vec3d
import glm_.vec3.Vec3i import glm_.vec3.Vec3i

View File

@ -17,6 +17,7 @@ import de.bixilon.kutil.collections.CollectionUtil.synchronizedListOf
import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf
import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedList import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedList
import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedMap import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedMap
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.Rarities import de.bixilon.minosoft.data.Rarities
import de.bixilon.minosoft.data.inventory.ItemNBTValues.DISPLAY_COLOR_TAG import de.bixilon.minosoft.data.inventory.ItemNBTValues.DISPLAY_COLOR_TAG
import de.bixilon.minosoft.data.inventory.ItemNBTValues.DISPLAY_LORE_TAG import de.bixilon.minosoft.data.inventory.ItemNBTValues.DISPLAY_LORE_TAG
@ -41,7 +42,6 @@ import de.bixilon.minosoft.data.text.TextFormattable
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.BitByte.isBit import de.bixilon.minosoft.util.BitByte.isBit
import de.bixilon.minosoft.util.KUtil.synchronizedDeepCopy import de.bixilon.minosoft.util.KUtil.synchronizedDeepCopy
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.getAndRemove import de.bixilon.minosoft.util.nbt.tag.NBTUtil.getAndRemove
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.listCast import de.bixilon.minosoft.util.nbt.tag.NBTUtil.listCast

View File

@ -14,6 +14,7 @@
package de.bixilon.minosoft.data.language package de.bixilon.minosoft.data.language
import de.bixilon.kutil.collections.CollectionUtil.synchronizedListOf import de.bixilon.kutil.collections.CollectionUtil.synchronizedListOf
import de.bixilon.kutil.exception.ExceptionUtil.tryCatch
import de.bixilon.minosoft.assets.AssetsManager import de.bixilon.minosoft.assets.AssetsManager
import de.bixilon.minosoft.assets.util.FileUtil.readAsString import de.bixilon.minosoft.assets.util.FileUtil.readAsString
import de.bixilon.minosoft.assets.util.FileUtil.readJsonObject import de.bixilon.minosoft.assets.util.FileUtil.readJsonObject
@ -22,7 +23,6 @@ import de.bixilon.minosoft.data.registries.versions.Version
import de.bixilon.minosoft.data.text.ChatComponent import de.bixilon.minosoft.data.text.ChatComponent
import de.bixilon.minosoft.data.text.TextComponent import de.bixilon.minosoft.data.text.TextComponent
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
import de.bixilon.minosoft.util.KUtil.tryCatch
import java.io.FileNotFoundException import java.io.FileNotFoundException
class LanguageManager( class LanguageManager(

View File

@ -14,9 +14,10 @@ package de.bixilon.minosoft.data.player
import de.bixilon.kutil.cast.CastUtil.nullCast import de.bixilon.kutil.cast.CastUtil.nullCast
import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf
import de.bixilon.kutil.general.BooleanUtil.decide
import de.bixilon.kutil.math.MMath.clamp import de.bixilon.kutil.math.MMath.clamp
import de.bixilon.kutil.math.MMath.floor import de.bixilon.kutil.math.MMath.floor
import de.bixilon.kutil.primitive.BooleanUtil.decide
import de.bixilon.kutil.time.TimeUtil
import de.bixilon.minosoft.data.Axes import de.bixilon.minosoft.data.Axes
import de.bixilon.minosoft.data.abilities.Gamemodes import de.bixilon.minosoft.data.abilities.Gamemodes
import de.bixilon.minosoft.data.abilities.ItemCooldown import de.bixilon.minosoft.data.abilities.ItemCooldown
@ -54,7 +55,6 @@ import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.protocol.packets.c2s.play.* import de.bixilon.minosoft.protocol.packets.c2s.play.*
import de.bixilon.minosoft.protocol.packets.s2c.play.TagsS2CP import de.bixilon.minosoft.protocol.packets.s2c.play.TagsS2CP
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.KUtil
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import de.bixilon.minosoft.util.Previous import de.bixilon.minosoft.util.Previous
import glm_.func.cos import glm_.func.cos
@ -218,7 +218,7 @@ class LocalPlayerEntity(
if (connection.profiles.rendering.movement.disablePacketSending) { if (connection.profiles.rendering.movement.disablePacketSending) {
return return
} }
val currentTime = KUtil.time val currentTime = TimeUtil.time
val isSprinting = isSprinting val isSprinting = isSprinting
if (isSprinting != lastSprinting) { if (isSprinting != lastSprinting) {
connection.sendPacket(EntityActionC2SP(this, connection, isSprinting.decide(EntityActionC2SP.EntityActions.START_SPRINTING, EntityActionC2SP.EntityActions.STOP_SPRINTING))) connection.sendPacket(EntityActionC2SP(this, connection, isSprinting.decide(EntityActionC2SP.EntityActions.START_SPRINTING, EntityActionC2SP.EntityActions.STOP_SPRINTING)))

View File

@ -1,10 +1,10 @@
package de.bixilon.minosoft.data.player.properties package de.bixilon.minosoft.data.player.properties
import com.fasterxml.jackson.annotation.JsonInclude import com.fasterxml.jackson.annotation.JsonInclude
import de.bixilon.kutil.json.JsonUtil.toJsonList
import de.bixilon.kutil.uuid.UUIDUtil.trim
import de.bixilon.minosoft.assets.util.FileUtil.readJsonObject import de.bixilon.minosoft.assets.util.FileUtil.readJsonObject
import de.bixilon.minosoft.data.player.properties.textures.PlayerTextures import de.bixilon.minosoft.data.player.properties.textures.PlayerTextures
import de.bixilon.minosoft.util.KUtil.listCast
import de.bixilon.minosoft.util.KUtil.trim
import de.bixilon.minosoft.util.Util import de.bixilon.minosoft.util.Util
import java.net.URL import java.net.URL
import java.util.* import java.util.*
@ -24,7 +24,7 @@ class PlayerProperties(
var textures: PlayerTextures? = null var textures: PlayerTextures? = null
data["properties"]?.listCast()?.let { data["properties"]?.toJsonList()?.let {
for (property in it) { for (property in it) {
check(property is Map<*, *>) check(property is Map<*, *>)
when (val name = property["name"]) { when (val name = property["name"]) {

View File

@ -1,9 +1,9 @@
package de.bixilon.minosoft.data.player.properties.textures package de.bixilon.minosoft.data.player.properties.textures
import com.fasterxml.jackson.annotation.JsonIgnore import com.fasterxml.jackson.annotation.JsonIgnore
import de.bixilon.kutil.url.URLUtil.checkWeb
import de.bixilon.minosoft.assets.util.FileAssetsUtil import de.bixilon.minosoft.assets.util.FileAssetsUtil
import de.bixilon.minosoft.assets.util.FileUtil import de.bixilon.minosoft.assets.util.FileUtil
import de.bixilon.minosoft.util.KUtil.check
import java.net.URL import java.net.URL
open class PlayerTexture( open class PlayerTexture(
@ -14,7 +14,7 @@ open class PlayerTexture(
private set private set
init { init {
url.check() url.checkWeb()
check(urlMatches(url, ALLOWED_DOMAINS) && !urlMatches(url, BLOCKED_DOMAINS)) { "URL hostname is not allowed!" } check(urlMatches(url, ALLOWED_DOMAINS) && !urlMatches(url, BLOCKED_DOMAINS)) { "URL hostname is not allowed!" }
} }

View File

@ -2,8 +2,8 @@ package de.bixilon.minosoft.data.player.properties.textures
import com.fasterxml.jackson.annotation.JsonInclude import com.fasterxml.jackson.annotation.JsonInclude
import com.fasterxml.jackson.module.kotlin.convertValue import com.fasterxml.jackson.module.kotlin.convertValue
import de.bixilon.minosoft.util.KUtil.toLong import de.bixilon.kutil.primitive.LongUtil.toLong
import de.bixilon.minosoft.util.Util import de.bixilon.kutil.uuid.UUIDUtil.toUUID
import de.bixilon.minosoft.util.YggdrasilUtil import de.bixilon.minosoft.util.YggdrasilUtil
import de.bixilon.minosoft.util.json.Jackson import de.bixilon.minosoft.util.json.Jackson
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
@ -28,7 +28,7 @@ class PlayerTextures(
val textures = json["textures"]?.compoundCast() val textures = json["textures"]?.compoundCast()
return PlayerTextures( return PlayerTextures(
name = json["profileName"]?.toString(), name = json["profileName"]?.toString(),
uuid = json["profileId"]?.toString()?.let { Util.getUUIDFromString(it) }, uuid = json["profileId"]?.toString()?.toUUID(),
date = json["timestamp"]?.toLong()?.let { Date(it) }, date = json["timestamp"]?.toLong()?.let { Date(it) },
skin = textures?.get("SKIN")?.compoundCast()?.let { return@let Jackson.MAPPER.convertValue(it) }, skin = textures?.get("SKIN")?.compoundCast()?.let { return@let Jackson.MAPPER.convertValue(it) },
cape = textures?.get("CAPE")?.compoundCast()?.let { return@let Jackson.MAPPER.convertValue(it) }, cape = textures?.get("CAPE")?.compoundCast()?.let { return@let Jackson.MAPPER.convertValue(it) },

View File

@ -15,10 +15,10 @@ package de.bixilon.minosoft.data.registries
import com.google.gson.JsonArray import com.google.gson.JsonArray
import com.google.gson.JsonPrimitive import com.google.gson.JsonPrimitive
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.Axes import de.bixilon.minosoft.data.Axes
import de.bixilon.minosoft.data.direction.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.gui.rendering.util.VecUtil.getMinDistanceDirection import de.bixilon.minosoft.gui.rendering.util.VecUtil.getMinDistanceDirection
import de.bixilon.minosoft.util.KUtil.toInt
import glm_.vec3.Vec3d import glm_.vec3.Vec3d
import glm_.vec3.Vec3t import glm_.vec3.Vec3t

View File

@ -13,8 +13,9 @@
package de.bixilon.minosoft.data.registries.biomes package de.bixilon.minosoft.data.registries.biomes
import de.bixilon.kutil.cast.CastUtil.nullCast import de.bixilon.kutil.cast.CastUtil.nullCast
import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.math.MMath.clamp import de.bixilon.kutil.math.MMath.clamp
import de.bixilon.kutil.primitive.FloatUtil.toFloat
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.data.registries.registries.Registries
import de.bixilon.minosoft.data.registries.registries.registry.RegistryItem import de.bixilon.minosoft.data.registries.registries.registry.RegistryItem
@ -24,7 +25,6 @@ import de.bixilon.minosoft.data.text.RGBColor.Companion.asRGBColor
import de.bixilon.minosoft.gui.rendering.RenderConstants import de.bixilon.minosoft.gui.rendering.RenderConstants
import de.bixilon.minosoft.gui.rendering.tint.TintManager import de.bixilon.minosoft.gui.rendering.tint.TintManager
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.KUtil.toInt
import java.util.* import java.util.*
data class Biome( data class Biome(
@ -63,10 +63,10 @@ data class Biome(
check(registries != null) { "Registries is null!" } check(registries != null) { "Registries is null!" }
return Biome( return Biome(
resourceLocation = resourceLocation, resourceLocation = resourceLocation,
depth = data["depth"]?.unsafeCast<Float>() ?: 0.0f, depth = data["depth"]?.toFloat() ?: 0.0f,
scale = data["scale"]?.unsafeCast<Float>() ?: 0.0f, scale = data["scale"]?.toFloat() ?: 0.0f,
temperature = data["temperature"]?.unsafeCast<Float>() ?: 0.0f, temperature = data["temperature"]?.toFloat() ?: 0.0f,
downfall = data["downfall"]?.unsafeCast<Float>() ?: 0.0f, downfall = data["downfall"]?.toFloat() ?: 0.0f,
waterColor = TintManager.getJsonColor(data["water_color"]?.toInt() ?: 0), waterColor = TintManager.getJsonColor(data["water_color"]?.toInt() ?: 0),
waterFogColor = TintManager.getJsonColor(data["water_fog_color"]?.toInt() ?: 0), waterFogColor = TintManager.getJsonColor(data["water_fog_color"]?.toInt() ?: 0),
category = registries.biomeCategoryRegistry[data["category"]?.toInt() ?: -1] ?: DEFAULT_CATEGORY, category = registries.biomeCategoryRegistry[data["category"]?.toInt() ?: -1] ?: DEFAULT_CATEGORY,

View File

@ -13,6 +13,9 @@
package de.bixilon.minosoft.data.registries.blocks package de.bixilon.minosoft.data.registries.blocks
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
import de.bixilon.kutil.primitive.FloatUtil.toFloat
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.VoxelShape import de.bixilon.minosoft.data.registries.VoxelShape
import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties
@ -20,8 +23,6 @@ import de.bixilon.minosoft.data.registries.blocks.types.Block
import de.bixilon.minosoft.data.registries.materials.Material import de.bixilon.minosoft.data.registries.materials.Material
import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.data.registries.registries.Registries
import de.bixilon.minosoft.gui.rendering.models.baked.block.BakedBlockModel import de.bixilon.minosoft.gui.rendering.models.baked.block.BakedBlockModel
import de.bixilon.minosoft.util.KUtil.toBoolean
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
import java.util.* import java.util.*
@ -136,15 +137,15 @@ data class BlockState(
collisionShape = collisionShape, collisionShape = collisionShape,
occlusionShape = occlusionShape, occlusionShape = occlusionShape,
outlineShape = outlineShape, outlineShape = outlineShape,
hardness = data["hardness"]?.unsafeCast<Float>() ?: 1.0f, hardness = data["hardness"]?.toFloat() ?: 1.0f,
requiresTool = data["requires_tool"]?.toBoolean() ?: material.soft, requiresTool = data["requires_tool"]?.toBoolean() ?: material.soft,
breakSoundEvent = data["break_sound_type"]?.toInt()?.let { registries.soundEventRegistry[it] }, breakSoundEvent = data["break_sound_type"]?.toInt()?.let { registries.soundEventRegistry[it] },
stepSoundEvent = data["step_sound_type"]?.toInt()?.let { registries.soundEventRegistry[it] }, stepSoundEvent = data["step_sound_type"]?.toInt()?.let { registries.soundEventRegistry[it] },
placeSoundEvent = data["place_sound_type"]?.toInt()?.let { registries.soundEventRegistry[it] }, placeSoundEvent = data["place_sound_type"]?.toInt()?.let { registries.soundEventRegistry[it] },
hitSoundEvent = data["hit_sound_type"]?.toInt()?.let { registries.soundEventRegistry[it] }, hitSoundEvent = data["hit_sound_type"]?.toInt()?.let { registries.soundEventRegistry[it] },
fallSoundEvent = data["fall_sound_type"]?.toInt()?.let { registries.soundEventRegistry[it] }, fallSoundEvent = data["fall_sound_type"]?.toInt()?.let { registries.soundEventRegistry[it] },
soundEventVolume = data["sound_type_volume"]?.unsafeCast<Float>() ?: 1.0f, soundEventVolume = data["sound_type_volume"]?.toFloat() ?: 1.0f,
soundEventPitch = data["sound_type_pitch"]?.unsafeCast<Float>() ?: 1.0f, soundEventPitch = data["sound_type_pitch"]?.toFloat() ?: 1.0f,
) )
} }

View File

@ -13,6 +13,7 @@
package de.bixilon.minosoft.data.registries.blocks.entites package de.bixilon.minosoft.data.registries.blocks.entites
import de.bixilon.kutil.json.JsonUtil.toJsonList
import de.bixilon.minosoft.data.entities.block.BlockEntity import de.bixilon.minosoft.data.entities.block.BlockEntity
import de.bixilon.minosoft.data.entities.block.BlockEntityFactory import de.bixilon.minosoft.data.entities.block.BlockEntityFactory
import de.bixilon.minosoft.data.entities.block.DefaultBlockEntityMetaDataFactory import de.bixilon.minosoft.data.entities.block.DefaultBlockEntityMetaDataFactory
@ -22,7 +23,6 @@ import de.bixilon.minosoft.data.registries.registries.Registries
import de.bixilon.minosoft.data.registries.registries.registry.RegistryItem import de.bixilon.minosoft.data.registries.registries.registry.RegistryItem
import de.bixilon.minosoft.data.registries.registries.registry.ResourceLocationDeserializer import de.bixilon.minosoft.data.registries.registries.registry.ResourceLocationDeserializer
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.listCast
data class BlockEntityType( data class BlockEntityType(
override val resourceLocation: ResourceLocation, override val resourceLocation: ResourceLocation,
@ -42,7 +42,7 @@ data class BlockEntityType(
val blocks: MutableSet<Block> = mutableSetOf() val blocks: MutableSet<Block> = mutableSetOf()
for (block in data["blocks"]?.listCast()!!) { for (block in data["blocks"]?.toJsonList()!!) {
blocks += registries.blockRegistry[block] ?: continue blocks += registries.blockRegistry[block] ?: continue
} }

View File

@ -13,7 +13,7 @@
package de.bixilon.minosoft.data.registries.blocks.properties.serializer package de.bixilon.minosoft.data.registries.blocks.properties.serializer
import de.bixilon.minosoft.util.KUtil.toBoolean import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
object BooleanBlockPropertiesSerializer : BlockPropertiesSerializer { object BooleanBlockPropertiesSerializer : BlockPropertiesSerializer {

View File

@ -13,7 +13,7 @@
package de.bixilon.minosoft.data.registries.blocks.properties.serializer package de.bixilon.minosoft.data.registries.blocks.properties.serializer
import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.kutil.primitive.IntUtil.toInt
object IntBlockPropertiesSerializer : BlockPropertiesSerializer { object IntBlockPropertiesSerializer : BlockPropertiesSerializer {

View File

@ -14,6 +14,10 @@ package de.bixilon.minosoft.data.registries.blocks.types
import de.bixilon.kutil.cast.CastUtil.nullCast import de.bixilon.kutil.cast.CastUtil.nullCast
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.json.JsonUtil.asJsonObject
import de.bixilon.kutil.primitive.DoubleUtil.toDouble
import de.bixilon.kutil.primitive.FloatUtil.toFloat
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.entities.block.BlockEntity import de.bixilon.minosoft.data.entities.block.BlockEntity
import de.bixilon.minosoft.data.entities.entities.Entity import de.bixilon.minosoft.data.entities.entities.Entity
import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.inventory.ItemStack
@ -34,9 +38,6 @@ import de.bixilon.minosoft.gui.rendering.camera.target.targets.BlockTarget
import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults
import de.bixilon.minosoft.gui.rendering.tint.TintProvider import de.bixilon.minosoft.gui.rendering.tint.TintProvider
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.mapCast
import de.bixilon.minosoft.util.KUtil.toDouble
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound
import glm_.vec3.Vec3i import glm_.vec3.Vec3i
import kotlin.random.Random import kotlin.random.Random
@ -46,7 +47,7 @@ open class Block(
registries: Registries, registries: Registries,
data: Map<String, Any>, data: Map<String, Any>,
) : RegistryItem() { ) : RegistryItem() {
open val explosionResistance: Float = data["explosion_resistance"]?.unsafeCast<Float>() ?: 0.0f open val explosionResistance: Float = data["explosion_resistance"]?.toFloat() ?: 0.0f
open val randomOffsetType: RandomOffsetTypes? = data["offset_type"].nullCast<String>()?.let { RandomOffsetTypes[it] } open val randomOffsetType: RandomOffsetTypes? = data["offset_type"].nullCast<String>()?.let { RandomOffsetTypes[it] }
open val tint: ResourceLocation? = data["tint"].nullCast<String>()?.let { ResourceLocation(it) } open val tint: ResourceLocation? = data["tint"].nullCast<String>()?.let { ResourceLocation(it) }
open var blockEntityType: BlockEntityType? = null open var blockEntityType: BlockEntityType? = null
@ -119,7 +120,7 @@ open class Block(
val properties: MutableMap<BlockProperties, MutableSet<Any>> = mutableMapOf() val properties: MutableMap<BlockProperties, MutableSet<Any>> = mutableMapOf()
val states: MutableSet<BlockState> = mutableSetOf() val states: MutableSet<BlockState> = mutableSetOf()
for ((stateId, stateJson) in data["states"]?.mapCast()!!) { for ((stateId, stateJson) in data["states"].asJsonObject()) {
check(stateJson is Map<*, *>) { "Not a state element!" } check(stateJson is Map<*, *>) { "Not a state element!" }
val state = BlockState.deserialize(block, registries, stateJson.asCompound()) val state = BlockState.deserialize(block, registries, stateJson.asCompound())
registries.blockStateRegistry[stateId.toInt()] = state registries.blockStateRegistry[stateId.toInt()] = state

View File

@ -13,6 +13,8 @@
package de.bixilon.minosoft.data.registries.blocks.types package de.bixilon.minosoft.data.registries.blocks.types
import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
import de.bixilon.kutil.random.RandomUtil.chance
import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.inventory.ItemStack
import de.bixilon.minosoft.data.player.Hands import de.bixilon.minosoft.data.player.Hands
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
@ -29,8 +31,6 @@ import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.la
import de.bixilon.minosoft.gui.rendering.util.VecUtil.horizontalPlus import de.bixilon.minosoft.gui.rendering.util.VecUtil.horizontalPlus
import de.bixilon.minosoft.gui.rendering.util.VecUtil.noise import de.bixilon.minosoft.gui.rendering.util.VecUtil.noise
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.chance
import de.bixilon.minosoft.util.KUtil.toBoolean
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import glm_.vec3.Vec3 import glm_.vec3.Vec3
import glm_.vec3.Vec3d import glm_.vec3.Vec3d

View File

@ -13,6 +13,7 @@
package de.bixilon.minosoft.data.registries.blocks.types.wall package de.bixilon.minosoft.data.registries.blocks.types.wall
import de.bixilon.kutil.random.RandomUtil.chance
import de.bixilon.minosoft.data.direction.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.inventory.ItemStack
import de.bixilon.minosoft.data.player.Hands import de.bixilon.minosoft.data.player.Hands
@ -28,7 +29,6 @@ import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults
import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.dust.DustParticle import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.dust.DustParticle
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.chance
import glm_.vec3.Vec3d import glm_.vec3.Vec3d
import glm_.vec3.Vec3i import glm_.vec3.Vec3i
import kotlin.random.Random import kotlin.random.Random

View File

@ -1,12 +1,12 @@
package de.bixilon.minosoft.data.registries.dimension package de.bixilon.minosoft.data.registries.dimension
import de.bixilon.kutil.cast.CastUtil.nullCast import de.bixilon.kutil.cast.CastUtil.nullCast
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
import de.bixilon.kutil.primitive.FloatUtil.toFloat
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.gui.rendering.util.VecUtil import de.bixilon.minosoft.gui.rendering.util.VecUtil
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.KUtil.toBoolean
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.get import de.bixilon.minosoft.util.nbt.tag.NBTUtil.get
data class DimensionProperties( data class DimensionProperties(
@ -59,7 +59,7 @@ data class DimensionProperties(
return DimensionProperties( return DimensionProperties(
piglinSafe = data["piglin_safe"]?.toBoolean() ?: false, piglinSafe = data["piglin_safe"]?.toBoolean() ?: false,
natural = data["natural"]?.toBoolean() ?: false, natural = data["natural"]?.toBoolean() ?: false,
ambientLight = data["ambient_light"]?.unsafeCast<Float>() ?: 0.0f, ambientLight = data["ambient_light"]?.toFloat() ?: 0.0f,
infiniBurn = ResourceLocation(data["infiniburn"].nullCast<String>() ?: "infiniburn_overworld"), infiniBurn = ResourceLocation(data["infiniburn"].nullCast<String>() ?: "infiniburn_overworld"),
respawnAnchorWorks = data["respawn_anchor_works"]?.toBoolean() ?: false, respawnAnchorWorks = data["respawn_anchor_works"]?.toBoolean() ?: false,
hasSkyLight = data["has_skylight", "has_sky_light"]?.toBoolean() ?: false, hasSkyLight = data["has_skylight", "has_sky_light"]?.toBoolean() ?: false,

View File

@ -13,8 +13,9 @@
package de.bixilon.minosoft.data.registries.effects.attributes package de.bixilon.minosoft.data.registries.effects.attributes
import de.bixilon.minosoft.util.KUtil.asUUID import de.bixilon.kutil.uuid.UUIDUtil.toUUID
object DefaultStatusEffectAttributes { object DefaultStatusEffectAttributes {
val SPRINT_SPEED_BOOST = EntityAttributeModifier("Sprinting speed boost", "662A6B8D-DA3E-4C1C-8813-96EA6097278D".asUUID(), 0.30000001192092896, StatusEffectOperations.MULTIPLY_TOTAL) val SPRINT_SPEED_BOOST = EntityAttributeModifier("Sprinting speed boost", "662A6B8D-DA3E-4C1C-8813-96EA6097278D".toUUID(), 0.30000001192092896, StatusEffectOperations.MULTIPLY_TOTAL)
} }

View File

@ -13,7 +13,7 @@
package de.bixilon.minosoft.data.registries.effects.attributes package de.bixilon.minosoft.data.registries.effects.attributes
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.minosoft.util.Util import de.bixilon.kutil.uuid.UUIDUtil.toUUID
import java.util.* import java.util.*
data class EntityAttributeModifier( data class EntityAttributeModifier(
@ -30,7 +30,7 @@ data class EntityAttributeModifier(
fun deserialize(data: Map<String, Any>): EntityAttributeModifier { fun deserialize(data: Map<String, Any>): EntityAttributeModifier {
return EntityAttributeModifier( return EntityAttributeModifier(
name = data["name"].unsafeCast(), name = data["name"].unsafeCast(),
uuid = Util.getUUIDFromString(data["uuid"].unsafeCast()), uuid = data["uuid"].toString().toUUID(),
amount = data["amount"].unsafeCast(), amount = data["amount"].unsafeCast(),
operation = StatusEffectOperations[data["operation"].unsafeCast<String>()], operation = StatusEffectOperations[data["operation"].unsafeCast<String>()],
) )

View File

@ -15,6 +15,7 @@ package de.bixilon.minosoft.data.registries.entities
import de.bixilon.kutil.cast.CastUtil.nullCast import de.bixilon.kutil.cast.CastUtil.nullCast
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
import de.bixilon.minosoft.data.DefaultEntityFactories import de.bixilon.minosoft.data.DefaultEntityFactories
import de.bixilon.minosoft.data.entities.EntityMetaDataFields import de.bixilon.minosoft.data.entities.EntityMetaDataFields
import de.bixilon.minosoft.data.entities.EntityRotation import de.bixilon.minosoft.data.entities.EntityRotation
@ -28,7 +29,6 @@ import de.bixilon.minosoft.data.registries.registries.registry.ResourceLocationD
import de.bixilon.minosoft.data.registries.registries.registry.Translatable import de.bixilon.minosoft.data.registries.registries.registry.Translatable
import de.bixilon.minosoft.datafixer.EntityAttributeFixer.fix import de.bixilon.minosoft.datafixer.EntityAttributeFixer.fix
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.toBoolean
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
import glm_.vec3.Vec3d import glm_.vec3.Vec3d

View File

@ -13,7 +13,8 @@
package de.bixilon.minosoft.data.registries.fluid.lava package de.bixilon.minosoft.data.registries.fluid.lava
import de.bixilon.kutil.general.BooleanUtil.decide import de.bixilon.kutil.primitive.BooleanUtil.decide
import de.bixilon.kutil.random.RandomUtil.chance
import de.bixilon.minosoft.data.direction.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.player.LocalPlayerEntity import de.bixilon.minosoft.data.player.LocalPlayerEntity
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
@ -30,7 +31,6 @@ import de.bixilon.minosoft.gui.rendering.util.VecUtil.horizontal
import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus
import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3d import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3d
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.chance
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import glm_.vec3.Vec3d import glm_.vec3.Vec3d
import glm_.vec3.Vec3i import glm_.vec3.Vec3i

View File

@ -13,7 +13,8 @@
package de.bixilon.minosoft.data.registries.fluid.water package de.bixilon.minosoft.data.registries.fluid.water
import de.bixilon.kutil.general.BooleanUtil.decide import de.bixilon.kutil.primitive.BooleanUtil.decide
import de.bixilon.kutil.random.RandomUtil.chance
import de.bixilon.minosoft.data.player.LocalPlayerEntity import de.bixilon.minosoft.data.player.LocalPlayerEntity
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.blocks.BlockState import de.bixilon.minosoft.data.registries.blocks.BlockState
@ -33,7 +34,6 @@ import de.bixilon.minosoft.gui.rendering.tint.WaterTintProvider
import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus
import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3d import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3d
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.chance
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import glm_.vec3.Vec3d import glm_.vec3.Vec3d
import glm_.vec3.Vec3i import glm_.vec3.Vec3i

View File

@ -13,10 +13,10 @@
package de.bixilon.minosoft.data.registries.inventory package de.bixilon.minosoft.data.registries.inventory
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.data.registries.registries.Registries
import de.bixilon.minosoft.data.registries.registries.registry.IdDeserializer import de.bixilon.minosoft.data.registries.registries.registry.IdDeserializer
import de.bixilon.minosoft.data.registries.registries.registry.RegistryFakeEnumerable import de.bixilon.minosoft.data.registries.registries.registry.RegistryFakeEnumerable
import de.bixilon.minosoft.util.KUtil.toBoolean
data class CreativeModeTab( data class CreativeModeTab(
override val name: String, override val name: String,

View File

@ -13,7 +13,10 @@
package de.bixilon.minosoft.data.registries.items package de.bixilon.minosoft.data.registries.items
import de.bixilon.kutil.general.BooleanUtil.decide import de.bixilon.kutil.primitive.BooleanUtil.decide
import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
import de.bixilon.kutil.primitive.FloatUtil.toFloat
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.abilities.Gamemodes import de.bixilon.minosoft.data.abilities.Gamemodes
import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.inventory.ItemStack
import de.bixilon.minosoft.data.player.Hands import de.bixilon.minosoft.data.player.Hands
@ -22,9 +25,6 @@ import de.bixilon.minosoft.data.registries.registries.Registries
import de.bixilon.minosoft.gui.rendering.gui.hud.elements.hotbar.HotbarHungerElement import de.bixilon.minosoft.gui.rendering.gui.hud.elements.hotbar.HotbarHungerElement
import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.toBoolean
import de.bixilon.minosoft.util.KUtil.toFloat
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound
open class FoodItem( open class FoodItem(

View File

@ -13,6 +13,8 @@
package de.bixilon.minosoft.data.registries.items package de.bixilon.minosoft.data.registries.items
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.Rarities import de.bixilon.minosoft.data.Rarities
import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.inventory.ItemStack
import de.bixilon.minosoft.data.player.Hands import de.bixilon.minosoft.data.player.Hands
@ -45,8 +47,6 @@ import de.bixilon.minosoft.gui.rendering.camera.target.targets.BlockTarget
import de.bixilon.minosoft.gui.rendering.camera.target.targets.EntityTarget import de.bixilon.minosoft.gui.rendering.camera.target.targets.EntityTarget
import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.toBoolean
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
open class Item( open class Item(

View File

@ -13,11 +13,11 @@
package de.bixilon.minosoft.data.registries.items package de.bixilon.minosoft.data.registries.items
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.entities.EntityType import de.bixilon.minosoft.data.registries.entities.EntityType
import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.data.registries.registries.Registries
import de.bixilon.minosoft.data.text.RGBColor.Companion.asRGBColor import de.bixilon.minosoft.data.text.RGBColor.Companion.asRGBColor
import de.bixilon.minosoft.util.KUtil.toInt
open class SpawnEggItem( open class SpawnEggItem(
resourceLocation: ResourceLocation, resourceLocation: ResourceLocation,

View File

@ -14,6 +14,7 @@
package de.bixilon.minosoft.data.registries.items.armor package de.bixilon.minosoft.data.registries.items.armor
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.primitive.FloatUtil.toFloat
import de.bixilon.minosoft.data.inventory.InventorySlots import de.bixilon.minosoft.data.inventory.InventorySlots
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.items.Item import de.bixilon.minosoft.data.registries.items.Item
@ -24,8 +25,8 @@ open class ArmorItem(
registries: Registries, registries: Registries,
data: Map<String, Any>, data: Map<String, Any>,
) : Item(resourceLocation, registries, data) { ) : Item(resourceLocation, registries, data) {
val protection = data["defense"].unsafeCast<Float>() val protection = data["defense"].toFloat()
val toughness = data["toughness"].unsafeCast<Float>() val toughness = data["toughness"].toFloat()
val equipmentSlot = data["equipment_slot"].unsafeCast<String>().let { InventorySlots.EquipmentSlots[it] } val equipmentSlot = data["equipment_slot"].unsafeCast<String>().let { InventorySlots.EquipmentSlots[it] }
val knockbackResistance = data["knockback_resistance"]?.unsafeCast<Float>() ?: 0.0f val knockbackResistance = data["knockback_resistance"]?.toFloat() ?: 0.0f
} }

View File

@ -14,10 +14,10 @@
package de.bixilon.minosoft.data.registries.items.armor package de.bixilon.minosoft.data.registries.items.armor
import de.bixilon.kutil.cast.CastUtil.nullCast import de.bixilon.kutil.cast.CastUtil.nullCast
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.items.Item import de.bixilon.minosoft.data.registries.items.Item
import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.data.registries.registries.Registries
import de.bixilon.minosoft.util.KUtil.toInt
open class HorseArmorItem( open class HorseArmorItem(
resourceLocation: ResourceLocation, resourceLocation: ResourceLocation,

View File

@ -13,6 +13,8 @@
package de.bixilon.minosoft.data.registries.items.tools package de.bixilon.minosoft.data.registries.items.tools
import de.bixilon.kutil.json.JsonUtil.toJsonObject
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.inventory.ItemStack
import de.bixilon.minosoft.data.player.Hands import de.bixilon.minosoft.data.player.Hands
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
@ -21,8 +23,6 @@ import de.bixilon.minosoft.data.registries.registries.Registries
import de.bixilon.minosoft.gui.rendering.camera.target.targets.BlockTarget import de.bixilon.minosoft.gui.rendering.camera.target.targets.BlockTarget
import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.mapCast
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
open class AxeItem( open class AxeItem(
@ -31,7 +31,7 @@ open class AxeItem(
data: Map<String, Any>, data: Map<String, Any>,
) : MiningToolItem(resourceLocation, registries, data) { ) : MiningToolItem(resourceLocation, registries, data) {
override val diggableTag: ResourceLocation = AXE_MINEABLE_TAG override val diggableTag: ResourceLocation = AXE_MINEABLE_TAG
val strippableBlocks: Map<Block, Block>? = data["strippables_blocks"]?.mapCast()?.let { val strippableBlocks: Map<Block, Block>? = data["strippables_blocks"]?.toJsonObject()?.let {
val entries: MutableMap<Block, Block> = mutableMapOf() val entries: MutableMap<Block, Block> = mutableMapOf()
for ((origin, target) in it) { for ((origin, target) in it) {
entries[registries.blockRegistry[origin.toInt()]] = registries.blockRegistry[target]!! entries[registries.blockRegistry[origin.toInt()]] = registries.blockRegistry[target]!!

View File

@ -13,6 +13,8 @@
package de.bixilon.minosoft.data.registries.items.tools package de.bixilon.minosoft.data.registries.items.tools
import de.bixilon.kutil.json.JsonUtil.toJsonObject
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.direction.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.inventory.ItemStack
import de.bixilon.minosoft.data.player.Hands import de.bixilon.minosoft.data.player.Hands
@ -24,8 +26,6 @@ import de.bixilon.minosoft.gui.rendering.camera.target.targets.BlockTarget
import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults
import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.mapCast
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
open class HoeItem( open class HoeItem(
@ -34,7 +34,7 @@ open class HoeItem(
data: Map<String, Any>, data: Map<String, Any>,
) : MiningToolItem(resourceLocation, registries, data) { ) : MiningToolItem(resourceLocation, registries, data) {
override val diggableTag: ResourceLocation = HOE_MINEABLE_TAG override val diggableTag: ResourceLocation = HOE_MINEABLE_TAG
val tillableBlockStates: Map<Block, BlockState>? = data["tillables_block_states"]?.mapCast()?.let { val tillableBlockStates: Map<Block, BlockState>? = data["tillables_block_states"]?.toJsonObject()?.let {
val entries: MutableMap<Block, BlockState> = mutableMapOf() val entries: MutableMap<Block, BlockState> = mutableMapOf()
for ((origin, target) in it) { for ((origin, target) in it) {
entries[registries.blockRegistry[origin.toInt()]] = registries.blockStateRegistry[target]!! entries[registries.blockRegistry[origin.toInt()]] = registries.blockStateRegistry[target]!!

View File

@ -13,7 +13,8 @@
package de.bixilon.minosoft.data.registries.items.tools package de.bixilon.minosoft.data.registries.items.tools
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.json.JsonUtil.toJsonList
import de.bixilon.kutil.primitive.FloatUtil.toFloat
import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.inventory.ItemStack
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.blocks.BlockState import de.bixilon.minosoft.data.registries.blocks.BlockState
@ -22,7 +23,6 @@ import de.bixilon.minosoft.data.registries.registries.Registries
import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults
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.TagsS2CP import de.bixilon.minosoft.protocol.packets.s2c.play.TagsS2CP
import de.bixilon.minosoft.util.KUtil.listCast
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import glm_.vec3.Vec3i import glm_.vec3.Vec3i
@ -31,14 +31,14 @@ abstract class MiningToolItem(
registries: Registries, registries: Registries,
data: Map<String, Any>, data: Map<String, Any>,
) : ToolItem(resourceLocation, registries, data) { ) : ToolItem(resourceLocation, registries, data) {
val diggableBlocks: Set<Block>? = data["diggable_blocks"]?.listCast()?.let { val diggableBlocks: Set<Block>? = data["diggable_blocks"]?.toJsonList()?.let {
val entries: MutableList<Block> = mutableListOf() val entries: MutableList<Block> = mutableListOf()
for (id in it) { for (id in it) {
entries += registries.blockRegistry[id]!! entries += registries.blockRegistry[id]!!
} }
entries.toSet() entries.toSet()
} }
override val attackDamage: Float = data["attack_damage"]?.unsafeCast<Float>() ?: 1.0f override val attackDamage: Float = data["attack_damage"]?.toFloat() ?: 1.0f
abstract val diggableTag: ResourceLocation? abstract val diggableTag: ResourceLocation?

View File

@ -13,6 +13,8 @@
package de.bixilon.minosoft.data.registries.items.tools package de.bixilon.minosoft.data.registries.items.tools
import de.bixilon.kutil.json.JsonUtil.toJsonObject
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.direction.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.inventory.ItemStack
import de.bixilon.minosoft.data.player.Hands import de.bixilon.minosoft.data.player.Hands
@ -24,8 +26,6 @@ import de.bixilon.minosoft.gui.rendering.camera.target.targets.BlockTarget
import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults
import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.mapCast
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
open class ShovelItem( open class ShovelItem(
@ -34,7 +34,7 @@ open class ShovelItem(
data: Map<String, Any>, data: Map<String, Any>,
) : MiningToolItem(resourceLocation, registries, data) { ) : MiningToolItem(resourceLocation, registries, data) {
override val diggableTag: ResourceLocation = SHOVEL_MINEABLE_TAG override val diggableTag: ResourceLocation = SHOVEL_MINEABLE_TAG
val flattenableBlockStates: Map<Block, BlockState>? = data["flattenables_block_states"]?.mapCast()?.let { val flattenableBlockStates: Map<Block, BlockState>? = data["flattenables_block_states"]?.toJsonObject()?.let {
val entries: MutableMap<Block, BlockState> = mutableMapOf() val entries: MutableMap<Block, BlockState> = mutableMapOf()
for ((origin, target) in it) { for ((origin, target) in it) {
entries[registries.blockRegistry[origin.toInt()]] = registries.blockStateRegistry[target]!! entries[registries.blockRegistry[origin.toInt()]] = registries.blockStateRegistry[target]!!

View File

@ -13,7 +13,7 @@
package de.bixilon.minosoft.data.registries.items.tools package de.bixilon.minosoft.data.registries.items.tools
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.primitive.FloatUtil.toFloat
import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.inventory.ItemStack
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.blocks.BlockState import de.bixilon.minosoft.data.registries.blocks.BlockState
@ -27,7 +27,7 @@ open class SwordItem(
registries: Registries, registries: Registries,
data: Map<String, Any>, data: Map<String, Any>,
) : ToolItem(resourceLocation, registries, data) { ) : ToolItem(resourceLocation, registries, data) {
override val attackDamage = data["attack_damage"]?.unsafeCast<Float>() ?: -1.0f override val attackDamage = data["attack_damage"]?.toFloat() ?: -1.0f
override fun getMiningSpeedMultiplier(connection: PlayConnection, blockState: BlockState, itemStack: ItemStack): Float { override fun getMiningSpeedMultiplier(connection: PlayConnection, blockState: BlockState, itemStack: ItemStack): Float {
if (blockState.block.resourceLocation == MinecraftBlocks.COBWEB) { if (blockState.block.resourceLocation == MinecraftBlocks.COBWEB) {

View File

@ -13,11 +13,11 @@
package de.bixilon.minosoft.data.registries.items.tools package de.bixilon.minosoft.data.registries.items.tools
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.primitive.FloatUtil.toFloat
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.items.Item import de.bixilon.minosoft.data.registries.items.Item
import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.data.registries.registries.Registries
import de.bixilon.minosoft.util.KUtil.toInt
open class ToolItem( open class ToolItem(
@ -26,8 +26,8 @@ open class ToolItem(
data: Map<String, Any>, data: Map<String, Any>,
) : Item(resourceLocation, registries, data) { ) : Item(resourceLocation, registries, data) {
val durability = data["uses"]?.toInt() ?: 1 val durability = data["uses"]?.toInt() ?: 1
val speed = data["speed"]?.unsafeCast<Float>() ?: 1.0f val speed = data["speed"]?.toFloat() ?: 1.0f
open val attackDamage = data["attack_damage_bonus"]?.unsafeCast<Float>() ?: 1.0f open val attackDamage = data["attack_damage_bonus"]?.toFloat() ?: 1.0f
val miningLevel = data["level"]?.toInt() ?: 1 val miningLevel = data["level"]?.toInt() ?: 1
val enchantmentValue = data["enchantment_value"]?.toInt() ?: 1 val enchantmentValue = data["enchantment_value"]?.toInt() ?: 1
} }

View File

@ -13,14 +13,14 @@
package de.bixilon.minosoft.data.registries.materials package de.bixilon.minosoft.data.registries.materials
import de.bixilon.kutil.cast.CastUtil.nullCast import de.bixilon.kutil.cast.CastUtil.nullCast
import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.data.registries.registries.Registries
import de.bixilon.minosoft.data.registries.registries.registry.RegistryItem import de.bixilon.minosoft.data.registries.registries.registry.RegistryItem
import de.bixilon.minosoft.data.registries.registries.registry.ResourceLocationDeserializer import de.bixilon.minosoft.data.registries.registries.registry.ResourceLocationDeserializer
import de.bixilon.minosoft.data.text.RGBColor import de.bixilon.minosoft.data.text.RGBColor
import de.bixilon.minosoft.gui.rendering.tint.TintManager import de.bixilon.minosoft.gui.rendering.tint.TintManager
import de.bixilon.minosoft.util.KUtil.toBoolean
import de.bixilon.minosoft.util.KUtil.toInt
import java.util.* import java.util.*
data class Material( data class Material(

View File

@ -12,6 +12,7 @@
*/ */
package de.bixilon.minosoft.data.registries.particle package de.bixilon.minosoft.data.registries.particle
import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.particle.data.ParticleData import de.bixilon.minosoft.data.registries.particle.data.ParticleData
import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.data.registries.registries.Registries
@ -21,7 +22,6 @@ import de.bixilon.minosoft.gui.rendering.particle.DefaultParticleFactory
import de.bixilon.minosoft.gui.rendering.particle.ParticleFactory import de.bixilon.minosoft.gui.rendering.particle.ParticleFactory
import de.bixilon.minosoft.gui.rendering.particle.types.Particle import de.bixilon.minosoft.gui.rendering.particle.types.Particle
import de.bixilon.minosoft.gui.rendering.textures.Texture import de.bixilon.minosoft.gui.rendering.textures.Texture
import de.bixilon.minosoft.util.KUtil.toBoolean
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.listCast import de.bixilon.minosoft.util.nbt.tag.NBTUtil.listCast

View File

@ -47,8 +47,6 @@ import de.bixilon.minosoft.data.registries.versions.Version
import de.bixilon.minosoft.protocol.packets.c2s.play.EntityActionC2SP import de.bixilon.minosoft.protocol.packets.c2s.play.EntityActionC2SP
import de.bixilon.minosoft.protocol.packets.s2c.play.EntityAnimationS2CP import de.bixilon.minosoft.protocol.packets.s2c.play.EntityAnimationS2CP
import de.bixilon.minosoft.protocol.packets.s2c.play.title.TitleS2CF import de.bixilon.minosoft.protocol.packets.s2c.play.title.TitleS2CF
import de.bixilon.minosoft.util.KUtil.listCast
import de.bixilon.minosoft.util.KUtil.mapCast
import de.bixilon.minosoft.util.collections.Clearable import de.bixilon.minosoft.util.collections.Clearable
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
import java.lang.reflect.Field import java.lang.reflect.Field
@ -146,9 +144,9 @@ class Registries {
loadEnumRegistry(version, pixlyzerData["entity_actions"], entityActionsRegistry, DefaultRegistries.ENTITY_ACTIONS_REGISTRY) loadEnumRegistry(version, pixlyzerData["entity_actions"], entityActionsRegistry, DefaultRegistries.ENTITY_ACTIONS_REGISTRY)
// id stuff // id stuff
biomeCategoryRegistry.initialize(pixlyzerData["biome_categories"]?.mapCast(), this, BiomeCategory) biomeCategoryRegistry.initialize(pixlyzerData["biome_categories"]?.unsafeCast(), this, BiomeCategory)
biomePrecipitationRegistry.initialize(pixlyzerData["biome_precipitations"]?.mapCast(), this, BiomePrecipitation) biomePrecipitationRegistry.initialize(pixlyzerData["biome_precipitations"]?.unsafeCast(), this, BiomePrecipitation)
creativeModeTabRegistry.initialize(pixlyzerData["creative_inventory_tab"]?.mapCast(), this, CreativeModeTab) creativeModeTabRegistry.initialize(pixlyzerData["creative_inventory_tab"]?.unsafeCast(), this, CreativeModeTab)
// id resource location stuff // id resource location stuff
containerTypeRegistry.rawInitialize(pixlyzerData["container_types"]?.compoundCast(), this, ContainerType, alternative = DefaultRegistries.CONTAINER_TYPE_REGISTRY.forVersion(version)) containerTypeRegistry.rawInitialize(pixlyzerData["container_types"]?.compoundCast(), this, ContainerType, alternative = DefaultRegistries.CONTAINER_TYPE_REGISTRY.forVersion(version))
@ -187,7 +185,7 @@ class Registries {
private fun loadShapes(pixlyzerData: Map<String, Any>?) { private fun loadShapes(pixlyzerData: Map<String, Any>?) {
pixlyzerData ?: return pixlyzerData ?: return
val aabbs = loadAABBs(pixlyzerData["aabbs"].nullCast()!!) val aabbs = loadAABBs(pixlyzerData["aabbs"].nullCast()!!)
loadVoxelShapes(pixlyzerData["shapes"]?.listCast()!!, aabbs) loadVoxelShapes(pixlyzerData["shapes"].unsafeCast(), aabbs)
} }
private fun loadVoxelShapes(pixlyzerData: Collection<Any>, aabbs: List<AABB>) { private fun loadVoxelShapes(pixlyzerData: Collection<Any>, aabbs: List<AABB>) {

View File

@ -13,8 +13,8 @@
package de.bixilon.minosoft.data.registries.registries.registry package de.bixilon.minosoft.data.registries.registries.registry
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.data.registries.registries.Registries
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.collections.Clearable import de.bixilon.minosoft.util.collections.Clearable
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound

View File

@ -15,11 +15,11 @@ package de.bixilon.minosoft.data.registries.registries.registry
import com.google.gson.JsonElement import com.google.gson.JsonElement
import com.google.gson.JsonPrimitive import com.google.gson.JsonPrimitive
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.registries.MultiResourceLocationAble import de.bixilon.minosoft.data.registries.MultiResourceLocationAble
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.ResourceLocationAble import de.bixilon.minosoft.data.registries.ResourceLocationAble
import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.data.registries.registries.Registries
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import de.bixilon.minosoft.util.json.ResourceLocationJsonMap.toResourceLocationMap import de.bixilon.minosoft.util.json.ResourceLocationJsonMap.toResourceLocationMap
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound

View File

@ -13,9 +13,9 @@
package de.bixilon.minosoft.data.registries.registries.registry package de.bixilon.minosoft.data.registries.registries.registry
import de.bixilon.kutil.reflection.ReflectionUtil.setValue
import de.bixilon.minosoft.data.registries.ResourceLocationAble import de.bixilon.minosoft.data.registries.ResourceLocationAble
import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.data.registries.registries.Registries
import de.bixilon.minosoft.util.KUtil.setValue
import kotlin.reflect.KProperty import kotlin.reflect.KProperty
import kotlin.reflect.jvm.javaField import kotlin.reflect.jvm.javaField

View File

@ -1,7 +1,7 @@
package de.bixilon.minosoft.data.registries.registries.registry package de.bixilon.minosoft.data.registries.registries.registry
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.json.ResourceLocationJsonMap.toResourceLocationMap import de.bixilon.minosoft.util.json.ResourceLocationJsonMap.toResourceLocationMap
class ResourceLocationRegistry( class ResourceLocationRegistry(

View File

@ -1,6 +1,6 @@
package de.bixilon.minosoft.data.registries.versions package de.bixilon.minosoft.data.registries.versions
import de.bixilon.kutil.general.BooleanUtil.decide import de.bixilon.kutil.primitive.BooleanUtil.decide
import de.bixilon.minosoft.config.profile.profiles.resources.ResourcesProfile import de.bixilon.minosoft.config.profile.profiles.resources.ResourcesProfile
import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.data.registries.registries.Registries
import de.bixilon.minosoft.data.registries.registries.RegistriesLoader import de.bixilon.minosoft.data.registries.registries.RegistriesLoader

View File

@ -1,11 +1,11 @@
package de.bixilon.minosoft.data.registries.versions package de.bixilon.minosoft.data.registries.versions
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.Minosoft
import de.bixilon.minosoft.assets.util.FileUtil.readJson import de.bixilon.minosoft.assets.util.FileUtil.readJson
import de.bixilon.minosoft.protocol.protocol.PacketTypes import de.bixilon.minosoft.protocol.protocol.PacketTypes
import de.bixilon.minosoft.protocol.protocol.ProtocolStates import de.bixilon.minosoft.protocol.protocol.ProtocolStates
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
object Versions : Iterable<Version> { object Versions : Iterable<Version> {

View File

@ -14,7 +14,7 @@ package de.bixilon.minosoft.data.scoreboard
import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf
import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedMap import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedMap
import de.bixilon.kutil.general.BooleanUtil.decide import de.bixilon.kutil.primitive.BooleanUtil.decide
import de.bixilon.minosoft.modding.event.events.scoreboard.ScoreTeamChangeEvent import de.bixilon.minosoft.modding.event.events.scoreboard.ScoreTeamChangeEvent
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection

View File

@ -14,14 +14,14 @@
package de.bixilon.minosoft.data.text package de.bixilon.minosoft.data.text
import de.bixilon.kutil.cast.CastUtil.nullCast import de.bixilon.kutil.cast.CastUtil.nullCast
import de.bixilon.kutil.json.JsonUtil.toJsonList
import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
import de.bixilon.minosoft.data.language.Translator import de.bixilon.minosoft.data.language.Translator
import de.bixilon.minosoft.data.text.ChatCode.Companion.toColor import de.bixilon.minosoft.data.text.ChatCode.Companion.toColor
import de.bixilon.minosoft.data.text.events.ClickEvent import de.bixilon.minosoft.data.text.events.ClickEvent
import de.bixilon.minosoft.data.text.events.HoverEvent import de.bixilon.minosoft.data.text.events.HoverEvent
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.format
import de.bixilon.minosoft.util.KUtil.listCast
import de.bixilon.minosoft.util.KUtil.toBoolean
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.get import de.bixilon.minosoft.util.nbt.tag.NBTUtil.get
@ -139,7 +139,7 @@ class BaseComponent : ChatComponent {
var currentText = "" var currentText = ""
fun parseExtra() { fun parseExtra() {
json["extra"]?.listCast()?.let { json["extra"].toJsonList()?.let {
for (data in it) { for (data in it) {
parts += ChatComponent.of(data, translator, currentParent) parts += ChatComponent.of(data, translator, currentParent)
} }
@ -184,11 +184,11 @@ class BaseComponent : ChatComponent {
parseExtra() parseExtra()
json["translate"]?.nullCast<String>()?.let { json["translate"]?.toString()?.let {
val with: MutableList<Any> = mutableListOf() val with: MutableList<Any> = mutableListOf()
json["with"]?.listCast()?.let { withArray -> json["with"].toJsonList()?.let { withArray ->
for (part in withArray) { for (part in withArray) {
with.add(part) with.add(part ?: continue)
} }
} }
parts += translator?.translate(it.toResourceLocation(), currentParent, *with.toTypedArray()) ?: ChatComponent.of(json["with"], translator, currentParent) parts += translator?.translate(it.toResourceLocation(), currentParent, *with.toTypedArray()) ?: ChatComponent.of(json["with"], translator, currentParent)

View File

@ -14,9 +14,9 @@ package de.bixilon.minosoft.data.text.events.data
import de.bixilon.kutil.cast.CastUtil.nullCast import de.bixilon.kutil.cast.CastUtil.nullCast
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.uuid.UUIDUtil.toUUID
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.text.ChatComponent import de.bixilon.minosoft.data.text.ChatComponent
import de.bixilon.minosoft.util.KUtil.asUUID
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import de.bixilon.minosoft.util.json.Jackson import de.bixilon.minosoft.util.json.Jackson
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound
@ -44,7 +44,7 @@ class EntityHoverData(
type = it.toResourceLocation() type = it.toResourceLocation()
} }
return EntityHoverData(json["id"].unsafeCast<String>().asUUID(), type, ChatComponent.of(json["name"])) return EntityHoverData(json["id"].toString().toUUID(), type, ChatComponent.of(json["name"]))
} }
} }
} }

View File

@ -1,6 +1,6 @@
package de.bixilon.minosoft.gui.eros package de.bixilon.minosoft.gui.eros
import de.bixilon.kutil.general.OSUtil import de.bixilon.kutil.os.OSUtil
import de.bixilon.minosoft.config.profile.profiles.other.OtherProfileManager import de.bixilon.minosoft.config.profile.profiles.other.OtherProfileManager
import de.bixilon.minosoft.gui.eros.dialog.SimpleErosWarningDialog import de.bixilon.minosoft.gui.eros.dialog.SimpleErosWarningDialog
import de.bixilon.minosoft.terminal.RunConfiguration import de.bixilon.minosoft.terminal.RunConfiguration

View File

@ -15,7 +15,14 @@ package de.bixilon.minosoft.gui.eros.crash
import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedSet import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedSet
import de.bixilon.kutil.concurrent.pool.DefaultThreadPool import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
import de.bixilon.kutil.general.OSUtil import de.bixilon.kutil.exception.ExceptionUtil.toStackTrace
import de.bixilon.kutil.exception.ExceptionUtil.tryCatch
import de.bixilon.kutil.file.FileUtil.slashPath
import de.bixilon.kutil.file.watcher.FileWatcherService
import de.bixilon.kutil.os.OSUtil
import de.bixilon.kutil.time.TimeUtil
import de.bixilon.kutil.unit.UnitFormatter.formatBytes
import de.bixilon.kutil.unsafe.UnsafeUtil
import de.bixilon.minosoft.ShutdownReasons import de.bixilon.minosoft.ShutdownReasons
import de.bixilon.minosoft.gui.eros.controller.JavaFXWindowController import de.bixilon.minosoft.gui.eros.controller.JavaFXWindowController
import de.bixilon.minosoft.gui.eros.util.JavaFXInitializer import de.bixilon.minosoft.gui.eros.util.JavaFXInitializer
@ -23,12 +30,10 @@ import de.bixilon.minosoft.gui.eros.util.JavaFXUtil
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.terminal.CommandLineArguments import de.bixilon.minosoft.terminal.CommandLineArguments
import de.bixilon.minosoft.terminal.RunConfiguration import de.bixilon.minosoft.terminal.RunConfiguration
import de.bixilon.minosoft.util.* import de.bixilon.minosoft.util.GitInfo
import de.bixilon.minosoft.util.KUtil.slashPath import de.bixilon.minosoft.util.ShutdownManager
import de.bixilon.minosoft.util.KUtil.toStackTrace import de.bixilon.minosoft.util.SystemInformation
import de.bixilon.minosoft.util.KUtil.tryCatch import de.bixilon.minosoft.util.Util
import de.bixilon.minosoft.util.UnitFormatter.formatBytes
import de.bixilon.minosoft.util.filewatcher.FileWatcherService
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
import de.bixilon.minosoft.util.logging.LogMessageType import de.bixilon.minosoft.util.logging.LogMessageType
@ -79,7 +84,7 @@ class ErosCrashReport : JavaFXWindowController() {
} }
fun hardCrash() { fun hardCrash() {
KUtil.hardCrash() UnsafeUtil.hardCrash()
} }
companion object { companion object {
@ -143,7 +148,7 @@ class ErosCrashReport : JavaFXWindowController() {
val crashReportFolder = File(RunConfiguration.HOME_DIRECTORY + "crash-reports") val crashReportFolder = File(RunConfiguration.HOME_DIRECTORY + "crash-reports")
crashReportFolder.mkdirs() crashReportFolder.mkdirs()
crashReportPath = "${crashReportFolder.slashPath}/crash-${SimpleDateFormat("yyyy-MM-dd-HH.mm.ss").format(KUtil.time)}.txt" crashReportPath = "${crashReportFolder.slashPath}/crash-${SimpleDateFormat("yyyy-MM-dd-HH.mm.ss").format(TimeUtil.time)}.txt"
val stream = FileOutputStream(crashReportPath) val stream = FileOutputStream(crashReportPath)
@ -197,7 +202,7 @@ class ErosCrashReport : JavaFXWindowController() {
----- Minosoft Crash Report ----- ----- Minosoft Crash Report -----
// ${CRASH_REPORT_COMMENTS.random()} // ${CRASH_REPORT_COMMENTS.random()}
Time: ${SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(KUtil.time)} (${KUtil.time / 1000L}) Time: ${SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(TimeUtil.time)} (${TimeUtil.time / 1000L})
Crash thread: ${Thread.currentThread().name} Crash thread: ${Thread.currentThread().name}
${exception?.toStackTrace() ?: ""} ${exception?.toStackTrace() ?: ""}

View File

@ -13,6 +13,8 @@
package de.bixilon.minosoft.gui.eros.dialog package de.bixilon.minosoft.gui.eros.dialog
import de.bixilon.kutil.exception.ExceptionUtil.toStackTrace
import de.bixilon.kutil.reflection.ReflectionUtil.realName
import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.Minosoft
import de.bixilon.minosoft.data.text.TranslatableComponents.GENERAL_IGNORE import de.bixilon.minosoft.data.text.TranslatableComponents.GENERAL_IGNORE
import de.bixilon.minosoft.gui.eros.controller.DialogController import de.bixilon.minosoft.gui.eros.controller.DialogController
@ -21,9 +23,7 @@ import de.bixilon.minosoft.gui.eros.util.JavaFXUtil
import de.bixilon.minosoft.gui.eros.util.JavaFXUtil.ctext import de.bixilon.minosoft.gui.eros.util.JavaFXUtil.ctext
import de.bixilon.minosoft.gui.eros.util.JavaFXUtil.text import de.bixilon.minosoft.gui.eros.util.JavaFXUtil.text
import de.bixilon.minosoft.terminal.RunConfiguration import de.bixilon.minosoft.terminal.RunConfiguration
import de.bixilon.minosoft.util.KUtil.realName
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import de.bixilon.minosoft.util.KUtil.toStackTrace
import javafx.fxml.FXML import javafx.fxml.FXML
import javafx.scene.control.Button import javafx.scene.control.Button
import javafx.scene.control.TextArea import javafx.scene.control.TextArea

View File

@ -14,7 +14,7 @@
package de.bixilon.minosoft.gui.eros.dialog package de.bixilon.minosoft.gui.eros.dialog
import de.bixilon.kutil.concurrent.pool.DefaultThreadPool import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
import de.bixilon.kutil.general.BooleanUtil.decide import de.bixilon.kutil.primitive.BooleanUtil.decide
import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.Minosoft
import de.bixilon.minosoft.config.profile.delegate.watcher.SimpleProfileDelegateWatcher.Companion.profileWatchFX import de.bixilon.minosoft.config.profile.delegate.watcher.SimpleProfileDelegateWatcher.Companion.profileWatchFX
import de.bixilon.minosoft.config.profile.profiles.eros.ErosProfileManager import de.bixilon.minosoft.config.profile.profiles.eros.ErosProfileManager

View File

@ -15,7 +15,7 @@ package de.bixilon.minosoft.gui.eros.main.account
import de.bixilon.kutil.collections.CollectionUtil.extend import de.bixilon.kutil.collections.CollectionUtil.extend
import de.bixilon.kutil.concurrent.pool.DefaultThreadPool import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
import de.bixilon.kutil.general.BooleanUtil.decide import de.bixilon.kutil.primitive.BooleanUtil.decide
import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.Minosoft
import de.bixilon.minosoft.config.profile.delegate.watcher.entry.MapProfileDelegateWatcher.Companion.profileWatchMapFX import de.bixilon.minosoft.config.profile.delegate.watcher.entry.MapProfileDelegateWatcher.Companion.profileWatchMapFX
import de.bixilon.minosoft.config.profile.profiles.eros.ErosProfileManager import de.bixilon.minosoft.config.profile.profiles.eros.ErosProfileManager

View File

@ -14,8 +14,9 @@
package de.bixilon.minosoft.gui.eros.main.play.server package de.bixilon.minosoft.gui.eros.main.play.server
import de.bixilon.kutil.concurrent.pool.DefaultThreadPool import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
import de.bixilon.kutil.general.BooleanUtil.decide
import de.bixilon.kutil.latch.CountUpAndDownLatch import de.bixilon.kutil.latch.CountUpAndDownLatch
import de.bixilon.kutil.primitive.BooleanUtil.decide
import de.bixilon.kutil.primitive.IntUtil.thousands
import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.Minosoft
import de.bixilon.minosoft.config.profile.ConnectionProfiles import de.bixilon.minosoft.config.profile.ConnectionProfiles
import de.bixilon.minosoft.config.profile.delegate.watcher.SimpleProfileDelegateWatcher.Companion.profileWatchFX import de.bixilon.minosoft.config.profile.delegate.watcher.SimpleProfileDelegateWatcher.Companion.profileWatchFX
@ -48,7 +49,6 @@ import de.bixilon.minosoft.protocol.network.connection.play.PlayConnectionStates
import de.bixilon.minosoft.protocol.network.connection.status.StatusConnection import de.bixilon.minosoft.protocol.network.connection.status.StatusConnection
import de.bixilon.minosoft.protocol.network.connection.status.StatusConnectionStates import de.bixilon.minosoft.protocol.network.connection.status.StatusConnectionStates
import de.bixilon.minosoft.util.DNSUtil import de.bixilon.minosoft.util.DNSUtil
import de.bixilon.minosoft.util.KUtil.thousands
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import de.bixilon.minosoft.util.delegate.watcher.entry.ListDelegateWatcher.Companion.watchListFX import de.bixilon.minosoft.util.delegate.watcher.entry.ListDelegateWatcher.Companion.watchListFX
import javafx.fxml.FXML import javafx.fxml.FXML

View File

@ -14,6 +14,7 @@
package de.bixilon.minosoft.gui.eros.main.play.server.card package de.bixilon.minosoft.gui.eros.main.play.server.card
import de.bixilon.kutil.concurrent.pool.DefaultThreadPool import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
import de.bixilon.kutil.primitive.IntUtil.thousands
import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.Minosoft
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.text.ChatComponent import de.bixilon.minosoft.data.text.ChatComponent
@ -31,7 +32,6 @@ import de.bixilon.minosoft.modding.event.events.connection.status.ServerStatusRe
import de.bixilon.minosoft.modding.event.events.connection.status.StatusConnectionStateChangeEvent import de.bixilon.minosoft.modding.event.events.connection.status.StatusConnectionStateChangeEvent
import de.bixilon.minosoft.modding.event.events.connection.status.StatusPongReceiveEvent import de.bixilon.minosoft.modding.event.events.connection.status.StatusPongReceiveEvent
import de.bixilon.minosoft.util.KUtil.text import de.bixilon.minosoft.util.KUtil.text
import de.bixilon.minosoft.util.KUtil.thousands
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import de.bixilon.minosoft.util.PixelImageView import de.bixilon.minosoft.util.PixelImageView
import javafx.fxml.FXML import javafx.fxml.FXML

View File

@ -13,7 +13,7 @@
package de.bixilon.minosoft.gui.eros.main.profiles package de.bixilon.minosoft.gui.eros.main.profiles
import de.bixilon.kutil.general.BooleanUtil.decide import de.bixilon.kutil.primitive.BooleanUtil.decide
import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.Minosoft
import de.bixilon.minosoft.config.profile.ProfileManager import de.bixilon.minosoft.config.profile.ProfileManager
import de.bixilon.minosoft.config.profile.profiles.Profile import de.bixilon.minosoft.config.profile.profiles.Profile

View File

@ -15,6 +15,7 @@ package de.bixilon.minosoft.gui.eros.util
import com.sun.javafx.util.WeakReferenceQueue import com.sun.javafx.util.WeakReferenceQueue
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.reflection.ReflectionUtil.setValue
import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.Minosoft
import de.bixilon.minosoft.config.profile.delegate.watcher.SimpleProfileDelegateWatcher.Companion.profileWatchFX import de.bixilon.minosoft.config.profile.delegate.watcher.SimpleProfileDelegateWatcher.Companion.profileWatchFX
import de.bixilon.minosoft.config.profile.profiles.eros.ErosProfileManager import de.bixilon.minosoft.config.profile.profiles.eros.ErosProfileManager
@ -22,7 +23,6 @@ import de.bixilon.minosoft.data.registries.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
import de.bixilon.minosoft.gui.eros.controller.JavaFXWindowController import de.bixilon.minosoft.gui.eros.controller.JavaFXWindowController
import de.bixilon.minosoft.util.KUtil.setValue
import javafx.application.HostServices import javafx.application.HostServices
import javafx.application.Platform import javafx.application.Platform
import javafx.css.StyleableProperty import javafx.css.StyleableProperty

View File

@ -15,9 +15,11 @@ package de.bixilon.minosoft.gui.rendering
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf
import de.bixilon.kutil.general.BooleanUtil.decide import de.bixilon.kutil.concurrent.queue.Queue
import de.bixilon.kutil.latch.CountUpAndDownLatch 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.time.TimeUtil
import de.bixilon.minosoft.config.key.KeyAction import de.bixilon.minosoft.config.key.KeyAction
import de.bixilon.minosoft.config.key.KeyBinding import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes import de.bixilon.minosoft.config.key.KeyCodes
@ -60,10 +62,8 @@ 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.terminal.RunConfiguration import de.bixilon.minosoft.terminal.RunConfiguration
import de.bixilon.minosoft.util.KUtil
import de.bixilon.minosoft.util.KUtil.format import de.bixilon.minosoft.util.KUtil.format
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import de.bixilon.minosoft.util.Queue
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
@ -123,7 +123,7 @@ class RenderWindow(
var tickCount = 0L var tickCount = 0L
var lastTickTimer = KUtil.time var lastTickTimer = TimeUtil.time
private var initialPositionReceived = false private var initialPositionReceived = false
@ -319,7 +319,7 @@ class RenderWindow(
renderSystem.clear(IntegratedBufferTypes.COLOR_BUFFER, IntegratedBufferTypes.DEPTH_BUFFER) renderSystem.clear(IntegratedBufferTypes.COLOR_BUFFER, IntegratedBufferTypes.DEPTH_BUFFER)
val currentTickTime = KUtil.time val currentTickTime = TimeUtil.time
if (currentTickTime - this.lastTickTimer > ProtocolDefinition.TICK_TIME) { if (currentTickTime - this.lastTickTimer > ProtocolDefinition.TICK_TIME) {
tickCount++ tickCount++
// inputHandler.currentKeyConsumer?.tick(tickCount) // inputHandler.currentKeyConsumer?.tick(tickCount)

View File

@ -14,6 +14,7 @@
package de.bixilon.minosoft.gui.rendering.camera.frustum package de.bixilon.minosoft.gui.rendering.camera.frustum
import de.bixilon.kutil.collections.CollectionUtil.get
import de.bixilon.kutil.enums.EnumUtil import de.bixilon.kutil.enums.EnumUtil
import de.bixilon.kutil.enums.ValuesEnum import de.bixilon.kutil.enums.ValuesEnum
import de.bixilon.minosoft.data.registries.AABB import de.bixilon.minosoft.data.registries.AABB
@ -21,7 +22,6 @@ import de.bixilon.minosoft.gui.rendering.RenderConstants
import de.bixilon.minosoft.gui.rendering.camera.MatrixHandler import de.bixilon.minosoft.gui.rendering.camera.MatrixHandler
import de.bixilon.minosoft.gui.rendering.util.VecUtil.of import de.bixilon.minosoft.gui.rendering.util.VecUtil.of
import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4Util.dot import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4Util.dot
import de.bixilon.minosoft.util.KUtil.get
import glm_.mat3x3.Mat3 import glm_.mat3x3.Mat3
import glm_.vec2.Vec2i import glm_.vec2.Vec2i
import glm_.vec3.Vec3 import glm_.vec3.Vec3

View File

@ -1,6 +1,6 @@
package de.bixilon.minosoft.gui.rendering.camera.target package de.bixilon.minosoft.gui.rendering.camera.target
import de.bixilon.kutil.general.BooleanUtil.decide import de.bixilon.kutil.primitive.BooleanUtil.decide
import de.bixilon.minosoft.data.player.LocalPlayerEntity import de.bixilon.minosoft.data.player.LocalPlayerEntity
import de.bixilon.minosoft.data.registries.VoxelShape import de.bixilon.minosoft.data.registries.VoxelShape
import de.bixilon.minosoft.data.registries.blocks.types.FluidBlock import de.bixilon.minosoft.data.registries.blocks.types.FluidBlock

View File

@ -13,8 +13,8 @@
package de.bixilon.minosoft.gui.rendering.font package de.bixilon.minosoft.gui.rendering.font
import de.bixilon.kutil.general.BooleanUtil.decide
import de.bixilon.kutil.math.MMath.ceil import de.bixilon.kutil.math.MMath.ceil
import de.bixilon.kutil.primitive.BooleanUtil.decide
import de.bixilon.minosoft.data.text.ChatColors import de.bixilon.minosoft.data.text.ChatColors
import de.bixilon.minosoft.data.text.PreChatFormattingCodes import de.bixilon.minosoft.data.text.PreChatFormattingCodes
import de.bixilon.minosoft.data.text.RGBColor import de.bixilon.minosoft.data.text.RGBColor

View File

@ -13,6 +13,7 @@
package de.bixilon.minosoft.gui.rendering.font package de.bixilon.minosoft.gui.rendering.font
import de.bixilon.kutil.check.CheckUtil.check
import de.bixilon.minosoft.assets.util.FileUtil.readJsonObject import de.bixilon.minosoft.assets.util.FileUtil.readJsonObject
import de.bixilon.minosoft.data.registries.factory.DefaultFactory import de.bixilon.minosoft.data.registries.factory.DefaultFactory
import de.bixilon.minosoft.gui.rendering.RenderWindow import de.bixilon.minosoft.gui.rendering.RenderWindow
@ -20,7 +21,6 @@ import de.bixilon.minosoft.gui.rendering.font.provider.BitmapFontProvider
import de.bixilon.minosoft.gui.rendering.font.provider.FontProvider import de.bixilon.minosoft.gui.rendering.font.provider.FontProvider
import de.bixilon.minosoft.gui.rendering.font.provider.FontProviderFactory import de.bixilon.minosoft.gui.rendering.font.provider.FontProviderFactory
import de.bixilon.minosoft.gui.rendering.font.provider.LegacyUnicodeFontProvider import de.bixilon.minosoft.gui.rendering.font.provider.LegacyUnicodeFontProvider
import de.bixilon.minosoft.util.KUtil.check
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.listCast import de.bixilon.minosoft.util.nbt.tag.NBTUtil.listCast

View File

@ -14,14 +14,14 @@
package de.bixilon.minosoft.gui.rendering.font.provider package de.bixilon.minosoft.gui.rendering.font.provider
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.json.JsonUtil.asJsonList
import de.bixilon.kutil.primitive.DoubleUtil.toDouble
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.gui.rendering.RenderConstants import de.bixilon.minosoft.gui.rendering.RenderConstants
import de.bixilon.minosoft.gui.rendering.RenderWindow import de.bixilon.minosoft.gui.rendering.RenderWindow
import de.bixilon.minosoft.gui.rendering.font.CharData import de.bixilon.minosoft.gui.rendering.font.CharData
import de.bixilon.minosoft.gui.rendering.font.Font import de.bixilon.minosoft.gui.rendering.font.Font
import de.bixilon.minosoft.gui.rendering.textures.TextureUtil.texture import de.bixilon.minosoft.gui.rendering.textures.TextureUtil.texture
import de.bixilon.minosoft.util.KUtil.asList
import de.bixilon.minosoft.util.KUtil.toDouble
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import glm_.vec2.Vec2 import glm_.vec2.Vec2
@ -35,7 +35,7 @@ class BitmapFontProvider(
private set private set
init { init {
val charRows = data["chars"].asList() val charRows = data["chars"].asJsonList()
val texture = renderWindow.textureManager.staticTextures.createTexture(data["file"].toResourceLocation().texture()) val texture = renderWindow.textureManager.staticTextures.createTexture(data["file"].toResourceLocation().texture())
texture.load(renderWindow.connection.assetsManager) texture.load(renderWindow.connection.assetsManager)

View File

@ -1,6 +1,6 @@
package de.bixilon.minosoft.gui.rendering.gui.elements.items package de.bixilon.minosoft.gui.rendering.gui.elements.items
import de.bixilon.kutil.general.BooleanUtil.decide import de.bixilon.kutil.primitive.BooleanUtil.decide
import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.inventory.ItemStack
import de.bixilon.minosoft.data.registries.items.block.BlockItem import de.bixilon.minosoft.data.registries.items.block.BlockItem
import de.bixilon.minosoft.data.text.ChatColors import de.bixilon.minosoft.data.text.ChatColors

View File

@ -13,7 +13,8 @@
package de.bixilon.minosoft.gui.rendering.gui.elements.text package de.bixilon.minosoft.gui.rendering.gui.elements.text
import de.bixilon.kutil.general.BooleanUtil.decide import de.bixilon.kutil.primitive.BooleanUtil.decide
import de.bixilon.kutil.time.TimeUtil
import de.bixilon.minosoft.data.text.RGBColor import de.bixilon.minosoft.data.text.RGBColor
import de.bixilon.minosoft.gui.rendering.RenderConstants import de.bixilon.minosoft.gui.rendering.RenderConstants
import de.bixilon.minosoft.gui.rendering.gui.elements.Element import de.bixilon.minosoft.gui.rendering.gui.elements.Element
@ -23,7 +24,6 @@ import de.bixilon.minosoft.gui.rendering.gui.hud.HUDRenderer
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexConsumer import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexConsumer
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexOptions import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexOptions
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.EMPTY import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.EMPTY
import de.bixilon.minosoft.util.KUtil
import glm_.vec2.Vec2i import glm_.vec2.Vec2i
class FadingTextElement( class FadingTextElement(
@ -44,7 +44,7 @@ class FadingTextElement(
if (hidden || !super.cacheEnabled) { if (hidden || !super.cacheEnabled) {
return false return false
} }
val time = KUtil.time val time = TimeUtil.time
return (time >= fadeInEndTime) && (time < fadeOutStartTime) return (time >= fadeInEndTime) && (time < fadeOutStartTime)
} }
set(value) { set(value) {
@ -78,7 +78,7 @@ class FadingTextElement(
} }
fun show() { fun show() {
val time = KUtil.time val time = TimeUtil.time
if (time in (fadeInEndTime + 1) until fadeOutStartTime) { if (time in (fadeInEndTime + 1) until fadeOutStartTime) {
fadeOutStartTime = time + stayTime fadeOutStartTime = time + stayTime
} else { } else {
@ -95,7 +95,7 @@ class FadingTextElement(
return return
} }
// ToDo: Eventually fade out when fading in // ToDo: Eventually fade out when fading in
val time = KUtil.time val time = TimeUtil.time
fadeInStartTime = -1L fadeInStartTime = -1L
fadeInEndTime = -1L fadeInEndTime = -1L
fadeOutStartTime = time fadeOutStartTime = time
@ -110,7 +110,7 @@ class FadingTextElement(
if (hidden) { if (hidden) {
return false return false
} }
val hidden = KUtil.time > fadeOutEndTime val hidden = TimeUtil.time > fadeOutEndTime
if (this.hidden != hidden) { if (this.hidden != hidden) {
this.hidden = hidden this.hidden = hidden
return true return true
@ -122,7 +122,7 @@ class FadingTextElement(
if (hidden) { if (hidden) {
return 0 return 0
} }
val time = KUtil.time val time = TimeUtil.time
if (time > fadeOutEndTime) { if (time > fadeOutEndTime) {
return 0 return 0
} }

View File

@ -13,7 +13,7 @@
package de.bixilon.minosoft.gui.rendering.gui.elements.text package de.bixilon.minosoft.gui.rendering.gui.elements.text
import de.bixilon.kutil.general.BooleanUtil.decide import de.bixilon.kutil.primitive.BooleanUtil.decide
import de.bixilon.minosoft.data.text.ChatComponent import de.bixilon.minosoft.data.text.ChatComponent
import de.bixilon.minosoft.data.text.RGBColor import de.bixilon.minosoft.data.text.RGBColor
import de.bixilon.minosoft.gui.rendering.RenderConstants import de.bixilon.minosoft.gui.rendering.RenderConstants

View File

@ -15,6 +15,7 @@ package de.bixilon.minosoft.gui.rendering.gui.elements.text
import de.bixilon.kutil.collections.CollectionUtil.synchronizedListOf import de.bixilon.kutil.collections.CollectionUtil.synchronizedListOf
import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedList import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedList
import de.bixilon.kutil.time.TimeUtil
import de.bixilon.minosoft.data.text.ChatComponent import de.bixilon.minosoft.data.text.ChatComponent
import de.bixilon.minosoft.gui.rendering.RenderConstants import de.bixilon.minosoft.gui.rendering.RenderConstants
import de.bixilon.minosoft.gui.rendering.font.Font import de.bixilon.minosoft.gui.rendering.font.Font
@ -25,7 +26,6 @@ import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexConsumer
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexOptions import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexOptions
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.EMPTY import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.EMPTY
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.max import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.max
import de.bixilon.minosoft.util.KUtil
import glm_.vec2.Vec2i import glm_.vec2.Vec2i
class TextFlowElement( class TextFlowElement(
@ -68,7 +68,7 @@ class TextFlowElement(
val visibleLines: MutableList<TextFlowLineElement> = mutableListOf() val visibleLines: MutableList<TextFlowLineElement> = mutableListOf()
val maxSize = maxSize val maxSize = maxSize
val maxLines = maxSize.y / Font.TOTAL_CHAR_HEIGHT val maxLines = maxSize.y / Font.TOTAL_CHAR_HEIGHT
val currentTime = KUtil.time val currentTime = TimeUtil.time
var textSize = Vec2i.EMPTY var textSize = Vec2i.EMPTY
@ -126,7 +126,7 @@ class TextFlowElement(
operator fun plusAssign(message: ChatComponent) = addMessage(message) operator fun plusAssign(message: ChatComponent) = addMessage(message)
private fun checkExpiredLines() { private fun checkExpiredLines() {
val currentTime = KUtil.time val currentTime = TimeUtil.time
for (line in visibleLines) { for (line in visibleLines) {
if (currentTime - line.text.addTime > messageExpireTime) { if (currentTime - line.text.addTime > messageExpireTime) {
@ -142,7 +142,7 @@ class TextFlowElement(
private data class TextFlowTextElement( private data class TextFlowTextElement(
val text: ChatComponent, val text: ChatComponent,
val addTime: Long = KUtil.time, val addTime: Long = TimeUtil.time,
) )
private data class TextFlowLineElement( private data class TextFlowLineElement(

View File

@ -16,6 +16,7 @@ package de.bixilon.minosoft.gui.rendering.gui.hud
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf
import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedMap import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedMap
import de.bixilon.kutil.time.TimeUtil
import de.bixilon.minosoft.config.key.KeyAction import de.bixilon.minosoft.config.key.KeyAction
import de.bixilon.minosoft.config.key.KeyBinding import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes import de.bixilon.minosoft.config.key.KeyCodes
@ -47,7 +48,6 @@ import de.bixilon.minosoft.gui.rendering.system.base.phases.OtherDrawable
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.protocol.ProtocolDefinition import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.KUtil
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import glm_.glm import glm_.glm
import glm_.mat4x4.Mat4 import glm_.mat4x4.Mat4
@ -154,7 +154,7 @@ class HUDRenderer(
override fun drawOther() { override fun drawOther() {
val hudElements = hudElements.toSynchronizedMap().values val hudElements = hudElements.toSynchronizedMap().values
val time = KUtil.time val time = TimeUtil.time
if (time - lastTickTime > ProtocolDefinition.TICK_TIME) { if (time - lastTickTime > ProtocolDefinition.TICK_TIME) {
for (element in hudElements) { for (element in hudElements) {
if (!element.enabled) { if (!element.enabled) {

View File

@ -13,12 +13,13 @@
package de.bixilon.minosoft.gui.rendering.gui.hud.atlas package de.bixilon.minosoft.gui.rendering.gui.hud.atlas
import de.bixilon.kutil.json.JsonUtil.asJsonObject
import de.bixilon.kutil.json.JsonUtil.toJsonObject
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.assets.util.FileUtil.readJsonObject import de.bixilon.minosoft.assets.util.FileUtil.readJsonObject
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.gui.rendering.gui.hud.HUDRenderer import de.bixilon.minosoft.gui.rendering.gui.hud.HUDRenderer
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.toVec2i import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.toVec2i
import de.bixilon.minosoft.util.KUtil.mapCast
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import glm_.vec2.Vec2 import glm_.vec2.Vec2
import glm_.vec2.Vec2i import glm_.vec2.Vec2i
@ -49,16 +50,16 @@ class HUDAtlasManager(private val hudRenderer: HUDRenderer) {
// can not find version that matches our one // can not find version that matches our one
continue continue
} }
val versionData = versions[versionToUse.toString()]?.mapCast()!! val versionData = versions[versionToUse.toString()].asJsonObject()
val texture = hudRenderer.renderWindow.textureManager.staticTextures.createTexture(versionData["texture"].toResourceLocation()) val texture = hudRenderer.renderWindow.textureManager.staticTextures.createTexture(versionData["texture"].toResourceLocation())
val start = versionData["start"].toVec2i() val start = versionData["start"].toVec2i()
val end = versionData["end"].toVec2i() val end = versionData["end"].toVec2i()
val slots: MutableMap<Int, Vec2iBinding> = mutableMapOf() val slots: MutableMap<Int, Vec2iBinding> = mutableMapOf()
versionData["slots"]?.mapCast()?.let { versionData["slots"].toJsonObject()?.let {
for ((slotId, slotData) in it) { for ((slotId, slotData) in it) {
val slot = slotData.mapCast()!! val slot = slotData.asJsonObject()
slots[slotId.toInt()] = Vec2iBinding( slots[slotId.toInt()] = Vec2iBinding(
start = slot["start"].toVec2i(), start = slot["start"].toVec2i(),
end = slot["end"].toVec2i(), end = slot["end"].toVec2i(),

View File

@ -14,8 +14,8 @@
package de.bixilon.minosoft.gui.rendering.gui.hud.elements.hotbar package de.bixilon.minosoft.gui.rendering.gui.hud.elements.hotbar
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.general.BooleanUtil.decide
import de.bixilon.kutil.math.MMath.round10 import de.bixilon.kutil.math.MMath.round10
import de.bixilon.kutil.primitive.BooleanUtil.decide
import de.bixilon.minosoft.data.registries.effects.DefaultStatusEffects import de.bixilon.minosoft.data.registries.effects.DefaultStatusEffects
import de.bixilon.minosoft.data.registries.effects.attributes.DefaultStatusEffectAttributeNames import de.bixilon.minosoft.data.registries.effects.attributes.DefaultStatusEffectAttributeNames
import de.bixilon.minosoft.data.text.BaseComponent import de.bixilon.minosoft.data.text.BaseComponent

View File

@ -13,8 +13,8 @@
package de.bixilon.minosoft.gui.rendering.gui.hud.elements.hotbar package de.bixilon.minosoft.gui.rendering.gui.hud.elements.hotbar
import de.bixilon.kutil.general.BooleanUtil.decide
import de.bixilon.kutil.math.MMath.round10 import de.bixilon.kutil.math.MMath.round10
import de.bixilon.kutil.primitive.BooleanUtil.decide
import de.bixilon.minosoft.data.entities.entities.LivingEntity import de.bixilon.minosoft.data.entities.entities.LivingEntity
import de.bixilon.minosoft.data.registries.effects.attributes.DefaultStatusEffectAttributeNames import de.bixilon.minosoft.data.registries.effects.attributes.DefaultStatusEffectAttributeNames
import de.bixilon.minosoft.data.text.ChatComponent import de.bixilon.minosoft.data.text.ChatComponent

View File

@ -14,6 +14,7 @@
package de.bixilon.minosoft.gui.rendering.gui.hud.elements.other package de.bixilon.minosoft.gui.rendering.gui.hud.elements.other
import de.bixilon.kutil.math.MMath.round10 import de.bixilon.kutil.math.MMath.round10
import de.bixilon.kutil.unit.UnitFormatter.formatBytes
import de.bixilon.minosoft.config.key.KeyAction import de.bixilon.minosoft.config.key.KeyAction
import de.bixilon.minosoft.config.key.KeyBinding import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes import de.bixilon.minosoft.config.key.KeyCodes
@ -42,14 +43,12 @@ import de.bixilon.minosoft.gui.rendering.world.WorldRenderer
import de.bixilon.minosoft.modding.event.events.DifficultyChangeEvent import de.bixilon.minosoft.modding.event.events.DifficultyChangeEvent
import de.bixilon.minosoft.modding.event.events.TimeChangeEvent import de.bixilon.minosoft.modding.event.events.TimeChangeEvent
import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker
import de.bixilon.minosoft.modding.loading.ModLoader
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.terminal.RunConfiguration import de.bixilon.minosoft.terminal.RunConfiguration
import de.bixilon.minosoft.util.GitInfo import de.bixilon.minosoft.util.GitInfo
import de.bixilon.minosoft.util.KUtil.format import de.bixilon.minosoft.util.KUtil.format
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import de.bixilon.minosoft.util.SystemInformation import de.bixilon.minosoft.util.SystemInformation
import de.bixilon.minosoft.util.UnitFormatter.formatBytes
import glm_.vec2.Vec2i import glm_.vec2.Vec2i
import glm_.vec4.Vec4i import glm_.vec4.Vec4i
import kotlin.math.abs import kotlin.math.abs
@ -223,7 +222,7 @@ class DebugHUDElement(hudRenderer: HUDRenderer) : LayoutedHUDElement<GridLayout>
layout += LineSpacerElement(hudRenderer) layout += LineSpacerElement(hudRenderer)
layout += TextElement(hudRenderer, "Mods ${ModLoader.MOD_MAP.size}x loaded, ${connection.size}x listeners", HorizontalAlignments.RIGHT) layout += TextElement(hudRenderer, "${connection.size}x listeners", HorizontalAlignments.RIGHT)
layout += LineSpacerElement(hudRenderer) layout += LineSpacerElement(hudRenderer)

View File

@ -15,7 +15,7 @@ package de.bixilon.minosoft.gui.rendering.gui.hud.elements.tab
import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf
import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedMap import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedMap
import de.bixilon.kutil.general.BooleanUtil.decide import de.bixilon.kutil.primitive.BooleanUtil.decide
import de.bixilon.minosoft.data.text.RGBColor import de.bixilon.minosoft.data.text.RGBColor
import de.bixilon.minosoft.gui.rendering.gui.elements.Element import de.bixilon.minosoft.gui.rendering.gui.elements.Element
import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments

View File

@ -14,6 +14,7 @@
package de.bixilon.minosoft.gui.rendering.input.interaction package de.bixilon.minosoft.gui.rendering.input.interaction
import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf
import de.bixilon.kutil.time.TimeUtil
import de.bixilon.minosoft.config.key.KeyAction import de.bixilon.minosoft.config.key.KeyAction
import de.bixilon.minosoft.config.key.KeyBinding import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes import de.bixilon.minosoft.config.key.KeyCodes
@ -31,7 +32,6 @@ import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker
import de.bixilon.minosoft.protocol.packets.c2s.play.ArmSwingC2SP import de.bixilon.minosoft.protocol.packets.c2s.play.ArmSwingC2SP
import de.bixilon.minosoft.protocol.packets.c2s.play.PlayerActionC2SP import de.bixilon.minosoft.protocol.packets.c2s.play.PlayerActionC2SP
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.KUtil
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import glm_.pow import glm_.pow
import glm_.vec3.Vec3i import glm_.vec3.Vec3i
@ -77,7 +77,7 @@ class BreakInteractionHandler(
} }
private fun swingArm() { private fun swingArm() {
val currentTime = KUtil.time val currentTime = TimeUtil.time
if (currentTime - lastSwing <= ProtocolDefinition.TICK_TIME) { if (currentTime - lastSwing <= ProtocolDefinition.TICK_TIME) {
return return
} }
@ -86,7 +86,7 @@ class BreakInteractionHandler(
} }
private fun checkBreaking(isKeyDown: Boolean, deltaTime: Double): Boolean { private fun checkBreaking(isKeyDown: Boolean, deltaTime: Double): Boolean {
val currentTime = KUtil.time val currentTime = TimeUtil.time
if (!isKeyDown) { if (!isKeyDown) {
creativeLastHoldBreakTime = 0L creativeLastHoldBreakTime = 0L

View File

@ -1,12 +1,12 @@
package de.bixilon.minosoft.gui.rendering.input.interaction package de.bixilon.minosoft.gui.rendering.input.interaction
import de.bixilon.kutil.rate.RateLimiter import de.bixilon.kutil.rate.RateLimiter
import de.bixilon.kutil.time.TimeUtil
import de.bixilon.minosoft.config.key.KeyAction import de.bixilon.minosoft.config.key.KeyAction
import de.bixilon.minosoft.config.key.KeyBinding import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes import de.bixilon.minosoft.config.key.KeyCodes
import de.bixilon.minosoft.gui.rendering.RenderWindow import de.bixilon.minosoft.gui.rendering.RenderWindow
import de.bixilon.minosoft.protocol.packets.c2s.play.PlayerActionC2SP import de.bixilon.minosoft.protocol.packets.c2s.play.PlayerActionC2SP
import de.bixilon.minosoft.util.KUtil
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
class DropInteractionManager( class DropInteractionManager(
@ -33,7 +33,7 @@ class DropInteractionManager(
fun dropItem(stack: Boolean) { fun dropItem(stack: Boolean) {
val time = KUtil.time val time = TimeUtil.time
val type = if (stack) { val type = if (stack) {
connection.player.inventory.getHotbarSlot()?.count = 0 connection.player.inventory.getHotbarSlot()?.count = 0
PlayerActionC2SP.Actions.DROP_ITEM_STACK PlayerActionC2SP.Actions.DROP_ITEM_STACK

View File

@ -13,6 +13,7 @@
package de.bixilon.minosoft.gui.rendering.input.interaction package de.bixilon.minosoft.gui.rendering.input.interaction
import de.bixilon.kutil.time.TimeUtil
import de.bixilon.minosoft.config.key.KeyAction import de.bixilon.minosoft.config.key.KeyAction
import de.bixilon.minosoft.config.key.KeyBinding import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes import de.bixilon.minosoft.config.key.KeyCodes
@ -30,7 +31,6 @@ import de.bixilon.minosoft.protocol.packets.c2s.play.PositionAndRotationC2SP
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.interact.EntityInteractAtC2SP import de.bixilon.minosoft.protocol.packets.c2s.play.entity.interact.EntityInteractAtC2SP
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.interact.EntityInteractC2SP import de.bixilon.minosoft.protocol.packets.c2s.play.entity.interact.EntityInteractC2SP
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.KUtil
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import glm_.vec3.Vec3 import glm_.vec3.Vec3
@ -217,7 +217,7 @@ class InteractInteractionHandler(
} }
fun draw(delta: Double) { fun draw(delta: Double) {
val time = KUtil.time val time = TimeUtil.time
if (time - lastUse < ProtocolDefinition.TICK_TIME) { if (time - lastUse < ProtocolDefinition.TICK_TIME) {
return return
} }

View File

@ -13,6 +13,7 @@
package de.bixilon.minosoft.gui.rendering.input.key package de.bixilon.minosoft.gui.rendering.input.key
import de.bixilon.kutil.time.TimeUtil
import de.bixilon.minosoft.config.StaticConfiguration import de.bixilon.minosoft.config.StaticConfiguration
import de.bixilon.minosoft.config.key.KeyAction import de.bixilon.minosoft.config.key.KeyAction
import de.bixilon.minosoft.config.key.KeyBinding import de.bixilon.minosoft.config.key.KeyBinding
@ -30,7 +31,6 @@ import de.bixilon.minosoft.gui.rendering.system.window.CursorModes
import de.bixilon.minosoft.gui.rendering.system.window.KeyChangeTypes import de.bixilon.minosoft.gui.rendering.system.window.KeyChangeTypes
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.util.KUtil
import de.bixilon.minosoft.util.KUtil.format import de.bixilon.minosoft.util.KUtil.format
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
@ -110,7 +110,7 @@ class RenderWindowInputHandler(
return return
} }
} }
val currentTime = KUtil.time val currentTime = TimeUtil.time
if (keyDown) { if (keyDown) {
keysDown += keyCode keysDown += keyCode
@ -206,7 +206,7 @@ class RenderWindowInputHandler(
} }
// Log.debug("Changing $resourceLocation because of $keyCode -> $thisKeyBindingDown") // Log.debug("Changing $resourceLocation because of $keyCode -> $thisKeyBindingDown")
pair.lastChange = KUtil.time pair.lastChange = TimeUtil.time
for (callback in pair.callback) { for (callback in pair.callback) {
callback(thisKeyBindingDown) callback(thisKeyBindingDown)
} }

View File

@ -13,9 +13,9 @@
package de.bixilon.minosoft.gui.rendering.models.unbaked package de.bixilon.minosoft.gui.rendering.models.unbaked
import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
import de.bixilon.minosoft.gui.rendering.RenderWindow import de.bixilon.minosoft.gui.rendering.RenderWindow
import de.bixilon.minosoft.gui.rendering.models.baked.BakedModel import de.bixilon.minosoft.gui.rendering.models.baked.BakedModel
import de.bixilon.minosoft.util.KUtil.toBoolean
class UnbakedBlockModel( class UnbakedBlockModel(
parent: GenericUnbakedModel?, parent: GenericUnbakedModel?,

View File

@ -14,6 +14,8 @@
package de.bixilon.minosoft.gui.rendering.models.unbaked.block package de.bixilon.minosoft.gui.rendering.models.unbaked.block
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.Axes import de.bixilon.minosoft.data.Axes
import de.bixilon.minosoft.data.direction.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.gui.rendering.RenderWindow import de.bixilon.minosoft.gui.rendering.RenderWindow
@ -31,8 +33,6 @@ import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.rad
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.toVec2iN import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.toVec2iN
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.get import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.get
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.rotateAssign import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.rotateAssign
import de.bixilon.minosoft.util.KUtil.toBoolean
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import glm_.func.rad import glm_.func.rad
import glm_.vec2.Vec2 import glm_.vec2.Vec2

View File

@ -14,9 +14,9 @@
package de.bixilon.minosoft.gui.rendering.models.unbaked.element package de.bixilon.minosoft.gui.rendering.models.unbaked.element
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
import de.bixilon.minosoft.data.direction.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.toVec3 import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.toVec3
import de.bixilon.minosoft.util.KUtil.toBoolean
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
import glm_.vec3.Vec3 import glm_.vec3.Vec3

View File

@ -13,9 +13,9 @@
package de.bixilon.minosoft.gui.rendering.models.unbaked.element package de.bixilon.minosoft.gui.rendering.models.unbaked.element
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.direction.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.gui.rendering.models.unbaked.element.UnbakedElement.Companion.BLOCK_RESOLUTION import de.bixilon.minosoft.gui.rendering.models.unbaked.element.UnbakedElement.Companion.BLOCK_RESOLUTION
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.listCast import de.bixilon.minosoft.util.nbt.tag.NBTUtil.listCast
import glm_.vec2.Vec2 import glm_.vec2.Vec2

View File

@ -13,10 +13,10 @@
package de.bixilon.minosoft.gui.rendering.models.unbaked.element package de.bixilon.minosoft.gui.rendering.models.unbaked.element
import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
import de.bixilon.kutil.primitive.FloatUtil.toFloat
import de.bixilon.minosoft.data.Axes import de.bixilon.minosoft.data.Axes
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.toVec3 import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.toVec3
import de.bixilon.minosoft.util.KUtil.toBoolean
import de.bixilon.minosoft.util.KUtil.toFloat
import glm_.vec3.Vec3 import glm_.vec3.Vec3
data class UnbakedElementRotation( data class UnbakedElementRotation(

View File

@ -16,6 +16,7 @@ package de.bixilon.minosoft.gui.rendering.particle
import de.bixilon.kutil.concurrent.lock.ReadWriteLock import de.bixilon.kutil.concurrent.lock.ReadWriteLock
import de.bixilon.kutil.concurrent.time.TimeWorker import de.bixilon.kutil.concurrent.time.TimeWorker
import de.bixilon.kutil.concurrent.time.TimeWorkerTask import de.bixilon.kutil.concurrent.time.TimeWorkerTask
import de.bixilon.kutil.time.TimeUtil
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.gui.rendering.* import de.bixilon.minosoft.gui.rendering.*
@ -31,7 +32,6 @@ 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.network.connection.play.PlayConnectionStates.Companion.disconnected import de.bixilon.minosoft.protocol.network.connection.play.PlayConnectionStates.Companion.disconnected
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.KUtil
import de.bixilon.minosoft.util.chunk.ChunkUtil.isInViewDistance import de.bixilon.minosoft.util.chunk.ChunkUtil.isInViewDistance
import de.bixilon.minosoft.util.collections.floats.DirectArrayFloatList import de.bixilon.minosoft.util.collections.floats.DirectArrayFloatList
import glm_.mat4x4.Mat4 import glm_.mat4x4.Mat4
@ -151,7 +151,7 @@ class ParticleRenderer(
particlesLock.acquire() particlesLock.acquire()
try { try {
val time = KUtil.time val time = TimeUtil.time
for (particle in particles) { for (particle in particles) {
if (!particle.chunkPosition.isInViewDistance(particleViewDistance, cameraPosition)) { if (!particle.chunkPosition.isInViewDistance(particleViewDistance, cameraPosition)) {
particle.dead = true particle.dead = true
@ -219,7 +219,7 @@ class ParticleRenderer(
particlesLock.acquire() particlesLock.acquire()
val time = KUtil.time val time = TimeUtil.time
for (particle in particles) { for (particle in particles) {
if (particle.dead) { if (particle.dead) {
continue continue

View File

@ -13,6 +13,7 @@
package de.bixilon.minosoft.gui.rendering.particle.types package de.bixilon.minosoft.gui.rendering.particle.types
import de.bixilon.kutil.time.TimeUtil
import de.bixilon.minosoft.data.physics.PhysicsEntity import de.bixilon.minosoft.data.physics.PhysicsEntity
import de.bixilon.minosoft.data.registries.AABB import de.bixilon.minosoft.data.registries.AABB
import de.bixilon.minosoft.data.registries.particle.data.ParticleData import de.bixilon.minosoft.data.registries.particle.data.ParticleData
@ -25,7 +26,6 @@ import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.EMPTY
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.KUtil
import glm_.vec2.Vec2i import glm_.vec2.Vec2i
import glm_.vec3.Vec3 import glm_.vec3.Vec3
import glm_.vec3.Vec3d import glm_.vec3.Vec3d
@ -58,7 +58,7 @@ abstract class Particle(
// moving // moving
val cameraPosition: Vec3d val cameraPosition: Vec3d
get() = getCameraPosition(KUtil.time) get() = getCameraPosition(TimeUtil.time)
final override val velocity: Vec3d = Vec3d(velocity) final override val velocity: Vec3d = Vec3d(velocity)
var previousPosition = position var previousPosition = position

Some files were not shown because too many files have changed in this diff Show More