1
0

Added a size check for portals.

Made the portal size configurable

Alpha-sorted SetXYZNetherPortalXYZ functions
This commit is contained in:
STRWarrior
2015-06-13 14:57:51 +02:00
parent 257011b440
commit e5cfe0cd96
5 changed files with 56 additions and 0 deletions

View File

@@ -121,6 +121,20 @@ public:
}
}
int PortalHeight = MaxY - Y - 1;
int PortalWidth = XZP - XZM + 1;
if ((PortalHeight < a_WorldInterface.GetMinNetherPortalHeight()) || (PortalHeight > a_WorldInterface.GetMaxNetherPortalHeight()))
{
// The portal isn't high enough, or is too high
return;
}
if ((PortalWidth < a_WorldInterface.GetMinNetherPortalWidth()) || (PortalWidth > a_WorldInterface.GetMaxNetherPortalWidth()))
{
// The portal isn't wide enough, or is too wide
return;
}
for (int Height = Y + 1; Height <= MaxY - 1; Height++) // Loop through boundary to set portal blocks
{
for (int Width = XZM; Width <= XZP; Width++)

View File

@@ -55,6 +55,18 @@ public:
/** Returns true if it is raining, stormy or snowing at the specified location. This takes into account biomes. */
virtual bool IsWeatherWetAt(int a_BlockX, int a_BlockZ) = 0;
/** Returns or sets the minumim or maximum netherportal width */
virtual int GetMinNetherPortalWidth(void) const = 0;
virtual int GetMaxNetherPortalWidth(void) const = 0;
virtual void SetMinNetherPortalWidth(int a_NewMinWidth) = 0;
virtual void SetMaxNetherPortalWidth(int a_NewMaxWidth) = 0;
/** Returns or sets the minumim or maximum netherportal height */
virtual int GetMinNetherPortalHeight(void) const = 0;
virtual int GetMaxNetherPortalHeight(void) const = 0;
virtual void SetMinNetherPortalHeight(int a_NewMinHeight) = 0;
virtual void SetMaxNetherPortalHeight(int a_NewMaxHeight) = 0;
/** Returns the world height at the specified coords; waits for the chunk to get loaded / generated */
virtual int GetHeight(int a_BlockX, int a_BlockZ) = 0;