Compare commits

..

No commits in common. "master" and "fix_spear" have entirely different histories.

368 changed files with 5021 additions and 2950 deletions

View File

@ -15,8 +15,7 @@ globals = {
"homedecor_doors_and_gates",
-- mod-deps
"armor",
xcompat = {fields = {"player"}},
"armor"
}
read_globals = {
@ -40,5 +39,4 @@ read_globals = {
"creative",
"doors",
"i3",
"xcompat",
}

View File

@ -25,4 +25,7 @@ required:
* [Unifieddyes](https://github.com/mt-mods/unifieddyes)
* [Basic Materials](https://github.com/mt-mods/basic_materials)
* [xcompat](https://github.com/mt-mods/xcompat)
optional:
* [Sound Api](https://github.com/mt-mods/sound_api) - note: needed for sound support

View File

@ -33,8 +33,7 @@ if not minetest.get_modpath("technic") then
description = S("Granite"),
tiles = { "technic_granite.png" },
is_ground_content = true,
groups = {cracky=1, dig_stone=2, pickaxey=5},
_mcl_hardness=1.6,
groups = {cracky=1, dig_stone=2},
_sound_def = {
key = "node_sound_stone_defaults",
},

View File

@ -1,20 +1,48 @@
# textdomain: building_blocks
### alias.lua ###
Granite=Granit
Grate=Rost
Streak Free Glass=Schlierenfreies Glas
Wood Framed Glass=Holzrahmenglas
### node_stairs.lua ###
Adobe=Adobe
Fake Grass=Falsches Gras
Hardwood=Hartholz
Roof block=Dachblock
Tar=Teer
Marble=Marmor
Adobe Slab=Adobestufe
Adobe Stair=Adobetreppe
Brobble Spread=Ziesterboden
Chess board tiling=Schachbrettkacheln
Fake Grass=Falsches Gras
Fake Grass Slab=Falsches-Gras-Stufe
Fake Grass Stair=Falsches-Gras-Treppe
Fireplace=Kamin
Grate=Rost
Grate Slab=Roststufe
Grate Stair=Rosttreppe
Gravel Spread=Kiesboden
Hardwood=Hartholz
Hardwood Slab=Hartholzstufe
Hardwood Stair=Hartholztreppe
Marble=Marmor
Marble Slab=Marmorstufe
Marble Stair=Marmortreppe
Roof block=Dachblock
Roof block Slab=Dachblockstufe
Roof block Stair=Dachblocktreppe
Streak Free Glass=Schlierenfreies Glas
Streak Free Glass Slab=Schlierenfreies-Glas-Stufe
Streak Free Glass Stair=Schlierenfreies-Glas-Treppe
Tar=Teer
Tar Slab=Teerstufe
Tar Stair=Teertreppe
Tarmac Spread=Asphaltboden
Terrycloth towel=Frottiertuch
Chess board tiling=Schachbrettkacheln
Fireplace=Kamin
Wood Framed Glass=Holzrahmenglas
Wood Framed Glass Slab=Holzrahmenglasstufe
Wood Framed Glass Stair=Holzrahmenglastreppe
### others.lua ###
Small bundle of sticks=Kleines Bündel Stöcke
Tar base=Teerbase
Tar Knife=Teermesser
Tar base=Teerbase

View File

@ -1,20 +1,48 @@
# textdomain: building_blocks
### alias.lua ###
Granite=Granito
Grate=Reja
Streak Free Glass=Vídrio sin rayas
Wood Framed Glass=Vídrio enmarcado en madera
### node_stairs.lua ###
Adobe=Adobe
Fake Grass=Hierba falsa
Hardwood=Madera dura
Roof block=Bloque de techo
Tar=Alquitrán
Marble=Mármol
Adobe Slab=Losa de adobe
Adobe Stair=Escaleras de adobe
Brobble Spread=Mezcla de Ladroquines
Chess board tiling=Azulejos de ajedrez
Fake Grass=Hierba falsa
Fake Grass Slab=
Fake Grass Stair=
Fireplace=Chimenea
Grate=Reja
Grate Slab=Losa de rejas
Grate Stair=Escaleras de rejas
Gravel Spread=Mezcla de gravilla
Hardwood=Madera dura
Hardwood Slab=Losa de madera dura
Hardwood Stair=Escaleras de madera dura
Marble=Mármol
Marble Slab=Losa de mármol
Marble Stair=Escaleras de mármol
Roof block=Bloque de techo
Roof block Slab=
Roof block Stair=
Streak Free Glass=Vídrio sin rayas
Streak Free Glass Slab=
Streak Free Glass Stair=
Tar=Alquitrán
Tar Slab=Losa de alquitrán
Tar Stair=Escaleras de alquitrán
Tarmac Spread=Mezcla de asfalto
Terrycloth towel=Toalla
Chess board tiling=Azulejos de ajedrez
Fireplace=Chimenea
Wood Framed Glass=Vídrio enmarcado en madera
Wood Framed Glass Slab=
Wood Framed Glass Stair=
### others.lua ###
Small bundle of sticks=Manojo de palitos
Tar base=Base de alquitrán
Tar Knife=Cuchillo de alquitrán
Tar base=Base de alquitrán

View File

@ -1,20 +1,48 @@
# textdomain: building_blocks
### alias.lua ###
Granite=Granit
Grate=Grille
Streak Free Glass=Verre anti-rayures
Wood Framed Glass=Verre encadré de bois
### node_stairs.lua ###
Adobe=Pisé
Fake Grass=Herbe synthétique
Hardwood=Bois dur (feuillu)
Roof block=Bloc de toit
Tar=Goudron
Marble=Marbre
Adobe Slab=Dalle en pisé
Adobe Stair=Escalier en pisé
Brobble Spread=Tapis rouge
Chess board tiling=Pavage en échiquier
Fake Grass=Herbe synthétique
Fake Grass Slab=Dalle en herbe synthétique
Fake Grass Stair=Escalier en herbe synthétique
Fireplace=Cheminée
Grate=Grille
Grate Slab=Dalle en métal déployé
Grate Stair=Escalier en métal déployé
Gravel Spread=Tapis de gravier
Hardwood=Bois dur (feuillu)
Hardwood Slab=Dalle en bois dur (feuillu)
Hardwood Stair=Escalier en bois dur (feuillu)
Marble=Marbre
Marble Slab=Dalle en marbre
Marble Stair=Marche en marbre
Roof block=Bloc de toit
Roof block Slab=Dalle en bloc de toit
Roof block Stair=Escalier en bloc de toit
Streak Free Glass=Verre anti-rayures
Streak Free Glass Slab=Dalle en verre anti-rayures
Streak Free Glass Stair=Escalier en verre anti-rayures
Tar=Goudron
Tar Slab=Dalle en goudron
Tar Stair=Marche en goudron
Tarmac Spread=Tapis de goudron
Terrycloth towel=Serviette éponge
Chess board tiling=Pavage en échiquier
Fireplace=Cheminée
Wood Framed Glass=Verre encadré de bois
Wood Framed Glass Slab=Dalle en verre encadré de bois
Wood Framed Glass Stair=Escalier en verre encadré de bois
### others.lua ###
Small bundle of sticks=Petit fagot de brindilles
Tar base=Pâte de goudron
Tar Knife=Couteau à goudron
Tar base=Pâte de goudron

View File

@ -1,20 +1,48 @@
# textdomain: building_blocks
### alias.lua ###
Granite=Granit
Grate=Jeriji
Streak Free Glass=Kaca Bebas Calar
Wood Framed Glass=Kaca Berbingkai Kayu
### node_stairs.lua ###
Adobe=Adob
Fake Grass=Rumput Tiruan
Hardwood=Kayu Keras
Roof block=Blok Bumbung
Tar=Tar
Marble=Marmar
Adobe Slab=Bidur Adob
Adobe Stair=Tangga Adob
Brobble Spread=Sebaran Batu Merah
Chess board tiling=Jubin Papan Catur
Fake Grass=Rumput Tiruan
Fake Grass Slab=
Fake Grass Stair=
Fireplace=Pendiangan
Grate=Jeriji
Grate Slab=Bidur Jeriji
Grate Stair=Tangga Jeriji
Gravel Spread=Sebaran Kelikir
Hardwood=Kayu Keras
Hardwood Slab=Bidur Kayu Keras
Hardwood Stair=Tangga Kayu Keras
Marble=Marmar
Marble Slab=Bidur Marmar
Marble Stair=Tangga Marmar
Roof block=Blok Bumbung
Roof block Slab=
Roof block Stair=
Streak Free Glass=Kaca Bebas Calar
Streak Free Glass Slab=
Streak Free Glass Stair=
Tar=Tar
Tar Slab=Bidur Tar
Tar Stair=Tangga Tar
Tarmac Spread=Sebaran Tar
Terrycloth towel=Kain Tuala
Chess board tiling=Jubin Papan Catur
Fireplace=Pendiangan
Wood Framed Glass=Kaca Berbingkai Kayu
Wood Framed Glass Slab=
Wood Framed Glass Stair=
### others.lua ###
Small bundle of sticks=Seberkas Kecil Serpihan Kayu
Tar base=Campuran Tar
Tar Knife=Pisau Tar
Tar base=Campuran Tar

View File

@ -1,20 +1,48 @@
# textdomain: building_blocks
### alias.lua ###
Granite=Granito
Grate=Grelha
Streak Free Glass=Vidro Sem Riscos
Wood Framed Glass=Vidro com Bordas de Madeira
### node_stairs.lua ###
Adobe=Argila
Fake Grass=Grama Falsa
Hardwood=Madeira
Roof block=Bloco de telhado
Tar=Alcatrão
Marble=Mármore
Adobe Slab=Placa de argila
Adobe Stair=Escada de Argila
Brobble Spread=Calçado
Chess board tiling=Revestimento de xadrez
Fake Grass=Grama Falsa
Fake Grass Slab=
Fake Grass Stair=
Fireplace=Lareira
Grate=Grelha
Grate Slab=Placa de Grelha
Grate Stair=Escade de Grelha
Gravel Spread=Espalhamento de Cascalho
Hardwood=Madeira
Hardwood Slab=Placa de madeira
Hardwood Stair=Escada de madeira
Marble=Mármore
Marble Slab=Placa de Mármore
Marble Stair=Escada de mármore
Roof block=Bloco de telhado
Roof block Slab=
Roof block Stair=
Streak Free Glass=Vidro Sem Riscos
Streak Free Glass Slab=
Streak Free Glass Stair=
Tar=Alcatrão
Tar Slab=Placa de alcatrão
Tar Stair=Escada de alcatrão
Tarmac Spread=Espalhamento das Estradas
Terrycloth towel=Toalha de Roupinha
Chess board tiling=Revestimento de xadrez
Fireplace=Lareira
Wood Framed Glass=Vidro com Bordas de Madeira
Wood Framed Glass Slab=
Wood Framed Glass Stair=
### others.lua ###
Small bundle of sticks=Pequeno amontoado de gravetos
Tar base=Base para alcatrão
Tar Knife=Faca de Alcatrão
Tar base=Base para alcatrão

View File

@ -1,20 +1,48 @@
# textdomain: building_blocks
### alias.lua ###
Granite=Granito
Grate=Grelha
Streak Free Glass=Vidro Sem Riscos
Wood Framed Glass=Vidro com Bordas de Madeira
### node_stairs.lua ###
Adobe=Argila
Fake Grass=Grama Falsa
Hardwood=Madeira
Roof block=Bloco de telhado
Tar=Alcatrão
Marble=Mármore
Adobe Slab=Placa de argila
Adobe Stair=Escada de Argila
Brobble Spread=Calçado
Chess board tiling=Revestimento de xadrez
Fake Grass=Grama Falsa
Fake Grass Slab=
Fake Grass Stair=
Fireplace=Lareira
Grate=Grelha
Grate Slab=Placa de Grelha
Grate Stair=Escade de Grelha
Gravel Spread=Espalhamento de Cascalho
Hardwood=Madeira
Hardwood Slab=Placa de madeira
Hardwood Stair=Escada de madeira
Marble=Mármore
Marble Slab=Placa de Mármore
Marble Stair=Escada de mármore
Roof block=Bloco de telhado
Roof block Slab=
Roof block Stair=
Streak Free Glass=Vidro Sem Riscos
Streak Free Glass Slab=
Streak Free Glass Stair=
Tar=Alcatrão
Tar Slab=Placa de alcatrão
Tar Stair=Escada de alcatrão
Tarmac Spread=Espalhamento das Estradas
Terrycloth towel=Toalha de Roupinha
Chess board tiling=Revestimento de xadrez
Fireplace=Lareira
Wood Framed Glass=Vidro com Bordas de Madeira
Wood Framed Glass Slab=
Wood Framed Glass Stair=
### others.lua ###
Small bundle of sticks=Pequeno amontoado de gravetos
Tar base=Base para alcatrão
Tar Knife=Faca de Alcatrão
Tar base=Base para alcatrão

View File

@ -1,20 +1,48 @@
# textdomain: building_blocks
### alias.lua ###
Granite=Гранит
Grate=Каминная решётка
Streak Free Glass=Стекло без стыков
Wood Framed Glass=Деревянное окно
### node_stairs.lua ###
Adobe=Саман
Fake Grass=Псевдо трава
Hardwood=Твёрдая древесина
Roof block=Кровельный блок
Tar=Смола
Marble=Мрамор
Adobe Slab=Саманная плита
Adobe Stair=Саманная ступенька
Brobble Spread=Настил кирпичного булыжника
Chess board tiling=Шахматная плитка
Fake Grass=Псевдо трава
Fake Grass Slab=
Fake Grass Stair=
Fireplace=Камин
Grate=Каминная решётка
Grate Slab=Решётчатая плита
Grate Stair=Решётчатая ступенька
Gravel Spread=Настил гравия
Hardwood=Твёрдая древесина
Hardwood Slab=Плита из твёрдой древесины
Hardwood Stair=Ступенька из твёрдой древесины
Marble=Мрамор
Marble Slab=Мраморная блита
Marble Stair=Мраморная ступенька
Roof block=Кровельный блок
Roof block Slab=
Roof block Stair=
Streak Free Glass=Стекло без стыков
Streak Free Glass Slab=
Streak Free Glass Stair=
Tar=Смола
Tar Slab=Плита из смолы
Tar Stair=Ступенька из смолы
Tarmac Spread=Покрытие гудронной смолой
Terrycloth towel=Махровое полотенце
Chess board tiling=Шахматная плитка
Fireplace=Камин
Wood Framed Glass=Деревянное окно
Wood Framed Glass Slab=
Wood Framed Glass Stair=
### others.lua ###
Small bundle of sticks=Небольшая связка палок
Tar base=Смоляная основа
Tar Knife=Смоляной нож
Tar base=Смоляная основа

View File

@ -1,20 +1,48 @@
# textdomain: building_blocks
### alias.lua ###
Granite=花岗岩
Grate=磨碎
Streak Free Glass=无条纹玻璃
Wood Framed Glass=木框玻璃
### node_stairs.lua ###
Adobe=土砖
Fake Grass=塑料草
Hardwood=硬木
Roof block=天台
Tar=焦油
Marble=大理石
Adobe Slab=
Adobe Stair=
Brobble Spread=石砖路面
Chess board tiling=棋盘铺贴
Fake Grass=塑料草
Fake Grass Slab=
Fake Grass Stair=
Fireplace=壁炉
Grate=磨碎
Grate Slab=
Grate Stair=
Gravel Spread=碎石路面
Hardwood=硬木
Hardwood Slab=
Hardwood Stair=
Marble=大理石
Marble Slab=
Marble Stair=
Roof block=天台
Roof block Slab=
Roof block Stair=
Streak Free Glass=无条纹玻璃
Streak Free Glass Slab=
Streak Free Glass Stair=
Tar=焦油
Tar Slab=
Tar Stair=
Tarmac Spread=柏油路面
Terrycloth towel=毛巾
Chess board tiling=棋盘铺贴
Fireplace=壁炉
Wood Framed Glass=木框玻璃
Wood Framed Glass Slab=
Wood Framed Glass Stair=
### others.lua ###
Small bundle of sticks=小捆棍子
Tar base=焦油基
Tar Knife=焦油刀
Tar base=焦油基

View File

@ -1,20 +1,48 @@
# textdomain: building_blocks
### alias.lua ###
Granite=
Grate=
Streak Free Glass=
Wood Framed Glass=
### node_stairs.lua ###
Adobe=
Fake Grass=
Hardwood=
Roof block=
Tar=
Marble=
Adobe Slab=
Adobe Stair=
Brobble Spread=
Chess board tiling=
Fake Grass=
Fake Grass Slab=
Fake Grass Stair=
Fireplace=
Grate=
Grate Slab=
Grate Stair=
Gravel Spread=
Hardwood=
Hardwood Slab=
Hardwood Stair=
Marble=
Marble Slab=
Marble Stair=
Roof block=
Roof block Slab=
Roof block Stair=
Streak Free Glass=
Streak Free Glass Slab=
Streak Free Glass Stair=
Tar=
Tar Slab=
Tar Stair=
Tarmac Spread=
Terrycloth towel=
Chess board tiling=
Fireplace=
Wood Framed Glass=
Wood Framed Glass Slab=
Wood Framed Glass Stair=
### others.lua ###
Small bundle of sticks=
Tar base=
Tar Knife=
Tar base=

View File

@ -1,20 +1,6 @@
local S = minetest.get_translator("building_blocks")
local function building_blocks_stairs(nodename, def)
if def.groups and (def.groups.crumbly or def.groups.oddly_breakable_by_hand) then
def.groups["handy"]=1
def._mcl_hardness=0.6
elseif def.groups and (def.groups.snappy or def.groups.choppy) then
def.groups["axey"]=5
def._mcl_hardness=1.6
elseif def.groups and (def.groups.cracky or def.groups.crumbly) then
def.groups["pickaxey"]=5
def._mcl_hardness=1.6
end
def.is_ground_content = def.is_ground_content == true
minetest.register_node(nodename, def)
if minetest.get_modpath("moreblocks") then
local mod, name = nodename:match("(.*):(.*)")
@ -33,7 +19,7 @@ building_blocks_stairs("building_blocks:grate", {
tiles = {"building_blocks_grate.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
is_ground_content = true,
use_texture_alpha = "clip",
groups = {cracky=1, dig_generic=3},
_sound_def = {
@ -46,7 +32,7 @@ building_blocks_stairs("building_blocks:smoothglass", {
tiles = {"building_blocks_sglass.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
is_ground_content = true,
use_texture_alpha = "clip",
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
_sound_def = {
@ -59,7 +45,7 @@ building_blocks_stairs("building_blocks:woodglass", {
tiles = {"building_blocks_wglass.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
is_ground_content = true,
use_texture_alpha = "clip",
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
_sound_def = {
@ -70,21 +56,20 @@ building_blocks_stairs("building_blocks:woodglass", {
building_blocks_stairs("building_blocks:Adobe", {
tiles = {"building_blocks_Adobe.png"},
description = S("Adobe"),
is_ground_content = false,
is_ground_content = true,
groups = {crumbly=3, dig_stone=2},
_sound_def = {
key = "node_sound_stone_defaults",
},
})
local grasstex = {
homedecor.textures.grass.top,
homedecor.textures.grass.dirt,
homedecor.textures.grass.side
}
local grasstex = {"[combine:16x16^[noalpha^[colorize:#006400"}
if minetest.get_modpath("default") then
grasstex = minetest.registered_nodes["default:dirt_with_grass"].tiles
end
building_blocks_stairs("building_blocks:fakegrass", {
tiles = grasstex,
description = S("Fake Grass"),
is_ground_content = false,
is_ground_content = true,
groups = {crumbly=3, dig_sand=3},
_sound_def = {
key = "node_sound_dirt_defaults",
@ -92,7 +77,7 @@ building_blocks_stairs("building_blocks:fakegrass", {
})
building_blocks_stairs("building_blocks:hardwood", {
tiles = {"building_blocks_hardwood.png"},
is_ground_content = false,
is_ground_content = true,
description = S("Hardwood"),
groups = {choppy=1,flammable=1, dig_tree=1},
_sound_def = {
@ -101,7 +86,7 @@ building_blocks_stairs("building_blocks:hardwood", {
})
building_blocks_stairs("building_blocks:Roofing", {
tiles = {"building_blocks_Roofing.png"},
is_ground_content = false,
is_ground_content = true,
description = S("Roof block"),
groups = {snappy=3, dig_generic=4},
_sound_def = {
@ -111,7 +96,7 @@ building_blocks_stairs("building_blocks:Roofing", {
building_blocks_stairs("building_blocks:Tar", {
description = S("Tar"),
tiles = {"building_blocks_tar.png"},
is_ground_content = false,
is_ground_content = true,
groups = {crumbly=1, tar_block = 1, dig_generic=4},
_sound_def = {
key = "node_sound_stone_defaults",
@ -120,7 +105,7 @@ building_blocks_stairs("building_blocks:Tar", {
building_blocks_stairs("building_blocks:Marble", {
description = S("Marble"),
tiles = {"building_blocks_marble.png"},
is_ground_content = false,
is_ground_content = true,
groups = {cracky=3, marble = 1, dig_stone=2},
_sound_def = {
key = "node_sound_stone_defaults",
@ -142,13 +127,15 @@ minetest.register_node("building_blocks:brobble_spread", {
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = false,
groups = {crumbly=3, dig_generic=4, handy=1},
_mcl_hardness=0.6
is_ground_content = true,
groups = {crumbly=3, dig_generic=4},
})
if not minetest.get_modpath("moreblocks") or not minetest.get_modpath("gloopblocks") then
local graveltex = homedecor.textures.gravel
local graveltex = "[combine:16x16^[noalpha^[colorize:#3a3b3c"
if minetest.get_modpath("default") then
graveltex = "default_gravel.png"
end
minetest.register_node("building_blocks:gravel_spread", {
drawtype = "raillike",
description = S("Gravel Spread"),
@ -162,9 +149,8 @@ if not minetest.get_modpath("moreblocks") or not minetest.get_modpath("gloopbloc
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = false,
groups = {crumbly=2, dig_generic=4, handy=1},
_mcl_hardness=0.6,
is_ground_content = true,
groups = {crumbly=2, dig_generic=4},
_sound_def = {
key = "node_sound_dirt_defaults",
},
@ -184,9 +170,8 @@ minetest.register_node("building_blocks:Tarmac_spread", {
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = false,
groups = {cracky=3, dig_generic=4, pickaxey=5},
_mcl_hardness=1.6,
is_ground_content = true,
groups = {cracky=3, dig_generic=4},
_sound_def = {
key = "node_sound_dirt_defaults",
},
@ -204,9 +189,8 @@ minetest.register_node("building_blocks:terrycloth_towel", {
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = false,
groups = {crumbly=3, dig_generic=4, handy=1},
_mcl_hardness=0.6
is_ground_content = true,
groups = {crumbly=3, dig_generic=4},
})
minetest.register_node("building_blocks:BWtile", {
@ -228,9 +212,8 @@ minetest.register_node("building_blocks:BWtile", {
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
sunlight_propagates = true,
is_ground_content = false,
groups = {crumbly=3, dig_generic=4, handy=1},
_mcl_hardness=0.6
is_ground_content = true,
groups = {crumbly=3, dig_generic=4},
})
minetest.register_node("building_blocks:Fireplace", {
@ -245,9 +228,8 @@ minetest.register_node("building_blocks:Fireplace", {
paramtype2 = "facedir",
light_source = minetest.LIGHT_MAX,
sunlight_propagates = true,
is_ground_content = false,
groups = {cracky=2, dig_generic=4, pickaxey=5},
_mcl_hardness=1.6,
is_ground_content = true,
groups = {cracky=2, dig_generic=4},
_sound_def = {
key = "node_sound_stone_defaults",
},

View File

@ -1,7 +1,5 @@
local S = minetest.get_translator("fake_fire")
local fake_fire_reload_particles_nodes = {}
local function fire_particles_on(pos) -- 3 layers of fire
local meta = minetest.get_meta(pos)
local id1 = minetest.add_particlespawner({ -- 1 layer big particles fire
@ -104,8 +102,8 @@ local function start_fire_effects(pos, node, clicker, chimney)
minsize = 4, maxsize = 8,
texture = "smoke_particle.png",
})
this_spawner_meta:set_int("smoky", id)
if chimney == 1 then
this_spawner_meta:set_int("smoky", id)
this_spawner_meta:set_int("sound", 0)
else
s_handle = minetest.sound_play("fire_small", {
@ -113,7 +111,6 @@ local function start_fire_effects(pos, node, clicker, chimney)
max_hear_distance = 5,
loop = true
})
fire_particles_off(pos)
fire_particles_on(pos)
this_spawner_meta:set_int("sound", s_handle)
end
@ -145,9 +142,7 @@ minetest.register_node("fake_fire:ice_fire", {
drawtype = "plantlike",
paramtype = "light",
paramtype2 = "facedir",
groups = {dig_immediate=3, not_in_creative_inventory=1, dig_generic=3, handy=1},
is_ground_content = false,
_mcl_hardness=0.6,
groups = {dig_immediate=3, not_in_creative_inventory=1, dig_generic=3},
sunlight_propagates = true,
buildable_to = true,
walkable = false,
@ -163,7 +158,6 @@ minetest.register_node("fake_fire:ice_fire", {
end,
on_destruct = function (pos)
stop_smoke(pos)
fire_particles_off(pos)
minetest.sound_play("fire_extinguish", {
pos = pos, max_hear_distance = 5
})
@ -178,7 +172,7 @@ local sbox = {
fixed = { -8/16, -8/16, -8/16, 8/16, -6/16, 8/16},
}
local wtex = homedecor.textures.wood.jungle.planks
local wtex = homedecor.textures.default_junglewood
minetest.register_node("fake_fire:fancy_fire", {
inventory_image = "fancy_fire_inv.png",
@ -188,9 +182,7 @@ minetest.register_node("fake_fire:fancy_fire", {
paramtype = "light",
paramtype2 = "facedir",
use_texture_alpha = "clip",
groups = {oddly_breakable_by_hand=3, flammable=0, handy=1},
is_ground_content = false,
_mcl_hardness=0.6,
groups = {oddly_breakable_by_hand=3, flammable=0},
sunlight_propagates = true,
light_source = 13,
walkable = false,
@ -203,7 +195,6 @@ minetest.register_node("fake_fire:fancy_fire", {
"fake_fire_empty_tile.png"
},
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
fire_particles_off(pos)
fire_particles_on(pos)
return itemstack
end,
@ -235,9 +226,7 @@ minetest.register_node("fake_fire:embers", {
aspect_w=16, aspect_h=16, length=2}},
},
light_source = 9,
groups = {crumbly=3, dig_stone=2, handy=1},
is_ground_content = false,
_mcl_hardness=0.6,
groups = {crumbly=3, dig_stone=2},
paramtype = "light",
_sound_def = {
key = "node_sound_dirt_defaults",
@ -264,13 +253,10 @@ local materials = {
for _, mat in ipairs(materials) do
local name, desc, tex = unpack(mat)
table.insert(fake_fire_reload_particles_nodes, "fake_fire:chimney_top_"..name)
minetest.register_node("fake_fire:chimney_top_"..name, {
description = desc,
tiles = {tex.."^chimney_top.png", tex},
groups = {snappy=3, dig_stone=2, handy=1},
is_ground_content = false,
_mcl_hardness=0.6,
groups = {snappy=3, dig_stone=2},
paramtype = "light",
_sound_def = {
key = "node_sound_stone_defaults",
@ -340,7 +326,7 @@ minetest.register_alias("fake_fire:flint", "fake_fire:flint_and_steel")
minetest.register_lbm({
name = "fake_fire:reload_particles",
label = "restart fire particles on reload",
nodenames = { "fake_fire:fancy_fire" },
nodenames = {"fake_fire:fancy_fire"},
run_at_every_load = true,
action = function(pos, node)
fire_particles_off(pos)
@ -348,18 +334,4 @@ minetest.register_lbm({
end
})
minetest.register_lbm({
name = "fake_fire:reload_particles_chimney",
label = "restart chimney smoke on reload",
nodenames = fake_fire_reload_particles_nodes,
run_at_every_load = true,
action = function(pos, node)
if minetest.get_meta(pos):get_int("smoky") ~= 0 then
stop_smoke(pos)
start_fire_effects(pos, node, nil, 1)
end
end
})
minetest.log("action", "[fake_fire] loaded.")

View File

@ -1,6 +1,10 @@
# textdomain: fake_fire
Ice fire=Eisfeuer
### init.lua ###
Fancy Fire=Schönes Feuer
Glowing Embers=Glühende Asche
Stone chimney top=Steinschornsteinaufsatz
Ice fire=Eisfeuer
Sandstone chimney top=Sandsteinschornsteinaufsatz
Stone chimney top=Steinschornsteinaufsatz

View File

@ -1,6 +1,10 @@
# textdomain: fake_fire
Ice fire=Fuego de hielo
### init.lua ###
Fancy Fire=Fuego fantasía
Glowing Embers=Brasas ardientes
Stone chimney top=Chimenea de piedra
Ice fire=Fuego de hielo
Sandstone chimney top=Chimenea de arenisca
Stone chimney top=Chimenea de piedra

View File

@ -1,6 +1,10 @@
# textdomain: fake_fire
Ice fire=Feu glacé
### init.lua ###
Fancy Fire=Feu décoratif
Glowing Embers=Braises incandescentes
Stone chimney top=Haut de cheminée en pierre
Ice fire=Feu glacé
Sandstone chimney top=Haut de cheminée en grès
Stone chimney top=Haut de cheminée en pierre

View File

@ -1,6 +1,10 @@
# textdomain: fake_fire
Ice fire=Api Ais
### init.lua ###
Fancy Fire=Api Hiasan
Glowing Embers=Bara Api
Stone chimney top=Kepala Serombong Batu
Ice fire=Api Ais
Sandstone chimney top=Kepala Serombong Batu Pasir
Stone chimney top=Kepala Serombong Batu

View File

@ -1,6 +1,10 @@
# textdomain: fake_fire
Ice fire=Fogo de gelo
### init.lua ###
Fancy Fire=Fogo Chique
Glowing Embers=Brasas Brilhantes
Stone chimney top=Topo de chaminé de pedra
Ice fire=Fogo de gelo
Sandstone chimney top=Topo de chaminé de arenito
Stone chimney top=Topo de chaminé de pedra

View File

@ -1,6 +1,10 @@
# textdomain: fake_fire
Ice fire=Fogo de gelo
### init.lua ###
Fancy Fire=Fogo Chique
Glowing Embers=Brasas Brilhantes
Stone chimney top=Topo de chaminé de pedra
Ice fire=Fogo de gelo
Sandstone chimney top=Topo de chaminé de arenito
Stone chimney top=Topo de chaminé de pedra

View File

@ -1,6 +1,10 @@
# textdomain: fake_fire
Ice fire=Ледяной огонь
### init.lua ###
Fancy Fire=Необычный огонь
Glowing Embers=Светящиеся угли
Stone chimney top=Каменный дымоход на крышу
Ice fire=Ледяной огонь
Sandstone chimney top=Дымоход из песчаника на крышу
Stone chimney top=Каменный дымоход на крышу

View File

@ -1,6 +1,10 @@
# textdomain: fake_fire
Ice fire=冰火
### init.lua ###
Fancy Fire=花式火
Glowing Embers=发光的余烬
Stone chimney top=鹅卵石烟囱顶部
Ice fire=冰火
Sandstone chimney top=砂石烟囱顶部
Stone chimney top=鹅卵石烟囱顶部

View File

@ -1,6 +1,10 @@
# textdomain: fake_fire
Ice fire=
### init.lua ###
Fancy Fire=
Glowing Embers=
Stone chimney top=
Ice fire=
Sandstone chimney top=
Stone chimney top=

View File

@ -94,22 +94,16 @@ if minetest.get_modpath("doors") then
local def
for _,mat in ipairs({"wood", "steel"}) do
def = table.copy(minetest.registered_nodes["doors:door_"..mat.."_a"])
def.groups.handy = 1
def._mcl_hardness=0.6
def.mesh = "homedecor_3d_door_"..mat.."_a.obj"
minetest.register_node(":doors:door_"..mat.."_a", def)
def = table.copy(minetest.registered_nodes["doors:door_"..mat.."_b"])
def.groups.handy = 1
def._mcl_hardness=0.6
def.mesh = "homedecor_3d_door_"..mat.."_b.obj"
minetest.register_node(":doors:door_"..mat.."_b", def)
end
for _,mat in ipairs({"", "_steel"}) do
def = table.copy(minetest.registered_nodes["doors:trapdoor"..mat])
def.groups.handy = 1
def._mcl_hardness=0.6
def.drawtype = "mesh"
def.mesh = "homedecor_3d_trapdoor"..mat..".obj"
def.tiles = {
@ -119,8 +113,6 @@ if minetest.get_modpath("doors") then
minetest.register_node(":doors:trapdoor"..mat, def)
def = table.copy(minetest.registered_nodes["doors:trapdoor"..mat.."_open"])
def.groups.handy = 1
def._mcl_hardness=0.6
def.mesh = "homedecor_3d_trapdoor"..mat.."_open.obj"
def.drawtype = "mesh"
def.tiles = {

View File

@ -2,8 +2,8 @@ local S = minetest.get_translator("homedecor_bathroom")
local sc_disallow = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil
local wood_tex = homedecor.textures.wood.apple.planks
local water_tex = homedecor.textures.water.tile
local wood_tex = homedecor.textures.default_wood
local water_tex = homedecor.textures.water
homedecor.register("bathroom_tiles_dark", {
description = S("Bathroom/kitchen tiles (dark)"),
@ -106,7 +106,7 @@ homedecor.register("towel_rod", {
walkable = false,
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3,dig_tree=2},
_sound_def = {
key = "node_sound_default",
key = "node_sound_defaults",
},
crafts = {
{
@ -274,7 +274,7 @@ homedecor.register("toilet_paper", {
walkable = false,
groups = {snappy=3,oddly_breakable_by_hand=3, dig_stone = 2},
_sound_def = {
key = "node_sound_default",
key = "node_sound_defaults",
},
crafts = {
{

View File

@ -1,16 +1,20 @@
# textdomain: homedecor_bathroom
Bathroom/kitchen tiles (dark)=Badezimmer-/Küchenkacheln (dunkel)
Bathroom/kitchen tiles (medium)=Badezimmer-/Küchenkacheln (mittel)
Bathroom/kitchen tiles (light)=Badezimmer-/Küchenkacheln (hell)
Towel rod with towel=Handtuchhalter mit Handtuch
Medicine cabinet=Medizinschrank
Toilet=Toilette
Toilet paper=Toilettenpapier
### init.lua ###
Bathroom Sink=Badezimmerwaschbecken
Bathroom sundries set=Badezimmerkrimskrams
Bathroom taps/faucet=Badezimmerwasserhahn
Bathroom taps/faucet (brass)=Badezimmerwasserhahn (Messing)
Shower Tray=Duschtasse
Shower Head=Duschbrause
Bathroom/kitchen tiles (dark)=Badezimmer-/Küchenkacheln (dunkel)
Bathroom/kitchen tiles (light)=Badezimmer-/Küchenkacheln (hell)
Bathroom/kitchen tiles (medium)=Badezimmer-/Küchenkacheln (mittel)
Bathtub, clawfoot, with brass taps=Badewanne, Krallenfuß, mit Messingwasserhähnen
Bathtub, clawfoot, with chrome taps=Badewanne, Krallenfuß, mit Chromwasserhähnen
Bathroom sundries set=Badezimmerkrimskrams
Medicine cabinet=Medizinschrank
Shower Head=Duschbrause
Shower Tray=Duschtasse
Toilet=Toilette
Toilet paper=Toilettenpapier
Towel rod with towel=Handtuchhalter mit Handtuch

View File

@ -1,16 +1,20 @@
# textdomain: homedecor_bathroom
Bathroom/kitchen tiles (dark)=Azulejo de baño/cocina (tonos oscuros)
Bathroom/kitchen tiles (medium)=Azulejo de baño/cocina (tonos medios)
Bathroom/kitchen tiles (light)=Azulejo de baño/cocina (tonos claros)
Towel rod with towel=Toallero con toalla
Medicine cabinet=Gabinete de medicinas
Toilet=Inodoro
Toilet paper=Papel higiénico
### init.lua ###
Bathroom Sink=Lavabo de baño
Bathroom sundries set=Artículos de baño
Bathroom taps/faucet=Grifo de baño
Bathroom taps/faucet (brass)=Grifo de baño (latón)
Shower Tray=Plato de ducha
Shower Head=Ducha
Bathroom/kitchen tiles (dark)=Azulejo de baño/cocina (tonos oscuros)
Bathroom/kitchen tiles (light)=Azulejo de baño/cocina (tonos claros)
Bathroom/kitchen tiles (medium)=Azulejo de baño/cocina (tonos medios)
Bathtub, clawfoot, with brass taps=
Bathtub, clawfoot, with chrome taps=
Bathroom sundries set=Artículos de baño
Medicine cabinet=Gabinete de medicinas
Shower Head=Ducha
Shower Tray=Plato de ducha
Toilet=Inodoro
Toilet paper=Papel higiénico
Towel rod with towel=Toallero con toalla

View File

@ -1,16 +1,20 @@
# textdomain: homedecor_bathroom
Bathroom/kitchen tiles (dark)=Carreaux de salle de bain ou cuisine (foncées)
Bathroom/kitchen tiles (medium)=Carreaux de salle de bain ou cuisine (moyennes)
Bathroom/kitchen tiles (light)=Carreaux de salle de bain ou cuisine (claires)
Towel rod with towel=Porte serviette et serviette
Medicine cabinet=Armoire à pharmacie
Toilet=Toilettes
Toilet paper=Papier toilette
### init.lua ###
Bathroom Sink=Évier
Bathroom sundries set=Miroir et tablette de salle de bain
Bathroom taps/faucet=Robinetterie
Bathroom taps/faucet (brass)=Robinetterie (laiton)
Shower Tray=Bac de douche
Shower Head=Pomme de douche
Bathroom/kitchen tiles (dark)=Carreaux de salle de bain ou cuisine (foncées)
Bathroom/kitchen tiles (light)=Carreaux de salle de bain ou cuisine (claires)
Bathroom/kitchen tiles (medium)=Carreaux de salle de bain ou cuisine (moyennes)
Bathtub, clawfoot, with brass taps=Baignoire sur pieds, avec robinetterie en laiton
Bathtub, clawfoot, with chrome taps=Baignoire sur pieds, avec robinetterie en chrome
Bathroom sundries set=Miroir et tablette de salle de bain
Medicine cabinet=Armoire à pharmacie
Shower Head=Pomme de douche
Shower Tray=Bac de douche
Toilet=Toilettes
Toilet paper=Papier toilette
Towel rod with towel=Porte serviette et serviette

View File

@ -1,16 +1,20 @@
# textdomain: homedecor_bathroom
Bathroom/kitchen tiles (dark)=
Bathroom/kitchen tiles (medium)=
Bathroom/kitchen tiles (light)=
Towel rod with towel=
Medicine cabinet=Armadietto sotto il lavandino
Toilet=Water
Toilet paper=Water
### init.lua ###
Bathroom Sink=
Bathroom sundries set=
Bathroom taps/faucet=
Bathroom taps/faucet (brass)=
Shower Tray=Piatto della doccia
Shower Head=Pigna della doccia
Bathroom/kitchen tiles (dark)=
Bathroom/kitchen tiles (light)=
Bathroom/kitchen tiles (medium)=
Bathtub, clawfoot, with brass taps=
Bathtub, clawfoot, with chrome taps=
Bathroom sundries set=
Medicine cabinet=Armadietto sotto il lavandino
Shower Head=Pigna della doccia
Shower Tray=Piatto della doccia
Toilet=Water
Toilet paper=Water
Towel rod with towel=

View File

@ -1,16 +1,20 @@
# textdomain: homedecor_bathroom
Bathroom/kitchen tiles (dark)=Jubin Dapur/Bilik Mandi (Gelap)
Bathroom/kitchen tiles (medium)=Jubin Dapur/Bilik Mandi (Biasa)
Bathroom/kitchen tiles (light)=Jubin Dapur/Bilik Mandi (Cerah)
Towel rod with towel=Ampaian Beserta Tuala
Medicine cabinet=Kabinet Ubat
Toilet=Tandas
Toilet paper=Tisu Tandas
### init.lua ###
Bathroom Sink=Sinki Bilik Mandi
Bathroom sundries set=Set Barangan Bilik Mandi
Bathroom taps/faucet=Kepala Paip Bilik Mandi
Bathroom taps/faucet (brass)=Kepala Paip Bilik Mandi (Loyang)
Shower Tray=Lubang Air Mandi
Shower Head=Kepala Pancuran
Bathroom/kitchen tiles (dark)=Jubin Dapur/Bilik Mandi (Gelap)
Bathroom/kitchen tiles (light)=Jubin Dapur/Bilik Mandi (Cerah)
Bathroom/kitchen tiles (medium)=Jubin Dapur/Bilik Mandi (Biasa)
Bathtub, clawfoot, with brass taps=Tab Mandi Berkaki Cakar, dengan Kepala Paip Loyang
Bathtub, clawfoot, with chrome taps=Tab Mandi Berkaki Cakar, dengan Kepala Paip Krom
Bathroom sundries set=Set Barangan Bilik Mandi
Medicine cabinet=Kabinet Ubat
Shower Head=Kepala Pancuran
Shower Tray=Lubang Air Mandi
Toilet=Tandas
Toilet paper=Tisu Tandas
Towel rod with towel=Ampaian Beserta Tuala

View File

@ -1,16 +1,20 @@
# textdomain: homedecor_bathroom
Bathroom/kitchen tiles (dark)=Azulejo de Banheiro/Cozinha (escuro)
Bathroom/kitchen tiles (medium)=Azulejo de Banheiro/Cozinha (médio)
Bathroom/kitchen tiles (light)=Azulejo de Banheiro/Cozinha (claro)
Towel rod with towel=Haste de Toalha com Toalha
Medicine cabinet=Armário de remédios
Toilet=Vaso Sanitário
Toilet paper=Papel higiênico
### init.lua ###
Bathroom Sink=Pia de Banheiro
Bathroom sundries set=Espelho de Banheiro com bancada
Bathroom taps/faucet=Torneira de Banheiro
Bathroom taps/faucet (brass)=Torneira de Banheiro (latão)
Shower Tray=Ralo do Chuveiro
Shower Head=Chuveiro
Bathroom/kitchen tiles (dark)=Azulejo de Banheiro/Cozinha (escuro)
Bathroom/kitchen tiles (light)=Azulejo de Banheiro/Cozinha (claro)
Bathroom/kitchen tiles (medium)=Azulejo de Banheiro/Cozinha (médio)
Bathtub, clawfoot, with brass taps=
Bathtub, clawfoot, with chrome taps=
Bathroom sundries set=Espelho de Banheiro com bancada
Medicine cabinet=Armário de remédios
Shower Head=Chuveiro
Shower Tray=Ralo do Chuveiro
Toilet=Vaso Sanitário
Toilet paper=Papel higiênico
Towel rod with towel=Haste de Toalha com Toalha

View File

@ -1,16 +1,20 @@
# textdomain: homedecor_bathroom
Bathroom/kitchen tiles (dark)=Azulejo de Banheiro/Cozinha (escuro)
Bathroom/kitchen tiles (medium)=Azulejo de Banheiro/Cozinha (médio)
Bathroom/kitchen tiles (light)=Azulejo de Banheiro/Cozinha (claro)
Towel rod with towel=Haste de Toalha com Toalha
Medicine cabinet=Armário de remédios
Toilet=Vaso Sanitário
Toilet paper=Papel higiênico
### init.lua ###
Bathroom Sink=Pia de Banheiro
Bathroom sundries set=Espelho de Banheiro com bancada
Bathroom taps/faucet=Torneira de Banheiro
Bathroom taps/faucet (brass)=Torneira de Banheiro (latão)
Shower Tray=Ralo do Chuveiro
Shower Head=Chuveiro
Bathroom/kitchen tiles (dark)=Azulejo de Banheiro/Cozinha (escuro)
Bathroom/kitchen tiles (light)=Azulejo de Banheiro/Cozinha (claro)
Bathroom/kitchen tiles (medium)=Azulejo de Banheiro/Cozinha (médio)
Bathtub, clawfoot, with brass taps=
Bathtub, clawfoot, with chrome taps=
Bathroom sundries set=Espelho de Banheiro com bancada
Medicine cabinet=Armário de remédios
Shower Head=Chuveiro
Shower Tray=Ralo do Chuveiro
Toilet=Vaso Sanitário
Toilet paper=Papel higiênico
Towel rod with towel=Haste de Toalha com Toalha

View File

@ -1,16 +1,20 @@
# textdomain: homedecor_bathroom
Bathroom/kitchen tiles (dark)=Плитка для ванной/кухни (тёмная)
Bathroom/kitchen tiles (medium)=Плитка для ванной/кухни (обычная)
Bathroom/kitchen tiles (light)=Плитка для ванной/кухни (светлая)
Towel rod with towel=Полотенцедержатель с полотенцем
Medicine cabinet=Медицинский кабинет
Toilet=Туалет
Toilet paper=Туалетная бумага
### init.lua ###
Bathroom Sink=Раковина для ванной комнаты
Bathroom sundries set=Набор для ванных комнат
Bathroom taps/faucet=м
Bathroom taps/faucet (brass)=Краны(смесители) для ванной комнаты (латунь)
Shower Tray=Душевой поддон
Shower Head=Душевая лейка
Bathroom/kitchen tiles (dark)=Плитка для ванной/кухни (тёмная)
Bathroom/kitchen tiles (light)=Плитка для ванной/кухни (светлая)
Bathroom/kitchen tiles (medium)=Плитка для ванной/кухни (обычная)
Bathtub, clawfoot, with brass taps=Ванна на острых ножках с латунными кранами
Bathtub, clawfoot, with chrome taps=Ванна на острых ножках с хромированными кранами
Bathroom sundries set=Набор для ванных комнат
Medicine cabinet=Медицинский кабинет
Shower Head=Душевая лейка
Shower Tray=Душевой поддон
Toilet=Туалет
Toilet paper=Туалетная бумага
Towel rod with towel=Полотенцедержатель с полотенцем

View File

@ -1,16 +1,20 @@
# textdomain: homedecor_bathroom
Bathroom/kitchen tiles (dark)=深色浴室/厨房瓷砖
Bathroom/kitchen tiles (medium)=浴室/厨房瓷砖
Bathroom/kitchen tiles (light)=浅色浴室/厨房瓷砖
Towel rod with towel=毛巾杆
Medicine cabinet=药柜
Toilet=卫生间
Toilet paper=厕纸
### init.lua ###
Bathroom Sink=浴室水槽
Bathroom sundries set=浴室杂物套装
Bathroom taps/faucet=浴室水龙头
Bathroom taps/faucet (brass)=黄铜浴室水龙头
Shower Tray=淋浴盆
Shower Head=淋浴喷头
Bathroom/kitchen tiles (dark)=深色浴室/厨房瓷砖
Bathroom/kitchen tiles (light)=浅色浴室/厨房瓷砖
Bathroom/kitchen tiles (medium)=浴室/厨房瓷砖
Bathtub, clawfoot, with brass taps=带黄铜水龙头的浴缸
Bathtub, clawfoot, with chrome taps=带镀铬水龙头的浴缸
Bathroom sundries set=浴室杂物套装
Medicine cabinet=药柜
Shower Head=淋浴喷头
Shower Tray=淋浴盆
Toilet=卫生间
Toilet paper=厕纸
Towel rod with towel=毛巾杆

View File

@ -1,16 +1,20 @@
# textdomain: homedecor_bathroom
Bathroom/kitchen tiles (dark)=
Bathroom/kitchen tiles (medium)=
Bathroom/kitchen tiles (light)=
Towel rod with towel=
Medicine cabinet=
Toilet=
Toilet paper=
### init.lua ###
Bathroom Sink=
Bathroom sundries set=
Bathroom taps/faucet=
Bathroom taps/faucet (brass)=
Shower Tray=
Shower Head=
Bathroom/kitchen tiles (dark)=
Bathroom/kitchen tiles (light)=
Bathroom/kitchen tiles (medium)=
Bathtub, clawfoot, with brass taps=
Bathtub, clawfoot, with chrome taps=
Bathroom sundries set=
Medicine cabinet=
Shower Head=
Shower Tray=
Toilet=
Toilet paper=
Towel rod with towel=

View File

@ -2,7 +2,7 @@ local S = minetest.get_translator("homedecor_bedroom")
local sc_disallow = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil
local wood_tex, wool_tex = homedecor.textures.wood.apple.planks, homedecor.textures.wool.white
local wood_tex, wool_tex = homedecor.textures.default_wood, homedecor.textures.wool_white
local bed_sbox = {
type = "wallmounted",
@ -101,7 +101,7 @@ homedecor.register("bed_extended", {
palette = "unifieddyes_palette_colorwallmounted.png",
selection_box = bed_sbox,
node_box = bed_cbox,
groups = {snappy=3, ud_param2_colorable = 1, dig_generic=2, not_in_creative_inventory=1},
groups = {snappy=3, ud_param2_colorable = 1, dig_generic=2},
_sound_def = {
key = "node_sound_wood_defaults",
},

View File

@ -1,9 +1,13 @@
# textdomain: homedecor_bedroom
### init.lua ###
Bed=Bett
Bed (king sized)=Breites Doppelbett
Nightstand with One Drawer (@1)=Nachttisch mit einer Schublade (@1)
Nightstand with Two Drawers (@1)=Nachttisch mit zwei Schubladen (@1)
One-drawer Nightstand=Nachttisch mit einer Schublade
Two-drawer Nightstand=Nachttisch mit zwei Schubladen
mahogany=Mahagoni
oak=Eiche
Nightstand with One Drawer (@1)=Nachttisch mit einer Schublade (@1)
One-drawer Nightstand=Nachttisch mit einer Schublade
Nightstand with Two Drawers (@1)=Nachttisch mit zwei Schubladen (@1)
Two-drawer Nightstand=Nachttisch mit zwei Schubladen

View File

@ -1,9 +1,13 @@
# textdomain: homedecor_bedroom
### init.lua ###
Bed=Cama
Bed (king sized)=Cama (tamaño grande)
Nightstand with One Drawer (@1)=Mesa de luz con un cajón (@1)
Nightstand with Two Drawers (@1)=Mesa de luz con dos cajones (@1)
One-drawer Nightstand=Mesa de luz con un cajón
Two-drawer Nightstand=Mesa de luz con dos cajones
mahogany=caoba
oak=roble
Nightstand with One Drawer (@1)=Mesa de luz con un cajón (@1)
One-drawer Nightstand=Mesa de luz con un cajón
Nightstand with Two Drawers (@1)=Mesa de luz con dos cajones (@1)
Two-drawer Nightstand=Mesa de luz con dos cajones

View File

@ -1,9 +1,13 @@
# textdomain: homedecor_bedroom
### init.lua ###
Bed=Lit
Bed (king sized)=Grand lit
Nightstand with One Drawer (@1)=Meuble de chevet avec un tiroir (@1)
Nightstand with Two Drawers (@1)=Meuble de chevet avec deux tiroirs (@1)
One-drawer Nightstand=Meuble de chevet avec un tiroir
Two-drawer Nightstand=Meuble de chevet avec deux tiroirs
mahogany=acajou
oak=chêne
Nightstand with One Drawer (@1)=Meuble de chevet avec un tiroir (@1)
One-drawer Nightstand=Meuble de chevet avec un tiroir
Nightstand with Two Drawers (@1)=Meuble de chevet avec deux tiroirs (@1)
Two-drawer Nightstand=Meuble de chevet avec deux tiroirs

View File

@ -1,9 +1,13 @@
# textdomain: homedecor_bedroom
### init.lua ###
Bed=rosso
Bed (king sized)=
Nightstand with One Drawer (@1)=Comodino in quercia con un cassetto
Nightstand with Two Drawers (@1)=Comodino in quercia con due cassetti
One-drawer Nightstand=Comodino a singolo cassetto
Two-drawer Nightstand=Comodino a doppio cassetto
mahogany=
oak=
Nightstand with One Drawer (@1)=Comodino in quercia con un cassetto (@1)
One-drawer Nightstand=Comodino a singolo cassetto
Nightstand with Two Drawers (@1)=Comodino in quercia con due cassetti (@1)
Two-drawer Nightstand=Comodino a doppio cassetto

View File

@ -1,9 +1,13 @@
# textdomain: homedecor_bedroom
### init.lua ###
Bed=Katil
Bed (king sized)=Katil Raja
Nightstand with One Drawer (@1)=Kabinet Katil dengan Satu Laci (@1)
Nightstand with Two Drawers (@1)=Kabinet Katil dengan Dua Laci (@1)
One-drawer Nightstand=Kabinet Katil Satu Laci
Two-drawer Nightstand=Kabinet Katil Dua Laci
mahogany=Mahogani
oak=Oak
Nightstand with One Drawer (@1)=Kabinet Katil dengan Satu Laci (@1)
One-drawer Nightstand=Kabinet Katil Satu Laci
Nightstand with Two Drawers (@1)=Kabinet Katil dengan Dua Laci (@1)
Two-drawer Nightstand=Kabinet Katil Dua Laci

View File

@ -1,9 +1,13 @@
# textdomain: homedecor_bedroom
### init.lua ###
Bed=Cama
Bed (king sized)=Cama (tamanho king)
Nightstand with One Drawer (@1)=Mesa de Cabeceira com Gaveta (@1)
Nightstand with Two Drawers (@1)=Mesa de Cabeceira com Duas Gavetas (@1)
One-drawer Nightstand=Mesinha de Uma Gaveta
Two-drawer Nightstand=Mesinha de Duas Gavetas
mahogany=mogno
oak=carvalho
Nightstand with One Drawer (@1)=Mesa de Cabeceira com Gaveta (@1)
One-drawer Nightstand=Mesinha de Uma Gaveta
Nightstand with Two Drawers (@1)=Mesa de Cabeceira com Duas Gavetas (@1)
Two-drawer Nightstand=Mesinha de Duas Gavetas

View File

@ -1,9 +1,13 @@
# textdomain: homedecor_bedroom
### init.lua ###
Bed=Cama
Bed (king sized)=Cama (tamanho king)
Nightstand with One Drawer (@1)=Mesa de Cabeceira com Gaveta (@1)
Nightstand with Two Drawers (@1)=Mesa de Cabeceira com Duas Gavetas (@1)
One-drawer Nightstand=Mesinha de Uma Gaveta
Two-drawer Nightstand=Mesinha de Duas Gavetas
mahogany=mogno
oak=carvalho
Nightstand with One Drawer (@1)=Mesa de Cabeceira com Gaveta (@1)
One-drawer Nightstand=Mesinha de Uma Gaveta
Nightstand with Two Drawers (@1)=Mesa de Cabeceira com Duas Gavetas (@1)
Two-drawer Nightstand=Mesinha de Duas Gavetas

View File

@ -1,9 +1,13 @@
# textdomain: homedecor_bedroom
### init.lua ###
Bed=Кровать
Bed (king sized)=Кровать (большая)
Nightstand with One Drawer (@1)=Тумба с одним ящиком (@1)
Nightstand with Two Drawers (@1)=Тумба с двумя ящиками (@1)
One-drawer Nightstand=Тумба с одним ящиком
Two-drawer Nightstand=Тумба с двумя ящиками
mahogany=красное дерево
oak=дуб
Nightstand with One Drawer (@1)=Тумба с одним ящиком (@1)
One-drawer Nightstand=Тумба с одним ящиком
Nightstand with Two Drawers (@1)=Тумба с двумя ящиками (@1)
Two-drawer Nightstand=Тумба с двумя ящиками

View File

@ -1,9 +1,13 @@
# textdomain: homedecor_bedroom
### init.lua ###
Bed=床
Bed (king sized)=双人床
Nightstand with One Drawer (@1)=带一个抽屉的床头柜(@1)
Nightstand with Two Drawers (@1)=带两个抽屉的床头柜(@1)
One-drawer Nightstand=单抽屉床头柜
Two-drawer Nightstand=两抽屉床头柜
mahogany=桃花心木
oak=橡木
Nightstand with One Drawer (@1)=带一个抽屉的床头柜(@1)
One-drawer Nightstand=单抽屉床头柜
Nightstand with Two Drawers (@1)=带两个抽屉的床头柜(@1)
Two-drawer Nightstand=两抽屉床头柜

View File

@ -1,9 +1,13 @@
# textdomain: homedecor_bedroom
### init.lua ###
Bed=
Bed (king sized)=
Nightstand with One Drawer (@1)=
Nightstand with Two Drawers (@1)=
One-drawer Nightstand=
Two-drawer Nightstand=
mahogany=
oak=
Nightstand with One Drawer (@1)=
One-drawer Nightstand=
Nightstand with Two Drawers (@1)=
Two-drawer Nightstand=

View File

@ -81,7 +81,7 @@ for _, c in ipairs(bookcolors) do
name = "homedecor:book_"..color,
param2 = fdir,
})
local text = itemstack:get_meta():get_string("")
local text = itemstack:get_metadata() or ""
local meta = minetest.get_meta(pos)
local data = minetest.deserialize(text) or {}
if type(data) ~= "table" then
@ -193,8 +193,8 @@ minetest.register_on_player_receive_fields(function(player, form_name, fields)
if (fields.title or "") ~= "" then
meta:set_string("infotext", fields.title)
end
minetest.log("action", ("%s has written in a book (title: \"%s\"): \"%s\" at location %s"):format(
player:get_player_name(), fields.title, fields.text, minetest.pos_to_string(pos)))
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:get_pos())))
player_current_book[player_name] = nil
return true

View File

@ -1,8 +1,13 @@
# textdomain: homedecor_books
red=rot
green=grün
blue=blau
violet=violett
grey=grau
brown=braun
### init.lua ###
@1 has written in a book (title: "@2"): "@3" at location @4=@1 hat in ein Buch geschrieben (Titel: „@2”): „@3” am Ort @4
Writable Book (@1)=Schreibbares Buch (@1)
blue=blau
brown=braun
green=grün
grey=grau
red=rot
violet=violett

View File

@ -1,8 +1,13 @@
# textdomain: homedecor_books
red=roja
green=verde
blue=azul
violet=violeta
grey=gris
brown=marrón
### init.lua ###
@1 has written in a book (title: "@2"): "@3" at location @4=@1 ha escrito en un libro (título: "@2"): "@3" en la ubicación @4
Writable Book (@1)=Libro (@1)
blue=azul
brown=marrón
green=verde
grey=gris
red=roja
violet=violeta

View File

@ -1,8 +1,13 @@
# textdomain: homedecor_books
red=rouge
green=vert
blue=bleu
violet=violet
grey=vert
brown=marron
### init.lua ###
@1 has written in a book (title: "@2"): "@3" at location @4=@1 a écrit dans un livre (titre: "@2"): "@3" à l'emplacement @4
Writable Book (@1)=Livre inscriptible (@1)
blue=bleu
brown=marron
green=vert
grey=vert
red=rouge
violet=violet

View File

@ -1,8 +1,13 @@
# textdomain: homedecor_books
red=rosso
green=verde
blue=blu
violet=viola
grey=verde scuro
brown=
### init.lua ###
@1 has written in a book (title: "@2"): "@3" at location @4=
Writable Book (@1)=Gambe in ottone del tavolo (@1)
blue=blu
brown=
green=verde
grey=verde scuro
red=rosso
violet=viola

View File

@ -1,8 +1,13 @@
# textdomain: homedecor_books
red=Merah
green=Hijau
blue=Biru
violet=Ungu
grey=Kelabu
brown=Perang
### init.lua ###
@1 has written in a book (title: "@2"): "@3" at location @4=@1 telah menulis dalam buku (tajuk: "@2"): "@3" di lokasi @4
Writable Book (@1)=Buku Boleh Ditulis (@1)
blue=Biru
brown=Perang
green=Hijau
grey=Kelabu
red=Merah
violet=Ungu

View File

@ -1,8 +1,13 @@
# textdomain: homedecor_books
red=vermelho
green=verde
blue=azul
violet=violeta
grey=cinza
brown=marrom
### init.lua ###
@1 has written in a book (title: "@2"): "@3" at location @4=@1 escreveu um livro (título: "@2"): "@3" na localização @4
Writable Book (@1)=Livro que pode ser escrito (@1)
blue=azul
brown=marrom
green=verde
grey=cinza
red=vermelho
violet=violeta

View File

@ -1,8 +1,13 @@
# textdomain: homedecor_books
red=vermelho
green=verde
blue=azul
violet=violeta
grey=cinza
brown=marrom
### init.lua ###
@1 has written in a book (title: "@2"): "@3" at location @4=@1 escreveu um livro (título: "@2"): "@3" na localização @4
Writable Book (@1)=Livro que pode ser escrito (@1)
blue=azul
brown=marrom
green=verde
grey=cinza
red=vermelho
violet=violeta

View File

@ -1,8 +1,13 @@
# textdomain: homedecor_books
red=красный
green=зелёный
blue=
violet=
grey=
brown=
### init.lua ###
@1 has written in a book (title: "@2"): "@3" at location @4=@1 написал в книге (заголовок: "@2"): "@3" в позиции @4
Writable Book (@1)=Записная книга (@1)
blue=
brown=
green=зелёный
grey=
red=красный
violet=

View File

@ -1,8 +1,13 @@
# textdomain: homedecor_books
red=红色
green=绿色
blue=蓝色
violet=紫罗兰
grey=灰色
brown=棕色的
### init.lua ###
@1 has written in a book (title: "@2"): "@3" at location @4=@我在一本书中写过(书名:\@2\\@3\,地点@4
Writable Book (@1)=可写书(@1
blue=蓝色
brown=棕色的
green=绿色
grey=灰色
red=红色
violet=紫罗兰

View File

@ -1,8 +1,13 @@
# textdomain: homedecor_books
red=
green=
blue=
violet=
grey=
brown=
### init.lua ###
@1 has written in a book (title: "@2"): "@3" at location @4=
Writable Book (@1)=
blue=
brown=
green=
grey=
red=
violet=

View File

@ -7,7 +7,7 @@ homedecor.register("air_conditioner", {
mesh = "homedecor_ac.obj",
tiles = {
"homedecor_ac.png",
homedecor.textures.glass.pane
homedecor.textures.glass
},
groups = { snappy = 3, dig_stone = 3 },
use_texture_alpha = "clip",
@ -36,13 +36,11 @@ homedecor.register("air_conditioner", {
-- fans
minetest.register_entity(":homedecor:mesh_desk_fan", {
initial_properties = {
collisionbox = homedecor.nodebox.null,
visual = "mesh",
mesh = "homedecor_desk_fan.b3d",
textures = {"homedecor_desk_fan_uv.png"},
visual_size = {x=10, y=10},
}
collisionbox = homedecor.nodebox.null,
visual = "mesh",
mesh = "homedecor_desk_fan.b3d",
textures = {"homedecor_desk_fan_uv.png"},
visual_size = {x=10, y=10},
})
local add_mesh_desk_fan_entity = function(pos)

View File

@ -1,7 +1,11 @@
# textdomain: homedecor_climate_control
### init.lua ###
Air Conditioner=Klimaanlage
Desk Fan=Schreibtischventilator
Ceiling Fan=Deckenventilator
Space heater=Heizgerät
Radiator heater=Heizkörper
Desk Fan=Schreibtischventilator
Fan blades=Ventilatorblätter
Radiator heater=Heizkörper
Space heater=Heizgerät

View File

@ -1,7 +1,11 @@
# textdomain: homedecor_climate_control
### init.lua ###
Air Conditioner=Acondicionador de aire
Desk Fan=Ventilador de escritorio
Ceiling Fan=Ventilador de techo
Space heater=Calentador de espacios
Radiator heater=Radiador
Desk Fan=Ventilador de escritorio
Fan blades=Aspas de ventilador
Radiator heater=Radiador
Space heater=Calentador de espacios

View File

@ -1,7 +1,11 @@
# textdomain: homedecor_climate_control
### init.lua ###
Air Conditioner=Climatiseur
Desk Fan=Ventilateur de bureau
Ceiling Fan=Ventilateur (plafonnier)
Space heater=Chaufferette
Radiator heater=Radiateur
Desk Fan=Ventilateur de bureau
Fan blades=Pales de ventilateur
Radiator heater=Radiateur
Space heater=Chaufferette

View File

@ -1,7 +1,11 @@
# textdomain: homedecor_climate_control
### init.lua ###
Air Conditioner=Pendingin Hawa
Desk Fan=Kipas Meja
Ceiling Fan=Kipas Siling
Space heater=Pemanas Ruang
Radiator heater=Pemanas Radiator
Desk Fan=Kipas Meja
Fan blades=Bilah Kipas
Radiator heater=Pemanas Radiator
Space heater=Pemanas Ruang

View File

@ -1,7 +1,11 @@
# textdomain: homedecor_climate_control
### init.lua ###
Air Conditioner=Ar condicionado
Desk Fan=Ventilador de Escrivaninha
Ceiling Fan=Ventilador de Teto
Space heater=Aquecedor de ambiente
Radiator heater=Aquecedor de radiador
Desk Fan=Ventilador de Escrivaninha
Fan blades=Pás de ventilador
Radiator heater=Aquecedor de radiador
Space heater=Aquecedor de ambiente

View File

@ -1,7 +1,11 @@
# textdomain: homedecor_climate_control
### init.lua ###
Air Conditioner=Ar condicionado
Desk Fan=Ventilador de Escrivaninha
Ceiling Fan=Ventilador de Teto
Space heater=Aquecedor de ambiente
Radiator heater=Aquecedor de radiador
Desk Fan=Ventilador de Escrivaninha
Fan blades=Pás de ventilador
Radiator heater=Aquecedor de radiador
Space heater=Aquecedor de ambiente

View File

@ -1,7 +1,11 @@
# textdomain: homedecor_climate_control
### init.lua ###
Air Conditioner=Кондиционер
Desk Fan=Настольный вентилятор
Ceiling Fan=Потолочный вентилятор
Space heater=Обогреватель
Radiator heater=Масленый обогреватель
Desk Fan=Настольный вентилятор
Fan blades=Лопасти вентилятора
Radiator heater=Масленый обогреватель
Space heater=Обогреватель

View File

@ -1,7 +1,11 @@
# textdomain: homedecor_climate_control
### init.lua ###
Air Conditioner=空调
Desk Fan=台扇
Ceiling Fan=吊扇
Space heater=暖气机
Radiator heater=散热器加热器
Desk Fan=台扇
Fan blades=风扇叶片
Radiator heater=散热器加热器
Space heater=暖气机

View File

@ -1,7 +1,11 @@
# textdomain: homedecor_climate_control
### init.lua ###
Air Conditioner=
Desk Fan=
Ceiling Fan=
Space heater=
Radiator heater=
Desk Fan=
Fan blades=
Radiator heater=
Space heater=

View File

@ -1,6 +1,12 @@
local S = minetest.get_translator("homedecor_clocks")
local wood = homedecor.textures.wood.apple.planks
local wood
if minetest.get_modpath("default") then
wood = "default_wood.png"
else
wood = "[combine:16x16^[noalpha^[colorize:#563d2d"
end
local plastic_craft = {
output = "homedecor:analog_clock_plastic 2",
@ -129,7 +135,7 @@ homedecor.register("grandfather_clock", {
description = S("Grandfather Clock"),
mesh = "homedecor_grandfather_clock.obj",
tiles = {
homedecor.textures.glass.pane,
homedecor.textures.glass,
"homedecor_grandfather_clock_face.png",
homedecor.lux_wood,
"homedecor_grandfather_clock_face_edge.png",

View File

@ -1,6 +1,10 @@
# textdomain: homedecor_clocks
### init.lua ###
Alarm clock=Wecker
Digital clock=Digitaluhr
Grandfather Clock=Standuhr
Plastic analog clock=Plastikanaloguhr
Wooden analog clock=Hölzerne Analoguhr
Digital clock=Digitaluhr
Alarm clock=Wecker
Grandfather Clock=Standuhr

View File

@ -1,6 +1,10 @@
# textdomain: homedecor_clocks
### init.lua ###
Alarm clock=Reloj de alarma
Digital clock=Reloj digital
Grandfather Clock=Reloj de péndulo
Plastic analog clock=Reloj análogo de plástico
Wooden analog clock=Reloj análogo de madera
Digital clock=Reloj digital
Alarm clock=Reloj de alarma
Grandfather Clock=Reloj de péndulo

View File

@ -1,6 +1,10 @@
# textdomain: homedecor_clocks
### init.lua ###
Alarm clock=Réveil-matin
Digital clock=Horloge numérique
Grandfather Clock=Horloge comtoise
Plastic analog clock=Horloge analogique en plastique
Wooden analog clock=Horloge analogique en bois
Digital clock=Horloge numérique
Alarm clock=Réveil-matin
Grandfather Clock=Horloge comtoise

View File

@ -1,6 +1,10 @@
# textdomain: homedecor_clocks
### init.lua ###
Alarm clock=Jam Loceng
Digital clock=Jam Digital
Grandfather Clock=Jam Besar Berdiri
Plastic analog clock=Jam Analog Plastik
Wooden analog clock=Jam Analog Kayu
Digital clock=Jam Digital
Alarm clock=Jam Loceng
Grandfather Clock=Jam Besar Berdiri

View File

@ -1,6 +1,10 @@
# textdomain: homedecor_clocks
### init.lua ###
Alarm clock=Despertador
Digital clock=Relógio digital
Grandfather Clock=Relógio Antigo
Plastic analog clock=Relógio analógico de plástico
Wooden analog clock=Relógio analógico de madeira
Digital clock=Relógio digital
Alarm clock=Despertador
Grandfather Clock=Relógio Antigo

View File

@ -1,6 +1,10 @@
# textdomain: homedecor_clocks
### init.lua ###
Alarm clock=Despertador
Digital clock=Relógio digital
Grandfather Clock=Relógio Antigo
Plastic analog clock=Relógio analógico de plástico
Wooden analog clock=Relógio analógico de madeira
Digital clock=Relógio digital
Alarm clock=Despertador
Grandfather Clock=Relógio Antigo

View File

@ -1,6 +1,10 @@
# textdomain: homedecor_clocks
### init.lua ###
Alarm clock=Будильник
Digital clock=Цифровые часы
Grandfather Clock=Дедушкины часы
Plastic analog clock=Пластиковые стрелочные часы
Wooden analog clock=Деревянные стрелочные часы
Digital clock=Цифровые часы
Alarm clock=Будильник
Grandfather Clock=Дедушкины часы

View File

@ -1,6 +1,10 @@
# textdomain: homedecor_clocks
### init.lua ###
Alarm clock=闹钟
Digital clock=数字时钟
Grandfather Clock=祖父钟
Plastic analog clock=塑料时钟
Wooden analog clock=木钟
Digital clock=数字时钟
Alarm clock=闹钟
Grandfather Clock=祖父钟

View File

@ -1,6 +1,10 @@
# textdomain: homedecor_clocks
### init.lua ###
Alarm clock=
Digital clock=
Grandfather Clock=
Plastic analog clock=
Wooden analog clock=
Digital clock=
Alarm clock=
Grandfather Clock=

View File

@ -1,2 +1,6 @@
# textdomain: homedecor_cobweb
### init.lua ###
Cobweb=Spinnennetz

View File

@ -1,2 +1,6 @@
# textdomain: homedecor_cobweb
### init.lua ###
Cobweb=Telaraña

View File

@ -1,2 +1,6 @@
# textdomain: homedecor_cobweb
### init.lua ###
Cobweb=Toile d'araignée

View File

@ -1,2 +1,6 @@
# textdomain: homedecor_cobweb
### init.lua ###
Cobweb=Sarang Labah-Labah

View File

@ -1,2 +1,6 @@
# textdomain: homedecor_cobweb
### init.lua ###
Cobweb=Teia de Aranha

View File

@ -1,2 +1,6 @@
# textdomain: homedecor_cobweb
### init.lua ###
Cobweb=Teia de Aranha

View File

@ -1,2 +1,6 @@
# textdomain: homedecor_cobweb
### init.lua ###
Cobweb=Паутина

View File

@ -1,2 +1,6 @@
# textdomain: homedecor_cobweb
### init.lua ###
Cobweb=蛛网

View File

@ -1,2 +1,6 @@
# textdomain: homedecor_cobweb
### init.lua ###
Cobweb=

View File

@ -91,6 +91,16 @@ function homedecor.register_furnace(name, furnacedef)
local description = furnacedef.description or S("Furnace")
local furnace_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", make_formspec(furnacedef, 0))
meta:set_string("infotext", description)
local inv = meta:get_inventory()
inv:set_size("fuel", 1)
inv:set_size("src", 1)
inv:set_size("dst", furnacedef.output_slots)
end
local furnace_allow_put = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
@ -129,191 +139,6 @@ function homedecor.register_furnace(name, furnacedef)
end
end
local n_active = name.."_active"
local nname, name_active = "homedecor:"..name, "homedecor:"..n_active
local function furnace_node_timer(pos, elapsed)
--
-- Initialize metadata
--
local meta = minetest.get_meta(pos)
local fuel_time = meta:get_float("fuel_time") or 0
local src_time = meta:get_float("src_time") or 0
local fuel_totaltime = meta:get_float("fuel_totaltime") or 0
local inv = meta:get_inventory()
local srclist, fuellist
local dst_full = false
local timer_elapsed = meta:get_int("timer_elapsed") or 0
meta:set_int("timer_elapsed", timer_elapsed + 1)
local cookable, cooked
local fuel
local update = true
while elapsed > 0 and update do
update = false
srclist = inv:get_list("src")
fuellist = inv:get_list("fuel")
--
-- Cooking
--
-- Check if we have cookable content
local aftercooked
cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
cookable = cooked.time ~= 0
local el = math.min(elapsed, fuel_totaltime - fuel_time)
if cookable then -- fuel lasts long enough, adjust el to cooking duration
el = math.min(el, cooked.time - src_time)
end
-- Check if we have enough fuel to burn
if fuel_time < fuel_totaltime then
-- The furnace is currently active and has enough fuel
fuel_time = fuel_time + el
-- If there is a cookable item then check if it is ready yet
if cookable then
src_time = src_time + el
if src_time >= cooked.time then
-- Place result in dst list if possible
if inv:room_for_item("dst", cooked.item) then
inv:add_item("dst", cooked.item)
inv:set_stack("src", 1, aftercooked.items[1])
src_time = src_time - cooked.time
update = true
else
dst_full = true
end
else
-- Item could not be cooked: probably missing fuel
update = true
end
end
else
-- Furnace ran out of fuel
if cookable then
-- We need to get new fuel
local afterfuel
fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist})
if fuel.time == 0 then
-- No valid fuel in fuel list
fuel_totaltime = 0
src_time = 0
else
-- prevent blocking of fuel inventory (for automatization mods)
local is_fuel = minetest.get_craft_result({method = "fuel", width = 1, items = {afterfuel.items[1]:to_string()}})
if is_fuel.time == 0 then
table.insert(fuel.replacements, afterfuel.items[1])
inv:set_stack("fuel", 1, "")
else
-- Take fuel from fuel list
inv:set_stack("fuel", 1, afterfuel.items[1])
end
-- Put replacements in dst list or drop them on the furnace.
local replacements = fuel.replacements
if replacements[1] then
local leftover = inv:add_item("dst", replacements[1])
if not leftover:is_empty() then
local above = vector.new(pos.x, pos.y + 1, pos.z)
local drop_pos = minetest.find_node_near(above, 1, {"air"}) or above
minetest.item_drop(replacements[1], nil, drop_pos)
end
end
update = true
fuel_totaltime = fuel.time + (fuel_totaltime - fuel_time)
end
else
-- We don't need to get new fuel since there is no cookable item
fuel_totaltime = 0
src_time = 0
end
fuel_time = 0
end
elapsed = elapsed - el
end
if fuel and fuel_totaltime > fuel.time then
fuel_totaltime = fuel.time
end
if srclist and srclist[1]:is_empty() then
src_time = 0
end
--
-- Update formspec, infotext and node
--
local formspec
local infotext
local percent = math.floor(fuel_time / fuel_totaltime * 100)
local result = false
local node = minetest.get_node(pos)
local locked = node.name:find("_locked$") and "_locked" or ""
local desc = minetest.registered_nodes[nname..locked].description
if fuel_totaltime ~= 0 then
formspec = make_formspec(furnacedef, percent)
swap_node(pos, name_active .. locked)
-- make sure timer restarts automatically
result = true
else
formspec = make_formspec(furnacedef, 0)
infotext = S("@1 (out of fuel)", desc)
swap_node(pos, nname .. locked)
-- stop timer on the inactive furnace
minetest.get_node_timer(pos):stop()
meta:set_int("timer_elapsed", 0)
end
if not cookable and fuellist and not fuellist[1]:is_empty() then
infotext = S("@1 (empty)", desc)
end
if dst_full then
infotext = S("@1 (output bins are full)", desc)
result = false
formspec = make_formspec(furnacedef, 0)
swap_node(pos, nname .. locked)
-- stop timer on the inactive furnace
minetest.get_node_timer(pos):stop()
meta:set_int("timer_elapsed", 0)
fuel_totaltime, fuel_time, src_time = 0, 0, 0
end
if infotext == nil then
infotext = S("@1 (active: @2%)", desc, percent)
end
--
-- Set meta values
--
meta:set_float("fuel_totaltime", fuel_totaltime)
meta:set_float("fuel_time", fuel_time)
meta:set_float("src_time", src_time)
meta:set_string("formspec", formspec)
meta:set_string("infotext", infotext)
return result
end
local furnace_construct = function(pos)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
inv:set_size("fuel", 1)
inv:set_size("src", 1)
inv:set_size("dst", furnacedef.output_slots)
furnace_node_timer(pos, 0)
end
local def = {
description = description,
tiles = make_tiles(furnacedef.tiles, furnacedef.tile_format, false),
@ -327,19 +152,7 @@ function homedecor.register_furnace(name, furnacedef)
allow_metadata_inventory_put = furnace_allow_put,
allow_metadata_inventory_move = furnace_allow_move,
inventory = { lockable = true },
is_furnace = true,
on_timer = furnace_node_timer,
on_metadata_inventory_move = function(pos)
minetest.get_node_timer(pos):start(1.0)
end,
on_metadata_inventory_put = function(pos)
-- start timer function, it will sort out whether furnace can burn or not.
minetest.get_node_timer(pos):start(1.0)
end,
on_metadata_inventory_take = function(pos)
-- check whether the furnace is empty or not.
minetest.get_node_timer(pos):start(1.0)
end
is_furnace = true
}
local def_active = {
@ -357,19 +170,7 @@ function homedecor.register_furnace(name, furnacedef)
allow_metadata_inventory_put = furnace_allow_put,
allow_metadata_inventory_move = furnace_allow_move,
inventory = { lockable = true },
is_furnace = true,
on_timer = furnace_node_timer,
on_metadata_inventory_move = function(pos)
minetest.get_node_timer(pos):start(1.0)
end,
on_metadata_inventory_put = function(pos)
-- start timer function, it will sort out whether furnace can burn or not.
minetest.get_node_timer(pos):start(1.0)
end,
on_metadata_inventory_take = function(pos)
-- check whether the furnace is empty or not.
minetest.get_node_timer(pos):start(1.0)
end
is_furnace = true
}
if furnacedef.extra_nodedef_fields then
@ -379,6 +180,113 @@ function homedecor.register_furnace(name, furnacedef)
end
end
local n_active = name.."_active"
homedecor.register(name, def)
homedecor.register(n_active, def_active)
local nname, name_active = "homedecor:"..name, "homedecor:"..n_active
minetest.register_abm({
nodenames = {nname, name_active, nname.."_locked", name_active.."_locked"},
label = "furnaces",
interval = 1.0,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local meta = minetest.get_meta(pos)
for i, pname in ipairs({
"fuel_totaltime",
"fuel_time",
"src_totaltime",
"src_time"
}) do
if meta:get_string(pname) == "" then
meta:set_float(pname, 0.0)
end
end
local inv = meta:get_inventory()
local srclist = inv:get_list("src")
local cooked = nil
local aftercooked
if srclist then
cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
end
local was_active = false
if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then
was_active = true
meta:set_float("fuel_time", meta:get_float("fuel_time") + 1)
meta:set_float("src_time", meta:get_float("src_time") + furnacedef.cook_speed)
if cooked and cooked.item and meta:get_float("src_time") >= cooked.time then
-- check if there's room for output in "dst" list
if inv:room_for_item("dst",cooked.item) then
-- Put result in "dst" list
inv:add_item("dst", cooked.item)
-- take stuff from "src" list
inv:set_stack("src", 1, aftercooked.items[1])
end
meta:set_string("src_time", 0)
end
end
-- XXX: Quick patch, make it better in the future.
local locked = node.name:find("_locked$") and "_locked" or ""
local desc = minetest.registered_nodes[nname..locked].description
if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then
local percent = math.floor(meta:get_float("fuel_time") /
meta:get_float("fuel_totaltime") * 100)
meta:set_string("infotext", S("@1 (active: @2%)", desc, percent))
swap_node(pos,name_active..locked)
meta:set_string("formspec", make_formspec(furnacedef, percent))
return
end
local fuel = nil
local afterfuel
cooked = nil
local fuellist = inv:get_list("fuel")
srclist = inv:get_list("src")
if srclist then
cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
end
if fuellist then
fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist})
end
if (not fuel) or (fuel.time <= 0) then
meta:set_string("infotext", S("@1 (out of fuel)", desc))
swap_node(pos, nname..locked)
meta:set_string("formspec", make_formspec(furnacedef, 0))
return
end
if cooked.item:is_empty() then
if was_active then
meta:set_string("infotext", S("@1 (empty)", desc))
swap_node(pos, nname..locked)
meta:set_string("formspec", make_formspec(furnacedef, 0))
end
return
end
if not inv:room_for_item("dst", cooked.item) then
meta:set_string("infotext", S("@1 (output bins are full)", desc))
swap_node(pos, nname..locked)
meta:set_string("formspec", make_formspec(furnacedef, 0))
return
end
meta:set_string("fuel_totaltime", fuel.time)
meta:set_string("fuel_time", 0)
inv:set_stack("fuel", 1, afterfuel.items[1])
end,
})
end

View File

@ -54,13 +54,15 @@ homedecor.color_dark_grey = 0xff606060
homedecor.color_med_grey = 0xffa0a0a0
-- load different handler subsystems
dofile(modpath.."/xcompat.lua")
dofile(modpath.."/textures.lua")
dofile(modpath.."/materials.lua")
dofile(modpath.."/nodeboxes.lua")
dofile(modpath.."/expansion.lua")
dofile(modpath.."/furnaces.lua")
dofile(modpath.."/inventory.lua")
dofile(modpath.."/registration.lua")
dofile(modpath.."/water_particles.lua")
dofile(modpath.."/sit.lua")
dofile(modpath.."/crafts.lua")
if minetest.settings:get_bool("log_mods") then

View File

@ -12,7 +12,6 @@ local default_can_dig = function(pos,player)
return meta:get_inventory():is_empty("main")
end
local default_can_interact_with_node = xcompat.functions.can_interact_with_node
local default_inventory_formspecs = {
["4"]="size[8,6]"..
@ -134,7 +133,7 @@ function homedecor.handle_inventory(name, def, original_def)
local allow_move = def.allow_metadata_inventory_move
def.allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
if not default_can_interact_with_node(player, pos) then
if not default.can_interact_with_node(player, pos) then
minetest.log("action", player:get_player_name().." tried to access a "..name.." belonging to "
..minetest.get_meta(pos):get_string("owner").." at "..minetest.pos_to_string(pos))
return 0
@ -145,7 +144,7 @@ function homedecor.handle_inventory(name, def, original_def)
local allow_put = def.allow_metadata_inventory_put
def.allow_metadata_inventory_put = function(pos, listname, index, stack, player)
if not default_can_interact_with_node(player, pos) then
if not default.can_interact_with_node(player, pos) then
minetest.log("action", player:get_player_name().." tried to access a "..name.." belonging to"
..minetest.get_meta(pos):get_string("owner").." at "..minetest.pos_to_string(pos))
return 0
@ -156,7 +155,7 @@ function homedecor.handle_inventory(name, def, original_def)
local allow_take = def.allow_metadata_inventory_take
def.allow_metadata_inventory_take = function(pos, listname, index, stack, player)
if not default_can_interact_with_node(player, pos) then
if not default.can_interact_with_node(player, pos) then
minetest.log("action", player:get_player_name().." tried to access a "..name.." belonging to"
..minetest.get_meta(pos):get_string("owner").." at ".. minetest.pos_to_string(pos))
return 0
@ -167,7 +166,7 @@ function homedecor.handle_inventory(name, def, original_def)
local can_dig = def.can_dig or default_can_dig
def.can_dig = function(pos, player)
return default_can_interact_with_node(player, pos) and (can_dig and can_dig(pos, player) == true)
return default.can_interact_with_node(player, pos) and (can_dig and can_dig(pos, player) == true)
end
def.on_key_use = function(pos, player)
@ -211,7 +210,7 @@ function homedecor.handle_inventory(name, def, original_def)
if lockable then
local locked_def = table.copy(original_def)
locked_def.description = S("@1 (Locked)", def.description or name)
locked_def.crafts = nil
local locked_inventory = locked_def.inventory
locked_inventory.locked = true
locked_inventory.lockable = nil -- avoid loops of locked locked stuff

View File

@ -1,15 +1,28 @@
# textdomain: homedecor_common
Terracotta Roof Tile=Terrakottadachziegel
### crafts.lua ###
Small Wooden Drawer=Kleine Holzschublade
Terracotta Roof Tile=Terrakottadachziegel
### expansion.lua ###
Not enough room - the space for the headboard is occupied!=Nicht genügeng Platz Der Platz für das Kopfende ist belegt!
Someone already owns the spot where the headboard goes.=Jemanden gehört schon der Platz, wo das Kopfende hingehen würde.
Not enough room - the upper space is occupied!=Nicht genügend Platz der obere Teil ist belegt!
Someone already owns that spot.=Jemanden gehört diese Stelle schon.
Furnace=Ofen
Someone already owns the spot where the headboard goes.=Jemanden gehört schon der Platz, wo das Kopfende hingehen würde.
### furnaces.lua ###
@1 (active)=@1 (aktiv)
@1 (active: @2%)=@1 (aktiv: @2%)
@1 (empty)=@1 (leer)
@1 (out of fuel)=@1 (kein Brennmaterial vorhanden)
@1 (output bins are full)=@1 (Ausgabe ist voll)
@1 (active: @2%)=@1 (aktiv: @2%)
@1 (active)=@1 (aktiv)
@1 (owned by @2)=@1 (gehört @2)
Furnace=Ofen
### inventory.lua ###
@1 (Locked)=@1 (abgeschlossen)
@1 (owned by @2)=@1 (gehört @2)

View File

@ -1,15 +1,28 @@
# textdomain: homedecor_common
Terracotta Roof Tile=Tejado de terracota
### crafts.lua ###
Small Wooden Drawer=Cajón de madera pequeño
Terracotta Roof Tile=Tejado de terracota
### expansion.lua ###
Not enough room - the space for the headboard is occupied!=No hay suficiente espacio - ¡El espacio para la cabecera está ocupado!
Someone already owns the spot where the headboard goes.=Alguien ya es dueño del lugar donde va la cabecera.
Not enough room - the upper space is occupied!=No hay suficiente espacio - ¡El espacio de encima está ocupado!
Someone already owns that spot.=Alguien ya es dueño de ese lugar.
Furnace=Horno
Someone already owns the spot where the headboard goes.=Alguien ya es dueño del lugar donde va la cabecera.
### furnaces.lua ###
@1 (active)=@1 (activo)
@1 (active: @2%)=@1 (activo: @2%)
@1 (empty)=@1 (vacía)
@1 (out of fuel)=@1 (sin combustible)
@1 (output bins are full)=@1 (ranuras de salida llenas)
@1 (active: @2%)=@1 (activo: @2%)
@1 (active)=@1 (activo)
@1 (owned by @2)=@1 (propiedad de @2)
Furnace=Horno
### inventory.lua ###
@1 (Locked)=@1 (Cerrado)
@1 (owned by @2)=@1 (propiedad de @2)

View File

@ -1,15 +1,28 @@
# textdomain: homedecor_common
Terracotta Roof Tile=Tuile en terre cuite
### crafts.lua ###
Small Wooden Drawer=Petit tiroir en bois
Terracotta Roof Tile=Tuile en terre cuite
### expansion.lua ###
Not enough room - the space for the headboard is occupied!=Pas assez de place - l'espace pour la tête de lit est occupé !
Someone already owns the spot where the headboard goes.=Quelqu'un possède déjà l'endroit où doit aller la tête de lit.
Not enough room - the upper space is occupied!=Pas assez de place - l'espace en haut est occupé !
Someone already owns that spot.=Quelqu'un est déjà propriétaire de cette zone.
Furnace=Fourneau
Someone already owns the spot where the headboard goes.=Quelqu'un possède déjà l'endroit où doit aller la tête de lit.
### furnaces.lua ###
@1 (active)=@1 (actif)
@1 (active: @2%)=@1 (actif : @2%)
@1 (empty)=@1 (vide)
@1 (out of fuel)=@1 (pas de combustible)
@1 (output bins are full)=@1 (les réceptacles de sortie sont pleins)
@1 (active: @2%)=@1 (actif : @2%)
@1 (active)=@1 (actif)
@1 (owned by @2)=@1 (propriété de @2)
Furnace=Fourneau
### inventory.lua ###
@1 (Locked)=@1 (verrouillé)
@1 (owned by @2)=@1 (propriété de @2)

View File

@ -1,15 +1,28 @@
# textdomain: homedecor_common
Terracotta Roof Tile=Tegole di terracotta
### crafts.lua ###
Small Wooden Drawer=Bauletto in legno
Terracotta Roof Tile=Tegole di terracotta
### expansion.lua ###
Not enough room - the space for the headboard is occupied!=
Someone already owns the spot where the headboard goes.=
Not enough room - the upper space is occupied!=
Someone already owns that spot.=
Furnace=
@1 (empty)=
@1 (out of fuel)=@1 (Senza combustibile)
@1 (output bins are full)=@1 (i contenitori sono pieni)
@1 (active: @2%)=
Someone already owns that spot.=Spiacente, quel punto è di proprietà di %s.
Someone already owns the spot where the headboard goes.=
### furnaces.lua ###
@1 (active)=
@1 (owned by @2)=@1 (di proprietà di @2)
@1 (Locked)=@1 (Con lucchetto)
@1 (active: @2%)=
@1 (empty)=
@1 (out of fuel)=Senza combustibile
@1 (output bins are full)=i contenitori sono pieni
Furnace=
### inventory.lua ###
@1 (Locked)=%s (Con lucchetto)
@1 (owned by @2)=%s (di proprietà di %s)

View File

@ -1,15 +1,28 @@
# textdomain: homedecor_common
Terracotta Roof Tile=Genting Bumbung Terracotta
### crafts.lua ###
Small Wooden Drawer=Laci Kayu Kecil
Terracotta Roof Tile=Genting Bumbung Terracotta
### expansion.lua ###
Not enough room - the space for the headboard is occupied!=Tidak cukup ruang - ada barang di kawasan untuk letak kepala katil!
Someone already owns the spot where the headboard goes.=Tempat untuk letak kepala katil itu kawasan kepunyaan orang lain.
Not enough room - the upper space is occupied!=Tidak cukup ruang - ada barang di kawasan atas!
Someone already owns that spot.=Kawasan itu kepunyaan orang lain.
Furnace=Relau
Someone already owns the spot where the headboard goes.=Tempat untuk letak kepala katil itu kawasan kepunyaan orang lain.
### furnaces.lua ###
@1 (active)=@1 (aktif)
@1 (active: @2%)=@1 (aktif: @2)
@1 (empty)=@1 (kosong)
@1 (out of fuel)=@1 (kehabisan bahan api)
@1 (output bins are full)=@1 (dulang keluar penuh)
@1 (active: @2%)=@1 (aktif: @2)
@1 (active)=@1 (aktif)
@1 (owned by @2)=@1 (hak milik @2)
Furnace=Relau
### inventory.lua ###
@1 (Locked)=@1 (Berkunci)
@1 (owned by @2)=@1 (hak milik @2)

View File

@ -1,15 +1,28 @@
# textdomain: homedecor_common
Terracotta Roof Tile=Telha de Terracota
### crafts.lua ###
Small Wooden Drawer=Gaveta Pequena de Madeira
Terracotta Roof Tile=Telha de Terracota
### expansion.lua ###
Not enough room - the space for the headboard is occupied!=Sem espaço - o espaço para a cabeceira está ocupado!
Someone already owns the spot where the headboard goes.=Alguém já é proprietário do local onde a cabeceira vai.
Not enough room - the upper space is occupied!=Sem espaço - o espaço acima está ocupado!
Someone already owns that spot.=Alguém já é proprietário deste lugar.
Furnace=Forno
Someone already owns the spot where the headboard goes.=Alguém já é proprietário do local onde a cabeceira vai.
### furnaces.lua ###
@1 (active)=@1 (ativo)
@1 (active: @2%)=@1 (ativo: @2%)
@1 (empty)=@1 (vazio)
@1 (out of fuel)=@1 (sem combustível)
@1 (output bins are full)=@1 (saída de itens está lotada)
@1 (active: @2%)=@1 (ativo: @2%)
@1 (active)=@1 (ativo)
@1 (owned by @2)=@1 (pertence a @2)
Furnace=Forno
### inventory.lua ###
@1 (Locked)=@1 (trancado)
@1 (owned by @2)=@1 (pertence a @2)

View File

@ -1,15 +1,28 @@
# textdomain: homedecor_common
Terracotta Roof Tile=Telha de Terracota
### crafts.lua ###
Small Wooden Drawer=Gaveta Pequena de Madeira
Terracotta Roof Tile=Telha de Terracota
### expansion.lua ###
Not enough room - the space for the headboard is occupied!=Sem espaço - o espaço para a cabeceira está ocupado!
Someone already owns the spot where the headboard goes.=Alguém já é proprietário do local onde a cabeceira vai.
Not enough room - the upper space is occupied!=Sem espaço - o espaço acima está ocupado!
Someone already owns that spot.=Alguém já é proprietário deste lugar.
Furnace=Forno
Someone already owns the spot where the headboard goes.=Alguém já é proprietário do local onde a cabeceira vai.
### furnaces.lua ###
@1 (active)=@1 (ativo)
@1 (active: @2%)=@1 (ativo: @2%)
@1 (empty)=@1 (vazio)
@1 (out of fuel)=@1 (sem combustível)
@1 (output bins are full)=@1 (saída de itens está lotada)
@1 (active: @2%)=@1 (ativo: @2%)
@1 (active)=@1 (ativo)
@1 (owned by @2)=@1 (pertence a @2)
Furnace=Forno
### inventory.lua ###
@1 (Locked)=@1 (trancado)
@1 (owned by @2)=@1 (pertence a @2)

View File

@ -1,15 +1,28 @@
# textdomain: homedecor_common
Terracotta Roof Tile=Терракотовая крыша
### crafts.lua ###
Small Wooden Drawer=Маленький деревянный выдвижной ящик
Terracotta Roof Tile=Терракотовая крыша
### expansion.lua ###
Not enough room - the space for the headboard is occupied!=Не хватает места - пространство для изголовья занято!
Someone already owns the spot where the headboard goes.=Точка, куда ставится изголовье, уже принадлежит кому-то.
Not enough room - the upper space is occupied!=Не хватает места - верхнее пространство занято!
Someone already owns that spot.=Та точка уже принадлежит кому-то.
Furnace=Печь
Someone already owns the spot where the headboard goes.=Точка, куда ставится изголовье, уже принадлежит кому-то.
### furnaces.lua ###
@1 (active)=@1 (активно)
@1 (active: @2%)=@1 (активно: @2%)
@1 (empty)=@1 (пусто)
@1 (out of fuel)=@1 (не хватает топлива)
@1 (output bins are full)=@1 (выходные ячейки заполнены)
@1 (active: @2%)=@1 (активно: @2%)
@1 (active)=@1 (активно)
@1 (owned by @2)=@1 (принадлежит @2)
Furnace=Печь
### inventory.lua ###
@1 (Locked)=@1 (Закрыто)
@1 (owned by @2)=@1 (принадлежит @2)

View File

@ -1,15 +1,28 @@
# textdomain: homedecor_common
Terracotta Roof Tile=陶土屋顶瓦
### crafts.lua ###
Small Wooden Drawer=小的木抽屉
Terracotta Roof Tile=陶土屋顶瓦
### expansion.lua ###
Not enough room - the space for the headboard is occupied!=没有足够的空间-床头板的空间被占用了!
Someone already owns the spot where the headboard goes.=有东西已经占用床头板的位置了。
Not enough room - the upper space is occupied!=没有足够的空间-上面的空间被占用了!
Someone already owns that spot.=已经有东西占用那个地方了。
Furnace=熔炉
Someone already owns the spot where the headboard goes.=有东西已经占用床头板的位置了。
### furnaces.lua ###
@1 (active)=@1活动
@1 (active: @2%)=@1活动@2%
@1 (empty)=@1
@1 (out of fuel)=@1燃油耗尽
@1 (output bins are full)=@1输出箱已满
@1 (active: @2%)=@1活动@2%
@1 (active)=@1活动
@1 (owned by @2)=@1归@2所有
Furnace=熔炉
### inventory.lua ###
@1 (Locked)=@1锁定
@1 (owned by @2)=@1归@2所有

View File

@ -1,15 +1,28 @@
# textdomain: homedecor_common
Terracotta Roof Tile=
### crafts.lua ###
Small Wooden Drawer=
Terracotta Roof Tile=
### expansion.lua ###
Not enough room - the space for the headboard is occupied!=
Someone already owns the spot where the headboard goes.=
Not enough room - the upper space is occupied!=
Someone already owns that spot.=
Furnace=
Someone already owns the spot where the headboard goes.=
### furnaces.lua ###
@1 (active)=
@1 (active: @2%)=
@1 (empty)=
@1 (out of fuel)=
@1 (output bins are full)=
@1 (active: @2%)=
@1 (active)=
@1 (owned by @2)=
Furnace=
### inventory.lua ###
@1 (Locked)=
@1 (owned by @2)=

View File

@ -0,0 +1,212 @@
homedecor.materials = {
dirt = "default:dirt",
sand = "default:sand",
gravel = "default:gravel",
copper_ingot = "default:copper_ingot",
steel_ingot = "default:steel_ingot",
gold_ingot = "default:gold_ingot",
tin_ingot = "default:tin_ingot",
mese_crystal_fragment = "default:mese_crystal_fragment",
torch = "default:torch",
diamond = "default:diamond",
clay_lump = "default:clay_lump",
water_bucket = "bucket:bucket_water",
empty_bucket = "bucket:bucket_empty",
dye_dark_grey = "dye:dark_grey",
dye_black = "dye:black",
dye_white = "dye:white",
dye_green = "dye:green",
dye_red = "dye:red",
dye_yellow = "dye:yellow",
dye_brown = "dye:brown",
dye_blue = "dye:blue",
dye_violet = "dye:violet",
dye_grey = "dye:grey",
dye_dark_green = "dye:dark_green",
dye_orange = "dye:orange",
dye_pink = "dye:pink",
silicon = "mesecons_materials:silicon",
string = "farming:string",
paper = "default:paper",
book = "default:book",
iron_lump = "default:iron_lump",
wool_grey = "wool:grey",
wool_green = "wool:green",
wool_dark_green = "wool:dark_green",
wool_brown = "wool:brown",
wool_black = "wool:black",
wool_white = "wool:white",
slab_stone = "stairs:slab_stone",
slab_wood = "stairs:slab_wood",
glass_block = "default:glass",
glass_bottle = "vessels:glass_bottle",
coal_lump = "default:coal_lump",
stone = "default:stone",
cobble = "default:cobble",
brick = "default:brick",
}
if minetest.get_modpath("moreores") then
homedecor.materials.silver_ingot = "moreores:silver_ingot"
end
if minetest.get_modpath("mcl_core") then
homedecor.materials = {
dirt = "mcl_core:dirt",
sand = "mcl_core:sand",
gravel = "mcl_core:gravel",
copper_ingot = "mcl_copper:copper_ingot",
steel_ingot = "mcl_core:iron_ingot",
gold_ingot = "mcl_core:gold_ingot",
tin_ingot = "mcl_core:iron_ingot",
mese_crystal_fragment = "mcl_core:iron_ingot",
torch = "mcl_torches:torch",
diamond = "mcl_core:diamond",
clay_lump = "default:clay_lump",
water_bucket = "mcl_buckets:bucket:bucket_water",
empty_bucket = "mcl_buckets:bucket_empty",
dye_dark_grey = "mcl_dyes:dark_grey",
dye_black = "mcl_dyes:black",
dye_white = "mcl_dyes:white",
dye_green = "mcl_dyes:green",
dye_red = "mcl_dyes:red",
dye_yellow = "mcl_dyes:yellow",
dye_brown = "mcl_dyes:brown",
dye_blue = "mcl_dyes:blue",
dye_violet = "mcl_dyes:violet",
dye_grey = "mcl_dyes:grey",
dye_dark_green = "mcl_dyes:dark_green",
dye_orange = "mcl_dyes:orange",
dye_pink = "mcl_dyes:pink",
silicon = "mcl_core:iron_ingot",
string = "mcl_mobitems:string",
paper = "mcl_core:paper",
book = "mcl_core:book",
iron_lump = "mcl_core:stone_with_iron",
wool_grey = "mcl_wool:grey",
wool_green = "mcl_wool:green",
wool_dark_green = "mcl_wool:dark_green",
wool_brown = "mcl_wool:brown",
wool_black = "mcl_wool:black",
wool_white = "mcl_wool:white",
slab_stone = "mcl_stairs:slab_stone",
slab_wood = "mcl_stairs:slab_wood",
glass_block = "mcl_core:glass",
glass_bottle = "mcl_core:glass_bottle",
coal_lump = "mcl_core:coal",
stone = "mcl_core:stone",
cobble = "mcl_core:cobble",
brick = "mcl_core:brick",
}
elseif minetest.get_modpath("fl_ores") and minetest.get_modpath("fl_stone") then
homedecor.materials = {
dirt = "fl_topsoil:dirt",
sand = "fl_stone:sand",
gravel = "fl_topsoil:gravel",
steel_ingot = "fl_ores:iron_ingot",
gold_ingot = "fl_ores:gold_ingot",
mese_crystal_fragment = "fl_ores:iron_ingot",
torch = "fl_light_sources:torch",
diamond = "fl_ores:diamond",
clay_lump = "fl_bricks:clay_lump",
water_bucket = "fl_bucket:bucket_water",
empty_bucket = "fl_bucket:bucket",
dye_dark_grey = "fl_dyes:dark_grey_dye",
dye_black = "fl_dyes:black_dye",
dye_white = "fl_dyes:white_dye",
dye_green = "fl_dyes:green_dye",
dye_red = "fl_dyes:red_dye",
dye_yellow = "fl_dyes:yellow_dye",
dye_brown = "fl_dyes:brown_dye",
dye_blue = "fl_dyes:blue_dye",
dye_violet = "fl_dyes:violet_dye",
dye_grey = "fl_dyes:grey_dye",
dye_dark_green = "fl_dyes:dark_green_dye",
dye_orange = "fl_dyes:orange_dye",
dye_pink = "fl_dyes:pink_dye",
copper_ingot = "fl_ores:copper_ingot",
tin_ingot = "fl_ores:tin_ingot",
silver_ingot = "fl_ores:iron_ingot",
silicon = "mesecons_materials:silicon",
string = "fl_plantlife:oxeye_daisy",
paper = "basic_materials:plastic_sheet",
iron_lump = "fl_ores:iron_ore",
wool_grey = "",
wool_green = "",
wool_dark_green = "",
wool_brown = "",
wool_black = "",
wool_white = "",
slab_stone = "fl_stone:stone_slab",
slab_wood = "fl_trees:apple_plank_slab",
glass_block = "fl_glass:framed_glass",
glass_bottle = "fl_bottles:bottle",
coal_lump = "fl_ores:coal_ore",
stone = "fl_stone:stone",
cobble = "fl_stone:stone_rubble",
brick = "",
}
elseif minetest.get_modpath("hades_core") then
homedecor.materials = {
sand = "hades_core:fertile_sand",
gravel = "hades_core:gravel",
copper_ingot = "hades_core:copper_ingot",
steel_ingot = "hades_core:steel_ingot",
gold_ingot = "hades_core:gold_ingot",
tin_ingot = "hades_core:tin_ingot",
silver_ingot = "--unknown--",
mese_crystal_fragment = "hades_core:mese_crystal_fragment",
torch = "hades_torches:torch",
diamond = "hades_core:diamond",
clay_lump = "hades_core:clay_lump",
clay_brick = "hades_core:clay_brick",
--[[
Since hades doesnt have buckets or water for the user,
using dirt from near water to pull the water out
]]
water_bucket = "hades_core:dirt",
empty_bucket = "hades_core:fertile_sand",
dye_dark_grey = "dye:dark_grey",
dye_black = "dye:black",
dye_white = "dye:white",
dye_green = "dye:green",
dye_red = "dye:red",
dye_yellow = "dye:yellow",
dye_brown = "dye:brown",
dye_blue = "dye:blue",
dye_violet = "dye:violet",
dye_grey = "dye:grey",
dye_dark_green = "dye:dark_green",
dye_orange = "dye:orange",
dye_pink = "dye:pink",
silicon = "hades_materials:silicon",
string = "hades_farming:string",
paper = "hades_core:paper",
book = "hades_core:book",
iron_lump = "hades_core:iron_lump",
wool_grey = "wool:grey",
wool_green = "wool:green",
wool_dark_green = "wool:dark_green",
wool_brown = "wool:brown",
wool_black = "wool:black",
wool_white = "wool:white",
slab_stone = "stairs:slab_stone",
slab_wood = "stairs:slab_wood",
glass_block = "hades_core:glass",
glass_bottle = "vessels:glass_bottle",
obsidian_glass = "hades_core:obsidian_glass",
coal_lump = "hades_core:coal_lump",
stone = "hades_core:stone",
cobble = "hades_core:cobble",
brick = "hades_core:brick"
}
if minetest.get_modpath("hades_bucket") then
homedecor.materials["water_bucket"] = "hades_bucket:bucket_water"
homedecor.materials["empty_bucket"] = "hades_bucket:bucket_empty"
end
if minetest.get_modpath("hades_extraores") then
homedecor.materials["silver_ingot"] = "hades_extraores:silver_ingot"
end
end

Some files were not shown because too many files have changed in this diff Show More