summaryrefslogtreecommitdiff
path: root/src/content_abm.cpp
diff options
context:
space:
mode:
authorproller <proller@github.com>2013-07-28 17:11:59 +0400
committerproller <proller@github.com>2013-07-28 17:14:31 +0400
commit037e84d377e91f37026cb5814145bdceac135534 (patch)
tree4e74e3d60e797605353d2539d2b2fbc399b684a9 /src/content_abm.cpp
parent3aedfac9685c2d9ae8bac5a5b7e72e527f22c08d (diff)
downloadminetest-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.cpp15
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));