From f08c74cfb9debaf7e9bb3dd272a2c7caefb5e367 Mon Sep 17 00:00:00 2001 From: Govindas Date: Wed, 8 Mar 2023 17:33:41 +0200 Subject: [PATCH] Fix 2.6.4 Skript support & fix compilation --- LICENSE | 0 README.md | 0 biosphere2.iml | 14 ++++ pom.xml | 48 +++++++------- scripts/biosphere-test.sk | 0 scripts/gallery.sk | 0 .../io/github/bi0qaw/biosphere/Biosphere.java | 17 ++--- .../biosphere/expression/ExprDegToRad.java | 2 +- .../expression/ExprFrameFromEntity.java | 0 .../expression/ExprFrameFromYawPitch.java | 0 .../expression/ExprFrameYawPitch.java | 0 .../biosphere/expression/ExprLocationBox.java | 0 .../expression/ExprLocationBoxOutline.java | 0 .../expression/ExprLocationCircle.java | 2 +- .../expression/ExprLocationCube.java | 2 +- .../expression/ExprLocationCubeOutline.java | 13 ++-- .../expression/ExprLocationCylinderLoc.java | 2 +- .../expression/ExprLocationHelix.java | 2 +- .../expression/ExprLocationLine.java | 15 ++--- .../expression/ExprLocationLineLoc.java | 3 +- .../expression/ExprLocationLinkAll.java | 12 ++-- .../expression/ExprLocationMidpoint.java | 2 +- .../expression/ExprLocationMove.java | 2 +- .../expression/ExprLocationOffset.java | 0 .../expression/ExprLocationPath.java | 0 .../expression/ExprLocationPolygon.java | 2 +- .../ExprLocationPolygonOutline.java | 2 +- .../expression/ExprLocationReflection.java | 2 +- .../expression/ExprLocationRotXYZ.java | 2 +- .../expression/ExprLocationRotate.java | 2 +- .../expression/ExprLocationScale.java | 2 +- .../expression/ExprLocationSphere.java | 2 +- .../expression/ExprLocationSphereLoc.java | 2 +- .../expression/ExprLocationSphereRand.java | 2 +- .../biosphere/expression/ExprRadToDeg.java | 2 +- .../biosphere/expression/ExprVectorBox.java | 0 .../expression/ExprVectorBoxOutline.java | 0 .../expression/ExprVectorCircle.java | 2 +- .../biosphere/expression/ExprVectorCube.java | 2 +- .../expression/ExprVectorCubeOutline.java | 2 +- .../biosphere/expression/ExprVectorHelix.java | 2 +- .../expression/ExprVectorInFrame.java | 0 .../biosphere/expression/ExprVectorLine.java | 2 +- .../ExprVectorLineBetweenVectors.java | 0 .../expression/ExprVectorLinkAll.java | 2 +- .../expression/ExprVectorMidpoint.java | 4 +- .../biosphere/expression/ExprVectorMove.java | 2 +- .../expression/ExprVectorOffset.java | 0 .../biosphere/expression/ExprVectorPath.java | 0 .../expression/ExprVectorPolygon.java | 2 +- .../expression/ExprVectorPolygonOutline.java | 2 +- .../expression/ExprVectorReflection.java | 2 +- .../expression/ExprVectorRotate.java | 2 +- .../expression/ExprVectorRotateXYZ.java | 2 +- .../biosphere/expression/ExprVectorScale.java | 2 +- .../expression/ExprVectorSphere.java | 2 +- .../expression/ExprVectorSphereRand.java | 2 +- .../bi0qaw/biosphere/type/FrameType.java | 25 +++----- .../github/bi0qaw/biosphere/util/Frame.java | 0 .../bi0qaw/biosphere/util/LocationLib.java | 1 - .../bi0qaw/biosphere/util/VectorLib.java | 0 .../bi0qaw/biosphere/util/VectorMath.java | 0 src/main/resources/plugin.yml | 6 +- target/biosphere2-1.0.3.jar | Bin 0 -> 113445 bytes .../github/bi0qaw/biosphere/Biosphere.class | Bin 0 -> 9032 bytes .../biosphere/expression/ExprDegToRad.class | Bin 0 -> 2889 bytes .../expression/ExprFrameFromEntity.class | Bin 0 -> 3639 bytes .../expression/ExprFrameFromYawPitch.class | Bin 0 -> 3377 bytes .../expression/ExprFrameYawPitch$1.class | Bin 0 -> 1052 bytes .../expression/ExprFrameYawPitch.class | Bin 0 -> 5236 bytes .../expression/ExprLocationBox.class | Bin 0 -> 2912 bytes .../expression/ExprLocationBoxOutline.class | Bin 0 -> 3355 bytes .../expression/ExprLocationCircle.class | Bin 0 -> 3508 bytes .../expression/ExprLocationCube.class | Bin 0 -> 3298 bytes .../expression/ExprLocationCubeOutline.class | Bin 0 -> 3592 bytes .../expression/ExprLocationCylinderLoc.class | Bin 0 -> 3780 bytes .../expression/ExprLocationHelix.class | Bin 0 -> 3942 bytes .../expression/ExprLocationLine.class | Bin 0 -> 3478 bytes .../expression/ExprLocationLineLoc.class | Bin 0 -> 3688 bytes .../expression/ExprLocationLinkAll.class | Bin 0 -> 3597 bytes .../expression/ExprLocationMidpoint.class | Bin 0 -> 3008 bytes .../expression/ExprLocationMove.class | Bin 0 -> 3555 bytes .../expression/ExprLocationOffset.class | Bin 0 -> 3224 bytes .../expression/ExprLocationPath.class | Bin 0 -> 3238 bytes .../expression/ExprLocationPolygon.class | Bin 0 -> 3562 bytes .../ExprLocationPolygonOutline.class | Bin 0 -> 3436 bytes .../expression/ExprLocationReflection.class | Bin 0 -> 3719 bytes .../expression/ExprLocationRotXYZ.class | Bin 0 -> 3803 bytes .../expression/ExprLocationRotate.class | Bin 0 -> 3969 bytes .../expression/ExprLocationScale.class | Bin 0 -> 4341 bytes .../expression/ExprLocationSphere.class | Bin 0 -> 3501 bytes .../expression/ExprLocationSphereLoc.class | Bin 0 -> 3975 bytes .../expression/ExprLocationSphereRand.class | Bin 0 -> 3419 bytes .../biosphere/expression/ExprRadToDeg.class | Bin 0 -> 2909 bytes .../biosphere/expression/ExprVectorBox.class | Bin 0 -> 2948 bytes .../expression/ExprVectorBoxOutline.class | Bin 0 -> 3393 bytes .../expression/ExprVectorCircle.class | Bin 0 -> 3252 bytes .../biosphere/expression/ExprVectorCube.class | Bin 0 -> 3122 bytes .../expression/ExprVectorCubeOutline.class | Bin 0 -> 3413 bytes .../expression/ExprVectorHelix.class | Bin 0 -> 3667 bytes .../expression/ExprVectorInFrame.class | Bin 0 -> 3591 bytes .../biosphere/expression/ExprVectorLine.class | Bin 0 -> 3422 bytes .../ExprVectorLineBetweenVectors.class | Bin 0 -> 3384 bytes .../expression/ExprVectorLinkAll.class | Bin 0 -> 3555 bytes .../expression/ExprVectorMidpoint.class | Bin 0 -> 3056 bytes .../biosphere/expression/ExprVectorMove.class | Bin 0 -> 3561 bytes .../expression/ExprVectorOffset.class | Bin 0 -> 3157 bytes .../biosphere/expression/ExprVectorPath.class | Bin 0 -> 3267 bytes .../expression/ExprVectorPolygon.class | Bin 0 -> 3372 bytes .../expression/ExprVectorPolygonOutline.class | Bin 0 -> 3661 bytes .../expression/ExprVectorReflection.class | Bin 0 -> 3640 bytes .../expression/ExprVectorRotate.class | Bin 0 -> 3790 bytes .../expression/ExprVectorRotateXYZ.class | Bin 0 -> 3848 bytes .../expression/ExprVectorScale.class | Bin 0 -> 4183 bytes .../expression/ExprVectorSphere.class | Bin 0 -> 3338 bytes .../expression/ExprVectorSphereRand.class | Bin 0 -> 3293 bytes .../bi0qaw/biosphere/type/FrameType$1.class | Bin 0 -> 2832 bytes .../bi0qaw/biosphere/type/FrameType$2.class | Bin 0 -> 3435 bytes .../bi0qaw/biosphere/type/FrameType.class | Bin 0 -> 1991 bytes .../github/bi0qaw/biosphere/util/Frame.class | Bin 0 -> 2729 bytes .../bi0qaw/biosphere/util/LocationLib.class | Bin 0 -> 8474 bytes .../bi0qaw/biosphere/util/TrigLib.class | Bin 0 -> 15149 bytes .../bi0qaw/biosphere/util/VectorLib.class | Bin 0 -> 10237 bytes .../bi0qaw/biosphere/util/VectorMath.class | Bin 0 -> 5850 bytes target/classes/plugin.yml | 6 ++ target/maven-archiver/pom.properties | 5 ++ .../compile/default-compile/createdFiles.lst | 60 ++++++++++++++++++ .../compile/default-compile/inputFiles.lst | 57 +++++++++++++++++ 128 files changed, 232 insertions(+), 118 deletions(-) mode change 100644 => 100755 LICENSE mode change 100644 => 100755 README.md create mode 100644 biosphere2.iml mode change 100644 => 100755 pom.xml mode change 100644 => 100755 scripts/biosphere-test.sk mode change 100644 => 100755 scripts/gallery.sk mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/Biosphere.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprFrameFromEntity.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprFrameFromYawPitch.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprFrameYawPitch.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationBox.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationBoxOutline.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationOffset.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationPath.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorBox.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorBoxOutline.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorCircle.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorCube.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorCubeOutline.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorHelix.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorInFrame.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorLine.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorLineBetweenVectors.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorLinkAll.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorMidpoint.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorMove.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorOffset.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorPath.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorPolygon.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorPolygonOutline.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorReflection.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorRotate.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorRotateXYZ.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorScale.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorSphere.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorSphereRand.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/type/FrameType.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/util/Frame.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/util/LocationLib.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/util/VectorLib.java mode change 100644 => 100755 src/main/java/io/github/bi0qaw/biosphere/util/VectorMath.java mode change 100644 => 100755 src/main/resources/plugin.yml create mode 100644 target/biosphere2-1.0.3.jar create mode 100644 target/classes/io/github/bi0qaw/biosphere/Biosphere.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprDegToRad.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprFrameFromEntity.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprFrameFromYawPitch.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprFrameYawPitch$1.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprFrameYawPitch.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationBox.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationBoxOutline.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationCircle.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationCube.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationCubeOutline.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationCylinderLoc.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationHelix.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationLine.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationLineLoc.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationLinkAll.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationMidpoint.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationMove.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationOffset.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationPath.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationPolygon.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationPolygonOutline.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationReflection.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationRotXYZ.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationRotate.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationScale.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationSphere.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationSphereLoc.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationSphereRand.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprRadToDeg.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorBox.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorBoxOutline.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorCircle.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorCube.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorCubeOutline.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorHelix.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorInFrame.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorLine.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorLineBetweenVectors.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorLinkAll.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorMidpoint.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorMove.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorOffset.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorPath.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorPolygon.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorPolygonOutline.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorReflection.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorRotate.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorRotateXYZ.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorScale.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorSphere.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorSphereRand.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/type/FrameType$1.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/type/FrameType$2.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/type/FrameType.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/util/Frame.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/util/LocationLib.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/util/TrigLib.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/util/VectorLib.class create mode 100644 target/classes/io/github/bi0qaw/biosphere/util/VectorMath.class create mode 100644 target/classes/plugin.yml create mode 100644 target/maven-archiver/pom.properties create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/biosphere2.iml b/biosphere2.iml new file mode 100644 index 0000000..f5704fd --- /dev/null +++ b/biosphere2.iml @@ -0,0 +1,14 @@ + + + + + + + SPIGOT + PAPER + BUKKIT + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml old mode 100644 new mode 100755 index 814c150..07936ea --- a/pom.xml +++ b/pom.xml @@ -6,58 +6,50 @@ io.github.bi0qaw biosphere2 - 1.0.2 + 1.0.3 org.apache.maven.plugins maven-compiler-plugin - 1.6 - 1.6 + 1.8 + 1.8 - - bensku-repo - https://raw.githubusercontent.com/bensku/mvn-repo/master - spigot-repo - https://hub.spigotmc.org/nexus/content/repositories/snapshots/ - - true - daily - + https://hub.spigotmc.org/nexus/content/repositories/snapshots/org/spigotmc/spigot-api/ - sk89q-repo - http://maven.sk89q.com/repo + jitpack.io + https://jitpack.io - destroystokyo-repo + mvnrepository + https://mvnrepository.com + + + PaperMC https://repo.destroystokyo.com/repository/maven-public/ - vault-repo - http://nexus.hc.to/content/repositories/pub_releases - - - jitpack-repo - https://jitpack.io + sk89q + http://maven.sk89q.com/repo - ch.njol - skript - 2.2-dev32 - compile + com.github.SkriptLang + Skript + 2.6.1 + provided @@ -66,6 +58,12 @@ 1.12.2-R0.1-SNAPSHOT provided + + org.jetbrains + annotations + RELEASE + compile + \ No newline at end of file diff --git a/scripts/biosphere-test.sk b/scripts/biosphere-test.sk old mode 100644 new mode 100755 diff --git a/scripts/gallery.sk b/scripts/gallery.sk old mode 100644 new mode 100755 diff --git a/src/main/java/io/github/bi0qaw/biosphere/Biosphere.java b/src/main/java/io/github/bi0qaw/biosphere/Biosphere.java old mode 100644 new mode 100755 index 5272d74..44b64e7 --- a/src/main/java/io/github/bi0qaw/biosphere/Biosphere.java +++ b/src/main/java/io/github/bi0qaw/biosphere/Biosphere.java @@ -1,22 +1,19 @@ package io.github.bi0qaw.biosphere; -import io.github.bi0qaw.biosphere.expression.*; import ch.njol.skript.Skript; +import ch.njol.skript.SkriptAddon; import ch.njol.skript.lang.ExpressionType; +import io.github.bi0qaw.biosphere.expression.*; +import io.github.bi0qaw.biosphere.type.FrameType; +import io.github.bi0qaw.biosphere.util.Frame; import org.bukkit.Location; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.util.Vector; -import io.github.bi0qaw.biosphere.type.FrameType; -import io.github.bi0qaw.biosphere.util.Frame; public class Biosphere extends JavaPlugin { - private static Biosphere plugin; - public void onEnable(){ - - plugin = this; - Skript.registerAddon(this); + SkriptAddon addon = Skript.registerAddon(this); new FrameType(); @@ -74,8 +71,4 @@ public class Biosphere extends JavaPlugin { Skript.registerExpression(ExprVectorSphere.class, Vector.class, ExpressionType.SIMPLE, "[vector ]sphere with radius %number%(,| and) density %number%"); Skript.registerExpression(ExprVectorSphereRand.class, Vector.class, ExpressionType.SIMPLE, "[vector ]random sphere with radius %number%(,| and) density %number%"); } - - public static Biosphere getPlugin() { - return plugin; - } } diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprDegToRad.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprDegToRad.java index 6fd6e86..3d86efc 100755 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprDegToRad.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprDegToRad.java @@ -4,7 +4,7 @@ import ch.njol.skript.doc.Description; import ch.njol.skript.doc.Examples; import ch.njol.skript.doc.Name; import org.bukkit.event.Event; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser.ParseResult; diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprFrameFromEntity.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprFrameFromEntity.java old mode 100644 new mode 100755 diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprFrameFromYawPitch.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprFrameFromYawPitch.java old mode 100644 new mode 100755 diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprFrameYawPitch.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprFrameYawPitch.java old mode 100644 new mode 100755 diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationBox.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationBox.java old mode 100644 new mode 100755 diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationBoxOutline.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationBoxOutline.java old mode 100644 new mode 100755 diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationCircle.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationCircle.java index 4e5f6fa..e973482 100755 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationCircle.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationCircle.java @@ -8,7 +8,7 @@ import io.github.bi0qaw.biosphere.util.VectorLib; import org.bukkit.Location; import org.bukkit.event.Event; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser.ParseResult; diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationCube.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationCube.java index 2520743..ce38384 100755 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationCube.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationCube.java @@ -8,7 +8,7 @@ import io.github.bi0qaw.biosphere.util.VectorLib; import org.bukkit.Location; import org.bukkit.event.Event; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser.ParseResult; diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationCubeOutline.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationCubeOutline.java index eb20855..c132144 100755 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationCubeOutline.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationCubeOutline.java @@ -3,18 +3,15 @@ package io.github.bi0qaw.biosphere.expression; import ch.njol.skript.doc.Description; import ch.njol.skript.doc.Examples; import ch.njol.skript.doc.Name; -import io.github.bi0qaw.biosphere.util.LocationLib; -import io.github.bi0qaw.biosphere.util.VectorLib; -import org.bukkit.Location; -import org.bukkit.event.Event; - -import javax.annotation.Nullable; - import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser.ParseResult; import ch.njol.skript.lang.util.SimpleExpression; import ch.njol.util.Kleenean; -import org.bukkit.util.Vector; +import io.github.bi0qaw.biosphere.util.LocationLib; +import org.bukkit.Location; +import org.bukkit.event.Event; + +import org.jetbrains.annotations.Nullable; @Name("Location Cube Outline") @Description("Creates a list of locations in the shape of a cube, including the corners and vertices of the cube. The density value controls the amount of points. A higher number increases the amount of points. A density of 1 corresponds to 1 point per block.") diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationCylinderLoc.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationCylinderLoc.java index 8f91d74..591738b 100755 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationCylinderLoc.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationCylinderLoc.java @@ -7,7 +7,7 @@ import io.github.bi0qaw.biosphere.util.LocationLib; import io.github.bi0qaw.biosphere.util.VectorMath; import org.bukkit.Location; import org.bukkit.event.Event; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser.ParseResult; diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationHelix.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationHelix.java index 7822dab..92ab161 100755 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationHelix.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationHelix.java @@ -7,7 +7,7 @@ import io.github.bi0qaw.biosphere.util.LocationLib; import io.github.bi0qaw.biosphere.util.VectorLib; import org.bukkit.Location; import org.bukkit.event.Event; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser.ParseResult; diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationLine.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationLine.java index d271a36..e81c649 100755 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationLine.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationLine.java @@ -3,21 +3,14 @@ package io.github.bi0qaw.biosphere.expression; import ch.njol.skript.doc.Description; import ch.njol.skript.doc.Examples; import ch.njol.skript.doc.Name; -import io.github.bi0qaw.biosphere.util.LocationLib; -import io.github.bi0qaw.biosphere.util.VectorLib; -import org.bukkit.Location; -import org.bukkit.event.Event; - -import javax.annotation.Nullable; - import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser.ParseResult; import ch.njol.skript.lang.util.SimpleExpression; import ch.njol.util.Kleenean; -import org.bukkit.util.Vector; - -import java.util.ArrayList; -import java.util.Arrays; +import io.github.bi0qaw.biosphere.util.LocationLib; +import org.bukkit.Location; +import org.bukkit.event.Event; +import org.jetbrains.annotations.Nullable; @Name("Location Line") @Description("Creates a list of locations in the shape of a line. The density value controls the amount of points. A higher number increases the amount of points. A density of 1 corresponds to 1 point per block.") diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationLineLoc.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationLineLoc.java index 48581a6..ab06f9a 100755 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationLineLoc.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationLineLoc.java @@ -9,8 +9,7 @@ import io.github.bi0qaw.biosphere.util.VectorMath; import org.bukkit.Location; import org.bukkit.event.Event; -import javax.annotation.Nullable; - +import org.jetbrains.annotations.Nullable; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser.ParseResult; import ch.njol.skript.lang.util.SimpleExpression; diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationLinkAll.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationLinkAll.java index 3d76bbc..3ca1ba3 100755 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationLinkAll.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationLinkAll.java @@ -3,17 +3,15 @@ package io.github.bi0qaw.biosphere.expression; import ch.njol.skript.doc.Description; import ch.njol.skript.doc.Examples; import ch.njol.skript.doc.Name; -import io.github.bi0qaw.biosphere.util.LocationLib; -import io.github.bi0qaw.biosphere.util.TrigLib; -import org.bukkit.Location; -import org.bukkit.event.Event; - -import javax.annotation.Nullable; - import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser.ParseResult; import ch.njol.skript.lang.util.SimpleExpression; import ch.njol.util.Kleenean; +import io.github.bi0qaw.biosphere.util.LocationLib; +import org.bukkit.Location; +import org.bukkit.event.Event; + +import org.jetbrains.annotations.Nullable; @Name("Location Link All") @Description("Creates a list of locations linking multiple locations with lines. The density value controls the amount of points. A higher number increases the amount of points. A density of 1 corresponds to 1 point per block.") diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationMidpoint.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationMidpoint.java index 21c4874..75f05a8 100755 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationMidpoint.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationMidpoint.java @@ -8,7 +8,7 @@ import io.github.bi0qaw.biosphere.util.TrigLib; import org.bukkit.Location; import org.bukkit.event.Event; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser.ParseResult; diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationMove.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationMove.java index a943e2d..defb93f 100755 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationMove.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationMove.java @@ -6,7 +6,7 @@ import ch.njol.skript.doc.Name; import io.github.bi0qaw.biosphere.util.LocationLib; import org.bukkit.Location; import org.bukkit.event.Event; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser.ParseResult; diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationOffset.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationOffset.java old mode 100644 new mode 100755 diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationPath.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationPath.java old mode 100644 new mode 100755 diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationPolygon.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationPolygon.java index bb18232..270f0af 100755 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationPolygon.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationPolygon.java @@ -8,7 +8,7 @@ import io.github.bi0qaw.biosphere.util.TrigLib; import org.bukkit.Location; import org.bukkit.event.Event; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser.ParseResult; diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationPolygonOutline.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationPolygonOutline.java index e654eaa..046ef2a 100755 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationPolygonOutline.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationPolygonOutline.java @@ -8,7 +8,7 @@ import io.github.bi0qaw.biosphere.util.TrigLib; import org.bukkit.Location; import org.bukkit.event.Event; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser.ParseResult; diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationReflection.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationReflection.java index c187b85..92ef0cc 100755 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationReflection.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationReflection.java @@ -8,7 +8,7 @@ import io.github.bi0qaw.biosphere.util.TrigLib; import org.bukkit.Location; import org.bukkit.event.Event; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser.ParseResult; diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationRotXYZ.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationRotXYZ.java index dc2c06c..c48c158 100755 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationRotXYZ.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationRotXYZ.java @@ -7,7 +7,7 @@ import io.github.bi0qaw.biosphere.util.LocationLib; import org.bukkit.Location; import org.bukkit.event.Event; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser; diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationRotate.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationRotate.java index 29a222f..0bc7253 100755 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationRotate.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationRotate.java @@ -7,7 +7,7 @@ import io.github.bi0qaw.biosphere.util.LocationLib; import org.bukkit.Location; import org.bukkit.event.Event; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser; diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationScale.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationScale.java index 734b067..01ffb3b 100755 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationScale.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationScale.java @@ -8,7 +8,7 @@ import io.github.bi0qaw.biosphere.util.TrigLib; import org.bukkit.Location; import org.bukkit.event.Event; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser.ParseResult; diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationSphere.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationSphere.java index d3cb0aa..b17e972 100755 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationSphere.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationSphere.java @@ -8,7 +8,7 @@ import io.github.bi0qaw.biosphere.util.TrigLib; import org.bukkit.Location; import org.bukkit.event.Event; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser.ParseResult; diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationSphereLoc.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationSphereLoc.java index 0a491d0..76991ae 100755 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationSphereLoc.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationSphereLoc.java @@ -9,7 +9,7 @@ import io.github.bi0qaw.biosphere.util.VectorMath; import org.bukkit.Location; import org.bukkit.event.Event; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser.ParseResult; diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationSphereRand.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationSphereRand.java index 64cac2e..8c41180 100755 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationSphereRand.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprLocationSphereRand.java @@ -8,7 +8,7 @@ import io.github.bi0qaw.biosphere.util.TrigLib; import org.bukkit.Location; import org.bukkit.event.Event; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser.ParseResult; diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprRadToDeg.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprRadToDeg.java index 34df6bf..819f1ae 100755 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprRadToDeg.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprRadToDeg.java @@ -4,7 +4,7 @@ import ch.njol.skript.doc.Description; import ch.njol.skript.doc.Examples; import ch.njol.skript.doc.Name; import org.bukkit.event.Event; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser.ParseResult; diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorBox.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorBox.java old mode 100644 new mode 100755 diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorBoxOutline.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorBoxOutline.java old mode 100644 new mode 100755 diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorCircle.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorCircle.java old mode 100644 new mode 100755 index dde7407..8483e74 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorCircle.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorCircle.java @@ -11,7 +11,7 @@ import org.bukkit.event.Event; import org.bukkit.util.Vector; import io.github.bi0qaw.biosphere.util.VectorLib; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; @Name("Vector Circle") @Description("Creates a list of vectors in the shape of a circle") diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorCube.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorCube.java old mode 100644 new mode 100755 index 57b1514..59a959a --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorCube.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorCube.java @@ -11,7 +11,7 @@ import org.bukkit.event.Event; import org.bukkit.util.Vector; import io.github.bi0qaw.biosphere.util.VectorLib; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; @Name("Vector Cube") @Description("Creates a list of vectors in the shape of a cube (only the corners!). To get a list of locations including the cube edges use cube outline.") diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorCubeOutline.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorCubeOutline.java old mode 100644 new mode 100755 index 18369a1..efffd9f --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorCubeOutline.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorCubeOutline.java @@ -11,7 +11,7 @@ import org.bukkit.event.Event; import org.bukkit.util.Vector; import io.github.bi0qaw.biosphere.util.VectorLib; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; @Name("Vector Cube Outline") @Description("Creates a list of vectors in the shape of a polygon including corners and edges. The density value controls the amount of points. A higher number increases the amount of points. A density of 1 corresponds to 1 point per block.") diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorHelix.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorHelix.java old mode 100644 new mode 100755 index 4792a35..d7c0c27 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorHelix.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorHelix.java @@ -11,7 +11,7 @@ import org.bukkit.event.Event; import org.bukkit.util.Vector; import io.github.bi0qaw.biosphere.util.VectorLib; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; @Name("Vector Helix") @Description("Creates a list of vectors in the shape of a helix. The step parameter determines how many blocks the helix will go upwards in one rotation. The density value controls the amount of points. A higher number increases the amount of points. A density of 1 corresponds to 1 point per block.") diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorInFrame.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorInFrame.java old mode 100644 new mode 100755 diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorLine.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorLine.java old mode 100644 new mode 100755 index 0cb656e..3ee15fb --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorLine.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorLine.java @@ -11,7 +11,7 @@ import org.bukkit.event.Event; import org.bukkit.util.Vector; import io.github.bi0qaw.biosphere.util.VectorLib; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; @Name("Vector Line") @Description("Creates a list of vectors in the shape of a line. The density value controls the amount of points. A higher number increases the amount of points. A density of 1 corresponds to 1 point per block.") diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorLineBetweenVectors.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorLineBetweenVectors.java old mode 100644 new mode 100755 diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorLinkAll.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorLinkAll.java old mode 100644 new mode 100755 index fe6fdb4..0aa98d5 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorLinkAll.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorLinkAll.java @@ -11,7 +11,7 @@ import org.bukkit.event.Event; import org.bukkit.util.Vector; import io.github.bi0qaw.biosphere.util.VectorLib; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; @Name("Vector Link All") @Description("Creates a list of vectors linking multiple vectors with lines. The density value controls the amount of points. A higher number increases the amount of points. A density of 1 corresponds to 1 point per block.") diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorMidpoint.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorMidpoint.java old mode 100644 new mode 100755 index 90f02fe..2b6c12b --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorMidpoint.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorMidpoint.java @@ -7,11 +7,11 @@ import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.SkriptParser; import ch.njol.skript.lang.util.SimpleExpression; import ch.njol.util.Kleenean; +import io.github.bi0qaw.biosphere.util.VectorLib; import org.bukkit.event.Event; import org.bukkit.util.Vector; -import io.github.bi0qaw.biosphere.util.VectorLib; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; @Name("Vector Midpoint") @Description("Gives the midpoint between vectors.") diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorMove.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorMove.java old mode 100644 new mode 100755 index aa054b3..c62e6bd --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorMove.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorMove.java @@ -11,7 +11,7 @@ import org.bukkit.event.Event; import org.bukkit.util.Vector; import io.github.bi0qaw.biosphere.util.VectorLib; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; @Name("Vector Offset") @Description("Offset vectors by other vectors.") diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorOffset.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorOffset.java old mode 100644 new mode 100755 diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorPath.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorPath.java old mode 100644 new mode 100755 diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorPolygon.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorPolygon.java old mode 100644 new mode 100755 index 97144b7..c0d9f01 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorPolygon.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorPolygon.java @@ -11,7 +11,7 @@ import org.bukkit.event.Event; import org.bukkit.util.Vector; import io.github.bi0qaw.biosphere.util.VectorLib; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; @Name("Vector Polygon") @Description("Creates a list of vectors in the shape of a polygon (only the corners!). If you want a polygon with edges use polygon outline.") diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorPolygonOutline.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorPolygonOutline.java old mode 100644 new mode 100755 index e7cb1dd..34f6bdd --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorPolygonOutline.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorPolygonOutline.java @@ -11,7 +11,7 @@ import org.bukkit.event.Event; import org.bukkit.util.Vector; import io.github.bi0qaw.biosphere.util.VectorLib; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; @Name("Vector Polygon Outline") @Description("Creates a list of vectors in the shape of a polygon including corners and edges. The density value controls the amount of points. A higher number increases the amount of points. A density of 1 corresponds to 1 point per block.") diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorReflection.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorReflection.java old mode 100644 new mode 100755 index 186c3a7..6f24557 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorReflection.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorReflection.java @@ -11,7 +11,7 @@ import org.bukkit.event.Event; import org.bukkit.util.Vector; import io.github.bi0qaw.biosphere.util.VectorLib; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; @Name("Vector Reflection") @Description("Mirrors vectors in another vector. The direction parameter applies an additional scaling for each axis.") diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorRotate.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorRotate.java old mode 100644 new mode 100755 index 2599799..b52cf78 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorRotate.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorRotate.java @@ -12,7 +12,7 @@ import org.bukkit.event.Event; import org.bukkit.util.Vector; import io.github.bi0qaw.biosphere.util.VectorLib; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; @Name("Vector Rotate") @Description("Rotates vectors around a rotation center and a rotation axis by an angle.") diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorRotateXYZ.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorRotateXYZ.java old mode 100644 new mode 100755 index eb7f33e..b70c245 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorRotateXYZ.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorRotateXYZ.java @@ -11,7 +11,7 @@ import org.bukkit.event.Event; import org.bukkit.util.Vector; import io.github.bi0qaw.biosphere.util.VectorLib; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; @Name("Vector Rotate XYZ") @Description("Rotates vectors around a rotation center and rotation axis by an angle.") diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorScale.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorScale.java old mode 100644 new mode 100755 index 908eeae..a610b50 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorScale.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorScale.java @@ -11,7 +11,7 @@ import org.bukkit.event.Event; import org.bukkit.util.Vector; import io.github.bi0qaw.biosphere.util.VectorLib; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; @Name("Vector Scale") @Description("Scales vectors by a scaling factor and an optional direction. The direction parameter adds an additional scaling along the x-, y- and z-axis.") diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorSphere.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorSphere.java old mode 100644 new mode 100755 index 0d694cb..cb091ea --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorSphere.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorSphere.java @@ -11,7 +11,7 @@ import org.bukkit.event.Event; import org.bukkit.util.Vector; import io.github.bi0qaw.biosphere.util.VectorLib; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; @Name("Vector Sphere") @Description("Creates a list of vectors in the shape of a sphere. The density value controls the amount of points. A higher number increases the amount of points. A density of 1 corresponds to 1 point per block.") diff --git a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorSphereRand.java b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorSphereRand.java old mode 100644 new mode 100755 index 2274d21..301a8a1 --- a/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorSphereRand.java +++ b/src/main/java/io/github/bi0qaw/biosphere/expression/ExprVectorSphereRand.java @@ -11,7 +11,7 @@ import org.bukkit.event.Event; import org.bukkit.util.Vector; import io.github.bi0qaw.biosphere.util.VectorLib; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; @Name("Vector Random Sphere") @Description("Creates a list of vectors in the shape of a sphere. The locations are randomly distributed on the sphere surface.") diff --git a/src/main/java/io/github/bi0qaw/biosphere/type/FrameType.java b/src/main/java/io/github/bi0qaw/biosphere/type/FrameType.java old mode 100644 new mode 100755 index c71f3b8..eeaab21 --- a/src/main/java/io/github/bi0qaw/biosphere/type/FrameType.java +++ b/src/main/java/io/github/bi0qaw/biosphere/type/FrameType.java @@ -11,7 +11,6 @@ import ch.njol.yggdrasil.Fields; import io.github.bi0qaw.biosphere.util.Frame; import io.github.bi0qaw.biosphere.util.VectorMath; -import java.io.NotSerializableException; import java.io.StreamCorruptedException; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -20,15 +19,15 @@ public class FrameType { public FrameType(){} static { - Classes.registerClass(new ClassInfo(Frame.class, "frame") + Classes.registerClass(new ClassInfo<>(Frame.class, "frame") .user("frames?") .name("Frame") .description("Reference frame that can be used to get vectors relative to some direction.") - .usage(new String[]{"frame of %entity%", "frame with yaw %number% and pitch %number%"}) - .examples(new String[]{"set {_frame} to frame of player", "set {_circle::*} to circle with radius 1 and density 5", - "show happy villager at player's head offset by {_circle::*} in frame of player", - "#shows a particle circle around the player's head with the yaw and pitch of the player"}) - .defaultExpression(new EventValueExpression(Frame.class)) + .usage("frame of %entity%", "frame with yaw %number% and pitch %number%") + .examples("set {_frame} to frame of player", "set {_circle::*} to circle with radius 1 and density 5", + "show happy villager at player's head offset by {_circle::*} in frame of player", + "#shows a particle circle around the player's head with the yaw and pitch of the player") + .defaultExpression(new EventValueExpression<>(Frame.class)) .parser(new Parser() { private final Pattern parsePattern = Pattern.compile("frame:(-?\\d+(\\.\\d+)?),(-?\\d+(\\.\\d+)?)" @@ -63,12 +62,6 @@ public class FrameType { float pitch = VectorMath.skriptPitch(f.getPitch()); return "frame:" + Skript.toString(yaw) + "," + Skript.toString(pitch); } - - @Override - public String getVariableNamePattern() { - return "frame:(-?\\d+(\\.\\d+)?),(-?\\d+(\\.\\d+)?)"; - } - @Override public String getDebugMessage(Frame f) { float yaw = VectorMath.skriptYaw(f.getYaw()); @@ -78,7 +71,7 @@ public class FrameType { }) .serializer(new Serializer() { @Override - public Fields serialize(Frame f) throws NotSerializableException { + public Fields serialize(Frame f) { final Fields fields = new Fields(); float yaw = VectorMath.skriptYaw(f.getYaw()); float pitch = VectorMath.skriptPitch(f.getPitch()); @@ -88,12 +81,12 @@ public class FrameType { } @Override - public void deserialize(Frame f, Fields fields) throws StreamCorruptedException, NotSerializableException { + public void deserialize(Frame f, Fields fields) { assert false; } @Override - protected Frame deserialize(Fields f) throws StreamCorruptedException, NotSerializableException { + protected Frame deserialize(Fields f) throws StreamCorruptedException { float yaw = VectorMath.fromSkriptYaw(f.getPrimitive("yaw", float.class)); float pitch = VectorMath.fromSkriptPitch(f.getPrimitive("pitch", float.class)); return new Frame().setFromYawPitch(yaw, pitch); diff --git a/src/main/java/io/github/bi0qaw/biosphere/util/Frame.java b/src/main/java/io/github/bi0qaw/biosphere/util/Frame.java old mode 100644 new mode 100755 diff --git a/src/main/java/io/github/bi0qaw/biosphere/util/LocationLib.java b/src/main/java/io/github/bi0qaw/biosphere/util/LocationLib.java old mode 100644 new mode 100755 index d016bd9..17ca9eb --- a/src/main/java/io/github/bi0qaw/biosphere/util/LocationLib.java +++ b/src/main/java/io/github/bi0qaw/biosphere/util/LocationLib.java @@ -55,7 +55,6 @@ public class LocationLib { } public static Location[] getLineCoordinate(Location[] locations, Location end, double position) { - Location[] coordinates = new Location[locations.length]; Vector delta; int i = 0; for (Location l: locations) { diff --git a/src/main/java/io/github/bi0qaw/biosphere/util/VectorLib.java b/src/main/java/io/github/bi0qaw/biosphere/util/VectorLib.java old mode 100644 new mode 100755 diff --git a/src/main/java/io/github/bi0qaw/biosphere/util/VectorMath.java b/src/main/java/io/github/bi0qaw/biosphere/util/VectorMath.java old mode 100644 new mode 100755 diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml old mode 100644 new mode 100755 index ef8ce8b..a282dc3 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,4 +1,6 @@ name: Biosphere2 main: io.github.bi0qaw.biosphere.Biosphere -author: bi0qaw -version: 1.0.2 \ No newline at end of file +author: bi0qaw, Govindas +version: 1.0.3 +api-version: 1.13 +depend: [Skript] \ No newline at end of file diff --git a/target/biosphere2-1.0.3.jar b/target/biosphere2-1.0.3.jar new file mode 100644 index 0000000000000000000000000000000000000000..6ae4ed94c82434542aa09ce63d935b0778040026 GIT binary patch literal 113445 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 hxa1%;Tr6L{=}C&3ezT-f2l{tu)MR~P^Q literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/Biosphere.class b/target/classes/io/github/bi0qaw/biosphere/Biosphere.class new file mode 100644 index 0000000000000000000000000000000000000000..ef4824a22804ccaef0c32beb8d691c23e9e8247d GIT binary patch literal 9032 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 Cg{~F= literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprDegToRad.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprDegToRad.class new file mode 100644 index 0000000000000000000000000000000000000000..159b48d9c5cd568601cfcc916252a1263785d3d6 GIT binary patch literal 2889 zcmb_e?^7F96g@AY2?;4}DTQKN8Vc3`g>5NnHAsIDs#r=ZK`KS9o8&btEW7Fcz&egI z{y~1QGfJ(Fj-UOPoN+vFcMVAhpfi5Rd;50pJ@=gZ-n%z{{Ppv10H$H45kowQjtq_= zAuw9r(5y|{)Z8t{sCk;HTUE{X3{xu_+ci_pKd(8`bq(7RNX!_P;mr!fbEB(CbPAl@ z)OYmIXUX3#NhgIgx{}Cba2(wNQ--Zo4R6CQX(i+8GyO|Wwp-hfj?`owSyMp@vbtg~ z>lKEn$f_fyKz6YmxjjbtBu)zS?{O%4j$u{r_=Z`LP8uf=@4{*HCUGW%KJ*I=9u6qb z>DeKOz(j7*cB)#*-`X-fP3}m`)8^Hfe>}R_8Z)n=4P@{d&QX9~t4WJW2(iy_zi-4h z--!zX>8xR89lc`cmV&&fh-U?QbNl@$|5DQy6l}j_N+o$DgV%9cAXSxKkts2m%_|4$ zX@q`I+LUFFa+1hpFp4pOu1bKrs+&Gxxc7x5t_XDRNxQFm8;M(~p+8p&6K4~*o_@=t z2A+f=Ol5E#(*nsI<^ABPz?od3FGob=Ki*{KzS9Qlw>*!^Nw_&&{)_*_ajCGtM zmnG?1D__+Z;&jsn&zZXG(ki$A?aX+4@|}kJ&rWlT9#f6FtOA?4^&_&8U#J@d7yq6q zr6qMMUw_?L8;U`lc&IzBbVh<{S-QUI<%5{&QVR?n8ItsLr+Q65EQF6!yvX%<%``%T z>jIN?gMURxps#t~nCNKlMvfvlGo}v2_K~?$cK=`c1P{X5gQ^a5#a+F)>|36(Ef=gE z!!^`tq^jGNWqZ2EBFzIi5&&#UujJ^4~8V?l*tJ!K4p%X}%O1hJA;B@vHyUTb`PkS?h!=s$3`g}D zIED8(WL@iL!3H*)Yy1@>PMskfOtS5lzxd)hXau5&@cj_3*N^E0rM0V@F4-! zyL(t9qwRk||6^3K@9m!q1(Tj<#UTF4DxK?Z>GZ~QS3*GBvh9fec5L6up6;jbjL-eXm z=lW!U1lA$~SLv?^B*w;f@n&m`?jS~(&O{XB5M)XVll>U$#Edb`pK-p-Sf7*26Bl1V cR}bqDE=nke&oLJj7ZOitOP;90z!nDn23Y&tUH||9 literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprFrameFromEntity.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprFrameFromEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..b02bbde2175581a8e059660981885549018ebfba GIT binary patch literal 3639 zcmb_fZFdvL6@JDNmR}T{LK+*Am?c1vU+@AUK#-F*fJNOHLb2-v+=Q&8u{8E-SM028 z9P;viditR~r*%Se+SAYZQ8|5Pb}d%M*yNmi@Xl)I-sj%?+g2*Y|>k+liI$E~-}BmvfKXka^JL~HzcI5_*x^w1P zo>*A(HoPSCPpWIO7MBZnO<*i5Z(Vc~mxpl_uNN_jF@a&4SO{xgY$+NoO=PX?Y?Oy^ z9B&lxW)W{;T;OO1c}Ipk5bD0SY5A=f4X22cMtp!9cU4?#4&f9|7jUMCcW_oUSmm<^w9ss}Jd?gli@N+_ zSs;HStP^EqK?U+or&X2Fl2_oop6?1+sE>Uq1L+0j?&s{myl4;UyI!Pa zblNWWr0)1U!f12&8P!b6$pbCZQ^mh|lC_>%W#4t}_PRs(wlSO76PW4By_A0fulE)Z zbC4F%>4O}doivr%I*>{u_v^9A^Wz1rKe3YO>~vlTEbU2%C2{v8o&5y`HMAIZqMEEI z(}ZJtjL#W!$_O00*I`ezPZxnXRyZc1G<_XG|*Dt~)RZAk6JP3c5(m7_kWNvC@(dx4W2Ff-259ui7B9WCol z96D@G$4_Udb~bs9Af9e>c$r-TZ-EqTg^}XBjci8Xt-T_fd+eE;i)rT*97N8Oht{QU z3|7~Rgz1E>1h| zIx6VG3+Ph@Ogr9gJa$g3YQ8kUCYqgCoeKtlb2o^I=Xlj{gEB##z*WkuliDQwNHvVHAl~U=|RY%j7L9WX{^U~$KCvfW*hW_MX#zs%z3z@+E z(D9rr7Vr(L z_aF@(Xqf{PCpnt?ctaL^@#{Ni#ITn|lt5AhExGS8>k1}}tv zUAYA#hxIRA`FyovE?ApSyUa$LuM#6`w`>BxKAxMB%> z^C`+X@^)n#zuS#|!J<2fW;gWlG<2fjJ|56XffZUvoP9)Tlb*rJsoceXpuFCv_eb^gnb~a!$csIvA9iN#}=C8kh`vbr*UMA6mSOW1Bn$aTA zTdL%oMc2;xOP*B?a<=I#L7&!%3@XTdd@Z9A`=ITQ$C{+l!X08et zliNA7;X%F~`*9$FjuZ}}Q{eRO%LUpNWH4~^)IpNnN_MOS#Js%C2LbMy)uD5fu6mb(VLV+7BMyCQW(S#t@<+9ymQ%f zq0l?|UT9?XLxH0ktWF0WH|JK(vdfCxONh1NvJQ<2VyrTo4CaNQ{(O|eRa|2Vn$@aw z$^!lAhFuGRHf`i4Y@IlxDO?AWw>5CXpBiL`oOs-r6cKzYJ`rd)Os8z<{nd`$QmA7B zhtu0=B$*TADHQN2bA-7laBJr*oO@3extG({f@20XkEu7jN6m~j&=h8I{zjhpH0GA6 zePGgZWGJ37i>gdIC*6{1&zhd4z9V5gs93(h_1!$&tH^1zSy!FFv7IVWK&bvPU zZeRvHdzlPfTb(PrrQCfsN>x}Z;W>0nXR)D<27~=yw<_K9#k*&#Qok+zk~;Nifha>` zo-_mL8>ZpOc^=$ONfJx-VvT6(Zmim$88*NHfm7RgHU7+0R|i#$IUX3s^CueRr4hIh zUcI+p9c<{Q{lg>dkfBD&@=CV6b}gf|!msd1@XWGR^Nk^`SeA}&1#8BLVL5d>yp8x3 zch#uyuvjxzEZa60q-U6cQMJuA>0R`ViZsiHJ3p_C71yY_VNc+}d8Mv+V7&wu{V*a2 z2oY4|78o5&NRB&iY>J5AI;hly<48|;DCsA_CfB#!-DRiVkic{9;9eT6?}mPYvpjs7 zc;{0OuV@hXOn*&qVTs}DgVHAan5%#zaWu)gMCf-6NlFE!8iq7jeK@BODckOQ&O;hu-2610U`jS;rMk;K?`0$H1@7k3&&cwk}%7&8-Fp zwLv2Ut8*|EaXzs&ph z6>VcU)T!I(z&H4oxWvH|d`E2cW}>KdJ5WNIK}t%)+)?Z2xjv+0q2o4ls1ngJNNuIx zlF6>)_SP8pH;~#A*^fs!78a@3geBOV`)GTan2t||tLkMA!pBp1;d|VN?<4S0^Ra?e OY9#sN8NSC0bo~Q3i+>~l literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprFrameYawPitch$1.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprFrameYawPitch$1.class new file mode 100644 index 0000000000000000000000000000000000000000..5dc86a27e07edabdefc2d8a072411d74b1bbf285 GIT binary patch literal 1052 zcmbW1?M@Rx6o%hvOSi3yROH()lvSuG3&=-|#z^Rr5Zgj%gE9Qj>2|^nEW34f3*M2x z)x;QMxBzd#doiBbHffB;sGFTR=Q)|#dFPyy{rdg$Ie-kQZ+bj96w2z_YS@;cKPyiiZ0G6T7flSINEg|2syq7*!~8$oLMLw6#AS>y7@=y(fcp&Txze_Q zF@~ule#&j1vS!!9ddKy)r0`pgQlZjEPnek0N2fQ+WzAPiTur#{G&El~aYJ*VEA8b* zrJ}<(P25Tpmz|2!aCFEraa)H5_8i)4V3wiSKYOQnB;1%G_t^DiAmb;A#C?X$W>UkU ziVQ@pbJ7&5!J9r+b+{6`+~4O)YVHLG>oIqaDa$=B)WeQ)#g^1N#(pWyf)>CqX7kP}8&Ggl;_TQDhD! zvUiETAx$12K7pNoDSUwOUcZAMaVfL&7MW)WjuQ^_af&e8$7_T}AEya(eVidIc2~bc z7I}>ES9lKb`2XSlXb9*I@tzZ!6loVO ko2jN_w09v{Z)1^c21_(QpfOC}NYQ^_?dc>XgPvmU2X~133jhEB literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprFrameYawPitch.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprFrameYawPitch.class new file mode 100644 index 0000000000000000000000000000000000000000..d335b5c193161c9ca39dee582f81731c002cd267 GIT binary patch literal 5236 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 EU(Q&9EdT%j literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationBox.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationBox.class new file mode 100644 index 0000000000000000000000000000000000000000..b100115e59458d9185026b9df84eb7dce3073d73 GIT binary patch literal 2912 zcmb_eZFdtz6n-X2n-T)lmbW67tyauS>9$BkNkwTXT8V%S76BDE>5xpj-Hp4O(jN66 z`9aT75Ix7^XMdE(XEvL3Q&Q>&Pfm7rX6}9Nz0aLHcmMw9_dfw#!deCiB-2P`F@QmV ze63+R>#lA38=h(grfoTOvlS@Ytf?0Qf- zjH5V~#&8y|U_@a2<>Cad%b=p1x-A8!a%I=6o7L9Fh6+r%C7r-r($7-9yl!n-?Z|Ie z*JUjzrEy$fG$!BiSx0>`i&Hw}uIm>w7{i$~Ud`exUK1$3go}{c4q91N$ts-;saWXo zup?87yWL&PKkU1l#yNpgyWvyD{%e`oN9oWZA2hr}R8pOa%?)YjZC-BKwyM%?*U137n2Q6c3jfP=4po zvrr!h93ew1l7TvRcbfEUw1?6~+wy%P7hhbRFUGBO51$TO@Z<_&r}UK|u%3H(0E4CF zu0U7=H*Fq1X*s3ta{LCWgtyTh%k!l-84fGbZ`mwX+C03=5V@Q<&@w$${4bN5jmRpi zq-(d=9l|%Y*|t4_>8{*=@=xGoZ{Epxl>5np9Gx#{W;YL{Qp^2+Y_in%sZv(X?o|@q zi~tc|+++IliYWOlzwGV=FBuP@8g9`HB^E&2iiyY#dDb*j^{r z+?sjI+LXFPwk*3v*lg#(8sYW&LU++B*QH<6eUI&knl~0bX$8_ZEW=iQV7QMBJ8Dn9 zp&TP+xw5=WKg*RcxyfJ5Zs@@2u_(De>d#)3N0&|8{b+@F^)?p9z8}1W>J~nrZ zEoIwQT_eSek(XtMj)r9~{WQK|Z|v7d_bb6PSo+368Z4t&*(P$!|FQ6D1PZMLiRuo@{GIsKh`C^TZW+A6Fy%sc=s1K}e;6tKn&n`ro$&t~$<|kvS$w;-$)io-y#YV>n7v{|v^+#8bQx z272~6-b#YAkz#x4M6tW{6c_dy%!dYzHdr^_*(hEbzycQOx4?BQMgD(J=>ZxaE)0R8EWfX4;C2o%-$G}#Yi2D?584}6;!B~z+HUK@jPv> k67!yqFK}PKJcRJ^037st!pE0BzQWg(&2Z@vEYvXeFZD0`RR910 literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationBoxOutline.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationBoxOutline.class new file mode 100644 index 0000000000000000000000000000000000000000..7f3ffc6bfca300a6c3cf14b90423d797769ae7e2 GIT binary patch literal 3355 zcmb_eT~`}b6y28uLLs#kN&#u>t@Z;FN}y7!4OYuX6&u?Mh_+ShB)LrnhM71s;bXac z@x?#mgRZ62>RK+J{Sp2Ym;25P$%KZ+2Olys_vD;?&e`YOd+uNV{PqWcS=9Q_g+vO; zG`i6vFj1=J>EJ#(gQ`Zom<;}h%0 z(2HX!^rg{{w7{I{t z=a%#{KT+5)wvCX0d&Lb^^7AR25*Uo>AB3)xKb^*~&b$%&RV^J&;}tDUm6h$8{$2`a z1Wq=Q@7A}9%I(7#&ZY4xq(Fb!sTVD^Zdi53M`{=Q@ETrE;X)c0aY-Qi0&0Uw9Yj?y zivq`)Y@FGJmV^&f^Klj$!o`V4ZRIJ93k)}tSoK}fIbS!evd-l)61~U@oGLoI(g{l{ zi^|_o%9i@?D``w2#|AQLHD#9tu8haX4$)fpZ*dURdnS#mctfDqcfvmdkXUKrrF0CDMrP0?qd%?XSh@I4Dn83#PqYfr^`vP_zpA8HHEK%B4XF=n z(=J){GS6~Za$H+cPoIyfTv6VXT%&$8#bgi~m2BU2EH8jEwjAcEv1*QK`!u*Et7e50 zU)sTt)98%HV?5e*JN*NAg3Ra;c-5#mc9{ka1p%(C5wK`ErOhdUv+d|x+BNh|MIQ-u zPxXo)l95eg zba28;&Xvnv)!C8cwzem?P0KPW8u0`Fn6lLe22 z*b#*D99>nHkt-d@Be0AQBY%^@n%0RQ4q?bxq+Jn)z#SBbsw2G;StbSs54*n@ zGfhOMA(tP~h!>Q|`FBh?r zw+_dU31W~TeuIL=hywb=UEE_T0{8K8l+yRq?q)p0nQY?fFGyvwNxp_M*>1i@lA57J z!14eC*M&}DnwRVu3^6HP*V)j#;cgf!SfvX>Vhx`J^%%xFJ`KVe#%Fjyq=)=J>X89kZoKJtgtJrSe4C-R?+aK6N2+I8V87<^x%?;SslITFE zz;L0g+iQ-cd+V-Q@pa3vOM2BeEq%${s919LRmGK_XF9e(=agxi{yl-{(C|teT>`z1 zThjB@^>x$N=beJ#Q?DBd9El^D#8Dg*m^2-|WcuZ5UeBAOFN~KQ9IsNAuGD1%TvvYT z2s5Tzu%tk@RfF^dwE1>Kci3f>+v7=`P(C|dqi9w=CF)J$q!Pu8()LV$D~>*a{xxIM z2t!@+UDGbzubNg-x(S>@vjgcMRBdWn> zkKh8dI4&k}36}-V9~_E6m+yqU0!K|bmYdS{^;z}JKHKXr+l6-pj%qKNZ!OG$)`hD| zWY|TmmVzLnVZ|jaaB`>(jN*GOiR&0)5lYfuVv1Bjt_{uaL#7$zaehq}{A?Vf0>^i< zv{2p1s}$?Fk;F}m3mhpr)x0HF4690THdRhJzMaGbCYb~}o_1Yh>!2hIuQnyU;rOmV z-)b|}dS_)5n8JH;+)Ltpd?1iHpgDt0P&b@6^IBi2V`a;#RR68@g!QDVCr?DY@>9(K=cBo)g1$VgM9dTy2S&R1lwnb`t^X|Ws z6H89jEyxF^+J^mm@6Zvokp%{7Ojg1?wD1_%&7qq(PkifQ%ZZ_jnC zta8#Ts7C}J0W|(=#+8OIJtbofrYW*u&TdvvTkw9~J{6J(6&E+04* z$1c*qp&-E3Dg?}v?>eu*bL~)8q+0;a5Rit3gDfKkP!d)PxXe zIA6q4&G~D_-a(uGbS8S^7j&mHF%CWHOb3TlOuQ8pP9&6?{fFO7=OP5=YIRVU3>Q6Fs!dQ<5Q8kDy;9RsjPCp|QR%v)q4_!Igz#^xwUH4E;C85!cl?KK+uPJRoi)D)Ak%MH!ZoZDGXe`6991c8a&bIV Z@Ip;iAw0P78gn02Dv~5N@e1E!;9nx-nnnNs literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationCube.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationCube.class new file mode 100644 index 0000000000000000000000000000000000000000..c051b1517da44bd40ff000c910b371128bff71ef GIT binary patch literal 3298 zcmb_eZBrXn6n<`!5}-jSw6xf_MX(J?VWGvgHdtwaDmKze5N+$*Cb>-(mfdt;XqoXZ z_)q+xGfJ(_IDYm=IX-tc2_XdVgOkbLy?4)f&U0SwJ@@Z_e*Y7|EP`Id5KkhJ!U=Q< zOq8m+z2R88x9OTSU$+dqq6fZd=>>DEX33>jHCK9`>DU5YbEa+jcLn0Gom} z@oo$YbeCvNGki@gol9W^Zxh0()ude(m`vx}5poj;mg=CnlemD3NnA?dGBklpN0X*) z--%d-hFW4Nx25gtOX`_>deC038}A78X)hU9E%G*`KdubFD{wm9K}V6hnnD^AjBQ2w z1xCYSoUf(xhgfa}c~snxB|n!$R$yQ+BrCyIQAIO@$rPrb3!E%FLD7=yh7}N;m9nS| z&!li2H|Q}9-*a7K=O~XSp0z}{Y4|;X;b*N>8|9Mg#Vy=U;{6ovASaMLqT<5JZYbu> zqCk?2qJq=Yo#7YBrzJuSZJO=H2PxdehxC&u0@H_wvNHrTQ7|jE;Rh~*b?cZapX*5D zE?u5IRFPrBpbuqwU4@^hh0<+s4-u_j5+a4RzcVmW%f&NHfMZ$FJl zfSYEjDe#{Nai8o@A7fol;rMX`=Q64;wvLURlKUUS$CykDoNG;T>k-IsF|n6d1KT&Z z|-&~&Z6v; z^c6Zrmrra*=W$=-^wOd;??7W!I*ZaPsmlPHIaPmHaHZi(Pct;j^nA^Eu33%FteLjv zSEc4vjha+n3@vP@X~(v9!Y?JqwWaHgPE2WQj>i3e2u#Te%4|rHj_Sy=T%patlM$j5 z_!dv8DS?Zf++2EPsN0GR+UD1Ukl~7 zOfB1_8=gdxH;5N(kDU&Y!w!QaScTeg8f=m+2M9*lM`FC3#rWfu2?F!s>>lU5&@|`w zk>opXZG0|JLgy$rp2)n0_&HQr4NZ<>uMqyC$ zUs8UaD=|Fb8*gcpRlYcsR2FCcz~GbDI6Zh~7iTlSpeK9b4bI2G+2Clj)W5g1i?R0L zO@>qzEWw&oXYdryLaH;Q`W4N8&F?)B!yLZh|64VUQ9?~XGQ3sPsY#9ru8omSfA$To z#PAm~ySTO-@_U16wJ@9h4LA45L=|;|^)uT-Xsk(S4Bv%>PVv%fph!X`noy;q2q<#B z5T{jva6Yg|IydTcrYWl;-IdAiVs6i3RCYrxneVDwI|7-G%@ZqzGGsVDM}^}UZB@y| a^ss?V^}^tJu&~v9x0$k#Bx-QsW8_~F8DR?m literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationCubeOutline.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationCubeOutline.class new file mode 100644 index 0000000000000000000000000000000000000000..f75d477bd13ff8fa26c0478820adc43e0967c8c4 GIT binary patch literal 3592 zcmb_eTUQfT6#h;U2w)Th6{%XsN)-}hKvA?oEfQ?06fIC%rMF3POa_LTI2VxituOwW zKD2AKSlhL_`rQB1*RFnNCJ6}y=tCbe=aRj@{q4&+`~3CKZ+`%oz;|7UA)Z7cg*LPc z3>V6}z2;cDx9*x1U$+dqqzArf=}YED#gelxE3WiB)3F8Gr%c=Q?+L_*hF6m45a@H< zlAaIN*G*racM672xlVN9SQ4oej^l*DUDMG^re6;7dfps+VQg`5yh>TRQkQjbUD>H2 z%mjJ)IPfjgmI9qt71tBc=3BAdrI=N=dr~;547a;R(F{Db)tAC4wUsPN+cW*`B+dx* zuNj+0a;UcsoE~W4eE(^SUxI+RRz7w$v4K;*YZc5wNXVo|RY`?v12i_Gpu5B^& zS`-Pb16S3SVHdS(AVQCZ6_>QYsi77yitk7Y*D%Udl%&7JKv_)7$k6-&WEw#p=htMx z&n7X(XzoU7A=t>PKLyRNZ)SP+I+ z8-iXp{GPy>)kdndBFlDR3U`yZm%@F#FOWH;PQ&w1Q=B*R0w>6*sZ7U)T3gBG$g3ez zH58if!h;lMkfXmu6Bs)G!{*X8yeIL;5aRzHq(r0^lyFzPyO=UY{ z8JLb}%z+W;Fuht~v-Y0RH+9nqtTC&HpU~`FT_CKIN0yYfH0*4ByYXUO3NP6w zhU-apFdP=87g&Baw5i+|xOAjR(lgxBxPX|8rq_9!)$KLYhy-p3jMfGI6Coa(<}5PS z)l3c^MQ|#u%46fm*eSXHF?@^(ubH!rNp8F(87?OF;$mR?=7yZJH%-q}>3!Q~bW@+M z-DjG*4YhjL-q)#>Zccgy^~m5Ofe?SsxYF>Yrx}`MdcNj7*Q{Er*GyaU%Tn{oMui>t zIb~EY9^rn$3X1GO;ok+vwWUi0cC=0D`euP}lvb)repFlLtk&y7%38s(eb=$PP{`PD zSPn|1;+VGYjcU_c*(~vKqS;}OQU*!WBd!8%C0~Ol$T-nmK9?$vU8I7;jSyF>5HL^g z*4afbvht4G zE&irJYR+by!mCkwNo=uwx4P91x}B0>ekHfNMU^8rDh9`8MVELu%+81;@7ZYlxphh&g`M-#{Ne;x`ou;1TAz68IPk1Xaq{ zxKeWQ-sF!QV%SwZ*Pt4&szwYSQ{@Rh;a5S7R3T#VANC+<4G6Ki@kK0EjlZJrZPe*c zXX4j?L1#LX;Lx4Uv~lQ7D7bh?s22&&uONx548#y0nZqIUM5JDYCJ>hKY3NTsR`40k zsJ+kelsIbk468)?g7YXMO8!gAM{a$^8Q+|gRc?JxNu`zh9jBkZMt|?w9lVwP8J(H) zZ}4^;T=fn{Tip#?SE8-n-K`xA?G5c{$X<)^>+Ey*8sCKMb7XIjeV+C^A! z6Rg0S48^UGXgUo4WS!_FWJvTRQ}P@o61~g{EpwKDNn)z>6h%e93*wY2Fs^%YBz(I{ zc#K*qJ?-ht4yJeQM`hd7P&w^YyN4jtZj{0`tP?W^3mY6&Ds6IcJXG*PO;#a1xbW(8 P9{~kP5}SC5Z!z#M4Gy{+ literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationCylinderLoc.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationCylinderLoc.class new file mode 100644 index 0000000000000000000000000000000000000000..95bf07fc3197899afbccce653fa233ee52ef4a86 GIT binary patch literal 3780 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 literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationLine.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationLine.class new file mode 100644 index 0000000000000000000000000000000000000000..134a65be617ef19e7201e23bdcfc064da6555908 GIT binary patch literal 3478 zcmb_eTUQ%Z6#h;E1kzO6^g^+>snQk_U;?EV4OS^o#YS2I(Y9VXNluf2$xJ#kf$|Id zGd}2AN=4Ul`QnQ|%H?-vl8}S|KKPJ1m+bxRZ(q(i`|p2#`vbrXUdItZG=`o8deJ8^ zRw(QChGXg8rfXJx-7@TwUh_>$Uo|ULOD?{yy3+GZ#}??DHEq+sFAyCaTaTe%;Edyz z^n7h|)AaS6Q!sqW4IqvaF(eW=iMIsqn2ugD{c~$%1#3z zXWCL=z^VgI323=)H21k>mC;iPoK_Z_iqmTMOaf=sZmcM6&-8a}?VQd+pudBXm z+NB3I(<(|gj&q3iV^|<=k%acrbt;dx zl!oVA*VsAA(Xr<(fo&STCvg6GE7eB%WaD@rWHy_?2Vk|P zkEp<)(i@67GtW99qp$!MM!UmzwYfl&En#awl1m&PB`}8vbe_-xnZx7T9fIjuHA}YP z*IY*M?lDJUwkwVMS%H~jH9PZ|Rcbx+PLXy8RZzn8t{F_IKvFqrtsAbX*7eOEzifH} z_i{%B{fJ{vdnXyC6-j69wVf)>oM|iGdCTxTN~I6(&ZZA_z2Ed2<;@CwMyJ$GCa}R2 zAAJ_HOHF~GRvuYW+S0JI&F$8Ub2Yd`pBSzu-H~8ekzUR6vw=q6q@Q;U)An>@|4)6nW?8D3>E1{u z5YuT?q%YkzG{FiLd=JEez{O6LHpvHF6V&yoJ^T#ESDl($kPl6D0MB(knv?1P3k=tJ ztcMY3V=>&xqUaR#WjaQed$+<%`eftw(!z`I!0W4Y7Nl2D9Rpu{s{S?aO2e0)W@wh_ z`I_@mv+B>crdK$YHQrAzsg!*S}QoV?>d$j$Qu=hxl{^O$FzNK zQk&DtW{I7HW(UsgkaMu4kT3799_O+ICpyM<@* zwV_%eb?um5+1b|UNOecsGFdDoDjR;_kd~MJHg5;5Y8gAyz3FLXX%scXE;eJK-B!V1 zS5fz?O>moCQZpX61rkfPE#2V4lU@wGuEx9FRfpXJAMI!=QRbjv-3YkaOEY!svX zvVDWVJXaAc@WrXD_g?A@rP9&qUoenL_iz|YrF%IfdlXzWAe2N8=Oc9dIs+yHMqaEiyNJB91o~!Ay|{@6u!Z?0o5r|{f<;$(AWUPc@74D zd9{pCLM=ct>}%@OT&`3=GNhAC?_n&0KQXZjeJS9#hg)jnE*FE1e`BM+;=O%lVdYJ; z&Th4^%QV?#PzczaX8%}(B)gZir%Fn(dBI;C;;bqhu1_tH+nqYM3}sc=`%>v$e7J8h zEXTo?is-9bI|7+rhN&r`Ow0&OY;aU5+9VgtLj|^)Fo_;BR&CB-!KENc!b1()82%SN C6qp78 literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationLineLoc.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationLineLoc.class new file mode 100644 index 0000000000000000000000000000000000000000..6bbef9ca2ab3492daf6ff1e62fb42c6a3ce98230 GIT binary patch literal 3688 zcmb_fTUQfT7~O|}ff%dc1-y?HZ6L@5#99rtMWU8U)rzI{(#s?{gagA&oSA_3^3s?7 znLe~@wOZP>y87H7)zy7wl3{`o`p}2Wxy<+NZ-4uIbI!@%|NQJK^IbKbZ60n zJpv<@Wz$)4ZPQ=%R6Q_l%c+@-K-uPkTC3ag#NN-u-sNcG~hzyX^{7!}v`s>-nf zY3NsHvUn3`DWp}eOQ$MuAveDrsW|e=R1-YR@LU$>@fO(!ZWK8LNi2h0mrh{b(9hzd zSFwt{7$E^;$#d6?UgQP3jld1rUC_|u0*7)P+_budEG95XF={esNjH|8e@*Zt$ldaa ztOUh0rl`zT#&;TPWi8r8yq(2myd$u;>Nd)@T(s;)v@Rtb_-YnKOfzW)p7A{E`A$iX zJWdE02WHhCd7Px$Dz;(sidAB#_^sUc>LA0nzW&)Syn(<=Y!>~y~4B7|w^Jx^eTi@NiUQk;to!aBKaOX*0^D96Cr*$?F&X} zn~OHQ8^P&OE#ca(+G)H0Q9f!?5Ex3XX>wbnTon2A{e}~$H96<3D_`kKWMVUp;|Ad| z#$p@}0aj#C_AKT2rnU9bywk94UA|0jcsmf6(^`{(^xDt_3sThi<0f-_yGxtp^^ObF z@lc*l<`{1tTJ+3<+wdy#rqZ9>P>17nT<^mIN1Id@BN5t&9NkW&>Q>A<%#HXx>(L%f zm7{at&>y;y+z4MevbB3j`W1cC;7y?@#IajyUHXP)*ew*-F@j}jgvV!D1{?f{j9|l! z4g7KA0pB~}(P7kEQXAC}w@k2Qcf(k+ybvZl$PML3=bZ*#Ql1~gXye9=5hh}|OGbg` zwa42|-F2#d=&l|7!14kk*X}pc<~Y&r=!U*L;Ei0I)+9X&cwBpol>$$cfxtQBT!BCD? z$O*Izk%_>>S&gq3hbjlEVoQTK^jh`X>~%gZpX{9DNH5%JrJn{5>ak9{=IeI9G``_Y zZ#NHK6B0Wn&hV)0;^j8QC$Dc1nB%AmAM(d5Xgt2nF)wq8ahiSJg87`Mhsjp3?HPRu z@pB0A5uf@sFoZjNW+MaK#XXJ$KE{25YUc|aX}i=w`X@GB*m5-zuBoPL#BhNwysYx6 zA*PxTnbBX+w~74%KW;-hmq5zIBp%?CCW#-YK@WWfNAs!4UvYRe-_53PG~dH!s9VFO zLSh5xWZC8h|lnlVf5T1JSL9rJ;CQh`hxvP8EyY1 z?W6R*Vvmf!u}O$?{N(LgSm>Pt+GMpHvuQ!g;K zUE+%&dn3Y+*_U9U9I`KweTD3+jNb=wgpK5HNe{bdp$8y8UbmWTJ&v?Sg^=MU%r5+e zi!X3#POnaW6Ib-ayBrL05WY?4e#3iP%%Y;af__|0uq(vu3aEwb`f(b|P-M5lc)Hp& z8_hHW!9Ow~)dMARn{IL|&{nU+p3(dZ+}Mg3RqDY+k?d(k+X0zbMys_7o0wf#gTwYb kW4Yu~_wf{-?mUL@;UkFpT|OE<*0Dib^29TIjc;-EU*B-t6#xJL literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationLinkAll.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationLinkAll.class new file mode 100644 index 0000000000000000000000000000000000000000..8b1c4a510b73bee6abf9f9e649635efa92c35b5c GIT binary patch literal 3597 zcmb_eYgZdZ7=9)J0yJ$Yy<%@$L4^cZT4`$=ta7VjBdvgFi&{6yG#S|Jrn?&`r}~fl zpyw#HdXC4>e)jixd}cQ{Ab=k{Ioa8nec$JO-pkB8fBo~@9{?t?)r%P733MdUi7tVW ze93gyUEB0GJXHxy+j5F#HBh#>tjZNz&cCR5()X3?2y{&;M+Nr;;=?1W33LmbcD`5Lg0>a&7ulQ)ts4A6VI(J4z6D*Nl%)x0d8tLb%d;P zHl}S`pvSIZ`T|C_9n&VgjJDgC#3^kwQIL+Wg6#xO3!GoKHm%69<-k);ai*&5g7kXP zkN7d1!}$a*Br$+D1g;!zM4&rxBM^bH;cScha#K2iIj^6YCnMRtHZ$7Vr6exn3Il0X zD$*&05c>r8>(=;Yx?u>MHEf1Q7K|+h)u{PtX!JL=4}$_{hWA5cw4ZM!@iyLJSc@`P zW*lrOFnXX9tsoC`>oOl?5*QKaYcgJ}mUB9e!$>DFiZOv>1-F{B<*H>@3C=p1(}v9? zCUBj>qv2`Kv$hWl-pE=@@EV5S6*#xn8t;0sFt9gqD}mcdyoWmi=|k!*tn0dBR^?bI zI+$UtnZxbj=g6le&2?>>?L{VuDZEcV>6gI7!J%vq!AvZxqGJVBkHNZqM1fDWrExDK zFnOfr-jrpuTF0zgpxu+)ZZgW`ipAUs^lK;WRm)R)UR&%4N{ZVslRYH9hwo>aJkCHZ zN&4%oY*%RM^sZ8!wJqPLRC@pFRQf>gyOm!rX4cyi`lU}PfpsSI@ZFqQXb6Or@xYeS zk(QHbEVmwt%i#g}$nt#Y4TZy!^s9D|32kcE1+E=wlJqRE$h{yIqSqTdpc?je(})CE z`Qr_N|3rveWp@S{>sl6vjv_df(xp*8GIm<-e+(aEG9hrGHOZ|9D#OLZUR|m>fhx-d zXH)q~mnI#Xb{sbd8xN~hDxfz|xr|M^zp&P9co__nftJa&7eqLV+*wm^1_pB$aK>CKo4&(=h`^>QG?K$j8 z>?lT=8$$8g(DEtlQ#@v+KW?m)WTRz;Y>d3?1fFaAM!-*2*=2?`a>Z3nK!s_eq>8*N z7*5z~4CUm>!Y7M^+=8n?f zRifpL#Wi-@7%#9f{&=l~z`bzx0q4B&HRc~8!FS$l`JASN$x(3ZOud5mDO8!^Q-21| zW0uckB!D^0b0%;f9}!e5k8!5u;{AyqImFOZz0#r@uc=0iKBme7KH*bCjMgAx@gMde z47MP|8paD)@z?(Db(%5GFH%m&$$|fLCddFKJw)YzVTX2S?$X@CAG!T-_ig070#r7 zMo;?EYn+W^2N(OV^1-E(&7~b&+Z(rukfjmfG+2(}OFRx)j*{gQvRtE`9*A=szT*FD zJ&jR9Pe2~LcGXx(jvZVZ3~j&0Pz--!cn7J4kl$;J>xCP`zhbgUCMu>|ES=jega#Xg z2JuZu=oGKjPw_1YSu~-mMibEFdLho}+Tgrzj&!cq=uA*n2e~Vi-of3b#i-)?T9V#X zvvvqF9g7l?L!Ov16d*a8wDpW!iattE`ehBmXMQ%K_f8+SkFpQPhwGz)=TstLcnGkG GfqwyDaLmB~ literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationMidpoint.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationMidpoint.class new file mode 100644 index 0000000000000000000000000000000000000000..4246f97f1b0bef7434b8393a9a2478684ffe3380 GIT binary patch literal 3008 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 I2OmTK0%F{18UO$Q literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationPolygon.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationPolygon.class new file mode 100644 index 0000000000000000000000000000000000000000..bcbab38c7d15848eebce2837dbf90114af8b16df GIT binary patch literal 3562 zcmb_e?^hI67=G?9uz;)Jq9Um|C>6U43?inoXd#P*5}FvLR5rVNT?U4kb$)^&P5-(;ygxmkK&wEP z}Q#2CgeR zn+SIuYrU)twpmq7Pe7Y##B_^ZPTB2D;;1s(QgKY%_ta8X634W@ zh+LiXUDGb#2u!Oa-F6&DycInHhbj>V&G0p~dMb(2I748gQjvB^V6cB?CrB>6YpIHx zJA|{)66j6h9L@{8zP~F1t-ccx3k}r;S*}Xk*QeAw_i(qpTr1unNo|b**IMxwGo(eK z&gfEib*I>M__OQ2WKCD-By=WEVm&Dy-}HPhDoMX7m< zMn$SW25+&jC(!yG+gcBQ79H1?uGgC$(xxA4>rSAp8Ma?18eW33RHluzhTIZx8}@Ds0Xysnk_;BI^RlX`6uv4?M~K<~i@_ zMrYMtXHEj&u)8`)gI99hIfY){STQz~alYB+L13D*7;f=l2UeTk=A7+U-8{i>cAk9C zP($Y^I5uZqLi`*;e89K*4Rm9c?_?x^JGjf4z=ya;P^CP`nUagA5VN3OFooc+Q z8Zn%s%6)vqw}Kd`Ld4=f?m+0PLx|Ok&*S5&@gL}WGj+N%+4#t>Xv<`qICNyP%^Xrq z3N9WJN}-A086=QpAO_e>4u;U9k$M$cdHV?-g#L8nAr@#xt$m8mh@-wf$0H(r!S5&{ zO5UJ+@6v)-1?4^N-O^djz4&b?$pT*yq5U|ZQ0YW@Om7arTU_!j=H5cqovf= z(gyl>hIS-muSNJZ_IVUh3fbq$UXuM|+HZq6!J*7&QB7l%P!o_JyPYcA?>SSUyhMf_ z*;mNM@E7zAT)4)CRNca*TcHoHa8*fMJDvUw?`+XK5>mRt`n$?djD<8ageGu}<|UXR z&7aI{y6`mrf$hSirQ{}~ZXP$J&t8|CyoJvkhCcA;DE&EZ?rt0dZ zrD}H{Wb%s=Xu~093>7@#n5He4Ts#jx0`;)~;b9eP(RbX#QxEGNzQi+%lPbQ#*LZ=R Fe*uVPtB?Qy literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationPolygonOutline.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationPolygonOutline.class new file mode 100644 index 0000000000000000000000000000000000000000..d73fa4a7dc14ad73e04c48fea2d58029050d7278 GIT binary patch literal 3436 zcmb_fTUQfT6#h;E1Ta=XMX8FT(h3PMfOrjB6|jw_Xo1pJdYdH2f-$kTj6S zX-!I%rQ@q$`v?Z{ZVG49IEV8BLkAlotcnbll~b_^acraz3x(X0PGBzRXKu8xZf#jn zT%Q!zWhuy|a6#bs4tcS@S(IKchHx>BOSml1P1viJU8iQoIqT4c zoX%_9qiJN2r64ig_dIJ`V0?c_Ywa+N3ksCx|SjYH~a zwrwQtQp?Ptl6y0o(_$TSZkcwE63xIP5mXhc{XyY?SijZR zL(4}QuO&&hot5nx4W1Z@*W{dS`98U_Z&GKo`v##~`OVU2fj*;q`f3nZXJ!xnZgTk+ zLs%@2Z7CgTIk^@&eiJQ+x6)I~^QAW&E=$s{+x)DwO&tM&i-(#dtL0Uu1Vlc1ofbIV zvbP&X#K1D2XfeDMAbvf&6UkUNk~w@Bz}bwhkj+D5r}_TB@O207a^Ud-JLs->7O$0v zT^BRMIVo@^ULWyGkCA46E-clZKyAvrv!#5ci<>dI?>KG{HVW4FaHwEi21UVxGUUz}dZ`yCfd8&2iiIxBrFEyX@Az zl6y0x=4Q_DYdp0on#8_Sly}O8ELWsIVXRQ5(L;?8B$=GRb8SCVXKlKy1FbJ=#}meVqpB*L01PMWd|EqE z`9!77x8rZBr;;fRfip?Xb;=ZQNeJ~CH7YF9nT-j7^X&q;@XFF7jlS(x{i^%Ypr5sE zV@t8nDipSYmcMQ^dxRw0+UDU)&M?OHh6`gxG)5R#!#Fh2T@y&>9fl{oRHdK7CP#yI z_u+o`S_&>_oWmqI1;p+`Tx4@haJuW@lQS0tZgQ8vE&ezMwf48U=Mc1O&j~2DPw|~& zA)h&FFu4k@ota-DehO92@~Mx3Q@F!tI%2?Ge83&2J=~`eEj-Sh=1cace&mwCj_6QK zG}#c15I>;E9On7dD#jWr63HL-Xt*5HkZ2iSz{7^|?~tS)z)&Weoc;wpnQRA_W0`Cx zm;Ow)i_57Ftu-0q8VI>Zk>V8f4zhG^j6>jfXk{kS)UZOG_z)k3t_>lNN3^JEk5Qm5 z{q`{ynTaQSkAkE5pOQcF@Dsi*VVS(z!+YFmsf5@Yqv_DL5uLVdC$NG~L)!`3UZw5N zDBS}wz~yuPzR=qQIrK(X1Sh73t?!w*6lwX)&p4L-9cL2w3q!AA+##VqMi_oX!l^jn zRwpSvq>N~pv2&wmI)B5&4&;6s0v+sQ$z8&2{>{k6LYHsB&*NDLzmL3YVdyU53ckcw zggC>Xf6cc}d_!Hj#Pp~SSm9bkiR)$BDie$J@f;QXvIgO!3e|dF#|9Y*5;h#vF!&#}?t|I@ literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationReflection.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationReflection.class new file mode 100644 index 0000000000000000000000000000000000000000..0921309405f367b6afbebcbecce80782e77061fe GIT binary patch literal 3719 zcmb_fYjYGu6g{0ySh6e+6G(yqnMlxN7cv3DLpC4~KqDc<1fviYXLmcholItync0wN z`PpCKzwiTADG;r)^pjQoD9h6`v&-ZSRaR>IHTQAO?c29I|NQ&g9{@)1Z3Zn!rO}#2 z8}>w&V(8MRci!8x&?`r?cw4Wumz5WxO5>P7_ky)-Md6wWJX*O~S9V!?8T2Bhft<*~Kp&k1 zZX_UZW?&)_Fu5$9z`U*7!lS{7jrI!K(#b6Paf+e0YBlMULlc_>H|xe&3VZRszyZUH z0xHXf6&Tv=pvIOHI6SafmrAF#l5&hDV?z@f%EH7j2~}ip!}F}wod^xiB?#RwE--S1 zG|mZh%_U>d*z$1eMzXkoi;OfKH1_56wjoO*j~!%i86Tu^C5r+^1@b$jUYOzy?-Qyh za4_8QWbTa(Y>jnG0wkQ++lFOw=6UH#dHXk@a^z%vsVKb%R#Bhi4(-F9wLGQg@nUOGRjeS_CU!`PU8@nj?q|fNC5bx^ zR%>+Dx$Xds*_Q89D!+MkG{0>aT6I+wSm37bT(An`O@S~PcWo&hX*q@Favm8We8lK!vI2d(x}>P(Rn7{C@o2~++}-rI9)`fansyiY5g2O9y%sK> zll5E22*=ykzZ=fcoX&}*T|=nl{=X;+W$a`4nq2!g8sZjPOEQq&I%~Zf z#nyejx#bRpySnlE-~Je9X56}0l6RCoeZ5;>5;z*8nT@!w!*X;ZmaK52`Y8 z>oJ?7kQ%&xZ6$qb7*@Hgv{lPCd=?ts{KmZN8PY0M4QoaDLjuRQqH=r1(hn+KAFlf{ zFur>nUO3+yf!hRNT+p!QJ=X~gciyPk)+*sGh1jFpJ6aMr;aA0>62Q7kPXrZRLPdKUL^lT-zdtea>@qD$36tIe|&|loAV9UoR1^TG2gFjKcR-nUa)V= zy@2>RG;x=${tWbBf^9Yuz&%WICU759bfT5daHi!_9qDK6TJTEsL_#$ct40Vvr3&Ae zY_*Az*hD7x3)N1|ZLXoW>F2*Zf8z_1H8G;Q>Aid39qJpVN(A`vMPXM~@z1j+VaUIEsvx z|BCVvy{|dqrZcASLCxvWh$l;6F7x=3h8{-fHj#61pmVc*&Mn>_`@;$VH(o#_v9GR zv5g7cnMlJuv9ld4GZaxiR8XbO7AP#RAEd8EVzGTJ!O?>`2p=wL(KzMfi4V_*kAUKY LiaMTR6-WOA2u0<& literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationRotXYZ.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationRotXYZ.class new file mode 100644 index 0000000000000000000000000000000000000000..6d9c80125769e0b57a1a76fd425d2258c4ef4df5 GIT binary patch literal 3803 zcmb_fZF3vd6@IQHTeh;0#33$1>0~I3$?(q3ngo{YMWE*RnPQ&%XJjG zCoIPb&L|{@hOed3qp)w;STiD?Qs7z6Vh=J3YP|;mBb+~(l=)g{w23uaSYK{U^}6(gYTSvR;oH?NR3)-9i!6b{^&Y1ds$ z;}8#AZ?RCWt*lroR=>eWsK5n=Tjk;0T^deBs({D3z^bj{)G@ldm&nrAJv{if}*{lRis_B+Izg$}_3x2QQRSh$EO(Ap3c8%bgVb`LtUl3eh*Kh@I5LfCw z>v_h;PPh)oleww4q;Tj)JQR&|E@tp1cmdzia2<0B`5i7)c$FKBGgg^*D8l)=!sJkA z@f~$e(#Tj^G(?8B+|ck-F{CbfPVD=+hMTdy`3&>Z&`?H&cY~lPjBOu=&Z-#2lC|g< zLCqu5FYR)9CpwyYrl>H!E9YkNM&T|BTk5>KK)risEXRztuNq~!>U{!+ea-MJS=TpH z!IH%ib9!cn;OtoKsPQr4G;7jb=juk4iVn17`FY#$eNyGO?oQ;lbv`9ETw$59?^J1G z#c#Sv5GK*9wrM)1;S`(O@h4-u3RN7QCvxJb!r-ndrF40VtXndiWch09YBfP&PgROx zqY92T>Ha61c(GbTMs(|8%kF05L{4&HbyxU=?*E6NV)UPk$24A+S^f#~)3Y@vuvX1! zXU+00Nkn>e)^Vh&@(E=wWEGF%kc}w=3(J-&9)_b>07p45FZ?4)#T&VB25|8 zdx1$>3XICiYeuz>;Nf=m7Orz0Bh|6t*!}`%N^Z@om=`R$ef^TMjdBz<3Zrs=6$a{- zT#N8%v16d!js>?;xJ)+*K-XGS%MUc9>J-bTNe_FFElq=PPMUs2`X>TS0n-t^uiK4Y zqw%O2(JMzXJ?aPemMv`Vg^yi%gPYMCH>&VdCqt*!4QbBg_K)~xpuc;w>RL|lo*uYO zo%)Nq<>8$se1hmNh%3=K2=T+319{Y$-XWdB%R0 z-$kx2ajrNX$vuS1b$^HST(YmXG?(hzQ=04Qd#rRHd;cDCFYzlKF>nwm9EQc27V%;k zD_kkqSS5wX9pOskCi@P4$sqw@7o}i-xXGHVvqsK1JZJaFuZS4uDD;`!SLlC)!wP@n zDlRD-lay&1;i6hM;vSN8572Y@MJ~dA0sJ|n+z>H6w>Di zQXY>Jwu5x!C`Lm)FB^8>EkXeTOr) zlcW`2|4d5Zy7Dc?<{sjtxST)o2rne@05A0w`Qg@H{zgv9#*d?o!5GcU(N=bI>jBQT zWB)?vi5}@{dU6Ht;+M3C`svAg^yF8Z_d*@w@IHUPmSutzvH)#mZ&J7XUv zC?g1V+WT>uNnd1_Il;d(n8eG(|6B}(J53bs)KS<^41R;(5{2JUMjDBKVP$d@d0Hf@FD)d r@fdaek+yu~<750uCO4pb++`kx^MsF2eEbD}B`xjbzfGUw9tQpkiRtB$ literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationRotate.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationRotate.class new file mode 100644 index 0000000000000000000000000000000000000000..d041764251f60d2d90c1574541dd3500c2eea24d GIT binary patch literal 3969 zcmb_fTX!4P75G{kMMr zxPY(n=s_ljtbtziDU4QXmbc`)R`@7z>XGHzUe#(uj%&?3%XL>zt9g(jedF;=@Fz^JPRJiQ;R@I4Wjj~mCCf>4F zx%gqdrUPy1wsK4Cv^325ksWD;ez&PIR4`|{0o_Db+K+=cl*535!+1(zXm@sneNH&< zcvY8n=+1pXebm4)ftsbS5Fiew?pD-wlkIbY(r&p-onv!Sf{^(4nzLIGAp@HWxLM(Q@ zuD!)r#Wu$6vP~?deJCg#G=n&_i>4j;4R6uhhcUWq+7aK*Dj4P}GiAoEnPPN8ke^d{ zYGk|SIO5M6tf`AkRaHl=aE|ThTUyDT@{+DZr5s)$u1!Z~8_Q)0-6gze;0j6#`G>A= zM+>&wNK$nxhnEzNrotDO>jJg;6r9A%27ZKVOi{)4J<2>y@ZGr?*h$XJ8)pcs>{dg^8Wh+Fb=hI`33H zJ8A^X!V7yG;K{BquCf5G{4bJe-$eMrp2D5AR}!)84S$iK56n28PD=8gU6x)kAQ5sG z?7)$IlbDTa4tvy5To^*X)&8*Sk zSkID<%7N{8p=ED=v}PNwD^*P|hdUK9&Gxcpnzm?DEL3IlcT1tiUh9CFK8p$`I#q7b zbiHdHV-1~y$j+T2Kkqk!ioWH@NjQU16|^WFd*s794|}I2QeiHA~kSl-`x( z5<1Z8l4fgC**2Ys)J+{$WTs-^DSSKO4NbQ-)U+;PJGqs~W+rn6FJRu#n^YM`%SmELs zVF~FePjuu|TrJzc!82(^XvwKE+cDuL#_D2kdNY+n4;SY~}(f;VQa)|^Vs zWEdNvrY~XqF?LPDE8jPgO!krb(zkdCKF;|b}+CTRm! zXY4PBa=5 zB!ztihW4kM7?NrqNEKRN)9x;si7!d>JNPwq_TXLohO0$e?-9%UA%2VB$;$(%5WmL< e$$M{z4@3MR#2-U^6yjriLLmair}!LSV(>pNuPXik literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationScale.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationScale.class new file mode 100644 index 0000000000000000000000000000000000000000..0b59387d64b2b4b9c81acfbb8076d6b14739dbfc GIT binary patch literal 4341 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 Syyo0Tjfy0R4ZOs+82lGnAefl| literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationSphereLoc.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprLocationSphereLoc.class new file mode 100644 index 0000000000000000000000000000000000000000..3f6de5a2cd364e4f6701ef62bd122090e38e22e2 GIT binary patch literal 3975 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 Yho`89{}Uc+9!#u}x0|GOY{0?LzqzWGxBvhE literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorCircle.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorCircle.class new file mode 100644 index 0000000000000000000000000000000000000000..2a4e3cc1f6951a0724e4cc8de41a440a6570c8f0 GIT binary patch literal 3252 zcmb_eZBrXn6n<_(38bM!N?+*fqO=VOut2faCan}gl{Tf7AljnVo8&gRWZ6x3H=&IB z7yRJw@Pp1MwL0VY*}vqB_6LADY)277ID(!S zj-i)fyjaoAP0P@osx51-Zg8`#*IjAodAU_H#L~-}EgVN$CPQyVn$o?)5KfG*N6^P` z+Oo@fpB>Mc11F9w>IJ*nR(j|ANB>^SPM(e8J=~1o{TOZ`O*MK*{dlG7S4~b9 z7^39OW6RhntAf3lSk8`b1YHV%Ge!S9m$itpRt3=v^IcW<2c#Tuw7>06IksIsWmTKQT>~SlSK8l;UL*jDCcSU#u z6}bsX$Zd9PPJ=C&j3F>hHFPTg?R9;R}gVf08yqQ~v>3cc1rGl3?Id0n&E6P&%qW%;iAM|Uagz1 z+!D)XLpoBGCOLN3G%c6AG%Kh&$2?{!4O+EO<{X2N;nZvrA_QNS`TUw5!C5Aag+v)u0UJCC{2nG4XqIU(TxTS^WN?* z?di%9*hlD{?p5?$APJpTM(eTUE3ltDl|_20pMhay=^66{u!MWGWB3pskx`{QNjoJM z9*X=(O9*Y%a{<+GQ+3{xStgbHctB5OVxnmx6#k*h!sUR4PzyYVhfVNr5GFr>crq29 z{RREWR1YnKJ<3klV{(F4;0g`$s}zB2p1nC=r)iJ0v4TgQ6LCDo$7EZbts?K~#<7M^ z(1Ue4^~0d#KPCBjItk%3dZW7&$tqtgl2nK@zhmghD+~{v+QpgV&*)EGc#ZR6&~9kd zKN@Tw?c$y8;7xc`m02>@qB?^ocZ#dqb1j z_q0>NTJY$+#?=u1L~<7s!uI^}E~MqW3S1|B4%Ju6}rDk-~Lk=-#es zB}q7h(&D^;XCCJi&fqIAycw!3jso#2lBB9L#a4L|1shh?MEiJ_xR;vTr^!>5mfmD) z7nwG`U!(Crne;Ys53x-A=E+tF0?)m*j0&w+2}=@}O$SvN>SY7W!4^#aJ>i_@% literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorCube.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorCube.class new file mode 100644 index 0000000000000000000000000000000000000000..ac0d239fcb8796d21bc6aa460a98a63d026e645b GIT binary patch literal 3122 zcmb_eTUQ%Z6#h;^376CYMOu1+L1`O8%d`}$ZLrz`Rcxdc5Zj{GNphMD3^VCmXjv|Q zfq%sZT}!FewOl^?qg;MxP7K2(;DZmDbIIP{{`TeUbN>4Kw?6<(VZ93}q%&yC;uzWm z#>zF*UGp3>SoiIEXgZc#HKWjW%q4rH?#Q{9bzcU7?YRQ&)3$4ew*}I<9I`0%J$5v9oC|fS+cJ_w_b4Yf_hE*(v(enQ<>8G zGf_#>oNra^C=f7;2a()iR>+`7;MAJ6X=(mTp>Mm@yOHfwq~C=TNO$0*KyR72#tSkr zG_;}qdozmxoT53aUYBk~;7YEz7pgF}Z>xb`=*A$UjaV^pBCD#Inlz+oIO=ZY=NBtagO)|fkn z@}fY`j{ghMMoGo+0&-c5AurHf@uHF=S1czYI7?x+3zu;vgNZCmTxCfelJ2;&bdrm9 zNgzX>I@{-Rvtz4Cq6ty@-i665u49T8sUmQ_wNouo7?vfw>RMsslljyURW+SRxsF2N zc0r(R#;Z{KMA3Go-d?sC4uQU+SGJrL%eU3KvDp^ZY*z4%;vq3+c&k_{Cpzrl-|AojpU^9HvIW+1t4BnoFy9o26LjB^(v_B5 zXl^GP$x_@@9$J1N{n2<>ltJW#h1jNYTwvr#lcZ<))oTJ`UQZ`^+MD)v)6fFf8Iz{K zeMuO1CHg!|%)*a5!oo(Osr8H(`P*xW%b3n!KXMAaeGB7N| zv4ha?o*A3*O&S=sYlJmv1U0KJ)xKrKw^+_|ovrwvvgfMY)NsN z2~&2W3U36hqb@>OsnTK;NR8-4p~IdwA#na67w2AD>OG*^&1gU)-#%45Zr#d%XM~}X8JJy!;F9k+TS{1tVOu?155{LrXd6!Pb{Y?fL zRC$XXbg{PTFB#Z;HXNnFyDZU@Fv3eF#Yd9hm+uyi?{JmE4P-dyYl+`?xnpt^9FOH+ zLHrbpyvMKl8|cSPezRHtw@~0pU>ffeNGV_8O39`BGCy)iVMp~$LN(n`)eLS^fKu9%>-@)C6@#jd>51=zYo}T;#ooxyr9aGS*U!bcOV~{B=*Z`pl zW-uEw@5CJL5m4=YgpaAOX7l(2ZMe_5_Fc&rDX$&)lruh$D61U!l9Ebm=y#lW{0hB& zecR~I|BTM@bFXna4X(B^v^PBCF)u@FHhB$U0S{tcL*(_4ygrNhhyf0Z{4J?viV|u8 zTIM67!Q&C7+qgFn+kTCa6#m48ZCskq{fhA&`#Lt)(2L0ghk+)C0W8NHdKt6Nu|m`@ zh^p#A*;IVGAo^9-x$c=IgGUVpS1GF^*`6QY#1=OUI|P}&=x9I26Jn;Y p%1DFxOyetZ`8vQ;e4{3-5CJTd^gI=y9H0V8S@Og))UbxZe*j?xFyR0I literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorCubeOutline.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorCubeOutline.class new file mode 100644 index 0000000000000000000000000000000000000000..c34324210d9f20bff5768ccb3482b18ae1148b85 GIT binary patch literal 3413 zcmb_eYgZFj6x}z81TYFBRq;7i)Q~7cz&vuMGKTxX=^9RB^elI;yh6L_(%QF zuGL~~*Xru${*3;RuI@V%!vqNQLl=v=bMKt9&%XPfoOA#B=eIuq+`zM5B#=xamBAr& z35-x0!7o&Yo=ch%6i!xduBZ6;CPL?bfqp^___)e z`A-F9`7rP;)0T|t8dWp!1hmp#T(=1pRoMOvj;WaGs zyBC;NRl2xSlQTge;EiT53iq z9>!UmOXGY77oZ88-+vnd-M$mi3i9By+)fS;?Ej^$bR# z3mmRGLD`Z^h7}N;2{he{0>;yr$S^D4Vj}L7Bw;>AsZlb^0!PWSEl18}r>94jxe>m7R;J$_<_qE+&CZ^Cu7+VsZqRL6i7`uReJZ8nA*|u zqCr^%21-uFu$BzhRP*Ly%CDPD{P#-xXmijHh(V8V&-0SJ?ZwRoV;yhHgDK1KJX($J zUY*Q$l2q-b+w@*13(xZjH>b*jz-o5+0C9@5Eral!9#~S^(y)uI<#;t(2rJVg!}X*) z91io+3oO4F##H+kxOiYl(lgvzK|st#uj8x>t$6J;B7+HP(lYo@gjf*UkCAdWk8=1R zf|EI=>H2}%DZBqsK58;1a4LSz@hU^Pc(51d1KT&(<*dD7dZx-xZtSjYJHFwwGcZMm zLx5H3mtDiOJ>A&;sLutKrIMQ48{P@T<22T#FWojY!6X$tRWZ$fmfJHs-P){Kj5}4T z<=C&VS*iqP_B_-u19tYj$vASnq^Ps%U2p=oBJZ2(_j`KJ?lr1PBD+hI|5Bu08~dT1 zY^qL0pQ9*@aA+ecm&c>pr>UB!wHo8DeyBXBrB_jnoX0|dzo%Sj_|nr1%`!b-b5^vC zutR&AX={F6YF^!Fu<@PLEPpu6B*!r+~JHW;~qhk^L5UYU2-7(BZmaGU58?>$);<>Xo@b=nBh}FTx&uk zl0WP~I3Ghuw1VHq2hHH$A<2CJ{keQ{{1^1(@+l5|DTR{^nH=Q^3?q%pRNzX8cO&v? z;?Wx)Vm91FKR&_(Vym?hJ`R2RF^7jp;SpCO8I=7ew2$^O&o|!mXsh<(&{9P#{EmUg zFEKdq#uiTIenwCJ>?@o}g0q2((Nf>`(iSf56fYlARj>qWQ7vEriy_qlseVeTOZ?sg zae~8V{Qq1{6SPnhkPPoZO={n8*2T44Naq!_U&JARal{jqfDYR26MnQ@~ddWx@!nSg;Z$199gA(yHLi52y-4B?@M Vdi0*~V0u`^8g0oF7Hl*y^e<@IiKYMm literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorHelix.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorHelix.class new file mode 100644 index 0000000000000000000000000000000000000000..c96a641ca67264b7e4f207c6d6ee39015a1d56bb GIT binary patch literal 3667 zcmb_eZFdtz6n-WNNm_zHd9ldbAXU<&GzAJsQ&FHrDiyHBBB0_X8Io-`yUXsTrM~xrD zbi8Jz)>&FIgXqwLst1nOhkoqLp-{jsydiMjbSh0VXmx6pnmP8wSmEIKZcBNpqPqAM zttvWyLs{li>hp|-+3^MB>}D+2sa3VYJq7I5+OjQWHd}!f?JHov7G?ZExms|rfH$=u z*HE@^2CF$75_ogbST-WV=L65Qn^!xg)lgnP29eI=h`>Ng6Ot>mK}MXU{_|J?$04cF za9w3L1Wp%cH)2(XUlGOd)tz`7CvzAo;2pdxaP0Lq3giPP;uk7PcwQ|lJE%|}b$8wBv}@Yu59(l%Tb-Xym-|)jE*~Ip0KNICj0atO2T6s+1+}4I| zi9*-Rn@!sYIv&}NZUAv4 z1TB+a%f;E(_+{(wjp}yM+BrqW_T5#NTK4rs|C(j^K6j12DxEBE0waS(^LBRE;oK5cL7JH79JbRT^( zCNP+cbF%KxT@38;xsDx}Z8c*ro4%3!9sj^!Xm_K!6bc-QnJ+~C>*0N9BaentuiTwXm>zFgR`2DPOjn71=iIRavu~`jQ`FtaVV!l1)c;+!e!XgbEy6 zNiWWi2zadzg%-)WV+WpNMJPtwVS;HYu4CGPKPs=t7Q4Ojq#gDTQm)e+pDZ-<&GxUs z6XXohJzj5I$0nJ;p&-PSE&)UGqXI`a^ZN8tL*I^cIlS(xKz{ouG;m^~^u5Mevv&Qy zaJJii&&8ehOi$BgGo0|X+G#=S@Ry& zv*tA{vCeVM>nPvXiBRDvIPNGthxjFg{D^P;H+Z4D!FM6rfEj$umB3BRQmH3K&hPNa3G^m(;=^e;qFt&p-6uW;{ZxHf^w*3JVJ`K5EFBl4^2CU zyZDS6wQK?Rh^1$r<31ztfb+;XdjCW2k1YIxGhQ>fS6lcacj{C3{>0$@=Xh)2@G~4O z{ffTwkrz0T23G^8BGK-IXgCrLBt+#%bYNZd45v3bek?RdMk>1o-NTpoDm3UG4SGa_ zz9ywUh=UvqJ~h2eafe>$G~<;lHsB@lOg>;PB>e(oDg1@;XSgs!!R~TGa4AE{K#wF# z$$=h8zBrf}%ns&%$HY4KC^#3G$`^5xSJLyi#Gp-twp?a5QhV2yIn+a2_TmZ}P_*SF z)A%uG8J;_eCTCfm-ia1xd6+z{^I2Q=HJ^Tn{W@#8-ZMoz7h^leh@=CZEz!{*u5*jN zg*}OM%*I?^gG??_GAzL&W(sZC9CcDSg=(LCj&<6{{s+)JK#if`~8 G4*d(~uDTEa literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorInFrame.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorInFrame.class new file mode 100644 index 0000000000000000000000000000000000000000..b03d1ee53bf0ecbdc7e57e55446dc4e111cd88d5 GIT binary patch literal 3591 zcmb_eTXz#x7~LmHJ8g(ifufPyRBpWzEKs1S+zVD)P=Zycx0A_fbK2=ln3)v1)Hi>L zFTVJoYiU{NlI62M!r$SOxX(;XlhTV1t|W8joSg65``h2Se1H7?%X0wdu$n~*X$zSg zI?yRF;8Y9VqVE>Mr9juBf-Aj+LOs%Mp`@2FM%2gKoa3Y73I7P{# zKziZ4A1n)uw()K8Psuh1jx#in!ytwjxeosopUdT;g%N?*)}<~*0aJ6muHA|XvKU6% z$aW@&w=hcM$WJD0C)>l;)Fso4#?!eR&SQ+rRn}_CtHdrg0=K2TjZ3i$7X>o5_H5&9 z+%PH%?5BV)Imt5nZ|86sSGXsbX@RqCqP4BFEptiPOM1bRQ9WR$#&_5T6I+RYnJlMv zH2zPkx@df5Zuk}Q*)y#@b*H{uR>6H)HhXFBwC_lFRtDPi8-tmsszZTG)7t=ScMcFR z&HW?r`d0CAF~@ptn9{1TfS4CJwH=4`txH6)BCxBu|+P5PzckEIFjk~;w*G_|O zYX&aCp(4$Bt#{9syqJOZg-5X)i|_bO1SbZKqRTrz^ZZCgyttXc{6;1f-znVT^-EPcR-{`u z8$G#N%)!^VnP0k*jnz#RI;K*fV;axg@VylkM4>J1od*prIF1x<76dFrIF)=z7+7%t}K938Z zsRY&0f#a(2@xd54>DiB2^w@!{=z3_sWivdxqP$Q?tMt4X8Qmn~>M*iNGl`%{Ags!o zGUL*2K*+$a({CHQs*;ri+YCE?V9465@^MU|rX!~+kel*66~rfy3N6%G2W?g~ZMEer zJQlEbvf#FEIX=+GJ2AylGsO?fA_!cKd)L@!rP%CWhsAf+pnTroi~?K1wqx)q#E-Gb zO+L-vzFUzq9gFnFB zI5M6|k9CZUcjh~vk6G!luHLR*>s$2YJA1oE$Gh{H-j3mX_ZsXq94~#-A-?Gn-@W)V zpZS5#(=dciqMOfyELINja~Q{1ZJoqXQn4|^=-=o2EJqFDcNpUpR;%w|Dzn4;zGdk5Ed71Jknho3A5t$^jIikLvQV8xE{uO6;5VvP=C_VZ!dIyIxY^;otAj#wI*xvv z;LsW-HpaNSMbFL#ex~6^VLtY^fGS&7%Fy(=7-9*od6|OR MmVZQ8!4u^F0VBD(vj6}9 literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorLine.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorLine.class new file mode 100644 index 0000000000000000000000000000000000000000..f57846b0886233899828396a3be65007272f8109 GIT binary patch literal 3422 zcmb_eYf~Fl7=BKY5-w?>^oqSLf*QhQfzoOlthPWEi?jlwEo$8)hh$;1yWQQ;;^iOt zL1&a&opGG;n?K6&IlCcj!p#p(CVMXXzR&x-mwnIq`=8(b05Aow6A2{KNM&#WZ308Z zif(T>mhNwQrW@#%VVCtQr_rmq0@0*S-&^B$_W^hL!nH^e9qg~*<>cmo#;vEvRJDYR9JHu&0q|=Kv&7B6)d@GST%yP zVrDxrfyp$kXIO?eSb0ZOMOc8lwNPME$ula7E7{rEp|v>Em~6h2h46L;@8A|qQb*wW z;a(kz!niD(W!ng99;r_qQ+?C1GKj*Ezmpe8%{V1$cPrY__KLxH2=p#EMZ;P(JX5Xf zo2j5;`T{o>jtI)3p9-y=q_azsgzc4WmqyMsWq!soe4kQd`*){@4~wO8qTTd&%Yzww zLa$T@5ZK7B9TS!Od_y2i&;v_KTN-x0u^n$X%VG0*WO%;x2E$=V`ZX)ahc=bt0{zFD zBt63`PY8(lXgbLb(6HA`BNDjIm^1|b6Cw7z=KL|-^&Ac!M{qi)Vp=^mc1rGl3?E}M zE^slP=XhUXxR}^$OEo(%t8(7nGJR7OCLOzL+fHBvZ2qjx!4P0W1_jSBZC^L`Uh0cA z%Tm=$_Xb;mm`CurmY1PsrePdm1u|>*p2}UYz`z-2$9k1h%iwXlh3BL{c7kafD{uiSq(_==Mu2xln%)D(&FKo!tPlLCrk%Mjr zhc(1BT;7L{)8OeFYoh4qshHsHFTo!#WDvL=uJT;-&J zg(~mzsa^x;aEH%KB!KtuK34*FagU%%d6X+9m+Vdd$RU9})ypx}WL-64G((kH%<-up zM(PlWrQC9ilP*Pc( z_#M5EU*c@Y5R zzQ-vF;}py21_p35F~gxo1DB#hzF>wAJk%flRwmik{+YVkTgqz;TGSisVxAA+fF| cYY;xls6_Lm57Wnnk4;zC6Pma{1zm zf5r!0OR3ehTt53R{39;EGczRN-UlBzCuh&TeEZwyoPGHF-{1cPFbTH{F~pNdq|k>p$#>i&x&(SxjSVC8x9Gd3U74wyR#_21C*mDAA#iRZ(3X~ID_Kl!3S2u{ zU7*8vLV|)kTNqUv%J#E!ddxlEpKh)L*9F?7VV9*&xj%*1biNVP@eT|KoRphPU6z&Y znf_LwcQb`I0=-D686VPM(=5s00daIf!ztXth(KpW`HL*3r38it3x}X>b@HIN$};DY z7!^3(tm6IpdQoqNEXGrqz@$KT*{K&TwQN{*I_DnCci}C(oy0pSyo)LB)guZSY}uXi z6-fed>N*M(cA;$1%eA6!mFI_^9QLV;JWr?a9`q?-2!V-R?psTCxEIp6XjW{)ue$^| zbnxe20O9r_Y=qWfQ!&)|6Q?Dao!mpY<1Np)c z1$f1i#Mm9Cx3hy-H%QF+NW;_ik+_ca|hj7Rbsdas0!H~a2=z`8_xVc-~Rh3U&#RKk5eMacmxi=u#4xJCK-w%)Jfp$aC1W=+xbkx@+n~)PGbj8PO;N z`WEW8Z?3Cl(=&O}?%1~D8$SCiH$&fEP-Ul-y>F~565F;B-jA2V%TDSOETe8E8|`Xe zlhPjY$}8z6&meU4&#bEqUwP7C1NMCBtjMs(dD66{Usckp8a1WmTBD^!>u>(1BP%9b z(~i-IT%vfV&jcW4$+3OcvAn>WvFJHv zJMQUZjNV;7O=^x^rh!92;8)h@uxL4@HFm432N5~<+|Vx@eW!frDPMm3RA)CemHtk< z2|3uEa3mWWmgB>6B51ggXd)2tRWR;VolQx?YFl!{v@D}S7=|xvma)ZO&dQ1oRorTc zCXkx9ZRG|Robr<36KnXO$HHOPND?(ZM~<`LRnT(vpr0Kq#;0JMBcDeQc%Q2nKHwjp z54+ZUCN$P}kmPT^89C0-BFkBDZcD#__&IPf%Ta#@dXVRs3KcMiyIhfNe8f>34|CRf zvG|XAMAPz8i)E}~IggL2r7dqomhqnCPkT(Sx0uEw(=fMtG~!!~qjvE<63iaR|AEd& zFVNkS+Q!NBFX+i!d5Md0aMg1y6v-CR>!IjIQ?!l2y%+`p3^Mc|VPGT_@JWzx9{2Hp zsR%s8r%_5jP`izIdefQs_^;?mXA+!bI@8AKMnW?b4;bnpaA1gqNaG|jI8Pom&y%5f zBU~>Quo#5v#S%Va7&^x?J`Z5^;tM>Yr^l3r71H`os2`H`CBN}~!?h;MZpE<-Q$La;)CDi&!4ingeAk{pr)!%R9efwI(p z@Q=5w9 z7nHL(ZQBBg?NFaDU@RO4bRS(-+w4l=O>HnykdCi{-2~1EoZqmvt;nzCz*A1~enr^@ z=_S#PcsqIoQkHESRZE86zK}vM-lD@+xh$Q6z{uc2vzBc7z*bdpHi@^q-i+CrU3m>khLWi^hG6h>hRbkN2! z!)r@{;lX-|1|x^rxYiJ)#mZJrAI}(Wq?obe0;dXYC1=Z3%dSv4vu`$u+qjd!-4rH} zWfr%{usXa8D#zr|Q4Oda-cR8kJ|GnOEO6s!Z;#Z%crB}5+k%qf zHN3mfBGRqyG7X+)u$Ckpc2;)Fv~#8*^Ji?!_sKPSaCdU3mHX|=f1P&BjAwLAS1ExF zo^I=Vk)5wGgh}$ymeP@yldWyn7schUKt8rSUwQ-KvLyYA&3mJ5YTpI=k2OhF%PTVB z#eDR7ofWEPuMtMXaDy?aG5jY$tjmo@$Z%JWao{+BlNp^GTgS#u^ZkF}V|}f=ZT0oy z*&)?2ip!Y5g`=bxULMNjrHT`%EjjOOD_`kcW+0{=#|^B24UOqM5GvS^LC&+3LCu45ZhfO)#l1HnTQx%pH1=;i)&b+m=^8x$IWFynLYaeeF5W zI7jt`XWg!1S&h7JK+@Zcq~PYwMLI=yPi#kpwlk{ohHl43STPTDVJ$T){k)zX7*Y!V zJ>y9$kiKEDeffdmuGdh|mHw!)Qj)b^7veDTt`m5!?Hd6< zSz9g-RckG~$_XeiZIo1zvxMPro(Oy*IEw#uE2WZa)b4S>DZ5UA0xmZ~y+)Y| zbGDn`92Mw0ELL+bEj=IUl6A+If$`1ryz=t4oS4Xbrxit1)Vn>apenvGZdgvC=G@pQ zul}t_R7XY@UW+!Uias^Y02Ca#%CI;bCKzZ=FHtZI*9o1jw;hI+O~Nm^J4T5E&91Sn znAt@-Xaz>uws!gEuCHq(xn26P4~C=BJdJo^ZI*rlyfVXw)zqVEV*(Y9ZpTTm!PnJO z^s~XnIIPC_oeFtArpQAq@TpY{S5?H~-#2NvQl}wS zGyVw{tH!@YoPGdZnW6agpV5&SYU9$`ruD=_ByVs9hrI;Sj6f#TcQcZy>Z3Fs;c@6h z7e2)jb?d!ltc0>%c!E{5;WO?=VbJ`alYfdkF+AnlWjrIV_NB-jZ87~jx}Uzn+3s_D zIG_0m9ecRQx9-;^qywUd%X9v})?|zv zngHQ)%&J0q!d1J}uVD=Rih&sZM218siD6BQ?cw?_xYZ10JcQB{3D=QCt2SC_rejmo6+<3{aFtl+I!s$d lVk!Ah*w8O)5I#0xNAGPuwtP4~Tpwk;pajvvLx64c{tMQ&#rOaK literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorMidpoint.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorMidpoint.class new file mode 100644 index 0000000000000000000000000000000000000000..10922294d3ccd38fa5fb9f62527d0a48f8c22824 GIT binary patch literal 3056 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 literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorPath.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorPath.class new file mode 100644 index 0000000000000000000000000000000000000000..c3d545a75ce175b69a795ed44847159e994e28be GIT binary patch literal 3267 zcmb_eZBrXn7(JH&p&_LReWSK^QB(+R7FyaW!72r+*w|J;w4l~aa!D>MyXo!*%BcUy z4|YbW)fvan{wT+Dcef#-3HZTb$nL#+pL3q~=l=cA?|%ZAf}cVM5=nHX(S>e-v0}w^ zHeK8Fw>(u1OxtqGW-U;*xvaLUwp@5x^`!4B*AeKRQH~033nWIzR!^V@Cz42|(TlXe zlyc3o3M#dNSx^&CtX)1_zgm%=G-Vyb)Nre^7`Wa;E2s!0cfy4)VB}kAazLN!MITNj z(Vxa^7!Y{l=;H!CWf{zRp0y`%bu{mKWwTJ*+ERfjccc@T3;H)Vww~X#cC5(k2Zc>) zlS|^Xz|eZ5Na&DA@0>RLY#QgZ)ya}{d=>0z-GweMTVvwkw#iSG%$h$?$UbQ@> z*YRd&P*JSzoB1O$vu%GMTUS`E0_PhoX{=y@lXT{iq(hvQy(;w>Z1Vn`ZTUWdvajyW zj5mTd=C-y|utvlh?bS_BV3S31bj!&t)(?bO_iW~@w47XhyRpYEhyC`U<@wSZ2_H++ zui0!#sG_4M9o$QV&$eq|MAGjv&O7ZQDx3;!wKh)p`0Qq zd{VSK|FQ)VWRmC}FAP=JDN(@XMu=-v30Sb*;#OARQY%L+Jhk+FLzn6;Uk1kakE^b| zS9YE0>CBHBDPBfh_g1W~VL2tkvr4Mw8`lNy#F88uFU4BTk!I|sHhx3knqP5ujSA<> zp0T5B+bUCcD=@0IwZ}JiV?(nP_OyyIkwALUaikYE8|f$Ea`w0C7VWA&i6^`Q9Vfxc zZRivj=0xe>t*(QAyo5nuK3pwu&Fe{heHTf-^Sa01k9or6Q}Ef9c@FU`6#0a|`ZF+y zMgD4G9>Ax#$7iRWTHMjXUmy{Z4rhKra{L8OcHl1za&d->^LlY{A8-7IH-F~g4jceq z2!YQ=!Z9#tLmrJOfeO%ft03rfl+~<4q;txP%;%`3Eam6qH86u#t4alD~Ht> zX%J1sqLJGkQi%70SP7R_CkQq92eOZzV`5-(AJ;>hFTTL71h^W=MO$aa>s$Ny;4tA> zNN7Z0b-O2HyGel0u|&NEma!7+{{v5Vk-R@Mp1Afal9};NKF)M%KO{n*_Jw#^M%Lur zb0XxJie%~>{S4MBafyR3@m1*gemufjDBF*9d`%<2;rA%q`uw*%AGzak|2)G!5W8c7 z(mL0=GvoXC=&+4_4NmQj`8#8r?_g1`0|gZM93yv$n9|1v%KBv;!bb%vdQbS+^s(i` P#x{?qxa*(_4@3U~YIAh% literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorPolygon.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorPolygon.class new file mode 100644 index 0000000000000000000000000000000000000000..72e6ae1da4555ce5a876bb5c837b601e597c514a GIT binary patch literal 3372 zcmb_eYgZFj6x}yL0x=4rqEyjAX-xt$sHoMTRRP;*iWV%b($-FrOBfht;yi+^K7LU@ zv}?84$68(e+#l7|eP?1`y!xRlD{~)n9{cQj=A8TYKfnJ8U<#W_#1K!QD}_Vo7RZ!V zb$iXRbZ^}?tG;d-c0~_-)6y5sjjAQ*URPb|d8T6vbWfYM>E9KIr!z|l^au<(ZbdH! z>+7Z;DJ{v8@3_54;&1|~6prAiz)jQ9E2h616!oGx`O4Vj;CR(l=}KKT?CZ)^r2o{h zwkpbFPffbMS(2WBR@e<`6JAa^?N8yD^4RSfWi#*+I4*E%&8QhsT#LSI+LZ@^X_cj$ z!~o(w7!){B3sGy;$gQ?XteSd#I)x#;Lvu#8D($ks<#eIbS}wC=tL`9|#90g{a4v=O z&;79mhJ-8rnQhUpSX4qvd3N6Gpd>HTIy#y|$kVZz}-2M~^ z^j4(5ND3?|FrF^7oSv*n+t=sRvn`?sX)b}WwgBdXjiRD3i_0lYKxZhX?JpTtK+8;z zyn1ydg{!zGaJcLQMN2l{&L(jkHxjs+!uzeFf8& z(e^Wgln4wIoRVQJ8Lp|;_02AS)nv-wD(u6{ejg4U9$~x-l9=shTUGiw-j-f7mf?An zn%KEJJ+>E}Dvlo0dz(Kz~vc^zs43p1PVc2fdU+`47XsTiH)P(fnVzX~nMB;T zZO1o!b`PfWXlP(f`bF0;ZBI9vFZKDrveXAaIz~GU@%W7m=}WiGnqX3kD*wy`F)MJU zQ>{&U@0eLWI_ok)%X4JDR0Znw4Hj^?05Jb-$l+rQu6YGc?Qee9c*5 zn^Dc%(@b0QSEc5y8da(GjYeloJGQkIzAQPeEnROUGoj^Iv@IvlHVxZv5e=KDELZ3u z@MOb+6ZjTu;Do^NZh_6cHq@;{)ux-C^tEqZ)|>L}+u83l-)Yzh&0ph^ZHF;5`y#*K z>)xufsS$m3ORJeotcr9s!`G^ovBjCQvZ72Ex7w|<-dn!~rGqGTVS+aZ-jFP* z>?x8Wn*yo4O+Lc9DtYfybx5x{Dw5I)#@KHd zjo~k3w=sT)8+|PslaJ13e#KN1QAFMpljk}v;6{inOWU;7K$gZ=A+lpQg_j|D7nnI; z!=Tq9B~=zFObTxj;)Kc-uKQ<+uvAAl$#@j$-Py5i+-~}hGO)iT3A*ck_pwZT(ZQ4< tX)}fu9tsbHzE+9F^st6?HCcx6U|}Pg$355{91m5zqBx<#g^wDB{sk*Md29dx literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorPolygonOutline.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorPolygonOutline.class new file mode 100644 index 0000000000000000000000000000000000000000..46e61d8c003029e80d204e0030e38dd41c8b0404 GIT binary patch literal 3661 zcmb_fTXz#x6#h=qHf;$4<$fQaYA(QVDc1x9nxchTkYW{3VUiq@(@tl?%%o7!7hn7j z{std(Ed|lFTt53V{2?yCGc!#lrKLRhkU8h27>}S zT(4nP+w=1(h?r(&EpWXd3}ZtE*(^5V9f8ZrH5)2uwyS1Uop@qB<>LCSru3vKJMvAf zD&oKG+Di@Bxz!GADff zwWL!QIF_4QDXx@%jTCDrZNNbo863*uFpdZuc(YY>LEuIZLq!R<%SGt~=7fHh?!T_D zG>CTvMvP?-9yKDL7=w6UV54Cp7D`*Ga#rbbNuY1st&@Ax6hD!OeAl9D80;yx zX4$irr}Q}{_61GF&*#e28~pPY-y-#Hq}g{Qp*we%T2!~SCsW34%lCQf`0LbiaV@WE za|V^aoK6h-ecGpsjlf*)!8-maO?EDXp}J{H=}5~db;!xuHWSvl+m`1`Z!}!)NWX0d zrBJ7Kfxw}4RT7@%HBJhM$!L3u)uf}Z7e;j9G=0*!@K%6WUV9@+cgN8jT@PTnpnbZq zuJ81{|IvN)2|w;#$v7wL6WztY9=y|b0<|C~okisb^9m+qSLqn&yqJ6vS{^3o?*ik2Jv~6^r~avZBHti}l`>tUVkoGVNdLHTmpsdTCHlXw|_M!PCT>pSfoqbv@ZkW`9p19JRMxTSol^;Tei4oXgC`~?{whPJoH@lM&Kd4G$MQKr4wI|k+Fy7H@pCBRI-mMAII?}nXEwTkk1)xTzzy7_ z63u*!Cw(tHlKF{C3SHLy3D$JX8X=q_%g31JQ;Rqni%6w^Tp{6bLPDye{1$G<%D<=W z{p8tMD5g*SilIWWkISY)v7gIGpB9%60ga%K`y4XJ(-8$)RSZRsMeMO?3c@G26WX&A zGq_7Nn)WGXDM#-9rP7^fiFY!6{7!&=pR!55X25H zkNC6nF~uAD0OI3B7Nh-vp2(0^4iUaWF@?WizQD;#By1{n31@DQFp?x(=--#$)&CnV zbWukBKFc&bM~|H6Kd1`{f0sLm%czEkw=f>H(BFr#2X#oI8p9wSbJvdsap`P)#8q1~ z46#k;9M798w4oW>aDo==hz%5qFYrMZO_a%-6Uj6XBY1;kdS{%nQc#!+*Lm1n^VGFK jERGKsExlpXeLR5|?bAMdAAyfH7I~de@f1sVj@|zOV4%)> literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorReflection.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorReflection.class new file mode 100644 index 0000000000000000000000000000000000000000..4a02d8b72665b8393bcb28ab06eb99b7d9ca22fb GIT binary patch literal 3640 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 U@VfxN#~&z8JDHDv#GldkUs$#9RR910 literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorScale.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorScale.class new file mode 100644 index 0000000000000000000000000000000000000000..21f5a611a0434971f959846caa65f552770aa3f3 GIT binary patch literal 4183 zcmb_fZF3t}6@IQ|Teh-o6E}$+LerbZfGxjl96M>T+&~(;#neello*--WhGrpYp-|J zy(`B`DW#>Qyp=yfKa?48TbN<^#tgrSVR-KDMlVhz=L0j+-j}`SIp;k0+|Ttf1?0x#%xv3MIELdmk;RyWXK_;CT>s?)Bd#vG ze${B9Gk1-_r!9;dYlpX-hd!LK@HI0vT5&^~LK3q0y1@9hv*#pC6{CW+d$OyK0y^hSF@GFvb(->~pae2d07^}6ya0&`Q3 zE__rrHKZ_tX@O%>8y+jN)RZHb5qMg9}T&tlcAUE`tX z6R;il8*WKpX{x9C>7H+lzSk^#59>56-X)%r-axDUkzTj3fg9X`7-{uktU8{+jozTW zNb9RChc_&|i68LTaL)u5dxuF+=NV{4x9U4lBjkQ8A91u-df9okK=O|iZlA6sC<{hx z@On_8>Ss1wUnSGG9Y&|X*hau3v+0Dc8K;wjQO)HY^x{UJsOWu-QQcFd>XxFr{_SR+ zTAuAX_18T|Yp$AqbarK?pYwy}HWt|C7WcpI3hS)}arD0KDdj82FSMpRFaKhk2;Ou; zt-{H;xutZ&M5Z;#BbA5|Syj4hswc8c$xq{@TBg;DNxx2< zidiYhq_~idU*TT{v5e!jv+}&WT~qC$ zWpgfue=z6lyLw*WxyO0Aw(pqo&RjfKw2I`rZd0skjX- z7h>3o^0gZ^nTa8Vh2TavKxSoGS-G zSaF%als4PtYFQ4I8JX=#?WQA3x)$7*HCAvLas zCl~8to)yHCOLnj;V6FSU3gbMabQZr8n0;JA>6I9=_ya5Sqa=9AcO(;>XT?3hFOm$O z{78VnEsh3IB8q7O4w`#+oAjy5Pyy#Hu*HK!TR=xd|Jr@ z{0MJxBybn^2x^4qI5O)pW7*Hy44^G~p+hv2iY6BRm?Heh;L|`Xr4YINUoiR=o)P%$ z5Yki!Qm$phPw>;!h)>AD5M{>mGnq?&#b|zJkj<(5%n+N2K?9eG4I9HC`|~8gCLtGb ziuJYeZz&N^p$UYy@w3>kaX2VZjhQQ>LLAdm*dkJu{e&5_zQ*;5doFt~V4G`=d+$)% zNG<*yXW#k)&lxWdaP9z;V^e%^cq$#{li@@%JizQ>Mz6%i$^@=u>>_sH#l|ku*j=jg zscsbFG@F3`x)}~|g&BZ`v-(Vp`x8fok~_wXnXfQ6fPZ4)0E_FKnD`gY8EZNJqM0uo z;AK9)#I>m}@#^PYuQ+KW9ztZf;`_$@PTp5=0xx3%SFwm|9j@GIxpIeW8COnV6(KZT ziHN~S{0|m0Xe9mE4dY@Cf*-1}kH=T()N<<7Mar2S8_v%h;O1cxk9P#qaH_cvGU-Wn zbr1K6Ie>jM*}g{8>5pjqQsV=S4>f+J@sY;I8o$=~1izs) NEyr*1dwhyB{{s^YfY<;4 literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorSphere.class b/target/classes/io/github/bi0qaw/biosphere/expression/ExprVectorSphere.class new file mode 100644 index 0000000000000000000000000000000000000000..1b5e89a0fcca0376d73b784eb1165a71bf427a70 GIT binary patch literal 3338 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 literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/type/FrameType$2.class b/target/classes/io/github/bi0qaw/biosphere/type/FrameType$2.class new file mode 100644 index 0000000000000000000000000000000000000000..92b9810b2faffa83b725158b40f6970115d50d13 GIT binary patch literal 3435 zcmb7GYgZFj6y28uCd5&Yiqu!7Rxk;VD59VdP=QohKq{2hSM3mn5Db|(nfU7aVc)j3 zZ`*#g{n8J%tBtg-)z#1aO1gh}oyt1VMB2#Z%v^NLuydv@P<1GkNjbd&zEF5FfPg^LjBU)D z2SaUrXQo?1XWDrU_k~-RJ!=RGG|U+njcDFUrK7f)G%pj?aZEcCL^X6BYq3s1OIY*S zRN5414-G5(w2?_h#~nMBNydi4?z@#3v1-&}y@om+k6?p9OUjBSQ_gIDDms8_#aZO-|+fl>Dqw$K%)`P?@x?d{&@7w3wIT zTm`WcO&XeY>_SMO=3X-6Y0Gc~f+}e5p}sf-FWcdG5D~O!Xw}h%c7ez$NmV78G!u?x zllrW{+8NuLA6GIuX>hs#2vb`Bz@;gF6VP}_~mnm}b$bwIzBam>rioz{PRWaP-`fWVI7 zhgmE5!#a*g?8?E(!O;onuwTc3d{Z^ve`08CLPitU@g$D%Rnl}+&e&zD22bgDTBfYp zZA<MO7j5CRn)RvV>+IZrfXbNFSFx|3M*2`(R?aBZQ4PcfG>bae&V+B730#u zM)~%69Vc;$bc}4)%uEZkl@iH{F7ZEKja9$lkGBy-6VtcnwoT zGZw%UBX4cYN|CtCrX?n4#D-8w`y@HLu>_D35Ul~6r{0&s>j_|G}oie7<<|rqR8?rRGC}UxN94gmQ z>1MCR6&+Xc5+$bkTHtJnYCT-6<@O94y5E{+f@+3S8FMs0KV{kzGCF~}VJl&z7o+uF z`kmPnXIR^6*<3!DW1M+ZBP$q}VafXQo+x!IL`PG1h%dFMV2M`_^2PDX`84hriSr{y z)*~257#Y>%973To^2EmAX64NTF(a^Rwb0afRI`grg%stGKyz`0j!(^TdM@r5#SK8{ z5{9K@AaJbM(wpOD1XGkxj|W?BJeABCPTpook1fZz|6p*a%+Pxod~n>#+X*wSHu-fb zC2|{Xm-`ddG?+=GtsFP|5!0EqrZs#k5ME`B->(^}U?`I@?SA*%f<`u21y4GZj64_c zF35i#b@=9G-u1x8JD?_V2O?6ZRW4x7Z>ag1uPX2gukw5ZY=@s)?yJ1hU30vK*ZCx5 z$9Yh{6RL{uVv%1_(^5eFXj=iBZlbl#U%>VSJh6aqx4*4w@gdq>c^4fg@1V26-%we= zzT4t9KldrOn-x?uPaC@!L5OFBFlT!N2hgf$^z!#@*orssCaFbGgSU8BDcyV2ykO*|;1AQs>m!m&G z^Zy9H@24f2GL7JFE;F;y{cOqo7JNjfLbaWp zUcm8g|6QD5S|;kAE#SGP>kBx|wa(zB!S6j4kdV1@OSFzaz<$Qlh4tuGWIA2wB{E&O zj*sb>?(hjd<(C0ORrY-Rrdegr&)+$!J$l!O>ZkoakKUk1FTTibhJ*P z5{0Yy+(X#oA!w17)&efC_POTO%#SbVvI1Y?E46-&Z@Bt#lh^O~A0%`wSN{D6zXe4j literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/type/FrameType.class b/target/classes/io/github/bi0qaw/biosphere/type/FrameType.class new file mode 100644 index 0000000000000000000000000000000000000000..8f03810930d1b43063d2e5729f4e8b5f235e40d0 GIT binary patch literal 1991 zcmb7_`&S!96vw{%{ZGucd%!DTnynE=t_ zALTF5BS-%L|0s`lc4@%WD((;SxO4a3&)z%t?jL{t`a6Kzc%H=o2GbaFkisy-=?$?Z zTwerD_fc&_dWK#&A0pK@uICG_rFNI?yc#sZG_nkN z6}nAjTAi9(Q#W6TZJI*eZplcx9ix1AB@&x51BW5iu*)pcIB7XfFo0c%#69KPDPSAC3Lf({yZ&6CZNb^Yg z!l*52FsXE>9X4;wr$1EWkgpTTv8sYJX@ z>Ed0n&GSKLvnHcF7eSr3mGN3Vku^WzVA7gTb+l+w3a1&yG|~O^eQf7vOVxAK_C;4l z8GJw?N|ZbmdA?j&n2HsX9glrSqOLlc&&Gc1GSEcG=Q3~^)^sb}<}J}~clnm`eR3Re z3Q}VJhUP6P>O5>TtdClkSdO?+!RtJ;43%rvsOEyVMPw8~@dFwWg&q2I(~^A-VoWQx zVLFTs1@utYhUi0ws*6IDkvn3u?Mt1;Jj3n2J0^G9k<^;9qurX&(k*ULS}MZt$YSp( zi#dE`>*8aE(W93vsf)>q^;dAPh)*cNb=eRd-yFV9w`-#R8pZ{FuV1q;*{|pIS9T$d zyA0F+Qrf25mPu)^(`x)y7E2hkgr7TD#y#pM6zjMQmtVtr(sAKl~f?t;yPa!HJ>E8Qs@c4A}AiTKM)R? zmLj(4(y=`h=+-ZK{=r`(TMj#sCs&m9aB{^qdV4WuY44g%UMki6g*Z78Z8B}{Oza&HU+1W?BntLlZvWF8x zzu|OsFqbRuVl;PQ7ncqMS4hB9$>Ftfbtso7!Hskxn6iTR%hgnFrd%D)-K3*i`+k#YYk<@l~~jT9ufV3QDVj*ykh+VKijoWCCj6AJO0F z>O%vouGJ6dM|E|dJCjE#Q5I`)=iIsH?0xrnO#c4o&%Xd%z)x{>AreDWqZ>U6yB}I> zR;FZ?i<#T`hjzhN=$UlNj(_UMu0XKKDv%FOei>%|d6T;lZ8 zDLFkootp2%0CvSNsIePwD4cNIOwsXIYWYmwIrG?B=i*i?E4F6`fpVU;YAdLk!v2}< zQ6?nj9*w;cP_2nItg+8n>v38KG!9}!AzHNkdkP1WsZNoE@L`QN<#czU{+->-qjd_iQ#)$`VVo~Ek6wU(AFVG z<=F3)pb2{@m1%@DD|*MVdg&Ebd!O%FAd}vJO20&GF&c?%pzj5=u_DpHN(5FUYTga~ zW&)P^f0)5Q_$UJ>Fo>gs9Vd{>T}=>%Mg@<#Dyhm4wm^Da+#5}g)v>>hLxRW0Bjzz7 zkH^g8Q2JLM>w-Wf2m((0ehd+In77_%V1|QGAq<1UBOntjgC_*6BEml)l^#95i4y`h zni$LXo9Cf)`ZxoMOex?T!Wko3JTV;S-J^sPRb>!cS00 zAj4JObqhx8PLc=USesnkO}Y5}*~U4s)%oPM&iqzw<2nw(pK`fZ$NdGapDm0DVIJX$O?+w0BgVYlFpnAYo-teLI><%^ zuHpc$vHq^(G^R){i<`L7Msc<&+N}IEG88$VLy8wkP(;%&F|fFSJgF2~2tg{R+k^{K zuv-wH(N_jWtB&g^ZguW%b8gh}H*|^;_FMGg`{vvkHCh4vGIBQX@DF5VrYO_s0h1W5 KAGp_rAO8iy`WSiu literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/util/LocationLib.class b/target/classes/io/github/bi0qaw/biosphere/util/LocationLib.class new file mode 100644 index 0000000000000000000000000000000000000000..084ad283c427a900dce12b7c83a4afa4515e3f1f GIT binary patch literal 8474 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

V)c`WUxyqXn46!A_mUv5d`L=(2h zv+#~8k`^_l64AAI*Ftm^Co3vD(nk>0_Ty^RDJqH<0(Aq|-bes9v9{jK)VWoG5@8%n zogld)pu}%y!u-jq+_Uj##bFDcq|Ocaiv{l>mq~Un5_t2%f~=?y*Hcp%J2oMnTDIw5 zk_$U}W;`Rq)~MTw><*spovi+MvDdiA##_z|k|0Vf7TKX&gdEC6_^Xv^i|{wfkx3S2 zS_ARkV)qHxTj5+Nc;^nq%M@V|yJ-s>@LX6&LVF+4+)uO*u$n%Ic|@0c;wYyg2wI8h zLL2Qu8|^}cu_#wj=Mm$ulZMP#`7U%lT-VOP`2M$cRnIh?V4Eb1!i1^qEh%{GVeh z-47G4G!RUm0%fJrDl1Ywm^+uZ^s;hD&3MC6Gt9?}H>n(Nal5xEOz-eP{aw`YdI6D0 z8VTwdlqRVaQXv*9{Jh|m)OWs}VEvHC`XcU8=co{qrIj8pYR~fU53@q38t@)fMZ>?i IMG^k}Klwz}K>z>% literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/util/TrigLib.class b/target/classes/io/github/bi0qaw/biosphere/util/TrigLib.class new file mode 100644 index 0000000000000000000000000000000000000000..bbee386fa1d6071fa08541643fd7cc20d89bdbfd GIT binary patch literal 15149 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 JVc=rf{{rw5uzmml literal 0 HcmV?d00001 diff --git a/target/classes/io/github/bi0qaw/biosphere/util/VectorLib.class b/target/classes/io/github/bi0qaw/biosphere/util/VectorLib.class new file mode 100644 index 0000000000000000000000000000000000000000..753a3b2c1966a99f24c3549c5ed8decca10e9fa4 GIT binary patch literal 10237 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