Merge pull request 'v1.2pre pull request' (#6) from indev into master

Reviewed-on: rudzik8/mcl_decor#6
This commit is contained in:
Mikita Wiśniewski 2022-04-24 13:17:07 +00:00
commit 03e198f33b
8 changed files with 312 additions and 96 deletions

View File

@ -6,6 +6,7 @@ Adds more decoration and furniture blocks to MineClone 2 (5)
![Screenshot](screenshot_big.png "Screenshot") ![Screenshot](screenshot_big.png "Screenshot")
## Blocks ## Blocks
### Armchairs ### Armchairs
Armchairs are 1x1 size blocks, on which you can sit by right-click! Uses wool and sticks for crafting. 16 colors available! Armchairs are 1x1 size blocks, on which you can sit by right-click! Uses wool and sticks for crafting. 16 colors available!
@ -18,7 +19,7 @@ Armchairs are 1x1 size blocks, on which you can sit by right-click! Uses wool an
![Screenshot](https://i.ibb.co/3YhDML4/Webp-net-gifmaker-2.gif "Crafting") ![Screenshot](https://i.ibb.co/3YhDML4/Webp-net-gifmaker-2.gif "Crafting")
### Chairs ### Chairs
Chairs are small blocks made out of wood, on which you can sit by right-click! Uses sticks and wood planks for crafting. 6 types available! Chairs are small blocks made out of wood, on which you can sit by right-click! Uses sticks and wood planks for crafting. 6 *(+2 with MCL5)* types available!
**Screenshot:** **Screenshot:**
@ -86,21 +87,33 @@ Table lamp is 1x1 size block, that emits light. Uses wool, stone and torch for c
![Screenshot](https://i.ibb.co/LrJq4vg/screenshot-20220324-165553.png "Crafting") ![Screenshot](https://i.ibb.co/LrJq4vg/screenshot-20220324-165553.png "Crafting")
### Curtains
Curtains are "wallmounted" blocks, which you can open or close by right-click! Uses wool, sticks and iron ingots for crafting. 16 colors available!
**Screenshot:**
![Screenshot](https://i.ibb.co/PxHScLG/Webp-net-gifmaker-8.gif "16 curtains, placed on glass")
**Craft:**
![Screenshot](https://i.ibb.co/Z1yfSvP/Webp-net-gifmaker-9.gif "Crafting")
## Contributing (how I can help?)
## Contributing (how can I help?)
### Translate the mod ### Translate the mod
Just fork this repo, copy "template.txt" and paste as "mcl_decor.XX.tr", where XX is your 2-letter language code (for example, "de"). After that, you can open the file and translate strings! Just fork this repo, copy "template.txt" and paste as "mcl_decor.XX.tr", where XX is your 2-letter language code (for example, "de" for German/**De**utsch). After that, you can open that file and translate strings to your language.
After the work is done you need to create a pull request and I will merge it! After the work is done you need to create a pull request, and if it has no problems - I'll merge it!
### Report bugs ### Report bugs
Yes! Via "Issues". I can't fix everything though but if you find something in my mod that looks like a bug - report it. Yes! Via "Issues" tab in this repo. I can't fix everything though, but if you found something in my mod that looks like a bug - report it.
### Share mod with friends and make positive reviews! ### Share mod with friends and make reviews!
On ContentDB of course. Reviews can motivate me to continue active work on the mod and stuff! On ContentDB of course. Reviews can motivate me to continue updating this mod!
### Help me with the code ### Help me with the code
I'm not a very good coder, more like a novice (combining practice and theory at once) so if you can - please, fix some bugs or maybe add something via pull requests! I'm not a very good coder, more like a novice (combining practice and theory at once), so if you can - please, fix some bugs or maybe even add something via pull requests!
**Thanks.** **Thanks.**
@ -113,10 +126,17 @@ Media licensed under CC-BY-SA 4.0, see [this deed](https://creativecommons.org/l
## Credits ## Credits
**For assets:**
- [Coalquartz Tile texture](textures/mcl_decor_coalquartz_tile.png) uses [coal block](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/ITEMS/mcl_core/textures/default_coal_block.png) and [quartz block](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_block_side.png) textures under [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) by [XSSheep](https://github.com/XSSheep) (combined) - [Coalquartz Tile texture](textures/mcl_decor_coalquartz_tile.png) uses [coal block](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/ITEMS/mcl_core/textures/default_coal_block.png) and [quartz block](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_block_side.png) textures under [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) by [XSSheep](https://github.com/XSSheep) (combined)
- [Dyed planks template texture](textures/mcl_decor_dyed_planks.png) uses [oak planks](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/ITEMS/mcl_core/textures/default_wood.png) texture under [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) by [XSSheep](https://github.com/XSSheep) (desaturated and lighted up a bit from original) - [Dyed planks template texture](textures/mcl_decor_dyed_planks.png) uses [oak planks](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/ITEMS/mcl_core/textures/default_wood.png) texture under [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) by [XSSheep](https://github.com/XSSheep) (desaturated and lighted up a bit from original)
- [Table Lamp top texture](textures/mcl_decor_table_lamp.png) uses [grey wool](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/ITEMS/mcl_wool/textures/wool_grey.png) texture under [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) by [XSSheep](https://github.com/XSSheep) (resized from original) - [Table Lamp top texture](textures/mcl_decor_table_lamp.png) uses [grey wool](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/ITEMS/mcl_wool/textures/wool_grey.png) texture under [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) by [XSSheep](https://github.com/XSSheep) (resized from original)
- [Table Lamp bottom texture](textures/mcl_decor_table_lamp_bottom.png) uses [grey wool](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/ITEMS/mcl_wool/textures/wool_grey.png) texture under [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) by [XSSheep](https://github.com/XSSheep) (resized and partly darkened up from original) - [Table Lamp bottom texture](textures/mcl_decor_table_lamp_bottom.png) uses [grey wool](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/ITEMS/mcl_wool/textures/wool_grey.png) texture under [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) by [XSSheep](https://github.com/XSSheep) (resized and partly darkened up from original)
- [Table Lamp side texture](textures/mcl_decor_table_lamp_side.png) uses [grey wool](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/ITEMS/mcl_wool/textures/wool_grey.png) and [oak tree](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/ITEMS/mcl_core/textures/default_tree.png) textures under [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) by [XSSheep](https://github.com/XSSheep) (combined) - [Table Lamp side texture](textures/mcl_decor_table_lamp_side.png) uses [grey wool](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/ITEMS/mcl_wool/textures/wool_grey.png) and [oak tree](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/ITEMS/mcl_core/textures/default_tree.png) textures under [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) by [XSSheep](https://github.com/XSSheep) (combined)
- [Curtains overlay texture](textures/mcl_decor_curtain_overlay.png) uses [top iron pane](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/ITEMS/xpanes/textures/xpanes_top_iron.png) texture under [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) by [XSSheep](https://github.com/XSSheep) (resized)
**For code:**
- Sitting function (in api.lua) uses code from [ts_furniture mod](https://content.minetest.net/packages/Thomas-S/ts_furniture/) under [MIT](https://spdx.org/licenses/MIT.html) by [Thomas-S](https://content.minetest.net/users/Thomas-S/) - Sitting function (in api.lua) uses code from [ts_furniture mod](https://content.minetest.net/packages/Thomas-S/ts_furniture/) under [MIT](https://spdx.org/licenses/MIT.html) by [Thomas-S](https://content.minetest.net/users/Thomas-S/)
- Also, [homedecor](https://content.minetest.net/packages/VanessaE/homedecor_modpack/) was inspiration for me partly. Thanks to [VanessaE](https://content.minetest.net/users/VanessaE/) for it! - *Currently* unused on_place function for curtains (in api.lua) uses code from [mcl_signs mod](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/ITEMS/mcl_signs/init.lua#L308) from MineClone 2 under under [MIT](https://spdx.org/licenses/MIT.html) by [PilzAdam](https://github.com/PilzAdam) and [contributors](https://git.minetest.land/MineClone2/MineClone2/commits/branch/master/mods/ITEMS/mcl_signs)
**Misc:**
- [Homedecor modpack](https://content.minetest.net/packages/VanessaE/homedecor_modpack/) and [xdecor](https://content.minetest.net/packages/jp/xdecor) mods were inspiration for me partly. Thanks to [VanessaE](https://content.minetest.net/users/VanessaE/) and [jp](https://content.minetest.net/users/jp/) for them!

206
api.lua
View File

@ -106,20 +106,26 @@ end
function mcl_decor.register_chair_and_table(name, desc, name2, desc2, material, tiles) function mcl_decor.register_chair_and_table(name, desc, desc2, material, tiles, groups)
if group == nil then
group = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1, flammable=-1}
else
group = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1}
end
-- chair part -- chair part
minetest.register_node(name, { minetest.register_node("mcl_decor:"..name.."_chair", {
description = desc, description = desc,
drawtype = "nodebox", drawtype = "nodebox",
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
{-0.25, 0, 0.125, 0.25, 0.5, 0.25}, -- back {-0.25, 0, 0.125, 0.25, 0.5, 0.25},
{-0.25, -0.125, -0.25, 0.25, 0, 0.25}, -- seat {-0.25, -0.125, -0.25, 0.25, 0, 0.25},
{-0.25, -0.5, 0.125, -0.125, -0.125, 0.25}, -- 1st leg {-0.25, -0.5, 0.125, -0.125, -0.125, 0.25},
{0.125, -0.5, -0.25, 0.25, -0.125, -0.125}, -- 2nd leg {0.125, -0.5, -0.25, 0.25, -0.125, -0.125},
{0.125, -0.5, 0.125, 0.25, -0.125, 0.25}, -- 3rd leg {0.125, -0.5, 0.125, 0.25, -0.125, 0.25},
{-0.25, -0.5, -0.25, -0.125, -0.125, -0.125}, -- 4th leg {-0.25, -0.5, -0.25, -0.125, -0.125, -0.125},
} }
}, },
tiles = {tiles}, tiles = {tiles},
@ -132,14 +138,14 @@ function mcl_decor.register_chair_and_table(name, desc, name2, desc2, material,
type = "fixed", type = "fixed",
fixed = { -0.25, -0.5, -0.25, 0.25, 0.5, 0.25 }, fixed = { -0.25, -0.5, -0.25, 0.25, 0.5, 0.25 },
}, },
groups = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1, flammable=-1}, groups = group,
_mcl_hardness = 1, _mcl_hardness = 1,
_mcl_blast_resistance = 1, _mcl_blast_resistance = 1,
sounds = mcl_sounds.node_sound_wood_defaults(), sounds = mcl_sounds.node_sound_wood_defaults(),
on_rightclick = mcl_decor.sit on_rightclick = mcl_decor.sit
}) })
minetest.register_craft({ minetest.register_craft({
output = name, output = "mcl_decor:"..name.."_chair",
recipe = { recipe = {
{"", "", "mcl_core:stick"}, {"", "", "mcl_core:stick"},
{material, material, material}, {material, material, material},
@ -147,7 +153,7 @@ function mcl_decor.register_chair_and_table(name, desc, name2, desc2, material,
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = name, output = "mcl_decor:"..name.."_chair",
recipe = { recipe = {
{"mcl_core:stick", "", ""}, {"mcl_core:stick", "", ""},
{material, material, material}, {material, material, material},
@ -156,22 +162,22 @@ function mcl_decor.register_chair_and_table(name, desc, name2, desc2, material,
}) })
minetest.register_craft({ minetest.register_craft({
type = "fuel", type = "fuel",
recipe = name, recipe = "mcl_decor:"..name.."_chair",
burntime = 8, burntime = 8,
}) })
-- table part -- table part
minetest.register_node(name2, { minetest.register_node("mcl_decor:"..name.."_table", {
description = desc2, description = desc2,
drawtype = "nodebox", drawtype = "nodebox",
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
{ -0.5, 0.375, -0.5, 0.5, 0.5, 0.5 }, -- top { -0.5, 0.375, -0.5, 0.5, 0.5, 0.5 },
{ -0.4375, -0.5, -0.4375, -0.3125, 0.375, -0.3125 }, -- 1st leg { -0.4375, -0.5, -0.4375, -0.3125, 0.375, -0.3125 },
{ 0.3125, -0.5, -0.4375, 0.4375, 0.375, -0.3125 }, -- 2nd leg { 0.3125, -0.5, -0.4375, 0.4375, 0.375, -0.3125 },
{ 0.3125, -0.5, 0.3125, 0.4375, 0.375, 0.4375 }, -- 3rd leg { 0.3125, -0.5, 0.3125, 0.4375, 0.375, 0.4375 },
{ -0.4375, -0.5, 0.3125, -0.3125, 0.375, 0.4375 }, -- 4th leg { -0.4375, -0.5, 0.3125, -0.3125, 0.375, 0.4375 },
} }
}, },
selection_box = { selection_box = {
@ -183,13 +189,13 @@ function mcl_decor.register_chair_and_table(name, desc, name2, desc2, material,
paramtype = "light", paramtype = "light",
stack_max = 64, stack_max = 64,
sunlight_propagates = true, sunlight_propagates = true,
groups = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1, flammable=-1}, groups = group,
_mcl_hardness = 2, _mcl_hardness = 2,
_mcl_blast_resistance = 3, _mcl_blast_resistance = 3,
sounds = mcl_sounds.node_sound_wood_defaults(), sounds = mcl_sounds.node_sound_wood_defaults(),
}) })
minetest.register_craft({ minetest.register_craft({
output = name2.." 2", output = "mcl_decor:"..name.."_table".." 2",
recipe = { recipe = {
{material, material, material}, {material, material, material},
{"mcl_core:stick", "", "mcl_core:stick"}, {"mcl_core:stick", "", "mcl_core:stick"},
@ -198,13 +204,18 @@ function mcl_decor.register_chair_and_table(name, desc, name2, desc2, material,
}) })
minetest.register_craft({ minetest.register_craft({
type = "fuel", type = "fuel",
recipe = name2, recipe = "mcl_decor:"..name.."_table",
burntime = 10, burntime = 10,
}) })
end end
function mcl_decor.register_slab_table(name, desc, material, tiles) function mcl_decor.register_slab_table(name, desc, material, tiles, group)
minetest.register_node(name, { if group == nil then
group = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1, flammable=-1}
else
group = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1}
end
minetest.register_node("mcl_decor:"..name.."_stable", {
description = desc, description = desc,
drawtype = "nodebox", drawtype = "nodebox",
node_box = { node_box = {
@ -219,13 +230,13 @@ function mcl_decor.register_slab_table(name, desc, material, tiles)
paramtype = "light", paramtype = "light",
stack_max = 64, stack_max = 64,
sunlight_propagates = true, sunlight_propagates = true,
groups = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1, flammable=-1}, groups = group,
_mcl_hardness = 2, _mcl_hardness = 2,
_mcl_blast_resistance = 3, _mcl_blast_resistance = 3,
sounds = mcl_sounds.node_sound_wood_defaults(), sounds = mcl_sounds.node_sound_wood_defaults(),
}) })
minetest.register_craft({ minetest.register_craft({
output = name.." 3", output = "mcl_decor:"..name.."_stable".." 3",
recipe = { recipe = {
{material, material, material}, {material, material, material},
{"", "mcl_core:stick", ""} {"", "mcl_core:stick", ""}
@ -233,13 +244,13 @@ function mcl_decor.register_slab_table(name, desc, material, tiles)
}) })
minetest.register_craft({ minetest.register_craft({
type = "fuel", type = "fuel",
recipe = name, recipe = "mcl_decor:"..name.."_stable",
burntime = 10, burntime = 10,
}) })
end end
function mcl_decor.register_armchair(name, desc, material, tiles, dye, colorgroup) function mcl_decor.register_armchair(color, desc, tiles, dye, colorgroup)
minetest.register_node(name, { minetest.register_node("mcl_decor:"..color.."_armchair", {
description = desc, description = desc,
drawtype = "nodebox", drawtype = "nodebox",
node_box = { node_box = {
@ -268,35 +279,35 @@ function mcl_decor.register_armchair(name, desc, material, tiles, dye, colorgrou
on_rightclick = mcl_decor.sit on_rightclick = mcl_decor.sit
}) })
minetest.register_craft({ minetest.register_craft({
output = name, output = "mcl_decor:"..color.."_armchair",
recipe = { recipe = {
{"", "", material}, {"", "", "mcl_wool:"..color},
{material, material, material}, {"mcl_wool:"..color, "mcl_wool:"..color, "mcl_wool:"..color},
{"mcl_core:stick", "mcl_core:stick", "mcl_core:stick"} {"mcl_core:stick", "mcl_core:stick", "mcl_core:stick"}
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = name, output = "mcl_decor:"..color.."_armchair",
recipe = { recipe = {
{material, "", ""}, {"mcl_wool:"..color, "", ""},
{material, material, material}, {"mcl_wool:"..color, "mcl_wool:"..color, "mcl_wool:"..color},
{"mcl_core:stick", "mcl_core:stick", "mcl_core:stick"} {"mcl_core:stick", "mcl_core:stick", "mcl_core:stick"}
} }
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = name, output = "mcl_decor:"..color.."_armchair",
recipe = {"group:armchair", "mcl_dye:" .. dye}, recipe = {"group:armchair", "mcl_dye:"..dye},
}) })
minetest.register_craft({ minetest.register_craft({
type = "fuel", type = "fuel",
recipe = name, recipe = "mcl_decor:"..color.."_armchair",
burntime = 10, burntime = 10,
}) })
end end
function mcl_decor.register_dyed_planks(name, desc, hexcolor, dye, colorgroup) function mcl_decor.register_dyed_planks(color, desc, hexcolor, dye, colorgroup)
minetest.register_node("mcl_decor:"..name, { minetest.register_node("mcl_decor:"..color.."_planks", {
description = desc, description = desc,
tiles = {"mcl_decor_dyed_planks.png^[colorize:" .. hexcolor .. ":125"}, tiles = {"mcl_decor_dyed_planks.png^[colorize:" .. hexcolor .. ":125"},
stack_max = 64, stack_max = 64,
@ -308,9 +319,120 @@ function mcl_decor.register_dyed_planks(name, desc, hexcolor, dye, colorgroup)
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = "mcl_decor:"..name, output = "mcl_decor:"..color.."_planks",
recipe = {"group:wood", "mcl_dye:" .. dye} recipe = {"group:wood", "mcl_dye:"..dye}
}) })
-- maybe descriptions of slabs/stairs after that workaround will be VERY CRAPPY (especially with translations via locales), but at least it works -- maybe descriptions of slabs/stairs after that workaround will be VERY CRAPPY (especially with translations via locales), but at least it works
mcl_stairs.register_stair_and_slab_simple(name, "mcl_decor:"..name, desc..S(" Stair"), desc..S(" Slab"), S("Double")..desc..S(" Slab"), "woodlike") mcl_stairs.register_stair_and_slab_simple(
color.."_planks", "mcl_decor:"..color.."_planks", desc..S(" Stair"), desc..S(" Slab"), S("Double")..desc..S(" Slab"), "woodlike"
)
end
function mcl_decor.register_curtains(color, desc, wool, wooltile, dye, colorgroup)
minetest.register_node("mcl_decor:curtain_"..color, {
description = desc,
tiles = {
wooltile.."^mcl_decor_curtain_alpha.png^[makealpha:255,126,126^mcl_decor_curtain_overlay.png", -- front
wooltile.."^mcl_decor_curtain_alpha.png^[makealpha:255,126,126^mcl_decor_curtain_overlay.png^[transformFY", -- back
wooltile.."^mcl_decor_curtain_overlay.png^[transformR270", -- side
wooltile.."^mcl_decor_curtain_overlay.png^[transformR90", -- side
wooltile.."^mcl_decor_curtain_overlay.png^[transformFY", -- top
wooltile.."^mcl_decor_curtain_alpha.png^[makealpha:255,126,126^mcl_decor_curtain_overlay.png", -- bottom
},
stack_max = 64,
inventory_image = wooltile.."^mcl_decor_curtain_alpha.png^[makealpha:255,126,126^mcl_decor_curtain_overlay.png",
wield_image = wooltile.."^mcl_decor_curtain_alpha.png^[makealpha:255,126,126^mcl_decor_curtain_overlay.png",
walkable = false,
sunlight_propagates = true,
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "wallmounted",
groups = {handy=1, flammable=-1, curtain=1, attached_node=1, dig_by_piston=1, deco_block=1, material_wool=1, [colorgroup]=1},
sounds = mcl_sounds.node_sound_wood_defaults(),
node_box = {
type = "wallmounted",
},
_mcl_blast_resistance = 0.2,
_mcl_hardness = 0.2,
--[[
function below should stop players from placing curtains on floor and ceiling, BUT it makes them infinite (bug)
will be uncommented and fixed one day... maybe...
---
on_place = function(itemstack, placer, pointed_thing)
-- taken from mcl_signs (partially)
local above = pointed_thing.above
local under = pointed_thing.under
-- use pointed node's on_rightclick function first, if present
local node_under = minetest.get_node(under)
if placer and not placer:get_player_control().sneak then
if minetest.registered_nodes[node_under.name] and minetest.registered_nodes[node_under.name].on_rightclick then
return minetest.registered_nodes[node_under.name].on_rightclick(under, node_under, placer, itemstack) or itemstack
end
end
local dir = vector.subtract(under, above)
local wdir = minetest.dir_to_wallmounted(dir)
-- FIXME: curtains can be placed infinitely just like in creative mode
if wdir == 0 or wdir == 1 then
return itemstack
else
local _, success = minetest.item_place_node(itemstack, placer, pointed_thing, wdir)
if not success then
return itemstack
end
-- V this one SHOULD fix infinite curtains problem, but it doesn't V
if not minetest.is_creative_enabled(placer:get_player_name()) then
itemstack:take_item()
end
end
end,
]]
on_rightclick = function(pos, node, _, itemstack)
minetest.set_node(pos, {name="mcl_decor:curtain_"..color.."_closed", param2=node.param2})
return itemstack
end
})
minetest.register_node("mcl_decor:curtain_"..color.."_closed", {
description = desc..S(" (closed)"),
tiles = {
wooltile.."^mcl_decor_curtain_overlay.png", -- front
wooltile.."^mcl_decor_curtain_overlay.png^[transformFY", -- back
wooltile.."^mcl_decor_curtain_overlay.png^[transformR270", -- side
wooltile.."^mcl_decor_curtain_overlay.png^[transformR90", -- side
wooltile.."^mcl_decor_curtain_overlay.png^[transformFY", -- top
wooltile.."^mcl_decor_curtain_overlay.png", -- bottom
},
walkable = false,
sunlight_propagates = true,
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "wallmounted",
groups = {handy=1, flammable=-1, attached_node=1, dig_by_piston=1, not_in_creative_inventory=1},
sounds = mcl_sounds.node_sound_wood_defaults(),
node_box = {
type = "wallmounted",
},
drop = "mcl_decor:curtain_"..color,
_mcl_blast_resistance = 0.2,
_mcl_hardness = 0.2,
on_rightclick = function(pos, node, clicker, itemstack)
minetest.set_node(pos, {name="mcl_decor:curtain_"..color, param2=node.param2})
return itemstack
end
})
minetest.register_craft({
output = "mcl_decor:curtain_"..color,
recipe = {
{"mcl_core:iron_ingot", "mcl_core:stick", "mcl_core:iron_ingot"},
{wool, wool, wool},
{wool, "", wool}
}
})
minetest.register_craft({
type = "shapeless",
output = "mcl_decor:curtain_"..color,
recipe = {"group:curtain", "mcl_dye:"..dye},
})
end end

View File

@ -19,18 +19,24 @@ Birch Chair=Берёзовый стул
Dark Oak Chair=Стул из тёмного дуба Dark Oak Chair=Стул из тёмного дуба
Jungle Chair=Стул из тропического дерева Jungle Chair=Стул из тропического дерева
Spruce Chair=Еловый стул Spruce Chair=Еловый стул
Crimson Chair=Багровый стул
Warped Chair=Искажённый стул
Oak Table=Дубовый стол Oak Table=Дубовый стол
Acacia Table=Стол из акации Acacia Table=Стол из акации
Birch Table=Берёзовый стол Birch Table=Берёзовый стол
Dark Oak Table=Стол из тёмного дуба Dark Oak Table=Стол из тёмного дуба
Jungle Table=Стол из тропического дерева Jungle Table=Стол из тропического дерева
Spruce Table=Еловый стол Spruce Table=Еловый стол
Crimson Table=Багровый стол
Warped Table=Искажённый стол
Oak Slab Table=Дубовый полублочный стол Oak Slab Table=Дубовый полублочный стол
Dark Oak Slab Table=Полублочный стол из тёмного дуба Dark Oak Slab Table=Полублочный стол из тёмного дуба
Jungle Slab Table=Полублочный стол из тропического дерева Jungle Slab Table=Полублочный стол из тропического дерева
Spruce Slab Table=Еловый полублочный стол Spruce Slab Table=Еловый полублочный стол
Acacia Slab Table=Полублочный стол из акации Acacia Slab Table=Полублочный стол из акации
Birch Slab Table=Берёзовый полублочный стол Birch Slab Table=Берёзовый полублочный стол
Crimson Slab Table=Багровый полублочный стол
Warped Slab Table=Искажённый полублочный стол
White Planks=Белые доски White Planks=Белые доски
Grey Planks=Серые доски Grey Planks=Серые доски
Light Grey Planks=Светло-серые доски Light Grey Planks=Светло-серые доски
@ -63,6 +69,23 @@ Brown Armchair=Коричневое кресло
Pink Armchair=Розовое кресло Pink Armchair=Розовое кресло
Lime Armchair=Зелёное лаймовое кресло Lime Armchair=Зелёное лаймовое кресло
Light Blue Armchair=Светло-голубое кресло Light Blue Armchair=Светло-голубое кресло
White Armchair=Белые шторы
Grey Armchair=Серые шторы
Light Grey Armchair=Светло-серые шторы
Black Armchair=Чёрные шторы
Red Armchair=Красные шторы
Yellow Armchair=Жёлтые шторы
Green Armchair=Зелёные шторы
Cyan Armchair=Голубые шторы
Blue Armchair=Синее шторы
Magenta Armchair=Фиолетовые шторы
Orange Armchair=Оранжевые шторы
Purple Armchair=Пурпурные шторы
Brown Armchair=Коричневые шторы
Pink Armchair=Розовые шторы
Lime Armchair=Зелёные лаймовые шторы
Light Blue Armchair=Светло-голубые шторы
Stair= Ступенька Stair= Ступенька
Slab= Плита Slab= Плита
Double=Двойная Double=Двойная
(closed)= (закрыты)

View File

@ -19,18 +19,24 @@ Birch Chair=
Dark Oak Chair= Dark Oak Chair=
Jungle Chair= Jungle Chair=
Spruce Chair= Spruce Chair=
Crimson Chair=
Warped Chair=
Oak Table= Oak Table=
Acacia Table= Acacia Table=
Birch Table= Birch Table=
Dark Oak Table= Dark Oak Table=
Jungle Table= Jungle Table=
Spruce Table= Spruce Table=
Crimson Table=
Warped Table=
Oak Slab Table= Oak Slab Table=
Dark Oak Slab Table= Dark Oak Slab Table=
Jungle Slab Table= Jungle Slab Table=
Spruce Slab Table= Spruce Slab Table=
Acacia Slab Table= Acacia Slab Table=
Birch Slab Table= Birch Slab Table=
Crimson Slab Table=
Warped Slab Table=
White Planks= White Planks=
Grey Planks= Grey Planks=
Light Grey Planks= Light Grey Planks=
@ -63,6 +69,23 @@ Brown Armchair=
Pink Armchair= Pink Armchair=
Lime Armchair= Lime Armchair=
Light Blue Armchair= Light Blue Armchair=
White Curtains=
Grey Curtains=
Light Grey Curtains=
Black Curtains=
Red Curtains=
Yellow Curtains=
Green Curtains=
Cyan Curtains=
Blue Curtains=
Magenta Curtains=
Orange Curtains=
Purple Curtains=
Brown Curtains=
Pink Curtains=
Lime Curtains=
Light Blue Curtains=
Stair= Stair=
Slab= Slab=
Double= Double=
(closed)=

View File

@ -1,4 +1,4 @@
name = mcl_decor name = mcl_decor
description = Adds more decoration and furniture blocks to MineClone 2 (5) description = Adds more decoration and furniture blocks to MineClone 2 (5)
depends = mcl_core, mcl_torches, mcl_player, mcl_sounds, mcl_dye, mcl_nether, mcl_stairs depends = mcl_core, mcl_torches, mcl_player, mcl_sounds, mcl_dye, mcl_nether, mcl_stairs
optional_depends = mcl_cozy optional_depends = mcl_cozy, mcl_mushroom

View File

@ -127,56 +127,84 @@ minetest.register_craft({
--- Tables and Chairs --- --- Tables and Chairs ---
mcl_decor.register_chair_and_table("mcl_decor:wooden_chair", S("Oak Chair"), "mcl_decor:wooden_table", S("Oak Table"), "mcl_core:wood", "default_wood.png") mcl_decor.register_chair_and_table("wooden", S("Oak Chair"), S("Oak Table"), "mcl_core:wood", "default_wood.png")
mcl_decor.register_chair_and_table("mcl_decor:dark_oak_chair", S("Dark Oak Chair"), "mcl_decor:dark_oak_table", S("Dark Oak Table"), "mcl_core:darkwood", "mcl_core_planks_big_oak.png") mcl_decor.register_chair_and_table("dark_oak", S("Dark Oak Chair"), S("Dark Oak Table"), "mcl_core:darkwood", "mcl_core_planks_big_oak.png")
mcl_decor.register_chair_and_table("mcl_decor:jungle_chair", S("Jungle Chair"), "mcl_decor:jungle_table", S("Jungle Table"), "mcl_core:junglewood", "default_junglewood.png") mcl_decor.register_chair_and_table("jungle", S("Jungle Chair"), S("Jungle Table"), "mcl_core:junglewood", "default_junglewood.png")
mcl_decor.register_chair_and_table("mcl_decor:spruce_chair", S("Spruce Chair"), "mcl_decor:spruce_table", S("Spruce Table"), "mcl_core:sprucewood", "mcl_core_planks_spruce.png") mcl_decor.register_chair_and_table("spruce", S("Spruce Chair"), S("Spruce Table"), "mcl_core:sprucewood", "mcl_core_planks_spruce.png")
mcl_decor.register_chair_and_table("mcl_decor:acacia_chair", S("Acacia Chair"), "mcl_decor:acacia_table", S("Acacia Table"), "mcl_core:acaciawood", "default_acacia_wood.png") mcl_decor.register_chair_and_table("acacia", S("Acacia Chair"), S("Acacia Table"), "mcl_core:acaciawood", "default_acacia_wood.png")
mcl_decor.register_chair_and_table("mcl_decor:birch_chair", S("Birch Chair"), "mcl_decor:birch_table", S("Birch Table"), "mcl_core:birchwood", "mcl_core_planks_birch.png") mcl_decor.register_chair_and_table("birch", S("Birch Chair"), S("Birch Table"), "mcl_core:birchwood", "mcl_core_planks_birch.png")
mcl_decor.register_slab_table("mcl_decor:wooden_stable", S("Oak Slab Table"), "mcl_core:wood", "default_wood.png") mcl_decor.register_slab_table("wooden", S("Oak Slab Table"), "mcl_core:wood", "default_wood.png")
mcl_decor.register_slab_table("mcl_decor:dark_oak_stable", S("Dark Oak Slab Table"), "mcl_core:darkwood", "mcl_core_planks_big_oak.png") mcl_decor.register_slab_table("dark_oak", S("Dark Oak Slab Table"), "mcl_core:darkwood", "mcl_core_planks_big_oak.png")
mcl_decor.register_slab_table("mcl_decor:jungle_stable", S("Jungle Slab Table"), "mcl_core:junglewood", "default_junglewood.png") mcl_decor.register_slab_table("jungle", S("Jungle Slab Table"), "mcl_core:junglewood", "default_junglewood.png")
mcl_decor.register_slab_table("mcl_decor:spruce_stable", S("Spruce Slab Table"), "mcl_core:sprucewood", "mcl_core_planks_spruce.png") mcl_decor.register_slab_table("spruce", S("Spruce Slab Table"), "mcl_core:sprucewood", "mcl_core_planks_spruce.png")
mcl_decor.register_slab_table("mcl_decor:acacia_stable", S("Acacia Slab Table"), "mcl_core:acaciawood", "default_acacia_wood.png") mcl_decor.register_slab_table("acacia", S("Acacia Slab Table"), "mcl_core:acaciawood", "default_acacia_wood.png")
mcl_decor.register_slab_table("mcl_decor:birch_stable", S("Birch Slab Table"), "mcl_core:birchwood", "mcl_core_planks_birch.png") mcl_decor.register_slab_table("birch", S("Birch Slab Table"), "mcl_core:birchwood", "mcl_core_planks_birch.png")
-- support for MineClone 5
if minetest.get_modpath("mcl_mushroom") then
mcl_decor.register_chair_and_table("crimson", S("Crimson Chair"), S("Crimson Table"), "mcl_mushroom:crimson_hyphae_wood", "crimson_hyphae_wood.png", "1")
mcl_decor.register_chair_and_table("warped", S("Warped Chair"), S("Warped Table"), "mcl_mushroom:warped_hyphae_wood", "warped_hyphae_wood.png", "1")
mcl_decor.register_slab_table("crimson", S("Crimson Slab Table"), "mcl_mushroom:crimson_hyphae_wood", "crimson_hyphae_wood.png", "1")
mcl_decor.register_slab_table("warped", S("Warped Slab Table"), "mcl_mushroom:warped_hyphae_wood", "warped_hyphae_wood.png", "1")
end
--- Armchairs --- --- Armchairs ---
mcl_decor.register_armchair("mcl_decor:white_armchair", S("White Armchair"), "mcl_wool:white", "wool_white.png", "white", "unicolor_white") mcl_decor.register_armchair("white", S("White Armchair"), "wool_white.png", "white", "unicolor_white")
mcl_decor.register_armchair("mcl_decor:grey_armchair", S("Grey Armchair"), "mcl_wool:grey", "wool_dark_grey.png", "dark_grey", "unicolor_darkgrey") mcl_decor.register_armchair("grey", S("Grey Armchair"), "wool_dark_grey.png", "dark_grey", "unicolor_darkgrey")
mcl_decor.register_armchair("mcl_decor:silver_armchair", S("Light Grey Armchair"), "mcl_wool:silver", "wool_grey.png", "grey", "unicolor_grey") mcl_decor.register_armchair("silver", S("Light Grey Armchair"), "wool_grey.png", "grey", "unicolor_grey")
mcl_decor.register_armchair("mcl_decor:black_armchair", S("Black Armchair"), "mcl_wool:black", "wool_black.png", "black", "unicolor_black") mcl_decor.register_armchair("black", S("Black Armchair"), "wool_black.png", "black", "unicolor_black")
mcl_decor.register_armchair("mcl_decor:red_armchair", S("Red Armchair"), "mcl_wool:red", "wool_red.png", "red", "unicolor_red") mcl_decor.register_armchair("red", S("Red Armchair"), "wool_red.png", "red", "unicolor_red")
mcl_decor.register_armchair("mcl_decor:yellow_armchair", S("Yellow Armchair"), "mcl_wool:yellow", "wool_yellow.png", "yellow", "unicolor_yellow") mcl_decor.register_armchair("yellow", S("Yellow Armchair"), "wool_yellow.png", "yellow", "unicolor_yellow")
mcl_decor.register_armchair("mcl_decor:green_armchair", S("Green Armchair"), "mcl_wool:green", "wool_dark_green.png", "dark_green", "unicolor_dark_green") mcl_decor.register_armchair("green", S("Green Armchair"), "wool_dark_green.png", "dark_green", "unicolor_dark_green")
mcl_decor.register_armchair("mcl_decor:cyan_armchair", S("Cyan Armchair"), "mcl_wool:cyan", "wool_cyan.png", "cyan", "unicolor_cyan") mcl_decor.register_armchair("cyan", S("Cyan Armchair"), "wool_cyan.png", "cyan", "unicolor_cyan")
mcl_decor.register_armchair("mcl_decor:blue_armchair", S("Blue Armchair"), "mcl_wool:blue", "wool_blue.png", "blue", "unicolor_blue") mcl_decor.register_armchair("blue", S("Blue Armchair"), "wool_blue.png", "blue", "unicolor_blue")
mcl_decor.register_armchair("mcl_decor:magenta_armchair", S("Magenta Armchair"), "mcl_wool:magenta", "wool_magenta.png", "magenta", "unicolor_red_violet") mcl_decor.register_armchair("magenta", S("Magenta Armchair"), "wool_magenta.png", "magenta", "unicolor_red_violet")
mcl_decor.register_armchair("mcl_decor:orange_armchair", S("Orange Armchair"), "mcl_wool:orange", "wool_orange.png", "orange", "unicolor_orange") mcl_decor.register_armchair("orange", S("Orange Armchair"), "wool_orange.png", "orange", "unicolor_orange")
mcl_decor.register_armchair("mcl_decor:purple_armchair", S("Purple Armchair"), "mcl_wool:purple", "wool_violet.png", "violet", "unicolor_violet") mcl_decor.register_armchair("purple", S("Purple Armchair"), "wool_violet.png", "violet", "unicolor_violet")
mcl_decor.register_armchair("mcl_decor:brown_armchair", S("Brown Armchair"), "mcl_wool:brown", "wool_brown.png", "brown", "unicolor_dark_orange") mcl_decor.register_armchair("brown", S("Brown Armchair"), "wool_brown.png", "brown", "unicolor_dark_orange")
mcl_decor.register_armchair("mcl_decor:pink_armchair", S("Pink Armchair"), "mcl_wool:pink", "wool_pink.png", "pink", "unicolor_light_red") mcl_decor.register_armchair("pink", S("Pink Armchair"), "wool_pink.png", "pink", "unicolor_light_red")
mcl_decor.register_armchair("mcl_decor:lime_armchair", S("Lime Armchair"), "mcl_wool:lime", "mcl_wool_lime.png", "green", "unicolor_green") mcl_decor.register_armchair("lime", S("Lime Armchair"), "mcl_wool_lime.png", "green", "unicolor_green")
mcl_decor.register_armchair("mcl_decor:light_blue_armchair", S("Light Blue Armchair"), "mcl_wool:light_blue", "mcl_wool_light_blue.png", "lightblue", "unicolor_light_blue") mcl_decor.register_armchair("light_blue", S("Light Blue Armchair"), "mcl_wool_light_blue.png", "lightblue", "unicolor_light_blue")
--- Curtains ---
mcl_decor.register_curtains("white", S("White Curtains"), "mcl_wool:white", "wool_white.png", "white", "unicolor_white")
mcl_decor.register_curtains("grey", S("Grey Curtains"), "mcl_wool:grey", "wool_dark_grey.png", "dark_grey", "unicolor_darkgrey")
mcl_decor.register_curtains("silver", S("Light Grey Curtains"), "mcl_wool:silver", "wool_grey.png", "grey", "unicolor_grey")
mcl_decor.register_curtains("black", S("Black Curtains"), "mcl_wool:black", "wool_black.png", "black", "unicolor_black")
mcl_decor.register_curtains("red", S("Red Curtains"), "mcl_wool:red", "wool_red.png", "red", "unicolor_red")
mcl_decor.register_curtains("yellow", S("Yellow Curtains"), "mcl_wool:yellow", "wool_yellow.png", "yellow", "unicolor_yellow")
mcl_decor.register_curtains("green", S("Green Curtains"), "mcl_wool:green", "wool_dark_green.png", "dark_green", "unicolor_dark_green")
mcl_decor.register_curtains("cyan", S("Cyan Curtains"), "mcl_wool:cyan", "wool_cyan.png", "cyan", "unicolor_cyan")
mcl_decor.register_curtains("blue", S("Blue Curtains"), "mcl_wool:blue", "wool_blue.png", "blue", "unicolor_blue")
mcl_decor.register_curtains("magenta", S("Magenta Curtains"), "mcl_wool:magenta", "wool_magenta.png", "magenta", "unicolor_red_violet")
mcl_decor.register_curtains("orange", S("Orange Curtains"), "mcl_wool:orange", "wool_orange.png", "orange", "unicolor_orange")
mcl_decor.register_curtains("purple", S("Purple Curtains"), "mcl_wool:purple", "wool_violet.png", "violet", "unicolor_violet")
mcl_decor.register_curtains("brown", S("Brown Curtains"), "mcl_wool:brown", "wool_brown.png", "brown", "unicolor_dark_orange")
mcl_decor.register_curtains("pink", S("Pink Curtains"), "mcl_wool:pink", "wool_pink.png", "pink", "unicolor_light_red")
mcl_decor.register_curtains("lime", S("Lime Curtains"), "mcl_wool:lime", "mcl_wool_lime.png", "green", "unicolor_green")
mcl_decor.register_curtains("light_blue", S("Light Blue Curtains"), "mcl_wool:light_blue", "mcl_wool_light_blue.png", "lightblue", "unicolor_light_blue")
--- Dyed Planks --- --- Dyed Planks ---
mcl_decor.register_dyed_planks("white_planks", S("White Planks"), "#EDEDED", "white", "unicolor_white") mcl_decor.register_dyed_planks("white", S("White Planks"), "#EDEDED", "white", "unicolor_white")
mcl_decor.register_dyed_planks("grey_planks", S("Grey Planks"), "#5F5F5F", "dark_grey", "unicolor_darkgrey") mcl_decor.register_dyed_planks("grey", S("Grey Planks"), "#5F5F5F", "dark_grey", "unicolor_darkgrey")
mcl_decor.register_dyed_planks("silver_planks", S("Light Grey Planks"), "#8C8C8C", "grey", "unicolor_grey") mcl_decor.register_dyed_planks("silver", S("Light Grey Planks"), "#8C8C8C", "grey", "unicolor_grey")
mcl_decor.register_dyed_planks("black_planks", S("Black Planks"), "#030303", "black", "unicolor_black") mcl_decor.register_dyed_planks("black", S("Black Planks"), "#030303", "black", "unicolor_black")
mcl_decor.register_dyed_planks("red_planks", S("Red Planks"), "#BD0000", "red", "unicolor_red") mcl_decor.register_dyed_planks("red", S("Red Planks"), "#BD0000", "red", "unicolor_red")
mcl_decor.register_dyed_planks("yellow_planks", S("Yellow Planks"), "#EBD800", "yellow", "unicolor_yellow") mcl_decor.register_dyed_planks("yellow", S("Yellow Planks"), "#EBD800", "yellow", "unicolor_yellow")
mcl_decor.register_dyed_planks("green_planks", S("Green Planks"), "#086400", "dark_green", "unicolor_dark_green") mcl_decor.register_dyed_planks("green", S("Green Planks"), "#086400", "dark_green", "unicolor_dark_green")
mcl_decor.register_dyed_planks("cyan_planks", S("Cyan Planks"), "#00C4B4", "cyan", "unicolor_cyan") mcl_decor.register_dyed_planks("cyan", S("Cyan Planks"), "#00C4B4", "cyan", "unicolor_cyan")
mcl_decor.register_dyed_planks("blue_planks", S("Blue Planks"), "#0B1E80", "blue", "unicolor_blue") mcl_decor.register_dyed_planks("blue", S("Blue Planks"), "#0B1E80", "blue", "unicolor_blue")
mcl_decor.register_dyed_planks("magenta_planks", S("Magenta Planks"), "#954395", "magenta", "unicolor_red_violet") mcl_decor.register_dyed_planks("magenta", S("Magenta Planks"), "#954395", "magenta", "unicolor_red_violet")
mcl_decor.register_dyed_planks("orange_planks", S("Orange Planks"), "#E68200", "orange", "unicolor_orange") mcl_decor.register_dyed_planks("orange", S("Orange Planks"), "#E68200", "orange", "unicolor_orange")
mcl_decor.register_dyed_planks("purple_planks", S("Purple Planks"), "#461A6D", "violet", "unicolor_violet") mcl_decor.register_dyed_planks("purple", S("Purple Planks"), "#461A6D", "violet", "unicolor_violet")
mcl_decor.register_dyed_planks("brown_planks", S("Brown Planks"), "#432209", "brown", "unicolor_dark_orange") mcl_decor.register_dyed_planks("brown", S("Brown Planks"), "#432209", "brown", "unicolor_dark_orange")
mcl_decor.register_dyed_planks("pink_planks", S("Pink Planks"), "#ED9BB4", "pink", "unicolor_light_red") mcl_decor.register_dyed_planks("pink", S("Pink Planks"), "#ED9BB4", "pink", "unicolor_light_red")
mcl_decor.register_dyed_planks("lime_planks", S("Lime Planks"), "#B3DF86", "green", "unicolor_green") mcl_decor.register_dyed_planks("lime", S("Lime Planks"), "#B3DF86", "green", "unicolor_green")
mcl_decor.register_dyed_planks("light_blue_planks", S("Light Blue Planks"), "#72A4D4", "lightblue", "unicolor_light_blue") mcl_decor.register_dyed_planks("light_blue", S("Light Blue Planks"), "#72A4D4", "lightblue", "unicolor_light_blue")

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 B