mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-09 15:29:20 -04:00
world-renderer: improve stuff
This commit is contained in:
parent
fef4f12547
commit
461e30182d
@ -14,12 +14,16 @@ package de.bixilon.minosoft.data.direction
|
||||
|
||||
import de.bixilon.minosoft.data.Axes
|
||||
import de.bixilon.minosoft.data.registries.blocks.properties.serializer.BlockPropertiesSerializer
|
||||
import de.bixilon.minosoft.gui.rendering.models.FaceSize
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.get
|
||||
import de.bixilon.minosoft.util.KUtil
|
||||
import de.bixilon.minosoft.util.enum.ValuesEnum
|
||||
import glm_.vec3.Vec3
|
||||
import glm_.vec3.Vec3d
|
||||
import glm_.vec3.Vec3i
|
||||
import glm_.vec3.swizzle.xy
|
||||
import glm_.vec3.swizzle.xz
|
||||
import glm_.vec3.swizzle.yz
|
||||
import kotlin.math.abs
|
||||
|
||||
enum class Directions(
|
||||
@ -66,12 +70,20 @@ enum class Directions(
|
||||
|
||||
fun getPositions(from: Vec3, to: Vec3): Array<Vec3> {
|
||||
return when (this) {
|
||||
DOWN -> arrayOf(from, Vec3(to.x, from.y, from.y), Vec3(from.x, from.y, to.z), Vec3(to.x, from.y, to.z))
|
||||
UP -> arrayOf(to, Vec3(to.x, to.y, from.y), Vec3(from.x, to.y, to.z), Vec3(from.x, to.y, from.z))
|
||||
NORTH -> arrayOf(Vec3(to.x, to.y, from.y), Vec3(to.x, from.y, from.y), Vec3(from.x, to.y, from.z), from)
|
||||
SOUTH -> arrayOf(Vec3(from.x, from.y, to.z), Vec3(to.x, from.y, to.y), Vec3(from.x, to.y, to.z), to)
|
||||
WEST -> arrayOf(Vec3(from.x, to.y, to.z), Vec3(from.x, to.y, from.y), Vec3(from.x, from.y, to.z), from)
|
||||
EAST -> arrayOf(Vec3(to.x, from.y, from.z), Vec3(to.x, to.y, from.y), Vec3(to.x, from.y, to.z), to)
|
||||
DOWN -> arrayOf(from, Vec3(from.x, from.y, to.z), Vec3(to.x, from.y, to.z), Vec3(to.x, from.y, from.y))
|
||||
UP -> arrayOf(to, Vec3(from.x, to.y, to.z), Vec3(from.x, to.y, from.z), Vec3(to.x, to.y, from.y))
|
||||
NORTH -> arrayOf(Vec3(to.x, to.y, from.y), Vec3(from.x, to.y, from.z), from, Vec3(to.x, from.y, from.y))
|
||||
SOUTH -> arrayOf(Vec3(from.x, from.y, to.z), Vec3(from.x, to.y, to.z), to, Vec3(to.x, from.y, to.y))
|
||||
WEST -> arrayOf(Vec3(from.x, to.y, to.z), Vec3(from.x, from.y, to.z), from, Vec3(from.x, to.y, from.y))
|
||||
EAST -> arrayOf(Vec3(to.x, from.y, from.z), Vec3(to.x, from.y, to.z), to, Vec3(to.x, to.y, from.y))
|
||||
}
|
||||
}
|
||||
|
||||
fun getSize(from: Vec3, to: Vec3): FaceSize {
|
||||
return when (this) {
|
||||
DOWN, UP -> FaceSize(from.xz, to.xz)
|
||||
NORTH, SOUTH -> FaceSize(from.xy, to.xy)
|
||||
WEST, EAST -> FaceSize(from.yz, to.yz)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -18,10 +18,10 @@ import de.bixilon.minosoft.data.registries.blocks.BlockState
|
||||
import de.bixilon.minosoft.data.world.WorldEntities
|
||||
import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.fire.SmokeParticle
|
||||
import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.slowing.FlameParticle
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.center
|
||||
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
|
||||
|
@ -39,7 +39,6 @@ import de.bixilon.minosoft.data.text.ChatComponent
|
||||
import de.bixilon.minosoft.gui.rendering.input.camera.EntityPositionInfo
|
||||
import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.advanced.block.BlockDustParticle
|
||||
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.empty
|
||||
@ -47,6 +46,7 @@ import de.bixilon.minosoft.gui.rendering.util.VecUtil.floor
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.horizontal
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.inChunkPosition
|
||||
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.protocol.protocol.ProtocolDefinition
|
||||
import de.bixilon.minosoft.util.KUtil.synchronizedMapOf
|
||||
|
@ -23,8 +23,8 @@ import de.bixilon.minosoft.data.player.PlayerProperty
|
||||
import de.bixilon.minosoft.data.player.tab.TabListItem
|
||||
import de.bixilon.minosoft.data.registries.entities.EntityType
|
||||
import de.bixilon.minosoft.data.world.World
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.clamp
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import glm_.vec2.Vec2
|
||||
import glm_.vec3.Vec3d
|
||||
|
@ -20,7 +20,7 @@ import de.bixilon.minosoft.data.player.tab.TabListItem
|
||||
import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||
import de.bixilon.minosoft.data.registries.entities.EntityFactory
|
||||
import de.bixilon.minosoft.data.registries.entities.EntityType
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import glm_.vec3.Vec3d
|
||||
|
||||
|
@ -19,9 +19,9 @@ import de.bixilon.minosoft.data.player.LocalPlayerEntity
|
||||
import de.bixilon.minosoft.data.registries.AABB
|
||||
import de.bixilon.minosoft.data.registries.VoxelShape
|
||||
import de.bixilon.minosoft.data.world.Chunk
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.chunkPosition
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.inChunkPosition
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import glm_.vec2.Vec2i
|
||||
import glm_.vec3.Vec3
|
||||
|
@ -40,11 +40,12 @@ import de.bixilon.minosoft.data.tags.DefaultBlockTags
|
||||
import de.bixilon.minosoft.data.tags.Tag
|
||||
import de.bixilon.minosoft.gui.rendering.input.camera.MovementInput
|
||||
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.chunkPosition
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.clearZero
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.get
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3iUtil.EMPTY
|
||||
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
|
||||
|
@ -16,10 +16,11 @@ package de.bixilon.minosoft.data.registries
|
||||
import com.google.gson.JsonObject
|
||||
import de.bixilon.minosoft.data.Axes
|
||||
import de.bixilon.minosoft.data.direction.Directions
|
||||
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.vec.vec3.Vec3Util.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.ONE
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.toVec3
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.ONE
|
||||
import de.bixilon.minosoft.util.MMath.ceil
|
||||
import de.bixilon.minosoft.util.MMath.floor
|
||||
import glm_.Java.Companion.glm
|
||||
|
@ -18,9 +18,9 @@ import de.bixilon.minosoft.data.registries.blocks.BlockFactory
|
||||
import de.bixilon.minosoft.data.registries.blocks.BlockState
|
||||
import de.bixilon.minosoft.data.registries.registries.Registries
|
||||
import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.fire.SmokeParticle
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.horizontal
|
||||
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 glm_.vec3.Vec3d
|
||||
import glm_.vec3.Vec3i
|
||||
|
@ -20,7 +20,7 @@ import de.bixilon.minosoft.data.registries.blocks.BlockFactory
|
||||
import de.bixilon.minosoft.data.registries.blocks.BlockState
|
||||
import de.bixilon.minosoft.data.registries.fluid.Fluid
|
||||
import de.bixilon.minosoft.data.registries.registries.Registries
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.EMPTY
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import glm_.vec3.Vec3
|
||||
import glm_.vec3.Vec3i
|
||||
|
@ -21,8 +21,8 @@ import de.bixilon.minosoft.data.registries.particle.data.DustParticleData
|
||||
import de.bixilon.minosoft.data.registries.registries.Registries
|
||||
import de.bixilon.minosoft.data.text.Colors
|
||||
import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.dust.DustParticle
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.of
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import glm_.vec3.Vec3d
|
||||
import glm_.vec3.Vec3i
|
||||
|
@ -18,7 +18,7 @@ import de.bixilon.minosoft.data.registries.blocks.BlockFactory
|
||||
import de.bixilon.minosoft.data.registries.blocks.BlockState
|
||||
import de.bixilon.minosoft.data.registries.registries.Registries
|
||||
import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.fire.SmokeParticle
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import glm_.vec3.Vec3d
|
||||
import glm_.vec3.Vec3i
|
||||
|
@ -26,7 +26,7 @@ import de.bixilon.minosoft.data.text.Colors
|
||||
import de.bixilon.minosoft.gui.rendering.input.camera.hit.RaycastHit
|
||||
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.VecUtil.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.util.KUtil.chance
|
||||
import glm_.vec3.Vec3d
|
||||
|
@ -17,8 +17,8 @@ import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||
import de.bixilon.minosoft.data.registries.blocks.BlockState
|
||||
import de.bixilon.minosoft.data.registries.blocks.types.FluidBlock
|
||||
import de.bixilon.minosoft.data.registries.registries.Registries
|
||||
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.vec.vec3.Vec3dUtil.EMPTY
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import glm_.vec3.Vec3d
|
||||
import glm_.vec3.Vec3i
|
||||
|
@ -16,10 +16,10 @@ import de.bixilon.minosoft.data.entities.block.BlockEntity
|
||||
import de.bixilon.minosoft.data.registries.blocks.BlockState
|
||||
import de.bixilon.minosoft.data.world.biome.source.BiomeSource
|
||||
import de.bixilon.minosoft.data.world.light.LightAccessor
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.inChunkSectionPosition
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.of
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.sectionHeight
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3iUtil.EMPTY
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.util.KUtil.toSynchronizedMap
|
||||
import glm_.vec2.Vec2i
|
||||
|
@ -17,11 +17,11 @@ import de.bixilon.minosoft.Minosoft
|
||||
import de.bixilon.minosoft.data.registries.effects.DefaultStatusEffects
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader
|
||||
import de.bixilon.minosoft.gui.rendering.system.opengl.buffer.uniform.FloatOpenGLUniformBuffer
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.ONE
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.clamp
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.lerp
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.modify
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.ONE
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import glm_.glm
|
||||
import glm_.vec3.Vec3
|
||||
|
@ -15,7 +15,7 @@ package de.bixilon.minosoft.gui.rendering.block.mesh
|
||||
|
||||
import de.bixilon.minosoft.data.registries.AABB
|
||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3iUtil.EMPTY
|
||||
import glm_.vec3.Vec3i
|
||||
|
||||
class ChunkSectionMeshes(
|
||||
|
@ -18,13 +18,13 @@ import de.bixilon.minosoft.gui.rendering.gui.hud.HUDRenderer
|
||||
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIMeshCache
|
||||
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.Vec4Util.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.Vec4Util.spaceSize
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.isGreater
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.isSmaller
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.max
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.min
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4iUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4iUtil.spaceSize
|
||||
import glm_.vec2.Vec2i
|
||||
import glm_.vec4.Vec4i
|
||||
|
||||
|
@ -19,13 +19,13 @@ import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments.Compa
|
||||
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.Vec4Util.bottom
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.Vec4Util.horizontal
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.Vec4Util.left
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.Vec4Util.offset
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.Vec4Util.spaceSize
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.Vec4Util.top
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.Vec4Util.vertical
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4iUtil.bottom
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4iUtil.horizontal
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4iUtil.left
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4iUtil.offset
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4iUtil.spaceSize
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4iUtil.top
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4iUtil.vertical
|
||||
import de.bixilon.minosoft.util.KUtil.synchronizedListOf
|
||||
import de.bixilon.minosoft.util.KUtil.toSynchronizedList
|
||||
import glm_.vec2.Vec2i
|
||||
|
@ -17,10 +17,10 @@ import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
||||
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.Vec4Util.offset
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.Vec4Util.spaceSize
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.max
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4iUtil.offset
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4iUtil.spaceSize
|
||||
import de.bixilon.minosoft.util.KUtil.synchronizedListOf
|
||||
import de.bixilon.minosoft.util.KUtil.toSynchronizedList
|
||||
import glm_.vec2.Vec2i
|
||||
|
@ -18,8 +18,8 @@ import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments.Compa
|
||||
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.Vec4Util.horizontal
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.Vec4Util.offset
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4iUtil.horizontal
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4iUtil.offset
|
||||
import glm_.vec2.Vec2i
|
||||
import java.lang.Integer.min
|
||||
import kotlin.math.max
|
||||
|
@ -26,8 +26,8 @@ import de.bixilon.minosoft.gui.rendering.gui.elements.InfiniteSizeElement
|
||||
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.Vec4Util.offset
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4iUtil.offset
|
||||
import de.bixilon.minosoft.util.KUtil.decide
|
||||
import glm_.vec2.Vec2i
|
||||
|
||||
|
@ -22,8 +22,8 @@ import de.bixilon.minosoft.gui.rendering.gui.elements.layout.RowLayout
|
||||
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.Vec4Util.copy
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.max
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4iUtil.copy
|
||||
import glm_.vec2.Vec2i
|
||||
import java.lang.Integer.max
|
||||
|
||||
|
@ -23,9 +23,9 @@ import de.bixilon.minosoft.gui.rendering.gui.elements.text.FadingTextElement
|
||||
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.Vec4Util.left
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.Vec4Util.right
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4iUtil.left
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4iUtil.right
|
||||
import glm_.vec2.Vec2i
|
||||
import java.lang.Integer.max
|
||||
|
||||
|
@ -21,7 +21,7 @@ import de.bixilon.minosoft.gui.rendering.gui.elements.primitive.ImageElement
|
||||
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.Vec4Util.marginOf
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4iUtil.marginOf
|
||||
import glm_.vec2.Vec2i
|
||||
import java.lang.Integer.max
|
||||
|
||||
|
@ -16,8 +16,8 @@ package de.bixilon.minosoft.gui.rendering.input.camera
|
||||
|
||||
import de.bixilon.minosoft.data.registries.AABB
|
||||
import de.bixilon.minosoft.gui.rendering.RenderConstants
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.of
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3iUtil.EMPTY
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
||||
import de.bixilon.minosoft.util.KUtil
|
||||
import de.bixilon.minosoft.util.KUtil.get
|
||||
|
@ -13,9 +13,9 @@
|
||||
|
||||
package de.bixilon.minosoft.gui.rendering.models
|
||||
|
||||
import glm_.vec3.Vec3
|
||||
import glm_.vec2.Vec2
|
||||
|
||||
class FaceSize(
|
||||
val start: Vec3,
|
||||
val end: Vec3,
|
||||
val start: Vec2,
|
||||
val end: Vec2,
|
||||
)
|
||||
|
@ -47,7 +47,8 @@ class WeightedBakedModel(
|
||||
return model
|
||||
}
|
||||
}
|
||||
TODO("Should never happen!")
|
||||
|
||||
throw IllegalStateException("Could not find a model: This should never happen!")
|
||||
}
|
||||
|
||||
override fun getFaceSize(direction: Directions, random: Random): Array<FaceSize> {
|
||||
|
@ -17,22 +17,23 @@ import de.bixilon.minosoft.data.direction.Directions
|
||||
import de.bixilon.minosoft.data.world.light.LightAccessor
|
||||
import de.bixilon.minosoft.gui.rendering.block.mesh.ChunkSectionMesh
|
||||
import de.bixilon.minosoft.gui.rendering.models.FaceSize
|
||||
import glm_.vec3.Vec3
|
||||
import glm_.vec3.Vec3i
|
||||
import java.util.*
|
||||
|
||||
class BakedBlockStateModel(
|
||||
val faces: Array<Array<BakedFace>>,
|
||||
val sizes: Array<Array<FaceSize>>,
|
||||
) : BakedBlockModel {
|
||||
) : BakedBlockModel { // ToDo: Greedy meshable
|
||||
|
||||
override fun getFaceSize(direction: Directions, random: Random): Array<FaceSize> {
|
||||
return sizes[direction.ordinal]
|
||||
return arrayOf() // ToDo
|
||||
}
|
||||
|
||||
override fun singleRender(position: Vec3i, mesh: ChunkSectionMesh, random: Random, light: Int, ambientLight: IntArray) {
|
||||
val floatPosition = Vec3(position)
|
||||
for (direction in faces) {
|
||||
for (face in direction) {
|
||||
face.singleRender(position, mesh, light, ambientLight)
|
||||
face.singleRender(floatPosition, mesh, light, ambientLight)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -15,12 +15,14 @@ package de.bixilon.minosoft.gui.rendering.models.baked.block
|
||||
|
||||
import de.bixilon.minosoft.data.direction.Directions
|
||||
import de.bixilon.minosoft.gui.rendering.block.mesh.ChunkSectionMesh
|
||||
import de.bixilon.minosoft.gui.rendering.models.FaceSize
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.texture.AbstractTexture
|
||||
import de.bixilon.minosoft.gui.rendering.util.mesh.Mesh
|
||||
import glm_.vec2.Vec2
|
||||
import glm_.vec3.Vec3
|
||||
import glm_.vec3.Vec3i
|
||||
|
||||
class BakedFace(
|
||||
val faceSize: FaceSize,
|
||||
val positions: Array<Vec3>,
|
||||
val uv: Array<Vec2>,
|
||||
val shade: Boolean,
|
||||
@ -28,23 +30,10 @@ class BakedFace(
|
||||
val cullFace: Directions?,
|
||||
val texture: AbstractTexture,
|
||||
) {
|
||||
fun singleRender(position: Vec3i, mesh: ChunkSectionMesh, light: Int, ambientLight: IntArray) {
|
||||
val floatPosition = Vec3(position)
|
||||
|
||||
for (index in DRAW_ORDER) {
|
||||
mesh.addVertex(positions[index] + floatPosition, uv[index], texture, null, light)
|
||||
fun singleRender(position: Vec3, mesh: ChunkSectionMesh, light: Int, ambientLight: IntArray) {
|
||||
// ToDo: Ambient light
|
||||
for ((index, textureIndex) in Mesh.QUAD_DRAW_ODER) {
|
||||
mesh.addVertex(positions[index] + position, uv[textureIndex], texture, null, light)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
companion object {
|
||||
private val DRAW_ORDER = intArrayOf(
|
||||
0,
|
||||
1,
|
||||
3,
|
||||
3,
|
||||
2,
|
||||
0,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -13,24 +13,22 @@
|
||||
|
||||
package de.bixilon.minosoft.gui.rendering.models.display
|
||||
|
||||
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.vec.vec3.Vec3Util.toVec3
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3iUtil.toVec3i
|
||||
import glm_.vec3.Vec3
|
||||
import glm_.vec3.Vec3i
|
||||
|
||||
data class ModelDisplay(
|
||||
val rotation: Vec3i,
|
||||
val translation: Vec3i,
|
||||
val scale: Vec3,
|
||||
val rotation: Vec3i?,
|
||||
val translation: Vec3i?,
|
||||
val scale: Vec3?,
|
||||
) {
|
||||
companion object {
|
||||
operator fun invoke(data: Map<String, Any>): ModelDisplay {
|
||||
return ModelDisplay(
|
||||
rotation = data["rotation"]?.toVec3i() ?: Vec3i.EMPTY,
|
||||
translation = data["translation"]?.toVec3i() ?: Vec3i.EMPTY,
|
||||
scale = data["scale"]?.toVec3() ?: Vec3.ONE,
|
||||
rotation = data["rotation"]?.toVec3i(),
|
||||
translation = data["translation"]?.toVec3i(),
|
||||
scale = data["scale"]?.toVec3(),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -16,7 +16,6 @@ package de.bixilon.minosoft.gui.rendering.models.unbaked.block
|
||||
import de.bixilon.minosoft.data.direction.Directions
|
||||
import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||
import de.bixilon.minosoft.gui.rendering.models.FaceSize
|
||||
import de.bixilon.minosoft.gui.rendering.models.baked.block.BakedBlockModel
|
||||
import de.bixilon.minosoft.gui.rendering.models.baked.block.BakedBlockStateModel
|
||||
import de.bixilon.minosoft.gui.rendering.models.baked.block.BakedFace
|
||||
@ -70,21 +69,23 @@ data class UnbakedBlockStateModel(
|
||||
|
||||
|
||||
val faces: Array<MutableList<BakedFace>> = Array(Directions.VALUES.size) { mutableListOf() }
|
||||
val sizes: Array<MutableList<FaceSize>> = Array(Directions.VALUES.size) { mutableListOf() }
|
||||
|
||||
for (element in model.elements) {
|
||||
val rescale = element.rotation?.rescale ?: false
|
||||
for (face in element.faces) {
|
||||
val texture = resolvedTextures[face.texture.removePrefix("#")]!! // ToDo: Allow direct texture names?
|
||||
val positions = face.direction.getPositions(element.from, element.to)
|
||||
|
||||
|
||||
val texturePositions = arrayOf(
|
||||
Vec2(face.uvEnd.x, face.uvStart.y),
|
||||
face.uvStart,
|
||||
Vec2(face.uvStart.x, face.uvEnd.y),
|
||||
Vec2(face.uvEnd.x, face.uvStart.y),
|
||||
face.uvEnd,
|
||||
)
|
||||
|
||||
faces[face.direction.ordinal] += BakedFace(
|
||||
faceSize = face.direction.getSize(element.from, element.to),
|
||||
positions = positions,
|
||||
uv = texturePositions,
|
||||
shade = element.shade,
|
||||
@ -101,13 +102,7 @@ data class UnbakedBlockStateModel(
|
||||
finalFaces[index] = faceArray.toTypedArray()
|
||||
}
|
||||
|
||||
val finalSizes: Array<Array<FaceSize>?> = Array(sizes.size) { null }
|
||||
|
||||
for ((index, sizeArray) in sizes.withIndex()) {
|
||||
finalSizes[index] = sizeArray.toTypedArray()
|
||||
}
|
||||
|
||||
return BakedBlockStateModel(finalFaces.unsafeCast(), finalSizes.unsafeCast())
|
||||
return BakedBlockStateModel(finalFaces.unsafeCast())
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
@ -14,14 +14,13 @@
|
||||
package de.bixilon.minosoft.gui.rendering.models.unbaked.element
|
||||
|
||||
import de.bixilon.minosoft.data.Axes
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.EMPTY
|
||||
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(
|
||||
val origin: Vec3,
|
||||
val origin: Vec3?,
|
||||
val axis: Axes,
|
||||
val angle: Float,
|
||||
val rescale: Boolean,
|
||||
@ -30,7 +29,7 @@ data class UnbakedElementRotation(
|
||||
|
||||
operator fun invoke(data: Map<String, Any>): UnbakedElementRotation {
|
||||
return UnbakedElementRotation(
|
||||
origin = data["origin"]?.toVec3() ?: Vec3.EMPTY,
|
||||
origin = data["origin"]?.toVec3(),
|
||||
axis = Axes[data["axis"].toString()],
|
||||
angle = data["angle"].toFloat(),
|
||||
rescale = data["rescale"]?.toBoolean() ?: false,
|
||||
|
@ -19,9 +19,10 @@ import de.bixilon.minosoft.data.registries.particle.data.ParticleData
|
||||
import de.bixilon.minosoft.gui.rendering.particle.ParticleFactory
|
||||
import de.bixilon.minosoft.gui.rendering.particle.ParticleMesh
|
||||
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.assign
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.plusAssign
|
||||
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 glm_.vec3.Vec3
|
||||
|
@ -17,8 +17,8 @@ import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||
import de.bixilon.minosoft.data.registries.particle.data.ParticleData
|
||||
import de.bixilon.minosoft.gui.rendering.particle.ParticleFactory
|
||||
import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.ExplosionParticle
|
||||
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.vec.vec3.Vec3dUtil.EMPTY
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||
import glm_.vec3.Vec3d
|
||||
|
@ -15,7 +15,7 @@ package de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple
|
||||
|
||||
import de.bixilon.minosoft.data.registries.particle.data.ParticleData
|
||||
import de.bixilon.minosoft.data.text.RGBColor.Companion.asGray
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.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.util.MMath
|
||||
import glm_.vec3.Vec3d
|
||||
|
@ -17,7 +17,7 @@ import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||
import de.bixilon.minosoft.data.registries.particle.data.ParticleData
|
||||
import de.bixilon.minosoft.data.text.RGBColor.Companion.asGray
|
||||
import de.bixilon.minosoft.gui.rendering.particle.ParticleFactory
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.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.util.KUtil.toResourceLocation
|
||||
import glm_.vec3.Vec3d
|
||||
|
@ -17,7 +17,7 @@ import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||
import de.bixilon.minosoft.data.registries.particle.data.ParticleData
|
||||
import de.bixilon.minosoft.data.text.RGBColor
|
||||
import de.bixilon.minosoft.gui.rendering.particle.ParticleFactory
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.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.util.KUtil.toResourceLocation
|
||||
import glm_.glm
|
||||
|
@ -17,8 +17,8 @@ import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||
import de.bixilon.minosoft.data.registries.particle.data.ParticleData
|
||||
import de.bixilon.minosoft.data.text.RGBColor
|
||||
import de.bixilon.minosoft.gui.rendering.particle.ParticleFactory
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.assign
|
||||
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.toResourceLocation
|
||||
import glm_.pow
|
||||
|
@ -16,7 +16,7 @@ package de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.a
|
||||
import de.bixilon.minosoft.data.registries.particle.data.ParticleData
|
||||
import de.bixilon.minosoft.data.text.RGBColor
|
||||
import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.SimpleTextureParticle
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import glm_.vec3.Vec3d
|
||||
|
||||
|
@ -17,8 +17,8 @@ import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||
import de.bixilon.minosoft.data.registries.particle.data.ParticleData
|
||||
import de.bixilon.minosoft.gui.rendering.particle.ParticleFactory
|
||||
import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.SimpleTextureParticle
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.assign
|
||||
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.toResourceLocation
|
||||
import glm_.vec3.Vec3
|
||||
|
@ -19,7 +19,7 @@ import de.bixilon.minosoft.data.text.RGBColor.Companion.asGray
|
||||
import de.bixilon.minosoft.data.world.WorldEntities
|
||||
import de.bixilon.minosoft.gui.rendering.particle.ParticleFactory
|
||||
import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.SimpleTextureParticle
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.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.util.KUtil.toResourceLocation
|
||||
import glm_.vec3.Vec3d
|
||||
|
@ -16,7 +16,7 @@ package de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.d
|
||||
import de.bixilon.minosoft.data.registries.particle.data.ParticleData
|
||||
import de.bixilon.minosoft.data.text.RGBColor.Companion.asGray
|
||||
import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.SimpleTextureParticle
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.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.util.MMath
|
||||
import glm_.vec3.Vec3d
|
||||
|
@ -15,7 +15,7 @@ package de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.e
|
||||
|
||||
import de.bixilon.minosoft.data.registries.particle.data.ParticleData
|
||||
import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.SimpleTextureParticle
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.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.util.MMath
|
||||
import glm_.vec3.Vec3d
|
||||
|
@ -16,8 +16,8 @@ package de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.e
|
||||
import de.bixilon.minosoft.data.registries.particle.data.ParticleData
|
||||
import de.bixilon.minosoft.data.text.RGBColor
|
||||
import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.SimpleTextureParticle
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.assign
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import glm_.vec3.Vec3d
|
||||
import kotlin.math.pow
|
||||
|
@ -18,8 +18,8 @@ import de.bixilon.minosoft.data.registries.particle.data.ParticleData
|
||||
import de.bixilon.minosoft.gui.rendering.particle.ParticleFactory
|
||||
import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.SimpleTextureParticle
|
||||
import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.fire.SmokeParticle
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.sqr
|
||||
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.toResourceLocation
|
||||
import glm_.vec3.Vec3d
|
||||
|
@ -17,9 +17,9 @@ import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||
import de.bixilon.minosoft.data.registries.particle.data.ParticleData
|
||||
import de.bixilon.minosoft.gui.rendering.particle.ParticleFactory
|
||||
import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.SimpleTextureParticle
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.assign
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.of
|
||||
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.toResourceLocation
|
||||
import glm_.vec3.Vec3
|
||||
|
@ -17,7 +17,7 @@ import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||
import de.bixilon.minosoft.data.registries.particle.data.ParticleData
|
||||
import de.bixilon.minosoft.data.text.RGBColor
|
||||
import de.bixilon.minosoft.gui.rendering.particle.ParticleFactory
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.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.util.KUtil.toResourceLocation
|
||||
import glm_.vec3.Vec3d
|
||||
|
@ -22,8 +22,8 @@ import de.bixilon.minosoft.gui.rendering.input.camera.Camera
|
||||
import de.bixilon.minosoft.gui.rendering.modding.events.CameraPositionChangeEvent
|
||||
import de.bixilon.minosoft.gui.rendering.sound.sounds.Sound
|
||||
import de.bixilon.minosoft.gui.rendering.sound.sounds.SoundList
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.centerf
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.EMPTY
|
||||
import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
||||
|
@ -13,7 +13,8 @@
|
||||
|
||||
package de.bixilon.minosoft.gui.rendering.sound
|
||||
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY
|
||||
import glm_.vec3.Vec3
|
||||
import glm_.vec3.Vec3d
|
||||
import org.lwjgl.openal.AL10.*
|
||||
|
@ -14,7 +14,7 @@
|
||||
package de.bixilon.minosoft.gui.rendering.sound
|
||||
|
||||
import de.bixilon.minosoft.gui.rendering.sound.sounds.Sound
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.EMPTY
|
||||
import glm_.vec3.Vec3
|
||||
import org.lwjgl.openal.AL10.*
|
||||
|
||||
|
@ -20,12 +20,11 @@ import de.bixilon.minosoft.data.direction.Directions
|
||||
import de.bixilon.minosoft.data.registries.AABB
|
||||
import de.bixilon.minosoft.data.registries.blocks.RandomOffsetTypes
|
||||
import de.bixilon.minosoft.data.registries.blocks.types.Block
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.EMPTY
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
||||
import glm_.func.common.ceil
|
||||
import glm_.func.common.clamp
|
||||
import glm_.func.common.floor
|
||||
import glm_.func.cos
|
||||
import glm_.func.sin
|
||||
import glm_.glm
|
||||
import glm_.vec2.Vec2
|
||||
import glm_.vec2.Vec2i
|
||||
@ -38,20 +37,6 @@ import kotlin.random.Random
|
||||
|
||||
@Deprecated(message = "Use VecXUtil instead")
|
||||
object VecUtil {
|
||||
val Vec3.Companion.EMPTY: Vec3
|
||||
get() = Vec3(0.0f, 0.0f, 0.0f)
|
||||
|
||||
val Vec3d.Companion.EMPTY: Vec3d
|
||||
get() = Vec3d(0.0, 0.0, 0.0)
|
||||
|
||||
val Vec3i.Companion.EMPTY: Vec3i
|
||||
get() = Vec3i(0.0f, 0.0f, 0.0f)
|
||||
|
||||
val Vec3.Companion.ONE: Vec3
|
||||
get() = Vec3(1.0f, 1.0f, 1.0f)
|
||||
|
||||
val Vec3d.Companion.ONE: Vec3d
|
||||
get() = Vec3d(1.0, 1.0, 1.0)
|
||||
|
||||
fun Vec3.clear() {
|
||||
x = 0.0f
|
||||
@ -150,37 +135,6 @@ object VecUtil {
|
||||
val Vec3d.millis: Vec3d
|
||||
get() = this * ProtocolDefinition.TICKS_PER_SECOND
|
||||
|
||||
fun getRotatedValues(x: Float, y: Float, sin: Float, cos: Float, rescale: Boolean): Vec2 {
|
||||
val result = Vec2(x * cos - y * sin, x * sin + y * cos)
|
||||
if (rescale) {
|
||||
return result / cos
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
fun Vec3.rotate(angle: Float, axis: Axes): Vec3 {
|
||||
return this.rotate(angle, axis, false)
|
||||
}
|
||||
|
||||
fun Vec3.rotate(angle: Float, axis: Axes, rescale: Boolean): Vec3 {
|
||||
if (angle == 0.0f) {
|
||||
return this
|
||||
}
|
||||
return when (axis) {
|
||||
Axes.X -> {
|
||||
val rotatedValues = getRotatedValues(this.y, this.z, angle.sin, angle.cos, rescale)
|
||||
Vec3(this.x, rotatedValues)
|
||||
}
|
||||
Axes.Y -> {
|
||||
val rotatedValues = getRotatedValues(this.x, this.z, angle.sin, angle.cos, rescale)
|
||||
Vec3(rotatedValues.x, this.y, rotatedValues.y)
|
||||
}
|
||||
Axes.Z -> {
|
||||
val rotatedValues = getRotatedValues(this.x, this.y, angle.sin, angle.cos, rescale)
|
||||
Vec3(rotatedValues.x, rotatedValues.y, this.z)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun Vec3.rotate(axis: Vec3, sin: Float, cos: Float): Vec3 {
|
||||
return this * cos + (axis cross this) * sin + axis * (axis dot this) * (1 - cos)
|
||||
|
@ -17,7 +17,7 @@ import de.bixilon.minosoft.data.registries.AABB
|
||||
import de.bixilon.minosoft.data.registries.VoxelShape
|
||||
import de.bixilon.minosoft.data.text.RGBColor
|
||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.EMPTY
|
||||
import de.bixilon.minosoft.util.BitByte.isBit
|
||||
import de.bixilon.minosoft.util.MMath.positiveNegative
|
||||
import glm_.vec3.Vec3
|
||||
|
@ -13,8 +13,15 @@
|
||||
|
||||
package de.bixilon.minosoft.gui.rendering.util.vec.vec3
|
||||
|
||||
import de.bixilon.minosoft.data.Axes
|
||||
import de.bixilon.minosoft.util.KUtil.toFloat
|
||||
import glm_.func.cos
|
||||
import glm_.func.sin
|
||||
import glm_.vec2.Vec2
|
||||
import glm_.vec3.Vec3
|
||||
import glm_.vec3.swizzle.xy
|
||||
import glm_.vec3.swizzle.xz
|
||||
import glm_.vec3.swizzle.yz
|
||||
|
||||
object Vec3Util {
|
||||
|
||||
@ -24,16 +31,43 @@ object Vec3Util {
|
||||
val Vec3.Companion.EMPTY: Vec3
|
||||
get() = Vec3(0.0f, 0.0f, 0.0f)
|
||||
|
||||
val Vec3.Companion.ONE: Vec3
|
||||
get() = Vec3(1.0f, 1.0f, 1.0f)
|
||||
|
||||
val Vec3.Companion.MAX: Vec3
|
||||
get() = Vec3(Float.MAX_VALUE, Float.MAX_VALUE, Float.MAX_VALUE)
|
||||
|
||||
|
||||
fun rotate(x: Float, y: Float, sin: Float, cos: Float, rescale: Boolean): Vec2 {
|
||||
val result = Vec2(x * cos - y * sin, x * sin + y * cos)
|
||||
if (rescale) {
|
||||
return result / cos
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
|
||||
fun Vec3.rotate(angle: Float, axis: Axes, rescale: Boolean = false) {
|
||||
if (angle == 0.0f) {
|
||||
return
|
||||
}
|
||||
when (axis) {
|
||||
Axes.X -> this.yz = rotate(this.y, this.z, angle.sin, angle.cos, rescale)
|
||||
Axes.Y -> this.xz = rotate(this.x, this.z, angle.sin, angle.cos, rescale)
|
||||
Axes.Z -> this.xy = rotate(this.x, this.y, angle.sin, angle.cos, rescale)
|
||||
}
|
||||
}
|
||||
|
||||
fun Any?.toVec3(default: Vec3? = null): Vec3 {
|
||||
return toVec3N() ?: default ?: throw IllegalArgumentException("Not a Vec3: $this")
|
||||
}
|
||||
|
||||
fun Any?.toVec3N(): Vec3? {
|
||||
return when (this) {
|
||||
is List<*> -> Vec3(this[0].toFloat(), this[1].toFloat(), this[2].toFloat())
|
||||
is Map<*, *> -> Vec3(this["x"]?.toFloat() ?: 0.0f, this["y"]?.toFloat() ?: 0.0f, this["z"]?.toFloat() ?: 0.0f)
|
||||
is Number -> Vec3(this.toFloat())
|
||||
else -> default ?: throw IllegalArgumentException("Not a Vec3: $this")
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Minosoft
|
||||
* Copyright (C) 2021 Moritz Zwerger
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||
*/
|
||||
|
||||
package de.bixilon.minosoft.gui.rendering.util.vec.vec3
|
||||
|
||||
import glm_.vec3.Vec3d
|
||||
|
||||
object Vec3dUtil {
|
||||
|
||||
val Vec3d.Companion.MIN: Vec3d
|
||||
get() = Vec3d(Double.MIN_VALUE, Double.MIN_VALUE, Double.MIN_VALUE)
|
||||
|
||||
val Vec3d.Companion.EMPTY: Vec3d
|
||||
get() = Vec3d(0.0, 0.0, 0.0)
|
||||
|
||||
val Vec3d.Companion.ONE: Vec3d
|
||||
get() = Vec3d(1.0, 1.0, 1.0)
|
||||
|
||||
val Vec3d.Companion.MAX: Vec3d
|
||||
get() = Vec3d(Double.MAX_VALUE, Double.MAX_VALUE, Double.MAX_VALUE)
|
||||
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Minosoft
|
||||
* Copyright (C) 2021 Moritz Zwerger
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||
*/
|
||||
|
||||
package de.bixilon.minosoft.gui.rendering.util.vec.vec4
|
||||
|
||||
import glm_.vec4.Vec4
|
||||
|
||||
object Vec4Util {
|
||||
|
||||
val Vec4.Companion.MIN: Vec4
|
||||
get() = Vec4(Float.MIN_VALUE, Float.MIN_VALUE, Float.MIN_VALUE, Float.MIN_VALUE)
|
||||
|
||||
val Vec4.Companion.EMPTY: Vec4
|
||||
get() = Vec4(0.0f, 0.0f, 0.0f, 0.0f)
|
||||
|
||||
val Vec4.Companion.MAX: Vec4
|
||||
get() = Vec4(Float.MAX_VALUE, Float.MAX_VALUE, Float.MAX_VALUE, Float.MAX_VALUE)
|
||||
}
|
@ -11,23 +11,12 @@
|
||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||
*/
|
||||
|
||||
package de.bixilon.minosoft.gui.rendering.util.vec
|
||||
package de.bixilon.minosoft.gui.rendering.util.vec.vec4
|
||||
|
||||
import glm_.vec2.Vec2i
|
||||
import glm_.vec4.Vec4
|
||||
import glm_.vec4.Vec4i
|
||||
|
||||
object Vec4Util {
|
||||
|
||||
val Vec4.Companion.MIN: Vec4
|
||||
get() = Vec4(Float.MIN_VALUE, Float.MIN_VALUE, Float.MIN_VALUE, Float.MIN_VALUE)
|
||||
|
||||
val Vec4.Companion.EMPTY: Vec4
|
||||
get() = Vec4(0.0f, 0.0f, 0.0f, 0.0f)
|
||||
|
||||
val Vec4.Companion.MAX: Vec4
|
||||
get() = Vec4(Float.MAX_VALUE, Float.MAX_VALUE, Float.MAX_VALUE, Float.MAX_VALUE)
|
||||
|
||||
object Vec4iUtil {
|
||||
|
||||
val Vec4i.Companion.MIN: Vec4i
|
||||
get() = Vec4i(Int.MIN_VALUE, Int.MIN_VALUE, Int.MIN_VALUE, Int.MIN_VALUE)
|
@ -13,7 +13,7 @@
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play
|
||||
|
||||
import de.bixilon.minosoft.data.direction.Directions
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3iUtil.EMPTY
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
|
@ -16,7 +16,7 @@ import de.bixilon.minosoft.data.Difficulties
|
||||
import de.bixilon.minosoft.data.abilities.Gamemodes
|
||||
import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||
import de.bixilon.minosoft.data.registries.dimension.DimensionProperties
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY
|
||||
import de.bixilon.minosoft.modding.event.events.RespawnEvent
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.PlayS2CPacket
|
||||
|
Loading…
x
Reference in New Issue
Block a user