From 22be9bbe00dcd06f1e52e6c095c1525e9a1035ee Mon Sep 17 00:00:00 2001 From: a dinosaur Date: Sun, 20 Aug 2023 06:09:48 +1000 Subject: [PATCH] they call me knuckles unlike sonic i dont chuckle i just flex my knuckles --- src/main/kotlin/Game.kt | 20 ++++++-------------- src/main/kotlin/Resources.kt | 1 + src/main/kotlin/Util.kt | 18 +++++++++++++++--- src/main/resources/knux.g3db | Bin 0 -> 75780 bytes 4 files changed, 22 insertions(+), 17 deletions(-) create mode 100644 src/main/resources/knux.g3db diff --git a/src/main/kotlin/Game.kt b/src/main/kotlin/Game.kt index 51a2bfa..3e6159c 100644 --- a/src/main/kotlin/Game.kt +++ b/src/main/kotlin/Game.kt @@ -34,11 +34,13 @@ class Game: ApplicationAdapter() private lateinit var colin: Colin private var jolkRot = 0.0f private var lightTheta = 0.0f + private val rand = RandomXS128(69 + 420 + 1919 + 916 + 42 + 1) private lateinit var cubeInstance: ModelInstance private lateinit var floorInstance: ModelInstance private lateinit var suzanneInstance: ModelInstance private lateinit var rockBatch: ModelCache + private lateinit var knux: ModelInstance private fun makeCube(texture: Texture): Model { @@ -171,26 +173,13 @@ class Game: ApplicationAdapter() floorInstance = ModelInstance(floor) suzanneInstance = ModelInstance(assetManager.get("suzanne.g3db", Model::class.java)) val rock = assetManager.get("rock.g3db", Model::class.java) - val rand = RandomXS128(69 + 420 + 1919 + 916 + 42 + 1) - val randQuaternion = { rand: RandomXS128 -> - var x: Float - var y: Float - var z: Float - do { x = rand.nextFloat(-1.0f, 1.0f); y = rand.nextFloat(-1.0f, 1.0f); z = x * x + y * y } while (z > 1.0f) - var u: Float - var v: Float - var w: Float - do { u = rand.nextFloat(-1.0f, 1.0f); v = rand.nextFloat(-1.0f, 1.0f); w = u * u + v * v } while (w > 1.0f) - val s = kotlin.math.sqrt((1.0f - z) / w) - Quaternion(x, y, s * u, s * v) - } val rocks = Array(75) { i-> ModelInstance(rock, Matrix4( Vector3( rand.nextFloat(joeMany), rand.nextFloat(-0.75f, 10.125f), -rand.nextFloat(joeMany)), - randQuaternion(rand), + rand.nextQuaternion(), Util.one * rand.nextFloat(0.6f, 6.2f))) } rockBatch = ModelCache().apply { @@ -200,6 +189,7 @@ class Game: ApplicationAdapter() } suzanneInstance.transform = Matrix4().translate(3.0f, 1.0f, -3.5f) + knux = ModelInstance(assetManager.get("knux.g3db", Model::class.java)) } override fun resize(width: Int, height: Int) @@ -254,12 +244,14 @@ class Game: ApplicationAdapter() .rotate(0.0f, 1.0f, 0.0f, jolkRot) .scale(0.25f, 0.25f, 0.25f) cubeInstance.transform = world + knux.transform.rotate(rand.nextQuaternion().slerp(Quaternion(), 0.9f)) modelBatch.begin(colin.camera) modelBatch.render(floorInstance, env) modelBatch.render(rockBatch, env) modelBatch.render(cubeInstance, env) modelBatch.render(suzanneInstance, env) + modelBatch.render(knux, env) modelBatch.end() spriteBatch.begin() diff --git a/src/main/kotlin/Resources.kt b/src/main/kotlin/Resources.kt index e015459..d881670 100644 --- a/src/main/kotlin/Resources.kt +++ b/src/main/kotlin/Resources.kt @@ -50,6 +50,7 @@ class Resources private constructor() assetManager.load("cobblestone_normal.png", Texture::class.java, linearMipped) assetManager.load("cobblestone_specular.png", Texture::class.java, linearMipped) assetManager.load("rock.g3db", Model::class.java) + assetManager.load("knux.g3db", Model::class.java) } } diff --git a/src/main/kotlin/Util.kt b/src/main/kotlin/Util.kt index 7e15b83..379ab5f 100644 --- a/src/main/kotlin/Util.kt +++ b/src/main/kotlin/Util.kt @@ -3,9 +3,7 @@ package gay.pizza.CavesOfJolk import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g3d.Attribute import com.badlogic.gdx.graphics.g3d.Attributes -import com.badlogic.gdx.math.MathUtils -import com.badlogic.gdx.math.Vector2 -import com.badlogic.gdx.math.Vector3 +import com.badlogic.gdx.math.* import ktx.math.div import ktx.math.times import ktx.math.unaryMinus @@ -75,3 +73,17 @@ fun Color.mix(rhs: Color, x: Float) = Color( fun Attributes.get(type: Long) = get(type) as? T fun Random.nextFloat(min: Float, max: Float) = min + nextFloat() * (max - min) + +fun RandomXS128.nextQuaternion(): Quaternion +{ + var x: Float + var y: Float + var z: Float + do { x = nextFloat(-1.0f, 1.0f); y = nextFloat(-1.0f, 1.0f); z = x * x + y * y } while (z > 1.0f) + var u: Float + var v: Float + var w: Float + do { u = nextFloat(-1.0f, 1.0f); v = nextFloat(-1.0f, 1.0f); w = u * u + v * v } while (w > 1.0f) + val s = kotlin.math.sqrt((1.0f - z) / w) + return Quaternion(x, y, s * u, s * v) +} diff --git a/src/main/resources/knux.g3db b/src/main/resources/knux.g3db new file mode 100644 index 0000000000000000000000000000000000000000..722c2d5fbae5c2de33cd34d230d25f4bfd7508d7 GIT binary patch literal 75780 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 Ssjt%y7U~zAHH|#=-2VsCeX3>v literal 0 HcmV?d00001