Prefabs can have per-piece per-placement weights.
Fixes #753. Also upgraded NetherFortPrefabs to lates Gallery contents.
This commit is contained in:
parent
35e847d2f5
commit
be091800f8
@ -258,6 +258,15 @@ cPieces cNetherFortGen::GetStartingPieces(void)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int cNetherFortGen::GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector, const cPiece & a_NewPiece)
|
||||||
|
{
|
||||||
|
return ((const cPrefab &)a_NewPiece).GetPieceWeight(a_PlacedPiece, a_ExistingConnector);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void cNetherFortGen::PiecePlaced(const cPiece & a_Piece)
|
void cNetherFortGen::PiecePlaced(const cPiece & a_Piece)
|
||||||
{
|
{
|
||||||
UNUSED(a_Piece);
|
UNUSED(a_Piece);
|
||||||
|
@ -77,6 +77,7 @@ protected:
|
|||||||
// cPiecePool overrides:
|
// cPiecePool overrides:
|
||||||
virtual cPieces GetPiecesWithConnector(int a_ConnectorType) override;
|
virtual cPieces GetPiecesWithConnector(int a_ConnectorType) override;
|
||||||
virtual cPieces GetStartingPieces(void) override;
|
virtual cPieces GetStartingPieces(void) override;
|
||||||
|
virtual int GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector, const cPiece & a_NewPiece) override;
|
||||||
virtual void PiecePlaced(const cPiece & a_Piece) override;
|
virtual void PiecePlaced(const cPiece & a_Piece) override;
|
||||||
virtual void Reset(void) override;
|
virtual void Reset(void) override;
|
||||||
} ;
|
} ;
|
||||||
|
@ -105,13 +105,17 @@ cPrefab::cPrefab(const cPrefab::sDef & a_Def) :
|
|||||||
m_Size(a_Def.m_SizeX, a_Def.m_SizeY, a_Def.m_SizeZ),
|
m_Size(a_Def.m_SizeX, a_Def.m_SizeY, a_Def.m_SizeZ),
|
||||||
m_HitBox(0, 0, 0, a_Def.m_SizeX - 1, a_Def.m_SizeY - 1, a_Def.m_SizeZ - 1),
|
m_HitBox(0, 0, 0, a_Def.m_SizeX - 1, a_Def.m_SizeY - 1, a_Def.m_SizeZ - 1),
|
||||||
m_AllowedRotations(a_Def.m_AllowedRotations),
|
m_AllowedRotations(a_Def.m_AllowedRotations),
|
||||||
m_MergeStrategy(a_Def.m_MergeStrategy)
|
m_MergeStrategy(a_Def.m_MergeStrategy),
|
||||||
|
m_ShouldExtendFloor(a_Def.m_ShouldExtendFloor),
|
||||||
|
m_DefaultWeight(a_Def.m_DefaultWeight),
|
||||||
|
m_AddWeightIfSame(a_Def.m_AddWeightIfSame)
|
||||||
{
|
{
|
||||||
m_BlockArea[0].Create(m_Size);
|
m_BlockArea[0].Create(m_Size);
|
||||||
CharMap cm;
|
CharMap cm;
|
||||||
ParseCharMap(cm, a_Def.m_CharMap);
|
ParseCharMap(cm, a_Def.m_CharMap);
|
||||||
ParseBlockImage(cm, a_Def.m_Image);
|
ParseBlockImage(cm, a_Def.m_Image);
|
||||||
ParseConnectors(a_Def.m_Connectors);
|
ParseConnectors(a_Def.m_Connectors);
|
||||||
|
ParseDepthWeight(a_Def.m_DepthWeight);
|
||||||
|
|
||||||
// 1 CCW rotation:
|
// 1 CCW rotation:
|
||||||
if ((m_AllowedRotations & 0x01) != 0)
|
if ((m_AllowedRotations & 0x01) != 0)
|
||||||
@ -170,6 +174,26 @@ bool cPrefab::HasConnectorType(int a_ConnectorType) const
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int cPrefab::GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector) const
|
||||||
|
{
|
||||||
|
// Use the default or per-depth weight:
|
||||||
|
cDepthWeight::const_iterator itr = m_DepthWeight.find(a_PlacedPiece.GetDepth() + 1);
|
||||||
|
int res = (itr == m_DepthWeight.end()) ? m_DefaultWeight : itr->second;
|
||||||
|
|
||||||
|
// If the piece is the same as the parent, apply the m_AddWeightIfSame modifier:
|
||||||
|
const cPiece * ParentPiece = &a_PlacedPiece.GetPiece();
|
||||||
|
const cPiece * ThisPiece = this;
|
||||||
|
if (ThisPiece == ParentPiece)
|
||||||
|
{
|
||||||
|
res += m_AddWeightIfSame;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void cPrefab::ParseCharMap(CharMap & a_CharMapOut, const char * a_CharMapDef)
|
void cPrefab::ParseCharMap(CharMap & a_CharMapOut, const char * a_CharMapDef)
|
||||||
{
|
{
|
||||||
ASSERT(a_CharMapDef != NULL);
|
ASSERT(a_CharMapDef != NULL);
|
||||||
@ -277,6 +301,54 @@ void cPrefab::ParseConnectors(const char * a_ConnectorsDef)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void cPrefab::ParseDepthWeight(const char * a_DepthWeightDef)
|
||||||
|
{
|
||||||
|
// The member needn't be defined at all, if so, skip:
|
||||||
|
if (a_DepthWeightDef == NULL)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Split into individual records: "Record | Record | Record"
|
||||||
|
AStringVector Defs = StringSplitAndTrim(a_DepthWeightDef, "|");
|
||||||
|
|
||||||
|
// Add each record's contents:
|
||||||
|
for (AStringVector::const_iterator itr = Defs.begin(), end = Defs.end(); itr != end; ++itr)
|
||||||
|
{
|
||||||
|
// Split into components: "Depth : Weight"
|
||||||
|
AStringVector Components = StringSplitAndTrim(*itr, ":");
|
||||||
|
if (Components.size() != 2)
|
||||||
|
{
|
||||||
|
LOGWARNING("Bad prefab DepthWeight record: \"%s\", skipping.", itr->c_str());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse depth:
|
||||||
|
int Depth = atoi(Components[0].c_str());
|
||||||
|
if ((Depth == 0) && (Components[0] != "0"))
|
||||||
|
{
|
||||||
|
LOGWARNING("Bad prefab DepthWeight record, cannot parse depth \"%s\", skipping.", Components[0].c_str());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse weight:
|
||||||
|
int Weight = atoi(Components[1].c_str());
|
||||||
|
if ((Weight == 0) && (Components[1] != "0"))
|
||||||
|
{
|
||||||
|
LOGWARNING("Bad prefab DepthWeight record, cannot parse weight \"%s\", skipping.", Components[1].c_str());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save to map:
|
||||||
|
ASSERT(m_DepthWeight.find(Depth) == m_DepthWeight.end()); // Not a duplicate
|
||||||
|
m_DepthWeight[Depth] = Weight;
|
||||||
|
} // for itr - Defs[]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
cPiece::cConnectors cPrefab::GetConnectors(void) const
|
cPiece::cConnectors cPrefab::GetConnectors(void) const
|
||||||
{
|
{
|
||||||
return m_Connectors;
|
return m_Connectors;
|
||||||
|
@ -37,11 +37,47 @@ public:
|
|||||||
int m_SizeX;
|
int m_SizeX;
|
||||||
int m_SizeY;
|
int m_SizeY;
|
||||||
int m_SizeZ;
|
int m_SizeZ;
|
||||||
|
|
||||||
|
/** The mapping between characters in m_Image and the blocktype / blockmeta.
|
||||||
|
Format: "Char: BlockType: BlockMeta \n Char: BlockType : BlockMeta \n ..." */
|
||||||
const char * m_CharMap;
|
const char * m_CharMap;
|
||||||
|
|
||||||
|
/** The actual image to be used for the prefab. Organized YZX (Y changes the least often).
|
||||||
|
Each character represents a single block, the type is mapped through m_CharMap. */
|
||||||
const char * m_Image;
|
const char * m_Image;
|
||||||
|
|
||||||
|
/** List of connectors.
|
||||||
|
Format: "Type: X, Y, Z : Direction \n Type : X, Y, Z : Direction \n ...".
|
||||||
|
Type is an arbitrary number, Direction is the BlockFace constant value (0 .. 5). */
|
||||||
const char * m_Connectors;
|
const char * m_Connectors;
|
||||||
|
|
||||||
|
/** Bitmask specifying the allowed rotations.
|
||||||
|
N rotations CCW are allowed if bit N is set. */
|
||||||
int m_AllowedRotations;
|
int m_AllowedRotations;
|
||||||
|
|
||||||
|
/** The merge strategy to use while drawing the prefab. */
|
||||||
cBlockArea::eMergeStrategy m_MergeStrategy;
|
cBlockArea::eMergeStrategy m_MergeStrategy;
|
||||||
|
|
||||||
|
/** If set to true, the prefab will extend its lowermost blocks until a solid block is found,
|
||||||
|
thus creating a foundation for the prefab. This is used for houses to be "on the ground", as well as
|
||||||
|
nether fortresses not to float. */
|
||||||
|
bool m_ShouldExtendFloor;
|
||||||
|
|
||||||
|
/** Chance of this piece being used, if no other modifier is active. */
|
||||||
|
int m_DefaultWeight;
|
||||||
|
|
||||||
|
/** Chances of this piece being used, per depth of the generated piece tree.
|
||||||
|
The starting piece has a depth of 0, the pieces connected to it are depth 1, etc.
|
||||||
|
The specified depth stands for the depth of the new piece (not the existing already-placed piece),
|
||||||
|
so valid depths start at 1.
|
||||||
|
Format: "Depth : Weight | Depth : Weight | Depth : Weight ..."
|
||||||
|
Depths that are not specified will use the m_DefaultWeight value. */
|
||||||
|
const char * m_DepthWeight;
|
||||||
|
|
||||||
|
/** The weight to add to this piece's base per-depth chance if the previous piece is the same.
|
||||||
|
Can be positive or negative.
|
||||||
|
This is used e. g. to make nether bridges prefer spanning multiple segments or to penalize turrets next to each other. */
|
||||||
|
int m_AddWeightIfSame;
|
||||||
};
|
};
|
||||||
|
|
||||||
cPrefab(const sDef & a_Def);
|
cPrefab(const sDef & a_Def);
|
||||||
@ -52,6 +88,10 @@ public:
|
|||||||
/** Returns true if the prefab has any connector of the specified type. */
|
/** Returns true if the prefab has any connector of the specified type. */
|
||||||
bool HasConnectorType(int a_ConnectorType) const;
|
bool HasConnectorType(int a_ConnectorType) const;
|
||||||
|
|
||||||
|
/** Returns the weight (chance) of this prefab generating as the next piece after the specified placed piece.
|
||||||
|
PiecePool implementations can use this for their GetPieceWeight() implementations. */
|
||||||
|
int GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/** Packs complete definition of a single block, for per-letter assignment. */
|
/** Packs complete definition of a single block, for per-letter assignment. */
|
||||||
struct sBlockTypeDef
|
struct sBlockTypeDef
|
||||||
@ -60,9 +100,12 @@ protected:
|
|||||||
NIBBLETYPE m_BlockMeta;
|
NIBBLETYPE m_BlockMeta;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Maps letters in the sDef::m_Image onto a number, BlockType * 16 | BlockMeta */
|
/** Maps letters in the sDef::m_Image onto a sBlockTypeDef block type definition. */
|
||||||
typedef sBlockTypeDef CharMap[256];
|
typedef sBlockTypeDef CharMap[256];
|
||||||
|
|
||||||
|
/** Maps generator tree depth to weight. */
|
||||||
|
typedef std::map<int, int> cDepthWeight;
|
||||||
|
|
||||||
|
|
||||||
/** The cBlockArea that contains the block definitions for the prefab.
|
/** The cBlockArea that contains the block definitions for the prefab.
|
||||||
The index identifies the number of CCW rotations applied (0 = no rotation, 1 = 1 CCW rotation, ...). */
|
The index identifies the number of CCW rotations applied (0 = no rotation, 1 = 1 CCW rotation, ...). */
|
||||||
@ -83,6 +126,26 @@ protected:
|
|||||||
/** The merge strategy to use when drawing the prefab into a block area */
|
/** The merge strategy to use when drawing the prefab into a block area */
|
||||||
cBlockArea::eMergeStrategy m_MergeStrategy;
|
cBlockArea::eMergeStrategy m_MergeStrategy;
|
||||||
|
|
||||||
|
/** If set to true, the prefab will extend its lowermost blocks until a solid block is found,
|
||||||
|
thus creating a foundation for the prefab. This is used for houses to be "on the ground", as well as
|
||||||
|
nether fortresses not to float. */
|
||||||
|
bool m_ShouldExtendFloor;
|
||||||
|
|
||||||
|
/** Chance of this piece being used, if no other modifier is active. */
|
||||||
|
int m_DefaultWeight;
|
||||||
|
|
||||||
|
/** Chances of this piece being used, per depth of the generated piece tree.
|
||||||
|
The starting piece has a depth of 0, the pieces connected to it are depth 1, etc.
|
||||||
|
The specified depth stands for the depth of the new piece (not the existing already-placed piece),
|
||||||
|
so valid depths start at 1.
|
||||||
|
Depths that are not specified will use the m_DefaultWeight value. */
|
||||||
|
cDepthWeight m_DepthWeight;
|
||||||
|
|
||||||
|
/** The weight to add to this piece's base per-depth chance if the previous piece is the same.
|
||||||
|
Can be positive or negative.
|
||||||
|
This is used e. g. to make nether bridges prefer spanning multiple segments or to penalize turrets next to each other. */
|
||||||
|
int m_AddWeightIfSame;
|
||||||
|
|
||||||
|
|
||||||
// cPiece overrides:
|
// cPiece overrides:
|
||||||
virtual cConnectors GetConnectors(void) const override;
|
virtual cConnectors GetConnectors(void) const override;
|
||||||
@ -98,6 +161,9 @@ protected:
|
|||||||
|
|
||||||
/** Parses the connectors definition text into m_Connectors member. */
|
/** Parses the connectors definition text into m_Connectors member. */
|
||||||
void ParseConnectors(const char * a_ConnectorsDef);
|
void ParseConnectors(const char * a_ConnectorsDef);
|
||||||
|
|
||||||
|
/** Parses the per-depth weight into m_DepthWeight member. */
|
||||||
|
void ParseDepthWeight(const char * a_DepthWeightDef);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -133,10 +133,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"1: 0, 2, 2: 4\n" /* Type 1, direction X- */,
|
"1: 0, 2, 2: 4\n" /* Type 1, direction X- */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
20,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // BalconyCorridor
|
}, // BalconyCorridor
|
||||||
|
|
||||||
|
|
||||||
@ -274,10 +286,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"1: 0, 2, 4: 4\n" /* Type 1, direction X- */,
|
"1: 0, 2, 4: 4\n" /* Type 1, direction X- */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
20,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // BalconyTee2
|
}, // BalconyTee2
|
||||||
|
|
||||||
|
|
||||||
@ -378,10 +402,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"0: 0, 1, 3: 4\n" /* Type 0, direction X- */,
|
"0: 0, 1, 3: 4\n" /* Type 0, direction X- */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
100,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // BlazePlatform
|
}, // BlazePlatform
|
||||||
|
|
||||||
|
|
||||||
@ -510,10 +546,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"0: 0, 5, 3: 4\n" /* Type 0, direction X- */,
|
"0: 0, 5, 3: 4\n" /* Type 0, direction X- */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
100,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // BlazePlatformOverhang
|
}, // BlazePlatformOverhang
|
||||||
|
|
||||||
|
|
||||||
@ -694,10 +742,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"0: 7, 5, 14: 3\n" /* Type 0, direction Z+ */,
|
"0: 7, 5, 14: 3\n" /* Type 0, direction Z+ */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
5,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // BridgeCircleCrossing
|
}, // BridgeCircleCrossing
|
||||||
|
|
||||||
|
|
||||||
@ -879,10 +939,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"0: 14, 5, 7: 5\n" /* Type 0, direction X+ */,
|
"0: 14, 5, 7: 5\n" /* Type 0, direction X+ */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
10,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"1:1000",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // BridgeCrossing
|
}, // BridgeCrossing
|
||||||
|
|
||||||
|
|
||||||
@ -957,10 +1029,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"0: 0, 5, 2: 4\n" /* Type 0, direction X- */,
|
"0: 0, 5, 2: 4\n" /* Type 0, direction X- */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
100,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"1:0",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // BridgeCrumble1
|
}, // BridgeCrumble1
|
||||||
|
|
||||||
|
|
||||||
@ -1041,10 +1125,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"1: 0, 5, 2: 4\n" /* Type 1, direction X- */,
|
"1: 0, 5, 2: 4\n" /* Type 1, direction X- */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
100,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"1:0",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // BridgeCrumble2
|
}, // BridgeCrumble2
|
||||||
|
|
||||||
|
|
||||||
@ -1204,14 +1300,262 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"0: 2, 4, 15: 3\n" /* Type 0, direction Z+ */,
|
"0: 2, 4, 15: 3\n" /* Type 0, direction Z+ */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
10,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
1000,
|
||||||
}, // BridgeDoubleCrumble
|
}, // BridgeDoubleCrumble
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// BridgeFunnelDown:
|
||||||
|
// The data has been exported from the gallery Nether, area index 0, ID 2, created by Aloe_vera
|
||||||
|
{
|
||||||
|
// Size:
|
||||||
|
15, 12, 12, // SizeX = 15, SizeY = 12, SizeZ = 12
|
||||||
|
|
||||||
|
// Block definitions:
|
||||||
|
".: 0: 0\n" /* air */
|
||||||
|
"a:112: 0\n" /* netherbrick */
|
||||||
|
"b:114: 6\n" /* netherbrickstairs */
|
||||||
|
"c:114: 4\n" /* netherbrickstairs */
|
||||||
|
"d:114: 5\n" /* netherbrickstairs */
|
||||||
|
"e: 44:14\n" /* step */
|
||||||
|
"f:114: 7\n" /* netherbrickstairs */
|
||||||
|
"m: 19: 0\n" /* sponge */,
|
||||||
|
|
||||||
|
// Block data:
|
||||||
|
// Level 0
|
||||||
|
/* z\x* 11111 */
|
||||||
|
/* * 012345678901234 */
|
||||||
|
/* 0 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 1 */ "aammmmmmmmmmmaa"
|
||||||
|
/* 2 */ "aammmmmmmmmmmaa"
|
||||||
|
/* 3 */ "aammmmmmmmmmmaa"
|
||||||
|
/* 4 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 5 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 6 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 7 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 8 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 9 */ "mmmmmmaaammmmmm"
|
||||||
|
/* 10 */ "mmmmmmaaammmmmm"
|
||||||
|
/* 11 */ "mmmmmmaaammmmmm"
|
||||||
|
|
||||||
|
// Level 1
|
||||||
|
/* z\x* 11111 */
|
||||||
|
/* * 012345678901234 */
|
||||||
|
/* 0 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 1 */ "aammmmmmmmmmmaa"
|
||||||
|
/* 2 */ "aammmmmmmmmmmaa"
|
||||||
|
/* 3 */ "aammmmmmmmmmmaa"
|
||||||
|
/* 4 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 5 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 6 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 7 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 8 */ "mmmmmmbbbmmmmmm"
|
||||||
|
/* 9 */ "mmmmmmaaammmmmm"
|
||||||
|
/* 10 */ "mmmmmmaaammmmmm"
|
||||||
|
/* 11 */ "mmmmmmaaammmmmm"
|
||||||
|
|
||||||
|
// Level 2
|
||||||
|
/* z\x* 11111 */
|
||||||
|
/* * 012345678901234 */
|
||||||
|
/* 0 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 1 */ "aammmmmmmmmmmaa"
|
||||||
|
/* 2 */ "aammmmmmmmmmmaa"
|
||||||
|
/* 3 */ "aammmmmmmmmmmaa"
|
||||||
|
/* 4 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 5 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 6 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 7 */ "mmmmmcbbbdmmmmm"
|
||||||
|
/* 8 */ "mmmmmcaaadmmmmm"
|
||||||
|
/* 9 */ "mmmmmcaaadmmmmm"
|
||||||
|
/* 10 */ "mmmmmcaaadmmmmm"
|
||||||
|
/* 11 */ "mmmmmcaaadmmmmm"
|
||||||
|
|
||||||
|
// Level 3
|
||||||
|
/* z\x* 11111 */
|
||||||
|
/* * 012345678901234 */
|
||||||
|
/* 0 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 1 */ "aammmmmmmmmmmaa"
|
||||||
|
/* 2 */ "aammmmmmmmmmmaa"
|
||||||
|
/* 3 */ "aammmmmmmmmmmaa"
|
||||||
|
/* 4 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 5 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 6 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 7 */ "mmmmmaaaaammmmm"
|
||||||
|
/* 8 */ "mmmmmaaaaammmmm"
|
||||||
|
/* 9 */ "mmmmmaaaaammmmm"
|
||||||
|
/* 10 */ "mmmmmaaaaammmmm"
|
||||||
|
/* 11 */ "mmmmmaaaaammmmm"
|
||||||
|
|
||||||
|
// Level 4
|
||||||
|
/* z\x* 11111 */
|
||||||
|
/* * 012345678901234 */
|
||||||
|
/* 0 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 1 */ "aammmmmmmmmmmaa"
|
||||||
|
/* 2 */ "aammmmmmmmmmmaa"
|
||||||
|
/* 3 */ "aammmmmmmmmmmaa"
|
||||||
|
/* 4 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 5 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 6 */ "mmmmcbbbbbdmmmm"
|
||||||
|
/* 7 */ "mmmmaaaaaaammmm"
|
||||||
|
/* 8 */ "mmmma.....ammmm"
|
||||||
|
/* 9 */ "mmmmaa...aammmm"
|
||||||
|
/* 10 */ "mmmmma...ammmmm"
|
||||||
|
/* 11 */ "mmmmma...ammmmm"
|
||||||
|
|
||||||
|
// Level 5
|
||||||
|
/* z\x* 11111 */
|
||||||
|
/* * 012345678901234 */
|
||||||
|
/* 0 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 1 */ "aadmmmmmmmmmcaa"
|
||||||
|
/* 2 */ "aadmmmmmmmmmcaa"
|
||||||
|
/* 3 */ "aadmmmmmmmmmcaa"
|
||||||
|
/* 4 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 5 */ "mmmcbbbbbbbdmmm"
|
||||||
|
/* 6 */ "mmmaaaaaaaaaamm"
|
||||||
|
/* 7 */ "mmma.......ammm"
|
||||||
|
/* 8 */ "mmmaa.....aammm"
|
||||||
|
/* 9 */ "mmmmam...mammmm"
|
||||||
|
/* 10 */ "mmmmmm...mmmmmm"
|
||||||
|
/* 11 */ "mmmmmm...mmmmmm"
|
||||||
|
|
||||||
|
// Level 6
|
||||||
|
/* z\x* 11111 */
|
||||||
|
/* * 012345678901234 */
|
||||||
|
/* 0 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 1 */ "aaademmmmmecaaa"
|
||||||
|
/* 2 */ "aaademmmmmecaaa"
|
||||||
|
/* 3 */ "aaademmmmmecaaa"
|
||||||
|
/* 4 */ "mmaaabbbbbaaaam"
|
||||||
|
/* 5 */ "mmaaaaaaaaaaaam"
|
||||||
|
/* 6 */ "mma.........amm"
|
||||||
|
/* 7 */ "mmaa.......aamm"
|
||||||
|
/* 8 */ "mmmam.....mammm"
|
||||||
|
/* 9 */ "mmmmmm...mmmmmm"
|
||||||
|
/* 10 */ "mmmmmm...mmmmmm"
|
||||||
|
/* 11 */ "mmmmmm...mmmmmm"
|
||||||
|
|
||||||
|
// Level 7
|
||||||
|
/* z\x* 11111 */
|
||||||
|
/* * 012345678901234 */
|
||||||
|
/* 0 */ "bbbbbbbbbbbbbbb"
|
||||||
|
/* 1 */ "aaaaaaaaaaaaaaa"
|
||||||
|
/* 2 */ "aaaaaaaaaaaaaaa"
|
||||||
|
/* 3 */ "aaaaaaaaaaaaaaa"
|
||||||
|
/* 4 */ "faaaaaaaaaaaaaa"
|
||||||
|
/* 5 */ "ma...........am"
|
||||||
|
/* 6 */ "maa.........aam"
|
||||||
|
/* 7 */ "mmam.......mamm"
|
||||||
|
/* 8 */ "mmmmm.....mmmmm"
|
||||||
|
/* 9 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 10 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 11 */ "mmmmmmmmmmmmmmm"
|
||||||
|
|
||||||
|
// Level 8
|
||||||
|
/* z\x* 11111 */
|
||||||
|
/* * 012345678901234 */
|
||||||
|
/* 0 */ "aaaaaaaaaaaaaaa"
|
||||||
|
/* 1 */ "aaaaaaaaaaaaaaa"
|
||||||
|
/* 2 */ "aaaaaaaaaaaaaaa"
|
||||||
|
/* 3 */ "aaaaaaaaaaaaaaa"
|
||||||
|
/* 4 */ "a.............a"
|
||||||
|
/* 5 */ "aa...........aa"
|
||||||
|
/* 6 */ "mam.........mam"
|
||||||
|
/* 7 */ "mmmm.......mmmm"
|
||||||
|
/* 8 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 9 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 10 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 11 */ "mmmmmmmmmmmmmmm"
|
||||||
|
|
||||||
|
// Level 9
|
||||||
|
/* z\x* 11111 */
|
||||||
|
/* * 012345678901234 */
|
||||||
|
/* 0 */ "aaaaaaaaaaaaaaa"
|
||||||
|
/* 1 */ "..............."
|
||||||
|
/* 2 */ "..............."
|
||||||
|
/* 3 */ "..............."
|
||||||
|
/* 4 */ "a.............a"
|
||||||
|
/* 5 */ "am............a"
|
||||||
|
/* 6 */ "mmm.........mmm"
|
||||||
|
/* 7 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 8 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 9 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 10 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 11 */ "mmmmmmmmmmmmmmm"
|
||||||
|
|
||||||
|
// Level 10
|
||||||
|
/* z\x* 11111 */
|
||||||
|
/* * 012345678901234 */
|
||||||
|
/* 0 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 1 */ "..............."
|
||||||
|
/* 2 */ "..............."
|
||||||
|
/* 3 */ "..............."
|
||||||
|
/* 4 */ "m.............m"
|
||||||
|
/* 5 */ "mm............m"
|
||||||
|
/* 6 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 7 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 8 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 9 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 10 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 11 */ "mmmmmmmmmmmmmmm"
|
||||||
|
|
||||||
|
// Level 11
|
||||||
|
/* z\x* 11111 */
|
||||||
|
/* * 012345678901234 */
|
||||||
|
/* 0 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 1 */ "..............."
|
||||||
|
/* 2 */ "..............."
|
||||||
|
/* 3 */ "..............."
|
||||||
|
/* 4 */ "m.............m"
|
||||||
|
/* 5 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 6 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 7 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 8 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 9 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 10 */ "mmmmmmmmmmmmmmm"
|
||||||
|
/* 11 */ "mmmmmmmmmmmmmmm",
|
||||||
|
|
||||||
|
// Connectors:
|
||||||
|
"0: 7, 4, 11: 3\n" /* Type 0, direction Z+ */
|
||||||
|
"0: 0, 9, 2: 4\n" /* Type 0, direction X- */
|
||||||
|
"0: 14, 9, 2: 5\n" /* Type 0, direction X+ */,
|
||||||
|
|
||||||
|
// AllowedRotations:
|
||||||
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
|
// Merge strategy:
|
||||||
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
5,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
|
}, // BridgeFunnelDown
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// BridgeLevelCrossing:
|
// BridgeLevelCrossing:
|
||||||
// The data has been exported from the gallery Nether, area index 45, ID 304, created by Aloe_vera
|
// The data has been exported from the gallery Nether, area index 45, ID 304, created by Aloe_vera
|
||||||
@ -1514,10 +1858,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"",
|
"",
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
100,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // BridgeLevelCrossing
|
}, // BridgeLevelCrossing
|
||||||
|
|
||||||
|
|
||||||
@ -1617,10 +1973,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"0: 14, 5, 2: 5\n" /* Type 0, direction X+ */,
|
"0: 14, 5, 2: 5\n" /* Type 0, direction X+ */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
500,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
1000,
|
||||||
}, // BridgeSegment
|
}, // BridgeSegment
|
||||||
|
|
||||||
|
|
||||||
@ -1761,10 +2129,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"0: 14, 5, 2: 5\n" /* Type 0, direction X+ */,
|
"0: 14, 5, 2: 5\n" /* Type 0, direction X+ */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
10,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"1:500",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // BridgeTee
|
}, // BridgeTee
|
||||||
|
|
||||||
|
|
||||||
@ -1844,10 +2224,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"1: 0, 1, 2: 4\n" /* Type 1, direction X- */,
|
"1: 0, 1, 2: 4\n" /* Type 1, direction X- */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
200,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // Corridor11
|
}, // Corridor11
|
||||||
|
|
||||||
|
|
||||||
@ -1927,10 +2319,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"1: 0, 1, 2: 4\n" /* Type 1, direction X- */,
|
"1: 0, 1, 2: 4\n" /* Type 1, direction X- */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
200,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // Corridor13
|
}, // Corridor13
|
||||||
|
|
||||||
|
|
||||||
@ -2048,10 +2452,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"1: 10, 1, 2: 5\n" /* Type 1, direction X+ */,
|
"1: 10, 1, 2: 5\n" /* Type 1, direction X+ */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
100,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // CorridorCorner5
|
}, // CorridorCorner5
|
||||||
|
|
||||||
|
|
||||||
@ -2170,10 +2586,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"1: 2, 1, 10: 3\n" /* Type 1, direction Z+ */,
|
"1: 2, 1, 10: 3\n" /* Type 1, direction Z+ */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
100,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // CorridorCornerChest5
|
}, // CorridorCornerChest5
|
||||||
|
|
||||||
|
|
||||||
@ -2304,10 +2732,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"1: 8, 8, 2: 5\n" /* Type 1, direction X+ */,
|
"1: 8, 8, 2: 5\n" /* Type 1, direction X+ */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
100,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // CorridorStairs
|
}, // CorridorStairs
|
||||||
|
|
||||||
|
|
||||||
@ -2367,11 +2807,11 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
// Level 4
|
// Level 4
|
||||||
/* z\x* 1111 */
|
/* z\x* 1111 */
|
||||||
/* * 01234567890123 */
|
/* * 01234567890123 */
|
||||||
/* 0 */ "aaaaaaaaaaaaaa"
|
/* 0 */ "aabaaaaaaaabaa"
|
||||||
/* 1 */ ".............."
|
/* 1 */ ".............."
|
||||||
/* 2 */ ".............."
|
/* 2 */ ".............."
|
||||||
/* 3 */ ".............."
|
/* 3 */ ".............."
|
||||||
/* 4 */ "aaaaaaaaaaaaaa"
|
/* 4 */ "aabaaaaaaaabaa"
|
||||||
|
|
||||||
// Level 5
|
// Level 5
|
||||||
/* z\x* 1111 */
|
/* z\x* 1111 */
|
||||||
@ -2387,10 +2827,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"1: 13, 1, 2: 5\n" /* Type 1, direction X+ */,
|
"1: 13, 1, 2: 5\n" /* Type 1, direction X+ */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
100,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // DarkCorridor
|
}, // DarkCorridor
|
||||||
|
|
||||||
|
|
||||||
@ -2625,10 +3077,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"1: 9, 1, 0: 2\n" /* Type 1, direction Z- */,
|
"1: 9, 1, 0: 2\n" /* Type 1, direction Z- */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
100,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // LavaStaircase
|
}, // LavaStaircase
|
||||||
|
|
||||||
|
|
||||||
@ -2938,10 +3402,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"1: 0, 9, 7: 4\n" /* Type 1, direction X- */,
|
"1: 0, 9, 7: 4\n" /* Type 1, direction X- */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
100,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // LavaStaircaseBig
|
}, // LavaStaircaseBig
|
||||||
|
|
||||||
|
|
||||||
@ -3200,10 +3676,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"",
|
"",
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
100,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // LavaStairsBridge
|
}, // LavaStairsBridge
|
||||||
|
|
||||||
|
|
||||||
@ -3370,10 +3858,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"1: 0, 1, 6: 4\n" /* Type 1, direction X- */,
|
"1: 0, 1, 6: 4\n" /* Type 1, direction X- */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
100,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // MidStaircase
|
}, // MidStaircase
|
||||||
|
|
||||||
|
|
||||||
@ -3497,10 +3997,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"0: 3, 1, 0: 2\n" /* Type 0, direction Z- */,
|
"0: 3, 1, 0: 2\n" /* Type 0, direction Z- */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
100,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // StairsToOpen1
|
}, // StairsToOpen1
|
||||||
|
|
||||||
|
|
||||||
@ -3624,10 +4136,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"0: 3, 1, 0: 2\n" /* Type 0, direction Z- */,
|
"0: 3, 1, 0: 2\n" /* Type 0, direction Z- */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
100,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // StairsToOpen2
|
}, // StairsToOpen2
|
||||||
|
|
||||||
|
|
||||||
@ -3722,10 +4246,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"1: 12, 1, 4: 5\n" /* Type 1, direction X+ */,
|
"1: 12, 1, 4: 5\n" /* Type 1, direction X+ */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
100,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // Tee2x4
|
}, // Tee2x4
|
||||||
|
|
||||||
|
|
||||||
@ -3832,10 +4368,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"1: 12, 1, 6: 5\n" /* Type 1, direction X+ */,
|
"1: 12, 1, 6: 5\n" /* Type 1, direction X+ */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
100,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // Tee4x4
|
}, // Tee4x4
|
||||||
|
|
||||||
|
|
||||||
@ -3921,10 +4469,22 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
|
|||||||
"0: 3, 1, 6: 3\n" /* Type 0, direction Z+ */,
|
"0: 3, 1, 6: 3\n" /* Type 0, direction Z+ */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
100,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
-99,
|
||||||
}, // Turret
|
}, // Turret
|
||||||
}; // g_NetherFortPrefabs
|
}; // g_NetherFortPrefabs
|
||||||
|
|
||||||
@ -4108,10 +4668,22 @@ const cPrefab::sDef g_NetherFortStartingPrefabs[] =
|
|||||||
"1: 6, 1, 12: 3\n" /* Type 1, direction Z+ */,
|
"1: 6, 1, 12: 3\n" /* Type 1, direction Z+ */,
|
||||||
|
|
||||||
// AllowedRotations:
|
// AllowedRotations:
|
||||||
7, /* 1, 2, 3 CCW rotations */
|
7, /* 1, 2, 3 CCW rotation allowed */
|
||||||
|
|
||||||
// Merge strategy:
|
// Merge strategy:
|
||||||
cBlockArea::msSpongePrint,
|
cBlockArea::msSpongePrint,
|
||||||
|
|
||||||
|
// ShouldExtendFloor:
|
||||||
|
false,
|
||||||
|
|
||||||
|
// DefaultWeight:
|
||||||
|
100,
|
||||||
|
|
||||||
|
// DepthWeight:
|
||||||
|
"",
|
||||||
|
|
||||||
|
// AddWeightIfSame:
|
||||||
|
0,
|
||||||
}, // CentralRoom
|
}, // CentralRoom
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user