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
```java
package de.bixilon.example.mod.main;
import de.bixilon.minosoft.modding.MinosoftMod;
import de.bixilon.minosoft.modding.loading.ModPhases;
public class TestMod extends MinosoftMod {
public boolean start(ModPhases phase) {
if (phase == ModPhases.BOOTING) {
getLogger().info("Hello world!");
public boolean start(ModPhases phase) {
if (phase == ModPhases.BOOTING) {
getLogger().info("Hello world!");
}
return true;
}
return true;
}
}
```
Your `mod.json` can look like this

View File

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

View File

@ -16,8 +16,9 @@ package de.bixilon.minosoft
import de.bixilon.kutil.concurrent.pool.ThreadPool
import de.bixilon.kutil.concurrent.worker.TaskWorker
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.os.OSUtil
import de.bixilon.minosoft.assets.file.ResourcesAssetsUtil
import de.bixilon.minosoft.assets.properties.version.AssetsVersionProperties
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.modding.event.events.FinishInitializingEvent
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.ProtocolDefinition
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.Util
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.LogLevels
import de.bixilon.minosoft.util.logging.LogMessageType
@ -111,8 +110,6 @@ object Minosoft {
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 = {
LANServerListener.listen()

View File

@ -13,12 +13,12 @@
package de.bixilon.minosoft.assets.directory
import de.bixilon.kutil.file.FileUtil.slashPath
import de.bixilon.kutil.latch.CountUpAndDownLatch
import de.bixilon.minosoft.assets.AssetsManager
import de.bixilon.minosoft.assets.util.FileAssetsUtil.toAssetName
import de.bixilon.minosoft.assets.util.FileUtil
import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.util.KUtil.slashPath
import java.io.File
import java.io.FileNotFoundException
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.ThreadPoolRunnable
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.util.FileAssetsUtil
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.data.registries.ResourceLocation
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.json.Jackson
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.ZstdOutputStream
import de.bixilon.kutil.hex.HexUtil.isHexString
import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.terminal.RunConfiguration
import de.bixilon.minosoft.util.KUtil.isHexString
import de.bixilon.minosoft.util.Util
import java.io.*
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.time.TimeWorker
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.account.AccountProfileManager
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.gui.eros.crash.ErosCrashReport.Companion.crash
import de.bixilon.minosoft.terminal.RunConfiguration
import de.bixilon.minosoft.util.KUtil
import de.bixilon.minosoft.util.Util
import de.bixilon.minosoft.util.json.Jackson
import java.io.File
@ -90,7 +90,7 @@ object GlobalProfileManager {
val data: Map<String, String> = Jackson.MAPPER.convertValue(selectedProfiles.original, SELECTED_PROFILES_TYPE)
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
} catch (exception: Exception) {
exception.crash()

View File

@ -2,6 +2,11 @@ package de.bixilon.minosoft.config.profile
import com.google.common.collect.HashBiMap
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.ProfileDelegate
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.gui.eros.crash.ErosCrashReport.Companion.crash
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.filewatcher.FileWatcher
import de.bixilon.minosoft.util.filewatcher.FileWatcherService
import de.bixilon.minosoft.util.json.Jackson
import de.bixilon.minosoft.util.logging.Log
import de.bixilon.minosoft.util.logging.LogLevels
@ -183,7 +184,7 @@ interface ProfileManager<T : Profile> {
val profileFile = File(getPath(profile.name))
profile.ignoreNextReload = true
KUtil.safeSaveToFile(profileFile, jsonString)
FileUtil.safeSaveToFile(profileFile, jsonString)
profile.saved = true
} catch (exception: Exception) {
exception.printStackTrace()
@ -237,7 +238,7 @@ interface ProfileManager<T : Profile> {
fun readAndMigrate(path: String): Pair<Boolean, MutableMap<String, Any?>?> {
var saveFile = false
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) {
json = Jackson.MAPPER.readValue(jsonString, Jackson.JSON_MAP_TYPE)!!
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.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.AccountProfileManager
import de.bixilon.minosoft.config.profile.profiles.eros.ErosProfileManager.delegate
import de.bixilon.minosoft.config.profile.profiles.eros.ErosProfileManager.mapDelegate
import de.bixilon.minosoft.data.language.LanguageManager
import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.util.KUtil.fullName
import java.util.*
class GeneralC {

View File

@ -13,8 +13,8 @@
package de.bixilon.minosoft.data.abilities
import de.bixilon.kutil.time.TimeUtil
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.KUtil
data class ItemCooldown(
val start: Long,
@ -23,5 +23,5 @@ data class ItemCooldown(
val end: Long = start + (time * ProtocolDefinition.TICK_TIME)
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 de.bixilon.kutil.cast.CastUtil.nullCast
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.player.properties.PlayerProperties
import de.bixilon.minosoft.data.registries.CompanionResourceLocation
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.account.AccountUtil
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)" }
val uuid = response.body["selectedProfile"].asCompound()["id"].toString().asUUID()
val uuid = response.body["selectedProfile"].asCompound()["id"].toString().toUUID()
return MojangAccount(
id = response.body["user"].asCompound()["id"].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.protocol.InByteBuffer;
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition;
import de.bixilon.minosoft.util.Util;
import java.util.HashMap;
import java.util.Map;
@ -101,7 +100,8 @@ public class EntityParser extends CommandParser {
throw new PlayerOnlyEntityCommandParseException(stringReader, value);
}
try {
return Util.getUUIDFromString(value);
// return Util.getUUIDFromString(value);
throw new IllegalArgumentException("TODO");
} catch (Exception ignored) {
}
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.properties.ParserProperties
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.Util
import java.util.*
object UUIDParser : CommandParser() {
@ -24,7 +23,7 @@ object UUIDParser : CommandParser() {
override fun parse(connection: PlayConnection, properties: ParserProperties?, stringReader: CommandStringReader): UUID {
val argument = stringReader.readString()
try {
return Util.getUUIDFromString(argument)
return TODO() // Util.getUUIDFromString(argument)
} catch (exception: IllegalArgumentException) {
throw UUIDCommandParseException(stringReader, argument, exception)
}

View File

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

View File

@ -14,6 +14,8 @@
package de.bixilon.minosoft.data.entities.block
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.inventory.ItemStack
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.particle.types.render.texture.simple.fire.SmokeParticle
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 glm_.vec3.Vec3d
import glm_.vec3.Vec3i

View File

@ -13,6 +13,7 @@
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.blocks.BlockState
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.vec.vec3.Vec3dUtil.EMPTY
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.toInt
import glm_.vec3.Vec3d
import glm_.vec3.Vec3i
import kotlin.random.Random

View File

@ -13,6 +13,7 @@
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.ResourceLocation
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.util.VecUtil.toVec3d
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.KUtil.toResourceLocation
import glm_.vec3.Vec3d
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.synchronizedSetOf
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.EntityRotation
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.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.KUtil
import glm_.func.common.floor
import glm_.vec2.Vec2
import glm_.vec3.Vec3
@ -346,7 +346,7 @@ abstract class Entity(
@Synchronized
fun tick() {
val currentTime = KUtil.time
val currentTime = TimeUtil.time
if (lastFakeTickTime == -1L) {
lastFakeTickTime = currentTime
return

View File

@ -12,6 +12,7 @@
*/
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.EntityRotation
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.util.VecUtil.horizontal
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.chance
import glm_.vec3.Vec3d
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.toSynchronizedList
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.inventory.ItemNBTValues.DISPLAY_COLOR_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.util.BitByte.isBit
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.getAndRemove
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.listCast

View File

@ -14,6 +14,7 @@
package de.bixilon.minosoft.data.language
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.util.FileUtil.readAsString
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.TextComponent
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
import de.bixilon.minosoft.util.KUtil.tryCatch
import java.io.FileNotFoundException
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.collections.CollectionUtil.synchronizedMapOf
import de.bixilon.kutil.general.BooleanUtil.decide
import de.bixilon.kutil.math.MMath.clamp
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.abilities.Gamemodes
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.s2c.play.TagsS2CP
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.Previous
import glm_.func.cos
@ -218,7 +218,7 @@ class LocalPlayerEntity(
if (connection.profiles.rendering.movement.disablePacketSending) {
return
}
val currentTime = KUtil.time
val currentTime = TimeUtil.time
val isSprinting = isSprinting
if (isSprinting != lastSprinting) {
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
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.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 java.net.URL
import java.util.*
@ -24,7 +24,7 @@ class PlayerProperties(
var textures: PlayerTextures? = null
data["properties"]?.listCast()?.let {
data["properties"]?.toJsonList()?.let {
for (property in it) {
check(property is Map<*, *>)
when (val name = property["name"]) {

View File

@ -1,9 +1,9 @@
package de.bixilon.minosoft.data.player.properties.textures
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.FileUtil
import de.bixilon.minosoft.util.KUtil.check
import java.net.URL
open class PlayerTexture(
@ -14,7 +14,7 @@ open class PlayerTexture(
private set
init {
url.check()
url.checkWeb()
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.module.kotlin.convertValue
import de.bixilon.minosoft.util.KUtil.toLong
import de.bixilon.minosoft.util.Util
import de.bixilon.kutil.primitive.LongUtil.toLong
import de.bixilon.kutil.uuid.UUIDUtil.toUUID
import de.bixilon.minosoft.util.YggdrasilUtil
import de.bixilon.minosoft.util.json.Jackson
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
@ -28,7 +28,7 @@ class PlayerTextures(
val textures = json["textures"]?.compoundCast()
return PlayerTextures(
name = json["profileName"]?.toString(),
uuid = json["profileId"]?.toString()?.let { Util.getUUIDFromString(it) },
uuid = json["profileId"]?.toString()?.toUUID(),
date = json["timestamp"]?.toLong()?.let { Date(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) },

View File

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

View File

@ -13,8 +13,9 @@
package de.bixilon.minosoft.data.registries.biomes
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.primitive.FloatUtil.toFloat
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.registries.Registries
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.tint.TintManager
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.KUtil.toInt
import java.util.*
data class Biome(
@ -63,10 +63,10 @@ data class Biome(
check(registries != null) { "Registries is null!" }
return Biome(
resourceLocation = resourceLocation,
depth = data["depth"]?.unsafeCast<Float>() ?: 0.0f,
scale = data["scale"]?.unsafeCast<Float>() ?: 0.0f,
temperature = data["temperature"]?.unsafeCast<Float>() ?: 0.0f,
downfall = data["downfall"]?.unsafeCast<Float>() ?: 0.0f,
depth = data["depth"]?.toFloat() ?: 0.0f,
scale = data["scale"]?.toFloat() ?: 0.0f,
temperature = data["temperature"]?.toFloat() ?: 0.0f,
downfall = data["downfall"]?.toFloat() ?: 0.0f,
waterColor = TintManager.getJsonColor(data["water_color"]?.toInt() ?: 0),
waterFogColor = TintManager.getJsonColor(data["water_fog_color"]?.toInt() ?: 0),
category = registries.biomeCategoryRegistry[data["category"]?.toInt() ?: -1] ?: DEFAULT_CATEGORY,

View File

@ -13,6 +13,9 @@
package de.bixilon.minosoft.data.registries.blocks
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.VoxelShape
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.registries.Registries
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 java.util.*
@ -136,15 +137,15 @@ data class BlockState(
collisionShape = collisionShape,
occlusionShape = occlusionShape,
outlineShape = outlineShape,
hardness = data["hardness"]?.unsafeCast<Float>() ?: 1.0f,
hardness = data["hardness"]?.toFloat() ?: 1.0f,
requiresTool = data["requires_tool"]?.toBoolean() ?: material.soft,
breakSoundEvent = data["break_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] },
hitSoundEvent = data["hit_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,
soundEventPitch = data["sound_type_pitch"]?.unsafeCast<Float>() ?: 1.0f,
soundEventVolume = data["sound_type_volume"]?.toFloat() ?: 1.0f,
soundEventPitch = data["sound_type_pitch"]?.toFloat() ?: 1.0f,
)
}

View File

@ -13,6 +13,7 @@
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.BlockEntityFactory
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.ResourceLocationDeserializer
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.listCast
data class BlockEntityType(
override val resourceLocation: ResourceLocation,
@ -42,7 +42,7 @@ data class BlockEntityType(
val blocks: MutableSet<Block> = mutableSetOf()
for (block in data["blocks"]?.listCast()!!) {
for (block in data["blocks"]?.toJsonList()!!) {
blocks += registries.blockRegistry[block] ?: continue
}

View File

@ -13,7 +13,7 @@
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 {

View File

@ -13,7 +13,7 @@
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 {

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.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.entities.Entity
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.tint.TintProvider
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 glm_.vec3.Vec3i
import kotlin.random.Random
@ -46,7 +47,7 @@ open class Block(
registries: Registries,
data: Map<String, Any>,
) : 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 tint: ResourceLocation? = data["tint"].nullCast<String>()?.let { ResourceLocation(it) }
open var blockEntityType: BlockEntityType? = null
@ -119,7 +120,7 @@ open class Block(
val properties: MutableMap<BlockProperties, MutableSet<Any>> = mutableMapOf()
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!" }
val state = BlockState.deserialize(block, registries, stateJson.asCompound())
registries.blockStateRegistry[stateId.toInt()] = state

View File

@ -13,6 +13,8 @@
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.player.Hands
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.noise
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 glm_.vec3.Vec3
import glm_.vec3.Vec3d

View File

@ -13,6 +13,7 @@
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.inventory.ItemStack
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.util.vec.vec3.Vec3dUtil.EMPTY
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.chance
import glm_.vec3.Vec3d
import glm_.vec3.Vec3i
import kotlin.random.Random

View File

@ -1,12 +1,12 @@
package de.bixilon.minosoft.data.registries.dimension
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.gui.rendering.util.VecUtil
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
data class DimensionProperties(
@ -59,7 +59,7 @@ data class DimensionProperties(
return DimensionProperties(
piglinSafe = data["piglin_safe"]?.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"),
respawnAnchorWorks = data["respawn_anchor_works"]?.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
import de.bixilon.minosoft.util.KUtil.asUUID
import de.bixilon.kutil.uuid.UUIDUtil.toUUID
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
import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.minosoft.util.Util
import de.bixilon.kutil.uuid.UUIDUtil.toUUID
import java.util.*
data class EntityAttributeModifier(
@ -30,7 +30,7 @@ data class EntityAttributeModifier(
fun deserialize(data: Map<String, Any>): EntityAttributeModifier {
return EntityAttributeModifier(
name = data["name"].unsafeCast(),
uuid = Util.getUUIDFromString(data["uuid"].unsafeCast()),
uuid = data["uuid"].toString().toUUID(),
amount = data["amount"].unsafeCast(),
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.unsafeCast
import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
import de.bixilon.minosoft.data.DefaultEntityFactories
import de.bixilon.minosoft.data.entities.EntityMetaDataFields
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.datafixer.EntityAttributeFixer.fix
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.nbt.tag.NBTUtil.compoundCast
import glm_.vec3.Vec3d

View File

@ -13,7 +13,8 @@
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.player.LocalPlayerEntity
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.toVec3d
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.chance
import de.bixilon.minosoft.util.KUtil.toResourceLocation
import glm_.vec3.Vec3d
import glm_.vec3.Vec3i

View File

@ -13,7 +13,8 @@
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.registries.ResourceLocation
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.toVec3d
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.chance
import de.bixilon.minosoft.util.KUtil.toResourceLocation
import glm_.vec3.Vec3d
import glm_.vec3.Vec3i

View File

@ -13,10 +13,10 @@
package de.bixilon.minosoft.data.registries.inventory
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.registry.IdDeserializer
import de.bixilon.minosoft.data.registries.registries.registry.RegistryFakeEnumerable
import de.bixilon.minosoft.util.KUtil.toBoolean
data class CreativeModeTab(
override val name: String,

View File

@ -13,7 +13,10 @@
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.inventory.ItemStack
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.input.interaction.InteractionResults
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
open class FoodItem(

View File

@ -13,6 +13,8 @@
package de.bixilon.minosoft.data.registries.items
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.inventory.ItemStack
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.input.interaction.InteractionResults
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
open class Item(

View File

@ -13,11 +13,11 @@
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.entities.EntityType
import de.bixilon.minosoft.data.registries.registries.Registries
import de.bixilon.minosoft.data.text.RGBColor.Companion.asRGBColor
import de.bixilon.minosoft.util.KUtil.toInt
open class SpawnEggItem(
resourceLocation: ResourceLocation,

View File

@ -14,6 +14,7 @@
package de.bixilon.minosoft.data.registries.items.armor
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.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.items.Item
@ -24,8 +25,8 @@ open class ArmorItem(
registries: Registries,
data: Map<String, Any>,
) : Item(resourceLocation, registries, data) {
val protection = data["defense"].unsafeCast<Float>()
val toughness = data["toughness"].unsafeCast<Float>()
val protection = data["defense"].toFloat()
val toughness = data["toughness"].toFloat()
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
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.items.Item
import de.bixilon.minosoft.data.registries.registries.Registries
import de.bixilon.minosoft.util.KUtil.toInt
open class HorseArmorItem(
resourceLocation: ResourceLocation,

View File

@ -13,6 +13,8 @@
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.player.Hands
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.input.interaction.InteractionResults
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
open class AxeItem(
@ -31,7 +31,7 @@ open class AxeItem(
data: Map<String, Any>,
) : MiningToolItem(resourceLocation, registries, data) {
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()
for ((origin, target) in it) {
entries[registries.blockRegistry[origin.toInt()]] = registries.blockRegistry[target]!!

View File

@ -13,6 +13,8 @@
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.inventory.ItemStack
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.util.VecUtil.plus
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
open class HoeItem(
@ -34,7 +34,7 @@ open class HoeItem(
data: Map<String, Any>,
) : MiningToolItem(resourceLocation, registries, data) {
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()
for ((origin, target) in it) {
entries[registries.blockRegistry[origin.toInt()]] = registries.blockStateRegistry[target]!!

View File

@ -13,7 +13,8 @@
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.registries.ResourceLocation
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.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.protocol.packets.s2c.play.TagsS2CP
import de.bixilon.minosoft.util.KUtil.listCast
import de.bixilon.minosoft.util.KUtil.toResourceLocation
import glm_.vec3.Vec3i
@ -31,14 +31,14 @@ abstract class MiningToolItem(
registries: Registries,
data: Map<String, Any>,
) : 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()
for (id in it) {
entries += registries.blockRegistry[id]!!
}
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?

View File

@ -13,6 +13,8 @@
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.inventory.ItemStack
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.util.VecUtil.plus
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
open class ShovelItem(
@ -34,7 +34,7 @@ open class ShovelItem(
data: Map<String, Any>,
) : MiningToolItem(resourceLocation, registries, data) {
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()
for ((origin, target) in it) {
entries[registries.blockRegistry[origin.toInt()]] = registries.blockStateRegistry[target]!!

View File

@ -13,7 +13,7 @@
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.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.blocks.BlockState
@ -27,7 +27,7 @@ open class SwordItem(
registries: Registries,
data: Map<String, Any>,
) : 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 {
if (blockState.block.resourceLocation == MinecraftBlocks.COBWEB) {

View File

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

View File

@ -13,14 +13,14 @@
package de.bixilon.minosoft.data.registries.materials
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.registries.Registries
import de.bixilon.minosoft.data.registries.registries.registry.RegistryItem
import de.bixilon.minosoft.data.registries.registries.registry.ResourceLocationDeserializer
import de.bixilon.minosoft.data.text.RGBColor
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.*
data class Material(

View File

@ -12,6 +12,7 @@
*/
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.particle.data.ParticleData
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.types.Particle
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.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.s2c.play.EntityAnimationS2CP
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.nbt.tag.NBTUtil.compoundCast
import java.lang.reflect.Field
@ -146,9 +144,9 @@ class Registries {
loadEnumRegistry(version, pixlyzerData["entity_actions"], entityActionsRegistry, DefaultRegistries.ENTITY_ACTIONS_REGISTRY)
// id stuff
biomeCategoryRegistry.initialize(pixlyzerData["biome_categories"]?.mapCast(), this, BiomeCategory)
biomePrecipitationRegistry.initialize(pixlyzerData["biome_precipitations"]?.mapCast(), this, BiomePrecipitation)
creativeModeTabRegistry.initialize(pixlyzerData["creative_inventory_tab"]?.mapCast(), this, CreativeModeTab)
biomeCategoryRegistry.initialize(pixlyzerData["biome_categories"]?.unsafeCast(), this, BiomeCategory)
biomePrecipitationRegistry.initialize(pixlyzerData["biome_precipitations"]?.unsafeCast(), this, BiomePrecipitation)
creativeModeTabRegistry.initialize(pixlyzerData["creative_inventory_tab"]?.unsafeCast(), this, CreativeModeTab)
// id resource location stuff
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>?) {
pixlyzerData ?: return
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>) {

View File

@ -13,8 +13,8 @@
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.util.KUtil.toInt
import de.bixilon.minosoft.util.collections.Clearable
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.JsonPrimitive
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.registries.MultiResourceLocationAble
import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.ResourceLocationAble
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.json.ResourceLocationJsonMap.toResourceLocationMap
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound

View File

@ -13,9 +13,9 @@
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.registries.Registries
import de.bixilon.minosoft.util.KUtil.setValue
import kotlin.reflect.KProperty
import kotlin.reflect.jvm.javaField

View File

@ -1,7 +1,7 @@
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.util.KUtil.toInt
import de.bixilon.minosoft.util.json.ResourceLocationJsonMap.toResourceLocationMap
class ResourceLocationRegistry(

View File

@ -1,6 +1,6 @@
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.data.registries.registries.Registries
import de.bixilon.minosoft.data.registries.registries.RegistriesLoader

View File

@ -1,11 +1,11 @@
package de.bixilon.minosoft.data.registries.versions
import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.Minosoft
import de.bixilon.minosoft.assets.util.FileUtil.readJson
import de.bixilon.minosoft.protocol.protocol.PacketTypes
import de.bixilon.minosoft.protocol.protocol.ProtocolStates
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.KUtil.toResourceLocation
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.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.protocol.network.connection.play.PlayConnection

View File

@ -14,14 +14,14 @@
package de.bixilon.minosoft.data.text
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.text.ChatCode.Companion.toColor
import de.bixilon.minosoft.data.text.events.ClickEvent
import de.bixilon.minosoft.data.text.events.HoverEvent
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
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.nbt.tag.NBTUtil.compoundCast
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.get
@ -139,7 +139,7 @@ class BaseComponent : ChatComponent {
var currentText = ""
fun parseExtra() {
json["extra"]?.listCast()?.let {
json["extra"].toJsonList()?.let {
for (data in it) {
parts += ChatComponent.of(data, translator, currentParent)
}
@ -184,11 +184,11 @@ class BaseComponent : ChatComponent {
parseExtra()
json["translate"]?.nullCast<String>()?.let {
json["translate"]?.toString()?.let {
val with: MutableList<Any> = mutableListOf()
json["with"]?.listCast()?.let { withArray ->
json["with"].toJsonList()?.let { 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)

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.unsafeCast
import de.bixilon.kutil.uuid.UUIDUtil.toUUID
import de.bixilon.minosoft.data.registries.ResourceLocation
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.json.Jackson
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound
@ -44,7 +44,7 @@ class EntityHoverData(
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
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.gui.eros.dialog.SimpleErosWarningDialog
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.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.gui.eros.controller.JavaFXWindowController
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.terminal.CommandLineArguments
import de.bixilon.minosoft.terminal.RunConfiguration
import de.bixilon.minosoft.util.*
import de.bixilon.minosoft.util.KUtil.slashPath
import de.bixilon.minosoft.util.KUtil.toStackTrace
import de.bixilon.minosoft.util.KUtil.tryCatch
import de.bixilon.minosoft.util.UnitFormatter.formatBytes
import de.bixilon.minosoft.util.filewatcher.FileWatcherService
import de.bixilon.minosoft.util.GitInfo
import de.bixilon.minosoft.util.ShutdownManager
import de.bixilon.minosoft.util.SystemInformation
import de.bixilon.minosoft.util.Util
import de.bixilon.minosoft.util.logging.Log
import de.bixilon.minosoft.util.logging.LogLevels
import de.bixilon.minosoft.util.logging.LogMessageType
@ -79,7 +84,7 @@ class ErosCrashReport : JavaFXWindowController() {
}
fun hardCrash() {
KUtil.hardCrash()
UnsafeUtil.hardCrash()
}
companion object {
@ -143,7 +148,7 @@ class ErosCrashReport : JavaFXWindowController() {
val crashReportFolder = File(RunConfiguration.HOME_DIRECTORY + "crash-reports")
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)
@ -197,7 +202,7 @@ class ErosCrashReport : JavaFXWindowController() {
----- Minosoft Crash Report -----
// ${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}
${exception?.toStackTrace() ?: ""}

View File

@ -13,6 +13,8 @@
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.data.text.TranslatableComponents.GENERAL_IGNORE
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.text
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.toStackTrace
import javafx.fxml.FXML
import javafx.scene.control.Button
import javafx.scene.control.TextArea

View File

@ -14,7 +14,7 @@
package de.bixilon.minosoft.gui.eros.dialog
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.config.profile.delegate.watcher.SimpleProfileDelegateWatcher.Companion.profileWatchFX
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.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.config.profile.delegate.watcher.entry.MapProfileDelegateWatcher.Companion.profileWatchMapFX
import de.bixilon.minosoft.config.profile.profiles.eros.ErosProfileManager

View File

@ -14,8 +14,9 @@
package de.bixilon.minosoft.gui.eros.main.play.server
import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
import de.bixilon.kutil.general.BooleanUtil.decide
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.config.profile.ConnectionProfiles
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.StatusConnectionStates
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.delegate.watcher.entry.ListDelegateWatcher.Companion.watchListFX
import javafx.fxml.FXML

View File

@ -14,6 +14,7 @@
package de.bixilon.minosoft.gui.eros.main.play.server.card
import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
import de.bixilon.kutil.primitive.IntUtil.thousands
import de.bixilon.minosoft.Minosoft
import de.bixilon.minosoft.data.registries.ResourceLocation
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.StatusPongReceiveEvent
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.PixelImageView
import javafx.fxml.FXML

View File

@ -13,7 +13,7 @@
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.config.profile.ProfileManager
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 de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.reflection.ReflectionUtil.setValue
import de.bixilon.minosoft.Minosoft
import de.bixilon.minosoft.config.profile.delegate.watcher.SimpleProfileDelegateWatcher.Companion.profileWatchFX
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.JavaFXController
import de.bixilon.minosoft.gui.eros.controller.JavaFXWindowController
import de.bixilon.minosoft.util.KUtil.setValue
import javafx.application.HostServices
import javafx.application.Platform
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.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.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.KeyBinding
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.protocol.ProtocolDefinition
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.toResourceLocation
import de.bixilon.minosoft.util.Queue
import de.bixilon.minosoft.util.Stopwatch
import de.bixilon.minosoft.util.logging.Log
import de.bixilon.minosoft.util.logging.LogLevels
@ -123,7 +123,7 @@ class RenderWindow(
var tickCount = 0L
var lastTickTimer = KUtil.time
var lastTickTimer = TimeUtil.time
private var initialPositionReceived = false
@ -319,7 +319,7 @@ class RenderWindow(
renderSystem.clear(IntegratedBufferTypes.COLOR_BUFFER, IntegratedBufferTypes.DEPTH_BUFFER)
val currentTickTime = KUtil.time
val currentTickTime = TimeUtil.time
if (currentTickTime - this.lastTickTimer > ProtocolDefinition.TICK_TIME) {
tickCount++
// inputHandler.currentKeyConsumer?.tick(tickCount)

View File

@ -14,6 +14,7 @@
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.ValuesEnum
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.util.VecUtil.of
import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4Util.dot
import de.bixilon.minosoft.util.KUtil.get
import glm_.mat3x3.Mat3
import glm_.vec2.Vec2i
import glm_.vec3.Vec3

View File

@ -1,6 +1,6 @@
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.registries.VoxelShape
import de.bixilon.minosoft.data.registries.blocks.types.FluidBlock

View File

@ -13,8 +13,8 @@
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.primitive.BooleanUtil.decide
import de.bixilon.minosoft.data.text.ChatColors
import de.bixilon.minosoft.data.text.PreChatFormattingCodes
import de.bixilon.minosoft.data.text.RGBColor

View File

@ -13,6 +13,7 @@
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.data.registries.factory.DefaultFactory
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.FontProviderFactory
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.nbt.tag.NBTUtil.listCast

View File

@ -14,14 +14,14 @@
package de.bixilon.minosoft.gui.rendering.font.provider
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.gui.rendering.RenderConstants
import de.bixilon.minosoft.gui.rendering.RenderWindow
import de.bixilon.minosoft.gui.rendering.font.CharData
import de.bixilon.minosoft.gui.rendering.font.Font
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 glm_.vec2.Vec2
@ -35,7 +35,7 @@ class BitmapFontProvider(
private set
init {
val charRows = data["chars"].asList()
val charRows = data["chars"].asJsonList()
val texture = renderWindow.textureManager.staticTextures.createTexture(data["file"].toResourceLocation().texture())
texture.load(renderWindow.connection.assetsManager)

View File

@ -1,6 +1,6 @@
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.registries.items.block.BlockItem
import de.bixilon.minosoft.data.text.ChatColors

View File

@ -13,7 +13,8 @@
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.gui.rendering.RenderConstants
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.GUIVertexOptions
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.EMPTY
import de.bixilon.minosoft.util.KUtil
import glm_.vec2.Vec2i
class FadingTextElement(
@ -44,7 +44,7 @@ class FadingTextElement(
if (hidden || !super.cacheEnabled) {
return false
}
val time = KUtil.time
val time = TimeUtil.time
return (time >= fadeInEndTime) && (time < fadeOutStartTime)
}
set(value) {
@ -78,7 +78,7 @@ class FadingTextElement(
}
fun show() {
val time = KUtil.time
val time = TimeUtil.time
if (time in (fadeInEndTime + 1) until fadeOutStartTime) {
fadeOutStartTime = time + stayTime
} else {
@ -95,7 +95,7 @@ class FadingTextElement(
return
}
// ToDo: Eventually fade out when fading in
val time = KUtil.time
val time = TimeUtil.time
fadeInStartTime = -1L
fadeInEndTime = -1L
fadeOutStartTime = time
@ -110,7 +110,7 @@ class FadingTextElement(
if (hidden) {
return false
}
val hidden = KUtil.time > fadeOutEndTime
val hidden = TimeUtil.time > fadeOutEndTime
if (this.hidden != hidden) {
this.hidden = hidden
return true
@ -122,7 +122,7 @@ class FadingTextElement(
if (hidden) {
return 0
}
val time = KUtil.time
val time = TimeUtil.time
if (time > fadeOutEndTime) {
return 0
}

View File

@ -13,7 +13,7 @@
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.RGBColor
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.toSynchronizedList
import de.bixilon.kutil.time.TimeUtil
import de.bixilon.minosoft.data.text.ChatComponent
import de.bixilon.minosoft.gui.rendering.RenderConstants
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.util.vec.vec2.Vec2iUtil.EMPTY
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.max
import de.bixilon.minosoft.util.KUtil
import glm_.vec2.Vec2i
class TextFlowElement(
@ -68,7 +68,7 @@ class TextFlowElement(
val visibleLines: MutableList<TextFlowLineElement> = mutableListOf()
val maxSize = maxSize
val maxLines = maxSize.y / Font.TOTAL_CHAR_HEIGHT
val currentTime = KUtil.time
val currentTime = TimeUtil.time
var textSize = Vec2i.EMPTY
@ -126,7 +126,7 @@ class TextFlowElement(
operator fun plusAssign(message: ChatComponent) = addMessage(message)
private fun checkExpiredLines() {
val currentTime = KUtil.time
val currentTime = TimeUtil.time
for (line in visibleLines) {
if (currentTime - line.text.addTime > messageExpireTime) {
@ -142,7 +142,7 @@ class TextFlowElement(
private data class TextFlowTextElement(
val text: ChatComponent,
val addTime: Long = KUtil.time,
val addTime: Long = TimeUtil.time,
)
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.collections.CollectionUtil.synchronizedMapOf
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.KeyBinding
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.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.KUtil
import de.bixilon.minosoft.util.KUtil.toResourceLocation
import glm_.glm
import glm_.mat4x4.Mat4
@ -154,7 +154,7 @@ class HUDRenderer(
override fun drawOther() {
val hudElements = hudElements.toSynchronizedMap().values
val time = KUtil.time
val time = TimeUtil.time
if (time - lastTickTime > ProtocolDefinition.TICK_TIME) {
for (element in hudElements) {
if (!element.enabled) {

View File

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

View File

@ -14,8 +14,8 @@
package de.bixilon.minosoft.gui.rendering.gui.hud.elements.hotbar
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.primitive.BooleanUtil.decide
import de.bixilon.minosoft.data.registries.effects.DefaultStatusEffects
import de.bixilon.minosoft.data.registries.effects.attributes.DefaultStatusEffectAttributeNames
import de.bixilon.minosoft.data.text.BaseComponent

View File

@ -13,8 +13,8 @@
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.primitive.BooleanUtil.decide
import de.bixilon.minosoft.data.entities.entities.LivingEntity
import de.bixilon.minosoft.data.registries.effects.attributes.DefaultStatusEffectAttributeNames
import de.bixilon.minosoft.data.text.ChatComponent

View File

@ -14,6 +14,7 @@
package de.bixilon.minosoft.gui.rendering.gui.hud.elements.other
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.KeyBinding
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.TimeChangeEvent
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.terminal.RunConfiguration
import de.bixilon.minosoft.util.GitInfo
import de.bixilon.minosoft.util.KUtil.format
import de.bixilon.minosoft.util.KUtil.toResourceLocation
import de.bixilon.minosoft.util.SystemInformation
import de.bixilon.minosoft.util.UnitFormatter.formatBytes
import glm_.vec2.Vec2i
import glm_.vec4.Vec4i
import kotlin.math.abs
@ -223,7 +222,7 @@ class DebugHUDElement(hudRenderer: HUDRenderer) : LayoutedHUDElement<GridLayout>
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)

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.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.gui.rendering.gui.elements.Element
import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments

View File

@ -14,6 +14,7 @@
package de.bixilon.minosoft.gui.rendering.input.interaction
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.KeyBinding
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.PlayerActionC2SP
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.KUtil
import de.bixilon.minosoft.util.KUtil.toResourceLocation
import glm_.pow
import glm_.vec3.Vec3i
@ -77,7 +77,7 @@ class BreakInteractionHandler(
}
private fun swingArm() {
val currentTime = KUtil.time
val currentTime = TimeUtil.time
if (currentTime - lastSwing <= ProtocolDefinition.TICK_TIME) {
return
}
@ -86,7 +86,7 @@ class BreakInteractionHandler(
}
private fun checkBreaking(isKeyDown: Boolean, deltaTime: Double): Boolean {
val currentTime = KUtil.time
val currentTime = TimeUtil.time
if (!isKeyDown) {
creativeLastHoldBreakTime = 0L

View File

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

View File

@ -13,6 +13,7 @@
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.KeyBinding
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.EntityInteractC2SP
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.KUtil
import de.bixilon.minosoft.util.KUtil.toResourceLocation
import glm_.vec3.Vec3
@ -217,7 +217,7 @@ class InteractInteractionHandler(
}
fun draw(delta: Double) {
val time = KUtil.time
val time = TimeUtil.time
if (time - lastUse < ProtocolDefinition.TICK_TIME) {
return
}

View File

@ -13,6 +13,7 @@
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.key.KeyAction
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.modding.event.invoker.CallbackEventInvoker
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.toResourceLocation
@ -110,7 +110,7 @@ class RenderWindowInputHandler(
return
}
}
val currentTime = KUtil.time
val currentTime = TimeUtil.time
if (keyDown) {
keysDown += keyCode
@ -206,7 +206,7 @@ class RenderWindowInputHandler(
}
// Log.debug("Changing $resourceLocation because of $keyCode -> $thisKeyBindingDown")
pair.lastChange = KUtil.time
pair.lastChange = TimeUtil.time
for (callback in pair.callback) {
callback(thisKeyBindingDown)
}

View File

@ -13,9 +13,9 @@
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.models.baked.BakedModel
import de.bixilon.minosoft.util.KUtil.toBoolean
class UnbakedBlockModel(
parent: GenericUnbakedModel?,

View File

@ -14,6 +14,8 @@
package de.bixilon.minosoft.gui.rendering.models.unbaked.block
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.direction.Directions
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.vec3.Vec3Util.get
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 glm_.func.rad
import glm_.vec2.Vec2

View File

@ -14,9 +14,9 @@
package de.bixilon.minosoft.gui.rendering.models.unbaked.element
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.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.compoundCast
import glm_.vec3.Vec3

View File

@ -13,9 +13,9 @@
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.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 glm_.vec2.Vec2

View File

@ -13,10 +13,10 @@
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.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
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.time.TimeWorker
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.data.registries.ResourceLocation
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.PlayConnectionStates.Companion.disconnected
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.collections.floats.DirectArrayFloatList
import glm_.mat4x4.Mat4
@ -151,7 +151,7 @@ class ParticleRenderer(
particlesLock.acquire()
try {
val time = KUtil.time
val time = TimeUtil.time
for (particle in particles) {
if (!particle.chunkPosition.isInViewDistance(particleViewDistance, cameraPosition)) {
particle.dead = true
@ -219,7 +219,7 @@ class ParticleRenderer(
particlesLock.acquire()
val time = KUtil.time
val time = TimeUtil.time
for (particle in particles) {
if (particle.dead) {
continue

View File

@ -13,6 +13,7 @@
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.registries.AABB
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.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.KUtil
import glm_.vec2.Vec2i
import glm_.vec3.Vec3
import glm_.vec3.Vec3d
@ -58,7 +58,7 @@ abstract class Particle(
// moving
val cameraPosition: Vec3d
get() = getCameraPosition(KUtil.time)
get() = getCameraPosition(TimeUtil.time)
final override val velocity: Vec3d = Vec3d(velocity)
var previousPosition = position

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