summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTiger Wang <ziwei.tiger@hotmail.co.uk>2014-05-29 17:58:40 +0200
committerTiger Wang <ziwei.tiger@hotmail.co.uk>2014-05-29 17:58:40 +0200
commitcea3a8e7e8cbf45f709ec63a096cf07b92c87073 (patch)
treefb328b55909c4d0e8f861f8fddf86d10a2bf860f
parentCmake system name not System name (diff)
downloadcuberite-cea3a8e7e8cbf45f709ec63a096cf07b92c87073.tar
cuberite-cea3a8e7e8cbf45f709ec63a096cf07b92c87073.tar.gz
cuberite-cea3a8e7e8cbf45f709ec63a096cf07b92c87073.tar.bz2
cuberite-cea3a8e7e8cbf45f709ec63a096cf07b92c87073.tar.lz
cuberite-cea3a8e7e8cbf45f709ec63a096cf07b92c87073.tar.xz
cuberite-cea3a8e7e8cbf45f709ec63a096cf07b92c87073.tar.zst
cuberite-cea3a8e7e8cbf45f709ec63a096cf07b92c87073.zip
-rw-r--r--src/Blocks/BlockCauldron.h14
-rw-r--r--src/Blocks/WorldInterface.h3
-rw-r--r--src/Chunk.cpp1
-rw-r--r--src/World.h4
4 files changed, 19 insertions, 3 deletions
diff --git a/src/Blocks/BlockCauldron.h b/src/Blocks/BlockCauldron.h
index 41b79b6c3..8b5cd9ccb 100644
--- a/src/Blocks/BlockCauldron.h
+++ b/src/Blocks/BlockCauldron.h
@@ -58,6 +58,20 @@ public:
{
return true;
}
+
+ 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 (!a_WorldInterface.IsWeatherWet())
+ {
+ return;
+ }
+
+ NIBBLETYPE Meta = a_Chunk.GetMeta(a_RelX, a_RelY, a_RelZ);
+ if (Meta < 3)
+ {
+ a_Chunk.SetMeta(a_RelX, a_RelY, a_RelZ, Meta + 1);
+ }
+ }
} ;
diff --git a/src/Blocks/WorldInterface.h b/src/Blocks/WorldInterface.h
index bfbb053d9..08600d502 100644
--- a/src/Blocks/WorldInterface.h
+++ b/src/Blocks/WorldInterface.h
@@ -37,4 +37,7 @@ public:
virtual void SetTimeOfDay(Int64 a_TimeOfDay) = 0;
+ /** Returns true if the current weather has any precipitation - rain or storm */
+ virtual bool IsWeatherWet(void) const = 0;
+
};
diff --git a/src/Chunk.cpp b/src/Chunk.cpp
index ca536e89a..4506cfcc5 100644
--- a/src/Chunk.cpp
+++ b/src/Chunk.cpp
@@ -961,7 +961,6 @@ void cChunk::ApplyWeatherToTop()
}
break;
} // case (snowy biomes)
- // TODO: Rainy biomes should check for farmland and cauldrons
default:
{
break;
diff --git a/src/World.h b/src/World.h
index 86cbb3e7e..067e18547 100644
--- a/src/World.h
+++ b/src/World.h
@@ -690,8 +690,8 @@ public:
bool IsWeatherStorm(void) const { return (m_Weather == wStorm); }
/** Returns true if the current weather has any precipitation - rain or storm */
- bool IsWeatherWet (void) const { return (m_Weather != wSunny); }
-
+ virtual bool IsWeatherWet(void) const override { return (m_Weather != wSunny); }
+
// tolua_end
cChunkGenerator & GetGenerator(void) { return m_Generator; }