From c18fe8aa45fa731a134c454dd16e1111742ca936 Mon Sep 17 00:00:00 2001 From: 12xx12 <44411062+12xx12@users.noreply.github.com> Date: Fri, 18 Sep 2020 00:20:50 +0200 Subject: Adding Generator For Single Piece Structures (#4830) * the beginning of a magnificent work - added basic files and classes without functionality * fixed checkstyle * added imports * moved imports * - Adding SinglePieceStructureGen - Adding a cPrefabChestStructure to generate Chests with contents - Added the options and calls to the ComposableGenerator * moved Globals to .h file * removed the chest thingy from the code (for now) * Update SinglePieceStructureGen.cpp * readded whitespace * renamed to SinglePieceStructuresGen for consistency added new classes to test * fixed small things (mostly style and cleanup) removed loottables * added small changes suggested by madmaxoft * small change to documentation * added check for allowed biomes * check only the biome of the origin position * fixed error on IsBiomeAllowed * added new cubesets * updated structures for with sponging * updated biome names * updated metadata to prevent crashing removed debug output * updated structures with sponging * added sponging to deserterWell to make it disappear in sand * small change in meta * rename DesertTemple -> DesertPyramid * minor style changes Co-authored-by: 12xx12 <12xx12100@gmail.com> Co-authored-by: Alexander Harkness --- .../SinglePieceStructures/DesertPyramid.cubeset | 979 +++++++++++++++++++++ .../SinglePieceStructures/DesertWell.cubeset | 137 +++ .../SinglePieceStructures/JungleTemple.cubeset | 350 ++++++++ .../Prefabs/SinglePieceStructures/WitchHut.cubeset | 147 ++++ src/Generating/CMakeLists.txt | 2 + src/Generating/ComposableGenerator.cpp | 16 + src/Generating/SinglePieceStructuresGen.cpp | 205 +++++ src/Generating/SinglePieceStructuresGen.h | 52 ++ tests/Generating/CMakeLists.txt | 2 + 9 files changed, 1890 insertions(+) create mode 100644 Server/Prefabs/SinglePieceStructures/DesertPyramid.cubeset create mode 100644 Server/Prefabs/SinglePieceStructures/DesertWell.cubeset create mode 100644 Server/Prefabs/SinglePieceStructures/JungleTemple.cubeset create mode 100644 Server/Prefabs/SinglePieceStructures/WitchHut.cubeset create mode 100644 src/Generating/SinglePieceStructuresGen.cpp create mode 100644 src/Generating/SinglePieceStructuresGen.h diff --git a/Server/Prefabs/SinglePieceStructures/DesertPyramid.cubeset b/Server/Prefabs/SinglePieceStructures/DesertPyramid.cubeset new file mode 100644 index 000000000..c8af069f3 --- /dev/null +++ b/Server/Prefabs/SinglePieceStructures/DesertPyramid.cubeset @@ -0,0 +1,979 @@ + +-- DesertPyramid.cubeset + +-- Defines the prefabs in the group DesertPyramid + +-- NOTE: This file has been generated automatically by GalExport! +-- Any manual changes will be overwritten by the next automatic export! + + + + +Cubeset = +{ + Metadata = + { + CubesetFormatVersion = 1, + ExportDate = "2020-08-27 10:42:17", + ["AllowedBiomes"] = "Desert, DesertM, DesertHills", + ["GridSizeX"] = "500", + ["GridSizeZ"] = "500", + ["IntendedUse"] = "SinglePieceStructures", + ["MaxOffsetX"] = "100", + ["MaxOffsetZ"] = "100", + ["SeedOffset"] = "47260503", + }, + + Pieces = + { + { + OriginData = + { + ExportName = "DesertPyramid", + Name = "DesertPyramid", + GalleryName = "Desert", + GalleryIndex = "222", + ID = "1706", + CreatorName = "12xx12", + }, + Size = + { + x = 15, + y = 23, + z = 15, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 14, + MaxY = 22, + MaxZ = 14, + }, + StructureBox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 14, + MaxY = 22, + MaxZ = 14, + }, + Connectors = + { + }, + Metadata = + { + ["AddWeightIfSame"] = "0", + ["AllowedRotations"] = "7", + ["DefaultWeight"] = "400", + ["DepthWeight"] = "", + ["ExpandFloorStrategy"] = "RepeatBottomTillNonAir", + ["IsStarting"] = "1", + ["MergeStrategy"] = "msSpongePrint", + ["ShouldExpandFloor"] = "1", + ["VerticalStrategy"] = "Fixed|51", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 46: 0", -- tnt + "b: 24: 0", -- sandstone + "c: 24: 2", -- sandstone + "d: 24: 1", -- sandstone + "e: 54: 3", -- chest + "f: 54: 5", -- chest + "g: 70: 0", -- stonepressureplate + "h: 54: 4", -- chest + "i: 54: 2", -- chest + "j:128: 7", -- sandstonestairs + "k:128: 5", -- sandstonestairs + "l:128: 4", -- sandstonestairs + "m: 19: 0", -- sponge + "n:128: 6", -- sandstonestairs + "o:159: 1", -- whiteterracotta + "p:159:11", -- whiteterracotta + "q:128: 3", -- sandstonestairs + "r:128: 2", -- sandstonestairs + "s:128: 0", -- sandstonestairs + "t:128: 1", -- sandstonestairs + "u: 44: 9", -- stone_slab + "v: 44: 1", -- stone_slab + }, + BlockData = + { + -- Level 0 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmmmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmmmmmmmmm", -- 4 + "mmmmmmmmmmmmmmm", -- 5 + "mmmmmmaaammmmmm", -- 6 + "mmmmmmaaammmmmm", -- 7 + "mmmmmmaaammmmmm", -- 8 + "mmmmmmmmmmmmmmm", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + -- Level 1 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmmmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmmmmmmmmm", -- 4 + "mmmmmmmbmmmmmmm", -- 5 + "mmmmmmcccmmmmmm", -- 6 + "mmmmmbcbcbmmmmm", -- 7 + "mmmmmmcccmmmmmm", -- 8 + "mmmmmmmbmmmmmmm", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + -- Level 2 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmmmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmbmmmmmmm", -- 4 + "mmmmmmdedmmmmmm", -- 5 + "mmmmmd...dmmmmm", -- 6 + "mmmmbf.g.hbmmmm", -- 7 + "mmmmmd...dmmmmm", -- 8 + "mmmmmmdidmmmmmm", -- 9 + "mmmmmmmbmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + -- Level 3 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmmmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmmmmmmmmm", -- 4 + "mmmmmmcjcmmmmmm", -- 5 + "mmmmmc...cmmmmm", -- 6 + "mmmmmk...lmmmmm", -- 7 + "mmmmmc...cmmmmm", -- 8 + "mmmmmmcncmmmmmm", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + -- Level 4 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmmmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmmmmmmmmm", -- 4 + "mmmmmmdcdmmmmmm", -- 5 + "mmmmmd...dmmmmm", -- 6 + "mmmmmc...cmmmmm", -- 7 + "mmmmmd...dmmmmm", -- 8 + "mmmmmmdcdmmmmmm", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + -- Level 5 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmmmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmmmmmmmmm", -- 4 + "mmmmmmcccmmmmmm", -- 5 + "mmmmmc...cmmmmm", -- 6 + "mmmmmc...cmmmmm", -- 7 + "mmmmmc...cmmmmm", -- 8 + "mmmmmmcccmmmmmm", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + -- Level 6 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmmmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmmmmmmmmm", -- 4 + "mmmmmmcdcmmmmmm", -- 5 + "mmmmmc...cmmmmm", -- 6 + "mmmmmd...dmmmmm", -- 7 + "mmmmmc...cmmmmm", -- 8 + "mmmmmmcdcmmmmmm", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + -- Level 7 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmmmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmmmmmmmmm", -- 4 + "mmmmmmdcdmmmmmm", -- 5 + "mmmmmd...dmmmmm", -- 6 + "mmmmmc...cmmmmm", -- 7 + "mmmmmd...dmmmmm", -- 8 + "mmmmmmdcdmmmmmm", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + -- Level 8 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmmmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmmmmmmmmm", -- 4 + "mmmmmmbbbmmmmmm", -- 5 + "mmmmmb...bmmmmm", -- 6 + "mmmmmb...bmmmmm", -- 7 + "mmmmmb...bmmmmm", -- 8 + "mmmmmmbbbmmmmmm", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + -- Level 9 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmmmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmmmmmmmmm", -- 4 + "mmmmmmbbbmmmmmm", -- 5 + "mmmmmb...bmmmmm", -- 6 + "mmmmmb...bmmmmm", -- 7 + "mmmmmb...bmmmmm", -- 8 + "mmmmmmbbbmmmmmm", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + -- Level 10 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmmmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmmmmmmmmm", -- 4 + "mmmmmmbbbmmmmmm", -- 5 + "mmmmmb...bmmmmm", -- 6 + "mmmmmb...bmmmmm", -- 7 + "mmmmmb...bmmmmm", -- 8 + "mmmmmmbbbmmmmmm", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + -- Level 11 + "bbbbbbbbbbbbbbb", -- 0 + "bbbbbbbbbbbbbbb", -- 1 + "bbbbbbbbbbbbbbb", -- 2 + "bbbbbbbbbbbbbbb", -- 3 + "bbbbobobbbobbbb", -- 4 + "bbbbbobbbobbbbb", -- 5 + "bbbbbbobobbbbbb", -- 6 + "bbbbbbbpbbbbbbb", -- 7 + "bbbbbbobobbbbbb", -- 8 + "bbbbbobbbobbbbb", -- 9 + "bbbbobobbbobbbb", -- 10 + "bbbbbbbbbbbbbbb", -- 11 + "bbbbbbbbbbbbbbb", -- 12 + "bbbbbbbbbbbbbbb", -- 13 + "bbbbbbbbbbbbbbb", -- 14 + + -- Level 12 + "bbbbbbbbbbbbbbb", -- 0 + "b.........bbbbb", -- 1 + "b.........bq.bb", -- 2 + "b.........b..bb", -- 3 + "b....r.....b.bb", -- 4 + "b...sbt.......b", -- 5 + "b....q........b", -- 6 + "b..............", -- 7 + "b....r........b", -- 8 + "b...sbt.......b", -- 9 + "b....q.....b.bb", -- 10 + "b.........b..bb", -- 11 + "b.........br.bb", -- 12 + "b.........bbbbb", -- 13 + "bbbbbbbbbbbbbbb", -- 14 + + -- Level 13 + "bbbbbbbbbbbbbbb", -- 0 + "b.........b.sbb", -- 1 + "b.........b..bo", -- 2 + "b.........b..bb", -- 3 + "b..........b.bb", -- 4 + "b....b........b", -- 5 + "b.............b", -- 6 + "b..............", -- 7 + "b.............b", -- 8 + "b....b........b", -- 9 + "b..........b.bb", -- 10 + "b.........b..bb", -- 11 + "b.........b..bo", -- 12 + "b.........b.sbb", -- 13 + "bbbbbbbbbbbbbbb", -- 14 + + -- Level 14 + "mmmmmmmmmmbbbbb", -- 0 + "mbbbbbbbbbb...b", -- 1 + "mbu......ub..ro", -- 2 + "mb........b.ubb", -- 3 + "mb.........bbbb", -- 4 + "mb...b......ubv", -- 5 + "mb..........ubb", -- 6 + "mb...........ub", -- 7 + "mb..........ubb", -- 8 + "mb...b......ubv", -- 9 + "mb.........bbbb", -- 10 + "mb........b.ubb", -- 11 + "mbu......ub..qo", -- 12 + "mbbbbbbbbbb...b", -- 13 + "mmmmmmmmmmbbbbb", -- 14 + + -- Level 15 + "mmmmmmmmmmbbbbb", -- 0 + "mmmmmmmmmmb...b", -- 1 + "mmbbbbbbbbbb..o", -- 2 + "mmbbbbbbbbbbt.b", -- 3 + "mmbbbbbbbbbbbbb", -- 4 + "mmbbbbbbbbbbbmm", -- 5 + "mmbbbb...bbbbvm", -- 6 + "mmbbbb...bbbbbv", -- 7 + "mmbbbb...bbbbvm", -- 8 + "mmbbbbbbbbbbbmm", -- 9 + "mmbbbbbbbbbbbbb", -- 10 + "mmbbbbbbbbbbt.b", -- 11 + "mmbbbbbbbbbb..o", -- 12 + "mmmmmmmmmmb...b", -- 13 + "mmmmmmmmmmbbbbb", -- 14 + + -- Level 16 + "mmmmmmmmmmbbbbb", -- 0 + "mmmmmmmmmmb...b", -- 1 + "mmmmmmmmmm....o", -- 2 + "mmmbbbb.bbb...b", -- 3 + "mmmbu.....ubbbb", -- 4 + "mmmb.b.....bmmm", -- 5 + "mmmb.......bmmm", -- 6 + "mmmb.......bvmm", -- 7 + "mmmb.......bmmm", -- 8 + "mmmb.b.....bmmm", -- 9 + "mmmbu.....ubbbb", -- 10 + "mmmbbbb.bbb...b", -- 11 + "mmmmmmmmmm....o", -- 12 + "mmmmmmmmmmb...b", -- 13 + "mmmmmmmmmmbbbbb", -- 14 + + -- Level 17 + "mmmmmmmmmmbbbbb", -- 0 + "mmmmmmmmmmb...b", -- 1 + "mmmmmmmmmm....o", -- 2 + "mmmmmmbmbmb...b", -- 3 + "mmmmbbb.bbbbbbb", -- 4 + "mmmmbb....bmmmm", -- 5 + "mmmmb.....bmmmm", -- 6 + "mmmmb.....bmmmm", -- 7 + "mmmmb.....bmmmm", -- 8 + "mmmmbb....bmmmm", -- 9 + "mmmmbbb.bbbbbbb", -- 10 + "mmmmmmbmbmb...b", -- 11 + "mmmmmmmmmm....o", -- 12 + "mmmmmmmmmmb...b", -- 13 + "mmmmmmmmmmbbbbb", -- 14 + + -- Level 18 + "mmmmmmmmmmbbbbb", -- 0 + "mmmmmmmmmmb...o", -- 1 + "mmmmmmmmmmb...o", -- 2 + "mmmmmmmvmmb...o", -- 3 + "mmmmmmvbvmbbbbb", -- 4 + "mmmmmbbbbbmmmmm", -- 5 + "mmmmmbu.ubmmmmm", -- 6 + "mmmmmb...bmmmmm", -- 7 + "mmmmmbu.ubmmmmm", -- 8 + "mmmmmbbbbbmmmmm", -- 9 + "mmmmmmvbvmbbbbb", -- 10 + "mmmmmmmvmmb...o", -- 11 + "mmmmmmmmmmb...o", -- 12 + "mmmmmmmmmmb...o", -- 13 + "mmmmmmmmmmbbbbb", -- 14 + + -- Level 19 + "mmmmmmmmmmbbbbb", -- 0 + "mmmmmmmmmmb...b", -- 1 + "mmmmmmmmmmb...o", -- 2 + "mmmmmmmmmmb...b", -- 3 + "mmmmmmmmmmbbbbb", -- 4 + "mmmmmmmmmmmmmmm", -- 5 + "mmmmmmbbbmmmmmm", -- 6 + "mmmmmmbbbmmmmmm", -- 7 + "mmmmmmbbbmmmmmm", -- 8 + "mmmmmmmmmmmmmmm", -- 9 + "mmmmmmmmmmbbbbb", -- 10 + "mmmmmmmmmmb...b", -- 11 + "mmmmmmmmmmb...o", -- 12 + "mmmmmmmmmmb...b", -- 13 + "mmmmmmmmmmbbbbb", -- 14 + + -- Level 20 + "mmmmmmmmmmbbbbb", -- 0 + "mmmmmmmmmmb...b", -- 1 + "mmmmmmmmmmb...b", -- 2 + "mmmmmmmmmmb...b", -- 3 + "mmmmmmmmmmbbbbb", -- 4 + "mmmmmmmmmmmmmmm", -- 5 + "mmmmmmmmmmmmmmm", -- 6 + "mmmmmmmbmmmmmmm", -- 7 + "mmmmmmmmmmmmmmm", -- 8 + "mmmmmmmmmmmmmmm", -- 9 + "mmmmmmmmmmbbbbb", -- 10 + "mmmmmmmmmmb...b", -- 11 + "mmmmmmmmmmb...b", -- 12 + "mmmmmmmmmmb...b", -- 13 + "mmmmmmmmmmbbbbb", -- 14 + + -- Level 21 + "mmmmmmmmmmvrvrv", -- 0 + "mmmmmmmmmmsbbbt", -- 1 + "mmmmmmmmmmvbbbv", -- 2 + "mmmmmmmmmmsbbbt", -- 3 + "mmmmmmmmmmvqvqv", -- 4 + "mmmmmmmmmmmmmmm", -- 5 + "mmmmmmmmmmmmmmm", -- 6 + "mmmmmmmmmmmmmmm", -- 7 + "mmmmmmmmmmmmmmm", -- 8 + "mmmmmmmmmmmmmmm", -- 9 + "mmmmmmmmmmvrvrv", -- 10 + "mmmmmmmmmmsbbbt", -- 11 + "mmmmmmmmmmvbbbv", -- 12 + "mmmmmmmmmmsbbbt", -- 13 + "mmmmmmmmmmvqvqv", -- 14 + + -- Level 22 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmvmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmmmmmmmmm", -- 4 + "mmmmmmmmmmmmmmm", -- 5 + "mmmmmmmmmmmmmmm", -- 6 + "mmmmmmmmmmmmmmm", -- 7 + "mmmmmmmmmmmmmmm", -- 8 + "mmmmmmmmmmmmmmm", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmvmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + }, + }, -- DesertPyramid + + + + { + OriginData = + { + ExportName = "SandyDesertPyramid", + Name = "SandyDesertPyramid", + GalleryName = "Desert", + GalleryIndex = "223", + ID = "1707", + CreatorName = "12xx12", + }, + Size = + { + x = 15, + y = 23, + z = 15, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 14, + MaxY = 22, + MaxZ = 14, + }, + StructureBox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 14, + MaxY = 22, + MaxZ = 14, + }, + Connectors = + { + }, + Metadata = + { + ["AddWeightIfSame"] = "0", + ["AllowedRotations"] = "7", + ["DefaultWeight"] = "100", + ["DepthWeight"] = "", + ["ExpandFloorStrategy"] = "RepeatBottomTillNonAir", + ["IsStarting"] = "1", + ["MergeStrategy"] = "msSpongePrint", + ["MoveToGround"] = "0", + ["ShouldExpandFloor"] = "1", + ["VerticalStrategy"] = "Fixed|51", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 46: 0", -- tnt + "b: 24: 0", -- sandstone + "c: 24: 2", -- sandstone + "d: 54: 3", -- chest + "e: 54: 5", -- chest + "f: 70: 0", -- stonepressureplate + "g: 54: 4", -- chest + "h: 54: 2", -- chest + "i:128: 7", -- sandstonestairs + "j:128: 5", -- sandstonestairs + "k:128: 4", -- sandstonestairs + "l:128: 6", -- sandstonestairs + "m: 19: 0", -- sponge + "n: 24: 1", -- sandstone + "o:159: 1", -- whiteterracotta + "p:159:11", -- whiteterracotta + "q:128: 3", -- sandstonestairs + "r: 12: 0", -- sand + "s:128: 2", -- sandstonestairs + "t:128: 0", -- sandstonestairs + "u:128: 1", -- sandstonestairs + "v: 44: 9", -- stone_slab + "w: 44: 1", -- stone_slab + }, + BlockData = + { + -- Level 0 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmmmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmmmmmmmmm", -- 4 + "mmmmmmmmmmmmmmm", -- 5 + "mmmmmmaaammmmmm", -- 6 + "mmmmmmaaammmmmm", -- 7 + "mmmmmmaaammmmmm", -- 8 + "mmmmmmmmmmmmmmm", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + -- Level 1 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmmmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmmmmmmmmm", -- 4 + "mmmmmmmbmmmmmmm", -- 5 + "mmmmmmcccmmmmmm", -- 6 + "mmmmmbcbcbmmmmm", -- 7 + "mmmmmmcccmmmmmm", -- 8 + "mmmmmmmbmmmmmmm", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + -- Level 2 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmmmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmbmmmmmmm", -- 4 + "mmmmmmbdbmmmmmm", -- 5 + "mmmmmb...bmmmmm", -- 6 + "mmmmbe.f.gbmmmm", -- 7 + "mmmmmb...bmmmmm", -- 8 + "mmmmmmbhbmmmmmm", -- 9 + "mmmmmmmbmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + -- Level 3 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmmmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmmmmmmmmm", -- 4 + "mmmmmmbibmmmmmm", -- 5 + "mmmmmb...bmmmmm", -- 6 + "mmmmmj...kmmmmm", -- 7 + "mmmmmb...bmmmmm", -- 8 + "mmmmmmblbmmmmmm", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + -- Level 4 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmmmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmmmmmmmmm", -- 4 + "mmmmmmnbnmmmmmm", -- 5 + "mmmmmn...nmmmmm", -- 6 + "mmmmmb...bmmmmm", -- 7 + "mmmmmn...nmmmmm", -- 8 + "mmmmmmnbnmmmmmm", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + -- Level 5 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmmmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmmmmmmmmm", -- 4 + "mmmmmmcccmmmmmm", -- 5 + "mmmmmc...cmmmmm", -- 6 + "mmmmmc...cmmmmm", -- 7 + "mmmmmc...cmmmmm", -- 8 + "mmmmmmcccmmmmmm", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + -- Level 6 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmmmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmmmmmmmmm", -- 4 + "mmmmmmcncmmmmmm", -- 5 + "mmmmmc...cmmmmm", -- 6 + "mmmmmn...nmmmmm", -- 7 + "mmmmmc...cmmmmm", -- 8 + "mmmmmmcncmmmmmm", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + -- Level 7 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmmmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmmmmmmmmm", -- 4 + "mmmmmmncnmmmmmm", -- 5 + "mmmmmn...nmmmmm", -- 6 + "mmmmmc...cmmmmm", -- 7 + "mmmmmn...nmmmmm", -- 8 + "mmmmmmncnmmmmmm", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + -- Level 8 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmmmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmmmmmmmmm", -- 4 + "mmmmmmbbbmmmmmm", -- 5 + "mmmmmb...bmmmmm", -- 6 + "mmmmmb...bmmmmm", -- 7 + "mmmmmb...bmmmmm", -- 8 + "mmmmmmbbbmmmmmm", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + -- Level 9 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmmmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmmmmmmmmm", -- 4 + "mmmmmmbbbmmmmmm", -- 5 + "mmmmmb...bmmmmm", -- 6 + "mmmmmb...bmmmmm", -- 7 + "mmmmmb...bmmmmm", -- 8 + "mmmmmmbbbmmmmmm", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + -- Level 10 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmmmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmmmmmmmmm", -- 4 + "mmmmmmbbbmmmmmm", -- 5 + "mmmmmb...bmmmmm", -- 6 + "mmmmmb...bmmmmm", -- 7 + "mmmmmb...bmmmmm", -- 8 + "mmmmmmbbbmmmmmm", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmmmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + -- Level 11 + "bbbbbbbbbbbbbbb", -- 0 + "bbbbbbbbbbbbbbb", -- 1 + "bbbbbbbbbbbbbbb", -- 2 + "bbbbbbbbbbbbbbb", -- 3 + "bbbbobobbbobbbb", -- 4 + "bbbbbobbbobbbbb", -- 5 + "bbbbbbobobbbbbb", -- 6 + "bbbbbbbpbbbbbbb", -- 7 + "bbbbbbobobbbbbb", -- 8 + "bbbbbobbbobbbbb", -- 9 + "bbbbobobbbobbbb", -- 10 + "bbbbbbbbbbbbbbb", -- 11 + "bbbbbbbbbbbbbbb", -- 12 + "bbbbbbbbbbbbbbb", -- 13 + "bbbbbbbbbbbbbbb", -- 14 + + -- Level 12 + "bbbbbbbbbbbbbbb", -- 0 + "b.........bbbbb", -- 1 + "b.........bqrbb", -- 2 + "b......rr.b..bb", -- 3 + "b....s...r.b.bb", -- 4 + "b...tburr.....b", -- 5 + "b...rqrrrr..rrb", -- 6 + "b....rrrrrr.rrr", -- 7 + "b....srrrr..rrb", -- 8 + "b...tbu.r.r...b", -- 9 + "b....q.r...b.bb", -- 10 + "b.........b..bb", -- 11 + "b.........bsrbb", -- 12 + "b.........bbbbb", -- 13 + "bbbbbbbbbbbbbbb", -- 14 + + -- Level 13 + "bbbbbbbbbbbbbbb", -- 0 + "b.........brtbb", -- 1 + "b.........b.rbo", -- 2 + "b.........b..bb", -- 3 + "b..........b.bb", -- 4 + "b....b........b", -- 5 + "b......rr....rb", -- 6 + "b.....rrrr...rr", -- 7 + "b......rr.....b", -- 8 + "b....b........b", -- 9 + "b..........b.bb", -- 10 + "b.........b..bb", -- 11 + "b.........b.rbo", -- 12 + "b.........brtbb", -- 13 + "bbbbbbbbbbbbbbb", -- 14 + + -- Level 14 + "mmmmmmmmmmbbbbb", -- 0 + "mbbbbbbbbbbrrrb", -- 1 + "mbv......vb.rso", -- 2 + "mb........b.vbb", -- 3 + "mb.........bbbb", -- 4 + "mb...b......vbw", -- 5 + "mb......r...vbb", -- 6 + "mb....r......vb", -- 7 + "mb.....r....vbb", -- 8 + "mb...b......vbw", -- 9 + "mb.........bbbb", -- 10 + "mb........b.vbb", -- 11 + "mbv......vb.rqo", -- 12 + "mbbbbbbbbbbrrrb", -- 13 + "mmmmmmmmmmbbbbb", -- 14 + + -- Level 15 + "mmmmmmmmmmbbbbb", -- 0 + "mmmmmmmmmmbr..b", -- 1 + "mmbbbbbbbbbbr.o", -- 2 + "mmbbbbbbbbbburb", -- 3 + "mmbbbbbbbbbbbbb", -- 4 + "mmbbbbbbbbbbbmm", -- 5 + "mmbbbb..rbbbbwm", -- 6 + "mmbbbbr..bbbbbw", -- 7 + "mmbbbb.r.bbbbwm", -- 8 + "mmbbbbbbbbbbbmm", -- 9 + "mmbbbbbbbbbbbbb", -- 10 + "mmbbbbbbbbbburb", -- 11 + "mmbbbbbbbbbbrro", -- 12 + "mmmmmmmmmmbrr.b", -- 13 + "mmmmmmmmmmbbbbb", -- 14 + + -- Level 16 + "mmmmmmmmmmbbbbb", -- 0 + "mmmmmmmmmmb...b", -- 1 + "mmmmmmmrmmrr..o", -- 2 + "mmmbbbbrbbbrr.b", -- 3 + "mmmbvrrrrrvbbbb", -- 4 + "mmmb.brrrr.bmmm", -- 5 + "mmmb.r...rrbmmm", -- 6 + "mmmbrr...rrbwmm", -- 7 + "mmmbrr...rrbmmm", -- 8 + "mmmb.brrrrrbmmm", -- 9 + "mmmbv.rrrrvbbbb", -- 10 + "mmmbbbbrbbbrr.b", -- 11 + "mmmmmmmmmrrrr.o", -- 12 + "mmmmmmmmmmb...b", -- 13 + "mmmmmmmmmmbbbbb", -- 14 + + -- Level 17 + "mmmmmmmmmmbbbbb", -- 0 + "mmmmmmmmmmb...b", -- 1 + "mmmmmmmmmmrr..o", -- 2 + "mmmmmmbrbrb...b", -- 3 + "mmmmbbbrbbbbbbb", -- 4 + "mmmmbb.r..bmmmm", -- 5 + "mmmmb.....bmmmm", -- 6 + "mmmmbr....bmmmm", -- 7 + "mmmmb.....bmmmm", -- 8 + "mmmmbb..r.bmmmm", -- 9 + "mmmmbbbrbbbbbbb", -- 10 + "mmmmmmbrbmb.r.b", -- 11 + "mmmmmmmmmmrr..o", -- 12 + "mmmmmmmmmmb...b", -- 13 + "mmmmmmmmmmbbbbb", -- 14 + + -- Level 18 + "mmmmmmmmmmbbbbb", -- 0 + "mmmmmmmmmmb...o", -- 1 + "mmmmmmmmmmb...o", -- 2 + "mmmmmmmwmmb...o", -- 3 + "mmmmmmwbwmbbbbb", -- 4 + "mmmmmbbbbbmmmmm", -- 5 + "mmmmmbv.vbmmmmm", -- 6 + "mmmmmb...bmmmmm", -- 7 + "mmmmmbv.vbmmmmm", -- 8 + "mmmmmbbbbbmmmmm", -- 9 + "mmmmmmwbwmbbbbb", -- 10 + "mmmmmmmwmmb...o", -- 11 + "mmmmmmmmmmb...o", -- 12 + "mmmmmmmmmmb...o", -- 13 + "mmmmmmmmmmbbbbb", -- 14 + + -- Level 19 + "mmmmmmmmmmbbbbb", -- 0 + "mmmmmmmmmmb...b", -- 1 + "mmmmmmmmmmb...o", -- 2 + "mmmmmmmmmmb...b", -- 3 + "mmmmmmmmmmbbbbb", -- 4 + "mmmmmmmmmmmmmmm", -- 5 + "mmmmmmbbbmmmmmm", -- 6 + "mmmmmmb.bmmmmmm", -- 7 + "mmmmmmbbbmmmmmm", -- 8 + "mmmmmmmmmmmmmmm", -- 9 + "mmmmmmmmmmbbbbb", -- 10 + "mmmmmmmmmmb...b", -- 11 + "mmmmmmmmmmb...o", -- 12 + "mmmmmmmmmmb...b", -- 13 + "mmmmmmmmmmbbbbb", -- 14 + + -- Level 20 + "mmmmmmmmmmbbbbb", -- 0 + "mmmmmmmmmmb...b", -- 1 + "mmmmmmmmmmb...b", -- 2 + "mmmmmmmmmmb...b", -- 3 + "mmmmmmmmmmbbbbb", -- 4 + "mmmmmmmmmmmmmmm", -- 5 + "mmmmmmmmmmmmmmm", -- 6 + "mmmmmmmmmmmmmmm", -- 7 + "mmmmmmmmmmmmmmm", -- 8 + "mmmmmmmmmmmmmmm", -- 9 + "mmmmmmmmmmbbbbb", -- 10 + "mmmmmmmmmmb...b", -- 11 + "mmmmmmmmmmb...b", -- 12 + "mmmmmmmmmmb...b", -- 13 + "mmmmmmmmmmbbbbb", -- 14 + + -- Level 21 + "mmmmmmmmmmwswsw", -- 0 + "mmmmmmmmmmtbbbu", -- 1 + "mmmmmmmmmmwbbbw", -- 2 + "mmmmmmmmmmtbbbu", -- 3 + "mmmmmmmmmmwqwqw", -- 4 + "mmmmmmmmmmmmmmm", -- 5 + "mmmmmmmmmmmmmmm", -- 6 + "mmmmmmmmmmmmmmm", -- 7 + "mmmmmmmmmmmmmmm", -- 8 + "mmmmmmmmmmmmmmm", -- 9 + "mmmmmmmmmmwswsw", -- 10 + "mmmmmmmmmmtbbbu", -- 11 + "mmmmmmmmmmwbbbw", -- 12 + "mmmmmmmmmmtbbbu", -- 13 + "mmmmmmmmmmwqwqw", -- 14 + + -- Level 22 + "mmmmmmmmmmmmmmm", -- 0 + "mmmmmmmmmmmmmmm", -- 1 + "mmmmmmmmmmmmwmm", -- 2 + "mmmmmmmmmmmmmmm", -- 3 + "mmmmmmmmmmmmmmm", -- 4 + "mmmmmmmmmmmmmmm", -- 5 + "mmmmmmmmmmmmmmm", -- 6 + "mmmmmmmmmmmmmmm", -- 7 + "mmmmmmmmmmmmmmm", -- 8 + "mmmmmmmmmmmmmmm", -- 9 + "mmmmmmmmmmmmmmm", -- 10 + "mmmmmmmmmmmmmmm", -- 11 + "mmmmmmmmmmmmwmm", -- 12 + "mmmmmmmmmmmmmmm", -- 13 + "mmmmmmmmmmmmmmm", -- 14 + + }, + }, -- SandyDesertPyramid + }, -- Pieces +} + + + + diff --git a/Server/Prefabs/SinglePieceStructures/DesertWell.cubeset b/Server/Prefabs/SinglePieceStructures/DesertWell.cubeset new file mode 100644 index 000000000..5bd5ae30c --- /dev/null +++ b/Server/Prefabs/SinglePieceStructures/DesertWell.cubeset @@ -0,0 +1,137 @@ + +-- DesertWell.cubeset + +-- Defines the prefabs in the group DesertWell + +-- NOTE: This file has been generated automatically by GalExport! +-- Any manual changes will be overwritten by the next automatic export! + + + + +Cubeset = +{ + Metadata = + { + CubesetFormatVersion = 1, + ExportDate = "2020-08-27 10:42:17", + ["AllowedBiomes"] = "Desert, DesertM, DesertHills", + ["GridSizeX"] = "750", + ["GridSizeZ"] = "750", + ["IntendedUse"] = "SinglePieceStructures", + ["MaxOffsetX"] = "100", + ["MaxOffsetZ"] = "100", + ["SeedOffset"] = "58612835", + }, + + Pieces = + { + { + OriginData = + { + ExportName = "DesertWell", + Name = "DesertWell", + GalleryName = "Desert", + GalleryIndex = "221", + ID = "1702", + CreatorName = "12xx12", + }, + Size = + { + x = 5, + y = 6, + z = 5, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 4, + MaxY = 5, + MaxZ = 4, + }, + StructureBox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 4, + MaxY = 5, + MaxZ = 4, + }, + Connectors = + { + }, + Metadata = + { + ["AddWeightIfSame"] = "0", + ["AllowedRotations"] = "7", + ["DefaultWeight"] = "100", + ["DepthWeight"] = "", + ["ExpandFloorStrategy"] = "RepeatBottomTillNonAir", + ["IsStarting"] = "1", + ["MergeStrategy"] = "msSpongePrint", + ["MoveToGround"] = "0", + ["VerticalStrategy"] = "TerrainOrOceanTop|-3", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 24: 0", -- sandstone + "b: 8: 0", -- water + "c: 44: 1", -- stone_slab + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + "aaaaa", -- 0 + "aaaaa", -- 1 + "aaaaa", -- 2 + "aaaaa", -- 3 + "aaaaa", -- 4 + + -- Level 1 + "aaaaa", -- 0 + "aaaaa", -- 1 + "aabaa", -- 2 + "aaaaa", -- 3 + "aaaaa", -- 4 + + -- Level 2 + "aacaa", -- 0 + "aa.aa", -- 1 + "c...c", -- 2 + "aa.aa", -- 3 + "aacaa", -- 4 + + -- Level 3 + "mmmmm", -- 0 + "ma.am", -- 1 + "m...m", -- 2 + "ma.am", -- 3 + "mmmmm", -- 4 + + -- Level 4 + "mmmmm", -- 0 + "ma.am", -- 1 + "m...m", -- 2 + "ma.am", -- 3 + "mmmmm", -- 4 + + -- Level 5 + "mmmmm", -- 0 + "mcccm", -- 1 + "mcacm", -- 2 + "mcccm", -- 3 + "mmmmm", -- 4 + + }, + }, -- DesertWell + }, -- Pieces +} + + + + diff --git a/Server/Prefabs/SinglePieceStructures/JungleTemple.cubeset b/Server/Prefabs/SinglePieceStructures/JungleTemple.cubeset new file mode 100644 index 000000000..19bba113a --- /dev/null +++ b/Server/Prefabs/SinglePieceStructures/JungleTemple.cubeset @@ -0,0 +1,350 @@ + +-- JungleTemple.cubeset + +-- Defines the prefabs in the group JungleTemple + +-- NOTE: This file has been generated automatically by GalExport! +-- Any manual changes will be overwritten by the next automatic export! + + + + +Cubeset = +{ + Metadata = + { + CubesetFormatVersion = 1, + ExportDate = "2020-08-27 10:42:17", + ["AllowedBiomes"] = "Jungle, JungleHills, BambooJungle, BambooJungleHills", + ["GridSizeX"] = "750", + ["GridSizeZ"] = "750", + ["IntendedUse"] = "SinglePieceStructures", + ["MaxOffsetX"] = "100", + ["MaxOffsetZ"] = "100", + ["SeedOffset"] = "64775119", + }, + + Pieces = + { + { + OriginData = + { + ExportName = "JungleTemple_1703", + Name = "JungleTemple", + GalleryName = "Cube", + GalleryIndex = "162", + ID = "1703", + CreatorName = "12xx12", + }, + Size = + { + x = 12, + y = 14, + z = 15, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 11, + MaxY = 13, + MaxZ = 14, + }, + StructureBox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 11, + MaxY = 13, + MaxZ = 14, + }, + Connectors = + { + }, + Metadata = + { + ["AddWeightIfSame"] = "0", + ["AllowedRotations"] = "7", + ["DefaultWeight"] = "100", + ["DepthWeight"] = "", + ["ExpandFloorStrategy"] = "RepeatBottomTillNonAir", + ["IsStarting"] = "1", + ["MergeStrategy"] = "msSpongePrint", + ["MoveToGround"] = "0", + ["VerticalStrategy"] = "TerrainOrOceanTop|-4", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 48: 0", -- mossycobblestone + "b: 4: 0", -- cobblestone + "c: 54: 3", -- chest + "d: 67: 2", -- stonestairs + "e:131: 3", -- tripwirehook + "f:132: 0", -- tripwire + "g:131: 1", -- tripwirehook + "h: 55: 0", -- redstonewire + "i:131: 0", -- tripwirehook + "j: 54: 5", -- chest + "k:131: 2", -- tripwirehook + "l: 69:12", -- lever + "m: 19: 0", -- sponge + "n: 98: 3", -- stonebricks + "o: 93: 2", -- unpoweredrepeater + "p: 29: 5", -- stickypiston + "q: 29: 1", -- stickypiston + "r: 23: 5", -- dispenser + "s: 23: 2", -- dispenser + "t: 67: 7", -- stonestairs + "u: 67: 3", -- stonestairs + }, + BlockData = + { + -- Level 0 + "aabbbbbaabaa", -- 0 + "aaaaaaaaaaaa", -- 1 + "babbbaaaaaab", -- 2 + "baabaaababaa", -- 3 + "aaabaabbbaaa", -- 4 + "babaabbaabba", -- 5 + "bbabaaabbaab", -- 6 + "baabbbabaaaa", -- 7 + "bbbaaaabaaaa", -- 8 + "bbaabbaaaaab", -- 9 + "abaaabababbb", -- 10 + "bbaaaaabbaba", -- 11 + "abaaababbaaa", -- 12 + "aaaabaabbaab", -- 13 + "aabaabaaaaab", -- 14 + + -- Level 1 + "abaaaabbaabb", -- 0 + "a.........ab", -- 1 + "a..........b", -- 2 + "aabab..a..aa", -- 3 + "abcaa..a...a", -- 4 + "aa.bbddb..ab", -- 5 + "ba.aaabeffgb", -- 6 + "ba.babhb..bb", -- 7 + "bbhhaahb...a", -- 8 + "aahaiaha..ab", -- 9 + "aaa.f.h....b", -- 10 + "abj.f.h...aa", -- 11 + "baa.f.h....b", -- 12 + "aa.akahha.ba", -- 13 + "aababaaabaab", -- 14 + + -- Level 2 + "abaaaabbabaa", -- 0 + "b.........ab", -- 1 + "alll.......b", -- 2 + "bnnnb..a..bb", -- 3 + "bo.hb..a...a", -- 4 + "aa.hb..b..ba", -- 5 + "apq.bdda..ab", -- 6 + "baaaaabb..ba", -- 7 + "aaaaba.a...a", -- 8 + "ba..a.....ba", -- 9 + "bbh........b", -- 10 + "abr.......bb", -- 11 + "ab.........b", -- 12 + "babba.basbba", -- 13 + "aaaaaaaaabaa", -- 14 + + -- Level 3 + "baaaaaaaaaba", -- 0 + "b..........b", -- 1 + "a.......baaa", -- 2 + "aaaba..a...a", -- 3 + "b...a..aaaab", -- 4 + "bh..b..a...b", -- 5 + "ap..b..abaaa", -- 6 + "aaaaadda...a", -- 7 + "abbaatabbaaa", -- 8 + "aaa.a.a....a", -- 9 + "aab.....abbb", -- 10 + "bba........a", -- 11 + "aab.....baba", -- 12 + "aab..b.....b", -- 13 + "abaababbabaa", -- 14 + + -- Level 4 + "baaabaaaaaaa", -- 0 + "baabbbaabbaa", -- 1 + "aaabbababaaa", -- 2 + "aaaaababbaaa", -- 3 + "aaabaabbabba", -- 4 + "aabbb..bbaab", -- 5 + "aabab..babba", -- 6 + "aaabb..baaaa", -- 7 + "babaaddababb", -- 8 + "abaaabaabbbb", -- 9 + "abaabaaaabaa", -- 10 + "bbaabaaaaaaa", -- 11 + "bbbbaabbbbaa", -- 12 + "aaaaaaaaabab", -- 13 + "bbaauuuuaaaa", -- 14 + + -- Level 5 + "............", -- 0 + "............", -- 1 + "..bbabbbab..", -- 2 + "..a......b..", -- 3 + "..a.abab.b..", -- 4 + "..a.a..b.b..", -- 5 + "..a.u..u.a..", -- 6 + "..a......b..", -- 7 + "..b......a..", -- 8 + "..b......b..", -- 9 + "..a......a..", -- 10 + "..a......b..", -- 11 + "..aaa..baa..", -- 12 + "............", -- 13 + "............", -- 14 + + -- Level 6 + "............", -- 0 + "............", -- 1 + "..bab..aaa..", -- 2 + "..b......a..", -- 3 + "..a......a..", -- 4 + "..a......b..", -- 5 + "..a......a..", -- 6 + "..a......a..", -- 7 + "..b......b..", -- 8 + "..a......a..", -- 9 + "..b......b..", -- 10 + "..b......b..", -- 11 + "..aaa..bbb..", -- 12 + "............", -- 13 + "............", -- 14 + + -- Level 7 + "............", -- 0 + ".aababaabaa.", -- 1 + ".bbbabbaabb.", -- 2 + ".babbbaabbb.", -- 3 + ".baataataaa.", -- 4 + ".aab....aaa.", -- 5 + ".baa....aaa.", -- 6 + ".aaa....aab.", -- 7 + ".aab....aab.", -- 8 + ".aaabaabbab.", -- 9 + ".abbaababaa.", -- 10 + ".ababbaabba.", -- 11 + ".aabaaaabba.", -- 12 + ".babbbabaaa.", -- 13 + "............", -- 14 + + -- Level 8 + "..b.a..b.b..", -- 0 + ".bbaabaaabb.", -- 1 + "bb........bb", -- 2 + ".a........b.", -- 3 + "aa........ba", -- 4 + ".a........b.", -- 5 + "bb........ab", -- 6 + ".b........a.", -- 7 + "aa........ba", -- 8 + ".a..daad..a.", -- 9 + "aa........ba", -- 10 + ".a........a.", -- 11 + "ab........bb", -- 12 + ".baaababaab.", -- 13 + "..a.a..b.a..", -- 14 + + -- Level 9 + "..a.a..b.a..", -- 0 + ".bbba..aaaa.", -- 1 + "bb........bb", -- 2 + ".a........a.", -- 3 + "bb........aa", -- 4 + "............", -- 5 + "ab........bb", -- 6 + ".a........b.", -- 7 + "bb........bb", -- 8 + "............", -- 9 + "ab........bb", -- 10 + ".a........a.", -- 11 + "bb........bb", -- 12 + ".aaba..babb.", -- 13 + "..b.a..a.a..", -- 14 + + -- Level 10 + "............", -- 0 + ".bbabababab.", -- 1 + ".abaabbaaab.", -- 2 + ".aabbaaaabb.", -- 3 + ".aaaaaaabba.", -- 4 + "abab....abaa", -- 5 + ".aab....aaa.", -- 6 + ".aba....baa.", -- 7 + ".baa....abb.", -- 8 + "aabb....baab", -- 9 + ".baaababbaa.", -- 10 + ".ababaaaaaa.", -- 11 + ".ababaaaaba.", -- 12 + ".aaaabaabaa.", -- 13 + ".....ba.....", -- 14 + + -- Level 11 + "............", -- 0 + "............", -- 1 + "..a......b..", -- 2 + "...abbbab...", -- 3 + "...aaaaab...", -- 4 + "...bbaabb...", -- 5 + "...aa..ba...", -- 6 + "...ab..bb...", -- 7 + "...aa..aa...", -- 8 + "...aaaaaa...", -- 9 + "...baaaba...", -- 10 + "...ababaa...", -- 11 + "..b......a..", -- 12 + "............", -- 13 + "............", -- 14 + + -- Level 12 + "............", -- 0 + "............", -- 1 + "..a......a..", -- 2 + "............", -- 3 + "....abaa....", -- 4 + "....baab....", -- 5 + "....bbab....", -- 6 + "....baab....", -- 7 + "....bbaa....", -- 8 + "....abaa....", -- 9 + "....baba....", -- 10 + "............", -- 11 + "..b......a..", -- 12 + "............", -- 13 + "............", -- 14 + + -- Level 13 + "............", -- 0 + "............", -- 1 + "..a......a..", -- 2 + "............", -- 3 + "....a..b....", -- 4 + "............", -- 5 + ".....dd.....", -- 6 + ".....ab.....", -- 7 + ".....uu.....", -- 8 + "............", -- 9 + "....b..b....", -- 10 + "............", -- 11 + "..b......b..", -- 12 + "............", -- 13 + "............", -- 14 + + }, + }, -- JungleTemple_1703 + }, -- Pieces +} + + + + diff --git a/Server/Prefabs/SinglePieceStructures/WitchHut.cubeset b/Server/Prefabs/SinglePieceStructures/WitchHut.cubeset new file mode 100644 index 000000000..3a0b4061e --- /dev/null +++ b/Server/Prefabs/SinglePieceStructures/WitchHut.cubeset @@ -0,0 +1,147 @@ + +-- WitchHut.cubeset + +-- Defines the prefabs in the group WitchHut + +-- NOTE: This file has been generated automatically by GalExport! +-- Any manual changes will be overwritten by the next automatic export! + + + + +Cubeset = +{ + Metadata = + { + CubesetFormatVersion = 1, + ExportDate = "2020-08-27 10:42:17", + ["AllowedBiomes"] = "Swampland, SwamplandM", + ["GridSizeX"] = "750", + ["GridSizeZ"] = "750", + ["IntendedUse"] = "SinglePieceStructures", + ["MaxOffsetX"] = "100", + ["MaxOffsetZ"] = "100", + ["SeedOffset"] = "4136893", + }, + + Pieces = + { + { + OriginData = + { + ExportName = "WitchHut", + Name = "WitchHut", + GalleryName = "Cube", + GalleryIndex = "161", + ID = "1704", + CreatorName = "12xx12", + }, + Size = + { + x = 9, + y = 5, + z = 7, + }, + Hitbox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 8, + MaxY = 4, + MaxZ = 6, + }, + StructureBox = + { + MinX = 0, + MinY = 0, + MinZ = 0, + MaxX = 8, + MaxY = 4, + MaxZ = 6, + }, + Connectors = + { + }, + Metadata = + { + ["AddWeightIfSame"] = "0", + ["AllowedRotations"] = "7", + ["DefaultWeight"] = "100", + ["DepthWeight"] = "", + ["ExpandFloorStrategy"] = "RepeatBottomTillNonAir", + ["IsStarting"] = "1", + ["MergeStrategy"] = "msSpongePrint", + ["MoveToGround"] = "0", + ["VerticalStrategy"] = "TerrainOrOceanTop", + }, + BlockDefinitions = + { + ".: 0: 0", -- air + "a: 17: 0", -- tree + "b: 5: 1", -- planks + "c: 85: 0", -- fence + "d:118: 0", -- cauldronblock + "e: 58: 0", -- workbench + "f:140: 0", -- flowerpotblock + "g:134: 2", -- sprucewoodstairs + "h:134: 0", -- sprucewoodstairs + "i:134: 1", -- sprucewoodstairs + "j:134: 3", -- sprucewoodstairs + "m: 19: 0", -- sponge + }, + BlockData = + { + -- Level 0 + ".........", -- 0 + ".a....a..", -- 1 + ".........", -- 2 + ".........", -- 3 + ".........", -- 4 + ".a....a..", -- 5 + ".........", -- 6 + + -- Level 1 + ".........", -- 0 + ".abbbbab.", -- 1 + ".bbbbbbbb", -- 2 + ".bbbbbbbb", -- 3 + ".bbbbbbbb", -- 4 + ".abbbbab.", -- 5 + ".........", -- 6 + + -- Level 2 + ".........", -- 0 + ".abbbbac.", -- 1 + ".bd......", -- 2 + ".be...b..", -- 3 + ".b....b..", -- 4 + ".abbbbac.", -- 5 + ".........", -- 6 + + -- Level 3 + ".........", -- 0 + ".ab..ba..", -- 1 + ".b.......", -- 2 + ".c....b..", -- 3 + ".b....c..", -- 4 + ".abf.ba..", -- 5 + ".........", -- 6 + + -- Level 4 + "gggggggg.", -- 0 + "hbbbbbbi.", -- 1 + "hbbbbbbi.", -- 2 + "hbbbbbbi.", -- 3 + "hbbbbbbi.", -- 4 + "hbbbbbbi.", -- 5 + "hjjjjjjj.", -- 6 + + }, + }, -- WitchHut + }, -- Pieces +} + + + + diff --git a/src/Generating/CMakeLists.txt b/src/Generating/CMakeLists.txt index d6f0ce2fb..bf539d6c2 100644 --- a/src/Generating/CMakeLists.txt +++ b/src/Generating/CMakeLists.txt @@ -24,6 +24,7 @@ target_sources( PrefabStructure.cpp Ravines.cpp RoughRavines.cpp + SinglePieceStructuresGen.cpp StructGen.cpp Trees.cpp TwoHeights.cpp @@ -58,6 +59,7 @@ target_sources( Ravines.h RoughRavines.h ShapeGen.cpp + SinglePieceStructuresGen.h StructGen.h Trees.h TwoHeights.h diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index 5dd54a497..7c891f5fa 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -27,6 +27,7 @@ #include "Noise3DGenerator.h" #include "Ravines.h" #include "RoughRavines.h" +#include "SinglePieceStructuresGen.h" #include "VillageGen.h" #include "PieceStructuresGen.h" @@ -217,6 +218,7 @@ void cComposableGenerator::InitializeGeneratorDefaults(cIniFile & a_IniFile, eDi "Mineshafts, " "Trees, " "Villages, " + "SinglePieceStructures: JungleTemple|WitchHut|DesertPyramid|DesertWell, " "TallGrass, " "SprinkleFoliage, " "Ice, " @@ -606,6 +608,20 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) GridSize, MaxOffset ))); } + else if (NoCaseCompare(finisher, "SinglePieceStructures") == 0) + { + if (split.size() < 2) + { + LOGWARNING("The SinglePieceStructures generator needs the structures to use. Example: \"SinglePieceStructures: DesertPyramid\"."); + continue; + } + + auto Gen = std::make_shared(m_Seed); + if (Gen->Initialize(split[1], seaLevel, m_BiomeGen, m_CompositedHeightCache)) + { + m_FinishGens.push_back(Gen); + } + } else if (NoCaseCompare(finisher, "SoulsandRims") == 0) { m_FinishGens.push_back(cFinishGenPtr(new cFinishGenSoulsandRims(m_Seed))); diff --git a/src/Generating/SinglePieceStructuresGen.cpp b/src/Generating/SinglePieceStructuresGen.cpp new file mode 100644 index 000000000..bd079d762 --- /dev/null +++ b/src/Generating/SinglePieceStructuresGen.cpp @@ -0,0 +1,205 @@ + +#include "SinglePieceStructuresGen.h" + +#include "PrefabStructure.h" +#include "../IniFile.h" +#include "../Item.h" + + +//////////////////////////////////////////////////////////////////////////////// +// cSinglePieceStructuresGen::cGen + +class cSinglePieceStructuresGen::cGen : + public cGridStructGen +{ + using Super = cGridStructGen; +public: + cGen(int a_Seed, cBiomeGenPtr a_BiomeGen, cTerrainHeightGenPtr a_HeightGen, int a_SeaLevel, const AString & a_Name): + Super(a_Seed), + m_BiomeGen(std::move(a_BiomeGen)), + m_HeightGen(std::move(a_HeightGen)), + m_SeaLevel(a_SeaLevel), + m_Name(a_Name) + { + } + + + + /** Loads the piecepool from a file. + Returns true on success, logs warning and returns false on failure. */ + bool LoadFromFile(const AString & a_FileName) + { + m_PiecePool.Clear(); + + // Load the piecepool from the file, log any warnings: + if (!m_PiecePool.LoadFromFile(a_FileName, true)) + { + return false; + } + if (NoCaseCompare(m_PiecePool.GetIntendedUse(), "SinglePieceStructures") != 0) + { + LOGWARNING("SinglePieceStructures generator: File %s is intended for use in \"%s\", rather than single piece structures. Loading the file, but the generator may behave unexpectedly.", + a_FileName.c_str(), m_PiecePool.GetIntendedUse().c_str() + ); + } + m_PiecePool.AssignGens(m_Seed, m_BiomeGen, m_HeightGen, m_SeaLevel); + + // Apply generator params from the piecepool (in the metadata) into the generator: + auto & generatorParams = m_PiecePool.GetAllMetadata(); + SetGeneratorParams(generatorParams); + + return true; + } + + + + + // cGridStructGen override + virtual cStructurePtr CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) override + { + // Generate the biomes for the chunk surrounding the origin: + int ChunkX, ChunkZ; + cChunkDef::BlockToChunk(a_OriginX, a_OriginZ, ChunkX, ChunkZ); + cChunkDef::BiomeMap Biomes; + m_BiomeGen->GenBiomes({ChunkX, ChunkZ}, Biomes); + + // Checks if the biome at the origin position is allowed + if (!m_PiecePool.IsBiomeAllowed(Biomes[ChunkX + cChunkDef::Width * ChunkZ])) + { + return cStructurePtr(); + } + cPlacedPieces OutPiece; + OutPiece.push_back(GetPiece(a_OriginX, a_OriginZ)); + return std::make_shared(a_GridX, a_GridZ, a_OriginX, a_OriginZ, std::move(OutPiece), m_HeightGen); + } + + + + + /** Determines which piece to place from the piece pool */ + cPlacedPiecePtr GetPiece(int a_BlockX, int a_BlockZ) + { + int rnd = m_Noise.IntNoise2DInt(a_BlockX, a_BlockZ) / 7; + + // Choose a random one of the starting pieces: + cPieces StartingPieces = m_PiecePool.GetStartingPieces(); + int Total = 0; + for (cPieces::const_iterator itr = StartingPieces.begin(), end = StartingPieces.end(); itr != end; ++itr) + { + Total += m_PiecePool.GetStartingPieceWeight(**itr); + } + cPiece * StartingPiece; + if (Total > 0) + { + int Chosen = rnd % Total; + StartingPiece = StartingPieces.front(); + for (cPieces::const_iterator itr = StartingPieces.begin(), end = StartingPieces.end(); itr != end; ++itr) + { + Chosen -= m_PiecePool.GetStartingPieceWeight(**itr); + if (Chosen <= 0) + { + StartingPiece = *itr; + break; + } + } + } + else + { + // All pieces returned zero weight, but we need one to start. Choose with equal chance: + StartingPiece = StartingPieces[static_cast(rnd) % StartingPieces.size()]; + } + rnd = rnd >> 16; + + // Choose a random supported rotation: + int Rotations[4] = {0}; + int NumRotations = 1; + for (size_t i = 1; i < ARRAYCOUNT(Rotations); i++) + { + if (StartingPiece->CanRotateCCW(static_cast(i))) + { + Rotations[NumRotations] = static_cast(i); + NumRotations += 1; + } + } + int Rotation = Rotations[rnd % NumRotations]; + int BlockY = StartingPiece->GetStartingPieceHeight(a_BlockX, a_BlockZ); + ASSERT(BlockY >= 0); // The vertical strategy should have been provided and should give valid coords + + cPlacedPiece * Piece = new cPlacedPiece(nullptr, *StartingPiece, Vector3i(a_BlockX, BlockY, a_BlockZ), Rotation); + return cPlacedPiecePtr(Piece); + } + +protected: + /** The underlying biome generator that defines whether the structure is created or not */ + cBiomeGenPtr m_BiomeGen; + + /** The underlying height generator, used to position the prefabs crossing chunk borders if they are set to FitGround. */ + cTerrainHeightGenPtr m_HeightGen; + + /** The world's sea level, if available. Used for some cVerticalStrategy descendants. */ + int m_SeaLevel; + + /** The name that is used for reporting. */ + AString m_Name; + + /** All available prefabs. */ + cPrefabPiecePool m_PiecePool; +}; + + +//////////////////////////////////////////////////////////////////////////////// +// cSinglePieceStructuresGen + +cSinglePieceStructuresGen::cSinglePieceStructuresGen(int a_Seed) : + m_Seed(a_Seed) +{ +} + + + + + +bool cSinglePieceStructuresGen::Initialize(const AString & a_Prefabs, int a_SeaLevel, const cBiomeGenPtr & a_BiomeGen, const cTerrainHeightGenPtr & a_HeightGen) +{ + // Load each piecepool: + auto Structures = StringSplitAndTrim(a_Prefabs, "|"); + for (const auto & S: Structures) + { + auto FileName = Printf("Prefabs%cSinglePieceStructures%c%s.cubeset", cFile::PathSeparator(), cFile::PathSeparator(), S.c_str()); + if (!cFile::IsFile(FileName)) + { + FileName.append(".gz"); + if (!cFile::IsFile(FileName)) + { + LOGWARNING("Cannot load SinglePieceStructure cubeset file %s", FileName.c_str()); + continue; + } + } + + auto Gen = std::make_shared(m_Seed, a_BiomeGen, a_HeightGen, a_SeaLevel, S); + if (Gen->LoadFromFile(FileName)) + { + m_Gens.push_back(Gen); + } + } + + // Report a warning if no generators available: + if (m_Gens.empty()) + { + LOGWARNING("The PieceStructures generator was asked to generate \"%s\", but none of the prefabs are valid.", a_Prefabs.c_str()); + return false; + } + return true; +} + + + + + +void cSinglePieceStructuresGen::GenFinish(cChunkDesc & a_Chunk) +{ + for (auto & Gen: m_Gens) + { + Gen->GenFinish(a_Chunk); + } +} diff --git a/src/Generating/SinglePieceStructuresGen.h b/src/Generating/SinglePieceStructuresGen.h new file mode 100644 index 000000000..c14757738 --- /dev/null +++ b/src/Generating/SinglePieceStructuresGen.h @@ -0,0 +1,52 @@ + +// PrefabSingleStructureGen.h + + +/* +Classes to support the generation of single piece prefab structures +*/ + +#pragma once + +#include "Globals.h" + +#include "ComposableGenerator.h" +#include "PrefabPiecePool.h" + +/** The Single Prefab Structure Generator: +This uses the cGridStructGen to generate the structures on the map +This is similar to the Piece Structure Generator but only placing one possible structure +The Exported cubeset MUST have all possible structures as start structures or the server crashes on generation +else it isn't accessible from the m_Piecepool. */ +class cSinglePieceStructuresGen : + public cFinishGen +{ +using Super = cFinishGen; + +public: + cSinglePieceStructuresGen(int a_Seed); + + /** Initializes the generator based on the specified prefab sets. + a_Prefabs contains the list of prefab sets that should be activated, "|"-separated. + All problems are logged to the console and the generator skips over them. + Returns true if at least one prefab set is valid (the generator should be kept). */ + bool Initialize(const AString & a_Prefabs, int a_SeaLevel, const cBiomeGenPtr & a_BiomeGen, const cTerrainHeightGenPtr & a_HeightGen); + + + // cFinishGen override: + virtual void GenFinish(cChunkDesc & a_ChunkDesc) override; + +protected: + /** The generator doing the work for a single prefab set. + Forward-declared so that its implementation changes don't affect the header. */ + class cGen; + + typedef std::shared_ptr cGenPtr; + typedef std::vector cGenPtrs; + + /** The individual structure generators, one per piecepool. */ + cGenPtrs m_Gens; + + /** The seed for the random number generator */ + int m_Seed; +}; diff --git a/tests/Generating/CMakeLists.txt b/tests/Generating/CMakeLists.txt index 241e2efb9..ef121d3ee 100644 --- a/tests/Generating/CMakeLists.txt +++ b/tests/Generating/CMakeLists.txt @@ -57,6 +57,7 @@ set (GENERATING_SRCS ${CMAKE_SOURCE_DIR}/src/Generating/PrefabStructure.cpp ${CMAKE_SOURCE_DIR}/src/Generating/Ravines.cpp ${CMAKE_SOURCE_DIR}/src/Generating/RoughRavines.cpp + ${CMAKE_SOURCE_DIR}/src/Generating/SinglePieceStructuresGen.cpp ${CMAKE_SOURCE_DIR}/src/Generating/StructGen.cpp ${CMAKE_SOURCE_DIR}/src/Generating/Trees.cpp ${CMAKE_SOURCE_DIR}/src/Generating/TwoHeights.cpp @@ -126,6 +127,7 @@ set (GENERATING_HDRS ${CMAKE_SOURCE_DIR}/src/Generating/Ravines.h ${CMAKE_SOURCE_DIR}/src/Generating/RoughRavines.h ${CMAKE_SOURCE_DIR}/src/Generating/ShapeGen.cpp + ${CMAKE_SOURCE_DIR}/src/Generating/SinglePieceStructuresGen.h ${CMAKE_SOURCE_DIR}/src/Generating/StructGen.h ${CMAKE_SOURCE_DIR}/src/Generating/Trees.h ${CMAKE_SOURCE_DIR}/src/Generating/TwoHeights.h -- cgit v1.2.3