Cauldrons check the heightmap
This commit is contained in:
parent
7188a1f670
commit
a70b8298b6
@ -61,8 +61,12 @@ public:
|
||||
|
||||
virtual void OnUpdate(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, cBlockPluginInterface & a_PluginInterface, cChunk & a_Chunk, int a_RelX, int a_RelY, int a_RelZ) override
|
||||
{
|
||||
if (IsBiomeNoDownfall(a_Chunk.GetBiomeAt(a_RelX, a_RelZ)) || !a_WorldInterface.IsWeatherWet())
|
||||
int BlockX = a_RelX + a_Chunk.GetPosX() * cChunkDef::Width;
|
||||
int BlockZ = a_RelZ + a_Chunk.GetPosZ() * cChunkDef::Width;
|
||||
if (!a_WorldInterface.IsWeatherWetAt(BlockX, BlockZ) || (a_RelY != a_WorldInterface.GetHeight(BlockX, BlockZ)))
|
||||
{
|
||||
// It's not raining at our current location or we do not have a direct view of the sky
|
||||
// We cannot eat the rain :(
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -37,9 +37,9 @@ public:
|
||||
|
||||
virtual void SetTimeOfDay(Int64 a_TimeOfDay) = 0;
|
||||
|
||||
/** Returns true if the current weather has any precipitation - rain or storm
|
||||
Does not check if biome has no downfall, use cChunk::GetBiomeAt(RelX, RelZ) for that
|
||||
*/
|
||||
virtual bool IsWeatherWet(void) const = 0;
|
||||
/** 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 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;
|
||||
};
|
||||
|
@ -180,7 +180,7 @@ public:
|
||||
virtual eDimension GetDimension(void) const { return m_Dimension; }
|
||||
|
||||
/** Returns the world height at the specified coords; waits for the chunk to get loaded / generated */
|
||||
int GetHeight(int a_BlockX, int a_BlockZ);
|
||||
virtual int GetHeight(int a_BlockX, int a_BlockZ);
|
||||
|
||||
// tolua_end
|
||||
|
||||
@ -749,10 +749,10 @@ public:
|
||||
}
|
||||
|
||||
/** Returns true if the current weather has any precipitation - rain, storm or snow */
|
||||
virtual bool IsWeatherWet(void) const { return !IsWeatherSunny(); }
|
||||
bool IsWeatherWet(void) const { return !IsWeatherSunny(); }
|
||||
|
||||
/** Returns true if it is raining, stormy or snowing at the specified location. This takes into account biomes. */
|
||||
bool IsWeatherWetAt(int a_BlockX, int a_BlockZ)
|
||||
virtual bool IsWeatherWetAt(int a_BlockX, int a_BlockZ)
|
||||
{
|
||||
return (IsWeatherWet() && !IsBiomeNoDownfall(GetBiomeAt(a_BlockX, a_BlockZ)));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user