Przeglądaj źródła

improve height noise

Kolja Strohm 1 rok temu
rodzic
commit
c973f4f6cd

+ 0 - 1
FactoryCraft/Constants.h

@@ -5,7 +5,6 @@
 #define WORLD_HEIGHT             500
 #define BIOM_GENERATION_Z_OFFSET 100
 #define AIR_LEVEL_Z_OFFSET       99
-#define WATER_LEVEL              200
 #define MIN_AIR_LEVEL            50
 #define MAX_AIR_LEVEL            450
 #define NUM_TICK_WORKERS         4

+ 2 - 2
FactoryCraft/DimensionGenerator.cpp

@@ -30,7 +30,7 @@ WorldHeightLayer::WorldHeightLayer(
     Framework::JSON::JSONValue* zConfig, JExpressionMemory* zMemory)
     : ReferenceCounter()
 {
-    noise = JNoise::parseNoisse(zConfig->asObject()->zValue("noise"), zMemory);
+    noise = JNoise::parseNoise(zConfig->asObject()->zValue("noise"), zMemory);
     name = zConfig->asObject()->zValue("name")->asString()->getString();
     value = JExpressionParser::parseFloatExpression(
         zConfig->asObject()->zValue("value"));
@@ -104,7 +104,7 @@ BiomedCavedDimensionGenerator::BiomedCavedDimensionGenerator(
     : DimensionGenerator(zConfig, worldSeed),
       caveGenerator(new WormCaveGenerator(75, 150, 1, 6, 0.1f, worldSeed - 1))
 {
-    biomNoise = JNoise::parseNoisse(
+    biomNoise = JNoise::parseNoise(
         zConfig->asObject()->zValue("biomNoise"), zMemory());
     bool first = 1;
     for (Framework::JSON::JSONValue* value :

+ 23 - 0
FactoryCraft/FactorizeNoise.cpp

@@ -0,0 +1,23 @@
+#include "FactorizeNoise.h"
+
+FactorizeNoise::FactorizeNoise(Noise* a, Noise* b, double factorA)
+    : Noise(),
+      noiseA(a),
+      noiseB(b),
+      factorA(factorA)
+{}
+
+FactorizeNoise::~FactorizeNoise()
+{
+    noiseA->release();
+    noiseB->release();
+}
+
+int FactorizeNoise::getSeed() const {
+    return noiseA->getSeed();
+}
+
+double FactorizeNoise::getNoise(double x, double y, double z) {
+    return noiseA->getNoise(x, y, z) * factorA
+         + noiseB->getNoise(x, y, z) * (1 - factorA);
+}

+ 17 - 0
FactoryCraft/FactorizeNoise.h

@@ -0,0 +1,17 @@
+#pragma once
+
+#include "Noise.h"
+
+class FactorizeNoise : public Noise
+{
+private:
+    Noise* noiseA;
+    Noise* noiseB;
+    double factorA;
+
+public:
+    FactorizeNoise(Noise* a, Noise* b, double factorA);
+    ~FactorizeNoise();
+    int getSeed() const override;
+    double getNoise(double x, double y, double z) override;
+};

+ 25 - 0
FactoryCraft/FlattenNoise.cpp

@@ -0,0 +1,25 @@
+#include "FlattenNoise.h"
+
+FlattenNoise::FlattenNoise(Noise* base, double factor, double minValue)
+    : Noise(),
+      base(base),
+      factor(factor),
+      minValue(minValue)
+{}
+
+FlattenNoise::~FlattenNoise()
+{
+    base->release();
+}
+
+int FlattenNoise::getSeed() const
+{
+    return base->getSeed();
+}
+
+double FlattenNoise::getNoise(double x, double y, double z)
+{
+    return MAX(
+        MIN((base->getNoise(x, y, z) - 0.5) * factor + 0.5 + minValue, 1.0),
+        0.0);
+}

+ 17 - 0
FactoryCraft/FlattenNoise.h

@@ -0,0 +1,17 @@
+#pragma once
+
+#include "Noise.h"
+
+
+class FlattenNoise : public Noise
+{
+    Noise* base;
+    double factor;
+    double minValue;
+
+public:
+    FlattenNoise(Noise* base, double factor, double minValue);
+    ~FlattenNoise();
+    int getSeed() const override;
+    double getNoise(double x, double y, double z) override;
+};

+ 1 - 1
FactoryCraft/GeneratorRule.cpp

@@ -9,7 +9,7 @@ GeneratorRule::GeneratorRule(
 {
     if (zConfig->asObject()->hasValue("noise"))
     {
-        noise = JNoise::parseNoisse(
+        noise = JNoise::parseNoise(
             zConfig->asObject()->zValue("noise"), zMemory);
     }
     condition = JExpressionParser::parseBoolExpression(

+ 184 - 4
FactoryCraft/JNoise.cpp

@@ -1,11 +1,17 @@
 #include "JNoise.h"
 
+#include "FactorizeNoise.h"
 #include "FastNoiseWrapper.h"
+#include "MultiplyNoise.h"
 #include "RandNoise.h"
+#include "NegateNoise.h"
+#include "FlattenNoise.h"
+#include "ScaleNoise.h"
+
 
 using namespace Framework;
 
-Noise* JNoise::parseNoisse(JSON::JSONValue* zConfig, JExpressionMemory* zMemory)
+Noise* JNoise::parseNoise(JSON::JSONValue* zConfig, JExpressionMemory* zMemory)
 {
     Text type = zConfig->asObject()->zValue("type")->asString()->getString();
     if (type.istGleich("random"))
@@ -16,6 +22,42 @@ Noise* JNoise::parseNoisse(JSON::JSONValue* zConfig, JExpressionMemory* zMemory)
         float seed = seedExpression->getValue(zMemory);
         return new RandNoise((int)(round(seed)));
     }
+    else if (type.istGleich("factorize"))
+    {
+        double factor
+            = zConfig->asObject()->zValue("factorA")->asNumber()->getNumber();
+        Noise* a = parseNoise(zConfig->asObject()->zValue("noiseA"), zMemory);
+        Noise* b = parseNoise(zConfig->asObject()->zValue("noiseB"), zMemory);
+        return new FactorizeNoise(a, b, factor);
+    }
+    else if (type.istGleich("multiply"))
+    {
+        Noise* a = parseNoise(zConfig->asObject()->zValue("base"), zMemory);
+        Noise* b
+            = parseNoise(zConfig->asObject()->zValue("multiplier"), zMemory);
+        return new MultiplyNoise(a, b);
+    }
+    else if (type.istGleich("negate"))
+    {
+        Noise* a = parseNoise(zConfig->asObject()->zValue("noise"), zMemory);
+        return new NegateNoise(a);
+    }
+    else if (type.istGleich("flatten"))
+    {
+        Noise* a = parseNoise(zConfig->asObject()->zValue("noise"), zMemory);
+        double factor
+            = zConfig->asObject()->zValue("factor")->asNumber()->getNumber();
+        double addition
+            = zConfig->asObject()->zValue("addition")->asNumber()->getNumber();
+        return new FlattenNoise(a, factor, addition);
+    }
+    else if (type.istGleich("scale"))
+    {
+        Noise* a = parseNoise(zConfig->asObject()->zValue("noise"), zMemory);
+        double factor
+            = zConfig->asObject()->zValue("factor")->asNumber()->getNumber();
+        return new ScaleNoise(a, factor);
+    }
     else
     {
         JFloatExpression* seedExpression
@@ -103,6 +145,27 @@ Noise* JNoise::parseNoisse(JSON::JSONValue* zConfig, JExpressionMemory* zMemory)
                         FractalType_DomainWarpIndependent);
             }
         }
+        if (zConfig->asObject()->hasValue("fractalOctaves"))
+        {
+            noise->SetFractalOctaves((int)round(zConfig->asObject()
+                                                    ->zValue("fractalOctaves")
+                                                    ->asNumber()
+                                                    ->getNumber()));
+        }
+        if (zConfig->asObject()->hasValue("fractalLacunarity"))
+        {
+            noise->SetFractalLacunarity((float)zConfig->asObject()
+                                            ->zValue("fractalLacunarity")
+                                            ->asNumber()
+                                            ->getNumber());
+        }
+        if (zConfig->asObject()->hasValue("fractalGain"))
+        {
+            noise->SetFractalGain((float)zConfig->asObject()
+                                      ->zValue("fractalGain")
+                                      ->asNumber()
+                                      ->getNumber());
+        }
         if (zConfig->asObject()->hasValue("cellularDistanceFunction"))
         {
             Text value = zConfig->asObject()
@@ -212,7 +275,16 @@ Noise* JNoise::parseNoisse(JSON::JSONValue* zConfig, JExpressionMemory* zMemory)
                                         ->asNumber()
                                         ->getNumber());
         }
-        return new FastNoiseWrapper(noise, (int)(round(seed)));
+        FastNoiseWrapper* result
+            = new FastNoiseWrapper(noise, (int)(round(seed)));
+        if (zConfig->asObject()->hasValue("multiplier"))
+        {
+            result->setMultiplier((float)zConfig->asObject()
+                                      ->zValue("multiplier")
+                                      ->asNumber()
+                                      ->getNumber());
+        }
+        return result;
     }
     return 0;
 }
@@ -221,21 +293,116 @@ JSON::Validator::JSONValidator* JNoise::getValidator(bool optional)
 {
     auto validator1 = JSON::Validator::JSONValidator::buildForObject();
     auto validator2 = JSON::Validator::JSONValidator::buildForObject();
+    auto validator3 = JSON::Validator::JSONValidator::buildForObject();
+    auto validator4 = JSON::Validator::JSONValidator::buildForObject();
+    auto validator5 = JSON::Validator::JSONValidator::buildForObject();
+    auto validator6 = JSON::Validator::JSONValidator::buildForObject();
+    auto validator7 = JSON::Validator::JSONValidator::buildForObject();
     if (optional)
     {
         validator1 = validator1->whichIsOptional();
         validator2 = validator2->whichIsOptional();
+        validator3 = validator3->whichIsOptional();
+        validator4 = validator4->whichIsOptional();
+        validator5 = validator5->whichIsOptional();
+        validator6 = validator6->whichIsOptional();
+        validator7 = validator7->whichIsOptional();
     }
+    JSON::Validator::JSONValidator* refs
+        = JSON::Validator::JSONValidator::buildForOneOf()
+              ->typeSpecifiedByAttribute("type")
+              ->addAcceptedType(
+                  JSON::Validator::JSONValidator::buildForObjectReference(
+                      "jn_random"))
+              ->addAcceptedType(
+                  JSON::Validator::JSONValidator::buildForObjectReference(
+                      "jn_factorize"))
+              ->addAcceptedType(
+                  JSON::Validator::JSONValidator::buildForObjectReference(
+                      "jn_multiply"))
+              ->addAcceptedType(
+                  JSON::Validator::JSONValidator::buildForObjectReference(
+                      "jn_negate"))
+              ->addAcceptedType(
+                  JSON::Validator::JSONValidator::buildForObjectReference(
+                      "jn_flatten"))
+              ->addAcceptedType(
+                  JSON::Validator::JSONValidator::buildForObjectReference(
+                      "jn_scale"))
+              ->addAcceptedType(
+                  JSON::Validator::JSONValidator::buildForObjectReference(
+                      "jn_fastNoiseLite"))
+              ->finishOneOf();
     return JSON::Validator::JSONValidator::buildForOneOf()
         ->typeSpecifiedByAttribute("type")
-        ->addAcceptedType(validator1->withRequiredString("type")
+        ->addAcceptedType(validator1->setObjectReferenceId("jn_random")
+                              ->withRequiredString("type")
                               ->withExactMatch("random")
                               ->finishString()
                               ->withRequiredAttribute("seed",
                                   JExpressionParser::getFloatValidator())
                               ->finishObject())
+        ->addAcceptedType(validator2->setObjectReferenceId("jn_factorize")
+                              ->withRequiredString("type")
+                              ->withExactMatch("factorize")
+                              ->finishString()
+                              ->withRequiredNumber("factorA")
+                              ->whichIsGreaterThen(0)
+                              ->whichIsLessThen(1)
+                              ->finishNumber()
+                              ->withRequiredAttribute("noiseA",
+                                  dynamic_cast<JSON::Validator::JSONValidator*>(
+                                      refs->getThis()))
+                              ->withRequiredAttribute("noiseB",
+                                  dynamic_cast<JSON::Validator::JSONValidator*>(
+                                      refs->getThis()))
+                              ->finishObject())
+        ->addAcceptedType(validator3->setObjectReferenceId("jn_multiply")
+                              ->withRequiredString("type")
+                              ->withExactMatch("multiply")
+                              ->finishString()
+                              ->withRequiredAttribute("base",
+                                  dynamic_cast<JSON::Validator::JSONValidator*>(
+                                      refs->getThis()))
+                              ->withRequiredAttribute("multiplier",
+                                  dynamic_cast<JSON::Validator::JSONValidator*>(
+                                      refs->getThis()))
+                              ->finishObject())
+        ->addAcceptedType(validator4->setObjectReferenceId("jn_negate")
+                              ->withRequiredString("type")
+                              ->withExactMatch("negate")
+                              ->finishString()
+                              ->withRequiredAttribute("noise",
+                                  dynamic_cast<JSON::Validator::JSONValidator*>(
+                                      refs->getThis()))
+                              ->finishObject())
+        ->addAcceptedType(validator5->setObjectReferenceId("jn_flatten")
+                              ->withRequiredString("type")
+                              ->withExactMatch("flatten")
+                              ->finishString()
+                              ->withRequiredAttribute("noise",
+                                  dynamic_cast<JSON::Validator::JSONValidator*>(
+                                      refs->getThis()))
+                              ->withRequiredNumber("factor")
+                              ->withDefault(1.0)
+                              ->finishNumber()
+                              ->withRequiredNumber("addition")
+                              ->withDefault(0.0)
+                              ->finishNumber()
+                              ->finishObject())
+        ->addAcceptedType(validator6->setObjectReferenceId("jn_scale")
+                              ->withRequiredString("type")
+                              ->withExactMatch("scale")
+                              ->finishString()
+                              ->withRequiredAttribute("noise",
+                                  dynamic_cast<JSON::Validator::JSONValidator*>(
+                                      refs->getThis()))
+                              ->withRequiredNumber("factor")
+                              ->finishNumber()
+                              ->finishObject())
         ->addAcceptedType(
-            validator2->withRequiredString("type")
+            validator7->setObjectReferenceId("jn_fastNoiseLite")
+                ->withRequiredString("type")
                 ->whichIsOneOf({"Cellular",
                     "ValueCubic",
                     "Perlin",
@@ -261,6 +428,15 @@ JSON::Validator::JSONValidator* JNoise::getValidator(bool optional)
                     "DomainWarpProgressive",
                     "DomainWarpIndependent"})
                 ->finishString()
+                ->withRequiredNumber("fractalOctaves")
+                ->whichIsOptional()
+                ->finishNumber()
+                ->withRequiredNumber("fractalLacunarity")
+                ->whichIsOptional()
+                ->finishNumber()
+                ->withRequiredNumber("fractalGain")
+                ->whichIsOptional()
+                ->finishNumber()
                 ->withRequiredString("cellularDistanceFunction")
                 ->whichIsOptional()
                 ->whichIsOneOf(
@@ -287,6 +463,10 @@ JSON::Validator::JSONValidator* JNoise::getValidator(bool optional)
                 ->withRequiredNumber("domainWarpAmp")
                 ->whichIsOptional()
                 ->finishNumber()
+                ->withRequiredNumber("multiplier")
+                ->whichIsOptional()
+                ->whichIsGreaterThen(0)
+                ->finishNumber()
                 ->finishObject())
         ->finishOneOf();
 }

+ 1 - 1
FactoryCraft/JNoise.h

@@ -7,7 +7,7 @@
 
 namespace JNoise
 {
-    Noise* parseNoisse(
+    Noise* parseNoise(
         Framework::JSON::JSONValue* zConfig, JExpressionMemory* zMemory);
     Framework::JSON::Validator::JSONValidator* getValidator(bool optional);
 }

+ 24 - 0
FactoryCraft/MultiplyNoise.cpp

@@ -0,0 +1,24 @@
+#include "MultiplyNoise.h"
+
+MultiplyNoise::MultiplyNoise(Noise* base, Noise* multiplier)
+    : Noise(),
+      base(base),
+      multiplier(multiplier)
+{}
+
+MultiplyNoise::~MultiplyNoise()
+{
+    base->release();
+    multiplier->release();
+}
+
+int MultiplyNoise::getSeed() const
+{
+    return base->getSeed();
+}
+
+double MultiplyNoise::getNoise(double x, double y, double z)
+{
+    return base->getNoise(x, y, z)
+                   * multiplier->getNoise(x, y, z);
+}

+ 16 - 0
FactoryCraft/MultiplyNoise.h

@@ -0,0 +1,16 @@
+#pragma once
+
+#include "Noise.h"
+
+class MultiplyNoise : public Noise
+{
+private:
+    Noise* base;
+    Noise* multiplier;
+
+public:
+    MultiplyNoise(Noise* base, Noise* multiplier);
+    ~MultiplyNoise();
+    int getSeed() const override;
+    double getNoise(double x, double y, double z) override;
+};

+ 21 - 0
FactoryCraft/NegateNoise.cpp

@@ -0,0 +1,21 @@
+#include "NegateNoise.h"
+
+NegateNoise::NegateNoise(Noise* base)
+    : Noise(),
+      base(base)
+{}
+
+NegateNoise::~NegateNoise()
+{
+    base->release();
+}
+
+int NegateNoise::getSeed() const
+{
+    return base->getSeed();
+}
+
+double NegateNoise::getNoise(double x, double y, double z)
+{
+    return 1.0 - base->getNoise(x, y, z);
+}

+ 14 - 0
FactoryCraft/NegateNoise.h

@@ -0,0 +1,14 @@
+#pragma once
+
+#include "Noise.h"
+
+class NegateNoise : public Noise
+{
+    Noise* base;
+
+public:
+    NegateNoise(Noise* base);
+    ~NegateNoise();
+    int getSeed() const override;
+    double getNoise(double x, double y, double z) override;
+};

+ 17 - 0
FactoryCraft/ScaleNoise.cpp

@@ -0,0 +1,17 @@
+#include "ScaleNoise.h"
+
+ScaleNoise::ScaleNoise(Noise* base, double factor)
+    : Noise(),
+      base(base),
+      factor(factor)
+{}
+
+int ScaleNoise::getSeed() const
+{
+    return base->getSeed();
+}
+
+double ScaleNoise::getNoise(double x, double y, double z)
+{
+    return MIN(MAX(base->getNoise(x, y, z) * factor, 0.0), 1.0);
+}

+ 15 - 0
FactoryCraft/ScaleNoise.h

@@ -0,0 +1,15 @@
+#pragma once
+
+#include "Noise.h"
+
+class ScaleNoise : public Noise
+{
+private:
+    Noise* base;
+    double factor;
+
+public:
+    ScaleNoise(Noise* base, double factor);
+    int getSeed() const override;
+    double getNoise(double x, double y, double z) override;
+};

+ 2 - 2
FactoryCraft/StructureCollection.cpp

@@ -7,9 +7,9 @@ StructureTemplateCollection::StructureTemplateCollection(
     Framework::JSON::JSONValue* zConfig, JExpressionMemory* zMemory)
     : ReferenceCounter()
 {
-    activeNoise = JNoise::parseNoisse(
+    activeNoise = JNoise::parseNoise(
         zConfig->asObject()->zValue("activeNoise"), zMemory);
-    structureNoise = JNoise::parseNoisse(
+    structureNoise = JNoise::parseNoise(
         zConfig->asObject()->zValue("structureNoise"), zMemory);
     threshold
         = zConfig->asObject()->zValue("threshold")->asNumber()->getNumber();

+ 71 - 2
NoiseTest/NoiseCombiner.h

@@ -22,8 +22,8 @@ public:
 
     virtual double getNoise(double x, double y, double z)
     {
-        return a->getNoise(x, y, z) * b->getNoise(x, y, z)
-             + (1 - b->getNoise(x, y, z)) / 2;
+        return (((a->getNoise(x, y, z) - 0.5) * 2) * (b->getNoise(x, y, z)) * 0.9 + 0.1)
+              / 2 + 0.5;
     }
 };
 
@@ -49,4 +49,73 @@ public:
     {
         return a->getNoise(x, y, z)* 0.7 + b->getNoise(x, y, z) * 0.3;
     }
+};
+
+class RescaleNoise : public Noise
+{
+    Noise* n;
+    double factor;
+
+public:
+    RescaleNoise(Noise* n, double factor)
+		: Noise(),
+		  n(n),
+		  factor(factor)
+	{}
+
+    virtual int getSeed() const
+    {
+		return n->getSeed();
+	}
+
+    virtual double getNoise(double x, double y, double z)
+    {
+		return MAX(MIN(n->getNoise(x, y, z) * factor, 1.0), 0.0);
+	}
+};
+
+class FlattenNoise : public Noise
+{
+    Noise* n;
+    double factor;
+    double minValue;
+
+public:
+    FlattenNoise(Noise* n, double factor, double minValue)
+        : Noise(),
+          n(n),
+          factor(factor),
+          minValue(minValue)
+    {}
+
+    virtual int getSeed() const
+    {
+        return n->getSeed();
+    }
+
+    virtual double getNoise(double x, double y, double z)
+    {
+        return MAX(0, MIN(1, (n->getNoise(x, y, z) - 0.5) * factor + 0.5 + minValue));
+    }
+};
+
+class NegatedNoise : public Noise
+{
+    Noise* n;
+
+public:
+    NegatedNoise(Noise* n)
+        : Noise(),
+          n(n)
+    {}
+
+    virtual int getSeed() const override
+    {
+        return n->getSeed();
+    }
+
+    virtual double getNoise(double x, double y, double z) override
+    {
+        return 1 - n->getNoise(x, y, z);
+    }
 };

+ 23 - 31
NoiseTest/NoiseTest.cpp

@@ -12,13 +12,15 @@
 #include "RandNoise.h"
 #include "ShapedNoise.h"
 #include "NoiseCombiner.h"
+#include "FactorizeNoise.h"
+#include "MultiplyNoise.h"
 
 using namespace Framework;
 
 WFenster* window;
 Bild* img;
 Vec3<int> position(0, 0, 0);
-float zoom = 0.1;
+float zoom = 1;
 bool exitF = 0;
 Noise* wrapper;
 float border = 0.5;
@@ -89,6 +91,8 @@ int main()
     FastNoiseLite* noise = new FastNoiseLite(1);
     noise->SetNoiseType(FastNoiseLite::NoiseType::NoiseType_Perlin);
     FastNoiseWrapper *wrapper1 = new FastNoiseWrapper(noise, 0);
+    wrapper1->setMultiplier(0.05);
+    Noise* baseHeight = new FlattenNoise(wrapper1, 0.5, 0.25);
     //wrapper = wrapper2;
     /* FastNoiseLite* noise = new FastNoiseLite(0);
     noise->SetNoiseType(FastNoiseLite::NoiseType::NoiseType_ValueCubic);
@@ -98,50 +102,38 @@ int main()
     n->SetNoiseType(FastNoiseLite::NoiseType::NoiseType_Cellular);
     n->SetFrequency(0.005f);
     n->SetRotationType3D(FastNoiseLite::RotationType3D::RotationType3D_None);
-    n->SetCellularDistanceFunction(FastNoiseLite::CellularDistanceFunction::
-            CellularDistanceFunction_Hybrid);
-    n->SetCellularJitter(1.f);
+    n->SetCellularDistanceFunction(FastNoiseLite::CellularDistanceFunction::CellularDistanceFunction_Euclidean);
+    n->SetCellularJitter(1.5f);
     n->SetCellularReturnType(
         FastNoiseLite::CellularReturnType::CellularReturnType_Distance);
     n->SetFractalType(
         FastNoiseLite::FractalType::FractalType_DomainWarpIndependent);
     n->SetDomainWarpType(
-        FastNoiseLite::DomainWarpType::DomainWarpType_OpenSimplex2);
+        FastNoiseLite::DomainWarpType::DomainWarpType_OpenSimplex2Reduced);
     n->SetDomainWarpAmp(100.f);
     n->SetFractalOctaves(3.f);
     n->SetFractalLacunarity(2.f);
     n->SetFractalGain(0.5f);
     FastNoiseWrapper* wrapper2 = new FastNoiseWrapper(n, 2);
-    wrapper2->setMultiplier(0.1f);
-    wrapper = new NoiseCombinerM(wrapper1, wrapper2);
-    n = new FastNoiseLite(3);
-    n->SetNoiseType(FastNoiseLite::NoiseType::NoiseType_Cellular);
-    n->SetFrequency(0.005f);
-    n->SetRotationType3D(FastNoiseLite::RotationType3D::RotationType3D_None);
-    n->SetCellularDistanceFunction(FastNoiseLite::CellularDistanceFunction::
-            CellularDistanceFunction_Hybrid);
-    n->SetCellularJitter(1.f);
-    n->SetCellularReturnType(
-        FastNoiseLite::CellularReturnType::CellularReturnType_Distance);
-    n->SetFractalType(
-        FastNoiseLite::FractalType::FractalType_DomainWarpIndependent);
-    n->SetDomainWarpType(
-        FastNoiseLite::DomainWarpType::DomainWarpType_OpenSimplex2);
-    n->SetDomainWarpAmp(100.f);
-    n->SetFractalOctaves(3.f);
-    n->SetFractalLacunarity(2.f);
-    n->SetFractalGain(0.5f);
-    wrapper2 = new FastNoiseWrapper(n, 0);
     wrapper2->setMultiplier(0.4f);
-    wrapper = new NoiseCombinerM(wrapper, wrapper2);
-    noise = new FastNoiseLite(10);
-    noise->SetNoiseType(FastNoiseLite::NoiseType::NoiseType_ValueCubic);
+    Noise* mountainRegion
+        = new RescaleNoise(new NegatedNoise(new RescaleNoise(wrapper2, 3.5)), 1.5);
+    noise = new FastNoiseLite(3);
+    noise->SetNoiseType(FastNoiseLite::NoiseType::NoiseType_Perlin);
+    noise->SetFrequency(0.25f);
     wrapper2 = new FastNoiseWrapper(noise, 0);
-    wrapper2->setMultiplier(0.15f);
-    wrapper = new NoiseCombinerA(wrapper, wrapper2);
+    noise = new FastNoiseLite(4);
+    noise->SetNoiseType(FastNoiseLite::NoiseType::NoiseType_Perlin);
+    noise->SetFrequency(0.02f);
+    wrapper1 = new FastNoiseWrapper(noise, 0);
+    Noise *mountains = new FactorizeNoise(wrapper1, wrapper2, 0.9);
+    wrapper = new FactorizeNoise(
+        baseHeight, new MultiplyNoise(mountains, mountainRegion), 0.5);
+    //wrapper = new NoiseCombinerM(wrapper, wrapper2);
+   // wrapper = new NoiseCombinerA(wrapper, wrapper2);
     //wrapper = new ShapedNoise(wrapper);
     //((ShapedNoise*)wrapper)->setNeighborOffset(4.f);
-    //wrapper = new RandNoise(34255);
+    //wrapper = new RandNoise(34255);*/
 
     img = new Bild();
     img->neuBild(1600, 1600, 0xFF000000);

+ 10 - 0
NoiseTest/NoiseTest.vcxproj

@@ -140,19 +140,29 @@ copy ..\..\..\..\..\Allgemein\Framework\x64\debug\Framework.dll Framework.dll</C
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
+    <ClCompile Include="..\FactoryCraft\FactorizeNoise.cpp" />
     <ClCompile Include="..\FactoryCraft\FastNoiseWrapper.cpp" />
+    <ClCompile Include="..\FactoryCraft\FlattenNoise.cpp" />
+    <ClCompile Include="..\FactoryCraft\MultiplyNoise.cpp" />
+    <ClCompile Include="..\FactoryCraft\NegateNoise.cpp" />
     <ClCompile Include="..\FactoryCraft\Noise.cpp" />
     <ClCompile Include="..\FactoryCraft\NoiseInterpolator.cpp" />
     <ClCompile Include="..\FactoryCraft\RandNoise.cpp" />
+    <ClCompile Include="..\FactoryCraft\ScaleNoise.cpp" />
     <ClCompile Include="..\FactoryCraft\ShapedNoise.cpp" />
     <ClCompile Include="NoiseTest.cpp" />
   </ItemGroup>
   <ItemGroup>
+    <ClInclude Include="..\FactoryCraft\FactorizeNoise.h" />
     <ClInclude Include="..\FactoryCraft\FastNoiseLite.h" />
     <ClInclude Include="..\FactoryCraft\FastNoiseWrapper.h" />
+    <ClInclude Include="..\FactoryCraft\FlattenNoise.h" />
+    <ClInclude Include="..\FactoryCraft\MultiplyNoise.h" />
+    <ClInclude Include="..\FactoryCraft\NegateNoise.h" />
     <ClInclude Include="..\FactoryCraft\Noise.h" />
     <ClInclude Include="..\FactoryCraft\NoiseInterpolator.h" />
     <ClInclude Include="..\FactoryCraft\RandNoise.h" />
+    <ClInclude Include="..\FactoryCraft\ScaleNoise.h" />
     <ClInclude Include="..\FactoryCraft\ShapedNoise.h" />
     <ClInclude Include="NoiseCombiner.h" />
   </ItemGroup>

+ 30 - 0
NoiseTest/NoiseTest.vcxproj.filters

@@ -33,6 +33,21 @@
     <ClCompile Include="..\FactoryCraft\RandNoise.cpp">
       <Filter>Quelldateien</Filter>
     </ClCompile>
+    <ClCompile Include="..\FactoryCraft\FactorizeNoise.cpp">
+      <Filter>Quelldateien</Filter>
+    </ClCompile>
+    <ClCompile Include="..\FactoryCraft\FlattenNoise.cpp">
+      <Filter>Quelldateien</Filter>
+    </ClCompile>
+    <ClCompile Include="..\FactoryCraft\MultiplyNoise.cpp">
+      <Filter>Quelldateien</Filter>
+    </ClCompile>
+    <ClCompile Include="..\FactoryCraft\NegateNoise.cpp">
+      <Filter>Quelldateien</Filter>
+    </ClCompile>
+    <ClCompile Include="..\FactoryCraft\ScaleNoise.cpp">
+      <Filter>Quelldateien</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\FactoryCraft\FastNoiseLite.h">
@@ -56,5 +71,20 @@
     <ClInclude Include="..\FactoryCraft\RandNoise.h">
       <Filter>Quelldateien</Filter>
     </ClInclude>
+    <ClInclude Include="..\FactoryCraft\FactorizeNoise.h">
+      <Filter>Quelldateien</Filter>
+    </ClInclude>
+    <ClInclude Include="..\FactoryCraft\FlattenNoise.h">
+      <Filter>Quelldateien</Filter>
+    </ClInclude>
+    <ClInclude Include="..\FactoryCraft\MultiplyNoise.h">
+      <Filter>Quelldateien</Filter>
+    </ClInclude>
+    <ClInclude Include="..\FactoryCraft\NegateNoise.h">
+      <Filter>Quelldateien</Filter>
+    </ClInclude>
+    <ClInclude Include="..\FactoryCraft\ScaleNoise.h">
+      <Filter>Quelldateien</Filter>
+    </ClInclude>
   </ItemGroup>
 </Project>

+ 10 - 0
Windows Version/Windows Version.vcxproj

@@ -184,7 +184,9 @@ copy ..\..\..\..\..\Allgemein\Framework\x64\release\Framework.dll Framework.dll<
     <ClCompile Include="..\FactoryCraft\Entity.cpp" />
     <ClCompile Include="..\FactoryCraft\EntityRemovedUpdate.cpp" />
     <ClCompile Include="..\FactoryCraft\EntityType.cpp" />
+    <ClCompile Include="..\FactoryCraft\FactorizeNoise.cpp" />
     <ClCompile Include="..\FactoryCraft\FastNoiseWrapper.cpp" />
+    <ClCompile Include="..\FactoryCraft\FlattenNoise.cpp" />
     <ClCompile Include="..\FactoryCraft\FluidBlock.cpp" />
     <ClCompile Include="..\FactoryCraft\Game.cpp" />
     <ClCompile Include="..\FactoryCraft\GeneratedStructure.cpp" />
@@ -208,6 +210,8 @@ copy ..\..\..\..\..\Allgemein\Framework\x64\release\Framework.dll Framework.dll<
     <ClCompile Include="..\FactoryCraft\ModelInfo.cpp" />
     <ClCompile Include="..\FactoryCraft\MultiblockStructure.cpp" />
     <ClCompile Include="..\FactoryCraft\MultiblockTree.cpp" />
+    <ClCompile Include="..\FactoryCraft\MultiplyNoise.cpp" />
+    <ClCompile Include="..\FactoryCraft\NegateNoise.cpp" />
     <ClCompile Include="..\FactoryCraft\NetworkMessage.cpp" />
     <ClCompile Include="..\FactoryCraft\NoBlock.cpp" />
     <ClCompile Include="..\FactoryCraft\Noise.cpp" />
@@ -221,6 +225,7 @@ copy ..\..\..\..\..\Allgemein\Framework\x64\release\Framework.dll Framework.dll<
     <ClCompile Include="..\FactoryCraft\Recipie.cpp" />
     <ClCompile Include="..\FactoryCraft\RecipieLoader.cpp" />
     <ClCompile Include="..\FactoryCraft\SaveCommand.cpp" />
+    <ClCompile Include="..\FactoryCraft\ScaleNoise.cpp" />
     <ClCompile Include="..\FactoryCraft\Server.cpp" />
     <ClCompile Include="..\FactoryCraft\ShapedNoise.cpp" />
     <ClCompile Include="..\FactoryCraft\Shovel.cpp" />
@@ -240,6 +245,8 @@ copy ..\..\..\..\..\Allgemein\Framework\x64\release\Framework.dll Framework.dll<
     <ClCompile Include="..\FactoryCraft\WormCaveGenerator.cpp" />
   </ItemGroup>
   <ItemGroup>
+    <ClInclude Include="..\FactoryCraft\FactorizeNoise.h" />
+    <ClInclude Include="..\FactoryCraft\FlattenNoise.h" />
     <ClInclude Include="..\FactoryCraft\GeneratorRule.h" />
     <ClInclude Include="..\FactoryCraft\BlockTypeGeneratorRule.h" />
     <ClInclude Include="..\FactoryCraft\Chest.h" />
@@ -294,6 +301,8 @@ copy ..\..\..\..\..\Allgemein\Framework\x64\release\Framework.dll Framework.dll<
     <ClInclude Include="..\FactoryCraft\ModelInfo.h" />
     <ClInclude Include="..\FactoryCraft\MultiblockStructure.h" />
     <ClInclude Include="..\FactoryCraft\MultiblockTree.h" />
+    <ClInclude Include="..\FactoryCraft\MultiplyNoise.h" />
+    <ClInclude Include="..\FactoryCraft\NegateNoise.h" />
     <ClInclude Include="..\FactoryCraft\NetworkMessage.h" />
     <ClInclude Include="..\FactoryCraft\Noise.h" />
     <ClInclude Include="..\FactoryCraft\NoBlock.h" />
@@ -307,6 +316,7 @@ copy ..\..\..\..\..\Allgemein\Framework\x64\release\Framework.dll Framework.dll<
     <ClInclude Include="..\FactoryCraft\RecipieList.h" />
     <ClInclude Include="..\FactoryCraft\RecipieLoader.h" />
     <ClInclude Include="..\FactoryCraft\SaveCommand.h" />
+    <ClInclude Include="..\FactoryCraft\ScaleNoise.h" />
     <ClInclude Include="..\FactoryCraft\Server.h" />
     <ClInclude Include="..\FactoryCraft\Dimension.h" />
     <ClInclude Include="..\FactoryCraft\ShapedNoise.h" />

+ 30 - 0
Windows Version/Windows Version.vcxproj.filters

@@ -339,6 +339,21 @@
     <ClCompile Include="..\FactoryCraft\StructureCollection.cpp">
       <Filter>world\generator\templates</Filter>
     </ClCompile>
+    <ClCompile Include="..\FactoryCraft\FactorizeNoise.cpp">
+      <Filter>world\generator\noise</Filter>
+    </ClCompile>
+    <ClCompile Include="..\FactoryCraft\MultiplyNoise.cpp">
+      <Filter>world\generator\noise</Filter>
+    </ClCompile>
+    <ClCompile Include="..\FactoryCraft\ScaleNoise.cpp">
+      <Filter>world\generator\noise</Filter>
+    </ClCompile>
+    <ClCompile Include="..\FactoryCraft\FlattenNoise.cpp">
+      <Filter>world\generator\noise</Filter>
+    </ClCompile>
+    <ClCompile Include="..\FactoryCraft\NegateNoise.cpp">
+      <Filter>world\generator\noise</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\FactoryCraft\Chunk.h">
@@ -596,5 +611,20 @@
     <ClInclude Include="..\FactoryCraft\TypeRegistry.h">
       <Filter>server\config</Filter>
     </ClInclude>
+    <ClInclude Include="..\FactoryCraft\FactorizeNoise.h">
+      <Filter>world\generator\noise</Filter>
+    </ClInclude>
+    <ClInclude Include="..\FactoryCraft\MultiplyNoise.h">
+      <Filter>world\generator\noise</Filter>
+    </ClInclude>
+    <ClInclude Include="..\FactoryCraft\ScaleNoise.h">
+      <Filter>world\generator\noise</Filter>
+    </ClInclude>
+    <ClInclude Include="..\FactoryCraft\FlattenNoise.h">
+      <Filter>world\generator\noise</Filter>
+    </ClInclude>
+    <ClInclude Include="..\FactoryCraft\NegateNoise.h">
+      <Filter>world\generator\noise</Filter>
+    </ClInclude>
   </ItemGroup>
 </Project>

+ 187 - 14
Windows Version/data/generator/overworld.json

@@ -34,11 +34,114 @@
       {
         "name": "h",
         "noise": {
-          "type": "ValueCubic",
-          "seed": {
-            "type": "variable",
-            "name": "dimensionSeed"
-          }
+          "type": "factorize",
+          "noiseA": {
+            "type": "flatten",
+            "noise": {
+              "type": "Perlin",
+              "multiplier": 0.05,
+              "seed": {
+                "type": "operator",
+                "operator": "+",
+                "values": [
+                  {
+                    "type": "variable",
+                    "name": "dimensionSeed"
+                  },
+                  {
+                    "type": "constant",
+                    "value": 23
+                  }
+                ]
+              }
+            },
+            "factor": 0.5,
+            "addition": 0.25
+          },
+          "noiseB": {
+            "type": "multiply",
+            "base": {
+              "type": "factorize",
+              "noiseA": {
+                "type": "Perlin",
+                "frequency": 0.02,
+                "seed": {
+                  "type": "operator",
+                  "operator": "+",
+                  "values": [
+                    {
+                      "type": "variable",
+                      "name": "dimensionSeed"
+                    },
+                    {
+                      "type": "constant",
+                      "value": 22
+                    }
+                  ]
+                }
+              },
+              "noiseB": {
+                "type": "Perlin",
+                "frequency": 0.25,
+                "seed": {
+                  "type": "operator",
+                  "operator": "+",
+                  "values": [
+                    {
+                      "type": "variable",
+                      "name": "dimensionSeed"
+                    },
+                    {
+                      "type": "constant",
+                      "value": 21
+                    }
+                  ]
+                }
+              },
+              "factorA": 0.9
+            },
+            "multiplier": {
+              "type": "scale",
+              "noise": {
+                "type": "negate",
+                "noise": {
+                  "type": "scale",
+                  "noise": {
+                    "type": "Cellular",
+                    "multiplier": 0.4,
+                    "frequency": 0.005,
+                    "rotationType3D": "None",
+                    "fractalType": "DomainWarpIndependent",
+                    "cellularDistanceFunction": "Euclidean",
+                    "cellularReturnType": "Distance",
+                    "cellularJitter": 1.5,
+                    "domainWarpType": "OpenSimplex2Reduced",
+                    "domainWarpAmp": 100,
+                    "fractalOctaves": 3,
+                    "fractalLacunarity": 2,
+                    "fractalGain": 0.5,
+                    "seed": {
+                      "type": "operator",
+                      "operator": "+",
+                      "values": [
+                        {
+                          "type": "variable",
+                          "name": "dimensionSeed"
+                        },
+                        {
+                          "type": "constant",
+                          "value": 20
+                        }
+                      ]
+                    }
+                  },
+                  "factor": 3.5
+                }
+              },
+              "factor": 1.5
+            }
+          },
+          "factorA": 0.5
         },
         "value": {
           "type": "operator",
@@ -194,31 +297,101 @@
             ],
             "condition": {
               "type": "operator",
-              "operator": "==i",
+              "operator": "&&",
               "values": [
                 {
-                  "type": "variable",
-                  "name": "z"
+                  "type": "operator",
+                  "operator": "==i",
+                  "values": [
+                    {
+                      "type": "variable",
+                      "name": "z"
+                    },
+                    {
+                      "type": "operator",
+                      "operator": "-",
+                      "values": [
+                        {
+                          "type": "variable",
+                          "name": "h"
+                        },
+                        {
+                          "type": "constant",
+                          "value": 1
+                        }
+                      ]
+                    }
+                  ]
                 },
                 {
                   "type": "operator",
-                  "operator": "-",
+                  "operator": ">=i",
                   "values": [
                     {
                       "type": "variable",
                       "name": "h"
                     },
                     {
-                      "type": "constant",
-                      "value": 1
+                      "type": "number",
+                      "name": 190
+                    }
+                  ]
+                },
+                {
+                  "type": "operator",
+                  "operator": "<i",
+                  "values": [
+                    {
+                      "type": "variable",
+                      "name": "h"
+                    },
+                    {
+                      "type": "number",
+                      "name": 300
                     }
                   ]
                 }
               ]
             }
-          }
         ],
         "blocks": [
+          {
+            "type": "blockType",
+            "blockType": "Water",
+            "condition": {
+              "type": "operator",
+              "operator": "&&",
+              "values": [
+                {
+                  "type": "operator",
+                  "operator": ">=i",
+                  "values": [
+                    {
+                      "type": "variable",
+                      "name": "z"
+                    },
+                    {
+                      "type": "variable",
+                      "name": "h"
+                    }
+                  ]
+                },
+                {
+                  "type": "operator",
+                  "operator": "<i",
+                  "values": [
+                    {
+                      "type": "variable",
+                      "name": "z"
+                    },
+                    {
+                      "type": "number",
+                      "name": 190
+                    }
+                  ]
+                }
+              ]
+            },
           {
             "type": "blockType",
             "blockType": "Air",
@@ -407,7 +580,7 @@
               "values": [
                 {
                   "type": "operator",
-                  "operator": "<",
+                  "operator": "<i",
                   "values": [
                     {
                       "type": "variable",
@@ -421,7 +594,7 @@
                 },
                 {
                   "type": "operator",
-                  "operator": ">",
+                  "operator": ">i",
                   "values": [
                     {
                       "type": "variable",

+ 1 - 1
Windows Version/data/syntax/generatorValidation.xml

@@ -1 +1 @@
-<array removeInvalidEntries="true"><oneOf typeSpecifiedBy="dimension"><object><value name="dimension"><string equals="Overworld"/></value><value name="bioms"><array><object><value name="name"><string/></value><value name="condition"><oneOf typeSpecifiedBy="type"><object id="jeb_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jeb_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><bool/></value></object><object id="jeb_blockType"><value name="type"><string oneOf='["blockType"]'/></value><value name="blockType"><string oneOf='["","Air","Dirt","Sand","Gravel","Stone","Granite Stone","Cobble Stone","Basalt Stone","Oak Wood","Birch Wood","Beech Wood","Pine Wood","Oak Wood Leaves","Birch Wood Leaves","Beech Wood Leaves","Pine Wood Leaves","Oak Wood Sebling","Birch Wood Sebling","Beech Wood Sebling","Pine Wood Sebling","Torch","Grass","Farmland","WheatSeeds","Wheat","Water","Crafting Table","Chest"]'/></value><value name="x"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value></object><object id="jeb_bool_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["&&","||"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jeb_variable"/><objectRef ref="jeb_constant"/><objectRef ref="jeb_blockType"/><objectRef ref="jeb_bool_operator"/><objectRef ref="jeb_float_operator"/></oneOf></array></value></object><object id="jeb_float_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='[">","<",">=","<=","==","!=",">i","<i",">=i","<=i","==i","!=i"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></array></value></object></oneOf></value><value name="structurCollections"><array><object><value name="activeNoise"><oneOf typeSpecifiedBy="type"><object><value name="type"><string equals="random"/></value><value name="seed"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value></object><object><value name="type"><string oneOf='["Cellular","ValueCubic","Perlin","OpenSimplex2S","OpenSimplex2","Value"]'/></value><value name="seed"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="rotationType3D"><string optional="true" oneOf='["None","ImproveXYPlanes","ImproveXZPlanes"]'/></value><value name="frequency"><number optional="true"/></value><value name="fractalType"><string optional="true" oneOf='["None","FBm","Ridged","PingPong","DomainWarpProgressive","DomainWarpIndependent"]'/></value><value name="cellularDistanceFunction"><string optional="true" oneOf='["Hybrid","Manhattan","EuclideanSq","Euclidean"]'/></value><value name="cellularReturnType"><string optional="true" oneOf='["CellValue","Distance","Distance2","Distance2Add","Distance2Sub","Distance2Mul","Distance2Div"]'/></value><value name="cellularJitter"><number optional="true"/></value><value name="domainWarpType"><string optional="true" oneOf='["BasicGrid","OpenSimplex2","OpenSimplex2Reduced"]'/></value><value name="domainWarpAmp"><number optional="true"/></value></object></oneOf></value><value name="structureNoise"><oneOf typeSpecifiedBy="type"><object><value name="type"><string equals="random"/></value><value name="seed"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value></object><object><value name="type"><string oneOf='["Cellular","ValueCubic","Perlin","OpenSimplex2S","OpenSimplex2","Value"]'/></value><value name="seed"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="rotationType3D"><string optional="true" oneOf='["None","ImproveXYPlanes","ImproveXZPlanes"]'/></value><value name="frequency"><number optional="true"/></value><value name="fractalType"><string optional="true" oneOf='["None","FBm","Ridged","PingPong","DomainWarpProgressive","DomainWarpIndependent"]'/></value><value name="cellularDistanceFunction"><string optional="true" oneOf='["Hybrid","Manhattan","EuclideanSq","Euclidean"]'/></value><value name="cellularReturnType"><string optional="true" oneOf='["CellValue","Distance","Distance2","Distance2Add","Distance2Sub","Distance2Mul","Distance2Div"]'/></value><value name="cellularJitter"><number optional="true"/></value><value name="domainWarpType"><string optional="true" oneOf='["BasicGrid","OpenSimplex2","OpenSimplex2Reduced"]'/></value><value name="domainWarpAmp"><number optional="true"/></value></object></oneOf></value><value name="threshold"><number greater="0.000000"/></value><value name="condition"><oneOf typeSpecifiedBy="type"><object id="jeb_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jeb_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><bool/></value></object><object id="jeb_blockType"><value name="type"><string oneOf='["blockType"]'/></value><value name="blockType"><string oneOf='["","Air","Dirt","Sand","Gravel","Stone","Granite Stone","Cobble Stone","Basalt Stone","Oak Wood","Birch Wood","Beech Wood","Pine Wood","Oak Wood Leaves","Birch Wood Leaves","Beech Wood Leaves","Pine Wood Leaves","Oak Wood Sebling","Birch Wood Sebling","Beech Wood Sebling","Pine Wood Sebling","Torch","Grass","Farmland","WheatSeeds","Wheat","Water","Crafting Table","Chest"]'/></value><value name="x"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value></object><object id="jeb_bool_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["&&","||"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jeb_variable"/><objectRef ref="jeb_constant"/><objectRef ref="jeb_blockType"/><objectRef ref="jeb_bool_operator"/><objectRef ref="jeb_float_operator"/></oneOf></array></value></object><object id="jeb_float_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='[">","<",">=","<=","==","!=",">i","<i",">=i","<=i","==i","!=i"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></array></value></object></oneOf></value><value name="structures"><array><oneOf typeSpecifiedBy="type"><object><value name="type"><string equals="Tree"/></value><value name="wood"><string oneOf='["","Air","Dirt","Sand","Gravel","Stone","Granite Stone","Cobble Stone","Basalt Stone","Oak Wood","Birch Wood","Beech Wood","Pine Wood","Oak Wood Leaves","Birch Wood Leaves","Beech Wood Leaves","Pine Wood Leaves","Oak Wood Sebling","Birch Wood Sebling","Beech Wood Sebling","Pine Wood Sebling","Torch","Grass","Farmland","WheatSeeds","Wheat","Water","Crafting Table","Chest"]'/></value><value name="leaves"><string oneOf='["","Air","Dirt","Sand","Gravel","Stone","Granite Stone","Cobble Stone","Basalt Stone","Oak Wood","Birch Wood","Beech Wood","Pine Wood","Oak Wood Leaves","Birch Wood Leaves","Beech Wood Leaves","Pine Wood Leaves","Oak Wood Sebling","Birch Wood Sebling","Beech Wood Sebling","Pine Wood Sebling","Torch","Grass","Farmland","WheatSeeds","Wheat","Water","Crafting Table","Chest"]'/></value><value name="minSize"><number greater="0.000000"/></value><value name="maxSize"><number greater="0.000000"/></value><value name="propability"><number greater="0.000000"/></value></object></oneOf></array></value></object></array></value><value name="blocks"><array><oneOf typeSpecifiedBy="type"><object><value name="type"><string equals="blockType"/></value><value name="blockType"><string oneOf='["","Air","Dirt","Sand","Gravel","Stone","Granite Stone","Cobble Stone","Basalt Stone","Oak Wood","Birch Wood","Beech Wood","Pine Wood","Oak Wood Leaves","Birch Wood Leaves","Beech Wood Leaves","Pine Wood Leaves","Oak Wood Sebling","Birch Wood Sebling","Beech Wood Sebling","Pine Wood Sebling","Torch","Grass","Farmland","WheatSeeds","Wheat","Water","Crafting Table","Chest"]'/></value><value name="noise"><oneOf typeSpecifiedBy="type"><object optional="true"><value name="type"><string equals="random"/></value><value name="seed"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value></object><object optional="true"><value name="type"><string oneOf='["Cellular","ValueCubic","Perlin","OpenSimplex2S","OpenSimplex2","Value"]'/></value><value name="seed"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="rotationType3D"><string optional="true" oneOf='["None","ImproveXYPlanes","ImproveXZPlanes"]'/></value><value name="frequency"><number optional="true"/></value><value name="fractalType"><string optional="true" oneOf='["None","FBm","Ridged","PingPong","DomainWarpProgressive","DomainWarpIndependent"]'/></value><value name="cellularDistanceFunction"><string optional="true" oneOf='["Hybrid","Manhattan","EuclideanSq","Euclidean"]'/></value><value name="cellularReturnType"><string optional="true" oneOf='["CellValue","Distance","Distance2","Distance2Add","Distance2Sub","Distance2Mul","Distance2Div"]'/></value><value name="cellularJitter"><number optional="true"/></value><value name="domainWarpType"><string optional="true" oneOf='["BasicGrid","OpenSimplex2","OpenSimplex2Reduced"]'/></value><value name="domainWarpAmp"><number optional="true"/></value></object></oneOf></value><value name="condition"><oneOf typeSpecifiedBy="type"><object id="jeb_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jeb_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><bool/></value></object><object id="jeb_blockType"><value name="type"><string oneOf='["blockType"]'/></value><value name="blockType"><string oneOf='["","Air","Dirt","Sand","Gravel","Stone","Granite Stone","Cobble Stone","Basalt Stone","Oak Wood","Birch Wood","Beech Wood","Pine Wood","Oak Wood Leaves","Birch Wood Leaves","Beech Wood Leaves","Pine Wood Leaves","Oak Wood Sebling","Birch Wood Sebling","Beech Wood Sebling","Pine Wood Sebling","Torch","Grass","Farmland","WheatSeeds","Wheat","Water","Crafting Table","Chest"]'/></value><value name="x"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value></object><object id="jeb_bool_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["&&","||"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jeb_variable"/><objectRef ref="jeb_constant"/><objectRef ref="jeb_blockType"/><objectRef ref="jeb_bool_operator"/><objectRef ref="jeb_float_operator"/></oneOf></array></value></object><object id="jeb_float_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='[">","<",">=","<=","==","!=",">i","<i",">=i","<=i","==i","!=i"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></array></value></object></oneOf></value><value name="threshold"><number optional="true" greaterOrEqual="0.000000" lessOrEqual="1.000000"/></value></object></oneOf></array></value></object></array></value><value name="biomNoise"><oneOf typeSpecifiedBy="type"><object><value name="type"><string equals="random"/></value><value name="seed"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value></object><object><value name="type"><string oneOf='["Cellular","ValueCubic","Perlin","OpenSimplex2S","OpenSimplex2","Value"]'/></value><value name="seed"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="rotationType3D"><string optional="true" oneOf='["None","ImproveXYPlanes","ImproveXZPlanes"]'/></value><value name="frequency"><number optional="true"/></value><value name="fractalType"><string optional="true" oneOf='["None","FBm","Ridged","PingPong","DomainWarpProgressive","DomainWarpIndependent"]'/></value><value name="cellularDistanceFunction"><string optional="true" oneOf='["Hybrid","Manhattan","EuclideanSq","Euclidean"]'/></value><value name="cellularReturnType"><string optional="true" oneOf='["CellValue","Distance","Distance2","Distance2Add","Distance2Sub","Distance2Mul","Distance2Div"]'/></value><value name="cellularJitter"><number optional="true"/></value><value name="domainWarpType"><string optional="true" oneOf='["BasicGrid","OpenSimplex2","OpenSimplex2Reduced"]'/></value><value name="domainWarpAmp"><number optional="true"/></value></object></oneOf></value><value name="dimensionSeed"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="heightLayers"><array default="[]" removeInvalidEntries="true"><object><value name="name"><string/></value><value name="noise"><oneOf typeSpecifiedBy="type"><object><value name="type"><string equals="random"/></value><value name="seed"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value></object><object><value name="type"><string oneOf='["Cellular","ValueCubic","Perlin","OpenSimplex2S","OpenSimplex2","Value"]'/></value><value name="seed"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="rotationType3D"><string optional="true" oneOf='["None","ImproveXYPlanes","ImproveXZPlanes"]'/></value><value name="frequency"><number optional="true"/></value><value name="fractalType"><string optional="true" oneOf='["None","FBm","Ridged","PingPong","DomainWarpProgressive","DomainWarpIndependent"]'/></value><value name="cellularDistanceFunction"><string optional="true" oneOf='["Hybrid","Manhattan","EuclideanSq","Euclidean"]'/></value><value name="cellularReturnType"><string optional="true" oneOf='["CellValue","Distance","Distance2","Distance2Add","Distance2Sub","Distance2Mul","Distance2Div"]'/></value><value name="cellularJitter"><number optional="true"/></value><value name="domainWarpType"><string optional="true" oneOf='["BasicGrid","OpenSimplex2","OpenSimplex2Reduced"]'/></value><value name="domainWarpAmp"><number optional="true"/></value></object></oneOf></value><value name="value"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value></object></array></value></object></oneOf></array>
+<array removeInvalidEntries="true"><oneOf typeSpecifiedBy="dimension"><object><value name="dimension"><string equals="Overworld"/></value><value name="bioms"><array><object><value name="name"><string/></value><value name="condition"><oneOf typeSpecifiedBy="type"><object id="jeb_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jeb_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><bool/></value></object><object id="jeb_blockType"><value name="type"><string oneOf='["blockType"]'/></value><value name="blockType"><string oneOf='["","Air","Dirt","Sand","Gravel","Stone","Granite Stone","Cobble Stone","Basalt Stone","Oak Wood","Birch Wood","Beech Wood","Pine Wood","Oak Wood Leaves","Birch Wood Leaves","Beech Wood Leaves","Pine Wood Leaves","Oak Wood Sebling","Birch Wood Sebling","Beech Wood Sebling","Pine Wood Sebling","Torch","Grass","Farmland","WheatSeeds","Wheat","Water","Crafting Table","Chest"]'/></value><value name="x"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value></object><object id="jeb_bool_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["&&","||"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jeb_variable"/><objectRef ref="jeb_constant"/><objectRef ref="jeb_blockType"/><objectRef ref="jeb_bool_operator"/><objectRef ref="jeb_float_operator"/></oneOf></array></value></object><object id="jeb_float_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='[">","<",">=","<=","==","!=",">i","<i",">=i","<=i","==i","!=i"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></array></value></object></oneOf></value><value name="structurCollections"><array><object><value name="activeNoise"><oneOf typeSpecifiedBy="type"><object id="jn_random"><value name="type"><string equals="random"/></value><value name="seed"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value></object><object id="jn_factorize"><value name="type"><string equals="factorize"/></value><value name="factorA"><number greater="0.000000" less="1.000000"/></value><value name="noiseA"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value><value name="noiseB"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value></object><object id="jn_multiply"><value name="type"><string equals="multiply"/></value><value name="base"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value><value name="multiplier"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value></object><object id="jn_negate"><value name="type"><string equals="negate"/></value><value name="noise"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value></object><object id="jn_flatten"><value name="type"><string equals="flatten"/></value><value name="noise"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value><value name="factor"><number default="1.000000"/></value><value name="addition"><number default="0.000000"/></value></object><object id="jn_scale"><value name="type"><string equals="scale"/></value><value name="noise"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value><value name="factor"><number/></value></object><object id="jn_fastNoiseLite"><value name="type"><string oneOf='["Cellular","ValueCubic","Perlin","OpenSimplex2S","OpenSimplex2","Value"]'/></value><value name="seed"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="rotationType3D"><string optional="true" oneOf='["None","ImproveXYPlanes","ImproveXZPlanes"]'/></value><value name="frequency"><number optional="true"/></value><value name="fractalType"><string optional="true" oneOf='["None","FBm","Ridged","PingPong","DomainWarpProgressive","DomainWarpIndependent"]'/></value><value name="fractalOctaves"><number optional="true"/></value><value name="fractalLacunarity"><number optional="true"/></value><value name="fractalGain"><number optional="true"/></value><value name="cellularDistanceFunction"><string optional="true" oneOf='["Hybrid","Manhattan","EuclideanSq","Euclidean"]'/></value><value name="cellularReturnType"><string optional="true" oneOf='["CellValue","Distance","Distance2","Distance2Add","Distance2Sub","Distance2Mul","Distance2Div"]'/></value><value name="cellularJitter"><number optional="true"/></value><value name="domainWarpType"><string optional="true" oneOf='["BasicGrid","OpenSimplex2","OpenSimplex2Reduced"]'/></value><value name="domainWarpAmp"><number optional="true"/></value><value name="multiplier"><number optional="true" greater="0.000000"/></value></object></oneOf></value><value name="structureNoise"><oneOf typeSpecifiedBy="type"><object id="jn_random"><value name="type"><string equals="random"/></value><value name="seed"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value></object><object id="jn_factorize"><value name="type"><string equals="factorize"/></value><value name="factorA"><number greater="0.000000" less="1.000000"/></value><value name="noiseA"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value><value name="noiseB"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value></object><object id="jn_multiply"><value name="type"><string equals="multiply"/></value><value name="base"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value><value name="multiplier"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value></object><object id="jn_negate"><value name="type"><string equals="negate"/></value><value name="noise"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value></object><object id="jn_flatten"><value name="type"><string equals="flatten"/></value><value name="noise"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value><value name="factor"><number default="1.000000"/></value><value name="addition"><number default="0.000000"/></value></object><object id="jn_scale"><value name="type"><string equals="scale"/></value><value name="noise"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value><value name="factor"><number/></value></object><object id="jn_fastNoiseLite"><value name="type"><string oneOf='["Cellular","ValueCubic","Perlin","OpenSimplex2S","OpenSimplex2","Value"]'/></value><value name="seed"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="rotationType3D"><string optional="true" oneOf='["None","ImproveXYPlanes","ImproveXZPlanes"]'/></value><value name="frequency"><number optional="true"/></value><value name="fractalType"><string optional="true" oneOf='["None","FBm","Ridged","PingPong","DomainWarpProgressive","DomainWarpIndependent"]'/></value><value name="fractalOctaves"><number optional="true"/></value><value name="fractalLacunarity"><number optional="true"/></value><value name="fractalGain"><number optional="true"/></value><value name="cellularDistanceFunction"><string optional="true" oneOf='["Hybrid","Manhattan","EuclideanSq","Euclidean"]'/></value><value name="cellularReturnType"><string optional="true" oneOf='["CellValue","Distance","Distance2","Distance2Add","Distance2Sub","Distance2Mul","Distance2Div"]'/></value><value name="cellularJitter"><number optional="true"/></value><value name="domainWarpType"><string optional="true" oneOf='["BasicGrid","OpenSimplex2","OpenSimplex2Reduced"]'/></value><value name="domainWarpAmp"><number optional="true"/></value><value name="multiplier"><number optional="true" greater="0.000000"/></value></object></oneOf></value><value name="threshold"><number greater="0.000000"/></value><value name="condition"><oneOf typeSpecifiedBy="type"><object id="jeb_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jeb_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><bool/></value></object><object id="jeb_blockType"><value name="type"><string oneOf='["blockType"]'/></value><value name="blockType"><string oneOf='["","Air","Dirt","Sand","Gravel","Stone","Granite Stone","Cobble Stone","Basalt Stone","Oak Wood","Birch Wood","Beech Wood","Pine Wood","Oak Wood Leaves","Birch Wood Leaves","Beech Wood Leaves","Pine Wood Leaves","Oak Wood Sebling","Birch Wood Sebling","Beech Wood Sebling","Pine Wood Sebling","Torch","Grass","Farmland","WheatSeeds","Wheat","Water","Crafting Table","Chest"]'/></value><value name="x"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value></object><object id="jeb_bool_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["&&","||"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jeb_variable"/><objectRef ref="jeb_constant"/><objectRef ref="jeb_blockType"/><objectRef ref="jeb_bool_operator"/><objectRef ref="jeb_float_operator"/></oneOf></array></value></object><object id="jeb_float_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='[">","<",">=","<=","==","!=",">i","<i",">=i","<=i","==i","!=i"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></array></value></object></oneOf></value><value name="structures"><array><oneOf typeSpecifiedBy="type"><object><value name="type"><string equals="Tree"/></value><value name="wood"><string oneOf='["","Air","Dirt","Sand","Gravel","Stone","Granite Stone","Cobble Stone","Basalt Stone","Oak Wood","Birch Wood","Beech Wood","Pine Wood","Oak Wood Leaves","Birch Wood Leaves","Beech Wood Leaves","Pine Wood Leaves","Oak Wood Sebling","Birch Wood Sebling","Beech Wood Sebling","Pine Wood Sebling","Torch","Grass","Farmland","WheatSeeds","Wheat","Water","Crafting Table","Chest"]'/></value><value name="leaves"><string oneOf='["","Air","Dirt","Sand","Gravel","Stone","Granite Stone","Cobble Stone","Basalt Stone","Oak Wood","Birch Wood","Beech Wood","Pine Wood","Oak Wood Leaves","Birch Wood Leaves","Beech Wood Leaves","Pine Wood Leaves","Oak Wood Sebling","Birch Wood Sebling","Beech Wood Sebling","Pine Wood Sebling","Torch","Grass","Farmland","WheatSeeds","Wheat","Water","Crafting Table","Chest"]'/></value><value name="minSize"><number greater="0.000000"/></value><value name="maxSize"><number greater="0.000000"/></value><value name="propability"><number greater="0.000000"/></value></object></oneOf></array></value></object></array></value><value name="blocks"><array><oneOf typeSpecifiedBy="type"><object><value name="type"><string equals="blockType"/></value><value name="blockType"><string oneOf='["","Air","Dirt","Sand","Gravel","Stone","Granite Stone","Cobble Stone","Basalt Stone","Oak Wood","Birch Wood","Beech Wood","Pine Wood","Oak Wood Leaves","Birch Wood Leaves","Beech Wood Leaves","Pine Wood Leaves","Oak Wood Sebling","Birch Wood Sebling","Beech Wood Sebling","Pine Wood Sebling","Torch","Grass","Farmland","WheatSeeds","Wheat","Water","Crafting Table","Chest"]'/></value><value name="noise"><oneOf typeSpecifiedBy="type"><object optional="true" id="jn_random"><value name="type"><string equals="random"/></value><value name="seed"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value></object><object optional="true" id="jn_factorize"><value name="type"><string equals="factorize"/></value><value name="factorA"><number greater="0.000000" less="1.000000"/></value><value name="noiseA"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value><value name="noiseB"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value></object><object optional="true" id="jn_multiply"><value name="type"><string equals="multiply"/></value><value name="base"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value><value name="multiplier"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value></object><object optional="true" id="jn_negate"><value name="type"><string equals="negate"/></value><value name="noise"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value></object><object optional="true" id="jn_flatten"><value name="type"><string equals="flatten"/></value><value name="noise"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value><value name="factor"><number default="1.000000"/></value><value name="addition"><number default="0.000000"/></value></object><object optional="true" id="jn_scale"><value name="type"><string equals="scale"/></value><value name="noise"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value><value name="factor"><number/></value></object><object optional="true" id="jn_fastNoiseLite"><value name="type"><string oneOf='["Cellular","ValueCubic","Perlin","OpenSimplex2S","OpenSimplex2","Value"]'/></value><value name="seed"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="rotationType3D"><string optional="true" oneOf='["None","ImproveXYPlanes","ImproveXZPlanes"]'/></value><value name="frequency"><number optional="true"/></value><value name="fractalType"><string optional="true" oneOf='["None","FBm","Ridged","PingPong","DomainWarpProgressive","DomainWarpIndependent"]'/></value><value name="fractalOctaves"><number optional="true"/></value><value name="fractalLacunarity"><number optional="true"/></value><value name="fractalGain"><number optional="true"/></value><value name="cellularDistanceFunction"><string optional="true" oneOf='["Hybrid","Manhattan","EuclideanSq","Euclidean"]'/></value><value name="cellularReturnType"><string optional="true" oneOf='["CellValue","Distance","Distance2","Distance2Add","Distance2Sub","Distance2Mul","Distance2Div"]'/></value><value name="cellularJitter"><number optional="true"/></value><value name="domainWarpType"><string optional="true" oneOf='["BasicGrid","OpenSimplex2","OpenSimplex2Reduced"]'/></value><value name="domainWarpAmp"><number optional="true"/></value><value name="multiplier"><number optional="true" greater="0.000000"/></value></object></oneOf></value><value name="condition"><oneOf typeSpecifiedBy="type"><object id="jeb_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jeb_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><bool/></value></object><object id="jeb_blockType"><value name="type"><string oneOf='["blockType"]'/></value><value name="blockType"><string oneOf='["","Air","Dirt","Sand","Gravel","Stone","Granite Stone","Cobble Stone","Basalt Stone","Oak Wood","Birch Wood","Beech Wood","Pine Wood","Oak Wood Leaves","Birch Wood Leaves","Beech Wood Leaves","Pine Wood Leaves","Oak Wood Sebling","Birch Wood Sebling","Beech Wood Sebling","Pine Wood Sebling","Torch","Grass","Farmland","WheatSeeds","Wheat","Water","Crafting Table","Chest"]'/></value><value name="x"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value></object><object id="jeb_bool_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["&&","||"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jeb_variable"/><objectRef ref="jeb_constant"/><objectRef ref="jeb_blockType"/><objectRef ref="jeb_bool_operator"/><objectRef ref="jeb_float_operator"/></oneOf></array></value></object><object id="jeb_float_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='[">","<",">=","<=","==","!=",">i","<i",">=i","<=i","==i","!=i"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></array></value></object></oneOf></value><value name="threshold"><number optional="true" greaterOrEqual="0.000000" lessOrEqual="1.000000"/></value></object></oneOf></array></value></object></array></value><value name="biomNoise"><oneOf typeSpecifiedBy="type"><object id="jn_random"><value name="type"><string equals="random"/></value><value name="seed"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value></object><object id="jn_factorize"><value name="type"><string equals="factorize"/></value><value name="factorA"><number greater="0.000000" less="1.000000"/></value><value name="noiseA"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value><value name="noiseB"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value></object><object id="jn_multiply"><value name="type"><string equals="multiply"/></value><value name="base"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value><value name="multiplier"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value></object><object id="jn_negate"><value name="type"><string equals="negate"/></value><value name="noise"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value></object><object id="jn_flatten"><value name="type"><string equals="flatten"/></value><value name="noise"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value><value name="factor"><number default="1.000000"/></value><value name="addition"><number default="0.000000"/></value></object><object id="jn_scale"><value name="type"><string equals="scale"/></value><value name="noise"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value><value name="factor"><number/></value></object><object id="jn_fastNoiseLite"><value name="type"><string oneOf='["Cellular","ValueCubic","Perlin","OpenSimplex2S","OpenSimplex2","Value"]'/></value><value name="seed"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="rotationType3D"><string optional="true" oneOf='["None","ImproveXYPlanes","ImproveXZPlanes"]'/></value><value name="frequency"><number optional="true"/></value><value name="fractalType"><string optional="true" oneOf='["None","FBm","Ridged","PingPong","DomainWarpProgressive","DomainWarpIndependent"]'/></value><value name="fractalOctaves"><number optional="true"/></value><value name="fractalLacunarity"><number optional="true"/></value><value name="fractalGain"><number optional="true"/></value><value name="cellularDistanceFunction"><string optional="true" oneOf='["Hybrid","Manhattan","EuclideanSq","Euclidean"]'/></value><value name="cellularReturnType"><string optional="true" oneOf='["CellValue","Distance","Distance2","Distance2Add","Distance2Sub","Distance2Mul","Distance2Div"]'/></value><value name="cellularJitter"><number optional="true"/></value><value name="domainWarpType"><string optional="true" oneOf='["BasicGrid","OpenSimplex2","OpenSimplex2Reduced"]'/></value><value name="domainWarpAmp"><number optional="true"/></value><value name="multiplier"><number optional="true" greater="0.000000"/></value></object></oneOf></value><value name="dimensionSeed"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="heightLayers"><array default="[]" removeInvalidEntries="true"><object><value name="name"><string/></value><value name="noise"><oneOf typeSpecifiedBy="type"><object id="jn_random"><value name="type"><string equals="random"/></value><value name="seed"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value></object><object id="jn_factorize"><value name="type"><string equals="factorize"/></value><value name="factorA"><number greater="0.000000" less="1.000000"/></value><value name="noiseA"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value><value name="noiseB"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value></object><object id="jn_multiply"><value name="type"><string equals="multiply"/></value><value name="base"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value><value name="multiplier"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value></object><object id="jn_negate"><value name="type"><string equals="negate"/></value><value name="noise"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value></object><object id="jn_flatten"><value name="type"><string equals="flatten"/></value><value name="noise"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value><value name="factor"><number default="1.000000"/></value><value name="addition"><number default="0.000000"/></value></object><object id="jn_scale"><value name="type"><string equals="scale"/></value><value name="noise"><oneOf typeSpecifiedBy="type"><objectRef ref="jn_random"/><objectRef ref="jn_factorize"/><objectRef ref="jn_multiply"/><objectRef ref="jn_negate"/><objectRef ref="jn_flatten"/><objectRef ref="jn_scale"/><objectRef ref="jn_fastNoiseLite"/></oneOf></value><value name="factor"><number/></value></object><object id="jn_fastNoiseLite"><value name="type"><string oneOf='["Cellular","ValueCubic","Perlin","OpenSimplex2S","OpenSimplex2","Value"]'/></value><value name="seed"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value><value name="rotationType3D"><string optional="true" oneOf='["None","ImproveXYPlanes","ImproveXZPlanes"]'/></value><value name="frequency"><number optional="true"/></value><value name="fractalType"><string optional="true" oneOf='["None","FBm","Ridged","PingPong","DomainWarpProgressive","DomainWarpIndependent"]'/></value><value name="fractalOctaves"><number optional="true"/></value><value name="fractalLacunarity"><number optional="true"/></value><value name="fractalGain"><number optional="true"/></value><value name="cellularDistanceFunction"><string optional="true" oneOf='["Hybrid","Manhattan","EuclideanSq","Euclidean"]'/></value><value name="cellularReturnType"><string optional="true" oneOf='["CellValue","Distance","Distance2","Distance2Add","Distance2Sub","Distance2Mul","Distance2Div"]'/></value><value name="cellularJitter"><number optional="true"/></value><value name="domainWarpType"><string optional="true" oneOf='["BasicGrid","OpenSimplex2","OpenSimplex2Reduced"]'/></value><value name="domainWarpAmp"><number optional="true"/></value><value name="multiplier"><number optional="true" greater="0.000000"/></value></object></oneOf></value><value name="value"><oneOf typeSpecifiedBy="type"><object id="jef_variable"><value name="type"><string oneOf='["variable"]'/></value><value name="name"><string/></value></object><object id="jef_constant"><value name="type"><string oneOf='["constant"]'/></value><value name="value"><number/></value></object><object id="jef_noise"><value name="type"><string oneOf='["noise"]'/></value><value name="name"><string default='"noise"'/></value><value name="x"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="y"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value><value name="z"><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></value></object><object id="jef_operator"><value name="type"><string oneOf='["operator"]'/></value><value name="operator"><string oneOf='["+","-","*","/"]'/></value><value name="values"><array><oneOf typeSpecifiedBy="type"><objectRef ref="jef_variable"/><objectRef ref="jef_constant"/><objectRef ref="jef_noise"/><objectRef ref="jef_operator"/></oneOf></array></value></object></oneOf></value></object></array></value></object></oneOf></array>