Removed coord-based API from cCuboid. (#4362)
This commit is contained in:
parent
a2547bf1fe
commit
e7016b1525
@ -570,28 +570,12 @@ return
|
|||||||
Params =
|
Params =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
Name = "X1",
|
Name = "Point1",
|
||||||
Type = "number",
|
Type = "Vector3i",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name = "Y1",
|
Name = "Point2",
|
||||||
Type = "number",
|
Type = "Vector3i",
|
||||||
},
|
|
||||||
{
|
|
||||||
Name = "Z1",
|
|
||||||
Type = "number",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Name = "X2",
|
|
||||||
Type = "number",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Name = "Y2",
|
|
||||||
Type = "number",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Name = "Z2",
|
|
||||||
Type = "number",
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Notes = "Assigns all the coords to the specified values. Sort-state is ignored.",
|
Notes = "Assigns all the coords to the specified values. Sort-state is ignored.",
|
||||||
@ -713,42 +697,6 @@ return
|
|||||||
},
|
},
|
||||||
Notes = "Creates a new Cuboid object with the specified point as both its corners (the cuboid has a size of 1 in each direction).",
|
Notes = "Creates a new Cuboid object with the specified point as both its corners (the cuboid has a size of 1 in each direction).",
|
||||||
},
|
},
|
||||||
{
|
|
||||||
Params =
|
|
||||||
{
|
|
||||||
{
|
|
||||||
Name = "X1",
|
|
||||||
Type = "number",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Name = "Y1",
|
|
||||||
Type = "number",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Name = "Z1",
|
|
||||||
Type = "number",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Name = "X2",
|
|
||||||
Type = "number",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Name = "Y2",
|
|
||||||
Type = "number",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Name = "Z2",
|
|
||||||
Type = "number",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Returns =
|
|
||||||
{
|
|
||||||
{
|
|
||||||
Type = "cCuboid",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Notes = "Creates a new Cuboid object with the specified points as its corners.",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
DifX =
|
DifX =
|
||||||
{
|
{
|
||||||
@ -868,30 +816,6 @@ return
|
|||||||
},
|
},
|
||||||
IsInside =
|
IsInside =
|
||||||
{
|
{
|
||||||
{
|
|
||||||
Params =
|
|
||||||
{
|
|
||||||
{
|
|
||||||
Name = "X",
|
|
||||||
Type = "number",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Name = "Y",
|
|
||||||
Type = "number",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Name = "Z",
|
|
||||||
Type = "number",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Returns =
|
|
||||||
{
|
|
||||||
{
|
|
||||||
Type = "boolean",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Notes = "Returns true if the specified point (integral coords) is inside this cuboid. Assumes sorted.",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
Params =
|
Params =
|
||||||
{
|
{
|
||||||
@ -940,16 +864,8 @@ return
|
|||||||
Params =
|
Params =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
Name = "OffsetX",
|
Name = "Offset",
|
||||||
Type = "number",
|
Type = "Vector3i",
|
||||||
},
|
|
||||||
{
|
|
||||||
Name = "OffsetY",
|
|
||||||
Type = "number",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Name = "OffsetZ",
|
|
||||||
Type = "number",
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Notes = "Adds the specified offsets to each respective coord, effectively moving the Cuboid. Sort-state is ignored and preserved.",
|
Notes = "Adds the specified offsets to each respective coord, effectively moving the Cuboid. Sort-state is ignored and preserved.",
|
||||||
|
@ -3954,6 +3954,134 @@ static int tolua_cCompositeChat_UnderlineUrls(lua_State * tolua_S)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static int tolua_cCuboid_Assign(lua_State * tolua_S)
|
||||||
|
{
|
||||||
|
cLuaState L(tolua_S);
|
||||||
|
|
||||||
|
if (!L.CheckParamSelf("cCuboid"))
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
cCuboid * self = nullptr;
|
||||||
|
L.GetStackValue(1, self);
|
||||||
|
|
||||||
|
// Check the old coord-based signature:
|
||||||
|
int x1, y1, z1, x2, y2, z2;
|
||||||
|
if (L.GetStackValues(2, x1, y1, z1, x2, y2, z2))
|
||||||
|
{
|
||||||
|
LOGWARNING("cCuboid:Assign(x1, y1, z1, x2, y2, z2) is deprecated, use cCuboid:Assign(Vector3i, Vector3i) instead.");
|
||||||
|
L.LogStackTrace();
|
||||||
|
self->Assign({x1, y1, z1}, {x2, y2, z2});
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Try the (cCuboid) param version:
|
||||||
|
cCuboid * other = nullptr;
|
||||||
|
if (L.GetStackValue(2, other) && (other != nullptr))
|
||||||
|
{
|
||||||
|
self->Assign(*other);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Try the (Vector3i, Vector3i) param version:
|
||||||
|
Vector3i * pt1 = nullptr;
|
||||||
|
Vector3i * pt2 = nullptr;
|
||||||
|
if (L.GetStackValues(2, pt1, pt2) && (pt1 != nullptr) && (pt2 != nullptr))
|
||||||
|
{
|
||||||
|
self->Assign(*pt1, *pt2);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return L.ApiParamError("Invalid parameter, expected either a cCuboid or two Vector3i-s.");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static int tolua_cCuboid_IsInside(lua_State * tolua_S)
|
||||||
|
{
|
||||||
|
cLuaState L(tolua_S);
|
||||||
|
|
||||||
|
if (!L.CheckParamSelf("cCuboid"))
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
cCuboid * self = nullptr;
|
||||||
|
L.GetStackValue(1, self);
|
||||||
|
|
||||||
|
// Check the old coord-based signature:
|
||||||
|
int x, y, z;
|
||||||
|
if (L.GetStackValues(2, x, y, z))
|
||||||
|
{
|
||||||
|
LOGWARNING("cCuboid:IsInside(x, y, z) is deprecated, use cCuboid:IsInside(Vector3d) instead.");
|
||||||
|
L.LogStackTrace();
|
||||||
|
self->Move({x, y, z});
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Try the (Vector3i) param version:
|
||||||
|
{
|
||||||
|
Vector3i * pt = nullptr;
|
||||||
|
if (L.GetStackValue(2, pt) && (pt != nullptr))
|
||||||
|
{
|
||||||
|
L.Push(self->IsInside(*pt));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Try the (Vector3d) param version:
|
||||||
|
{
|
||||||
|
Vector3d * pt = nullptr;
|
||||||
|
if (L.GetStackValue(2, pt) && (pt != nullptr))
|
||||||
|
{
|
||||||
|
L.Push(self->IsInside(*pt));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return L.ApiParamError("Invalid parameter #2, expected a Vector3i or a Vector3d.");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static int tolua_cCuboid_Move(lua_State * tolua_S)
|
||||||
|
{
|
||||||
|
cLuaState L(tolua_S);
|
||||||
|
|
||||||
|
if (!L.CheckParamSelf("cCuboid"))
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
cCuboid * self = nullptr;
|
||||||
|
L.GetStackValue(1, self);
|
||||||
|
|
||||||
|
// Check the old coord-based signature:
|
||||||
|
int x, y, z;
|
||||||
|
if (L.GetStackValues(2, x, y, z))
|
||||||
|
{
|
||||||
|
LOGWARNING("cCuboid:Move(x, y, z) is deprecated, use cCuboid:Move(Vector3i) instead.");
|
||||||
|
L.LogStackTrace();
|
||||||
|
self->Move({x, y, z});
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector3i * offset = nullptr;
|
||||||
|
if (!L.GetStackValue(2, offset) || (offset == nullptr))
|
||||||
|
{
|
||||||
|
return L.ApiParamError("Invalid parameter #2, expected a Vector3i.");
|
||||||
|
}
|
||||||
|
self->Move(*offset);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int tolua_cEntity_IsSubmerged(lua_State * tolua_S)
|
static int tolua_cEntity_IsSubmerged(lua_State * tolua_S)
|
||||||
{
|
{
|
||||||
// Check the params:
|
// Check the params:
|
||||||
@ -4121,6 +4249,12 @@ void cManualBindings::Bind(lua_State * tolua_S)
|
|||||||
tolua_function(tolua_S, "sha1HexString", tolua_sha1HexString);
|
tolua_function(tolua_S, "sha1HexString", tolua_sha1HexString);
|
||||||
tolua_endmodule(tolua_S);
|
tolua_endmodule(tolua_S);
|
||||||
|
|
||||||
|
tolua_beginmodule(tolua_S, "cCuboid");
|
||||||
|
tolua_function(tolua_S, "Assign", tolua_cCuboid_Assign);
|
||||||
|
tolua_function(tolua_S, "IsInside", tolua_cCuboid_IsInside);
|
||||||
|
tolua_function(tolua_S, "Move", tolua_cCuboid_Move);
|
||||||
|
tolua_endmodule(tolua_S);
|
||||||
|
|
||||||
tolua_beginmodule(tolua_S, "cEntity");
|
tolua_beginmodule(tolua_S, "cEntity");
|
||||||
tolua_constant(tolua_S, "INVALID_ID", cEntity::INVALID_ID);
|
tolua_constant(tolua_S, "INVALID_ID", cEntity::INVALID_ID);
|
||||||
tolua_function(tolua_S, "IsSubmerged", tolua_cEntity_IsSubmerged);
|
tolua_function(tolua_S, "IsSubmerged", tolua_cEntity_IsSubmerged);
|
||||||
|
@ -10,14 +10,10 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// cCuboid:
|
// cCuboid:
|
||||||
|
|
||||||
void cCuboid::Assign(int a_X1, int a_Y1, int a_Z1, int a_X2, int a_Y2, int a_Z2)
|
void cCuboid::Assign(Vector3i a_Point1, Vector3i a_Point2)
|
||||||
{
|
{
|
||||||
p1.x = a_X1;
|
p1 = a_Point1;
|
||||||
p1.y = a_Y1;
|
p2 = a_Point2;
|
||||||
p1.z = a_Z1;
|
|
||||||
p2.x = a_X2;
|
|
||||||
p2.y = a_Y2;
|
|
||||||
p2.z = a_Z2;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -75,14 +71,10 @@ bool cCuboid::IsCompletelyInside(const cCuboid & a_Outer) const
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void cCuboid::Move(int a_OfsX, int a_OfsY, int a_OfsZ)
|
void cCuboid::Move(Vector3i a_Offset)
|
||||||
{
|
{
|
||||||
p1.x += a_OfsX;
|
p1.Move(a_Offset);
|
||||||
p1.y += a_OfsY;
|
p2.Move(a_Offset);
|
||||||
p1.z += a_OfsZ;
|
|
||||||
p2.x += a_OfsX;
|
|
||||||
p2.y += a_OfsY;
|
|
||||||
p2.z += a_OfsZ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
39
src/Cuboid.h
39
src/Cuboid.h
@ -13,22 +13,21 @@ public:
|
|||||||
Vector3i p1, p2;
|
Vector3i p1, p2;
|
||||||
|
|
||||||
cCuboid(void) {}
|
cCuboid(void) {}
|
||||||
cCuboid(const Vector3i & a_p1, const Vector3i & a_p2) : p1(a_p1), p2(a_p2) {}
|
cCuboid(Vector3i a_p1, Vector3i a_p2) : p1(a_p1), p2(a_p2) {}
|
||||||
cCuboid(int a_X1, int a_Y1, int a_Z1) : p1(a_X1, a_Y1, a_Z1), p2(a_X1, a_Y1, a_Z1) {}
|
cCuboid(int a_X1, int a_Y1, int a_Z1) : p1(a_X1, a_Y1, a_Z1), p2(a_X1, a_Y1, a_Z1) {}
|
||||||
|
|
||||||
#ifdef TOLUA_EXPOSITION // tolua isn't aware of implicitly generated copy constructors
|
#ifdef TOLUA_EXPOSITION // tolua isn't aware of implicitly generated copy constructors
|
||||||
cCuboid(const cCuboid & a_Cuboid);
|
cCuboid(const cCuboid & a_Cuboid);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// DEPRECATED, use cCuboid(Vector3i, Vector3i) instead
|
// tolua_end
|
||||||
cCuboid(int a_X1, int a_Y1, int a_Z1, int a_X2, int a_Y2, int a_Z2) : p1(a_X1, a_Y1, a_Z1), p2(a_X2, a_Y2, a_Z2)
|
// Exported in ManualBindings.cpp to support the old deprecated coord-based overload.
|
||||||
{
|
|
||||||
LOGWARNING("cCuboid(int, int, int, int, int, int) constructor is deprecated, use cCuboid(Vector3i, Vector3i) constructor instead.");
|
|
||||||
}
|
|
||||||
|
|
||||||
void Assign(int a_X1, int a_Y1, int a_Z1, int a_X2, int a_Y2, int a_Z2);
|
void Assign(Vector3i a_Point1, Vector3i a_Point2);
|
||||||
void Assign(const cCuboid & a_SrcCuboid) { *this = a_SrcCuboid; }
|
void Assign(const cCuboid & a_SrcCuboid) { *this = a_SrcCuboid; }
|
||||||
|
|
||||||
|
// tolua_begin
|
||||||
|
|
||||||
void Sort(void);
|
void Sort(void);
|
||||||
|
|
||||||
int DifX(void) const { return p2.x - p1.x; }
|
int DifX(void) const { return p2.x - p1.x; }
|
||||||
@ -55,6 +54,9 @@ public:
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tolua_end
|
||||||
|
// Exported in ManualBindings.cpp to support the old deprecated coord-based overload.
|
||||||
|
|
||||||
bool IsInside(Vector3i v) const
|
bool IsInside(Vector3i v) const
|
||||||
{
|
{
|
||||||
return (
|
return (
|
||||||
@ -64,15 +66,6 @@ public:
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsInside(int a_X, int a_Y, int a_Z) const
|
|
||||||
{
|
|
||||||
return (
|
|
||||||
(a_X >= p1.x) && (a_X <= p2.x) &&
|
|
||||||
(a_Y >= p1.y) && (a_Y <= p2.y) &&
|
|
||||||
(a_Z >= p1.z) && (a_Z <= p2.z)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool IsInside(Vector3d v) const
|
bool IsInside(Vector3d v) const
|
||||||
{
|
{
|
||||||
return (
|
return (
|
||||||
@ -82,12 +75,19 @@ public:
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns true if this cuboid is completely inside the specifie cuboid (in all 6 coords).
|
// tolua_begin
|
||||||
|
|
||||||
|
/** Returns true if this cuboid is completely inside the specified cuboid (in all 6 coords).
|
||||||
Assumes both cuboids are sorted. */
|
Assumes both cuboids are sorted. */
|
||||||
bool IsCompletelyInside(const cCuboid & a_Outer) const;
|
bool IsCompletelyInside(const cCuboid & a_Outer) const;
|
||||||
|
|
||||||
/** Moves the cuboid by the specified offsets in each direction */
|
// tolua_end
|
||||||
void Move(int a_OfsX, int a_OfsY, int a_OfsZ);
|
|
||||||
|
/** Moves the cuboid by the specified offset.
|
||||||
|
Exported in ManualBindings to support the old deprecated coord-based overload. */
|
||||||
|
void Move(Vector3i a_Offset);
|
||||||
|
|
||||||
|
// tolua_begin
|
||||||
|
|
||||||
/** Expands the cuboid by the specified amount in each direction.
|
/** Expands the cuboid by the specified amount in each direction.
|
||||||
Works on unsorted cuboids as well.
|
Works on unsorted cuboids as well.
|
||||||
@ -109,6 +109,7 @@ public:
|
|||||||
/** If needed, expands the cuboid so that it contains the specified point. Assumes sorted. Doesn't contract. */
|
/** If needed, expands the cuboid so that it contains the specified point. Assumes sorted. Doesn't contract. */
|
||||||
void Engulf(Vector3i a_Point);
|
void Engulf(Vector3i a_Point);
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
/** Returns true if the two specified intervals have a non-empty union */
|
/** Returns true if the two specified intervals have a non-empty union */
|
||||||
|
@ -299,8 +299,8 @@ cStructGenMineShafts::cMineShaftSystem::cMineShaftSystem(
|
|||||||
m_MineShafts.push_back(Start);
|
m_MineShafts.push_back(Start);
|
||||||
|
|
||||||
m_BoundingBox.Assign(
|
m_BoundingBox.Assign(
|
||||||
Start->m_BoundingBox.p1.x - a_MaxSystemSize / 2, 2, Start->m_BoundingBox.p1.z - a_MaxSystemSize / 2,
|
{Start->m_BoundingBox.p1.x - a_MaxSystemSize / 2, 2, Start->m_BoundingBox.p1.z - a_MaxSystemSize / 2},
|
||||||
Start->m_BoundingBox.p2.x + a_MaxSystemSize / 2, 50, Start->m_BoundingBox.p2.z + a_MaxSystemSize / 2
|
{Start->m_BoundingBox.p2.x + a_MaxSystemSize / 2, 50, Start->m_BoundingBox.p2.z + a_MaxSystemSize / 2}
|
||||||
);
|
);
|
||||||
|
|
||||||
Start->AppendBranches(0, a_Noise);
|
Start->AppendBranches(0, a_Noise);
|
||||||
@ -639,7 +639,7 @@ void cMineShaftCorridor::ProcessChunk(cChunkDesc & a_ChunkDesc)
|
|||||||
int BlockX = a_ChunkDesc.GetChunkX() * cChunkDef::Width;
|
int BlockX = a_ChunkDesc.GetChunkX() * cChunkDef::Width;
|
||||||
int BlockZ = a_ChunkDesc.GetChunkZ() * cChunkDef::Width;
|
int BlockZ = a_ChunkDesc.GetChunkZ() * cChunkDef::Width;
|
||||||
cCuboid RelBoundingBox(m_BoundingBox);
|
cCuboid RelBoundingBox(m_BoundingBox);
|
||||||
RelBoundingBox.Move(-BlockX, 0, -BlockZ);
|
RelBoundingBox.Move({-BlockX, 0, -BlockZ});
|
||||||
RelBoundingBox.p1.y += 1;
|
RelBoundingBox.p1.y += 1;
|
||||||
RelBoundingBox.p2.y -= 1;
|
RelBoundingBox.p2.y -= 1;
|
||||||
cCuboid Top(RelBoundingBox);
|
cCuboid Top(RelBoundingBox);
|
||||||
@ -818,7 +818,7 @@ void cMineShaftCorridor::PlaceTracks(cChunkDesc & a_ChunkDesc)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
cCuboid Box(m_BoundingBox);
|
cCuboid Box(m_BoundingBox);
|
||||||
Box.Move(-a_ChunkDesc.GetChunkX() * cChunkDef::Width, 1, -a_ChunkDesc.GetChunkZ() * cChunkDef::Width);
|
Box.Move({-a_ChunkDesc.GetChunkX() * cChunkDef::Width, 1, -a_ChunkDesc.GetChunkZ() * cChunkDef::Width});
|
||||||
Box.p2.y = Box.p1.y;
|
Box.p2.y = Box.p1.y;
|
||||||
Box.p1.x += 1;
|
Box.p1.x += 1;
|
||||||
Box.p2.x -= 1;
|
Box.p2.x -= 1;
|
||||||
@ -1061,7 +1061,7 @@ void cMineShaftCrossing::ProcessChunk(cChunkDesc & a_ChunkDesc)
|
|||||||
int BlockX = a_ChunkDesc.GetChunkX() * cChunkDef::Width;
|
int BlockX = a_ChunkDesc.GetChunkX() * cChunkDef::Width;
|
||||||
int BlockZ = a_ChunkDesc.GetChunkZ() * cChunkDef::Width;
|
int BlockZ = a_ChunkDesc.GetChunkZ() * cChunkDef::Width;
|
||||||
cCuboid box(m_BoundingBox);
|
cCuboid box(m_BoundingBox);
|
||||||
box.Move(-BlockX, 0, -BlockZ);
|
box.Move({-BlockX, 0, -BlockZ});
|
||||||
if ((box.p2.x < 0) || (box.p2.z < 0) || (box.p1.x >= cChunkDef::Width) || (box.p1.z > cChunkDef::Width))
|
if ((box.p2.x < 0) || (box.p2.z < 0) || (box.p1.x >= cChunkDef::Width) || (box.p1.z > cChunkDef::Width))
|
||||||
{
|
{
|
||||||
// Does not intersect this chunk
|
// Does not intersect this chunk
|
||||||
@ -1135,22 +1135,22 @@ cMineShaft * cMineShaftStaircase::CreateAndFit(
|
|||||||
{
|
{
|
||||||
case dirXM:
|
case dirXM:
|
||||||
{
|
{
|
||||||
Box.Assign(a_PivotX - 7, a_PivotY - 1, a_PivotZ - 1, a_PivotX, a_PivotY + 6, a_PivotZ + 1);
|
Box.Assign({a_PivotX - 7, a_PivotY - 1, a_PivotZ - 1}, {a_PivotX, a_PivotY + 6, a_PivotZ + 1});
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case dirXP:
|
case dirXP:
|
||||||
{
|
{
|
||||||
Box.Assign(a_PivotX, a_PivotY - 1, a_PivotZ - 1, a_PivotX + 7, a_PivotY + 6, a_PivotZ + 1);
|
Box.Assign({a_PivotX, a_PivotY - 1, a_PivotZ - 1}, {a_PivotX + 7, a_PivotY + 6, a_PivotZ + 1});
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case dirZM:
|
case dirZM:
|
||||||
{
|
{
|
||||||
Box.Assign(a_PivotX - 1, a_PivotY - 1, a_PivotZ - 7, a_PivotX + 1, a_PivotY + 6, a_PivotZ);
|
Box.Assign({a_PivotX - 1, a_PivotY - 1, a_PivotZ - 7}, {a_PivotX + 1, a_PivotY + 6, a_PivotZ});
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case dirZP:
|
case dirZP:
|
||||||
{
|
{
|
||||||
Box.Assign(a_PivotX - 1, a_PivotY - 1, a_PivotZ, a_PivotX + 1, a_PivotY + 6, a_PivotZ + 7);
|
Box.Assign({a_PivotX - 1, a_PivotY - 1, a_PivotZ}, {a_PivotX + 1, a_PivotY + 6, a_PivotZ + 7});
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1158,7 +1158,7 @@ cMineShaft * cMineShaftStaircase::CreateAndFit(
|
|||||||
if ((rnd % 4) < 2) // 50 %
|
if ((rnd % 4) < 2) // 50 %
|
||||||
{
|
{
|
||||||
Slope = sDown;
|
Slope = sDown;
|
||||||
Box.Move(0, -4, 0);
|
Box.Move({0, -4, 0});
|
||||||
}
|
}
|
||||||
if (!a_ParentSystem.CanAppend(Box))
|
if (!a_ParentSystem.CanAppend(Box))
|
||||||
{
|
{
|
||||||
@ -1192,7 +1192,7 @@ void cMineShaftStaircase::ProcessChunk(cChunkDesc & a_ChunkDesc)
|
|||||||
int BlockX = a_ChunkDesc.GetChunkX() * cChunkDef::Width;
|
int BlockX = a_ChunkDesc.GetChunkX() * cChunkDef::Width;
|
||||||
int BlockZ = a_ChunkDesc.GetChunkZ() * cChunkDef::Width;
|
int BlockZ = a_ChunkDesc.GetChunkZ() * cChunkDef::Width;
|
||||||
cCuboid RelB(m_BoundingBox);
|
cCuboid RelB(m_BoundingBox);
|
||||||
RelB.Move(-BlockX, 0, -BlockZ);
|
RelB.Move({-BlockX, 0, -BlockZ});
|
||||||
if (
|
if (
|
||||||
(RelB.p1.x >= cChunkDef::Width) ||
|
(RelB.p1.x >= cChunkDef::Width) ||
|
||||||
(RelB.p1.z >= cChunkDef::Width) ||
|
(RelB.p1.z >= cChunkDef::Width) ||
|
||||||
@ -1217,12 +1217,12 @@ void cMineShaftStaircase::ProcessChunk(cChunkDesc & a_ChunkDesc)
|
|||||||
a_ChunkDesc.FillRelCuboid (RelB.p1.x, RelB.p1.x + 1, DFloor, DFloor + 2, RelB.p1.z, RelB.p2.z, E_BLOCK_AIR, 0);
|
a_ChunkDesc.FillRelCuboid (RelB.p1.x, RelB.p1.x + 1, DFloor, DFloor + 2, RelB.p1.z, RelB.p2.z, E_BLOCK_AIR, 0);
|
||||||
a_ChunkDesc.FloorRelCuboid(RelB.p2.x - 1, RelB.p2.x, SFloor - 1, SFloor - 1, RelB.p1.z, RelB.p2.z, E_BLOCK_PLANKS, 0);
|
a_ChunkDesc.FloorRelCuboid(RelB.p2.x - 1, RelB.p2.x, SFloor - 1, SFloor - 1, RelB.p1.z, RelB.p2.z, E_BLOCK_PLANKS, 0);
|
||||||
a_ChunkDesc.FloorRelCuboid(RelB.p1.x, RelB.p1.x + 1, DFloor - 1, DFloor - 1, RelB.p1.z, RelB.p2.z, E_BLOCK_PLANKS, 0);
|
a_ChunkDesc.FloorRelCuboid(RelB.p1.x, RelB.p1.x + 1, DFloor - 1, DFloor - 1, RelB.p1.z, RelB.p2.z, E_BLOCK_PLANKS, 0);
|
||||||
Box.Assign(RelB.p2.x - 2, SFloor + InitAdd, RelB.p1.z, RelB.p2.x - 2, SFloor + 3 + InitAdd, RelB.p2.z);
|
Box.Assign({RelB.p2.x - 2, SFloor + InitAdd, RelB.p1.z}, {RelB.p2.x - 2, SFloor + 3 + InitAdd, RelB.p2.z});
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
a_ChunkDesc.FillRelCuboid(Box, E_BLOCK_AIR, 0);
|
a_ChunkDesc.FillRelCuboid(Box, E_BLOCK_AIR, 0);
|
||||||
a_ChunkDesc.FloorRelCuboid(Box.p1.x, Box.p2.x, Box.p1.y - 1, Box.p1.y - 1, Box.p1.z, Box.p2.z, E_BLOCK_PLANKS, 0);
|
a_ChunkDesc.FloorRelCuboid(Box.p1.x, Box.p2.x, Box.p1.y - 1, Box.p1.y - 1, Box.p1.z, Box.p2.z, E_BLOCK_PLANKS, 0);
|
||||||
Box.Move(-1, Add, 0);
|
Box.Move({-1, Add, 0});
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1233,12 +1233,12 @@ void cMineShaftStaircase::ProcessChunk(cChunkDesc & a_ChunkDesc)
|
|||||||
a_ChunkDesc.FillRelCuboid (RelB.p2.x - 1, RelB.p2.x, DFloor, DFloor + 2, RelB.p1.z, RelB.p2.z, E_BLOCK_AIR, 0);
|
a_ChunkDesc.FillRelCuboid (RelB.p2.x - 1, RelB.p2.x, DFloor, DFloor + 2, RelB.p1.z, RelB.p2.z, E_BLOCK_AIR, 0);
|
||||||
a_ChunkDesc.FloorRelCuboid(RelB.p1.x, RelB.p1.x + 1, SFloor - 1, SFloor - 1, RelB.p1.z, RelB.p2.z, E_BLOCK_PLANKS, 0);
|
a_ChunkDesc.FloorRelCuboid(RelB.p1.x, RelB.p1.x + 1, SFloor - 1, SFloor - 1, RelB.p1.z, RelB.p2.z, E_BLOCK_PLANKS, 0);
|
||||||
a_ChunkDesc.FloorRelCuboid(RelB.p2.x - 1, RelB.p2.x, DFloor - 1, DFloor - 1, RelB.p1.z, RelB.p2.z, E_BLOCK_PLANKS, 0);
|
a_ChunkDesc.FloorRelCuboid(RelB.p2.x - 1, RelB.p2.x, DFloor - 1, DFloor - 1, RelB.p1.z, RelB.p2.z, E_BLOCK_PLANKS, 0);
|
||||||
Box.Assign(RelB.p1.x + 2, SFloor + InitAdd, RelB.p1.z, RelB.p1.x + 2, SFloor + 3 + InitAdd, RelB.p2.z);
|
Box.Assign({RelB.p1.x + 2, SFloor + InitAdd, RelB.p1.z}, {RelB.p1.x + 2, SFloor + 3 + InitAdd, RelB.p2.z});
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
a_ChunkDesc.FillRelCuboid(Box, E_BLOCK_AIR, 0);
|
a_ChunkDesc.FillRelCuboid(Box, E_BLOCK_AIR, 0);
|
||||||
a_ChunkDesc.FloorRelCuboid(Box.p1.x, Box.p2.x, Box.p1.y - 1, Box.p1.y - 1, Box.p1.z, Box.p2.z, E_BLOCK_PLANKS, 0);
|
a_ChunkDesc.FloorRelCuboid(Box.p1.x, Box.p2.x, Box.p1.y - 1, Box.p1.y - 1, Box.p1.z, Box.p2.z, E_BLOCK_PLANKS, 0);
|
||||||
Box.Move(1, Add, 0);
|
Box.Move({1, Add, 0});
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1249,12 +1249,12 @@ void cMineShaftStaircase::ProcessChunk(cChunkDesc & a_ChunkDesc)
|
|||||||
a_ChunkDesc.FillRelCuboid (RelB.p1.x, RelB.p2.x, DFloor, DFloor + 2, RelB.p1.z, RelB.p1.z + 1, E_BLOCK_AIR, 0);
|
a_ChunkDesc.FillRelCuboid (RelB.p1.x, RelB.p2.x, DFloor, DFloor + 2, RelB.p1.z, RelB.p1.z + 1, E_BLOCK_AIR, 0);
|
||||||
a_ChunkDesc.FloorRelCuboid(RelB.p1.x, RelB.p2.x, SFloor - 1, SFloor - 1, RelB.p2.z - 1, RelB.p2.z, E_BLOCK_PLANKS, 0);
|
a_ChunkDesc.FloorRelCuboid(RelB.p1.x, RelB.p2.x, SFloor - 1, SFloor - 1, RelB.p2.z - 1, RelB.p2.z, E_BLOCK_PLANKS, 0);
|
||||||
a_ChunkDesc.FloorRelCuboid(RelB.p1.x, RelB.p2.x, DFloor - 1, DFloor - 1, RelB.p1.z, RelB.p1.z + 1, E_BLOCK_PLANKS, 0);
|
a_ChunkDesc.FloorRelCuboid(RelB.p1.x, RelB.p2.x, DFloor - 1, DFloor - 1, RelB.p1.z, RelB.p1.z + 1, E_BLOCK_PLANKS, 0);
|
||||||
Box.Assign(RelB.p1.x, SFloor + InitAdd, RelB.p2.z - 2, RelB.p2.x, SFloor + 3 + InitAdd, RelB.p2.z - 2);
|
Box.Assign({RelB.p1.x, SFloor + InitAdd, RelB.p2.z - 2}, {RelB.p2.x, SFloor + 3 + InitAdd, RelB.p2.z - 2});
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
a_ChunkDesc.FillRelCuboid(Box, E_BLOCK_AIR, 0);
|
a_ChunkDesc.FillRelCuboid(Box, E_BLOCK_AIR, 0);
|
||||||
a_ChunkDesc.FloorRelCuboid(Box.p1.x, Box.p2.x, Box.p1.y - 1, Box.p1.y - 1, Box.p1.z, Box.p2.z, E_BLOCK_PLANKS, 0);
|
a_ChunkDesc.FloorRelCuboid(Box.p1.x, Box.p2.x, Box.p1.y - 1, Box.p1.y - 1, Box.p1.z, Box.p2.z, E_BLOCK_PLANKS, 0);
|
||||||
Box.Move(0, Add, -1);
|
Box.Move({0, Add, -1});
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1265,12 +1265,12 @@ void cMineShaftStaircase::ProcessChunk(cChunkDesc & a_ChunkDesc)
|
|||||||
a_ChunkDesc.FillRelCuboid (RelB.p1.x, RelB.p2.x, DFloor, DFloor + 2, RelB.p2.z - 1, RelB.p2.z, E_BLOCK_AIR, 0);
|
a_ChunkDesc.FillRelCuboid (RelB.p1.x, RelB.p2.x, DFloor, DFloor + 2, RelB.p2.z - 1, RelB.p2.z, E_BLOCK_AIR, 0);
|
||||||
a_ChunkDesc.FloorRelCuboid(RelB.p1.x, RelB.p2.x, SFloor - 1, SFloor - 1, RelB.p1.z, RelB.p1.z + 1, E_BLOCK_PLANKS, 0);
|
a_ChunkDesc.FloorRelCuboid(RelB.p1.x, RelB.p2.x, SFloor - 1, SFloor - 1, RelB.p1.z, RelB.p1.z + 1, E_BLOCK_PLANKS, 0);
|
||||||
a_ChunkDesc.FloorRelCuboid(RelB.p1.x, RelB.p2.x, DFloor - 1, DFloor - 1, RelB.p2.z - 1, RelB.p2.z, E_BLOCK_PLANKS, 0);
|
a_ChunkDesc.FloorRelCuboid(RelB.p1.x, RelB.p2.x, DFloor - 1, DFloor - 1, RelB.p2.z - 1, RelB.p2.z, E_BLOCK_PLANKS, 0);
|
||||||
Box.Assign(RelB.p1.x, SFloor + InitAdd, RelB.p1.z + 2, RelB.p2.x, SFloor + 3 + InitAdd, RelB.p1.z + 2);
|
Box.Assign({RelB.p1.x, SFloor + InitAdd, RelB.p1.z + 2}, {RelB.p2.x, SFloor + 3 + InitAdd, RelB.p1.z + 2});
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
a_ChunkDesc.FillRelCuboid(Box, E_BLOCK_AIR, 0);
|
a_ChunkDesc.FillRelCuboid(Box, E_BLOCK_AIR, 0);
|
||||||
a_ChunkDesc.FloorRelCuboid(Box.p1.x, Box.p2.x, Box.p1.y - 1, Box.p1.y - 1, Box.p1.z, Box.p2.z, E_BLOCK_PLANKS, 0);
|
a_ChunkDesc.FloorRelCuboid(Box.p1.x, Box.p2.x, Box.p1.y - 1, Box.p1.y - 1, Box.p1.z, Box.p2.z, E_BLOCK_PLANKS, 0);
|
||||||
Box.Move(0, Add, 1);
|
Box.Move({0, Add, 1});
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user