optimize: fix noBurning
[waspsaliva.git] / clientmods / optimize / init.lua
blob27ca8d4a9522d2799b238d6b070ba984197b10f2
1 -- CC0/Unlicense Emilia 2020
3 -- Optimizes stuff.
6 woptimize={}
8 function woptimize.countents()
9 local obj = minetest.localplayer.get_nearby_objects(10000)
10 ws.dcm("Entity count: "..#obj)
11 end
14 -- texture is a prefix
15 local function remove_ents(texture)
16 if not minetest.localplayer then return end
17 local obj = minetest.localplayer.get_nearby_objects(10000)
19 for i, v in ipairs(obj) do
20 -- CAOs with water/lava textures are droplets
21 --minetest.log("ERROR",v:get_item_textures())
22 --ws.dcm(v:get_item_textures())
23 local txt=v:get_item_textures()
24 if type(txt) == "string" and txt:find(texture) then
25 v:set_visible(false)
26 v:remove(true)
27 end
28 end
29 end
33 local function remove_hud(name)
34 local player = minetest.localplayer
35 local def
36 local i = -1
37 if not player then return end
38 repeat
39 i = i + 1
40 def = player:hud_get(i)
41 until not def or def.text:find(name)
42 if def then
43 minetest.localplayer:hud_remove(i)
44 end
45 end
48 core.register_on_spawn_particle(function(particle)
49 if minetest.settings:get_bool("noparticles") then return true end
50 end)
52 local epoch = os.clock()
54 minetest.register_globalstep(function()
55 if not minetest.localplayer then return end
56 if os.clock() > epoch + 1 then
57 if minetest.settings:get_bool("optimize_water_drops") then
58 remove_ents("default_water_source")
59 end
60 if minetest.settings:get_bool("optimize_burning") then
61 remove_hud('mcl_burning_hud_flame_animated.png')
62 end
63 epoch = os.clock()
64 end
65 end)
68 minetest.register_cheat("NoParticles", "Render", "noparticles")
69 minetest.register_cheat("NoDroplets", "Render", "optimize_water_drops")
70 minetest.register_cheat("NoBurning", "Render", "optimize_burning")