Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • Illuna-Minetest/homedecor_modpack
1 result
Show changes
Showing
with 18278 additions and 1959 deletions
local S = homedecor.gettext
local S = homedecor_i18n.gettext
local default_can_dig = function(pos,player) local default_can_dig = function(pos,player)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
...@@ -84,17 +85,17 @@ function homedecor.handle_inventory(name, def, original_def) ...@@ -84,17 +85,17 @@ function homedecor.handle_inventory(name, def, original_def)
def.can_dig = def.can_dig or default_can_dig def.can_dig = def.can_dig or default_can_dig
def.on_metadata_inventory_move = def.on_metadata_inventory_move or function(pos, from_list, from_index, to_list, to_index, count, player) def.on_metadata_inventory_move = def.on_metadata_inventory_move or function(pos, from_list, from_index, to_list, to_index, count, player)
minetest.log("action", S("%s moves stuff in %s at %s"):format( minetest.log("action", S("@1 moves stuff in @2 at @3",
player:get_player_name(), name, minetest.pos_to_string(pos) player:get_player_name(), name, minetest.pos_to_string(pos)
)) ))
end end
def.on_metadata_inventory_put = def.on_metadata_inventory_put or function(pos, listname, index, stack, player) def.on_metadata_inventory_put = def.on_metadata_inventory_put or function(pos, listname, index, stack, player)
minetest.log("action", S("%s moves %s to %s at %s"):format( minetest.log("action", S("@1 moves @2 to @3 at @4",
player:get_player_name(), stack:get_name(), name, minetest.pos_to_string(pos) player:get_player_name(), stack:get_name(), name, minetest.pos_to_string(pos)
)) ))
end end
def.on_metadata_inventory_take = def.on_metadata_inventory_take or function(pos, listname, index, stack, player) def.on_metadata_inventory_take = def.on_metadata_inventory_take or function(pos, listname, index, stack, player)
minetest.log("action", S("%s takes %s from %s at %s"):format( minetest.log("action", S("@1 takes @2 from @3 at @4",
player:get_player_name(), stack:get_name(), name, minetest.pos_to_string(pos) player:get_player_name(), stack:get_name(), name, minetest.pos_to_string(pos)
)) ))
end end
...@@ -107,7 +108,7 @@ function homedecor.handle_inventory(name, def, original_def) ...@@ -107,7 +108,7 @@ function homedecor.handle_inventory(name, def, original_def)
local owner = placer:get_player_name() or "" local owner = placer:get_player_name() or ""
meta:set_string("owner", owner) meta:set_string("owner", owner)
meta:set_string("infotext", S("%s (owned by %s)"):format(def.infotext or def.description, owner)) meta:set_string("infotext", S("@1 (owned by @2)", def.infotext or def.description, owner))
return after_place_node and after_place_node(pos, placer) return after_place_node and after_place_node(pos, placer)
end end
...@@ -117,15 +118,17 @@ function homedecor.handle_inventory(name, def, original_def) ...@@ -117,15 +118,17 @@ function homedecor.handle_inventory(name, def, original_def)
local owner = meta:get_string("owner") local owner = meta:get_string("owner")
local playername = player:get_player_name() local playername = player:get_player_name()
if (playername ~= owner) then if playername == owner or
minetest.log("action", string.format("%s tried to access a %s belonging to %s at %s", minetest.check_player_privs(playername, "protection_bypass") then
playername, name, owner, minetest.pos_to_string(pos) return allow_move and
)) allow_move(pos, from_list, from_index, to_list, to_index, count, player) or
return 0 count
end end
return allow_move and allow_move(pos, from_list, from_index, to_list, to_index, count, player) minetest.log("action", S("@1 tried to access a @2 belonging to @3 at @4",
or count playername, name, owner, minetest.pos_to_string(pos)
))
return 0
end end
local allow_put = def.allow_metadata_inventory_put local allow_put = def.allow_metadata_inventory_put
...@@ -134,14 +137,16 @@ function homedecor.handle_inventory(name, def, original_def) ...@@ -134,14 +137,16 @@ function homedecor.handle_inventory(name, def, original_def)
local owner = meta:get_string("owner") local owner = meta:get_string("owner")
local playername = player:get_player_name() local playername = player:get_player_name()
if (playername ~= owner) then if playername == owner or
minetest.log("action", string.format("%s tried to access a %s belonging to %s at %s", minetest.check_player_privs(playername, "protection_bypass") then
playername, name, owner, minetest.pos_to_string(pos) return allow_put and allow_put(pos, listname, index, stack, player) or
)) stack:get_count()
return 0
end end
return allow_put and allow_put(pos, listname, index, stack, player)
or stack:get_count() minetest.log("action", S("@1 tried to access a @2 belonging to @3 at @4",
playername, name, owner, minetest.pos_to_string(pos)
))
return 0
end end
local allow_take = def.allow_metadata_inventory_take local allow_take = def.allow_metadata_inventory_take
...@@ -150,21 +155,23 @@ function homedecor.handle_inventory(name, def, original_def) ...@@ -150,21 +155,23 @@ function homedecor.handle_inventory(name, def, original_def)
local owner = meta:get_string("owner") local owner = meta:get_string("owner")
local playername = player:get_player_name() local playername = player:get_player_name()
if (playername ~= owner) then if playername == owner or
minetest.log("action", string.format("%s tried to access a %s belonging to %s at %s", minetest.check_player_privs(playername, "protection_bypass") then
playername, name, owner, minetest.pos_to_string(pos) return allow_take and allow_take(pos, listname, index, stack, player) or
)) stack:get_count()
return 0
end end
return allow_take and allow_take(pos, listname, index, stack, player)
or stack:get_count() minetest.log("action", S("@1 tried to access a @2 belonging to @3 at @4",
playername, name, owner, minetest.pos_to_string(pos)
))
return 0
end end
end end
local lockable = inventory.lockable local lockable = inventory.lockable
if lockable then if lockable then
local locked_def = table.copy(original_def) local locked_def = table.copy(original_def)
locked_def.description = S("Locked %s"):format(def.description or name) locked_def.description = S("@1 (Locked)", def.description or name)
local locked_inventory = locked_def.inventory local locked_inventory = locked_def.inventory
locked_inventory.locked = true locked_inventory.locked = true
......
...@@ -75,6 +75,3 @@ mt.__index = function(table, key) ...@@ -75,6 +75,3 @@ mt.__index = function(table, key)
error("unexpected datatype " .. tostring(type(ref)) .. " while looking for " .. key) error("unexpected datatype " .. tostring(type(ref)) .. " while looking for " .. key)
end end
setmetatable(homedecor.nodebox, mt) setmetatable(homedecor.nodebox, mt)
homedecor = homedecor or {} homedecor = homedecor or {}
local S = homedecor.gettext
local placeholder_node = "homedecor:expansion_placeholder" local placeholder_node = "homedecor:expansion_placeholder"
--wrapper around minetest.register_node that sets sane defaults and interprets some specialized settings --wrapper around minetest.register_node that sets sane defaults and interprets some specialized settings
......
-- this code has it's origin at https://github.com/minetest-mods/xdecor function homedecor.sit(pos, node, clicker)
-- and it's slightly modified to work properbly with homedecor return -- delete it when the engine is stabler for the player's physics
--[[
local function top_face(pointed_thing) local meta = minetest.get_meta(pos)
-- if not pointed_thing then return end local param2 = node.param2
-- return pointed_thing.above.y > pointed_thing.under.y local name = clicker:get_player_name()
end
if name == meta:get_string("is_sit") then
function homedecor.sit(pos, node, clicker, pointed_thing) meta:set_string("is_sit", "")
--if not top_face(pointed_thing) then return end pos.y = pos.y-0.5
local player_name = clicker:get_player_name() <<<<<<< HEAD
local objs = minetest.get_objects_inside_radius(pos, 0.1)
local vel = clicker:get_player_velocity()
local ctrl = clicker:get_player_control()
for _, obj in pairs(objs) do
if obj:is_player() and obj:get_player_name() ~= player_name then
return
end
end
if default.player_attached[player_name] then
pos.y = pos.y - 0.5
clicker:setpos(pos)
clicker:set_eye_offset({x=0, y=0, z=0}, {x=0, y=0, z=0})
clicker:set_physics_override(1, 1, 1)
default.player_attached[player_name] = false
default.player_set_animation(clicker, "stand", 30)
elseif not default.player_attached[player_name] and node.param2 <= 3 and
not ctrl.sneak and vector.equals(vel, {x=0,y=0,z=0}) then
clicker:set_eye_offset({x=0, y=-7, z=2}, {x=0, y=0, z=0})
clicker:set_physics_override(0, 0, 0)
clicker:setpos(pos)
default.player_attached[player_name] = true
default.player_set_animation(clicker, "sit", 30)
if node.param2 == 0 then clicker:set_look_yaw(3.15)
elseif node.param2 == 1 then clicker:set_look_yaw(7.9)
elseif node.param2 == 2 then clicker:set_look_yaw(6.28)
elseif node.param2 == 3 then clicker:set_look_yaw(4.75) end
end
end
function homedecor.sit_dig(pos, player)
local pname = player:get_player_name()
local objs = minetest.get_objects_inside_radius(pos, 0.1)
for _, p in pairs(objs) do
if not player or not player:is_player() or p:get_player_name() or
default.player_attached[pname] then
return false
end
end
return true return true
=======
--]]
end end
...@@ -25,8 +25,8 @@ function homedecor.start_particle_spawner(pos, node, particledef, soundname) ...@@ -25,8 +25,8 @@ function homedecor.start_particle_spawner(pos, node, particledef, soundname)
if id ~= 0 then if id ~= 0 then
if s_handle then if s_handle then
minetest.after(0, function(s_handle) minetest.after(0, function(handle)
minetest.sound_stop(s_handle) minetest.sound_stop(handle)
end, s_handle) end, s_handle)
end end
minetest.delete_particlespawner(id) minetest.delete_particlespawner(id)
...@@ -104,12 +104,11 @@ function homedecor.stop_particle_spawner(pos) ...@@ -104,12 +104,11 @@ function homedecor.stop_particle_spawner(pos)
end end
if s_handle then if s_handle then
minetest.after(0, function(s_handle) minetest.after(0, function(handle)
minetest.sound_stop(s_handle) minetest.sound_stop(handle)
end, s_handle) end, s_handle)
end end
this_spawner_meta:set_int("active", nil) this_spawner_meta:set_int("active", nil)
this_spawner_meta:set_int("sound", nil) this_spawner_meta:set_int("sound", nil)
end end
...@@ -10,15 +10,13 @@ ...@@ -10,15 +10,13 @@
local modpath = minetest.get_modpath("homedecor") local modpath = minetest.get_modpath("homedecor")
minetest.get_modpath("darkage") minetest.get_modpath("darkage")
local S = homedecor_i18n.gettext
homedecor = { homedecor = {
modpath = modpath, modpath = modpath,
-- Boilerplate to support localized strings if intllib mod is installed.
gettext = rawget(_G, "intllib") and intllib.Getter() or function(s) return s end,
-- infinite stacks -- infinite stacks
expect_infinite_stacks = minetest.setting_getbool("creative_mode") and not minetest.get_modpath("unified_inventory") expect_infinite_stacks = minetest.settings:get_bool("creative_mode") and not minetest.get_modpath("unified_inventory")
} }
-- Determine if the item being pointed at is the underside of a node (e.g a ceiling) -- Determine if the item being pointed at is the underside of a node (e.g a ceiling)
...@@ -34,9 +32,6 @@ function homedecor.find_ceiling(itemstack, placer, pointed_thing) ...@@ -34,9 +32,6 @@ function homedecor.find_ceiling(itemstack, placer, pointed_thing)
itemstack, pointed_thing) itemstack, pointed_thing)
return return
end end
local pitch = placer:get_look_pitch()
local fdir = core.dir_to_facedir(placer:get_look_dir())
local wield_name = itemstack:get_name()
local above = pointed_thing.above local above = pointed_thing.above
local under = pointed_thing.under local under = pointed_thing.under
...@@ -52,7 +47,6 @@ function homedecor.find_ceiling(itemstack, placer, pointed_thing) ...@@ -52,7 +47,6 @@ function homedecor.find_ceiling(itemstack, placer, pointed_thing)
if undef and undef.buildable_to then if undef and undef.buildable_to then
pos = pointed_thing.under pos = pointed_thing.under
node = unode node = unode
iswall = false
end end
if core.is_protected(pos, placer:get_player_name()) then if core.is_protected(pos, placer:get_player_name()) then
...@@ -70,18 +64,15 @@ end ...@@ -70,18 +64,15 @@ end
screwdriver = screwdriver or {} screwdriver = screwdriver or {}
homedecor.plain_wood = "homedecor_generic_wood_plain.png^".. homedecor.plain_wood = { name = "homedecor_generic_wood_plain.png", color = 0xffa76820 }
"(homedecor_generic_wood_boards_overlay.png^[colorize:#a7682020:100)" homedecor.mahogany_wood = { name = "homedecor_generic_wood_plain.png", color = 0xff7d2506 }
homedecor.white_wood = "homedecor_generic_wood_plain.png"
homedecor.mahogany_wood = "(homedecor_generic_wood_plain.png^[colorize:#401010:125)^".. homedecor.dark_wood = { name = "homedecor_generic_wood_plain.png", color = 0xff39240f }
"(homedecor_generic_wood_boards_overlay.png^[colorize:#66493880:200)" homedecor.lux_wood = { name = "homedecor_generic_wood_luxury.png", color = 0xff643f23 }
homedecor.white_wood = "(homedecor_generic_wood_plain.png^[colorize:#e0f0ff:200)^"..
"(homedecor_generic_wood_boards_overlay.png^[colorize:#ffffff:200)"
homedecor.dark_wood = "(homedecor_generic_wood_plain.png^[colorize:#140900:200)^"..
"(homedecor_generic_wood_boards_overlay.png^[colorize:#21110180:180)"
homedecor.color_black = 0xff303030
homedecor.color_dark_grey = 0xff606060
homedecor.color_med_grey = 0xffa0a0a0
-- load different handler subsystems -- load different handler subsystems
dofile(modpath.."/handlers/init.lua") dofile(modpath.."/handlers/init.lua")
...@@ -133,4 +124,4 @@ dofile(modpath.."/trash_cans.lua") ...@@ -133,4 +124,4 @@ dofile(modpath.."/trash_cans.lua")
dofile(modpath.."/crafts.lua") dofile(modpath.."/crafts.lua")
print("[HomeDecor] " .. homedecor.gettext("Loaded!")) print("[HomeDecor] " .. S("Loaded!"))
-- This file supplies refrigerators -- This file supplies refrigerators
local S = homedecor.gettext local S = homedecor_i18n.gettext
local function N_(x) return x end
-- steel-textured fridge -- steel-textured fridge
homedecor.register("refrigerator_steel", { homedecor.register("refrigerator_steel", {
...@@ -112,7 +114,7 @@ homedecor.register("coffee_maker", { ...@@ -112,7 +114,7 @@ homedecor.register("coffee_maker", {
"homedecor_coffeemaker_cup.png", "homedecor_coffeemaker_cup.png",
"homedecor_coffeemaker_case.png", "homedecor_coffeemaker_case.png",
}, },
description = "Coffee Maker", description = S("Coffee Maker"),
inventory_image = "homedecor_coffeemaker_inv.png", inventory_image = "homedecor_coffeemaker_inv.png",
walkable = false, walkable = false,
groups = {snappy=3}, groups = {snappy=3},
...@@ -159,7 +161,7 @@ minetest.register_abm({ ...@@ -159,7 +161,7 @@ minetest.register_abm({
}) })
homedecor.register("toaster", { homedecor.register("toaster", {
description = "Toaster", description = S("Toaster"),
tiles = { "homedecor_toaster_sides.png" }, tiles = { "homedecor_toaster_sides.png" },
inventory_image = "homedecor_toaster_inv.png", inventory_image = "homedecor_toaster_inv.png",
walkable = false, walkable = false,
...@@ -211,7 +213,7 @@ homedecor.register("toaster_loaf", { ...@@ -211,7 +213,7 @@ homedecor.register("toaster_loaf", {
homedecor.register("dishwasher", { homedecor.register("dishwasher", {
description = "Dishwasher", description = S("Dishwasher"),
drawtype = "nodebox", drawtype = "nodebox",
tiles = { tiles = {
"homedecor_dishwasher_top.png", "homedecor_dishwasher_top.png",
...@@ -235,11 +237,11 @@ homedecor.register("dishwasher", { ...@@ -235,11 +237,11 @@ homedecor.register("dishwasher", {
groups = { snappy = 3 }, groups = { snappy = 3 },
}) })
local materials = {"granite", "marble", "steel", "wood"} local materials = { N_("granite"), N_("marble"), N_("steel"), N_("wood") }
for _, m in ipairs(materials) do for _, m in ipairs(materials) do
homedecor.register("dishwasher_"..m, { homedecor.register("dishwasher_"..m, {
description = "Dishwasher ("..m..")", description = S("Dishwasher (@1)", S(m)),
tiles = { tiles = {
"homedecor_kitchen_cabinet_top_"..m..".png", "homedecor_kitchen_cabinet_top_"..m..".png",
"homedecor_dishwasher_bottom.png", "homedecor_dishwasher_bottom.png",
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.