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 774 additions and 706 deletions
...@@ -33,10 +33,10 @@ local colors = { "computer_cyan.png", "computer_magenta.png", "computer_red.png" ...@@ -33,10 +33,10 @@ local colors = { "computer_cyan.png", "computer_magenta.png", "computer_red.png"
local background = "image[0,0;3.55,6.66;computer_black.png]" local background = "image[0,0;3.55,6.66;computer_black.png]"
local buttons = "button[3,4.5;0.6,0.6;left;<]" local buttons = "button[3,4.5;0.6,0.6;left;<]"
.."button[3.6,4.5;0.6,0.6;rotateleft;L]" .."button[3.6,4.5;0.6,0.6;rotateleft;"..minetest.formspec_escape(S("L")).."]"
.."button[4.2,4.5;0.6,0.6;down;v]" .."button[4.2,4.5;0.6,0.6;down;v]"
.."button[4.2,5.3;0.6,0.6;drop;V]" .."button[4.2,5.3;0.6,0.6;drop;V]"
.."button[4.8,4.5;0.6,0.6;rotateright;R]" .."button[4.8,4.5;0.6,0.6;rotateright;"..minetest.formspec_escape(S("R")).."]"
.."button[5.4,4.5;0.6,0.6;right;>]" .."button[5.4,4.5;0.6,0.6;right;>]"
.."button[3.5,3;2,2;new;"..minetest.formspec_escape(S("New Game")).."]" .."button[3.5,3;2,2;new;"..minetest.formspec_escape(S("New Game")).."]"
...@@ -231,7 +231,7 @@ local function step(pos, fields) ...@@ -231,7 +231,7 @@ local function step(pos, fields)
local scr = { formsize, background, local scr = { formsize, background,
t.boardstring, t.previewstring, t.boardstring, t.previewstring,
draw_shape(t.cur, t.x, t.y, t.rot, boardx, boardy), draw_shape(t.cur, t.x, t.y, t.rot, boardx, boardy),
"label[3.8,0.1;Next...]label[3.8,2.7;Score: ", "label[3.8,0.1;"..S("Next...").."]label[3.8,2.7;"..S("Score: "),
t.score, close, buttons } t.score, close, buttons }
......
...@@ -16,8 +16,8 @@ local function start_smoke(pos, node, clicker, chimney) ...@@ -16,8 +16,8 @@ local function start_smoke(pos, node, clicker, chimney)
end, s_handle) end, s_handle)
end end
minetest.delete_particlespawner(id) minetest.delete_particlespawner(id)
this_spawner_meta:set_int("smoky", nil) this_spawner_meta:set_int("smoky", 0)
this_spawner_meta:set_int("sound", nil) this_spawner_meta:set_int("sound", 0)
return return
end end
...@@ -34,7 +34,7 @@ local function start_smoke(pos, node, clicker, chimney) ...@@ -34,7 +34,7 @@ local function start_smoke(pos, node, clicker, chimney)
}) })
if chimney == 1 then if chimney == 1 then
this_spawner_meta:set_int("smoky", id) this_spawner_meta:set_int("smoky", id)
this_spawner_meta:set_int("sound", nil) this_spawner_meta:set_int("sound", 0)
else else
s_handle = minetest.sound_play("fire_small", { s_handle = minetest.sound_play("fire_small", {
pos = pos, pos = pos,
...@@ -62,47 +62,40 @@ local function stop_smoke(pos) ...@@ -62,47 +62,40 @@ local function stop_smoke(pos)
end, s_handle) end, s_handle)
end end
this_spawner_meta:set_int("smoky", nil) this_spawner_meta:set_int("smoky", 0)
this_spawner_meta:set_int("sound", nil) this_spawner_meta:set_int("sound", 0)
end end
-- FLAME TYPES minetest.register_node("fake_fire:ice_fire", {
local flame_types = { inventory_image = "ice_fire_inv.png",
{ "fake", S("Fake fire") }, description = S("Ice fire"),
{ "ice", S("Ice fire") }, drawtype = "plantlike",
} paramtype = "light",
paramtype2 = "facedir",
groups = {dig_immediate=3, not_in_creative_inventory=1},
sunlight_propagates = true,
buildable_to = true,
walkable = false,
light_source = 14,
waving = 1,
tiles = {
{name="ice_fire_animated.png", animation={type="vertical_frames",
aspect_w=16, aspect_h=16, length=1.5}},
},
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
start_smoke(pos, node, clicker)
return itemstack
end,
on_destruct = function (pos)
stop_smoke(pos)
minetest.sound_play("fire_extinguish", {
pos = pos, max_hear_distance = 5
})
end,
drop = ""
})
for _, f in ipairs(flame_types) do minetest.register_alias("fake_fire:fake_fire", "fire:permanent_flame")
local name, desc = unpack(f)
minetest.register_node("fake_fire:"..name.."_fire", {
inventory_image = name.."_fire_inv.png",
description = desc,
drawtype = "plantlike",
paramtype = "light",
paramtype2 = "facedir",
groups = {dig_immediate=3, not_in_creative_inventory=1},
sunlight_propagates = true,
buildable_to = true,
walkable = false,
light_source = 14,
waving = 1,
tiles = {
{name=name.."_fire_animated.png", animation={type="vertical_frames",
aspect_w=16, aspect_h=16, length=1.5}},
},
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
start_smoke(pos, node, clicker)
return itemstack
end,
on_destruct = function (pos)
stop_smoke(pos)
minetest.sound_play("fire_extinguish", {
pos = pos, max_hear_distance = 5
})
end,
drop = ""
})
end
minetest.register_node("fake_fire:fancy_fire", { minetest.register_node("fake_fire:fancy_fire", {
inventory_image = "fancy_fire_inv.png", inventory_image = "fancy_fire_inv.png",
...@@ -195,43 +188,18 @@ for _, mat in ipairs(materials) do ...@@ -195,43 +188,18 @@ for _, mat in ipairs(materials) do
}) })
end end
-- FLINT and STEEL minetest.register_alias("fake_fire:flint_and_steel", "fire:flint_and_steel")
minetest.register_tool("fake_fire:flint_and_steel", {
description = S("Flint and steel"),
inventory_image = "flint_and_steel.png",
liquids_pointable = false,
stack_max = 1,
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=0,
groupcaps={flamable = {uses=65, maxlevel=1}}
},
on_use = function(itemstack, user, pointed_thing)
if pointed_thing.type == "node" and minetest.get_node(pointed_thing.above).name == "air" then
if not minetest.is_protected(pointed_thing.above, user:get_player_name()) then
if string.find(minetest.get_node(pointed_thing.under).name, "ice") then
minetest.set_node(pointed_thing.above, {name="fake_fire:ice_fire"})
else
minetest.set_node(pointed_thing.above, {name="fake_fire:fake_fire"})
end
else
minetest.chat_send_player(user:get_player_name(), S("This area is protected!"))
end
else
return
end
itemstack:add_wear(65535/65) minetest.override_item("default:ice", {
return itemstack on_ignite = function(pos, igniter)
local flame_pos = {x = pos.x, y = pos.y + 1, z = pos.z}
if minetest.get_node(flame_pos).name == "air" then
minetest.set_node(flame_pos, {name = "fake_fire:ice_fire"})
end
end end
}) })
-- CRAFTS -- CRAFTS
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:flint_and_steel',
recipe = {"default:obsidian_shard", "default:steel_ingot"}
})
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
......
...@@ -12,12 +12,9 @@ minetest.register_node("homedecor:bathroom_tiles_dark", { ...@@ -12,12 +12,9 @@ minetest.register_node("homedecor:bathroom_tiles_dark", {
paramtype = "light", paramtype = "light",
paramtype2 = "color", paramtype2 = "color",
palette = "unifieddyes_palette_extended.png", palette = "unifieddyes_palette_extended.png",
place_param2 = 240,
groups = {cracky=3, ud_param2_colorable = 1}, groups = {cracky=3, ud_param2_colorable = 1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
on_construct = unifieddyes.on_construct, on_construct = unifieddyes.on_construct,
after_place_node = unifieddyes.recolor_on_place,
after_dig_node = unifieddyes.after_dig_node
}) })
minetest.register_node("homedecor:bathroom_tiles_medium", { minetest.register_node("homedecor:bathroom_tiles_medium", {
...@@ -31,12 +28,9 @@ minetest.register_node("homedecor:bathroom_tiles_medium", { ...@@ -31,12 +28,9 @@ minetest.register_node("homedecor:bathroom_tiles_medium", {
paramtype = "light", paramtype = "light",
paramtype2 = "color", paramtype2 = "color",
palette = "unifieddyes_palette_extended.png", palette = "unifieddyes_palette_extended.png",
place_param2 = 240,
groups = {cracky=3, ud_param2_colorable = 1}, groups = {cracky=3, ud_param2_colorable = 1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
on_construct = unifieddyes.on_construct, on_construct = unifieddyes.on_construct,
after_place_node = unifieddyes.recolor_on_place,
after_dig_node = unifieddyes.after_dig_node
}) })
minetest.register_node("homedecor:bathroom_tiles_light", { minetest.register_node("homedecor:bathroom_tiles_light", {
...@@ -50,12 +44,9 @@ minetest.register_node("homedecor:bathroom_tiles_light", { ...@@ -50,12 +44,9 @@ minetest.register_node("homedecor:bathroom_tiles_light", {
paramtype = "light", paramtype = "light",
paramtype2 = "color", paramtype2 = "color",
palette = "unifieddyes_palette_extended.png", palette = "unifieddyes_palette_extended.png",
place_param2 = 240,
groups = {cracky=3, ud_param2_colorable = 1}, groups = {cracky=3, ud_param2_colorable = 1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
on_construct = unifieddyes.on_construct, on_construct = unifieddyes.on_construct,
after_place_node = unifieddyes.recolor_on_place,
after_dig_node = unifieddyes.after_dig_node
}) })
local tr_cbox = { local tr_cbox = {
...@@ -173,21 +164,3 @@ minetest.register_lbm({ ...@@ -173,21 +164,3 @@ minetest.register_lbm({
meta:set_string("palette", "ext") meta:set_string("palette", "ext")
end end
}) })
minetest.register_lbm({
name = "homedecor:recolor_bathroom_tiles",
label = "Convert bathroom tiles to use UD extended palette",
run_at_every_load = false,
nodenames = {
"homedecor:bathroom_tiles_light",
"homedecor:bathroom_tiles_medium",
"homedecor:bathroom_tiles_dark",
},
action = function(pos, node)
local meta = minetest.get_meta(pos)
if meta:get_string("palette") ~= "ext" then
minetest.swap_node(pos, { name = node.name, param2 = unifieddyes.convert_classic_palette[node.param2] })
meta:set_string("palette", "ext")
end
end
})
...@@ -52,13 +52,11 @@ homedecor.register("bed_regular", { ...@@ -52,13 +52,11 @@ homedecor.register("bed_regular", {
on_rotate = screwdriver.disallow, on_rotate = screwdriver.disallow,
after_place_node = function(pos, placer, itemstack, pointed_thing) after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
if not placer:get_player_control().sneak then if not placer:get_player_control().sneak then
return homedecor.bed_expansion(pos, placer, itemstack, pointed_thing) return homedecor.bed_expansion(pos, placer, itemstack, pointed_thing)
end end
end, end,
after_dig_node = function(pos, oldnode, oldmetadata, digger) after_dig_node = function(pos, oldnode, oldmetadata, digger)
unifieddyes.after_dig_node(pos, oldnode, oldmetadata, digger)
homedecor.unextend_bed(pos) homedecor.unextend_bed(pos)
end, end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
...@@ -66,11 +64,9 @@ homedecor.register("bed_regular", { ...@@ -66,11 +64,9 @@ homedecor.register("bed_regular", {
if itemname == "homedecor:bed_regular" then if itemname == "homedecor:bed_regular" then
homedecor.bed_expansion(pos, clicker, itemstack, pointed_thing, true) homedecor.bed_expansion(pos, clicker, itemstack, pointed_thing, true)
return itemstack return itemstack
else -- else
-- if minetest.get_modpath("beds") then -- homedecor.beds_on_rightclick(pos, node, clicker)
-- beds.on_rightclick(pos, clicker) -- return itemstack
-- end
return itemstack
end end
end end
}) })
...@@ -93,16 +89,11 @@ homedecor.register("bed_extended", { ...@@ -93,16 +89,11 @@ homedecor.register("bed_extended", {
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
expand = { forward = "air" }, expand = { forward = "air" },
on_rotate = screwdriver.disallow, on_rotate = screwdriver.disallow,
after_place_node = unifieddyes.recolor_on_place,
after_dig_node = function(pos, oldnode, oldmetadata, digger) after_dig_node = function(pos, oldnode, oldmetadata, digger)
unifieddyes.after_dig_node(pos, oldnode, oldmetadata, digger)
homedecor.unextend_bed(pos) homedecor.unextend_bed(pos)
end, end,
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) -- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-- local itemname = itemstack:get_name() -- homedecor.beds_on_rightclick(pos, node, clicker)
-- if minetest.get_modpath("beds") then
-- beds.on_rightclick(pos, clicker)
-- end
-- return itemstack -- return itemstack
-- end, -- end,
drop = "homedecor:bed_regular" drop = "homedecor:bed_regular"
...@@ -129,10 +120,8 @@ homedecor.register("bed_kingsize", { ...@@ -129,10 +120,8 @@ homedecor.register("bed_kingsize", {
on_rotate = screwdriver.disallow, on_rotate = screwdriver.disallow,
after_place_node = function(pos, placer, itemstack, pointed_thing) after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
end, end,
after_dig_node = function(pos, oldnode, oldmetadata, digger) after_dig_node = function(pos, oldnode, oldmetadata, digger)
unifieddyes.after_dig_node(pos, oldnode, oldmetadata, digger)
local inv = digger:get_inventory() local inv = digger:get_inventory()
if digger:get_player_control().sneak and inv:room_for_item("main", "homedecor:bed_regular 2") then if digger:get_player_control().sneak and inv:room_for_item("main", "homedecor:bed_regular 2") then
inv:remove_item("main", "homedecor:bed_kingsize 1") inv:remove_item("main", "homedecor:bed_kingsize 1")
...@@ -140,12 +129,9 @@ homedecor.register("bed_kingsize", { ...@@ -140,12 +129,9 @@ homedecor.register("bed_kingsize", {
end end
end, end,
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) -- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-- local itemname = itemstack:get_name() -- homedecor.beds_on_rightclick(pos, node, clicker)
-- if minetest.get_modpath("beds") then
-- beds.on_rightclick(pos, clicker)
-- end
-- return itemstack -- return itemstack
-- end -- end,
}) })
for _, w in pairs({ N_("mahogany"), N_("oak") }) do for _, w in pairs({ N_("mahogany"), N_("oak") }) do
......
...@@ -89,7 +89,7 @@ for _, c in ipairs(bookcolors) do ...@@ -89,7 +89,7 @@ for _, c in ipairs(bookcolors) do
if data.title and data.title ~= "" then if data.title and data.title ~= "" then
meta:set_string("infotext", data.title) meta:set_string("infotext", data.title)
end end
if not homedecor.expect_infinite_stacks then if not creative.is_enabled_for(plname) then
itemstack:take_item() itemstack:take_item()
end end
return itemstack return itemstack
...@@ -156,13 +156,20 @@ for _, c in ipairs(bookcolors) do ...@@ -156,13 +156,20 @@ for _, c in ipairs(bookcolors) do
end end
minetest.register_on_player_receive_fields(function(player, form_name, fields) minetest.register_on_player_receive_fields(function(player, form_name, fields)
if form_name ~= BOOK_FORMNAME or not fields.save then if form_name ~= BOOK_FORMNAME then
return return false
end end
local player_name = player:get_player_name() local player_name = player:get_player_name()
local pos = player_current_book[player_name] local pos = player_current_book[player_name]
if not pos then return end if not pos then
return true
end
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local owner = meta:get_string("owner")
if owner ~= "" and player_name ~= owner or not fields.save then
player_current_book[player_name] = nil
return true
end
meta:set_string("title", fields.title or "") meta:set_string("title", fields.title or "")
meta:set_string("text", fields.text or "") meta:set_string("text", fields.text or "")
meta:set_string("owner", player_name) meta:set_string("owner", player_name)
...@@ -171,6 +178,9 @@ minetest.register_on_player_receive_fields(function(player, form_name, fields) ...@@ -171,6 +178,9 @@ minetest.register_on_player_receive_fields(function(player, form_name, fields)
end end
minetest.log("action", S("@1 has written in a book (title: \"@2\"): \"@3\" at location @4", minetest.log("action", S("@1 has written in a book (title: \"@2\"): \"@3\" at location @4",
player:get_player_name(), fields.title, fields.text, minetest.pos_to_string(player:getpos()))) player:get_player_name(), fields.title, fields.text, minetest.pos_to_string(player:getpos())))
player_current_book[player_name] = nil
return true
end) end)
minetest.register_alias("homedecor:book", "homedecor:book_grey") minetest.register_alias("homedecor:book", "homedecor:book_grey")
......
...@@ -25,7 +25,6 @@ minetest.register_entity("homedecor:mesh_desk_fan", { ...@@ -25,7 +25,6 @@ minetest.register_entity("homedecor:mesh_desk_fan", {
}) })
local add_mesh_desk_fan_entity = function(pos) local add_mesh_desk_fan_entity = function(pos)
print("in add_mesh_desk_fan_entity()")
local param2 = minetest.get_node(pos).param2 local param2 = minetest.get_node(pos).param2
local entity = minetest.add_entity(pos, "homedecor:mesh_desk_fan") local entity = minetest.add_entity(pos, "homedecor:mesh_desk_fan")
if param2 == 0 then if param2 == 0 then
......
...@@ -4,15 +4,13 @@ Some code copied and modified from the game's default mods (especially ...@@ -4,15 +4,13 @@ Some code copied and modified from the game's default mods (especially
doors) and ironzorg's flowers mod. doors) and ironzorg's flowers mod.
Licenses: Licenses:
* For the lua code, LGPL. * Door open/close sound by Slanesh on freesound.org
* For the door open/close sound, CC-By-SA 3.0 by Slanesh on freesound.org
http://freesound.org/people/Slanesh/sounds/31768/ http://freesound.org/people/Slanesh/sounds/31768/
* For the gate open/close sound, CC0, by j1987 on freesound.org * Gate open/close by j1987 on freesound.org
http://freesound.org/people/j1987/sounds/106116/ http://freesound.org/people/j1987/sounds/106116/
* For the doorbell sound, CC0 by guitarguy1985 on freesound.org * Doorbell sound by guitarguy1985 on freesound.org
http://freesound.org/people/guitarguy1985/sounds/69384/ http://freesound.org/people/guitarguy1985/sounds/69384/
* For the book sound, Public Domain by mckinneysound's on http://www.freesfx.co.uk/ * Book soundn by mckinneysound's on http://www.freesfx.co.uk/
http://www.freesfx.co.uk/sfx/book?p=3 http://www.freesfx.co.uk/sfx/book?p=3
* For the phone ring, Public Domain by andyt's on http://www.freesfx.co.uk/ * Phone ringing sound by andyt's on http://www.freesfx.co.uk/
http://www.freesfx.co.uk/sfx/phone?p=5 http://www.freesfx.co.uk/sfx/phone?p=5
* For all images and everything else, WTFPL.
This diff is collapsed.
default default
basic_materials
unifieddyes unifieddyes
homedecor_i18n homedecor_i18n
creative
currency?
building_blocks? building_blocks?
signs_lib? signs_lib?
moreblocks? moreblocks?
...@@ -11,3 +14,6 @@ bucket? ...@@ -11,3 +14,6 @@ bucket?
beds? beds?
flowers? flowers?
3d_armor? 3d_armor?
skinsdb?
mesecons?
darkage?
...@@ -4,6 +4,8 @@ local S = homedecor_i18n.gettext ...@@ -4,6 +4,8 @@ local S = homedecor_i18n.gettext
local function N_(x) return x end local function N_(x) return x end
local m_rules = mesecon and mesecon.rules and mesecon.rules.pplate
-- doors -- doors
local function isSolid(pos, adjust) local function isSolid(pos, adjust)
...@@ -140,11 +142,6 @@ local door_model_list = { ...@@ -140,11 +142,6 @@ local door_model_list = {
usealpha = true usealpha = true
}, },
{ name = "glass",
description = N_("Glass Office Door (@1 opening)"),
mesh = "homedecor_door_plain.obj"
},
{ name = "wood_glass_oak", { name = "wood_glass_oak",
description = N_("Glass and Wood, Oak-colored (@1 opening)"), description = N_("Glass and Wood, Oak-colored (@1 opening)"),
mesh = "homedecor_door_wood_glass.obj", mesh = "homedecor_door_wood_glass.obj",
...@@ -264,6 +261,7 @@ for i, side in ipairs(sides) do ...@@ -264,6 +261,7 @@ for i, side in ipairs(sides) do
drop = "homedecor:door_"..doorname.."_left", drop = "homedecor:door_"..doorname.."_left",
mesecons = { mesecons = {
effector = { effector = {
rules = m_rules,
action_on = function(pos,node) action_on = function(pos,node)
local isClosed = getClosed(pos) local isClosed = getClosed(pos)
if isClosed then if isClosed then
...@@ -405,6 +403,7 @@ for i, g in ipairs(gate_list) do ...@@ -405,6 +403,7 @@ for i, g in ipairs(gate_list) do
end, end,
mesecons = { mesecons = {
effector = { effector = {
rules = m_rules,
action_on = function(pos,node) homedecor.flip_gate(pos,node,nil,gate, "closed") end action_on = function(pos,node) homedecor.flip_gate(pos,node,nil,gate, "closed") end
} }
} }
...@@ -433,6 +432,7 @@ for i, g in ipairs(gate_list) do ...@@ -433,6 +432,7 @@ for i, g in ipairs(gate_list) do
return itemstack return itemstack
end end
def.mesecons.effector = { def.mesecons.effector = {
rules = m_rules,
action_off = function(pos,node) homedecor.flip_gate(pos,node,nil,gate, "open") end action_off = function(pos,node) homedecor.flip_gate(pos,node,nil,gate, "open") end
} }
...@@ -657,3 +657,6 @@ minetest.register_alias("homedecor:jpn_door_bottom", "homedecor:door_japanese_cl ...@@ -657,3 +657,6 @@ minetest.register_alias("homedecor:jpn_door_bottom", "homedecor:door_japanese_cl
minetest.register_alias("homedecor:jpn_door_top_open", "air") minetest.register_alias("homedecor:jpn_door_top_open", "air")
minetest.register_alias("homedecor:jpn_door_bottom_open", "homedecor:door_japanese_open") minetest.register_alias("homedecor:jpn_door_bottom_open", "homedecor:door_japanese_open")
minetest.register_alias("homedecor:door_glass_right", "doors:door_glass_b")
minetest.register_alias("homedecor:door_glass_left", "doors:door_glass_a")
...@@ -141,17 +141,3 @@ homedecor.register("telephone", { ...@@ -141,17 +141,3 @@ homedecor.register("telephone", {
walkable = false, walkable = false,
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
}) })
minetest.register_abm({
nodenames = "homedecor:telephone",
label = "sfx",
interval = 30,
chance = 15,
action = function(pos, node)
minetest.sound_play("homedecor_telephone_ringing", {
pos = pos,
gain = 1.0,
max_hear_distance = 5
})
end
})
...@@ -118,7 +118,7 @@ minetest.register_alias("homedecor:deckchair_head", "air") ...@@ -118,7 +118,7 @@ minetest.register_alias("homedecor:deckchair_head", "air")
homedecor.register("deckchair_striped_blue", { homedecor.register("deckchair_striped_blue", {
mesh = "homedecor_deckchair.obj", mesh = "homedecor_deckchair.obj",
tiles = {"homedecor_deckchair_striped_blue.png"}, tiles = {"homedecor_deckchair_striped_blue.png"},
description = S("Deck Chair"), description = S("Deck Chair (blue striped)"),
groups = { snappy = 3 }, groups = { snappy = 3 },
expand = { forward="placeholder" }, expand = { forward="placeholder" },
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
...@@ -251,6 +251,7 @@ homedecor.register("swing", { ...@@ -251,6 +251,7 @@ homedecor.register("swing", {
place_on = "bottom" place_on = "bottom"
}, },
on_place = function(itemstack, placer, pointed_thing) on_place = function(itemstack, placer, pointed_thing)
local placer_name = placer:get_player_name() or ""
local isceiling, pos = homedecor.find_ceiling(itemstack, placer, pointed_thing) local isceiling, pos = homedecor.find_ceiling(itemstack, placer, pointed_thing)
if isceiling then if isceiling then
local height = 0 local height = 0
...@@ -263,7 +264,7 @@ homedecor.register("swing", { ...@@ -263,7 +264,7 @@ homedecor.register("swing", {
if not testreg or not testreg.buildable_to then if not testreg or not testreg.buildable_to then
if i < 1 then if i < 1 then
minetest.chat_send_player(placer:get_player_name(), "No room under there to hang a swing.") minetest.chat_send_player(placer_name, "No room under there to hang a swing.")
return itemstack return itemstack
else else
break break
...@@ -279,11 +280,11 @@ homedecor.register("swing", { ...@@ -279,11 +280,11 @@ homedecor.register("swing", {
minetest.set_node({ x=pos.x, y=pos.y-height, z=pos.z }, { name = "homedecor:swing", param2 = fdir }) minetest.set_node({ x=pos.x, y=pos.y-height, z=pos.z }, { name = "homedecor:swing", param2 = fdir })
if not homedecor.expect_infinite_stacks then if not creative.is_enabled_for(placer_name) then
itemstack:take_item() itemstack:take_item()
end end
else else
minetest.chat_send_player(placer:get_player_name(), "You have to point at the bottom side of an overhanging object to place a swing.") minetest.chat_send_player(placer_name, "You have to point at the bottom side of an overhanging object to place a swing.")
end end
return itemstack return itemstack
end, end,
...@@ -367,7 +368,7 @@ local shrub_cbox = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 } ...@@ -367,7 +368,7 @@ local shrub_cbox = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }
for _, color in ipairs(homedecor.shrub_colors) do for _, color in ipairs(homedecor.shrub_colors) do
minetest.register_node("homedecor:shrubbery_large_"..color, { minetest.register_node("homedecor:shrubbery_large_"..color, {
description = S("Shrubbery (@1)", S(color)), description = S("Shrubbery (large, @1)", S(color)),
drawtype = "mesh", drawtype = "mesh",
mesh = "homedecor_cube.obj", mesh = "homedecor_cube.obj",
tiles = {"homedecor_shrubbery_"..color..".png"}, tiles = {"homedecor_shrubbery_"..color..".png"},
......
...@@ -83,9 +83,7 @@ homedecor.register("kitchen_chair_padded", { ...@@ -83,9 +83,7 @@ homedecor.register("kitchen_chair_padded", {
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
after_place_node = function(pos, placer, itemstack, pointed_thing) after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
end, end,
after_dig_node = unifieddyes.after_dig_node,
on_rotate = unifieddyes.fix_after_screwdriver_nsew, on_rotate = unifieddyes.fix_after_screwdriver_nsew,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
pos.y = pos.y+0 -- where do I put my ass ? pos.y = pos.y+0 -- where do I put my ass ?
...@@ -110,9 +108,7 @@ homedecor.register("armchair", { ...@@ -110,9 +108,7 @@ homedecor.register("armchair", {
node_box = ac_cbox, node_box = ac_cbox,
after_place_node = function(pos, placer, itemstack, pointed_thing) after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
end, end,
after_dig_node = unifieddyes.after_dig_node,
on_rotate = unifieddyes.fix_after_screwdriver_nsew, on_rotate = unifieddyes.fix_after_screwdriver_nsew,
}) })
...@@ -235,8 +231,6 @@ minetest.register_lbm({ ...@@ -235,8 +231,6 @@ minetest.register_lbm({
local param2 = paletteidx + new_fdir local param2 = paletteidx + new_fdir
local newname = "homedecor:armchair" local newname = "homedecor:armchair"
print(name, dump(a), dump(b), dump(color).."("..dump(paletteidx)..")", dump(param2))
if node.name == "homedecor:chair" then if node.name == "homedecor:chair" then
newname = "homedecor:kitchen_chair_wood" newname = "homedecor:kitchen_chair_wood"
elseif string.find(node.name, "homedecor:chair_") then elseif string.find(node.name, "homedecor:chair_") then
......
This diff is collapsed.
...@@ -213,20 +213,26 @@ homedecor.register("soda_machine", { ...@@ -213,20 +213,26 @@ homedecor.register("soda_machine", {
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
on_rotate = screwdriver.rotate_simple, on_rotate = screwdriver.rotate_simple,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local playername = clicker:get_player_name()
local wielditem = clicker:get_wielded_item() local wielditem = clicker:get_wielded_item()
local wieldname = wielditem:get_name() local wieldname = wielditem:get_name()
local fdir_to_fwd = { {0, -1}, {-1, 0}, {0, 1}, {1, 0} } local fdir_to_fwd = { {0, -1}, {-1, 0}, {0, 1}, {1, 0} }
local fdir = node.param2 local fdir = node.param2
local pos_drop = { x=pos.x+fdir_to_fwd[fdir+1][1], y=pos.y, z=pos.z+fdir_to_fwd[fdir+1][2] } local pos_drop = { x=pos.x+fdir_to_fwd[fdir+1][1], y=pos.y, z=pos.z+fdir_to_fwd[fdir+1][2] }
if wieldname == "homedecor:coin" then if wieldname == "currency:minegeld_cent_25" then
wielditem:take_item()
clicker:set_wielded_item(wielditem)
minetest.spawn_item(pos_drop, "homedecor:soda_can") minetest.spawn_item(pos_drop, "homedecor:soda_can")
minetest.sound_play("insert_coin", { minetest.sound_play("insert_coin", {
pos=pos, max_hear_distance = 5 pos=pos, max_hear_distance = 5
}) })
if not creative.is_enabled_for(playername) then
wielditem:take_item()
clicker:set_wielded_item(wielditem)
return wielditem
end
else else
minetest.chat_send_player(clicker:get_player_name(), S("Please insert a coin in the machine.")) minetest.chat_send_player(playername, S("Please insert a coin in the machine."))
end end
end end
}) })
minetest.register_alias("homedecor:coin", "currency:minegeld_cent_25")
This diff is collapsed.
...@@ -19,4 +19,6 @@ dofile(handlerpath.."registration.lua") ...@@ -19,4 +19,6 @@ dofile(handlerpath.."registration.lua")
-- some nodes have particle spawners -- some nodes have particle spawners
dofile(handlerpath.."water_particles.lua") dofile(handlerpath.."water_particles.lua")
dofile(handlerpath.."mt_game_beds_functions.lua")
dofile(handlerpath.."sit.lua") dofile(handlerpath.."sit.lua")
...@@ -182,7 +182,7 @@ function homedecor.handle_inventory(name, def, original_def) ...@@ -182,7 +182,7 @@ function homedecor.handle_inventory(name, def, original_def)
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = "homedecor:" .. locked_name, output = "homedecor:" .. locked_name,
recipe = { "homedecor:" .. name, "default:steel_ingot" } recipe = { "homedecor:" .. name, "basic_materials:padlock" }
}) })
end end
......
This diff is collapsed.
This diff is collapsed.