Compare commits
5 Commits
72189f224d
...
3f2c13719a
Author | SHA1 | Date |
---|---|---|
|
3f2c13719a | |
|
c37da38ab8 | |
|
017ce8129f | |
|
2bab2af4ce | |
|
57a17af784 |
|
@ -41,5 +41,5 @@ read_globals = {
|
|||
"letters", "player_monoids",
|
||||
"pipeworks", "planetoidgen",
|
||||
"xban", "beerchat", "drawers",
|
||||
"toolranks",
|
||||
"toolranks", "stealthnode"
|
||||
}
|
||||
|
|
41
death.lua
41
death.lua
|
@ -1,41 +0,0 @@
|
|||
|
||||
local BONES_WAYPOINT_EXPIRES_SECONDS = 42 * 60
|
||||
|
||||
minetest.register_on_dieplayer(function(player)
|
||||
local player_name = player:get_player_name()
|
||||
local pos = player:get_pos()
|
||||
|
||||
pos.x = math.floor(pos.x + 0.5)
|
||||
pos.y = math.floor(pos.y + 0.5)
|
||||
pos.z = math.floor(pos.z + 0.5)
|
||||
|
||||
local pos_string = minetest.pos_to_string(pos)
|
||||
|
||||
minetest.log("action", "[death] player '" .. player_name .. "' died at " .. pos_string)
|
||||
minetest.chat_send_player(player_name, "You died at " .. pos_string)
|
||||
|
||||
local bone_string = "Bones"
|
||||
if player.get_meta then
|
||||
-- [xp_redo] keeps track of deathcount, let's see if it is there
|
||||
local count = player:get_meta():get_int("died")
|
||||
if 0 < count then
|
||||
bone_string = "Bone #" .. tostring(count)
|
||||
end
|
||||
end -- if not fake player
|
||||
local hud_id = player:hud_add({
|
||||
hud_elem_type = "waypoint",
|
||||
name = bone_string .. " " .. pos_string,
|
||||
text = "m",
|
||||
number = 0xFFFFFF,
|
||||
world_pos = pos
|
||||
})
|
||||
|
||||
minetest.after(BONES_WAYPOINT_EXPIRES_SECONDS, function()
|
||||
-- retrieve player by name, the "player" object should not be carried across server-steps
|
||||
player = minetest.get_player_by_name(player_name)
|
||||
if player then
|
||||
player:hud_remove(hud_id)
|
||||
end
|
||||
end)
|
||||
|
||||
end)
|
11
init.lua
11
init.lua
|
@ -19,6 +19,11 @@ if minetest.get_modpath("beerchat") then
|
|||
dofile(MP.."/beerchat.lua")
|
||||
end
|
||||
|
||||
-- additional stealthnodes
|
||||
if minetest.get_modpath("mesecons_stealthnodes") then
|
||||
dofile(MP.."/mesecons_stealthnodes.lua")
|
||||
end
|
||||
|
||||
-- cleanups
|
||||
dofile(MP.."/cleanup.lua")
|
||||
|
||||
|
@ -61,9 +66,6 @@ dofile(MP.."/privs/protection.lua")
|
|||
dofile(MP.."/privs/fly.lua")
|
||||
dofile(MP.."/privs/layers.lua")
|
||||
|
||||
-- death message
|
||||
dofile(MP.."/death.lua")
|
||||
|
||||
-- travel stuff
|
||||
dofile(MP.."/travel/travel.lua")
|
||||
dofile(MP.."/teleport_back.lua")
|
||||
|
@ -129,9 +131,6 @@ if minetest.get_modpath("technic") then
|
|||
|
||||
-- extractor recipes
|
||||
dofile(MP.."/extractor.lua")
|
||||
|
||||
-- tweaks
|
||||
dofile(MP.."/technic.lua")
|
||||
end
|
||||
|
||||
if minetest.get_modpath("technic_cnc") then
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
|
||||
local nodes = {
|
||||
{"scifi_nodes", "white"},
|
||||
{"technic", "zinc_block"},
|
||||
{"technic", "chromium_block"}
|
||||
}
|
||||
|
||||
for _,value in pairs(nodes) do
|
||||
if minetest.get_modpath(value[1]) then
|
||||
stealthnode.register_stealthnode(value[1], value[2])
|
||||
end
|
||||
end
|
1
mod.conf
1
mod.conf
|
@ -28,6 +28,7 @@ letters,
|
|||
loot,
|
||||
maptools,
|
||||
mesecons_mvps,
|
||||
mesecons_stealthnodes,
|
||||
missions,
|
||||
mobs,
|
||||
mobs_animal,
|
||||
|
|
30
technic.lua
30
technic.lua
|
@ -1,30 +0,0 @@
|
|||
|
||||
|
||||
-- https://github.com/pandorabox-io/pandorabox.io/issues/330
|
||||
minetest.register_abm({
|
||||
label = "move or drop bones in active reactors",
|
||||
nodenames = {"bones:bones"},
|
||||
neighbors = {"technic:hv_nuclear_reactor_core_active"},
|
||||
interval = 2,
|
||||
chance = 1,
|
||||
action = function(pos)
|
||||
-- try to find nearby space to move bones into
|
||||
local newpos = minetest.find_node_near(pos, 1, { "air", "vacuum:vacuum"})
|
||||
if newpos ~= nil then
|
||||
local meta = minetest.get_meta(pos):to_table()
|
||||
minetest.set_node(newpos, { name = "bones:bones" })
|
||||
minetest.get_meta(newpos):from_table(meta)
|
||||
else
|
||||
-- otherwise drop inventory and bones
|
||||
local inv = minetest.get_meta(pos):get_inventory()
|
||||
for i = 1, inv:get_size("main") do
|
||||
local stk = inv:get_stack("main", i)
|
||||
inv:set_stack("main", i, nil)
|
||||
minetest.add_item(pos, stk:take_item(stk:get_count()))
|
||||
end
|
||||
minetest.add_item(pos, "bones:bones")
|
||||
end
|
||||
minetest.set_node(pos, { name = "default:water_source" })
|
||||
end
|
||||
})
|
||||
|
Loading…
Reference in New Issue