tweak and tidy code

This commit is contained in:
tenplus1 2024-12-27 12:00:20 +00:00
parent f21a550ae7
commit 6fadc4afca
5 changed files with 36 additions and 76 deletions

19
api.lua
View File

@ -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

View File

@ -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
})

View File

@ -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

View File

@ -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")

View File

@ -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)