Compare commits

...

53 Commits

Author SHA1 Message Date
wsor4035 fa3f7f816b
trash unused function: homedecor.sit (#71) 2024-04-28 14:48:03 -04:00
Niklp d400e421ce
Replace `homedecor_blanktile.png` w/ engine provided `blank.png` (#69) 2024-04-02 18:08:49 -04:00
wsor4035 792c23a7fe
handle interact with node check in non mtg games with a fallback (#68) 2024-04-02 06:54:10 -04:00
wsor4035 0d5cab9455
replace hardcoded game agnostic texture support and homedecor.textures to xcompat (#66)
* switch existing to xcompat textures

* replace the rest of the hard coded texture conversions to use homedecor.textures
2024-03-03 15:52:58 -05:00
Luke aka SwissalpS 080551e647
Is ground content (#64)
see https://github.com/pandorabox-io/pandorabox.io/issues/836
2024-02-29 18:49:24 -05:00
wsor4035 280924c02b
add in xcompat for game agnostic handling dry (#63) 2024-02-25 12:04:20 -05:00
luk3yx 52f7c54702 Fix particlespawner removal when digging fancy fire 2023-10-27 10:30:10 +13:00
Niklp 951f77491c
Fix use of deprecated get_look_yaw() (#62) 2023-09-24 21:19:47 +10:00
Niklp 46c71131c5
Fix wrong nodenames caused by last commit (#61) 2023-08-22 18:11:31 -04:00
Niklp 80b4f242e0
Make (almost) all items translatable (#60)
* Make all items translatable

* add more
2023-08-21 18:47:26 -04:00
Niklp ecd67f0eab
Update translations (#59)
* Update translations

* Fix usage of translation api in log message

* Fix %s usage in itemframes.it.tr
2023-08-20 17:54:38 -04:00
Niklp 60d63cda6f
Fix translation errors reported by i18ncheck.py (#58) 2023-08-15 18:28:39 -04:00
Niklp 89703525e6
replace ABMs w/ nodetimers (#56)
* replace ABMs w/ nodetimers

* ux fixes

* disable oven properly
2023-06-10 21:56:54 -04:00
Mihin Dissanayake 2c08c1f97b
Fix lockable items having the same craft as the normal version (#55) 2023-06-01 21:59:14 -04:00
taylorskalyo 6bbaa7491d
fix burnable wood large table top (#54) 2023-05-07 13:48:41 -04:00
taylorskalyo b4297d68a0
Fix uncraftable items (#53)
* fix large square table top recipes (#41)

* fix cabinet with drawers recipes (#41)
2023-05-07 13:33:30 -04:00
Niklp 77f2b0e05b
Fix ugly looking fakegrass (#51) 2023-02-21 21:30:11 +11:00
wsor4035 9c7eb2e502
fix https://github.com/mt-mods/homedecor_modpack/issues/50/ - swap l to 1 in translations 2023-02-20 19:54:33 -05:00
unknown 55bbd478d9 fix all or edge cases for https://github.com/mt-mods/homedecor_modpack/issues/49 not caught by the last commit 2022-11-30 17:48:28 -05:00
unknown 0384943a0a fix https://github.com/mt-mods/homedecor_modpack/issues/49 2022-11-26 21:00:02 -05:00
superfloh247 33710f710b
restart smoke particle effects on reload (#48)
* restart smoke particle effects on reload

* restore table in fake_fire:reload_particles

* Update fake_fire/init.lua

Co-authored-by: OgelGames <olliverdc28@gmail.com>

Co-authored-by: OgelGames <olliverdc28@gmail.com>
2022-11-19 08:34:36 -05:00
unknown 8893d66dc6 fix https://github.com/mt-mods/dreambuilder_game/issues/20 - quote on quote improper dor rotation which turned out to be badly applied model work around 2022-10-20 21:59:11 -04:00
unknown a598fa3067 add not in creative inventory group to bed extended since it is made by placing a bed over top of another 2022-09-02 12:04:03 -04:00
Niklp 6fa1bbeb1c
fix wrong collision box for homedecor skylights (#45) 2022-08-19 14:15:47 -04:00
unknown 0403f47f86 fix https://github.com/mt-mods/homedecor_modpack/issues/44 2022-08-11 23:37:26 -04:00
wsor4035 0f57b2268a
fix some seats (#43) 2022-08-11 21:31:20 -04:00
unknown 806c8c5e78 last craft 2022-08-03 14:25:51 +02:00
unknown 37bc0ed58d add more crafts 2022-08-03 14:25:51 +02:00
unknown 0a605bdb96 fix some crafts 2022-08-03 14:25:51 +02:00
fluxionary 97d4c65230 remove weird, redundant loop
the removed loop was doing the same thing as the `stairsplus:register_alias_all("moreblocks", "tar", "building_blocks", "Tar")` line below, but causing a crash when using the (not yet pulled) new stairsplus API https://github.com/minetest-mods/moreblocks/pull/191
2022-06-24 18:16:49 +02:00
Niklp acf17f2ba4
Replace deprecated functions (#37) 2022-06-18 18:44:02 +10:00
unknown 5ffdc26673 fix https://github.com/mt-mods/homedecor_modpack/issues/34 2022-05-16 22:41:02 -04:00
OgelGames 70381161fd fix recipes broken by 546cd711
fixes #35
2022-05-14 21:49:02 +10:00
wsor4035 fe1b9a1ef1
remove obsolete and broken shell script 2022-05-03 15:22:48 -04:00
wsor4035 546cd7110f
make homedecor game agnostic (#28)
* make materials.lua with hades, minetest game, farlands items

* make textures file for central handling

* make mods game agnostic

* take out the trash

* handle multiple seats in sofas

* add github luacheck workflow and various luacheck fixes

* add fluxionary scope creep

* fix devtest breaking right to a name policy

Co-authored-by: wsor4035 <24964441+wsor4035@users.noreply.github.com>
Co-authored-by: SFENCE <sfence.software@gmail.com>
2022-05-03 15:21:14 -04:00
wsor4035 3ba59dc2d5
fix almost all warning spam (#26) 2022-03-29 07:44:05 +02:00
bell07 2f0e52f978
add skinsdb hand support for wardrobe skins (#24)
* add skinsdb hand support for wardrobe skins

* add compatibility to previous skinsdb version
2022-03-06 12:20:18 -05:00
wsor4035 694bfe5fe7
namespace plasmascreen and inbox (#22) 2022-02-14 17:54:32 -05:00
wsor4035 769e14fd11
refactor doors code (#21) 2022-02-11 15:44:45 -05:00
wsor4035 16bcc35ba2
remove legacy files 2022-02-10 20:26:41 -05:00
wsor4035 0c2271fa46
fixes warning spam (#20)
* fix fake fire warnings

* fix hd 3d extras warnings

* fix hd climate control warnings

* fix hd clocks warnings

* fix hd cobweb warnings

* fix hd doors/gates warnings

* fix hd exterior warnings

* fix hd fences warnings

* fix hd gastronomy warnings

* fix hd kitchen missing dependency

* fix hd office warnings

* fix hd roofing warnings

* fix hd table warnings

* fix hd trash cans warnings

* fix hd wardrobe warnings

* remove legacy hack
2022-02-07 08:18:17 -05:00
nixnoxus d68e90f017
add `hopper` support (#18) 2022-02-03 18:40:38 -05:00
wsor4035 a8fceb249d
Merge pull request #16 from mt-mods/stairs
drop stairs api support and fix use_texture_alpha for stairs
2021-11-28 00:22:31 -05:00
unknown 21ae9f8c17 drop stairs api support and fix use_texture_alpha for stairs 2021-11-27 23:43:59 -05:00
unknown 63ad77e242 make beds sleepable https://github.com/mt-mods/homedecor_modpack/issues/13 2021-11-27 20:51:47 -05:00
unknown 32a32fa003 fix health expliot https://github.com/mt-mods/homedecor_modpack/issues/14 2021-11-27 20:43:25 -05:00
unknown d9c42344ab fix removing item with inv contents https://github.com/mt-mods/homedecor_modpack/issues/3 2021-11-27 20:32:13 -05:00
unknown f6f6f3a3c3 fix depreciated setyaw call https://github.com/mt-mods/homedecor_modpack/issues/7 2021-11-27 19:56:36 -05:00
Vanessa Dannenberg f1dc68ab21 Merge branch 'master' into 'master'
Fix broken kitchen cabinet recipes

Closes #39

See merge request VanessaE/homedecor_modpack!22
2021-05-18 06:58:39 +00:00
OgelGames 240c735225 fix broken kitchen cabinet recipes 2021-05-18 16:47:44 +10:00
Vanessa Dannenberg b6c64c6314 fix broken LBM reference for locked kitchen cabinets 2021-04-15 06:47:47 -04:00
Vanessa Dannenberg 790c03213d fix not-locked drawers not showing up in creative inv
(well not showing up in Unified Inventory anyway :-P )
2021-03-30 21:18:45 -04:00
Vanessa Dannenberg 81e0d4ea7e fix faucets/taps not working on kitchen sinks anymore 2021-03-30 20:55:34 -04:00
474 changed files with 5273 additions and 7433 deletions

11
.github/workflows/luacheck.yml vendored Normal file
View File

@ -0,0 +1,11 @@
name: luacheck
on: [push, pull_request]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: Roang-zero1/factorio-mod-luacheck@master
with:
luacheckrc_url: ""

43
.luacheckrc Normal file
View File

@ -0,0 +1,43 @@
unused_args = false
globals = {
"homedecor",
"homedecor_lighting",
"homedecor_windows_and_treatments",
"homedecor_roofing",
"homedecor_misc",
"homedecor_exterior",
"homedecor_electrical",
"homedecor_cobweb",
"lavalamp",
"lrfurn",
"signs_lib",
"homedecor_doors_and_gates",
-- mod-deps
"armor"
}
read_globals = {
"minetest", "core",
"vector", "ItemStack",
"dump",
-- Stdlib
string = {fields = {"split", "trim"}},
table = {fields = {"copy", "getn"}},
-- mod-deps
"default",
"unifieddyes",
"player_api",
"screwdriver",
"hopper",
"mesecon",
"skins",
"stairsplus",
"creative",
"doors",
"i3",
"xcompat",
}

8
README
View File

@ -1,8 +0,0 @@
This is what I consider to be a fairly feature-filled home decor modpack.
See the forum thread at
https://forum.minetest.net/viewtopic.php?f=11&t=2041 for details about
this modpack.
Dependencies: unifieddyes and a Minetest engine build newer than 2017-01-23.
Recommends: signs_lib, windmill, moreblocks, unified_inventory.

28
README.md Normal file
View File

@ -0,0 +1,28 @@
# Minetest Homedecor Modpack
[![ContentDB](https://content.minetest.net/packages/VanessaE/homedecor_modpack/shields/downloads/)](https://content.minetest.net/packages/VanessaE/homedecor_modpack/)
A fairly feature-filled home decor modpack that is game agnostic.
## About
first class support for:
* Minetest Game
* Farlands Reloaded
* Hades
* Mineclone2, Mineclone5
## Links
* [Github](https://github.com/mt-mods/homedecor_modpack)
* [Contentdb](https://content.minetest.net/packages/VanessaE/homedecor_modpack/)
* [Forums](https://forum.minetest.net/viewtopic.php?f=11&t=2041)
# Setup
required:
* [Unifieddyes](https://github.com/mt-mods/unifieddyes)
* [Basic Materials](https://github.com/mt-mods/basic_materials)
* [xcompat](https://github.com/mt-mods/xcompat)

View File

@ -1,19 +0,0 @@
{
"name": "homedecor_modpack",
"description": "This mod adds a whole bunch of new items to Minetest suitable for decorating inside and outside a home.",
"keywords": [
"building",
"cosmetic",
"homedecor modpack",
"homedecor_modpack"
],
"homepage": "http://daconcepts.com/vanessa/hobbies/minetest/homedecor-crafting-guide/homedecor-craft-guide.html",
"project": "https://github.com/minetest-mods/homedecor_modpack",
"forum": "http://forum.minetest.net/viewtopic.php?f=11&t=2041",
"screenshots": [
"http://daconcepts.com/vanessa/hobbies/minetest/screenshots/homedecor1.png"
],
"authors": [
"VanessaE"
]
}

View File

@ -1,21 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"stairsplus",
"default",
"stairs",
}
globals = {
}

View File

@ -8,16 +8,9 @@ if minetest.get_modpath("moreblocks") or minetest.get_modpath("stairs") then
end
if minetest.get_modpath("moreblocks") then
minetest.register_alias_force("moreblocks:tar", "building_blocks:Tar")
stairsplus:register_alias_all("building_blocks", "tar", "building_blocks", "Tar")
stairsplus:register_alias_all("building_blocks", "marble", "building_blocks", "Marble")
for _, i in ipairs(stairsplus.shapes_list) do
local class = i[1]
local cut = i[2]
minetest.unregister_item("moreblocks:"..class.."tar"..cut)
minetest.register_alias("moreblocks:"..class.."tar"..cut, "building_blocks:"..class.."tar"..cut)
end
minetest.unregister_item("moreblocks:tar")
minetest.register_alias("moreblocks:tar", "building_blocks:Tar")
stairsplus:register_alias_all("moreblocks", "tar", "building_blocks", "Tar")
if minetest.get_modpath("gloopblocks") then
@ -40,8 +33,11 @@ if not minetest.get_modpath("technic") then
description = S("Granite"),
tiles = { "technic_granite.png" },
is_ground_content = true,
groups = {cracky=1},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=1, dig_stone=2, pickaxey=5},
_mcl_hardness=1.6,
_sound_def = {
key = "node_sound_stone_defaults",
},
})
minetest.register_craft({
output = "technic:granite 9",

View File

@ -1,48 +1,20 @@
# textdomain: building_blocks
### alias.lua ###
Granite=Granit
### node_stairs.lua ###
Adobe=Adobe
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
Wood Framed Glass=Holzrahmenglas
Adobe=Adobe
Fake Grass=Falsches Gras
Hardwood=Hartholz
Roof block=Dachblock
Tar=Teer
Tar Slab=Teerstufe
Tar Stair=Teertreppe
Marble=Marmor
Brobble Spread=Ziesterboden
Gravel Spread=Kiesboden
Tarmac Spread=Asphaltboden
Terrycloth towel=Frottiertuch
Wood Framed Glass=Holzrahmenglas
Wood Framed Glass Slab=Holzrahmenglasstufe
Wood Framed Glass Stair=Holzrahmenglastreppe
### others.lua ###
Chess board tiling=Schachbrettkacheln
Fireplace=Kamin
Small bundle of sticks=Kleines Bündel Stöcke
Tar Knife=Teermesser
Tar base=Teerbase
Tar Knife=Teermesser

View File

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

View File

@ -1,48 +1,20 @@
# textdomain: building_blocks
### alias.lua ###
Granite=Granit
### node_stairs.lua ###
Adobe=Pisé
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
Wood Framed Glass=Verre encadré de bois
Adobe=Pisé
Fake Grass=Herbe synthétique
Hardwood=Bois dur (feuillu)
Roof block=Bloc de toit
Tar=Goudron
Tar Slab=Dalle en goudron
Tar Stair=Marche en goudron
Marble=Marbre
Brobble Spread=Tapis rouge
Gravel Spread=Tapis de gravier
Tarmac Spread=Tapis de goudron
Terrycloth towel=Serviette éponge
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 ###
Chess board tiling=Pavage en échiquier
Fireplace=Cheminée
Small bundle of sticks=Petit fagot de brindilles
Tar Knife=Couteau à goudron
Tar base=Pâte de goudron
Tar Knife=Couteau à goudron

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,3 +1,3 @@
name = building_blocks
depends = default
optional_depends = moreblocks, gloopblocks, stairs
depends = homedecor_common
optional_depends = moreblocks, gloopblocks, stairs, default

View File

@ -1,136 +1,130 @@
local S = minetest.get_translator("building_blocks")
local stairs_groups_names = {"cracky","choppy","flammable","crumbly","snappy"}
local function building_blocks_stairs(nodename, def)
minetest.register_node(nodename, def)
if minetest.get_modpath("moreblocks") or minetest.get_modpath("stairs") then
local mod, name = nodename:match("(.*):(.*)")
minetest.register_alias(mod .. ":slab_" .. name, "stairs:slab_" .. name)
minetest.register_alias(mod .. ":stair_" .. name, "stairs:stair_" .. name)
local stairs_groups = {}
for _, groupname in ipairs(stairs_groups_names) do
stairs_groups[groupname] = def.groups[groupname]
end
if minetest.get_modpath("moreblocks") then
stairsplus:register_all(
mod,
name,
nodename,
{
description = def.description,
tiles = def.tiles,
groups = stairs_groups,
sounds = def.sounds,
}
)
else
stairs.register_stair_and_slab(name,nodename,
stairs_groups,
def.tiles,
def.stair_desc,
def.slab_desc,
def.sounds
--FIXME: Missing descriptions for Inner and Outer stairs
-- See https://github.com/minetest/minetest_game/pull/2584
)
end
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("(.*):(.*)")
stairsplus:register_all(mod, name, nodename, def)
minetest.register_alias("stairs:slab_" .. name, mod .. ":slab_" .. name)
minetest.register_alias("stairs:stair_" .. name, mod .. ":stair_" .. name)
minetest.register_alias("stairs:stair_inner_" .. name, mod .. ":stair_" .. name .. "_inner")
minetest.register_alias("stairs:stair_outer_" .. name, mod .. ":stair_" .. name .. "_outer")
end
end
building_blocks_stairs("building_blocks:grate", {
drawtype = "glasslike",
description = S("Grate"),
stair_desc = S("Grate Stair"),
slab = S("Grate Slab"),
tiles = {"building_blocks_grate.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
groups = {cracky=1},
sounds = default.node_sound_metal_defaults(),
is_ground_content = false,
use_texture_alpha = "clip",
groups = {cracky=1, dig_generic=3},
_sound_def = {
key = "node_sound_metal_defaults",
},
})
building_blocks_stairs("building_blocks:smoothglass", {
drawtype = "glasslike",
description = S("Streak Free Glass"),
stair_desc = S("Streak Free Glass Stair"),
slab_desc = S("Streak Free Glass Slab"),
tiles = {"building_blocks_sglass.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
is_ground_content = false,
use_texture_alpha = "clip",
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
_sound_def = {
key = "node_sound_glass_defaults",
},
})
building_blocks_stairs("building_blocks:woodglass", {
drawtype = "glasslike",
description = S("Wood Framed Glass"),
stair_desc = S("Wood Framed Glass Stair"),
slab_desc = S("Wood Framed Glass Slab"),
tiles = {"building_blocks_wglass.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
is_ground_content = false,
use_texture_alpha = "clip",
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
_sound_def = {
key = "node_sound_glass_defaults",
},
})
building_blocks_stairs("building_blocks:Adobe", {
tiles = {"building_blocks_Adobe.png"},
description = S("Adobe"),
stair_desc = S("Adobe Stair"),
slab_desc = S("Adobe Slab"),
is_ground_content = true,
groups = {crumbly=3},
sounds = default.node_sound_stone_defaults(),
is_ground_content = false,
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
}
building_blocks_stairs("building_blocks:fakegrass", {
tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
tiles = grasstex,
description = S("Fake Grass"),
stair_desc = S("Fake Grass Stair"),
slab_desc = S("Fake Grass Slab"),
is_ground_content = true,
groups = {crumbly=3},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_grass_footstep", gain=0.4},
}),
is_ground_content = false,
groups = {crumbly=3, dig_sand=3},
_sound_def = {
key = "node_sound_dirt_defaults",
},
})
building_blocks_stairs("building_blocks:hardwood", {
tiles = {"building_blocks_hardwood.png"},
is_ground_content = true,
is_ground_content = false,
description = S("Hardwood"),
stair_desc = S("Hardwood Stair"),
slab_desc = S("Hardwood Slab"),
groups = {choppy=1,flammable=1},
sounds = default.node_sound_wood_defaults(),
groups = {choppy=1,flammable=1, dig_tree=1},
_sound_def = {
key = "node_sound_wood_defaults",
},
})
building_blocks_stairs("building_blocks:Roofing", {
tiles = {"building_blocks_Roofing.png"},
is_ground_content = true,
is_ground_content = false,
description = S("Roof block"),
stair_desc = S("Roof block Stair"),
slab_desc = S("Roof block Slab"),
groups = {snappy=3},
sounds = default.node_sound_stone_defaults(),
groups = {snappy=3, dig_generic=4},
_sound_def = {
key = "node_sound_stone_defaults",
},
})
building_blocks_stairs("building_blocks:Tar", {
description = S("Tar"),
stair_desc = S("Tar Stair"),
slab_desc = S("Tar Slab"),
tiles = {"building_blocks_tar.png"},
is_ground_content = true,
groups = {crumbly=1, tar_block = 1},
sounds = default.node_sound_stone_defaults(),
is_ground_content = false,
groups = {crumbly=1, tar_block = 1, dig_generic=4},
_sound_def = {
key = "node_sound_stone_defaults",
},
})
building_blocks_stairs("building_blocks:Marble", {
description = S("Marble"),
stair_desc = S("Marble Stair"),
slab_desc = S("Marble Slab"),
tiles = {"building_blocks_marble.png"},
is_ground_content = true,
groups = {cracky=3, marble = 1},
sounds = default.node_sound_stone_defaults(),
is_ground_content = false,
groups = {cracky=3, marble = 1, dig_stone=2},
_sound_def = {
key = "node_sound_stone_defaults",
},
})
minetest.register_node("building_blocks:brobble_spread", {
@ -144,34 +138,36 @@ minetest.register_node("building_blocks:brobble_spread", {
walkable = false,
selection_box = {
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},
-- 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},
},
sunlight_propagates = true,
is_ground_content = true,
groups = {crumbly=3},
is_ground_content = false,
groups = {crumbly=3, dig_generic=4, handy=1},
_mcl_hardness=0.6
})
if not minetest.get_modpath("moreblocks") or not minetest.get_modpath("gloopblocks") then
local graveltex = homedecor.textures.gravel
minetest.register_node("building_blocks:gravel_spread", {
drawtype = "raillike",
description = S("Gravel Spread"),
tiles = {"default_gravel.png"},
tiles = {graveltex},
inventory_image = "building_blocks_gravel_spread_inv.png",
paramtype = "light",
walkable = false,
selection_box = {
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},
-- 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},
},
sunlight_propagates = true,
is_ground_content = true,
groups = {crumbly=2},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.5},
dug = {name="default_gravel_footstep", gain=1.0},
}),
is_ground_content = false,
groups = {crumbly=2, dig_generic=4, handy=1},
_mcl_hardness=0.6,
_sound_def = {
key = "node_sound_dirt_defaults",
},
})
end
@ -184,13 +180,16 @@ minetest.register_node("building_blocks:Tarmac_spread", {
walkable = false,
selection_box = {
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},
-- 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},
},
sunlight_propagates = true,
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_dirt_defaults(),
is_ground_content = false,
groups = {cracky=3, dig_generic=4, pickaxey=5},
_mcl_hardness=1.6,
_sound_def = {
key = "node_sound_dirt_defaults",
},
})
minetest.register_node("building_blocks:terrycloth_towel", {
drawtype = "raillike",
@ -201,12 +200,13 @@ minetest.register_node("building_blocks:terrycloth_towel", {
walkable = false,
selection_box = {
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},
-- 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},
},
sunlight_propagates = true,
is_ground_content = true,
groups = {crumbly=3},
is_ground_content = false,
groups = {crumbly=3, dig_generic=4, handy=1},
_mcl_hardness=0.6
})
minetest.register_node("building_blocks:BWtile", {
@ -228,8 +228,9 @@ 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 = true,
groups = {crumbly=3},
is_ground_content = false,
groups = {crumbly=3, dig_generic=4, handy=1},
_mcl_hardness=0.6
})
minetest.register_node("building_blocks:Fireplace", {
@ -242,9 +243,12 @@ minetest.register_node("building_blocks:Fireplace", {
},
paramtype = "light",
paramtype2 = "facedir",
light_source = default.LIGHT_MAX,
light_source = minetest.LIGHT_MAX,
sunlight_propagates = true,
is_ground_content = true,
groups = {cracky=2},
sounds = default.node_sound_stone_defaults(),
is_ground_content = false,
groups = {cracky=2, dig_generic=4, pickaxey=5},
_mcl_hardness=1.6,
_sound_def = {
key = "node_sound_stone_defaults",
},
})

View File

@ -1,3 +1,5 @@
local materials = homedecor.materials
if minetest.get_modpath("moreblocks") then
minetest.register_craft({
output = 'building_blocks:sticks 2',
@ -20,15 +22,15 @@ end
minetest.register_craft({
output = 'building_blocks:Adobe 3',
recipe = {
{"default:sand"},
{"default:clay"},
{materials.sand},
{materials.clay_lump},
{"group:stick"},
}
})
minetest.register_craft({
output = 'building_blocks:brobble_spread 4',
recipe = {
{"default:brick", "default:cobble", "default:brick"},
{materials.brick, materials.cobble, materials.brick},
}
})
minetest.register_craft({
@ -42,20 +44,20 @@ minetest.register_craft({
output = 'building_blocks:fakegrass 2',
recipe = {
{'group:leaves'},
{"default:dirt"},
{materials.dirt},
}
})
minetest.register_craft({
output = 'building_blocks:Fireplace 1',
recipe = {
{"default:steel_ingot", "building_blocks:sticks", "default:steel_ingot"},
{materials.steel_ingot, "building_blocks:sticks", materials.steel_ingot},
}
})
minetest.register_craft({
output = 'building_blocks:grate 1',
recipe = {
{"default:steel_ingot", "default:steel_ingot"},
{"default:glass", "default:glass"},
{materials.steel_ingot, materials.steel_ingot},
{materials.glass_block, materials.glass_block},
}
})
@ -63,25 +65,27 @@ if not minetest.get_modpath("moreblocks") or not minetest.get_modpath("gloopbloc
minetest.register_craft({
output = 'building_blocks:gravel_spread 4',
recipe = {
{"default:gravel", "default:gravel", "default:gravel"},
{materials.gravel, materials.gravel, materials.gravel},
}
})
end
minetest.register_craft({
output = 'building_blocks:hardwood 2',
recipe = {
{"default:wood", "default:junglewood"},
{"default:junglewood", "default:wood"},
}
})
minetest.register_craft({
output = 'building_blocks:hardwood 2',
recipe = {
{"default:junglewood", "default:wood"},
{"default:wood", "default:junglewood"},
}
})
if minetest.get_modpath("default") then
minetest.register_craft({
output = 'building_blocks:hardwood 2',
recipe = {
{"default:wood", "default:junglewood"},
{"default:junglewood", "default:wood"},
}
})
minetest.register_craft({
output = 'building_blocks:hardwood 2',
recipe = {
{"default:junglewood", "default:wood"},
{"default:wood", "default:junglewood"},
}
})
end
minetest.register_craft({
output = 'building_blocks:knife 1',
recipe = {
@ -92,9 +96,9 @@ minetest.register_craft({
minetest.register_craft({
output = "building_blocks:Marble 9",
recipe = {
{"default:clay", "group:tar_block", "default:clay"},
{"group:tar_block","default:clay", "group:tar_block"},
{"default:clay", "group:tar_block","default:clay"},
{materials.clay_lump, "group:tar_block", materials.clay_lump},
{"group:tar_block",materials.clay_lump, "group:tar_block"},
{materials.clay_lump, "group:tar_block",materials.clay_lump},
}
})
minetest.register_craft({
@ -113,15 +117,15 @@ minetest.register_craft({
minetest.register_craft({
output = 'building_blocks:tar_base 4',
recipe = {
{"default:coal_lump", "default:gravel"},
{"default:gravel", "default:coal_lump"}
{materials.coal_lump, materials.gravel},
{materials.gravel, materials.coal_lump}
}
})
minetest.register_craft({
output = 'building_blocks:tar_base 4',
recipe = {
{"default:gravel", "default:coal_lump"},
{"default:coal_lump", "default:gravel"}
{materials.gravel, materials.coal_lump},
{materials.coal_lump, materials.gravel}
}
})
minetest.register_craft({
@ -140,14 +144,14 @@ minetest.register_craft({
output = 'building_blocks:woodglass 1',
recipe = {
{"group:wood"},
{"default:glass"},
{materials.glass_block},
}
})
minetest.register_craft({
type = "cooking",
output = "building_blocks:smoothglass",
recipe = "default:glass"
recipe = materials.glass_block
})
minetest.register_craft({
type = "cooking",

View File

@ -1,19 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"default",
}
globals = {
}

View File

@ -1,5 +1,7 @@
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
@ -102,8 +104,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", {
@ -111,6 +113,7 @@ 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
@ -142,7 +145,9 @@ minetest.register_node("fake_fire:ice_fire", {
drawtype = "plantlike",
paramtype = "light",
paramtype2 = "facedir",
groups = {dig_immediate=3, not_in_creative_inventory=1},
groups = {dig_immediate=3, not_in_creative_inventory=1, dig_generic=3, handy=1},
is_ground_content = false,
_mcl_hardness=0.6,
sunlight_propagates = true,
buildable_to = true,
walkable = false,
@ -158,6 +163,7 @@ 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
})
@ -172,6 +178,8 @@ local sbox = {
fixed = { -8/16, -8/16, -8/16, 8/16, -6/16, 8/16},
}
local wtex = homedecor.textures.wood.jungle.planks
minetest.register_node("fake_fire:fancy_fire", {
inventory_image = "fancy_fire_inv.png",
description = S("Fancy Fire"),
@ -179,7 +187,10 @@ minetest.register_node("fake_fire:fancy_fire", {
mesh = "fancy_fire.obj",
paramtype = "light",
paramtype2 = "facedir",
groups = {oddly_breakable_by_hand=3, flammable=0},
use_texture_alpha = "clip",
groups = {oddly_breakable_by_hand=3, flammable=0, handy=1},
is_ground_content = false,
_mcl_hardness=0.6,
sunlight_propagates = true,
light_source = 13,
walkable = false,
@ -188,10 +199,11 @@ minetest.register_node("fake_fire:fancy_fire", {
selection_box = sbox,
tiles = {
"basic_materials_concrete_block.png",
"default_junglewood.png",
wtex,
"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,
@ -223,25 +235,46 @@ minetest.register_node("fake_fire:embers", {
aspect_w=16, aspect_h=16, length=2}},
},
light_source = 9,
groups = {crumbly=3},
groups = {crumbly=3, dig_stone=2, handy=1},
is_ground_content = false,
_mcl_hardness=0.6,
paramtype = "light",
sounds = default.node_sound_dirt_defaults(),
_sound_def = {
key = "node_sound_dirt_defaults",
},
})
local sandstone_tex = "default_sandstone.png"
if not minetest.get_modpath("default") then
local sname = minetest.registered_nodes["mapgen_stone"].name
local names = sname:split(":")
local nitem = names[2] and string.gsub(names[2], "stone", "sandstone") or nil
if nitem and minetest.registered_nodes[names[1]..":"..nitem] then
sandstone_tex = minetest.registered_nodes[names[1]..":"..nitem].tiles[1]
else
sandstone_tex = "[combine:16x16^[noalpha^[colorize:#fefebe"
end
end
-- CHIMNEYS
local materials = {
{ "stone", S("Stone chimney top") },
{ "sandstone", S("Sandstone chimney top") },
{ "stone", S("Stone chimney top"), minetest.registered_nodes["mapgen_stone"].tiles[1] },
{ "sandstone", S("Sandstone chimney top"), sandstone_tex },
}
for _, mat in ipairs(materials) do
local name, desc = unpack(mat)
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 = {"default_"..name..".png^chimney_top.png", "default_"..name..".png"},
groups = {snappy=3},
tiles = {tex.."^chimney_top.png", tex},
groups = {snappy=3, dig_stone=2, handy=1},
is_ground_content = false,
_mcl_hardness=0.6,
paramtype = "light",
sounds = default.node_sound_stone_defaults(),
_sound_def = {
key = "node_sound_stone_defaults",
},
drawtype = "nodebox",
node_box = {
type = "fixed",
@ -257,37 +290,42 @@ for _, mat in ipairs(materials) do
end
})
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:chimney_top_'..name,
recipe = {"default:torch", "stairs:slab_"..name}
})
if minetest.get_modpath("default") then
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:chimney_top_'..name,
recipe = {"default:torch", "stairs:slab_"..name}
})
end
end
minetest.register_alias("fake_fire:flint_and_steel", "fire:flint_and_steel")
minetest.override_item("default:ice", {
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"})
if minetest.get_modpath("default") then
minetest.override_item("default:ice", {
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
})
})
end
-- CRAFTS
if minetest.get_modpath("default") then
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:embers',
recipe = {"default:torch", "group:wood", "default:torch"}
})
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:embers',
recipe = {"default:torch", "group:wood", "default:torch"}
})
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:fancy_fire',
recipe = {"default:torch", "building_blocks:sticks", "default:torch" }
})
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:fancy_fire',
recipe = {"default:torch", "building_blocks:sticks", "default:torch" }
})
end
-- ALIASES
@ -302,10 +340,23 @@ 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)
fire_particles_on(pos)
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
})

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,2 +1,2 @@
name = fake_fire
depends = default
depends = homedecor_common

View File

@ -1,18 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
}
globals = {
}

View File

@ -1,14 +1,16 @@
minetest.override_item("default:bookshelf", {
drawtype = "mesh",
mesh = "homedecor_3d_bookshelf.obj",
tiles = {
"default_wood.png",
"default_wood.png^homedecor_3d_bookshelf_inside_back.png",
"homedecor_3d_bookshelf_books.png",
},
paramtype = "light",
paramtype2 = "facedir",
})
if minetest.get_modpath("default") then
minetest.override_item("default:bookshelf", {
drawtype = "mesh",
mesh = "homedecor_3d_bookshelf.obj",
tiles = {
"default_wood.png",
"default_wood.png^homedecor_3d_bookshelf_inside_back.png",
"homedecor_3d_bookshelf_books.png",
},
paramtype = "light",
paramtype2 = "facedir",
})
end
if minetest.get_modpath("vessels") then
minetest.override_item("vessels:shelf", {
@ -21,7 +23,7 @@ if minetest.get_modpath("vessels") then
},
paramtype = "light",
paramtype2 = "facedir",
use_texture_alpha = true
use_texture_alpha = "blend",
})
local sbox = {
@ -35,7 +37,7 @@ if minetest.get_modpath("vessels") then
tiles = {"homedecor_3d_vessels_shelf_glass.png"},
inventory_image = "homedecor_3d_vessels_glass_bottle_inv.png",
wield_image = "homedecor_3d_vessels_glass_bottle_inv.png",
use_texture_alpha = true,
use_texture_alpha = "blend",
selection_box = sbox
})
@ -54,7 +56,7 @@ if minetest.get_modpath("vessels") then
tiles = {"homedecor_3d_vessels_shelf_glass.png"},
inventory_image = "homedecor_3d_vessels_drinking_glass_inv.png",
wield_image = "homedecor_3d_vessels_drinking_glass_inv.png",
use_texture_alpha = true,
use_texture_alpha = "blend",
selection_box = sbox
})
end
@ -92,16 +94,22 @@ 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 = {
@ -111,6 +119,8 @@ 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

@ -1,4 +1,3 @@
name = homedecor_3d_extras
description = Homedecor Mod: 3d extras
depends = default
optional_depends = vessels, moreblocks, doors
optional_depends = vessels, moreblocks, doors, default

View File

@ -1,22 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"default",
"homedecor",
"screwdriver",
"unifieddyes",
}
globals = {
}

View File

@ -2,7 +2,10 @@ local S = minetest.get_translator("homedecor_bathroom")
local sc_disallow = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil
minetest.register_node(":homedecor:bathroom_tiles_dark", {
local wood_tex = homedecor.textures.wood.apple.planks
local water_tex = homedecor.textures.water.tile
homedecor.register("bathroom_tiles_dark", {
description = S("Bathroom/kitchen tiles (dark)"),
tiles = {
"homedecor_bathroom_tiles_bg.png"
@ -13,13 +16,24 @@ minetest.register_node(":homedecor:bathroom_tiles_dark", {
paramtype = "light",
paramtype2 = "color",
palette = "unifieddyes_palette_extended.png",
groups = {cracky=3, ud_param2_colorable = 1},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=3, ud_param2_colorable = 1, dig_stone = 2},
_sound_def = {
key = "node_sound_stone_defaults",
},
on_construct = unifieddyes.on_construct,
on_dig = unifieddyes.on_dig,
crafts = {
{
output = "homedecor:bathroom_tiles_dark 4",
recipe = {
{ "group:marble", "group:marble", "" },
{ "group:marble", "group:marble", "dye_dark_grey" }
},
}
}
})
minetest.register_node(":homedecor:bathroom_tiles_medium", {
homedecor.register("bathroom_tiles_medium", {
description = S("Bathroom/kitchen tiles (medium)"),
tiles = {
"homedecor_bathroom_tiles_bg.png"
@ -30,13 +44,24 @@ minetest.register_node(":homedecor:bathroom_tiles_medium", {
paramtype = "light",
paramtype2 = "color",
palette = "unifieddyes_palette_extended.png",
groups = {cracky=3, ud_param2_colorable = 1},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=3, ud_param2_colorable = 1, dig_stone = 2},
_sound_def = {
key = "node_sound_stone_defaults",
},
on_construct = unifieddyes.on_construct,
on_dig = unifieddyes.on_dig,
crafts = {
{
output = "homedecor:bathroom_tiles_medium 4",
recipe = {
{ "group:marble", "group:marble", "" },
{ "group:marble", "group:marble", "dye_grey" }
},
}
}
})
minetest.register_node(":homedecor:bathroom_tiles_light", {
homedecor.register("bathroom_tiles_light", {
description = S("Bathroom/kitchen tiles (light)"),
tiles = {
"homedecor_bathroom_tiles_bg.png"
@ -47,10 +72,21 @@ minetest.register_node(":homedecor:bathroom_tiles_light", {
paramtype = "light",
paramtype2 = "color",
palette = "unifieddyes_palette_extended.png",
groups = {cracky=3, ud_param2_colorable = 1},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=3, ud_param2_colorable = 1, dig_stone = 2},
_sound_def = {
key = "node_sound_stone_defaults",
},
on_construct = unifieddyes.on_construct,
on_dig = unifieddyes.on_dig,
crafts = {
{
output = "homedecor:bathroom_tiles_light 4",
recipe = {
{ "group:marble", "group:marble" },
{ "group:marble", "group:marble" }
},
}
}
})
local tr_cbox = {
@ -63,20 +99,30 @@ homedecor.register("towel_rod", {
mesh = "homedecor_towel_rod.obj",
tiles = {
"homedecor_generic_terrycloth.png",
"default_wood.png",
wood_tex,
},
inventory_image = "homedecor_towel_rod_inv.png",
selection_box = tr_cbox,
walkable = false,
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3},
sounds = default.node_sound_defaults(),
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3,dig_tree=2},
_sound_def = {
key = "node_sound_default",
},
crafts = {
{
recipe = {
{ "group:wood", "group:stick", "group:wood" },
{ "", "building_blocks:terrycloth_towel", "" },
},
}
}
})
homedecor.register("medicine_cabinet", {
description = S("Medicine cabinet"),
mesh = "homedecor_medicine_cabinet.obj",
tiles = {
'default_wood.png',
wood_tex,
'homedecor_medicine_cabinet_mirror.png'
},
inventory_image = "homedecor_medicine_cabinet_inv.png",
@ -85,22 +131,37 @@ homedecor.register("medicine_cabinet", {
fixed = {-0.3125, -0.1875, 0.3125, 0.3125, 0.5, 0.5}
},
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
groups = { snappy = 3, dig_stone = 2 },
_sound_def = {
key = "node_sound_wood_defaults",
},
on_punch = function(pos, node, puncher, pointed_thing)
node.name = "homedecor:medicine_cabinet_open"
minetest.swap_node(pos, node)
end,
can_dig = function(pos)
local inv = minetest.get_meta(pos):get_inventory("main")
return inv:is_empty("main")
end,
infotext=S("Medicine cabinet"),
inventory = {
size=6,
},
crafts = {
{
recipe = {
{ "group:stick", "glass_block", "group:stick" },
{ "group:stick", "glass_block", "group:stick" },
{ "group:stick", "glass_block", "group:stick" }
},
}
}
})
homedecor.register("medicine_cabinet_open", {
mesh = "homedecor_medicine_cabinet_open.obj",
tiles = {
'default_wood.png',
wood_tex,
'homedecor_medicine_cabinet_mirror.png',
'homedecor_medicine_cabinet_inside.png'
},
@ -109,12 +170,16 @@ homedecor.register("medicine_cabinet_open", {
fixed = {-0.3125, -0.1875, -0.25, 0.3125, 0.5, 0.5}
},
walkable = false,
groups = { snappy = 3, not_in_creative_inventory=1 },
groups = { snappy = 3, not_in_creative_inventory=1, dig_stone = 2 },
drop = "homedecor:medicine_cabinet",
on_punch = function(pos, node, puncher, pointed_thing)
node.name = "homedecor:medicine_cabinet"
minetest.swap_node(pos, node)
end,
can_dig = function(pos)
local inv = minetest.get_meta(pos):get_inventory("main")
return inv:is_empty("main")
end,
})
-- "Sanitation" related
@ -143,12 +208,23 @@ homedecor.register("toilet", {
},
selection_box = toilet_sbox,
node_box = toilet_cbox,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=3, dig_stone = 2},
_sound_def = {
key = "node_sound_stone_defaults",
},
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
node.name = "homedecor:toilet_open"
minetest.set_node(pos, node)
end
end,
crafts = {
{
recipe = {
{ "","","water_bucket"},
{ "group:marble","group:marble", "group:marble" },
{ "", "empty_bucket", "" },
},
}
}
})
homedecor.register("toilet_open", {
@ -157,14 +233,17 @@ homedecor.register("toilet_open", {
"building_blocks_marble.png",
"building_blocks_marble.png",
"building_blocks_marble.png",
"default_water.png",
water_tex,
{ name = "homedecor_generic_metal.png", color = homedecor.color_med_grey }
},
selection_box = toilet_sbox,
collision_box = toilet_cbox,
drop = "homedecor:toilet",
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
use_texture_alpha = "blend",
groups = {cracky=3, dig_stone = 2},
_sound_def = {
key = "node_sound_stone_defaults",
},
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
node.name = "homedecor:toilet"
minetest.set_node(pos, node)
@ -188,13 +267,24 @@ homedecor.register("toilet_paper", {
mesh = "homedecor_toilet_paper.obj",
tiles = {
"homedecor_generic_quilted_paper.png",
"default_wood.png"
wood_tex
},
inventory_image = "homedecor_toilet_paper_inv.png",
selection_box = tp_cbox,
walkable = false,
groups = {snappy=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_defaults(),
groups = {snappy=3,oddly_breakable_by_hand=3, dig_stone = 2},
_sound_def = {
key = "node_sound_default",
},
crafts = {
{
recipe = {
{ "", "paper", "paper" },
{ "group:wood", "group:stick", "paper" },
{ "", "paper", "paper" },
},
}
}
})
--Sink
@ -221,16 +311,27 @@ homedecor.register("sink", {
tiles = {
"building_blocks_marble.png",
"building_blocks_marble.png",
"default_water.png"
water_tex
},
use_texture_alpha = "blend",
inventory_image="homedecor_bathroom_sink_inv.png",
selection_box = sink_sbox,
collision_box = sink_cbox,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=3, dig_stone = 2},
_sound_def = {
key = "node_sound_stone_defaults",
},
on_destruct = function(pos)
homedecor.stop_particle_spawner({x=pos.x, y=pos.y+1, z=pos.z})
end
end,
crafts = {
{
recipe = {
{ "group:marble","empty_bucket", "group:marble" },
{ "", "group:marble", "" }
},
}
}
})
--Taps
@ -239,9 +340,7 @@ local function taps_on_rightclick(pos, node, clicker, itemstack, pointed_thing)
local below = minetest.get_node_or_nil({x=pos.x, y=pos.y-1, z=pos.z})
if below and
below.name == "homedecor:shower_tray" or
below.name == "homedecor:sink" or
below.name == "homedecor:kitchen_cabinet_with_sink" or
below.name == "homedecor:kitchen_cabinet_with_sink_locked" then
string.find(below.name, "homedecor:.*sink") then
local particledef = {
outlet = { x = 0, y = -0.44, z = 0.28 },
velocity_x = { min = -0.1, max = 0.1 },
@ -271,11 +370,20 @@ homedecor.register("taps", {
fixed = { -4/16, -7/16, 4/16, 4/16, -4/16, 8/16 },
},
walkable = false,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=3, dig_stone = 2},
_sound_def = {
key = "node_sound_stone_defaults",
},
on_rightclick = taps_on_rightclick,
on_destruct = homedecor.stop_particle_spawner,
on_rotate = sc_disallow or nil
on_rotate = sc_disallow or nil,
crafts = {
{
recipe = {
{ "steel_ingot","water_bucket", "steel_ingot" },
},
}
}
})
homedecor.register("taps_brass", {
@ -294,11 +402,20 @@ homedecor.register("taps_brass", {
fixed = { -4/16, -7/16, 4/16, 4/16, -4/16, 8/16 },
},
walkable = false,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=3, dig_stone = 2},
_sound_def = {
key = "node_sound_stone_defaults",
},
on_rightclick = taps_on_rightclick,
on_destruct = homedecor.stop_particle_spawner,
on_rotate = sc_disallow or nil,
crafts = {
{
recipe = {
{ "basic_materials:brass_ingot","water_bucket", "basic_materials:brass_ingot" },
},
}
}
})
--Shower Tray
@ -320,12 +437,21 @@ homedecor.register("shower_tray", {
},
},
selection_box = homedecor.nodebox.slab_y(0.1),
groups = {cracky=2},
sounds = default.node_sound_stone_defaults(),
groups = {cracky=2, dig_stone = 2},
_sound_def = {
key = "node_sound_stone_defaults",
},
on_destruct = function(pos)
homedecor.stop_particle_spawner({x=pos.x, y=pos.y+2, z=pos.z}) -- the showerhead
homedecor.stop_particle_spawner({x=pos.x, y=pos.y+1, z=pos.z}) -- the taps, if any
end
end,
crafts = {
{
recipe = {
{ "group:marble","empty_bucket", "group:marble" },
},
}
}
})
--Shower Head
@ -345,7 +471,7 @@ homedecor.register("shower_head", {
},
inventory_image = "homedecor_shower_head_inv.png",
description = S("Shower Head"),
groups = {snappy=3},
groups = {snappy=3, dig_stone = 2},
selection_box = sh_cbox,
walkable = false,
on_rotate = sc_disallow or nil,
@ -368,7 +494,14 @@ homedecor.register("shower_head", {
end,
on_destruct = function(pos)
homedecor.stop_particle_spawner(pos)
end
end,
crafts = {
{
recipe = {
{"steel_ingot", "water_bucket"},
},
}
}
})
local tub_sbox = {
@ -404,10 +537,21 @@ homedecor.register("bathtub_clawfoot_brass_taps", {
"homedecor_bathtub_clawfoot_bottom_inside.png",
},
description = S("Bathtub, clawfoot, with brass taps"),
groups = {cracky=3},
groups = {cracky=3, dig_stone = 2},
selection_box = tub_sbox,
node_box = tub_cbox,
sounds = default.node_sound_stone_defaults(),
_sound_def = {
key = "node_sound_stone_defaults",
},
crafts = {
{
recipe = {
{ "homedecor:taps_brass", "", "" },
{ "group:marble", "", "group:marble" },
{ "steel_ingot", "group:marble", "steel_ingot"},
},
}
}
})
homedecor.register("bathtub_clawfoot_chrome_taps", {
@ -422,10 +566,21 @@ homedecor.register("bathtub_clawfoot_chrome_taps", {
"homedecor_bathtub_clawfoot_bottom_inside.png",
},
description = S("Bathtub, clawfoot, with chrome taps"),
groups = {cracky=3},
groups = {cracky=3, dig_stone = 2},
selection_box = tub_sbox,
node_box = tub_cbox,
sounds = default.node_sound_stone_defaults(),
_sound_def = {
key = "node_sound_stone_defaults",
},
crafts = {
{
recipe = {
{ "homedecor:taps", "", "" },
{ "group:marble", "", "group:marble" },
{"steel_ingot", "group:marble", "steel_ingot"},
},
}
}
})
local bs_cbox = {
@ -445,10 +600,21 @@ homedecor.register("bathroom_set", {
},
inventory_image = "homedecor_bathroom_set_inv.png",
description = S("Bathroom sundries set"),
groups = {snappy=3},
groups = {snappy=3, dig_stone = 2},
selection_box = bs_cbox,
walkable = false,
sounds = default.node_sound_glass_defaults(),
_sound_def = {
key = "node_sound_glass_defaults",
},
crafts = {
{
recipe = {
{ "", "homedecor:glass_table_small_round", "" },
{ "basic_materials:plastic_sheet", "homedecor:glass_table_small_round", "basic_materials:plastic_sheet" },
{ "group:stick", "basic_materials:plastic_sheet", "group:stick" }
},
}
}
})
-- aliases
@ -520,45 +686,7 @@ minetest.register_lbm({
end
})
-- crafting
minetest.register_craft({
output = "homedecor:towel_rod",
recipe = {
{ "group:wood", "group:stick", "group:wood" },
{ "", "building_blocks:terrycloth_towel", "" },
},
})
minetest.register_craft({
output = "homedecor:toilet_paper",
recipe = {
{ "", "default:paper", "default:paper" },
{ "group:wood", "group:stick", "default:paper" },
{ "", "default:paper", "default:paper" },
},
})
minetest.register_craft({
output = "homedecor:medicine_cabinet",
recipe = {
{ "group:stick", "default:glass", "group:stick" },
{ "group:stick", "default:glass", "group:stick" },
{ "group:stick", "default:glass", "group:stick" }
},
})
-- bathroom/kitchen tiles
minetest.register_craft( {
output = "homedecor:bathroom_tiles_light 4",
recipe = {
{ "group:marble", "group:marble" },
{ "group:marble", "group:marble" }
},
})
-- color crafting
unifieddyes.register_color_craft({
output = "homedecor:bathroom_tiles_light",
@ -571,14 +699,6 @@ unifieddyes.register_color_craft({
}
})
minetest.register_craft( {
output = "homedecor:bathroom_tiles_medium 4",
recipe = {
{ "group:marble", "group:marble", "" },
{ "group:marble", "group:marble", "dye:grey" }
},
})
unifieddyes.register_color_craft({
output = "homedecor:bathroom_tiles_medium",
palette = "extended",
@ -590,14 +710,6 @@ unifieddyes.register_color_craft({
}
})
minetest.register_craft( {
output = "homedecor:bathroom_tiles_dark 4",
recipe = {
{ "group:marble", "group:marble", "" },
{ "group:marble", "group:marble", "dye:dark_grey" }
},
})
unifieddyes.register_color_craft({
output = "homedecor:bathroom_tiles_dark",
palette = "extended",
@ -609,75 +721,3 @@ unifieddyes.register_color_craft({
}
})
minetest.register_craft({
output = "homedecor:bathroom_set",
recipe = {
{ "", "homedecor:glass_table_small_round", "" },
{ "basic_materials:plastic_sheet", "homedecor:glass_table_small_round", "basic_materials:plastic_sheet" },
{ "group:stick", "basic_materials:plastic_sheet", "group:stick" }
},
})
minetest.register_craft({
output = "homedecor:toilet",
recipe = {
{ "","","bucket:bucket_water"},
{ "group:marble","group:marble", "group:marble" },
{ "", "bucket:bucket_empty", "" },
},
})
minetest.register_craft({
output = "homedecor:sink",
recipe = {
{ "group:marble","bucket:bucket_empty", "group:marble" },
{ "", "group:marble", "" }
},
})
minetest.register_craft({
output = "homedecor:taps",
recipe = {
{ "default:steel_ingot","bucket:bucket_water", "default:steel_ingot" },
},
})
minetest.register_craft({
output = "homedecor:taps_brass",
recipe = {
{ "basic_materials:brass_ingot","bucket:bucket_water", "basic_materials:brass_ingot" },
},
})
minetest.register_craft({
output = "homedecor:shower_tray",
recipe = {
{ "group:marble","bucket:bucket_empty", "group:marble" },
},
})
minetest.register_craft({
output = "homedecor:shower_head",
recipe = {
{"default:steel_ingot", "bucket:bucket_water"},
},
})
minetest.register_craft({
output = "homedecor:bathtub_clawfoot_brass_taps",
recipe = {
{ "homedecor:taps_brass", "", "" },
{ "group:marble", "", "group:marble" },
{ "default:steel_ingot", "group:marble", "default:steel_ingot"},
},
})
minetest.register_craft({
output = "homedecor:bathtub_clawfoot_chrome_taps",
recipe = {
{ "homedecor:taps", "", "" },
{ "group:marble", "", "group:marble" },
{"default:steel_ingot", "group:marble", "default:steel_ingot"},
},
})

View File

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

View File

@ -1,20 +1,16 @@
# textdomain: homedecor_bathroom
### 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)
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/kitchen tiles (light)=Azulejo de baño/cocina (tonos claros)
Towel rod with towel=Toallero con toalla
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
Bathroom Sink=Lavabo 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
Bathtub, clawfoot, with brass taps=
Bathtub, clawfoot, with chrome taps=
Bathroom sundries set=Artículos de baño

View File

@ -1,20 +1,16 @@
# textdomain: homedecor_bathroom
### 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)
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/kitchen tiles (light)=Carreaux de salle de bain ou cuisine (claires)
Towel rod with towel=Porte serviette et serviette
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
Bathroom Sink=Évier
Bathroom taps/faucet=Robinetterie
Bathroom taps/faucet (brass)=Robinetterie (laiton)
Shower Tray=Bac de douche
Shower Head=Pomme de douche
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

View File

@ -1,20 +1,16 @@
# textdomain: homedecor_bathroom
### init.lua ###
Bathroom Sink=
Bathroom sundries set=
Bathroom taps/faucet=
Bathroom taps/faucet (brass)=
Bathroom/kitchen tiles (dark)=
Bathroom/kitchen tiles (light)=
Bathroom/kitchen tiles (medium)=
Bathtub, clawfoot, with brass taps=
Bathtub, clawfoot, with chrome taps=
Bathroom/kitchen tiles (light)=
Towel rod with towel=
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=
Bathroom Sink=
Bathroom taps/faucet=
Bathroom taps/faucet (brass)=
Shower Tray=Piatto della doccia
Shower Head=Pigna della doccia
Bathtub, clawfoot, with brass taps=
Bathtub, clawfoot, with chrome taps=
Bathroom sundries set=

View File

@ -1,20 +1,16 @@
# textdomain: homedecor_bathroom
### 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)
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/kitchen tiles (light)=Jubin Dapur/Bilik Mandi (Cerah)
Towel rod with towel=Ampaian Beserta Tuala
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
Bathroom Sink=Sinki 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
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

View File

@ -1,20 +1,16 @@
# textdomain: homedecor_bathroom
### 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)
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/kitchen tiles (light)=Azulejo de Banheiro/Cozinha (claro)
Towel rod with towel=Haste de Toalha com Toalha
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
Bathroom Sink=Pia de Banheiro
Bathroom taps/faucet=Torneira de Banheiro
Bathroom taps/faucet (brass)=Torneira de Banheiro (latão)
Shower Tray=Ralo do Chuveiro
Shower Head=Chuveiro
Bathtub, clawfoot, with brass taps=
Bathtub, clawfoot, with chrome taps=
Bathroom sundries set=Espelho de Banheiro com bancada

View File

@ -1,20 +1,16 @@
# textdomain: homedecor_bathroom
### 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)
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/kitchen tiles (light)=Azulejo de Banheiro/Cozinha (claro)
Towel rod with towel=Haste de Toalha com Toalha
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
Bathroom Sink=Pia de Banheiro
Bathroom taps/faucet=Torneira de Banheiro
Bathroom taps/faucet (brass)=Torneira de Banheiro (latão)
Shower Tray=Ralo do Chuveiro
Shower Head=Chuveiro
Bathtub, clawfoot, with brass taps=
Bathtub, clawfoot, with chrome taps=
Bathroom sundries set=Espelho de Banheiro com bancada

View File

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

View File

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

View File

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

View File

@ -1,4 +1,4 @@
name = homedecor_bathroom
description = Homedecor mod: bathroom
depends = homedecor_common, default, basic_materials, unifieddyes, building_blocks
optional_depends = bucket, homedecor_fences, screwdriver
depends = homedecor_common
optional_depends = bucket, homedecor_fences, screwdriver, default, basic_materials, unifieddyes, building_blocks

View File

@ -1,22 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"default",
"homedecor",
"screwdriver",
"unifieddyes",
}
globals = {
}

View File

@ -2,6 +2,8 @@ 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 bed_sbox = {
type = "wallmounted",
wall_side = { -0.5, -0.5, -0.5, 0.5, 0.5, 1.5 }
@ -31,26 +33,29 @@ local kbed_cbox = {
}
-- local bed_on_rightclick = minetest.registered_nodes["beds:bed"].on_rightclick
local bed_def = minetest.registered_nodes["beds:bed"]
local bed_on_rightclick = bed_def and bed_def.on_rightclick or nil
homedecor.register("bed_regular", {
mesh = "homedecor_bed_regular.obj",
tiles = {
{ name = "homedecor_bed_frame.png", color = 0xffffffff },
{ name = "default_wood.png", color = 0xffffffff },
{ name = "wool_white.png", color = 0xffffffff },
"wool_white.png",
{ name = wood_tex, color = 0xffffffff },
{ name = wool_tex, color = 0xffffffff },
wool_tex,
{ name = "homedecor_bed_bottom.png", color = 0xffffffff },
"wool_white.png^[brighten", -- pillow
wool_tex.."^[brighten", -- pillow
},
inventory_image = "homedecor_bed_inv.png",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
description = S("Bed"),
groups = {snappy=3, ud_param2_colorable = 1},
groups = {snappy=3, ud_param2_colorable = 1, dig_generic=2},
selection_box = bed_sbox,
node_box = bed_cbox,
sounds = default.node_sound_wood_defaults(),
_sound_def = {
key = "node_sound_wood_defaults",
},
on_rotate = sc_disallow or nil,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
@ -66,40 +71,52 @@ homedecor.register("bed_regular", {
local itemname = itemstack:get_name()
if itemname == "homedecor:bed_regular" then
homedecor.bed_expansion(pos, clicker, itemstack, pointed_thing, true)
return itemstack
-- else
-- bed_on_rightclick(pos, node, clicker)
-- return itemstack
elseif bed_on_rightclick then
bed_on_rightclick(pos, node, clicker)
end
end
return itemstack
end,
crafts = {
{
recipe = {
{ "group:stick", "", "group:stick" },
{ "wool_white", "wool_white", "wool_white" },
{ "group:wood", "", "group:wood" },
},
}
}
})
homedecor.register("bed_extended", {
mesh = "homedecor_bed_extended.obj",
tiles = {
{ name = "homedecor_bed_frame.png", color = 0xffffffff },
{ name = "default_wood.png", color = 0xffffffff },
{ name = "wool_white.png", color = 0xffffffff },
"wool_white.png",
{ name = wood_tex, color = 0xffffffff },
{ name = wool_tex, color = 0xffffffff },
wool_tex,
{ name = "homedecor_bed_bottom.png", color = 0xffffffff },
"wool_white.png^[brighten",
wool_tex.."^[brighten",
},
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
selection_box = bed_sbox,
node_box = bed_cbox,
groups = {snappy=3, ud_param2_colorable = 1},
sounds = default.node_sound_wood_defaults(),
groups = {snappy=3, ud_param2_colorable = 1, dig_generic=2, not_in_creative_inventory=1},
_sound_def = {
key = "node_sound_wood_defaults",
},
expand = { forward = "air" },
on_rotate = sc_disallow or nil,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
homedecor.unextend_bed(pos)
end,
on_dig = unifieddyes.on_dig,
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-- bed_on_rightclick(pos, node, clicker)
-- return itemstack
-- end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
if bed_on_rightclick then
bed_on_rightclick(pos, node, clicker)
end
return itemstack
end,
drop = "homedecor:bed_regular"
})
@ -107,20 +124,22 @@ homedecor.register("bed_kingsize", {
mesh = "homedecor_bed_kingsize.obj",
tiles = {
{ name = "homedecor_bed_frame.png", color = 0xffffffff },
{ name = "default_wood.png", color = 0xffffffff },
{ name = "wool_white.png", color = 0xffffffff },
"wool_white.png",
{ name = wood_tex, color = 0xffffffff },
{ name = wool_tex, color = 0xffffffff },
wool_tex,
{ name = "homedecor_bed_bottom.png", color = 0xffffffff },
"wool_white.png^[brighten",
wool_tex.."^[brighten",
},
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
inventory_image = "homedecor_bed_kingsize_inv.png",
description = S("Bed (king sized)"),
groups = {snappy=3, ud_param2_colorable = 1},
groups = {snappy=3, ud_param2_colorable = 1, dig_generic=2},
selection_box = kbed_sbox,
node_box = kbed_cbox,
sounds = default.node_sound_wood_defaults(),
_sound_def = {
key = "node_sound_wood_defaults",
},
on_rotate = sc_disallow or nil,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
@ -133,10 +152,19 @@ homedecor.register("bed_kingsize", {
end
end,
on_dig = unifieddyes.on_dig,
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-- bed_on_rightclick(pos, node, clicker)
-- return itemstack
-- end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
if bed_on_rightclick then
bed_on_rightclick(pos, node, clicker)
end
return itemstack
end,
crafts = {
{
recipe = {
{ "homedecor:bed_regular", "homedecor:bed_regular" }
},
}
}
})
for w, d in pairs({ ["mahogany"] = S("mahogany"), ["oak"] = S("oak") }) do
@ -159,8 +187,10 @@ for w, d in pairs({ ["mahogany"] = S("mahogany"), ["oak"] = S("oak") }) do
{ -8/16, -8/16, -30/64, 8/16, -7/16, 8/16 } -- bottom
}
},
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
groups = { snappy = 3, dig_tree = 2 },
_sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = { type = "regular" },
infotext=S("One-drawer Nightstand"),
inventory = {
@ -185,8 +215,10 @@ for w, d in pairs({ ["mahogany"] = S("mahogany"), ["oak"] = S("oak") }) do
{ -7/16, -7/16, -32/64, 7/16, -1/16, -29/64 }, -- bottom drawer face
}
},
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
groups = { snappy = 3, dig_tree = 2 },
_sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = { type = "regular" },
infotext=S("Two-drawer Nightstand"),
inventory = {
@ -318,7 +350,7 @@ minetest.register_craft( {
output = "homedecor:nightstand_mahogany_one_drawer",
recipe = {
"homedecor:nightstand_oak_one_drawer",
"dye:brown",
homedecor.materials.dye_brown,
},
})
@ -333,7 +365,7 @@ minetest.register_craft( {
output = "homedecor:nightstand_mahogany_two_drawers",
recipe = {
"homedecor:nightstand_oak_two_drawers",
"dye:brown",
homedecor.materials.dye_brown,
},
})
@ -343,16 +375,6 @@ minetest.register_craft({
burntime = 30,
})
minetest.register_craft( {
output = "homedecor:bed_regular",
recipe = {
{ "group:stick", "", "group:stick" },
{ "wool:white", "wool:white", "wool:white" },
{ "group:wood", "", "group:wood" },
},
})
unifieddyes.register_color_craft({
output = "homedecor:bed_regular",
palette = "wallmounted",
@ -364,13 +386,6 @@ unifieddyes.register_color_craft({
}
})
minetest.register_craft( {
output = "homedecor:bed_kingsize",
recipe = {
{ "homedecor:bed_regular", "homedecor:bed_regular" }
},
})
unifieddyes.register_color_craft({
output = "homedecor:bed_kingsize",
palette = "wallmounted",

View File

@ -1,13 +1,9 @@
# 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,13 +1,9 @@
# 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,13 +1,9 @@
# 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,13 +1,9 @@
# 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,13 +1,9 @@
# 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,13 +1,9 @@
# 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,13 +1,9 @@
# 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,13 +1,9 @@
# 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,13 +1,9 @@
# 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,13 +1,9 @@
# 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

@ -1,4 +1,4 @@
name = homedecor_bedroom
description = Homedecor mod: bedroom
depends = homedecor_common, default, basic_materials, unifieddyes, creative, beds
optional_depends = screwdriver
depends = homedecor_common
optional_depends = screwdriver, default, basic_materials, unifieddyes, creative, beds

View File

@ -1,21 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"creative",
"default",
"homedecor",
}
globals = {
}

View File

@ -97,7 +97,7 @@ for _, c in ipairs(bookcolors) do
if data.title and data.title ~= "" then
meta:set_string("infotext", data.title)
end
if not creative.is_enabled_for(plname) then
if not minetest.is_creative_enabled(plname) then
itemstack:take_item()
end
return itemstack
@ -128,16 +128,15 @@ for _, c in ipairs(bookcolors) do
local owner = meta:get_string("owner") or ""
local formspec
if owner == "" or owner == player_name then
formspec = "size[8,8]"..default.gui_bg..default.gui_bg_img..
formspec = "size[8,8]"..
"field[0.5,1;7.5,0;title;Book title :;"..
minetest.formspec_escape(title).."]"..
"textarea[0.5,1.5;7.5,7;text;Book content :;"..
minetest.formspec_escape(text).."]"..
"button_exit[2.5,7.5;3,1;save;Save]"
else
formspec = "size[8,8]"..default.gui_bg..
formspec = "size[8,8]"..
"button_exit[7,0.25;1,0.5;close;X]"..
default.gui_bg_img..
"label[0.5,0.5;by "..owner.."]"..
"label[0.5,0;"..minetest.formspec_escape(title).."]"..
"textarea[0.5,1.5;7.5,7;;"..minetest.formspec_escape(text)..";]"
@ -167,7 +166,7 @@ for _, c in ipairs(bookcolors) do
output = "homedecor:book_"..color,
recipe = {
"dye:"..color,
"default:book"
homedecor.materials.book
},
})
@ -194,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("@1 has written in a book (title: \"@2\"): \"@3\" at location @4",
player:get_player_name(), fields.title, fields.text, minetest.pos_to_string(player:getpos())))
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)))
player_current_book[player_name] = nil
return true

View File

@ -1,13 +1,8 @@
# textdomain: homedecor_books
### 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
green=grün
blue=blau
violet=violett
grey=grau
brown=braun
Writable Book (@1)=Schreibbares Buch (@1)

View File

@ -1,13 +1,8 @@
# textdomain: homedecor_books
### 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
green=verde
blue=azul
violet=violeta
grey=gris
brown=marrón
Writable Book (@1)=Libro (@1)

View File

@ -1,13 +1,8 @@
# textdomain: homedecor_books
### 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
green=vert
blue=bleu
violet=violet
grey=vert
brown=marron
Writable Book (@1)=Livre inscriptible (@1)

View File

@ -1,13 +1,8 @@
# textdomain: homedecor_books
### 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
green=verde
blue=blu
violet=viola
grey=verde scuro
brown=
Writable Book (@1)=Gambe in ottone del tavolo (@1)

View File

@ -1,13 +1,8 @@
# textdomain: homedecor_books
### 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
green=Hijau
blue=Biru
violet=Ungu
grey=Kelabu
brown=Perang
Writable Book (@1)=Buku Boleh Ditulis (@1)

View File

@ -1,13 +1,8 @@
# textdomain: homedecor_books
### 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
green=verde
blue=azul
violet=violeta
grey=cinza
brown=marrom
Writable Book (@1)=Livro que pode ser escrito (@1)

View File

@ -1,13 +1,8 @@
# textdomain: homedecor_books
### 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
green=verde
blue=azul
violet=violeta
grey=cinza
brown=marrom
Writable Book (@1)=Livro que pode ser escrito (@1)

View File

@ -1,13 +1,8 @@
# textdomain: homedecor_books
### 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=красный
green=зелёный
blue=
violet=
grey=
brown=
Writable Book (@1)=Записная книга (@1)

View File

@ -1,13 +1,8 @@
# textdomain: homedecor_books
### 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=红色
green=绿色
blue=蓝色
violet=紫罗兰
grey=灰色
brown=棕色的
Writable Book (@1)=可写书(@1

View File

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

View File

@ -1,4 +1,4 @@
name = homedecor_books
description = Homedecor mod: books
depends = homedecor_common, default, creative
optional_depends = unifieddyes
depends = homedecor_common
optional_depends = unifieddyes, default, creative

View File

@ -1,21 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"default",
"homedecor",
"screwdriver",
}
globals = {
}

View File

@ -7,11 +7,30 @@ homedecor.register("air_conditioner", {
mesh = "homedecor_ac.obj",
tiles = {
"homedecor_ac.png",
"default_glass.png"
homedecor.textures.glass.pane
},
groups = { snappy = 3, dig_stone = 3 },
use_texture_alpha = "clip",
_sound_def = {
key = "node_sound_leaves_defaults",
},
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
selection_box = { type="regular" },
crafts = {
{
recipe = {
{ "steel_ingot", "building_blocks:grate", "steel_ingot" },
{ "steel_ingot", "homedecor:fan_blades", "basic_materials:motor" },
{ "steel_ingot", "basic_materials:motor", "steel_ingot" },
},
},
{
recipe = {
{ "steel_ingot", "building_blocks:grate", "steel_ingot" },
{ "steel_ingot", "basic_materials:motor", "steel_ingot" },
{ "steel_ingot", "basic_materials:motor", "steel_ingot" },
},
}
}
})
-- fans
@ -28,13 +47,13 @@ local add_mesh_desk_fan_entity = function(pos)
local param2 = minetest.get_node(pos).param2
local entity = minetest.add_entity(pos, "homedecor:mesh_desk_fan")
if param2 == 0 then
entity:setyaw(3.142) -- 180 degrees
entity:set_yaw(3.142) -- 180 degrees
elseif minetest.get_node(pos).param2 == 1 then
entity:setyaw(3.142/2) -- 90 degrees
entity:set_yaw(3.142/2) -- 90 degrees
elseif minetest.get_node(pos).param2 == 3 then
entity:setyaw((-3.142/2)) -- 270 degrees
entity:set_yaw((-3.142/2)) -- 270 degrees
else
entity:setyaw(0)
entity:set_yaw(0)
end
return entity
end
@ -74,6 +93,14 @@ homedecor.register("desk_fan", {
local entities = minetest.get_objects_inside_radius(pos, 0.1)
if entities[1] then entities[1]:remove() end
end,
crafts = {
{
recipe = {
{"steel_ingot", "homedecor:fan_blades", "basic_materials:motor"},
{"", "steel_ingot", ""}
},
}
}
})
-- ceiling fan
@ -95,9 +122,28 @@ homedecor.register("ceiling_fan", {
{ -0.0625, 0.375, -0.0625, 0.0625, 0.5, 0.0625 }
}
},
groups = { snappy = 3 },
light_source = default.LIGHT_MAX-1,
sounds = default.node_sound_glass_defaults(),
use_texture_alpha = "clip",
groups = { snappy = 3, dig_stone = 3 },
light_source = minetest.LIGHT_MAX-1,
_sound_def = {
key = "node_sound_glass_defaults",
},
crafts = {
{
recipe = {
{ "basic_materials:motor" },
{ "homedecor:fan_blades" },
{ "homedecor:glowlight_small_cube" }
}
},
{
recipe = {
{ "basic_materials:motor" },
{ "homedecor:fan_blades" },
{ "homedecor:glowlight_small_cube" }
}
}
}
})
-- heating devices
@ -113,8 +159,10 @@ homedecor.register("space_heater", {
},
inventory_image = "homedecor_heater_inv.png",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
groups = { snappy = 3, dig_stone = 3 },
_sound_def = {
key = "node_sound_wood_defaults",
},
node_box = {
type = "fixed",
fixed = {
@ -124,6 +172,15 @@ homedecor.register("space_heater", {
selection_box = {
type = "fixed",
fixed = {-0.1875, -0.5, 0.0625, 0.1875, 0, 0.3125}
},
crafts = {
{
recipe = {
{"basic_materials:plastic_sheet", "basic_materials:heating_element", "basic_materials:plastic_sheet"},
{"basic_materials:plastic_sheet", "homedecor:fan_blades", "basic_materials:motor"},
{"basic_materials:plastic_sheet", "basic_materials:heating_element", "basic_materials:plastic_sheet"}
},
}
}
})
@ -136,10 +193,21 @@ homedecor.register("radiator", {
},
inventory_image = "homedecor_radiator_inv.png",
description = S("Radiator heater"),
groups = {snappy=3},
groups = {snappy=3, dig_stone = 3},
selection_box = r_cbox,
collision_box = r_cbox,
sounds = default.node_sound_wood_defaults(),
_sound_def = {
key = "node_sound_wood_defaults",
},
crafts = {
{
recipe = {
{ "steel_ingot", "basic_materials:heating_element", "steel_ingot" },
{ "basic_materials:ic", "basic_materials:heating_element", "" },
{ "steel_ingot", "basic_materials:heating_element", "steel_ingot" }
},
}
}
})
-- crafting
@ -152,70 +220,7 @@ minetest.register_craft( {
output = "homedecor:fan_blades 2",
recipe = {
{ "", "basic_materials:plastic_sheet", "" },
{ "", "default:steel_ingot", "" },
{ "", homedecor.materials.steel_ingot, "" },
{ "basic_materials:plastic_sheet", "", "basic_materials:plastic_sheet" }
},
})
minetest.register_craft({
output = "homedecor:air_conditioner",
recipe = {
{ "default:steel_ingot", "building_blocks:grate", "default:steel_ingot" },
{ "default:steel_ingot", "homedecor:fan_blades", "basic_materials:motor" },
{ "default:steel_ingot", "basic_materials:motor", "default:steel_ingot" },
},
})
minetest.register_craft({
output = "homedecor:air_conditioner",
recipe = {
{ "default:steel_ingot", "building_blocks:grate", "default:steel_ingot" },
{ "default:steel_ingot", "basic_materials:motor", "default:steel_ingot" },
{ "default:steel_ingot", "basic_materials:motor", "default:steel_ingot" },
},
})
minetest.register_craft({
output = "homedecor:ceiling_fan",
recipe = {
{ "basic_materials:motor" },
{ "homedecor:fan_blades" },
{ "homedecor:glowlight_small_cube" }
}
})
minetest.register_craft({
output = "homedecor:ceiling_fan",
recipe = {
{ "basic_materials:motor" },
{ "homedecor:fan_blades" },
{ "homedecor:glowlight_small_cube" }
}
})
minetest.register_craft( {
output = "homedecor:desk_fan",
recipe = {
{"default:steel_ingot", "homedecor:fan_blades", "basic_materials:motor"},
{"", "default:steel_ingot", ""}
},
})
minetest.register_craft( {
output = "homedecor:space_heater",
recipe = {
{"basic_materials:plastic_sheet", "basic_materials:heating_element", "basic_materials:plastic_sheet"},
{"basic_materials:plastic_sheet", "homedecor:fan_blades", "basic_materials:motor"},
{"basic_materials:plastic_sheet", "basic_materials:heating_element", "basic_materials:plastic_sheet"}
},
})
minetest.register_craft( {
output = "homedecor:radiator",
recipe = {
{ "default:steel_ingot", "basic_materials:heating_element", "default:steel_ingot" },
{ "basic_materials:ic", "basic_materials:heating_element", "" },
{ "default:steel_ingot", "basic_materials:heating_element", "default:steel_ingot" }
},
})

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,4 +1,4 @@
name = homedecor_climate_control
description = Homedecor mod: climate control
depends = homedecor_common, default, basic_materials
optional_depends = building_blocks, screwdriver
depends = homedecor_common
optional_depends = building_blocks, screwdriver, default

View File

@ -1,21 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"default",
"homedecor",
"screwdriver",
}
globals = {
}

View File

@ -1,18 +1,37 @@
local S = minetest.get_translator("homedecor_clocks")
local wood = homedecor.textures.wood.apple.planks
local plastic_craft = {
output = "homedecor:analog_clock_plastic 2",
recipe = {
{ "basic_materials:plastic_sheet", "dye_black", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:ic", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "dye_black", "basic_materials:plastic_sheet" },
},
}
local wood_craft = {
output = "homedecor:analog_clock_wood 2",
recipe = {
{ "group:stick", "dye_black", "group:stick" },
{ "group:stick", "basic_materials:ic", "group:stick" },
{ "group:stick", "dye_black", "group:stick" },
},
}
local clock_sbox = {
type = "fixed",
fixed = { -8/32, -8/32, 14/32, 8/32, 8/32, 16/32 }
}
local clock_materials = {
{ "plastic", S("Plastic analog clock"), "homedecor_generic_plastic.png" },
{ "wood", S("Wooden analog clock"), "default_wood.png" }
{"plastic", S("Plastic analog clock"), "homedecor_generic_plastic.png", plastic_craft},
{"wood", S("Wooden analog clock"), wood, wood_craft}
}
for _, mat in ipairs(clock_materials) do
local name, desc, tex = unpack(mat)
local name, desc, tex, craft = unpack(mat)
homedecor.register("analog_clock_"..name, {
description = desc,
mesh = "homedecor_analog_clock.obj",
@ -24,8 +43,13 @@ for _, mat in ipairs(clock_materials) do
inventory_image = "homedecor_analog_clock_"..name.."_inv.png",
walkable = false,
selection_box = clock_sbox,
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
groups = {snappy=3, dig_tree=2},
_sound_def = {
key = "node_sound_wood_defaults",
},
crafts = {
craft
}
})
end
@ -47,8 +71,20 @@ homedecor.register("digital_clock", {
}
},
walkable = false,
sounds = default.node_sound_wood_defaults(),
groups = {snappy=3},
_sound_def = {
key = "node_sound_wood_defaults",
},
groups = {snappy=3, dig_tree=2},
crafts = {
{
output = "homedecor:digital_clock 2",
recipe = {
{ "basic_materials:plastic_sheet", "paper", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:ic", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:energy_crystal_simple", "basic_materials:plastic_sheet" },
},
}
}
})
homedecor.register("alarm_clock", {
@ -69,8 +105,19 @@ homedecor.register("alarm_clock", {
}
},
walkable = false,
sounds = default.node_sound_wood_defaults(),
groups = {snappy=3},
_sound_def = {
key = "node_sound_wood_defaults",
},
groups = {snappy=3, dig_tree=2},
crafts = {
{
recipe = {
{ "basic_materials:plastic_sheet", "homedecor:speaker_driver", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "homedecor:digital_clock", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:energy_crystal_simple", "basic_materials:plastic_sheet" },
},
}
}
})
local gf_cbox = {
@ -82,67 +129,31 @@ homedecor.register("grandfather_clock", {
description = S("Grandfather Clock"),
mesh = "homedecor_grandfather_clock.obj",
tiles = {
"default_glass.png",
homedecor.textures.glass.pane,
"homedecor_grandfather_clock_face.png",
homedecor.lux_wood,
"homedecor_grandfather_clock_face_edge.png",
"homedecor_generic_metal_brass.png"
},
use_texture_alpha = "clip",
inventory_image = "homedecor_grandfather_clock_inv.png",
groups = { snappy = 3 },
groups = {snappy = 3, dig_tree=2},
selection_box = gf_cbox,
collision_box = gf_cbox,
sounds = default.node_sound_wood_defaults(),
_sound_def = {
key = "node_sound_wood_defaults",
},
expand = { top="placeholder" },
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.rotate_simple or nil,
})
-- crafting
minetest.register_craft({
output = "homedecor:analog_clock_plastic 2",
recipe = {
{ "basic_materials:plastic_sheet", "dye:black", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:ic", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "dye:black", "basic_materials:plastic_sheet" },
},
})
minetest.register_craft({
output = "homedecor:analog_clock_wood 2",
recipe = {
{ "group:stick", "dye:black", "group:stick" },
{ "group:stick", "basic_materials:ic", "group:stick" },
{ "group:stick", "dye:black", "group:stick" },
},
})
minetest.register_craft({
output = "homedecor:digital_clock 2",
recipe = {
{ "basic_materials:plastic_sheet", "default:paper", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:ic", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:energy_crystal_simple", "basic_materials:plastic_sheet" },
},
})
minetest.register_craft({
output = "homedecor:alarm_clock",
recipe = {
{ "basic_materials:plastic_sheet", "homedecor:speaker_driver", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "homedecor:digital_clock", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:energy_crystal_simple", "basic_materials:plastic_sheet" },
},
})
minetest.register_craft({
output = "homedecor:grandfather_clock",
recipe = {
{ "building_blocks:slab_hardwood","homedecor:analog_clock_wood","building_blocks:slab_hardwood" },
{ "building_blocks:slab_hardwood","basic_materials:brass_ingot","building_blocks:slab_hardwood" },
{ "building_blocks:slab_hardwood","basic_materials:brass_ingot","building_blocks:slab_hardwood" }
},
crafts = {
{
recipe = {
{ "building_blocks:slab_hardwood","homedecor:analog_clock_wood","building_blocks:slab_hardwood" },
{ "building_blocks:slab_hardwood","basic_materials:brass_ingot","building_blocks:slab_hardwood" },
{ "building_blocks:slab_hardwood","basic_materials:brass_ingot","building_blocks:slab_hardwood" }
},
}
}
})
-- aliases

View File

@ -1,10 +1,6 @@
# 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,10 +1,6 @@
# 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,10 +1,6 @@
# 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,10 +1,6 @@
# 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,10 +1,6 @@
# 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,10 +1,6 @@
# 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,10 +1,6 @@
# 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,10 +1,6 @@
# 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,10 +1,6 @@
# 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,4 +1,4 @@
name = homedecor_clocks
description = Homedecor mod: clocks
depends = homedecor_common, default, basic_materials, dye
optional_depends = building_blocks, screwdriver
depends = homedecor_common
optional_depends = building_blocks, screwdriver, default, basic_materials, dye

View File

@ -1,18 +0,0 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
}
globals = {
}

View File

@ -1,7 +1,7 @@
local S = minetest.get_translator("homedecor_cobweb")
homedecor_cobweb = {}
minetest.register_node(":homedecor:cobweb_corner", {
homedecor.register("cobweb_corner", {
description = S("Cobweb"),
drawtype = "torchlike",
tiles = { "homedecor_cobweb_torchlike.png" },
@ -19,17 +19,28 @@ minetest.register_node(":homedecor:cobweb_corner", {
walkable = false,
selection_box = { type = "regular" },
visual_scale = 1.4,
groups = { snappy = 3, liquid=3 },
groups = { snappy = 3, liquid=3, dig_glass = 1 },
after_place_node = function(pos, placer, itemstack, pointed_thing)
homedecor_cobweb.rotate(pos)
end
end,
crafts = {
{
output = "homedecor:cobweb_corner 5",
recipe = {
{"string", "", "string"},
{"", "string", ""},
{"string", "", "string"}
},
}
}
})
minetest.register_node(":homedecor:cobweb_centered", {
homedecor.register("cobweb_centered", {
description = S("Cobweb"),
drawtype = "nodebox",
tiles = { "homedecor_cobweb.png" },
inventory_image = "homedecor_cobweb.png",
use_texture_alpha = "clip",
paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = true,
@ -48,17 +59,18 @@ minetest.register_node(":homedecor:cobweb_centered", {
type = "fixed",
fixed = { -0.5, -0.5, 0, 0.5, 0.5, 0 }
},
groups = { snappy = 3, liquid=3, not_in_creative_inventory = 1 },
groups = { snappy = 3, liquid=3, dig_glass = 1, not_in_creative_inventory = 1 },
drop = "homedecor:cobweb_corner"
})
minetest.register_node(":homedecor:cobweb_flat", {
homedecor.register("cobweb_flat", {
description = S("Cobweb"),
drawtype = "nodebox",
tiles = { "homedecor_cobweb.png" },
inventory_image = "homedecor_cobweb.png",
paramtype = "light",
paramtype2 = "facedir",
use_texture_alpha = "clip",
sunlight_propagates = true,
liquid_viscosity = 8,
liquidtype = "source",
@ -75,11 +87,11 @@ minetest.register_node(":homedecor:cobweb_flat", {
type = "fixed",
fixed = { -0.5, -0.5, 0.495, 0.5, 0.5, 0.495 }
},
groups = { snappy = 3, liquid=3, not_in_creative_inventory = 1 },
groups = { snappy = 3, liquid=3, dig_glass = 1, not_in_creative_inventory = 1 },
drop = "homedecor:cobweb_corner"
})
minetest.register_node(":homedecor:cobweb_plantlike", {
homedecor.register("cobweb_plantlike", {
description = S("Cobweb"),
drawtype = "plantlike",
tiles = { "homedecor_cobweb_plantlike.png" },
@ -96,7 +108,7 @@ minetest.register_node(":homedecor:cobweb_plantlike", {
walkable = false,
selection_box = { type = "regular" },
visual_scale = 1.189,
groups = { snappy = 3, liquid=3, not_in_creative_inventory = 1 },
groups = { snappy = 3, liquid=3, dig_glass = 1, not_in_creative_inventory = 1 },
drop = "homedecor:cobweb_corner"
})
@ -157,14 +169,3 @@ function homedecor_cobweb.rotate(pos)
end
end
-- crafting
minetest.register_craft( {
output = "homedecor:cobweb_corner 5",
recipe = {
{ "farming:string", "", "farming:string" },
{ "", "farming:string", "" },
{ "farming:string", "", "farming:string" }
},
})

View File

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

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