1
0
mirror of https://github.com/mt-mods/homedecor_modpack.git synced 2025-07-15 12:10:25 +02:00

Compare commits

..

22 Commits

Author SHA1 Message Date
75eb750e0a remove errant core file 2017-06-21 04:50:41 -04:00
e08e262377 Disable sleeping in beds (again) 2017-06-19 10:45:10 -04:00
b22a11f617 use texture overlays on lava lamps
(water is now blue like it used to be)
2017-06-17 19:32:14 -04:00
9427967784 Make the white glowlight overlays more subtle
(they're too bright against the darker colors e.g. green)
2017-06-17 19:09:37 -04:00
8658cc27fc use static hardware coloring for books,
use soft overlays for cover trim,
2017-06-16 18:07:41 -04:00
752cb473a0 fix book models
(get rid of redundant overlay polys)
2017-06-16 17:43:23 -04:00
9e0d558d54 use soft overlays for bathroom tiles instead of the two-layer mesh node 2017-06-16 16:14:02 -04:00
3ea86f5c3f use soft overlays to re-create the subtle white glow that glowlights used to have
before param2 coloring went in.
2017-06-16 16:01:22 -04:00
d05d03d5d9 Re-enable sleeping in beds 2017-06-16 14:39:20 -04:00
55e2b03a50 missed an alias for open books 2017-06-16 13:35:37 -04:00
78fcbd04db revert a599b041d4 (param2 colorization of books)
The intention of this is to fix books in peoples' inventories that are
now inaccessible.  They can be placed, viewed, edited like normal now.

Side effect: all books that were already in-world and that have already
been converted to the param2 colorization before will be grey now, and
most will end up turned some wierd direction, but that can be fixed with
the screwdriver.

If you need to re-color one of the now-grey books, you'll need to craft
one of the desired color, place it, and copy and paste your text from
the grey book.

Newly-placed colored books will behave normally.
2017-06-15 15:23:21 -04:00
b50b7423b8 use mesh node for cubical plasma lamp 2017-06-15 13:42:44 -04:00
c741642057 fix wrongly-colored plasma ball base 2017-06-15 13:11:01 -04:00
5c52111bec Merge pull request #366 from tjnenrtn/verify_inbox_owner
Verify inbox owner when taking items
2017-05-25 07:11:29 -04:00
503c05a09e verify inbox owner when taking items 2017-05-24 23:57:42 -04:00
ab94f9dc6a Merge pull request #364 from AntumDeluge/settings
Replace deprecated methods
2017-05-18 05:34:45 -04:00
4d6f0c07c2 Replace deprecated methods:
- 'setting_get' with 'settings:get'
- 'setting_getbool' with 'settings:get_bool'
2017-05-13 00:15:26 -07:00
5fb16c4e33 don't crash if placing bed on top of bed when not in auto-color mode. 2017-03-31 12:59:26 -04:00
b37e6ade7a use unified dyes auto-colorization feature
also fixed some bugs in bed handling
also got rid of the old, obsolete "placeholder" node, aliased it to air.
2017-03-18 05:51:46 -04:00
c79f14bd89 use unified dyes on_construct handler
to set 256-color palette meta key on place
for those nodes that use it
2017-03-14 02:13:17 -04:00
e2a04b52b9 don't reference lrfurn chair colors in homedecor chair LBM
use a local copy instead
2017-03-11 21:21:17 -05:00
5dde3896f3 Merge pull request #360 from Thomas--S/patch-1
Make Wrought Iron Fence 2 recipe more generous
2017-03-11 14:59:49 -05:00
23 changed files with 7057 additions and 10582 deletions

View File

@ -234,21 +234,15 @@ minetest.register_node("building_blocks:Tarmac_spread", {
sounds = default.node_sound_dirt_defaults(), sounds = default.node_sound_dirt_defaults(),
}) })
minetest.register_node("building_blocks:BWtile", { minetest.register_node("building_blocks:BWtile", {
drawtype = "nodebox", drawtype = "raillike",
description = S("Chess board tiling"), description = S("Chess board tiling"),
tiles = { tiles = {"building_blocks_BWtile.png"},
"building_blocks_BWtile.png",
"building_blocks_BWtile.png^[transformR90",
"building_blocks_BWtile.png^[transformR90",
"building_blocks_BWtile.png^[transformR90",
"building_blocks_BWtile.png",
"building_blocks_BWtile.png"
},
inventory_image = "building_blocks_bwtile_inv.png", inventory_image = "building_blocks_bwtile_inv.png",
paramtype = "light", paramtype = "light",
walkable = false, walkable = false,
node_box = { selection_box = {
type = "fixed", type = "fixed",
-- but how to specify the dimensions for curved and sideways rails?
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
}, },
sunlight_propagates = true, sunlight_propagates = true,
@ -308,7 +302,7 @@ if minetest.get_modpath("moreblocks") then
"marble", "marble",
"building_blocks:Marble", "building_blocks:Marble",
{ {
description = S("Marble"), description = "Marble",
tiles = {"building_blocks_marble.png"}, tiles = {"building_blocks_marble.png"},
groups = {cracky=3}, groups = {cracky=3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
@ -319,7 +313,7 @@ if minetest.get_modpath("moreblocks") then
"hardwood", "hardwood",
"building_blocks:hardwood", "building_blocks:hardwood",
{ {
description = S("Hardwood"), description = "Hardwood",
tiles = {"building_blocks_hardwood.png"}, tiles = {"building_blocks_hardwood.png"},
groups = {choppy=1,flammable=1}, groups = {choppy=1,flammable=1},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
@ -330,7 +324,7 @@ if minetest.get_modpath("moreblocks") then
"fakegrass", "fakegrass",
"building_blocks:fakegrass", "building_blocks:fakegrass",
{ {
description = S("Grass"), description = "Grass",
tiles = {"default_grass.png"}, tiles = {"default_grass.png"},
groups = {crumbly=3}, groups = {crumbly=3},
sounds = default.node_sound_dirt_defaults({ sounds = default.node_sound_dirt_defaults({
@ -354,7 +348,7 @@ if minetest.get_modpath("moreblocks") then
"tar", "tar",
"building_blocks:Tar", "building_blocks:Tar",
{ {
description = S("Tar"), description = "Tar",
tiles = {"building_blocks_tar.png"}, tiles = {"building_blocks_tar.png"},
groups = {crumbly=1}, groups = {crumbly=1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
@ -366,7 +360,7 @@ if minetest.get_modpath("moreblocks") then
"grate", "grate",
"building_blocks:grate", "building_blocks:grate",
{ {
description = S("Grate"), description = "Grate",
tiles = {"building_blocks_grate.png"}, tiles = {"building_blocks_grate.png"},
groups = {cracky=1}, groups = {cracky=1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
@ -377,7 +371,7 @@ if minetest.get_modpath("moreblocks") then
"Adobe", "Adobe",
"building_blocks:Adobe", "building_blocks:Adobe",
{ {
description = S("Adobe"), description = "Adobe",
tiles = {"building_blocks_Adobe.png"}, tiles = {"building_blocks_Adobe.png"},
groups = {crumbly=3}, groups = {crumbly=3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
@ -388,7 +382,7 @@ if minetest.get_modpath("moreblocks") then
"Roofing", "Roofing",
"building_blocks:Roofing", "building_blocks:Roofing",
{ {
description = S("Roofing"), description = "Roofing",
tiles = {"building_blocks_Roofing.png"}, tiles = {"building_blocks_Roofing.png"},
groups = {snappy=3}, groups = {snappy=3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),

View File

@ -1,6 +0,0 @@
# Language: Russian
# Author: inpos <inpos@yandex.ru>
Plastic sheet = Лист пластика
Unprocessed Plastic base = Необработанная пластиковая основа

View File

@ -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;"..minetest.formspec_escape(S("L")).."]" .."button[3.6,4.5;0.6,0.6;rotateleft;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;"..minetest.formspec_escape(S("R")).."]" .."button[4.8,4.5;0.6,0.6;rotateright;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)
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;"..S("Next...").."]label[3.8,2.7;"..S("Score: "), "label[3.8,0.1;Next...]label[3.8,2.7;Score: ",
t.score, close, buttons } t.score, close, buttons }

View File

@ -66,9 +66,17 @@ local function stop_smoke(pos)
this_spawner_meta:set_int("sound", nil) this_spawner_meta:set_int("sound", nil)
end end
minetest.register_node("fake_fire:ice_fire", { -- FLAME TYPES
inventory_image = "ice_fire_inv.png", local flame_types = {
description = S("Ice fire"), { "fake", S("Fake fire") },
{ "ice", S("Ice fire") },
}
for _, f in ipairs(flame_types) do
local name, desc = unpack(f)
minetest.register_node("fake_fire:"..name.."_fire", {
inventory_image = name.."_fire_inv.png",
description = desc,
drawtype = "plantlike", drawtype = "plantlike",
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
@ -79,7 +87,7 @@ minetest.register_node("fake_fire:ice_fire", {
light_source = 14, light_source = 14,
waving = 1, waving = 1,
tiles = { tiles = {
{name="ice_fire_animated.png", animation={type="vertical_frames", {name=name.."_fire_animated.png", animation={type="vertical_frames",
aspect_w=16, aspect_h=16, length=1.5}}, aspect_w=16, aspect_h=16, length=1.5}},
}, },
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
@ -94,8 +102,7 @@ minetest.register_node("fake_fire:ice_fire", {
end, end,
drop = "" drop = ""
}) })
end
minetest.register_alias("fake_fire:fake_fire", "fire:permanent_flame")
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",
@ -183,18 +190,43 @@ for _, mat in ipairs(materials) do
}) })
end end
minetest.register_alias("fake_fire:flint_and_steel", "fire:flint_and_steel") -- FLINT and STEEL
minetest.register_tool("fake_fire:flint_and_steel", {
minetest.override_item("default:ice", { description = S("Flint and steel"),
on_ignite = function(pos, igniter) inventory_image = "flint_and_steel.png",
local flame_pos = {x = pos.x, y = pos.y + 1, z = pos.z} liquids_pointable = false,
if minetest.get_node(flame_pos).name == "air" then stack_max = 1,
minetest.set_node(flame_pos, {name = "fake_fire:ice_fire"}) 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 end
else
minetest.chat_send_player(user:get_player_name(), S("This area is protected!"))
end
else
return
end
itemstack:add_wear(65535/65)
return itemstack
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",

View File

@ -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 creative.is_enabled_for(plname) then if not homedecor.expect_infinite_stacks then
itemstack:take_item() itemstack:take_item()
end end
return itemstack return itemstack

View File

@ -3014,28 +3014,10 @@ minetest.register_craft({
}) })
minetest.register_craft({ minetest.register_craft({
output = "homedecor:stained_glass 3", output = "homedecor:stained_glass",
recipe = { recipe = {
{"", "dye:blue", ""}, {"", "dye:blue", ""},
{"dye:red", "xpanes:pane_flat", "dye:green"}, {"dye:red", "xpanes:pane", "dye:green"},
{"", "dye:yellow", ""},
},
})
minetest.register_craft({
output = "homedecor:stained_glass 2",
recipe = {
{"", "dye:blue", ""},
{"dye:red", "cottages:glass_pane_side", "dye:green"},
{"", "dye:yellow", ""},
},
})
minetest.register_craft({
output = "homedecor:stained_glass 2",
recipe = {
{"", "dye:blue", ""},
{"dye:red", "cottages:glass_pane", "dye:green"},
{"", "dye:yellow", ""}, {"", "dye:yellow", ""},
}, },
}) })

View File

@ -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 (blue striped)"), description = S("Deck Chair"),
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,7 +251,6 @@ 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
@ -264,7 +263,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_name, "No room under there to hang a swing.") minetest.chat_send_player(placer:get_player_name(), "No room under there to hang a swing.")
return itemstack return itemstack
else else
break break
@ -280,11 +279,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 creative.is_enabled_for(placer_name) then if not homedecor.expect_infinite_stacks then
itemstack:take_item() itemstack:take_item()
end end
else else
minetest.chat_send_player(placer_name, "You have to point at the bottom side of an overhanging object to place a swing.") minetest.chat_send_player(placer:get_player_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,
@ -368,7 +367,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 (large, @1)", S(color)), description = S("Shrubbery (@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"},

View File

@ -213,24 +213,20 @@ 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 == "homedecor:coin" 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(playername, S("Please insert a coin in the machine.")) minetest.chat_send_player(clicker:get_player_name(), S("Please insert a coin in the machine."))
end end
end end
}) })

View File

@ -104,7 +104,7 @@ local function stack(itemstack, placer, fdir, pos, def, pos2, node1, node2, poin
ctrl_node_def.after_place_node(pos, placer, itemstack, pointed_thing) ctrl_node_def.after_place_node(pos, placer, itemstack, pointed_thing)
end end
if not creative.is_enabled_for(placer_name) then if not homedecor.expect_infinite_stacks then
itemstack:take_item() itemstack:take_item()
end end
end end

View File

@ -11,8 +11,12 @@ local modpath = minetest.get_modpath("homedecor")
local S = homedecor_i18n.gettext local S = homedecor_i18n.gettext
homedecor = {} homedecor = {
homedecor.modpath = modpath modpath = modpath,
-- infinite stacks
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)
function homedecor.find_ceiling(itemstack, placer, pointed_thing) function homedecor.find_ceiling(itemstack, placer, pointed_thing)

View File

@ -396,7 +396,7 @@ local n = { 1, 2 }
for _, i in ipairs(n) do for _, i in ipairs(n) do
homedecor.register("picture_frame"..i, { homedecor.register("picture_frame"..i, {
description = S("Picture Frame "..i), description = S("Picture Frame"),
mesh = "homedecor_picture_frame.obj", mesh = "homedecor_picture_frame.obj",
tiles = { tiles = {
"homedecor_picture_frame_image"..i..".png", "homedecor_picture_frame_image"..i..".png",

View File

@ -129,7 +129,7 @@ minetest.register_node("homedecor:curtain_closed", {
}) })
minetest.register_node("homedecor:curtain_open", { minetest.register_node("homedecor:curtain_open", {
description = S("Curtains (open)"), description = S("Curtains"),
tiles = { "homedecor_curtain_open.png" }, tiles = { "homedecor_curtain_open.png" },
inventory_image = "homedecor_curtain_open.png", inventory_image = "homedecor_curtain_open.png",
drawtype = 'signlike', drawtype = 'signlike',

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -7,8 +7,6 @@ cd "$(dirname "${BASH_SOURCE[0]}")/..";
# Extract translatable strings. # Extract translatable strings.
xgettext --from-code=UTF-8 \ xgettext --from-code=UTF-8 \
--language=Lua \
--sort-by-file \
--keyword=S \ --keyword=S \
--keyword=NS:1,2 \ --keyword=NS:1,2 \
--keyword=N_ \ --keyword=N_ \

View File

@ -38,9 +38,9 @@ function lrfurn.check_right(pos, fdir, long, placer)
return false return false
elseif minetest.is_protected(pos2, placer:get_player_name()) then elseif minetest.is_protected(pos2, placer:get_player_name()) then
if not long then if not long then
minetest.chat_send_player(placer:get_player_name(), S("Someone else owns the spot where other end goes!")) minetest.chat_send_player(placer:get_player_name(), "Someone else owns the spot where other end goes!")
else else
minetest.chat_send_player(placer:get_player_name(), S("Someone else owns the spot where the middle or far end goes!")) minetest.chat_send_player(placer:get_player_name(), "Someone else owns the spot where the middle or far end goes!")
end end
return false return false
end end
@ -50,7 +50,7 @@ function lrfurn.check_right(pos, fdir, long, placer)
if node3 and node3.name ~= "air" then if node3 and node3.name ~= "air" then
return false return false
elseif minetest.is_protected(pos3, placer:get_player_name()) then elseif minetest.is_protected(pos3, placer:get_player_name()) then
minetest.chat_send_player(placer:get_player_name(), S("Someone else owns the spot where the other end goes!")) minetest.chat_send_player(placer:get_player_name(), "Someone else owns the spot where the other end goes!")
return false return false
end end
end end