mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-17 11:24:56 -04:00
remove VecUtil.EMPTY_VEC3, replace with Vec3.EMPTY
This commit is contained in:
parent
61a72961f5
commit
8eee74df5d
@ -19,10 +19,11 @@ import de.bixilon.minosoft.data.entities.entities.player.PlayerEntity
|
||||
import de.bixilon.minosoft.data.mappings.items.Item
|
||||
import de.bixilon.minosoft.data.mappings.other.containers.Container
|
||||
import de.bixilon.minosoft.data.mappings.other.containers.PlayerInventory
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.protocol.network.connection.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
||||
import de.bixilon.minosoft.util.KUtil.synchronizedMapOf
|
||||
import glm_.vec3.Vec3
|
||||
import glm_.vec3.Vec3i
|
||||
|
||||
class Player(
|
||||
@ -31,8 +32,8 @@ class Player(
|
||||
) {
|
||||
val healthCondition = PlayerHealthCondition()
|
||||
val experienceCondition = PlayerExperienceCondition()
|
||||
var spawnPosition: Vec3i = VecUtil.EMPTY_VEC3I
|
||||
val entity: PlayerEntity = PlayerEntity(connection, connection.registries.entityTypeRegistry[PlayerEntity.RESOURCE_LOCATION]!!, VecUtil.EMPTY_VEC3, EntityRotation(0.0, 0.0), account.username)
|
||||
var spawnPosition: Vec3i = Vec3i.EMPTY
|
||||
val entity: PlayerEntity = PlayerEntity(connection, connection.registries.entityTypeRegistry[PlayerEntity.RESOURCE_LOCATION]!!, Vec3.EMPTY, EntityRotation(0.0, 0.0), account.username)
|
||||
|
||||
@Deprecated(message = "Will be replaced with some kind of teleport manager, ...")
|
||||
var isSpawnConfirmed = false
|
||||
|
@ -6,7 +6,8 @@ import com.google.gson.JsonPrimitive
|
||||
import de.bixilon.minosoft.data.Axes
|
||||
import de.bixilon.minosoft.data.Directions
|
||||
import de.bixilon.minosoft.gui.rendering.chunk.models.AABB
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.ONE
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.getMinDistanceDirection
|
||||
import glm_.vec3.Vec3
|
||||
import glm_.vec3.Vec3i
|
||||
@ -99,7 +100,7 @@ class VoxelShape(private val aabbs: MutableList<AABB> = mutableListOf()) : Itera
|
||||
|
||||
companion object {
|
||||
val EMPTY = VoxelShape()
|
||||
val FULL = VoxelShape(mutableListOf(AABB(VecUtil.EMPTY_VEC3, VecUtil.ONES_VEC3)))
|
||||
val FULL = VoxelShape(mutableListOf(AABB(Vec3.EMPTY, Vec3.ONE)))
|
||||
}
|
||||
|
||||
override fun iterator(): Iterator<AABB> {
|
||||
|
@ -24,7 +24,7 @@ import de.bixilon.minosoft.gui.rendering.RendererBuilder
|
||||
import de.bixilon.minosoft.gui.rendering.chunk.VoxelShape
|
||||
import de.bixilon.minosoft.gui.rendering.chunk.models.renderable.ElementRenderer
|
||||
import de.bixilon.minosoft.gui.rendering.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.getWorldOffset
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3
|
||||
import de.bixilon.minosoft.protocol.network.connection.PlayConnection
|
||||
@ -55,7 +55,7 @@ class BlockOutlineRenderer(
|
||||
private fun drawLine(start: Vec3, end: Vec3, mesh: BlockOutlineMesh) {
|
||||
val direction = (end - start).normalize()
|
||||
val normal1 = Vec3(direction.z, direction.z, direction.x - direction.y)
|
||||
if (normal1 == VecUtil.EMPTY_VEC3) {
|
||||
if (normal1 == Vec3.EMPTY) {
|
||||
normal1.x = normal1.z
|
||||
normal1.z = direction.z
|
||||
}
|
||||
|
@ -4,7 +4,8 @@ import com.google.gson.JsonArray
|
||||
import com.google.gson.JsonElement
|
||||
import com.google.gson.JsonObject
|
||||
import de.bixilon.minosoft.data.Axes
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.ONE
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.get
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3
|
||||
import glm_.Java.Companion.glm
|
||||
@ -17,8 +18,8 @@ class AABB {
|
||||
val max: Vec3
|
||||
|
||||
constructor(jsonData: JsonObject) {
|
||||
min = readPositionFromJson(jsonData["from"], VecUtil.EMPTY_VEC3)
|
||||
max = readPositionFromJson(jsonData["to"], VecUtil.ONES_VEC3)
|
||||
min = readPositionFromJson(jsonData["from"], Vec3.EMPTY)
|
||||
max = readPositionFromJson(jsonData["to"], Vec3.ONE)
|
||||
}
|
||||
|
||||
private fun readPositionFromJson(jsonData: JsonElement, default: Vec3): Vec3 {
|
||||
@ -139,7 +140,7 @@ class AABB {
|
||||
}
|
||||
|
||||
fun raycast(position: Vec3, direction: Vec3): Float {
|
||||
if (max - min == VecUtil.ONES_VEC3 || position in this) {
|
||||
if (max - min == Vec3.ONE || position in this) {
|
||||
return 0f
|
||||
}
|
||||
var tMin = 0f
|
||||
|
@ -26,7 +26,7 @@ import de.bixilon.minosoft.gui.rendering.chunk.models.loading.BlockModelElement
|
||||
import de.bixilon.minosoft.gui.rendering.chunk.models.loading.BlockModelFace
|
||||
import de.bixilon.minosoft.gui.rendering.textures.Texture
|
||||
import de.bixilon.minosoft.gui.rendering.textures.TextureTransparencies
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.rotate
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3
|
||||
@ -129,7 +129,7 @@ class ElementRenderer(
|
||||
}
|
||||
|
||||
fun getRotatedDirection(rotation: Vec3, direction: Directions): Directions {
|
||||
if (rotation == VecUtil.EMPTY_VEC3) {
|
||||
if (rotation == Vec3.EMPTY) {
|
||||
return direction
|
||||
}
|
||||
var rotatedDirectionVector = direction.floatDirectionVector.rotate(-rotation.x, Axes.X)
|
||||
@ -138,12 +138,12 @@ class ElementRenderer(
|
||||
}
|
||||
|
||||
fun rotatePositionsAxes(positions: Array<Vec3>, angles: Vec3, rescale: Boolean) {
|
||||
if (angles == VecUtil.EMPTY_VEC3) {
|
||||
if (angles == Vec3.EMPTY) {
|
||||
return
|
||||
}
|
||||
BlockModelElement.rotatePositions(positions, Axes.X, -angles.x, VecUtil.EMPTY_VEC3, rescale)
|
||||
BlockModelElement.rotatePositions(positions, Axes.Y, angles.y, VecUtil.EMPTY_VEC3, rescale)
|
||||
BlockModelElement.rotatePositions(positions, Axes.Z, -angles.z, VecUtil.EMPTY_VEC3, rescale)
|
||||
BlockModelElement.rotatePositions(positions, Axes.X, -angles.x, Vec3.EMPTY, rescale)
|
||||
BlockModelElement.rotatePositions(positions, Axes.Y, angles.y, Vec3.EMPTY, rescale)
|
||||
BlockModelElement.rotatePositions(positions, Axes.Z, -angles.z, Vec3.EMPTY, rescale)
|
||||
}
|
||||
|
||||
val POSITION_1 = Vec3(-0.5f, -0.5f, -0.5f)
|
||||
|
@ -26,6 +26,7 @@ import de.bixilon.minosoft.gui.rendering.modding.events.FrustumChangeEvent
|
||||
import de.bixilon.minosoft.gui.rendering.modding.events.ScreenResizeEvent
|
||||
import de.bixilon.minosoft.gui.rendering.sky.SkyRenderer
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.blockPosition
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.chunkPosition
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.floor
|
||||
@ -250,7 +251,7 @@ class Camera(
|
||||
if (renderWindow.inputHandler.isKeyBindingDown(KeyBindingsNames.MOVE_RIGHT)) {
|
||||
movementDirection += cameraRight
|
||||
}
|
||||
val deltaMovement = if (movementDirection != VecUtil.EMPTY_VEC3) {
|
||||
val deltaMovement = if (movementDirection != Vec3.EMPTY) {
|
||||
movementDirection.normalize() * cameraSpeed
|
||||
} else {
|
||||
movementDirection
|
||||
@ -267,7 +268,7 @@ class Camera(
|
||||
playerEntity.velocity.y += 0.75f * ProtocolDefinition.GRAVITY
|
||||
playerEntity.onGround = false
|
||||
}
|
||||
if (deltaMovement != VecUtil.EMPTY_VEC3) {
|
||||
if (deltaMovement != Vec3.EMPTY) {
|
||||
playerEntity.move(deltaMovement, false)
|
||||
recalculateViewProjectionMatrix()
|
||||
currentPositionSent = false
|
||||
|
@ -21,10 +21,16 @@ import de.bixilon.minosoft.gui.rendering.util.VecUtil.ONE
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.clear
|
||||
import de.bixilon.minosoft.protocol.network.connection.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
||||
import de.bixilon.minosoft.util.KUtil.millis
|
||||
import glm_.vec3.Vec3
|
||||
import kotlin.random.Random
|
||||
|
||||
abstract class Particle(protected val connection: PlayConnection, protected val particleRenderer: ParticleRenderer, protected val position: Vec3, protected val data: ParticleData) {
|
||||
abstract class Particle(
|
||||
protected val connection: PlayConnection,
|
||||
protected val particleRenderer: ParticleRenderer,
|
||||
protected val position: Vec3,
|
||||
protected val data: ParticleData,
|
||||
) {
|
||||
protected val random = Random
|
||||
private var lastTickTime = -1L
|
||||
|
||||
@ -33,21 +39,7 @@ abstract class Particle(protected val connection: PlayConnection, protected val
|
||||
var dead = false
|
||||
var age: Int = 0
|
||||
protected set
|
||||
var tickAge: Int
|
||||
get() = age / ProtocolDefinition.TICK_TIME
|
||||
set(value) {
|
||||
age = value * ProtocolDefinition.TICK_TIME
|
||||
}
|
||||
var maxAge: Int = Integer.MAX_VALUE
|
||||
var maxTickAge: Int
|
||||
get() = maxAge / ProtocolDefinition.TICK_TIME
|
||||
set(value) {
|
||||
maxAge = value * ProtocolDefinition.TICK_TIME
|
||||
}
|
||||
|
||||
init {
|
||||
maxTickAge = (4.0f / (random.nextFloat() * 0.9f + 0.1f)).toInt()
|
||||
}
|
||||
var maxAge: Int = (4.0f / (random.nextFloat() * 0.9f + 0.1f)).millis
|
||||
|
||||
// moving
|
||||
val friction = Vec3.EMPTY
|
||||
|
@ -21,13 +21,15 @@ import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.Ex
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus
|
||||
import de.bixilon.minosoft.protocol.network.connection.PlayConnection
|
||||
import de.bixilon.minosoft.util.KUtil.asResourceLocation
|
||||
import de.bixilon.minosoft.util.KUtil.millis
|
||||
import de.bixilon.minosoft.util.KUtil.ticks
|
||||
import glm_.vec3.Vec3
|
||||
|
||||
class ExplosionEmitterParticle(connection: PlayConnection, particleRenderer: ParticleRenderer, position: Vec3, data: ParticleData) : NoRenderParticle(connection, particleRenderer, position, data) {
|
||||
private val explosionParticleType = connection.registries.particleTypeRegistry[ExplosionParticle]!!
|
||||
|
||||
init {
|
||||
maxTickAge = 8
|
||||
maxAge = 8.millis
|
||||
}
|
||||
|
||||
|
||||
@ -36,7 +38,7 @@ class ExplosionEmitterParticle(connection: PlayConnection, particleRenderer: Par
|
||||
for (i in 0 until 6) {
|
||||
val position = position + { (random.nextFloat() - random.nextFloat()) * 4.0f }
|
||||
|
||||
particleRenderer.add(ExplosionParticle(connection, particleRenderer, position, explosionParticleType.simple(), (tickAge.toFloat() / maxTickAge)))
|
||||
particleRenderer.add(ExplosionParticle(connection, particleRenderer, position, explosionParticleType.simple(), (age.ticks.toFloat() / maxAge.ticks)))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -20,12 +20,13 @@ import de.bixilon.minosoft.gui.rendering.particle.ParticleFactory
|
||||
import de.bixilon.minosoft.gui.rendering.particle.ParticleRenderer
|
||||
import de.bixilon.minosoft.protocol.network.connection.PlayConnection
|
||||
import de.bixilon.minosoft.util.KUtil.asResourceLocation
|
||||
import de.bixilon.minosoft.util.KUtil.ticks
|
||||
import glm_.vec3.Vec3
|
||||
|
||||
class ExplosionParticle(connection: PlayConnection, particleRenderer: ParticleRenderer, position: Vec3, data: ParticleData, val power: Float = 1.0f) : SimpleTextureParticle(connection, particleRenderer, position, data) {
|
||||
|
||||
init {
|
||||
maxTickAge = 6 + random.nextInt(4)
|
||||
maxAge = (6 + random.nextInt(4)).ticks
|
||||
val gray = random.nextFloat() * 0.6f + 0.4f
|
||||
color = gray.asGray()
|
||||
scale = 2.0f * (power - gray * 0.5f)
|
||||
|
@ -37,15 +37,14 @@ import glm_.vec3.Vec3
|
||||
import glm_.vec3.Vec3i
|
||||
|
||||
object VecUtil {
|
||||
val EMPTY_VEC3 = Vec3(0, 0, 0)
|
||||
val EMPTY_VEC3I = Vec3i(0, 0, 0)
|
||||
val ONES_VEC3 = Vec3(1)
|
||||
|
||||
val Vec3.Companion.EMPTY: Vec3
|
||||
get() = Vec3(EMPTY_VEC3)
|
||||
get() = Vec3(0, 0, 0)
|
||||
|
||||
val Vec3i.Companion.EMPTY: Vec3i
|
||||
get() = Vec3i(0, 0, 0)
|
||||
|
||||
val Vec3.Companion.ONE: Vec3
|
||||
get() = Vec3(ONES_VEC3)
|
||||
get() = Vec3(1, 1, 1)
|
||||
|
||||
fun JsonElement.toVec3(): Vec3 {
|
||||
return when (this) {
|
||||
@ -221,7 +220,7 @@ object VecUtil {
|
||||
|
||||
fun Vec3i.getWorldOffset(block: Block): Vec3 {
|
||||
if (block.randomOffsetType == null || !Minosoft.config.config.game.other.flowerRandomOffset) {
|
||||
return EMPTY_VEC3
|
||||
return Vec3.EMPTY
|
||||
}
|
||||
|
||||
val positionHash = generatePositionHash(x, 0, z)
|
||||
|
@ -14,6 +14,7 @@
|
||||
package de.bixilon.minosoft.util
|
||||
|
||||
import de.bixilon.minosoft.data.mappings.ResourceLocation
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
||||
import de.bixilon.minosoft.util.enum.AliasableEnum
|
||||
import sun.misc.Unsafe
|
||||
import java.util.*
|
||||
@ -113,4 +114,16 @@ object KUtil {
|
||||
fun Random.nextFloat(min: Float = Float.MIN_VALUE, max: Float = Float.MAX_VALUE): Float {
|
||||
return min + this.nextFloat() * (max - min)
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts millis to ticks
|
||||
*/
|
||||
val Number.ticks: Int
|
||||
get() = this.toInt() / ProtocolDefinition.TICK_TIME
|
||||
|
||||
/**
|
||||
* Converts ticks to millis
|
||||
*/
|
||||
val Number.millis: Int
|
||||
get() = this.toInt() * ProtocolDefinition.TICK_TIME
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user