even better fov multiplier

This commit is contained in:
Bixilon 2021-06-27 19:08:30 +02:00
parent a9280eef30
commit 02f458cff5
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
43 changed files with 134 additions and 58 deletions

View File

@ -12,6 +12,7 @@
*/ */
package de.bixilon.minosoft.data package de.bixilon.minosoft.data
import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.registries.blocks.properties.serializer.BlockPropertiesSerializer import de.bixilon.minosoft.data.registries.blocks.properties.serializer.BlockPropertiesSerializer
import de.bixilon.minosoft.util.KUtil import de.bixilon.minosoft.util.KUtil
import de.bixilon.minosoft.util.enum.ValuesEnum import de.bixilon.minosoft.util.enum.ValuesEnum

View File

@ -0,0 +1,24 @@
/*
* 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.data.direction
import glm_.vec3.Vec3
import glm_.vec3.Vec3d
import glm_.vec3.Vec3i
interface AbstractDirection {
val vector: Vec3i
val vectorf: Vec3
val vectord: Vec3d
}

View File

@ -1,6 +1,6 @@
/* /*
* Minosoft * Minosoft
* Copyright (C) 2020 Moritz Zwerger * 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 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.
* *
@ -10,8 +10,9 @@
* *
* This software is not affiliated with Mojang AB, the original developer of Minecraft. * This software is not affiliated with Mojang AB, the original developer of Minecraft.
*/ */
package de.bixilon.minosoft.data 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.data.registries.blocks.properties.serializer.BlockPropertiesSerializer
import de.bixilon.minosoft.gui.rendering.chunk.models.FaceSize import de.bixilon.minosoft.gui.rendering.chunk.models.FaceSize
import de.bixilon.minosoft.gui.rendering.chunk.models.loading.BlockModelElement import de.bixilon.minosoft.gui.rendering.chunk.models.loading.BlockModelElement
@ -24,7 +25,10 @@ import glm_.vec3.Vec3d
import glm_.vec3.Vec3i import glm_.vec3.Vec3i
import kotlin.math.abs import kotlin.math.abs
enum class Directions(val horizontalId: Int, val vector: Vec3i) { enum class Directions(
val horizontalId: Int,
override val vector: Vec3i,
) : AbstractDirection {
DOWN(-1, Vec3i(0, -1, 0)), DOWN(-1, Vec3i(0, -1, 0)),
UP(-1, Vec3i(0, 1, 0)), UP(-1, Vec3i(0, 1, 0)),
NORTH(2, Vec3i(0, 0, -1)), NORTH(2, Vec3i(0, 0, -1)),
@ -32,8 +36,8 @@ enum class Directions(val horizontalId: Int, val vector: Vec3i) {
WEST(1, Vec3i(-1, 0, 0)), WEST(1, Vec3i(-1, 0, 0)),
EAST(3, Vec3i(1, 0, 0)); EAST(3, Vec3i(1, 0, 0));
val vectorf = Vec3(vector) override val vectorf = Vec3(vector)
val vectord = Vec3d(vector) override val vectord = Vec3d(vector)
val axis: Axes get() = Axes.byDirection(this) val axis: Axes get() = Axes.byDirection(this)

View File

@ -0,0 +1,33 @@
/*
* 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.data.direction
import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus
import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3
import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3d
import glm_.vec3.Vec3
import glm_.vec3.Vec3d
import glm_.vec3.Vec3i
class FakeDirection(override val vector: Vec3i) : AbstractDirection {
override val vectorf: Vec3 = vector.toVec3
override val vectord: Vec3d = vector.toVec3d
companion object {
val NORTH_WEST = FakeDirection(Directions.NORTH + Directions.WEST)
val NORTH_EAST = FakeDirection(Directions.NORTH + Directions.EAST)
val SOUTH_WEST = FakeDirection(Directions.SOUTH + Directions.WEST)
val SOUTH_EAST = FakeDirection(Directions.SOUTH + Directions.WEST)
}
}

View File

@ -12,7 +12,7 @@
*/ */
package de.bixilon.minosoft.data.entities package de.bixilon.minosoft.data.entities
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.entities.entities.animal.Axolotl import de.bixilon.minosoft.data.entities.entities.animal.Axolotl
import de.bixilon.minosoft.data.entities.entities.npc.villager.data.VillagerData import de.bixilon.minosoft.data.entities.entities.npc.villager.data.VillagerData
import de.bixilon.minosoft.data.entities.entities.npc.villager.data.VillagerLevels import de.bixilon.minosoft.data.entities.entities.npc.villager.data.VillagerLevels

View File

@ -13,7 +13,7 @@
package de.bixilon.minosoft.data.entities.block package de.bixilon.minosoft.data.entities.block
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.protocol.network.connection.PlayConnection import de.bixilon.minosoft.protocol.network.connection.PlayConnection

View File

@ -13,7 +13,7 @@
package de.bixilon.minosoft.data.entities.block package de.bixilon.minosoft.data.entities.block
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.inventory.ItemStack
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.blocks.BlockState import de.bixilon.minosoft.data.registries.blocks.BlockState

View File

@ -13,7 +13,7 @@
package de.bixilon.minosoft.data.entities.block.piston package de.bixilon.minosoft.data.entities.block.piston
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.entities.block.BlockActionEntity import de.bixilon.minosoft.data.entities.block.BlockActionEntity
import de.bixilon.minosoft.data.entities.block.BlockEntity import de.bixilon.minosoft.data.entities.block.BlockEntity
import de.bixilon.minosoft.data.entities.block.BlockEntityFactory import de.bixilon.minosoft.data.entities.block.BlockEntityFactory

View File

@ -12,7 +12,7 @@
*/ */
package de.bixilon.minosoft.data.entities.entities.decoration package de.bixilon.minosoft.data.entities.entities.decoration
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.entities.EntityMetaDataFields import de.bixilon.minosoft.data.entities.EntityMetaDataFields
import de.bixilon.minosoft.data.entities.EntityRotation import de.bixilon.minosoft.data.entities.EntityRotation
import de.bixilon.minosoft.data.entities.entities.EntityMetaDataFunction import de.bixilon.minosoft.data.entities.entities.EntityMetaDataFunction

View File

@ -12,7 +12,7 @@
*/ */
package de.bixilon.minosoft.data.entities.entities.decoration package de.bixilon.minosoft.data.entities.entities.decoration
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.entities.EntityRotation import de.bixilon.minosoft.data.entities.EntityRotation
import de.bixilon.minosoft.data.entities.entities.Entity import de.bixilon.minosoft.data.entities.entities.Entity
import de.bixilon.minosoft.data.entities.entities.EntityMetaDataFunction import de.bixilon.minosoft.data.entities.entities.EntityMetaDataFunction

View File

@ -12,7 +12,7 @@
*/ */
package de.bixilon.minosoft.data.entities.entities.monster package de.bixilon.minosoft.data.entities.entities.monster
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.entities.EntityMetaDataFields import de.bixilon.minosoft.data.entities.EntityMetaDataFields
import de.bixilon.minosoft.data.entities.EntityRotation import de.bixilon.minosoft.data.entities.EntityRotation
import de.bixilon.minosoft.data.entities.entities.EntityMetaDataFunction import de.bixilon.minosoft.data.entities.entities.EntityMetaDataFunction

View File

@ -13,7 +13,7 @@
package de.bixilon.minosoft.data.entities.meta package de.bixilon.minosoft.data.entities.meta
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.entities.EntityMetaDataFields import de.bixilon.minosoft.data.entities.EntityMetaDataFields
import de.bixilon.minosoft.data.entities.EntityRotation import de.bixilon.minosoft.data.entities.EntityRotation
import de.bixilon.minosoft.data.entities.Poses import de.bixilon.minosoft.data.entities.Poses

View File

@ -14,7 +14,7 @@
package de.bixilon.minosoft.data.physics package de.bixilon.minosoft.data.physics
import de.bixilon.minosoft.data.Axes import de.bixilon.minosoft.data.Axes
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.player.LocalPlayerEntity import de.bixilon.minosoft.data.player.LocalPlayerEntity
import de.bixilon.minosoft.gui.rendering.chunk.VoxelShape import de.bixilon.minosoft.gui.rendering.chunk.VoxelShape
import de.bixilon.minosoft.gui.rendering.chunk.models.AABB import de.bixilon.minosoft.gui.rendering.chunk.models.AABB

View File

@ -14,10 +14,10 @@ package de.bixilon.minosoft.data.player
import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.Minosoft
import de.bixilon.minosoft.data.Axes import de.bixilon.minosoft.data.Axes
import de.bixilon.minosoft.data.Directions
import de.bixilon.minosoft.data.abilities.Gamemodes import de.bixilon.minosoft.data.abilities.Gamemodes
import de.bixilon.minosoft.data.abilities.ItemCooldown import de.bixilon.minosoft.data.abilities.ItemCooldown
import de.bixilon.minosoft.data.accounts.Account import de.bixilon.minosoft.data.accounts.Account
import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.entities.EntityRotation import de.bixilon.minosoft.data.entities.EntityRotation
import de.bixilon.minosoft.data.entities.entities.player.PlayerEntity import de.bixilon.minosoft.data.entities.entities.player.PlayerEntity
import de.bixilon.minosoft.data.entities.entities.player.RemotePlayerEntity import de.bixilon.minosoft.data.entities.entities.player.RemotePlayerEntity

View File

@ -14,7 +14,7 @@
package de.bixilon.minosoft.data.registries.blocks.properties package de.bixilon.minosoft.data.registries.blocks.properties
import de.bixilon.minosoft.data.Axes import de.bixilon.minosoft.data.Axes
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.registries.blocks.properties.serializer.BlockPropertiesSerializer import de.bixilon.minosoft.data.registries.blocks.properties.serializer.BlockPropertiesSerializer
import de.bixilon.minosoft.data.registries.blocks.properties.serializer.BooleanBlockPropertiesSerializer import de.bixilon.minosoft.data.registries.blocks.properties.serializer.BooleanBlockPropertiesSerializer
import de.bixilon.minosoft.data.registries.blocks.properties.serializer.IntBlockPropertiesSerializer import de.bixilon.minosoft.data.registries.blocks.properties.serializer.IntBlockPropertiesSerializer

View File

@ -14,7 +14,7 @@
package de.bixilon.minosoft.data.registries.blocks.types package de.bixilon.minosoft.data.registries.blocks.types
import com.google.gson.JsonObject import com.google.gson.JsonObject
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.entities.block.BlockEntity import de.bixilon.minosoft.data.entities.block.BlockEntity
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.blocks.BlockState import de.bixilon.minosoft.data.registries.blocks.BlockState

View File

@ -14,7 +14,7 @@
package de.bixilon.minosoft.data.registries.blocks.types.portal package de.bixilon.minosoft.data.registries.blocks.types.portal
import com.google.gson.JsonObject import com.google.gson.JsonObject
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.blocks.BlockState import de.bixilon.minosoft.data.registries.blocks.BlockState
import de.bixilon.minosoft.data.registries.blocks.types.Block import de.bixilon.minosoft.data.registries.blocks.types.Block

View File

@ -14,7 +14,7 @@
package de.bixilon.minosoft.data.registries.blocks.types.wall package de.bixilon.minosoft.data.registries.blocks.types.wall
import com.google.gson.JsonObject import com.google.gson.JsonObject
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.inventory.ItemStack
import de.bixilon.minosoft.data.player.Hands import de.bixilon.minosoft.data.player.Hands
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation

View File

@ -14,7 +14,7 @@
package de.bixilon.minosoft.data.registries.blocks.types.wall package de.bixilon.minosoft.data.registries.blocks.types.wall
import com.google.gson.JsonObject import com.google.gson.JsonObject
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.blocks.BlockState import de.bixilon.minosoft.data.registries.blocks.BlockState
import de.bixilon.minosoft.data.registries.blocks.properties.Attachments import de.bixilon.minosoft.data.registries.blocks.properties.Attachments

View File

@ -13,7 +13,7 @@
package de.bixilon.minosoft.data.registries.fluid package de.bixilon.minosoft.data.registries.fluid
import com.google.gson.JsonObject import com.google.gson.JsonObject
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.blocks.BlockState import de.bixilon.minosoft.data.registries.blocks.BlockState
import de.bixilon.minosoft.data.registries.blocks.types.FluidBlock import de.bixilon.minosoft.data.registries.blocks.types.FluidBlock

View File

@ -14,7 +14,7 @@
package de.bixilon.minosoft.data.registries.fluid.lava package de.bixilon.minosoft.data.registries.fluid.lava
import com.google.gson.JsonObject import com.google.gson.JsonObject
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.blocks.BlockState import de.bixilon.minosoft.data.registries.blocks.BlockState
import de.bixilon.minosoft.data.registries.fluid.FlowableFluid import de.bixilon.minosoft.data.registries.fluid.FlowableFluid

View File

@ -15,7 +15,7 @@ package de.bixilon.minosoft.data.registries.items.tools
import com.google.gson.JsonObject import com.google.gson.JsonObject
import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.Minosoft
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.inventory.ItemStack
import de.bixilon.minosoft.data.player.Hands import de.bixilon.minosoft.data.player.Hands
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation

View File

@ -15,7 +15,7 @@ package de.bixilon.minosoft.data.registries.items.tools
import com.google.gson.JsonObject import com.google.gson.JsonObject
import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.Minosoft
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.inventory.ItemStack
import de.bixilon.minosoft.data.player.Hands import de.bixilon.minosoft.data.player.Hands
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation

View File

@ -4,7 +4,7 @@ import com.google.gson.JsonArray
import com.google.gson.JsonElement import com.google.gson.JsonElement
import com.google.gson.JsonPrimitive import com.google.gson.JsonPrimitive
import de.bixilon.minosoft.data.Axes import de.bixilon.minosoft.data.Axes
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.gui.rendering.chunk.models.AABB import de.bixilon.minosoft.gui.rendering.chunk.models.AABB
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY 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.ONE

View File

@ -15,7 +15,8 @@ package de.bixilon.minosoft.gui.rendering.chunk
import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.Minosoft
import de.bixilon.minosoft.config.config.game.controls.KeyBindingsNames import de.bixilon.minosoft.config.config.game.controls.KeyBindingsNames
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.direction.FakeDirection
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.blocks.BlockState import de.bixilon.minosoft.data.registries.blocks.BlockState
import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties
@ -243,8 +244,8 @@ class WorldRenderer(
} }
// ensure all neighbor chunks are loaded // ensure all neighbor chunks are loaded
for (direction in Directions.SIDES) { for (neighbourPosition in chunkPosition.neighbourPositions) {
val neighborChunk = world.chunks[chunkPosition + direction] val neighborChunk = world.chunks[neighbourPosition]
if (neighborChunk == null || !neighborChunk.isFullyLoaded) { if (neighborChunk == null || !neighborChunk.isFullyLoaded) {
// neighbors not loaded, doing later // neighbors not loaded, doing later
queuedChunks.add(chunkPosition) queuedChunks.add(chunkPosition)
@ -270,17 +271,10 @@ class WorldRenderer(
} }
private fun checkNeighbours(chunkPosition: Vec2i) { private fun checkNeighbours(chunkPosition: Vec2i) {
val neighborsPositions: Array<Vec2i> = arrayOf( checkQueuedChunks(chunkPosition.neighbourPositions)
chunkPosition + Directions.NORTH,
chunkPosition + Directions.SOUTH,
chunkPosition + Directions.WEST,
chunkPosition + Directions.EAST,
)
checkQueuedChunks(neighborsPositions)
} }
private fun checkQueuedChunks(chunkPositions: Array<Vec2i>) { private fun checkQueuedChunks(chunkPositions: List<Vec2i>) {
for (position in chunkPositions) { for (position in chunkPositions) {
if (queuedChunks.contains(position)) { if (queuedChunks.contains(position)) {
prepareChunk(position, checkQueued = false) prepareChunk(position, checkQueued = false)
@ -470,5 +464,19 @@ class WorldRenderer(
private operator fun Int.plus(upOrDown: Directions): Int { private operator fun Int.plus(upOrDown: Directions): Int {
return this + upOrDown.vector.y return this + upOrDown.vector.y
} }
val Vec2i.neighbourPositions: List<Vec2i>
get() {
return listOf(
this + Directions.NORTH,
this + Directions.SOUTH,
this + Directions.WEST,
this + Directions.EAST,
this + FakeDirection.NORTH_WEST,
this + FakeDirection.NORTH_EAST,
this + FakeDirection.SOUTH_WEST,
this + FakeDirection.SOUTH_EAST,
)
}
} }
} }

View File

@ -2,7 +2,7 @@ package de.bixilon.minosoft.gui.rendering.chunk.models
import com.google.gson.JsonObject import com.google.gson.JsonObject
import de.bixilon.minosoft.data.Axes import de.bixilon.minosoft.data.Axes
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY 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.ONE
import de.bixilon.minosoft.gui.rendering.util.VecUtil.get import de.bixilon.minosoft.gui.rendering.util.VecUtil.get

View File

@ -15,7 +15,8 @@ package de.bixilon.minosoft.gui.rendering.chunk.models.loading
import com.google.gson.JsonObject import com.google.gson.JsonObject
import de.bixilon.minosoft.data.Axes import de.bixilon.minosoft.data.Axes
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
import de.bixilon.minosoft.gui.rendering.util.VecUtil.rotate import de.bixilon.minosoft.gui.rendering.util.VecUtil.rotate
import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3 import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3
import glm_.func.rad import glm_.func.rad

View File

@ -14,7 +14,7 @@
package de.bixilon.minosoft.gui.rendering.chunk.models.loading package de.bixilon.minosoft.gui.rendering.chunk.models.loading
import com.google.gson.JsonObject import com.google.gson.JsonObject
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.gui.rendering.chunk.models.AABB 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
import de.bixilon.minosoft.gui.rendering.util.VecUtil.readUV import de.bixilon.minosoft.gui.rendering.util.VecUtil.readUV

View File

@ -15,7 +15,7 @@ package de.bixilon.minosoft.gui.rendering.chunk.models.renderable
import com.google.common.collect.HashBiMap import com.google.common.collect.HashBiMap
import com.google.gson.JsonObject import com.google.gson.JsonObject
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.biomes.Biome import de.bixilon.minosoft.data.registries.biomes.Biome
import de.bixilon.minosoft.data.text.RGBColor import de.bixilon.minosoft.data.text.RGBColor

View File

@ -16,7 +16,7 @@ package de.bixilon.minosoft.gui.rendering.chunk.models.renderable
import com.google.common.collect.HashBiMap import com.google.common.collect.HashBiMap
import com.google.gson.JsonObject import com.google.gson.JsonObject
import de.bixilon.minosoft.data.Axes import de.bixilon.minosoft.data.Axes
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.text.RGBColor import de.bixilon.minosoft.data.text.RGBColor
import de.bixilon.minosoft.gui.rendering.chunk.ChunkMeshCollection import de.bixilon.minosoft.gui.rendering.chunk.ChunkMeshCollection
import de.bixilon.minosoft.gui.rendering.chunk.SectionArrayMesh import de.bixilon.minosoft.gui.rendering.chunk.SectionArrayMesh

View File

@ -1,6 +1,6 @@
package de.bixilon.minosoft.gui.rendering.chunk.models.renderable package de.bixilon.minosoft.gui.rendering.chunk.models.renderable
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.biomes.Biome import de.bixilon.minosoft.data.registries.biomes.Biome
import de.bixilon.minosoft.data.registries.blocks.BlockState import de.bixilon.minosoft.data.registries.blocks.BlockState

View File

@ -13,7 +13,7 @@
package de.bixilon.minosoft.gui.rendering.chunk.models.renderable package de.bixilon.minosoft.gui.rendering.chunk.models.renderable
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.gui.rendering.chunk.models.FaceSize import de.bixilon.minosoft.gui.rendering.chunk.models.FaceSize
import de.bixilon.minosoft.gui.rendering.textures.Texture import de.bixilon.minosoft.gui.rendering.textures.Texture

View File

@ -14,7 +14,7 @@
package de.bixilon.minosoft.gui.rendering.hud.nodes.debug package de.bixilon.minosoft.gui.rendering.hud.nodes.debug
import de.bixilon.minosoft.config.config.game.controls.KeyBindingsNames import de.bixilon.minosoft.config.config.game.controls.KeyBindingsNames
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.gui.rendering.chunk.WorldRenderer import de.bixilon.minosoft.gui.rendering.chunk.WorldRenderer
import de.bixilon.minosoft.gui.rendering.hud.HUDElementProperties import de.bixilon.minosoft.gui.rendering.hud.HUDElementProperties

View File

@ -14,8 +14,8 @@
package de.bixilon.minosoft.gui.rendering.input package de.bixilon.minosoft.gui.rendering.input
import de.bixilon.minosoft.config.config.game.controls.KeyBindingsNames import de.bixilon.minosoft.config.config.game.controls.KeyBindingsNames
import de.bixilon.minosoft.data.Directions
import de.bixilon.minosoft.data.abilities.Gamemodes import de.bixilon.minosoft.data.abilities.Gamemodes
import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.inventory.ItemStack
import de.bixilon.minosoft.data.player.Hands import de.bixilon.minosoft.data.player.Hands
import de.bixilon.minosoft.data.registries.blocks.BlockState import de.bixilon.minosoft.data.registries.blocks.BlockState

View File

@ -13,7 +13,7 @@
package de.bixilon.minosoft.gui.rendering.input.camera.hit package de.bixilon.minosoft.gui.rendering.input.camera.hit
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.registries.blocks.BlockState import de.bixilon.minosoft.data.registries.blocks.BlockState
import de.bixilon.minosoft.util.KUtil.format import de.bixilon.minosoft.util.KUtil.format
import glm_.vec3.Vec3d import glm_.vec3.Vec3d

View File

@ -13,7 +13,7 @@
package de.bixilon.minosoft.gui.rendering.input.camera.hit package de.bixilon.minosoft.gui.rendering.input.camera.hit
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.entities.entities.Entity import de.bixilon.minosoft.data.entities.entities.Entity
import glm_.vec3.Vec3d import glm_.vec3.Vec3d

View File

@ -13,7 +13,7 @@
package de.bixilon.minosoft.gui.rendering.input.camera.hit package de.bixilon.minosoft.gui.rendering.input.camera.hit
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.registries.blocks.BlockState import de.bixilon.minosoft.data.registries.blocks.BlockState
import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties
import de.bixilon.minosoft.data.registries.fluid.Fluid import de.bixilon.minosoft.data.registries.fluid.Fluid

View File

@ -13,7 +13,7 @@
package de.bixilon.minosoft.gui.rendering.input.camera.hit package de.bixilon.minosoft.gui.rendering.input.camera.hit
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import glm_.vec3.Vec3d import glm_.vec3.Vec3d
abstract class RaycastHit( abstract class RaycastHit(

View File

@ -19,7 +19,8 @@ import com.google.gson.JsonObject
import com.google.gson.JsonPrimitive import com.google.gson.JsonPrimitive
import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.Minosoft
import de.bixilon.minosoft.data.Axes import de.bixilon.minosoft.data.Axes
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.AbstractDirection
import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.registries.blocks.RandomOffsetTypes import de.bixilon.minosoft.data.registries.blocks.RandomOffsetTypes
import de.bixilon.minosoft.data.registries.blocks.types.Block import de.bixilon.minosoft.data.registries.blocks.types.Block
import de.bixilon.minosoft.gui.rendering.chunk.models.AABB import de.bixilon.minosoft.gui.rendering.chunk.models.AABB
@ -265,7 +266,7 @@ object VecUtil {
return Vec3i((x + vec2.x), y, (z + vec2.y)) return Vec3i((x + vec2.x), y, (z + vec2.y))
} }
infix operator fun Vec3i.plus(direction: Directions?): Vec3i { infix operator fun Vec3i.plus(direction: AbstractDirection?): Vec3i {
return this + direction?.vector return this + direction?.vector
} }
@ -277,7 +278,7 @@ object VecUtil {
return Vec2i(x + vec3.x, y + vec3.z) return Vec2i(x + vec3.x, y + vec3.z)
} }
infix operator fun Vec2i.plus(direction: Directions): Vec2i { infix operator fun Vec2i.plus(direction: AbstractDirection): Vec2i {
return this + direction.vector return this + direction.vector
} }
@ -465,4 +466,8 @@ object VecUtil {
z = 0.0 z = 0.0
} }
} }
operator fun AbstractDirection.plus(direction: AbstractDirection): Vec3i {
return this.vector + direction.vector
}
} }

View File

@ -12,7 +12,7 @@
*/ */
package de.bixilon.minosoft.protocol.packets.c2s.play package de.bixilon.minosoft.protocol.packets.c2s.play
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
import de.bixilon.minosoft.protocol.protocol.PlayOutByteBuffer import de.bixilon.minosoft.protocol.protocol.PlayOutByteBuffer
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions import de.bixilon.minosoft.protocol.protocol.ProtocolVersions

View File

@ -12,7 +12,7 @@
*/ */
package de.bixilon.minosoft.protocol.packets.c2s.play package de.bixilon.minosoft.protocol.packets.c2s.play
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.inventory.ItemStack
import de.bixilon.minosoft.data.player.Hands import de.bixilon.minosoft.data.player.Hands
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket

View File

@ -12,8 +12,8 @@
*/ */
package de.bixilon.minosoft.protocol.packets.s2c.play package de.bixilon.minosoft.protocol.packets.s2c.play
import de.bixilon.minosoft.data.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.Directions.Companion.byId import de.bixilon.minosoft.data.direction.Directions.Companion.byId
import de.bixilon.minosoft.data.entities.entities.decoration.Painting import de.bixilon.minosoft.data.entities.entities.decoration.Painting
import de.bixilon.minosoft.data.registries.Motive import de.bixilon.minosoft.data.registries.Motive
import de.bixilon.minosoft.modding.event.events.EntitySpawnEvent import de.bixilon.minosoft.modding.event.events.EntitySpawnEvent

View File

@ -14,11 +14,11 @@ package de.bixilon.minosoft.protocol.protocol
import com.google.gson.JsonObject import com.google.gson.JsonObject
import com.google.gson.JsonParser import com.google.gson.JsonParser
import de.bixilon.minosoft.data.Directions
import de.bixilon.minosoft.data.commands.CommandArgumentNode import de.bixilon.minosoft.data.commands.CommandArgumentNode
import de.bixilon.minosoft.data.commands.CommandLiteralNode import de.bixilon.minosoft.data.commands.CommandLiteralNode
import de.bixilon.minosoft.data.commands.CommandNode import de.bixilon.minosoft.data.commands.CommandNode
import de.bixilon.minosoft.data.commands.CommandRootNode import de.bixilon.minosoft.data.commands.CommandRootNode
import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.data.entities.Poses import de.bixilon.minosoft.data.entities.Poses
import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.tags.Tag import de.bixilon.minosoft.data.tags.Tag