resolve mergeconflicts

master
Milan* 2017-09-11 22:43:13 +02:00
commit e6f7b27588
23 changed files with 10658 additions and 7122 deletions

View File

@ -247,16 +247,22 @@ 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 = "raillike", drawtype = "nodebox",
description = S("Chess board tiling"), description = S("Chess board tiling"),
tiles = {"building_blocks_BWtile.png"}, tiles = {
"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,
selection_box = { node_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,
is_ground_content = true, is_ground_content = true,
@ -310,12 +316,23 @@ minetest.register_node("building_blocks:hardwood", {
if minetest.get_modpath("moreblocks") then if minetest.get_modpath("moreblocks") then
stairsplus:register_all(
"building_blocks",
"marble",
"building_blocks:Marble",
{
description = S("Marble"),
tiles = {"building_blocks_marble.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
}
)
stairsplus:register_all( stairsplus:register_all(
"building_blocks", "building_blocks",
"hardwood", "hardwood",
"building_blocks:hardwood", "building_blocks:hardwood",
{ {
description = "Hardwood", description = S("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(),
@ -326,7 +343,7 @@ if minetest.get_modpath("moreblocks") then
"fakegrass", "fakegrass",
"building_blocks:fakegrass", "building_blocks:fakegrass",
{ {
description = "Grass", description = S("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({
@ -350,7 +367,7 @@ if minetest.get_modpath("moreblocks") then
"tar", "tar",
"building_blocks:Tar", "building_blocks:Tar",
{ {
description = "Tar", description = S("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(),
@ -362,7 +379,7 @@ if minetest.get_modpath("moreblocks") then
"grate", "grate",
"building_blocks:grate", "building_blocks:grate",
{ {
description = "Grate", description = S("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(),
@ -373,7 +390,7 @@ if minetest.get_modpath("moreblocks") then
"Adobe", "Adobe",
"building_blocks:Adobe", "building_blocks:Adobe",
{ {
description = "Adobe", description = S("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(),
@ -384,7 +401,7 @@ if minetest.get_modpath("moreblocks") then
"Roofing", "Roofing",
"building_blocks:Roofing", "building_blocks:Roofing",
{ {
description = "Roofing", description = S("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(),

6
computer/locale/ru.txt Normal file
View File

@ -0,0 +1,6 @@
# 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;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)
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 }

View File

@ -66,43 +66,36 @@ local function stop_smoke(pos)
this_spawner_meta:set_int("sound", nil) this_spawner_meta:set_int("sound", nil)
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
}) })
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",

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

View File

@ -2998,10 +2998,28 @@ minetest.register_craft({
}) })
minetest.register_craft({ minetest.register_craft({
output = "homedecor:stained_glass", output = "homedecor:stained_glass 3",
recipe = { recipe = {
{"", "dye:blue", ""}, {"", "dye:blue", ""},
{"dye:red", "xpanes:pane", "dye:green"}, {"dye:red", "xpanes:pane_flat", "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"), 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", {
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", {
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", {
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 }
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"},

View File

@ -213,20 +213,24 @@ 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(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
}) })

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

View File

@ -12,12 +12,8 @@ local modpath = minetest.get_modpath("homedecor")
minetest.get_modpath("darkage") minetest.get_modpath("darkage")
local S = homedecor_i18n.gettext local S = homedecor_i18n.gettext
homedecor = { homedecor = {}
modpath = modpath, homedecor.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"), description = S("Picture Frame "..i),
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"), description = S("Curtains (open)"),
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

1576
homedecor_i18n/locale/ru.po Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -7,6 +7,8 @@ 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(), "Someone else owns the spot where other end goes!") minetest.chat_send_player(placer:get_player_name(), S("Someone else owns the spot where other end goes!"))
else else
minetest.chat_send_player(placer:get_player_name(), "Someone else owns the spot where the middle or far end goes!") minetest.chat_send_player(placer:get_player_name(), S("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(), "Someone else owns the spot where the other end goes!") minetest.chat_send_player(placer:get_player_name(), S("Someone else owns the spot where the other end goes!"))
return false return false
end end
end end