tweak and tidy code
This commit is contained in:
parent
f21a550ae7
commit
6fadc4afca
19
api.lua
19
api.lua
@ -32,14 +32,8 @@ function beds.register_bed(name, def)
|
|||||||
fall_damage_add_percent = -40, bouncy = 85
|
fall_damage_add_percent = -40, bouncy = 85
|
||||||
},
|
},
|
||||||
sounds = default.node_sound_wood_defaults(),
|
sounds = default.node_sound_wood_defaults(),
|
||||||
selection_box = {
|
selection_box = {type = "fixed", fixed = def.selectionbox},
|
||||||
type = "fixed",
|
collision_box = {type = "fixed", fixed = def.collisionbox},
|
||||||
fixed = def.selectionbox
|
|
||||||
},
|
|
||||||
collision_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = def.collisionbox
|
|
||||||
},
|
|
||||||
|
|
||||||
on_place = function(itemstack, placer, pointed_thing)
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
|
|
||||||
@ -120,6 +114,10 @@ function beds.register_bed(name, def)
|
|||||||
|
|
||||||
on_sleep = function(pos, player)
|
on_sleep = function(pos, player)
|
||||||
return def.on_sleep and def.on_sleep(pos, player)
|
return def.on_sleep and def.on_sleep(pos, player)
|
||||||
|
end,
|
||||||
|
|
||||||
|
on_blast = function(pos, intensity)
|
||||||
|
minetest.remove_node(pos)
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -127,8 +125,5 @@ function beds.register_bed(name, def)
|
|||||||
minetest.register_alias(name .. "_top", "air")
|
minetest.register_alias(name .. "_top", "air")
|
||||||
|
|
||||||
-- register recipe
|
-- register recipe
|
||||||
minetest.register_craft({
|
minetest.register_craft({output = name, recipe = def.recipe})
|
||||||
output = name,
|
|
||||||
recipe = def.recipe
|
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
34
beds.lua
34
beds.lua
@ -87,32 +87,8 @@ minetest.register_alias("beds:bed_top_red", "beds:bed_top")
|
|||||||
|
|
||||||
-- Fuel
|
-- Fuel
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({type = "fuel", recipe = "beds:fancy_bed", burntime = 13})
|
||||||
type = "fuel",
|
minetest.register_craft({type = "fuel", recipe = "beds:fancy_bed_pink", burntime = 13})
|
||||||
recipe = "beds:fancy_bed",
|
minetest.register_craft({type = "fuel", recipe = "beds:bed", burntime = 12})
|
||||||
burntime = 13
|
minetest.register_craft({type = "fuel", recipe = "beds:bed_blue", burntime = 12})
|
||||||
})
|
minetest.register_craft({type = "fuel", recipe = "beds:bed_white", burntime = 12})
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "fuel",
|
|
||||||
recipe = "beds:fancy_bed_pink",
|
|
||||||
burntime = 13
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "fuel",
|
|
||||||
recipe = "beds:bed",
|
|
||||||
burntime = 12
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "fuel",
|
|
||||||
recipe = "beds:bed_blue",
|
|
||||||
burntime = 12
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "fuel",
|
|
||||||
recipe = "beds:bed_white",
|
|
||||||
burntime = 12
|
|
||||||
})
|
|
||||||
|
@ -48,13 +48,11 @@ local function check_in_beds(players)
|
|||||||
players = minetest.get_connected_players()
|
players = minetest.get_connected_players()
|
||||||
end
|
end
|
||||||
|
|
||||||
for n, player in ipairs(players) do
|
for n, player in pairs(players) do
|
||||||
|
|
||||||
local name = player:get_player_name()
|
local name = player and player:get_player_name()
|
||||||
|
|
||||||
if not in_bed[name] then
|
if not in_bed[name] then return false end
|
||||||
return false
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
return #players > 0
|
return #players > 0
|
||||||
@ -66,9 +64,7 @@ local function lay_down(player, pos, bed_pos, state, skip)
|
|||||||
local name = player:get_player_name()
|
local name = player:get_player_name()
|
||||||
local hud_flags = player:hud_get_flags()
|
local hud_flags = player:hud_get_flags()
|
||||||
|
|
||||||
if not player or not name then
|
if not player or not name then return end
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
-- stand up
|
-- stand up
|
||||||
if state ~= nil and not state then
|
if state ~= nil and not state then
|
||||||
@ -80,9 +76,7 @@ local function lay_down(player, pos, bed_pos, state, skip)
|
|||||||
beds.bed_position[name] = nil
|
beds.bed_position[name] = nil
|
||||||
|
|
||||||
-- skip here to prevent sending player specific changes (used for leaving players)
|
-- skip here to prevent sending player specific changes (used for leaving players)
|
||||||
if skip then
|
if skip then return end
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
player:set_pos(beds.pos[name])
|
player:set_pos(beds.pos[name])
|
||||||
|
|
||||||
@ -124,7 +118,7 @@ local function lay_down(player, pos, bed_pos, state, skip)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Check if player is moving
|
-- Check if player is moving
|
||||||
if is_54 and vector.length(player:get_velocity()) > 0.05 then -- 0.001 then
|
if is_54 and vector.length(player:get_velocity()) > 0.05 then
|
||||||
|
|
||||||
minetest.chat_send_player(name,
|
minetest.chat_send_player(name,
|
||||||
S("You have to stop moving before going to bed!"))
|
S("You have to stop moving before going to bed!"))
|
||||||
@ -133,14 +127,10 @@ local function lay_down(player, pos, bed_pos, state, skip)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Check if player is attached to an object
|
-- Check if player is attached to an object
|
||||||
if player:get_attach() then
|
if player:get_attach() then return false end
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
-- player already in bed, do nothing
|
-- player already in bed, do nothing
|
||||||
if beds.player[name] then
|
if beds.player[name] then return false end
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
beds.pos[name] = pos
|
beds.pos[name] = pos
|
||||||
beds.bed_position[name] = bed_pos
|
beds.bed_position[name] = bed_pos
|
||||||
|
18
init.lua
18
init.lua
@ -1,16 +1,9 @@
|
|||||||
-- Load support for MT game translation.
|
|
||||||
local S
|
|
||||||
if minetest.get_translator ~= nil then
|
|
||||||
S = minetest.get_translator("beds") -- 5.x translation function
|
|
||||||
else -- boilerplate function for 0.4
|
|
||||||
S = function(str, ...)
|
|
||||||
local args = {...}
|
|
||||||
return str:gsub("@%d+", function(match)
|
|
||||||
return args[tonumber(match:sub(2))]
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
-- translation support
|
||||||
|
|
||||||
|
local S = minetest.get_translator("beds")
|
||||||
|
|
||||||
|
-- global
|
||||||
|
|
||||||
beds = {
|
beds = {
|
||||||
mod = "redo",
|
mod = "redo",
|
||||||
@ -27,6 +20,7 @@ beds = {
|
|||||||
.. "button_exit[2,10;4,0.75;leave;" .. minetest.formspec_escape(S("Leave Bed")) .. "]"
|
.. "button_exit[2,10;4,0.75;leave;" .. minetest.formspec_escape(S("Leave Bed")) .. "]"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- load api, register beds, load player respawn positions
|
||||||
|
|
||||||
local modpath = minetest.get_modpath("beds")
|
local modpath = minetest.get_modpath("beds")
|
||||||
|
|
||||||
|
15
spawns.lua
15
spawns.lua
@ -1,10 +1,13 @@
|
|||||||
|
|
||||||
|
-- paths
|
||||||
|
|
||||||
local world_path = minetest.get_worldpath()
|
local world_path = minetest.get_worldpath()
|
||||||
local org_file = world_path .. "/beds_spawns"
|
local org_file = world_path .. "/beds_spawns"
|
||||||
local file = world_path .. "/beds_spawns"
|
local file = world_path .. "/beds_spawns"
|
||||||
local bkwd = false
|
local bkwd = false
|
||||||
|
|
||||||
|
-- check for old PilzAdams beds mod spawns
|
||||||
|
|
||||||
-- check for PA's beds mod spawns
|
|
||||||
local cf = io.open(world_path .. "/beds_player_spawns", "r")
|
local cf = io.open(world_path .. "/beds_player_spawns", "r")
|
||||||
|
|
||||||
if cf ~= nil then
|
if cf ~= nil then
|
||||||
@ -13,6 +16,7 @@ if cf ~= nil then
|
|||||||
bkwd = true
|
bkwd = true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- get respawn positions
|
||||||
|
|
||||||
function beds.read_spawns()
|
function beds.read_spawns()
|
||||||
|
|
||||||
@ -25,9 +29,7 @@ function beds.read_spawns()
|
|||||||
|
|
||||||
local x = input:read("*n")
|
local x = input:read("*n")
|
||||||
|
|
||||||
if x == nil then
|
if x == nil then break end
|
||||||
break
|
|
||||||
end
|
|
||||||
|
|
||||||
local y = input:read("*n")
|
local y = input:read("*n")
|
||||||
local z = input:read("*n")
|
local z = input:read("*n")
|
||||||
@ -49,10 +51,11 @@ function beds.read_spawns()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-- load player spawn positions
|
-- load player spawn positions
|
||||||
|
|
||||||
beds.read_spawns()
|
beds.read_spawns()
|
||||||
|
|
||||||
|
-- save respawn positions
|
||||||
|
|
||||||
function beds.save_spawns()
|
function beds.save_spawns()
|
||||||
|
|
||||||
@ -71,6 +74,7 @@ function beds.save_spawns()
|
|||||||
io.close(output)
|
io.close(output)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- set spawn position
|
||||||
|
|
||||||
function beds.set_spawns()
|
function beds.set_spawns()
|
||||||
|
|
||||||
@ -88,6 +92,7 @@ function beds.set_spawns()
|
|||||||
beds.save_spawns()
|
beds.save_spawns()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- remove respawn position
|
||||||
|
|
||||||
function beds.remove_spawns_at(pos)
|
function beds.remove_spawns_at(pos)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user