From 7bf9da74413c69cbd79a9db81ba098e13b847904 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Sun, 20 Jul 2014 16:23:45 +0200 Subject: First attempt for a new foliage finisher --- src/Generating/ComposableGenerator.cpp | 4 ++++ src/Generating/FinishGen.cpp | 32 ++++++++++++++++++++++++++++ src/Generating/FinishGen.h | 38 ++++++++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+) (limited to 'src/Generating') diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index 7b6234161..21626e76b 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -338,6 +338,10 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) float Threshold = (float)a_IniFile.GetValueSetF("Generator", "DualRidgeCavesThreshold", 0.3); m_FinishGens.push_back(new cStructGenDualRidgeCaves(Seed, Threshold)); } + else if (NoCaseCompare(*itr, "Foliage") == 0) + { + m_FinishGens.push_back(new cFinishGenFoliage(Seed)); + } else if (NoCaseCompare(*itr, "Ice") == 0) { m_FinishGens.push_back(new cFinishGenIce); diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index f2d66af70..06c1dcbbe 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -159,6 +159,38 @@ void cFinishGenNetherClumpFoliage::TryPlaceClump(cChunkDesc & a_ChunkDesc, int a +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// cFinishGenFoliage: + +void cFinishGenFoliage::GenFinish(cChunkDesc & a_ChunkDesc) +{ + for (int x = 1; x < cChunkDef::Width; x++) + { + int xx = x + a_ChunkDesc.GetChunkX(); + for (int z = 1; z < cChunkDef::Width; z++) + { + int zz = z + a_ChunkDesc.GetChunkZ(); + //if (true) + if (m_Noise.CubicNoise2D((float) xx + m_Noise.CubicNoise1D(xx), zz + m_Noise.CubicNoise1D(zz)) < GetBiomeDensity(a_ChunkDesc.GetBiome(x, z))) + { + for (int y = a_ChunkDesc.GetHeight(x, z) + 1; y >= 1; y--) + { + if ( + (a_ChunkDesc.GetBlockType(x, y, z) == E_BLOCK_AIR) && + (a_ChunkDesc.GetBlockType(x, y - 1, z) == E_BLOCK_GRASS) + ) + { + a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_TALL_GRASS, m_Noise.CubicNoise2D(xx * 100, zz * 100) > -0.2 ? 1 : 2); + } + } + } + } + } +} + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cFinishGenSprinkleFoliage: diff --git a/src/Generating/FinishGen.h b/src/Generating/FinishGen.h index 2e5732929..ea322c7ae 100644 --- a/src/Generating/FinishGen.h +++ b/src/Generating/FinishGen.h @@ -69,6 +69,44 @@ protected: +class cFinishGenFoliage : + public cFinishGen +{ +public: + cFinishGenFoliage(int a_Seed) : m_Noise(a_Seed), m_Seed(a_Seed) {} + +protected: + cNoise m_Noise; + int m_Seed; + + // cFinishGen override: + virtual void GenFinish(cChunkDesc & a_ChunkDesc) override; + + float GetBiomeDensity(EMCSBiome a_Biome) + { + switch (a_Biome) + { + case biSavanna: + case biSavannaM: + case biSavannaPlateau: + case biSavannaPlateauM: + case biPlains: + { + return 0.0; + } + default: + { + return -0.4; + } + } + return -0.3; + } +}; + + + + + class cFinishGenSprinkleFoliage : public cFinishGen { -- cgit v1.2.3 From 51ad6cd1b22914aecd7e27d6a4a35853459fdb94 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Sun, 20 Jul 2014 16:31:28 +0200 Subject: Fixed warnings --- src/Generating/FinishGen.cpp | 3 +-- src/Generating/FinishGen.h | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index 06c1dcbbe..86f5711a7 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -170,8 +170,7 @@ void cFinishGenFoliage::GenFinish(cChunkDesc & a_ChunkDesc) for (int z = 1; z < cChunkDef::Width; z++) { int zz = z + a_ChunkDesc.GetChunkZ(); - //if (true) - if (m_Noise.CubicNoise2D((float) xx + m_Noise.CubicNoise1D(xx), zz + m_Noise.CubicNoise1D(zz)) < GetBiomeDensity(a_ChunkDesc.GetBiome(x, z))) + if (m_Noise.CubicNoise2D((float) xx + m_Noise.CubicNoise1D(xx), (float) zz + m_Noise.CubicNoise1D(zz)) < GetBiomeDensity(a_ChunkDesc.GetBiome(x, z))) { for (int y = a_ChunkDesc.GetHeight(x, z) + 1; y >= 1; y--) { diff --git a/src/Generating/FinishGen.h b/src/Generating/FinishGen.h index ea322c7ae..d2968e592 100644 --- a/src/Generating/FinishGen.h +++ b/src/Generating/FinishGen.h @@ -92,14 +92,14 @@ protected: case biSavannaPlateauM: case biPlains: { - return 0.0; + return 0.0f; } default: { - return -0.4; + return -0.4f; } } - return -0.3; + return -0.3f; } }; -- cgit v1.2.3 From 76b79b51adfd8e71312cf777595483bb1ec68910 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Sun, 20 Jul 2014 19:22:41 +0200 Subject: Renamed cFinishGenFoliage to cFinishGenTallGrass Better grass density Added double tall grass. --- src/Generating/ComposableGenerator.cpp | 8 ++++---- src/Generating/FinishGen.cpp | 34 ++++++++++++++++++++++++++-------- src/Generating/FinishGen.h | 9 ++++----- 3 files changed, 34 insertions(+), 17 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index 21626e76b..2717f4e41 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -338,10 +338,6 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) float Threshold = (float)a_IniFile.GetValueSetF("Generator", "DualRidgeCavesThreshold", 0.3); m_FinishGens.push_back(new cStructGenDualRidgeCaves(Seed, Threshold)); } - else if (NoCaseCompare(*itr, "Foliage") == 0) - { - m_FinishGens.push_back(new cFinishGenFoliage(Seed)); - } else if (NoCaseCompare(*itr, "Ice") == 0) { m_FinishGens.push_back(new cFinishGenIce); @@ -419,6 +415,10 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) { m_FinishGens.push_back(new cFinishGenSprinkleFoliage(Seed)); } + else if (NoCaseCompare(*itr, "TallGrass") == 0) + { + m_FinishGens.push_back(new cFinishGenTallGrass(Seed)); + } else if (NoCaseCompare(*itr, "TestRails") == 0) { m_FinishGens.push_back(new cTestRailsGen(Seed, 100, 1, 7, 50)); diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index 86f5711a7..3ee657e38 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -162,24 +162,42 @@ void cFinishGenNetherClumpFoliage::TryPlaceClump(cChunkDesc & a_ChunkDesc, int a /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cFinishGenFoliage: -void cFinishGenFoliage::GenFinish(cChunkDesc & a_ChunkDesc) +void cFinishGenTallGrass::GenFinish(cChunkDesc & a_ChunkDesc) { - for (int x = 1; x < cChunkDef::Width; x++) + for (int x = 0; x < cChunkDef::Width; x++) { - int xx = x + a_ChunkDesc.GetChunkX(); - for (int z = 1; z < cChunkDef::Width; z++) + float xx = (float) x + a_ChunkDesc.GetChunkX(); + for (int z = 0; z < cChunkDef::Width; z++) { - int zz = z + a_ChunkDesc.GetChunkZ(); - if (m_Noise.CubicNoise2D((float) xx + m_Noise.CubicNoise1D(xx), (float) zz + m_Noise.CubicNoise1D(zz)) < GetBiomeDensity(a_ChunkDesc.GetBiome(x, z))) + float zz = (float) z + a_ChunkDesc.GetChunkZ(); + float BiomeDensity = GetBiomeDensity(a_ChunkDesc.GetBiome(x, z)); + if (m_Noise.CubicNoise2D(xx + m_Noise.CubicNoise1D(xx), zz + m_Noise.CubicNoise1D(zz)) < BiomeDensity) { for (int y = a_ChunkDesc.GetHeight(x, z) + 1; y >= 1; y--) { if ( (a_ChunkDesc.GetBlockType(x, y, z) == E_BLOCK_AIR) && - (a_ChunkDesc.GetBlockType(x, y - 1, z) == E_BLOCK_GRASS) + ((a_ChunkDesc.GetBlockType(x, y - 1, z) == E_BLOCK_GRASS) || (a_ChunkDesc.GetBlockType(x, y - 1, z) == E_BLOCK_DIRT)) ) { - a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_TALL_GRASS, m_Noise.CubicNoise2D(xx * 100, zz * 100) > -0.2 ? 1 : 2); + float GrassType = m_Noise.CubicNoise2D(xx * 50, zz * 50); + if (GrassType < 0.2f) + { + a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_TALL_GRASS, 1); + } + else if (GrassType < 0.8f) + { + a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_TALL_GRASS, 2); + } + else + { + if (a_ChunkDesc.GetBlockType(x, y + 1, z) == E_BLOCK_AIR) + { + NIBBLETYPE Meta = m_Noise.CubicNoise2D(xx * 100, zz * 100) > -0.5f ? 2 : 3; + a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_BIG_FLOWER, Meta); + a_ChunkDesc.SetBlockTypeMeta(x, y + 1, z, E_BLOCK_BIG_FLOWER, 8); + } + } } } } diff --git a/src/Generating/FinishGen.h b/src/Generating/FinishGen.h index d2968e592..17a807e9b 100644 --- a/src/Generating/FinishGen.h +++ b/src/Generating/FinishGen.h @@ -69,11 +69,11 @@ protected: -class cFinishGenFoliage : +class cFinishGenTallGrass : public cFinishGen { public: - cFinishGenFoliage(int a_Seed) : m_Noise(a_Seed), m_Seed(a_Seed) {} + cFinishGenTallGrass(int a_Seed) : m_Noise(a_Seed), m_Seed(a_Seed) {} protected: cNoise m_Noise; @@ -92,14 +92,13 @@ protected: case biSavannaPlateauM: case biPlains: { - return 0.0f; + return 0.4f; } default: { - return -0.4f; + return -0.6f; } } - return -0.3f; } }; -- cgit v1.2.3 From a4470da876f8588fb71733a961701461f320e084 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Sun, 20 Jul 2014 22:43:31 +0200 Subject: Changed CubicNoiseXX to IntNoiseXX Added some comments --- src/Generating/FinishGen.cpp | 63 +++++++++++++++++++++++++------------------- src/Generating/FinishGen.h | 26 +++++++++--------- 2 files changed, 49 insertions(+), 40 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index 3ee657e38..b332c4f9b 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -166,38 +166,47 @@ void cFinishGenTallGrass::GenFinish(cChunkDesc & a_ChunkDesc) { for (int x = 0; x < cChunkDef::Width; x++) { - float xx = (float) x + a_ChunkDesc.GetChunkX(); + int xx = x + a_ChunkDesc.GetChunkX() * cChunkDef::Width; for (int z = 0; z < cChunkDef::Width; z++) { - float zz = (float) z + a_ChunkDesc.GetChunkZ(); - float BiomeDensity = GetBiomeDensity(a_ChunkDesc.GetBiome(x, z)); - if (m_Noise.CubicNoise2D(xx + m_Noise.CubicNoise1D(xx), zz + m_Noise.CubicNoise1D(zz)) < BiomeDensity) + int zz = z + a_ChunkDesc.GetChunkZ() * cChunkDef::Width; + int BiomeDensity = GetBiomeDensity(a_ChunkDesc.GetBiome(x, z)); + + // Choose if we want to place long grass here. If not then bail out. + if ((m_Noise.IntNoise2DInt(xx + m_Noise.IntNoise1DInt(xx), zz + m_Noise.IntNoise1DInt(zz)) / 7 % 100) > BiomeDensity) { - for (int y = a_ChunkDesc.GetHeight(x, z) + 1; y >= 1; y--) - { - if ( - (a_ChunkDesc.GetBlockType(x, y, z) == E_BLOCK_AIR) && - ((a_ChunkDesc.GetBlockType(x, y - 1, z) == E_BLOCK_GRASS) || (a_ChunkDesc.GetBlockType(x, y - 1, z) == E_BLOCK_DIRT)) + continue; + } + + for (int y = a_ChunkDesc.GetHeight(x, z) + 1; y >= 1; y--) + { + // Check if long grass can be placed. + if ( + (a_ChunkDesc.GetBlockType(x, y, z) != E_BLOCK_AIR) || + ((a_ChunkDesc.GetBlockType(x, y - 1, z) != E_BLOCK_GRASS) && (a_ChunkDesc.GetBlockType(x, y - 1, z) != E_BLOCK_DIRT)) ) + { + continue; + } + + // Choose what long grass meta we should use. + int GrassType = m_Noise.IntNoise2DInt(xx * 50, zz * 50) / 7 % 100; + if (GrassType < 60) + { + a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_TALL_GRASS, 1); + } + else if (GrassType < 90) + { + a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_TALL_GRASS, 2); + } + else + { + // If double long grass we have to choose what type we should use. + if (a_ChunkDesc.GetBlockType(x, y + 1, z) == E_BLOCK_AIR) { - float GrassType = m_Noise.CubicNoise2D(xx * 50, zz * 50); - if (GrassType < 0.2f) - { - a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_TALL_GRASS, 1); - } - else if (GrassType < 0.8f) - { - a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_TALL_GRASS, 2); - } - else - { - if (a_ChunkDesc.GetBlockType(x, y + 1, z) == E_BLOCK_AIR) - { - NIBBLETYPE Meta = m_Noise.CubicNoise2D(xx * 100, zz * 100) > -0.5f ? 2 : 3; - a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_BIG_FLOWER, Meta); - a_ChunkDesc.SetBlockTypeMeta(x, y + 1, z, E_BLOCK_BIG_FLOWER, 8); - } - } + NIBBLETYPE Meta = (m_Noise.IntNoise2DInt(xx * 100, zz * 100) / 7 % 100) > 25 ? 2 : 3; + a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_BIG_FLOWER, Meta); + a_ChunkDesc.SetBlockTypeMeta(x, y + 1, z, E_BLOCK_BIG_FLOWER, 8); } } } diff --git a/src/Generating/FinishGen.h b/src/Generating/FinishGen.h index 17a807e9b..f673ac2c2 100644 --- a/src/Generating/FinishGen.h +++ b/src/Generating/FinishGen.h @@ -82,22 +82,22 @@ protected: // cFinishGen override: virtual void GenFinish(cChunkDesc & a_ChunkDesc) override; - float GetBiomeDensity(EMCSBiome a_Biome) + int GetBiomeDensity(EMCSBiome a_Biome) { switch (a_Biome) { - case biSavanna: - case biSavannaM: - case biSavannaPlateau: - case biSavannaPlateauM: - case biPlains: - { - return 0.4f; - } - default: - { - return -0.6f; - } + case biSavanna: + case biSavannaM: + case biSavannaPlateau: + case biSavannaPlateauM: + case biPlains: + { + return 70; + } + default: + { + return 20; + } } } }; -- cgit v1.2.3 From 0c816dd6973ea15863b3e6f0a842b9b1e5fe2f3d Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Mon, 21 Jul 2014 10:58:13 +0200 Subject: Fixed indentation --- src/Generating/FinishGen.h | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.h b/src/Generating/FinishGen.h index f673ac2c2..0688e1162 100644 --- a/src/Generating/FinishGen.h +++ b/src/Generating/FinishGen.h @@ -86,18 +86,18 @@ protected: { switch (a_Biome) { - case biSavanna: - case biSavannaM: - case biSavannaPlateau: - case biSavannaPlateauM: - case biPlains: - { - return 70; - } - default: - { - return 20; - } + case biSavanna: + case biSavannaM: + case biSavannaPlateau: + case biSavannaPlateauM: + case biPlains: + { + return 70; + } + default: + { + return 20; + } } } }; -- cgit v1.2.3 From ce956bcdf276daa288c35d702885bba90f6ce283 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Mon, 21 Jul 2014 16:01:16 +0200 Subject: Removed y for-loop. Only the top block now gets long grass. --- src/Generating/FinishGen.cpp | 54 ++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 27 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index b332c4f9b..26149f363 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -178,36 +178,36 @@ void cFinishGenTallGrass::GenFinish(cChunkDesc & a_ChunkDesc) continue; } - for (int y = a_ChunkDesc.GetHeight(x, z) + 1; y >= 1; y--) + // Get the top block + 1. This is the place where the grass would finaly be placed. + int y = a_ChunkDesc.GetHeight(x, z) + 1; + + // Check if long grass can be placed. + if ( + (a_ChunkDesc.GetBlockType(x, y, z) != E_BLOCK_AIR) || + ((a_ChunkDesc.GetBlockType(x, y - 1, z) != E_BLOCK_GRASS) && (a_ChunkDesc.GetBlockType(x, y - 1, z) != E_BLOCK_DIRT)) + ) { - // Check if long grass can be placed. - if ( - (a_ChunkDesc.GetBlockType(x, y, z) != E_BLOCK_AIR) || - ((a_ChunkDesc.GetBlockType(x, y - 1, z) != E_BLOCK_GRASS) && (a_ChunkDesc.GetBlockType(x, y - 1, z) != E_BLOCK_DIRT)) - ) - { - continue; - } + continue; + } - // Choose what long grass meta we should use. - int GrassType = m_Noise.IntNoise2DInt(xx * 50, zz * 50) / 7 % 100; - if (GrassType < 60) - { - a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_TALL_GRASS, 1); - } - else if (GrassType < 90) - { - a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_TALL_GRASS, 2); - } - else + // Choose what long grass meta we should use. + int GrassType = m_Noise.IntNoise2DInt(xx * 50, zz * 50) / 7 % 100; + if (GrassType < 60) + { + a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_TALL_GRASS, 1); + } + else if (GrassType < 90) + { + a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_TALL_GRASS, 2); + } + else + { + // If double long grass we have to choose what type we should use. + if (a_ChunkDesc.GetBlockType(x, y + 1, z) == E_BLOCK_AIR) { - // If double long grass we have to choose what type we should use. - if (a_ChunkDesc.GetBlockType(x, y + 1, z) == E_BLOCK_AIR) - { - NIBBLETYPE Meta = (m_Noise.IntNoise2DInt(xx * 100, zz * 100) / 7 % 100) > 25 ? 2 : 3; - a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_BIG_FLOWER, Meta); - a_ChunkDesc.SetBlockTypeMeta(x, y + 1, z, E_BLOCK_BIG_FLOWER, 8); - } + NIBBLETYPE Meta = (m_Noise.IntNoise2DInt(xx * 100, zz * 100) / 7 % 100) > 25 ? 2 : 3; + a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_BIG_FLOWER, Meta); + a_ChunkDesc.SetBlockTypeMeta(x, y + 1, z, E_BLOCK_BIG_FLOWER, 8); } } } -- cgit v1.2.3 From 39623251c4e41e882abba767123f21b49a181ffc Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Mon, 21 Jul 2014 16:34:35 +0200 Subject: Fixed a missing enter. --- src/Generating/FinishGen.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index 26149f363..e6c31e43f 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -217,6 +217,7 @@ void cFinishGenTallGrass::GenFinish(cChunkDesc & a_ChunkDesc) + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cFinishGenSprinkleFoliage: -- cgit v1.2.3 From bea574bf5425215bbed49ad4b3814804fd8757fc Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Mon, 21 Jul 2014 18:53:56 +0200 Subject: ExtremeHillsPlus and ExtremeHills spawn with grass only Turns out only the M variants have stone and gravel in them. --- src/Generating/DistortedHeightmap.cpp | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/DistortedHeightmap.cpp b/src/Generating/DistortedHeightmap.cpp index b46850a81..74d30c327 100644 --- a/src/Generating/DistortedHeightmap.cpp +++ b/src/Generating/DistortedHeightmap.cpp @@ -675,6 +675,8 @@ void cDistortedHeightmap::ComposeColumn(cChunkDesc & a_ChunkDesc, int a_RelX, in case biForestHills: case biTaigaHills: case biExtremeHillsEdge: + case biExtremeHillsPlus: + case biExtremeHills: case biJungle: case biJungleHills: case biJungleEdge: @@ -750,18 +752,6 @@ void cDistortedHeightmap::ComposeColumn(cChunkDesc & a_ChunkDesc, int a_RelX, in return; } - case biExtremeHillsPlus: - case biExtremeHills: - { - // Select the pattern to use - stone or grass: - NOISE_DATATYPE NoiseX = ((NOISE_DATATYPE)(m_CurChunkX * cChunkDef::Width + a_RelX)) / FrequencyX; - NOISE_DATATYPE NoiseY = ((NOISE_DATATYPE)(m_CurChunkZ * cChunkDef::Width + a_RelZ)) / FrequencyZ; - NOISE_DATATYPE Val = m_OceanFloorSelect.CubicNoise2D(NoiseX, NoiseY); - const sBlockInfo * Pattern = (Val < -0.1) ? patStone.Get() : patGrass.Get(); - FillColumnPattern(a_ChunkDesc, a_RelX, a_RelZ, Pattern); - return; - } - case biExtremeHillsPlusM: case biExtremeHillsM: { -- cgit v1.2.3 From 31b22e14b719e84d2e828ae474d9c6f596024a37 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Tue, 22 Jul 2014 10:04:53 +0200 Subject: Updated prefabs to current Gallery content. --- src/Generating/Prefabs/AlchemistVillagePrefabs.cpp | 38 +- src/Generating/Prefabs/JapaneseVillagePrefabs.cpp | 48 ++- src/Generating/Prefabs/PlainsVillagePrefabs.cpp | 383 ++++++++++----------- 3 files changed, 243 insertions(+), 226 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp index 8c935c2a5..c08e53ef6 100644 --- a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp +++ b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp @@ -2367,9 +2367,9 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = "a: 24: 2\n" /* sandstone */ "b: 4: 0\n" /* cobblestone */ "c: 24: 0\n" /* sandstone */ - "d: 12: 0\n" /* sand */ - "e: 13: 0\n" /* gravel */ - "f: 5: 0\n" /* wood */ + "d: 13: 0\n" /* gravel */ + "e: 5: 0\n" /* wood */ + "f: 12: 0\n" /* sand */ "g: 64: 3\n" /* wooddoorblock */ "h: 85: 0\n" /* fence */ "i: 64: 0\n" /* wooddoorblock */ @@ -2392,26 +2392,26 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* * 012345678901234 */ /* 0 */ "mmmabbbammmmmmm" /* 1 */ "mmmmbbbmmmmmmmm" - /* 2 */ "acccccccccadddd" - /* 3 */ "cccccccccccdddd" - /* 4 */ "cccccccccccdddd" - /* 5 */ "cccccccccccdddd" - /* 6 */ "cccccccccccdddd" - /* 7 */ "cccccccccccdddd" - /* 8 */ "acccccccccadddd" + /* 2 */ "acccccccccacccc" + /* 3 */ "ccccccccccccccc" + /* 4 */ "ccccccccccccccc" + /* 5 */ "ccccccccccccccc" + /* 6 */ "ccccccccccccccc" + /* 7 */ "ccccccccccccccc" + /* 8 */ "acccccccccacccc" // Level 1 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "mmmaeeeammmmmmm" - /* 1 */ "mmmmeeemmmmmmmm" - /* 2 */ "accccfccccadddd" - /* 3 */ "cfffffffffcdddd" - /* 4 */ "cfffffffffcdddd" - /* 5 */ "cffffffffffdddd" - /* 6 */ "cfffffffffcdddd" - /* 7 */ "cfffffffffcdddd" - /* 8 */ "acccccccccadddd" + /* 0 */ "mmmadddammmmmmm" + /* 1 */ "mmmmdddmmmmmmmm" + /* 2 */ "acccceccccaffff" + /* 3 */ "ceeeeeeeeecffff" + /* 4 */ "ceeeeeeeeecffff" + /* 5 */ "ceeeeeeeeeeffff" + /* 6 */ "ceeeeeeeeecffff" + /* 7 */ "ceeeeeeeeecffff" + /* 8 */ "acccccccccaffff" // Level 2 /* z\x* 11111 */ diff --git a/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp b/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp index c49015e36..0362c9406 100644 --- a/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp +++ b/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp @@ -134,11 +134,11 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = // The data has been exported from the gallery Plains, area index 166, ID 554, created by Aloe_vera { // Size: - 11, 7, 13, // SizeX = 11, SizeY = 7, SizeZ = 13 + 11, 8, 13, // SizeX = 11, SizeY = 8, SizeZ = 13 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 10, 6, 12, // MaxX, MaxY, MaxZ + 10, 7, 12, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -150,6 +150,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = "f: 59: 7\n" /* crops */ "g: 83: 0\n" /* reedblock */ "h:113: 0\n" /* netherbrickfence */ + "i: 50: 5\n" /* torch */ "m: 19: 0\n" /* sponge */, // Block data: @@ -270,7 +271,24 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = /* 9 */ "..........." /* 10 */ ".h.......h." /* 11 */ "hhh.....hhh" - /* 12 */ ".h.......h.", + /* 12 */ ".h.......h." + + // Level 7 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ ".i.......i." + /* 1 */ "i.i.....i.i" + /* 2 */ ".i.......i." + /* 3 */ "..........." + /* 4 */ "..........." + /* 5 */ "..........." + /* 6 */ "..........." + /* 7 */ "..........." + /* 8 */ "..........." + /* 9 */ "..........." + /* 10 */ ".i.......i." + /* 11 */ "i.i.....i.i" + /* 12 */ ".i.......i.", // Connectors: "-1: 10, 2, 6: 5\n" /* Type -1, direction X+ */, @@ -2195,33 +2213,33 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = // Level 1 /* z\x* 0123456 */ - /* 0 */ "bmmmmmm" - /* 1 */ "bmmmmmm" - /* 2 */ "bmmmmmm" - /* 3 */ "bmmmmmm" - /* 4 */ "bmmmmmm" - /* 5 */ "bmmmmmm" + /* 0 */ "bbbbbbb" + /* 1 */ "bbbbbbb" + /* 2 */ "bbbbbbb" + /* 3 */ "bbbabbb" + /* 4 */ "bbbbbbb" + /* 5 */ "bbbbbbb" /* 6 */ "bbbbbbb" // Level 2 /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "..c.c.." + /* 0 */ "mm...mm" + /* 1 */ "m.c...m" /* 2 */ ".dccdc." /* 3 */ "..cefc." /* 4 */ ".ccfgh." - /* 5 */ "..ccc.." - /* 6 */ "......." + /* 5 */ "m.ccc.m" + /* 6 */ "mm...mm" // Level 3 /* z\x* 0123456 */ - /* 0 */ "......." + /* 0 */ "m.....m" /* 1 */ "......." /* 2 */ "......." /* 3 */ "...e..." /* 4 */ "......." /* 5 */ "......." - /* 6 */ "......." + /* 6 */ "m.....m" // Level 4 /* z\x* 0123456 */ diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp index 714a66559..4613f76e2 100644 --- a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp +++ b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp @@ -356,8 +356,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "e: 8: 0\n" /* water */ "f: 50: 5\n" /* torch */ "g: 59: 7\n" /* crops */ - "h: 59: 0\n" /* crops */ - "i: 59: 1\n" /* crops */ + "h: 59: 3\n" /* crops */ + "i: 59: 5\n" /* crops */ "m: 19: 0\n" /* sponge */, // Block data: @@ -368,7 +368,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 1 */ "aaaaaaaaaaaaaaa" /* 2 */ "aaaaaaaaaaaaaaa" /* 3 */ "aaaaaaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaaaaaa" + /* 4 */ "aaaaaaabaaaaaaa" /* 5 */ "aaaaaaabaaaaaaa" /* 6 */ "aaaaaaabaaaaaaa" /* 7 */ "aaaaaaabaaaaaaa" @@ -405,12 +405,12 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* * 012345678901234 */ /* 0 */ "f.....f.f.....f" /* 1 */ ".gg.gg...gg.gg." - /* 2 */ ".gh.hg...gg.gg." - /* 3 */ ".gh.ih...gg.gg." - /* 4 */ ".gg.hg...gg.gg." - /* 5 */ ".gg.hg...gg.gg." - /* 6 */ ".ig.hg...gg.gg." - /* 7 */ ".hg.gh...gg.gg." + /* 2 */ ".gg.hg...gg.gg." + /* 3 */ ".gg.gi...gg.gg." + /* 4 */ ".gg.gg...gg.gg." + /* 5 */ ".gg.gg...gg.gg." + /* 6 */ ".gg.gg...gg.gg." + /* 7 */ ".gg.gg...gg.gg." /* 8 */ "f.....f.f.....f" // Level 4 @@ -3603,8 +3603,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // Block definitions: ".: 0: 0\n" /* air */ - "a: 2: 0\n" /* grass */ - "b: 3: 0\n" /* dirt */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ "c: 4: 0\n" /* cobblestone */ "d: 67: 0\n" /* stairs */ "e: 67: 2\n" /* stairs */ @@ -3629,19 +3629,19 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // Level 0 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "aaaabbbaaaa" - /* 1 */ "abbbbbbbbba" - /* 2 */ "abbbbbbbbba" - /* 3 */ "abbbbbbbbba" - /* 4 */ "abbbbbbbbba" - /* 5 */ "abbbbbbbbba" - /* 6 */ "abbbbbbbbba" - /* 7 */ "abbbbbbbbba" - /* 8 */ "aabbbbbbbaa" - /* 9 */ "aabbbbbbbaa" - /* 10 */ "aabbbbbbbaa" - /* 11 */ "aabbbbbbbaa" - /* 12 */ "aabbbbbbbaa" + /* 0 */ "aaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaa" + /* 4 */ "aaaaaaaaaab" + /* 5 */ "baaaaaaaaab" + /* 6 */ "aaaaaaaaaaa" + /* 7 */ "baaaaaaaaaa" + /* 8 */ "baaaaaaaaaa" + /* 9 */ "baaaaaaaaab" + /* 10 */ "aaaaaaaaaaa" + /* 11 */ "aaaaaaaaaba" + /* 12 */ "aaaaaaaaaba" // Level 1 /* z\x* 1 */ @@ -3654,11 +3654,11 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 5 */ "mcccccccccm" /* 6 */ "mcccccccccm" /* 7 */ "mcccccccccm" - /* 8 */ "mmbbbbbbbmm" - /* 9 */ "mmbbbbbbbmm" - /* 10 */ "mmbbbbbbbmm" - /* 11 */ "mmbbbbbbbmm" - /* 12 */ "mmbbbbbbbmm" + /* 8 */ "mmaaaaaaamm" + /* 9 */ "mmaaaaaaamm" + /* 10 */ "mmaaaaaaamm" + /* 11 */ "mmaaaaaaamm" + /* 12 */ "mmaaaaaaamm" // Level 2 /* z\x* 1 */ @@ -3671,11 +3671,11 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 5 */ ".cggggcccc." /* 6 */ ".cggggcccc." /* 7 */ ".ccccccccc." - /* 8 */ "..aaaaaaa.." - /* 9 */ "..aaaaaaa.." - /* 10 */ "..aaaaaaa.." - /* 11 */ "..aaaaaaa.." - /* 12 */ "..aaaaaaa.." + /* 8 */ "..bbbbbbb.." + /* 9 */ "mmbbbbbbbmm" + /* 10 */ "mmbbbbbbbmm" + /* 11 */ "mmbbbbbbbmm" + /* 12 */ "mmbbbbbbbmm" // Level 3 /* z\x* 1 */ @@ -3689,10 +3689,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ ".i.......i." /* 7 */ ".hiiijiiih." /* 8 */ "..l.....l.." - /* 9 */ "..l.....l.." - /* 10 */ "..l.....l.." - /* 11 */ "..l.....l.." - /* 12 */ "..lllllll.." + /* 9 */ "mml.....lmm" + /* 10 */ "mml.....lmm" + /* 11 */ "mml.....lmm" + /* 12 */ "mmlllllllmm" // Level 4 /* z\x* 1 */ @@ -3706,10 +3706,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ ".o.......o." /* 7 */ ".hooipiooh." /* 8 */ "..........." - /* 9 */ "..........." - /* 10 */ "..........." - /* 11 */ "..........." - /* 12 */ "..........." + /* 9 */ "mm.......mm" + /* 10 */ "mm.......mm" + /* 11 */ "mm.......mm" + /* 12 */ "mm.......mm" // Level 5 /* z\x* 1 */ @@ -3723,10 +3723,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ ".i.......i." /* 7 */ "uiiiiiiiiiu" /* 8 */ "kkkkkkkkkkk" - /* 9 */ "..........." - /* 10 */ "..........." - /* 11 */ "..........." - /* 12 */ "..........." + /* 9 */ "mm.......mm" + /* 10 */ "mm.......mm" + /* 11 */ "mm.......mm" + /* 12 */ "mm.......mm" // Level 6 /* z\x* 1 */ @@ -3740,10 +3740,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ "uiiiiiiiiiu" /* 7 */ "kkkkkkkkkkk" /* 8 */ "..........." - /* 9 */ "..........." - /* 10 */ "..........." - /* 11 */ "..........." - /* 12 */ "..........." + /* 9 */ "mm.......mm" + /* 10 */ "mm.......mm" + /* 11 */ "mm.......mm" + /* 12 */ "mm.......mm" // Level 7 /* z\x* 1 */ @@ -3757,10 +3757,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ "kkkkkkkkkkk" /* 7 */ "..........." /* 8 */ "..........." - /* 9 */ "..........." - /* 10 */ "..........." - /* 11 */ "..........." - /* 12 */ "..........." + /* 9 */ "mm.......mm" + /* 10 */ "mm.......mm" + /* 11 */ "mm.......mm" + /* 12 */ "mm.......mm" // Level 8 /* z\x* 1 */ @@ -3774,10 +3774,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ "..........." /* 7 */ "..........." /* 8 */ "..........." - /* 9 */ "..........." - /* 10 */ "..........." - /* 11 */ "..........." - /* 12 */ "...........", + /* 9 */ "mm.......mm" + /* 10 */ "mm.......mm" + /* 11 */ "mm.......mm" + /* 12 */ "mm.......mm", // Connectors: "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */, @@ -4237,30 +4237,29 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // Block definitions: ".: 0: 0\n" /* air */ "a: 4: 0\n" /* cobblestone */ - "b: 2: 0\n" /* grass */ - "c: 67: 0\n" /* stairs */ - "d: 67: 2\n" /* stairs */ - "e: 67: 1\n" /* stairs */ - "f: 5: 0\n" /* wood */ - "g: 67: 3\n" /* stairs */ - "h: 17: 0\n" /* tree */ - "i: 64: 7\n" /* wooddoorblock */ - "j: 64: 5\n" /* wooddoorblock */ - "k:102: 0\n" /* glasspane */ - "l: 64:12\n" /* wooddoorblock */ + "b: 67: 0\n" /* stairs */ + "c: 67: 2\n" /* stairs */ + "d: 67: 1\n" /* stairs */ + "e: 5: 0\n" /* wood */ + "f: 67: 3\n" /* stairs */ + "g: 17: 0\n" /* tree */ + "h: 64: 7\n" /* wooddoorblock */ + "i: 64: 5\n" /* wooddoorblock */ + "j:102: 0\n" /* glasspane */ + "k: 64:12\n" /* wooddoorblock */ + "l: 53: 2\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ - "n: 53: 2\n" /* woodstairs */ - "o: 53: 1\n" /* woodstairs */ - "p: 53: 7\n" /* woodstairs */ - "q: 53: 6\n" /* woodstairs */ - "r: 53: 3\n" /* woodstairs */ - "s: 53: 0\n" /* woodstairs */ - "t: 53: 5\n" /* woodstairs */ - "u: 53: 4\n" /* woodstairs */ - "v: 50: 3\n" /* torch */ - "w: 50: 2\n" /* torch */ - "x: 50: 4\n" /* torch */ - "y: 50: 1\n" /* torch */, + "n: 53: 1\n" /* woodstairs */ + "o: 53: 7\n" /* woodstairs */ + "p: 53: 6\n" /* woodstairs */ + "q: 53: 3\n" /* woodstairs */ + "r: 53: 0\n" /* woodstairs */ + "s: 53: 5\n" /* woodstairs */ + "t: 53: 4\n" /* woodstairs */ + "u: 50: 3\n" /* torch */ + "v: 50: 2\n" /* torch */ + "w: 50: 4\n" /* torch */ + "x: 50: 1\n" /* torch */, // Block data: // Level 0 @@ -4274,134 +4273,134 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 5 */ "maaaaaaaaaaaaaam" /* 6 */ "maaaaaaaaaaaaaam" /* 7 */ "maaaaaaaaaaaaaam" - /* 8 */ "bbbbbaaaaaaaaaam" - /* 9 */ "bbbbbbbbaaaaaaam" - /* 10 */ "bbbbbbbbaaaaaaam" - /* 11 */ "bbbbbbbbaaaaaaam" - /* 12 */ "bbbbbbbbaaaaaaam" - /* 13 */ "bbbbbbbbaaaaaaam" - /* 14 */ "bbbbbbbbaaaaaaam" - /* 15 */ "bbbbbbbbmmmmmmmm" + /* 8 */ "mmmmmaaaaaaaaaam" + /* 9 */ "mmmmmmmmaaaaaaam" + /* 10 */ "mmmmmmmmaaaaaaam" + /* 11 */ "mmmmmmmmaaaaaaam" + /* 12 */ "mmmmmmmmaaaaaaam" + /* 13 */ "mmmmmmmmaaaaaaam" + /* 14 */ "mmmmmmmmaaaaaaam" + /* 15 */ "mmmmmmmmmmmmmmmm" // Level 1 /* z\x* 111111 */ /* * 0123456789012345 */ - /* 0 */ "........cde....." + /* 0 */ "........bcd....." /* 1 */ ".aaaaaaaaaaaaaa." - /* 2 */ ".affffffffffffa." - /* 3 */ ".affffffffffffa." - /* 4 */ ".affffffffffffa." - /* 5 */ ".affffffffffffa." - /* 6 */ ".affffffffffffa." - /* 7 */ ".aaaaaaaafffffa." - /* 8 */ ".....cgeafffffa." - /* 9 */ "........afffffa." - /* 10 */ "........afffffa." - /* 11 */ "........afffffa." - /* 12 */ "........afffffa." - /* 13 */ "........afffffa." - /* 14 */ "........aaaaaaa." - /* 15 */ "................" + /* 2 */ ".aeeeeeeeeeeeea." + /* 3 */ ".aeeeeeeeeeeeea." + /* 4 */ ".aeeeeeeeeeeeea." + /* 5 */ ".aeeeeeeeeeeeea." + /* 6 */ ".aeeeeeeeeeeeea." + /* 7 */ ".aaaaaaaaeeeeea." + /* 8 */ ".....bfdaeeeeea." + /* 9 */ "mmmm....aeeeeea." + /* 10 */ "mmmmmmm.aeeeeea." + /* 11 */ "mmmmmmm.aeeeeea." + /* 12 */ "mmmmmmm.aeeeeea." + /* 13 */ "mmmmmmm.aeeeeea." + /* 14 */ "mmmmmmm.aaaaaaa." + /* 15 */ "mmmmmmm........." // Level 2 /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "................" - /* 1 */ ".hffffffhihfffh." - /* 2 */ ".f............f." - /* 3 */ ".f............f." - /* 4 */ ".f............f." - /* 5 */ ".f............f." - /* 6 */ ".f............f." - /* 7 */ ".hffffjfh.....f." - /* 8 */ "........f.....f." - /* 9 */ "........f.....f." - /* 10 */ "........f.....f." - /* 11 */ "........f.....f." - /* 12 */ "........f.....f." - /* 13 */ "........f.....f." - /* 14 */ "........hfffffh." - /* 15 */ "................" + /* 1 */ ".geeeeeeghgeeeg." + /* 2 */ ".e............e." + /* 3 */ ".e............e." + /* 4 */ ".e............e." + /* 5 */ ".e............e." + /* 6 */ ".e............e." + /* 7 */ ".geeeeieg.....e." + /* 8 */ "........e.....e." + /* 9 */ "mmmm....e.....e." + /* 10 */ "mmmmmmm.e.....e." + /* 11 */ "mmmmmmm.e.....e." + /* 12 */ "mmmmmmm.e.....e." + /* 13 */ "mmmmmmm.e.....e." + /* 14 */ "mmmmmmm.geeeeeg." + /* 15 */ "mmmmmmm........." // Level 3 /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "................" - /* 1 */ ".hfkkfkkhlhkkfh." - /* 2 */ ".k............f." - /* 3 */ ".k............k." - /* 4 */ ".k............k." - /* 5 */ ".k............f." - /* 6 */ ".k............k." - /* 7 */ ".hfkkflfh.....k." - /* 8 */ "........f.....f." - /* 9 */ "........k.....k." - /* 10 */ "........k.....k." - /* 11 */ "........f.....f." - /* 12 */ "........k.....k." - /* 13 */ "........k.....k." - /* 14 */ "........hkkkkkh." - /* 15 */ "................" + /* 1 */ ".gejjejjgkgjjeg." + /* 2 */ ".j............e." + /* 3 */ ".j............j." + /* 4 */ ".j............j." + /* 5 */ ".j............e." + /* 6 */ ".j............j." + /* 7 */ ".gejjekeg.....j." + /* 8 */ "........e.....e." + /* 9 */ "mmmm....j.....j." + /* 10 */ "mmmmmmm.j.....j." + /* 11 */ "mmmmmmm.e.....e." + /* 12 */ "mmmmmmm.j.....j." + /* 13 */ "mmmmmmm.j.....j." + /* 14 */ "mmmmmmm.gjjjjjg." + /* 15 */ "mmmmmmm........." // Level 4 /* z\x* 111111 */ /* * 0123456789012345 */ - /* 0 */ "nnnnnnnnnnnnnnno" - /* 1 */ "phffffffhfhfffho" - /* 2 */ ".f............fo" - /* 3 */ ".f............fo" - /* 4 */ ".f............fo" - /* 5 */ ".f............fo" - /* 6 */ ".f............fo" - /* 7 */ "qhffffffh.....fo" - /* 8 */ "rrrrrrrsf.....fo" - /* 9 */ ".......sf.....fo" - /* 10 */ ".......sf.....fo" - /* 11 */ ".......sf.....fo" - /* 12 */ ".......sf.....fo" - /* 13 */ ".......sf.....fo" - /* 14 */ ".......shfffffho" - /* 15 */ ".......st.....uo" + /* 0 */ "llllllllllllllln" + /* 1 */ "ogeeeeeegegeeegn" + /* 2 */ ".e............en" + /* 3 */ ".e............en" + /* 4 */ ".e............en" + /* 5 */ ".e............en" + /* 6 */ ".e............en" + /* 7 */ "pgeeeeeeg.....en" + /* 8 */ "qqqqqqqre.....en" + /* 9 */ "mmmm...re.....en" + /* 10 */ "mmmmmmmre.....en" + /* 11 */ "mmmmmmmre.....en" + /* 12 */ "mmmmmmmre.....en" + /* 13 */ "mmmmmmmre.....en" + /* 14 */ "mmmmmmmrgeeeeegn" + /* 15 */ "mmmmmmmrs.....tn" // Level 5 /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "................" - /* 1 */ "nnnnnnnnnnnnnnn." - /* 2 */ "pfffffffffffffo." - /* 3 */ ".f.........v.fo." - /* 4 */ ".f..........wfo." - /* 5 */ ".f......x....fo." - /* 6 */ "qfffffffff...fo." - /* 7 */ "rrrrrrrrsfy..fo." - /* 8 */ "........sf...fo." - /* 9 */ "........sf...fo." - /* 10 */ "........sf...fo." - /* 11 */ "........sf...fo." - /* 12 */ "........sf...fo." - /* 13 */ "........sf...fo." - /* 14 */ "........sfffffo." - /* 15 */ "........st...uo." + /* 1 */ "lllllllllllllll." + /* 2 */ "oeeeeeeeeeeeeen." + /* 3 */ ".e.........u.en." + /* 4 */ ".e..........ven." + /* 5 */ ".e......w....en." + /* 6 */ "peeeeeeeee...en." + /* 7 */ "qqqqqqqqrex..en." + /* 8 */ "........re...en." + /* 9 */ "mmmm....re...en." + /* 10 */ "mmmmmmm.re...en." + /* 11 */ "mmmmmmm.re...en." + /* 12 */ "mmmmmmm.re...en." + /* 13 */ "mmmmmmm.re...en." + /* 14 */ "mmmmmmm.reeeeen." + /* 15 */ "mmmmmmm.rs...tn." // Level 6 /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "................" /* 1 */ "................" - /* 2 */ "nnnnnnnnnnnnno.." - /* 3 */ "pffffffffffffo.." - /* 4 */ ".fy.........fo.." - /* 5 */ "qffffffffff.fo.." - /* 6 */ "rrrrrrrrrsf.fo.." - /* 7 */ ".........sf.fo.." - /* 8 */ ".........sf.fo.." - /* 9 */ ".........sf.fo.." - /* 10 */ ".........sf.fo.." - /* 11 */ ".........sf.fo.." - /* 12 */ ".........sf.fo.." - /* 13 */ ".........sfxfo.." - /* 14 */ ".........sfffo.." - /* 15 */ ".........st.uo.." + /* 2 */ "llllllllllllln.." + /* 3 */ "oeeeeeeeeeeeen.." + /* 4 */ ".ex.........en.." + /* 5 */ "peeeeeeeeee.en.." + /* 6 */ "qqqqqqqqqre.en.." + /* 7 */ ".........re.en.." + /* 8 */ ".........re.en.." + /* 9 */ "mmmm.....re.en.." + /* 10 */ "mmmmmmm..re.en.." + /* 11 */ "mmmmmmm..re.en.." + /* 12 */ "mmmmmmm..re.en.." + /* 13 */ "mmmmmmm..rewen.." + /* 14 */ "mmmmmmm..reeen.." + /* 15 */ "mmmmmmm..rs.tn.." // Level 7 /* z\x* 111111 */ @@ -4409,19 +4408,19 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 0 */ "................" /* 1 */ "................" /* 2 */ "................" - /* 3 */ "nnnnnnnnnnnnn..." - /* 4 */ "ffffffffffffo..." - /* 5 */ "rrrrrrrrrrsfo..." - /* 6 */ "..........sfo..." - /* 7 */ "..........sfo..." - /* 8 */ "..........sfo..." - /* 9 */ "..........sfo..." - /* 10 */ "..........sfo..." - /* 11 */ "..........sfo..." - /* 12 */ "..........sfo..." - /* 13 */ "..........sfo..." - /* 14 */ "..........sfo..." - /* 15 */ "..........sfo...", + /* 3 */ "lllllllllllll..." + /* 4 */ "eeeeeeeeeeeen..." + /* 5 */ "qqqqqqqqqqren..." + /* 6 */ "..........ren..." + /* 7 */ "..........ren..." + /* 8 */ "..........ren..." + /* 9 */ "mmmm......ren..." + /* 10 */ "mmmmmmm...ren..." + /* 11 */ "mmmmmmm...ren..." + /* 12 */ "mmmmmmm...ren..." + /* 13 */ "mmmmmmm...ren..." + /* 14 */ "mmmmmmm...ren..." + /* 15 */ "mmmmmmm...ren...", // Connectors: "-1: 9, 1, 0: 2\n" /* Type -1, direction Z- */, -- cgit v1.2.3 From 5b148c30f71874d62b55a5134fd4c7897ebe106a Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Tue, 22 Jul 2014 14:44:26 +0200 Subject: Extreme Hills M variant only spawn with grass and stone Removed gravel. --- src/Generating/DistortedHeightmap.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Generating') diff --git a/src/Generating/DistortedHeightmap.cpp b/src/Generating/DistortedHeightmap.cpp index 74d30c327..1337896ab 100644 --- a/src/Generating/DistortedHeightmap.cpp +++ b/src/Generating/DistortedHeightmap.cpp @@ -759,7 +759,7 @@ void cDistortedHeightmap::ComposeColumn(cChunkDesc & a_ChunkDesc, int a_RelX, in NOISE_DATATYPE NoiseX = ((NOISE_DATATYPE)(m_CurChunkX * cChunkDef::Width + a_RelX)) / FrequencyX; NOISE_DATATYPE NoiseY = ((NOISE_DATATYPE)(m_CurChunkZ * cChunkDef::Width + a_RelZ)) / FrequencyZ; NOISE_DATATYPE Val = m_OceanFloorSelect.CubicNoise2D(NoiseX, NoiseY); - const sBlockInfo * Pattern = (Val < -0.9) ? patStone.Get() : ((Val > 0) ? patGravel.Get() : patGrass.Get()); + const sBlockInfo * Pattern = (Val < 0.0) ? patStone.Get() : patGrass.Get(); FillColumnPattern(a_ChunkDesc, a_RelX, a_RelZ, Pattern); return; } -- cgit v1.2.3 From 9080f14dc2a1010d4169ba690c4bda8da1188ae9 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Wed, 23 Jul 2014 11:02:42 +0200 Subject: Fixed possible crash in the NetherClumpFoliage finisher. --- src/Generating/FinishGen.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index 444af5022..c67cc574e 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -125,6 +125,11 @@ void cFinishGenNetherClumpFoliage::TryPlaceClump(cChunkDesc & a_ChunkDesc, int a float zz = (float) a_ChunkDesc.GetChunkZ() * cChunkDef::Width + z; for (int y = a_RelY - 2; y < a_RelY + 2; y++) { + if ((y < 1) || (y > cChunkDef::Height)) + { + continue; + } + if (a_ChunkDesc.GetBlockType(x, y, z) != E_BLOCK_AIR) // Don't replace non air blocks. { continue; -- cgit v1.2.3 From 7e38c123fcce1956f04aec2a57ee86c882e7840a Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Wed, 23 Jul 2014 11:23:35 +0200 Subject: TallGrass: Less grass on mountains. --- src/Generating/FinishGen.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.h b/src/Generating/FinishGen.h index a8a0e1e3b..810bb4a91 100644 --- a/src/Generating/FinishGen.h +++ b/src/Generating/FinishGen.h @@ -94,6 +94,17 @@ protected: { return 70; } + + case biExtremeHillsEdge: + case biExtremeHillsPlus: + case biExtremeHills: + case biExtremeHillsPlusM: + case biExtremeHillsM: + case biIceMountains: + { + return 3; + } + default: { return 20; -- cgit v1.2.3 From 4191be7ddba820af4ed0c505a8d62416c2b7a8b4 Mon Sep 17 00:00:00 2001 From: archshift Date: Tue, 22 Jul 2014 15:36:13 -0700 Subject: Removed redundant semicolons and re-added warning --- src/Generating/ChunkGenerator.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Generating') diff --git a/src/Generating/ChunkGenerator.h b/src/Generating/ChunkGenerator.h index 9b2d9eb3c..88d71f3f9 100644 --- a/src/Generating/ChunkGenerator.h +++ b/src/Generating/ChunkGenerator.h @@ -44,7 +44,7 @@ public: { public: cGenerator(cChunkGenerator & a_ChunkGenerator); - virtual ~cGenerator() {} ; // Force a virtual destructor + virtual ~cGenerator() {} // Force a virtual destructor /// Called to initialize the generator on server startup. virtual void Initialize(cIniFile & a_IniFile); -- cgit v1.2.3 From 0f298c8b84756cf5bc055ff82d43ffa9ea8d577b Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Fri, 25 Jul 2014 14:23:36 +0200 Subject: Speed up the NetherClumpFoliage finisher. Using IntNoiseXX instead of CubicNoiseXX. --- src/Generating/FinishGen.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index c67cc574e..b2585bfee 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -48,8 +48,8 @@ void cFinishGenNetherClumpFoliage::GenFinish(cChunkDesc & a_ChunkDesc) double ChunkX = a_ChunkDesc.GetChunkX() + 0.1; // We can't devide through 0 so lets add 0.1 to all the chunk coordinates. double ChunkZ = a_ChunkDesc.GetChunkZ() + 0.1; - NOISE_DATATYPE Val1 = m_Noise.CubicNoise2D((float) (ChunkX * ChunkZ * 0.01f), (float) (ChunkZ / ChunkX * 0.01f)); - NOISE_DATATYPE Val2 = m_Noise.CubicNoise2D((float) (ChunkX / ChunkZ / 0.01f), (float) (ChunkZ * ChunkX / 0.01f)); + NOISE_DATATYPE Val1 = m_Noise.IntNoise2D((int) (ChunkX * ChunkZ * 0.01f), (int) (ChunkZ / ChunkX * 0.01f)); + NOISE_DATATYPE Val2 = m_Noise.IntNoise2D((int) (ChunkX / ChunkZ / 0.01f), (int) (ChunkZ * ChunkX / 0.01f)); if (Val1 < 0) { @@ -88,12 +88,14 @@ void cFinishGenNetherClumpFoliage::GenFinish(cChunkDesc & a_ChunkDesc) { continue; } + if (!cBlockInfo::IsSolid(a_ChunkDesc.GetBlockType(PosX, y - 1, PosZ))) // Only place on solid blocks { continue; } - NOISE_DATATYPE BlockType = m_Noise.CubicNoise1D((float) (ChunkX * ChunkZ) / (y * 0.1f)); + // Choose what block to use. + NOISE_DATATYPE BlockType = m_Noise.IntNoise3D((int) ChunkX, y, (int) ChunkZ); if (BlockType < -0.7) { TryPlaceClump(a_ChunkDesc, PosX, y, PosZ, E_BLOCK_BROWN_MUSHROOM); @@ -119,10 +121,10 @@ void cFinishGenNetherClumpFoliage::TryPlaceClump(cChunkDesc & a_ChunkDesc, int a for (int x = a_RelX - 4; x < a_RelX + 4; x++) { - float xx = (float) a_ChunkDesc.GetChunkX() * cChunkDef::Width + x; + int xx = a_ChunkDesc.GetChunkX() * cChunkDef::Width + x; for (int z = a_RelZ - 4; z < a_RelZ + 4; z++) { - float zz = (float) a_ChunkDesc.GetChunkZ() * cChunkDef::Width + z; + int zz = a_ChunkDesc.GetChunkZ() * cChunkDef::Width + z; for (int y = a_RelY - 2; y < a_RelY + 2; y++) { if ((y < 1) || (y > cChunkDef::Height)) @@ -149,9 +151,8 @@ void cFinishGenNetherClumpFoliage::TryPlaceClump(cChunkDesc & a_ChunkDesc, int a } } - - NOISE_DATATYPE Val = m_Noise.CubicNoise2D(xx, zz); - if (Val < -0.70) + NOISE_DATATYPE Val = m_Noise.IntNoise2D(xx, zz); + if (Val < -0.5) { a_ChunkDesc.SetBlockType(x, y, z, a_Block); } -- cgit v1.2.3 From a39e19e94a1086cc2c5974cecc5d383cd26b3d12 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Fri, 25 Jul 2014 21:01:40 +0200 Subject: Tweaks to NetherClumpFoliage Simplefied the way NetherClupFoliage creates the X and Z coordinate. --- src/Generating/FinishGen.cpp | 40 ++++++---------------------------------- 1 file changed, 6 insertions(+), 34 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index b2585bfee..4c40270e8 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -45,42 +45,14 @@ static inline bool IsWater(BLOCKTYPE a_BlockType) void cFinishGenNetherClumpFoliage::GenFinish(cChunkDesc & a_ChunkDesc) { - double ChunkX = a_ChunkDesc.GetChunkX() + 0.1; // We can't devide through 0 so lets add 0.1 to all the chunk coordinates. - double ChunkZ = a_ChunkDesc.GetChunkZ() + 0.1; - - NOISE_DATATYPE Val1 = m_Noise.IntNoise2D((int) (ChunkX * ChunkZ * 0.01f), (int) (ChunkZ / ChunkX * 0.01f)); - NOISE_DATATYPE Val2 = m_Noise.IntNoise2D((int) (ChunkX / ChunkZ / 0.01f), (int) (ChunkZ * ChunkX / 0.01f)); + int ChunkX = a_ChunkDesc.GetChunkX(); + int ChunkZ = a_ChunkDesc.GetChunkZ(); - if (Val1 < 0) - { - Val1 = -Val1; - } - - if (Val2 < 0) - { - Val2 = -Val2; - } + int Val1 = m_Noise.IntNoise2DInt(ChunkX ^ ChunkZ, ChunkZ + ChunkX); + int Val2 = m_Noise.IntNoise2DInt(ChunkZ ^ ChunkX, ChunkZ - ChunkX); - int PosX, PosZ; - // Calculate PosX - if (Val1 <= 1) - { - PosX = (int) floor(Val1 * 16); - } - else - { - PosX = (int) floor(16 / Val1); - } - - // Calculate PosZ - if (Val2 <= 1) - { - PosZ = (int) floor(Val2 * 16); - } - else - { - PosZ = (int) floor(16 / Val2); - } + int PosX = Val1 % 16; + int PosZ = Val2 % 16; for (int y = 1; y < cChunkDef::Height; y++) { -- cgit v1.2.3