Remove liquid_finite and weather
authorproller <proller@github.com>
Fri, 18 Apr 2014 17:08:03 +0000 (21:08 +0400)
committerproller <proller@github.com>
Fri, 18 Apr 2014 17:56:48 +0000 (21:56 +0400)
18 files changed:
builtin/mainmenu.lua
doc/lua_api.txt
minetest.conf.example
src/biome.cpp
src/constants.h
src/content_abm.cpp
src/defaultsettings.cpp
src/environment.cpp
src/environment.h
src/game.cpp
src/map.cpp
src/map.h
src/mapblock.cpp
src/mapblock.h
src/mapgen.cpp
src/script/lua_api/l_env.cpp
src/script/lua_api/l_env.h
src/serverlist.cpp

index e9c8e8137a962e48488fc9dd27ab1e0da94abbf4..4cd1503da5c8e450ba0992bc0e37f319d8163e97 100644 (file)
@@ -714,9 +714,6 @@ function tabbuilder.handle_settings_buttons(fields)
        if fields["cb_particles"] then
                engine.setting_set("enable_particles", fields["cb_particles"])
        end
-       if fields["cb_finite_liquid"] then
-               engine.setting_set("liquid_finite", fields["cb_finite_liquid"])
-       end
        if fields["cb_bumpmapping"] then
                engine.setting_set("enable_bumpmapping", fields["cb_bumpmapping"])
        end
@@ -997,9 +994,6 @@ function tabbuilder.tab_settings()
                                        .. dump(engine.setting_getbool("preload_item_visuals")) .. "]"..
                        "checkbox[1,2.5;cb_particles;".. fgettext("Enable Particles") .. ";"
                                        .. dump(engine.setting_getbool("enable_particles"))     .. "]"..
-                       "checkbox[1,3.0;cb_finite_liquid;".. fgettext("Finite Liquid") .. ";"
-                                       .. dump(engine.setting_getbool("liquid_finite")) .. "]"..
-
                        "checkbox[4.5,0;cb_mipmapping;".. fgettext("Mip-Mapping") .. ";"
                                        .. dump(engine.setting_getbool("mip_map")) .. "]"..
                        "checkbox[4.5,0.5;cb_anisotrophic;".. fgettext("Anisotropic Filtering") .. ";"
index b9865ae44f9d3eba9ce44428e31c400a350e1367..b933caffc5d32597ee50a948e6a2c1e3a6c41042 100644 (file)
@@ -1443,10 +1443,6 @@ minetest.set_node_level(pos, level)
 ^ set level of leveled node, default level = 1, if totallevel > maxlevel returns rest (total-max).
 minetest.add_node_level(pos, level)
 ^ increase level of leveled node by level, default level = 1, if totallevel > maxlevel returns rest (total-max). can be negative for decreasing
-minetest.get_heat(pos)
-^ heat at pos
-minetest.get_humidity(pos)
-^ humidity at pos
 
 Inventory:
 minetest.get_inventory(location) -> InvRef
index 6b2867c37e06eb21504c8a9eab79870fac22be90..548adccee0721288348bcaab6ec0cdca568cb25e 100644 (file)
 #enable_fog = true
 # Enable a bit lower water surface; disable for speed (not quite optimized)
 #new_style_water = false
-# Constant volume liquids
-#liquid_finite = false
 # Max liquids processed per step
 #liquid_loop_max = 10000
 # Update liquids every .. recommend for finite: 0.2
 #liquid_update = 1.0
-# Relax flowing blocks to source if level near max and N nearby
-#  source blocks, more realistic, but not true constant.
-#  values: 0,1,2,3,4 : 0 - disable, 1 - most aggresive
-#  (for finite liquids)
-#liquid_relax = 2
-# Optimization: faster cave flood (and not true constant)
-#  (for finite liquids)
-#liquid_fast_flood = 1
-# Underground water and lava springs, its infnity sources if liquid_finite enabled
-#underground_springs = 1
-# Enable weather (cold-hot, water freeze-melt). use only with liquid_finite=1
-#weather = false
 # Enable nice leaves; disable for speed
 #new_style_leaves = true
 # Enable smooth lighting with simple ambient occlusion;
index dca900cbb986df0990402a77935208ffb30fae32..e1dfc47afbb021c31bf06e03a79d7f27c8d3d327 100644 (file)
@@ -203,54 +203,3 @@ u8 BiomeDefManager::getBiomeIdByName(const char *name) {
        
        return 0;
 }
-
-
-///////////////////////////// Weather
-
-
-s16 BiomeDefManager::calcBlockHeat(v3s16 p, u64 seed, float timeofday, float totaltime) {
-       //variant 1: full random
-       //f32 heat = NoisePerlin3D(np_heat, p.X, env->getGameTime()/100, p.Z, seed);
-
-       //variant 2: season change based on default heat map
-       const f32 offset = 20; // = np_heat->offset
-       const f32 scale  = 20; // = np_heat->scale
-       const f32 range  = 20;
-       f32 heat = NoisePerlin2D(np_heat, p.X, p.Z, seed); // 0..50..100
-
-       heat -= np_heat->offset; // -50..0..+50
-
-       // normalizing - todo REMOVE after fixed NoiseParams nparams_biome_def_heat = {50, 50, -> 20, 50,
-       if (np_heat->scale)
-               heat /= np_heat->scale / scale; //  -20..0..+20
-
-       f32 seasonv = totaltime;
-       seasonv /= 86400 * g_settings->getS16("year_days"); // season change speed
-       seasonv += (f32)p.X / 3000; // you can walk to area with other season
-       seasonv = sin(seasonv * M_PI);
-       heat += (range * (heat < 0 ? 2 : 0.5)) * seasonv; // -60..0..30
-
-       heat += offset; // -40..0..50
-       heat += p.Y / -333; // upper=colder, lower=hotter, 3c per 1000
-
-       // daily change, hotter at sun +4, colder at night -4
-       heat += 8 * (sin(cycle_shift(timeofday, -0.25) * M_PI) - 0.5); //-44..20..54
-       
-       return heat;
-}
-
-
-s16 BiomeDefManager::calcBlockHumidity(v3s16 p, u64 seed, float timeofday, float totaltime) {
-
-       f32 humidity = NoisePerlin2D(np_humidity, p.X, p.Z, seed);
-
-       f32 seasonv = totaltime;
-       seasonv /= 86400 * 2; // bad weather change speed (2 days)
-       seasonv += (f32)p.Z / 300;
-       humidity += 30 * sin(seasonv * M_PI);
-
-       humidity += -12 * (sin(cycle_shift(timeofday, -0.1) * M_PI) - 0.5);
-       humidity = rangelim(humidity, 0, 100);
-       
-       return humidity;
-}
index 17f5d389af5ccd39f5b28419bf5d544c81324a6b..8c478ac6a2a1a3fdb7b1963a79da9726f1106d17 100644 (file)
@@ -89,11 +89,5 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 // Maximum hit points of a player
 #define PLAYER_MAX_HP 20
 
-/*
-       Environmental condition constants
-*/
-#define HEAT_UNDEFINED     (-0x7fff-1)
-#define HUMIDITY_UNDEFINED (-0x7fff-1)
-
 #endif
 
index 9289035b8c1557a07ea0a782a0b306adbb9d4200..1ee41b2ecf4cceaf73fd690603a40c06ca1d6974 100644 (file)
@@ -32,216 +32,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 #define PP(x) "("<<(x).X<<","<<(x).Y<<","<<(x).Z<<")"
 
-class LiquidFlowABM : public ActiveBlockModifier {
-       private:
-               std::set<std::string> contents;
-
-       public:
-               LiquidFlowABM(ServerEnvironment *env, INodeDefManager *nodemgr) {
-                       std::set<content_t> liquids;
-                       nodemgr->getIds("group:liquid", liquids);
-                       for(std::set<content_t>::const_iterator k = liquids.begin(); k != liquids.end(); k++)
-                               contents.insert(nodemgr->get(*k).liquid_alternative_flowing);
-               }
-               virtual std::set<std::string> getTriggerContents() {
-                       return contents;
-               }
-               virtual float getTriggerInterval()
-               { return 10.0; }
-               virtual u32 getTriggerChance()
-               { return 10; }
-               virtual void trigger(ServerEnvironment *env, v3s16 p, MapNode n) {
-                       ServerMap *map = &env->getServerMap();
-                       if (map->transforming_liquid_size() > 500)
-                               return;
-                       map->transforming_liquid_add(p);
-               }
-};
-
-class LiquidDropABM : public ActiveBlockModifier {
-       private:
-               std::set<std::string> contents;
-
-       public:
-               LiquidDropABM(ServerEnvironment *env, INodeDefManager *nodemgr) {
-                       std::set<content_t> liquids;
-                       nodemgr->getIds("group:liquid", liquids);
-                       for(std::set<content_t>::const_iterator k = liquids.begin(); k != liquids.end(); k++)
-                               contents.insert(nodemgr->get(*k).liquid_alternative_source);
-               }
-               virtual std::set<std::string> getTriggerContents()
-               { return contents; }
-               virtual std::set<std::string> getRequiredNeighbors() {
-                       std::set<std::string> neighbors;
-                       neighbors.insert("air");
-                       return neighbors;
-               }
-               virtual float getTriggerInterval()
-               { return 20.0; }
-               virtual u32 getTriggerChance()
-               { return 10; }
-               virtual void trigger(ServerEnvironment *env, v3s16 p, MapNode n) {
-                       ServerMap *map = &env->getServerMap();
-                       if (map->transforming_liquid_size() > 500)
-                               return;
-                       if (   map->getNodeNoEx(p - v3s16(0,  1, 0 )).getContent() != CONTENT_AIR  // below
-                           && map->getNodeNoEx(p - v3s16(1,  0, 0 )).getContent() != CONTENT_AIR  // right
-                           && map->getNodeNoEx(p - v3s16(-1, 0, 0 )).getContent() != CONTENT_AIR  // left
-                           && map->getNodeNoEx(p - v3s16(0,  0, 1 )).getContent() != CONTENT_AIR  // back
-                           && map->getNodeNoEx(p - v3s16(0,  0, -1)).getContent() != CONTENT_AIR  // front
-                          )
-                               return;
-                       map->transforming_liquid_add(p);
-               }
-};
-
-class LiquidFreeze : public ActiveBlockModifier {
-       public:
-               LiquidFreeze(ServerEnvironment *env, INodeDefManager *nodemgr) { }
-               virtual std::set<std::string> getTriggerContents() {
-                       std::set<std::string> s;
-                       s.insert("group:freezes");
-                       return s;
-               }
-               virtual std::set<std::string> getRequiredNeighbors() {
-                       std::set<std::string> s;
-                       s.insert("air");
-                       s.insert("group:melts");
-                       return s;
-               }
-               virtual float getTriggerInterval()
-               { return 10.0; }
-               virtual u32 getTriggerChance()
-               { return 20; }
-               virtual void trigger(ServerEnvironment *env, v3s16 p, MapNode n) {
-                       ServerMap *map = &env->getServerMap();
-                       INodeDefManager *ndef = env->getGameDef()->ndef();
-
-                       float heat = map->updateBlockHeat(env, p);
-                       //heater = rare
-                       content_t c = map->getNodeNoEx(p - v3s16(0,  -1, 0 )).getContent(); // top
-                       //more chance to freeze if air at top
-                       if (heat <= -1 && (heat <= -50 || (myrand_range(-50, heat) <= (c == CONTENT_AIR ? -10 : -40)))) {
-                               content_t c_self = n.getContent();
-                               // making freeze not annoying, do not freeze random blocks in center of ocean
-                               // todo: any block not water (dont freeze _source near _flowing)
-                               bool allow = heat < -40;
-                               // todo: make for(...)
-                               if (!allow) {
-                                c = map->getNodeNoEx(p - v3s16(0,  1, 0 )).getContent(); // below
-                                if (c == CONTENT_AIR || c == CONTENT_IGNORE)
-                                       return; // do not freeze when falling
-                                if (c != c_self && c != CONTENT_IGNORE) allow = 1;
-                                if (!allow) {
-                                 c = map->getNodeNoEx(p - v3s16(1,  0, 0 )).getContent(); // right
-                                 if (c != c_self && c != CONTENT_IGNORE) allow = 1;
-                                 if (!allow) {
-                                  c = map->getNodeNoEx(p - v3s16(-1, 0, 0 )).getContent(); // left
-                                  if (c != c_self && c != CONTENT_IGNORE) allow = 1;
-                                  if (!allow) {
-                                   c = map->getNodeNoEx(p - v3s16(0,  0, 1 )).getContent(); // back
-                                   if (c != c_self && c != CONTENT_IGNORE) allow = 1;
-                                   if (!allow) {
-                                    c = map->getNodeNoEx(p - v3s16(0,  0, -1)).getContent(); // front
-                                    if (c != c_self && c != CONTENT_IGNORE) allow = 1;
-                                   }
-                                  }
-                                 }
-                                }
-                               }
-                               if (allow) {
-                                       n.freezeMelt(ndef);
-                                       map->addNodeWithEvent(p, n);
-                               }
-                       }
-               }
-};
-
-class LiquidMeltWeather : public ActiveBlockModifier {
-       public:
-               LiquidMeltWeather(ServerEnvironment *env, INodeDefManager *nodemgr) { }
-               virtual std::set<std::string> getTriggerContents() {
-                       std::set<std::string> s;
-                       s.insert("group:melts");
-                       return s;
-               }
-               virtual std::set<std::string> getRequiredNeighbors() {
-                       std::set<std::string> s;
-                       s.insert("air");
-                       s.insert("group:freezes");
-                       return s;
-               }
-               virtual float getTriggerInterval()
-               { return 10.0; }
-               virtual u32 getTriggerChance()
-               { return 20; }
-               virtual void trigger(ServerEnvironment *env, v3s16 p, MapNode n) {
-                       ServerMap *map = &env->getServerMap();
-                       INodeDefManager *ndef = env->getGameDef()->ndef();
-
-                       float heat = map->updateBlockHeat(env, p);
-                       content_t c = map->getNodeNoEx(p - v3s16(0,  -1, 0 )).getContent(); // top
-                       if (heat >= 1 && (heat >= 40 || ((myrand_range(heat, 40)) >= (c == CONTENT_AIR ? 10 : 20)))) {
-                               n.freezeMelt(ndef);
-                               map->addNodeWithEvent(p, n);
-                               env->getScriptIface()->node_falling_update(p);
-                       }
-               }
-};
-
-class LiquidMeltHot : public ActiveBlockModifier {
-       public:
-               LiquidMeltHot(ServerEnvironment *env, INodeDefManager *nodemgr) { }
-               virtual std::set<std::string> getTriggerContents() {
-                       std::set<std::string> s;
-                       s.insert("group:melts");
-                       return s;
-               }
-               virtual std::set<std::string> getRequiredNeighbors() {
-                       std::set<std::string> s;
-                       s.insert("group:igniter");
-                       s.insert("group:hot");
-                       return s;
-               }
-               virtual float getTriggerInterval()
-               { return 2.0; }
-               virtual u32 getTriggerChance()
-               { return 4; }
-               virtual void trigger(ServerEnvironment *env, v3s16 p, MapNode n) {
-                       ServerMap *map = &env->getServerMap();
-                       INodeDefManager *ndef = env->getGameDef()->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) 
-                       : LiquidMeltHot(env, nodemgr) { }
-               virtual std::set<std::string> getRequiredNeighbors() {
-                       std::set<std::string> s;
-                       s.insert("group:melt_around");
-                       return s;
-               }
-               virtual float getTriggerInterval()
-               { return 40.0; }
-               virtual u32 getTriggerChance()
-               { return 60; }
-};
-*/
-
 void add_legacy_abms(ServerEnvironment *env, INodeDefManager *nodedef) {
-       if (g_settings->getBool("liquid_finite")) {
-               env->addActiveBlockModifier(new LiquidFlowABM(env, nodedef));
-               env->addActiveBlockModifier(new LiquidDropABM(env, nodedef));
-               env->addActiveBlockModifier(new LiquidMeltHot(env, nodedef));
-               //env->addActiveBlockModifier(new LiquidMeltAround(env, nodedef));
-               if (env->m_use_weather) {
-                       env->addActiveBlockModifier(new LiquidFreeze(env, nodedef));
-                       env->addActiveBlockModifier(new LiquidMeltWeather(env, nodedef));
-               }
-       }
+
 }
index c39fa54a9ca2cea50b53a68f4d1820570935f667..ff3bf5b887516fcacc67467f2886b295eba5a7d7 100644 (file)
@@ -244,13 +244,8 @@ void set_default_settings(Settings *settings)
        settings->setDefault("movement_gravity", "9.81");
 
        //liquid stuff
-       settings->setDefault("liquid_finite", "false");
        settings->setDefault("liquid_loop_max", "10000");
        settings->setDefault("liquid_update", "1.0");
-       settings->setDefault("liquid_relax", "2");
-       settings->setDefault("liquid_fast_flood", "1");
-       settings->setDefault("underground_springs", "1");
-       settings->setDefault("weather", "false");
 
        //mapgen stuff
        settings->setDefault("mg_name", "v6");
index bc1b59d8924afcb88a08a809ae42b40045c714d6..fa7ce2ae57f5e27d505342239d34479bd0e84429 100644 (file)
@@ -321,7 +321,6 @@ ServerEnvironment::ServerEnvironment(ServerMap *map,
        m_recommended_send_interval(0.1),
        m_max_lag_estimate(0.1)
 {
-       m_use_weather = g_settings->getBool("weather");
 }
 
 ServerEnvironment::~ServerEnvironment()
index 48d099bf93727dbbdd0e8fd654bcf90c1d30032a..5062b9c370e79bd66fb0e6985b34fe692fd36b67 100644 (file)
@@ -314,9 +314,6 @@ public:
        void reportMaxLagEstimate(float f) { m_max_lag_estimate = f; }
        float getMaxLagEstimate() { return m_max_lag_estimate; }
        
-       // is weather active in this environment?
-       bool m_use_weather;
-       
        std::set<v3s16>* getForceloadedBlocks() { return &m_active_blocks.m_forceloaded_list; };
        
 private:
index 1ad06acb19f7102141dd7bb4edb06b80b40abc27..a4a21e0a9416b4903d3b81c0cc7b1dca8e67f239 100644 (file)
@@ -1642,8 +1642,6 @@ void the_game(bool &kill, bool random_input, InputHandler *input,
        Hud hud(driver, smgr, guienv, font, text_height,
                        gamedef, player, &local_inventory);
 
-       bool use_weather = g_settings->getBool("weather");
-
        core::stringw str = L"Minetest [";
        str += driver->getName();
        str += "]";
@@ -3111,8 +3109,6 @@ void the_game(bool &kill, bool random_input, InputHandler *input,
                        fog_range = 100000*BS;
                else {
                        fog_range = draw_control.wanted_range*BS + 0.0*MAP_BLOCKSIZE*BS;
-                       if(use_weather)
-                               fog_range *= (1.5 - 1.4*(float)client.getEnv().getClientMap().getHumidity(pos_i)/100);
                        fog_range = MYMIN(fog_range, (draw_control.farthest_drawn+20)*BS);
                        fog_range *= 0.9;
                }
@@ -3262,9 +3258,7 @@ void the_game(bool &kill, bool random_input, InputHandler *input,
                                <<", "<<(player_position.Y/BS)
                                <<", "<<(player_position.Z/BS)
                                <<") (yaw="<<(wrapDegrees_0_360(camera_yaw))
-                               <<") (t="<<client.getEnv().getClientMap().getHeat(pos_i)
-                               <<"C, h="<<client.getEnv().getClientMap().getHumidity(pos_i)
-                               <<"%) (seed = "<<((u64)client.getMapSeed())
+                               <<") (seed = "<<((u64)client.getMapSeed())
                                <<")";
                        guitext2->setText(narrow_to_wide(os.str()).c_str());
                        guitext2->setVisible(true);
index 8f612aeacb153e5164c125a86acd223d9ff71e2f..de8e1107bcb0bd4b2f6521b77f51a5dacb06c05e 100644 (file)
@@ -1100,7 +1100,6 @@ void Map::addNodeAndUpdate(v3s16 p, MapNode n,
        /*
                Add neighboring liquid nodes and the node itself if it is
                liquid (=water node was added) to transform queue.
-               note: todo: for liquid_finite enough to add only self node
        */
        v3s16 dirs[7] = {
                v3s16(0,0,0), // self
@@ -1292,7 +1291,6 @@ void Map::removeNodeAndUpdate(v3s16 p,
        /*
                Add neighboring liquid nodes and this node to transform queue.
                (it's vital for the node itself to get updated last.)
-               note: todo: for liquid_finite enough to add only self node
        */
        v3s16 dirs[7] = {
                v3s16(0,0,1), // back
@@ -1619,7 +1617,6 @@ struct NodeNeighbor {
        NeighborType t;
        v3s16 p;
        bool l; //can liquid
-       bool i; //infinity
 };
 
 void Map::transforming_liquid_add(v3s16 p) {
@@ -1630,383 +1627,8 @@ s32 Map::transforming_liquid_size() {
         return m_transforming_liquid.size();
 }
 
-const v3s16 g_7dirs[7] =
-{
-       // +right, +top, +back
-       v3s16( 0,-1, 0), // bottom
-       v3s16( 0, 0, 0), // self
-       v3s16( 0, 0, 1), // back
-       v3s16( 0, 0,-1), // front
-       v3s16( 1, 0, 0), // right
-       v3s16(-1, 0, 0), // left
-       v3s16( 0, 1, 0)  // top
-};
-
-#define D_BOTTOM 0
-#define D_TOP 6
-#define D_SELF 1
-
-void Map::transformLiquidsFinite(std::map<v3s16, MapBlock*> & modified_blocks)
-{
-       INodeDefManager *nodemgr = m_gamedef->ndef();
-
-       DSTACK(__FUNCTION_NAME);
-       //TimeTaker timer("transformLiquids()");
-
-       u32 loopcount = 0;
-       u32 initial_size = m_transforming_liquid.size();
-
-       u8 relax = g_settings->getS16("liquid_relax");
-       bool fast_flood = g_settings->getS16("liquid_fast_flood");
-       int water_level = g_settings->getS16("water_level");
-
-       // list of nodes that due to viscosity have not reached their max level height
-       UniqueQueue<v3s16> must_reflow, must_reflow_second;
-
-       // List of MapBlocks that will require a lighting update (due to lava)
-       std::map<v3s16, MapBlock*> lighting_modified_blocks;
-
-       u16 loop_max = g_settings->getU16("liquid_loop_max");
-
-       //if (m_transforming_liquid.size() > 0) errorstream << "Liquid queue size="<<m_transforming_liquid.size()<<std::endl;
-
-       while (m_transforming_liquid.size() > 0)
-       {
-               // This should be done here so that it is done when continue is used
-               if (loopcount >= initial_size || loopcount >= loop_max)
-                       break;
-               loopcount++;
-               /*
-                       Get a queued transforming liquid node
-               */
-               v3s16 p0 = m_transforming_liquid.pop_front();
-               u16 total_level = 0;
-               // surrounding flowing liquid nodes
-               NodeNeighbor neighbors[7];
-               // current level of every block
-               s8 liquid_levels[7] = {-1, -1, -1, -1, -1, -1, -1};
-                // target levels
-               s8 liquid_levels_want[7] = {-1, -1, -1, -1, -1, -1, -1};
-               s8 can_liquid_same_level = 0;
-               content_t liquid_kind = CONTENT_IGNORE;
-               content_t liquid_kind_flowing = CONTENT_IGNORE;
-               /*
-                       Collect information about the environment
-                */
-               const v3s16 *dirs = g_7dirs;
-               for (u16 i = 0; i < 7; i++) {
-                       NeighborType nt = NEIGHBOR_SAME_LEVEL;
-                       switch (i) {
-                               case D_TOP:
-                                       nt = NEIGHBOR_UPPER;
-                                       break;
-                               case D_BOTTOM:
-                                       nt = NEIGHBOR_LOWER;
-                                       break;
-                       }
-                       v3s16 npos = p0 + dirs[i];
-
-                       neighbors[i].n = getNodeNoEx(npos);
-                       neighbors[i].t = nt;
-                       neighbors[i].p = npos;
-                       neighbors[i].l = 0;
-                       neighbors[i].i = 0;
-                       NodeNeighbor & nb = neighbors[i];
-
-                       switch (nodemgr->get(nb.n.getContent()).liquid_type) {
-                               case LIQUID_NONE:
-                                       if (nb.n.getContent() == CONTENT_AIR) {
-                                               liquid_levels[i] = 0;
-                                               nb.l = 1;
-                                       }
-                                       break;
-                               case LIQUID_SOURCE:
-                                       // if this node is not (yet) of a liquid type,
-                                       // choose the first liquid type we encounter
-                                       if (liquid_kind_flowing == CONTENT_IGNORE)
-                                               liquid_kind_flowing = nodemgr->getId(
-                                                       nodemgr->get(nb.n).liquid_alternative_flowing);
-                                       if (liquid_kind == CONTENT_IGNORE)
-                                               liquid_kind = nb.n.getContent();
-                                       if (nb.n.getContent() == liquid_kind) {
-                                               liquid_levels[i] = nb.n.getLevel(nodemgr); //LIQUID_LEVEL_SOURCE;
-                                               nb.l = 1;
-                                               nb.i = (nb.n.param2 & LIQUID_INFINITY_MASK);
-                                       }
-                                       break;
-                               case LIQUID_FLOWING:
-                                       // if this node is not (yet) of a liquid type,
-                                       // choose the first liquid type we encounter
-                                       if (liquid_kind_flowing == CONTENT_IGNORE)
-                                               liquid_kind_flowing = nb.n.getContent();
-                                       if (liquid_kind == CONTENT_IGNORE)
-                                               liquid_kind = nodemgr->getId(
-                                                       nodemgr->get(nb.n).liquid_alternative_source);
-                                       if (nb.n.getContent() == liquid_kind_flowing) {
-                                               liquid_levels[i] = nb.n.getLevel(nodemgr); //(nb.n.param2 & LIQUID_LEVEL_MASK);
-                                               nb.l = 1;
-                                       }
-                                       break;
-                       }
-                       
-                       if (nb.l && nb.t == NEIGHBOR_SAME_LEVEL)
-                               ++can_liquid_same_level;
-                       if (liquid_levels[i] > 0)
-                               total_level += liquid_levels[i];
-
-                       /*
-                       infostream << "get node i=" <<(int)i<<" " << PP(npos) << " c="
-                       << nb.n.getContent() <<" p0="<< (int)nb.n.param0 <<" p1="
-                       << (int)nb.n.param1 <<" p2="<< (int)nb.n.param2 << " lt="
-                       << nodemgr->get(nb.n.getContent()).liquid_type
-                       //<< " lk=" << liquid_kind << " lkf=" << liquid_kind_flowing
-                       << " l="<< nb.l << " inf="<< nb.i << " nlevel=" << (int)liquid_levels[i]
-                       << " tlevel=" << (int)total_level << " cansame="
-                       << (int)can_liquid_same_level << std::endl;
-                       */
-               }
-
-               if (liquid_kind == CONTENT_IGNORE ||
-                       !neighbors[D_SELF].l ||
-                       total_level <= 0)
-                       continue;
-
-               // fill bottom block
-               if (neighbors[D_BOTTOM].l) {
-                       liquid_levels_want[D_BOTTOM] = total_level > LIQUID_LEVEL_SOURCE ?
-                               LIQUID_LEVEL_SOURCE : total_level;
-                       total_level -= liquid_levels_want[D_BOTTOM];
-               }
-
-               //relax up
-               if (relax && ((p0.Y == water_level) || (fast_flood && p0.Y <= water_level)) && liquid_levels[D_TOP] == 0 &&
-                       liquid_levels[D_BOTTOM] == LIQUID_LEVEL_SOURCE &&
-                       total_level >= LIQUID_LEVEL_SOURCE * can_liquid_same_level-
-                       (can_liquid_same_level - relax) &&
-                       can_liquid_same_level >= relax + 1) {
-                       total_level = LIQUID_LEVEL_SOURCE * can_liquid_same_level;
-               }
-
-               // prevent lakes in air above unloaded blocks
-               if (liquid_levels[D_TOP] == 0 && (p0.Y > water_level) && neighbors[D_BOTTOM].n.getContent() == CONTENT_IGNORE && !(loopcount % 3)) {
-                       --total_level;
-               }
-
-               // calculate self level 5 blocks
-               u8 want_level =
-                         total_level >= LIQUID_LEVEL_SOURCE * can_liquid_same_level
-                       ? LIQUID_LEVEL_SOURCE
-                       : total_level / can_liquid_same_level;
-               total_level -= want_level * can_liquid_same_level;
-
-               //relax down
-               if (relax && p0.Y == water_level + 1 && liquid_levels[D_TOP] == 0 &&
-                       liquid_levels[D_BOTTOM] == LIQUID_LEVEL_SOURCE && want_level == 0 &&
-                       total_level <= (can_liquid_same_level - relax) &&
-                       can_liquid_same_level >= relax + 1) {
-                       total_level = 0;
-               }
-
-               for (u16 ii = D_SELF; ii < D_TOP; ++ii) { // fill only same level
-                       if (!neighbors[ii].l)
-                               continue;
-                       liquid_levels_want[ii] = want_level;
-                       if (liquid_levels_want[ii] < LIQUID_LEVEL_SOURCE && total_level > 0) {
-                               if (loopcount % 3 || liquid_levels[ii] <= 0){
-                                       if (liquid_levels[ii] > liquid_levels_want[ii]) {
-                                               ++liquid_levels_want[ii];
-                                               --total_level;
-                                       }
-                               } else if (neighbors[ii].l > 0){
-                                               ++liquid_levels_want[ii];
-                                               --total_level;
-                               }
-                       }
-               }
-
-               for (u16 ii = 0; ii < 7; ++ii) {
-                       if (total_level < 1) break;
-                       if (liquid_levels_want[ii] >= 0 &&
-                               liquid_levels_want[ii] < LIQUID_LEVEL_SOURCE) {
-                               ++liquid_levels_want[ii];
-                               --total_level;
-                       }
-               }
-
-               // fill top block if can
-               if (neighbors[D_TOP].l) {
-                       liquid_levels_want[D_TOP] = total_level > LIQUID_LEVEL_SOURCE ?
-                               LIQUID_LEVEL_SOURCE : total_level;
-                       total_level -= liquid_levels_want[D_TOP];
-               }
-
-               for (u16 ii = 0; ii < 7; ii++) // infinity and cave flood optimization
-                       if (    neighbors[ii].i ||
-                               (liquid_levels_want[ii] >= 0 &&
-                                (fast_flood && p0.Y < water_level &&
-                                 (initial_size >= 1000
-                                  && ii != D_TOP
-                                  && want_level >= LIQUID_LEVEL_SOURCE/4
-                                  && can_liquid_same_level >= 5
-                                  && liquid_levels[D_TOP] >= LIQUID_LEVEL_SOURCE))))
-                               liquid_levels_want[ii] = LIQUID_LEVEL_SOURCE;
-
-               /*
-               if (total_level > 0) //|| flowed != volume)
-                       infostream <<" AFTER level=" << (int)total_level
-                       //<< " flowed="<<flowed<< " volume=" << volume
-                       << " wantsame="<<(int)want_level<< " top="
-                       << (int)liquid_levels_want[D_TOP]<< " topwas="
-                       << (int)liquid_levels[D_TOP]<< " bot="
-                       << (int)liquid_levels_want[D_BOTTOM]<<std::endl;
-               */
-
-               //u8 changed = 0;
-               for (u16 i = 0; i < 7; i++) {
-                       if (liquid_levels_want[i] < 0 || !neighbors[i].l)
-                               continue;
-                       MapNode & n0 = neighbors[i].n;
-                       p0 = neighbors[i].p;
-                       /*
-                               decide on the type (and possibly level) of the current node
-                       */
-                       content_t new_node_content;
-                       s8 new_node_level = -1;
-                       u8 viscosity = nodemgr->get(liquid_kind).liquid_viscosity;
-                       if (viscosity > 1 && liquid_levels_want[i] != liquid_levels[i]) {
-                               // amount to gain, limited by viscosity
-                               // must be at least 1 in absolute value
-                               s8 level_inc = liquid_levels_want[i] - liquid_levels[i];
-                               if (level_inc < -viscosity || level_inc > viscosity)
-                                       new_node_level = liquid_levels[i] + level_inc/viscosity;
-                               else if (level_inc < 0)
-                                       new_node_level = liquid_levels[i] - 1;
-                               else if (level_inc > 0)
-                                       new_node_level = liquid_levels[i] + 1;
-                       } else {
-                               new_node_level = liquid_levels_want[i];
-                       }
-                       
-                       if (new_node_level >= LIQUID_LEVEL_SOURCE)
-                               new_node_content = liquid_kind;
-                       else if (new_node_level > 0)
-                               new_node_content = liquid_kind_flowing;
-                       else
-                               new_node_content = CONTENT_AIR;
-                       
-                       // last level must flow down on stairs
-                       if (liquid_levels_want[i] != liquid_levels[i] &&
-                               liquid_levels[D_TOP] <= 0 && !neighbors[D_BOTTOM].l &&
-                               new_node_level >= 1 && new_node_level <= 2) {
-                               for (u16 ii = D_SELF + 1; ii < D_TOP; ++ii) { // only same level
-                                       if (neighbors[ii].l)
-                                               must_reflow_second.push_back(p0 + dirs[ii]);
-                               }
-                       }
-
-                       /*
-                               check if anything has changed.
-                               if not, just continue with the next node.
-                        */
-                       /*
-                       if (
-                                new_node_content == n0.getContent()
-                               && (nodemgr->get(n0.getContent()).liquid_type != LIQUID_FLOWING ||
-                                (n0.getLevel(nodemgr) == (u8)new_node_level
-                                //&& ((n0.param2 & LIQUID_FLOW_DOWN_MASK) ==
-                                //LIQUID_FLOW_DOWN_MASK) == flowing_down
-                                ))
-                               &&
-                                (nodemgr->get(n0.getContent()).liquid_type != LIQUID_SOURCE ||
-                                (((n0.param2 & LIQUID_INFINITY_MASK) ==
-                                       LIQUID_INFINITY_MASK) == neighbors[i].i
-                                ))
-                          )*/
-                       if (liquid_levels[i] == new_node_level)
-                       {
-                               continue;
-                       }
-                       
-                       //++changed;
-
-                       /*
-                               update the current node
-                        */
-                       /*
-                       if (nodemgr->get(new_node_content).liquid_type == LIQUID_FLOWING) {
-                               // set level to last 3 bits, flowing down bit to 4th bit
-                               n0.param2 = (new_node_level & LIQUID_LEVEL_MASK);
-                       } else if (nodemgr->get(new_node_content).liquid_type == LIQUID_SOURCE) {
-                               //n0.param2 = ~(LIQUID_LEVEL_MASK | LIQUID_FLOW_DOWN_MASK);
-                               n0.param2 = (neighbors[i].i ? LIQUID_INFINITY_MASK : 0x00);
-                       }
-                       */
-                       /*
-                       infostream << "set node i=" <<(int)i<<" "<< PP(p0)<< " nc="
-                       <<new_node_content<< " p2="<<(int)n0.param2<< " nl="
-                       <<(int)new_node_level<<std::endl;
-                       */
-                       
-                       n0.setContent(liquid_kind_flowing);
-                       n0.setLevel(nodemgr, new_node_level);
-                       // Find out whether there is a suspect for this action
-                       std::string suspect;
-                       if(m_gamedef->rollback()){
-                               suspect = m_gamedef->rollback()->getSuspect(p0, 83, 1);
-                       }
-
-                       if(!suspect.empty()){
-                               // Blame suspect
-                               RollbackScopeActor rollback_scope(m_gamedef->rollback(), suspect, true);
-                               // Get old node for rollback
-                               RollbackNode rollback_oldnode(this, p0, m_gamedef);
-                               // Set node
-                               setNode(p0, n0);
-                               // Report
-                               RollbackNode rollback_newnode(this, p0, m_gamedef);
-                               RollbackAction action;
-                               action.setSetNode(p0, rollback_oldnode, rollback_newnode);
-                               m_gamedef->rollback()->reportAction(action);
-                       } else {
-                               // Set node
-                               setNode(p0, n0);
-                       }
-
-                       v3s16 blockpos = getNodeBlockPos(p0);
-                       MapBlock *block = getBlockNoCreateNoEx(blockpos);
-                       if(block != NULL) {
-                               modified_blocks[blockpos] = block;
-                               // If node emits light, MapBlock requires lighting update
-                               if(nodemgr->get(n0).light_source != 0)
-                                       lighting_modified_blocks[block->getPos()] = block;
-                       }
-                       must_reflow.push_back(neighbors[i].p);
-               }
-               /* //for better relax  only same level
-               if (changed)  for (u16 ii = D_SELF + 1; ii < D_TOP; ++ii) {
-                       if (!neighbors[ii].l) continue;
-                       must_reflow.push_back(p0 + dirs[ii]);
-               }*/
-       }
-       /*
-       if (loopcount)
-               infostream<<"Map::transformLiquids(): loopcount="<<loopcount
-               <<" reflow="<<must_reflow.size()
-               <<" queue="<< m_transforming_liquid.size()<<std::endl;
-       */
-       while (must_reflow.size() > 0)
-               m_transforming_liquid.push_back(must_reflow.pop_front());
-       while (must_reflow_second.size() > 0)
-               m_transforming_liquid.push_back(must_reflow_second.pop_front());
-       updateLighting(lighting_modified_blocks, modified_blocks);
-}
-
 void Map::transformLiquids(std::map<v3s16, MapBlock*> & modified_blocks)
 {
-
-       if (g_settings->getBool("liquid_finite"))
-               return Map::transformLiquidsFinite(modified_blocks);
-
        INodeDefManager *nodemgr = m_gamedef->ndef();
 
        DSTACK(__FUNCTION_NAME);
@@ -2385,26 +2007,6 @@ void Map::removeNodeTimer(v3s16 p)
        block->m_node_timers.remove(p_rel);
 }
 
-s16 Map::getHeat(v3s16 p)
-{
-       MapBlock *block = getBlockNoCreateNoEx(getNodeBlockPos(p));
-       if(block != NULL) {
-               return block->heat;
-       }
-       //errorstream << "No heat for " << p.X<<"," << p.Z << std::endl;
-       return 0;
-}
-
-s16 Map::getHumidity(v3s16 p)
-{
-       MapBlock *block = getBlockNoCreateNoEx(getNodeBlockPos(p));
-       if(block != NULL) {
-               return block->humidity;
-       }
-       //errorstream << "No humidity for " << p.X<<"," << p.Z << std::endl;
-       return 0;
-}
-
 /*
        ServerMap
 */
@@ -2818,29 +2420,6 @@ MapBlock* ServerMap::finishBlockMake(BlockMakeData *data,
                        <<","<<blockpos_requested.Y<<","
                        <<blockpos_requested.Z<<")"<<std::endl;*/
                        
-       /*
-               Update weather data in blocks
-       */
-       ServerEnvironment *senv = &((Server *)m_gamedef)->getEnv();
-       for(s16 x=blockpos_min.X-extra_borders.X;
-               x<=blockpos_max.X+extra_borders.X; x++)
-       for(s16 z=blockpos_min.Z-extra_borders.Z;
-               z<=blockpos_max.Z+extra_borders.Z; z++)
-       for(s16 y=blockpos_min.Y-extra_borders.Y;
-               y<=blockpos_max.Y+extra_borders.Y; y++)
-       {
-               v3s16 p(x, y, z);
-               MapBlock *block = getBlockNoCreateNoEx(p);
-               block->heat_last_update     = 0;
-               block->humidity_last_update = 0;
-               if (senv->m_use_weather) {
-                       updateBlockHeat(senv, p * MAP_BLOCKSIZE, block);
-                       updateBlockHumidity(senv, p * MAP_BLOCKSIZE, block);
-               } else {
-                       block->heat     = HEAT_UNDEFINED;
-                       block->humidity = HUMIDITY_UNDEFINED;
-               }
-       }
        
 #if 0
        if(enable_mapgen_debug_info)
@@ -3176,18 +2755,6 @@ MapBlock *ServerMap::getBlockOrEmerge(v3s16 p3d)
 
 void ServerMap::prepareBlock(MapBlock *block) {
        ServerEnvironment *senv = &((Server *)m_gamedef)->getEnv();
-
-       // Calculate weather conditions
-       block->heat_last_update     = 0;
-       block->humidity_last_update = 0;
-       if (senv->m_use_weather) {
-               v3s16 p = block->getPos() *  MAP_BLOCKSIZE;
-               updateBlockHeat(senv, p, block);
-               updateBlockHumidity(senv, p, block);
-       } else {
-               block->heat     = HEAT_UNDEFINED;
-               block->humidity = HUMIDITY_UNDEFINED;
-       }
 }
 
 s16 ServerMap::findGroundLevel(v2s16 p2d)
@@ -3917,48 +3484,6 @@ void ServerMap::PrintInfo(std::ostream &out)
        out<<"ServerMap: ";
 }
 
-s16 ServerMap::updateBlockHeat(ServerEnvironment *env, v3s16 p, MapBlock *block)
-{
-       u32 gametime = env->getGameTime();
-       
-       if (block) {
-               if (gametime - block->heat_last_update < 10)
-                       return block->heat;
-       } else {
-               block = getBlockNoCreateNoEx(getNodeBlockPos(p));
-       }
-
-       f32 heat = m_emerge->biomedef->calcBlockHeat(p, getSeed(),
-                       env->getTimeOfDayF(), gametime * env->getTimeOfDaySpeed());
-
-       if(block) {
-               block->heat = heat;
-               block->heat_last_update = gametime;
-       }
-       return heat;
-}
-
-s16 ServerMap::updateBlockHumidity(ServerEnvironment *env, v3s16 p, MapBlock *block)
-{
-       u32 gametime = env->getGameTime();
-       
-       if (block) {
-               if (gametime - block->humidity_last_update < 10)
-                       return block->humidity;
-       } else {
-               block = getBlockNoCreateNoEx(getNodeBlockPos(p));
-       }
-
-       f32 humidity = m_emerge->biomedef->calcBlockHumidity(p, getSeed(),
-                       env->getTimeOfDayF(), gametime * env->getTimeOfDaySpeed());
-                       
-       if(block) {
-               block->humidity = humidity;
-               block->humidity_last_update = gametime;
-       }
-       return humidity;
-}
-
 /*
        MapVoxelManipulator
 */
index 191cf5f94b4f437a1bc750ce7d014098548c2292..c2725d3d64e485bd95f3978c05714422c337d5d5 100644 (file)
--- a/src/map.h
+++ b/src/map.h
@@ -304,7 +304,6 @@ public:
        virtual void PrintInfo(std::ostream &out);
 
        void transformLiquids(std::map<v3s16, MapBlock*> & modified_blocks);
-       void transformLiquidsFinite(std::map<v3s16, MapBlock*> & modified_blocks);
 
        /*
                Node metadata
@@ -351,9 +350,6 @@ public:
        void transforming_liquid_add(v3s16 p);
        s32 transforming_liquid_size();
 
-       virtual s16 getHeat(v3s16 p);
-       virtual s16 getHumidity(v3s16 p);
-
 protected:
        friend class LuaVoxelManip;
 
@@ -504,9 +500,6 @@ public:
        u64 getSeed();
        s16 getWaterLevel();
 
-       virtual s16 updateBlockHeat(ServerEnvironment *env, v3s16 p, MapBlock *block = NULL);
-       virtual s16 updateBlockHumidity(ServerEnvironment *env, v3s16 p, MapBlock *block = NULL);
-
 private:
        // Emerge manager
        EmergeManager *m_emerge;
index eafb956d5057fd99fa2217f8b251b5c58a173edd..95e54fb33ce849ced6f6452ee50da21e376c3d5b 100644 (file)
@@ -43,10 +43,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 */
 
 MapBlock::MapBlock(Map *parent, v3s16 pos, IGameDef *gamedef, bool dummy):
-               heat(0),
-               humidity(0),
-               heat_last_update(0),
-               humidity_last_update(0),
                m_parent(parent),
                m_pos(pos),
                m_gamedef(gamedef),
@@ -647,8 +643,8 @@ void MapBlock::serializeNetworkSpecific(std::ostream &os, u16 net_proto_version)
        if(net_proto_version >= 21){
                int version = 1;
                writeU8(os, version);
-               writeF1000(os, heat);
-               writeF1000(os, humidity);
+               writeF1000(os, 0); // deprecated heat
+               writeF1000(os, 0); // deprecated humidity
        }
 }
 
@@ -764,8 +760,8 @@ void MapBlock::deSerializeNetworkSpecific(std::istream &is)
                //if(version != 1)
                //      throw SerializationError("unsupported MapBlock version");
                if(version >= 1) {
-                       heat = readF1000(is);
-                       humidity = readF1000(is);
+                       readF1000(is); // deprecated heat
+                       readF1000(is); // deprecated humidity
                }
        }
        catch(SerializationError &e)
index 501ab75dafb944132801aa8f256fa05f3c75c34f..3879c5b0e5db10cb8e68cf635730fb8085972b8a 100644 (file)
@@ -513,11 +513,6 @@ public:
        NodeMetadataList m_node_metadata;
        NodeTimerList m_node_timers;
        StaticObjectList m_static_objects;
-       
-       s16 heat;
-       s16 humidity;
-       u32 heat_last_update;
-       u32 humidity_last_update;
 
 private:
        /*
index a7e9d2e04ced9afc09ba2053b61f1f85813ea87e..5e393901aa13e18b4e6ae3812e57e6e4f5d53e02 100644 (file)
@@ -979,8 +979,6 @@ void Mapgen::updateHeightmap(v3s16 nmin, v3s16 nmax) {
 void Mapgen::updateLiquid(UniqueQueue<v3s16> *trans_liquid, v3s16 nmin, v3s16 nmax) {
        bool isliquid, wasliquid, rare;
        v3s16 em  = vm->m_area.getExtent();
-       rare = g_settings->getBool("liquid_finite");
-       int rarecnt = 0;
 
        for (s16 z = nmin.Z; z <= nmax.Z; z++) {
                for (s16 x = nmin.X; x <= nmax.X; x++) {
@@ -990,8 +988,8 @@ void Mapgen::updateLiquid(UniqueQueue<v3s16> *trans_liquid, v3s16 nmin, v3s16 nm
                        for (s16 y = nmax.Y; y >= nmin.Y; y--) {
                                isliquid = ndef->get(vm->m_data[i]).isLiquid();
 
-                               // there was a change between liquid and nonliquid, add to queue. no need to add every with liquid_finite
-                               if (isliquid != wasliquid && (!rare || !(rarecnt++ % 36)))
+                               // there was a change between liquid and nonliquid, add to queue.
+                               if (isliquid != wasliquid)
                                        trans_liquid->push_back(v3s16(x, y, z));
 
                                wasliquid = isliquid;
index 6447866cdc7b401cd20863cc6c414801cbf816ce..37fa167e67ab5220a601658b9b2289ee88148429 100644 (file)
@@ -765,7 +765,6 @@ int ModApiEnvMod::l_spawn_tree(lua_State *L)
        return 1;
 }
 
-
 // minetest.transforming_liquid_add(pos)
 int ModApiEnvMod::l_transforming_liquid_add(lua_State *L)
 {
@@ -776,28 +775,6 @@ int ModApiEnvMod::l_transforming_liquid_add(lua_State *L)
        return 1;
 }
 
-// minetest.get_heat(pos)
-// pos = {x=num, y=num, z=num}
-int ModApiEnvMod::l_get_heat(lua_State *L)
-{
-       GET_ENV_PTR;
-
-       v3s16 pos = read_v3s16(L, 1);
-       lua_pushnumber(L, env->getServerMap().updateBlockHeat(env, pos));
-       return 1;
-}
-
-// minetest.get_humidity(pos)
-// pos = {x=num, y=num, z=num}
-int ModApiEnvMod::l_get_humidity(lua_State *L)
-{
-       GET_ENV_PTR;
-
-       v3s16 pos = read_v3s16(L, 1);
-       lua_pushnumber(L, env->getServerMap().updateBlockHumidity(env, pos));
-       return 1;
-}
-
 // minetest.forceload_block(blockpos)
 // blockpos = {x=num, y=num, z=num}
 int ModApiEnvMod::l_forceload_block(lua_State *L)
@@ -855,8 +832,6 @@ void ModApiEnvMod::Initialize(lua_State *L, int top)
        API_FCT(find_path);
        API_FCT(line_of_sight);
        API_FCT(transforming_liquid_add);
-       API_FCT(get_heat);
-       API_FCT(get_humidity);
        API_FCT(forceload_block);
        API_FCT(forceload_free_block);
 }
index 7e1cabe3f696768faa9f74d24bb8eb538f02bab5..8bf599b0c05820feb8c48efbda8d9412cfeefab8 100644 (file)
@@ -148,9 +148,6 @@ private:
        // minetest.transforming_liquid_add(pos)
        static int l_transforming_liquid_add(lua_State *L);
 
-       static int l_get_heat(lua_State *L);
-       static int l_get_humidity(lua_State *L);
-       
        // minetest.forceload_block(blockpos)
        // forceloads a block
        static int l_forceload_block(lua_State *L);
index 64511b5b0d9fadf75a806ffd305c39c5e609481a..10ec5771f0d045e3a119a32b71c8e60a7275b2db 100644 (file)
@@ -218,7 +218,6 @@ void sendAnnounce(std::string action, const std::vector<std::string> & clients_n
                server["dedicated"]     = g_settings->get("server_dedicated");
                server["privs"]         = g_settings->get("default_privs");
                server["rollback"]      = g_settings->getBool("enable_rollback_recording");
-               server["liquid_finite"] = g_settings->getBool("liquid_finite");
                server["mapgen"]        = g_settings->get("mg_name");
                server["can_see_far_names"]     = g_settings->getBool("unlimited_player_transfer_distance");
                server["mods"]          = Json::Value(Json::arrayValue);