From fd1845029e3b0b95b3f188f61f142d22bb9e863d Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Fri, 27 Jan 2017 13:45:21 +0100 Subject: [PATCH] Refactor default mod and get rid of many globals --- mods/default/functions.lua | 67 ++++++-------------------------------- mods/default/init.lua | 4 --- mods/default/nodes.lua | 42 +++++++++++++----------- mods/default/tools.lua | 2 +- mods/dye/init.lua | 2 +- 5 files changed, 35 insertions(+), 82 deletions(-) diff --git a/mods/default/functions.lua b/mods/default/functions.lua index d40146b9f..9959da2ef 100644 --- a/mods/default/functions.lua +++ b/mods/default/functions.lua @@ -151,7 +151,7 @@ minetest.register_on_dignode(function(pos, node) local i=1 while timber_nodenames[i]~=nil do if node.name==timber_nodenames[i] then - np={x=pos.x, y=pos.y+1, z=pos.z} + local np={x=pos.x, y=pos.y+1, z=pos.z} while minetest.get_node(np).name==timber_nodenames[i] do minetest.remove_node(np) minetest.add_item(np, timber_nodenames[i]) @@ -166,14 +166,7 @@ end) -- Flint and Steel -- -function get_nodedef_field(nodename, fieldname) - if not minetest.registered_nodes[nodename] then - return nil - end - return minetest.registered_nodes[nodename][fieldname] -end - -function set_fire(pointed_thing) +function default.set_fire(pointed_thing) local n = minetest.get_node(pointed_thing.above) if n.name ~= "" and n.name == "air" and not minetest.is_protected(pointed_thing.above, "fire") then minetest.add_node(pointed_thing.above, {name="fire:basic_flame"}) @@ -184,7 +177,7 @@ end -- Fire Particles -- -function add_fire(pos) +function default.add_fire(pos) local null = {x=0, y=0, z=0} pos.y = pos.y+0.19 minetest.add_particle(pos, null, null, 1.1, @@ -202,7 +195,7 @@ local n local n2 local pos -function apple_leave() +local function apple_leave() if math.random(0, 10) == 3 then return {name = "default:apple"} else @@ -210,7 +203,7 @@ function apple_leave() end end -function air_leave() +local function air_leave() if math.random(0, 50) == 3 then return {name = "air"} else @@ -218,7 +211,7 @@ function air_leave() end end -function generate_tree(pos, trunk, leaves, typearbre) +local function generate_tree(pos, trunk, leaves, typearbre) pos.y = pos.y-1 local nodename = minetest.get_node(pos).name @@ -226,6 +219,7 @@ function generate_tree(pos, trunk, leaves, typearbre) if not minetest.get_node_light(pos) then return end + local node if typearbre == nil or typearbre == 1 then node = {name = ""} for dy=1,4 do @@ -460,7 +454,7 @@ end end) -function duengen(pointed_thing) +function default.duengen(pointed_thing) pos = pointed_thing.under n = minetest.get_node(pos) if n.name == "" then return false end @@ -630,54 +624,13 @@ minetest.register_abm({ local newpos = {x=pos.x, y=pos.y-1, z=pos.z} local n = minetest.get_node(newpos) if n.name == "air" then - walldir = node.param2 + local walldir = node.param2 minetest.add_node(newpos, {name = "default:vine", param2 = walldir}) end end }) --- Global environment step function -function on_step(dtime) - -- print("on_step") -end -minetest.register_globalstep(on_step) - -function on_placenode(p, node) - --print("on_placenode") -end -minetest.register_on_placenode(on_placenode) - -function on_dignode(p, node) - --print("on_dignode") -end -minetest.register_on_dignode(on_dignode) - -function on_punchnode(p, node) -end -minetest.register_on_punchnode(on_punchnode) - --- END - --- Support old code -function default.spawn_falling_node(p, nodename) - spawn_falling_node(p, nodename) -end - --- Horrible crap to support old code --- Don't use this and never do what this does, it's completely wrong! --- (More specifically, the client and the C++ code doesn't get the group) -function default.register_falling_node(nodename, texture) - minetest.log("error", debug.traceback()) - minetest.log('error', "WARNING: default.register_falling_node is deprecated") - if minetest.registered_nodes[nodename] then - minetest.registered_nodes[nodename].groups.falling_node = 1 - end -end - ---Sounds - - -- -- Sounds -- @@ -864,7 +817,7 @@ minetest.register_abm({ ------------------------ -- Create Color Glass -- ------------------------ -function AddGlass(desc, recipeitem, color) +function default.add_glass(desc, recipeitem, color) minetest.register_node("default:glass_"..color, { description = desc, diff --git a/mods/default/init.lua b/mods/default/init.lua index 7d627a443..00ab73ba1 100644 --- a/mods/default/init.lua +++ b/mods/default/init.lua @@ -2,10 +2,6 @@ -- See README.txt for licensing and other information. -- The API documentation in here was moved into doc/lua_api.txt -WATER_ALPHA = 160 -WATER_VISC = 1 -LAVA_VISC = 7 - -- Definitions made by this mod that other mods can use too default = {} default.gui_slots = "listcolors[#9990;#FFF7;#FFF0;#000;#FFF]" diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index ab2840fca..8a96da821 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -1,5 +1,9 @@ -- mods/default/nodes.lua +local WATER_ALPHA = 160 +local WATER_VISC = 1 +local LAVA_VISC = 7 + -- -- Node definitions -- @@ -1025,22 +1029,22 @@ minetest.register_node("default:glass", { }) ---- colored glass -AddGlass( "Red Stained Glass", "basecolor_red", "red") -AddGlass( "Green Stained Glass", "unicolor_dark_green", "green") -AddGlass( "Blue Stained Glass", "basecolor_blue", "blue") -AddGlass( "Light Blue Stained Glass", "unicolor_light_blue", "light_blue") -AddGlass( "Black Stained Glass", "basecolor_black", "black") -AddGlass( "White Stained Glass", "basecolor_white", "white") -AddGlass( "Yellow Stained Glass", "basecolor_yellow", "yellow") -AddGlass( "Brown Stained Glass", "unicolor_dark_orange", "brown") -AddGlass( "Orange Stained Glass", "excolor_orange", "orange") -AddGlass( "Pink Stained Glass", "unicolor_light_red", "pink") -AddGlass( "Gray Stained Glass", "unicolor_darkgrey", "gray") -AddGlass( "Lime Stained Glass", "basecolor_green", "lime") -AddGlass( "Light Gray Stained Glass", "basecolor_grey", "silver") -AddGlass( "Magenta Stained Glass", "basecolor_magenta", "magenta") -AddGlass( "Purple Stained Glass", "excolor_violet", "purple") -AddGlass( "Cyan Stained Glass", "basecolor_cyan", "cyan") +default.add_glass( "Red Stained Glass", "basecolor_red", "red") +default.add_glass( "Green Stained Glass", "unicolor_dark_green", "green") +default.add_glass( "Blue Stained Glass", "basecolor_blue", "blue") +default.add_glass( "Light Blue Stained Glass", "unicolor_light_blue", "light_blue") +default.add_glass( "Black Stained Glass", "basecolor_black", "black") +default.add_glass( "White Stained Glass", "basecolor_white", "white") +default.add_glass( "Yellow Stained Glass", "basecolor_yellow", "yellow") +default.add_glass( "Brown Stained Glass", "unicolor_dark_orange", "brown") +default.add_glass( "Orange Stained Glass", "excolor_orange", "orange") +default.add_glass( "Pink Stained Glass", "unicolor_light_red", "pink") +default.add_glass( "Gray Stained Glass", "unicolor_darkgrey", "gray") +default.add_glass( "Lime Stained Glass", "basecolor_green", "lime") +default.add_glass( "Light Gray Stained Glass", "basecolor_grey", "silver") +default.add_glass( "Magenta Stained Glass", "basecolor_magenta", "magenta") +default.add_glass( "Purple Stained Glass", "excolor_violet", "purple") +default.add_glass( "Cyan Stained Glass", "basecolor_cyan", "cyan") minetest.register_node("default:rail", { description = "Rail", @@ -1498,7 +1502,7 @@ minetest.register_node("default:sponge", { on_water = true end end - + local p, n if on_water == true then for i=-3,3 do for j=-3,3 do @@ -1514,8 +1518,8 @@ minetest.register_node("default:sponge", { end end end - local p = {x=pos.x, y=pos.y, z=pos.z} - local n = minetest.get_node(p) + p = {x=pos.x, y=pos.y, z=pos.z} + n = minetest.get_node(p) if change == true then minetest.add_node(pointed_thing.above, {name = "default:sponge_wet"}) else diff --git a/mods/default/tools.lua b/mods/default/tools.lua index fa6b266fa..7d751ac84 100644 --- a/mods/default/tools.lua +++ b/mods/default/tools.lua @@ -331,7 +331,7 @@ minetest.register_tool("default:flint_and_steel", { if minetest.get_node(pointed_thing.under).name == "mcl_tnt:tnt" then tnt.ignite(pointed_thing.under) else - set_fire(pointed_thing) + default.set_fire(pointed_thing) itemstack:add_wear(66000/65) -- 65 uses return itemstack end diff --git a/mods/dye/init.lua b/mods/dye/init.lua index 3c1dc6457..4ae56151b 100644 --- a/mods/dye/init.lua +++ b/mods/dye/init.lua @@ -102,7 +102,7 @@ minetest.register_craftitem("dye:white", { stack_max = 64, groups = {dye=1, craftitem=1, basecolor_white=1, excolor_white=1, unicolor_white=1}, on_place = function(itemstack, user, pointed_thing) - if(duengen(pointed_thing)) then + if(default.duengen(pointed_thing)) then itemstack:take_item() end return itemstack