Disable some demanding particles by default
Fire smoke, lava droplets
This commit is contained in:
parent
c0aeb2f15f
commit
c2afc82754
6 changed files with 31 additions and 13 deletions
|
@ -6,15 +6,30 @@ mcl_particles = {}
|
|||
local particle_nodes = {}
|
||||
|
||||
-- Node particles can be disabled via setting
|
||||
local node_particles_allowed = minetest.settings:get_bool("mcl_node_particles", true)
|
||||
local node_particles_allowed = minetest.settings:get("mcl_node_particles") or "medium"
|
||||
|
||||
local levels = {
|
||||
high = 3,
|
||||
medium = 2,
|
||||
low = 1,
|
||||
none = 0,
|
||||
}
|
||||
|
||||
allowed_level = levels[node_particles_allowed]
|
||||
if not allowed_level then
|
||||
allowed_level = levels["medium"]
|
||||
end
|
||||
|
||||
|
||||
-- Add a particlespawner that is assigned to a given node position.
|
||||
-- * pos: Node positon. MUST use integer values!
|
||||
-- * particlespawner_definition: definition for minetest.add_particlespawner
|
||||
-- * level: detail level of particles. "high", "medium" or "low". High detail levels are for
|
||||
-- CPU-demanding particles, like smoke of fire (which occurs frequently)
|
||||
-- NOTE: All particlespawners are automatically removed on shutdown.
|
||||
-- Returns particlespawner ID on succcess and nil on failure
|
||||
function mcl_particles.add_node_particlespawner(pos, particlespawner_definition)
|
||||
if not node_particles_allowed then
|
||||
function mcl_particles.add_node_particlespawner(pos, particlespawner_definition, level)
|
||||
if allowed_level == 0 or levels[level] > allowed_level then
|
||||
return
|
||||
end
|
||||
local poshash = minetest.hash_node_position(pos)
|
||||
|
@ -37,7 +52,7 @@ end
|
|||
-- pos: Node positon. MUST use integer values!
|
||||
-- Returns true if particlespawner could be removed and false if not
|
||||
function mcl_particles.delete_node_particlespawners(pos)
|
||||
if not node_particles_allowed then
|
||||
if allowed_level == 0 then
|
||||
return false
|
||||
end
|
||||
local poshash = minetest.hash_node_position(pos)
|
||||
|
|
|
@ -227,7 +227,7 @@ local emit_lava_particle = function(pos)
|
|||
})
|
||||
end
|
||||
|
||||
if minetest.settings:get_bool("mcl_node_particles", true) then
|
||||
if minetest.settings:get("mcl_node_particles") == "full" then
|
||||
minetest.register_abm({
|
||||
label = "Lava particles",
|
||||
nodenames = {"group:lava_source"},
|
||||
|
|
|
@ -24,7 +24,7 @@ local spawn_smoke = function(pos)
|
|||
aspect_h = 8,
|
||||
length = 2.05,
|
||||
},
|
||||
})
|
||||
}, "high")
|
||||
end
|
||||
|
||||
--
|
||||
|
|
|
@ -379,7 +379,7 @@ local function spawn_flames(pos, param2)
|
|||
maxsize = 0.8,
|
||||
texture = "mcl_particles_flame.png",
|
||||
glow = LIGHT_ACTIVE_FURNACE,
|
||||
})
|
||||
}, "low")
|
||||
end
|
||||
|
||||
local on_rotate, after_rotate_active
|
||||
|
|
|
@ -16,7 +16,7 @@ local spawn_flames_floor = function(pos)
|
|||
maxsize = 2,
|
||||
texture = "mcl_particles_flame.png",
|
||||
glow = LIGHT_TORCH,
|
||||
})
|
||||
}, "low")
|
||||
-- Smoke
|
||||
mcl_particles.add_node_particlespawner(pos, {
|
||||
amount = 0.5,
|
||||
|
@ -36,7 +36,7 @@ local spawn_flames_floor = function(pos)
|
|||
aspect_h = 8,
|
||||
length = 2.05,
|
||||
},
|
||||
})
|
||||
}, "medium")
|
||||
end
|
||||
|
||||
local spawn_flames_wall = function(pos, param2)
|
||||
|
@ -71,7 +71,7 @@ local spawn_flames_wall = function(pos, param2)
|
|||
maxsize = 2,
|
||||
texture = "mcl_particles_flame.png",
|
||||
glow = LIGHT_TORCH,
|
||||
})
|
||||
}, "low")
|
||||
-- Smoke
|
||||
mcl_particles.add_node_particlespawner(pos, {
|
||||
amount = 0.5,
|
||||
|
@ -91,7 +91,7 @@ local spawn_flames_wall = function(pos, param2)
|
|||
aspect_h = 8,
|
||||
length = 2.05,
|
||||
},
|
||||
})
|
||||
}, "medium")
|
||||
end
|
||||
|
||||
local remove_flames = function(pos)
|
||||
|
|
|
@ -27,8 +27,11 @@ mcl_doTileDrops (Blocks have drops) bool true
|
|||
# If enabled, TNT explosions destroy blocks.
|
||||
mcl_tnt_griefing (TNT destroys blocks) bool true
|
||||
|
||||
# If enabled, some blocks will emit decorative particles like flames.
|
||||
mcl_node_particles (Block particles) bool true
|
||||
# Some blocks will emit decorative particles like flames. This setting
|
||||
# specifies the detail level of particles, with higher levels being
|
||||
# more CPU demanding.
|
||||
# WARNING: The "high" level is really CPU intensive, use with care!
|
||||
mcl_node_particles (Block particles detail level) enum medium high,medium,low,none
|
||||
|
||||
[Players]
|
||||
# If enabled, players respawn at the bed they last lay on instead of normal
|
||||
|
|
Reference in a new issue