Browse Source

add noise debugging tool and made rand Noise uniformly distributed

Kolja Strohm 1 year ago
parent
commit
f7621e89a5

+ 20 - 2
FactoryCraft.sln

@@ -1,10 +1,12 @@
 
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.31025.194
+# Visual Studio Version 17
+VisualStudioVersion = 17.3.32804.467
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FactoryCraft", "FactoryCraft\FactoryCraft.vcxproj", "{A1B59831-7E37-4F83-A545-0E27609E8295}"
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Windows Version", "Windows Version\Windows Version.vcxproj", "{47B54702-73F6-4004-89C3-0BF43CB2A2C4}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|ARM = Debug|ARM
@@ -41,6 +43,22 @@ Global
 		{A1B59831-7E37-4F83-A545-0E27609E8295}.Release|x86.ActiveCfg = Release|x86
 		{A1B59831-7E37-4F83-A545-0E27609E8295}.Release|x86.Build.0 = Release|x86
 		{A1B59831-7E37-4F83-A545-0E27609E8295}.Release|x86.Deploy.0 = Release|x86
+		{47B54702-73F6-4004-89C3-0BF43CB2A2C4}.Debug|ARM.ActiveCfg = Debug|x64
+		{47B54702-73F6-4004-89C3-0BF43CB2A2C4}.Debug|ARM.Build.0 = Debug|x64
+		{47B54702-73F6-4004-89C3-0BF43CB2A2C4}.Debug|ARM64.ActiveCfg = Debug|x64
+		{47B54702-73F6-4004-89C3-0BF43CB2A2C4}.Debug|ARM64.Build.0 = Debug|x64
+		{47B54702-73F6-4004-89C3-0BF43CB2A2C4}.Debug|x64.ActiveCfg = Debug|x64
+		{47B54702-73F6-4004-89C3-0BF43CB2A2C4}.Debug|x64.Build.0 = Debug|x64
+		{47B54702-73F6-4004-89C3-0BF43CB2A2C4}.Debug|x86.ActiveCfg = Debug|Win32
+		{47B54702-73F6-4004-89C3-0BF43CB2A2C4}.Debug|x86.Build.0 = Debug|Win32
+		{47B54702-73F6-4004-89C3-0BF43CB2A2C4}.Release|ARM.ActiveCfg = Release|x64
+		{47B54702-73F6-4004-89C3-0BF43CB2A2C4}.Release|ARM.Build.0 = Release|x64
+		{47B54702-73F6-4004-89C3-0BF43CB2A2C4}.Release|ARM64.ActiveCfg = Release|x64
+		{47B54702-73F6-4004-89C3-0BF43CB2A2C4}.Release|ARM64.Build.0 = Release|x64
+		{47B54702-73F6-4004-89C3-0BF43CB2A2C4}.Release|x64.ActiveCfg = Release|x64
+		{47B54702-73F6-4004-89C3-0BF43CB2A2C4}.Release|x64.Build.0 = Release|x64
+		{47B54702-73F6-4004-89C3-0BF43CB2A2C4}.Release|x86.ActiveCfg = Release|Win32
+		{47B54702-73F6-4004-89C3-0BF43CB2A2C4}.Release|x86.Build.0 = Release|Win32
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 2 - 2
FactoryCraft/BlockType.cpp

@@ -21,8 +21,8 @@ BlockType::BlockType(int id,
       initialMaxHP(initialMaxHP),
       needsClientInstance(needsClientInstance),
       lightSource(lightSource),
-      defaultBlock(defaultBlock),
-      name(name)
+      name(name),
+      defaultBlock(defaultBlock)
 {
     StaticRegistry<BlockType>::INSTANCE.registerT(this, id);
 }

+ 27 - 27
FactoryCraft/FactoryCraft.vcxproj.filters

@@ -120,9 +120,6 @@
     <ClInclude Include="StaticRegistry.h">
       <Filter>static</Filter>
     </ClInclude>
-    <ClInclude Include="Noise.h">
-      <Filter>world\generator\noise</Filter>
-    </ClInclude>
     <ClInclude Include="WorldGenerator.h">
       <Filter>world\generator</Filter>
     </ClInclude>
@@ -174,15 +171,6 @@
     <ClInclude Include="NoBlock.h">
       <Filter>world\blocks</Filter>
     </ClInclude>
-    <ClInclude Include="NoiseInterpolator.h">
-      <Filter>world\generator\noise</Filter>
-    </ClInclude>
-    <ClInclude Include="FastNoiseLite.h">
-      <Filter>world\generator\noise</Filter>
-    </ClInclude>
-    <ClInclude Include="FastNoiseWrapper.h">
-      <Filter>world\generator\noise</Filter>
-    </ClInclude>
     <ClInclude Include="PlayerHand.h">
       <Filter>inventory\items</Filter>
     </ClInclude>
@@ -204,9 +192,6 @@
     <ClInclude Include="TreeTemplate.h">
       <Filter>world\generator\templates\implementations</Filter>
     </ClInclude>
-    <ClInclude Include="RandNoise.h">
-      <Filter>world\generator\noise</Filter>
-    </ClInclude>
     <ClInclude Include="Recipie.h">
       <Filter>inventory\recipies</Filter>
     </ClInclude>
@@ -252,6 +237,21 @@
     <ClInclude Include="TreeSeblingBlock.h">
       <Filter>world\blocks</Filter>
     </ClInclude>
+    <ClInclude Include="FastNoiseLite.h">
+      <Filter>world\generator\noise</Filter>
+    </ClInclude>
+    <ClInclude Include="FastNoiseWrapper.h">
+      <Filter>world\generator\noise</Filter>
+    </ClInclude>
+    <ClInclude Include="Noise.h">
+      <Filter>world\generator\noise</Filter>
+    </ClInclude>
+    <ClInclude Include="NoiseInterpolator.h">
+      <Filter>world\generator\noise</Filter>
+    </ClInclude>
+    <ClInclude Include="RandNoise.h">
+      <Filter>world\generator\noise</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="Server.cpp">
@@ -275,9 +275,6 @@
     <ClCompile Include="ItemType.cpp">
       <Filter>inventory</Filter>
     </ClCompile>
-    <ClCompile Include="Noise.cpp">
-      <Filter>world\generator\noise</Filter>
-    </ClCompile>
     <ClCompile Include="DimensionGenerator.cpp">
       <Filter>world\generator</Filter>
     </ClCompile>
@@ -353,12 +350,6 @@
     <ClCompile Include="NoBlock.cpp">
       <Filter>world\blocks</Filter>
     </ClCompile>
-    <ClCompile Include="NoiseInterpolator.cpp">
-      <Filter>world\generator\noise</Filter>
-    </ClCompile>
-    <ClCompile Include="FastNoiseWrapper.cpp">
-      <Filter>world\generator\noise</Filter>
-    </ClCompile>
     <ClCompile Include="PlayerHand.cpp">
       <Filter>inventory\items</Filter>
     </ClCompile>
@@ -380,9 +371,6 @@
     <ClCompile Include="TreeTemplate.cpp">
       <Filter>world\generator\templates\implementations</Filter>
     </ClCompile>
-    <ClCompile Include="RandNoise.cpp">
-      <Filter>world\generator\noise</Filter>
-    </ClCompile>
     <ClCompile Include="RecipieLoader.cpp">
       <Filter>inventory\recipies</Filter>
     </ClCompile>
@@ -425,5 +413,17 @@
     <ClCompile Include="TreeSeblingBlock.cpp">
       <Filter>world\blocks</Filter>
     </ClCompile>
+    <ClCompile Include="FastNoiseWrapper.cpp">
+      <Filter>world\generator\noise</Filter>
+    </ClCompile>
+    <ClCompile Include="Noise.cpp">
+      <Filter>world\generator\noise</Filter>
+    </ClCompile>
+    <ClCompile Include="NoiseInterpolator.cpp">
+      <Filter>world\generator\noise</Filter>
+    </ClCompile>
+    <ClCompile Include="RandNoise.cpp">
+      <Filter>world\generator\noise</Filter>
+    </ClCompile>
   </ItemGroup>
 </Project>

+ 11 - 13
FactoryCraft/RandNoise.cpp

@@ -11,19 +11,15 @@ RandNoise::RandNoise(int seed)
     : Noise(),
       seed(seed)
 {
-    FastNoiseLite* n = new FastNoiseLite(seed);
-    n->SetNoiseType(FastNoiseLite::NoiseType::NoiseType_OpenSimplex2S);
-    n->SetRotationType3D(FastNoiseLite::RotationType3D::RotationType3D_None);
-    n->SetFrequency(0.333f);
-    n->SetFractalOctaves(1);
-    n->SetFractalType(FastNoiseLite::FractalType::FractalType_None);
-    n->SetDomainWarpAmp(30.f);
-    noise = new FastNoiseWrapper(n, seed);
+    srand(seed);
+    table = new short[RandNoiseTableSize];
+    for (int i = 0; i < RandNoiseTableSize; i++)
+        table[i] = (short)rand();
 }
 
 RandNoise::~RandNoise()
 {
-    delete noise;
+    delete[] table;
 }
 
 int RandNoise::getSeed() const
@@ -33,8 +29,10 @@ int RandNoise::getSeed() const
 
 double RandNoise::getNoise(double x, double y, double z)
 {
-    double n = noise->getNoise(
-        x * 4 + y + z * 7, 7 * x + 4 * y + z, x + 7 * y + 4 * z);
-    assert(n >= 0 && n <= 1);
-    return n;
+    int index = seed % RandNoiseTableSize;
+    index = abs(table[index] + (int)x) % RandNoiseTableSize;
+    index = abs(table[index] + (int)y) % RandNoiseTableSize;
+    index = abs(table[index] + (int)z) % RandNoiseTableSize;
+    return (double)table[index]
+         / RAND_MAX;
 }

+ 4 - 1
FactoryCraft/RandNoise.h

@@ -1,14 +1,17 @@
 #pragma once
 
 #include "Noise.h"
+#include <Random.h>
 
 class FastNoiseWrapper;
 
+#define RandNoiseTableSize 1024 * 512
+
 class RandNoise : public Noise
 {
 private:
+    short *table;
     int seed;
-    FastNoiseWrapper* noise;
 
 public:
     RandNoise(int seed);

BIN
Windows Version/Framework.dll


+ 161 - 0
Windows Version/Start.cpp

@@ -0,0 +1,161 @@
+#include <AsynchronCall.h>
+#include <Bild.h>
+#include <Bildschirm.h>
+#include <Fenster.h>
+#include <Globals.h>
+#include <iostream>
+#include <RenderThread.h>
+#include <string.h>
+
+#include "FastNoiseLite.h"
+#include "FastNoiseWrapper.h"
+#include "RandNoise.h"
+
+using namespace Framework;
+
+WFenster* window;
+Bild* img;
+Vec3<int> position(0, 0, 0);
+int zoom = 1;
+bool exitF = 0;
+Noise* wrapper;
+float border = 0.5;
+
+void updateView()
+{
+    Vec3<int> minP
+        = position
+        - Vec3<int>(img->getBreite() / 2, img->getHeight() / 2, 0) / zoom;
+    Vec3<int> maxP
+        = position
+        + Vec3<int>(img->getBreite() / 2, img->getHeight() / 2, 0) / zoom;
+    int counter = 0;
+    for (int i = 0; i < img->getBreite(); i++)
+    {
+        for (int j = 0; j < img->getHeight(); j++)
+        {
+            Vec3<int> pos(i, j, 0);
+            pos -= Vec3<int>(img->getBreite() / 2, img->getHeight() / 2, 0);
+            pos /= zoom;
+            pos += position;
+            if (wrapper->getNoise(pos.x, pos.y, pos.z) < border)
+            {
+                img->setPixelDP(i, j, 0xFFFFFFFF);
+                counter++;
+            }
+            else
+            {
+                img->setPixelDP(i, j, 0xFF000000);
+            }
+        }
+    }
+    float percentage = ((float)counter / (img->getBreite() * img->getHeight())) * 100;
+    std::cout << "Showing " << minP.x << " " << minP.y << " to " << maxP.x
+              << " " << maxP.y << " at height " << position.z << " with border "
+              << border << " true for " << percentage << "% of "
+              << (img->getBreite() / zoom) * (img->getHeight() / zoom) << " blocks"
+              << std::endl;
+}
+
+int main()
+{
+    Framework::initFramework();
+    /* FastNoiseLite* noise = new FastNoiseLite(0);
+    noise->SetNoiseType(FastNoiseLite::NoiseType::NoiseType_ValueCubic);
+    noise->SetFrequency(3.f);
+    wrapper = new FastNoiseWrapper(noise, 0);*/
+   // FastNoiseLite* n = new FastNoiseLite(0);
+   // n->SetNoiseType(FastNoiseLite::NoiseType::NoiseType_OpenSimplex2);
+    //n->SetRotationType3D(FastNoiseLite::RotationType3D::RotationType3D_None);
+    //n->SetFrequency(0.001f);
+    //n->SetFractalOctaves(0);
+    //n->SetFractalType(FastNoiseLite::FractalType::FractalType_None);
+    //n->SetDomainWarpAmp(0.f);
+    //wrapper = new FastNoiseWrapper(n, 0);
+    wrapper = new RandNoise(0);
+
+
+    img = new Bild();
+    img->neuBild(800, 800, 0xFF000000);
+
+    BildZ* view = new BildZ();
+    view->setBildZ(img);
+    view->setStyle(BildZ::Style::Sichtbar);
+    view->setSize(800, 800);
+
+    WNDCLASS wc = Framework::F_Normal(GetModuleHandle(NULL));
+    wc.lpszClassName = "Fenster";
+    window = new WFenster();
+    window->erstellen(WS_OVERLAPPEDWINDOW, wc);
+    window->setSize(800, 800);
+    window->setPosition(100, 100);
+    window->setAnzeigeModus(SW_SHOW);
+    window->setVSchließAktion([](void* p, void* o) {
+        StopNachrichtenSchleife(window->getFensterHandle());
+    });
+
+    Bildschirm* screen = new Bildschirm2D(window);
+    window->setBildschirm(dynamic_cast<Bildschirm*>(screen->getThis()));
+    screen->addMember(view);
+    screen->setTestRend(0);
+    screen->update();
+    screen->render();
+    RenderTh* rth = new RenderTh();
+    rth->setQuiet(1);
+    rth->setBildschirm(screen);
+    rth->beginn();
+
+    updateView();
+
+    new AsynchronCall([]() {
+        char line[256];
+        while (!exitF)
+        {
+            std::cin.getline(line, 256);
+            if (strcmp(line, "exit") == 0)
+            {
+                StopNachrichtenSchleife(window->getFensterHandle());
+                break;
+            }
+            Text txt(line);
+            if (txt.positionVon("show ") == 0)
+            {
+                Text* x = txt.getTeilText(5);
+                position.x = (int)*x;
+                Text* y = x->getTeilText(x->positionVon(" ") + 1);
+                position.y = (int)*y;
+                Text* z = y->getTeilText(y->positionVon(" ") + 1);
+                position.z = (int)*z;
+                updateView();
+                z->release();
+                y->release();
+                x->release();
+            }
+            if (txt.positionVon("border ") == 0)
+            {
+				Text* x = txt.getTeilText(7);
+				border = (float)*x;
+				updateView();
+				x->release();
+            }
+			if (txt.positionVon("zoom ") == 0)
+			{
+				Text* x = txt.getTeilText(5);
+				zoom = (int)*x;
+				updateView();
+				x->release();
+			}
+        }
+    });
+
+    StartNachrichtenSchleife();
+
+    exitF = 1;
+
+    rth->beenden();
+    window->setBildschirm(0);
+    rth->release();
+    img->release();
+    Framework::releaseFramework();
+    return 0;
+}

+ 159 - 0
Windows Version/Windows Version.vcxproj

@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <VCProjectVersion>16.0</VCProjectVersion>
+    <Keyword>Win32Proj</Keyword>
+    <ProjectGuid>{47b54702-73f6-4004-89c3-0bf43cb2a2c4}</ProjectGuid>
+    <RootNamespace>WindowsVersion</RootNamespace>
+    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v143</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v143</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v143</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v143</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="Shared">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <IncludePath>..\..\..\..\..\Allgemein\Framework;..\FactoryCraft;;$(IncludePath)</IncludePath>
+    <LibraryPath>..\..\..\..\..\Allgemein\Framework\x64\debug;$(LibraryPath)</LibraryPath>
+    <CustomBuildBeforeTargets>Build</CustomBuildBeforeTargets>
+    <SourcePath>..\FactoryCraft;$(SourcePath)</SourcePath>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>Framework.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <CustomBuildStep>
+      <Command>copy ..\..\..\..\..\Allgemein\Framework\x64\debug\Framework.dll Framework.dll</Command>
+    </CustomBuildStep>
+    <CustomBuildStep>
+      <Outputs>kopieren ...;%(Outputs)</Outputs>
+    </CustomBuildStep>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\FactoryCraft\FastNoiseWrapper.cpp" />
+    <ClCompile Include="..\FactoryCraft\Noise.cpp" />
+    <ClCompile Include="..\FactoryCraft\NoiseInterpolator.cpp" />
+    <ClCompile Include="..\FactoryCraft\RandNoise.cpp" />
+    <ClCompile Include="Start.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\FactoryCraft\FastNoiseLite.h" />
+    <ClInclude Include="..\FactoryCraft\FastNoiseWrapper.h" />
+    <ClInclude Include="..\FactoryCraft\Noise.h" />
+    <ClInclude Include="..\FactoryCraft\NoiseInterpolator.h" />
+    <ClInclude Include="..\FactoryCraft\RandNoise.h" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

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

@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Quelldateien">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Headerdateien">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
+    </Filter>
+    <Filter Include="Ressourcendateien">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+    </Filter>
+    <Filter Include="world">
+      <UniqueIdentifier>{f2444d9a-75ef-4407-9668-4c82e9472d2f}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="world\generator">
+      <UniqueIdentifier>{54819644-878f-4628-a772-1f4e0e32a8f4}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="world\generator\noise">
+      <UniqueIdentifier>{c3f7e64b-58c8-48b0-8075-22752b1cfdf9}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="Start.cpp">
+      <Filter>Quelldateien</Filter>
+    </ClCompile>
+    <ClCompile Include="..\FactoryCraft\FastNoiseWrapper.cpp">
+      <Filter>world\generator\noise</Filter>
+    </ClCompile>
+    <ClCompile Include="..\FactoryCraft\Noise.cpp">
+      <Filter>world\generator\noise</Filter>
+    </ClCompile>
+    <ClCompile Include="..\FactoryCraft\NoiseInterpolator.cpp">
+      <Filter>world\generator\noise</Filter>
+    </ClCompile>
+    <ClCompile Include="..\FactoryCraft\RandNoise.cpp">
+      <Filter>world\generator\noise</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\FactoryCraft\FastNoiseWrapper.h">
+      <Filter>world\generator\noise</Filter>
+    </ClInclude>
+    <ClInclude Include="..\FactoryCraft\FastNoiseLite.h">
+      <Filter>world\generator\noise</Filter>
+    </ClInclude>
+    <ClInclude Include="..\FactoryCraft\Noise.h">
+      <Filter>world\generator\noise</Filter>
+    </ClInclude>
+    <ClInclude Include="..\FactoryCraft\NoiseInterpolator.h">
+      <Filter>world\generator\noise</Filter>
+    </ClInclude>
+    <ClInclude Include="..\FactoryCraft\RandNoise.h">
+      <Filter>world\generator\noise</Filter>
+    </ClInclude>
+  </ItemGroup>
+</Project>