From 315fe01034bf3b3ef5126df02a92793aaa6f99e2 Mon Sep 17 00:00:00 2001 From: ScarletRedMan Date: Tue, 8 Apr 2025 00:07:57 +0700 Subject: [PATCH] checkpoint --- .../msb3/api/boot/DefaultBootstrap.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/api/src/main/java/ru/dragonestia/msb3/api/boot/DefaultBootstrap.java b/api/src/main/java/ru/dragonestia/msb3/api/boot/DefaultBootstrap.java index e7e806c..97f4af5 100644 --- a/api/src/main/java/ru/dragonestia/msb3/api/boot/DefaultBootstrap.java +++ b/api/src/main/java/ru/dragonestia/msb3/api/boot/DefaultBootstrap.java @@ -89,13 +89,25 @@ public class DefaultBootstrap extends ServerInitializer { meta.setBlockState(rot.block()); meta.setScale(rot.rot()); - var quaternion = Quaternion.DEFAULT // В классе кватерниона уже писать логику для его вычисления - .normalize(); - meta.setLeftRotation(quaternion.toFloatArray()); + var defaultVector = new Vec(0, 1, 0); + + double t = defaultVector.dot(normal) / 2; + + double x = 1 - Math.cos(t); + meta.setLeftRotation(new Quaternion( + normal.x(), + normal.y(), + normal.z(), + n(normal.x()) - n(normal.y()) - n(normal.z()) + ).normalize().toFloatArray()); entity.setInstance(instance, startPos); } var line = new DebugLine("test", startPos, endPos, NamedTextColor.GOLD); line.setInstance(instance, startPos); } + + public static double n(double input) { + return Math.sqrt(1 - input * input); + } }