mirror of
https://git.minetest.land/Mineclonia/Mineclonia.git
synced 2024-11-28 08:53:03 +00:00
Refactor default mod and get rid of many globals
This commit is contained in:
parent
8ee0184a1d
commit
fd1845029e
5 changed files with 35 additions and 82 deletions
|
@ -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,
|
||||
|
|
|
@ -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]"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue