port to kutil 1.26

This commit is contained in:
Moritz Zwerger 2024-02-01 18:20:28 +01:00
parent a6fe96fde6
commit 3b61973040
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
34 changed files with 92 additions and 182 deletions

View File

@ -1,6 +1,6 @@
#
# Minosoft
# Copyright (C) 2020-2023 Moritz Zwerger
# Copyright (C) 2020-2024 Moritz Zwerger
#
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
#
@ -17,5 +17,5 @@ lwjgl.version=3.3.3
ikonli.version=12.3.1
netty.version=4.1.101.Final
jackson.version=2.16.0
kutil.version=1.25.0
kutil.version=1.26.0
glm.version=0.9.9.1-12

View File

@ -1,6 +1,6 @@
/*
* Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger
* Copyright (C) 2020-2024 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@ -18,7 +18,7 @@ import de.bixilon.kutil.primitive.DoubleUtil
import de.bixilon.kutil.primitive.DoubleUtil.matches
import de.bixilon.kutil.primitive.FloatUtil
import de.bixilon.kutil.primitive.FloatUtil.matches
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet
import de.bixilon.kutil.reflection.ReflectionUtil.field
import de.bixilon.kutil.reflection.ReflectionUtil.jvmField
import de.bixilon.minosoft.camera.ConnectionCamera
import de.bixilon.minosoft.data.entities.StatusEffectInstance
@ -42,17 +42,17 @@ object PhysicsTestUtil {
const val MATCH_EXACTLY = true
val VALUE_MARGIN = if (MATCH_EXACTLY) 0.0 else DoubleUtil.DEFAULT_MARGIN
private val PLAYER_ATTRIBUTES = LocalPlayerEntity::attributes.jvmField
private val CONNECTION_PLAYER = PlayConnection::player.jvmField
private val CONNECTION_CAMERA = PlayConnection::camera.jvmField
private val PLAYER_ATTRIBUTES = LocalPlayerEntity::attributes.jvmField.field
private val CONNECTION_PLAYER = PlayConnection::player.jvmField.field
private val CONNECTION_CAMERA = PlayConnection::camera.jvmField.field
fun createPlayer(connection: PlayConnection = createConnection(light = false)): LocalPlayerEntity {
val player = LocalPlayerEntity(connection.account, connection, SignatureKeyManagement(connection, connection.account))
PLAYER_ATTRIBUTES.forceSet(player, EntityAttributes(player.type.attributes))
PLAYER_ATTRIBUTES.set(player, EntityAttributes(player.type.attributes))
player.startInit()
CONNECTION_PLAYER.forceSet(connection, player)
CONNECTION_CAMERA.forceSet(connection, ConnectionCamera(connection))
CONNECTION_PLAYER.set(connection, player)
CONNECTION_CAMERA.set(connection, ConnectionCamera(connection))
connection.camera.init()
connection.world.entities.remove(0)
connection.world.entities.add(0, null, player)

View File

@ -1,6 +1,6 @@
/*
* Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger
* Copyright (C) 2020-2024 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@ -14,8 +14,8 @@
package de.bixilon.minosoft.data.physics.parkour
import de.bixilon.kotlinglm.vec3.Vec3d
import de.bixilon.kutil.stream.InputStreamUtil.readAsString
import de.bixilon.kutil.string.WhitespaceUtil.trimWhitespaces
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAsString
import de.bixilon.minosoft.commands.parser.brigadier._double.DoubleParser.Companion.readDouble
import de.bixilon.minosoft.commands.parser.brigadier._float.FloatParser.Companion.readFloat
import de.bixilon.minosoft.commands.util.StringReader

View File

@ -1,6 +1,6 @@
/*
* Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger
* Copyright (C) 2020-2024 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@ -13,11 +13,11 @@
package de.bixilon.minosoft.data.registries.registries.registry
import de.bixilon.kutil.collections.spliterator.SpliteratorUtil.collect
import de.bixilon.minosoft.data.registries.identified.Namespaces.minosoft
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
import org.testng.Assert.*
import org.testng.annotations.Test
import java.util.*
@Test(groups = ["registry"])
class RegistryTest {
@ -114,14 +114,6 @@ class RegistryTest {
assertEquals(secondList.toSet(), setOf(c, d))
}
@Deprecated("kutil 1.25")
fun <T> Spliterator<T>.collect(): List<T> {
val list: MutableList<T> = mutableListOf()
forEachRemaining { list += it }
return list
}
// TODO: codec, spliterating
private class Entry(override val identifier: ResourceLocation) : RegistryItem() {

View File

@ -1,6 +1,6 @@
/*
* Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger
* Copyright (C) 2020-2024 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@ -15,14 +15,14 @@ package de.bixilon.minosoft.gui.rendering.font.types.unicode.unihex
import de.bixilon.kotlinglm.vec2.Vec2
import de.bixilon.kotlinglm.vec2.Vec2i
import de.bixilon.kutil.buffer.ByteBufferUtil.toByteArray
import de.bixilon.kutil.buffer.ByteBufferUtil.readRemaining
import de.bixilon.kutil.reflection.ReflectionUtil.getFieldOrNull
import de.bixilon.kutil.unsafe.UnsafeUtil.setUnsafeAccessible
import de.bixilon.minosoft.gui.rendering.font.types.unicode.UnicodeCodeRenderer
import de.bixilon.minosoft.gui.rendering.font.types.unicode.unihex.UnihexFontType.Companion.fromHex
import de.bixilon.minosoft.test.IT.OBJENESIS
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap
import org.testng.Assert.*
import org.testng.Assert.assertEquals
import org.testng.Assert.assertTrue
import org.testng.annotations.Test
import java.io.ByteArrayInputStream
import java.io.InputStream
@ -33,19 +33,6 @@ class UnihexFontTypeTest {
private val textureRemaining = UnifontTexture::class.java.getFieldOrNull("remaining")!!
val readUnihex = UnihexFontType::class.companionObject!!.java.getDeclaredMethod("readUnihex", InputStream::class.java, Int2ObjectOpenHashMap::class.java).apply { setUnsafeAccessible() }
fun `from hex`() {
assertEquals('0'.code.fromHex(), 0x00)
assertEquals('9'.code.fromHex(), 0x09)
assertEquals('a'.code.fromHex(), 0x0A)
assertEquals('A'.code.fromHex(), 0x0A)
assertEquals('f'.code.fromHex(), 0x0F)
assertEquals('F'.code.fromHex(), 0x0F)
assertThrows { 'z'.code.fromHex() }
}
fun `read unihex`() {
val data = "0E01DB:555580000001A2382241A238140588380001B31808A1913020A9BB100001AAAA\n298B:0000000E0808080808080808080E000E"
@ -112,7 +99,7 @@ class UnihexFontTypeTest {
assertEquals(code.uvEnd, Vec2(0.18749f, 1.0f))
assertEquals(remaining, intArrayOf(13))
val data = texture.data.buffer.data.toByteArray()
val data = texture.data.buffer.data.readRemaining()
for (index in 0 until 48) {

View File

@ -15,10 +15,10 @@ package de.bixilon.minosoft.gui.rendering.models.baked
import de.bixilon.kotlinglm.vec2.Vec2i
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.Minosoft
import de.bixilon.minosoft.assets.MemoryAssetsManager
import de.bixilon.minosoft.assets.TestAssetsManager.box
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.gui.rendering.Rendering
import de.bixilon.minosoft.gui.rendering.models.block.element.face.ModelFace

View File

@ -18,8 +18,8 @@ import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.latch.SimpleLatch
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet
import de.bixilon.kutil.reflection.ReflectionUtil.getFieldOrNull
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.MemoryAssetsManager
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import de.bixilon.minosoft.data.registries.identified.Namespaces.minosoft
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
import de.bixilon.minosoft.gui.rendering.RenderContext

View File

@ -15,10 +15,10 @@ package de.bixilon.minosoft.gui.rendering.system.base.texture.skin
import de.bixilon.kotlinglm.vec2.Vec2i
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.kutil.unsafe.UnsafeUtil.setUnsafeAccessible
import de.bixilon.kutil.url.URLUtil.toURL
import de.bixilon.minosoft.assets.MemoryAssetsManager
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import de.bixilon.minosoft.data.entities.entities.player.RemotePlayerEntity
import de.bixilon.minosoft.data.entities.entities.player.additional.PlayerAdditional
import de.bixilon.minosoft.data.entities.entities.player.properties.PlayerProperties

View File

@ -14,8 +14,8 @@
package de.bixilon.minosoft.gui.rendering.textures
import de.bixilon.kotlinglm.vec2.Vec2i
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.kutil.unsafe.UnsafeUtil.setUnsafeAccessible
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import de.bixilon.minosoft.gui.rendering.system.base.texture.data.buffer.RGB8Buffer
import de.bixilon.minosoft.gui.rendering.system.base.texture.data.buffer.RGBA8Buffer
import de.bixilon.minosoft.gui.rendering.system.base.texture.data.buffer.TextureBuffer

View File

@ -13,8 +13,8 @@
package de.bixilon.minosoft.gui.rendering.tint.tints.grass
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.MemoryAssetsManager
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import org.testng.Assert.assertEquals
import org.testng.annotations.Test

View File

@ -15,7 +15,7 @@ package de.bixilon.minosoft.protocol.network.connection.play
import de.bixilon.kotlinglm.pow
import de.bixilon.kutil.observer.DataObserver
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet
import de.bixilon.kutil.reflection.ReflectionUtil.field
import de.bixilon.kutil.reflection.ReflectionUtil.jvmField
import de.bixilon.minosoft.assets.connection.ConnectionAssetsManager
import de.bixilon.minosoft.assets.minecraft.MinecraftPackFormat.packFormat
@ -51,21 +51,21 @@ object ConnectionTestUtil {
reference()
}
private val LANGUAGE = PlayConnection::language.jvmField
private val SEQUENCE = PlayConnection::sequence.jvmField
private val ACCOUNT = PlayConnection::account.jvmField
private val VERSION = PlayConnection::version.jvmField
private val REGISTRIES = PlayConnection::registries.jvmField
private val WORLD = PlayConnection::world.jvmField
private val PLAYER = PlayConnection::player.jvmField
private val NETWORK = PlayConnection::network.jvmField
private val EVENTS = PlayConnection::events.jvmField
private val PROFILES = PlayConnection::profiles.jvmField
private val ASSETS_MANAGER = PlayConnection::assetsManager.jvmField
private val STATE = PlayConnection::state.jvmField
private val TAGS = PlayConnection::tags.jvmField
private val LEGACY_TAGS = PlayConnection::legacyTags.jvmField
private val CAMERA = PlayConnection::camera.jvmField
private val LANGUAGE = PlayConnection::language.jvmField.field
private val SEQUENCE = PlayConnection::sequence.jvmField.field
private val ACCOUNT = PlayConnection::account.jvmField.field
private val VERSION = PlayConnection::version.jvmField.field
private val REGISTRIES = PlayConnection::registries.jvmField.field
private val WORLD = PlayConnection::world.jvmField.field
private val PLAYER = PlayConnection::player.jvmField.field
private val NETWORK = PlayConnection::network.jvmField.field
private val EVENTS = PlayConnection::events.jvmField.field
private val PROFILES = PlayConnection::profiles.jvmField.field
private val ASSETS_MANAGER = PlayConnection::assetsManager.jvmField.field
private val STATE = PlayConnection::state.jvmField.field
private val TAGS = PlayConnection::tags.jvmField.field
private val LEGACY_TAGS = PlayConnection::legacyTags.jvmField.field
private val CAMERA = PlayConnection::camera.jvmField.field
private val language = LanguageManager()
private val signature = OBJENESIS.newInstance(SignatureKeyManagement::class.java)
@ -73,25 +73,25 @@ object ConnectionTestUtil {
fun createConnection(worldSize: Int = 0, light: Boolean = false, version: String? = null): PlayConnection {
val connection = OBJENESIS.newInstance(PlayConnection::class.java)
LANGUAGE.forceSet(connection, language)
LANGUAGE.set(connection, language)
val version = if (version == null) IT.VERSION else Versions[version] ?: throw IllegalArgumentException("Can not find version: $version")
SEQUENCE.forceSet(connection, AtomicInteger(1))
ACCOUNT.forceSet(connection, TestAccount)
VERSION.forceSet(connection, version)
REGISTRIES.forceSet(connection, Registries())
SEQUENCE.set(connection, AtomicInteger(1))
ACCOUNT.set(connection, TestAccount)
VERSION.set(connection, version)
REGISTRIES.set(connection, Registries())
connection.registries.updateFlattened(version.flattened)
connection.registries.parent = if (version == IT.VERSION) IT.REGISTRIES else ITUtil.loadRegistries(version)
WORLD.forceSet(connection, createWorld(connection, light, (worldSize * 2 + 1).pow(2)))
PLAYER.forceSet(connection, LocalPlayerEntity(connection.account, connection, signature))
WORLD.set(connection, createWorld(connection, light, (worldSize * 2 + 1).pow(2)))
PLAYER.set(connection, LocalPlayerEntity(connection.account, connection, signature))
connection.player.startInit()
NETWORK.forceSet(connection, TestNetwork(connection))
EVENTS.forceSet(connection, EventMaster())
PROFILES.forceSet(connection, profiles)
ASSETS_MANAGER.forceSet(connection, ConnectionAssetsManager(AssetsManagerProperties(PackProperties(version.packFormat))))
STATE.forceSet(connection, DataObserver(PlayConnectionStates.PLAYING))
TAGS.forceSet(connection, TagManager())
LEGACY_TAGS.forceSet(connection, FALLBACK_TAGS)
CAMERA.forceSet(connection, ConnectionCamera(connection))
NETWORK.set(connection, TestNetwork(connection))
EVENTS.set(connection, EventMaster())
PROFILES.set(connection, profiles)
ASSETS_MANAGER.set(connection, ConnectionAssetsManager(AssetsManagerProperties(PackProperties(version.packFormat))))
STATE.set(connection, DataObserver(PlayConnectionStates.PLAYING))
TAGS.set(connection, TagManager())
LEGACY_TAGS.set(connection, FALLBACK_TAGS)
CAMERA.set(connection, ConnectionCamera(connection))
connection.camera.init()
if (worldSize > 0) {
connection.world.initialize(worldSize) { DummyBiomeSource(null) }

View File

@ -13,7 +13,7 @@
package de.bixilon.minosoft.protocol.packets.s2c.play
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.protocol.network.connection.play.ConnectionTestUtil
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.protocol.packets.s2c.S2CPacket

View File

@ -17,8 +17,8 @@ import de.bixilon.kotlinglm.vec2.Vec2i
import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.observer.DataObserver
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.mbf.MBFBinaryReader
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import de.bixilon.minosoft.data.registries.blocks.MinecraftBlocks
import de.bixilon.minosoft.data.registries.blocks.state.BlockState
import de.bixilon.minosoft.data.registries.blocks.types.building.stone.StoneBlock

View File

@ -15,7 +15,7 @@ package de.bixilon.minosoft.protocol.packets.s2c.play.chunk
import de.bixilon.kutil.observer.DataObserver
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.data.registries.dimension.DimensionProperties
import de.bixilon.minosoft.data.world.positions.ChunkPosition
import de.bixilon.minosoft.protocol.network.connection.play.ConnectionTestUtil.createConnection

View File

@ -1,6 +1,6 @@
/*
* Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger
* Copyright (C) 2020-2024 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@ -13,7 +13,7 @@
package de.bixilon.minosoft.modding.dummy
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAsString
import de.bixilon.kutil.stream.InputStreamUtil.readAsString
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
import de.bixilon.minosoft.modding.loader.mod.ModMain

View File

@ -14,12 +14,12 @@
package de.bixilon.minosoft.assets.directory
import de.bixilon.kutil.latch.AbstractLatch
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.AssetsManager
import de.bixilon.minosoft.assets.properties.manager.AssetsManagerProperties
import de.bixilon.minosoft.assets.util.FileAssetsUtil.normalizePath
import de.bixilon.minosoft.assets.util.FileAssetsUtil.toAssetName
import de.bixilon.minosoft.assets.util.FileUtil
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.util.InputStreamUtil.readJson
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet

View File

@ -14,10 +14,10 @@
package de.bixilon.minosoft.assets.file
import de.bixilon.kutil.latch.AbstractLatch
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.AssetsManager
import de.bixilon.minosoft.assets.util.FileAssetsUtil.normalizePath
import de.bixilon.minosoft.assets.util.FileAssetsUtil.toAssetName
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.util.InputStreamUtil.readJson
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
import java.io.File

View File

@ -17,10 +17,10 @@ import com.github.luben.zstd.ZstdInputStream
import com.github.luben.zstd.ZstdOutputStream
import de.bixilon.kutil.array.ByteArrayUtil.toHex
import de.bixilon.kutil.file.FileUtil.createParent
import de.bixilon.kutil.stream.InputStreamUtil.copy
import de.bixilon.minosoft.assets.AssetsManager
import de.bixilon.minosoft.assets.util.HashTypes.Companion.hashType
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
import de.bixilon.minosoft.util.KUtil.copy
import de.bixilon.minosoft.util.logging.Log
import de.bixilon.minosoft.util.logging.LogLevels
import de.bixilon.minosoft.util.logging.LogMessageType

View File

@ -16,10 +16,10 @@ package de.bixilon.minosoft.assets.util
import com.fasterxml.jackson.databind.JavaType
import com.fasterxml.jackson.databind.ObjectReader
import com.fasterxml.jackson.module.kotlin.readValue
import de.bixilon.kutil.buffer.BufferDefinition
import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.exception.ExceptionUtil.ignoreAll
import de.bixilon.kutil.json.JsonObject
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.mbf.MBFBinaryReader
import de.bixilon.minosoft.util.json.Jackson
import org.kamranzafar.jtar.TarInputStream
@ -28,27 +28,6 @@ import java.util.zip.ZipInputStream
object InputStreamUtil {
@Deprecated("kutil 1.26")
fun InputStream.readAsString(close: Boolean = true): String {
val builder = StringBuilder()
val buffer = ByteArray(BufferDefinition.DEFAULT_BUFFER_SIZE)
var length: Int
while (true) {
length = this.read(buffer, 0, buffer.size)
if (length < 0) {
break
}
builder.append(String(buffer, 0, length, Charsets.UTF_8))
}
if (close) {
this.close()
}
return builder.toString()
}
fun InputStream.readJsonObject(close: Boolean = true): JsonObject {
return readJson(close = close, reader = Jackson.MAP_READER)
}
@ -110,12 +89,4 @@ object InputStreamUtil {
fun InputStream.readMBFMap(): Map<Any, Any> {
return this.use { MBFBinaryReader(this).readMBF().data.unsafeCast() }
}
@Deprecated("kutil 1.26")
fun InputStream.readAll(close: Boolean = true): ByteArray {
if (close) {
return use { readAllBytes() }
}
return readAllBytes()
}
}

View File

@ -1,6 +1,6 @@
/*
* Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger
* Copyright (C) 2020-2024 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@ -26,8 +26,8 @@ import de.bixilon.kutil.file.watcher.FileWatcherService
import de.bixilon.kutil.observer.DataObserver.Companion.observe
import de.bixilon.kutil.observer.DataObserver.Companion.observed
import de.bixilon.kutil.observer.map.bi.BiMapObserver.Companion.observedBiMap
import de.bixilon.kutil.stream.InputStreamUtil.readAsString
import de.bixilon.minosoft.assets.util.FileUtil.mkdirParent
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAsString
import de.bixilon.minosoft.config.profile.ProfileType
import de.bixilon.minosoft.config.profile.ProfileUtil.isValidName
import de.bixilon.minosoft.config.profile.profiles.Profile

View File

@ -1,6 +1,6 @@
/*
* Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger
* Copyright (C) 2020-2024 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@ -19,7 +19,7 @@ import de.bixilon.kutil.bit.BitByte.isBitMask
import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.cast.CastUtil.unsafeNull
import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet
import de.bixilon.kutil.reflection.ReflectionUtil.field
import de.bixilon.kutil.reflection.ReflectionUtil.getFieldOrNull
import de.bixilon.kutil.reflection.ReflectionUtil.jvmField
import de.bixilon.kutil.time.TimeUtil.millis
@ -242,12 +242,12 @@ abstract class Entity(
override fun init() {
DEFAULT_AABB.forceSet(this, createDefaultAABB())
PHYSICS.forceSet(this, createPhysics())
DEFAULT_AABB.set(this, createDefaultAABB())
PHYSICS.set(this, createPhysics())
forceTeleport(initialPosition)
forceRotate(initialRotation)
if (!RunConfiguration.DISABLE_RENDERING) {
RENDER_INFO[this] = EntityRenderInfo(this)
RENDER_INFO.set(this, EntityRenderInfo(this))
}
}
@ -262,9 +262,9 @@ abstract class Entity(
companion object {
private val RENDER_INFO = Entity::renderInfo.jvmField
private val DEFAULT_AABB = Entity::defaultAABB.jvmField
private val PHYSICS = Entity::class.java.getFieldOrNull("physics")!!
private val RENDER_INFO = Entity::renderInfo.jvmField.field
private val DEFAULT_AABB = Entity::defaultAABB.jvmField.field
private val PHYSICS = Entity::class.java.getFieldOrNull("physics")!!.field
val FLAGS_DATA = EntityDataField("ENTITY_FLAGS")
val AIR_SUPPLY_DATA = EntityDataField("ENTITY_AIR_SUPPLY")

View File

@ -1,6 +1,6 @@
/*
* Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger
* Copyright (C) 2020-2024 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@ -14,7 +14,7 @@
package de.bixilon.minosoft.example
import de.bixilon.kutil.observer.DataObserver.Companion.observe
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAsString
import de.bixilon.kutil.stream.InputStreamUtil.readAsString
import de.bixilon.minosoft.modding.event.events.chat.ChatMessageEvent
import de.bixilon.minosoft.modding.event.events.connection.play.PlayConnectionCreateEvent
import de.bixilon.minosoft.modding.event.listener.CallbackEventListener.Companion.listen

View File

@ -1,6 +1,6 @@
/*
* Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger
* Copyright (C) 2020-2024 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@ -13,6 +13,7 @@
package de.bixilon.minosoft.gui.rendering.font.types.unicode.unihex
import de.bixilon.kutil.hex.HexUtil.fromHex
import de.bixilon.kutil.json.JsonObject
import de.bixilon.minosoft.data.registries.identified.Namespaces.minecraft
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
@ -79,15 +80,6 @@ class UnihexFontType(
return UnihexFontType(rasterized)
}
fun Int.fromHex(): Int {
return this - when (this) {
in '0'.code..'9'.code -> '0'.code
in 'a'.code..'f'.code -> 'a'.code - 0x0A
in 'A'.code..'F'.code -> 'A'.code - 0x0A
else -> throw IllegalArgumentException("Invalid hex char: ${toChar()}!")
}
}
private fun InputStream.readHexInt(): Int {
var value = 0
while (true) {
@ -95,6 +87,7 @@ class UnihexFontType(
if (byte < 0 || byte == '\n'.code) return -1
if (byte == ':'.code) break // separator
val hex = byte.fromHex()
if (hex < 0) throw IllegalArgumentException("Invalid hex char: ${byte.toChar()}!")
value = (value shl 4) or hex
}
@ -110,6 +103,8 @@ class UnihexFontType(
if (byte < 0) break
if (byte == '\n'.code) break // separator
val hex = byte.fromHex()
if (hex < 0) throw IllegalArgumentException("Invalid hex char: ${byte.toChar()}!")
if (index % 2 == 0) {
// most significant bits

View File

@ -13,8 +13,8 @@
package de.bixilon.minosoft.gui.rendering.sound.sounds
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.AssetsManager
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import org.lwjgl.BufferUtils
import org.lwjgl.openal.AL10.AL_FORMAT_MONO16
import org.lwjgl.openal.AL10.AL_FORMAT_STEREO16

View File

@ -1,6 +1,6 @@
/*
* Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger
* Copyright (C) 2020-2024 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@ -13,7 +13,7 @@
package de.bixilon.minosoft.gui.rendering.system.base.shader.code.glsl
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAsString
import de.bixilon.kutil.stream.InputStreamUtil.readAsString
import de.bixilon.minosoft.commands.util.StringReader
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
import de.bixilon.minosoft.gui.rendering.RenderContext

View File

@ -1,6 +1,6 @@
/*
* Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger
* Copyright (C) 2020-2024 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@ -19,7 +19,7 @@ import de.bixilon.kotlinglm.vec3.Vec3
import de.bixilon.kotlinglm.vec4.Vec4
import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.exception.ExceptionUtil.catchAll
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAsString
import de.bixilon.kutil.stream.InputStreamUtil.readAsString
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
import de.bixilon.minosoft.data.text.formatting.color.RGBColor
import de.bixilon.minosoft.gui.rendering.RenderContext

View File

@ -1,6 +1,6 @@
/*
* Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger
* Copyright (C) 2020-2024 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@ -18,7 +18,6 @@ import de.bixilon.kotlinglm.vec3.Vec3
import de.bixilon.kotlinglm.vec3.Vec3i
import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.Axes
import de.bixilon.minosoft.gui.rendering.util.VecUtil.inSectionHeight
import de.bixilon.minosoft.gui.rendering.util.VecUtil.sectionHeight
object Vec3iUtil {
@ -44,9 +43,6 @@ object Vec3iUtil {
val Vec3i.inChunkPosition: Vec3i
get() = Vec3i(x and 0x0F, y, this.z and 0x0F)
@Deprecated("chunk data types")
val Vec3i.inChunkSectionPosition: Vec3i
get() = Vec3i(x and 0x0F, y.inSectionHeight, z and 0x0F)
fun Vec3i.toVec3(): Vec3 {
val array = array

View File

@ -15,8 +15,8 @@ package de.bixilon.minosoft.modding.loader
import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.reflection.ReflectionUtil.getFieldOrNull
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.util.FileAssetsUtil.normalizePath
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import org.xeustechnologies.jcl.JarClassLoader
import org.xeustechnologies.jcl.JarResources
import org.xeustechnologies.jcl.JclJarEntry

View File

@ -13,8 +13,8 @@
package de.bixilon.minosoft.modding.loader.mod.source
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.directory.DirectoryAssetsManager
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.util.InputStreamUtil.readJson
import de.bixilon.minosoft.data.text.BaseComponent
import de.bixilon.minosoft.data.text.TextComponent

View File

@ -21,6 +21,7 @@ import de.bixilon.kutil.hash.HashUtil
import de.bixilon.kutil.observer.DataObserver.Companion.observed
import de.bixilon.kutil.os.PlatformInfo
import de.bixilon.kutil.shutdown.ShutdownManager
import de.bixilon.kutil.stream.InputStreamUtil.copy
import de.bixilon.kutil.string.StringUtil.formatPlaceholder
import de.bixilon.kutil.url.URLUtil.toURL
import de.bixilon.minosoft.assets.util.FileUtil
@ -28,7 +29,6 @@ import de.bixilon.minosoft.config.profile.profiles.other.OtherProfileManager
import de.bixilon.minosoft.properties.MinosoftProperties
import de.bixilon.minosoft.terminal.CommandLineArguments
import de.bixilon.minosoft.terminal.RunConfiguration
import de.bixilon.minosoft.util.KUtil.copy
import de.bixilon.minosoft.util.http.HTTP2.get
import de.bixilon.minosoft.util.http.HTTPResponse
import de.bixilon.minosoft.util.http.exceptions.HTTPException

View File

@ -21,7 +21,6 @@ import de.bixilon.kotlinglm.vec2.Vec2t
import de.bixilon.kotlinglm.vec3.Vec3d
import de.bixilon.kotlinglm.vec3.Vec3t
import de.bixilon.kotlinglm.vec4.Vec4t
import de.bixilon.kutil.buffer.BufferDefinition
import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.collections.CollectionUtil.synchronizedListOf
import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf
@ -30,7 +29,6 @@ import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedSet
import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
import de.bixilon.kutil.concurrent.pool.runnable.ForcePooledRunnable
import de.bixilon.kutil.concurrent.schedule.TaskScheduler
import de.bixilon.kutil.exception.ExceptionUtil
import de.bixilon.kutil.primitive.BooleanUtil.decide
import de.bixilon.kutil.primitive.DoubleUtil
import de.bixilon.kutil.primitive.DoubleUtil.matches
@ -71,11 +69,7 @@ import io.netty.channel.SimpleChannelInboundHandler
import javafx.application.Platform
import org.kamranzafar.jtar.TarHeader
import java.io.FileOutputStream
import java.io.InputStream
import java.io.OutputStream
import java.security.MessageDigest
import java.security.SecureRandom
import java.security.Signature
import java.util.*
import javax.net.ssl.SSLContext
@ -361,29 +355,4 @@ object KUtil {
stream.close()
println("Packet dumped to $path")
}
@Deprecated("kutil 1.26")
fun InputStream.copy(vararg output: OutputStream, digest: MessageDigest? = null, signature: Signature? = null, closeIn: Boolean = true, closeOut: Boolean = true) {
val buffer = ByteArray(BufferDefinition.DEFAULT_BUFFER_SIZE)
while (true) {
val length = read(buffer, 0, buffer.size)
if (length < 0) {
break
}
for (stream in output) {
stream.write(buffer, 0, length)
}
digest?.update(buffer, 0, length)
signature?.update(buffer, 0, length)
}
if (closeIn) ExceptionUtil.ignoreAll { close() }
if (closeOut) {
for (stream in output) {
ExceptionUtil.ignoreAll { stream.close() }
}
}
}
}

View File

@ -13,8 +13,8 @@
package de.bixilon.minosoft.util.signature
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.IntegratedAssets
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
import java.security.KeyFactory
import java.security.PublicKey

View File

@ -13,8 +13,8 @@
package de.bixilon.minosoft.util.system
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.IntegratedAssets
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import java.awt.Taskbar
import java.awt.Toolkit
import java.io.File