Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 287.28 KB | None | 0 0
  1. // Copyright 2019 Phyronnaz
  2.  
  3. #pragma once
  4.  
  5. #pragma warning( disable : 4101 4701 )
  6. using Seed = int32;
  7.  
  8. #include "CoreMinimal.h"
  9. #include "VoxelWorldGenerator.h"
  10. #include "VoxelContext.h"
  11. #include "VoxelNodeFunctions.h"
  12. #include "FastNoise.h"
  13. #include "Curves/RichCurve.h"
  14. #include "Curves/CurveFloat.h"
  15. #include "RingWorld.generated.h"
  16.  
  17.  
  18. class FRingWorldInstance : public FVoxelWorldGeneratorInstance
  19. {
  20. public:
  21.     struct FLocalComputeStruct_LocalValue_LOD0
  22.     {
  23.         struct FVoxelGraphOutputs
  24.         {
  25.             float& Value;
  26.         };
  27.         struct FVoxelConstantsCache
  28.         {
  29.             float Variable_52; // MountainsNoiseFrequency = 0.2 output 0
  30.             float Variable_58; // PlainsNoiseHeight = 250.0 output 0
  31.             float Variable_22; // RingEdgesHardness = 10.0 output 0
  32.             float Variable_25; // PI.3.141593 output 0
  33.             float Variable_31; // Width in Degrees = 50.0 output 0
  34.             float Variable_66; // RiverDepth = 100.0 output 0
  35.             float Variable_96; // Thickness = 500.0 output 0
  36.             float Variable_40; // BaseHeight = 1000.0 output 0
  37.             float Variable_43; // BaseNoiseHeight = 250.0 output 0
  38.             float Variable_46; // BaseNoiseFrquency = 0.005 output 0
  39.             float Variable_49; // MountainsNoiseHeight = 500.0 output 0
  40.             float Variable_5; // Radius = 7000.0 output 0
  41.             float Variable_95; // RiverWidth = 1.0 output 0
  42.             float Variable_61; // PlainsNoiseFrequency = 0.2 output 0
  43.             float Variable_98; // PI.3.141593 output 0
  44.             float Variable_67; // PI.3.141593 output 0
  45.             float Variable_90; // Scale = 10.0 output 0
  46.             float Variable_91; // * output 0
  47.             float Variable_37; // / output 0
  48.             float Variable_97; // * output 0
  49.             float Variable_6; // + output 0
  50.             float Variable_92; // / output 0
  51.             float Variable_36; // - output 0
  52.         };
  53.         struct FVoxelCache
  54.         {
  55.             float Variable_0; // X output 0
  56.             float Variable_24; // X output 0
  57.             float Variable_1; // Y output 0
  58.             float Variable_29; // Y output 0
  59.             float Variable_23; // ATAN2 output 0
  60.             float Variable_26; // / output 0
  61.             float Variable_28; // * output 0
  62.             float Variable_45; // * output 0
  63.             float Variable_51; // * output 0
  64.             float Variable_60; // * output 0
  65.             float Variable_79; // 2D Simplex Noise output 0
  66.             float Variable_76; // * output 0
  67.         };
  68.        
  69.         FLocalComputeStruct_LocalValue_LOD0(const float& InScale, const float& InPlainsNoiseHeight, const float& InRingEdgesHardness, const float& InWidth_in_Degrees, const float& InRiverDepth, const float& InThickness, const float& InBaseHeight, const float& InBaseNoiseHeight, const float& InBaseNoiseFrquency, const float& InMountainsNoiseHeight, const float& InRadius, const float& InRiverWidth, const float& InPlainsNoiseFrequency, const float& InMountainsNoiseFrequency, const FRichCurve& InRingShape, const FRichCurve& InMoutainsMask, const FRichCurve& InRiverMask, const FRichCurve& InPlainsNoiseStrength, const FLinearColor& InPlainsColorLow, const FLinearColor& InRiverColor, const FLinearColor& InBeachColor, const FLinearColor& InMountainsColorHigh, const FLinearColor& InMountainsColorLowLow, const FLinearColor& InMountainsColorLowHigh, const FLinearColor& InPlainsColorHigh, const FLinearColor& InRingOuterColor)
  70.             : Scale(InScale)
  71.             , PlainsNoiseHeight(InPlainsNoiseHeight)
  72.             , RingEdgesHardness(InRingEdgesHardness)
  73.             , Width_in_Degrees(InWidth_in_Degrees)
  74.             , RiverDepth(InRiverDepth)
  75.             , Thickness(InThickness)
  76.             , BaseHeight(InBaseHeight)
  77.             , BaseNoiseHeight(InBaseNoiseHeight)
  78.             , BaseNoiseFrquency(InBaseNoiseFrquency)
  79.             , MountainsNoiseHeight(InMountainsNoiseHeight)
  80.             , Radius(InRadius)
  81.             , RiverWidth(InRiverWidth)
  82.             , PlainsNoiseFrequency(InPlainsNoiseFrequency)
  83.             , MountainsNoiseFrequency(InMountainsNoiseFrequency)
  84.             , RingShape(InRingShape)
  85.             , MoutainsMask(InMoutainsMask)
  86.             , RiverMask(InRiverMask)
  87.             , PlainsNoiseStrength(InPlainsNoiseStrength)
  88.             , PlainsColorLow(InPlainsColorLow)
  89.             , RiverColor(InRiverColor)
  90.             , BeachColor(InBeachColor)
  91.             , MountainsColorHigh(InMountainsColorHigh)
  92.             , MountainsColorLowLow(InMountainsColorLowLow)
  93.             , MountainsColorLowHigh(InMountainsColorLowHigh)
  94.             , PlainsColorHigh(InPlainsColorHigh)
  95.             , RingOuterColor(InRingOuterColor)
  96.         {
  97.         }
  98.        
  99.         void Init(const FVoxelWorldGeneratorInit& InitStruct)
  100.         {
  101.             FVoxelCache Cache;
  102.            
  103.             {
  104.             }
  105.            
  106.             Function0_Init(InitStruct);
  107.            
  108.             {
  109.                 // MountainsNoiseFrequency = 0.2
  110.                 ConstantsCache.Variable_52 = MountainsNoiseFrequency;
  111.                
  112.                 // PlainsNoiseHeight = 250.0
  113.                 ConstantsCache.Variable_58 = PlainsNoiseHeight;
  114.                
  115.                 // RingEdgesHardness = 10.0
  116.                 ConstantsCache.Variable_22 = RingEdgesHardness;
  117.                
  118.                 // PI.3.141593
  119.                 ConstantsCache.Variable_25 = 3.141593;
  120.                
  121.                 // Width in Degrees = 50.0
  122.                 ConstantsCache.Variable_31 = Width_in_Degrees;
  123.                
  124.                 // RiverDepth = 100.0
  125.                 ConstantsCache.Variable_66 = RiverDepth;
  126.                
  127.                 // Thickness = 500.0
  128.                 ConstantsCache.Variable_96 = Thickness;
  129.                
  130.                 // BaseHeight = 1000.0
  131.                 ConstantsCache.Variable_40 = BaseHeight;
  132.                
  133.                 // BaseNoiseHeight = 250.0
  134.                 ConstantsCache.Variable_43 = BaseNoiseHeight;
  135.                
  136.                 // BaseNoiseFrquency = 0.005
  137.                 ConstantsCache.Variable_46 = BaseNoiseFrquency;
  138.                
  139.                 // MountainsNoiseHeight = 500.0
  140.                 ConstantsCache.Variable_49 = MountainsNoiseHeight;
  141.                
  142.                 // Radius = 7000.0
  143.                 ConstantsCache.Variable_5 = Radius;
  144.                
  145.                 // RiverWidth = 1.0
  146.                 ConstantsCache.Variable_95 = RiverWidth;
  147.                
  148.                 // PlainsNoiseFrequency = 0.2
  149.                 ConstantsCache.Variable_61 = PlainsNoiseFrequency;
  150.                
  151.                 // PI.3.141593
  152.                 ConstantsCache.Variable_98 = 3.141593;
  153.                
  154.                 // PI.3.141593
  155.                 ConstantsCache.Variable_67 = 3.141593;
  156.                
  157.                 // Scale = 10.0
  158.                 ConstantsCache.Variable_90 = Scale;
  159.                
  160.                 // *
  161.                 ConstantsCache.Variable_91 = ConstantsCache.Variable_5 * ConstantsCache.Variable_90;
  162.                
  163.                 // /
  164.                 ConstantsCache.Variable_37 = ConstantsCache.Variable_31 / float(360.0f);
  165.                
  166.                 // *
  167.                 ConstantsCache.Variable_97 = ConstantsCache.Variable_96 * ConstantsCache.Variable_90;
  168.                
  169.                 // +
  170.                 ConstantsCache.Variable_6 = ConstantsCache.Variable_91 + ConstantsCache.Variable_97;
  171.                
  172.                 // /
  173.                 ConstantsCache.Variable_92 = ConstantsCache.Variable_91 / ConstantsCache.Variable_90;
  174.                
  175.                 // -
  176.                 ConstantsCache.Variable_36 = float(0.5f) - ConstantsCache.Variable_37;
  177.                
  178.             }
  179.         }
  180.         void ComputeX(FVoxelCache& Cache, const FVoxelContext& Context, FVoxelGraphOutputs& GraphOutputs) const
  181.         {
  182.             Function0_X_Compute(GraphOutputs, Cache, Context);
  183.         }
  184.         void ComputeXY(FVoxelCache& Cache, const FVoxelContext& Context, FVoxelGraphOutputs& GraphOutputs) const
  185.         {
  186.             Function0_XY_Compute(GraphOutputs, Cache, Context);
  187.         }
  188.         void ComputeXYZ(FVoxelCache& Cache, const FVoxelContext& Context, FVoxelGraphOutputs& GraphOutputs) const
  189.         {
  190.             Function0_XYZ_Compute(GraphOutputs, Cache, Context);
  191.         }
  192.         void Get(const FVoxelContext&Context, float& Value) const
  193.         {
  194.             FVoxelGraphOutputs GraphOutputs{Value};
  195.             Function0_Compute(GraphOutputs, Context);
  196.         }
  197.        
  198.     private:
  199.         FVoxelConstantsCache ConstantsCache;
  200.         FastNoise _2D_Simplex_Noise_8747_Noise;
  201.         FastNoise _2D_Simplex_Noise_Fractal_15560_Noise;
  202.         FastNoise _2D_Simplex_Noise_Fractal_15561_Noise;
  203.         FastNoise _2D_Perlin_Noise_7430_Noise;
  204.         FastNoise _2D_Simplex_Noise_8748_Noise;
  205.        
  206.         const float& Scale;
  207.         const float& PlainsNoiseHeight;
  208.         const float& RingEdgesHardness;
  209.         const float& Width_in_Degrees;
  210.         const float& RiverDepth;
  211.         const float& Thickness;
  212.         const float& BaseHeight;
  213.         const float& BaseNoiseHeight;
  214.         const float& BaseNoiseFrquency;
  215.         const float& MountainsNoiseHeight;
  216.         const float& Radius;
  217.         const float& RiverWidth;
  218.         const float& PlainsNoiseFrequency;
  219.         const float& MountainsNoiseFrequency;
  220.         const FRichCurve& RingShape;
  221.         const FRichCurve& MoutainsMask;
  222.         const FRichCurve& RiverMask;
  223.         const FRichCurve& PlainsNoiseStrength;
  224.         const FLinearColor& PlainsColorLow;
  225.         const FLinearColor& RiverColor;
  226.         const FLinearColor& BeachColor;
  227.         const FLinearColor& MountainsColorHigh;
  228.         const FLinearColor& MountainsColorLowLow;
  229.         const FLinearColor& MountainsColorLowHigh;
  230.         const FLinearColor& PlainsColorHigh;
  231.         const FLinearColor& RingOuterColor;
  232.        
  233.         ///////////////////////////////////////////////////////////////////////
  234.         //////////////////////////// Init functions ///////////////////////////
  235.         ///////////////////////////////////////////////////////////////////////
  236.        
  237.         void Function0_Init(const FVoxelWorldGeneratorInit& InitStruct)
  238.         {
  239.             // Init of 2D Simplex Noise Fractal
  240.             _2D_Simplex_Noise_Fractal_15560_Noise.SetSeed(Seed(1337));
  241.             _2D_Simplex_Noise_Fractal_15560_Noise.SetFrequency(0.02);
  242.             _2D_Simplex_Noise_Fractal_15560_Noise.SetInterp(FastNoise::Interp::Quintic);
  243.             _2D_Simplex_Noise_Fractal_15560_Noise.SetFractalOctaves(5);
  244.             _2D_Simplex_Noise_Fractal_15560_Noise.SetFractalLacunarity(2.0);
  245.             _2D_Simplex_Noise_Fractal_15560_Noise.SetFractalGain(0.5);
  246.             _2D_Simplex_Noise_Fractal_15560_Noise.SetFractalType(FastNoise::FractalType::FBM);
  247.            
  248.             // Init of 2D Simplex Noise Fractal
  249.             _2D_Simplex_Noise_Fractal_15561_Noise.SetSeed(Seed(1337));
  250.             _2D_Simplex_Noise_Fractal_15561_Noise.SetFrequency(0.02);
  251.             _2D_Simplex_Noise_Fractal_15561_Noise.SetInterp(FastNoise::Interp::Quintic);
  252.             _2D_Simplex_Noise_Fractal_15561_Noise.SetFractalOctaves(8);
  253.             _2D_Simplex_Noise_Fractal_15561_Noise.SetFractalLacunarity(2.0);
  254.             _2D_Simplex_Noise_Fractal_15561_Noise.SetFractalGain(0.5);
  255.             _2D_Simplex_Noise_Fractal_15561_Noise.SetFractalType(FastNoise::FractalType::FBM);
  256.            
  257.             // Init of 2D Perlin Noise
  258.             _2D_Perlin_Noise_7430_Noise.SetSeed(Seed(1338));
  259.             _2D_Perlin_Noise_7430_Noise.SetFrequency(0.1);
  260.             _2D_Perlin_Noise_7430_Noise.SetInterp(FastNoise::Interp::Quintic);
  261.            
  262.             // Init of 2D Simplex Noise
  263.             _2D_Simplex_Noise_8748_Noise.SetSeed(Seed(1337));
  264.             _2D_Simplex_Noise_8748_Noise.SetFrequency(0.02);
  265.             _2D_Simplex_Noise_8748_Noise.SetInterp(FastNoise::Interp::Quintic);
  266.            
  267.             // Init of 2D Simplex Noise
  268.             _2D_Simplex_Noise_8747_Noise.SetSeed(Seed(1000));
  269.             _2D_Simplex_Noise_8747_Noise.SetFrequency(0.001);
  270.             _2D_Simplex_Noise_8747_Noise.SetInterp(FastNoise::Interp::Quintic);
  271.            
  272.         }
  273.        
  274.         ///////////////////////////////////////////////////////////////////////
  275.         ////////////////////////// Compute functions //////////////////////////
  276.         ///////////////////////////////////////////////////////////////////////
  277.        
  278.         void Function0_X_Compute(FVoxelGraphOutputs& GraphOutputs, FVoxelCache& Cache, const FVoxelContext& Context) const
  279.         {
  280.             // X
  281.             Cache.Variable_0 = Context.X;
  282.            
  283.             // X
  284.             Cache.Variable_24 = Context.X;
  285.            
  286.         }
  287.        
  288.         void Function0_XY_Compute(FVoxelGraphOutputs& GraphOutputs, FVoxelCache& Cache, const FVoxelContext& Context) const
  289.         {
  290.             // Y
  291.             Cache.Variable_1 = Context.Y;
  292.            
  293.             // Y
  294.             Cache.Variable_29 = Context.Y;
  295.            
  296.             // ATAN2
  297.             Cache.Variable_23 = FVoxelNodeFunctions::Atan2(Cache.Variable_29, Cache.Variable_24);
  298.            
  299.             // /
  300.             Cache.Variable_26 = Cache.Variable_23 / ConstantsCache.Variable_25;
  301.            
  302.             // *
  303.             Cache.Variable_28 = ConstantsCache.Variable_92 * Cache.Variable_26;
  304.            
  305.             // *
  306.             Cache.Variable_45 = Cache.Variable_28 * ConstantsCache.Variable_46;
  307.            
  308.             // *
  309.             Cache.Variable_51 = Cache.Variable_28 * ConstantsCache.Variable_52;
  310.            
  311.             // *
  312.             Cache.Variable_60 = Cache.Variable_28 * ConstantsCache.Variable_61;
  313.            
  314.             // 2D Simplex Noise
  315.             Cache.Variable_79 = _2D_Simplex_Noise_8747_Noise.GetSimplex(Cache.Variable_28, Cache.Variable_28);
  316.            
  317.             // *
  318.             Cache.Variable_76 = Cache.Variable_79 * float(0.1f);
  319.            
  320.         }
  321.        
  322.         void Function0_XYZ_Compute(FVoxelGraphOutputs& GraphOutputs, FVoxelCache& Cache, const FVoxelContext& Context) const
  323.         {
  324.             // Z
  325.             float Variable_12; // Z output 0
  326.             Variable_12 = Context.Z;
  327.            
  328.             // Z
  329.             float Variable_2; // Z output 0
  330.             Variable_2 = Context.Z;
  331.            
  332.             // Vector Length
  333.             float Variable_3; // Vector Length output 0
  334.             Variable_3 = FVoxelNodeFunctions::VectorLength(Cache.Variable_0, Cache.Variable_1, Variable_2);
  335.            
  336.             // +
  337.             float Variable_30; // + output 0
  338.             Variable_30 = Variable_3 + float(0.001f);
  339.            
  340.             // /
  341.             float Variable_13; // / output 0
  342.             Variable_13 = Variable_12 / Variable_30;
  343.            
  344.             // ACOS
  345.             float Variable_14; // ACOS output 0
  346.             Variable_14 = FVoxelNodeFunctions::Acos(Variable_13);
  347.            
  348.             // /
  349.             float Variable_10; // / output 0
  350.             Variable_10 = Variable_14 / ConstantsCache.Variable_98;
  351.            
  352.             // 1 - X
  353.             float Variable_11; // 1 - X output 0
  354.             Variable_11 = 1 - Variable_10;
  355.            
  356.             // Min (float)
  357.             float Variable_9; // Min (float) output 0
  358.             Variable_9 = FVoxelNodeFunctions::Min<float>(Variable_10, Variable_11);
  359.            
  360.             // -
  361.             float Variable_15; // - output 0
  362.             Variable_15 = Variable_9 - ConstantsCache.Variable_36;
  363.            
  364.             // /
  365.             float Variable_35; // / output 0
  366.             Variable_35 = Variable_15 / ConstantsCache.Variable_37;
  367.            
  368.             // 1 - X
  369.             float Variable_34; // 1 - X output 0
  370.             Variable_34 = 1 - Variable_35;
  371.            
  372.             // RingCurve
  373.             float Variable_38; // RingCurve output 0
  374.             Variable_38 = RingShape.Eval(Variable_34);
  375.            
  376.             // Static Clamp: 0.0 <= X <= 1.0
  377.             float Variable_86; // Static Clamp: 0.0 <= X <= 1.0 output 0
  378.             Variable_86 = FMath::Clamp<float>(Variable_38, 0.000000, 1.000000);
  379.            
  380.             // *
  381.             float Variable_39; // * output 0
  382.             Variable_39 = Variable_86 * ConstantsCache.Variable_40;
  383.            
  384.             // *
  385.             float Variable_27; // * output 0
  386.             Variable_27 = ConstantsCache.Variable_92 * Variable_10;
  387.            
  388.             // *
  389.             float Variable_44; // * output 0
  390.             Variable_44 = Variable_27 * ConstantsCache.Variable_46;
  391.            
  392.             // 2D Simplex Noise Fractal
  393.             float Variable_41; // 2D Simplex Noise Fractal output 0
  394.             Variable_41 = _2D_Simplex_Noise_Fractal_15560_Noise.GetSimplexFractal(Variable_44, Cache.Variable_45);
  395.            
  396.             // *
  397.             float Variable_42; // * output 0
  398.             Variable_42 = Variable_41 * ConstantsCache.Variable_43;
  399.            
  400.             // *
  401.             float Variable_50; // * output 0
  402.             Variable_50 = Variable_27 * ConstantsCache.Variable_52;
  403.            
  404.             // 2D Simplex Noise Fractal
  405.             float Variable_47; // 2D Simplex Noise Fractal output 0
  406.             Variable_47 = _2D_Simplex_Noise_Fractal_15561_Noise.GetSimplexFractal(Variable_50, Cache.Variable_51);
  407.            
  408.             // MountainsCurve
  409.             float Variable_53; // MountainsCurve output 0
  410.             Variable_53 = MoutainsMask.Eval(Variable_34);
  411.            
  412.             // Static Clamp: 0.0 <= X <= 1.0
  413.             float Variable_87; // Static Clamp: 0.0 <= X <= 1.0 output 0
  414.             Variable_87 = FMath::Clamp<float>(Variable_53, 0.000000, 1.000000);
  415.            
  416.             // *
  417.             float Variable_48; // * output 0
  418.             Variable_48 = Variable_47 * ConstantsCache.Variable_49 * Variable_87;
  419.            
  420.             // 2D Perlin Noise
  421.             float Variable_54; // 2D Perlin Noise output 0
  422.             Variable_54 = _2D_Perlin_Noise_7430_Noise.GetPerlin(Variable_50, Cache.Variable_51);
  423.            
  424.             // *
  425.             float Variable_55; // * output 0
  426.             Variable_55 = ConstantsCache.Variable_49 * Variable_87 * Variable_54 * float(0.1f);
  427.            
  428.             // *
  429.             float Variable_59; // * output 0
  430.             Variable_59 = Variable_27 * ConstantsCache.Variable_61;
  431.            
  432.             // 2D Simplex Noise
  433.             float Variable_63; // 2D Simplex Noise output 0
  434.             Variable_63 = _2D_Simplex_Noise_8748_Noise.GetSimplex(Variable_59, Cache.Variable_60);
  435.            
  436.             // Z
  437.             float Variable_72; // Z output 0
  438.             Variable_72 = Context.Z;
  439.            
  440.             // /
  441.             float Variable_73; // / output 0
  442.             Variable_73 = Variable_72 / Variable_30;
  443.            
  444.             // +
  445.             float Variable_75; // + output 0
  446.             Variable_75 = Variable_73 + Cache.Variable_76;
  447.            
  448.             // ACOS
  449.             float Variable_74; // ACOS output 0
  450.             Variable_74 = FVoxelNodeFunctions::Acos(Variable_75);
  451.            
  452.             // /
  453.             float Variable_71; // / output 0
  454.             Variable_71 = Variable_74 / ConstantsCache.Variable_67;
  455.            
  456.             // 1 - X
  457.             float Variable_69; // 1 - X output 0
  458.             Variable_69 = 1 - Variable_71;
  459.            
  460.             // Min (float)
  461.             float Variable_68; // Min (float) output 0
  462.             Variable_68 = FVoxelNodeFunctions::Min<float>(Variable_71, Variable_69);
  463.            
  464.             // /
  465.             float Variable_70; // / output 0
  466.             Variable_70 = Variable_68 / float(0.5f);
  467.            
  468.             // 1 - X
  469.             float Variable_77; // 1 - X output 0
  470.             Variable_77 = 1 - Variable_70;
  471.            
  472.             // *
  473.             float Variable_78; // * output 0
  474.             Variable_78 = Variable_77 * float(20.0f);
  475.            
  476.             // /
  477.             float Variable_94; // / output 0
  478.             Variable_94 = Variable_78 / ConstantsCache.Variable_95;
  479.            
  480.             // RiverCurve
  481.             float Variable_64; // RiverCurve output 0
  482.             Variable_64 = RiverMask.Eval(Variable_94);
  483.            
  484.             // Static Clamp: -1.0 <= X <= 1.0
  485.             float Variable_89; // Static Clamp: -1.0 <= X <= 1.0 output 0
  486.             Variable_89 = FMath::Clamp<float>(Variable_64, -1.000000, 1.000000);
  487.            
  488.             // Min (float)
  489.             float Variable_81; // Min (float) output 0
  490.             Variable_81 = FVoxelNodeFunctions::Min<float>(Variable_89, float(0.0f));
  491.            
  492.             // *
  493.             float Variable_82; // * output 0
  494.             Variable_82 = Variable_81 * float(-1.0f);
  495.            
  496.             // *
  497.             float Variable_83; // * output 0
  498.             Variable_83 = Variable_63 * Variable_82;
  499.            
  500.             // 1 - X
  501.             float Variable_84; // 1 - X output 0
  502.             Variable_84 = 1 - Variable_82;
  503.            
  504.             // -
  505.             float Variable_85; // - output 0
  506.             Variable_85 = Variable_83 - Variable_84;
  507.            
  508.             // 1 - X
  509.             float Variable_56; // 1 - X output 0
  510.             Variable_56 = 1 - Variable_87;
  511.            
  512.             // PlainsNoiseStrengthCurve
  513.             float Variable_62; // PlainsNoiseStrengthCurve output 0
  514.             Variable_62 = PlainsNoiseStrength.Eval(Variable_34);
  515.            
  516.             // Static Clamp: 0.0 <= X <= 1.0
  517.             float Variable_88; // Static Clamp: 0.0 <= X <= 1.0 output 0
  518.             Variable_88 = FMath::Clamp<float>(Variable_62, 0.000000, 1.000000);
  519.            
  520.             // *
  521.             float Variable_57; // * output 0
  522.             Variable_57 = Variable_85 * ConstantsCache.Variable_58 * Variable_56 * Variable_88;
  523.            
  524.             // Max (float)
  525.             float Variable_80; // Max (float) output 0
  526.             Variable_80 = FVoxelNodeFunctions::Max<float>(Variable_89, float(0.0f));
  527.            
  528.             // *
  529.             float Variable_65; // * output 0
  530.             Variable_65 = Variable_80 * float(-1.0f) * ConstantsCache.Variable_66;
  531.            
  532.             // +
  533.             float Variable_33; // + output 0
  534.             Variable_33 = Variable_39 + Variable_42 + Variable_48 + Variable_55 + Variable_57 + Variable_65;
  535.            
  536.             // *
  537.             float Variable_93; // * output 0
  538.             Variable_93 = Variable_33 * ConstantsCache.Variable_90;
  539.            
  540.             // -
  541.             float Variable_32; // - output 0
  542.             Variable_32 = ConstantsCache.Variable_91 - Variable_93;
  543.            
  544.             // -
  545.             float Variable_4; // - output 0
  546.             Variable_4 = Variable_32 - Variable_30;
  547.            
  548.             // -
  549.             float Variable_7; // - output 0
  550.             Variable_7 = Variable_30 - ConstantsCache.Variable_6;
  551.            
  552.             // Max (float)
  553.             float Variable_8; // Max (float) output 0
  554.             Variable_8 = FVoxelNodeFunctions::Max<float>(Variable_4, Variable_7);
  555.            
  556.             // -
  557.             float Variable_19; // - output 0
  558.             Variable_19 = Variable_8 - float(1.0f);
  559.            
  560.             // Max (float)
  561.             float Variable_18; // Max (float) output 0
  562.             Variable_18 = FVoxelNodeFunctions::Max<float>(Variable_35, float(0.0f));
  563.            
  564.             // *
  565.             float Variable_20; // * output 0
  566.             Variable_20 = Variable_18 * ConstantsCache.Variable_22;
  567.            
  568.             // Min (float)
  569.             float Variable_21; // Min (float) output 0
  570.             Variable_21 = FVoxelNodeFunctions::Min<float>(Variable_20, float(1.0f));
  571.            
  572.             // *
  573.             float Variable_16; // * output 0
  574.             Variable_16 = Variable_19 * Variable_21;
  575.            
  576.             // +
  577.             float Variable_17; // + output 0
  578.             Variable_17 = Variable_16 + float(1.0f);
  579.            
  580.             GraphOutputs.Value = Variable_17;
  581.         }
  582.        
  583.         void Function0_Compute(FVoxelGraphOutputs& GraphOutputs, const FVoxelContext& Context) const
  584.         {
  585.             // Z
  586.             float Variable_12; // Z output 0
  587.             Variable_12 = Context.Z;
  588.            
  589.             // X
  590.             float Variable_0; // X output 0
  591.             Variable_0 = Context.X;
  592.            
  593.             // Y
  594.             float Variable_1; // Y output 0
  595.             Variable_1 = Context.Y;
  596.            
  597.             // Z
  598.             float Variable_2; // Z output 0
  599.             Variable_2 = Context.Z;
  600.            
  601.             // Vector Length
  602.             float Variable_3; // Vector Length output 0
  603.             Variable_3 = FVoxelNodeFunctions::VectorLength(Variable_0, Variable_1, Variable_2);
  604.            
  605.             // +
  606.             float Variable_30; // + output 0
  607.             Variable_30 = Variable_3 + float(0.001f);
  608.            
  609.             // /
  610.             float Variable_13; // / output 0
  611.             Variable_13 = Variable_12 / Variable_30;
  612.            
  613.             // ACOS
  614.             float Variable_14; // ACOS output 0
  615.             Variable_14 = FVoxelNodeFunctions::Acos(Variable_13);
  616.            
  617.             // /
  618.             float Variable_10; // / output 0
  619.             Variable_10 = Variable_14 / ConstantsCache.Variable_98;
  620.            
  621.             // 1 - X
  622.             float Variable_11; // 1 - X output 0
  623.             Variable_11 = 1 - Variable_10;
  624.            
  625.             // Min (float)
  626.             float Variable_9; // Min (float) output 0
  627.             Variable_9 = FVoxelNodeFunctions::Min<float>(Variable_10, Variable_11);
  628.            
  629.             // -
  630.             float Variable_15; // - output 0
  631.             Variable_15 = Variable_9 - ConstantsCache.Variable_36;
  632.            
  633.             // /
  634.             float Variable_35; // / output 0
  635.             Variable_35 = Variable_15 / ConstantsCache.Variable_37;
  636.            
  637.             // 1 - X
  638.             float Variable_34; // 1 - X output 0
  639.             Variable_34 = 1 - Variable_35;
  640.            
  641.             // RingCurve
  642.             float Variable_38; // RingCurve output 0
  643.             Variable_38 = RingShape.Eval(Variable_34);
  644.            
  645.             // Static Clamp: 0.0 <= X <= 1.0
  646.             float Variable_86; // Static Clamp: 0.0 <= X <= 1.0 output 0
  647.             Variable_86 = FMath::Clamp<float>(Variable_38, 0.000000, 1.000000);
  648.            
  649.             // *
  650.             float Variable_39; // * output 0
  651.             Variable_39 = Variable_86 * ConstantsCache.Variable_40;
  652.            
  653.             // *
  654.             float Variable_27; // * output 0
  655.             Variable_27 = ConstantsCache.Variable_92 * Variable_10;
  656.            
  657.             // *
  658.             float Variable_44; // * output 0
  659.             Variable_44 = Variable_27 * ConstantsCache.Variable_46;
  660.            
  661.             // Y
  662.             float Variable_29; // Y output 0
  663.             Variable_29 = Context.Y;
  664.            
  665.             // X
  666.             float Variable_24; // X output 0
  667.             Variable_24 = Context.X;
  668.            
  669.             // ATAN2
  670.             float Variable_23; // ATAN2 output 0
  671.             Variable_23 = FVoxelNodeFunctions::Atan2(Variable_29, Variable_24);
  672.            
  673.             // /
  674.             float Variable_26; // / output 0
  675.             Variable_26 = Variable_23 / ConstantsCache.Variable_25;
  676.            
  677.             // *
  678.             float Variable_28; // * output 0
  679.             Variable_28 = ConstantsCache.Variable_92 * Variable_26;
  680.            
  681.             // *
  682.             float Variable_45; // * output 0
  683.             Variable_45 = Variable_28 * ConstantsCache.Variable_46;
  684.            
  685.             // 2D Simplex Noise Fractal
  686.             float Variable_41; // 2D Simplex Noise Fractal output 0
  687.             Variable_41 = _2D_Simplex_Noise_Fractal_15560_Noise.GetSimplexFractal(Variable_44, Variable_45);
  688.            
  689.             // *
  690.             float Variable_42; // * output 0
  691.             Variable_42 = Variable_41 * ConstantsCache.Variable_43;
  692.            
  693.             // *
  694.             float Variable_50; // * output 0
  695.             Variable_50 = Variable_27 * ConstantsCache.Variable_52;
  696.            
  697.             // *
  698.             float Variable_51; // * output 0
  699.             Variable_51 = Variable_28 * ConstantsCache.Variable_52;
  700.            
  701.             // 2D Simplex Noise Fractal
  702.             float Variable_47; // 2D Simplex Noise Fractal output 0
  703.             Variable_47 = _2D_Simplex_Noise_Fractal_15561_Noise.GetSimplexFractal(Variable_50, Variable_51);
  704.            
  705.             // MountainsCurve
  706.             float Variable_53; // MountainsCurve output 0
  707.             Variable_53 = MoutainsMask.Eval(Variable_34);
  708.            
  709.             // Static Clamp: 0.0 <= X <= 1.0
  710.             float Variable_87; // Static Clamp: 0.0 <= X <= 1.0 output 0
  711.             Variable_87 = FMath::Clamp<float>(Variable_53, 0.000000, 1.000000);
  712.            
  713.             // *
  714.             float Variable_48; // * output 0
  715.             Variable_48 = Variable_47 * ConstantsCache.Variable_49 * Variable_87;
  716.            
  717.             // 2D Perlin Noise
  718.             float Variable_54; // 2D Perlin Noise output 0
  719.             Variable_54 = _2D_Perlin_Noise_7430_Noise.GetPerlin(Variable_50, Variable_51);
  720.            
  721.             // *
  722.             float Variable_55; // * output 0
  723.             Variable_55 = ConstantsCache.Variable_49 * Variable_87 * Variable_54 * float(0.1f);
  724.            
  725.             // *
  726.             float Variable_59; // * output 0
  727.             Variable_59 = Variable_27 * ConstantsCache.Variable_61;
  728.            
  729.             // *
  730.             float Variable_60; // * output 0
  731.             Variable_60 = Variable_28 * ConstantsCache.Variable_61;
  732.            
  733.             // 2D Simplex Noise
  734.             float Variable_63; // 2D Simplex Noise output 0
  735.             Variable_63 = _2D_Simplex_Noise_8748_Noise.GetSimplex(Variable_59, Variable_60);
  736.            
  737.             // Z
  738.             float Variable_72; // Z output 0
  739.             Variable_72 = Context.Z;
  740.            
  741.             // /
  742.             float Variable_73; // / output 0
  743.             Variable_73 = Variable_72 / Variable_30;
  744.            
  745.             // 2D Simplex Noise
  746.             float Variable_79; // 2D Simplex Noise output 0
  747.             Variable_79 = _2D_Simplex_Noise_8747_Noise.GetSimplex(Variable_28, Variable_28);
  748.            
  749.             // *
  750.             float Variable_76; // * output 0
  751.             Variable_76 = Variable_79 * float(0.1f);
  752.            
  753.             // +
  754.             float Variable_75; // + output 0
  755.             Variable_75 = Variable_73 + Variable_76;
  756.            
  757.             // ACOS
  758.             float Variable_74; // ACOS output 0
  759.             Variable_74 = FVoxelNodeFunctions::Acos(Variable_75);
  760.            
  761.             // /
  762.             float Variable_71; // / output 0
  763.             Variable_71 = Variable_74 / ConstantsCache.Variable_67;
  764.            
  765.             // 1 - X
  766.             float Variable_69; // 1 - X output 0
  767.             Variable_69 = 1 - Variable_71;
  768.            
  769.             // Min (float)
  770.             float Variable_68; // Min (float) output 0
  771.             Variable_68 = FVoxelNodeFunctions::Min<float>(Variable_71, Variable_69);
  772.            
  773.             // /
  774.             float Variable_70; // / output 0
  775.             Variable_70 = Variable_68 / float(0.5f);
  776.            
  777.             // 1 - X
  778.             float Variable_77; // 1 - X output 0
  779.             Variable_77 = 1 - Variable_70;
  780.            
  781.             // *
  782.             float Variable_78; // * output 0
  783.             Variable_78 = Variable_77 * float(20.0f);
  784.            
  785.             // /
  786.             float Variable_94; // / output 0
  787.             Variable_94 = Variable_78 / ConstantsCache.Variable_95;
  788.            
  789.             // RiverCurve
  790.             float Variable_64; // RiverCurve output 0
  791.             Variable_64 = RiverMask.Eval(Variable_94);
  792.            
  793.             // Static Clamp: -1.0 <= X <= 1.0
  794.             float Variable_89; // Static Clamp: -1.0 <= X <= 1.0 output 0
  795.             Variable_89 = FMath::Clamp<float>(Variable_64, -1.000000, 1.000000);
  796.            
  797.             // Min (float)
  798.             float Variable_81; // Min (float) output 0
  799.             Variable_81 = FVoxelNodeFunctions::Min<float>(Variable_89, float(0.0f));
  800.            
  801.             // *
  802.             float Variable_82; // * output 0
  803.             Variable_82 = Variable_81 * float(-1.0f);
  804.            
  805.             // *
  806.             float Variable_83; // * output 0
  807.             Variable_83 = Variable_63 * Variable_82;
  808.            
  809.             // 1 - X
  810.             float Variable_84; // 1 - X output 0
  811.             Variable_84 = 1 - Variable_82;
  812.            
  813.             // -
  814.             float Variable_85; // - output 0
  815.             Variable_85 = Variable_83 - Variable_84;
  816.            
  817.             // 1 - X
  818.             float Variable_56; // 1 - X output 0
  819.             Variable_56 = 1 - Variable_87;
  820.            
  821.             // PlainsNoiseStrengthCurve
  822.             float Variable_62; // PlainsNoiseStrengthCurve output 0
  823.             Variable_62 = PlainsNoiseStrength.Eval(Variable_34);
  824.            
  825.             // Static Clamp: 0.0 <= X <= 1.0
  826.             float Variable_88; // Static Clamp: 0.0 <= X <= 1.0 output 0
  827.             Variable_88 = FMath::Clamp<float>(Variable_62, 0.000000, 1.000000);
  828.            
  829.             // *
  830.             float Variable_57; // * output 0
  831.             Variable_57 = Variable_85 * ConstantsCache.Variable_58 * Variable_56 * Variable_88;
  832.            
  833.             // Max (float)
  834.             float Variable_80; // Max (float) output 0
  835.             Variable_80 = FVoxelNodeFunctions::Max<float>(Variable_89, float(0.0f));
  836.            
  837.             // *
  838.             float Variable_65; // * output 0
  839.             Variable_65 = Variable_80 * float(-1.0f) * ConstantsCache.Variable_66;
  840.            
  841.             // +
  842.             float Variable_33; // + output 0
  843.             Variable_33 = Variable_39 + Variable_42 + Variable_48 + Variable_55 + Variable_57 + Variable_65;
  844.            
  845.             // *
  846.             float Variable_93; // * output 0
  847.             Variable_93 = Variable_33 * ConstantsCache.Variable_90;
  848.            
  849.             // -
  850.             float Variable_32; // - output 0
  851.             Variable_32 = ConstantsCache.Variable_91 - Variable_93;
  852.            
  853.             // -
  854.             float Variable_4; // - output 0
  855.             Variable_4 = Variable_32 - Variable_30;
  856.            
  857.             // -
  858.             float Variable_7; // - output 0
  859.             Variable_7 = Variable_30 - ConstantsCache.Variable_6;
  860.            
  861.             // Max (float)
  862.             float Variable_8; // Max (float) output 0
  863.             Variable_8 = FVoxelNodeFunctions::Max<float>(Variable_4, Variable_7);
  864.            
  865.             // -
  866.             float Variable_19; // - output 0
  867.             Variable_19 = Variable_8 - float(1.0f);
  868.            
  869.             // Max (float)
  870.             float Variable_18; // Max (float) output 0
  871.             Variable_18 = FVoxelNodeFunctions::Max<float>(Variable_35, float(0.0f));
  872.            
  873.             // *
  874.             float Variable_20; // * output 0
  875.             Variable_20 = Variable_18 * ConstantsCache.Variable_22;
  876.            
  877.             // Min (float)
  878.             float Variable_21; // Min (float) output 0
  879.             Variable_21 = FVoxelNodeFunctions::Min<float>(Variable_20, float(1.0f));
  880.            
  881.             // *
  882.             float Variable_16; // * output 0
  883.             Variable_16 = Variable_19 * Variable_21;
  884.            
  885.             // +
  886.             float Variable_17; // + output 0
  887.             Variable_17 = Variable_16 + float(1.0f);
  888.            
  889.             GraphOutputs.Value = Variable_17;
  890.         }
  891.        
  892.     };
  893.     struct FLocalComputeStruct_LocalMaterial_LOD0
  894.     {
  895.         struct FVoxelGraphOutputs
  896.         {
  897.             FVoxelMaterial& Material;
  898.         };
  899.         struct FVoxelConstantsCache
  900.         {
  901.             float Variable_61; // PlainsColorLow output 0
  902.             float Variable_62; // PlainsColorLow output 1
  903.             float Variable_63; // PlainsColorLow output 2
  904.             float Variable_64; // PlainsColorLow output 3
  905.             float Variable_15; // RingEdgesHardness = 10.0 output 0
  906.             float Variable_18; // PI.3.141593 output 0
  907.             float Variable_25; // Width in Degrees = 50.0 output 0
  908.             float Variable_69; // RiverColor output 0
  909.             float Variable_70; // RiverColor output 1
  910.             float Variable_71; // RiverColor output 2
  911.             float Variable_72; // RiverColor output 3
  912.             float Variable_92; // BeachColor output 0
  913.             float Variable_93; // BeachColor output 1
  914.             float Variable_94; // BeachColor output 2
  915.             float Variable_95; // BeachColor output 3
  916.             float Variable_33; // MountainsNoiseFrequency = 0.2 output 0
  917.             float Variable_36; // MountainsColorHigh output 0
  918.             float Variable_37; // MountainsColorHigh output 1
  919.             float Variable_38; // MountainsColorHigh output 2
  920.             float Variable_39; // MountainsColorHigh output 3
  921.             float Variable_40; // MountainsColorLowLow output 0
  922.             float Variable_41; // MountainsColorLowLow output 1
  923.             float Variable_42; // MountainsColorLowLow output 2
  924.             float Variable_43; // MountainsColorLowLow output 3
  925.             float Variable_46; // MountainsColorLowHigh output 0
  926.             float Variable_47; // MountainsColorLowHigh output 1
  927.             float Variable_48; // MountainsColorLowHigh output 2
  928.             float Variable_49; // MountainsColorLowHigh output 3
  929.             float Variable_52; // PlainsNoiseFrequency = 0.2 output 0
  930.             float Variable_54; // PlainsColorHigh output 0
  931.             float Variable_55; // PlainsColorHigh output 1
  932.             float Variable_56; // PlainsColorHigh output 2
  933.             float Variable_57; // PlainsColorHigh output 3
  934.             float Variable_4; // Radius = 7000.0 output 0
  935.             float Variable_68; // PI.3.141593 output 0
  936.             float Variable_104; // RiverWidth = 1.0 output 0
  937.             float Variable_100; // Scale = 10.0 output 0
  938.             float Variable_108; // Thickness = 500.0 output 0
  939.             float Variable_110; // PI.3.141593 output 0
  940.             float Variable_112; // RingOuterColor output 0
  941.             float Variable_113; // RingOuterColor output 1
  942.             float Variable_114; // RingOuterColor output 2
  943.             float Variable_115; // RingOuterColor output 3
  944.             float Variable_109; // * output 0
  945.             float Variable_29; // / output 0
  946.             float Variable_101; // * output 0
  947.             float Variable_102; // / output 0
  948.             float Variable_28; // - output 0
  949.             float Variable_107; // + output 0
  950.         };
  951.         struct FVoxelCache
  952.         {
  953.             float Variable_0; // X output 0
  954.             float Variable_17; // X output 0
  955.             float Variable_1; // Y output 0
  956.             float Variable_23; // Y output 0
  957.             float Variable_16; // ATAN2 output 0
  958.             float Variable_19; // / output 0
  959.             float Variable_22; // * output 0
  960.             float Variable_51; // * output 0
  961.             float Variable_85; // 2D Simplex Noise output 0
  962.             float Variable_82; // * output 0
  963.             float Variable_32; // * output 0
  964.         };
  965.        
  966.         FLocalComputeStruct_LocalMaterial_LOD0(const float& InScale, const float& InPlainsNoiseHeight, const float& InRingEdgesHardness, const float& InWidth_in_Degrees, const float& InRiverDepth, const float& InThickness, const float& InBaseHeight, const float& InBaseNoiseHeight, const float& InBaseNoiseFrquency, const float& InMountainsNoiseHeight, const float& InRadius, const float& InRiverWidth, const float& InPlainsNoiseFrequency, const float& InMountainsNoiseFrequency, const FRichCurve& InRingShape, const FRichCurve& InMoutainsMask, const FRichCurve& InRiverMask, const FRichCurve& InPlainsNoiseStrength, const FLinearColor& InPlainsColorLow, const FLinearColor& InRiverColor, const FLinearColor& InBeachColor, const FLinearColor& InMountainsColorHigh, const FLinearColor& InMountainsColorLowLow, const FLinearColor& InMountainsColorLowHigh, const FLinearColor& InPlainsColorHigh, const FLinearColor& InRingOuterColor)
  967.             : Scale(InScale)
  968.             , PlainsNoiseHeight(InPlainsNoiseHeight)
  969.             , RingEdgesHardness(InRingEdgesHardness)
  970.             , Width_in_Degrees(InWidth_in_Degrees)
  971.             , RiverDepth(InRiverDepth)
  972.             , Thickness(InThickness)
  973.             , BaseHeight(InBaseHeight)
  974.             , BaseNoiseHeight(InBaseNoiseHeight)
  975.             , BaseNoiseFrquency(InBaseNoiseFrquency)
  976.             , MountainsNoiseHeight(InMountainsNoiseHeight)
  977.             , Radius(InRadius)
  978.             , RiverWidth(InRiverWidth)
  979.             , PlainsNoiseFrequency(InPlainsNoiseFrequency)
  980.             , MountainsNoiseFrequency(InMountainsNoiseFrequency)
  981.             , RingShape(InRingShape)
  982.             , MoutainsMask(InMoutainsMask)
  983.             , RiverMask(InRiverMask)
  984.             , PlainsNoiseStrength(InPlainsNoiseStrength)
  985.             , PlainsColorLow(InPlainsColorLow)
  986.             , RiverColor(InRiverColor)
  987.             , BeachColor(InBeachColor)
  988.             , MountainsColorHigh(InMountainsColorHigh)
  989.             , MountainsColorLowLow(InMountainsColorLowLow)
  990.             , MountainsColorLowHigh(InMountainsColorLowHigh)
  991.             , PlainsColorHigh(InPlainsColorHigh)
  992.             , RingOuterColor(InRingOuterColor)
  993.         {
  994.         }
  995.        
  996.         void Init(const FVoxelWorldGeneratorInit& InitStruct)
  997.         {
  998.             FVoxelCache Cache;
  999.            
  1000.             {
  1001.             }
  1002.            
  1003.             Function0_Init(InitStruct);
  1004.            
  1005.             {
  1006.                 // PlainsColorLow
  1007.                 ConstantsCache.Variable_61 = PlainsColorLow.R;
  1008.                 ConstantsCache.Variable_62 = PlainsColorLow.G;
  1009.                 ConstantsCache.Variable_63 = PlainsColorLow.B;
  1010.                 ConstantsCache.Variable_64 = PlainsColorLow.A;
  1011.                
  1012.                 // RingEdgesHardness = 10.0
  1013.                 ConstantsCache.Variable_15 = RingEdgesHardness;
  1014.                
  1015.                 // PI.3.141593
  1016.                 ConstantsCache.Variable_18 = 3.141593;
  1017.                
  1018.                 // Width in Degrees = 50.0
  1019.                 ConstantsCache.Variable_25 = Width_in_Degrees;
  1020.                
  1021.                 // RiverColor
  1022.                 ConstantsCache.Variable_69 = RiverColor.R;
  1023.                 ConstantsCache.Variable_70 = RiverColor.G;
  1024.                 ConstantsCache.Variable_71 = RiverColor.B;
  1025.                 ConstantsCache.Variable_72 = RiverColor.A;
  1026.                
  1027.                 // BeachColor
  1028.                 ConstantsCache.Variable_92 = BeachColor.R;
  1029.                 ConstantsCache.Variable_93 = BeachColor.G;
  1030.                 ConstantsCache.Variable_94 = BeachColor.B;
  1031.                 ConstantsCache.Variable_95 = BeachColor.A;
  1032.                
  1033.                 // MountainsNoiseFrequency = 0.2
  1034.                 ConstantsCache.Variable_33 = MountainsNoiseFrequency;
  1035.                
  1036.                 // MountainsColorHigh
  1037.                 ConstantsCache.Variable_36 = MountainsColorHigh.R;
  1038.                 ConstantsCache.Variable_37 = MountainsColorHigh.G;
  1039.                 ConstantsCache.Variable_38 = MountainsColorHigh.B;
  1040.                 ConstantsCache.Variable_39 = MountainsColorHigh.A;
  1041.                
  1042.                 // MountainsColorLowLow
  1043.                 ConstantsCache.Variable_40 = MountainsColorLowLow.R;
  1044.                 ConstantsCache.Variable_41 = MountainsColorLowLow.G;
  1045.                 ConstantsCache.Variable_42 = MountainsColorLowLow.B;
  1046.                 ConstantsCache.Variable_43 = MountainsColorLowLow.A;
  1047.                
  1048.                 // MountainsColorLowHigh
  1049.                 ConstantsCache.Variable_46 = MountainsColorLowHigh.R;
  1050.                 ConstantsCache.Variable_47 = MountainsColorLowHigh.G;
  1051.                 ConstantsCache.Variable_48 = MountainsColorLowHigh.B;
  1052.                 ConstantsCache.Variable_49 = MountainsColorLowHigh.A;
  1053.                
  1054.                 // PlainsNoiseFrequency = 0.2
  1055.                 ConstantsCache.Variable_52 = PlainsNoiseFrequency;
  1056.                
  1057.                 // PlainsColorHigh
  1058.                 ConstantsCache.Variable_54 = PlainsColorHigh.R;
  1059.                 ConstantsCache.Variable_55 = PlainsColorHigh.G;
  1060.                 ConstantsCache.Variable_56 = PlainsColorHigh.B;
  1061.                 ConstantsCache.Variable_57 = PlainsColorHigh.A;
  1062.                
  1063.                 // Radius = 7000.0
  1064.                 ConstantsCache.Variable_4 = Radius;
  1065.                
  1066.                 // PI.3.141593
  1067.                 ConstantsCache.Variable_68 = 3.141593;
  1068.                
  1069.                 // RiverWidth = 1.0
  1070.                 ConstantsCache.Variable_104 = RiverWidth;
  1071.                
  1072.                 // Scale = 10.0
  1073.                 ConstantsCache.Variable_100 = Scale;
  1074.                
  1075.                 // Thickness = 500.0
  1076.                 ConstantsCache.Variable_108 = Thickness;
  1077.                
  1078.                 // PI.3.141593
  1079.                 ConstantsCache.Variable_110 = 3.141593;
  1080.                
  1081.                 // RingOuterColor
  1082.                 ConstantsCache.Variable_112 = RingOuterColor.R;
  1083.                 ConstantsCache.Variable_113 = RingOuterColor.G;
  1084.                 ConstantsCache.Variable_114 = RingOuterColor.B;
  1085.                 ConstantsCache.Variable_115 = RingOuterColor.A;
  1086.                
  1087.                 // *
  1088.                 ConstantsCache.Variable_109 = ConstantsCache.Variable_108 * ConstantsCache.Variable_100;
  1089.                
  1090.                 // /
  1091.                 ConstantsCache.Variable_29 = ConstantsCache.Variable_25 / float(360.0f);
  1092.                
  1093.                 // *
  1094.                 ConstantsCache.Variable_101 = ConstantsCache.Variable_4 * ConstantsCache.Variable_100;
  1095.                
  1096.                 // /
  1097.                 ConstantsCache.Variable_102 = ConstantsCache.Variable_101 / ConstantsCache.Variable_100;
  1098.                
  1099.                 // -
  1100.                 ConstantsCache.Variable_28 = float(0.5f) - ConstantsCache.Variable_29;
  1101.                
  1102.                 // +
  1103.                 ConstantsCache.Variable_107 = ConstantsCache.Variable_101 + ConstantsCache.Variable_109 + float(-5.0f);
  1104.                
  1105.             }
  1106.         }
  1107.         void ComputeX(FVoxelCache& Cache, const FVoxelContext& Context, FVoxelGraphOutputs& GraphOutputs) const
  1108.         {
  1109.             Function0_X_Compute(GraphOutputs, Cache, Context);
  1110.         }
  1111.         void ComputeXY(FVoxelCache& Cache, const FVoxelContext& Context, FVoxelGraphOutputs& GraphOutputs) const
  1112.         {
  1113.             Function0_XY_Compute(GraphOutputs, Cache, Context);
  1114.         }
  1115.         void ComputeXYZ(FVoxelCache& Cache, const FVoxelContext& Context, FVoxelGraphOutputs& GraphOutputs) const
  1116.         {
  1117.             Function0_XYZ_Compute(GraphOutputs, Cache, Context);
  1118.         }
  1119.         void Get(const FVoxelContext&Context, FVoxelMaterial& Material) const
  1120.         {
  1121.             FVoxelGraphOutputs GraphOutputs{Material};
  1122.             Function0_Compute(GraphOutputs, Context);
  1123.         }
  1124.        
  1125.     private:
  1126.         FVoxelConstantsCache ConstantsCache;
  1127.         FastNoise _2D_Simplex_Noise_8749_Noise;
  1128.         FastNoise _2D_Simplex_Noise_8750_Noise;
  1129.         FastNoise _2D_Perlin_Noise_7431_Noise;
  1130.         FastNoise _2D_Simplex_Noise_Fractal_15562_Noise;
  1131.        
  1132.         const float& Scale;
  1133.         const float& PlainsNoiseHeight;
  1134.         const float& RingEdgesHardness;
  1135.         const float& Width_in_Degrees;
  1136.         const float& RiverDepth;
  1137.         const float& Thickness;
  1138.         const float& BaseHeight;
  1139.         const float& BaseNoiseHeight;
  1140.         const float& BaseNoiseFrquency;
  1141.         const float& MountainsNoiseHeight;
  1142.         const float& Radius;
  1143.         const float& RiverWidth;
  1144.         const float& PlainsNoiseFrequency;
  1145.         const float& MountainsNoiseFrequency;
  1146.         const FRichCurve& RingShape;
  1147.         const FRichCurve& MoutainsMask;
  1148.         const FRichCurve& RiverMask;
  1149.         const FRichCurve& PlainsNoiseStrength;
  1150.         const FLinearColor& PlainsColorLow;
  1151.         const FLinearColor& RiverColor;
  1152.         const FLinearColor& BeachColor;
  1153.         const FLinearColor& MountainsColorHigh;
  1154.         const FLinearColor& MountainsColorLowLow;
  1155.         const FLinearColor& MountainsColorLowHigh;
  1156.         const FLinearColor& PlainsColorHigh;
  1157.         const FLinearColor& RingOuterColor;
  1158.        
  1159.         ///////////////////////////////////////////////////////////////////////
  1160.         //////////////////////////// Init functions ///////////////////////////
  1161.         ///////////////////////////////////////////////////////////////////////
  1162.        
  1163.         void Function0_Init(const FVoxelWorldGeneratorInit& InitStruct)
  1164.         {
  1165.             // Init of 2D Simplex Noise
  1166.             _2D_Simplex_Noise_8750_Noise.SetSeed(Seed(1337));
  1167.             _2D_Simplex_Noise_8750_Noise.SetFrequency(0.02);
  1168.             _2D_Simplex_Noise_8750_Noise.SetInterp(FastNoise::Interp::Quintic);
  1169.            
  1170.             // Init of 2D Simplex Noise
  1171.             _2D_Simplex_Noise_8749_Noise.SetSeed(Seed(1000));
  1172.             _2D_Simplex_Noise_8749_Noise.SetFrequency(0.001);
  1173.             _2D_Simplex_Noise_8749_Noise.SetInterp(FastNoise::Interp::Quintic);
  1174.            
  1175.             // Init of 2D Perlin Noise
  1176.             _2D_Perlin_Noise_7431_Noise.SetSeed(Seed(1338));
  1177.             _2D_Perlin_Noise_7431_Noise.SetFrequency(0.1);
  1178.             _2D_Perlin_Noise_7431_Noise.SetInterp(FastNoise::Interp::Quintic);
  1179.            
  1180.             // Init of 2D Simplex Noise Fractal
  1181.             _2D_Simplex_Noise_Fractal_15562_Noise.SetSeed(Seed(1337));
  1182.             _2D_Simplex_Noise_Fractal_15562_Noise.SetFrequency(0.02);
  1183.             _2D_Simplex_Noise_Fractal_15562_Noise.SetInterp(FastNoise::Interp::Quintic);
  1184.             _2D_Simplex_Noise_Fractal_15562_Noise.SetFractalOctaves(8);
  1185.             _2D_Simplex_Noise_Fractal_15562_Noise.SetFractalLacunarity(2.0);
  1186.             _2D_Simplex_Noise_Fractal_15562_Noise.SetFractalGain(0.5);
  1187.             _2D_Simplex_Noise_Fractal_15562_Noise.SetFractalType(FastNoise::FractalType::FBM);
  1188.            
  1189.         }
  1190.        
  1191.         ///////////////////////////////////////////////////////////////////////
  1192.         ////////////////////////// Compute functions //////////////////////////
  1193.         ///////////////////////////////////////////////////////////////////////
  1194.        
  1195.         void Function0_X_Compute(FVoxelGraphOutputs& GraphOutputs, FVoxelCache& Cache, const FVoxelContext& Context) const
  1196.         {
  1197.             // X
  1198.             Cache.Variable_0 = Context.X;
  1199.            
  1200.             // X
  1201.             Cache.Variable_17 = Context.X;
  1202.            
  1203.         }
  1204.        
  1205.         void Function0_XY_Compute(FVoxelGraphOutputs& GraphOutputs, FVoxelCache& Cache, const FVoxelContext& Context) const
  1206.         {
  1207.             // Y
  1208.             Cache.Variable_1 = Context.Y;
  1209.            
  1210.             // Y
  1211.             Cache.Variable_23 = Context.Y;
  1212.            
  1213.             // ATAN2
  1214.             Cache.Variable_16 = FVoxelNodeFunctions::Atan2(Cache.Variable_23, Cache.Variable_17);
  1215.            
  1216.             // /
  1217.             Cache.Variable_19 = Cache.Variable_16 / ConstantsCache.Variable_18;
  1218.            
  1219.             // *
  1220.             Cache.Variable_22 = ConstantsCache.Variable_102 * Cache.Variable_19;
  1221.            
  1222.             // *
  1223.             Cache.Variable_51 = Cache.Variable_22 * ConstantsCache.Variable_52;
  1224.            
  1225.             // 2D Simplex Noise
  1226.             Cache.Variable_85 = _2D_Simplex_Noise_8749_Noise.GetSimplex(Cache.Variable_22, Cache.Variable_22);
  1227.            
  1228.             // *
  1229.             Cache.Variable_82 = Cache.Variable_85 * float(0.1f);
  1230.            
  1231.             // *
  1232.             Cache.Variable_32 = Cache.Variable_22 * ConstantsCache.Variable_33;
  1233.            
  1234.         }
  1235.        
  1236.         void Function0_XYZ_Compute(FVoxelGraphOutputs& GraphOutputs, FVoxelCache& Cache, const FVoxelContext& Context) const
  1237.         {
  1238.             // Z
  1239.             float Variable_8; // Z output 0
  1240.             Variable_8 = Context.Z;
  1241.            
  1242.             // Z
  1243.             float Variable_2; // Z output 0
  1244.             Variable_2 = Context.Z;
  1245.            
  1246.             // Vector Length
  1247.             float Variable_3; // Vector Length output 0
  1248.             Variable_3 = FVoxelNodeFunctions::VectorLength(Cache.Variable_0, Cache.Variable_1, Variable_2);
  1249.            
  1250.             // +
  1251.             float Variable_24; // + output 0
  1252.             Variable_24 = Variable_3 + float(0.001f);
  1253.            
  1254.             // /
  1255.             float Variable_9; // / output 0
  1256.             Variable_9 = Variable_8 / Variable_24;
  1257.            
  1258.             // ACOS
  1259.             float Variable_10; // ACOS output 0
  1260.             Variable_10 = FVoxelNodeFunctions::Acos(Variable_9);
  1261.            
  1262.             // /
  1263.             float Variable_6; // / output 0
  1264.             Variable_6 = Variable_10 / ConstantsCache.Variable_110;
  1265.            
  1266.             // *
  1267.             float Variable_21; // * output 0
  1268.             Variable_21 = ConstantsCache.Variable_102 * Variable_6;
  1269.            
  1270.             // *
  1271.             float Variable_50; // * output 0
  1272.             Variable_50 = Variable_21 * ConstantsCache.Variable_52;
  1273.            
  1274.             // 2D Simplex Noise
  1275.             float Variable_58; // 2D Simplex Noise output 0
  1276.             Variable_58 = _2D_Simplex_Noise_8750_Noise.GetSimplex(Variable_50, Cache.Variable_51);
  1277.            
  1278.             // Z
  1279.             float Variable_77; // Z output 0
  1280.             Variable_77 = Context.Z;
  1281.            
  1282.             // /
  1283.             float Variable_78; // / output 0
  1284.             Variable_78 = Variable_77 / Variable_24;
  1285.            
  1286.             // +
  1287.             float Variable_81; // + output 0
  1288.             Variable_81 = Variable_78 + Cache.Variable_82;
  1289.            
  1290.             // ACOS
  1291.             float Variable_79; // ACOS output 0
  1292.             Variable_79 = FVoxelNodeFunctions::Acos(Variable_81);
  1293.            
  1294.             // /
  1295.             float Variable_76; // / output 0
  1296.             Variable_76 = Variable_79 / ConstantsCache.Variable_68;
  1297.            
  1298.             // 1 - X
  1299.             float Variable_74; // 1 - X output 0
  1300.             Variable_74 = 1 - Variable_76;
  1301.            
  1302.             // Min (float)
  1303.             float Variable_73; // Min (float) output 0
  1304.             Variable_73 = FVoxelNodeFunctions::Min<float>(Variable_76, Variable_74);
  1305.            
  1306.             // /
  1307.             float Variable_75; // / output 0
  1308.             Variable_75 = Variable_73 / float(0.5f);
  1309.            
  1310.             // 1 - X
  1311.             float Variable_83; // 1 - X output 0
  1312.             Variable_83 = 1 - Variable_75;
  1313.            
  1314.             // *
  1315.             float Variable_84; // * output 0
  1316.             Variable_84 = Variable_83 * float(20.0f);
  1317.            
  1318.             // /
  1319.             float Variable_103; // / output 0
  1320.             Variable_103 = Variable_84 / ConstantsCache.Variable_104;
  1321.            
  1322.             // RiverCurve
  1323.             float Variable_67; // RiverCurve output 0
  1324.             Variable_67 = RiverMask.Eval(Variable_103);
  1325.            
  1326.             // Static Clamp: -1.0 <= X <= 1.0
  1327.             float Variable_99; // Static Clamp: -1.0 <= X <= 1.0 output 0
  1328.             Variable_99 = FMath::Clamp<float>(Variable_67, -1.000000, 1.000000);
  1329.            
  1330.             // Min (float)
  1331.             float Variable_86; // Min (float) output 0
  1332.             Variable_86 = FVoxelNodeFunctions::Min<float>(Variable_99, float(0.0f));
  1333.            
  1334.             // *
  1335.             float Variable_87; // * output 0
  1336.             Variable_87 = Variable_86 * float(-1.0f);
  1337.            
  1338.             // *
  1339.             float Variable_88; // * output 0
  1340.             Variable_88 = Variable_58 * Variable_87;
  1341.            
  1342.             // 1 - X
  1343.             float Variable_89; // 1 - X output 0
  1344.             Variable_89 = 1 - Variable_87;
  1345.            
  1346.             // -
  1347.             float Variable_90; // - output 0
  1348.             Variable_90 = Variable_88 - Variable_89;
  1349.            
  1350.             // BlendColors.Clamp
  1351.             float Variable_53; // BlendColors.Clamp output 0
  1352.             Variable_53 = FVoxelNodeFunctions::Clamp(Variable_90, float(0.0f), float(1.0f));
  1353.            
  1354.             // BlendColors.Lerp
  1355.             float Variable_128; // BlendColors.Lerp output 0
  1356.             Variable_128 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_61, ConstantsCache.Variable_54, Variable_53);
  1357.            
  1358.             // *
  1359.             float Variable_97; // * output 0
  1360.             Variable_97 = Variable_99 * float(10.0f);
  1361.            
  1362.             // BlendColors.Clamp
  1363.             float Variable_80; // BlendColors.Clamp output 0
  1364.             Variable_80 = FVoxelNodeFunctions::Clamp(Variable_97, float(0.0f), float(1.0f));
  1365.            
  1366.             // BlendColors.Lerp
  1367.             float Variable_136; // BlendColors.Lerp output 0
  1368.             Variable_136 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_92, ConstantsCache.Variable_69, Variable_80);
  1369.            
  1370.             // +
  1371.             float Variable_91; // + output 0
  1372.             Variable_91 = Variable_99 + float(0.3f);
  1373.            
  1374.             // BlendColors.Clamp
  1375.             float Variable_60; // BlendColors.Clamp output 0
  1376.             Variable_60 = FVoxelNodeFunctions::Clamp(Variable_91, float(0.0f), float(1.0f));
  1377.            
  1378.             // BlendColors.Lerp
  1379.             float Variable_132; // BlendColors.Lerp output 0
  1380.             Variable_132 = FVoxelNodeFunctions::Lerp(Variable_128, Variable_136, Variable_60);
  1381.            
  1382.             // *
  1383.             float Variable_31; // * output 0
  1384.             Variable_31 = Variable_21 * ConstantsCache.Variable_33;
  1385.            
  1386.             // 2D Perlin Noise
  1387.             float Variable_44; // 2D Perlin Noise output 0
  1388.             Variable_44 = _2D_Perlin_Noise_7431_Noise.GetPerlin(Variable_31, Cache.Variable_32);
  1389.            
  1390.             // BlendColors.Clamp
  1391.             float Variable_35; // BlendColors.Clamp output 0
  1392.             Variable_35 = FVoxelNodeFunctions::Clamp(Variable_44, float(0.0f), float(1.0f));
  1393.            
  1394.             // BlendColors.Lerp
  1395.             float Variable_120; // BlendColors.Lerp output 0
  1396.             Variable_120 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_40, ConstantsCache.Variable_46, Variable_35);
  1397.            
  1398.             // 2D Simplex Noise Fractal
  1399.             float Variable_30; // 2D Simplex Noise Fractal output 0
  1400.             Variable_30 = _2D_Simplex_Noise_Fractal_15562_Noise.GetSimplexFractal(Variable_31, Cache.Variable_32);
  1401.            
  1402.             // BlendColors.Clamp
  1403.             float Variable_20; // BlendColors.Clamp output 0
  1404.             Variable_20 = FVoxelNodeFunctions::Clamp(Variable_30, float(0.0f), float(1.0f));
  1405.            
  1406.             // BlendColors.Lerp
  1407.             float Variable_116; // BlendColors.Lerp output 0
  1408.             Variable_116 = FVoxelNodeFunctions::Lerp(Variable_120, ConstantsCache.Variable_36, Variable_20);
  1409.            
  1410.             // 1 - X
  1411.             float Variable_7; // 1 - X output 0
  1412.             Variable_7 = 1 - Variable_6;
  1413.            
  1414.             // Min (float)
  1415.             float Variable_5; // Min (float) output 0
  1416.             Variable_5 = FVoxelNodeFunctions::Min<float>(Variable_6, Variable_7);
  1417.            
  1418.             // -
  1419.             float Variable_11; // - output 0
  1420.             Variable_11 = Variable_5 - ConstantsCache.Variable_28;
  1421.            
  1422.             // /
  1423.             float Variable_27; // / output 0
  1424.             Variable_27 = Variable_11 / ConstantsCache.Variable_29;
  1425.            
  1426.             // 1 - X
  1427.             float Variable_26; // 1 - X output 0
  1428.             Variable_26 = 1 - Variable_27;
  1429.            
  1430.             // MountainsCurve
  1431.             float Variable_34; // MountainsCurve output 0
  1432.             Variable_34 = MoutainsMask.Eval(Variable_26);
  1433.            
  1434.             // Static Clamp: 0.0 <= X <= 1.0
  1435.             float Variable_98; // Static Clamp: 0.0 <= X <= 1.0 output 0
  1436.             Variable_98 = FMath::Clamp<float>(Variable_34, 0.000000, 1.000000);
  1437.            
  1438.             // *
  1439.             float Variable_59; // * output 0
  1440.             Variable_59 = Variable_98 * float(3.0f);
  1441.            
  1442.             // Max (float)
  1443.             float Variable_65; // Max (float) output 0
  1444.             Variable_65 = FVoxelNodeFunctions::Max<float>(Variable_90, float(0.0f));
  1445.            
  1446.             // -
  1447.             float Variable_66; // - output 0
  1448.             Variable_66 = Variable_59 - Variable_65;
  1449.            
  1450.             // BlendColors.Clamp
  1451.             float Variable_45; // BlendColors.Clamp output 0
  1452.             Variable_45 = FVoxelNodeFunctions::Clamp(Variable_66, float(0.0f), float(1.0f));
  1453.            
  1454.             // BlendColors.Lerp
  1455.             float Variable_124; // BlendColors.Lerp output 0
  1456.             Variable_124 = FVoxelNodeFunctions::Lerp(Variable_132, Variable_116, Variable_45);
  1457.            
  1458.             // Max (float)
  1459.             float Variable_12; // Max (float) output 0
  1460.             Variable_12 = FVoxelNodeFunctions::Max<float>(Variable_27, float(0.0f));
  1461.            
  1462.             // *
  1463.             float Variable_13; // * output 0
  1464.             Variable_13 = Variable_12 * ConstantsCache.Variable_15;
  1465.            
  1466.             // Min (float)
  1467.             float Variable_14; // Min (float) output 0
  1468.             Variable_14 = FVoxelNodeFunctions::Min<float>(Variable_13, float(1.0f));
  1469.            
  1470.             // -
  1471.             float Variable_111; // - output 0
  1472.             Variable_111 = ConstantsCache.Variable_107 - Variable_24;
  1473.            
  1474.             // Clamp
  1475.             float Variable_105; // Clamp output 0
  1476.             Variable_105 = FVoxelNodeFunctions::Clamp(Variable_111, float(0.0f), float(1.0f));
  1477.            
  1478.             // Min (float)
  1479.             float Variable_106; // Min (float) output 0
  1480.             Variable_106 = FVoxelNodeFunctions::Min<float>(Variable_14, Variable_105);
  1481.            
  1482.             // BlendColors.Clamp
  1483.             float Variable_96; // BlendColors.Clamp output 0
  1484.             Variable_96 = FVoxelNodeFunctions::Clamp(Variable_106, float(0.0f), float(1.0f));
  1485.            
  1486.             // BlendColors.Lerp
  1487.             float Variable_140; // BlendColors.Lerp output 0
  1488.             Variable_140 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_112, Variable_124, Variable_96);
  1489.            
  1490.             // BlendColors.Lerp
  1491.             float Variable_129; // BlendColors.Lerp output 0
  1492.             Variable_129 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_62, ConstantsCache.Variable_55, Variable_53);
  1493.            
  1494.             // BlendColors.Lerp
  1495.             float Variable_137; // BlendColors.Lerp output 0
  1496.             Variable_137 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_93, ConstantsCache.Variable_70, Variable_80);
  1497.            
  1498.             // BlendColors.Lerp
  1499.             float Variable_133; // BlendColors.Lerp output 0
  1500.             Variable_133 = FVoxelNodeFunctions::Lerp(Variable_129, Variable_137, Variable_60);
  1501.            
  1502.             // BlendColors.Lerp
  1503.             float Variable_121; // BlendColors.Lerp output 0
  1504.             Variable_121 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_41, ConstantsCache.Variable_47, Variable_35);
  1505.            
  1506.             // BlendColors.Lerp
  1507.             float Variable_117; // BlendColors.Lerp output 0
  1508.             Variable_117 = FVoxelNodeFunctions::Lerp(Variable_121, ConstantsCache.Variable_37, Variable_20);
  1509.            
  1510.             // BlendColors.Lerp
  1511.             float Variable_125; // BlendColors.Lerp output 0
  1512.             Variable_125 = FVoxelNodeFunctions::Lerp(Variable_133, Variable_117, Variable_45);
  1513.            
  1514.             // BlendColors.Lerp
  1515.             float Variable_141; // BlendColors.Lerp output 0
  1516.             Variable_141 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_113, Variable_125, Variable_96);
  1517.            
  1518.             // BlendColors.Lerp
  1519.             float Variable_130; // BlendColors.Lerp output 0
  1520.             Variable_130 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_63, ConstantsCache.Variable_56, Variable_53);
  1521.            
  1522.             // BlendColors.Lerp
  1523.             float Variable_138; // BlendColors.Lerp output 0
  1524.             Variable_138 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_94, ConstantsCache.Variable_71, Variable_80);
  1525.            
  1526.             // BlendColors.Lerp
  1527.             float Variable_134; // BlendColors.Lerp output 0
  1528.             Variable_134 = FVoxelNodeFunctions::Lerp(Variable_130, Variable_138, Variable_60);
  1529.            
  1530.             // BlendColors.Lerp
  1531.             float Variable_122; // BlendColors.Lerp output 0
  1532.             Variable_122 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_42, ConstantsCache.Variable_48, Variable_35);
  1533.            
  1534.             // BlendColors.Lerp
  1535.             float Variable_118; // BlendColors.Lerp output 0
  1536.             Variable_118 = FVoxelNodeFunctions::Lerp(Variable_122, ConstantsCache.Variable_38, Variable_20);
  1537.            
  1538.             // BlendColors.Lerp
  1539.             float Variable_126; // BlendColors.Lerp output 0
  1540.             Variable_126 = FVoxelNodeFunctions::Lerp(Variable_134, Variable_118, Variable_45);
  1541.            
  1542.             // BlendColors.Lerp
  1543.             float Variable_142; // BlendColors.Lerp output 0
  1544.             Variable_142 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_114, Variable_126, Variable_96);
  1545.            
  1546.             // BlendColors.Lerp
  1547.             float Variable_131; // BlendColors.Lerp output 0
  1548.             Variable_131 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_64, ConstantsCache.Variable_57, Variable_53);
  1549.            
  1550.             // BlendColors.Lerp
  1551.             float Variable_139; // BlendColors.Lerp output 0
  1552.             Variable_139 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_95, ConstantsCache.Variable_72, Variable_80);
  1553.            
  1554.             // BlendColors.Lerp
  1555.             float Variable_135; // BlendColors.Lerp output 0
  1556.             Variable_135 = FVoxelNodeFunctions::Lerp(Variable_131, Variable_139, Variable_60);
  1557.            
  1558.             // BlendColors.Lerp
  1559.             float Variable_123; // BlendColors.Lerp output 0
  1560.             Variable_123 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_43, ConstantsCache.Variable_49, Variable_35);
  1561.            
  1562.             // BlendColors.Lerp
  1563.             float Variable_119; // BlendColors.Lerp output 0
  1564.             Variable_119 = FVoxelNodeFunctions::Lerp(Variable_123, ConstantsCache.Variable_39, Variable_20);
  1565.            
  1566.             // BlendColors.Lerp
  1567.             float Variable_127; // BlendColors.Lerp output 0
  1568.             Variable_127 = FVoxelNodeFunctions::Lerp(Variable_135, Variable_119, Variable_45);
  1569.            
  1570.             // BlendColors.Lerp
  1571.             float Variable_143; // BlendColors.Lerp output 0
  1572.             Variable_143 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_115, Variable_127, Variable_96);
  1573.            
  1574.             GraphOutputs.Material.SetColor(FLinearColor(Variable_140, Variable_141, Variable_142, Variable_143));
  1575.         }
  1576.        
  1577.         void Function0_Compute(FVoxelGraphOutputs& GraphOutputs, const FVoxelContext& Context) const
  1578.         {
  1579.             // Z
  1580.             float Variable_8; // Z output 0
  1581.             Variable_8 = Context.Z;
  1582.            
  1583.             // X
  1584.             float Variable_0; // X output 0
  1585.             Variable_0 = Context.X;
  1586.            
  1587.             // Y
  1588.             float Variable_1; // Y output 0
  1589.             Variable_1 = Context.Y;
  1590.            
  1591.             // Z
  1592.             float Variable_2; // Z output 0
  1593.             Variable_2 = Context.Z;
  1594.            
  1595.             // Vector Length
  1596.             float Variable_3; // Vector Length output 0
  1597.             Variable_3 = FVoxelNodeFunctions::VectorLength(Variable_0, Variable_1, Variable_2);
  1598.            
  1599.             // +
  1600.             float Variable_24; // + output 0
  1601.             Variable_24 = Variable_3 + float(0.001f);
  1602.            
  1603.             // /
  1604.             float Variable_9; // / output 0
  1605.             Variable_9 = Variable_8 / Variable_24;
  1606.            
  1607.             // ACOS
  1608.             float Variable_10; // ACOS output 0
  1609.             Variable_10 = FVoxelNodeFunctions::Acos(Variable_9);
  1610.            
  1611.             // /
  1612.             float Variable_6; // / output 0
  1613.             Variable_6 = Variable_10 / ConstantsCache.Variable_110;
  1614.            
  1615.             // *
  1616.             float Variable_21; // * output 0
  1617.             Variable_21 = ConstantsCache.Variable_102 * Variable_6;
  1618.            
  1619.             // *
  1620.             float Variable_50; // * output 0
  1621.             Variable_50 = Variable_21 * ConstantsCache.Variable_52;
  1622.            
  1623.             // Y
  1624.             float Variable_23; // Y output 0
  1625.             Variable_23 = Context.Y;
  1626.            
  1627.             // X
  1628.             float Variable_17; // X output 0
  1629.             Variable_17 = Context.X;
  1630.            
  1631.             // ATAN2
  1632.             float Variable_16; // ATAN2 output 0
  1633.             Variable_16 = FVoxelNodeFunctions::Atan2(Variable_23, Variable_17);
  1634.            
  1635.             // /
  1636.             float Variable_19; // / output 0
  1637.             Variable_19 = Variable_16 / ConstantsCache.Variable_18;
  1638.            
  1639.             // *
  1640.             float Variable_22; // * output 0
  1641.             Variable_22 = ConstantsCache.Variable_102 * Variable_19;
  1642.            
  1643.             // *
  1644.             float Variable_51; // * output 0
  1645.             Variable_51 = Variable_22 * ConstantsCache.Variable_52;
  1646.            
  1647.             // 2D Simplex Noise
  1648.             float Variable_58; // 2D Simplex Noise output 0
  1649.             Variable_58 = _2D_Simplex_Noise_8750_Noise.GetSimplex(Variable_50, Variable_51);
  1650.            
  1651.             // Z
  1652.             float Variable_77; // Z output 0
  1653.             Variable_77 = Context.Z;
  1654.            
  1655.             // /
  1656.             float Variable_78; // / output 0
  1657.             Variable_78 = Variable_77 / Variable_24;
  1658.            
  1659.             // 2D Simplex Noise
  1660.             float Variable_85; // 2D Simplex Noise output 0
  1661.             Variable_85 = _2D_Simplex_Noise_8749_Noise.GetSimplex(Variable_22, Variable_22);
  1662.            
  1663.             // *
  1664.             float Variable_82; // * output 0
  1665.             Variable_82 = Variable_85 * float(0.1f);
  1666.            
  1667.             // +
  1668.             float Variable_81; // + output 0
  1669.             Variable_81 = Variable_78 + Variable_82;
  1670.            
  1671.             // ACOS
  1672.             float Variable_79; // ACOS output 0
  1673.             Variable_79 = FVoxelNodeFunctions::Acos(Variable_81);
  1674.            
  1675.             // /
  1676.             float Variable_76; // / output 0
  1677.             Variable_76 = Variable_79 / ConstantsCache.Variable_68;
  1678.            
  1679.             // 1 - X
  1680.             float Variable_74; // 1 - X output 0
  1681.             Variable_74 = 1 - Variable_76;
  1682.            
  1683.             // Min (float)
  1684.             float Variable_73; // Min (float) output 0
  1685.             Variable_73 = FVoxelNodeFunctions::Min<float>(Variable_76, Variable_74);
  1686.            
  1687.             // /
  1688.             float Variable_75; // / output 0
  1689.             Variable_75 = Variable_73 / float(0.5f);
  1690.            
  1691.             // 1 - X
  1692.             float Variable_83; // 1 - X output 0
  1693.             Variable_83 = 1 - Variable_75;
  1694.            
  1695.             // *
  1696.             float Variable_84; // * output 0
  1697.             Variable_84 = Variable_83 * float(20.0f);
  1698.            
  1699.             // /
  1700.             float Variable_103; // / output 0
  1701.             Variable_103 = Variable_84 / ConstantsCache.Variable_104;
  1702.            
  1703.             // RiverCurve
  1704.             float Variable_67; // RiverCurve output 0
  1705.             Variable_67 = RiverMask.Eval(Variable_103);
  1706.            
  1707.             // Static Clamp: -1.0 <= X <= 1.0
  1708.             float Variable_99; // Static Clamp: -1.0 <= X <= 1.0 output 0
  1709.             Variable_99 = FMath::Clamp<float>(Variable_67, -1.000000, 1.000000);
  1710.            
  1711.             // Min (float)
  1712.             float Variable_86; // Min (float) output 0
  1713.             Variable_86 = FVoxelNodeFunctions::Min<float>(Variable_99, float(0.0f));
  1714.            
  1715.             // *
  1716.             float Variable_87; // * output 0
  1717.             Variable_87 = Variable_86 * float(-1.0f);
  1718.            
  1719.             // *
  1720.             float Variable_88; // * output 0
  1721.             Variable_88 = Variable_58 * Variable_87;
  1722.            
  1723.             // 1 - X
  1724.             float Variable_89; // 1 - X output 0
  1725.             Variable_89 = 1 - Variable_87;
  1726.            
  1727.             // -
  1728.             float Variable_90; // - output 0
  1729.             Variable_90 = Variable_88 - Variable_89;
  1730.            
  1731.             // BlendColors.Clamp
  1732.             float Variable_53; // BlendColors.Clamp output 0
  1733.             Variable_53 = FVoxelNodeFunctions::Clamp(Variable_90, float(0.0f), float(1.0f));
  1734.            
  1735.             // BlendColors.Lerp
  1736.             float Variable_128; // BlendColors.Lerp output 0
  1737.             Variable_128 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_61, ConstantsCache.Variable_54, Variable_53);
  1738.            
  1739.             // *
  1740.             float Variable_97; // * output 0
  1741.             Variable_97 = Variable_99 * float(10.0f);
  1742.            
  1743.             // BlendColors.Clamp
  1744.             float Variable_80; // BlendColors.Clamp output 0
  1745.             Variable_80 = FVoxelNodeFunctions::Clamp(Variable_97, float(0.0f), float(1.0f));
  1746.            
  1747.             // BlendColors.Lerp
  1748.             float Variable_136; // BlendColors.Lerp output 0
  1749.             Variable_136 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_92, ConstantsCache.Variable_69, Variable_80);
  1750.            
  1751.             // +
  1752.             float Variable_91; // + output 0
  1753.             Variable_91 = Variable_99 + float(0.3f);
  1754.            
  1755.             // BlendColors.Clamp
  1756.             float Variable_60; // BlendColors.Clamp output 0
  1757.             Variable_60 = FVoxelNodeFunctions::Clamp(Variable_91, float(0.0f), float(1.0f));
  1758.            
  1759.             // BlendColors.Lerp
  1760.             float Variable_132; // BlendColors.Lerp output 0
  1761.             Variable_132 = FVoxelNodeFunctions::Lerp(Variable_128, Variable_136, Variable_60);
  1762.            
  1763.             // *
  1764.             float Variable_31; // * output 0
  1765.             Variable_31 = Variable_21 * ConstantsCache.Variable_33;
  1766.            
  1767.             // *
  1768.             float Variable_32; // * output 0
  1769.             Variable_32 = Variable_22 * ConstantsCache.Variable_33;
  1770.            
  1771.             // 2D Perlin Noise
  1772.             float Variable_44; // 2D Perlin Noise output 0
  1773.             Variable_44 = _2D_Perlin_Noise_7431_Noise.GetPerlin(Variable_31, Variable_32);
  1774.            
  1775.             // BlendColors.Clamp
  1776.             float Variable_35; // BlendColors.Clamp output 0
  1777.             Variable_35 = FVoxelNodeFunctions::Clamp(Variable_44, float(0.0f), float(1.0f));
  1778.            
  1779.             // BlendColors.Lerp
  1780.             float Variable_120; // BlendColors.Lerp output 0
  1781.             Variable_120 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_40, ConstantsCache.Variable_46, Variable_35);
  1782.            
  1783.             // 2D Simplex Noise Fractal
  1784.             float Variable_30; // 2D Simplex Noise Fractal output 0
  1785.             Variable_30 = _2D_Simplex_Noise_Fractal_15562_Noise.GetSimplexFractal(Variable_31, Variable_32);
  1786.            
  1787.             // BlendColors.Clamp
  1788.             float Variable_20; // BlendColors.Clamp output 0
  1789.             Variable_20 = FVoxelNodeFunctions::Clamp(Variable_30, float(0.0f), float(1.0f));
  1790.            
  1791.             // BlendColors.Lerp
  1792.             float Variable_116; // BlendColors.Lerp output 0
  1793.             Variable_116 = FVoxelNodeFunctions::Lerp(Variable_120, ConstantsCache.Variable_36, Variable_20);
  1794.            
  1795.             // 1 - X
  1796.             float Variable_7; // 1 - X output 0
  1797.             Variable_7 = 1 - Variable_6;
  1798.            
  1799.             // Min (float)
  1800.             float Variable_5; // Min (float) output 0
  1801.             Variable_5 = FVoxelNodeFunctions::Min<float>(Variable_6, Variable_7);
  1802.            
  1803.             // -
  1804.             float Variable_11; // - output 0
  1805.             Variable_11 = Variable_5 - ConstantsCache.Variable_28;
  1806.            
  1807.             // /
  1808.             float Variable_27; // / output 0
  1809.             Variable_27 = Variable_11 / ConstantsCache.Variable_29;
  1810.            
  1811.             // 1 - X
  1812.             float Variable_26; // 1 - X output 0
  1813.             Variable_26 = 1 - Variable_27;
  1814.            
  1815.             // MountainsCurve
  1816.             float Variable_34; // MountainsCurve output 0
  1817.             Variable_34 = MoutainsMask.Eval(Variable_26);
  1818.            
  1819.             // Static Clamp: 0.0 <= X <= 1.0
  1820.             float Variable_98; // Static Clamp: 0.0 <= X <= 1.0 output 0
  1821.             Variable_98 = FMath::Clamp<float>(Variable_34, 0.000000, 1.000000);
  1822.            
  1823.             // *
  1824.             float Variable_59; // * output 0
  1825.             Variable_59 = Variable_98 * float(3.0f);
  1826.            
  1827.             // Max (float)
  1828.             float Variable_65; // Max (float) output 0
  1829.             Variable_65 = FVoxelNodeFunctions::Max<float>(Variable_90, float(0.0f));
  1830.            
  1831.             // -
  1832.             float Variable_66; // - output 0
  1833.             Variable_66 = Variable_59 - Variable_65;
  1834.            
  1835.             // BlendColors.Clamp
  1836.             float Variable_45; // BlendColors.Clamp output 0
  1837.             Variable_45 = FVoxelNodeFunctions::Clamp(Variable_66, float(0.0f), float(1.0f));
  1838.            
  1839.             // BlendColors.Lerp
  1840.             float Variable_124; // BlendColors.Lerp output 0
  1841.             Variable_124 = FVoxelNodeFunctions::Lerp(Variable_132, Variable_116, Variable_45);
  1842.            
  1843.             // Max (float)
  1844.             float Variable_12; // Max (float) output 0
  1845.             Variable_12 = FVoxelNodeFunctions::Max<float>(Variable_27, float(0.0f));
  1846.            
  1847.             // *
  1848.             float Variable_13; // * output 0
  1849.             Variable_13 = Variable_12 * ConstantsCache.Variable_15;
  1850.            
  1851.             // Min (float)
  1852.             float Variable_14; // Min (float) output 0
  1853.             Variable_14 = FVoxelNodeFunctions::Min<float>(Variable_13, float(1.0f));
  1854.            
  1855.             // -
  1856.             float Variable_111; // - output 0
  1857.             Variable_111 = ConstantsCache.Variable_107 - Variable_24;
  1858.            
  1859.             // Clamp
  1860.             float Variable_105; // Clamp output 0
  1861.             Variable_105 = FVoxelNodeFunctions::Clamp(Variable_111, float(0.0f), float(1.0f));
  1862.            
  1863.             // Min (float)
  1864.             float Variable_106; // Min (float) output 0
  1865.             Variable_106 = FVoxelNodeFunctions::Min<float>(Variable_14, Variable_105);
  1866.            
  1867.             // BlendColors.Clamp
  1868.             float Variable_96; // BlendColors.Clamp output 0
  1869.             Variable_96 = FVoxelNodeFunctions::Clamp(Variable_106, float(0.0f), float(1.0f));
  1870.            
  1871.             // BlendColors.Lerp
  1872.             float Variable_140; // BlendColors.Lerp output 0
  1873.             Variable_140 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_112, Variable_124, Variable_96);
  1874.            
  1875.             // BlendColors.Lerp
  1876.             float Variable_129; // BlendColors.Lerp output 0
  1877.             Variable_129 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_62, ConstantsCache.Variable_55, Variable_53);
  1878.            
  1879.             // BlendColors.Lerp
  1880.             float Variable_137; // BlendColors.Lerp output 0
  1881.             Variable_137 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_93, ConstantsCache.Variable_70, Variable_80);
  1882.            
  1883.             // BlendColors.Lerp
  1884.             float Variable_133; // BlendColors.Lerp output 0
  1885.             Variable_133 = FVoxelNodeFunctions::Lerp(Variable_129, Variable_137, Variable_60);
  1886.            
  1887.             // BlendColors.Lerp
  1888.             float Variable_121; // BlendColors.Lerp output 0
  1889.             Variable_121 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_41, ConstantsCache.Variable_47, Variable_35);
  1890.            
  1891.             // BlendColors.Lerp
  1892.             float Variable_117; // BlendColors.Lerp output 0
  1893.             Variable_117 = FVoxelNodeFunctions::Lerp(Variable_121, ConstantsCache.Variable_37, Variable_20);
  1894.            
  1895.             // BlendColors.Lerp
  1896.             float Variable_125; // BlendColors.Lerp output 0
  1897.             Variable_125 = FVoxelNodeFunctions::Lerp(Variable_133, Variable_117, Variable_45);
  1898.            
  1899.             // BlendColors.Lerp
  1900.             float Variable_141; // BlendColors.Lerp output 0
  1901.             Variable_141 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_113, Variable_125, Variable_96);
  1902.            
  1903.             // BlendColors.Lerp
  1904.             float Variable_130; // BlendColors.Lerp output 0
  1905.             Variable_130 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_63, ConstantsCache.Variable_56, Variable_53);
  1906.            
  1907.             // BlendColors.Lerp
  1908.             float Variable_138; // BlendColors.Lerp output 0
  1909.             Variable_138 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_94, ConstantsCache.Variable_71, Variable_80);
  1910.            
  1911.             // BlendColors.Lerp
  1912.             float Variable_134; // BlendColors.Lerp output 0
  1913.             Variable_134 = FVoxelNodeFunctions::Lerp(Variable_130, Variable_138, Variable_60);
  1914.            
  1915.             // BlendColors.Lerp
  1916.             float Variable_122; // BlendColors.Lerp output 0
  1917.             Variable_122 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_42, ConstantsCache.Variable_48, Variable_35);
  1918.            
  1919.             // BlendColors.Lerp
  1920.             float Variable_118; // BlendColors.Lerp output 0
  1921.             Variable_118 = FVoxelNodeFunctions::Lerp(Variable_122, ConstantsCache.Variable_38, Variable_20);
  1922.            
  1923.             // BlendColors.Lerp
  1924.             float Variable_126; // BlendColors.Lerp output 0
  1925.             Variable_126 = FVoxelNodeFunctions::Lerp(Variable_134, Variable_118, Variable_45);
  1926.            
  1927.             // BlendColors.Lerp
  1928.             float Variable_142; // BlendColors.Lerp output 0
  1929.             Variable_142 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_114, Variable_126, Variable_96);
  1930.            
  1931.             // BlendColors.Lerp
  1932.             float Variable_131; // BlendColors.Lerp output 0
  1933.             Variable_131 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_64, ConstantsCache.Variable_57, Variable_53);
  1934.            
  1935.             // BlendColors.Lerp
  1936.             float Variable_139; // BlendColors.Lerp output 0
  1937.             Variable_139 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_95, ConstantsCache.Variable_72, Variable_80);
  1938.            
  1939.             // BlendColors.Lerp
  1940.             float Variable_135; // BlendColors.Lerp output 0
  1941.             Variable_135 = FVoxelNodeFunctions::Lerp(Variable_131, Variable_139, Variable_60);
  1942.            
  1943.             // BlendColors.Lerp
  1944.             float Variable_123; // BlendColors.Lerp output 0
  1945.             Variable_123 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_43, ConstantsCache.Variable_49, Variable_35);
  1946.            
  1947.             // BlendColors.Lerp
  1948.             float Variable_119; // BlendColors.Lerp output 0
  1949.             Variable_119 = FVoxelNodeFunctions::Lerp(Variable_123, ConstantsCache.Variable_39, Variable_20);
  1950.            
  1951.             // BlendColors.Lerp
  1952.             float Variable_127; // BlendColors.Lerp output 0
  1953.             Variable_127 = FVoxelNodeFunctions::Lerp(Variable_135, Variable_119, Variable_45);
  1954.            
  1955.             // BlendColors.Lerp
  1956.             float Variable_143; // BlendColors.Lerp output 0
  1957.             Variable_143 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_115, Variable_127, Variable_96);
  1958.            
  1959.             GraphOutputs.Material.SetColor(FLinearColor(Variable_140, Variable_141, Variable_142, Variable_143));
  1960.         }
  1961.        
  1962.     };
  1963.     struct FLocalComputeStruct_LocalValueMaterial_LOD0
  1964.     {
  1965.         struct FVoxelGraphOutputs
  1966.         {
  1967.             float& Value;
  1968.             FVoxelMaterial& Material;
  1969.         };
  1970.         struct FVoxelConstantsCache
  1971.         {
  1972.             float Variable_76; // PlainsNoiseFrequency = 0.2 output 0
  1973.             float Variable_5; // Radius = 7000.0 output 0
  1974.             float Variable_22; // RingEdgesHardness = 10.0 output 0
  1975.             float Variable_25; // PI.3.141593 output 0
  1976.             float Variable_32; // Width in Degrees = 50.0 output 0
  1977.             float Variable_86; // PlainsColorLow output 0
  1978.             float Variable_87; // PlainsColorLow output 1
  1979.             float Variable_88; // PlainsColorLow output 2
  1980.             float Variable_89; // PlainsColorLow output 3
  1981.             float Variable_94; // RiverDepth = 100.0 output 0
  1982.             float Variable_41; // BaseHeight = 1000.0 output 0
  1983.             float Variable_44; // BaseNoiseHeight = 250.0 output 0
  1984.             float Variable_47; // BaseNoiseFrquency = 0.005 output 0
  1985.             float Variable_50; // MountainsNoiseHeight = 500.0 output 0
  1986.             float Variable_53; // MountainsNoiseFrequency = 0.2 output 0
  1987.             float Variable_56; // MountainsColorHigh output 0
  1988.             float Variable_57; // MountainsColorHigh output 1
  1989.             float Variable_58; // MountainsColorHigh output 2
  1990.             float Variable_59; // MountainsColorHigh output 3
  1991.             float Variable_60; // MountainsColorLowLow output 0
  1992.             float Variable_61; // MountainsColorLowLow output 1
  1993.             float Variable_62; // MountainsColorLowLow output 2
  1994.             float Variable_63; // MountainsColorLowLow output 3
  1995.             float Variable_67; // MountainsColorLowHigh output 0
  1996.             float Variable_68; // MountainsColorLowHigh output 1
  1997.             float Variable_69; // MountainsColorLowHigh output 2
  1998.             float Variable_70; // MountainsColorLowHigh output 3
  1999.             float Variable_73; // PlainsNoiseHeight = 250.0 output 0
  2000.             float Variable_96; // RiverColor output 0
  2001.             float Variable_97; // RiverColor output 1
  2002.             float Variable_98; // RiverColor output 2
  2003.             float Variable_99; // RiverColor output 3
  2004.             float Variable_79; // PlainsColorHigh output 0
  2005.             float Variable_80; // PlainsColorHigh output 1
  2006.             float Variable_81; // PlainsColorHigh output 2
  2007.             float Variable_82; // PlainsColorHigh output 3
  2008.             float Variable_143; // RingOuterColor output 0
  2009.             float Variable_144; // RingOuterColor output 1
  2010.             float Variable_145; // RingOuterColor output 2
  2011.             float Variable_146; // RingOuterColor output 3
  2012.             float Variable_95; // PI.3.141593 output 0
  2013.             float Variable_135; // RiverWidth = 1.0 output 0
  2014.             float Variable_120; // BeachColor output 0
  2015.             float Variable_121; // BeachColor output 1
  2016.             float Variable_122; // BeachColor output 2
  2017.             float Variable_123; // BeachColor output 3
  2018.             float Variable_130; // Scale = 10.0 output 0
  2019.             float Variable_141; // PI.3.141593 output 0
  2020.             float Variable_139; // Thickness = 500.0 output 0
  2021.             float Variable_38; // / output 0
  2022.             float Variable_131; // * output 0
  2023.             float Variable_140; // * output 0
  2024.             float Variable_132; // / output 0
  2025.             float Variable_6; // + output 0
  2026.             float Variable_37; // - output 0
  2027.             float Variable_138; // + output 0
  2028.         };
  2029.         struct FVoxelCache
  2030.         {
  2031.             float Variable_0; // X output 0
  2032.             float Variable_24; // X output 0
  2033.             float Variable_1; // Y output 0
  2034.             float Variable_30; // Y output 0
  2035.             float Variable_23; // ATAN2 output 0
  2036.             float Variable_26; // / output 0
  2037.             float Variable_29; // * output 0
  2038.             float Variable_46; // * output 0
  2039.             float Variable_52; // * output 0
  2040.             float Variable_75; // * output 0
  2041.             float Variable_112; // 2D Simplex Noise output 0
  2042.             float Variable_109; // * output 0
  2043.         };
  2044.        
  2045.         FLocalComputeStruct_LocalValueMaterial_LOD0(const float& InScale, const float& InPlainsNoiseHeight, const float& InRingEdgesHardness, const float& InWidth_in_Degrees, const float& InRiverDepth, const float& InThickness, const float& InBaseHeight, const float& InBaseNoiseHeight, const float& InBaseNoiseFrquency, const float& InMountainsNoiseHeight, const float& InRadius, const float& InRiverWidth, const float& InPlainsNoiseFrequency, const float& InMountainsNoiseFrequency, const FRichCurve& InRingShape, const FRichCurve& InMoutainsMask, const FRichCurve& InRiverMask, const FRichCurve& InPlainsNoiseStrength, const FLinearColor& InPlainsColorLow, const FLinearColor& InRiverColor, const FLinearColor& InBeachColor, const FLinearColor& InMountainsColorHigh, const FLinearColor& InMountainsColorLowLow, const FLinearColor& InMountainsColorLowHigh, const FLinearColor& InPlainsColorHigh, const FLinearColor& InRingOuterColor)
  2046.             : Scale(InScale)
  2047.             , PlainsNoiseHeight(InPlainsNoiseHeight)
  2048.             , RingEdgesHardness(InRingEdgesHardness)
  2049.             , Width_in_Degrees(InWidth_in_Degrees)
  2050.             , RiverDepth(InRiverDepth)
  2051.             , Thickness(InThickness)
  2052.             , BaseHeight(InBaseHeight)
  2053.             , BaseNoiseHeight(InBaseNoiseHeight)
  2054.             , BaseNoiseFrquency(InBaseNoiseFrquency)
  2055.             , MountainsNoiseHeight(InMountainsNoiseHeight)
  2056.             , Radius(InRadius)
  2057.             , RiverWidth(InRiverWidth)
  2058.             , PlainsNoiseFrequency(InPlainsNoiseFrequency)
  2059.             , MountainsNoiseFrequency(InMountainsNoiseFrequency)
  2060.             , RingShape(InRingShape)
  2061.             , MoutainsMask(InMoutainsMask)
  2062.             , RiverMask(InRiverMask)
  2063.             , PlainsNoiseStrength(InPlainsNoiseStrength)
  2064.             , PlainsColorLow(InPlainsColorLow)
  2065.             , RiverColor(InRiverColor)
  2066.             , BeachColor(InBeachColor)
  2067.             , MountainsColorHigh(InMountainsColorHigh)
  2068.             , MountainsColorLowLow(InMountainsColorLowLow)
  2069.             , MountainsColorLowHigh(InMountainsColorLowHigh)
  2070.             , PlainsColorHigh(InPlainsColorHigh)
  2071.             , RingOuterColor(InRingOuterColor)
  2072.         {
  2073.         }
  2074.        
  2075.         void Init(const FVoxelWorldGeneratorInit& InitStruct)
  2076.         {
  2077.             FVoxelCache Cache;
  2078.            
  2079.             {
  2080.             }
  2081.            
  2082.             Function0_Init(InitStruct);
  2083.            
  2084.             {
  2085.                 // PlainsNoiseFrequency = 0.2
  2086.                 ConstantsCache.Variable_76 = PlainsNoiseFrequency;
  2087.                
  2088.                 // Radius = 7000.0
  2089.                 ConstantsCache.Variable_5 = Radius;
  2090.                
  2091.                 // RingEdgesHardness = 10.0
  2092.                 ConstantsCache.Variable_22 = RingEdgesHardness;
  2093.                
  2094.                 // PI.3.141593
  2095.                 ConstantsCache.Variable_25 = 3.141593;
  2096.                
  2097.                 // Width in Degrees = 50.0
  2098.                 ConstantsCache.Variable_32 = Width_in_Degrees;
  2099.                
  2100.                 // PlainsColorLow
  2101.                 ConstantsCache.Variable_86 = PlainsColorLow.R;
  2102.                 ConstantsCache.Variable_87 = PlainsColorLow.G;
  2103.                 ConstantsCache.Variable_88 = PlainsColorLow.B;
  2104.                 ConstantsCache.Variable_89 = PlainsColorLow.A;
  2105.                
  2106.                 // RiverDepth = 100.0
  2107.                 ConstantsCache.Variable_94 = RiverDepth;
  2108.                
  2109.                 // BaseHeight = 1000.0
  2110.                 ConstantsCache.Variable_41 = BaseHeight;
  2111.                
  2112.                 // BaseNoiseHeight = 250.0
  2113.                 ConstantsCache.Variable_44 = BaseNoiseHeight;
  2114.                
  2115.                 // BaseNoiseFrquency = 0.005
  2116.                 ConstantsCache.Variable_47 = BaseNoiseFrquency;
  2117.                
  2118.                 // MountainsNoiseHeight = 500.0
  2119.                 ConstantsCache.Variable_50 = MountainsNoiseHeight;
  2120.                
  2121.                 // MountainsNoiseFrequency = 0.2
  2122.                 ConstantsCache.Variable_53 = MountainsNoiseFrequency;
  2123.                
  2124.                 // MountainsColorHigh
  2125.                 ConstantsCache.Variable_56 = MountainsColorHigh.R;
  2126.                 ConstantsCache.Variable_57 = MountainsColorHigh.G;
  2127.                 ConstantsCache.Variable_58 = MountainsColorHigh.B;
  2128.                 ConstantsCache.Variable_59 = MountainsColorHigh.A;
  2129.                
  2130.                 // MountainsColorLowLow
  2131.                 ConstantsCache.Variable_60 = MountainsColorLowLow.R;
  2132.                 ConstantsCache.Variable_61 = MountainsColorLowLow.G;
  2133.                 ConstantsCache.Variable_62 = MountainsColorLowLow.B;
  2134.                 ConstantsCache.Variable_63 = MountainsColorLowLow.A;
  2135.                
  2136.                 // MountainsColorLowHigh
  2137.                 ConstantsCache.Variable_67 = MountainsColorLowHigh.R;
  2138.                 ConstantsCache.Variable_68 = MountainsColorLowHigh.G;
  2139.                 ConstantsCache.Variable_69 = MountainsColorLowHigh.B;
  2140.                 ConstantsCache.Variable_70 = MountainsColorLowHigh.A;
  2141.                
  2142.                 // PlainsNoiseHeight = 250.0
  2143.                 ConstantsCache.Variable_73 = PlainsNoiseHeight;
  2144.                
  2145.                 // RiverColor
  2146.                 ConstantsCache.Variable_96 = RiverColor.R;
  2147.                 ConstantsCache.Variable_97 = RiverColor.G;
  2148.                 ConstantsCache.Variable_98 = RiverColor.B;
  2149.                 ConstantsCache.Variable_99 = RiverColor.A;
  2150.                
  2151.                 // PlainsColorHigh
  2152.                 ConstantsCache.Variable_79 = PlainsColorHigh.R;
  2153.                 ConstantsCache.Variable_80 = PlainsColorHigh.G;
  2154.                 ConstantsCache.Variable_81 = PlainsColorHigh.B;
  2155.                 ConstantsCache.Variable_82 = PlainsColorHigh.A;
  2156.                
  2157.                 // RingOuterColor
  2158.                 ConstantsCache.Variable_143 = RingOuterColor.R;
  2159.                 ConstantsCache.Variable_144 = RingOuterColor.G;
  2160.                 ConstantsCache.Variable_145 = RingOuterColor.B;
  2161.                 ConstantsCache.Variable_146 = RingOuterColor.A;
  2162.                
  2163.                 // PI.3.141593
  2164.                 ConstantsCache.Variable_95 = 3.141593;
  2165.                
  2166.                 // RiverWidth = 1.0
  2167.                 ConstantsCache.Variable_135 = RiverWidth;
  2168.                
  2169.                 // BeachColor
  2170.                 ConstantsCache.Variable_120 = BeachColor.R;
  2171.                 ConstantsCache.Variable_121 = BeachColor.G;
  2172.                 ConstantsCache.Variable_122 = BeachColor.B;
  2173.                 ConstantsCache.Variable_123 = BeachColor.A;
  2174.                
  2175.                 // Scale = 10.0
  2176.                 ConstantsCache.Variable_130 = Scale;
  2177.                
  2178.                 // PI.3.141593
  2179.                 ConstantsCache.Variable_141 = 3.141593;
  2180.                
  2181.                 // Thickness = 500.0
  2182.                 ConstantsCache.Variable_139 = Thickness;
  2183.                
  2184.                 // /
  2185.                 ConstantsCache.Variable_38 = ConstantsCache.Variable_32 / float(360.0f);
  2186.                
  2187.                 // *
  2188.                 ConstantsCache.Variable_131 = ConstantsCache.Variable_5 * ConstantsCache.Variable_130;
  2189.                
  2190.                 // *
  2191.                 ConstantsCache.Variable_140 = ConstantsCache.Variable_139 * ConstantsCache.Variable_130;
  2192.                
  2193.                 // /
  2194.                 ConstantsCache.Variable_132 = ConstantsCache.Variable_131 / ConstantsCache.Variable_130;
  2195.                
  2196.                 // +
  2197.                 ConstantsCache.Variable_6 = ConstantsCache.Variable_131 + ConstantsCache.Variable_140;
  2198.                
  2199.                 // -
  2200.                 ConstantsCache.Variable_37 = float(0.5f) - ConstantsCache.Variable_38;
  2201.                
  2202.                 // +
  2203.                 ConstantsCache.Variable_138 = ConstantsCache.Variable_131 + ConstantsCache.Variable_140 + float(-5.0f);
  2204.                
  2205.             }
  2206.         }
  2207.         void ComputeX(FVoxelCache& Cache, const FVoxelContext& Context, FVoxelGraphOutputs& GraphOutputs) const
  2208.         {
  2209.             Function0_X_Compute(GraphOutputs, Cache, Context);
  2210.         }
  2211.         void ComputeXY(FVoxelCache& Cache, const FVoxelContext& Context, FVoxelGraphOutputs& GraphOutputs) const
  2212.         {
  2213.             Function0_XY_Compute(GraphOutputs, Cache, Context);
  2214.         }
  2215.         void ComputeXYZ(FVoxelCache& Cache, const FVoxelContext& Context, FVoxelGraphOutputs& GraphOutputs) const
  2216.         {
  2217.             Function0_XYZ_Compute(GraphOutputs, Cache, Context);
  2218.         }
  2219.         void Get(const FVoxelContext&Context, float& Value, FVoxelMaterial& Material) const
  2220.         {
  2221.             FVoxelGraphOutputs GraphOutputs{Value, Material};
  2222.             Function0_Compute(GraphOutputs, Context);
  2223.         }
  2224.        
  2225.     private:
  2226.         FVoxelConstantsCache ConstantsCache;
  2227.         FastNoise _2D_Simplex_Noise_8751_Noise;
  2228.         FastNoise _2D_Simplex_Noise_Fractal_15563_Noise;
  2229.         FastNoise _2D_Simplex_Noise_Fractal_15564_Noise;
  2230.         FastNoise _2D_Perlin_Noise_7432_Noise;
  2231.         FastNoise _2D_Simplex_Noise_8752_Noise;
  2232.        
  2233.         const float& Scale;
  2234.         const float& PlainsNoiseHeight;
  2235.         const float& RingEdgesHardness;
  2236.         const float& Width_in_Degrees;
  2237.         const float& RiverDepth;
  2238.         const float& Thickness;
  2239.         const float& BaseHeight;
  2240.         const float& BaseNoiseHeight;
  2241.         const float& BaseNoiseFrquency;
  2242.         const float& MountainsNoiseHeight;
  2243.         const float& Radius;
  2244.         const float& RiverWidth;
  2245.         const float& PlainsNoiseFrequency;
  2246.         const float& MountainsNoiseFrequency;
  2247.         const FRichCurve& RingShape;
  2248.         const FRichCurve& MoutainsMask;
  2249.         const FRichCurve& RiverMask;
  2250.         const FRichCurve& PlainsNoiseStrength;
  2251.         const FLinearColor& PlainsColorLow;
  2252.         const FLinearColor& RiverColor;
  2253.         const FLinearColor& BeachColor;
  2254.         const FLinearColor& MountainsColorHigh;
  2255.         const FLinearColor& MountainsColorLowLow;
  2256.         const FLinearColor& MountainsColorLowHigh;
  2257.         const FLinearColor& PlainsColorHigh;
  2258.         const FLinearColor& RingOuterColor;
  2259.        
  2260.         ///////////////////////////////////////////////////////////////////////
  2261.         //////////////////////////// Init functions ///////////////////////////
  2262.         ///////////////////////////////////////////////////////////////////////
  2263.        
  2264.         void Function0_Init(const FVoxelWorldGeneratorInit& InitStruct)
  2265.         {
  2266.             // Init of 2D Simplex Noise Fractal
  2267.             _2D_Simplex_Noise_Fractal_15563_Noise.SetSeed(Seed(1337));
  2268.             _2D_Simplex_Noise_Fractal_15563_Noise.SetFrequency(0.02);
  2269.             _2D_Simplex_Noise_Fractal_15563_Noise.SetInterp(FastNoise::Interp::Quintic);
  2270.             _2D_Simplex_Noise_Fractal_15563_Noise.SetFractalOctaves(5);
  2271.             _2D_Simplex_Noise_Fractal_15563_Noise.SetFractalLacunarity(2.0);
  2272.             _2D_Simplex_Noise_Fractal_15563_Noise.SetFractalGain(0.5);
  2273.             _2D_Simplex_Noise_Fractal_15563_Noise.SetFractalType(FastNoise::FractalType::FBM);
  2274.            
  2275.             // Init of 2D Simplex Noise Fractal
  2276.             _2D_Simplex_Noise_Fractal_15564_Noise.SetSeed(Seed(1337));
  2277.             _2D_Simplex_Noise_Fractal_15564_Noise.SetFrequency(0.02);
  2278.             _2D_Simplex_Noise_Fractal_15564_Noise.SetInterp(FastNoise::Interp::Quintic);
  2279.             _2D_Simplex_Noise_Fractal_15564_Noise.SetFractalOctaves(8);
  2280.             _2D_Simplex_Noise_Fractal_15564_Noise.SetFractalLacunarity(2.0);
  2281.             _2D_Simplex_Noise_Fractal_15564_Noise.SetFractalGain(0.5);
  2282.             _2D_Simplex_Noise_Fractal_15564_Noise.SetFractalType(FastNoise::FractalType::FBM);
  2283.            
  2284.             // Init of 2D Perlin Noise
  2285.             _2D_Perlin_Noise_7432_Noise.SetSeed(Seed(1338));
  2286.             _2D_Perlin_Noise_7432_Noise.SetFrequency(0.1);
  2287.             _2D_Perlin_Noise_7432_Noise.SetInterp(FastNoise::Interp::Quintic);
  2288.            
  2289.             // Init of 2D Simplex Noise
  2290.             _2D_Simplex_Noise_8752_Noise.SetSeed(Seed(1337));
  2291.             _2D_Simplex_Noise_8752_Noise.SetFrequency(0.02);
  2292.             _2D_Simplex_Noise_8752_Noise.SetInterp(FastNoise::Interp::Quintic);
  2293.            
  2294.             // Init of 2D Simplex Noise
  2295.             _2D_Simplex_Noise_8751_Noise.SetSeed(Seed(1000));
  2296.             _2D_Simplex_Noise_8751_Noise.SetFrequency(0.001);
  2297.             _2D_Simplex_Noise_8751_Noise.SetInterp(FastNoise::Interp::Quintic);
  2298.            
  2299.         }
  2300.        
  2301.         ///////////////////////////////////////////////////////////////////////
  2302.         ////////////////////////// Compute functions //////////////////////////
  2303.         ///////////////////////////////////////////////////////////////////////
  2304.        
  2305.         void Function0_X_Compute(FVoxelGraphOutputs& GraphOutputs, FVoxelCache& Cache, const FVoxelContext& Context) const
  2306.         {
  2307.             // X
  2308.             Cache.Variable_0 = Context.X;
  2309.            
  2310.             // X
  2311.             Cache.Variable_24 = Context.X;
  2312.            
  2313.         }
  2314.        
  2315.         void Function0_XY_Compute(FVoxelGraphOutputs& GraphOutputs, FVoxelCache& Cache, const FVoxelContext& Context) const
  2316.         {
  2317.             // Y
  2318.             Cache.Variable_1 = Context.Y;
  2319.            
  2320.             // Y
  2321.             Cache.Variable_30 = Context.Y;
  2322.            
  2323.             // ATAN2
  2324.             Cache.Variable_23 = FVoxelNodeFunctions::Atan2(Cache.Variable_30, Cache.Variable_24);
  2325.            
  2326.             // /
  2327.             Cache.Variable_26 = Cache.Variable_23 / ConstantsCache.Variable_25;
  2328.            
  2329.             // *
  2330.             Cache.Variable_29 = ConstantsCache.Variable_132 * Cache.Variable_26;
  2331.            
  2332.             // *
  2333.             Cache.Variable_46 = Cache.Variable_29 * ConstantsCache.Variable_47;
  2334.            
  2335.             // *
  2336.             Cache.Variable_52 = Cache.Variable_29 * ConstantsCache.Variable_53;
  2337.            
  2338.             // *
  2339.             Cache.Variable_75 = Cache.Variable_29 * ConstantsCache.Variable_76;
  2340.            
  2341.             // 2D Simplex Noise
  2342.             Cache.Variable_112 = _2D_Simplex_Noise_8751_Noise.GetSimplex(Cache.Variable_29, Cache.Variable_29);
  2343.            
  2344.             // *
  2345.             Cache.Variable_109 = Cache.Variable_112 * float(0.1f);
  2346.            
  2347.         }
  2348.        
  2349.         void Function0_XYZ_Compute(FVoxelGraphOutputs& GraphOutputs, FVoxelCache& Cache, const FVoxelContext& Context) const
  2350.         {
  2351.             // Z
  2352.             float Variable_12; // Z output 0
  2353.             Variable_12 = Context.Z;
  2354.            
  2355.             // Z
  2356.             float Variable_2; // Z output 0
  2357.             Variable_2 = Context.Z;
  2358.            
  2359.             // Vector Length
  2360.             float Variable_3; // Vector Length output 0
  2361.             Variable_3 = FVoxelNodeFunctions::VectorLength(Cache.Variable_0, Cache.Variable_1, Variable_2);
  2362.            
  2363.             // +
  2364.             float Variable_31; // + output 0
  2365.             Variable_31 = Variable_3 + float(0.001f);
  2366.            
  2367.             // /
  2368.             float Variable_13; // / output 0
  2369.             Variable_13 = Variable_12 / Variable_31;
  2370.            
  2371.             // ACOS
  2372.             float Variable_14; // ACOS output 0
  2373.             Variable_14 = FVoxelNodeFunctions::Acos(Variable_13);
  2374.            
  2375.             // /
  2376.             float Variable_10; // / output 0
  2377.             Variable_10 = Variable_14 / ConstantsCache.Variable_141;
  2378.            
  2379.             // 1 - X
  2380.             float Variable_11; // 1 - X output 0
  2381.             Variable_11 = 1 - Variable_10;
  2382.            
  2383.             // Min (float)
  2384.             float Variable_9; // Min (float) output 0
  2385.             Variable_9 = FVoxelNodeFunctions::Min<float>(Variable_10, Variable_11);
  2386.            
  2387.             // -
  2388.             float Variable_15; // - output 0
  2389.             Variable_15 = Variable_9 - ConstantsCache.Variable_37;
  2390.            
  2391.             // /
  2392.             float Variable_36; // / output 0
  2393.             Variable_36 = Variable_15 / ConstantsCache.Variable_38;
  2394.            
  2395.             // 1 - X
  2396.             float Variable_35; // 1 - X output 0
  2397.             Variable_35 = 1 - Variable_36;
  2398.            
  2399.             // RingCurve
  2400.             float Variable_39; // RingCurve output 0
  2401.             Variable_39 = RingShape.Eval(Variable_35);
  2402.            
  2403.             // Static Clamp: 0.0 <= X <= 1.0
  2404.             float Variable_126; // Static Clamp: 0.0 <= X <= 1.0 output 0
  2405.             Variable_126 = FMath::Clamp<float>(Variable_39, 0.000000, 1.000000);
  2406.            
  2407.             // *
  2408.             float Variable_40; // * output 0
  2409.             Variable_40 = Variable_126 * ConstantsCache.Variable_41;
  2410.            
  2411.             // *
  2412.             float Variable_28; // * output 0
  2413.             Variable_28 = ConstantsCache.Variable_132 * Variable_10;
  2414.            
  2415.             // *
  2416.             float Variable_45; // * output 0
  2417.             Variable_45 = Variable_28 * ConstantsCache.Variable_47;
  2418.            
  2419.             // 2D Simplex Noise Fractal
  2420.             float Variable_42; // 2D Simplex Noise Fractal output 0
  2421.             Variable_42 = _2D_Simplex_Noise_Fractal_15563_Noise.GetSimplexFractal(Variable_45, Cache.Variable_46);
  2422.            
  2423.             // *
  2424.             float Variable_43; // * output 0
  2425.             Variable_43 = Variable_42 * ConstantsCache.Variable_44;
  2426.            
  2427.             // *
  2428.             float Variable_51; // * output 0
  2429.             Variable_51 = Variable_28 * ConstantsCache.Variable_53;
  2430.            
  2431.             // 2D Simplex Noise Fractal
  2432.             float Variable_48; // 2D Simplex Noise Fractal output 0
  2433.             Variable_48 = _2D_Simplex_Noise_Fractal_15564_Noise.GetSimplexFractal(Variable_51, Cache.Variable_52);
  2434.            
  2435.             // MountainsCurve
  2436.             float Variable_54; // MountainsCurve output 0
  2437.             Variable_54 = MoutainsMask.Eval(Variable_35);
  2438.            
  2439.             // Static Clamp: 0.0 <= X <= 1.0
  2440.             float Variable_127; // Static Clamp: 0.0 <= X <= 1.0 output 0
  2441.             Variable_127 = FMath::Clamp<float>(Variable_54, 0.000000, 1.000000);
  2442.            
  2443.             // *
  2444.             float Variable_49; // * output 0
  2445.             Variable_49 = Variable_48 * ConstantsCache.Variable_50 * Variable_127;
  2446.            
  2447.             // 2D Perlin Noise
  2448.             float Variable_64; // 2D Perlin Noise output 0
  2449.             Variable_64 = _2D_Perlin_Noise_7432_Noise.GetPerlin(Variable_51, Cache.Variable_52);
  2450.            
  2451.             // *
  2452.             float Variable_65; // * output 0
  2453.             Variable_65 = ConstantsCache.Variable_50 * Variable_127 * Variable_64 * float(0.1f);
  2454.            
  2455.             // *
  2456.             float Variable_74; // * output 0
  2457.             Variable_74 = Variable_28 * ConstantsCache.Variable_76;
  2458.            
  2459.             // 2D Simplex Noise
  2460.             float Variable_83; // 2D Simplex Noise output 0
  2461.             Variable_83 = _2D_Simplex_Noise_8752_Noise.GetSimplex(Variable_74, Cache.Variable_75);
  2462.            
  2463.             // Z
  2464.             float Variable_104; // Z output 0
  2465.             Variable_104 = Context.Z;
  2466.            
  2467.             // /
  2468.             float Variable_105; // / output 0
  2469.             Variable_105 = Variable_104 / Variable_31;
  2470.            
  2471.             // +
  2472.             float Variable_108; // + output 0
  2473.             Variable_108 = Variable_105 + Cache.Variable_109;
  2474.            
  2475.             // ACOS
  2476.             float Variable_106; // ACOS output 0
  2477.             Variable_106 = FVoxelNodeFunctions::Acos(Variable_108);
  2478.            
  2479.             // /
  2480.             float Variable_103; // / output 0
  2481.             Variable_103 = Variable_106 / ConstantsCache.Variable_95;
  2482.            
  2483.             // 1 - X
  2484.             float Variable_101; // 1 - X output 0
  2485.             Variable_101 = 1 - Variable_103;
  2486.            
  2487.             // Min (float)
  2488.             float Variable_100; // Min (float) output 0
  2489.             Variable_100 = FVoxelNodeFunctions::Min<float>(Variable_103, Variable_101);
  2490.            
  2491.             // /
  2492.             float Variable_102; // / output 0
  2493.             Variable_102 = Variable_100 / float(0.5f);
  2494.            
  2495.             // 1 - X
  2496.             float Variable_110; // 1 - X output 0
  2497.             Variable_110 = 1 - Variable_102;
  2498.            
  2499.             // *
  2500.             float Variable_111; // * output 0
  2501.             Variable_111 = Variable_110 * float(20.0f);
  2502.            
  2503.             // /
  2504.             float Variable_134; // / output 0
  2505.             Variable_134 = Variable_111 / ConstantsCache.Variable_135;
  2506.            
  2507.             // RiverCurve
  2508.             float Variable_92; // RiverCurve output 0
  2509.             Variable_92 = RiverMask.Eval(Variable_134);
  2510.            
  2511.             // Static Clamp: -1.0 <= X <= 1.0
  2512.             float Variable_129; // Static Clamp: -1.0 <= X <= 1.0 output 0
  2513.             Variable_129 = FMath::Clamp<float>(Variable_92, -1.000000, 1.000000);
  2514.            
  2515.             // Min (float)
  2516.             float Variable_114; // Min (float) output 0
  2517.             Variable_114 = FVoxelNodeFunctions::Min<float>(Variable_129, float(0.0f));
  2518.            
  2519.             // *
  2520.             float Variable_115; // * output 0
  2521.             Variable_115 = Variable_114 * float(-1.0f);
  2522.            
  2523.             // *
  2524.             float Variable_116; // * output 0
  2525.             Variable_116 = Variable_83 * Variable_115;
  2526.            
  2527.             // 1 - X
  2528.             float Variable_117; // 1 - X output 0
  2529.             Variable_117 = 1 - Variable_115;
  2530.            
  2531.             // -
  2532.             float Variable_118; // - output 0
  2533.             Variable_118 = Variable_116 - Variable_117;
  2534.            
  2535.             // 1 - X
  2536.             float Variable_71; // 1 - X output 0
  2537.             Variable_71 = 1 - Variable_127;
  2538.            
  2539.             // PlainsNoiseStrengthCurve
  2540.             float Variable_77; // PlainsNoiseStrengthCurve output 0
  2541.             Variable_77 = PlainsNoiseStrength.Eval(Variable_35);
  2542.            
  2543.             // Static Clamp: 0.0 <= X <= 1.0
  2544.             float Variable_128; // Static Clamp: 0.0 <= X <= 1.0 output 0
  2545.             Variable_128 = FMath::Clamp<float>(Variable_77, 0.000000, 1.000000);
  2546.            
  2547.             // *
  2548.             float Variable_72; // * output 0
  2549.             Variable_72 = Variable_118 * ConstantsCache.Variable_73 * Variable_71 * Variable_128;
  2550.            
  2551.             // Max (float)
  2552.             float Variable_113; // Max (float) output 0
  2553.             Variable_113 = FVoxelNodeFunctions::Max<float>(Variable_129, float(0.0f));
  2554.            
  2555.             // *
  2556.             float Variable_93; // * output 0
  2557.             Variable_93 = Variable_113 * float(-1.0f) * ConstantsCache.Variable_94;
  2558.            
  2559.             // +
  2560.             float Variable_34; // + output 0
  2561.             Variable_34 = Variable_40 + Variable_43 + Variable_49 + Variable_65 + Variable_72 + Variable_93;
  2562.            
  2563.             // *
  2564.             float Variable_133; // * output 0
  2565.             Variable_133 = Variable_34 * ConstantsCache.Variable_130;
  2566.            
  2567.             // -
  2568.             float Variable_33; // - output 0
  2569.             Variable_33 = ConstantsCache.Variable_131 - Variable_133;
  2570.            
  2571.             // -
  2572.             float Variable_4; // - output 0
  2573.             Variable_4 = Variable_33 - Variable_31;
  2574.            
  2575.             // -
  2576.             float Variable_7; // - output 0
  2577.             Variable_7 = Variable_31 - ConstantsCache.Variable_6;
  2578.            
  2579.             // Max (float)
  2580.             float Variable_8; // Max (float) output 0
  2581.             Variable_8 = FVoxelNodeFunctions::Max<float>(Variable_4, Variable_7);
  2582.            
  2583.             // -
  2584.             float Variable_19; // - output 0
  2585.             Variable_19 = Variable_8 - float(1.0f);
  2586.            
  2587.             // Max (float)
  2588.             float Variable_18; // Max (float) output 0
  2589.             Variable_18 = FVoxelNodeFunctions::Max<float>(Variable_36, float(0.0f));
  2590.            
  2591.             // *
  2592.             float Variable_20; // * output 0
  2593.             Variable_20 = Variable_18 * ConstantsCache.Variable_22;
  2594.            
  2595.             // Min (float)
  2596.             float Variable_21; // Min (float) output 0
  2597.             Variable_21 = FVoxelNodeFunctions::Min<float>(Variable_20, float(1.0f));
  2598.            
  2599.             // *
  2600.             float Variable_16; // * output 0
  2601.             Variable_16 = Variable_19 * Variable_21;
  2602.            
  2603.             // +
  2604.             float Variable_17; // + output 0
  2605.             Variable_17 = Variable_16 + float(1.0f);
  2606.            
  2607.             GraphOutputs.Value = Variable_17;
  2608.             // BlendColors.Clamp
  2609.             float Variable_78; // BlendColors.Clamp output 0
  2610.             Variable_78 = FVoxelNodeFunctions::Clamp(Variable_118, float(0.0f), float(1.0f));
  2611.            
  2612.             // BlendColors.Lerp
  2613.             float Variable_159; // BlendColors.Lerp output 0
  2614.             Variable_159 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_86, ConstantsCache.Variable_79, Variable_78);
  2615.            
  2616.             // *
  2617.             float Variable_125; // * output 0
  2618.             Variable_125 = Variable_129 * float(10.0f);
  2619.            
  2620.             // BlendColors.Clamp
  2621.             float Variable_107; // BlendColors.Clamp output 0
  2622.             Variable_107 = FVoxelNodeFunctions::Clamp(Variable_125, float(0.0f), float(1.0f));
  2623.            
  2624.             // BlendColors.Lerp
  2625.             float Variable_167; // BlendColors.Lerp output 0
  2626.             Variable_167 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_120, ConstantsCache.Variable_96, Variable_107);
  2627.            
  2628.             // +
  2629.             float Variable_119; // + output 0
  2630.             Variable_119 = Variable_129 + float(0.3f);
  2631.            
  2632.             // BlendColors.Clamp
  2633.             float Variable_85; // BlendColors.Clamp output 0
  2634.             Variable_85 = FVoxelNodeFunctions::Clamp(Variable_119, float(0.0f), float(1.0f));
  2635.            
  2636.             // BlendColors.Lerp
  2637.             float Variable_163; // BlendColors.Lerp output 0
  2638.             Variable_163 = FVoxelNodeFunctions::Lerp(Variable_159, Variable_167, Variable_85);
  2639.            
  2640.             // BlendColors.Clamp
  2641.             float Variable_55; // BlendColors.Clamp output 0
  2642.             Variable_55 = FVoxelNodeFunctions::Clamp(Variable_64, float(0.0f), float(1.0f));
  2643.            
  2644.             // BlendColors.Lerp
  2645.             float Variable_151; // BlendColors.Lerp output 0
  2646.             Variable_151 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_60, ConstantsCache.Variable_67, Variable_55);
  2647.            
  2648.             // BlendColors.Clamp
  2649.             float Variable_27; // BlendColors.Clamp output 0
  2650.             Variable_27 = FVoxelNodeFunctions::Clamp(Variable_48, float(0.0f), float(1.0f));
  2651.            
  2652.             // BlendColors.Lerp
  2653.             float Variable_147; // BlendColors.Lerp output 0
  2654.             Variable_147 = FVoxelNodeFunctions::Lerp(Variable_151, ConstantsCache.Variable_56, Variable_27);
  2655.            
  2656.             // *
  2657.             float Variable_84; // * output 0
  2658.             Variable_84 = Variable_127 * float(3.0f);
  2659.            
  2660.             // Max (float)
  2661.             float Variable_90; // Max (float) output 0
  2662.             Variable_90 = FVoxelNodeFunctions::Max<float>(Variable_118, float(0.0f));
  2663.            
  2664.             // -
  2665.             float Variable_91; // - output 0
  2666.             Variable_91 = Variable_84 - Variable_90;
  2667.            
  2668.             // BlendColors.Clamp
  2669.             float Variable_66; // BlendColors.Clamp output 0
  2670.             Variable_66 = FVoxelNodeFunctions::Clamp(Variable_91, float(0.0f), float(1.0f));
  2671.            
  2672.             // BlendColors.Lerp
  2673.             float Variable_155; // BlendColors.Lerp output 0
  2674.             Variable_155 = FVoxelNodeFunctions::Lerp(Variable_163, Variable_147, Variable_66);
  2675.            
  2676.             // -
  2677.             float Variable_142; // - output 0
  2678.             Variable_142 = ConstantsCache.Variable_138 - Variable_31;
  2679.            
  2680.             // Clamp
  2681.             float Variable_136; // Clamp output 0
  2682.             Variable_136 = FVoxelNodeFunctions::Clamp(Variable_142, float(0.0f), float(1.0f));
  2683.            
  2684.             // Min (float)
  2685.             float Variable_137; // Min (float) output 0
  2686.             Variable_137 = FVoxelNodeFunctions::Min<float>(Variable_21, Variable_136);
  2687.            
  2688.             // BlendColors.Clamp
  2689.             float Variable_124; // BlendColors.Clamp output 0
  2690.             Variable_124 = FVoxelNodeFunctions::Clamp(Variable_137, float(0.0f), float(1.0f));
  2691.            
  2692.             // BlendColors.Lerp
  2693.             float Variable_171; // BlendColors.Lerp output 0
  2694.             Variable_171 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_143, Variable_155, Variable_124);
  2695.            
  2696.             // BlendColors.Lerp
  2697.             float Variable_160; // BlendColors.Lerp output 0
  2698.             Variable_160 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_87, ConstantsCache.Variable_80, Variable_78);
  2699.            
  2700.             // BlendColors.Lerp
  2701.             float Variable_168; // BlendColors.Lerp output 0
  2702.             Variable_168 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_121, ConstantsCache.Variable_97, Variable_107);
  2703.            
  2704.             // BlendColors.Lerp
  2705.             float Variable_164; // BlendColors.Lerp output 0
  2706.             Variable_164 = FVoxelNodeFunctions::Lerp(Variable_160, Variable_168, Variable_85);
  2707.            
  2708.             // BlendColors.Lerp
  2709.             float Variable_152; // BlendColors.Lerp output 0
  2710.             Variable_152 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_61, ConstantsCache.Variable_68, Variable_55);
  2711.            
  2712.             // BlendColors.Lerp
  2713.             float Variable_148; // BlendColors.Lerp output 0
  2714.             Variable_148 = FVoxelNodeFunctions::Lerp(Variable_152, ConstantsCache.Variable_57, Variable_27);
  2715.            
  2716.             // BlendColors.Lerp
  2717.             float Variable_156; // BlendColors.Lerp output 0
  2718.             Variable_156 = FVoxelNodeFunctions::Lerp(Variable_164, Variable_148, Variable_66);
  2719.            
  2720.             // BlendColors.Lerp
  2721.             float Variable_172; // BlendColors.Lerp output 0
  2722.             Variable_172 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_144, Variable_156, Variable_124);
  2723.            
  2724.             // BlendColors.Lerp
  2725.             float Variable_161; // BlendColors.Lerp output 0
  2726.             Variable_161 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_88, ConstantsCache.Variable_81, Variable_78);
  2727.            
  2728.             // BlendColors.Lerp
  2729.             float Variable_169; // BlendColors.Lerp output 0
  2730.             Variable_169 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_122, ConstantsCache.Variable_98, Variable_107);
  2731.            
  2732.             // BlendColors.Lerp
  2733.             float Variable_165; // BlendColors.Lerp output 0
  2734.             Variable_165 = FVoxelNodeFunctions::Lerp(Variable_161, Variable_169, Variable_85);
  2735.            
  2736.             // BlendColors.Lerp
  2737.             float Variable_153; // BlendColors.Lerp output 0
  2738.             Variable_153 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_62, ConstantsCache.Variable_69, Variable_55);
  2739.            
  2740.             // BlendColors.Lerp
  2741.             float Variable_149; // BlendColors.Lerp output 0
  2742.             Variable_149 = FVoxelNodeFunctions::Lerp(Variable_153, ConstantsCache.Variable_58, Variable_27);
  2743.            
  2744.             // BlendColors.Lerp
  2745.             float Variable_157; // BlendColors.Lerp output 0
  2746.             Variable_157 = FVoxelNodeFunctions::Lerp(Variable_165, Variable_149, Variable_66);
  2747.            
  2748.             // BlendColors.Lerp
  2749.             float Variable_173; // BlendColors.Lerp output 0
  2750.             Variable_173 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_145, Variable_157, Variable_124);
  2751.            
  2752.             // BlendColors.Lerp
  2753.             float Variable_162; // BlendColors.Lerp output 0
  2754.             Variable_162 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_89, ConstantsCache.Variable_82, Variable_78);
  2755.            
  2756.             // BlendColors.Lerp
  2757.             float Variable_170; // BlendColors.Lerp output 0
  2758.             Variable_170 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_123, ConstantsCache.Variable_99, Variable_107);
  2759.            
  2760.             // BlendColors.Lerp
  2761.             float Variable_166; // BlendColors.Lerp output 0
  2762.             Variable_166 = FVoxelNodeFunctions::Lerp(Variable_162, Variable_170, Variable_85);
  2763.            
  2764.             // BlendColors.Lerp
  2765.             float Variable_154; // BlendColors.Lerp output 0
  2766.             Variable_154 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_63, ConstantsCache.Variable_70, Variable_55);
  2767.            
  2768.             // BlendColors.Lerp
  2769.             float Variable_150; // BlendColors.Lerp output 0
  2770.             Variable_150 = FVoxelNodeFunctions::Lerp(Variable_154, ConstantsCache.Variable_59, Variable_27);
  2771.            
  2772.             // BlendColors.Lerp
  2773.             float Variable_158; // BlendColors.Lerp output 0
  2774.             Variable_158 = FVoxelNodeFunctions::Lerp(Variable_166, Variable_150, Variable_66);
  2775.            
  2776.             // BlendColors.Lerp
  2777.             float Variable_174; // BlendColors.Lerp output 0
  2778.             Variable_174 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_146, Variable_158, Variable_124);
  2779.            
  2780.             GraphOutputs.Material.SetColor(FLinearColor(Variable_171, Variable_172, Variable_173, Variable_174));
  2781.         }
  2782.        
  2783.         void Function0_Compute(FVoxelGraphOutputs& GraphOutputs, const FVoxelContext& Context) const
  2784.         {
  2785.             // Z
  2786.             float Variable_12; // Z output 0
  2787.             Variable_12 = Context.Z;
  2788.            
  2789.             // X
  2790.             float Variable_0; // X output 0
  2791.             Variable_0 = Context.X;
  2792.            
  2793.             // Y
  2794.             float Variable_1; // Y output 0
  2795.             Variable_1 = Context.Y;
  2796.            
  2797.             // Z
  2798.             float Variable_2; // Z output 0
  2799.             Variable_2 = Context.Z;
  2800.            
  2801.             // Vector Length
  2802.             float Variable_3; // Vector Length output 0
  2803.             Variable_3 = FVoxelNodeFunctions::VectorLength(Variable_0, Variable_1, Variable_2);
  2804.            
  2805.             // +
  2806.             float Variable_31; // + output 0
  2807.             Variable_31 = Variable_3 + float(0.001f);
  2808.            
  2809.             // /
  2810.             float Variable_13; // / output 0
  2811.             Variable_13 = Variable_12 / Variable_31;
  2812.            
  2813.             // ACOS
  2814.             float Variable_14; // ACOS output 0
  2815.             Variable_14 = FVoxelNodeFunctions::Acos(Variable_13);
  2816.            
  2817.             // /
  2818.             float Variable_10; // / output 0
  2819.             Variable_10 = Variable_14 / ConstantsCache.Variable_141;
  2820.            
  2821.             // 1 - X
  2822.             float Variable_11; // 1 - X output 0
  2823.             Variable_11 = 1 - Variable_10;
  2824.            
  2825.             // Min (float)
  2826.             float Variable_9; // Min (float) output 0
  2827.             Variable_9 = FVoxelNodeFunctions::Min<float>(Variable_10, Variable_11);
  2828.            
  2829.             // -
  2830.             float Variable_15; // - output 0
  2831.             Variable_15 = Variable_9 - ConstantsCache.Variable_37;
  2832.            
  2833.             // /
  2834.             float Variable_36; // / output 0
  2835.             Variable_36 = Variable_15 / ConstantsCache.Variable_38;
  2836.            
  2837.             // 1 - X
  2838.             float Variable_35; // 1 - X output 0
  2839.             Variable_35 = 1 - Variable_36;
  2840.            
  2841.             // RingCurve
  2842.             float Variable_39; // RingCurve output 0
  2843.             Variable_39 = RingShape.Eval(Variable_35);
  2844.            
  2845.             // Static Clamp: 0.0 <= X <= 1.0
  2846.             float Variable_126; // Static Clamp: 0.0 <= X <= 1.0 output 0
  2847.             Variable_126 = FMath::Clamp<float>(Variable_39, 0.000000, 1.000000);
  2848.            
  2849.             // *
  2850.             float Variable_40; // * output 0
  2851.             Variable_40 = Variable_126 * ConstantsCache.Variable_41;
  2852.            
  2853.             // *
  2854.             float Variable_28; // * output 0
  2855.             Variable_28 = ConstantsCache.Variable_132 * Variable_10;
  2856.            
  2857.             // *
  2858.             float Variable_45; // * output 0
  2859.             Variable_45 = Variable_28 * ConstantsCache.Variable_47;
  2860.            
  2861.             // Y
  2862.             float Variable_30; // Y output 0
  2863.             Variable_30 = Context.Y;
  2864.            
  2865.             // X
  2866.             float Variable_24; // X output 0
  2867.             Variable_24 = Context.X;
  2868.            
  2869.             // ATAN2
  2870.             float Variable_23; // ATAN2 output 0
  2871.             Variable_23 = FVoxelNodeFunctions::Atan2(Variable_30, Variable_24);
  2872.            
  2873.             // /
  2874.             float Variable_26; // / output 0
  2875.             Variable_26 = Variable_23 / ConstantsCache.Variable_25;
  2876.            
  2877.             // *
  2878.             float Variable_29; // * output 0
  2879.             Variable_29 = ConstantsCache.Variable_132 * Variable_26;
  2880.            
  2881.             // *
  2882.             float Variable_46; // * output 0
  2883.             Variable_46 = Variable_29 * ConstantsCache.Variable_47;
  2884.            
  2885.             // 2D Simplex Noise Fractal
  2886.             float Variable_42; // 2D Simplex Noise Fractal output 0
  2887.             Variable_42 = _2D_Simplex_Noise_Fractal_15563_Noise.GetSimplexFractal(Variable_45, Variable_46);
  2888.            
  2889.             // *
  2890.             float Variable_43; // * output 0
  2891.             Variable_43 = Variable_42 * ConstantsCache.Variable_44;
  2892.            
  2893.             // *
  2894.             float Variable_51; // * output 0
  2895.             Variable_51 = Variable_28 * ConstantsCache.Variable_53;
  2896.            
  2897.             // *
  2898.             float Variable_52; // * output 0
  2899.             Variable_52 = Variable_29 * ConstantsCache.Variable_53;
  2900.            
  2901.             // 2D Simplex Noise Fractal
  2902.             float Variable_48; // 2D Simplex Noise Fractal output 0
  2903.             Variable_48 = _2D_Simplex_Noise_Fractal_15564_Noise.GetSimplexFractal(Variable_51, Variable_52);
  2904.            
  2905.             // MountainsCurve
  2906.             float Variable_54; // MountainsCurve output 0
  2907.             Variable_54 = MoutainsMask.Eval(Variable_35);
  2908.            
  2909.             // Static Clamp: 0.0 <= X <= 1.0
  2910.             float Variable_127; // Static Clamp: 0.0 <= X <= 1.0 output 0
  2911.             Variable_127 = FMath::Clamp<float>(Variable_54, 0.000000, 1.000000);
  2912.            
  2913.             // *
  2914.             float Variable_49; // * output 0
  2915.             Variable_49 = Variable_48 * ConstantsCache.Variable_50 * Variable_127;
  2916.            
  2917.             // 2D Perlin Noise
  2918.             float Variable_64; // 2D Perlin Noise output 0
  2919.             Variable_64 = _2D_Perlin_Noise_7432_Noise.GetPerlin(Variable_51, Variable_52);
  2920.            
  2921.             // *
  2922.             float Variable_65; // * output 0
  2923.             Variable_65 = ConstantsCache.Variable_50 * Variable_127 * Variable_64 * float(0.1f);
  2924.            
  2925.             // *
  2926.             float Variable_74; // * output 0
  2927.             Variable_74 = Variable_28 * ConstantsCache.Variable_76;
  2928.            
  2929.             // *
  2930.             float Variable_75; // * output 0
  2931.             Variable_75 = Variable_29 * ConstantsCache.Variable_76;
  2932.            
  2933.             // 2D Simplex Noise
  2934.             float Variable_83; // 2D Simplex Noise output 0
  2935.             Variable_83 = _2D_Simplex_Noise_8752_Noise.GetSimplex(Variable_74, Variable_75);
  2936.            
  2937.             // Z
  2938.             float Variable_104; // Z output 0
  2939.             Variable_104 = Context.Z;
  2940.            
  2941.             // /
  2942.             float Variable_105; // / output 0
  2943.             Variable_105 = Variable_104 / Variable_31;
  2944.            
  2945.             // 2D Simplex Noise
  2946.             float Variable_112; // 2D Simplex Noise output 0
  2947.             Variable_112 = _2D_Simplex_Noise_8751_Noise.GetSimplex(Variable_29, Variable_29);
  2948.            
  2949.             // *
  2950.             float Variable_109; // * output 0
  2951.             Variable_109 = Variable_112 * float(0.1f);
  2952.            
  2953.             // +
  2954.             float Variable_108; // + output 0
  2955.             Variable_108 = Variable_105 + Variable_109;
  2956.            
  2957.             // ACOS
  2958.             float Variable_106; // ACOS output 0
  2959.             Variable_106 = FVoxelNodeFunctions::Acos(Variable_108);
  2960.            
  2961.             // /
  2962.             float Variable_103; // / output 0
  2963.             Variable_103 = Variable_106 / ConstantsCache.Variable_95;
  2964.            
  2965.             // 1 - X
  2966.             float Variable_101; // 1 - X output 0
  2967.             Variable_101 = 1 - Variable_103;
  2968.            
  2969.             // Min (float)
  2970.             float Variable_100; // Min (float) output 0
  2971.             Variable_100 = FVoxelNodeFunctions::Min<float>(Variable_103, Variable_101);
  2972.            
  2973.             // /
  2974.             float Variable_102; // / output 0
  2975.             Variable_102 = Variable_100 / float(0.5f);
  2976.            
  2977.             // 1 - X
  2978.             float Variable_110; // 1 - X output 0
  2979.             Variable_110 = 1 - Variable_102;
  2980.            
  2981.             // *
  2982.             float Variable_111; // * output 0
  2983.             Variable_111 = Variable_110 * float(20.0f);
  2984.            
  2985.             // /
  2986.             float Variable_134; // / output 0
  2987.             Variable_134 = Variable_111 / ConstantsCache.Variable_135;
  2988.            
  2989.             // RiverCurve
  2990.             float Variable_92; // RiverCurve output 0
  2991.             Variable_92 = RiverMask.Eval(Variable_134);
  2992.            
  2993.             // Static Clamp: -1.0 <= X <= 1.0
  2994.             float Variable_129; // Static Clamp: -1.0 <= X <= 1.0 output 0
  2995.             Variable_129 = FMath::Clamp<float>(Variable_92, -1.000000, 1.000000);
  2996.            
  2997.             // Min (float)
  2998.             float Variable_114; // Min (float) output 0
  2999.             Variable_114 = FVoxelNodeFunctions::Min<float>(Variable_129, float(0.0f));
  3000.            
  3001.             // *
  3002.             float Variable_115; // * output 0
  3003.             Variable_115 = Variable_114 * float(-1.0f);
  3004.            
  3005.             // *
  3006.             float Variable_116; // * output 0
  3007.             Variable_116 = Variable_83 * Variable_115;
  3008.            
  3009.             // 1 - X
  3010.             float Variable_117; // 1 - X output 0
  3011.             Variable_117 = 1 - Variable_115;
  3012.            
  3013.             // -
  3014.             float Variable_118; // - output 0
  3015.             Variable_118 = Variable_116 - Variable_117;
  3016.            
  3017.             // 1 - X
  3018.             float Variable_71; // 1 - X output 0
  3019.             Variable_71 = 1 - Variable_127;
  3020.            
  3021.             // PlainsNoiseStrengthCurve
  3022.             float Variable_77; // PlainsNoiseStrengthCurve output 0
  3023.             Variable_77 = PlainsNoiseStrength.Eval(Variable_35);
  3024.            
  3025.             // Static Clamp: 0.0 <= X <= 1.0
  3026.             float Variable_128; // Static Clamp: 0.0 <= X <= 1.0 output 0
  3027.             Variable_128 = FMath::Clamp<float>(Variable_77, 0.000000, 1.000000);
  3028.            
  3029.             // *
  3030.             float Variable_72; // * output 0
  3031.             Variable_72 = Variable_118 * ConstantsCache.Variable_73 * Variable_71 * Variable_128;
  3032.            
  3033.             // Max (float)
  3034.             float Variable_113; // Max (float) output 0
  3035.             Variable_113 = FVoxelNodeFunctions::Max<float>(Variable_129, float(0.0f));
  3036.            
  3037.             // *
  3038.             float Variable_93; // * output 0
  3039.             Variable_93 = Variable_113 * float(-1.0f) * ConstantsCache.Variable_94;
  3040.            
  3041.             // +
  3042.             float Variable_34; // + output 0
  3043.             Variable_34 = Variable_40 + Variable_43 + Variable_49 + Variable_65 + Variable_72 + Variable_93;
  3044.            
  3045.             // *
  3046.             float Variable_133; // * output 0
  3047.             Variable_133 = Variable_34 * ConstantsCache.Variable_130;
  3048.            
  3049.             // -
  3050.             float Variable_33; // - output 0
  3051.             Variable_33 = ConstantsCache.Variable_131 - Variable_133;
  3052.            
  3053.             // -
  3054.             float Variable_4; // - output 0
  3055.             Variable_4 = Variable_33 - Variable_31;
  3056.            
  3057.             // -
  3058.             float Variable_7; // - output 0
  3059.             Variable_7 = Variable_31 - ConstantsCache.Variable_6;
  3060.            
  3061.             // Max (float)
  3062.             float Variable_8; // Max (float) output 0
  3063.             Variable_8 = FVoxelNodeFunctions::Max<float>(Variable_4, Variable_7);
  3064.            
  3065.             // -
  3066.             float Variable_19; // - output 0
  3067.             Variable_19 = Variable_8 - float(1.0f);
  3068.            
  3069.             // Max (float)
  3070.             float Variable_18; // Max (float) output 0
  3071.             Variable_18 = FVoxelNodeFunctions::Max<float>(Variable_36, float(0.0f));
  3072.            
  3073.             // *
  3074.             float Variable_20; // * output 0
  3075.             Variable_20 = Variable_18 * ConstantsCache.Variable_22;
  3076.            
  3077.             // Min (float)
  3078.             float Variable_21; // Min (float) output 0
  3079.             Variable_21 = FVoxelNodeFunctions::Min<float>(Variable_20, float(1.0f));
  3080.            
  3081.             // *
  3082.             float Variable_16; // * output 0
  3083.             Variable_16 = Variable_19 * Variable_21;
  3084.            
  3085.             // +
  3086.             float Variable_17; // + output 0
  3087.             Variable_17 = Variable_16 + float(1.0f);
  3088.            
  3089.             GraphOutputs.Value = Variable_17;
  3090.             // BlendColors.Clamp
  3091.             float Variable_78; // BlendColors.Clamp output 0
  3092.             Variable_78 = FVoxelNodeFunctions::Clamp(Variable_118, float(0.0f), float(1.0f));
  3093.            
  3094.             // BlendColors.Lerp
  3095.             float Variable_159; // BlendColors.Lerp output 0
  3096.             Variable_159 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_86, ConstantsCache.Variable_79, Variable_78);
  3097.            
  3098.             // *
  3099.             float Variable_125; // * output 0
  3100.             Variable_125 = Variable_129 * float(10.0f);
  3101.            
  3102.             // BlendColors.Clamp
  3103.             float Variable_107; // BlendColors.Clamp output 0
  3104.             Variable_107 = FVoxelNodeFunctions::Clamp(Variable_125, float(0.0f), float(1.0f));
  3105.            
  3106.             // BlendColors.Lerp
  3107.             float Variable_167; // BlendColors.Lerp output 0
  3108.             Variable_167 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_120, ConstantsCache.Variable_96, Variable_107);
  3109.            
  3110.             // +
  3111.             float Variable_119; // + output 0
  3112.             Variable_119 = Variable_129 + float(0.3f);
  3113.            
  3114.             // BlendColors.Clamp
  3115.             float Variable_85; // BlendColors.Clamp output 0
  3116.             Variable_85 = FVoxelNodeFunctions::Clamp(Variable_119, float(0.0f), float(1.0f));
  3117.            
  3118.             // BlendColors.Lerp
  3119.             float Variable_163; // BlendColors.Lerp output 0
  3120.             Variable_163 = FVoxelNodeFunctions::Lerp(Variable_159, Variable_167, Variable_85);
  3121.            
  3122.             // BlendColors.Clamp
  3123.             float Variable_55; // BlendColors.Clamp output 0
  3124.             Variable_55 = FVoxelNodeFunctions::Clamp(Variable_64, float(0.0f), float(1.0f));
  3125.            
  3126.             // BlendColors.Lerp
  3127.             float Variable_151; // BlendColors.Lerp output 0
  3128.             Variable_151 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_60, ConstantsCache.Variable_67, Variable_55);
  3129.            
  3130.             // BlendColors.Clamp
  3131.             float Variable_27; // BlendColors.Clamp output 0
  3132.             Variable_27 = FVoxelNodeFunctions::Clamp(Variable_48, float(0.0f), float(1.0f));
  3133.            
  3134.             // BlendColors.Lerp
  3135.             float Variable_147; // BlendColors.Lerp output 0
  3136.             Variable_147 = FVoxelNodeFunctions::Lerp(Variable_151, ConstantsCache.Variable_56, Variable_27);
  3137.            
  3138.             // *
  3139.             float Variable_84; // * output 0
  3140.             Variable_84 = Variable_127 * float(3.0f);
  3141.            
  3142.             // Max (float)
  3143.             float Variable_90; // Max (float) output 0
  3144.             Variable_90 = FVoxelNodeFunctions::Max<float>(Variable_118, float(0.0f));
  3145.            
  3146.             // -
  3147.             float Variable_91; // - output 0
  3148.             Variable_91 = Variable_84 - Variable_90;
  3149.            
  3150.             // BlendColors.Clamp
  3151.             float Variable_66; // BlendColors.Clamp output 0
  3152.             Variable_66 = FVoxelNodeFunctions::Clamp(Variable_91, float(0.0f), float(1.0f));
  3153.            
  3154.             // BlendColors.Lerp
  3155.             float Variable_155; // BlendColors.Lerp output 0
  3156.             Variable_155 = FVoxelNodeFunctions::Lerp(Variable_163, Variable_147, Variable_66);
  3157.            
  3158.             // -
  3159.             float Variable_142; // - output 0
  3160.             Variable_142 = ConstantsCache.Variable_138 - Variable_31;
  3161.            
  3162.             // Clamp
  3163.             float Variable_136; // Clamp output 0
  3164.             Variable_136 = FVoxelNodeFunctions::Clamp(Variable_142, float(0.0f), float(1.0f));
  3165.            
  3166.             // Min (float)
  3167.             float Variable_137; // Min (float) output 0
  3168.             Variable_137 = FVoxelNodeFunctions::Min<float>(Variable_21, Variable_136);
  3169.            
  3170.             // BlendColors.Clamp
  3171.             float Variable_124; // BlendColors.Clamp output 0
  3172.             Variable_124 = FVoxelNodeFunctions::Clamp(Variable_137, float(0.0f), float(1.0f));
  3173.            
  3174.             // BlendColors.Lerp
  3175.             float Variable_171; // BlendColors.Lerp output 0
  3176.             Variable_171 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_143, Variable_155, Variable_124);
  3177.            
  3178.             // BlendColors.Lerp
  3179.             float Variable_160; // BlendColors.Lerp output 0
  3180.             Variable_160 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_87, ConstantsCache.Variable_80, Variable_78);
  3181.            
  3182.             // BlendColors.Lerp
  3183.             float Variable_168; // BlendColors.Lerp output 0
  3184.             Variable_168 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_121, ConstantsCache.Variable_97, Variable_107);
  3185.            
  3186.             // BlendColors.Lerp
  3187.             float Variable_164; // BlendColors.Lerp output 0
  3188.             Variable_164 = FVoxelNodeFunctions::Lerp(Variable_160, Variable_168, Variable_85);
  3189.            
  3190.             // BlendColors.Lerp
  3191.             float Variable_152; // BlendColors.Lerp output 0
  3192.             Variable_152 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_61, ConstantsCache.Variable_68, Variable_55);
  3193.            
  3194.             // BlendColors.Lerp
  3195.             float Variable_148; // BlendColors.Lerp output 0
  3196.             Variable_148 = FVoxelNodeFunctions::Lerp(Variable_152, ConstantsCache.Variable_57, Variable_27);
  3197.            
  3198.             // BlendColors.Lerp
  3199.             float Variable_156; // BlendColors.Lerp output 0
  3200.             Variable_156 = FVoxelNodeFunctions::Lerp(Variable_164, Variable_148, Variable_66);
  3201.            
  3202.             // BlendColors.Lerp
  3203.             float Variable_172; // BlendColors.Lerp output 0
  3204.             Variable_172 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_144, Variable_156, Variable_124);
  3205.            
  3206.             // BlendColors.Lerp
  3207.             float Variable_161; // BlendColors.Lerp output 0
  3208.             Variable_161 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_88, ConstantsCache.Variable_81, Variable_78);
  3209.            
  3210.             // BlendColors.Lerp
  3211.             float Variable_169; // BlendColors.Lerp output 0
  3212.             Variable_169 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_122, ConstantsCache.Variable_98, Variable_107);
  3213.            
  3214.             // BlendColors.Lerp
  3215.             float Variable_165; // BlendColors.Lerp output 0
  3216.             Variable_165 = FVoxelNodeFunctions::Lerp(Variable_161, Variable_169, Variable_85);
  3217.            
  3218.             // BlendColors.Lerp
  3219.             float Variable_153; // BlendColors.Lerp output 0
  3220.             Variable_153 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_62, ConstantsCache.Variable_69, Variable_55);
  3221.            
  3222.             // BlendColors.Lerp
  3223.             float Variable_149; // BlendColors.Lerp output 0
  3224.             Variable_149 = FVoxelNodeFunctions::Lerp(Variable_153, ConstantsCache.Variable_58, Variable_27);
  3225.            
  3226.             // BlendColors.Lerp
  3227.             float Variable_157; // BlendColors.Lerp output 0
  3228.             Variable_157 = FVoxelNodeFunctions::Lerp(Variable_165, Variable_149, Variable_66);
  3229.            
  3230.             // BlendColors.Lerp
  3231.             float Variable_173; // BlendColors.Lerp output 0
  3232.             Variable_173 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_145, Variable_157, Variable_124);
  3233.            
  3234.             // BlendColors.Lerp
  3235.             float Variable_162; // BlendColors.Lerp output 0
  3236.             Variable_162 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_89, ConstantsCache.Variable_82, Variable_78);
  3237.            
  3238.             // BlendColors.Lerp
  3239.             float Variable_170; // BlendColors.Lerp output 0
  3240.             Variable_170 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_123, ConstantsCache.Variable_99, Variable_107);
  3241.            
  3242.             // BlendColors.Lerp
  3243.             float Variable_166; // BlendColors.Lerp output 0
  3244.             Variable_166 = FVoxelNodeFunctions::Lerp(Variable_162, Variable_170, Variable_85);
  3245.            
  3246.             // BlendColors.Lerp
  3247.             float Variable_154; // BlendColors.Lerp output 0
  3248.             Variable_154 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_63, ConstantsCache.Variable_70, Variable_55);
  3249.            
  3250.             // BlendColors.Lerp
  3251.             float Variable_150; // BlendColors.Lerp output 0
  3252.             Variable_150 = FVoxelNodeFunctions::Lerp(Variable_154, ConstantsCache.Variable_59, Variable_27);
  3253.            
  3254.             // BlendColors.Lerp
  3255.             float Variable_158; // BlendColors.Lerp output 0
  3256.             Variable_158 = FVoxelNodeFunctions::Lerp(Variable_166, Variable_150, Variable_66);
  3257.            
  3258.             // BlendColors.Lerp
  3259.             float Variable_174; // BlendColors.Lerp output 0
  3260.             Variable_174 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_146, Variable_158, Variable_124);
  3261.            
  3262.             GraphOutputs.Material.SetColor(FLinearColor(Variable_171, Variable_172, Variable_173, Variable_174));
  3263.         }
  3264.        
  3265.     };
  3266.     struct FLocalComputeStruct_LocalUpVectorXUpVectorYUpVectorZ_LOD0
  3267.     {
  3268.         struct FVoxelGraphOutputs
  3269.         {
  3270.             float& UpVectorX;
  3271.             float& UpVectorY;
  3272.             float& UpVectorZ;
  3273.         };
  3274.         struct FVoxelConstantsCache
  3275.         {
  3276.         };
  3277.         struct FVoxelCache
  3278.         {
  3279.         };
  3280.        
  3281.         FLocalComputeStruct_LocalUpVectorXUpVectorYUpVectorZ_LOD0(const float& InScale, const float& InPlainsNoiseHeight, const float& InRingEdgesHardness, const float& InWidth_in_Degrees, const float& InRiverDepth, const float& InThickness, const float& InBaseHeight, const float& InBaseNoiseHeight, const float& InBaseNoiseFrquency, const float& InMountainsNoiseHeight, const float& InRadius, const float& InRiverWidth, const float& InPlainsNoiseFrequency, const float& InMountainsNoiseFrequency, const FRichCurve& InRingShape, const FRichCurve& InMoutainsMask, const FRichCurve& InRiverMask, const FRichCurve& InPlainsNoiseStrength, const FLinearColor& InPlainsColorLow, const FLinearColor& InRiverColor, const FLinearColor& InBeachColor, const FLinearColor& InMountainsColorHigh, const FLinearColor& InMountainsColorLowLow, const FLinearColor& InMountainsColorLowHigh, const FLinearColor& InPlainsColorHigh, const FLinearColor& InRingOuterColor)
  3282.             : Scale(InScale)
  3283.             , PlainsNoiseHeight(InPlainsNoiseHeight)
  3284.             , RingEdgesHardness(InRingEdgesHardness)
  3285.             , Width_in_Degrees(InWidth_in_Degrees)
  3286.             , RiverDepth(InRiverDepth)
  3287.             , Thickness(InThickness)
  3288.             , BaseHeight(InBaseHeight)
  3289.             , BaseNoiseHeight(InBaseNoiseHeight)
  3290.             , BaseNoiseFrquency(InBaseNoiseFrquency)
  3291.             , MountainsNoiseHeight(InMountainsNoiseHeight)
  3292.             , Radius(InRadius)
  3293.             , RiverWidth(InRiverWidth)
  3294.             , PlainsNoiseFrequency(InPlainsNoiseFrequency)
  3295.             , MountainsNoiseFrequency(InMountainsNoiseFrequency)
  3296.             , RingShape(InRingShape)
  3297.             , MoutainsMask(InMoutainsMask)
  3298.             , RiverMask(InRiverMask)
  3299.             , PlainsNoiseStrength(InPlainsNoiseStrength)
  3300.             , PlainsColorLow(InPlainsColorLow)
  3301.             , RiverColor(InRiverColor)
  3302.             , BeachColor(InBeachColor)
  3303.             , MountainsColorHigh(InMountainsColorHigh)
  3304.             , MountainsColorLowLow(InMountainsColorLowLow)
  3305.             , MountainsColorLowHigh(InMountainsColorLowHigh)
  3306.             , PlainsColorHigh(InPlainsColorHigh)
  3307.             , RingOuterColor(InRingOuterColor)
  3308.         {
  3309.         }
  3310.        
  3311.         void Init(const FVoxelWorldGeneratorInit& InitStruct)
  3312.         {
  3313.             FVoxelCache Cache;
  3314.            
  3315.             {
  3316.             }
  3317.            
  3318.             Function0_Init(InitStruct);
  3319.            
  3320.             {
  3321.             }
  3322.         }
  3323.         void ComputeX(FVoxelCache& Cache, const FVoxelContext& Context, FVoxelGraphOutputs& GraphOutputs) const
  3324.         {
  3325.             Function0_X_Compute(GraphOutputs, Cache, Context);
  3326.         }
  3327.         void ComputeXY(FVoxelCache& Cache, const FVoxelContext& Context, FVoxelGraphOutputs& GraphOutputs) const
  3328.         {
  3329.             Function0_XY_Compute(GraphOutputs, Cache, Context);
  3330.         }
  3331.         void ComputeXYZ(FVoxelCache& Cache, const FVoxelContext& Context, FVoxelGraphOutputs& GraphOutputs) const
  3332.         {
  3333.             Function0_XYZ_Compute(GraphOutputs, Cache, Context);
  3334.         }
  3335.         void Get(const FVoxelContext&Context, float& UpVectorX, float& UpVectorY, float& UpVectorZ) const
  3336.         {
  3337.             FVoxelGraphOutputs GraphOutputs{UpVectorX, UpVectorY, UpVectorZ};
  3338.             Function0_Compute(GraphOutputs, Context);
  3339.         }
  3340.        
  3341.     private:
  3342.         FVoxelConstantsCache ConstantsCache;
  3343.        
  3344.         const float& Scale;
  3345.         const float& PlainsNoiseHeight;
  3346.         const float& RingEdgesHardness;
  3347.         const float& Width_in_Degrees;
  3348.         const float& RiverDepth;
  3349.         const float& Thickness;
  3350.         const float& BaseHeight;
  3351.         const float& BaseNoiseHeight;
  3352.         const float& BaseNoiseFrquency;
  3353.         const float& MountainsNoiseHeight;
  3354.         const float& Radius;
  3355.         const float& RiverWidth;
  3356.         const float& PlainsNoiseFrequency;
  3357.         const float& MountainsNoiseFrequency;
  3358.         const FRichCurve& RingShape;
  3359.         const FRichCurve& MoutainsMask;
  3360.         const FRichCurve& RiverMask;
  3361.         const FRichCurve& PlainsNoiseStrength;
  3362.         const FLinearColor& PlainsColorLow;
  3363.         const FLinearColor& RiverColor;
  3364.         const FLinearColor& BeachColor;
  3365.         const FLinearColor& MountainsColorHigh;
  3366.         const FLinearColor& MountainsColorLowLow;
  3367.         const FLinearColor& MountainsColorLowHigh;
  3368.         const FLinearColor& PlainsColorHigh;
  3369.         const FLinearColor& RingOuterColor;
  3370.        
  3371.         ///////////////////////////////////////////////////////////////////////
  3372.         //////////////////////////// Init functions ///////////////////////////
  3373.         ///////////////////////////////////////////////////////////////////////
  3374.        
  3375.         void Function0_Init(const FVoxelWorldGeneratorInit& InitStruct)
  3376.         {
  3377.         }
  3378.        
  3379.         ///////////////////////////////////////////////////////////////////////
  3380.         ////////////////////////// Compute functions //////////////////////////
  3381.         ///////////////////////////////////////////////////////////////////////
  3382.        
  3383.         void Function0_X_Compute(FVoxelGraphOutputs& GraphOutputs, FVoxelCache& Cache, const FVoxelContext& Context) const
  3384.         {
  3385.         }
  3386.        
  3387.         void Function0_XY_Compute(FVoxelGraphOutputs& GraphOutputs, FVoxelCache& Cache, const FVoxelContext& Context) const
  3388.         {
  3389.         }
  3390.        
  3391.         void Function0_XYZ_Compute(FVoxelGraphOutputs& GraphOutputs, FVoxelCache& Cache, const FVoxelContext& Context) const
  3392.         {
  3393.         }
  3394.        
  3395.         void Function0_Compute(FVoxelGraphOutputs& GraphOutputs, const FVoxelContext& Context) const
  3396.         {
  3397.         }
  3398.        
  3399.     };
  3400.     struct FLocalComputeStruct_LocalValueRangeAnalysis_LOD0
  3401.     {
  3402.         struct FVoxelGraphOutputs
  3403.         {
  3404.             TVoxelRange<float>& Value;
  3405.         };
  3406.         struct FVoxelConstantsCache
  3407.         {
  3408.             TVoxelRange<float> Variable_47; // MountainsNoiseHeight = 500.0 output 0
  3409.             TVoxelRange<float> Variable_50; // MountainsNoiseFrequency = 0.2 output 0
  3410.             TVoxelRange<float> Variable_22; // RingEdgesHardness = 10.0 output 0
  3411.             TVoxelRange<float> Variable_25; // PI.3.141593 output 0
  3412.             TVoxelRange<float> Variable_31; // Width in Degrees = 50.0 output 0
  3413.             TVoxelRange<float> Variable_58; // PlainsNoiseFrequency = 0.2 output 0
  3414.             TVoxelRange<float> Variable_5; // Radius = 7000.0 output 0
  3415.             TVoxelRange<float> Variable_38; // BaseHeight = 1000.0 output 0
  3416.             TVoxelRange<float> Variable_41; // BaseNoiseHeight = 250.0 output 0
  3417.             TVoxelRange<float> Variable_44; // BaseNoiseFrquency = 0.005 output 0
  3418.             TVoxelRange<float> Variable_72; // Scale = 10.0 output 0
  3419.             TVoxelRange<float> Variable_76; // Thickness = 500.0 output 0
  3420.             TVoxelRange<float> Variable_55; // PlainsNoiseHeight = 250.0 output 0
  3421.             TVoxelRange<float> Variable_78; // PI.3.141593 output 0
  3422.             TVoxelRange<float> Variable_61; // RiverDepth = 100.0 output 0
  3423.             TVoxelRange<float> Variable_36; // / output 0
  3424.             TVoxelRange<float> Variable_73; // * output 0
  3425.             TVoxelRange<float> Variable_77; // * output 0
  3426.             TVoxelRange<float> Variable_6; // + output 0
  3427.             TVoxelRange<float> Variable_74; // / output 0
  3428.             TVoxelRange<float> Variable_35; // - output 0
  3429.         };
  3430.         struct FVoxelCache
  3431.         {
  3432.             TVoxelRange<float> Variable_0; // X output 0
  3433.             TVoxelRange<float> Variable_24; // X output 0
  3434.             TVoxelRange<float> Variable_1; // Y output 0
  3435.             TVoxelRange<float> Variable_29; // Y output 0
  3436.             TVoxelRange<float> Variable_23; // ATAN2 output 0
  3437.             TVoxelRange<float> Variable_26; // / output 0
  3438.             TVoxelRange<float> Variable_28; // * output 0
  3439.             TVoxelRange<float> Variable_43; // * output 0
  3440.             TVoxelRange<float> Variable_49; // * output 0
  3441.             TVoxelRange<float> Variable_57; // * output 0
  3442.         };
  3443.        
  3444.         FLocalComputeStruct_LocalValueRangeAnalysis_LOD0(const float& InScale, const float& InPlainsNoiseHeight, const float& InRingEdgesHardness, const float& InWidth_in_Degrees, const float& InRiverDepth, const float& InThickness, const float& InBaseHeight, const float& InBaseNoiseHeight, const float& InBaseNoiseFrquency, const float& InMountainsNoiseHeight, const float& InRadius, const float& InRiverWidth, const float& InPlainsNoiseFrequency, const float& InMountainsNoiseFrequency, const FRichCurve& InRingShape, const FRichCurve& InMoutainsMask, const FRichCurve& InRiverMask, const FRichCurve& InPlainsNoiseStrength, const FLinearColor& InPlainsColorLow, const FLinearColor& InRiverColor, const FLinearColor& InBeachColor, const FLinearColor& InMountainsColorHigh, const FLinearColor& InMountainsColorLowLow, const FLinearColor& InMountainsColorLowHigh, const FLinearColor& InPlainsColorHigh, const FLinearColor& InRingOuterColor)
  3445.             : Scale(InScale)
  3446.             , PlainsNoiseHeight(InPlainsNoiseHeight)
  3447.             , RingEdgesHardness(InRingEdgesHardness)
  3448.             , Width_in_Degrees(InWidth_in_Degrees)
  3449.             , RiverDepth(InRiverDepth)
  3450.             , Thickness(InThickness)
  3451.             , BaseHeight(InBaseHeight)
  3452.             , BaseNoiseHeight(InBaseNoiseHeight)
  3453.             , BaseNoiseFrquency(InBaseNoiseFrquency)
  3454.             , MountainsNoiseHeight(InMountainsNoiseHeight)
  3455.             , Radius(InRadius)
  3456.             , RiverWidth(InRiverWidth)
  3457.             , PlainsNoiseFrequency(InPlainsNoiseFrequency)
  3458.             , MountainsNoiseFrequency(InMountainsNoiseFrequency)
  3459.             , RingShape(InRingShape)
  3460.             , MoutainsMask(InMoutainsMask)
  3461.             , RiverMask(InRiverMask)
  3462.             , PlainsNoiseStrength(InPlainsNoiseStrength)
  3463.             , PlainsColorLow(InPlainsColorLow)
  3464.             , RiverColor(InRiverColor)
  3465.             , BeachColor(InBeachColor)
  3466.             , MountainsColorHigh(InMountainsColorHigh)
  3467.             , MountainsColorLowLow(InMountainsColorLowLow)
  3468.             , MountainsColorLowHigh(InMountainsColorLowHigh)
  3469.             , PlainsColorHigh(InPlainsColorHigh)
  3470.             , RingOuterColor(InRingOuterColor)
  3471.         {
  3472.         }
  3473.        
  3474.         void Init(const FVoxelWorldGeneratorInit& InitStruct)
  3475.         {
  3476.             FVoxelCache Cache;
  3477.            
  3478.             {
  3479.             }
  3480.            
  3481.             Function0_Init(InitStruct);
  3482.            
  3483.             {
  3484.                 // MountainsNoiseHeight = 500.0
  3485.                 ConstantsCache.Variable_47 = MountainsNoiseHeight;
  3486.                
  3487.                 // MountainsNoiseFrequency = 0.2
  3488.                 ConstantsCache.Variable_50 = MountainsNoiseFrequency;
  3489.                
  3490.                 // RingEdgesHardness = 10.0
  3491.                 ConstantsCache.Variable_22 = RingEdgesHardness;
  3492.                
  3493.                 // PI.3.141593
  3494.                 ConstantsCache.Variable_25 = 3.141593;
  3495.                
  3496.                 // Width in Degrees = 50.0
  3497.                 ConstantsCache.Variable_31 = Width_in_Degrees;
  3498.                
  3499.                 // PlainsNoiseFrequency = 0.2
  3500.                 ConstantsCache.Variable_58 = PlainsNoiseFrequency;
  3501.                
  3502.                 // Radius = 7000.0
  3503.                 ConstantsCache.Variable_5 = Radius;
  3504.                
  3505.                 // BaseHeight = 1000.0
  3506.                 ConstantsCache.Variable_38 = BaseHeight;
  3507.                
  3508.                 // BaseNoiseHeight = 250.0
  3509.                 ConstantsCache.Variable_41 = BaseNoiseHeight;
  3510.                
  3511.                 // BaseNoiseFrquency = 0.005
  3512.                 ConstantsCache.Variable_44 = BaseNoiseFrquency;
  3513.                
  3514.                 // Scale = 10.0
  3515.                 ConstantsCache.Variable_72 = Scale;
  3516.                
  3517.                 // Thickness = 500.0
  3518.                 ConstantsCache.Variable_76 = Thickness;
  3519.                
  3520.                 // PlainsNoiseHeight = 250.0
  3521.                 ConstantsCache.Variable_55 = PlainsNoiseHeight;
  3522.                
  3523.                 // PI.3.141593
  3524.                 ConstantsCache.Variable_78 = 3.141593;
  3525.                
  3526.                 // RiverDepth = 100.0
  3527.                 ConstantsCache.Variable_61 = RiverDepth;
  3528.                
  3529.                 // /
  3530.                 ConstantsCache.Variable_36 = ConstantsCache.Variable_31 / TVoxelRange<float>(360.0f);
  3531.                
  3532.                 // *
  3533.                 ConstantsCache.Variable_73 = ConstantsCache.Variable_5 * ConstantsCache.Variable_72;
  3534.                
  3535.                 // *
  3536.                 ConstantsCache.Variable_77 = ConstantsCache.Variable_76 * ConstantsCache.Variable_72;
  3537.                
  3538.                 // +
  3539.                 ConstantsCache.Variable_6 = ConstantsCache.Variable_73 + ConstantsCache.Variable_77;
  3540.                
  3541.                 // /
  3542.                 ConstantsCache.Variable_74 = ConstantsCache.Variable_73 / ConstantsCache.Variable_72;
  3543.                
  3544.                 // -
  3545.                 ConstantsCache.Variable_35 = TVoxelRange<float>(0.5f) - ConstantsCache.Variable_36;
  3546.                
  3547.             }
  3548.         }
  3549.         void Get(const FVoxelContextRange&Context, TVoxelRange<float>& Value) const
  3550.         {
  3551.             FVoxelGraphOutputs GraphOutputs{Value};
  3552.             Function0_Compute(GraphOutputs, Context);
  3553.         }
  3554.        
  3555.     private:
  3556.         FVoxelConstantsCache ConstantsCache;
  3557.         FastNoise _2D_Simplex_Noise_Fractal_15565_Noise;
  3558.         FastNoise _2D_Simplex_Noise_Fractal_15566_Noise;
  3559.         FastNoise _2D_Perlin_Noise_7433_Noise;
  3560.         FastNoise _2D_Simplex_Noise_8753_Noise;
  3561.        
  3562.         const float& Scale;
  3563.         const float& PlainsNoiseHeight;
  3564.         const float& RingEdgesHardness;
  3565.         const float& Width_in_Degrees;
  3566.         const float& RiverDepth;
  3567.         const float& Thickness;
  3568.         const float& BaseHeight;
  3569.         const float& BaseNoiseHeight;
  3570.         const float& BaseNoiseFrquency;
  3571.         const float& MountainsNoiseHeight;
  3572.         const float& Radius;
  3573.         const float& RiverWidth;
  3574.         const float& PlainsNoiseFrequency;
  3575.         const float& MountainsNoiseFrequency;
  3576.         const FRichCurve& RingShape;
  3577.         const FRichCurve& MoutainsMask;
  3578.         const FRichCurve& RiverMask;
  3579.         const FRichCurve& PlainsNoiseStrength;
  3580.         const FLinearColor& PlainsColorLow;
  3581.         const FLinearColor& RiverColor;
  3582.         const FLinearColor& BeachColor;
  3583.         const FLinearColor& MountainsColorHigh;
  3584.         const FLinearColor& MountainsColorLowLow;
  3585.         const FLinearColor& MountainsColorLowHigh;
  3586.         const FLinearColor& PlainsColorHigh;
  3587.         const FLinearColor& RingOuterColor;
  3588.        
  3589.         ///////////////////////////////////////////////////////////////////////
  3590.         //////////////////////////// Init functions ///////////////////////////
  3591.         ///////////////////////////////////////////////////////////////////////
  3592.        
  3593.         void Function0_Init(const FVoxelWorldGeneratorInit& InitStruct)
  3594.         {
  3595.             // Init of 2D Simplex Noise Fractal
  3596.             _2D_Simplex_Noise_Fractal_15565_Noise.SetSeed(Seed(1337));
  3597.             _2D_Simplex_Noise_Fractal_15565_Noise.SetFrequency(0.02);
  3598.             _2D_Simplex_Noise_Fractal_15565_Noise.SetInterp(FastNoise::Interp::Quintic);
  3599.             _2D_Simplex_Noise_Fractal_15565_Noise.SetFractalOctaves(5);
  3600.             _2D_Simplex_Noise_Fractal_15565_Noise.SetFractalLacunarity(2.0);
  3601.             _2D_Simplex_Noise_Fractal_15565_Noise.SetFractalGain(0.5);
  3602.             _2D_Simplex_Noise_Fractal_15565_Noise.SetFractalType(FastNoise::FractalType::FBM);
  3603.            
  3604.             // Init of 2D Simplex Noise Fractal
  3605.             _2D_Simplex_Noise_Fractal_15566_Noise.SetSeed(Seed(1337));
  3606.             _2D_Simplex_Noise_Fractal_15566_Noise.SetFrequency(0.02);
  3607.             _2D_Simplex_Noise_Fractal_15566_Noise.SetInterp(FastNoise::Interp::Quintic);
  3608.             _2D_Simplex_Noise_Fractal_15566_Noise.SetFractalOctaves(8);
  3609.             _2D_Simplex_Noise_Fractal_15566_Noise.SetFractalLacunarity(2.0);
  3610.             _2D_Simplex_Noise_Fractal_15566_Noise.SetFractalGain(0.5);
  3611.             _2D_Simplex_Noise_Fractal_15566_Noise.SetFractalType(FastNoise::FractalType::FBM);
  3612.            
  3613.             // Init of 2D Perlin Noise
  3614.             _2D_Perlin_Noise_7433_Noise.SetSeed(Seed(1338));
  3615.             _2D_Perlin_Noise_7433_Noise.SetFrequency(0.1);
  3616.             _2D_Perlin_Noise_7433_Noise.SetInterp(FastNoise::Interp::Quintic);
  3617.            
  3618.             // Init of 2D Simplex Noise
  3619.             _2D_Simplex_Noise_8753_Noise.SetSeed(Seed(1337));
  3620.             _2D_Simplex_Noise_8753_Noise.SetFrequency(0.02);
  3621.             _2D_Simplex_Noise_8753_Noise.SetInterp(FastNoise::Interp::Quintic);
  3622.            
  3623.         }
  3624.        
  3625.         ///////////////////////////////////////////////////////////////////////
  3626.         ////////////////////////// Compute functions //////////////////////////
  3627.         ///////////////////////////////////////////////////////////////////////
  3628.        
  3629.         void Function0_Compute(FVoxelGraphOutputs& GraphOutputs, const FVoxelContextRange& Context) const
  3630.         {
  3631.             // Static Clamp: 0.0 <= X <= 1.0
  3632.             TVoxelRange<float> Variable_68; // Static Clamp: 0.0 <= X <= 1.0 output 0
  3633.             Variable_68 = { 0.000000f, 1.000000f };
  3634.            
  3635.             // *
  3636.             TVoxelRange<float> Variable_37; // * output 0
  3637.             Variable_37 = Variable_68 * ConstantsCache.Variable_38;
  3638.            
  3639.             // Z
  3640.             TVoxelRange<float> Variable_12; // Z output 0
  3641.             Variable_12 = Context.Z;
  3642.            
  3643.             // X
  3644.             TVoxelRange<float> Variable_0; // X output 0
  3645.             Variable_0 = Context.X;
  3646.            
  3647.             // Y
  3648.             TVoxelRange<float> Variable_1; // Y output 0
  3649.             Variable_1 = Context.Y;
  3650.            
  3651.             // Z
  3652.             TVoxelRange<float> Variable_2; // Z output 0
  3653.             Variable_2 = Context.Z;
  3654.            
  3655.             // Vector Length
  3656.             TVoxelRange<float> Variable_3; // Vector Length output 0
  3657.             Variable_3 = FVoxelNodeFunctions::VectorLength(Variable_0, Variable_1, Variable_2);
  3658.            
  3659.             // +
  3660.             TVoxelRange<float> Variable_30; // + output 0
  3661.             Variable_30 = Variable_3 + TVoxelRange<float>(0.001f);
  3662.            
  3663.             // /
  3664.             TVoxelRange<float> Variable_13; // / output 0
  3665.             Variable_13 = Variable_12 / Variable_30;
  3666.            
  3667.             // ACOS
  3668.             TVoxelRange<float> Variable_14; // ACOS output 0
  3669.             Variable_14 = FVoxelNodeFunctions::Acos(Variable_13);
  3670.            
  3671.             // /
  3672.             TVoxelRange<float> Variable_10; // / output 0
  3673.             Variable_10 = Variable_14 / ConstantsCache.Variable_78;
  3674.            
  3675.             // *
  3676.             TVoxelRange<float> Variable_27; // * output 0
  3677.             Variable_27 = ConstantsCache.Variable_74 * Variable_10;
  3678.            
  3679.             // *
  3680.             TVoxelRange<float> Variable_42; // * output 0
  3681.             Variable_42 = Variable_27 * ConstantsCache.Variable_44;
  3682.            
  3683.             // Y
  3684.             TVoxelRange<float> Variable_29; // Y output 0
  3685.             Variable_29 = Context.Y;
  3686.            
  3687.             // X
  3688.             TVoxelRange<float> Variable_24; // X output 0
  3689.             Variable_24 = Context.X;
  3690.            
  3691.             // ATAN2
  3692.             TVoxelRange<float> Variable_23; // ATAN2 output 0
  3693.             Variable_23 = FVoxelNodeFunctions::Atan2(Variable_29, Variable_24);
  3694.            
  3695.             // /
  3696.             TVoxelRange<float> Variable_26; // / output 0
  3697.             Variable_26 = Variable_23 / ConstantsCache.Variable_25;
  3698.            
  3699.             // *
  3700.             TVoxelRange<float> Variable_28; // * output 0
  3701.             Variable_28 = ConstantsCache.Variable_74 * Variable_26;
  3702.            
  3703.             // *
  3704.             TVoxelRange<float> Variable_43; // * output 0
  3705.             Variable_43 = Variable_28 * ConstantsCache.Variable_44;
  3706.            
  3707.             // 2D Simplex Noise Fractal
  3708.             TVoxelRange<float> Variable_39; // 2D Simplex Noise Fractal output 0
  3709.             Variable_39 = { -1, 1 };
  3710.            
  3711.             // *
  3712.             TVoxelRange<float> Variable_40; // * output 0
  3713.             Variable_40 = Variable_39 * ConstantsCache.Variable_41;
  3714.            
  3715.             // *
  3716.             TVoxelRange<float> Variable_48; // * output 0
  3717.             Variable_48 = Variable_27 * ConstantsCache.Variable_50;
  3718.            
  3719.             // *
  3720.             TVoxelRange<float> Variable_49; // * output 0
  3721.             Variable_49 = Variable_28 * ConstantsCache.Variable_50;
  3722.            
  3723.             // 2D Simplex Noise Fractal
  3724.             TVoxelRange<float> Variable_45; // 2D Simplex Noise Fractal output 0
  3725.             Variable_45 = { -1, 1 };
  3726.            
  3727.             // Static Clamp: 0.0 <= X <= 1.0
  3728.             TVoxelRange<float> Variable_69; // Static Clamp: 0.0 <= X <= 1.0 output 0
  3729.             Variable_69 = { 0.000000f, 1.000000f };
  3730.            
  3731.             // *
  3732.             TVoxelRange<float> Variable_46; // * output 0
  3733.             Variable_46 = Variable_45 * ConstantsCache.Variable_47 * Variable_69;
  3734.            
  3735.             // 2D Perlin Noise
  3736.             TVoxelRange<float> Variable_51; // 2D Perlin Noise output 0
  3737.             Variable_51 = { -1, 1 };
  3738.            
  3739.             // *
  3740.             TVoxelRange<float> Variable_52; // * output 0
  3741.             Variable_52 = ConstantsCache.Variable_47 * Variable_69 * Variable_51 * TVoxelRange<float>(0.1f);
  3742.            
  3743.             // *
  3744.             TVoxelRange<float> Variable_56; // * output 0
  3745.             Variable_56 = Variable_27 * ConstantsCache.Variable_58;
  3746.            
  3747.             // *
  3748.             TVoxelRange<float> Variable_57; // * output 0
  3749.             Variable_57 = Variable_28 * ConstantsCache.Variable_58;
  3750.            
  3751.             // 2D Simplex Noise
  3752.             TVoxelRange<float> Variable_59; // 2D Simplex Noise output 0
  3753.             Variable_59 = { -1, 1 };
  3754.            
  3755.             // Static Clamp: -1.0 <= X <= 1.0
  3756.             TVoxelRange<float> Variable_71; // Static Clamp: -1.0 <= X <= 1.0 output 0
  3757.             Variable_71 = { -1.000000f, 1.000000f };
  3758.            
  3759.             // Min (float)
  3760.             TVoxelRange<float> Variable_63; // Min (float) output 0
  3761.             Variable_63 = FVoxelNodeFunctions::Min<float>(Variable_71, TVoxelRange<float>(0.0f));
  3762.            
  3763.             // *
  3764.             TVoxelRange<float> Variable_64; // * output 0
  3765.             Variable_64 = Variable_63 * TVoxelRange<float>(-1.0f);
  3766.            
  3767.             // *
  3768.             TVoxelRange<float> Variable_65; // * output 0
  3769.             Variable_65 = Variable_59 * Variable_64;
  3770.            
  3771.             // 1 - X
  3772.             TVoxelRange<float> Variable_66; // 1 - X output 0
  3773.             Variable_66 = 1 - Variable_64;
  3774.            
  3775.             // -
  3776.             TVoxelRange<float> Variable_67; // - output 0
  3777.             Variable_67 = Variable_65 - Variable_66;
  3778.            
  3779.             // 1 - X
  3780.             TVoxelRange<float> Variable_53; // 1 - X output 0
  3781.             Variable_53 = 1 - Variable_69;
  3782.            
  3783.             // Static Clamp: 0.0 <= X <= 1.0
  3784.             TVoxelRange<float> Variable_70; // Static Clamp: 0.0 <= X <= 1.0 output 0
  3785.             Variable_70 = { 0.000000f, 1.000000f };
  3786.            
  3787.             // *
  3788.             TVoxelRange<float> Variable_54; // * output 0
  3789.             Variable_54 = Variable_67 * ConstantsCache.Variable_55 * Variable_53 * Variable_70;
  3790.            
  3791.             // Max (float)
  3792.             TVoxelRange<float> Variable_62; // Max (float) output 0
  3793.             Variable_62 = FVoxelNodeFunctions::Max<float>(Variable_71, TVoxelRange<float>(0.0f));
  3794.            
  3795.             // *
  3796.             TVoxelRange<float> Variable_60; // * output 0
  3797.             Variable_60 = Variable_62 * TVoxelRange<float>(-1.0f) * ConstantsCache.Variable_61;
  3798.            
  3799.             // +
  3800.             TVoxelRange<float> Variable_33; // + output 0
  3801.             Variable_33 = Variable_37 + Variable_40 + Variable_46 + Variable_52 + Variable_54 + Variable_60;
  3802.            
  3803.             // *
  3804.             TVoxelRange<float> Variable_75; // * output 0
  3805.             Variable_75 = Variable_33 * ConstantsCache.Variable_72;
  3806.            
  3807.             // -
  3808.             TVoxelRange<float> Variable_32; // - output 0
  3809.             Variable_32 = ConstantsCache.Variable_73 - Variable_75;
  3810.            
  3811.             // -
  3812.             TVoxelRange<float> Variable_4; // - output 0
  3813.             Variable_4 = Variable_32 - Variable_30;
  3814.            
  3815.             // -
  3816.             TVoxelRange<float> Variable_7; // - output 0
  3817.             Variable_7 = Variable_30 - ConstantsCache.Variable_6;
  3818.            
  3819.             // Max (float)
  3820.             TVoxelRange<float> Variable_8; // Max (float) output 0
  3821.             Variable_8 = FVoxelNodeFunctions::Max<float>(Variable_4, Variable_7);
  3822.            
  3823.             // -
  3824.             TVoxelRange<float> Variable_19; // - output 0
  3825.             Variable_19 = Variable_8 - TVoxelRange<float>(1.0f);
  3826.            
  3827.             // 1 - X
  3828.             TVoxelRange<float> Variable_11; // 1 - X output 0
  3829.             Variable_11 = 1 - Variable_10;
  3830.            
  3831.             // Min (float)
  3832.             TVoxelRange<float> Variable_9; // Min (float) output 0
  3833.             Variable_9 = FVoxelNodeFunctions::Min<float>(Variable_10, Variable_11);
  3834.            
  3835.             // -
  3836.             TVoxelRange<float> Variable_15; // - output 0
  3837.             Variable_15 = Variable_9 - ConstantsCache.Variable_35;
  3838.            
  3839.             // /
  3840.             TVoxelRange<float> Variable_34; // / output 0
  3841.             Variable_34 = Variable_15 / ConstantsCache.Variable_36;
  3842.            
  3843.             // Max (float)
  3844.             TVoxelRange<float> Variable_18; // Max (float) output 0
  3845.             Variable_18 = FVoxelNodeFunctions::Max<float>(Variable_34, TVoxelRange<float>(0.0f));
  3846.            
  3847.             // *
  3848.             TVoxelRange<float> Variable_20; // * output 0
  3849.             Variable_20 = Variable_18 * ConstantsCache.Variable_22;
  3850.            
  3851.             // Min (float)
  3852.             TVoxelRange<float> Variable_21; // Min (float) output 0
  3853.             Variable_21 = FVoxelNodeFunctions::Min<float>(Variable_20, TVoxelRange<float>(1.0f));
  3854.            
  3855.             // *
  3856.             TVoxelRange<float> Variable_16; // * output 0
  3857.             Variable_16 = Variable_19 * Variable_21;
  3858.            
  3859.             // +
  3860.             TVoxelRange<float> Variable_17; // + output 0
  3861.             Variable_17 = Variable_16 + TVoxelRange<float>(1.0f);
  3862.            
  3863.             GraphOutputs.Value = Variable_17;
  3864.         }
  3865.        
  3866.     };
  3867.     struct FLocalComputeStruct_LocalValueCache2DCache_LOD0
  3868.     {
  3869.         struct FVoxelGraphOutputs
  3870.         {
  3871.             float& Value;
  3872.         };
  3873.         struct FVoxelConstantsCache
  3874.         {
  3875.             float Variable_52; // MountainsNoiseFrequency = 0.2 output 0
  3876.             float Variable_58; // PlainsNoiseHeight = 250.0 output 0
  3877.             float Variable_22; // RingEdgesHardness = 10.0 output 0
  3878.             float Variable_25; // PI.3.141593 output 0
  3879.             float Variable_31; // Width in Degrees = 50.0 output 0
  3880.             float Variable_66; // RiverDepth = 100.0 output 0
  3881.             float Variable_96; // Thickness = 500.0 output 0
  3882.             float Variable_40; // BaseHeight = 1000.0 output 0
  3883.             float Variable_43; // BaseNoiseHeight = 250.0 output 0
  3884.             float Variable_46; // BaseNoiseFrquency = 0.005 output 0
  3885.             float Variable_49; // MountainsNoiseHeight = 500.0 output 0
  3886.             float Variable_5; // Radius = 7000.0 output 0
  3887.             float Variable_95; // RiverWidth = 1.0 output 0
  3888.             float Variable_61; // PlainsNoiseFrequency = 0.2 output 0
  3889.             float Variable_98; // PI.3.141593 output 0
  3890.             float Variable_67; // PI.3.141593 output 0
  3891.             float Variable_90; // Scale = 10.0 output 0
  3892.             float Variable_91; // * output 0
  3893.             float Variable_37; // / output 0
  3894.             float Variable_97; // * output 0
  3895.             float Variable_6; // + output 0
  3896.             float Variable_92; // / output 0
  3897.             float Variable_36; // - output 0
  3898.         };
  3899.         struct FVoxelCache
  3900.         {
  3901.             float Variable_0; // X output 0
  3902.             float Variable_24; // X output 0
  3903.             float Variable_1; // Y output 0
  3904.             float Variable_29; // Y output 0
  3905.             float Variable_23; // ATAN2 output 0
  3906.             float Variable_26; // / output 0
  3907.             float Variable_28; // * output 0
  3908.             float Variable_45; // * output 0
  3909.             float Variable_51; // * output 0
  3910.             float Variable_60; // * output 0
  3911.             float Variable_79; // 2D Simplex Noise output 0
  3912.             float Variable_76; // * output 0
  3913.         };
  3914.        
  3915.         FLocalComputeStruct_LocalValueCache2DCache_LOD0(const float& InScale, const float& InPlainsNoiseHeight, const float& InRingEdgesHardness, const float& InWidth_in_Degrees, const float& InRiverDepth, const float& InThickness, const float& InBaseHeight, const float& InBaseNoiseHeight, const float& InBaseNoiseFrquency, const float& InMountainsNoiseHeight, const float& InRadius, const float& InRiverWidth, const float& InPlainsNoiseFrequency, const float& InMountainsNoiseFrequency, const FRichCurve& InRingShape, const FRichCurve& InMoutainsMask, const FRichCurve& InRiverMask, const FRichCurve& InPlainsNoiseStrength, const FLinearColor& InPlainsColorLow, const FLinearColor& InRiverColor, const FLinearColor& InBeachColor, const FLinearColor& InMountainsColorHigh, const FLinearColor& InMountainsColorLowLow, const FLinearColor& InMountainsColorLowHigh, const FLinearColor& InPlainsColorHigh, const FLinearColor& InRingOuterColor)
  3916.             : Scale(InScale)
  3917.             , PlainsNoiseHeight(InPlainsNoiseHeight)
  3918.             , RingEdgesHardness(InRingEdgesHardness)
  3919.             , Width_in_Degrees(InWidth_in_Degrees)
  3920.             , RiverDepth(InRiverDepth)
  3921.             , Thickness(InThickness)
  3922.             , BaseHeight(InBaseHeight)
  3923.             , BaseNoiseHeight(InBaseNoiseHeight)
  3924.             , BaseNoiseFrquency(InBaseNoiseFrquency)
  3925.             , MountainsNoiseHeight(InMountainsNoiseHeight)
  3926.             , Radius(InRadius)
  3927.             , RiverWidth(InRiverWidth)
  3928.             , PlainsNoiseFrequency(InPlainsNoiseFrequency)
  3929.             , MountainsNoiseFrequency(InMountainsNoiseFrequency)
  3930.             , RingShape(InRingShape)
  3931.             , MoutainsMask(InMoutainsMask)
  3932.             , RiverMask(InRiverMask)
  3933.             , PlainsNoiseStrength(InPlainsNoiseStrength)
  3934.             , PlainsColorLow(InPlainsColorLow)
  3935.             , RiverColor(InRiverColor)
  3936.             , BeachColor(InBeachColor)
  3937.             , MountainsColorHigh(InMountainsColorHigh)
  3938.             , MountainsColorLowLow(InMountainsColorLowLow)
  3939.             , MountainsColorLowHigh(InMountainsColorLowHigh)
  3940.             , PlainsColorHigh(InPlainsColorHigh)
  3941.             , RingOuterColor(InRingOuterColor)
  3942.         {
  3943.         }
  3944.        
  3945.         void Init(const FVoxelWorldGeneratorInit& InitStruct)
  3946.         {
  3947.             FVoxelCache Cache;
  3948.            
  3949.             {
  3950.             }
  3951.            
  3952.             Function0_Init(InitStruct);
  3953.            
  3954.             {
  3955.                 // MountainsNoiseFrequency = 0.2
  3956.                 ConstantsCache.Variable_52 = MountainsNoiseFrequency;
  3957.                
  3958.                 // PlainsNoiseHeight = 250.0
  3959.                 ConstantsCache.Variable_58 = PlainsNoiseHeight;
  3960.                
  3961.                 // RingEdgesHardness = 10.0
  3962.                 ConstantsCache.Variable_22 = RingEdgesHardness;
  3963.                
  3964.                 // PI.3.141593
  3965.                 ConstantsCache.Variable_25 = 3.141593;
  3966.                
  3967.                 // Width in Degrees = 50.0
  3968.                 ConstantsCache.Variable_31 = Width_in_Degrees;
  3969.                
  3970.                 // RiverDepth = 100.0
  3971.                 ConstantsCache.Variable_66 = RiverDepth;
  3972.                
  3973.                 // Thickness = 500.0
  3974.                 ConstantsCache.Variable_96 = Thickness;
  3975.                
  3976.                 // BaseHeight = 1000.0
  3977.                 ConstantsCache.Variable_40 = BaseHeight;
  3978.                
  3979.                 // BaseNoiseHeight = 250.0
  3980.                 ConstantsCache.Variable_43 = BaseNoiseHeight;
  3981.                
  3982.                 // BaseNoiseFrquency = 0.005
  3983.                 ConstantsCache.Variable_46 = BaseNoiseFrquency;
  3984.                
  3985.                 // MountainsNoiseHeight = 500.0
  3986.                 ConstantsCache.Variable_49 = MountainsNoiseHeight;
  3987.                
  3988.                 // Radius = 7000.0
  3989.                 ConstantsCache.Variable_5 = Radius;
  3990.                
  3991.                 // RiverWidth = 1.0
  3992.                 ConstantsCache.Variable_95 = RiverWidth;
  3993.                
  3994.                 // PlainsNoiseFrequency = 0.2
  3995.                 ConstantsCache.Variable_61 = PlainsNoiseFrequency;
  3996.                
  3997.                 // PI.3.141593
  3998.                 ConstantsCache.Variable_98 = 3.141593;
  3999.                
  4000.                 // PI.3.141593
  4001.                 ConstantsCache.Variable_67 = 3.141593;
  4002.                
  4003.                 // Scale = 10.0
  4004.                 ConstantsCache.Variable_90 = Scale;
  4005.                
  4006.                 // *
  4007.                 ConstantsCache.Variable_91 = ConstantsCache.Variable_5 * ConstantsCache.Variable_90;
  4008.                
  4009.                 // /
  4010.                 ConstantsCache.Variable_37 = ConstantsCache.Variable_31 / float(360.0f);
  4011.                
  4012.                 // *
  4013.                 ConstantsCache.Variable_97 = ConstantsCache.Variable_96 * ConstantsCache.Variable_90;
  4014.                
  4015.                 // +
  4016.                 ConstantsCache.Variable_6 = ConstantsCache.Variable_91 + ConstantsCache.Variable_97;
  4017.                
  4018.                 // /
  4019.                 ConstantsCache.Variable_92 = ConstantsCache.Variable_91 / ConstantsCache.Variable_90;
  4020.                
  4021.                 // -
  4022.                 ConstantsCache.Variable_36 = float(0.5f) - ConstantsCache.Variable_37;
  4023.                
  4024.             }
  4025.         }
  4026.         void Get(const FVoxelContext&Context, float& Value) const
  4027.         {
  4028.             FVoxelGraphOutputs GraphOutputs{Value};
  4029.             Function0_Compute(GraphOutputs, Context);
  4030.         }
  4031.        
  4032.     private:
  4033.         FVoxelConstantsCache ConstantsCache;
  4034.         FastNoise _2D_Simplex_Noise_8754_Noise;
  4035.         FastNoise _2D_Simplex_Noise_Fractal_15567_Noise;
  4036.         FastNoise _2D_Simplex_Noise_Fractal_15568_Noise;
  4037.         FastNoise _2D_Perlin_Noise_7434_Noise;
  4038.         FastNoise _2D_Simplex_Noise_8755_Noise;
  4039.        
  4040.         const float& Scale;
  4041.         const float& PlainsNoiseHeight;
  4042.         const float& RingEdgesHardness;
  4043.         const float& Width_in_Degrees;
  4044.         const float& RiverDepth;
  4045.         const float& Thickness;
  4046.         const float& BaseHeight;
  4047.         const float& BaseNoiseHeight;
  4048.         const float& BaseNoiseFrquency;
  4049.         const float& MountainsNoiseHeight;
  4050.         const float& Radius;
  4051.         const float& RiverWidth;
  4052.         const float& PlainsNoiseFrequency;
  4053.         const float& MountainsNoiseFrequency;
  4054.         const FRichCurve& RingShape;
  4055.         const FRichCurve& MoutainsMask;
  4056.         const FRichCurve& RiverMask;
  4057.         const FRichCurve& PlainsNoiseStrength;
  4058.         const FLinearColor& PlainsColorLow;
  4059.         const FLinearColor& RiverColor;
  4060.         const FLinearColor& BeachColor;
  4061.         const FLinearColor& MountainsColorHigh;
  4062.         const FLinearColor& MountainsColorLowLow;
  4063.         const FLinearColor& MountainsColorLowHigh;
  4064.         const FLinearColor& PlainsColorHigh;
  4065.         const FLinearColor& RingOuterColor;
  4066.        
  4067.         ///////////////////////////////////////////////////////////////////////
  4068.         //////////////////////////// Init functions ///////////////////////////
  4069.         ///////////////////////////////////////////////////////////////////////
  4070.        
  4071.         void Function0_Init(const FVoxelWorldGeneratorInit& InitStruct)
  4072.         {
  4073.             // Init of 2D Simplex Noise Fractal
  4074.             _2D_Simplex_Noise_Fractal_15567_Noise.SetSeed(Seed(1337));
  4075.             _2D_Simplex_Noise_Fractal_15567_Noise.SetFrequency(0.02);
  4076.             _2D_Simplex_Noise_Fractal_15567_Noise.SetInterp(FastNoise::Interp::Quintic);
  4077.             _2D_Simplex_Noise_Fractal_15567_Noise.SetFractalOctaves(5);
  4078.             _2D_Simplex_Noise_Fractal_15567_Noise.SetFractalLacunarity(2.0);
  4079.             _2D_Simplex_Noise_Fractal_15567_Noise.SetFractalGain(0.5);
  4080.             _2D_Simplex_Noise_Fractal_15567_Noise.SetFractalType(FastNoise::FractalType::FBM);
  4081.            
  4082.             // Init of 2D Simplex Noise Fractal
  4083.             _2D_Simplex_Noise_Fractal_15568_Noise.SetSeed(Seed(1337));
  4084.             _2D_Simplex_Noise_Fractal_15568_Noise.SetFrequency(0.02);
  4085.             _2D_Simplex_Noise_Fractal_15568_Noise.SetInterp(FastNoise::Interp::Quintic);
  4086.             _2D_Simplex_Noise_Fractal_15568_Noise.SetFractalOctaves(8);
  4087.             _2D_Simplex_Noise_Fractal_15568_Noise.SetFractalLacunarity(2.0);
  4088.             _2D_Simplex_Noise_Fractal_15568_Noise.SetFractalGain(0.5);
  4089.             _2D_Simplex_Noise_Fractal_15568_Noise.SetFractalType(FastNoise::FractalType::FBM);
  4090.            
  4091.             // Init of 2D Perlin Noise
  4092.             _2D_Perlin_Noise_7434_Noise.SetSeed(Seed(1338));
  4093.             _2D_Perlin_Noise_7434_Noise.SetFrequency(0.1);
  4094.             _2D_Perlin_Noise_7434_Noise.SetInterp(FastNoise::Interp::Quintic);
  4095.            
  4096.             // Init of 2D Simplex Noise
  4097.             _2D_Simplex_Noise_8755_Noise.SetSeed(Seed(1337));
  4098.             _2D_Simplex_Noise_8755_Noise.SetFrequency(0.02);
  4099.             _2D_Simplex_Noise_8755_Noise.SetInterp(FastNoise::Interp::Quintic);
  4100.            
  4101.             // Init of 2D Simplex Noise
  4102.             _2D_Simplex_Noise_8754_Noise.SetSeed(Seed(1000));
  4103.             _2D_Simplex_Noise_8754_Noise.SetFrequency(0.001);
  4104.             _2D_Simplex_Noise_8754_Noise.SetInterp(FastNoise::Interp::Quintic);
  4105.            
  4106.         }
  4107.        
  4108.         ///////////////////////////////////////////////////////////////////////
  4109.         ////////////////////////// Compute functions //////////////////////////
  4110.         ///////////////////////////////////////////////////////////////////////
  4111.        
  4112.         void Function0_Compute(FVoxelGraphOutputs& GraphOutputs, const FVoxelContext& Context) const
  4113.         {
  4114.             // Z
  4115.             float Variable_12; // Z output 0
  4116.             Variable_12 = Context.Z;
  4117.            
  4118.             // X
  4119.             float Variable_0; // X output 0
  4120.             Variable_0 = Context.X;
  4121.            
  4122.             // Y
  4123.             float Variable_1; // Y output 0
  4124.             Variable_1 = Context.Y;
  4125.            
  4126.             // Z
  4127.             float Variable_2; // Z output 0
  4128.             Variable_2 = Context.Z;
  4129.            
  4130.             // Vector Length
  4131.             float Variable_3; // Vector Length output 0
  4132.             Variable_3 = FVoxelNodeFunctions::VectorLength(Variable_0, Variable_1, Variable_2);
  4133.            
  4134.             // +
  4135.             float Variable_30; // + output 0
  4136.             Variable_30 = Variable_3 + float(0.001f);
  4137.            
  4138.             // /
  4139.             float Variable_13; // / output 0
  4140.             Variable_13 = Variable_12 / Variable_30;
  4141.            
  4142.             // ACOS
  4143.             float Variable_14; // ACOS output 0
  4144.             Variable_14 = FVoxelNodeFunctions::Acos(Variable_13);
  4145.            
  4146.             // /
  4147.             float Variable_10; // / output 0
  4148.             Variable_10 = Variable_14 / ConstantsCache.Variable_98;
  4149.            
  4150.             // 1 - X
  4151.             float Variable_11; // 1 - X output 0
  4152.             Variable_11 = 1 - Variable_10;
  4153.            
  4154.             // Min (float)
  4155.             float Variable_9; // Min (float) output 0
  4156.             Variable_9 = FVoxelNodeFunctions::Min<float>(Variable_10, Variable_11);
  4157.            
  4158.             // -
  4159.             float Variable_15; // - output 0
  4160.             Variable_15 = Variable_9 - ConstantsCache.Variable_36;
  4161.            
  4162.             // /
  4163.             float Variable_35; // / output 0
  4164.             Variable_35 = Variable_15 / ConstantsCache.Variable_37;
  4165.            
  4166.             // 1 - X
  4167.             float Variable_34; // 1 - X output 0
  4168.             Variable_34 = 1 - Variable_35;
  4169.            
  4170.             // RingCurve
  4171.             float Variable_38; // RingCurve output 0
  4172.             Variable_38 = RingShape.Eval(Variable_34);
  4173.            
  4174.             // Static Clamp: 0.0 <= X <= 1.0
  4175.             float Variable_86; // Static Clamp: 0.0 <= X <= 1.0 output 0
  4176.             Variable_86 = FMath::Clamp<float>(Variable_38, 0.000000, 1.000000);
  4177.            
  4178.             // *
  4179.             float Variable_39; // * output 0
  4180.             Variable_39 = Variable_86 * ConstantsCache.Variable_40;
  4181.            
  4182.             // *
  4183.             float Variable_27; // * output 0
  4184.             Variable_27 = ConstantsCache.Variable_92 * Variable_10;
  4185.            
  4186.             // *
  4187.             float Variable_44; // * output 0
  4188.             Variable_44 = Variable_27 * ConstantsCache.Variable_46;
  4189.            
  4190.             // Y
  4191.             float Variable_29; // Y output 0
  4192.             Variable_29 = Context.Y;
  4193.            
  4194.             // X
  4195.             float Variable_24; // X output 0
  4196.             Variable_24 = Context.X;
  4197.            
  4198.             // ATAN2
  4199.             float Variable_23; // ATAN2 output 0
  4200.             Variable_23 = FVoxelNodeFunctions::Atan2(Variable_29, Variable_24);
  4201.            
  4202.             // /
  4203.             float Variable_26; // / output 0
  4204.             Variable_26 = Variable_23 / ConstantsCache.Variable_25;
  4205.            
  4206.             // *
  4207.             float Variable_28; // * output 0
  4208.             Variable_28 = ConstantsCache.Variable_92 * Variable_26;
  4209.            
  4210.             // *
  4211.             float Variable_45; // * output 0
  4212.             Variable_45 = Variable_28 * ConstantsCache.Variable_46;
  4213.            
  4214.             // 2D Simplex Noise Fractal
  4215.             float Variable_41; // 2D Simplex Noise Fractal output 0
  4216.             Variable_41 = _2D_Simplex_Noise_Fractal_15567_Noise.GetSimplexFractal(Variable_44, Variable_45);
  4217.            
  4218.             // *
  4219.             float Variable_42; // * output 0
  4220.             Variable_42 = Variable_41 * ConstantsCache.Variable_43;
  4221.            
  4222.             // *
  4223.             float Variable_50; // * output 0
  4224.             Variable_50 = Variable_27 * ConstantsCache.Variable_52;
  4225.            
  4226.             // *
  4227.             float Variable_51; // * output 0
  4228.             Variable_51 = Variable_28 * ConstantsCache.Variable_52;
  4229.            
  4230.             // 2D Simplex Noise Fractal
  4231.             float Variable_47; // 2D Simplex Noise Fractal output 0
  4232.             Variable_47 = _2D_Simplex_Noise_Fractal_15568_Noise.GetSimplexFractal(Variable_50, Variable_51);
  4233.            
  4234.             // MountainsCurve
  4235.             float Variable_53; // MountainsCurve output 0
  4236.             Variable_53 = MoutainsMask.Eval(Variable_34);
  4237.            
  4238.             // Static Clamp: 0.0 <= X <= 1.0
  4239.             float Variable_87; // Static Clamp: 0.0 <= X <= 1.0 output 0
  4240.             Variable_87 = FMath::Clamp<float>(Variable_53, 0.000000, 1.000000);
  4241.            
  4242.             // *
  4243.             float Variable_48; // * output 0
  4244.             Variable_48 = Variable_47 * ConstantsCache.Variable_49 * Variable_87;
  4245.            
  4246.             // 2D Perlin Noise
  4247.             float Variable_54; // 2D Perlin Noise output 0
  4248.             Variable_54 = _2D_Perlin_Noise_7434_Noise.GetPerlin(Variable_50, Variable_51);
  4249.            
  4250.             // *
  4251.             float Variable_55; // * output 0
  4252.             Variable_55 = ConstantsCache.Variable_49 * Variable_87 * Variable_54 * float(0.1f);
  4253.            
  4254.             // *
  4255.             float Variable_59; // * output 0
  4256.             Variable_59 = Variable_27 * ConstantsCache.Variable_61;
  4257.            
  4258.             // *
  4259.             float Variable_60; // * output 0
  4260.             Variable_60 = Variable_28 * ConstantsCache.Variable_61;
  4261.            
  4262.             // 2D Simplex Noise
  4263.             float Variable_63; // 2D Simplex Noise output 0
  4264.             Variable_63 = _2D_Simplex_Noise_8755_Noise.GetSimplex(Variable_59, Variable_60);
  4265.            
  4266.             // Z
  4267.             float Variable_72; // Z output 0
  4268.             Variable_72 = Context.Z;
  4269.            
  4270.             // /
  4271.             float Variable_73; // / output 0
  4272.             Variable_73 = Variable_72 / Variable_30;
  4273.            
  4274.             // 2D Simplex Noise
  4275.             float Variable_79; // 2D Simplex Noise output 0
  4276.             Variable_79 = _2D_Simplex_Noise_8754_Noise.GetSimplex(Variable_28, Variable_28);
  4277.            
  4278.             // *
  4279.             float Variable_76; // * output 0
  4280.             Variable_76 = Variable_79 * float(0.1f);
  4281.            
  4282.             // +
  4283.             float Variable_75; // + output 0
  4284.             Variable_75 = Variable_73 + Variable_76;
  4285.            
  4286.             // ACOS
  4287.             float Variable_74; // ACOS output 0
  4288.             Variable_74 = FVoxelNodeFunctions::Acos(Variable_75);
  4289.            
  4290.             // /
  4291.             float Variable_71; // / output 0
  4292.             Variable_71 = Variable_74 / ConstantsCache.Variable_67;
  4293.            
  4294.             // 1 - X
  4295.             float Variable_69; // 1 - X output 0
  4296.             Variable_69 = 1 - Variable_71;
  4297.            
  4298.             // Min (float)
  4299.             float Variable_68; // Min (float) output 0
  4300.             Variable_68 = FVoxelNodeFunctions::Min<float>(Variable_71, Variable_69);
  4301.            
  4302.             // /
  4303.             float Variable_70; // / output 0
  4304.             Variable_70 = Variable_68 / float(0.5f);
  4305.            
  4306.             // 1 - X
  4307.             float Variable_77; // 1 - X output 0
  4308.             Variable_77 = 1 - Variable_70;
  4309.            
  4310.             // *
  4311.             float Variable_78; // * output 0
  4312.             Variable_78 = Variable_77 * float(20.0f);
  4313.            
  4314.             // /
  4315.             float Variable_94; // / output 0
  4316.             Variable_94 = Variable_78 / ConstantsCache.Variable_95;
  4317.            
  4318.             // RiverCurve
  4319.             float Variable_64; // RiverCurve output 0
  4320.             Variable_64 = RiverMask.Eval(Variable_94);
  4321.            
  4322.             // Static Clamp: -1.0 <= X <= 1.0
  4323.             float Variable_89; // Static Clamp: -1.0 <= X <= 1.0 output 0
  4324.             Variable_89 = FMath::Clamp<float>(Variable_64, -1.000000, 1.000000);
  4325.            
  4326.             // Min (float)
  4327.             float Variable_81; // Min (float) output 0
  4328.             Variable_81 = FVoxelNodeFunctions::Min<float>(Variable_89, float(0.0f));
  4329.            
  4330.             // *
  4331.             float Variable_82; // * output 0
  4332.             Variable_82 = Variable_81 * float(-1.0f);
  4333.            
  4334.             // *
  4335.             float Variable_83; // * output 0
  4336.             Variable_83 = Variable_63 * Variable_82;
  4337.            
  4338.             // 1 - X
  4339.             float Variable_84; // 1 - X output 0
  4340.             Variable_84 = 1 - Variable_82;
  4341.            
  4342.             // -
  4343.             float Variable_85; // - output 0
  4344.             Variable_85 = Variable_83 - Variable_84;
  4345.            
  4346.             // 1 - X
  4347.             float Variable_56; // 1 - X output 0
  4348.             Variable_56 = 1 - Variable_87;
  4349.            
  4350.             // PlainsNoiseStrengthCurve
  4351.             float Variable_62; // PlainsNoiseStrengthCurve output 0
  4352.             Variable_62 = PlainsNoiseStrength.Eval(Variable_34);
  4353.            
  4354.             // Static Clamp: 0.0 <= X <= 1.0
  4355.             float Variable_88; // Static Clamp: 0.0 <= X <= 1.0 output 0
  4356.             Variable_88 = FMath::Clamp<float>(Variable_62, 0.000000, 1.000000);
  4357.            
  4358.             // *
  4359.             float Variable_57; // * output 0
  4360.             Variable_57 = Variable_85 * ConstantsCache.Variable_58 * Variable_56 * Variable_88;
  4361.            
  4362.             // Max (float)
  4363.             float Variable_80; // Max (float) output 0
  4364.             Variable_80 = FVoxelNodeFunctions::Max<float>(Variable_89, float(0.0f));
  4365.            
  4366.             // *
  4367.             float Variable_65; // * output 0
  4368.             Variable_65 = Variable_80 * float(-1.0f) * ConstantsCache.Variable_66;
  4369.            
  4370.             // +
  4371.             float Variable_33; // + output 0
  4372.             Variable_33 = Variable_39 + Variable_42 + Variable_48 + Variable_55 + Variable_57 + Variable_65;
  4373.            
  4374.             // *
  4375.             float Variable_93; // * output 0
  4376.             Variable_93 = Variable_33 * ConstantsCache.Variable_90;
  4377.            
  4378.             // -
  4379.             float Variable_32; // - output 0
  4380.             Variable_32 = ConstantsCache.Variable_91 - Variable_93;
  4381.            
  4382.             // -
  4383.             float Variable_4; // - output 0
  4384.             Variable_4 = Variable_32 - Variable_30;
  4385.            
  4386.             // -
  4387.             float Variable_7; // - output 0
  4388.             Variable_7 = Variable_30 - ConstantsCache.Variable_6;
  4389.            
  4390.             // Max (float)
  4391.             float Variable_8; // Max (float) output 0
  4392.             Variable_8 = FVoxelNodeFunctions::Max<float>(Variable_4, Variable_7);
  4393.            
  4394.             // -
  4395.             float Variable_19; // - output 0
  4396.             Variable_19 = Variable_8 - float(1.0f);
  4397.            
  4398.             // Max (float)
  4399.             float Variable_18; // Max (float) output 0
  4400.             Variable_18 = FVoxelNodeFunctions::Max<float>(Variable_35, float(0.0f));
  4401.            
  4402.             // *
  4403.             float Variable_20; // * output 0
  4404.             Variable_20 = Variable_18 * ConstantsCache.Variable_22;
  4405.            
  4406.             // Min (float)
  4407.             float Variable_21; // Min (float) output 0
  4408.             Variable_21 = FVoxelNodeFunctions::Min<float>(Variable_20, float(1.0f));
  4409.            
  4410.             // *
  4411.             float Variable_16; // * output 0
  4412.             Variable_16 = Variable_19 * Variable_21;
  4413.            
  4414.             // +
  4415.             float Variable_17; // + output 0
  4416.             Variable_17 = Variable_16 + float(1.0f);
  4417.            
  4418.             GraphOutputs.Value = Variable_17;
  4419.         }
  4420.        
  4421.     };
  4422.     struct FLocalComputeStruct_LocalValueCache2DUsage_LOD0
  4423.     {
  4424.         struct FVoxelGraphOutputs
  4425.         {
  4426.             float& Value;
  4427.             float& Cache2DUsage;
  4428.         };
  4429.         struct FVoxelConstantsCache
  4430.         {
  4431.             float Variable_52; // MountainsNoiseFrequency = 0.2 output 0
  4432.             float Variable_58; // PlainsNoiseHeight = 250.0 output 0
  4433.             float Variable_22; // RingEdgesHardness = 10.0 output 0
  4434.             float Variable_25; // PI.3.141593 output 0
  4435.             float Variable_31; // Width in Degrees = 50.0 output 0
  4436.             float Variable_66; // RiverDepth = 100.0 output 0
  4437.             float Variable_96; // Thickness = 500.0 output 0
  4438.             float Variable_40; // BaseHeight = 1000.0 output 0
  4439.             float Variable_43; // BaseNoiseHeight = 250.0 output 0
  4440.             float Variable_46; // BaseNoiseFrquency = 0.005 output 0
  4441.             float Variable_49; // MountainsNoiseHeight = 500.0 output 0
  4442.             float Variable_5; // Radius = 7000.0 output 0
  4443.             float Variable_95; // RiverWidth = 1.0 output 0
  4444.             float Variable_61; // PlainsNoiseFrequency = 0.2 output 0
  4445.             float Variable_98; // PI.3.141593 output 0
  4446.             float Variable_67; // PI.3.141593 output 0
  4447.             float Variable_90; // Scale = 10.0 output 0
  4448.             float Variable_91; // * output 0
  4449.             float Variable_37; // / output 0
  4450.             float Variable_97; // * output 0
  4451.             float Variable_6; // + output 0
  4452.             float Variable_92; // / output 0
  4453.             float Variable_36; // - output 0
  4454.         };
  4455.         struct FVoxelCache
  4456.         {
  4457.             float Variable_0; // X output 0
  4458.             float Variable_24; // X output 0
  4459.             float Variable_1; // Y output 0
  4460.             float Variable_29; // Y output 0
  4461.             float Variable_23; // ATAN2 output 0
  4462.             float Variable_26; // / output 0
  4463.             float Variable_28; // * output 0
  4464.             float Variable_45; // * output 0
  4465.             float Variable_51; // * output 0
  4466.             float Variable_60; // * output 0
  4467.             float Variable_79; // 2D Simplex Noise output 0
  4468.             float Variable_76; // * output 0
  4469.         };
  4470.        
  4471.         FLocalComputeStruct_LocalValueCache2DUsage_LOD0(const float& InScale, const float& InPlainsNoiseHeight, const float& InRingEdgesHardness, const float& InWidth_in_Degrees, const float& InRiverDepth, const float& InThickness, const float& InBaseHeight, const float& InBaseNoiseHeight, const float& InBaseNoiseFrquency, const float& InMountainsNoiseHeight, const float& InRadius, const float& InRiverWidth, const float& InPlainsNoiseFrequency, const float& InMountainsNoiseFrequency, const FRichCurve& InRingShape, const FRichCurve& InMoutainsMask, const FRichCurve& InRiverMask, const FRichCurve& InPlainsNoiseStrength, const FLinearColor& InPlainsColorLow, const FLinearColor& InRiverColor, const FLinearColor& InBeachColor, const FLinearColor& InMountainsColorHigh, const FLinearColor& InMountainsColorLowLow, const FLinearColor& InMountainsColorLowHigh, const FLinearColor& InPlainsColorHigh, const FLinearColor& InRingOuterColor)
  4472.             : Scale(InScale)
  4473.             , PlainsNoiseHeight(InPlainsNoiseHeight)
  4474.             , RingEdgesHardness(InRingEdgesHardness)
  4475.             , Width_in_Degrees(InWidth_in_Degrees)
  4476.             , RiverDepth(InRiverDepth)
  4477.             , Thickness(InThickness)
  4478.             , BaseHeight(InBaseHeight)
  4479.             , BaseNoiseHeight(InBaseNoiseHeight)
  4480.             , BaseNoiseFrquency(InBaseNoiseFrquency)
  4481.             , MountainsNoiseHeight(InMountainsNoiseHeight)
  4482.             , Radius(InRadius)
  4483.             , RiverWidth(InRiverWidth)
  4484.             , PlainsNoiseFrequency(InPlainsNoiseFrequency)
  4485.             , MountainsNoiseFrequency(InMountainsNoiseFrequency)
  4486.             , RingShape(InRingShape)
  4487.             , MoutainsMask(InMoutainsMask)
  4488.             , RiverMask(InRiverMask)
  4489.             , PlainsNoiseStrength(InPlainsNoiseStrength)
  4490.             , PlainsColorLow(InPlainsColorLow)
  4491.             , RiverColor(InRiverColor)
  4492.             , BeachColor(InBeachColor)
  4493.             , MountainsColorHigh(InMountainsColorHigh)
  4494.             , MountainsColorLowLow(InMountainsColorLowLow)
  4495.             , MountainsColorLowHigh(InMountainsColorLowHigh)
  4496.             , PlainsColorHigh(InPlainsColorHigh)
  4497.             , RingOuterColor(InRingOuterColor)
  4498.         {
  4499.         }
  4500.        
  4501.         void Init(const FVoxelWorldGeneratorInit& InitStruct)
  4502.         {
  4503.             FVoxelCache Cache;
  4504.            
  4505.             {
  4506.             }
  4507.            
  4508.             Function0_Init(InitStruct);
  4509.            
  4510.             {
  4511.                 // MountainsNoiseFrequency = 0.2
  4512.                 ConstantsCache.Variable_52 = MountainsNoiseFrequency;
  4513.                
  4514.                 // PlainsNoiseHeight = 250.0
  4515.                 ConstantsCache.Variable_58 = PlainsNoiseHeight;
  4516.                
  4517.                 // RingEdgesHardness = 10.0
  4518.                 ConstantsCache.Variable_22 = RingEdgesHardness;
  4519.                
  4520.                 // PI.3.141593
  4521.                 ConstantsCache.Variable_25 = 3.141593;
  4522.                
  4523.                 // Width in Degrees = 50.0
  4524.                 ConstantsCache.Variable_31 = Width_in_Degrees;
  4525.                
  4526.                 // RiverDepth = 100.0
  4527.                 ConstantsCache.Variable_66 = RiverDepth;
  4528.                
  4529.                 // Thickness = 500.0
  4530.                 ConstantsCache.Variable_96 = Thickness;
  4531.                
  4532.                 // BaseHeight = 1000.0
  4533.                 ConstantsCache.Variable_40 = BaseHeight;
  4534.                
  4535.                 // BaseNoiseHeight = 250.0
  4536.                 ConstantsCache.Variable_43 = BaseNoiseHeight;
  4537.                
  4538.                 // BaseNoiseFrquency = 0.005
  4539.                 ConstantsCache.Variable_46 = BaseNoiseFrquency;
  4540.                
  4541.                 // MountainsNoiseHeight = 500.0
  4542.                 ConstantsCache.Variable_49 = MountainsNoiseHeight;
  4543.                
  4544.                 // Radius = 7000.0
  4545.                 ConstantsCache.Variable_5 = Radius;
  4546.                
  4547.                 // RiverWidth = 1.0
  4548.                 ConstantsCache.Variable_95 = RiverWidth;
  4549.                
  4550.                 // PlainsNoiseFrequency = 0.2
  4551.                 ConstantsCache.Variable_61 = PlainsNoiseFrequency;
  4552.                
  4553.                 // PI.3.141593
  4554.                 ConstantsCache.Variable_98 = 3.141593;
  4555.                
  4556.                 // PI.3.141593
  4557.                 ConstantsCache.Variable_67 = 3.141593;
  4558.                
  4559.                 // Scale = 10.0
  4560.                 ConstantsCache.Variable_90 = Scale;
  4561.                
  4562.                 // *
  4563.                 ConstantsCache.Variable_91 = ConstantsCache.Variable_5 * ConstantsCache.Variable_90;
  4564.                
  4565.                 // /
  4566.                 ConstantsCache.Variable_37 = ConstantsCache.Variable_31 / float(360.0f);
  4567.                
  4568.                 // *
  4569.                 ConstantsCache.Variable_97 = ConstantsCache.Variable_96 * ConstantsCache.Variable_90;
  4570.                
  4571.                 // +
  4572.                 ConstantsCache.Variable_6 = ConstantsCache.Variable_91 + ConstantsCache.Variable_97;
  4573.                
  4574.                 // /
  4575.                 ConstantsCache.Variable_92 = ConstantsCache.Variable_91 / ConstantsCache.Variable_90;
  4576.                
  4577.                 // -
  4578.                 ConstantsCache.Variable_36 = float(0.5f) - ConstantsCache.Variable_37;
  4579.                
  4580.             }
  4581.         }
  4582.         void ComputeX(FVoxelCache& Cache, const FVoxelContext& Context, FVoxelGraphOutputs& GraphOutputs) const
  4583.         {
  4584.             Function0_X_Compute(GraphOutputs, Cache, Context);
  4585.         }
  4586.         void ComputeXY(FVoxelCache& Cache, const FVoxelContext& Context, FVoxelGraphOutputs& GraphOutputs) const
  4587.         {
  4588.             Function0_XY_Compute(GraphOutputs, Cache, Context);
  4589.         }
  4590.         void ComputeXYZ(FVoxelCache& Cache, const FVoxelContext& Context, FVoxelGraphOutputs& GraphOutputs) const
  4591.         {
  4592.             Function0_XYZ_Compute(GraphOutputs, Cache, Context);
  4593.         }
  4594.         void Get(const FVoxelContext&Context, float& Value, float& Cache2DUsage) const
  4595.         {
  4596.             FVoxelGraphOutputs GraphOutputs{Value, Cache2DUsage};
  4597.             Function0_Compute(GraphOutputs, Context);
  4598.         }
  4599.        
  4600.     private:
  4601.         FVoxelConstantsCache ConstantsCache;
  4602.         FastNoise _2D_Simplex_Noise_8756_Noise;
  4603.         FastNoise _2D_Simplex_Noise_Fractal_15569_Noise;
  4604.         FastNoise _2D_Simplex_Noise_Fractal_15570_Noise;
  4605.         FastNoise _2D_Perlin_Noise_7435_Noise;
  4606.         FastNoise _2D_Simplex_Noise_8757_Noise;
  4607.        
  4608.         const float& Scale;
  4609.         const float& PlainsNoiseHeight;
  4610.         const float& RingEdgesHardness;
  4611.         const float& Width_in_Degrees;
  4612.         const float& RiverDepth;
  4613.         const float& Thickness;
  4614.         const float& BaseHeight;
  4615.         const float& BaseNoiseHeight;
  4616.         const float& BaseNoiseFrquency;
  4617.         const float& MountainsNoiseHeight;
  4618.         const float& Radius;
  4619.         const float& RiverWidth;
  4620.         const float& PlainsNoiseFrequency;
  4621.         const float& MountainsNoiseFrequency;
  4622.         const FRichCurve& RingShape;
  4623.         const FRichCurve& MoutainsMask;
  4624.         const FRichCurve& RiverMask;
  4625.         const FRichCurve& PlainsNoiseStrength;
  4626.         const FLinearColor& PlainsColorLow;
  4627.         const FLinearColor& RiverColor;
  4628.         const FLinearColor& BeachColor;
  4629.         const FLinearColor& MountainsColorHigh;
  4630.         const FLinearColor& MountainsColorLowLow;
  4631.         const FLinearColor& MountainsColorLowHigh;
  4632.         const FLinearColor& PlainsColorHigh;
  4633.         const FLinearColor& RingOuterColor;
  4634.        
  4635.         ///////////////////////////////////////////////////////////////////////
  4636.         //////////////////////////// Init functions ///////////////////////////
  4637.         ///////////////////////////////////////////////////////////////////////
  4638.        
  4639.         void Function0_Init(const FVoxelWorldGeneratorInit& InitStruct)
  4640.         {
  4641.             // Init of 2D Simplex Noise Fractal
  4642.             _2D_Simplex_Noise_Fractal_15569_Noise.SetSeed(Seed(1337));
  4643.             _2D_Simplex_Noise_Fractal_15569_Noise.SetFrequency(0.02);
  4644.             _2D_Simplex_Noise_Fractal_15569_Noise.SetInterp(FastNoise::Interp::Quintic);
  4645.             _2D_Simplex_Noise_Fractal_15569_Noise.SetFractalOctaves(5);
  4646.             _2D_Simplex_Noise_Fractal_15569_Noise.SetFractalLacunarity(2.0);
  4647.             _2D_Simplex_Noise_Fractal_15569_Noise.SetFractalGain(0.5);
  4648.             _2D_Simplex_Noise_Fractal_15569_Noise.SetFractalType(FastNoise::FractalType::FBM);
  4649.            
  4650.             // Init of 2D Simplex Noise Fractal
  4651.             _2D_Simplex_Noise_Fractal_15570_Noise.SetSeed(Seed(1337));
  4652.             _2D_Simplex_Noise_Fractal_15570_Noise.SetFrequency(0.02);
  4653.             _2D_Simplex_Noise_Fractal_15570_Noise.SetInterp(FastNoise::Interp::Quintic);
  4654.             _2D_Simplex_Noise_Fractal_15570_Noise.SetFractalOctaves(8);
  4655.             _2D_Simplex_Noise_Fractal_15570_Noise.SetFractalLacunarity(2.0);
  4656.             _2D_Simplex_Noise_Fractal_15570_Noise.SetFractalGain(0.5);
  4657.             _2D_Simplex_Noise_Fractal_15570_Noise.SetFractalType(FastNoise::FractalType::FBM);
  4658.            
  4659.             // Init of 2D Perlin Noise
  4660.             _2D_Perlin_Noise_7435_Noise.SetSeed(Seed(1338));
  4661.             _2D_Perlin_Noise_7435_Noise.SetFrequency(0.1);
  4662.             _2D_Perlin_Noise_7435_Noise.SetInterp(FastNoise::Interp::Quintic);
  4663.            
  4664.             // Init of 2D Simplex Noise
  4665.             _2D_Simplex_Noise_8757_Noise.SetSeed(Seed(1337));
  4666.             _2D_Simplex_Noise_8757_Noise.SetFrequency(0.02);
  4667.             _2D_Simplex_Noise_8757_Noise.SetInterp(FastNoise::Interp::Quintic);
  4668.            
  4669.             // Init of 2D Simplex Noise
  4670.             _2D_Simplex_Noise_8756_Noise.SetSeed(Seed(1000));
  4671.             _2D_Simplex_Noise_8756_Noise.SetFrequency(0.001);
  4672.             _2D_Simplex_Noise_8756_Noise.SetInterp(FastNoise::Interp::Quintic);
  4673.            
  4674.         }
  4675.        
  4676.         ///////////////////////////////////////////////////////////////////////
  4677.         ////////////////////////// Compute functions //////////////////////////
  4678.         ///////////////////////////////////////////////////////////////////////
  4679.        
  4680.         void Function0_X_Compute(FVoxelGraphOutputs& GraphOutputs, FVoxelCache& Cache, const FVoxelContext& Context) const
  4681.         {
  4682.             // X
  4683.             Cache.Variable_0 = Context.X;
  4684.            
  4685.             // X
  4686.             Cache.Variable_24 = Context.X;
  4687.            
  4688.         }
  4689.        
  4690.         void Function0_XY_Compute(FVoxelGraphOutputs& GraphOutputs, FVoxelCache& Cache, const FVoxelContext& Context) const
  4691.         {
  4692.             // Y
  4693.             Cache.Variable_1 = Context.Y;
  4694.            
  4695.             // Y
  4696.             Cache.Variable_29 = Context.Y;
  4697.            
  4698.             // ATAN2
  4699.             Cache.Variable_23 = FVoxelNodeFunctions::Atan2(Cache.Variable_29, Cache.Variable_24);
  4700.            
  4701.             // /
  4702.             Cache.Variable_26 = Cache.Variable_23 / ConstantsCache.Variable_25;
  4703.            
  4704.             // *
  4705.             Cache.Variable_28 = ConstantsCache.Variable_92 * Cache.Variable_26;
  4706.            
  4707.             // *
  4708.             Cache.Variable_45 = Cache.Variable_28 * ConstantsCache.Variable_46;
  4709.            
  4710.             // *
  4711.             Cache.Variable_51 = Cache.Variable_28 * ConstantsCache.Variable_52;
  4712.            
  4713.             // *
  4714.             Cache.Variable_60 = Cache.Variable_28 * ConstantsCache.Variable_61;
  4715.            
  4716.             // 2D Simplex Noise
  4717.             Cache.Variable_79 = _2D_Simplex_Noise_8756_Noise.GetSimplex(Cache.Variable_28, Cache.Variable_28);
  4718.            
  4719.             // *
  4720.             Cache.Variable_76 = Cache.Variable_79 * float(0.1f);
  4721.            
  4722.         }
  4723.        
  4724.         void Function0_XYZ_Compute(FVoxelGraphOutputs& GraphOutputs, FVoxelCache& Cache, const FVoxelContext& Context) const
  4725.         {
  4726.             // Z
  4727.             float Variable_12; // Z output 0
  4728.             Variable_12 = Context.Z;
  4729.            
  4730.             // Z
  4731.             float Variable_2; // Z output 0
  4732.             Variable_2 = Context.Z;
  4733.            
  4734.             // Vector Length
  4735.             float Variable_3; // Vector Length output 0
  4736.             Variable_3 = FVoxelNodeFunctions::VectorLength(Cache.Variable_0, Cache.Variable_1, Variable_2);
  4737.            
  4738.             // +
  4739.             float Variable_30; // + output 0
  4740.             Variable_30 = Variable_3 + float(0.001f);
  4741.            
  4742.             // /
  4743.             float Variable_13; // / output 0
  4744.             Variable_13 = Variable_12 / Variable_30;
  4745.            
  4746.             // ACOS
  4747.             float Variable_14; // ACOS output 0
  4748.             Variable_14 = FVoxelNodeFunctions::Acos(Variable_13);
  4749.            
  4750.             // /
  4751.             float Variable_10; // / output 0
  4752.             Variable_10 = Variable_14 / ConstantsCache.Variable_98;
  4753.            
  4754.             // 1 - X
  4755.             float Variable_11; // 1 - X output 0
  4756.             Variable_11 = 1 - Variable_10;
  4757.            
  4758.             // Min (float)
  4759.             float Variable_9; // Min (float) output 0
  4760.             Variable_9 = FVoxelNodeFunctions::Min<float>(Variable_10, Variable_11);
  4761.            
  4762.             // -
  4763.             float Variable_15; // - output 0
  4764.             Variable_15 = Variable_9 - ConstantsCache.Variable_36;
  4765.            
  4766.             // /
  4767.             float Variable_35; // / output 0
  4768.             Variable_35 = Variable_15 / ConstantsCache.Variable_37;
  4769.            
  4770.             // 1 - X
  4771.             float Variable_34; // 1 - X output 0
  4772.             Variable_34 = 1 - Variable_35;
  4773.            
  4774.             // RingCurve
  4775.             float Variable_38; // RingCurve output 0
  4776.             Variable_38 = RingShape.Eval(Variable_34);
  4777.            
  4778.             // Static Clamp: 0.0 <= X <= 1.0
  4779.             float Variable_86; // Static Clamp: 0.0 <= X <= 1.0 output 0
  4780.             Variable_86 = FMath::Clamp<float>(Variable_38, 0.000000, 1.000000);
  4781.            
  4782.             // *
  4783.             float Variable_39; // * output 0
  4784.             Variable_39 = Variable_86 * ConstantsCache.Variable_40;
  4785.            
  4786.             // *
  4787.             float Variable_27; // * output 0
  4788.             Variable_27 = ConstantsCache.Variable_92 * Variable_10;
  4789.            
  4790.             // *
  4791.             float Variable_44; // * output 0
  4792.             Variable_44 = Variable_27 * ConstantsCache.Variable_46;
  4793.            
  4794.             // 2D Simplex Noise Fractal
  4795.             float Variable_41; // 2D Simplex Noise Fractal output 0
  4796.             Variable_41 = _2D_Simplex_Noise_Fractal_15569_Noise.GetSimplexFractal(Variable_44, Cache.Variable_45);
  4797.            
  4798.             // *
  4799.             float Variable_42; // * output 0
  4800.             Variable_42 = Variable_41 * ConstantsCache.Variable_43;
  4801.            
  4802.             // *
  4803.             float Variable_50; // * output 0
  4804.             Variable_50 = Variable_27 * ConstantsCache.Variable_52;
  4805.            
  4806.             // 2D Simplex Noise Fractal
  4807.             float Variable_47; // 2D Simplex Noise Fractal output 0
  4808.             Variable_47 = _2D_Simplex_Noise_Fractal_15570_Noise.GetSimplexFractal(Variable_50, Cache.Variable_51);
  4809.            
  4810.             // MountainsCurve
  4811.             float Variable_53; // MountainsCurve output 0
  4812.             Variable_53 = MoutainsMask.Eval(Variable_34);
  4813.            
  4814.             // Static Clamp: 0.0 <= X <= 1.0
  4815.             float Variable_87; // Static Clamp: 0.0 <= X <= 1.0 output 0
  4816.             Variable_87 = FMath::Clamp<float>(Variable_53, 0.000000, 1.000000);
  4817.            
  4818.             // *
  4819.             float Variable_48; // * output 0
  4820.             Variable_48 = Variable_47 * ConstantsCache.Variable_49 * Variable_87;
  4821.            
  4822.             // 2D Perlin Noise
  4823.             float Variable_54; // 2D Perlin Noise output 0
  4824.             Variable_54 = _2D_Perlin_Noise_7435_Noise.GetPerlin(Variable_50, Cache.Variable_51);
  4825.            
  4826.             // *
  4827.             float Variable_55; // * output 0
  4828.             Variable_55 = ConstantsCache.Variable_49 * Variable_87 * Variable_54 * float(0.1f);
  4829.            
  4830.             // *
  4831.             float Variable_59; // * output 0
  4832.             Variable_59 = Variable_27 * ConstantsCache.Variable_61;
  4833.            
  4834.             // 2D Simplex Noise
  4835.             float Variable_63; // 2D Simplex Noise output 0
  4836.             Variable_63 = _2D_Simplex_Noise_8757_Noise.GetSimplex(Variable_59, Cache.Variable_60);
  4837.            
  4838.             // Z
  4839.             float Variable_72; // Z output 0
  4840.             Variable_72 = Context.Z;
  4841.            
  4842.             // /
  4843.             float Variable_73; // / output 0
  4844.             Variable_73 = Variable_72 / Variable_30;
  4845.            
  4846.             // +
  4847.             float Variable_75; // + output 0
  4848.             Variable_75 = Variable_73 + Cache.Variable_76;
  4849.            
  4850.             // ACOS
  4851.             float Variable_74; // ACOS output 0
  4852.             Variable_74 = FVoxelNodeFunctions::Acos(Variable_75);
  4853.            
  4854.             // /
  4855.             float Variable_71; // / output 0
  4856.             Variable_71 = Variable_74 / ConstantsCache.Variable_67;
  4857.            
  4858.             // 1 - X
  4859.             float Variable_69; // 1 - X output 0
  4860.             Variable_69 = 1 - Variable_71;
  4861.            
  4862.             // Min (float)
  4863.             float Variable_68; // Min (float) output 0
  4864.             Variable_68 = FVoxelNodeFunctions::Min<float>(Variable_71, Variable_69);
  4865.            
  4866.             // /
  4867.             float Variable_70; // / output 0
  4868.             Variable_70 = Variable_68 / float(0.5f);
  4869.            
  4870.             // 1 - X
  4871.             float Variable_77; // 1 - X output 0
  4872.             Variable_77 = 1 - Variable_70;
  4873.            
  4874.             // *
  4875.             float Variable_78; // * output 0
  4876.             Variable_78 = Variable_77 * float(20.0f);
  4877.            
  4878.             // /
  4879.             float Variable_94; // / output 0
  4880.             Variable_94 = Variable_78 / ConstantsCache.Variable_95;
  4881.            
  4882.             // RiverCurve
  4883.             float Variable_64; // RiverCurve output 0
  4884.             Variable_64 = RiverMask.Eval(Variable_94);
  4885.            
  4886.             // Static Clamp: -1.0 <= X <= 1.0
  4887.             float Variable_89; // Static Clamp: -1.0 <= X <= 1.0 output 0
  4888.             Variable_89 = FMath::Clamp<float>(Variable_64, -1.000000, 1.000000);
  4889.            
  4890.             // Min (float)
  4891.             float Variable_81; // Min (float) output 0
  4892.             Variable_81 = FVoxelNodeFunctions::Min<float>(Variable_89, float(0.0f));
  4893.            
  4894.             // *
  4895.             float Variable_82; // * output 0
  4896.             Variable_82 = Variable_81 * float(-1.0f);
  4897.            
  4898.             // *
  4899.             float Variable_83; // * output 0
  4900.             Variable_83 = Variable_63 * Variable_82;
  4901.            
  4902.             // 1 - X
  4903.             float Variable_84; // 1 - X output 0
  4904.             Variable_84 = 1 - Variable_82;
  4905.            
  4906.             // -
  4907.             float Variable_85; // - output 0
  4908.             Variable_85 = Variable_83 - Variable_84;
  4909.            
  4910.             // 1 - X
  4911.             float Variable_56; // 1 - X output 0
  4912.             Variable_56 = 1 - Variable_87;
  4913.            
  4914.             // PlainsNoiseStrengthCurve
  4915.             float Variable_62; // PlainsNoiseStrengthCurve output 0
  4916.             Variable_62 = PlainsNoiseStrength.Eval(Variable_34);
  4917.            
  4918.             // Static Clamp: 0.0 <= X <= 1.0
  4919.             float Variable_88; // Static Clamp: 0.0 <= X <= 1.0 output 0
  4920.             Variable_88 = FMath::Clamp<float>(Variable_62, 0.000000, 1.000000);
  4921.            
  4922.             // *
  4923.             float Variable_57; // * output 0
  4924.             Variable_57 = Variable_85 * ConstantsCache.Variable_58 * Variable_56 * Variable_88;
  4925.            
  4926.             // Max (float)
  4927.             float Variable_80; // Max (float) output 0
  4928.             Variable_80 = FVoxelNodeFunctions::Max<float>(Variable_89, float(0.0f));
  4929.            
  4930.             // *
  4931.             float Variable_65; // * output 0
  4932.             Variable_65 = Variable_80 * float(-1.0f) * ConstantsCache.Variable_66;
  4933.            
  4934.             // +
  4935.             float Variable_33; // + output 0
  4936.             Variable_33 = Variable_39 + Variable_42 + Variable_48 + Variable_55 + Variable_57 + Variable_65;
  4937.            
  4938.             // *
  4939.             float Variable_93; // * output 0
  4940.             Variable_93 = Variable_33 * ConstantsCache.Variable_90;
  4941.            
  4942.             // -
  4943.             float Variable_32; // - output 0
  4944.             Variable_32 = ConstantsCache.Variable_91 - Variable_93;
  4945.            
  4946.             // -
  4947.             float Variable_4; // - output 0
  4948.             Variable_4 = Variable_32 - Variable_30;
  4949.            
  4950.             // -
  4951.             float Variable_7; // - output 0
  4952.             Variable_7 = Variable_30 - ConstantsCache.Variable_6;
  4953.            
  4954.             // Max (float)
  4955.             float Variable_8; // Max (float) output 0
  4956.             Variable_8 = FVoxelNodeFunctions::Max<float>(Variable_4, Variable_7);
  4957.            
  4958.             // -
  4959.             float Variable_19; // - output 0
  4960.             Variable_19 = Variable_8 - float(1.0f);
  4961.            
  4962.             // Max (float)
  4963.             float Variable_18; // Max (float) output 0
  4964.             Variable_18 = FVoxelNodeFunctions::Max<float>(Variable_35, float(0.0f));
  4965.            
  4966.             // *
  4967.             float Variable_20; // * output 0
  4968.             Variable_20 = Variable_18 * ConstantsCache.Variable_22;
  4969.            
  4970.             // Min (float)
  4971.             float Variable_21; // Min (float) output 0
  4972.             Variable_21 = FVoxelNodeFunctions::Min<float>(Variable_20, float(1.0f));
  4973.            
  4974.             // *
  4975.             float Variable_16; // * output 0
  4976.             Variable_16 = Variable_19 * Variable_21;
  4977.            
  4978.             // +
  4979.             float Variable_17; // + output 0
  4980.             Variable_17 = Variable_16 + float(1.0f);
  4981.            
  4982.             GraphOutputs.Value = Variable_17;
  4983.         }
  4984.        
  4985.         void Function0_Compute(FVoxelGraphOutputs& GraphOutputs, const FVoxelContext& Context) const
  4986.         {
  4987.             // Z
  4988.             float Variable_12; // Z output 0
  4989.             Variable_12 = Context.Z;
  4990.            
  4991.             // X
  4992.             float Variable_0; // X output 0
  4993.             Variable_0 = Context.X;
  4994.            
  4995.             // Y
  4996.             float Variable_1; // Y output 0
  4997.             Variable_1 = Context.Y;
  4998.            
  4999.             // Z
  5000.             float Variable_2; // Z output 0
  5001.             Variable_2 = Context.Z;
  5002.            
  5003.             // Vector Length
  5004.             float Variable_3; // Vector Length output 0
  5005.             Variable_3 = FVoxelNodeFunctions::VectorLength(Variable_0, Variable_1, Variable_2);
  5006.            
  5007.             // +
  5008.             float Variable_30; // + output 0
  5009.             Variable_30 = Variable_3 + float(0.001f);
  5010.            
  5011.             // /
  5012.             float Variable_13; // / output 0
  5013.             Variable_13 = Variable_12 / Variable_30;
  5014.            
  5015.             // ACOS
  5016.             float Variable_14; // ACOS output 0
  5017.             Variable_14 = FVoxelNodeFunctions::Acos(Variable_13);
  5018.            
  5019.             // /
  5020.             float Variable_10; // / output 0
  5021.             Variable_10 = Variable_14 / ConstantsCache.Variable_98;
  5022.            
  5023.             // 1 - X
  5024.             float Variable_11; // 1 - X output 0
  5025.             Variable_11 = 1 - Variable_10;
  5026.            
  5027.             // Min (float)
  5028.             float Variable_9; // Min (float) output 0
  5029.             Variable_9 = FVoxelNodeFunctions::Min<float>(Variable_10, Variable_11);
  5030.            
  5031.             // -
  5032.             float Variable_15; // - output 0
  5033.             Variable_15 = Variable_9 - ConstantsCache.Variable_36;
  5034.            
  5035.             // /
  5036.             float Variable_35; // / output 0
  5037.             Variable_35 = Variable_15 / ConstantsCache.Variable_37;
  5038.            
  5039.             // 1 - X
  5040.             float Variable_34; // 1 - X output 0
  5041.             Variable_34 = 1 - Variable_35;
  5042.            
  5043.             // RingCurve
  5044.             float Variable_38; // RingCurve output 0
  5045.             Variable_38 = RingShape.Eval(Variable_34);
  5046.            
  5047.             // Static Clamp: 0.0 <= X <= 1.0
  5048.             float Variable_86; // Static Clamp: 0.0 <= X <= 1.0 output 0
  5049.             Variable_86 = FMath::Clamp<float>(Variable_38, 0.000000, 1.000000);
  5050.            
  5051.             // *
  5052.             float Variable_39; // * output 0
  5053.             Variable_39 = Variable_86 * ConstantsCache.Variable_40;
  5054.            
  5055.             // *
  5056.             float Variable_27; // * output 0
  5057.             Variable_27 = ConstantsCache.Variable_92 * Variable_10;
  5058.            
  5059.             // *
  5060.             float Variable_44; // * output 0
  5061.             Variable_44 = Variable_27 * ConstantsCache.Variable_46;
  5062.            
  5063.             // Y
  5064.             float Variable_29; // Y output 0
  5065.             Variable_29 = Context.Y;
  5066.            
  5067.             // X
  5068.             float Variable_24; // X output 0
  5069.             Variable_24 = Context.X;
  5070.            
  5071.             // ATAN2
  5072.             float Variable_23; // ATAN2 output 0
  5073.             Variable_23 = FVoxelNodeFunctions::Atan2(Variable_29, Variable_24);
  5074.            
  5075.             // /
  5076.             float Variable_26; // / output 0
  5077.             Variable_26 = Variable_23 / ConstantsCache.Variable_25;
  5078.            
  5079.             // *
  5080.             float Variable_28; // * output 0
  5081.             Variable_28 = ConstantsCache.Variable_92 * Variable_26;
  5082.            
  5083.             // *
  5084.             float Variable_45; // * output 0
  5085.             Variable_45 = Variable_28 * ConstantsCache.Variable_46;
  5086.            
  5087.             // 2D Simplex Noise Fractal
  5088.             float Variable_41; // 2D Simplex Noise Fractal output 0
  5089.             Variable_41 = _2D_Simplex_Noise_Fractal_15569_Noise.GetSimplexFractal(Variable_44, Variable_45);
  5090.            
  5091.             // *
  5092.             float Variable_42; // * output 0
  5093.             Variable_42 = Variable_41 * ConstantsCache.Variable_43;
  5094.            
  5095.             // *
  5096.             float Variable_50; // * output 0
  5097.             Variable_50 = Variable_27 * ConstantsCache.Variable_52;
  5098.            
  5099.             // *
  5100.             float Variable_51; // * output 0
  5101.             Variable_51 = Variable_28 * ConstantsCache.Variable_52;
  5102.            
  5103.             // 2D Simplex Noise Fractal
  5104.             float Variable_47; // 2D Simplex Noise Fractal output 0
  5105.             Variable_47 = _2D_Simplex_Noise_Fractal_15570_Noise.GetSimplexFractal(Variable_50, Variable_51);
  5106.            
  5107.             // MountainsCurve
  5108.             float Variable_53; // MountainsCurve output 0
  5109.             Variable_53 = MoutainsMask.Eval(Variable_34);
  5110.            
  5111.             // Static Clamp: 0.0 <= X <= 1.0
  5112.             float Variable_87; // Static Clamp: 0.0 <= X <= 1.0 output 0
  5113.             Variable_87 = FMath::Clamp<float>(Variable_53, 0.000000, 1.000000);
  5114.            
  5115.             // *
  5116.             float Variable_48; // * output 0
  5117.             Variable_48 = Variable_47 * ConstantsCache.Variable_49 * Variable_87;
  5118.            
  5119.             // 2D Perlin Noise
  5120.             float Variable_54; // 2D Perlin Noise output 0
  5121.             Variable_54 = _2D_Perlin_Noise_7435_Noise.GetPerlin(Variable_50, Variable_51);
  5122.            
  5123.             // *
  5124.             float Variable_55; // * output 0
  5125.             Variable_55 = ConstantsCache.Variable_49 * Variable_87 * Variable_54 * float(0.1f);
  5126.            
  5127.             // *
  5128.             float Variable_59; // * output 0
  5129.             Variable_59 = Variable_27 * ConstantsCache.Variable_61;
  5130.            
  5131.             // *
  5132.             float Variable_60; // * output 0
  5133.             Variable_60 = Variable_28 * ConstantsCache.Variable_61;
  5134.            
  5135.             // 2D Simplex Noise
  5136.             float Variable_63; // 2D Simplex Noise output 0
  5137.             Variable_63 = _2D_Simplex_Noise_8757_Noise.GetSimplex(Variable_59, Variable_60);
  5138.            
  5139.             // Z
  5140.             float Variable_72; // Z output 0
  5141.             Variable_72 = Context.Z;
  5142.            
  5143.             // /
  5144.             float Variable_73; // / output 0
  5145.             Variable_73 = Variable_72 / Variable_30;
  5146.            
  5147.             // 2D Simplex Noise
  5148.             float Variable_79; // 2D Simplex Noise output 0
  5149.             Variable_79 = _2D_Simplex_Noise_8756_Noise.GetSimplex(Variable_28, Variable_28);
  5150.            
  5151.             // *
  5152.             float Variable_76; // * output 0
  5153.             Variable_76 = Variable_79 * float(0.1f);
  5154.            
  5155.             // +
  5156.             float Variable_75; // + output 0
  5157.             Variable_75 = Variable_73 + Variable_76;
  5158.            
  5159.             // ACOS
  5160.             float Variable_74; // ACOS output 0
  5161.             Variable_74 = FVoxelNodeFunctions::Acos(Variable_75);
  5162.            
  5163.             // /
  5164.             float Variable_71; // / output 0
  5165.             Variable_71 = Variable_74 / ConstantsCache.Variable_67;
  5166.            
  5167.             // 1 - X
  5168.             float Variable_69; // 1 - X output 0
  5169.             Variable_69 = 1 - Variable_71;
  5170.            
  5171.             // Min (float)
  5172.             float Variable_68; // Min (float) output 0
  5173.             Variable_68 = FVoxelNodeFunctions::Min<float>(Variable_71, Variable_69);
  5174.            
  5175.             // /
  5176.             float Variable_70; // / output 0
  5177.             Variable_70 = Variable_68 / float(0.5f);
  5178.            
  5179.             // 1 - X
  5180.             float Variable_77; // 1 - X output 0
  5181.             Variable_77 = 1 - Variable_70;
  5182.            
  5183.             // *
  5184.             float Variable_78; // * output 0
  5185.             Variable_78 = Variable_77 * float(20.0f);
  5186.            
  5187.             // /
  5188.             float Variable_94; // / output 0
  5189.             Variable_94 = Variable_78 / ConstantsCache.Variable_95;
  5190.            
  5191.             // RiverCurve
  5192.             float Variable_64; // RiverCurve output 0
  5193.             Variable_64 = RiverMask.Eval(Variable_94);
  5194.            
  5195.             // Static Clamp: -1.0 <= X <= 1.0
  5196.             float Variable_89; // Static Clamp: -1.0 <= X <= 1.0 output 0
  5197.             Variable_89 = FMath::Clamp<float>(Variable_64, -1.000000, 1.000000);
  5198.            
  5199.             // Min (float)
  5200.             float Variable_81; // Min (float) output 0
  5201.             Variable_81 = FVoxelNodeFunctions::Min<float>(Variable_89, float(0.0f));
  5202.            
  5203.             // *
  5204.             float Variable_82; // * output 0
  5205.             Variable_82 = Variable_81 * float(-1.0f);
  5206.            
  5207.             // *
  5208.             float Variable_83; // * output 0
  5209.             Variable_83 = Variable_63 * Variable_82;
  5210.            
  5211.             // 1 - X
  5212.             float Variable_84; // 1 - X output 0
  5213.             Variable_84 = 1 - Variable_82;
  5214.            
  5215.             // -
  5216.             float Variable_85; // - output 0
  5217.             Variable_85 = Variable_83 - Variable_84;
  5218.            
  5219.             // 1 - X
  5220.             float Variable_56; // 1 - X output 0
  5221.             Variable_56 = 1 - Variable_87;
  5222.            
  5223.             // PlainsNoiseStrengthCurve
  5224.             float Variable_62; // PlainsNoiseStrengthCurve output 0
  5225.             Variable_62 = PlainsNoiseStrength.Eval(Variable_34);
  5226.            
  5227.             // Static Clamp: 0.0 <= X <= 1.0
  5228.             float Variable_88; // Static Clamp: 0.0 <= X <= 1.0 output 0
  5229.             Variable_88 = FMath::Clamp<float>(Variable_62, 0.000000, 1.000000);
  5230.            
  5231.             // *
  5232.             float Variable_57; // * output 0
  5233.             Variable_57 = Variable_85 * ConstantsCache.Variable_58 * Variable_56 * Variable_88;
  5234.            
  5235.             // Max (float)
  5236.             float Variable_80; // Max (float) output 0
  5237.             Variable_80 = FVoxelNodeFunctions::Max<float>(Variable_89, float(0.0f));
  5238.            
  5239.             // *
  5240.             float Variable_65; // * output 0
  5241.             Variable_65 = Variable_80 * float(-1.0f) * ConstantsCache.Variable_66;
  5242.            
  5243.             // +
  5244.             float Variable_33; // + output 0
  5245.             Variable_33 = Variable_39 + Variable_42 + Variable_48 + Variable_55 + Variable_57 + Variable_65;
  5246.            
  5247.             // *
  5248.             float Variable_93; // * output 0
  5249.             Variable_93 = Variable_33 * ConstantsCache.Variable_90;
  5250.            
  5251.             // -
  5252.             float Variable_32; // - output 0
  5253.             Variable_32 = ConstantsCache.Variable_91 - Variable_93;
  5254.            
  5255.             // -
  5256.             float Variable_4; // - output 0
  5257.             Variable_4 = Variable_32 - Variable_30;
  5258.            
  5259.             // -
  5260.             float Variable_7; // - output 0
  5261.             Variable_7 = Variable_30 - ConstantsCache.Variable_6;
  5262.            
  5263.             // Max (float)
  5264.             float Variable_8; // Max (float) output 0
  5265.             Variable_8 = FVoxelNodeFunctions::Max<float>(Variable_4, Variable_7);
  5266.            
  5267.             // -
  5268.             float Variable_19; // - output 0
  5269.             Variable_19 = Variable_8 - float(1.0f);
  5270.            
  5271.             // Max (float)
  5272.             float Variable_18; // Max (float) output 0
  5273.             Variable_18 = FVoxelNodeFunctions::Max<float>(Variable_35, float(0.0f));
  5274.            
  5275.             // *
  5276.             float Variable_20; // * output 0
  5277.             Variable_20 = Variable_18 * ConstantsCache.Variable_22;
  5278.            
  5279.             // Min (float)
  5280.             float Variable_21; // Min (float) output 0
  5281.             Variable_21 = FVoxelNodeFunctions::Min<float>(Variable_20, float(1.0f));
  5282.            
  5283.             // *
  5284.             float Variable_16; // * output 0
  5285.             Variable_16 = Variable_19 * Variable_21;
  5286.            
  5287.             // +
  5288.             float Variable_17; // + output 0
  5289.             Variable_17 = Variable_16 + float(1.0f);
  5290.            
  5291.             GraphOutputs.Value = Variable_17;
  5292.         }
  5293.        
  5294.     };
  5295.     struct FLocalComputeStruct_LocalMaterialCache2DUsage_LOD0
  5296.     {
  5297.         struct FVoxelGraphOutputs
  5298.         {
  5299.             FVoxelMaterial& Material;
  5300.             float& Cache2DUsage;
  5301.         };
  5302.         struct FVoxelConstantsCache
  5303.         {
  5304.             float Variable_61; // PlainsColorLow output 0
  5305.             float Variable_62; // PlainsColorLow output 1
  5306.             float Variable_63; // PlainsColorLow output 2
  5307.             float Variable_64; // PlainsColorLow output 3
  5308.             float Variable_15; // RingEdgesHardness = 10.0 output 0
  5309.             float Variable_18; // PI.3.141593 output 0
  5310.             float Variable_25; // Width in Degrees = 50.0 output 0
  5311.             float Variable_69; // RiverColor output 0
  5312.             float Variable_70; // RiverColor output 1
  5313.             float Variable_71; // RiverColor output 2
  5314.             float Variable_72; // RiverColor output 3
  5315.             float Variable_92; // BeachColor output 0
  5316.             float Variable_93; // BeachColor output 1
  5317.             float Variable_94; // BeachColor output 2
  5318.             float Variable_95; // BeachColor output 3
  5319.             float Variable_33; // MountainsNoiseFrequency = 0.2 output 0
  5320.             float Variable_36; // MountainsColorHigh output 0
  5321.             float Variable_37; // MountainsColorHigh output 1
  5322.             float Variable_38; // MountainsColorHigh output 2
  5323.             float Variable_39; // MountainsColorHigh output 3
  5324.             float Variable_40; // MountainsColorLowLow output 0
  5325.             float Variable_41; // MountainsColorLowLow output 1
  5326.             float Variable_42; // MountainsColorLowLow output 2
  5327.             float Variable_43; // MountainsColorLowLow output 3
  5328.             float Variable_46; // MountainsColorLowHigh output 0
  5329.             float Variable_47; // MountainsColorLowHigh output 1
  5330.             float Variable_48; // MountainsColorLowHigh output 2
  5331.             float Variable_49; // MountainsColorLowHigh output 3
  5332.             float Variable_52; // PlainsNoiseFrequency = 0.2 output 0
  5333.             float Variable_54; // PlainsColorHigh output 0
  5334.             float Variable_55; // PlainsColorHigh output 1
  5335.             float Variable_56; // PlainsColorHigh output 2
  5336.             float Variable_57; // PlainsColorHigh output 3
  5337.             float Variable_4; // Radius = 7000.0 output 0
  5338.             float Variable_68; // PI.3.141593 output 0
  5339.             float Variable_104; // RiverWidth = 1.0 output 0
  5340.             float Variable_100; // Scale = 10.0 output 0
  5341.             float Variable_108; // Thickness = 500.0 output 0
  5342.             float Variable_110; // PI.3.141593 output 0
  5343.             float Variable_112; // RingOuterColor output 0
  5344.             float Variable_113; // RingOuterColor output 1
  5345.             float Variable_114; // RingOuterColor output 2
  5346.             float Variable_115; // RingOuterColor output 3
  5347.             float Variable_109; // * output 0
  5348.             float Variable_29; // / output 0
  5349.             float Variable_101; // * output 0
  5350.             float Variable_102; // / output 0
  5351.             float Variable_28; // - output 0
  5352.             float Variable_107; // + output 0
  5353.         };
  5354.         struct FVoxelCache
  5355.         {
  5356.             float Variable_0; // X output 0
  5357.             float Variable_17; // X output 0
  5358.             float Variable_1; // Y output 0
  5359.             float Variable_23; // Y output 0
  5360.             float Variable_16; // ATAN2 output 0
  5361.             float Variable_19; // / output 0
  5362.             float Variable_22; // * output 0
  5363.             float Variable_51; // * output 0
  5364.             float Variable_85; // 2D Simplex Noise output 0
  5365.             float Variable_82; // * output 0
  5366.             float Variable_32; // * output 0
  5367.         };
  5368.        
  5369.         FLocalComputeStruct_LocalMaterialCache2DUsage_LOD0(const float& InScale, const float& InPlainsNoiseHeight, const float& InRingEdgesHardness, const float& InWidth_in_Degrees, const float& InRiverDepth, const float& InThickness, const float& InBaseHeight, const float& InBaseNoiseHeight, const float& InBaseNoiseFrquency, const float& InMountainsNoiseHeight, const float& InRadius, const float& InRiverWidth, const float& InPlainsNoiseFrequency, const float& InMountainsNoiseFrequency, const FRichCurve& InRingShape, const FRichCurve& InMoutainsMask, const FRichCurve& InRiverMask, const FRichCurve& InPlainsNoiseStrength, const FLinearColor& InPlainsColorLow, const FLinearColor& InRiverColor, const FLinearColor& InBeachColor, const FLinearColor& InMountainsColorHigh, const FLinearColor& InMountainsColorLowLow, const FLinearColor& InMountainsColorLowHigh, const FLinearColor& InPlainsColorHigh, const FLinearColor& InRingOuterColor)
  5370.             : Scale(InScale)
  5371.             , PlainsNoiseHeight(InPlainsNoiseHeight)
  5372.             , RingEdgesHardness(InRingEdgesHardness)
  5373.             , Width_in_Degrees(InWidth_in_Degrees)
  5374.             , RiverDepth(InRiverDepth)
  5375.             , Thickness(InThickness)
  5376.             , BaseHeight(InBaseHeight)
  5377.             , BaseNoiseHeight(InBaseNoiseHeight)
  5378.             , BaseNoiseFrquency(InBaseNoiseFrquency)
  5379.             , MountainsNoiseHeight(InMountainsNoiseHeight)
  5380.             , Radius(InRadius)
  5381.             , RiverWidth(InRiverWidth)
  5382.             , PlainsNoiseFrequency(InPlainsNoiseFrequency)
  5383.             , MountainsNoiseFrequency(InMountainsNoiseFrequency)
  5384.             , RingShape(InRingShape)
  5385.             , MoutainsMask(InMoutainsMask)
  5386.             , RiverMask(InRiverMask)
  5387.             , PlainsNoiseStrength(InPlainsNoiseStrength)
  5388.             , PlainsColorLow(InPlainsColorLow)
  5389.             , RiverColor(InRiverColor)
  5390.             , BeachColor(InBeachColor)
  5391.             , MountainsColorHigh(InMountainsColorHigh)
  5392.             , MountainsColorLowLow(InMountainsColorLowLow)
  5393.             , MountainsColorLowHigh(InMountainsColorLowHigh)
  5394.             , PlainsColorHigh(InPlainsColorHigh)
  5395.             , RingOuterColor(InRingOuterColor)
  5396.         {
  5397.         }
  5398.        
  5399.         void Init(const FVoxelWorldGeneratorInit& InitStruct)
  5400.         {
  5401.             FVoxelCache Cache;
  5402.            
  5403.             {
  5404.             }
  5405.            
  5406.             Function0_Init(InitStruct);
  5407.            
  5408.             {
  5409.                 // PlainsColorLow
  5410.                 ConstantsCache.Variable_61 = PlainsColorLow.R;
  5411.                 ConstantsCache.Variable_62 = PlainsColorLow.G;
  5412.                 ConstantsCache.Variable_63 = PlainsColorLow.B;
  5413.                 ConstantsCache.Variable_64 = PlainsColorLow.A;
  5414.                
  5415.                 // RingEdgesHardness = 10.0
  5416.                 ConstantsCache.Variable_15 = RingEdgesHardness;
  5417.                
  5418.                 // PI.3.141593
  5419.                 ConstantsCache.Variable_18 = 3.141593;
  5420.                
  5421.                 // Width in Degrees = 50.0
  5422.                 ConstantsCache.Variable_25 = Width_in_Degrees;
  5423.                
  5424.                 // RiverColor
  5425.                 ConstantsCache.Variable_69 = RiverColor.R;
  5426.                 ConstantsCache.Variable_70 = RiverColor.G;
  5427.                 ConstantsCache.Variable_71 = RiverColor.B;
  5428.                 ConstantsCache.Variable_72 = RiverColor.A;
  5429.                
  5430.                 // BeachColor
  5431.                 ConstantsCache.Variable_92 = BeachColor.R;
  5432.                 ConstantsCache.Variable_93 = BeachColor.G;
  5433.                 ConstantsCache.Variable_94 = BeachColor.B;
  5434.                 ConstantsCache.Variable_95 = BeachColor.A;
  5435.                
  5436.                 // MountainsNoiseFrequency = 0.2
  5437.                 ConstantsCache.Variable_33 = MountainsNoiseFrequency;
  5438.                
  5439.                 // MountainsColorHigh
  5440.                 ConstantsCache.Variable_36 = MountainsColorHigh.R;
  5441.                 ConstantsCache.Variable_37 = MountainsColorHigh.G;
  5442.                 ConstantsCache.Variable_38 = MountainsColorHigh.B;
  5443.                 ConstantsCache.Variable_39 = MountainsColorHigh.A;
  5444.                
  5445.                 // MountainsColorLowLow
  5446.                 ConstantsCache.Variable_40 = MountainsColorLowLow.R;
  5447.                 ConstantsCache.Variable_41 = MountainsColorLowLow.G;
  5448.                 ConstantsCache.Variable_42 = MountainsColorLowLow.B;
  5449.                 ConstantsCache.Variable_43 = MountainsColorLowLow.A;
  5450.                
  5451.                 // MountainsColorLowHigh
  5452.                 ConstantsCache.Variable_46 = MountainsColorLowHigh.R;
  5453.                 ConstantsCache.Variable_47 = MountainsColorLowHigh.G;
  5454.                 ConstantsCache.Variable_48 = MountainsColorLowHigh.B;
  5455.                 ConstantsCache.Variable_49 = MountainsColorLowHigh.A;
  5456.                
  5457.                 // PlainsNoiseFrequency = 0.2
  5458.                 ConstantsCache.Variable_52 = PlainsNoiseFrequency;
  5459.                
  5460.                 // PlainsColorHigh
  5461.                 ConstantsCache.Variable_54 = PlainsColorHigh.R;
  5462.                 ConstantsCache.Variable_55 = PlainsColorHigh.G;
  5463.                 ConstantsCache.Variable_56 = PlainsColorHigh.B;
  5464.                 ConstantsCache.Variable_57 = PlainsColorHigh.A;
  5465.                
  5466.                 // Radius = 7000.0
  5467.                 ConstantsCache.Variable_4 = Radius;
  5468.                
  5469.                 // PI.3.141593
  5470.                 ConstantsCache.Variable_68 = 3.141593;
  5471.                
  5472.                 // RiverWidth = 1.0
  5473.                 ConstantsCache.Variable_104 = RiverWidth;
  5474.                
  5475.                 // Scale = 10.0
  5476.                 ConstantsCache.Variable_100 = Scale;
  5477.                
  5478.                 // Thickness = 500.0
  5479.                 ConstantsCache.Variable_108 = Thickness;
  5480.                
  5481.                 // PI.3.141593
  5482.                 ConstantsCache.Variable_110 = 3.141593;
  5483.                
  5484.                 // RingOuterColor
  5485.                 ConstantsCache.Variable_112 = RingOuterColor.R;
  5486.                 ConstantsCache.Variable_113 = RingOuterColor.G;
  5487.                 ConstantsCache.Variable_114 = RingOuterColor.B;
  5488.                 ConstantsCache.Variable_115 = RingOuterColor.A;
  5489.                
  5490.                 // *
  5491.                 ConstantsCache.Variable_109 = ConstantsCache.Variable_108 * ConstantsCache.Variable_100;
  5492.                
  5493.                 // /
  5494.                 ConstantsCache.Variable_29 = ConstantsCache.Variable_25 / float(360.0f);
  5495.                
  5496.                 // *
  5497.                 ConstantsCache.Variable_101 = ConstantsCache.Variable_4 * ConstantsCache.Variable_100;
  5498.                
  5499.                 // /
  5500.                 ConstantsCache.Variable_102 = ConstantsCache.Variable_101 / ConstantsCache.Variable_100;
  5501.                
  5502.                 // -
  5503.                 ConstantsCache.Variable_28 = float(0.5f) - ConstantsCache.Variable_29;
  5504.                
  5505.                 // +
  5506.                 ConstantsCache.Variable_107 = ConstantsCache.Variable_101 + ConstantsCache.Variable_109 + float(-5.0f);
  5507.                
  5508.             }
  5509.         }
  5510.         void ComputeX(FVoxelCache& Cache, const FVoxelContext& Context, FVoxelGraphOutputs& GraphOutputs) const
  5511.         {
  5512.             Function0_X_Compute(GraphOutputs, Cache, Context);
  5513.         }
  5514.         void ComputeXY(FVoxelCache& Cache, const FVoxelContext& Context, FVoxelGraphOutputs& GraphOutputs) const
  5515.         {
  5516.             Function0_XY_Compute(GraphOutputs, Cache, Context);
  5517.         }
  5518.         void ComputeXYZ(FVoxelCache& Cache, const FVoxelContext& Context, FVoxelGraphOutputs& GraphOutputs) const
  5519.         {
  5520.             Function0_XYZ_Compute(GraphOutputs, Cache, Context);
  5521.         }
  5522.         void Get(const FVoxelContext&Context, FVoxelMaterial& Material, float& Cache2DUsage) const
  5523.         {
  5524.             FVoxelGraphOutputs GraphOutputs{Material, Cache2DUsage};
  5525.             Function0_Compute(GraphOutputs, Context);
  5526.         }
  5527.        
  5528.     private:
  5529.         FVoxelConstantsCache ConstantsCache;
  5530.         FastNoise _2D_Simplex_Noise_8758_Noise;
  5531.         FastNoise _2D_Simplex_Noise_8759_Noise;
  5532.         FastNoise _2D_Perlin_Noise_7436_Noise;
  5533.         FastNoise _2D_Simplex_Noise_Fractal_15571_Noise;
  5534.        
  5535.         const float& Scale;
  5536.         const float& PlainsNoiseHeight;
  5537.         const float& RingEdgesHardness;
  5538.         const float& Width_in_Degrees;
  5539.         const float& RiverDepth;
  5540.         const float& Thickness;
  5541.         const float& BaseHeight;
  5542.         const float& BaseNoiseHeight;
  5543.         const float& BaseNoiseFrquency;
  5544.         const float& MountainsNoiseHeight;
  5545.         const float& Radius;
  5546.         const float& RiverWidth;
  5547.         const float& PlainsNoiseFrequency;
  5548.         const float& MountainsNoiseFrequency;
  5549.         const FRichCurve& RingShape;
  5550.         const FRichCurve& MoutainsMask;
  5551.         const FRichCurve& RiverMask;
  5552.         const FRichCurve& PlainsNoiseStrength;
  5553.         const FLinearColor& PlainsColorLow;
  5554.         const FLinearColor& RiverColor;
  5555.         const FLinearColor& BeachColor;
  5556.         const FLinearColor& MountainsColorHigh;
  5557.         const FLinearColor& MountainsColorLowLow;
  5558.         const FLinearColor& MountainsColorLowHigh;
  5559.         const FLinearColor& PlainsColorHigh;
  5560.         const FLinearColor& RingOuterColor;
  5561.        
  5562.         ///////////////////////////////////////////////////////////////////////
  5563.         //////////////////////////// Init functions ///////////////////////////
  5564.         ///////////////////////////////////////////////////////////////////////
  5565.        
  5566.         void Function0_Init(const FVoxelWorldGeneratorInit& InitStruct)
  5567.         {
  5568.             // Init of 2D Simplex Noise
  5569.             _2D_Simplex_Noise_8759_Noise.SetSeed(Seed(1337));
  5570.             _2D_Simplex_Noise_8759_Noise.SetFrequency(0.02);
  5571.             _2D_Simplex_Noise_8759_Noise.SetInterp(FastNoise::Interp::Quintic);
  5572.            
  5573.             // Init of 2D Simplex Noise
  5574.             _2D_Simplex_Noise_8758_Noise.SetSeed(Seed(1000));
  5575.             _2D_Simplex_Noise_8758_Noise.SetFrequency(0.001);
  5576.             _2D_Simplex_Noise_8758_Noise.SetInterp(FastNoise::Interp::Quintic);
  5577.            
  5578.             // Init of 2D Perlin Noise
  5579.             _2D_Perlin_Noise_7436_Noise.SetSeed(Seed(1338));
  5580.             _2D_Perlin_Noise_7436_Noise.SetFrequency(0.1);
  5581.             _2D_Perlin_Noise_7436_Noise.SetInterp(FastNoise::Interp::Quintic);
  5582.            
  5583.             // Init of 2D Simplex Noise Fractal
  5584.             _2D_Simplex_Noise_Fractal_15571_Noise.SetSeed(Seed(1337));
  5585.             _2D_Simplex_Noise_Fractal_15571_Noise.SetFrequency(0.02);
  5586.             _2D_Simplex_Noise_Fractal_15571_Noise.SetInterp(FastNoise::Interp::Quintic);
  5587.             _2D_Simplex_Noise_Fractal_15571_Noise.SetFractalOctaves(8);
  5588.             _2D_Simplex_Noise_Fractal_15571_Noise.SetFractalLacunarity(2.0);
  5589.             _2D_Simplex_Noise_Fractal_15571_Noise.SetFractalGain(0.5);
  5590.             _2D_Simplex_Noise_Fractal_15571_Noise.SetFractalType(FastNoise::FractalType::FBM);
  5591.            
  5592.         }
  5593.        
  5594.         ///////////////////////////////////////////////////////////////////////
  5595.         ////////////////////////// Compute functions //////////////////////////
  5596.         ///////////////////////////////////////////////////////////////////////
  5597.        
  5598.         void Function0_X_Compute(FVoxelGraphOutputs& GraphOutputs, FVoxelCache& Cache, const FVoxelContext& Context) const
  5599.         {
  5600.             // X
  5601.             Cache.Variable_0 = Context.X;
  5602.            
  5603.             // X
  5604.             Cache.Variable_17 = Context.X;
  5605.            
  5606.         }
  5607.        
  5608.         void Function0_XY_Compute(FVoxelGraphOutputs& GraphOutputs, FVoxelCache& Cache, const FVoxelContext& Context) const
  5609.         {
  5610.             // Y
  5611.             Cache.Variable_1 = Context.Y;
  5612.            
  5613.             // Y
  5614.             Cache.Variable_23 = Context.Y;
  5615.            
  5616.             // ATAN2
  5617.             Cache.Variable_16 = FVoxelNodeFunctions::Atan2(Cache.Variable_23, Cache.Variable_17);
  5618.            
  5619.             // /
  5620.             Cache.Variable_19 = Cache.Variable_16 / ConstantsCache.Variable_18;
  5621.            
  5622.             // *
  5623.             Cache.Variable_22 = ConstantsCache.Variable_102 * Cache.Variable_19;
  5624.            
  5625.             // *
  5626.             Cache.Variable_51 = Cache.Variable_22 * ConstantsCache.Variable_52;
  5627.            
  5628.             // 2D Simplex Noise
  5629.             Cache.Variable_85 = _2D_Simplex_Noise_8758_Noise.GetSimplex(Cache.Variable_22, Cache.Variable_22);
  5630.            
  5631.             // *
  5632.             Cache.Variable_82 = Cache.Variable_85 * float(0.1f);
  5633.            
  5634.             // *
  5635.             Cache.Variable_32 = Cache.Variable_22 * ConstantsCache.Variable_33;
  5636.            
  5637.         }
  5638.        
  5639.         void Function0_XYZ_Compute(FVoxelGraphOutputs& GraphOutputs, FVoxelCache& Cache, const FVoxelContext& Context) const
  5640.         {
  5641.             // Z
  5642.             float Variable_8; // Z output 0
  5643.             Variable_8 = Context.Z;
  5644.            
  5645.             // Z
  5646.             float Variable_2; // Z output 0
  5647.             Variable_2 = Context.Z;
  5648.            
  5649.             // Vector Length
  5650.             float Variable_3; // Vector Length output 0
  5651.             Variable_3 = FVoxelNodeFunctions::VectorLength(Cache.Variable_0, Cache.Variable_1, Variable_2);
  5652.            
  5653.             // +
  5654.             float Variable_24; // + output 0
  5655.             Variable_24 = Variable_3 + float(0.001f);
  5656.            
  5657.             // /
  5658.             float Variable_9; // / output 0
  5659.             Variable_9 = Variable_8 / Variable_24;
  5660.            
  5661.             // ACOS
  5662.             float Variable_10; // ACOS output 0
  5663.             Variable_10 = FVoxelNodeFunctions::Acos(Variable_9);
  5664.            
  5665.             // /
  5666.             float Variable_6; // / output 0
  5667.             Variable_6 = Variable_10 / ConstantsCache.Variable_110;
  5668.            
  5669.             // *
  5670.             float Variable_21; // * output 0
  5671.             Variable_21 = ConstantsCache.Variable_102 * Variable_6;
  5672.            
  5673.             // *
  5674.             float Variable_50; // * output 0
  5675.             Variable_50 = Variable_21 * ConstantsCache.Variable_52;
  5676.            
  5677.             // 2D Simplex Noise
  5678.             float Variable_58; // 2D Simplex Noise output 0
  5679.             Variable_58 = _2D_Simplex_Noise_8759_Noise.GetSimplex(Variable_50, Cache.Variable_51);
  5680.            
  5681.             // Z
  5682.             float Variable_77; // Z output 0
  5683.             Variable_77 = Context.Z;
  5684.            
  5685.             // /
  5686.             float Variable_78; // / output 0
  5687.             Variable_78 = Variable_77 / Variable_24;
  5688.            
  5689.             // +
  5690.             float Variable_81; // + output 0
  5691.             Variable_81 = Variable_78 + Cache.Variable_82;
  5692.            
  5693.             // ACOS
  5694.             float Variable_79; // ACOS output 0
  5695.             Variable_79 = FVoxelNodeFunctions::Acos(Variable_81);
  5696.            
  5697.             // /
  5698.             float Variable_76; // / output 0
  5699.             Variable_76 = Variable_79 / ConstantsCache.Variable_68;
  5700.            
  5701.             // 1 - X
  5702.             float Variable_74; // 1 - X output 0
  5703.             Variable_74 = 1 - Variable_76;
  5704.            
  5705.             // Min (float)
  5706.             float Variable_73; // Min (float) output 0
  5707.             Variable_73 = FVoxelNodeFunctions::Min<float>(Variable_76, Variable_74);
  5708.            
  5709.             // /
  5710.             float Variable_75; // / output 0
  5711.             Variable_75 = Variable_73 / float(0.5f);
  5712.            
  5713.             // 1 - X
  5714.             float Variable_83; // 1 - X output 0
  5715.             Variable_83 = 1 - Variable_75;
  5716.            
  5717.             // *
  5718.             float Variable_84; // * output 0
  5719.             Variable_84 = Variable_83 * float(20.0f);
  5720.            
  5721.             // /
  5722.             float Variable_103; // / output 0
  5723.             Variable_103 = Variable_84 / ConstantsCache.Variable_104;
  5724.            
  5725.             // RiverCurve
  5726.             float Variable_67; // RiverCurve output 0
  5727.             Variable_67 = RiverMask.Eval(Variable_103);
  5728.            
  5729.             // Static Clamp: -1.0 <= X <= 1.0
  5730.             float Variable_99; // Static Clamp: -1.0 <= X <= 1.0 output 0
  5731.             Variable_99 = FMath::Clamp<float>(Variable_67, -1.000000, 1.000000);
  5732.            
  5733.             // Min (float)
  5734.             float Variable_86; // Min (float) output 0
  5735.             Variable_86 = FVoxelNodeFunctions::Min<float>(Variable_99, float(0.0f));
  5736.            
  5737.             // *
  5738.             float Variable_87; // * output 0
  5739.             Variable_87 = Variable_86 * float(-1.0f);
  5740.            
  5741.             // *
  5742.             float Variable_88; // * output 0
  5743.             Variable_88 = Variable_58 * Variable_87;
  5744.            
  5745.             // 1 - X
  5746.             float Variable_89; // 1 - X output 0
  5747.             Variable_89 = 1 - Variable_87;
  5748.            
  5749.             // -
  5750.             float Variable_90; // - output 0
  5751.             Variable_90 = Variable_88 - Variable_89;
  5752.            
  5753.             // BlendColors.Clamp
  5754.             float Variable_53; // BlendColors.Clamp output 0
  5755.             Variable_53 = FVoxelNodeFunctions::Clamp(Variable_90, float(0.0f), float(1.0f));
  5756.            
  5757.             // BlendColors.Lerp
  5758.             float Variable_128; // BlendColors.Lerp output 0
  5759.             Variable_128 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_61, ConstantsCache.Variable_54, Variable_53);
  5760.            
  5761.             // *
  5762.             float Variable_97; // * output 0
  5763.             Variable_97 = Variable_99 * float(10.0f);
  5764.            
  5765.             // BlendColors.Clamp
  5766.             float Variable_80; // BlendColors.Clamp output 0
  5767.             Variable_80 = FVoxelNodeFunctions::Clamp(Variable_97, float(0.0f), float(1.0f));
  5768.            
  5769.             // BlendColors.Lerp
  5770.             float Variable_136; // BlendColors.Lerp output 0
  5771.             Variable_136 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_92, ConstantsCache.Variable_69, Variable_80);
  5772.            
  5773.             // +
  5774.             float Variable_91; // + output 0
  5775.             Variable_91 = Variable_99 + float(0.3f);
  5776.            
  5777.             // BlendColors.Clamp
  5778.             float Variable_60; // BlendColors.Clamp output 0
  5779.             Variable_60 = FVoxelNodeFunctions::Clamp(Variable_91, float(0.0f), float(1.0f));
  5780.            
  5781.             // BlendColors.Lerp
  5782.             float Variable_132; // BlendColors.Lerp output 0
  5783.             Variable_132 = FVoxelNodeFunctions::Lerp(Variable_128, Variable_136, Variable_60);
  5784.            
  5785.             // *
  5786.             float Variable_31; // * output 0
  5787.             Variable_31 = Variable_21 * ConstantsCache.Variable_33;
  5788.            
  5789.             // 2D Perlin Noise
  5790.             float Variable_44; // 2D Perlin Noise output 0
  5791.             Variable_44 = _2D_Perlin_Noise_7436_Noise.GetPerlin(Variable_31, Cache.Variable_32);
  5792.            
  5793.             // BlendColors.Clamp
  5794.             float Variable_35; // BlendColors.Clamp output 0
  5795.             Variable_35 = FVoxelNodeFunctions::Clamp(Variable_44, float(0.0f), float(1.0f));
  5796.            
  5797.             // BlendColors.Lerp
  5798.             float Variable_120; // BlendColors.Lerp output 0
  5799.             Variable_120 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_40, ConstantsCache.Variable_46, Variable_35);
  5800.            
  5801.             // 2D Simplex Noise Fractal
  5802.             float Variable_30; // 2D Simplex Noise Fractal output 0
  5803.             Variable_30 = _2D_Simplex_Noise_Fractal_15571_Noise.GetSimplexFractal(Variable_31, Cache.Variable_32);
  5804.            
  5805.             // BlendColors.Clamp
  5806.             float Variable_20; // BlendColors.Clamp output 0
  5807.             Variable_20 = FVoxelNodeFunctions::Clamp(Variable_30, float(0.0f), float(1.0f));
  5808.            
  5809.             // BlendColors.Lerp
  5810.             float Variable_116; // BlendColors.Lerp output 0
  5811.             Variable_116 = FVoxelNodeFunctions::Lerp(Variable_120, ConstantsCache.Variable_36, Variable_20);
  5812.            
  5813.             // 1 - X
  5814.             float Variable_7; // 1 - X output 0
  5815.             Variable_7 = 1 - Variable_6;
  5816.            
  5817.             // Min (float)
  5818.             float Variable_5; // Min (float) output 0
  5819.             Variable_5 = FVoxelNodeFunctions::Min<float>(Variable_6, Variable_7);
  5820.            
  5821.             // -
  5822.             float Variable_11; // - output 0
  5823.             Variable_11 = Variable_5 - ConstantsCache.Variable_28;
  5824.            
  5825.             // /
  5826.             float Variable_27; // / output 0
  5827.             Variable_27 = Variable_11 / ConstantsCache.Variable_29;
  5828.            
  5829.             // 1 - X
  5830.             float Variable_26; // 1 - X output 0
  5831.             Variable_26 = 1 - Variable_27;
  5832.            
  5833.             // MountainsCurve
  5834.             float Variable_34; // MountainsCurve output 0
  5835.             Variable_34 = MoutainsMask.Eval(Variable_26);
  5836.            
  5837.             // Static Clamp: 0.0 <= X <= 1.0
  5838.             float Variable_98; // Static Clamp: 0.0 <= X <= 1.0 output 0
  5839.             Variable_98 = FMath::Clamp<float>(Variable_34, 0.000000, 1.000000);
  5840.            
  5841.             // *
  5842.             float Variable_59; // * output 0
  5843.             Variable_59 = Variable_98 * float(3.0f);
  5844.            
  5845.             // Max (float)
  5846.             float Variable_65; // Max (float) output 0
  5847.             Variable_65 = FVoxelNodeFunctions::Max<float>(Variable_90, float(0.0f));
  5848.            
  5849.             // -
  5850.             float Variable_66; // - output 0
  5851.             Variable_66 = Variable_59 - Variable_65;
  5852.            
  5853.             // BlendColors.Clamp
  5854.             float Variable_45; // BlendColors.Clamp output 0
  5855.             Variable_45 = FVoxelNodeFunctions::Clamp(Variable_66, float(0.0f), float(1.0f));
  5856.            
  5857.             // BlendColors.Lerp
  5858.             float Variable_124; // BlendColors.Lerp output 0
  5859.             Variable_124 = FVoxelNodeFunctions::Lerp(Variable_132, Variable_116, Variable_45);
  5860.            
  5861.             // Max (float)
  5862.             float Variable_12; // Max (float) output 0
  5863.             Variable_12 = FVoxelNodeFunctions::Max<float>(Variable_27, float(0.0f));
  5864.            
  5865.             // *
  5866.             float Variable_13; // * output 0
  5867.             Variable_13 = Variable_12 * ConstantsCache.Variable_15;
  5868.            
  5869.             // Min (float)
  5870.             float Variable_14; // Min (float) output 0
  5871.             Variable_14 = FVoxelNodeFunctions::Min<float>(Variable_13, float(1.0f));
  5872.            
  5873.             // -
  5874.             float Variable_111; // - output 0
  5875.             Variable_111 = ConstantsCache.Variable_107 - Variable_24;
  5876.            
  5877.             // Clamp
  5878.             float Variable_105; // Clamp output 0
  5879.             Variable_105 = FVoxelNodeFunctions::Clamp(Variable_111, float(0.0f), float(1.0f));
  5880.            
  5881.             // Min (float)
  5882.             float Variable_106; // Min (float) output 0
  5883.             Variable_106 = FVoxelNodeFunctions::Min<float>(Variable_14, Variable_105);
  5884.            
  5885.             // BlendColors.Clamp
  5886.             float Variable_96; // BlendColors.Clamp output 0
  5887.             Variable_96 = FVoxelNodeFunctions::Clamp(Variable_106, float(0.0f), float(1.0f));
  5888.            
  5889.             // BlendColors.Lerp
  5890.             float Variable_140; // BlendColors.Lerp output 0
  5891.             Variable_140 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_112, Variable_124, Variable_96);
  5892.            
  5893.             // BlendColors.Lerp
  5894.             float Variable_129; // BlendColors.Lerp output 0
  5895.             Variable_129 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_62, ConstantsCache.Variable_55, Variable_53);
  5896.            
  5897.             // BlendColors.Lerp
  5898.             float Variable_137; // BlendColors.Lerp output 0
  5899.             Variable_137 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_93, ConstantsCache.Variable_70, Variable_80);
  5900.            
  5901.             // BlendColors.Lerp
  5902.             float Variable_133; // BlendColors.Lerp output 0
  5903.             Variable_133 = FVoxelNodeFunctions::Lerp(Variable_129, Variable_137, Variable_60);
  5904.            
  5905.             // BlendColors.Lerp
  5906.             float Variable_121; // BlendColors.Lerp output 0
  5907.             Variable_121 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_41, ConstantsCache.Variable_47, Variable_35);
  5908.            
  5909.             // BlendColors.Lerp
  5910.             float Variable_117; // BlendColors.Lerp output 0
  5911.             Variable_117 = FVoxelNodeFunctions::Lerp(Variable_121, ConstantsCache.Variable_37, Variable_20);
  5912.            
  5913.             // BlendColors.Lerp
  5914.             float Variable_125; // BlendColors.Lerp output 0
  5915.             Variable_125 = FVoxelNodeFunctions::Lerp(Variable_133, Variable_117, Variable_45);
  5916.            
  5917.             // BlendColors.Lerp
  5918.             float Variable_141; // BlendColors.Lerp output 0
  5919.             Variable_141 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_113, Variable_125, Variable_96);
  5920.            
  5921.             // BlendColors.Lerp
  5922.             float Variable_130; // BlendColors.Lerp output 0
  5923.             Variable_130 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_63, ConstantsCache.Variable_56, Variable_53);
  5924.            
  5925.             // BlendColors.Lerp
  5926.             float Variable_138; // BlendColors.Lerp output 0
  5927.             Variable_138 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_94, ConstantsCache.Variable_71, Variable_80);
  5928.            
  5929.             // BlendColors.Lerp
  5930.             float Variable_134; // BlendColors.Lerp output 0
  5931.             Variable_134 = FVoxelNodeFunctions::Lerp(Variable_130, Variable_138, Variable_60);
  5932.            
  5933.             // BlendColors.Lerp
  5934.             float Variable_122; // BlendColors.Lerp output 0
  5935.             Variable_122 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_42, ConstantsCache.Variable_48, Variable_35);
  5936.            
  5937.             // BlendColors.Lerp
  5938.             float Variable_118; // BlendColors.Lerp output 0
  5939.             Variable_118 = FVoxelNodeFunctions::Lerp(Variable_122, ConstantsCache.Variable_38, Variable_20);
  5940.            
  5941.             // BlendColors.Lerp
  5942.             float Variable_126; // BlendColors.Lerp output 0
  5943.             Variable_126 = FVoxelNodeFunctions::Lerp(Variable_134, Variable_118, Variable_45);
  5944.            
  5945.             // BlendColors.Lerp
  5946.             float Variable_142; // BlendColors.Lerp output 0
  5947.             Variable_142 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_114, Variable_126, Variable_96);
  5948.            
  5949.             // BlendColors.Lerp
  5950.             float Variable_131; // BlendColors.Lerp output 0
  5951.             Variable_131 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_64, ConstantsCache.Variable_57, Variable_53);
  5952.            
  5953.             // BlendColors.Lerp
  5954.             float Variable_139; // BlendColors.Lerp output 0
  5955.             Variable_139 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_95, ConstantsCache.Variable_72, Variable_80);
  5956.            
  5957.             // BlendColors.Lerp
  5958.             float Variable_135; // BlendColors.Lerp output 0
  5959.             Variable_135 = FVoxelNodeFunctions::Lerp(Variable_131, Variable_139, Variable_60);
  5960.            
  5961.             // BlendColors.Lerp
  5962.             float Variable_123; // BlendColors.Lerp output 0
  5963.             Variable_123 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_43, ConstantsCache.Variable_49, Variable_35);
  5964.            
  5965.             // BlendColors.Lerp
  5966.             float Variable_119; // BlendColors.Lerp output 0
  5967.             Variable_119 = FVoxelNodeFunctions::Lerp(Variable_123, ConstantsCache.Variable_39, Variable_20);
  5968.            
  5969.             // BlendColors.Lerp
  5970.             float Variable_127; // BlendColors.Lerp output 0
  5971.             Variable_127 = FVoxelNodeFunctions::Lerp(Variable_135, Variable_119, Variable_45);
  5972.            
  5973.             // BlendColors.Lerp
  5974.             float Variable_143; // BlendColors.Lerp output 0
  5975.             Variable_143 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_115, Variable_127, Variable_96);
  5976.            
  5977.             GraphOutputs.Material.SetColor(FLinearColor(Variable_140, Variable_141, Variable_142, Variable_143));
  5978.         }
  5979.        
  5980.         void Function0_Compute(FVoxelGraphOutputs& GraphOutputs, const FVoxelContext& Context) const
  5981.         {
  5982.             // Z
  5983.             float Variable_8; // Z output 0
  5984.             Variable_8 = Context.Z;
  5985.            
  5986.             // X
  5987.             float Variable_0; // X output 0
  5988.             Variable_0 = Context.X;
  5989.            
  5990.             // Y
  5991.             float Variable_1; // Y output 0
  5992.             Variable_1 = Context.Y;
  5993.            
  5994.             // Z
  5995.             float Variable_2; // Z output 0
  5996.             Variable_2 = Context.Z;
  5997.            
  5998.             // Vector Length
  5999.             float Variable_3; // Vector Length output 0
  6000.             Variable_3 = FVoxelNodeFunctions::VectorLength(Variable_0, Variable_1, Variable_2);
  6001.            
  6002.             // +
  6003.             float Variable_24; // + output 0
  6004.             Variable_24 = Variable_3 + float(0.001f);
  6005.            
  6006.             // /
  6007.             float Variable_9; // / output 0
  6008.             Variable_9 = Variable_8 / Variable_24;
  6009.            
  6010.             // ACOS
  6011.             float Variable_10; // ACOS output 0
  6012.             Variable_10 = FVoxelNodeFunctions::Acos(Variable_9);
  6013.            
  6014.             // /
  6015.             float Variable_6; // / output 0
  6016.             Variable_6 = Variable_10 / ConstantsCache.Variable_110;
  6017.            
  6018.             // *
  6019.             float Variable_21; // * output 0
  6020.             Variable_21 = ConstantsCache.Variable_102 * Variable_6;
  6021.            
  6022.             // *
  6023.             float Variable_50; // * output 0
  6024.             Variable_50 = Variable_21 * ConstantsCache.Variable_52;
  6025.            
  6026.             // Y
  6027.             float Variable_23; // Y output 0
  6028.             Variable_23 = Context.Y;
  6029.            
  6030.             // X
  6031.             float Variable_17; // X output 0
  6032.             Variable_17 = Context.X;
  6033.            
  6034.             // ATAN2
  6035.             float Variable_16; // ATAN2 output 0
  6036.             Variable_16 = FVoxelNodeFunctions::Atan2(Variable_23, Variable_17);
  6037.            
  6038.             // /
  6039.             float Variable_19; // / output 0
  6040.             Variable_19 = Variable_16 / ConstantsCache.Variable_18;
  6041.            
  6042.             // *
  6043.             float Variable_22; // * output 0
  6044.             Variable_22 = ConstantsCache.Variable_102 * Variable_19;
  6045.            
  6046.             // *
  6047.             float Variable_51; // * output 0
  6048.             Variable_51 = Variable_22 * ConstantsCache.Variable_52;
  6049.            
  6050.             // 2D Simplex Noise
  6051.             float Variable_58; // 2D Simplex Noise output 0
  6052.             Variable_58 = _2D_Simplex_Noise_8759_Noise.GetSimplex(Variable_50, Variable_51);
  6053.            
  6054.             // Z
  6055.             float Variable_77; // Z output 0
  6056.             Variable_77 = Context.Z;
  6057.            
  6058.             // /
  6059.             float Variable_78; // / output 0
  6060.             Variable_78 = Variable_77 / Variable_24;
  6061.            
  6062.             // 2D Simplex Noise
  6063.             float Variable_85; // 2D Simplex Noise output 0
  6064.             Variable_85 = _2D_Simplex_Noise_8758_Noise.GetSimplex(Variable_22, Variable_22);
  6065.            
  6066.             // *
  6067.             float Variable_82; // * output 0
  6068.             Variable_82 = Variable_85 * float(0.1f);
  6069.            
  6070.             // +
  6071.             float Variable_81; // + output 0
  6072.             Variable_81 = Variable_78 + Variable_82;
  6073.            
  6074.             // ACOS
  6075.             float Variable_79; // ACOS output 0
  6076.             Variable_79 = FVoxelNodeFunctions::Acos(Variable_81);
  6077.            
  6078.             // /
  6079.             float Variable_76; // / output 0
  6080.             Variable_76 = Variable_79 / ConstantsCache.Variable_68;
  6081.            
  6082.             // 1 - X
  6083.             float Variable_74; // 1 - X output 0
  6084.             Variable_74 = 1 - Variable_76;
  6085.            
  6086.             // Min (float)
  6087.             float Variable_73; // Min (float) output 0
  6088.             Variable_73 = FVoxelNodeFunctions::Min<float>(Variable_76, Variable_74);
  6089.            
  6090.             // /
  6091.             float Variable_75; // / output 0
  6092.             Variable_75 = Variable_73 / float(0.5f);
  6093.            
  6094.             // 1 - X
  6095.             float Variable_83; // 1 - X output 0
  6096.             Variable_83 = 1 - Variable_75;
  6097.            
  6098.             // *
  6099.             float Variable_84; // * output 0
  6100.             Variable_84 = Variable_83 * float(20.0f);
  6101.            
  6102.             // /
  6103.             float Variable_103; // / output 0
  6104.             Variable_103 = Variable_84 / ConstantsCache.Variable_104;
  6105.            
  6106.             // RiverCurve
  6107.             float Variable_67; // RiverCurve output 0
  6108.             Variable_67 = RiverMask.Eval(Variable_103);
  6109.            
  6110.             // Static Clamp: -1.0 <= X <= 1.0
  6111.             float Variable_99; // Static Clamp: -1.0 <= X <= 1.0 output 0
  6112.             Variable_99 = FMath::Clamp<float>(Variable_67, -1.000000, 1.000000);
  6113.            
  6114.             // Min (float)
  6115.             float Variable_86; // Min (float) output 0
  6116.             Variable_86 = FVoxelNodeFunctions::Min<float>(Variable_99, float(0.0f));
  6117.            
  6118.             // *
  6119.             float Variable_87; // * output 0
  6120.             Variable_87 = Variable_86 * float(-1.0f);
  6121.            
  6122.             // *
  6123.             float Variable_88; // * output 0
  6124.             Variable_88 = Variable_58 * Variable_87;
  6125.            
  6126.             // 1 - X
  6127.             float Variable_89; // 1 - X output 0
  6128.             Variable_89 = 1 - Variable_87;
  6129.            
  6130.             // -
  6131.             float Variable_90; // - output 0
  6132.             Variable_90 = Variable_88 - Variable_89;
  6133.            
  6134.             // BlendColors.Clamp
  6135.             float Variable_53; // BlendColors.Clamp output 0
  6136.             Variable_53 = FVoxelNodeFunctions::Clamp(Variable_90, float(0.0f), float(1.0f));
  6137.            
  6138.             // BlendColors.Lerp
  6139.             float Variable_128; // BlendColors.Lerp output 0
  6140.             Variable_128 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_61, ConstantsCache.Variable_54, Variable_53);
  6141.            
  6142.             // *
  6143.             float Variable_97; // * output 0
  6144.             Variable_97 = Variable_99 * float(10.0f);
  6145.            
  6146.             // BlendColors.Clamp
  6147.             float Variable_80; // BlendColors.Clamp output 0
  6148.             Variable_80 = FVoxelNodeFunctions::Clamp(Variable_97, float(0.0f), float(1.0f));
  6149.            
  6150.             // BlendColors.Lerp
  6151.             float Variable_136; // BlendColors.Lerp output 0
  6152.             Variable_136 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_92, ConstantsCache.Variable_69, Variable_80);
  6153.            
  6154.             // +
  6155.             float Variable_91; // + output 0
  6156.             Variable_91 = Variable_99 + float(0.3f);
  6157.            
  6158.             // BlendColors.Clamp
  6159.             float Variable_60; // BlendColors.Clamp output 0
  6160.             Variable_60 = FVoxelNodeFunctions::Clamp(Variable_91, float(0.0f), float(1.0f));
  6161.            
  6162.             // BlendColors.Lerp
  6163.             float Variable_132; // BlendColors.Lerp output 0
  6164.             Variable_132 = FVoxelNodeFunctions::Lerp(Variable_128, Variable_136, Variable_60);
  6165.            
  6166.             // *
  6167.             float Variable_31; // * output 0
  6168.             Variable_31 = Variable_21 * ConstantsCache.Variable_33;
  6169.            
  6170.             // *
  6171.             float Variable_32; // * output 0
  6172.             Variable_32 = Variable_22 * ConstantsCache.Variable_33;
  6173.            
  6174.             // 2D Perlin Noise
  6175.             float Variable_44; // 2D Perlin Noise output 0
  6176.             Variable_44 = _2D_Perlin_Noise_7436_Noise.GetPerlin(Variable_31, Variable_32);
  6177.            
  6178.             // BlendColors.Clamp
  6179.             float Variable_35; // BlendColors.Clamp output 0
  6180.             Variable_35 = FVoxelNodeFunctions::Clamp(Variable_44, float(0.0f), float(1.0f));
  6181.            
  6182.             // BlendColors.Lerp
  6183.             float Variable_120; // BlendColors.Lerp output 0
  6184.             Variable_120 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_40, ConstantsCache.Variable_46, Variable_35);
  6185.            
  6186.             // 2D Simplex Noise Fractal
  6187.             float Variable_30; // 2D Simplex Noise Fractal output 0
  6188.             Variable_30 = _2D_Simplex_Noise_Fractal_15571_Noise.GetSimplexFractal(Variable_31, Variable_32);
  6189.            
  6190.             // BlendColors.Clamp
  6191.             float Variable_20; // BlendColors.Clamp output 0
  6192.             Variable_20 = FVoxelNodeFunctions::Clamp(Variable_30, float(0.0f), float(1.0f));
  6193.            
  6194.             // BlendColors.Lerp
  6195.             float Variable_116; // BlendColors.Lerp output 0
  6196.             Variable_116 = FVoxelNodeFunctions::Lerp(Variable_120, ConstantsCache.Variable_36, Variable_20);
  6197.            
  6198.             // 1 - X
  6199.             float Variable_7; // 1 - X output 0
  6200.             Variable_7 = 1 - Variable_6;
  6201.            
  6202.             // Min (float)
  6203.             float Variable_5; // Min (float) output 0
  6204.             Variable_5 = FVoxelNodeFunctions::Min<float>(Variable_6, Variable_7);
  6205.            
  6206.             // -
  6207.             float Variable_11; // - output 0
  6208.             Variable_11 = Variable_5 - ConstantsCache.Variable_28;
  6209.            
  6210.             // /
  6211.             float Variable_27; // / output 0
  6212.             Variable_27 = Variable_11 / ConstantsCache.Variable_29;
  6213.            
  6214.             // 1 - X
  6215.             float Variable_26; // 1 - X output 0
  6216.             Variable_26 = 1 - Variable_27;
  6217.            
  6218.             // MountainsCurve
  6219.             float Variable_34; // MountainsCurve output 0
  6220.             Variable_34 = MoutainsMask.Eval(Variable_26);
  6221.            
  6222.             // Static Clamp: 0.0 <= X <= 1.0
  6223.             float Variable_98; // Static Clamp: 0.0 <= X <= 1.0 output 0
  6224.             Variable_98 = FMath::Clamp<float>(Variable_34, 0.000000, 1.000000);
  6225.            
  6226.             // *
  6227.             float Variable_59; // * output 0
  6228.             Variable_59 = Variable_98 * float(3.0f);
  6229.            
  6230.             // Max (float)
  6231.             float Variable_65; // Max (float) output 0
  6232.             Variable_65 = FVoxelNodeFunctions::Max<float>(Variable_90, float(0.0f));
  6233.            
  6234.             // -
  6235.             float Variable_66; // - output 0
  6236.             Variable_66 = Variable_59 - Variable_65;
  6237.            
  6238.             // BlendColors.Clamp
  6239.             float Variable_45; // BlendColors.Clamp output 0
  6240.             Variable_45 = FVoxelNodeFunctions::Clamp(Variable_66, float(0.0f), float(1.0f));
  6241.            
  6242.             // BlendColors.Lerp
  6243.             float Variable_124; // BlendColors.Lerp output 0
  6244.             Variable_124 = FVoxelNodeFunctions::Lerp(Variable_132, Variable_116, Variable_45);
  6245.            
  6246.             // Max (float)
  6247.             float Variable_12; // Max (float) output 0
  6248.             Variable_12 = FVoxelNodeFunctions::Max<float>(Variable_27, float(0.0f));
  6249.            
  6250.             // *
  6251.             float Variable_13; // * output 0
  6252.             Variable_13 = Variable_12 * ConstantsCache.Variable_15;
  6253.            
  6254.             // Min (float)
  6255.             float Variable_14; // Min (float) output 0
  6256.             Variable_14 = FVoxelNodeFunctions::Min<float>(Variable_13, float(1.0f));
  6257.            
  6258.             // -
  6259.             float Variable_111; // - output 0
  6260.             Variable_111 = ConstantsCache.Variable_107 - Variable_24;
  6261.            
  6262.             // Clamp
  6263.             float Variable_105; // Clamp output 0
  6264.             Variable_105 = FVoxelNodeFunctions::Clamp(Variable_111, float(0.0f), float(1.0f));
  6265.            
  6266.             // Min (float)
  6267.             float Variable_106; // Min (float) output 0
  6268.             Variable_106 = FVoxelNodeFunctions::Min<float>(Variable_14, Variable_105);
  6269.            
  6270.             // BlendColors.Clamp
  6271.             float Variable_96; // BlendColors.Clamp output 0
  6272.             Variable_96 = FVoxelNodeFunctions::Clamp(Variable_106, float(0.0f), float(1.0f));
  6273.            
  6274.             // BlendColors.Lerp
  6275.             float Variable_140; // BlendColors.Lerp output 0
  6276.             Variable_140 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_112, Variable_124, Variable_96);
  6277.            
  6278.             // BlendColors.Lerp
  6279.             float Variable_129; // BlendColors.Lerp output 0
  6280.             Variable_129 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_62, ConstantsCache.Variable_55, Variable_53);
  6281.            
  6282.             // BlendColors.Lerp
  6283.             float Variable_137; // BlendColors.Lerp output 0
  6284.             Variable_137 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_93, ConstantsCache.Variable_70, Variable_80);
  6285.            
  6286.             // BlendColors.Lerp
  6287.             float Variable_133; // BlendColors.Lerp output 0
  6288.             Variable_133 = FVoxelNodeFunctions::Lerp(Variable_129, Variable_137, Variable_60);
  6289.            
  6290.             // BlendColors.Lerp
  6291.             float Variable_121; // BlendColors.Lerp output 0
  6292.             Variable_121 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_41, ConstantsCache.Variable_47, Variable_35);
  6293.            
  6294.             // BlendColors.Lerp
  6295.             float Variable_117; // BlendColors.Lerp output 0
  6296.             Variable_117 = FVoxelNodeFunctions::Lerp(Variable_121, ConstantsCache.Variable_37, Variable_20);
  6297.            
  6298.             // BlendColors.Lerp
  6299.             float Variable_125; // BlendColors.Lerp output 0
  6300.             Variable_125 = FVoxelNodeFunctions::Lerp(Variable_133, Variable_117, Variable_45);
  6301.            
  6302.             // BlendColors.Lerp
  6303.             float Variable_141; // BlendColors.Lerp output 0
  6304.             Variable_141 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_113, Variable_125, Variable_96);
  6305.            
  6306.             // BlendColors.Lerp
  6307.             float Variable_130; // BlendColors.Lerp output 0
  6308.             Variable_130 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_63, ConstantsCache.Variable_56, Variable_53);
  6309.            
  6310.             // BlendColors.Lerp
  6311.             float Variable_138; // BlendColors.Lerp output 0
  6312.             Variable_138 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_94, ConstantsCache.Variable_71, Variable_80);
  6313.            
  6314.             // BlendColors.Lerp
  6315.             float Variable_134; // BlendColors.Lerp output 0
  6316.             Variable_134 = FVoxelNodeFunctions::Lerp(Variable_130, Variable_138, Variable_60);
  6317.            
  6318.             // BlendColors.Lerp
  6319.             float Variable_122; // BlendColors.Lerp output 0
  6320.             Variable_122 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_42, ConstantsCache.Variable_48, Variable_35);
  6321.            
  6322.             // BlendColors.Lerp
  6323.             float Variable_118; // BlendColors.Lerp output 0
  6324.             Variable_118 = FVoxelNodeFunctions::Lerp(Variable_122, ConstantsCache.Variable_38, Variable_20);
  6325.            
  6326.             // BlendColors.Lerp
  6327.             float Variable_126; // BlendColors.Lerp output 0
  6328.             Variable_126 = FVoxelNodeFunctions::Lerp(Variable_134, Variable_118, Variable_45);
  6329.            
  6330.             // BlendColors.Lerp
  6331.             float Variable_142; // BlendColors.Lerp output 0
  6332.             Variable_142 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_114, Variable_126, Variable_96);
  6333.            
  6334.             // BlendColors.Lerp
  6335.             float Variable_131; // BlendColors.Lerp output 0
  6336.             Variable_131 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_64, ConstantsCache.Variable_57, Variable_53);
  6337.            
  6338.             // BlendColors.Lerp
  6339.             float Variable_139; // BlendColors.Lerp output 0
  6340.             Variable_139 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_95, ConstantsCache.Variable_72, Variable_80);
  6341.            
  6342.             // BlendColors.Lerp
  6343.             float Variable_135; // BlendColors.Lerp output 0
  6344.             Variable_135 = FVoxelNodeFunctions::Lerp(Variable_131, Variable_139, Variable_60);
  6345.            
  6346.             // BlendColors.Lerp
  6347.             float Variable_123; // BlendColors.Lerp output 0
  6348.             Variable_123 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_43, ConstantsCache.Variable_49, Variable_35);
  6349.            
  6350.             // BlendColors.Lerp
  6351.             float Variable_119; // BlendColors.Lerp output 0
  6352.             Variable_119 = FVoxelNodeFunctions::Lerp(Variable_123, ConstantsCache.Variable_39, Variable_20);
  6353.            
  6354.             // BlendColors.Lerp
  6355.             float Variable_127; // BlendColors.Lerp output 0
  6356.             Variable_127 = FVoxelNodeFunctions::Lerp(Variable_135, Variable_119, Variable_45);
  6357.            
  6358.             // BlendColors.Lerp
  6359.             float Variable_143; // BlendColors.Lerp output 0
  6360.             Variable_143 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_115, Variable_127, Variable_96);
  6361.            
  6362.             GraphOutputs.Material.SetColor(FLinearColor(Variable_140, Variable_141, Variable_142, Variable_143));
  6363.         }
  6364.        
  6365.     };
  6366.     struct FLocalComputeStruct_LocalValueMaterialCache2DUsage_LOD0
  6367.     {
  6368.         struct FVoxelGraphOutputs
  6369.         {
  6370.             float& Value;
  6371.             FVoxelMaterial& Material;
  6372.             float& Cache2DUsage;
  6373.         };
  6374.         struct FVoxelConstantsCache
  6375.         {
  6376.             float Variable_76; // PlainsNoiseFrequency = 0.2 output 0
  6377.             float Variable_5; // Radius = 7000.0 output 0
  6378.             float Variable_22; // RingEdgesHardness = 10.0 output 0
  6379.             float Variable_25; // PI.3.141593 output 0
  6380.             float Variable_32; // Width in Degrees = 50.0 output 0
  6381.             float Variable_86; // PlainsColorLow output 0
  6382.             float Variable_87; // PlainsColorLow output 1
  6383.             float Variable_88; // PlainsColorLow output 2
  6384.             float Variable_89; // PlainsColorLow output 3
  6385.             float Variable_94; // RiverDepth = 100.0 output 0
  6386.             float Variable_41; // BaseHeight = 1000.0 output 0
  6387.             float Variable_44; // BaseNoiseHeight = 250.0 output 0
  6388.             float Variable_47; // BaseNoiseFrquency = 0.005 output 0
  6389.             float Variable_50; // MountainsNoiseHeight = 500.0 output 0
  6390.             float Variable_53; // MountainsNoiseFrequency = 0.2 output 0
  6391.             float Variable_56; // MountainsColorHigh output 0
  6392.             float Variable_57; // MountainsColorHigh output 1
  6393.             float Variable_58; // MountainsColorHigh output 2
  6394.             float Variable_59; // MountainsColorHigh output 3
  6395.             float Variable_60; // MountainsColorLowLow output 0
  6396.             float Variable_61; // MountainsColorLowLow output 1
  6397.             float Variable_62; // MountainsColorLowLow output 2
  6398.             float Variable_63; // MountainsColorLowLow output 3
  6399.             float Variable_67; // MountainsColorLowHigh output 0
  6400.             float Variable_68; // MountainsColorLowHigh output 1
  6401.             float Variable_69; // MountainsColorLowHigh output 2
  6402.             float Variable_70; // MountainsColorLowHigh output 3
  6403.             float Variable_73; // PlainsNoiseHeight = 250.0 output 0
  6404.             float Variable_96; // RiverColor output 0
  6405.             float Variable_97; // RiverColor output 1
  6406.             float Variable_98; // RiverColor output 2
  6407.             float Variable_99; // RiverColor output 3
  6408.             float Variable_79; // PlainsColorHigh output 0
  6409.             float Variable_80; // PlainsColorHigh output 1
  6410.             float Variable_81; // PlainsColorHigh output 2
  6411.             float Variable_82; // PlainsColorHigh output 3
  6412.             float Variable_143; // RingOuterColor output 0
  6413.             float Variable_144; // RingOuterColor output 1
  6414.             float Variable_145; // RingOuterColor output 2
  6415.             float Variable_146; // RingOuterColor output 3
  6416.             float Variable_95; // PI.3.141593 output 0
  6417.             float Variable_135; // RiverWidth = 1.0 output 0
  6418.             float Variable_120; // BeachColor output 0
  6419.             float Variable_121; // BeachColor output 1
  6420.             float Variable_122; // BeachColor output 2
  6421.             float Variable_123; // BeachColor output 3
  6422.             float Variable_130; // Scale = 10.0 output 0
  6423.             float Variable_141; // PI.3.141593 output 0
  6424.             float Variable_139; // Thickness = 500.0 output 0
  6425.             float Variable_38; // / output 0
  6426.             float Variable_131; // * output 0
  6427.             float Variable_140; // * output 0
  6428.             float Variable_132; // / output 0
  6429.             float Variable_6; // + output 0
  6430.             float Variable_37; // - output 0
  6431.             float Variable_138; // + output 0
  6432.         };
  6433.         struct FVoxelCache
  6434.         {
  6435.             float Variable_0; // X output 0
  6436.             float Variable_24; // X output 0
  6437.             float Variable_1; // Y output 0
  6438.             float Variable_30; // Y output 0
  6439.             float Variable_23; // ATAN2 output 0
  6440.             float Variable_26; // / output 0
  6441.             float Variable_29; // * output 0
  6442.             float Variable_46; // * output 0
  6443.             float Variable_52; // * output 0
  6444.             float Variable_75; // * output 0
  6445.             float Variable_112; // 2D Simplex Noise output 0
  6446.             float Variable_109; // * output 0
  6447.         };
  6448.        
  6449.         FLocalComputeStruct_LocalValueMaterialCache2DUsage_LOD0(const float& InScale, const float& InPlainsNoiseHeight, const float& InRingEdgesHardness, const float& InWidth_in_Degrees, const float& InRiverDepth, const float& InThickness, const float& InBaseHeight, const float& InBaseNoiseHeight, const float& InBaseNoiseFrquency, const float& InMountainsNoiseHeight, const float& InRadius, const float& InRiverWidth, const float& InPlainsNoiseFrequency, const float& InMountainsNoiseFrequency, const FRichCurve& InRingShape, const FRichCurve& InMoutainsMask, const FRichCurve& InRiverMask, const FRichCurve& InPlainsNoiseStrength, const FLinearColor& InPlainsColorLow, const FLinearColor& InRiverColor, const FLinearColor& InBeachColor, const FLinearColor& InMountainsColorHigh, const FLinearColor& InMountainsColorLowLow, const FLinearColor& InMountainsColorLowHigh, const FLinearColor& InPlainsColorHigh, const FLinearColor& InRingOuterColor)
  6450.             : Scale(InScale)
  6451.             , PlainsNoiseHeight(InPlainsNoiseHeight)
  6452.             , RingEdgesHardness(InRingEdgesHardness)
  6453.             , Width_in_Degrees(InWidth_in_Degrees)
  6454.             , RiverDepth(InRiverDepth)
  6455.             , Thickness(InThickness)
  6456.             , BaseHeight(InBaseHeight)
  6457.             , BaseNoiseHeight(InBaseNoiseHeight)
  6458.             , BaseNoiseFrquency(InBaseNoiseFrquency)
  6459.             , MountainsNoiseHeight(InMountainsNoiseHeight)
  6460.             , Radius(InRadius)
  6461.             , RiverWidth(InRiverWidth)
  6462.             , PlainsNoiseFrequency(InPlainsNoiseFrequency)
  6463.             , MountainsNoiseFrequency(InMountainsNoiseFrequency)
  6464.             , RingShape(InRingShape)
  6465.             , MoutainsMask(InMoutainsMask)
  6466.             , RiverMask(InRiverMask)
  6467.             , PlainsNoiseStrength(InPlainsNoiseStrength)
  6468.             , PlainsColorLow(InPlainsColorLow)
  6469.             , RiverColor(InRiverColor)
  6470.             , BeachColor(InBeachColor)
  6471.             , MountainsColorHigh(InMountainsColorHigh)
  6472.             , MountainsColorLowLow(InMountainsColorLowLow)
  6473.             , MountainsColorLowHigh(InMountainsColorLowHigh)
  6474.             , PlainsColorHigh(InPlainsColorHigh)
  6475.             , RingOuterColor(InRingOuterColor)
  6476.         {
  6477.         }
  6478.        
  6479.         void Init(const FVoxelWorldGeneratorInit& InitStruct)
  6480.         {
  6481.             FVoxelCache Cache;
  6482.            
  6483.             {
  6484.             }
  6485.            
  6486.             Function0_Init(InitStruct);
  6487.            
  6488.             {
  6489.                 // PlainsNoiseFrequency = 0.2
  6490.                 ConstantsCache.Variable_76 = PlainsNoiseFrequency;
  6491.                
  6492.                 // Radius = 7000.0
  6493.                 ConstantsCache.Variable_5 = Radius;
  6494.                
  6495.                 // RingEdgesHardness = 10.0
  6496.                 ConstantsCache.Variable_22 = RingEdgesHardness;
  6497.                
  6498.                 // PI.3.141593
  6499.                 ConstantsCache.Variable_25 = 3.141593;
  6500.                
  6501.                 // Width in Degrees = 50.0
  6502.                 ConstantsCache.Variable_32 = Width_in_Degrees;
  6503.                
  6504.                 // PlainsColorLow
  6505.                 ConstantsCache.Variable_86 = PlainsColorLow.R;
  6506.                 ConstantsCache.Variable_87 = PlainsColorLow.G;
  6507.                 ConstantsCache.Variable_88 = PlainsColorLow.B;
  6508.                 ConstantsCache.Variable_89 = PlainsColorLow.A;
  6509.                
  6510.                 // RiverDepth = 100.0
  6511.                 ConstantsCache.Variable_94 = RiverDepth;
  6512.                
  6513.                 // BaseHeight = 1000.0
  6514.                 ConstantsCache.Variable_41 = BaseHeight;
  6515.                
  6516.                 // BaseNoiseHeight = 250.0
  6517.                 ConstantsCache.Variable_44 = BaseNoiseHeight;
  6518.                
  6519.                 // BaseNoiseFrquency = 0.005
  6520.                 ConstantsCache.Variable_47 = BaseNoiseFrquency;
  6521.                
  6522.                 // MountainsNoiseHeight = 500.0
  6523.                 ConstantsCache.Variable_50 = MountainsNoiseHeight;
  6524.                
  6525.                 // MountainsNoiseFrequency = 0.2
  6526.                 ConstantsCache.Variable_53 = MountainsNoiseFrequency;
  6527.                
  6528.                 // MountainsColorHigh
  6529.                 ConstantsCache.Variable_56 = MountainsColorHigh.R;
  6530.                 ConstantsCache.Variable_57 = MountainsColorHigh.G;
  6531.                 ConstantsCache.Variable_58 = MountainsColorHigh.B;
  6532.                 ConstantsCache.Variable_59 = MountainsColorHigh.A;
  6533.                
  6534.                 // MountainsColorLowLow
  6535.                 ConstantsCache.Variable_60 = MountainsColorLowLow.R;
  6536.                 ConstantsCache.Variable_61 = MountainsColorLowLow.G;
  6537.                 ConstantsCache.Variable_62 = MountainsColorLowLow.B;
  6538.                 ConstantsCache.Variable_63 = MountainsColorLowLow.A;
  6539.                
  6540.                 // MountainsColorLowHigh
  6541.                 ConstantsCache.Variable_67 = MountainsColorLowHigh.R;
  6542.                 ConstantsCache.Variable_68 = MountainsColorLowHigh.G;
  6543.                 ConstantsCache.Variable_69 = MountainsColorLowHigh.B;
  6544.                 ConstantsCache.Variable_70 = MountainsColorLowHigh.A;
  6545.                
  6546.                 // PlainsNoiseHeight = 250.0
  6547.                 ConstantsCache.Variable_73 = PlainsNoiseHeight;
  6548.                
  6549.                 // RiverColor
  6550.                 ConstantsCache.Variable_96 = RiverColor.R;
  6551.                 ConstantsCache.Variable_97 = RiverColor.G;
  6552.                 ConstantsCache.Variable_98 = RiverColor.B;
  6553.                 ConstantsCache.Variable_99 = RiverColor.A;
  6554.                
  6555.                 // PlainsColorHigh
  6556.                 ConstantsCache.Variable_79 = PlainsColorHigh.R;
  6557.                 ConstantsCache.Variable_80 = PlainsColorHigh.G;
  6558.                 ConstantsCache.Variable_81 = PlainsColorHigh.B;
  6559.                 ConstantsCache.Variable_82 = PlainsColorHigh.A;
  6560.                
  6561.                 // RingOuterColor
  6562.                 ConstantsCache.Variable_143 = RingOuterColor.R;
  6563.                 ConstantsCache.Variable_144 = RingOuterColor.G;
  6564.                 ConstantsCache.Variable_145 = RingOuterColor.B;
  6565.                 ConstantsCache.Variable_146 = RingOuterColor.A;
  6566.                
  6567.                 // PI.3.141593
  6568.                 ConstantsCache.Variable_95 = 3.141593;
  6569.                
  6570.                 // RiverWidth = 1.0
  6571.                 ConstantsCache.Variable_135 = RiverWidth;
  6572.                
  6573.                 // BeachColor
  6574.                 ConstantsCache.Variable_120 = BeachColor.R;
  6575.                 ConstantsCache.Variable_121 = BeachColor.G;
  6576.                 ConstantsCache.Variable_122 = BeachColor.B;
  6577.                 ConstantsCache.Variable_123 = BeachColor.A;
  6578.                
  6579.                 // Scale = 10.0
  6580.                 ConstantsCache.Variable_130 = Scale;
  6581.                
  6582.                 // PI.3.141593
  6583.                 ConstantsCache.Variable_141 = 3.141593;
  6584.                
  6585.                 // Thickness = 500.0
  6586.                 ConstantsCache.Variable_139 = Thickness;
  6587.                
  6588.                 // /
  6589.                 ConstantsCache.Variable_38 = ConstantsCache.Variable_32 / float(360.0f);
  6590.                
  6591.                 // *
  6592.                 ConstantsCache.Variable_131 = ConstantsCache.Variable_5 * ConstantsCache.Variable_130;
  6593.                
  6594.                 // *
  6595.                 ConstantsCache.Variable_140 = ConstantsCache.Variable_139 * ConstantsCache.Variable_130;
  6596.                
  6597.                 // /
  6598.                 ConstantsCache.Variable_132 = ConstantsCache.Variable_131 / ConstantsCache.Variable_130;
  6599.                
  6600.                 // +
  6601.                 ConstantsCache.Variable_6 = ConstantsCache.Variable_131 + ConstantsCache.Variable_140;
  6602.                
  6603.                 // -
  6604.                 ConstantsCache.Variable_37 = float(0.5f) - ConstantsCache.Variable_38;
  6605.                
  6606.                 // +
  6607.                 ConstantsCache.Variable_138 = ConstantsCache.Variable_131 + ConstantsCache.Variable_140 + float(-5.0f);
  6608.                
  6609.             }
  6610.         }
  6611.         void ComputeX(FVoxelCache& Cache, const FVoxelContext& Context, FVoxelGraphOutputs& GraphOutputs) const
  6612.         {
  6613.             Function0_X_Compute(GraphOutputs, Cache, Context);
  6614.         }
  6615.         void ComputeXY(FVoxelCache& Cache, const FVoxelContext& Context, FVoxelGraphOutputs& GraphOutputs) const
  6616.         {
  6617.             Function0_XY_Compute(GraphOutputs, Cache, Context);
  6618.         }
  6619.         void ComputeXYZ(FVoxelCache& Cache, const FVoxelContext& Context, FVoxelGraphOutputs& GraphOutputs) const
  6620.         {
  6621.             Function0_XYZ_Compute(GraphOutputs, Cache, Context);
  6622.         }
  6623.         void Get(const FVoxelContext&Context, float& Value, FVoxelMaterial& Material, float& Cache2DUsage) const
  6624.         {
  6625.             FVoxelGraphOutputs GraphOutputs{Value, Material, Cache2DUsage};
  6626.             Function0_Compute(GraphOutputs, Context);
  6627.         }
  6628.        
  6629.     private:
  6630.         FVoxelConstantsCache ConstantsCache;
  6631.         FastNoise _2D_Simplex_Noise_8760_Noise;
  6632.         FastNoise _2D_Simplex_Noise_Fractal_15572_Noise;
  6633.         FastNoise _2D_Simplex_Noise_Fractal_15573_Noise;
  6634.         FastNoise _2D_Perlin_Noise_7437_Noise;
  6635.         FastNoise _2D_Simplex_Noise_8761_Noise;
  6636.        
  6637.         const float& Scale;
  6638.         const float& PlainsNoiseHeight;
  6639.         const float& RingEdgesHardness;
  6640.         const float& Width_in_Degrees;
  6641.         const float& RiverDepth;
  6642.         const float& Thickness;
  6643.         const float& BaseHeight;
  6644.         const float& BaseNoiseHeight;
  6645.         const float& BaseNoiseFrquency;
  6646.         const float& MountainsNoiseHeight;
  6647.         const float& Radius;
  6648.         const float& RiverWidth;
  6649.         const float& PlainsNoiseFrequency;
  6650.         const float& MountainsNoiseFrequency;
  6651.         const FRichCurve& RingShape;
  6652.         const FRichCurve& MoutainsMask;
  6653.         const FRichCurve& RiverMask;
  6654.         const FRichCurve& PlainsNoiseStrength;
  6655.         const FLinearColor& PlainsColorLow;
  6656.         const FLinearColor& RiverColor;
  6657.         const FLinearColor& BeachColor;
  6658.         const FLinearColor& MountainsColorHigh;
  6659.         const FLinearColor& MountainsColorLowLow;
  6660.         const FLinearColor& MountainsColorLowHigh;
  6661.         const FLinearColor& PlainsColorHigh;
  6662.         const FLinearColor& RingOuterColor;
  6663.        
  6664.         ///////////////////////////////////////////////////////////////////////
  6665.         //////////////////////////// Init functions ///////////////////////////
  6666.         ///////////////////////////////////////////////////////////////////////
  6667.        
  6668.         void Function0_Init(const FVoxelWorldGeneratorInit& InitStruct)
  6669.         {
  6670.             // Init of 2D Simplex Noise Fractal
  6671.             _2D_Simplex_Noise_Fractal_15572_Noise.SetSeed(Seed(1337));
  6672.             _2D_Simplex_Noise_Fractal_15572_Noise.SetFrequency(0.02);
  6673.             _2D_Simplex_Noise_Fractal_15572_Noise.SetInterp(FastNoise::Interp::Quintic);
  6674.             _2D_Simplex_Noise_Fractal_15572_Noise.SetFractalOctaves(5);
  6675.             _2D_Simplex_Noise_Fractal_15572_Noise.SetFractalLacunarity(2.0);
  6676.             _2D_Simplex_Noise_Fractal_15572_Noise.SetFractalGain(0.5);
  6677.             _2D_Simplex_Noise_Fractal_15572_Noise.SetFractalType(FastNoise::FractalType::FBM);
  6678.            
  6679.             // Init of 2D Simplex Noise Fractal
  6680.             _2D_Simplex_Noise_Fractal_15573_Noise.SetSeed(Seed(1337));
  6681.             _2D_Simplex_Noise_Fractal_15573_Noise.SetFrequency(0.02);
  6682.             _2D_Simplex_Noise_Fractal_15573_Noise.SetInterp(FastNoise::Interp::Quintic);
  6683.             _2D_Simplex_Noise_Fractal_15573_Noise.SetFractalOctaves(8);
  6684.             _2D_Simplex_Noise_Fractal_15573_Noise.SetFractalLacunarity(2.0);
  6685.             _2D_Simplex_Noise_Fractal_15573_Noise.SetFractalGain(0.5);
  6686.             _2D_Simplex_Noise_Fractal_15573_Noise.SetFractalType(FastNoise::FractalType::FBM);
  6687.            
  6688.             // Init of 2D Perlin Noise
  6689.             _2D_Perlin_Noise_7437_Noise.SetSeed(Seed(1338));
  6690.             _2D_Perlin_Noise_7437_Noise.SetFrequency(0.1);
  6691.             _2D_Perlin_Noise_7437_Noise.SetInterp(FastNoise::Interp::Quintic);
  6692.            
  6693.             // Init of 2D Simplex Noise
  6694.             _2D_Simplex_Noise_8761_Noise.SetSeed(Seed(1337));
  6695.             _2D_Simplex_Noise_8761_Noise.SetFrequency(0.02);
  6696.             _2D_Simplex_Noise_8761_Noise.SetInterp(FastNoise::Interp::Quintic);
  6697.            
  6698.             // Init of 2D Simplex Noise
  6699.             _2D_Simplex_Noise_8760_Noise.SetSeed(Seed(1000));
  6700.             _2D_Simplex_Noise_8760_Noise.SetFrequency(0.001);
  6701.             _2D_Simplex_Noise_8760_Noise.SetInterp(FastNoise::Interp::Quintic);
  6702.            
  6703.         }
  6704.        
  6705.         ///////////////////////////////////////////////////////////////////////
  6706.         ////////////////////////// Compute functions //////////////////////////
  6707.         ///////////////////////////////////////////////////////////////////////
  6708.        
  6709.         void Function0_X_Compute(FVoxelGraphOutputs& GraphOutputs, FVoxelCache& Cache, const FVoxelContext& Context) const
  6710.         {
  6711.             // X
  6712.             Cache.Variable_0 = Context.X;
  6713.            
  6714.             // X
  6715.             Cache.Variable_24 = Context.X;
  6716.            
  6717.         }
  6718.        
  6719.         void Function0_XY_Compute(FVoxelGraphOutputs& GraphOutputs, FVoxelCache& Cache, const FVoxelContext& Context) const
  6720.         {
  6721.             // Y
  6722.             Cache.Variable_1 = Context.Y;
  6723.            
  6724.             // Y
  6725.             Cache.Variable_30 = Context.Y;
  6726.            
  6727.             // ATAN2
  6728.             Cache.Variable_23 = FVoxelNodeFunctions::Atan2(Cache.Variable_30, Cache.Variable_24);
  6729.            
  6730.             // /
  6731.             Cache.Variable_26 = Cache.Variable_23 / ConstantsCache.Variable_25;
  6732.            
  6733.             // *
  6734.             Cache.Variable_29 = ConstantsCache.Variable_132 * Cache.Variable_26;
  6735.            
  6736.             // *
  6737.             Cache.Variable_46 = Cache.Variable_29 * ConstantsCache.Variable_47;
  6738.            
  6739.             // *
  6740.             Cache.Variable_52 = Cache.Variable_29 * ConstantsCache.Variable_53;
  6741.            
  6742.             // *
  6743.             Cache.Variable_75 = Cache.Variable_29 * ConstantsCache.Variable_76;
  6744.            
  6745.             // 2D Simplex Noise
  6746.             Cache.Variable_112 = _2D_Simplex_Noise_8760_Noise.GetSimplex(Cache.Variable_29, Cache.Variable_29);
  6747.            
  6748.             // *
  6749.             Cache.Variable_109 = Cache.Variable_112 * float(0.1f);
  6750.            
  6751.         }
  6752.        
  6753.         void Function0_XYZ_Compute(FVoxelGraphOutputs& GraphOutputs, FVoxelCache& Cache, const FVoxelContext& Context) const
  6754.         {
  6755.             // Z
  6756.             float Variable_12; // Z output 0
  6757.             Variable_12 = Context.Z;
  6758.            
  6759.             // Z
  6760.             float Variable_2; // Z output 0
  6761.             Variable_2 = Context.Z;
  6762.            
  6763.             // Vector Length
  6764.             float Variable_3; // Vector Length output 0
  6765.             Variable_3 = FVoxelNodeFunctions::VectorLength(Cache.Variable_0, Cache.Variable_1, Variable_2);
  6766.            
  6767.             // +
  6768.             float Variable_31; // + output 0
  6769.             Variable_31 = Variable_3 + float(0.001f);
  6770.            
  6771.             // /
  6772.             float Variable_13; // / output 0
  6773.             Variable_13 = Variable_12 / Variable_31;
  6774.            
  6775.             // ACOS
  6776.             float Variable_14; // ACOS output 0
  6777.             Variable_14 = FVoxelNodeFunctions::Acos(Variable_13);
  6778.            
  6779.             // /
  6780.             float Variable_10; // / output 0
  6781.             Variable_10 = Variable_14 / ConstantsCache.Variable_141;
  6782.            
  6783.             // 1 - X
  6784.             float Variable_11; // 1 - X output 0
  6785.             Variable_11 = 1 - Variable_10;
  6786.            
  6787.             // Min (float)
  6788.             float Variable_9; // Min (float) output 0
  6789.             Variable_9 = FVoxelNodeFunctions::Min<float>(Variable_10, Variable_11);
  6790.            
  6791.             // -
  6792.             float Variable_15; // - output 0
  6793.             Variable_15 = Variable_9 - ConstantsCache.Variable_37;
  6794.            
  6795.             // /
  6796.             float Variable_36; // / output 0
  6797.             Variable_36 = Variable_15 / ConstantsCache.Variable_38;
  6798.            
  6799.             // 1 - X
  6800.             float Variable_35; // 1 - X output 0
  6801.             Variable_35 = 1 - Variable_36;
  6802.            
  6803.             // RingCurve
  6804.             float Variable_39; // RingCurve output 0
  6805.             Variable_39 = RingShape.Eval(Variable_35);
  6806.            
  6807.             // Static Clamp: 0.0 <= X <= 1.0
  6808.             float Variable_126; // Static Clamp: 0.0 <= X <= 1.0 output 0
  6809.             Variable_126 = FMath::Clamp<float>(Variable_39, 0.000000, 1.000000);
  6810.            
  6811.             // *
  6812.             float Variable_40; // * output 0
  6813.             Variable_40 = Variable_126 * ConstantsCache.Variable_41;
  6814.            
  6815.             // *
  6816.             float Variable_28; // * output 0
  6817.             Variable_28 = ConstantsCache.Variable_132 * Variable_10;
  6818.            
  6819.             // *
  6820.             float Variable_45; // * output 0
  6821.             Variable_45 = Variable_28 * ConstantsCache.Variable_47;
  6822.            
  6823.             // 2D Simplex Noise Fractal
  6824.             float Variable_42; // 2D Simplex Noise Fractal output 0
  6825.             Variable_42 = _2D_Simplex_Noise_Fractal_15572_Noise.GetSimplexFractal(Variable_45, Cache.Variable_46);
  6826.            
  6827.             // *
  6828.             float Variable_43; // * output 0
  6829.             Variable_43 = Variable_42 * ConstantsCache.Variable_44;
  6830.            
  6831.             // *
  6832.             float Variable_51; // * output 0
  6833.             Variable_51 = Variable_28 * ConstantsCache.Variable_53;
  6834.            
  6835.             // 2D Simplex Noise Fractal
  6836.             float Variable_48; // 2D Simplex Noise Fractal output 0
  6837.             Variable_48 = _2D_Simplex_Noise_Fractal_15573_Noise.GetSimplexFractal(Variable_51, Cache.Variable_52);
  6838.            
  6839.             // MountainsCurve
  6840.             float Variable_54; // MountainsCurve output 0
  6841.             Variable_54 = MoutainsMask.Eval(Variable_35);
  6842.            
  6843.             // Static Clamp: 0.0 <= X <= 1.0
  6844.             float Variable_127; // Static Clamp: 0.0 <= X <= 1.0 output 0
  6845.             Variable_127 = FMath::Clamp<float>(Variable_54, 0.000000, 1.000000);
  6846.            
  6847.             // *
  6848.             float Variable_49; // * output 0
  6849.             Variable_49 = Variable_48 * ConstantsCache.Variable_50 * Variable_127;
  6850.            
  6851.             // 2D Perlin Noise
  6852.             float Variable_64; // 2D Perlin Noise output 0
  6853.             Variable_64 = _2D_Perlin_Noise_7437_Noise.GetPerlin(Variable_51, Cache.Variable_52);
  6854.            
  6855.             // *
  6856.             float Variable_65; // * output 0
  6857.             Variable_65 = ConstantsCache.Variable_50 * Variable_127 * Variable_64 * float(0.1f);
  6858.            
  6859.             // *
  6860.             float Variable_74; // * output 0
  6861.             Variable_74 = Variable_28 * ConstantsCache.Variable_76;
  6862.            
  6863.             // 2D Simplex Noise
  6864.             float Variable_83; // 2D Simplex Noise output 0
  6865.             Variable_83 = _2D_Simplex_Noise_8761_Noise.GetSimplex(Variable_74, Cache.Variable_75);
  6866.            
  6867.             // Z
  6868.             float Variable_104; // Z output 0
  6869.             Variable_104 = Context.Z;
  6870.            
  6871.             // /
  6872.             float Variable_105; // / output 0
  6873.             Variable_105 = Variable_104 / Variable_31;
  6874.            
  6875.             // +
  6876.             float Variable_108; // + output 0
  6877.             Variable_108 = Variable_105 + Cache.Variable_109;
  6878.            
  6879.             // ACOS
  6880.             float Variable_106; // ACOS output 0
  6881.             Variable_106 = FVoxelNodeFunctions::Acos(Variable_108);
  6882.            
  6883.             // /
  6884.             float Variable_103; // / output 0
  6885.             Variable_103 = Variable_106 / ConstantsCache.Variable_95;
  6886.            
  6887.             // 1 - X
  6888.             float Variable_101; // 1 - X output 0
  6889.             Variable_101 = 1 - Variable_103;
  6890.            
  6891.             // Min (float)
  6892.             float Variable_100; // Min (float) output 0
  6893.             Variable_100 = FVoxelNodeFunctions::Min<float>(Variable_103, Variable_101);
  6894.            
  6895.             // /
  6896.             float Variable_102; // / output 0
  6897.             Variable_102 = Variable_100 / float(0.5f);
  6898.            
  6899.             // 1 - X
  6900.             float Variable_110; // 1 - X output 0
  6901.             Variable_110 = 1 - Variable_102;
  6902.            
  6903.             // *
  6904.             float Variable_111; // * output 0
  6905.             Variable_111 = Variable_110 * float(20.0f);
  6906.            
  6907.             // /
  6908.             float Variable_134; // / output 0
  6909.             Variable_134 = Variable_111 / ConstantsCache.Variable_135;
  6910.            
  6911.             // RiverCurve
  6912.             float Variable_92; // RiverCurve output 0
  6913.             Variable_92 = RiverMask.Eval(Variable_134);
  6914.            
  6915.             // Static Clamp: -1.0 <= X <= 1.0
  6916.             float Variable_129; // Static Clamp: -1.0 <= X <= 1.0 output 0
  6917.             Variable_129 = FMath::Clamp<float>(Variable_92, -1.000000, 1.000000);
  6918.            
  6919.             // Min (float)
  6920.             float Variable_114; // Min (float) output 0
  6921.             Variable_114 = FVoxelNodeFunctions::Min<float>(Variable_129, float(0.0f));
  6922.            
  6923.             // *
  6924.             float Variable_115; // * output 0
  6925.             Variable_115 = Variable_114 * float(-1.0f);
  6926.            
  6927.             // *
  6928.             float Variable_116; // * output 0
  6929.             Variable_116 = Variable_83 * Variable_115;
  6930.            
  6931.             // 1 - X
  6932.             float Variable_117; // 1 - X output 0
  6933.             Variable_117 = 1 - Variable_115;
  6934.            
  6935.             // -
  6936.             float Variable_118; // - output 0
  6937.             Variable_118 = Variable_116 - Variable_117;
  6938.            
  6939.             // 1 - X
  6940.             float Variable_71; // 1 - X output 0
  6941.             Variable_71 = 1 - Variable_127;
  6942.            
  6943.             // PlainsNoiseStrengthCurve
  6944.             float Variable_77; // PlainsNoiseStrengthCurve output 0
  6945.             Variable_77 = PlainsNoiseStrength.Eval(Variable_35);
  6946.            
  6947.             // Static Clamp: 0.0 <= X <= 1.0
  6948.             float Variable_128; // Static Clamp: 0.0 <= X <= 1.0 output 0
  6949.             Variable_128 = FMath::Clamp<float>(Variable_77, 0.000000, 1.000000);
  6950.            
  6951.             // *
  6952.             float Variable_72; // * output 0
  6953.             Variable_72 = Variable_118 * ConstantsCache.Variable_73 * Variable_71 * Variable_128;
  6954.            
  6955.             // Max (float)
  6956.             float Variable_113; // Max (float) output 0
  6957.             Variable_113 = FVoxelNodeFunctions::Max<float>(Variable_129, float(0.0f));
  6958.            
  6959.             // *
  6960.             float Variable_93; // * output 0
  6961.             Variable_93 = Variable_113 * float(-1.0f) * ConstantsCache.Variable_94;
  6962.            
  6963.             // +
  6964.             float Variable_34; // + output 0
  6965.             Variable_34 = Variable_40 + Variable_43 + Variable_49 + Variable_65 + Variable_72 + Variable_93;
  6966.            
  6967.             // *
  6968.             float Variable_133; // * output 0
  6969.             Variable_133 = Variable_34 * ConstantsCache.Variable_130;
  6970.            
  6971.             // -
  6972.             float Variable_33; // - output 0
  6973.             Variable_33 = ConstantsCache.Variable_131 - Variable_133;
  6974.            
  6975.             // -
  6976.             float Variable_4; // - output 0
  6977.             Variable_4 = Variable_33 - Variable_31;
  6978.            
  6979.             // -
  6980.             float Variable_7; // - output 0
  6981.             Variable_7 = Variable_31 - ConstantsCache.Variable_6;
  6982.            
  6983.             // Max (float)
  6984.             float Variable_8; // Max (float) output 0
  6985.             Variable_8 = FVoxelNodeFunctions::Max<float>(Variable_4, Variable_7);
  6986.            
  6987.             // -
  6988.             float Variable_19; // - output 0
  6989.             Variable_19 = Variable_8 - float(1.0f);
  6990.            
  6991.             // Max (float)
  6992.             float Variable_18; // Max (float) output 0
  6993.             Variable_18 = FVoxelNodeFunctions::Max<float>(Variable_36, float(0.0f));
  6994.            
  6995.             // *
  6996.             float Variable_20; // * output 0
  6997.             Variable_20 = Variable_18 * ConstantsCache.Variable_22;
  6998.            
  6999.             // Min (float)
  7000.             float Variable_21; // Min (float) output 0
  7001.             Variable_21 = FVoxelNodeFunctions::Min<float>(Variable_20, float(1.0f));
  7002.            
  7003.             // *
  7004.             float Variable_16; // * output 0
  7005.             Variable_16 = Variable_19 * Variable_21;
  7006.            
  7007.             // +
  7008.             float Variable_17; // + output 0
  7009.             Variable_17 = Variable_16 + float(1.0f);
  7010.            
  7011.             GraphOutputs.Value = Variable_17;
  7012.             // BlendColors.Clamp
  7013.             float Variable_78; // BlendColors.Clamp output 0
  7014.             Variable_78 = FVoxelNodeFunctions::Clamp(Variable_118, float(0.0f), float(1.0f));
  7015.            
  7016.             // BlendColors.Lerp
  7017.             float Variable_159; // BlendColors.Lerp output 0
  7018.             Variable_159 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_86, ConstantsCache.Variable_79, Variable_78);
  7019.            
  7020.             // *
  7021.             float Variable_125; // * output 0
  7022.             Variable_125 = Variable_129 * float(10.0f);
  7023.            
  7024.             // BlendColors.Clamp
  7025.             float Variable_107; // BlendColors.Clamp output 0
  7026.             Variable_107 = FVoxelNodeFunctions::Clamp(Variable_125, float(0.0f), float(1.0f));
  7027.            
  7028.             // BlendColors.Lerp
  7029.             float Variable_167; // BlendColors.Lerp output 0
  7030.             Variable_167 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_120, ConstantsCache.Variable_96, Variable_107);
  7031.            
  7032.             // +
  7033.             float Variable_119; // + output 0
  7034.             Variable_119 = Variable_129 + float(0.3f);
  7035.            
  7036.             // BlendColors.Clamp
  7037.             float Variable_85; // BlendColors.Clamp output 0
  7038.             Variable_85 = FVoxelNodeFunctions::Clamp(Variable_119, float(0.0f), float(1.0f));
  7039.            
  7040.             // BlendColors.Lerp
  7041.             float Variable_163; // BlendColors.Lerp output 0
  7042.             Variable_163 = FVoxelNodeFunctions::Lerp(Variable_159, Variable_167, Variable_85);
  7043.            
  7044.             // BlendColors.Clamp
  7045.             float Variable_55; // BlendColors.Clamp output 0
  7046.             Variable_55 = FVoxelNodeFunctions::Clamp(Variable_64, float(0.0f), float(1.0f));
  7047.            
  7048.             // BlendColors.Lerp
  7049.             float Variable_151; // BlendColors.Lerp output 0
  7050.             Variable_151 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_60, ConstantsCache.Variable_67, Variable_55);
  7051.            
  7052.             // BlendColors.Clamp
  7053.             float Variable_27; // BlendColors.Clamp output 0
  7054.             Variable_27 = FVoxelNodeFunctions::Clamp(Variable_48, float(0.0f), float(1.0f));
  7055.            
  7056.             // BlendColors.Lerp
  7057.             float Variable_147; // BlendColors.Lerp output 0
  7058.             Variable_147 = FVoxelNodeFunctions::Lerp(Variable_151, ConstantsCache.Variable_56, Variable_27);
  7059.            
  7060.             // *
  7061.             float Variable_84; // * output 0
  7062.             Variable_84 = Variable_127 * float(3.0f);
  7063.            
  7064.             // Max (float)
  7065.             float Variable_90; // Max (float) output 0
  7066.             Variable_90 = FVoxelNodeFunctions::Max<float>(Variable_118, float(0.0f));
  7067.            
  7068.             // -
  7069.             float Variable_91; // - output 0
  7070.             Variable_91 = Variable_84 - Variable_90;
  7071.            
  7072.             // BlendColors.Clamp
  7073.             float Variable_66; // BlendColors.Clamp output 0
  7074.             Variable_66 = FVoxelNodeFunctions::Clamp(Variable_91, float(0.0f), float(1.0f));
  7075.            
  7076.             // BlendColors.Lerp
  7077.             float Variable_155; // BlendColors.Lerp output 0
  7078.             Variable_155 = FVoxelNodeFunctions::Lerp(Variable_163, Variable_147, Variable_66);
  7079.            
  7080.             // -
  7081.             float Variable_142; // - output 0
  7082.             Variable_142 = ConstantsCache.Variable_138 - Variable_31;
  7083.            
  7084.             // Clamp
  7085.             float Variable_136; // Clamp output 0
  7086.             Variable_136 = FVoxelNodeFunctions::Clamp(Variable_142, float(0.0f), float(1.0f));
  7087.            
  7088.             // Min (float)
  7089.             float Variable_137; // Min (float) output 0
  7090.             Variable_137 = FVoxelNodeFunctions::Min<float>(Variable_21, Variable_136);
  7091.            
  7092.             // BlendColors.Clamp
  7093.             float Variable_124; // BlendColors.Clamp output 0
  7094.             Variable_124 = FVoxelNodeFunctions::Clamp(Variable_137, float(0.0f), float(1.0f));
  7095.            
  7096.             // BlendColors.Lerp
  7097.             float Variable_171; // BlendColors.Lerp output 0
  7098.             Variable_171 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_143, Variable_155, Variable_124);
  7099.            
  7100.             // BlendColors.Lerp
  7101.             float Variable_160; // BlendColors.Lerp output 0
  7102.             Variable_160 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_87, ConstantsCache.Variable_80, Variable_78);
  7103.            
  7104.             // BlendColors.Lerp
  7105.             float Variable_168; // BlendColors.Lerp output 0
  7106.             Variable_168 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_121, ConstantsCache.Variable_97, Variable_107);
  7107.            
  7108.             // BlendColors.Lerp
  7109.             float Variable_164; // BlendColors.Lerp output 0
  7110.             Variable_164 = FVoxelNodeFunctions::Lerp(Variable_160, Variable_168, Variable_85);
  7111.            
  7112.             // BlendColors.Lerp
  7113.             float Variable_152; // BlendColors.Lerp output 0
  7114.             Variable_152 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_61, ConstantsCache.Variable_68, Variable_55);
  7115.            
  7116.             // BlendColors.Lerp
  7117.             float Variable_148; // BlendColors.Lerp output 0
  7118.             Variable_148 = FVoxelNodeFunctions::Lerp(Variable_152, ConstantsCache.Variable_57, Variable_27);
  7119.            
  7120.             // BlendColors.Lerp
  7121.             float Variable_156; // BlendColors.Lerp output 0
  7122.             Variable_156 = FVoxelNodeFunctions::Lerp(Variable_164, Variable_148, Variable_66);
  7123.            
  7124.             // BlendColors.Lerp
  7125.             float Variable_172; // BlendColors.Lerp output 0
  7126.             Variable_172 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_144, Variable_156, Variable_124);
  7127.            
  7128.             // BlendColors.Lerp
  7129.             float Variable_161; // BlendColors.Lerp output 0
  7130.             Variable_161 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_88, ConstantsCache.Variable_81, Variable_78);
  7131.            
  7132.             // BlendColors.Lerp
  7133.             float Variable_169; // BlendColors.Lerp output 0
  7134.             Variable_169 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_122, ConstantsCache.Variable_98, Variable_107);
  7135.            
  7136.             // BlendColors.Lerp
  7137.             float Variable_165; // BlendColors.Lerp output 0
  7138.             Variable_165 = FVoxelNodeFunctions::Lerp(Variable_161, Variable_169, Variable_85);
  7139.            
  7140.             // BlendColors.Lerp
  7141.             float Variable_153; // BlendColors.Lerp output 0
  7142.             Variable_153 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_62, ConstantsCache.Variable_69, Variable_55);
  7143.            
  7144.             // BlendColors.Lerp
  7145.             float Variable_149; // BlendColors.Lerp output 0
  7146.             Variable_149 = FVoxelNodeFunctions::Lerp(Variable_153, ConstantsCache.Variable_58, Variable_27);
  7147.            
  7148.             // BlendColors.Lerp
  7149.             float Variable_157; // BlendColors.Lerp output 0
  7150.             Variable_157 = FVoxelNodeFunctions::Lerp(Variable_165, Variable_149, Variable_66);
  7151.            
  7152.             // BlendColors.Lerp
  7153.             float Variable_173; // BlendColors.Lerp output 0
  7154.             Variable_173 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_145, Variable_157, Variable_124);
  7155.            
  7156.             // BlendColors.Lerp
  7157.             float Variable_162; // BlendColors.Lerp output 0
  7158.             Variable_162 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_89, ConstantsCache.Variable_82, Variable_78);
  7159.            
  7160.             // BlendColors.Lerp
  7161.             float Variable_170; // BlendColors.Lerp output 0
  7162.             Variable_170 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_123, ConstantsCache.Variable_99, Variable_107);
  7163.            
  7164.             // BlendColors.Lerp
  7165.             float Variable_166; // BlendColors.Lerp output 0
  7166.             Variable_166 = FVoxelNodeFunctions::Lerp(Variable_162, Variable_170, Variable_85);
  7167.            
  7168.             // BlendColors.Lerp
  7169.             float Variable_154; // BlendColors.Lerp output 0
  7170.             Variable_154 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_63, ConstantsCache.Variable_70, Variable_55);
  7171.            
  7172.             // BlendColors.Lerp
  7173.             float Variable_150; // BlendColors.Lerp output 0
  7174.             Variable_150 = FVoxelNodeFunctions::Lerp(Variable_154, ConstantsCache.Variable_59, Variable_27);
  7175.            
  7176.             // BlendColors.Lerp
  7177.             float Variable_158; // BlendColors.Lerp output 0
  7178.             Variable_158 = FVoxelNodeFunctions::Lerp(Variable_166, Variable_150, Variable_66);
  7179.            
  7180.             // BlendColors.Lerp
  7181.             float Variable_174; // BlendColors.Lerp output 0
  7182.             Variable_174 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_146, Variable_158, Variable_124);
  7183.            
  7184.             GraphOutputs.Material.SetColor(FLinearColor(Variable_171, Variable_172, Variable_173, Variable_174));
  7185.         }
  7186.        
  7187.         void Function0_Compute(FVoxelGraphOutputs& GraphOutputs, const FVoxelContext& Context) const
  7188.         {
  7189.             // Z
  7190.             float Variable_12; // Z output 0
  7191.             Variable_12 = Context.Z;
  7192.            
  7193.             // X
  7194.             float Variable_0; // X output 0
  7195.             Variable_0 = Context.X;
  7196.            
  7197.             // Y
  7198.             float Variable_1; // Y output 0
  7199.             Variable_1 = Context.Y;
  7200.            
  7201.             // Z
  7202.             float Variable_2; // Z output 0
  7203.             Variable_2 = Context.Z;
  7204.            
  7205.             // Vector Length
  7206.             float Variable_3; // Vector Length output 0
  7207.             Variable_3 = FVoxelNodeFunctions::VectorLength(Variable_0, Variable_1, Variable_2);
  7208.            
  7209.             // +
  7210.             float Variable_31; // + output 0
  7211.             Variable_31 = Variable_3 + float(0.001f);
  7212.            
  7213.             // /
  7214.             float Variable_13; // / output 0
  7215.             Variable_13 = Variable_12 / Variable_31;
  7216.            
  7217.             // ACOS
  7218.             float Variable_14; // ACOS output 0
  7219.             Variable_14 = FVoxelNodeFunctions::Acos(Variable_13);
  7220.            
  7221.             // /
  7222.             float Variable_10; // / output 0
  7223.             Variable_10 = Variable_14 / ConstantsCache.Variable_141;
  7224.            
  7225.             // 1 - X
  7226.             float Variable_11; // 1 - X output 0
  7227.             Variable_11 = 1 - Variable_10;
  7228.            
  7229.             // Min (float)
  7230.             float Variable_9; // Min (float) output 0
  7231.             Variable_9 = FVoxelNodeFunctions::Min<float>(Variable_10, Variable_11);
  7232.            
  7233.             // -
  7234.             float Variable_15; // - output 0
  7235.             Variable_15 = Variable_9 - ConstantsCache.Variable_37;
  7236.            
  7237.             // /
  7238.             float Variable_36; // / output 0
  7239.             Variable_36 = Variable_15 / ConstantsCache.Variable_38;
  7240.            
  7241.             // 1 - X
  7242.             float Variable_35; // 1 - X output 0
  7243.             Variable_35 = 1 - Variable_36;
  7244.            
  7245.             // RingCurve
  7246.             float Variable_39; // RingCurve output 0
  7247.             Variable_39 = RingShape.Eval(Variable_35);
  7248.            
  7249.             // Static Clamp: 0.0 <= X <= 1.0
  7250.             float Variable_126; // Static Clamp: 0.0 <= X <= 1.0 output 0
  7251.             Variable_126 = FMath::Clamp<float>(Variable_39, 0.000000, 1.000000);
  7252.            
  7253.             // *
  7254.             float Variable_40; // * output 0
  7255.             Variable_40 = Variable_126 * ConstantsCache.Variable_41;
  7256.            
  7257.             // *
  7258.             float Variable_28; // * output 0
  7259.             Variable_28 = ConstantsCache.Variable_132 * Variable_10;
  7260.            
  7261.             // *
  7262.             float Variable_45; // * output 0
  7263.             Variable_45 = Variable_28 * ConstantsCache.Variable_47;
  7264.            
  7265.             // Y
  7266.             float Variable_30; // Y output 0
  7267.             Variable_30 = Context.Y;
  7268.            
  7269.             // X
  7270.             float Variable_24; // X output 0
  7271.             Variable_24 = Context.X;
  7272.            
  7273.             // ATAN2
  7274.             float Variable_23; // ATAN2 output 0
  7275.             Variable_23 = FVoxelNodeFunctions::Atan2(Variable_30, Variable_24);
  7276.            
  7277.             // /
  7278.             float Variable_26; // / output 0
  7279.             Variable_26 = Variable_23 / ConstantsCache.Variable_25;
  7280.            
  7281.             // *
  7282.             float Variable_29; // * output 0
  7283.             Variable_29 = ConstantsCache.Variable_132 * Variable_26;
  7284.            
  7285.             // *
  7286.             float Variable_46; // * output 0
  7287.             Variable_46 = Variable_29 * ConstantsCache.Variable_47;
  7288.            
  7289.             // 2D Simplex Noise Fractal
  7290.             float Variable_42; // 2D Simplex Noise Fractal output 0
  7291.             Variable_42 = _2D_Simplex_Noise_Fractal_15572_Noise.GetSimplexFractal(Variable_45, Variable_46);
  7292.            
  7293.             // *
  7294.             float Variable_43; // * output 0
  7295.             Variable_43 = Variable_42 * ConstantsCache.Variable_44;
  7296.            
  7297.             // *
  7298.             float Variable_51; // * output 0
  7299.             Variable_51 = Variable_28 * ConstantsCache.Variable_53;
  7300.            
  7301.             // *
  7302.             float Variable_52; // * output 0
  7303.             Variable_52 = Variable_29 * ConstantsCache.Variable_53;
  7304.            
  7305.             // 2D Simplex Noise Fractal
  7306.             float Variable_48; // 2D Simplex Noise Fractal output 0
  7307.             Variable_48 = _2D_Simplex_Noise_Fractal_15573_Noise.GetSimplexFractal(Variable_51, Variable_52);
  7308.            
  7309.             // MountainsCurve
  7310.             float Variable_54; // MountainsCurve output 0
  7311.             Variable_54 = MoutainsMask.Eval(Variable_35);
  7312.            
  7313.             // Static Clamp: 0.0 <= X <= 1.0
  7314.             float Variable_127; // Static Clamp: 0.0 <= X <= 1.0 output 0
  7315.             Variable_127 = FMath::Clamp<float>(Variable_54, 0.000000, 1.000000);
  7316.            
  7317.             // *
  7318.             float Variable_49; // * output 0
  7319.             Variable_49 = Variable_48 * ConstantsCache.Variable_50 * Variable_127;
  7320.            
  7321.             // 2D Perlin Noise
  7322.             float Variable_64; // 2D Perlin Noise output 0
  7323.             Variable_64 = _2D_Perlin_Noise_7437_Noise.GetPerlin(Variable_51, Variable_52);
  7324.            
  7325.             // *
  7326.             float Variable_65; // * output 0
  7327.             Variable_65 = ConstantsCache.Variable_50 * Variable_127 * Variable_64 * float(0.1f);
  7328.            
  7329.             // *
  7330.             float Variable_74; // * output 0
  7331.             Variable_74 = Variable_28 * ConstantsCache.Variable_76;
  7332.            
  7333.             // *
  7334.             float Variable_75; // * output 0
  7335.             Variable_75 = Variable_29 * ConstantsCache.Variable_76;
  7336.            
  7337.             // 2D Simplex Noise
  7338.             float Variable_83; // 2D Simplex Noise output 0
  7339.             Variable_83 = _2D_Simplex_Noise_8761_Noise.GetSimplex(Variable_74, Variable_75);
  7340.            
  7341.             // Z
  7342.             float Variable_104; // Z output 0
  7343.             Variable_104 = Context.Z;
  7344.            
  7345.             // /
  7346.             float Variable_105; // / output 0
  7347.             Variable_105 = Variable_104 / Variable_31;
  7348.            
  7349.             // 2D Simplex Noise
  7350.             float Variable_112; // 2D Simplex Noise output 0
  7351.             Variable_112 = _2D_Simplex_Noise_8760_Noise.GetSimplex(Variable_29, Variable_29);
  7352.            
  7353.             // *
  7354.             float Variable_109; // * output 0
  7355.             Variable_109 = Variable_112 * float(0.1f);
  7356.            
  7357.             // +
  7358.             float Variable_108; // + output 0
  7359.             Variable_108 = Variable_105 + Variable_109;
  7360.            
  7361.             // ACOS
  7362.             float Variable_106; // ACOS output 0
  7363.             Variable_106 = FVoxelNodeFunctions::Acos(Variable_108);
  7364.            
  7365.             // /
  7366.             float Variable_103; // / output 0
  7367.             Variable_103 = Variable_106 / ConstantsCache.Variable_95;
  7368.            
  7369.             // 1 - X
  7370.             float Variable_101; // 1 - X output 0
  7371.             Variable_101 = 1 - Variable_103;
  7372.            
  7373.             // Min (float)
  7374.             float Variable_100; // Min (float) output 0
  7375.             Variable_100 = FVoxelNodeFunctions::Min<float>(Variable_103, Variable_101);
  7376.            
  7377.             // /
  7378.             float Variable_102; // / output 0
  7379.             Variable_102 = Variable_100 / float(0.5f);
  7380.            
  7381.             // 1 - X
  7382.             float Variable_110; // 1 - X output 0
  7383.             Variable_110 = 1 - Variable_102;
  7384.            
  7385.             // *
  7386.             float Variable_111; // * output 0
  7387.             Variable_111 = Variable_110 * float(20.0f);
  7388.            
  7389.             // /
  7390.             float Variable_134; // / output 0
  7391.             Variable_134 = Variable_111 / ConstantsCache.Variable_135;
  7392.            
  7393.             // RiverCurve
  7394.             float Variable_92; // RiverCurve output 0
  7395.             Variable_92 = RiverMask.Eval(Variable_134);
  7396.            
  7397.             // Static Clamp: -1.0 <= X <= 1.0
  7398.             float Variable_129; // Static Clamp: -1.0 <= X <= 1.0 output 0
  7399.             Variable_129 = FMath::Clamp<float>(Variable_92, -1.000000, 1.000000);
  7400.            
  7401.             // Min (float)
  7402.             float Variable_114; // Min (float) output 0
  7403.             Variable_114 = FVoxelNodeFunctions::Min<float>(Variable_129, float(0.0f));
  7404.            
  7405.             // *
  7406.             float Variable_115; // * output 0
  7407.             Variable_115 = Variable_114 * float(-1.0f);
  7408.            
  7409.             // *
  7410.             float Variable_116; // * output 0
  7411.             Variable_116 = Variable_83 * Variable_115;
  7412.            
  7413.             // 1 - X
  7414.             float Variable_117; // 1 - X output 0
  7415.             Variable_117 = 1 - Variable_115;
  7416.            
  7417.             // -
  7418.             float Variable_118; // - output 0
  7419.             Variable_118 = Variable_116 - Variable_117;
  7420.            
  7421.             // 1 - X
  7422.             float Variable_71; // 1 - X output 0
  7423.             Variable_71 = 1 - Variable_127;
  7424.            
  7425.             // PlainsNoiseStrengthCurve
  7426.             float Variable_77; // PlainsNoiseStrengthCurve output 0
  7427.             Variable_77 = PlainsNoiseStrength.Eval(Variable_35);
  7428.            
  7429.             // Static Clamp: 0.0 <= X <= 1.0
  7430.             float Variable_128; // Static Clamp: 0.0 <= X <= 1.0 output 0
  7431.             Variable_128 = FMath::Clamp<float>(Variable_77, 0.000000, 1.000000);
  7432.            
  7433.             // *
  7434.             float Variable_72; // * output 0
  7435.             Variable_72 = Variable_118 * ConstantsCache.Variable_73 * Variable_71 * Variable_128;
  7436.            
  7437.             // Max (float)
  7438.             float Variable_113; // Max (float) output 0
  7439.             Variable_113 = FVoxelNodeFunctions::Max<float>(Variable_129, float(0.0f));
  7440.            
  7441.             // *
  7442.             float Variable_93; // * output 0
  7443.             Variable_93 = Variable_113 * float(-1.0f) * ConstantsCache.Variable_94;
  7444.            
  7445.             // +
  7446.             float Variable_34; // + output 0
  7447.             Variable_34 = Variable_40 + Variable_43 + Variable_49 + Variable_65 + Variable_72 + Variable_93;
  7448.            
  7449.             // *
  7450.             float Variable_133; // * output 0
  7451.             Variable_133 = Variable_34 * ConstantsCache.Variable_130;
  7452.            
  7453.             // -
  7454.             float Variable_33; // - output 0
  7455.             Variable_33 = ConstantsCache.Variable_131 - Variable_133;
  7456.            
  7457.             // -
  7458.             float Variable_4; // - output 0
  7459.             Variable_4 = Variable_33 - Variable_31;
  7460.            
  7461.             // -
  7462.             float Variable_7; // - output 0
  7463.             Variable_7 = Variable_31 - ConstantsCache.Variable_6;
  7464.            
  7465.             // Max (float)
  7466.             float Variable_8; // Max (float) output 0
  7467.             Variable_8 = FVoxelNodeFunctions::Max<float>(Variable_4, Variable_7);
  7468.            
  7469.             // -
  7470.             float Variable_19; // - output 0
  7471.             Variable_19 = Variable_8 - float(1.0f);
  7472.            
  7473.             // Max (float)
  7474.             float Variable_18; // Max (float) output 0
  7475.             Variable_18 = FVoxelNodeFunctions::Max<float>(Variable_36, float(0.0f));
  7476.            
  7477.             // *
  7478.             float Variable_20; // * output 0
  7479.             Variable_20 = Variable_18 * ConstantsCache.Variable_22;
  7480.            
  7481.             // Min (float)
  7482.             float Variable_21; // Min (float) output 0
  7483.             Variable_21 = FVoxelNodeFunctions::Min<float>(Variable_20, float(1.0f));
  7484.            
  7485.             // *
  7486.             float Variable_16; // * output 0
  7487.             Variable_16 = Variable_19 * Variable_21;
  7488.            
  7489.             // +
  7490.             float Variable_17; // + output 0
  7491.             Variable_17 = Variable_16 + float(1.0f);
  7492.            
  7493.             GraphOutputs.Value = Variable_17;
  7494.             // BlendColors.Clamp
  7495.             float Variable_78; // BlendColors.Clamp output 0
  7496.             Variable_78 = FVoxelNodeFunctions::Clamp(Variable_118, float(0.0f), float(1.0f));
  7497.            
  7498.             // BlendColors.Lerp
  7499.             float Variable_159; // BlendColors.Lerp output 0
  7500.             Variable_159 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_86, ConstantsCache.Variable_79, Variable_78);
  7501.            
  7502.             // *
  7503.             float Variable_125; // * output 0
  7504.             Variable_125 = Variable_129 * float(10.0f);
  7505.            
  7506.             // BlendColors.Clamp
  7507.             float Variable_107; // BlendColors.Clamp output 0
  7508.             Variable_107 = FVoxelNodeFunctions::Clamp(Variable_125, float(0.0f), float(1.0f));
  7509.            
  7510.             // BlendColors.Lerp
  7511.             float Variable_167; // BlendColors.Lerp output 0
  7512.             Variable_167 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_120, ConstantsCache.Variable_96, Variable_107);
  7513.            
  7514.             // +
  7515.             float Variable_119; // + output 0
  7516.             Variable_119 = Variable_129 + float(0.3f);
  7517.            
  7518.             // BlendColors.Clamp
  7519.             float Variable_85; // BlendColors.Clamp output 0
  7520.             Variable_85 = FVoxelNodeFunctions::Clamp(Variable_119, float(0.0f), float(1.0f));
  7521.            
  7522.             // BlendColors.Lerp
  7523.             float Variable_163; // BlendColors.Lerp output 0
  7524.             Variable_163 = FVoxelNodeFunctions::Lerp(Variable_159, Variable_167, Variable_85);
  7525.            
  7526.             // BlendColors.Clamp
  7527.             float Variable_55; // BlendColors.Clamp output 0
  7528.             Variable_55 = FVoxelNodeFunctions::Clamp(Variable_64, float(0.0f), float(1.0f));
  7529.            
  7530.             // BlendColors.Lerp
  7531.             float Variable_151; // BlendColors.Lerp output 0
  7532.             Variable_151 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_60, ConstantsCache.Variable_67, Variable_55);
  7533.            
  7534.             // BlendColors.Clamp
  7535.             float Variable_27; // BlendColors.Clamp output 0
  7536.             Variable_27 = FVoxelNodeFunctions::Clamp(Variable_48, float(0.0f), float(1.0f));
  7537.            
  7538.             // BlendColors.Lerp
  7539.             float Variable_147; // BlendColors.Lerp output 0
  7540.             Variable_147 = FVoxelNodeFunctions::Lerp(Variable_151, ConstantsCache.Variable_56, Variable_27);
  7541.            
  7542.             // *
  7543.             float Variable_84; // * output 0
  7544.             Variable_84 = Variable_127 * float(3.0f);
  7545.            
  7546.             // Max (float)
  7547.             float Variable_90; // Max (float) output 0
  7548.             Variable_90 = FVoxelNodeFunctions::Max<float>(Variable_118, float(0.0f));
  7549.            
  7550.             // -
  7551.             float Variable_91; // - output 0
  7552.             Variable_91 = Variable_84 - Variable_90;
  7553.            
  7554.             // BlendColors.Clamp
  7555.             float Variable_66; // BlendColors.Clamp output 0
  7556.             Variable_66 = FVoxelNodeFunctions::Clamp(Variable_91, float(0.0f), float(1.0f));
  7557.            
  7558.             // BlendColors.Lerp
  7559.             float Variable_155; // BlendColors.Lerp output 0
  7560.             Variable_155 = FVoxelNodeFunctions::Lerp(Variable_163, Variable_147, Variable_66);
  7561.            
  7562.             // -
  7563.             float Variable_142; // - output 0
  7564.             Variable_142 = ConstantsCache.Variable_138 - Variable_31;
  7565.            
  7566.             // Clamp
  7567.             float Variable_136; // Clamp output 0
  7568.             Variable_136 = FVoxelNodeFunctions::Clamp(Variable_142, float(0.0f), float(1.0f));
  7569.            
  7570.             // Min (float)
  7571.             float Variable_137; // Min (float) output 0
  7572.             Variable_137 = FVoxelNodeFunctions::Min<float>(Variable_21, Variable_136);
  7573.            
  7574.             // BlendColors.Clamp
  7575.             float Variable_124; // BlendColors.Clamp output 0
  7576.             Variable_124 = FVoxelNodeFunctions::Clamp(Variable_137, float(0.0f), float(1.0f));
  7577.            
  7578.             // BlendColors.Lerp
  7579.             float Variable_171; // BlendColors.Lerp output 0
  7580.             Variable_171 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_143, Variable_155, Variable_124);
  7581.            
  7582.             // BlendColors.Lerp
  7583.             float Variable_160; // BlendColors.Lerp output 0
  7584.             Variable_160 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_87, ConstantsCache.Variable_80, Variable_78);
  7585.            
  7586.             // BlendColors.Lerp
  7587.             float Variable_168; // BlendColors.Lerp output 0
  7588.             Variable_168 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_121, ConstantsCache.Variable_97, Variable_107);
  7589.            
  7590.             // BlendColors.Lerp
  7591.             float Variable_164; // BlendColors.Lerp output 0
  7592.             Variable_164 = FVoxelNodeFunctions::Lerp(Variable_160, Variable_168, Variable_85);
  7593.            
  7594.             // BlendColors.Lerp
  7595.             float Variable_152; // BlendColors.Lerp output 0
  7596.             Variable_152 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_61, ConstantsCache.Variable_68, Variable_55);
  7597.            
  7598.             // BlendColors.Lerp
  7599.             float Variable_148; // BlendColors.Lerp output 0
  7600.             Variable_148 = FVoxelNodeFunctions::Lerp(Variable_152, ConstantsCache.Variable_57, Variable_27);
  7601.            
  7602.             // BlendColors.Lerp
  7603.             float Variable_156; // BlendColors.Lerp output 0
  7604.             Variable_156 = FVoxelNodeFunctions::Lerp(Variable_164, Variable_148, Variable_66);
  7605.            
  7606.             // BlendColors.Lerp
  7607.             float Variable_172; // BlendColors.Lerp output 0
  7608.             Variable_172 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_144, Variable_156, Variable_124);
  7609.            
  7610.             // BlendColors.Lerp
  7611.             float Variable_161; // BlendColors.Lerp output 0
  7612.             Variable_161 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_88, ConstantsCache.Variable_81, Variable_78);
  7613.            
  7614.             // BlendColors.Lerp
  7615.             float Variable_169; // BlendColors.Lerp output 0
  7616.             Variable_169 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_122, ConstantsCache.Variable_98, Variable_107);
  7617.            
  7618.             // BlendColors.Lerp
  7619.             float Variable_165; // BlendColors.Lerp output 0
  7620.             Variable_165 = FVoxelNodeFunctions::Lerp(Variable_161, Variable_169, Variable_85);
  7621.            
  7622.             // BlendColors.Lerp
  7623.             float Variable_153; // BlendColors.Lerp output 0
  7624.             Variable_153 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_62, ConstantsCache.Variable_69, Variable_55);
  7625.            
  7626.             // BlendColors.Lerp
  7627.             float Variable_149; // BlendColors.Lerp output 0
  7628.             Variable_149 = FVoxelNodeFunctions::Lerp(Variable_153, ConstantsCache.Variable_58, Variable_27);
  7629.            
  7630.             // BlendColors.Lerp
  7631.             float Variable_157; // BlendColors.Lerp output 0
  7632.             Variable_157 = FVoxelNodeFunctions::Lerp(Variable_165, Variable_149, Variable_66);
  7633.            
  7634.             // BlendColors.Lerp
  7635.             float Variable_173; // BlendColors.Lerp output 0
  7636.             Variable_173 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_145, Variable_157, Variable_124);
  7637.            
  7638.             // BlendColors.Lerp
  7639.             float Variable_162; // BlendColors.Lerp output 0
  7640.             Variable_162 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_89, ConstantsCache.Variable_82, Variable_78);
  7641.            
  7642.             // BlendColors.Lerp
  7643.             float Variable_170; // BlendColors.Lerp output 0
  7644.             Variable_170 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_123, ConstantsCache.Variable_99, Variable_107);
  7645.            
  7646.             // BlendColors.Lerp
  7647.             float Variable_166; // BlendColors.Lerp output 0
  7648.             Variable_166 = FVoxelNodeFunctions::Lerp(Variable_162, Variable_170, Variable_85);
  7649.            
  7650.             // BlendColors.Lerp
  7651.             float Variable_154; // BlendColors.Lerp output 0
  7652.             Variable_154 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_63, ConstantsCache.Variable_70, Variable_55);
  7653.            
  7654.             // BlendColors.Lerp
  7655.             float Variable_150; // BlendColors.Lerp output 0
  7656.             Variable_150 = FVoxelNodeFunctions::Lerp(Variable_154, ConstantsCache.Variable_59, Variable_27);
  7657.            
  7658.             // BlendColors.Lerp
  7659.             float Variable_158; // BlendColors.Lerp output 0
  7660.             Variable_158 = FVoxelNodeFunctions::Lerp(Variable_166, Variable_150, Variable_66);
  7661.            
  7662.             // BlendColors.Lerp
  7663.             float Variable_174; // BlendColors.Lerp output 0
  7664.             Variable_174 = FVoxelNodeFunctions::Lerp(ConstantsCache.Variable_146, Variable_158, Variable_124);
  7665.            
  7666.             GraphOutputs.Material.SetColor(FLinearColor(Variable_171, Variable_172, Variable_173, Variable_174));
  7667.         }
  7668.        
  7669.     };
  7670.    
  7671.     FRingWorldInstance(const float& InScale, const float& InPlainsNoiseHeight, const float& InRingEdgesHardness, const float& InWidth_in_Degrees, const float& InRiverDepth, const float& InThickness, const float& InBaseHeight, const float& InBaseNoiseHeight, const float& InBaseNoiseFrquency, const float& InMountainsNoiseHeight, const float& InRadius, const float& InRiverWidth, const float& InPlainsNoiseFrequency, const float& InMountainsNoiseFrequency, const FRichCurve& InRingShape, const FRichCurve& InMoutainsMask, const FRichCurve& InRiverMask, const FRichCurve& InPlainsNoiseStrength, const FLinearColor& InPlainsColorLow, const FLinearColor& InRiverColor, const FLinearColor& InBeachColor, const FLinearColor& InMountainsColorHigh, const FLinearColor& InMountainsColorLowLow, const FLinearColor& InMountainsColorLowHigh, const FLinearColor& InPlainsColorHigh, const FLinearColor& InRingOuterColor)
  7672.         : Scale(InScale)
  7673.         , PlainsNoiseHeight(InPlainsNoiseHeight)
  7674.         , RingEdgesHardness(InRingEdgesHardness)
  7675.         , Width_in_Degrees(InWidth_in_Degrees)
  7676.         , RiverDepth(InRiverDepth)
  7677.         , Thickness(InThickness)
  7678.         , BaseHeight(InBaseHeight)
  7679.         , BaseNoiseHeight(InBaseNoiseHeight)
  7680.         , BaseNoiseFrquency(InBaseNoiseFrquency)
  7681.         , MountainsNoiseHeight(InMountainsNoiseHeight)
  7682.         , Radius(InRadius)
  7683.         , RiverWidth(InRiverWidth)
  7684.         , PlainsNoiseFrequency(InPlainsNoiseFrequency)
  7685.         , MountainsNoiseFrequency(InMountainsNoiseFrequency)
  7686.         , RingShape(InRingShape)
  7687.         , MoutainsMask(InMoutainsMask)
  7688.         , RiverMask(InRiverMask)
  7689.         , PlainsNoiseStrength(InPlainsNoiseStrength)
  7690.         , PlainsColorLow(InPlainsColorLow)
  7691.         , RiverColor(InRiverColor)
  7692.         , BeachColor(InBeachColor)
  7693.         , MountainsColorHigh(InMountainsColorHigh)
  7694.         , MountainsColorLowLow(InMountainsColorLowLow)
  7695.         , MountainsColorLowHigh(InMountainsColorLowHigh)
  7696.         , PlainsColorHigh(InPlainsColorHigh)
  7697.         , RingOuterColor(InRingOuterColor)
  7698.         , FVoxelWorldGeneratorInstance(
  7699.         {
  7700.             {"Value", 0}
  7701.         },
  7702.         {
  7703.         })
  7704.         , LocalValue_LOD0(Scale, PlainsNoiseHeight, RingEdgesHardness, Width_in_Degrees, RiverDepth, Thickness, BaseHeight, BaseNoiseHeight, BaseNoiseFrquency, MountainsNoiseHeight, Radius, RiverWidth, PlainsNoiseFrequency, MountainsNoiseFrequency, RingShape, MoutainsMask, RiverMask, PlainsNoiseStrength, PlainsColorLow, RiverColor, BeachColor, MountainsColorHigh, MountainsColorLowLow, MountainsColorLowHigh, PlainsColorHigh, RingOuterColor)
  7705.         , LocalMaterial_LOD0(Scale, PlainsNoiseHeight, RingEdgesHardness, Width_in_Degrees, RiverDepth, Thickness, BaseHeight, BaseNoiseHeight, BaseNoiseFrquency, MountainsNoiseHeight, Radius, RiverWidth, PlainsNoiseFrequency, MountainsNoiseFrequency, RingShape, MoutainsMask, RiverMask, PlainsNoiseStrength, PlainsColorLow, RiverColor, BeachColor, MountainsColorHigh, MountainsColorLowLow, MountainsColorLowHigh, PlainsColorHigh, RingOuterColor)
  7706.         , LocalValueMaterial_LOD0(Scale, PlainsNoiseHeight, RingEdgesHardness, Width_in_Degrees, RiverDepth, Thickness, BaseHeight, BaseNoiseHeight, BaseNoiseFrquency, MountainsNoiseHeight, Radius, RiverWidth, PlainsNoiseFrequency, MountainsNoiseFrequency, RingShape, MoutainsMask, RiverMask, PlainsNoiseStrength, PlainsColorLow, RiverColor, BeachColor, MountainsColorHigh, MountainsColorLowLow, MountainsColorLowHigh, PlainsColorHigh, RingOuterColor)
  7707.         , LocalUpVectorXUpVectorYUpVectorZ_LOD0(Scale, PlainsNoiseHeight, RingEdgesHardness, Width_in_Degrees, RiverDepth, Thickness, BaseHeight, BaseNoiseHeight, BaseNoiseFrquency, MountainsNoiseHeight, Radius, RiverWidth, PlainsNoiseFrequency, MountainsNoiseFrequency, RingShape, MoutainsMask, RiverMask, PlainsNoiseStrength, PlainsColorLow, RiverColor, BeachColor, MountainsColorHigh, MountainsColorLowLow, MountainsColorLowHigh, PlainsColorHigh, RingOuterColor)
  7708.         , LocalValueRangeAnalysis_LOD0(Scale, PlainsNoiseHeight, RingEdgesHardness, Width_in_Degrees, RiverDepth, Thickness, BaseHeight, BaseNoiseHeight, BaseNoiseFrquency, MountainsNoiseHeight, Radius, RiverWidth, PlainsNoiseFrequency, MountainsNoiseFrequency, RingShape, MoutainsMask, RiverMask, PlainsNoiseStrength, PlainsColorLow, RiverColor, BeachColor, MountainsColorHigh, MountainsColorLowLow, MountainsColorLowHigh, PlainsColorHigh, RingOuterColor)
  7709.         , LocalValueCache2DCache_LOD0(Scale, PlainsNoiseHeight, RingEdgesHardness, Width_in_Degrees, RiverDepth, Thickness, BaseHeight, BaseNoiseHeight, BaseNoiseFrquency, MountainsNoiseHeight, Radius, RiverWidth, PlainsNoiseFrequency, MountainsNoiseFrequency, RingShape, MoutainsMask, RiverMask, PlainsNoiseStrength, PlainsColorLow, RiverColor, BeachColor, MountainsColorHigh, MountainsColorLowLow, MountainsColorLowHigh, PlainsColorHigh, RingOuterColor)
  7710.         , LocalValueCache2DUsage_LOD0(Scale, PlainsNoiseHeight, RingEdgesHardness, Width_in_Degrees, RiverDepth, Thickness, BaseHeight, BaseNoiseHeight, BaseNoiseFrquency, MountainsNoiseHeight, Radius, RiverWidth, PlainsNoiseFrequency, MountainsNoiseFrequency, RingShape, MoutainsMask, RiverMask, PlainsNoiseStrength, PlainsColorLow, RiverColor, BeachColor, MountainsColorHigh, MountainsColorLowLow, MountainsColorLowHigh, PlainsColorHigh, RingOuterColor)
  7711.         , LocalMaterialCache2DUsage_LOD0(Scale, PlainsNoiseHeight, RingEdgesHardness, Width_in_Degrees, RiverDepth, Thickness, BaseHeight, BaseNoiseHeight, BaseNoiseFrquency, MountainsNoiseHeight, Radius, RiverWidth, PlainsNoiseFrequency, MountainsNoiseFrequency, RingShape, MoutainsMask, RiverMask, PlainsNoiseStrength, PlainsColorLow, RiverColor, BeachColor, MountainsColorHigh, MountainsColorLowLow, MountainsColorLowHigh, PlainsColorHigh, RingOuterColor)
  7712.         , LocalValueMaterialCache2DUsage_LOD0(Scale, PlainsNoiseHeight, RingEdgesHardness, Width_in_Degrees, RiverDepth, Thickness, BaseHeight, BaseNoiseHeight, BaseNoiseFrquency, MountainsNoiseHeight, Radius, RiverWidth, PlainsNoiseFrequency, MountainsNoiseFrequency, RingShape, MoutainsMask, RiverMask, PlainsNoiseStrength, PlainsColorLow, RiverColor, BeachColor, MountainsColorHigh, MountainsColorLowLow, MountainsColorLowHigh, PlainsColorHigh, RingOuterColor)
  7713.     {
  7714.     }
  7715.    
  7716.     virtual void Init(const FVoxelWorldGeneratorInit& InitStruct) final
  7717.     {
  7718.         LocalValue_LOD0.Init(InitStruct);
  7719.         LocalMaterial_LOD0.Init(InitStruct);
  7720.         LocalValueMaterial_LOD0.Init(InitStruct);
  7721.         LocalUpVectorXUpVectorYUpVectorZ_LOD0.Init(InitStruct);
  7722.         LocalValueRangeAnalysis_LOD0.Init(InitStruct);
  7723.         LocalValueCache2DCache_LOD0.Init(InitStruct);
  7724.         LocalValueCache2DUsage_LOD0.Init(InitStruct);
  7725.         LocalMaterialCache2DUsage_LOD0.Init(InitStruct);
  7726.         LocalValueMaterialCache2DUsage_LOD0.Init(InitStruct);
  7727.     }
  7728.     void GetValueAndMaterialInternal(int32 X, int32 Y, int32 Z, FVoxelValue* OutValue, FVoxelMaterial* OutMaterial, int32 QueryLOD, const FVoxelPlaceableItemHolder& ItemHolder) const final
  7729.     {
  7730.         FVoxelContext Context(ItemHolder, QueryLOD, X, Y, Z);
  7731.         if (OutValue && OutMaterial)
  7732.         {
  7733.             float TmpValue = 1;
  7734.             if (0 <= QueryLOD)
  7735.             {
  7736.                 LocalValueMaterial_LOD0.Get(Context, TmpValue, *OutMaterial);
  7737.             }
  7738.             else
  7739.             {
  7740.                 LocalValueMaterial_LOD0.Get(Context, TmpValue, *OutMaterial);
  7741.             }
  7742.             *OutValue = TmpValue;
  7743.         }
  7744.         else if (OutValue)
  7745.         {
  7746.             float TmpValue = 1;
  7747.             if (0 <= QueryLOD)
  7748.             {
  7749.                 LocalValue_LOD0.Get(Context, TmpValue);
  7750.             }
  7751.             else
  7752.             {
  7753.                 LocalValue_LOD0.Get(Context, TmpValue);
  7754.             }
  7755.             *OutValue = TmpValue;
  7756.         }
  7757.         else if (OutMaterial)
  7758.         {
  7759.             if (0 <= QueryLOD)
  7760.             {
  7761.                 LocalMaterial_LOD0.Get(Context, *OutMaterial);
  7762.             }
  7763.             else
  7764.             {
  7765.                 LocalMaterial_LOD0.Get(Context, *OutMaterial);
  7766.             }
  7767.         }
  7768.     }
  7769.     virtual void GetValuesAndMaterials(FVoxelValue Values[], FVoxelMaterial Materials[], const FVoxelWorldGeneratorQueryZone& QueryZone, int32 QueryLOD, const FVoxelPlaceableItemHolder& ItemHolder) const final
  7770.     {
  7771.         if (Values && Materials)
  7772.         {
  7773.             if (0 <= QueryLOD)
  7774.             {
  7775.                 GetLocalValueMaterial_LOD0(Values, Materials, QueryZone, QueryLOD, ItemHolder);
  7776.             }
  7777.             else
  7778.             {
  7779.                 GetLocalValueMaterial_LOD0(Values, Materials, QueryZone, QueryLOD, ItemHolder);
  7780.             }
  7781.         }
  7782.         else if (Values)
  7783.         {
  7784.             if (0 <= QueryLOD)
  7785.             {
  7786.                 GetLocalValue_LOD0(Values, Materials, QueryZone, QueryLOD, ItemHolder);
  7787.             }
  7788.             else
  7789.             {
  7790.                 GetLocalValue_LOD0(Values, Materials, QueryZone, QueryLOD, ItemHolder);
  7791.             }
  7792.         }
  7793.         else if (Materials)
  7794.         {
  7795.             if (0 <= QueryLOD)
  7796.             {
  7797.                 GetLocalMaterial_LOD0(Values, Materials, QueryZone, QueryLOD, ItemHolder);
  7798.             }
  7799.             else
  7800.             {
  7801.                 GetLocalMaterial_LOD0(Values, Materials, QueryZone, QueryLOD, ItemHolder);
  7802.             }
  7803.         }
  7804.     }
  7805.     virtual int32 GetIntOutput(int32 X, int32 Y, int32 Z, uint8 Index) const final
  7806.     {
  7807.         return 0;
  7808.     }
  7809.     virtual float GetFloatOutput(int32 X, int32 Y, int32 Z, uint8 Index) const final
  7810.     {
  7811.         if (Index == 0)
  7812.         {
  7813.             float TmpValue = 0;
  7814.             LocalValue_LOD0.Get(FVoxelContext(X, Y, Z), TmpValue);
  7815.             return TmpValue;
  7816.         }
  7817.         return 0;
  7818.     }
  7819.     virtual FVector GetUpVector(int32 X, int32 Y, int32 Z) const final
  7820.     {
  7821.         FVector Result = FVector::UpVector;
  7822.         LocalUpVectorXUpVectorYUpVectorZ_LOD0.Get(FVoxelContext(X, Y, Z), Result.X, Result.Y, Result.Z);
  7823.         return Result.GetSafeNormal();
  7824.     }
  7825.     virtual EVoxelEmptyState IsEmpty(const FIntBox& Bounds, int32 LOD) const final
  7826.     {
  7827.         FVoxelRangeFailStatus::Reset();
  7828.         int32 Step = 1 << LOD;
  7829.         TVoxelRange<float> Value = 1;
  7830.         LocalValueRangeAnalysis_LOD0.Get(FVoxelContextRange(LOD,{ Bounds.Min.X, Bounds.Max.X - Step },{ Bounds.Min.Y, Bounds.Max.Y - Step },{ Bounds.Min.Z, Bounds.Max.Z - Step }), Value);
  7831.         if (FVoxelRangeFailStatus::HasFailed())
  7832.         {
  7833.             return EVoxelEmptyState::Unknown;
  7834.         }
  7835.         FVoxelValue Min(Value.Min);
  7836.         FVoxelValue Max(Value.Max);
  7837.         if (Min.IsEmpty() && Max.IsEmpty())
  7838.         {
  7839.             return EVoxelEmptyState::AllEmpty;
  7840.         }
  7841.         else if (!Min.IsEmpty() && !Max.IsEmpty())
  7842.         {
  7843.             return EVoxelEmptyState::AllFull;
  7844.         }
  7845.         else
  7846.         {
  7847.             return EVoxelEmptyState::Unknown;
  7848.         }
  7849.     }
  7850.    
  7851. public:
  7852.     void GetLocalValue_LOD0(FVoxelValue Values[], FVoxelMaterial Materials[], const FVoxelWorldGeneratorQueryZone& QueryZone, int32 QueryLOD, const FVoxelPlaceableItemHolder& ItemHolder) const
  7853.     {
  7854.         FVoxelContext Context(ItemHolder, QueryLOD);
  7855.         FLocalComputeStruct_LocalValue_LOD0::FVoxelCache Cache;
  7856.        
  7857.         float Value = 1;
  7858.         FVoxelMaterial Material;
  7859.         FLocalComputeStruct_LocalValue_LOD0::FVoxelGraphOutputs GraphOutputs{Value};
  7860.        
  7861.         for (int32 X : QueryZone.XIt())
  7862.         {
  7863.             Context.X = X;
  7864.            
  7865.             LocalValue_LOD0.ComputeX(Cache, Context, GraphOutputs);
  7866.             for (int32 Y : QueryZone.YIt())
  7867.             {
  7868.                 Context.Y = Y;
  7869.                
  7870.                 LocalValue_LOD0.ComputeXY(Cache, Context, GraphOutputs);
  7871.                 for (int32 Z : QueryZone.ZIt())
  7872.                 {
  7873.                     Context.Z = Z;
  7874.                    
  7875.                     Value = 1;
  7876.                     LocalValue_LOD0.ComputeXYZ(Cache, Context, GraphOutputs);
  7877.                     SetValueAndMaterial(Values, Materials, QueryZone, QueryLOD, ItemHolder, X, Y, Z, Value, Material);
  7878.                 }
  7879.             }
  7880.         }
  7881.     }
  7882.     void GetLocalValueCache2DUsage_LOD0(FVoxelValue Values[], FVoxelMaterial Materials[], const float Cache2DValues[], const FVoxelWorldGeneratorQueryZone& QueryZone, const FVoxelPlaceableItemHolder& ItemHolder) const
  7883.     {
  7884.         FVoxelContext Context(ItemHolder, 0);
  7885.         FLocalComputeStruct_LocalValueCache2DUsage_LOD0::FVoxelCache Cache;
  7886.        
  7887.         float Value = 1;
  7888.         FVoxelMaterial Material;
  7889.         float CacheValue = 0;
  7890.         FLocalComputeStruct_LocalValueCache2DUsage_LOD0::FVoxelGraphOutputs GraphOutputs{Value, CacheValue};
  7891.        
  7892.         for (int32 X : QueryZone.XIt())
  7893.         {
  7894.             Context.X = X;
  7895.            
  7896.             LocalValueCache2DUsage_LOD0.ComputeX(Cache, Context, GraphOutputs);
  7897.             for (int32 Y : QueryZone.YIt())
  7898.             {
  7899.                 Context.Y = Y;
  7900.                
  7901.                 CacheValue = Cache2DValues[QueryZone.GetCache2DIndex(X, Y)];
  7902.                
  7903.                 LocalValueCache2DUsage_LOD0.ComputeXY(Cache, Context, GraphOutputs);
  7904.                 for (int32 Z : QueryZone.ZIt())
  7905.                 {
  7906.                     Context.Z = Z;
  7907.                    
  7908.                     Value = 1;
  7909.                     LocalValueCache2DUsage_LOD0.ComputeXYZ(Cache, Context, GraphOutputs);
  7910.                     SetValueAndMaterial(Values, Materials, QueryZone, 0, ItemHolder, X, Y, Z, Value, Material);
  7911.                 }
  7912.             }
  7913.         }
  7914.     }
  7915.     void GetLocalMaterial_LOD0(FVoxelValue Values[], FVoxelMaterial Materials[], const FVoxelWorldGeneratorQueryZone& QueryZone, int32 QueryLOD, const FVoxelPlaceableItemHolder& ItemHolder) const
  7916.     {
  7917.         FVoxelContext Context(ItemHolder, QueryLOD);
  7918.         FLocalComputeStruct_LocalMaterial_LOD0::FVoxelCache Cache;
  7919.        
  7920.         float Value = 1;
  7921.         FVoxelMaterial Material;
  7922.         FLocalComputeStruct_LocalMaterial_LOD0::FVoxelGraphOutputs GraphOutputs{Material};
  7923.        
  7924.         for (int32 X : QueryZone.XIt())
  7925.         {
  7926.             Context.X = X;
  7927.            
  7928.             LocalMaterial_LOD0.ComputeX(Cache, Context, GraphOutputs);
  7929.             for (int32 Y : QueryZone.YIt())
  7930.             {
  7931.                 Context.Y = Y;
  7932.                
  7933.                 LocalMaterial_LOD0.ComputeXY(Cache, Context, GraphOutputs);
  7934.                 for (int32 Z : QueryZone.ZIt())
  7935.                 {
  7936.                     Context.Z = Z;
  7937.                    
  7938.                     Material = FVoxelMaterial();
  7939.                     LocalMaterial_LOD0.ComputeXYZ(Cache, Context, GraphOutputs);
  7940.                     SetValueAndMaterial(Values, Materials, QueryZone, QueryLOD, ItemHolder, X, Y, Z, Value, Material);
  7941.                 }
  7942.             }
  7943.         }
  7944.     }
  7945.     void GetLocalMaterialCache2DUsage_LOD0(FVoxelValue Values[], FVoxelMaterial Materials[], const float Cache2DValues[], const FVoxelWorldGeneratorQueryZone& QueryZone, const FVoxelPlaceableItemHolder& ItemHolder) const
  7946.     {
  7947.         FVoxelContext Context(ItemHolder, 0);
  7948.         FLocalComputeStruct_LocalMaterialCache2DUsage_LOD0::FVoxelCache Cache;
  7949.        
  7950.         float Value = 1;
  7951.         FVoxelMaterial Material;
  7952.         float CacheValue = 0;
  7953.         FLocalComputeStruct_LocalMaterialCache2DUsage_LOD0::FVoxelGraphOutputs GraphOutputs{Material, CacheValue};
  7954.        
  7955.         for (int32 X : QueryZone.XIt())
  7956.         {
  7957.             Context.X = X;
  7958.            
  7959.             LocalMaterialCache2DUsage_LOD0.ComputeX(Cache, Context, GraphOutputs);
  7960.             for (int32 Y : QueryZone.YIt())
  7961.             {
  7962.                 Context.Y = Y;
  7963.                
  7964.                 CacheValue = Cache2DValues[QueryZone.GetCache2DIndex(X, Y)];
  7965.                
  7966.                 LocalMaterialCache2DUsage_LOD0.ComputeXY(Cache, Context, GraphOutputs);
  7967.                 for (int32 Z : QueryZone.ZIt())
  7968.                 {
  7969.                     Context.Z = Z;
  7970.                    
  7971.                     Material = FVoxelMaterial();
  7972.                     LocalMaterialCache2DUsage_LOD0.ComputeXYZ(Cache, Context, GraphOutputs);
  7973.                     SetValueAndMaterial(Values, Materials, QueryZone, 0, ItemHolder, X, Y, Z, Value, Material);
  7974.                 }
  7975.             }
  7976.         }
  7977.     }
  7978.     void GetLocalValueMaterial_LOD0(FVoxelValue Values[], FVoxelMaterial Materials[], const FVoxelWorldGeneratorQueryZone& QueryZone, int32 QueryLOD, const FVoxelPlaceableItemHolder& ItemHolder) const
  7979.     {
  7980.         FVoxelContext Context(ItemHolder, QueryLOD);
  7981.         FLocalComputeStruct_LocalValueMaterial_LOD0::FVoxelCache Cache;
  7982.        
  7983.         float Value = 1;
  7984.         FVoxelMaterial Material;
  7985.         FLocalComputeStruct_LocalValueMaterial_LOD0::FVoxelGraphOutputs GraphOutputs{Value, Material};
  7986.        
  7987.         for (int32 X : QueryZone.XIt())
  7988.         {
  7989.             Context.X = X;
  7990.            
  7991.             LocalValueMaterial_LOD0.ComputeX(Cache, Context, GraphOutputs);
  7992.             for (int32 Y : QueryZone.YIt())
  7993.             {
  7994.                 Context.Y = Y;
  7995.                
  7996.                 LocalValueMaterial_LOD0.ComputeXY(Cache, Context, GraphOutputs);
  7997.                 for (int32 Z : QueryZone.ZIt())
  7998.                 {
  7999.                     Context.Z = Z;
  8000.                    
  8001.                     Value = 1;
  8002.                     Material = FVoxelMaterial();
  8003.                     LocalValueMaterial_LOD0.ComputeXYZ(Cache, Context, GraphOutputs);
  8004.                     SetValueAndMaterial(Values, Materials, QueryZone, QueryLOD, ItemHolder, X, Y, Z, Value, Material);
  8005.                 }
  8006.             }
  8007.         }
  8008.     }
  8009.     void GetLocalValueMaterialCache2DUsage_LOD0(FVoxelValue Values[], FVoxelMaterial Materials[], const float Cache2DValues[], const FVoxelWorldGeneratorQueryZone& QueryZone, const FVoxelPlaceableItemHolder& ItemHolder) const
  8010.     {
  8011.         FVoxelContext Context(ItemHolder, 0);
  8012.         FLocalComputeStruct_LocalValueMaterialCache2DUsage_LOD0::FVoxelCache Cache;
  8013.        
  8014.         float Value = 1;
  8015.         FVoxelMaterial Material;
  8016.         float CacheValue = 0;
  8017.         FLocalComputeStruct_LocalValueMaterialCache2DUsage_LOD0::FVoxelGraphOutputs GraphOutputs{Value, Material, CacheValue};
  8018.        
  8019.         for (int32 X : QueryZone.XIt())
  8020.         {
  8021.             Context.X = X;
  8022.            
  8023.             LocalValueMaterialCache2DUsage_LOD0.ComputeX(Cache, Context, GraphOutputs);
  8024.             for (int32 Y : QueryZone.YIt())
  8025.             {
  8026.                 Context.Y = Y;
  8027.                
  8028.                 CacheValue = Cache2DValues[QueryZone.GetCache2DIndex(X, Y)];
  8029.                
  8030.                 LocalValueMaterialCache2DUsage_LOD0.ComputeXY(Cache, Context, GraphOutputs);
  8031.                 for (int32 Z : QueryZone.ZIt())
  8032.                 {
  8033.                     Context.Z = Z;
  8034.                    
  8035.                     Value = 1;
  8036.                     Material = FVoxelMaterial();
  8037.                     LocalValueMaterialCache2DUsage_LOD0.ComputeXYZ(Cache, Context, GraphOutputs);
  8038.                     SetValueAndMaterial(Values, Materials, QueryZone, 0, ItemHolder, X, Y, Z, Value, Material);
  8039.                 }
  8040.             }
  8041.         }
  8042.     }
  8043.    
  8044. private:
  8045.     const float Scale;
  8046.     const float PlainsNoiseHeight;
  8047.     const float RingEdgesHardness;
  8048.     const float Width_in_Degrees;
  8049.     const float RiverDepth;
  8050.     const float Thickness;
  8051.     const float BaseHeight;
  8052.     const float BaseNoiseHeight;
  8053.     const float BaseNoiseFrquency;
  8054.     const float MountainsNoiseHeight;
  8055.     const float Radius;
  8056.     const float RiverWidth;
  8057.     const float PlainsNoiseFrequency;
  8058.     const float MountainsNoiseFrequency;
  8059.     const FRichCurve RingShape;
  8060.     const FRichCurve MoutainsMask;
  8061.     const FRichCurve RiverMask;
  8062.     const FRichCurve PlainsNoiseStrength;
  8063.     const FLinearColor PlainsColorLow;
  8064.     const FLinearColor RiverColor;
  8065.     const FLinearColor BeachColor;
  8066.     const FLinearColor MountainsColorHigh;
  8067.     const FLinearColor MountainsColorLowLow;
  8068.     const FLinearColor MountainsColorLowHigh;
  8069.     const FLinearColor PlainsColorHigh;
  8070.     const FLinearColor RingOuterColor;
  8071.     FLocalComputeStruct_LocalValue_LOD0 LocalValue_LOD0;
  8072.     FLocalComputeStruct_LocalMaterial_LOD0 LocalMaterial_LOD0;
  8073.     FLocalComputeStruct_LocalValueMaterial_LOD0 LocalValueMaterial_LOD0;
  8074.     FLocalComputeStruct_LocalUpVectorXUpVectorYUpVectorZ_LOD0 LocalUpVectorXUpVectorYUpVectorZ_LOD0;
  8075.     FLocalComputeStruct_LocalValueRangeAnalysis_LOD0 LocalValueRangeAnalysis_LOD0;
  8076.     FLocalComputeStruct_LocalValueCache2DCache_LOD0 LocalValueCache2DCache_LOD0;
  8077.     FLocalComputeStruct_LocalValueCache2DUsage_LOD0 LocalValueCache2DUsage_LOD0;
  8078.     FLocalComputeStruct_LocalMaterialCache2DUsage_LOD0 LocalMaterialCache2DUsage_LOD0;
  8079.     FLocalComputeStruct_LocalValueMaterialCache2DUsage_LOD0 LocalValueMaterialCache2DUsage_LOD0;
  8080.    
  8081. };
  8082.  
  8083. UCLASS(Blueprintable)
  8084. class URingWorld : public UVoxelWorldGenerator
  8085. {
  8086.     GENERATED_BODY()
  8087.    
  8088. public:
  8089.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8090.     float Scale = 10.000000;
  8091.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8092.     float PlainsNoiseHeight = 250.000000;
  8093.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8094.     float RingEdgesHardness = 10.000000;
  8095.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8096.     float Width_in_Degrees = 50.000000;
  8097.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8098.     float RiverDepth = 100.000000;
  8099.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8100.     float Thickness = 500.000000;
  8101.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8102.     float BaseHeight = 1000.000000;
  8103.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8104.     float BaseNoiseHeight = 250.000000;
  8105.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8106.     float BaseNoiseFrquency = 0.005000;
  8107.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8108.     float MountainsNoiseHeight = 500.000000;
  8109.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8110.     float Radius = 7000.000000;
  8111.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8112.     float RiverWidth = 1.000000;
  8113.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8114.     float PlainsNoiseFrequency = 0.200000;
  8115.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8116.     float MountainsNoiseFrequency = 0.200000;
  8117.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8118.     UCurveFloat* RingShape = LoadObject<UCurveFloat>(NULL, TEXT("/Game/RingCurve.RingCurve"));
  8119.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8120.     UCurveFloat* MoutainsMask = LoadObject<UCurveFloat>(NULL, TEXT("/Game/MountainsCurve.MountainsCurve"));
  8121.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8122.     UCurveFloat* RiverMask = LoadObject<UCurveFloat>(NULL, TEXT("/Game/RiverCurve.RiverCurve"));
  8123.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8124.     UCurveFloat* PlainsNoiseStrength = LoadObject<UCurveFloat>(NULL, TEXT("/Game/PlainsNoiseStrengthCurve.PlainsNoiseStrengthCurve"));
  8125.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8126.     FLinearColor PlainsColorLow = FLinearColor(0.041351, 0.072917, 0.016724, 1.000000);
  8127.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8128.     FLinearColor RiverColor = FLinearColor(0.000000, 0.000000, 1.000000, 1.000000);
  8129.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8130.     FLinearColor BeachColor = FLinearColor(0.989583, 0.833626, 0.282215, 1.000000);
  8131.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8132.     FLinearColor MountainsColorHigh = FLinearColor(1.000000, 1.000000, 1.000000, 1.000000);
  8133.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8134.     FLinearColor MountainsColorLowLow = FLinearColor(0.036458, 0.023406, 0.017120, 1.000000);
  8135.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8136.     FLinearColor MountainsColorLowHigh = FLinearColor(0.129469, 0.136312, 0.140625, 1.000000);
  8137.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8138.     FLinearColor PlainsColorHigh = FLinearColor(0.104616, 0.184475, 0.042311, 1.000000);
  8139.     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="")
  8140.     FLinearColor RingOuterColor = FLinearColor(0.005208, 0.000000, 0.000099, 1.000000);
  8141.    
  8142.     URingWorld() = default;
  8143.     TSharedRef<FVoxelWorldGeneratorInstance, ESPMode::ThreadSafe> GetWorldGenerator() override
  8144.     {
  8145.         return MakeShared<FRingWorldInstance, ESPMode::ThreadSafe>(Scale, PlainsNoiseHeight, RingEdgesHardness, Width_in_Degrees, RiverDepth, Thickness, BaseHeight, BaseNoiseHeight, BaseNoiseFrquency, MountainsNoiseHeight, Radius, RiverWidth, PlainsNoiseFrequency, MountainsNoiseFrequency, (RingShape ? RingShape->FloatCurve : FRichCurve()), (MoutainsMask ? MoutainsMask->FloatCurve : FRichCurve()), (RiverMask ? RiverMask->FloatCurve : FRichCurve()), (PlainsNoiseStrength ? PlainsNoiseStrength->FloatCurve : FRichCurve()), PlainsColorLow, RiverColor, BeachColor, MountainsColorHigh, MountainsColorLowLow, MountainsColorLowHigh, PlainsColorHigh, RingOuterColor);
  8146.     }
  8147. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement