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
},
sounds = default.node_sound_wood_defaults(),
selection_box = {
type = "fixed",
fixed = def.selectionbox
},
collision_box = {
type = "fixed",
fixed = def.collisionbox
},
selection_box = {type = "fixed", fixed = def.selectionbox},
collision_box = {type = "fixed", fixed = def.collisionbox},
on_place = function(itemstack, placer, pointed_thing)
@ -120,6 +114,10 @@ function beds.register_bed(name, def)
on_sleep = function(pos, player)
return def.on_sleep and def.on_sleep(pos, player)
end,
on_blast = function(pos, intensity)
minetest.remove_node(pos)
end
})
@ -127,8 +125,5 @@ function beds.register_bed(name, def)
minetest.register_alias(name .. "_top", "air")
-- register recipe
minetest.register_craft({
output = name,
recipe = def.recipe
})
minetest.register_craft({output = name, recipe = def.recipe})
end

View File

@ -87,32 +87,8 @@ minetest.register_alias("beds:bed_top_red", "beds:bed_top")
-- Fuel
minetest.register_craft({
type = "fuel",
recipe = "beds:fancy_bed",
burntime = 13
})
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
})
minetest.register_craft({type = "fuel", recipe = "beds:fancy_bed", burntime = 13})
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()
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
return false
end
if not in_bed[name] then return false end
end
return #players > 0
@ -66,9 +64,7 @@ local function lay_down(player, pos, bed_pos, state, skip)
local name = player:get_player_name()
local hud_flags = player:hud_get_flags()
if not player or not name then
return
end
if not player or not name then return end
-- stand up
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
-- skip here to prevent sending player specific changes (used for leaving players)
if skip then
return
end
if skip then return end
player:set_pos(beds.pos[name])
@ -124,7 +118,7 @@ local function lay_down(player, pos, bed_pos, state, skip)
end
-- 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,
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
-- Check if player is attached to an object
if player:get_attach() then
return false
end
if player:get_attach() then return false end
-- player already in bed, do nothing
if beds.player[name] then
return false
end
if beds.player[name] then return false end
beds.pos[name] = 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 = {
mod = "redo",
@ -27,6 +20,7 @@ beds = {
.. "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")

View File

@ -1,10 +1,13 @@
-- paths
local world_path = minetest.get_worldpath()
local org_file = world_path .. "/beds_spawns"
local file = world_path .. "/beds_spawns"
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")
if cf ~= nil then
@ -13,6 +16,7 @@ if cf ~= nil then
bkwd = true
end
-- get respawn positions
function beds.read_spawns()
@ -25,9 +29,7 @@ function beds.read_spawns()
local x = input:read("*n")
if x == nil then
break
end
if x == nil then break end
local y = input:read("*n")
local z = input:read("*n")
@ -49,10 +51,11 @@ function beds.read_spawns()
end
end
-- load player spawn positions
beds.read_spawns()
-- save respawn positions
function beds.save_spawns()
@ -71,6 +74,7 @@ function beds.save_spawns()
io.close(output)
end
-- set spawn position
function beds.set_spawns()
@ -88,6 +92,7 @@ function beds.set_spawns()
beds.save_spawns()
end
-- remove respawn position
function beds.remove_spawns_at(pos)