1
0

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 <me@bearbin.net>
This commit is contained in:
12xx12 2020-09-18 00:20:50 +02:00 committed by GitHub
parent a72769b30e
commit c18fe8aa45
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 1890 additions and 0 deletions

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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

View File

@ -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<cSinglePieceStructuresGen>(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)));

View File

@ -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<cPrefabStructure>(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<size_t>(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<int>(i)))
{
Rotations[NumRotations] = static_cast<int>(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<cGen>(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);
}
}

View File

@ -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<cGen> cGenPtr;
typedef std::vector<cGenPtr> cGenPtrs;
/** The individual structure generators, one per piecepool. */
cGenPtrs m_Gens;
/** The seed for the random number generator */
int m_Seed;
};

View File

@ -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