mirror of
https://github.com/sys4-fr/server-nalc.git
synced 2024-11-18 16:20:38 +01:00
6951bd470f
- Beginners' chest updated (support for forceload) - Forceload mod by rubenwardy added - trmp_minetest_game added
172 lines
4.5 KiB
Lua
Executable File
172 lines
4.5 KiB
Lua
Executable File
--[[
|
|
Beginners_chest mod
|
|
Put some useful stuff in chests for the new players
|
|
|
|
Version : 1.1 - 11/8/2014_14h48UTC
|
|
Last modification by Mg on the : 14/3/2015 @ 14h48 UTC
|
|
|
|
Mod ßý Mg, based on an idea of MinetestForFun/Darcidride
|
|
]]--
|
|
|
|
local chests = {
|
|
[1] = {
|
|
position = {x = 5, y = 40, z = -1},
|
|
interval_max = 3600,
|
|
stuff = {
|
|
[1] = "3d_armor:boots_steel",
|
|
[2] = "default:pick_stone",
|
|
[3] = "default:sword_stone",
|
|
[32] = ""
|
|
}
|
|
},
|
|
[2] = {
|
|
position = {x = 34, y = 20, z = 101},
|
|
interval_max = 600,
|
|
stuff = {
|
|
[1] = "3d_armor:steel_chest",
|
|
[2] = "throwing:bow_stone",
|
|
[3] = "default:sword_stone",
|
|
[4] = "farming:carrot 3",
|
|
[32] = ""
|
|
}
|
|
},
|
|
[3] = {
|
|
position = {x = -36, y = 503, z = -14},
|
|
interval_max = 5*60,
|
|
stuff = {
|
|
[1] = "default:apple 10",
|
|
[32] = ""
|
|
}
|
|
},
|
|
[4] = {
|
|
position = {x = -44, y = 503, z = -27},
|
|
interval_max = 5*60,
|
|
stuff = {
|
|
[1] = "default:apple 10",
|
|
[32] = ""
|
|
}
|
|
},
|
|
[5] = {
|
|
position = {x = 22, y = 504, z = -28},
|
|
interval_max = 30*60,
|
|
stuff = {
|
|
[1] = "3d_armor:diamond_chest",
|
|
[2] = "default:sword_diamond",
|
|
[3] = "default:apple 10",
|
|
[4] = "colormachine:colormachine",
|
|
[32] = ""
|
|
}
|
|
},
|
|
[6] = {
|
|
position = {x = -12, y = 589, z = -16},
|
|
interval_max = 30*60,
|
|
stuff = {
|
|
[1] = "maptools:gold_coin",
|
|
[2] = "default:mese",
|
|
[3] = "3d_armor:boots_mithril",
|
|
[4] = "maptools:superapple 5",
|
|
[32] = ""
|
|
}
|
|
},
|
|
[7] = {
|
|
position = {x = 6, y = 593, z = -26},
|
|
interval_max = 5*60,
|
|
stuff = {
|
|
[1] = "default:apple 10",
|
|
[32] = ""
|
|
}
|
|
},
|
|
[8] = {
|
|
position = {x = 13, y = 581, z = -26},
|
|
interval_max = 30*60,
|
|
stuff = {
|
|
[1] = "default:obsidianbrick",
|
|
[2] = "default:nyancat 5",
|
|
[3] = "maptools:gold_coin 5",
|
|
[4] = "default:axe_nyan",
|
|
[5] = "maptools:superapple 10",
|
|
[32] = ""
|
|
}
|
|
},
|
|
[9] = {
|
|
position = {x = 25, y = 550, z = -8},
|
|
interval_max = 5*60,
|
|
stuff = {
|
|
[1] = "default:apple 10",
|
|
[32] = ""
|
|
}
|
|
},
|
|
[10] = {
|
|
position = {x = 32, y = 550, z = 5},
|
|
interval_max = 5*60,
|
|
stuff = {
|
|
[1] = "default:apple 20",
|
|
[2] = "maptools:superapple 10",
|
|
[32] = ""
|
|
}
|
|
},
|
|
[11] = {
|
|
position = {x = 65, y = 505, z = 64},
|
|
interval_max = 5*60,
|
|
stuff = {
|
|
[1] = "homedecor:trophy",
|
|
[32] = ""
|
|
}
|
|
}
|
|
}
|
|
|
|
minetest.register_globalstep(function(dtime)
|
|
local i = 1
|
|
while i < table.getn(chests)+1 do
|
|
|
|
if not chests[i].stuff then
|
|
chests[i].stuff = {
|
|
[1] = "default:wood",
|
|
[32] = ""
|
|
}
|
|
end
|
|
if not chests[i].interval_timer then
|
|
chests[i].interval_timer = 0
|
|
end
|
|
if not chests[i].interval_max then
|
|
chests[i].interval_max = 7200 -- Using default value : 2h
|
|
end
|
|
|
|
chests[i].interval_timer = chests[i].interval_timer + dtime
|
|
|
|
if chests[i].position.x and chests[i].position.y and chests[i].position.z and chests[i].interval_timer >= chests[i].interval_max then
|
|
chests[i].interval_timer = 0
|
|
local node = minetest.get_node(chests[i].position)
|
|
if node.name ~= "ignore" then
|
|
if node.name ~= "default:chest" then
|
|
if node.name == "air" then
|
|
minetest.set_node(chests[i].position,{name = "default:chest"})
|
|
minetest.log("action","[b_chest]["..i.."] Chest placed at "..chests[i].position.x..", "..chests[i].position.y..", "..chests[i].position.z)
|
|
if minetest.get_modpath("forceload") ~= nil
|
|
and (minetest.get_node({chests[i].position.x,chests[i].position.y-1,chests[i].position.z}).name == "air"
|
|
or minetest.get_node({chests[i].position.x,chests[i].position.y-1,chests[i].position.z}).name == "default:dirt") then
|
|
-- Enable use of forceload anchors
|
|
minetest.set_node({chests[i].position.x,chests[i].position.y-1,chests[i].position.z},{name = "forceload:anchor"})
|
|
minetest.log("action","[b_chest]["..i.."] Forceload anchor placed under chest")
|
|
end
|
|
else
|
|
minetest.log("action","[b_chest]["..i.."] Unable to place chest at "..chests[i].position.x..", "..chests[i].position.y..", "..chests[i].position.z.." : place already in use.")
|
|
break
|
|
end
|
|
end
|
|
|
|
local meta = minetest.get_meta(chests[i].position)
|
|
local inv = meta:get_inventory()
|
|
inv:set_list("main", chests[i].stuff)
|
|
|
|
minetest.log("action","[b_chest]["..i.."] Chest reloaded at "..chests[i].position.x..", "..chests[i].position.y..", "..chests[i].position.z)
|
|
|
|
else
|
|
minetest.log("action","[b_chest]["..i.."] Cannot reload chest at "..chests[i].position.x..", "..chests[i].position.y..", "..chests[i].position.z.." : area not loaded.")
|
|
end
|
|
end
|
|
i = i + 1
|
|
end
|
|
|
|
end)
|