diff options
author | proller <proller@github.com> | 2013-07-28 17:11:59 +0400 |
---|---|---|
committer | proller <proller@github.com> | 2013-07-28 17:14:31 +0400 |
commit | 037e84d377e91f37026cb5814145bdceac135534 (patch) | |
tree | 4e74e3d60e797605353d2539d2b2fbc399b684a9 /src/content_abm.cpp | |
parent | 3aedfac9685c2d9ae8bac5a5b7e72e527f22c08d (diff) | |
download | minetest-037e84d377e91f37026cb5814145bdceac135534.tar.gz minetest-037e84d377e91f37026cb5814145bdceac135534.tar.bz2 minetest-037e84d377e91f37026cb5814145bdceac135534.zip |
Better snow fall, finite liquid transform, leveled nodes api
Diffstat (limited to 'src/content_abm.cpp')
-rw-r--r-- | src/content_abm.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/content_abm.cpp b/src/content_abm.cpp index 110ac1eea..2501a3a32 100644 --- a/src/content_abm.cpp +++ b/src/content_abm.cpp @@ -285,7 +285,7 @@ class LiquidFreeze : public ActiveBlockModifier { } } if (allow) { - n.setContent(ndef->getId(ndef->get(n).freezemelt)); + n.freezeMelt(ndef); map->addNodeWithEvent(p, n); } } @@ -316,9 +316,7 @@ class LiquidMeltWeather : public ActiveBlockModifier { float heat = map->getHeat(env, p); if (heat >= 1 && (heat >= 40 || ((myrand_range(heat, 40)) >= 20))) { - n.setContent(ndef->getId(ndef->get(n).freezemelt)); - if (!n.getLevel(ndef)) - n.addLevel(ndef); + n.freezeMelt(ndef); map->addNodeWithEvent(p, n); env->getScriptIface()->node_falling_update(p); } @@ -346,14 +344,13 @@ class LiquidMeltHot : public ActiveBlockModifier { virtual void trigger(ServerEnvironment *env, v3s16 p, MapNode n) { ServerMap *map = &env->getServerMap(); INodeDefManager *ndef = env->getGameDef()->ndef(); - n.setContent(ndef->getId(ndef->get(n).freezemelt)); - if (!n.getLevel(ndef)) - n.addLevel(ndef); + n.freezeMelt(ndef); map->addNodeWithEvent(p, n); env->getScriptIface()->node_falling_update(p); } }; +/* too buggy, later via liquid flow code class LiquidMeltAround : public LiquidMeltHot { public: LiquidMeltAround(ServerEnvironment *env, INodeDefManager *nodemgr) @@ -368,7 +365,7 @@ class LiquidMeltAround : public LiquidMeltHot { virtual u32 getTriggerChance() { return 60; } }; - +*/ void add_legacy_abms(ServerEnvironment *env, INodeDefManager *nodedef) { env->addActiveBlockModifier(new GrowGrassABM()); @@ -378,7 +375,7 @@ void add_legacy_abms(ServerEnvironment *env, INodeDefManager *nodedef) { env->addActiveBlockModifier(new LiquidFlowABM(env, nodedef)); env->addActiveBlockModifier(new LiquidDropABM(env, nodedef)); env->addActiveBlockModifier(new LiquidMeltHot(env, nodedef)); - env->addActiveBlockModifier(new LiquidMeltAround(env, nodedef)); + //env->addActiveBlockModifier(new LiquidMeltAround(env, nodedef)); if (g_settings->getBool("weather")) { env->addActiveBlockModifier(new LiquidFreeze(env, nodedef)); env->addActiveBlockModifier(new LiquidMeltWeather(env, nodedef)); |