1
0
mirror of https://github.com/mt-mods/homedecor_modpack.git synced 2025-06-29 13:20:44 +02:00

Compare commits

...

78 Commits

Author SHA1 Message Date
aa5571a18f Replace deprecated image fields in crafitem definitions
This has been a legacy field for at least 13 years now
2025-04-27 00:41:28 +02:00
b30d7b532b Merge pull request #92 from AntumMT/player_meta
Set string in PlayerMetaRef instead of in player object attribute
2025-01-10 00:02:37 +01:00
e5119cad05 Set string in PlayerMetaRef instead of in player object attribute 2025-01-06 00:22:36 -08:00
f7d5164559 fix https://github.com/mt-mods/homedecor_modpack/issues/88 - improve usage of use_texture_alpha to improve client rendering (#89) 2024-12-28 22:34:54 -05:00
ecbedd77de make the items opaque to improve rendering performance and hide bad geometry 2024-12-27 18:35:45 -05:00
7bf4f8e185 make the bottle opaque to improve rendering performance and hide bad geometry 2024-12-27 18:09:38 -05:00
b51d27135b Jump drive support for seats (#87)
* psuedo code for jump drive support

* avoid re-calculating node hash in loop

* cache new position for next move

* clean comment and minetest -> core

* cache seat offset for sofas

* use first found sitting position

* cleanup some comments

* bugfix: reported seat occupied when it wasn't

---------

Co-authored-by: Luke aka SwissalpS <Luke@SwissalpS.ws>
2024-12-22 13:59:17 -05:00
94e25c2192 free player when seat is dug (#84) 2024-11-06 23:32:14 -05:00
d8ae7a360d handle corner case where player dies while in chair 2024-11-05 01:20:34 -05:00
40898101be replace physics hell with hopefully better entity hell (#81)
* replace physics hell with hopefully better entity hell

* toss worthless optional depend

* no need to save entity if we dont remove it for some reason - crashes, etc

* fix sofas

* handle the rest of chairs

* catch malformed seating, since lua tables are 1 indexed

* niklp suggestion
2024-10-30 22:57:08 -04:00
79416b962c Add player_monoids support (#80)
* Add `player_monoids` support (*sometimes* broken for whatever reason, see xkcd#1739)

* .
2024-10-20 12:24:57 -04:00
00ee805ed7 Make half doors craftable (#79) 2024-10-15 18:44:55 -04:00
6fb69a56a5 Fix typo in German translation of "Dishwasher" 2024-10-05 19:22:13 +02:00
335559feb3 fix seating only working once till server restarts 2024-09-11 20:18:38 -04:00
a100d20d4d implements https://github.com/mt-mods/homedecor_modpack/issues/31 - show players sitting in seats (#76)
* implment https://github.com/mt-mods/homedecor_modpack/issues/31 - show players sitting in seats

* improve things
2024-09-09 12:11:43 -04:00
b2e5c81e4d switch over to using xcompats function 2024-09-08 19:26:36 -04:00
8f796e43af Replace deprecated get_metadata() call (#75) 2024-07-16 15:50:36 +10:00
1ef4837abe Use initial_properties for entities (#74) 2024-07-03 16:09:31 +10:00
d0ab9b82ce reorder registration of aliases to fix missing recipes, also reorder registration of dye recipes to show item craft first before recipe craft (#72) 2024-05-23 18:37:28 -04:00
fa3f7f816b trash unused function: homedecor.sit (#71) 2024-04-28 14:48:03 -04:00
d400e421ce Replace homedecor_blanktile.png w/ engine provided blank.png (#69) 2024-04-02 18:08:49 -04:00
792c23a7fe handle interact with node check in non mtg games with a fallback (#68) 2024-04-02 06:54:10 -04:00
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
080551e647 Is ground content (#64)
see https://github.com/pandorabox-io/pandorabox.io/issues/836
2024-02-29 18:49:24 -05:00
280924c02b add in xcompat for game agnostic handling dry (#63) 2024-02-25 12:04:20 -05:00
52f7c54702 Fix particlespawner removal when digging fancy fire 2023-10-27 10:30:10 +13:00
951f77491c Fix use of deprecated get_look_yaw() (#62) 2023-09-24 21:19:47 +10:00
46c71131c5 Fix wrong nodenames caused by last commit (#61) 2023-08-22 18:11:31 -04:00
80b4f242e0 Make (almost) all items translatable (#60)
* Make all items translatable

* add more
2023-08-21 18:47:26 -04:00
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
60d63cda6f Fix translation errors reported by i18ncheck.py (#58) 2023-08-15 18:28:39 -04:00
89703525e6 replace ABMs w/ nodetimers (#56)
* replace ABMs w/ nodetimers

* ux fixes

* disable oven properly
2023-06-10 21:56:54 -04:00
2c08c1f97b Fix lockable items having the same craft as the normal version (#55) 2023-06-01 21:59:14 -04:00
6bbaa7491d fix burnable wood large table top (#54) 2023-05-07 13:48:41 -04:00
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
77f2b0e05b Fix ugly looking fakegrass (#51) 2023-02-21 21:30:11 +11:00
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
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
0384943a0a fix https://github.com/mt-mods/homedecor_modpack/issues/49 2022-11-26 21:00:02 -05:00
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
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
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
6fa1bbeb1c fix wrong collision box for homedecor skylights (#45) 2022-08-19 14:15:47 -04:00
0403f47f86 fix https://github.com/mt-mods/homedecor_modpack/issues/44 2022-08-11 23:37:26 -04:00
0f57b2268a fix some seats (#43) 2022-08-11 21:31:20 -04:00
806c8c5e78 last craft 2022-08-03 14:25:51 +02:00
37bc0ed58d add more crafts 2022-08-03 14:25:51 +02:00
0a605bdb96 fix some crafts 2022-08-03 14:25:51 +02:00
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
acf17f2ba4 Replace deprecated functions (#37) 2022-06-18 18:44:02 +10:00
5ffdc26673 fix https://github.com/mt-mods/homedecor_modpack/issues/34 2022-05-16 22:41:02 -04:00
70381161fd fix recipes broken by 546cd711
fixes #35
2022-05-14 21:49:02 +10:00
fe1b9a1ef1 remove obsolete and broken shell script 2022-05-03 15:22:48 -04:00
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
3ba59dc2d5 fix almost all warning spam (#26) 2022-03-29 07:44:05 +02:00
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
694bfe5fe7 namespace plasmascreen and inbox (#22) 2022-02-14 17:54:32 -05:00
769e14fd11 refactor doors code (#21) 2022-02-11 15:44:45 -05:00
16bcc35ba2 remove legacy files 2022-02-10 20:26:41 -05:00
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
d68e90f017 add hopper support (#18) 2022-02-03 18:40:38 -05:00
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
21ae9f8c17 drop stairs api support and fix use_texture_alpha for stairs 2021-11-27 23:43:59 -05:00
63ad77e242 make beds sleepable https://github.com/mt-mods/homedecor_modpack/issues/13 2021-11-27 20:51:47 -05:00
32a32fa003 fix health expliot https://github.com/mt-mods/homedecor_modpack/issues/14 2021-11-27 20:43:25 -05:00
d9c42344ab fix removing item with inv contents https://github.com/mt-mods/homedecor_modpack/issues/3 2021-11-27 20:32:13 -05:00
f6f6f3a3c3 fix depreciated setyaw call https://github.com/mt-mods/homedecor_modpack/issues/7 2021-11-27 19:56:36 -05:00
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
240c735225 fix broken kitchen cabinet recipes 2021-05-18 16:47:44 +10:00
b6c64c6314 fix broken LBM reference for locked kitchen cabinets 2021-04-15 06:47:47 -04:00
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
81e0d4ea7e fix faucets/taps not working on kitchen sinks anymore 2021-03-30 20:55:34 -04:00
9ffe2b7d69 move some alises to their proper places. 2021-03-26 23:29:20 -04:00
0268767ac9 remove unused recipes from furniture mod
some deleted altogether as redundant,
others moved to the proper mods.
2021-03-26 23:27:13 -04:00
950210a6e3 move old 3dforniture-style table into the proper mod 2021-03-26 23:17:21 -04:00
c70fb1a1ed auto-combine tabletops with legs
If the player places table legs, and then places a tabletop while
pointing at the legs (from any side), the table and legs will
automatically be combined into a single node that can then have
something placed on top like usual.

This also gets rid of those redundant "utility" table nodes, since
these have always basically just been a set of legs, and a copy
of the small square wood table.  Now they're merged into the above
feature, and aliased as appropriate.

Tecccccccccchhnically, wood legs should only have been allowed to
combine with wooden tabletops...  then I googled around a bit,
and found a number of glass tables with wooden legs that were
surprisingly similar to the in-game versions.
2021-03-26 23:08:06 -04:00
40cd59aa24 get rid of old table conversion abms 2021-03-26 17:02:25 -04:00
da1f2b1430 use swap_node(), not set_node() 2021-03-26 09:44:02 -04:00
505 changed files with 7435 additions and 8288 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: ""

45
.luacheckrc Normal file
View File

@ -0,0 +1,45 @@
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",
xcompat = {fields = {"player"}},
}
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",
"player_monoids"
}

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 end
if minetest.get_modpath("moreblocks") then 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", "tar", "building_blocks", "Tar")
stairsplus:register_alias_all("building_blocks", "marble", "building_blocks", "Marble") 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") stairsplus:register_alias_all("moreblocks", "tar", "building_blocks", "Tar")
if minetest.get_modpath("gloopblocks") then if minetest.get_modpath("gloopblocks") then
@ -40,8 +33,11 @@ if not minetest.get_modpath("technic") then
description = S("Granite"), description = S("Granite"),
tiles = { "technic_granite.png" }, tiles = { "technic_granite.png" },
is_ground_content = true, is_ground_content = true,
groups = {cracky=1}, groups = {cracky=1, dig_stone=2, pickaxey=5},
sounds = default.node_sound_stone_defaults(), _mcl_hardness=1.6,
_sound_def = {
key = "node_sound_stone_defaults",
},
}) })
minetest.register_craft({ minetest.register_craft({
output = "technic:granite 9", output = "technic:granite 9",

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -2,12 +2,12 @@ local S = minetest.get_translator("building_blocks")
minetest.register_craftitem("building_blocks:sticks", { minetest.register_craftitem("building_blocks:sticks", {
description = S("Small bundle of sticks"), description = S("Small bundle of sticks"),
image = "building_blocks_sticks.png", inventory_image = "building_blocks_sticks.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
}) })
minetest.register_craftitem("building_blocks:tar_base", { minetest.register_craftitem("building_blocks:tar_base", {
description = S("Tar base"), description = S("Tar base"),
image = "building_blocks_tar_base.png", inventory_image = "building_blocks_tar_base.png",
}) })
minetest.register_tool("building_blocks:knife", { minetest.register_tool("building_blocks:knife", {

View File

@ -1,3 +1,5 @@
local materials = homedecor.materials
if minetest.get_modpath("moreblocks") then if minetest.get_modpath("moreblocks") then
minetest.register_craft({ minetest.register_craft({
output = 'building_blocks:sticks 2', output = 'building_blocks:sticks 2',
@ -20,15 +22,15 @@ end
minetest.register_craft({ minetest.register_craft({
output = 'building_blocks:Adobe 3', output = 'building_blocks:Adobe 3',
recipe = { recipe = {
{"default:sand"}, {materials.sand},
{"default:clay"}, {materials.clay_lump},
{"group:stick"}, {"group:stick"},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'building_blocks:brobble_spread 4', output = 'building_blocks:brobble_spread 4',
recipe = { recipe = {
{"default:brick", "default:cobble", "default:brick"}, {materials.brick, materials.cobble, materials.brick},
} }
}) })
minetest.register_craft({ minetest.register_craft({
@ -42,20 +44,20 @@ minetest.register_craft({
output = 'building_blocks:fakegrass 2', output = 'building_blocks:fakegrass 2',
recipe = { recipe = {
{'group:leaves'}, {'group:leaves'},
{"default:dirt"}, {materials.dirt},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'building_blocks:Fireplace 1', output = 'building_blocks:Fireplace 1',
recipe = { recipe = {
{"default:steel_ingot", "building_blocks:sticks", "default:steel_ingot"}, {materials.steel_ingot, "building_blocks:sticks", materials.steel_ingot},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'building_blocks:grate 1', output = 'building_blocks:grate 1',
recipe = { recipe = {
{"default:steel_ingot", "default:steel_ingot"}, {materials.steel_ingot, materials.steel_ingot},
{"default:glass", "default:glass"}, {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({ minetest.register_craft({
output = 'building_blocks:gravel_spread 4', output = 'building_blocks:gravel_spread 4',
recipe = { recipe = {
{"default:gravel", "default:gravel", "default:gravel"}, {materials.gravel, materials.gravel, materials.gravel},
} }
}) })
end end
minetest.register_craft({ if minetest.get_modpath("default") then
output = 'building_blocks:hardwood 2', minetest.register_craft({
recipe = { output = 'building_blocks:hardwood 2',
{"default:wood", "default:junglewood"}, recipe = {
{"default:junglewood", "default:wood"}, {"default:wood", "default:junglewood"},
} {"default:junglewood", "default:wood"},
}) }
minetest.register_craft({ })
output = 'building_blocks:hardwood 2', minetest.register_craft({
recipe = { output = 'building_blocks:hardwood 2',
{"default:junglewood", "default:wood"}, recipe = {
{"default:wood", "default:junglewood"}, {"default:junglewood", "default:wood"},
} {"default:wood", "default:junglewood"},
}) }
})
end
minetest.register_craft({ minetest.register_craft({
output = 'building_blocks:knife 1', output = 'building_blocks:knife 1',
recipe = { recipe = {
@ -92,9 +96,9 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
output = "building_blocks:Marble 9", output = "building_blocks:Marble 9",
recipe = { recipe = {
{"default:clay", "group:tar_block", "default:clay"}, {materials.clay_lump, "group:tar_block", materials.clay_lump},
{"group:tar_block","default:clay", "group:tar_block"}, {"group:tar_block",materials.clay_lump, "group:tar_block"},
{"default:clay", "group:tar_block","default:clay"}, {materials.clay_lump, "group:tar_block",materials.clay_lump},
} }
}) })
minetest.register_craft({ minetest.register_craft({
@ -113,15 +117,15 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
output = 'building_blocks:tar_base 4', output = 'building_blocks:tar_base 4',
recipe = { recipe = {
{"default:coal_lump", "default:gravel"}, {materials.coal_lump, materials.gravel},
{"default:gravel", "default:coal_lump"} {materials.gravel, materials.coal_lump}
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'building_blocks:tar_base 4', output = 'building_blocks:tar_base 4',
recipe = { recipe = {
{"default:gravel", "default:coal_lump"}, {materials.gravel, materials.coal_lump},
{"default:coal_lump", "default:gravel"} {materials.coal_lump, materials.gravel}
} }
}) })
minetest.register_craft({ minetest.register_craft({
@ -140,14 +144,14 @@ minetest.register_craft({
output = 'building_blocks:woodglass 1', output = 'building_blocks:woodglass 1',
recipe = { recipe = {
{"group:wood"}, {"group:wood"},
{"default:glass"}, {materials.glass_block},
} }
}) })
minetest.register_craft({ minetest.register_craft({
type = "cooking", type = "cooking",
output = "building_blocks:smoothglass", output = "building_blocks:smoothglass",
recipe = "default:glass" recipe = materials.glass_block
}) })
minetest.register_craft({ minetest.register_craft({
type = "cooking", 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 S = minetest.get_translator("fake_fire")
local fake_fire_reload_particles_nodes = {}
local function fire_particles_on(pos) -- 3 layers of fire local function fire_particles_on(pos) -- 3 layers of fire
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local id1 = minetest.add_particlespawner({ -- 1 layer big particles fire 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, minsize = 4, maxsize = 8,
texture = "smoke_particle.png", texture = "smoke_particle.png",
}) })
this_spawner_meta:set_int("smoky", id)
if chimney == 1 then if chimney == 1 then
this_spawner_meta:set_int("smoky", id)
this_spawner_meta:set_int("sound", 0) this_spawner_meta:set_int("sound", 0)
else else
s_handle = minetest.sound_play("fire_small", { s_handle = minetest.sound_play("fire_small", {
@ -111,6 +113,7 @@ local function start_fire_effects(pos, node, clicker, chimney)
max_hear_distance = 5, max_hear_distance = 5,
loop = true loop = true
}) })
fire_particles_off(pos)
fire_particles_on(pos) fire_particles_on(pos)
this_spawner_meta:set_int("sound", s_handle) this_spawner_meta:set_int("sound", s_handle)
end end
@ -142,7 +145,9 @@ minetest.register_node("fake_fire:ice_fire", {
drawtype = "plantlike", drawtype = "plantlike",
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", 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, sunlight_propagates = true,
buildable_to = true, buildable_to = true,
walkable = false, walkable = false,
@ -158,6 +163,7 @@ minetest.register_node("fake_fire:ice_fire", {
end, end,
on_destruct = function (pos) on_destruct = function (pos)
stop_smoke(pos) stop_smoke(pos)
fire_particles_off(pos)
minetest.sound_play("fire_extinguish", { minetest.sound_play("fire_extinguish", {
pos = pos, max_hear_distance = 5 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}, 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", { minetest.register_node("fake_fire:fancy_fire", {
inventory_image = "fancy_fire_inv.png", inventory_image = "fancy_fire_inv.png",
description = S("Fancy Fire"), description = S("Fancy Fire"),
@ -179,7 +187,10 @@ minetest.register_node("fake_fire:fancy_fire", {
mesh = "fancy_fire.obj", mesh = "fancy_fire.obj",
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", 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, sunlight_propagates = true,
light_source = 13, light_source = 13,
walkable = false, walkable = false,
@ -188,10 +199,11 @@ minetest.register_node("fake_fire:fancy_fire", {
selection_box = sbox, selection_box = sbox,
tiles = { tiles = {
"basic_materials_concrete_block.png", "basic_materials_concrete_block.png",
"default_junglewood.png", wtex,
"fake_fire_empty_tile.png" "fake_fire_empty_tile.png"
}, },
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
fire_particles_off(pos)
fire_particles_on(pos) fire_particles_on(pos)
return itemstack return itemstack
end, end,
@ -223,25 +235,46 @@ minetest.register_node("fake_fire:embers", {
aspect_w=16, aspect_h=16, length=2}}, aspect_w=16, aspect_h=16, length=2}},
}, },
light_source = 9, light_source = 9,
groups = {crumbly=3}, groups = {crumbly=3, dig_stone=2, handy=1},
is_ground_content = false,
_mcl_hardness=0.6,
paramtype = "light", 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 -- CHIMNEYS
local materials = { local materials = {
{ "stone", S("Stone chimney top") }, { "stone", S("Stone chimney top"), minetest.registered_nodes["mapgen_stone"].tiles[1] },
{ "sandstone", S("Sandstone chimney top") }, { "sandstone", S("Sandstone chimney top"), sandstone_tex },
} }
for _, mat in ipairs(materials) do 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, { minetest.register_node("fake_fire:chimney_top_"..name, {
description = desc, description = desc,
tiles = {"default_"..name..".png^chimney_top.png", "default_"..name..".png"}, tiles = {tex.."^chimney_top.png", tex},
groups = {snappy=3}, groups = {snappy=3, dig_stone=2, handy=1},
is_ground_content = false,
_mcl_hardness=0.6,
paramtype = "light", paramtype = "light",
sounds = default.node_sound_stone_defaults(), _sound_def = {
key = "node_sound_stone_defaults",
},
drawtype = "nodebox", drawtype = "nodebox",
node_box = { node_box = {
type = "fixed", type = "fixed",
@ -257,37 +290,42 @@ for _, mat in ipairs(materials) do
end end
}) })
minetest.register_craft({ if minetest.get_modpath("default") then
type = "shapeless", minetest.register_craft({
output = 'fake_fire:chimney_top_'..name, type = "shapeless",
recipe = {"default:torch", "stairs:slab_"..name} output = 'fake_fire:chimney_top_'..name,
}) recipe = {"default:torch", "stairs:slab_"..name}
})
end
end end
minetest.register_alias("fake_fire:flint_and_steel", "fire:flint_and_steel") minetest.register_alias("fake_fire:flint_and_steel", "fire:flint_and_steel")
minetest.override_item("default:ice", { if minetest.get_modpath("default") then
on_ignite = function(pos, igniter) minetest.override_item("default:ice", {
local flame_pos = {x = pos.x, y = pos.y + 1, z = pos.z} on_ignite = function(pos, igniter)
if minetest.get_node(flame_pos).name == "air" then local flame_pos = {x = pos.x, y = pos.y + 1, z = pos.z}
minetest.set_node(flame_pos, {name = "fake_fire:ice_fire"}) if minetest.get_node(flame_pos).name == "air" then
minetest.set_node(flame_pos, {name = "fake_fire:ice_fire"})
end
end end
end })
}) end
-- CRAFTS -- 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({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = 'fake_fire:embers', output = 'fake_fire:fancy_fire',
recipe = {"default:torch", "group:wood", "default:torch"} recipe = {"default:torch", "building_blocks:sticks", "default:torch" }
}) })
end
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:fancy_fire',
recipe = {"default:torch", "building_blocks:sticks", "default:torch" }
})
-- ALIASES -- ALIASES
@ -302,10 +340,23 @@ minetest.register_alias("fake_fire:flint", "fake_fire:flint_and_steel")
minetest.register_lbm({ minetest.register_lbm({
name = "fake_fire:reload_particles", name = "fake_fire:reload_particles",
label = "restart fire particles on reload", label = "restart fire particles on reload",
nodenames = {"fake_fire:fancy_fire"}, nodenames = { "fake_fire:fancy_fire" },
run_at_every_load = true, run_at_every_load = true,
action = function(pos, node) action = function(pos, node)
fire_particles_off(pos) fire_particles_off(pos)
fire_particles_on(pos) fire_particles_on(pos)
end 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 # textdomain: fake_fire
Ice fire=Eisfeuer
### init.lua ###
Fancy Fire=Schönes Feuer Fancy Fire=Schönes Feuer
Glowing Embers=Glühende Asche Glowing Embers=Glühende Asche
Ice fire=Eisfeuer
Sandstone chimney top=Sandsteinschornsteinaufsatz
Stone chimney top=Steinschornsteinaufsatz Stone chimney top=Steinschornsteinaufsatz
Sandstone chimney top=Sandsteinschornsteinaufsatz

View File

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

View File

@ -1,10 +1,6 @@
# textdomain: fake_fire # textdomain: fake_fire
Ice fire=Feu glacé
### init.lua ###
Fancy Fire=Feu décoratif Fancy Fire=Feu décoratif
Glowing Embers=Braises incandescentes 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 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 # textdomain: fake_fire
Ice fire=Api Ais
### init.lua ###
Fancy Fire=Api Hiasan Fancy Fire=Api Hiasan
Glowing Embers=Bara Api Glowing Embers=Bara Api
Ice fire=Api Ais
Sandstone chimney top=Kepala Serombong Batu Pasir
Stone chimney top=Kepala Serombong Batu Stone chimney top=Kepala Serombong Batu
Sandstone chimney top=Kepala Serombong Batu Pasir

View File

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

View File

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

View File

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

View File

@ -1,2 +1,2 @@
name = fake_fire 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", { if minetest.get_modpath("default") then
drawtype = "mesh", minetest.override_item("default:bookshelf", {
mesh = "homedecor_3d_bookshelf.obj", drawtype = "mesh",
tiles = { mesh = "homedecor_3d_bookshelf.obj",
"default_wood.png", tiles = {
"default_wood.png^homedecor_3d_bookshelf_inside_back.png", "default_wood.png",
"homedecor_3d_bookshelf_books.png", "default_wood.png^homedecor_3d_bookshelf_inside_back.png",
}, "homedecor_3d_bookshelf_books.png",
paramtype = "light", },
paramtype2 = "facedir", paramtype = "light",
}) paramtype2 = "facedir",
})
end
if minetest.get_modpath("vessels") then if minetest.get_modpath("vessels") then
minetest.override_item("vessels:shelf", { minetest.override_item("vessels:shelf", {
@ -21,7 +23,6 @@ if minetest.get_modpath("vessels") then
}, },
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
use_texture_alpha = true
}) })
local sbox = { local sbox = {
@ -35,7 +36,6 @@ if minetest.get_modpath("vessels") then
tiles = {"homedecor_3d_vessels_shelf_glass.png"}, tiles = {"homedecor_3d_vessels_shelf_glass.png"},
inventory_image = "homedecor_3d_vessels_glass_bottle_inv.png", inventory_image = "homedecor_3d_vessels_glass_bottle_inv.png",
wield_image = "homedecor_3d_vessels_glass_bottle_inv.png", wield_image = "homedecor_3d_vessels_glass_bottle_inv.png",
use_texture_alpha = true,
selection_box = sbox selection_box = sbox
}) })
@ -54,7 +54,6 @@ if minetest.get_modpath("vessels") then
tiles = {"homedecor_3d_vessels_shelf_glass.png"}, tiles = {"homedecor_3d_vessels_shelf_glass.png"},
inventory_image = "homedecor_3d_vessels_drinking_glass_inv.png", inventory_image = "homedecor_3d_vessels_drinking_glass_inv.png",
wield_image = "homedecor_3d_vessels_drinking_glass_inv.png", wield_image = "homedecor_3d_vessels_drinking_glass_inv.png",
use_texture_alpha = true,
selection_box = sbox selection_box = sbox
}) })
end end
@ -92,16 +91,22 @@ if minetest.get_modpath("doors") then
local def local def
for _,mat in ipairs({"wood", "steel"}) do for _,mat in ipairs({"wood", "steel"}) do
def = table.copy(minetest.registered_nodes["doors:door_"..mat.."_a"]) 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" def.mesh = "homedecor_3d_door_"..mat.."_a.obj"
minetest.register_node(":doors:door_"..mat.."_a", def) minetest.register_node(":doors:door_"..mat.."_a", def)
def = table.copy(minetest.registered_nodes["doors:door_"..mat.."_b"]) 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" def.mesh = "homedecor_3d_door_"..mat.."_b.obj"
minetest.register_node(":doors:door_"..mat.."_b", def) minetest.register_node(":doors:door_"..mat.."_b", def)
end end
for _,mat in ipairs({"", "_steel"}) do for _,mat in ipairs({"", "_steel"}) do
def = table.copy(minetest.registered_nodes["doors:trapdoor"..mat]) def = table.copy(minetest.registered_nodes["doors:trapdoor"..mat])
def.groups.handy = 1
def._mcl_hardness=0.6
def.drawtype = "mesh" def.drawtype = "mesh"
def.mesh = "homedecor_3d_trapdoor"..mat..".obj" def.mesh = "homedecor_3d_trapdoor"..mat..".obj"
def.tiles = { def.tiles = {
@ -111,6 +116,8 @@ if minetest.get_modpath("doors") then
minetest.register_node(":doors:trapdoor"..mat, def) minetest.register_node(":doors:trapdoor"..mat, def)
def = table.copy(minetest.registered_nodes["doors:trapdoor"..mat.."_open"]) 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.mesh = "homedecor_3d_trapdoor"..mat.."_open.obj"
def.drawtype = "mesh" def.drawtype = "mesh"
def.tiles = { def.tiles = {

View File

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

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 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)"), description = S("Bathroom/kitchen tiles (dark)"),
tiles = { tiles = {
"homedecor_bathroom_tiles_bg.png" "homedecor_bathroom_tiles_bg.png"
@ -13,13 +16,24 @@ minetest.register_node(":homedecor:bathroom_tiles_dark", {
paramtype = "light", paramtype = "light",
paramtype2 = "color", paramtype2 = "color",
palette = "unifieddyes_palette_extended.png", palette = "unifieddyes_palette_extended.png",
groups = {cracky=3, ud_param2_colorable = 1}, groups = {cracky=3, ud_param2_colorable = 1, dig_stone = 2},
sounds = default.node_sound_stone_defaults(), _sound_def = {
key = "node_sound_stone_defaults",
},
on_construct = unifieddyes.on_construct, on_construct = unifieddyes.on_construct,
on_dig = unifieddyes.on_dig, 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)"), description = S("Bathroom/kitchen tiles (medium)"),
tiles = { tiles = {
"homedecor_bathroom_tiles_bg.png" "homedecor_bathroom_tiles_bg.png"
@ -30,13 +44,24 @@ minetest.register_node(":homedecor:bathroom_tiles_medium", {
paramtype = "light", paramtype = "light",
paramtype2 = "color", paramtype2 = "color",
palette = "unifieddyes_palette_extended.png", palette = "unifieddyes_palette_extended.png",
groups = {cracky=3, ud_param2_colorable = 1}, groups = {cracky=3, ud_param2_colorable = 1, dig_stone = 2},
sounds = default.node_sound_stone_defaults(), _sound_def = {
key = "node_sound_stone_defaults",
},
on_construct = unifieddyes.on_construct, on_construct = unifieddyes.on_construct,
on_dig = unifieddyes.on_dig, 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)"), description = S("Bathroom/kitchen tiles (light)"),
tiles = { tiles = {
"homedecor_bathroom_tiles_bg.png" "homedecor_bathroom_tiles_bg.png"
@ -47,10 +72,21 @@ minetest.register_node(":homedecor:bathroom_tiles_light", {
paramtype = "light", paramtype = "light",
paramtype2 = "color", paramtype2 = "color",
palette = "unifieddyes_palette_extended.png", palette = "unifieddyes_palette_extended.png",
groups = {cracky=3, ud_param2_colorable = 1}, groups = {cracky=3, ud_param2_colorable = 1, dig_stone = 2},
sounds = default.node_sound_stone_defaults(), _sound_def = {
key = "node_sound_stone_defaults",
},
on_construct = unifieddyes.on_construct, on_construct = unifieddyes.on_construct,
on_dig = unifieddyes.on_dig, on_dig = unifieddyes.on_dig,
crafts = {
{
output = "homedecor:bathroom_tiles_light 4",
recipe = {
{ "group:marble", "group:marble" },
{ "group:marble", "group:marble" }
},
}
}
}) })
local tr_cbox = { local tr_cbox = {
@ -63,20 +99,30 @@ homedecor.register("towel_rod", {
mesh = "homedecor_towel_rod.obj", mesh = "homedecor_towel_rod.obj",
tiles = { tiles = {
"homedecor_generic_terrycloth.png", "homedecor_generic_terrycloth.png",
"default_wood.png", wood_tex,
}, },
inventory_image = "homedecor_towel_rod_inv.png", inventory_image = "homedecor_towel_rod_inv.png",
selection_box = tr_cbox, selection_box = tr_cbox,
walkable = false, walkable = false,
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3}, groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3,dig_tree=2},
sounds = default.node_sound_defaults(), _sound_def = {
key = "node_sound_default",
},
crafts = {
{
recipe = {
{ "group:wood", "group:stick", "group:wood" },
{ "", "building_blocks:terrycloth_towel", "" },
},
}
}
}) })
homedecor.register("medicine_cabinet", { homedecor.register("medicine_cabinet", {
description = S("Medicine cabinet"), description = S("Medicine cabinet"),
mesh = "homedecor_medicine_cabinet.obj", mesh = "homedecor_medicine_cabinet.obj",
tiles = { tiles = {
'default_wood.png', wood_tex,
'homedecor_medicine_cabinet_mirror.png' 'homedecor_medicine_cabinet_mirror.png'
}, },
inventory_image = "homedecor_medicine_cabinet_inv.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} fixed = {-0.3125, -0.1875, 0.3125, 0.3125, 0.5, 0.5}
}, },
walkable = false, walkable = false,
groups = { snappy = 3 }, groups = { snappy = 3, dig_stone = 2 },
sounds = default.node_sound_wood_defaults(), _sound_def = {
key = "node_sound_wood_defaults",
},
on_punch = function(pos, node, puncher, pointed_thing) on_punch = function(pos, node, puncher, pointed_thing)
node.name = "homedecor:medicine_cabinet_open" node.name = "homedecor:medicine_cabinet_open"
minetest.swap_node(pos, node) minetest.swap_node(pos, node)
end, end,
can_dig = function(pos)
local inv = minetest.get_meta(pos):get_inventory("main")
return inv:is_empty("main")
end,
infotext=S("Medicine cabinet"), infotext=S("Medicine cabinet"),
inventory = { inventory = {
size=6, 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", { homedecor.register("medicine_cabinet_open", {
mesh = "homedecor_medicine_cabinet_open.obj", mesh = "homedecor_medicine_cabinet_open.obj",
tiles = { tiles = {
'default_wood.png', wood_tex,
'homedecor_medicine_cabinet_mirror.png', 'homedecor_medicine_cabinet_mirror.png',
'homedecor_medicine_cabinet_inside.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} fixed = {-0.3125, -0.1875, -0.25, 0.3125, 0.5, 0.5}
}, },
walkable = false, 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", drop = "homedecor:medicine_cabinet",
on_punch = function(pos, node, puncher, pointed_thing) on_punch = function(pos, node, puncher, pointed_thing)
node.name = "homedecor:medicine_cabinet" node.name = "homedecor:medicine_cabinet"
minetest.swap_node(pos, node) minetest.swap_node(pos, node)
end, end,
can_dig = function(pos)
local inv = minetest.get_meta(pos):get_inventory("main")
return inv:is_empty("main")
end,
}) })
-- "Sanitation" related -- "Sanitation" related
@ -143,12 +208,23 @@ homedecor.register("toilet", {
}, },
selection_box = toilet_sbox, selection_box = toilet_sbox,
node_box = toilet_cbox, node_box = toilet_cbox,
groups = {cracky=3}, groups = {cracky=3, dig_stone = 2},
sounds = default.node_sound_stone_defaults(), _sound_def = {
key = "node_sound_stone_defaults",
},
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
node.name = "homedecor:toilet_open" node.name = "homedecor:toilet_open"
minetest.set_node(pos, node) minetest.set_node(pos, node)
end end,
crafts = {
{
recipe = {
{ "","","water_bucket"},
{ "group:marble","group:marble", "group:marble" },
{ "", "empty_bucket", "" },
},
}
}
}) })
homedecor.register("toilet_open", { homedecor.register("toilet_open", {
@ -157,14 +233,16 @@ homedecor.register("toilet_open", {
"building_blocks_marble.png", "building_blocks_marble.png",
"building_blocks_marble.png", "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 } { name = "homedecor_generic_metal.png", color = homedecor.color_med_grey }
}, },
selection_box = toilet_sbox, selection_box = toilet_sbox,
collision_box = toilet_cbox, collision_box = toilet_cbox,
drop = "homedecor:toilet", drop = "homedecor:toilet",
groups = {cracky=3}, groups = {cracky=3, dig_stone = 2},
sounds = default.node_sound_stone_defaults(), _sound_def = {
key = "node_sound_stone_defaults",
},
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
node.name = "homedecor:toilet" node.name = "homedecor:toilet"
minetest.set_node(pos, node) minetest.set_node(pos, node)
@ -188,13 +266,24 @@ homedecor.register("toilet_paper", {
mesh = "homedecor_toilet_paper.obj", mesh = "homedecor_toilet_paper.obj",
tiles = { tiles = {
"homedecor_generic_quilted_paper.png", "homedecor_generic_quilted_paper.png",
"default_wood.png" wood_tex
}, },
inventory_image = "homedecor_toilet_paper_inv.png", inventory_image = "homedecor_toilet_paper_inv.png",
selection_box = tp_cbox, selection_box = tp_cbox,
walkable = false, walkable = false,
groups = {snappy=3,oddly_breakable_by_hand=3}, groups = {snappy=3,oddly_breakable_by_hand=3, dig_stone = 2},
sounds = default.node_sound_defaults(), _sound_def = {
key = "node_sound_default",
},
crafts = {
{
recipe = {
{ "", "paper", "paper" },
{ "group:wood", "group:stick", "paper" },
{ "", "paper", "paper" },
},
}
}
}) })
--Sink --Sink
@ -221,16 +310,27 @@ homedecor.register("sink", {
tiles = { tiles = {
"building_blocks_marble.png", "building_blocks_marble.png",
"building_blocks_marble.png", "building_blocks_marble.png",
"default_water.png" water_tex
}, },
use_texture_alpha = "blend",
inventory_image="homedecor_bathroom_sink_inv.png", inventory_image="homedecor_bathroom_sink_inv.png",
selection_box = sink_sbox, selection_box = sink_sbox,
collision_box = sink_cbox, collision_box = sink_cbox,
groups = {cracky=3}, groups = {cracky=3, dig_stone = 2},
sounds = default.node_sound_stone_defaults(), _sound_def = {
key = "node_sound_stone_defaults",
},
on_destruct = function(pos) on_destruct = function(pos)
homedecor.stop_particle_spawner({x=pos.x, y=pos.y+1, z=pos.z}) 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 --Taps
@ -239,9 +339,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}) local below = minetest.get_node_or_nil({x=pos.x, y=pos.y-1, z=pos.z})
if below and if below and
below.name == "homedecor:shower_tray" or below.name == "homedecor:shower_tray" or
below.name == "homedecor:sink" or string.find(below.name, "homedecor:.*sink") then
below.name == "homedecor:kitchen_cabinet_with_sink" or
below.name == "homedecor:kitchen_cabinet_with_sink_locked" then
local particledef = { local particledef = {
outlet = { x = 0, y = -0.44, z = 0.28 }, outlet = { x = 0, y = -0.44, z = 0.28 },
velocity_x = { min = -0.1, max = 0.1 }, velocity_x = { min = -0.1, max = 0.1 },
@ -271,11 +369,20 @@ homedecor.register("taps", {
fixed = { -4/16, -7/16, 4/16, 4/16, -4/16, 8/16 }, fixed = { -4/16, -7/16, 4/16, 4/16, -4/16, 8/16 },
}, },
walkable = false, walkable = false,
groups = {cracky=3}, groups = {cracky=3, dig_stone = 2},
sounds = default.node_sound_stone_defaults(), _sound_def = {
key = "node_sound_stone_defaults",
},
on_rightclick = taps_on_rightclick, on_rightclick = taps_on_rightclick,
on_destruct = homedecor.stop_particle_spawner, 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", { homedecor.register("taps_brass", {
@ -294,11 +401,20 @@ homedecor.register("taps_brass", {
fixed = { -4/16, -7/16, 4/16, 4/16, -4/16, 8/16 }, fixed = { -4/16, -7/16, 4/16, 4/16, -4/16, 8/16 },
}, },
walkable = false, walkable = false,
groups = {cracky=3}, groups = {cracky=3, dig_stone = 2},
sounds = default.node_sound_stone_defaults(), _sound_def = {
key = "node_sound_stone_defaults",
},
on_rightclick = taps_on_rightclick, on_rightclick = taps_on_rightclick,
on_destruct = homedecor.stop_particle_spawner, on_destruct = homedecor.stop_particle_spawner,
on_rotate = sc_disallow or nil, on_rotate = sc_disallow or nil,
crafts = {
{
recipe = {
{ "basic_materials:brass_ingot","water_bucket", "basic_materials:brass_ingot" },
},
}
}
}) })
--Shower Tray --Shower Tray
@ -320,12 +436,21 @@ homedecor.register("shower_tray", {
}, },
}, },
selection_box = homedecor.nodebox.slab_y(0.1), selection_box = homedecor.nodebox.slab_y(0.1),
groups = {cracky=2}, groups = {cracky=2, dig_stone = 2},
sounds = default.node_sound_stone_defaults(), _sound_def = {
key = "node_sound_stone_defaults",
},
on_destruct = function(pos) 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+2, z=pos.z}) -- the showerhead
homedecor.stop_particle_spawner({x=pos.x, y=pos.y+1, z=pos.z}) -- the taps, if any 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 --Shower Head
@ -345,7 +470,7 @@ homedecor.register("shower_head", {
}, },
inventory_image = "homedecor_shower_head_inv.png", inventory_image = "homedecor_shower_head_inv.png",
description = S("Shower Head"), description = S("Shower Head"),
groups = {snappy=3}, groups = {snappy=3, dig_stone = 2},
selection_box = sh_cbox, selection_box = sh_cbox,
walkable = false, walkable = false,
on_rotate = sc_disallow or nil, on_rotate = sc_disallow or nil,
@ -368,7 +493,14 @@ homedecor.register("shower_head", {
end, end,
on_destruct = function(pos) on_destruct = function(pos)
homedecor.stop_particle_spawner(pos) homedecor.stop_particle_spawner(pos)
end end,
crafts = {
{
recipe = {
{"steel_ingot", "water_bucket"},
},
}
}
}) })
local tub_sbox = { local tub_sbox = {
@ -404,10 +536,21 @@ homedecor.register("bathtub_clawfoot_brass_taps", {
"homedecor_bathtub_clawfoot_bottom_inside.png", "homedecor_bathtub_clawfoot_bottom_inside.png",
}, },
description = S("Bathtub, clawfoot, with brass taps"), description = S("Bathtub, clawfoot, with brass taps"),
groups = {cracky=3}, groups = {cracky=3, dig_stone = 2},
selection_box = tub_sbox, selection_box = tub_sbox,
node_box = tub_cbox, 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", { homedecor.register("bathtub_clawfoot_chrome_taps", {
@ -422,10 +565,21 @@ homedecor.register("bathtub_clawfoot_chrome_taps", {
"homedecor_bathtub_clawfoot_bottom_inside.png", "homedecor_bathtub_clawfoot_bottom_inside.png",
}, },
description = S("Bathtub, clawfoot, with chrome taps"), description = S("Bathtub, clawfoot, with chrome taps"),
groups = {cracky=3}, groups = {cracky=3, dig_stone = 2},
selection_box = tub_sbox, selection_box = tub_sbox,
node_box = tub_cbox, 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 = { local bs_cbox = {
@ -445,10 +599,21 @@ homedecor.register("bathroom_set", {
}, },
inventory_image = "homedecor_bathroom_set_inv.png", inventory_image = "homedecor_bathroom_set_inv.png",
description = S("Bathroom sundries set"), description = S("Bathroom sundries set"),
groups = {snappy=3}, groups = {snappy=3, dig_stone = 2},
selection_box = bs_cbox, selection_box = bs_cbox,
walkable = false, 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 -- aliases
@ -520,45 +685,7 @@ minetest.register_lbm({
end end
}) })
-- crafting -- color 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" }
},
})
unifieddyes.register_color_craft({ unifieddyes.register_color_craft({
output = "homedecor:bathroom_tiles_light", output = "homedecor:bathroom_tiles_light",
@ -571,14 +698,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({ unifieddyes.register_color_craft({
output = "homedecor:bathroom_tiles_medium", output = "homedecor:bathroom_tiles_medium",
palette = "extended", palette = "extended",
@ -590,14 +709,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({ unifieddyes.register_color_craft({
output = "homedecor:bathroom_tiles_dark", output = "homedecor:bathroom_tiles_dark",
palette = "extended", palette = "extended",
@ -609,75 +720,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 # 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 (dark)=Badezimmer-/Küchenkacheln (dunkel)
Bathroom/kitchen tiles (light)=Badezimmer-/Küchenkacheln (hell)
Bathroom/kitchen tiles (medium)=Badezimmer-/Küchenkacheln (mittel) Bathroom/kitchen tiles (medium)=Badezimmer-/Küchenkacheln (mittel)
Bathtub, clawfoot, with brass taps=Badewanne, Krallenfuß, mit Messingwasserhähnen Bathroom/kitchen tiles (light)=Badezimmer-/Küchenkacheln (hell)
Bathtub, clawfoot, with chrome taps=Badewanne, Krallenfuß, mit Chromwasserhähnen Towel rod with towel=Handtuchhalter mit Handtuch
Medicine cabinet=Medizinschrank Medicine cabinet=Medizinschrank
Shower Head=Duschbrause
Shower Tray=Duschtasse
Toilet=Toilette Toilet=Toilette
Toilet paper=Toilettenpapier 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 # 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 (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) Bathroom/kitchen tiles (medium)=Azulejo de baño/cocina (tonos medios)
Bathtub, clawfoot, with brass taps= Bathroom/kitchen tiles (light)=Azulejo de baño/cocina (tonos claros)
Bathtub, clawfoot, with chrome taps= Towel rod with towel=Toallero con toalla
Medicine cabinet=Gabinete de medicinas Medicine cabinet=Gabinete de medicinas
Shower Head=Ducha
Shower Tray=Plato de ducha
Toilet=Inodoro Toilet=Inodoro
Toilet paper=Papel higiénico 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 # 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 (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) Bathroom/kitchen tiles (medium)=Carreaux de salle de bain ou cuisine (moyennes)
Bathtub, clawfoot, with brass taps=Baignoire sur pieds, avec robinetterie en laiton Bathroom/kitchen tiles (light)=Carreaux de salle de bain ou cuisine (claires)
Bathtub, clawfoot, with chrome taps=Baignoire sur pieds, avec robinetterie en chrome Towel rod with towel=Porte serviette et serviette
Medicine cabinet=Armoire à pharmacie Medicine cabinet=Armoire à pharmacie
Shower Head=Pomme de douche
Shower Tray=Bac de douche
Toilet=Toilettes Toilet=Toilettes
Toilet paper=Papier toilette 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 # textdomain: homedecor_bathroom
### init.lua ###
Bathroom Sink=
Bathroom sundries set=
Bathroom taps/faucet=
Bathroom taps/faucet (brass)=
Bathroom/kitchen tiles (dark)= Bathroom/kitchen tiles (dark)=
Bathroom/kitchen tiles (light)=
Bathroom/kitchen tiles (medium)= Bathroom/kitchen tiles (medium)=
Bathtub, clawfoot, with brass taps= Bathroom/kitchen tiles (light)=
Bathtub, clawfoot, with chrome taps= Towel rod with towel=
Medicine cabinet=Armadietto sotto il lavandino Medicine cabinet=Armadietto sotto il lavandino
Shower Head=Pigna della doccia
Shower Tray=Piatto della doccia
Toilet=Water Toilet=Water
Toilet paper=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 # 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 (dark)=Jubin Dapur/Bilik Mandi (Gelap)
Bathroom/kitchen tiles (light)=Jubin Dapur/Bilik Mandi (Cerah)
Bathroom/kitchen tiles (medium)=Jubin Dapur/Bilik Mandi (Biasa) Bathroom/kitchen tiles (medium)=Jubin Dapur/Bilik Mandi (Biasa)
Bathtub, clawfoot, with brass taps=Tab Mandi Berkaki Cakar, dengan Kepala Paip Loyang Bathroom/kitchen tiles (light)=Jubin Dapur/Bilik Mandi (Cerah)
Bathtub, clawfoot, with chrome taps=Tab Mandi Berkaki Cakar, dengan Kepala Paip Krom Towel rod with towel=Ampaian Beserta Tuala
Medicine cabinet=Kabinet Ubat Medicine cabinet=Kabinet Ubat
Shower Head=Kepala Pancuran
Shower Tray=Lubang Air Mandi
Toilet=Tandas Toilet=Tandas
Toilet paper=Tisu 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 # 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 (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) Bathroom/kitchen tiles (medium)=Azulejo de Banheiro/Cozinha (médio)
Bathtub, clawfoot, with brass taps= Bathroom/kitchen tiles (light)=Azulejo de Banheiro/Cozinha (claro)
Bathtub, clawfoot, with chrome taps= Towel rod with towel=Haste de Toalha com Toalha
Medicine cabinet=Armário de remédios Medicine cabinet=Armário de remédios
Shower Head=Chuveiro
Shower Tray=Ralo do Chuveiro
Toilet=Vaso Sanitário Toilet=Vaso Sanitário
Toilet paper=Papel higiênico 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 # 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 (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) Bathroom/kitchen tiles (medium)=Azulejo de Banheiro/Cozinha (médio)
Bathtub, clawfoot, with brass taps= Bathroom/kitchen tiles (light)=Azulejo de Banheiro/Cozinha (claro)
Bathtub, clawfoot, with chrome taps= Towel rod with towel=Haste de Toalha com Toalha
Medicine cabinet=Armário de remédios Medicine cabinet=Armário de remédios
Shower Head=Chuveiro
Shower Tray=Ralo do Chuveiro
Toilet=Vaso Sanitário Toilet=Vaso Sanitário
Toilet paper=Papel higiênico 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 # textdomain: homedecor_bathroom
### init.lua ###
Bathroom Sink=Раковина для ванной комнаты
Bathroom sundries set=Набор для ванных комнат
Bathroom taps/faucet=м
Bathroom taps/faucet (brass)=Краны(смесители) для ванной комнаты (латунь)
Bathroom/kitchen tiles (dark)=Плитка для ванной/кухни (тёмная) Bathroom/kitchen tiles (dark)=Плитка для ванной/кухни (тёмная)
Bathroom/kitchen tiles (light)=Плитка для ванной/кухни (светлая)
Bathroom/kitchen tiles (medium)=Плитка для ванной/кухни (обычная) Bathroom/kitchen tiles (medium)=Плитка для ванной/кухни (обычная)
Bathtub, clawfoot, with brass taps=Ванна на острых ножках с латунными кранами Bathroom/kitchen tiles (light)=Плитка для ванной/кухни (светлая)
Bathtub, clawfoot, with chrome taps=Ванна на острых ножках с хромированными кранами Towel rod with towel=Полотенцедержатель с полотенцем
Medicine cabinet=Медицинский кабинет Medicine cabinet=Медицинский кабинет
Shower Head=Душевая лейка
Shower Tray=Душевой поддон
Toilet=Туалет Toilet=Туалет
Toilet paper=Туалетная бумага 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 # textdomain: homedecor_bathroom
### init.lua ###
Bathroom Sink=浴室水槽
Bathroom sundries set=浴室杂物套装
Bathroom taps/faucet=浴室水龙头
Bathroom taps/faucet (brass)=黄铜浴室水龙头
Bathroom/kitchen tiles (dark)=深色浴室/厨房瓷砖 Bathroom/kitchen tiles (dark)=深色浴室/厨房瓷砖
Bathroom/kitchen tiles (light)=浅色浴室/厨房瓷砖
Bathroom/kitchen tiles (medium)=浴室/厨房瓷砖 Bathroom/kitchen tiles (medium)=浴室/厨房瓷砖
Bathtub, clawfoot, with brass taps=带黄铜水龙头的浴缸 Bathroom/kitchen tiles (light)=浅色浴室/厨房瓷砖
Bathtub, clawfoot, with chrome taps=带镀铬水龙头的浴缸 Towel rod with towel=毛巾杆
Medicine cabinet=药柜 Medicine cabinet=药柜
Shower Head=淋浴喷头
Shower Tray=淋浴盆
Toilet=卫生间 Toilet=卫生间
Toilet paper=厕纸 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 # textdomain: homedecor_bathroom
### init.lua ###
Bathroom Sink=
Bathroom sundries set=
Bathroom taps/faucet=
Bathroom taps/faucet (brass)=
Bathroom/kitchen tiles (dark)= Bathroom/kitchen tiles (dark)=
Bathroom/kitchen tiles (light)=
Bathroom/kitchen tiles (medium)= Bathroom/kitchen tiles (medium)=
Bathtub, clawfoot, with brass taps= Bathroom/kitchen tiles (light)=
Bathtub, clawfoot, with chrome taps= Towel rod with towel=
Medicine cabinet= Medicine cabinet=
Shower Head=
Shower Tray=
Toilet= Toilet=
Toilet paper= 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 name = homedecor_bathroom
description = Homedecor mod: bathroom description = Homedecor mod: bathroom
depends = homedecor_common, default, basic_materials, unifieddyes, building_blocks depends = homedecor_common
optional_depends = bucket, homedecor_fences, screwdriver 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 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 = { local bed_sbox = {
type = "wallmounted", type = "wallmounted",
wall_side = { -0.5, -0.5, -0.5, 0.5, 0.5, 1.5 } 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", { homedecor.register("bed_regular", {
mesh = "homedecor_bed_regular.obj", mesh = "homedecor_bed_regular.obj",
tiles = { tiles = {
{ name = "homedecor_bed_frame.png", color = 0xffffffff }, { name = "homedecor_bed_frame.png", color = 0xffffffff },
{ name = "default_wood.png", color = 0xffffffff }, { name = wood_tex, color = 0xffffffff },
{ name = "wool_white.png", color = 0xffffffff }, { name = wool_tex, color = 0xffffffff },
"wool_white.png", wool_tex,
{ name = "homedecor_bed_bottom.png", color = 0xffffffff }, { name = "homedecor_bed_bottom.png", color = 0xffffffff },
"wool_white.png^[brighten", -- pillow wool_tex.."^[brighten", -- pillow
}, },
inventory_image = "homedecor_bed_inv.png", inventory_image = "homedecor_bed_inv.png",
paramtype2 = "colorwallmounted", paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png", palette = "unifieddyes_palette_colorwallmounted.png",
description = S("Bed"), description = S("Bed"),
groups = {snappy=3, ud_param2_colorable = 1}, groups = {snappy=3, ud_param2_colorable = 1, dig_generic=2},
selection_box = bed_sbox, selection_box = bed_sbox,
node_box = bed_cbox, node_box = bed_cbox,
sounds = default.node_sound_wood_defaults(), _sound_def = {
key = "node_sound_wood_defaults",
},
on_rotate = sc_disallow or nil, on_rotate = sc_disallow or nil,
after_place_node = function(pos, placer, itemstack, pointed_thing) after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
@ -66,40 +71,52 @@ homedecor.register("bed_regular", {
local itemname = itemstack:get_name() local itemname = itemstack:get_name()
if itemname == "homedecor:bed_regular" then if itemname == "homedecor:bed_regular" then
homedecor.bed_expansion(pos, clicker, itemstack, pointed_thing, true) homedecor.bed_expansion(pos, clicker, itemstack, pointed_thing, true)
return itemstack elseif bed_on_rightclick then
-- else bed_on_rightclick(pos, node, clicker)
-- bed_on_rightclick(pos, node, clicker)
-- return itemstack
end 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", { homedecor.register("bed_extended", {
mesh = "homedecor_bed_extended.obj", mesh = "homedecor_bed_extended.obj",
tiles = { tiles = {
{ name = "homedecor_bed_frame.png", color = 0xffffffff }, { name = "homedecor_bed_frame.png", color = 0xffffffff },
{ name = "default_wood.png", color = 0xffffffff }, { name = wood_tex, color = 0xffffffff },
{ name = "wool_white.png", color = 0xffffffff }, { name = wool_tex, color = 0xffffffff },
"wool_white.png", wool_tex,
{ name = "homedecor_bed_bottom.png", color = 0xffffffff }, { name = "homedecor_bed_bottom.png", color = 0xffffffff },
"wool_white.png^[brighten", wool_tex.."^[brighten",
}, },
paramtype2 = "colorwallmounted", paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png", palette = "unifieddyes_palette_colorwallmounted.png",
selection_box = bed_sbox, selection_box = bed_sbox,
node_box = bed_cbox, node_box = bed_cbox,
groups = {snappy=3, ud_param2_colorable = 1}, groups = {snappy=3, ud_param2_colorable = 1, dig_generic=2, not_in_creative_inventory=1},
sounds = default.node_sound_wood_defaults(), _sound_def = {
key = "node_sound_wood_defaults",
},
expand = { forward = "air" }, expand = { forward = "air" },
on_rotate = sc_disallow or nil, on_rotate = sc_disallow or nil,
after_dig_node = function(pos, oldnode, oldmetadata, digger) after_dig_node = function(pos, oldnode, oldmetadata, digger)
homedecor.unextend_bed(pos) homedecor.unextend_bed(pos)
end, end,
on_dig = unifieddyes.on_dig, on_dig = unifieddyes.on_dig,
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-- bed_on_rightclick(pos, node, clicker) if bed_on_rightclick then
-- return itemstack bed_on_rightclick(pos, node, clicker)
-- end, end
return itemstack
end,
drop = "homedecor:bed_regular" drop = "homedecor:bed_regular"
}) })
@ -107,20 +124,22 @@ homedecor.register("bed_kingsize", {
mesh = "homedecor_bed_kingsize.obj", mesh = "homedecor_bed_kingsize.obj",
tiles = { tiles = {
{ name = "homedecor_bed_frame.png", color = 0xffffffff }, { name = "homedecor_bed_frame.png", color = 0xffffffff },
{ name = "default_wood.png", color = 0xffffffff }, { name = wood_tex, color = 0xffffffff },
{ name = "wool_white.png", color = 0xffffffff }, { name = wool_tex, color = 0xffffffff },
"wool_white.png", wool_tex,
{ name = "homedecor_bed_bottom.png", color = 0xffffffff }, { name = "homedecor_bed_bottom.png", color = 0xffffffff },
"wool_white.png^[brighten", wool_tex.."^[brighten",
}, },
paramtype2 = "colorwallmounted", paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png", palette = "unifieddyes_palette_colorwallmounted.png",
inventory_image = "homedecor_bed_kingsize_inv.png", inventory_image = "homedecor_bed_kingsize_inv.png",
description = S("Bed (king sized)"), 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, selection_box = kbed_sbox,
node_box = kbed_cbox, node_box = kbed_cbox,
sounds = default.node_sound_wood_defaults(), _sound_def = {
key = "node_sound_wood_defaults",
},
on_rotate = sc_disallow or nil, on_rotate = sc_disallow or nil,
after_place_node = function(pos, placer, itemstack, pointed_thing) after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
@ -133,10 +152,19 @@ homedecor.register("bed_kingsize", {
end end
end, end,
on_dig = unifieddyes.on_dig, on_dig = unifieddyes.on_dig,
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-- bed_on_rightclick(pos, node, clicker) if bed_on_rightclick then
-- return itemstack bed_on_rightclick(pos, node, clicker)
-- end, end
return itemstack
end,
crafts = {
{
recipe = {
{ "homedecor:bed_regular", "homedecor:bed_regular" }
},
}
}
}) })
for w, d in pairs({ ["mahogany"] = S("mahogany"), ["oak"] = S("oak") }) do 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 { -8/16, -8/16, -30/64, 8/16, -7/16, 8/16 } -- bottom
} }
}, },
groups = { snappy = 3 }, groups = { snappy = 3, dig_tree = 2 },
sounds = default.node_sound_wood_defaults(), _sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = { type = "regular" }, selection_box = { type = "regular" },
infotext=S("One-drawer Nightstand"), infotext=S("One-drawer Nightstand"),
inventory = { 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 { -7/16, -7/16, -32/64, 7/16, -1/16, -29/64 }, -- bottom drawer face
} }
}, },
groups = { snappy = 3 }, groups = { snappy = 3, dig_tree = 2 },
sounds = default.node_sound_wood_defaults(), _sound_def = {
key = "node_sound_wood_defaults",
},
selection_box = { type = "regular" }, selection_box = { type = "regular" },
infotext=S("Two-drawer Nightstand"), infotext=S("Two-drawer Nightstand"),
inventory = { inventory = {
@ -318,7 +350,7 @@ minetest.register_craft( {
output = "homedecor:nightstand_mahogany_one_drawer", output = "homedecor:nightstand_mahogany_one_drawer",
recipe = { recipe = {
"homedecor:nightstand_oak_one_drawer", "homedecor:nightstand_oak_one_drawer",
"dye:brown", homedecor.materials.dye_brown,
}, },
}) })
@ -333,7 +365,7 @@ minetest.register_craft( {
output = "homedecor:nightstand_mahogany_two_drawers", output = "homedecor:nightstand_mahogany_two_drawers",
recipe = { recipe = {
"homedecor:nightstand_oak_two_drawers", "homedecor:nightstand_oak_two_drawers",
"dye:brown", homedecor.materials.dye_brown,
}, },
}) })
@ -343,16 +375,6 @@ minetest.register_craft({
burntime = 30, 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({ unifieddyes.register_color_craft({
output = "homedecor:bed_regular", output = "homedecor:bed_regular",
palette = "wallmounted", 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({ unifieddyes.register_color_craft({
output = "homedecor:bed_kingsize", output = "homedecor:bed_kingsize",
palette = "wallmounted", palette = "wallmounted",

View File

@ -1,13 +1,9 @@
# textdomain: homedecor_bedroom # textdomain: homedecor_bedroom
### init.lua ###
Bed=Bett Bed=Bett
Bed (king sized)=Breites Doppelbett 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 mahogany=Mahagoni
oak=Eiche 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 # textdomain: homedecor_bedroom
### init.lua ###
Bed=Cama Bed=Cama
Bed (king sized)=Cama (tamaño grande) 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 mahogany=caoba
oak=roble 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 # textdomain: homedecor_bedroom
### init.lua ###
Bed=Lit Bed=Lit
Bed (king sized)=Grand 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 mahogany=acajou
oak=chêne 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 # textdomain: homedecor_bedroom
### init.lua ###
Bed=rosso Bed=rosso
Bed (king sized)= 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= mahogany=
oak= 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 # textdomain: homedecor_bedroom
### init.lua ###
Bed=Katil Bed=Katil
Bed (king sized)=Katil Raja 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 mahogany=Mahogani
oak=Oak 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 # textdomain: homedecor_bedroom
### init.lua ###
Bed=Cama Bed=Cama
Bed (king sized)=Cama (tamanho king) 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 mahogany=mogno
oak=carvalho 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 # textdomain: homedecor_bedroom
### init.lua ###
Bed=Cama Bed=Cama
Bed (king sized)=Cama (tamanho king) 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 mahogany=mogno
oak=carvalho 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 # textdomain: homedecor_bedroom
### init.lua ###
Bed=Кровать Bed=Кровать
Bed (king sized)=Кровать (большая) Bed (king sized)=Кровать (большая)
Nightstand with One Drawer (@1)=Тумба с одним ящиком (@1)
Nightstand with Two Drawers (@1)=Тумба с двумя ящиками (@1)
One-drawer Nightstand=Тумба с одним ящиком
Two-drawer Nightstand=Тумба с двумя ящиками
mahogany=красное дерево mahogany=красное дерево
oak=дуб 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 # textdomain: homedecor_bedroom
### init.lua ###
Bed=床 Bed=床
Bed (king sized)=双人床 Bed (king sized)=双人床
Nightstand with One Drawer (@1)=带一个抽屉的床头柜(@1)
Nightstand with Two Drawers (@1)=带两个抽屉的床头柜(@1)
One-drawer Nightstand=单抽屉床头柜
Two-drawer Nightstand=两抽屉床头柜
mahogany=桃花心木 mahogany=桃花心木
oak=橡木 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 # textdomain: homedecor_bedroom
### init.lua ###
Bed= Bed=
Bed (king sized)= Bed (king sized)=
Nightstand with One Drawer (@1)=
Nightstand with Two Drawers (@1)=
One-drawer Nightstand=
Two-drawer Nightstand=
mahogany= mahogany=
oak= 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 name = homedecor_bedroom
description = Homedecor mod: bedroom description = Homedecor mod: bedroom
depends = homedecor_common, default, basic_materials, unifieddyes, creative, beds depends = homedecor_common
optional_depends = screwdriver 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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,4 +1,4 @@
name = homedecor_books name = homedecor_books
description = Homedecor mod: books description = Homedecor mod: books
depends = homedecor_common, default, creative depends = homedecor_common
optional_depends = unifieddyes 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,34 +7,55 @@ homedecor.register("air_conditioner", {
mesh = "homedecor_ac.obj", mesh = "homedecor_ac.obj",
tiles = { tiles = {
"homedecor_ac.png", "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" }, 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 -- fans
minetest.register_entity(":homedecor:mesh_desk_fan", { minetest.register_entity(":homedecor:mesh_desk_fan", {
collisionbox = homedecor.nodebox.null, initial_properties = {
visual = "mesh", collisionbox = homedecor.nodebox.null,
mesh = "homedecor_desk_fan.b3d", visual = "mesh",
textures = {"homedecor_desk_fan_uv.png"}, mesh = "homedecor_desk_fan.b3d",
visual_size = {x=10, y=10}, textures = {"homedecor_desk_fan_uv.png"},
visual_size = {x=10, y=10},
}
}) })
local add_mesh_desk_fan_entity = function(pos) local add_mesh_desk_fan_entity = function(pos)
local param2 = minetest.get_node(pos).param2 local param2 = minetest.get_node(pos).param2
local entity = minetest.add_entity(pos, "homedecor:mesh_desk_fan") local entity = minetest.add_entity(pos, "homedecor:mesh_desk_fan")
if param2 == 0 then if param2 == 0 then
entity:setyaw(3.142) -- 180 degrees entity:set_yaw(3.142) -- 180 degrees
elseif minetest.get_node(pos).param2 == 1 then 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 elseif minetest.get_node(pos).param2 == 3 then
entity:setyaw((-3.142/2)) -- 270 degrees entity:set_yaw((-3.142/2)) -- 270 degrees
else else
entity:setyaw(0) entity:set_yaw(0)
end end
return entity return entity
end end
@ -74,6 +95,14 @@ homedecor.register("desk_fan", {
local entities = minetest.get_objects_inside_radius(pos, 0.1) local entities = minetest.get_objects_inside_radius(pos, 0.1)
if entities[1] then entities[1]:remove() end if entities[1] then entities[1]:remove() end
end, end,
crafts = {
{
recipe = {
{"steel_ingot", "homedecor:fan_blades", "basic_materials:motor"},
{"", "steel_ingot", ""}
},
}
}
}) })
-- ceiling fan -- ceiling fan
@ -95,9 +124,28 @@ homedecor.register("ceiling_fan", {
{ -0.0625, 0.375, -0.0625, 0.0625, 0.5, 0.0625 } { -0.0625, 0.375, -0.0625, 0.0625, 0.5, 0.0625 }
} }
}, },
groups = { snappy = 3 }, use_texture_alpha = "clip",
light_source = default.LIGHT_MAX-1, groups = { snappy = 3, dig_stone = 3 },
sounds = default.node_sound_glass_defaults(), 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 -- heating devices
@ -113,8 +161,10 @@ homedecor.register("space_heater", {
}, },
inventory_image = "homedecor_heater_inv.png", inventory_image = "homedecor_heater_inv.png",
walkable = false, walkable = false,
groups = { snappy = 3 }, groups = { snappy = 3, dig_stone = 3 },
sounds = default.node_sound_wood_defaults(), _sound_def = {
key = "node_sound_wood_defaults",
},
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
@ -124,6 +174,15 @@ homedecor.register("space_heater", {
selection_box = { selection_box = {
type = "fixed", type = "fixed",
fixed = {-0.1875, -0.5, 0.0625, 0.1875, 0, 0.3125} 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 +195,21 @@ homedecor.register("radiator", {
}, },
inventory_image = "homedecor_radiator_inv.png", inventory_image = "homedecor_radiator_inv.png",
description = S("Radiator heater"), description = S("Radiator heater"),
groups = {snappy=3}, groups = {snappy=3, dig_stone = 3},
selection_box = r_cbox, selection_box = r_cbox,
collision_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 -- crafting
@ -152,70 +222,7 @@ minetest.register_craft( {
output = "homedecor:fan_blades 2", output = "homedecor:fan_blades 2",
recipe = { recipe = {
{ "", "basic_materials:plastic_sheet", "" }, { "", "basic_materials:plastic_sheet", "" },
{ "", "default:steel_ingot", "" }, { "", homedecor.materials.steel_ingot, "" },
{ "basic_materials:plastic_sheet", "", "basic_materials:plastic_sheet" } { "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 # textdomain: homedecor_climate_control
### init.lua ###
Air Conditioner=Klimaanlage Air Conditioner=Klimaanlage
Ceiling Fan=Deckenventilator
Desk Fan=Schreibtischventilator Desk Fan=Schreibtischventilator
Fan blades=Ventilatorblätter Ceiling Fan=Deckenventilator
Radiator heater=Heizkörper
Space heater=Heizgerät Space heater=Heizgerät
Radiator heater=Heizkörper
Fan blades=Ventilatorblätter

View File

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

View File

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

View File

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

View File

@ -1,11 +1,7 @@
# textdomain: homedecor_climate_control # textdomain: homedecor_climate_control
### init.lua ###
Air Conditioner=Ar condicionado Air Conditioner=Ar condicionado
Ceiling Fan=Ventilador de Teto
Desk Fan=Ventilador de Escrivaninha Desk Fan=Ventilador de Escrivaninha
Fan blades=Pás de ventilador Ceiling Fan=Ventilador de Teto
Radiator heater=Aquecedor de radiador
Space heater=Aquecedor de ambiente 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 # textdomain: homedecor_climate_control
### init.lua ###
Air Conditioner=Ar condicionado Air Conditioner=Ar condicionado
Ceiling Fan=Ventilador de Teto
Desk Fan=Ventilador de Escrivaninha Desk Fan=Ventilador de Escrivaninha
Fan blades=Pás de ventilador Ceiling Fan=Ventilador de Teto
Radiator heater=Aquecedor de radiador
Space heater=Aquecedor de ambiente 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 # textdomain: homedecor_climate_control
### init.lua ###
Air Conditioner=Кондиционер Air Conditioner=Кондиционер
Ceiling Fan=Потолочный вентилятор
Desk Fan=Настольный вентилятор Desk Fan=Настольный вентилятор
Fan blades=Лопасти вентилятора Ceiling Fan=Потолочный вентилятор
Radiator heater=Масленый обогреватель
Space heater=Обогреватель Space heater=Обогреватель
Radiator heater=Масленый обогреватель
Fan blades=Лопасти вентилятора

View File

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

View File

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

View File

@ -1,4 +1,4 @@
name = homedecor_climate_control name = homedecor_climate_control
description = Homedecor mod: climate control description = Homedecor mod: climate control
depends = homedecor_common, default, basic_materials depends = homedecor_common
optional_depends = building_blocks, screwdriver 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 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 = { local clock_sbox = {
type = "fixed", type = "fixed",
fixed = { -8/32, -8/32, 14/32, 8/32, 8/32, 16/32 } fixed = { -8/32, -8/32, 14/32, 8/32, 8/32, 16/32 }
} }
local clock_materials = { local clock_materials = {
{ "plastic", S("Plastic analog clock"), "homedecor_generic_plastic.png" }, {"plastic", S("Plastic analog clock"), "homedecor_generic_plastic.png", plastic_craft},
{ "wood", S("Wooden analog clock"), "default_wood.png" } {"wood", S("Wooden analog clock"), wood, wood_craft}
} }
for _, mat in ipairs(clock_materials) do 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, { homedecor.register("analog_clock_"..name, {
description = desc, description = desc,
mesh = "homedecor_analog_clock.obj", mesh = "homedecor_analog_clock.obj",
@ -24,8 +43,13 @@ for _, mat in ipairs(clock_materials) do
inventory_image = "homedecor_analog_clock_"..name.."_inv.png", inventory_image = "homedecor_analog_clock_"..name.."_inv.png",
walkable = false, walkable = false,
selection_box = clock_sbox, selection_box = clock_sbox,
groups = {snappy=3}, groups = {snappy=3, dig_tree=2},
sounds = default.node_sound_wood_defaults(), _sound_def = {
key = "node_sound_wood_defaults",
},
crafts = {
craft
}
}) })
end end
@ -47,8 +71,20 @@ homedecor.register("digital_clock", {
} }
}, },
walkable = false, walkable = false,
sounds = default.node_sound_wood_defaults(), _sound_def = {
groups = {snappy=3}, 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", { homedecor.register("alarm_clock", {
@ -69,8 +105,19 @@ homedecor.register("alarm_clock", {
} }
}, },
walkable = false, walkable = false,
sounds = default.node_sound_wood_defaults(), _sound_def = {
groups = {snappy=3}, 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 = { local gf_cbox = {
@ -82,67 +129,31 @@ homedecor.register("grandfather_clock", {
description = S("Grandfather Clock"), description = S("Grandfather Clock"),
mesh = "homedecor_grandfather_clock.obj", mesh = "homedecor_grandfather_clock.obj",
tiles = { tiles = {
"default_glass.png", homedecor.textures.glass.pane,
"homedecor_grandfather_clock_face.png", "homedecor_grandfather_clock_face.png",
homedecor.lux_wood, homedecor.lux_wood,
"homedecor_grandfather_clock_face_edge.png", "homedecor_grandfather_clock_face_edge.png",
"homedecor_generic_metal_brass.png" "homedecor_generic_metal_brass.png"
}, },
use_texture_alpha = "clip",
inventory_image = "homedecor_grandfather_clock_inv.png", inventory_image = "homedecor_grandfather_clock_inv.png",
groups = { snappy = 3 }, groups = {snappy = 3, dig_tree=2},
selection_box = gf_cbox, selection_box = gf_cbox,
collision_box = gf_cbox, collision_box = gf_cbox,
sounds = default.node_sound_wood_defaults(), _sound_def = {
key = "node_sound_wood_defaults",
},
expand = { top="placeholder" }, expand = { top="placeholder" },
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.rotate_simple or nil, on_rotate = minetest.get_modpath("screwdriver") and screwdriver.rotate_simple or nil,
}) crafts = {
{
-- crafting 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" },
minetest.register_craft({ { "building_blocks:slab_hardwood","basic_materials:brass_ingot","building_blocks:slab_hardwood" }
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" }
},
}) })
-- aliases -- aliases

View File

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

View File

@ -1,10 +1,6 @@
# textdomain: homedecor_clocks # 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 Plastic analog clock=Reloj análogo de plástico
Wooden analog clock=Reloj análogo de madera 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 # 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 Plastic analog clock=Horloge analogique en plastique
Wooden analog clock=Horloge analogique en bois 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 # textdomain: homedecor_clocks
### init.lua ###
Alarm clock=Jam Loceng
Digital clock=Jam Digital
Grandfather Clock=Jam Besar Berdiri
Plastic analog clock=Jam Analog Plastik Plastic analog clock=Jam Analog Plastik
Wooden analog clock=Jam Analog Kayu 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 # 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 Plastic analog clock=Relógio analógico de plástico
Wooden analog clock=Relógio analógico de madeira 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 # 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 Plastic analog clock=Relógio analógico de plástico
Wooden analog clock=Relógio analógico de madeira 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 # textdomain: homedecor_clocks
### init.lua ###
Alarm clock=Будильник
Digital clock=Цифровые часы
Grandfather Clock=Дедушкины часы
Plastic analog clock=Пластиковые стрелочные часы Plastic analog clock=Пластиковые стрелочные часы
Wooden analog clock=Деревянные стрелочные часы Wooden analog clock=Деревянные стрелочные часы
Digital clock=Цифровые часы
Alarm clock=Будильник
Grandfather Clock=Дедушкины часы

View File

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

View File

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

View File

@ -1,4 +1,4 @@
name = homedecor_clocks name = homedecor_clocks
description = Homedecor mod: clocks description = Homedecor mod: clocks
depends = homedecor_common, default, basic_materials, dye depends = homedecor_common
optional_depends = building_blocks, screwdriver 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") local S = minetest.get_translator("homedecor_cobweb")
homedecor_cobweb = {} homedecor_cobweb = {}
minetest.register_node(":homedecor:cobweb_corner", { homedecor.register("cobweb_corner", {
description = S("Cobweb"), description = S("Cobweb"),
drawtype = "torchlike", drawtype = "torchlike",
tiles = { "homedecor_cobweb_torchlike.png" }, tiles = { "homedecor_cobweb_torchlike.png" },
@ -19,17 +19,28 @@ minetest.register_node(":homedecor:cobweb_corner", {
walkable = false, walkable = false,
selection_box = { type = "regular" }, selection_box = { type = "regular" },
visual_scale = 1.4, 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) after_place_node = function(pos, placer, itemstack, pointed_thing)
homedecor_cobweb.rotate(pos) 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"), description = S("Cobweb"),
drawtype = "nodebox", drawtype = "nodebox",
tiles = { "homedecor_cobweb.png" }, tiles = { "homedecor_cobweb.png" },
inventory_image = "homedecor_cobweb.png", inventory_image = "homedecor_cobweb.png",
use_texture_alpha = "clip",
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
sunlight_propagates = true, sunlight_propagates = true,
@ -48,17 +59,18 @@ minetest.register_node(":homedecor:cobweb_centered", {
type = "fixed", type = "fixed",
fixed = { -0.5, -0.5, 0, 0.5, 0.5, 0 } 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" drop = "homedecor:cobweb_corner"
}) })
minetest.register_node(":homedecor:cobweb_flat", { homedecor.register("cobweb_flat", {
description = S("Cobweb"), description = S("Cobweb"),
drawtype = "nodebox", drawtype = "nodebox",
tiles = { "homedecor_cobweb.png" }, tiles = { "homedecor_cobweb.png" },
inventory_image = "homedecor_cobweb.png", inventory_image = "homedecor_cobweb.png",
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
use_texture_alpha = "clip",
sunlight_propagates = true, sunlight_propagates = true,
liquid_viscosity = 8, liquid_viscosity = 8,
liquidtype = "source", liquidtype = "source",
@ -75,11 +87,11 @@ minetest.register_node(":homedecor:cobweb_flat", {
type = "fixed", type = "fixed",
fixed = { -0.5, -0.5, 0.495, 0.5, 0.5, 0.495 } 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" drop = "homedecor:cobweb_corner"
}) })
minetest.register_node(":homedecor:cobweb_plantlike", { homedecor.register("cobweb_plantlike", {
description = S("Cobweb"), description = S("Cobweb"),
drawtype = "plantlike", drawtype = "plantlike",
tiles = { "homedecor_cobweb_plantlike.png" }, tiles = { "homedecor_cobweb_plantlike.png" },
@ -96,7 +108,7 @@ minetest.register_node(":homedecor:cobweb_plantlike", {
walkable = false, walkable = false,
selection_box = { type = "regular" }, selection_box = { type = "regular" },
visual_scale = 1.189, 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" drop = "homedecor:cobweb_corner"
}) })
@ -157,14 +169,3 @@ function homedecor_cobweb.rotate(pos)
end end
end end
-- crafting
minetest.register_craft( {
output = "homedecor:cobweb_corner 5",
recipe = {
{ "farming:string", "", "farming:string" },
{ "", "farming:string", "" },
{ "farming:string", "", "farming:string" }
},
})

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