Compare commits
21 Commits
Author | SHA1 | Date |
---|---|---|
Mikita Wiśniewski | 2552e92b14 | |
Mikita Wiśniewski | 457237049b | |
Mikita Wiśniewski | 90375c9d4d | |
Mikita Wiśniewski | df843ca7a5 | |
Mikita Wiśniewski | 380be28114 | |
Mikita Wiśniewski | 19211d7c24 | |
Mikita Wiśniewski | a12dc3f8aa | |
Mikita Wiśniewski | 53b93aec4e | |
Mikita Wiśniewski | f68bf1b81b | |
MatthiasZM96 | 40406bab81 | |
Mikita Wiśniewski | 11a3ae4e86 | |
Mikita Wiśniewski | e913c0cc56 | |
Mikita Wiśniewski | b002a1aed8 | |
Mikita Wiśniewski | ecbc071461 | |
Mikita Wiśniewski | 0a7b1414c5 | |
Mikita Wiśniewski | ce5324af35 | |
Mikita Wiśniewski | 5a32f4595d | |
Mikita Wiśniewski 🤍💙🤍 | f61a71a7ec | |
Mikita Wiśniewski | 4f43fcf650 | |
Mikita Wiśniewski | 79b53ce5a6 | |
Mikita Wiśniewski | b9767cab86 |
|
@ -0,0 +1 @@
|
|||
textures/src/**
|
146
README.md
|
@ -1,119 +1,46 @@
|
|||
# MineClone2 Furniture and decorations mod [mcl_decor] (W.I.P.)
|
||||
Adds more decoration and furniture blocks to MineClone 2 (5)
|
||||
# MineClone2 Furniture and decorations mod [mcl_decor]
|
||||
Adds more decoration and furniture blocks to MineClone 2
|
||||
|
||||
[![ContentDB](https://content.minetest.net/packages/rudzik8/mcl_decor/shields/downloads/)](https://content.minetest.net/packages/rudzik8/mcl_decor/)
|
||||
|
||||
![Screenshot](screenshot_big.png "Screenshot")
|
||||
|
||||
## Blocks
|
||||
|
||||
### Armchairs
|
||||
Armchairs are 1x1 size blocks, on which you can sit by right-click! Uses wool and sticks for crafting. 16 colors available!
|
||||
|
||||
**Screenshot:**
|
||||
|
||||
![Screenshot](https://i.ibb.co/fNXWDQh/screenshot-20220324-135852.png "16 armchairs")
|
||||
|
||||
**Craft (has mirrored variant too):**
|
||||
|
||||
![Screenshot](https://i.ibb.co/3YhDML4/Webp-net-gifmaker-2.gif "Crafting")
|
||||
|
||||
### 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 *(+2 with MCL5)* types available!
|
||||
|
||||
**Screenshot:**
|
||||
|
||||
![Screenshot](https://i.ibb.co/rcG3D0N/screenshot-20220324-141118.png "6 chairs")
|
||||
|
||||
**Craft (has mirrored variant too):**
|
||||
|
||||
![Screenshot](https://i.ibb.co/dJ84rPT/Webp-net-gifmaker-3.gif "Crafting")
|
||||
|
||||
### Tables
|
||||
This mod has 2 types of tables: Regular Table (4 small legs in one block) and Slab Table (1 leg in one block, can be expanded by using wood slabs and more slab tables).
|
||||
Regular Tables are 1x1 size blocks made out of wood. Slab tables are 1x1 size blocks made out of wood too, but they look like if wood slab was combined with wood fence in one block.
|
||||
Every table uses sticks and wood planks for crafting.
|
||||
|
||||
**Screenshot:**
|
||||
|
||||
![Screenshot](https://i.ibb.co/6D6xv4d/screenshot-20220324-143209.png "12 various tables")
|
||||
|
||||
**Craft:**
|
||||
|
||||
![Screenshot](https://i.ibb.co/rcNTLTC/Webp-net-gifmaker-5.gif "Crafting (regular ones)")
|
||||
|
||||
### Dyed Planks
|
||||
Dyed planks are 1x1 size blocks, acting like any other wood planks. Uses dye and any wood plank for crafting. 16 colors available!
|
||||
|
||||
**Screenshot:**
|
||||
|
||||
![Screenshot](https://i.ibb.co/dWFC1R6/screenshot-20220324-150234.png "16 dyed planks")
|
||||
|
||||
**Craft (shapeless):**
|
||||
|
||||
![Screenshot](https://i.ibb.co/PQrJWt7/Webp-net-gifmaker-6.gif "Crafting")
|
||||
|
||||
### Paths
|
||||
This mod has 7 (+2 with MCL5) types of them: Gravel, Cobblestone, Stone, Granite, Andesite, Diorite and Netherrack paths. If mcl_deepslate (MCL5 mod) enabled, there will be added Deepslate and Cobbled Deepslate paths as well.
|
||||
Paths are nearly carpet size blocks, on which you can walk. Uses corresponding for its' type material for crafting.
|
||||
|
||||
**Screenshot:**
|
||||
|
||||
![Screenshot](https://i.ibb.co/kgqwhW2/screenshot-20220324-155134.png "7 paths")
|
||||
|
||||
**Craft:**
|
||||
|
||||
![Screenshot](https://i.ibb.co/G53JJhG/Webp-net-gifmaker-7.gif "Crafting")
|
||||
|
||||
### Coalquartz Tile
|
||||
Coalquartz tile is 1x1 size block, that looks and acts like coal and quartz blocks were combined. Uses coal and quartz items for crafting. Has slab and stair variants too!
|
||||
|
||||
**Screenshot:**
|
||||
|
||||
![Screenshot](https://i.ibb.co/j6hwy4J/screenshot-20220324-161814.png "Coalquartz slab, blocks and stair")
|
||||
|
||||
**Craft (has mirrored variant too):**
|
||||
|
||||
![Screenshot](https://i.ibb.co/Nrvy89T/screenshot-20220324-161942.png "Crafting")
|
||||
|
||||
### Table Lamp
|
||||
Table lamp is 1x1 size block, that emits light. Uses wool, stone and torch for crafting.
|
||||
|
||||
**Screenshot:**
|
||||
|
||||
![Screenshot](https://i.ibb.co/sRJy8DF/screenshot-20220324-163824.png "Table lamp on a birch table")
|
||||
|
||||
**Craft:**
|
||||
|
||||
![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")
|
||||
![Screenshot](screenshot.png "Screenshot")
|
||||
|
||||
|
||||
|
||||
## About
|
||||
|
||||
This mod adds various blocks into the game so you can decorate your house, office or whatever you're building in MineClone!
|
||||
|
||||
Added blocks are:
|
||||
|
||||
* Armchairs
|
||||
* Chairs
|
||||
* Tables
|
||||
* Dyed Planks
|
||||
* Paths
|
||||
* Hedges
|
||||
* Curtains
|
||||
* Coalquartz Tile
|
||||
* Table Lamp
|
||||
* Oven
|
||||
* **and more are planned!**
|
||||
|
||||
Want to read more? [Check out the Wiki!](https://git.minetest.land/rudzik8/mcl_decor/wiki)
|
||||
|
||||
## Contributing (how can I help?)
|
||||
|
||||
### 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" for German/**De**utsch). After that, you can open that file and translate strings to your language.
|
||||
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/<ins>De</ins>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 if it has no problems - I'll merge it!
|
||||
|
||||
### Report bugs
|
||||
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 reviews!
|
||||
On ContentDB of course. Reviews can motivate me to continue updating this mod!
|
||||
### Share mod with friends and make reviews
|
||||
On ContentDB of course. Reviews motivate me to continue updating this mod. Also, you can star this repo on MeseHub as well!
|
||||
|
||||
### 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 even add something via pull requests!
|
||||
I'm not a very good coder so if you can - please, fix some bugs or maybe even add something via pull requests!
|
||||
|
||||
**Thanks.**
|
||||
|
||||
|
@ -127,16 +54,21 @@ Media licensed under CC-BY-SA 4.0, see [this deed](https://creativecommons.org/l
|
|||
|
||||
## 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)
|
||||
- [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 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)
|
||||
- [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)
|
||||
|
||||
- [Coalquartz Tile texture](textures/mcl_decor_coalquartz_tile.png) uses [coal block](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/textures/default_coal_block.png) and [side 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/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 texture](textures/mcl_decor_table_lamp.png) uses [red wool](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/textures/wool_red.png), [black wool](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/ITEMS/mcl_wool/textures/wool_black.png), [torch](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/ITEMS/mcl_torches/textures/default_torch_on_floor.png), [smooth stone](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/ITEMS/mcl_stairs/textures/mcl_stairs_stone_slab_top.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 and resized)
|
||||
- [Curtains overlay texture](textures/mcl_decor_curtain_overlay.png) uses [top iron pane](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/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)
|
||||
- [Oven front texture](textures/mcl_decor_oven_front.png) uses [top quartz block](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/textures/mcl_nether_quartz_block_top.png), [obsidian](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/textures/default_obsidian.png) and [glass](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/textures/default_glass.png) textures under [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) by [XSSheep](https://github.com/XSSheep) (combined and resized)
|
||||
- [Oven front active texture](textures/mcl_decor_oven_front_active.png) uses [top quartz block](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/textures/mcl_nether_quartz_block_top.png), [obsidian](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/textures/default_obsidian.png) and [glass](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/textures/default_glass.png) textures under [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) by [XSSheep](https://github.com/XSSheep) (combined and resized)
|
||||
- [Oven side texture](textures/mcl_decor_oven_side.png) uses [top quartz block](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/textures/mcl_nether_quartz_block_top.png) and [obsidian](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/textures/default_obsidian.png) textures under [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) by [XSSheep](https://github.com/XSSheep) (combined and resized)
|
||||
- [Oven top texture](textures/mcl_decor_oven_top.png) uses [obsidian](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/textures/default_obsidian.png) texture under [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) by [XSSheep](https://github.com/XSSheep) (slightly modified)
|
||||
|
||||
**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/)
|
||||
- *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)
|
||||
- Oven code (oven.lua) uses code from [mcl_smoker](https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/ITEMS/mcl_smoker) under [LGPLv2.1](https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html) by [Wuzzy](https://wuzzy.codeberg.page/) and [PrairieWind](https://prairiewind.codeberg.page/)
|
||||
|
||||
**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!
|
||||
|
|
393
colored.lua
|
@ -2,213 +2,190 @@
|
|||
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
--=-- API --=--
|
||||
function mcl_decor.register_armchair(color, desc, tiles, dye, colorgroup)
|
||||
minetest.register_node("mcl_decor:"..color.."_armchair", {
|
||||
description = desc,
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.4375, -0.5, -0.5, 0.4375, -0.0625, 0.1875},
|
||||
{-0.5, -0.4375, -0.5, -0.3125, 0.125, 0.1875},
|
||||
{0.3125, -0.4375, -0.5, 0.5, 0.125, 0.1875},
|
||||
{-0.5, -0.5, 0.1875, 0.5, 0.5, 0.5},
|
||||
{-0.5, -0.5, -0.4375, 0.5, -0.4375, 0.5},
|
||||
-- COLORS TABLE
|
||||
mcl_decor.colors = {
|
||||
-- color, wool texture, armchair desc, curtains desc, dyed planks desc, dye, colorgroup, hexcolor
|
||||
{"white", "wool_white", S("White Armchair"), S("White Curtains"), S("White Planks"), "white", "unicolor_white", "#D0D6D7"},
|
||||
{"grey", "wool_dark_grey", S("Grey Armchair"), S("Grey Curtains"), S("Grey Planks"), "dark_grey", "unicolor_darkgrey", "#383B40"},
|
||||
{"silver", "wool_grey", S("Light Grey Armchair"), S("Light Grey Curtains"), S("Light Grey Planks"), "grey", "unicolor_grey", "#808176"},
|
||||
{"black", "wool_black", S("Black Armchair"), S("Black Curtains"), S("Black Planks"), "black", "unicolor_black", "#080A0F"},
|
||||
{"red", "wool_red", S("Red Armchair"), S("Red Curtains"), S("Red Planks"), "red", "unicolor_red", "#922222"},
|
||||
{"yellow", "wool_yellow", S("Yellow Armchair"), S("Yellow Curtains"), S("Yellow Planks"), "yellow", "unicolor_yellow", "#F1B115"},
|
||||
{"green", "wool_dark_green", S("Green Armchair"), S("Green Curtains"), S("Green Planks"), "dark_green", "unicolor_dark_green", "#4B5E25"},
|
||||
{"cyan", "wool_cyan", S("Cyan Armchair"), S("Cyan Curtains"), S("Cyan Planks"), "cyan", "unicolor_cyan", "#157B8C"},
|
||||
{"blue", "wool_blue", S("Blue Armchair"), S("Blue Curtains"), S("Blue Planks"), "blue", "unicolor_blue", "#2E3093"},
|
||||
{"magenta", "wool_magenta", S("Magenta Armchair"), S("Magenta Curtains"), S("Magenta Planks"), "magenta", "unicolor_red_violet", "#AB31A2"},
|
||||
{"orange", "wool_orange", S("Orange Armchair"), S("Orange Curtains"), S("Orange Planks"), "orange", "unicolor_orange", "#E26501"},
|
||||
{"purple", "wool_violet", S("Purple Armchair"), S("Purple Curtains"), S("Purple Planks"), "violet", "unicolor_violet", "#67209F"},
|
||||
{"brown", "wool_brown", S("Brown Armchair"), S("Brown Curtains"), S("Brown Planks"), "brown", "unicolor_dark_orange", "#623C20"},
|
||||
{"pink", "wool_pink", S("Pink Armchair"), S("Pink Curtains"), S("Pink Planks"), "pink", "unicolor_light_red", "#D56790"},
|
||||
{"lime", "mcl_wool_lime", S("Lime Armchair"), S("Lime Curtains"), S("Lime Planks"), "green", "unicolor_green", "#60AB19"},
|
||||
{"light_blue", "mcl_wool_light_blue", S("Light Blue Armchair"), S("Light Blue Curtains"), S("Light Blue Planks"), "lightblue", "unicolor_light_blue,", "#258CC8"},
|
||||
}
|
||||
|
||||
for _, row in ipairs(mcl_decor.colors) do
|
||||
-- define rows
|
||||
local color = row[1]
|
||||
local wooltile = row[2]
|
||||
local desc = row[3]
|
||||
local desc2 = row[4]
|
||||
local desc3 = row[5]
|
||||
local dye = row[6]
|
||||
local colorgroup = row[7]
|
||||
local hexcolor = row[8]
|
||||
|
||||
-- register armchairs
|
||||
minetest.register_node("mcl_decor:"..color.."_armchair", {
|
||||
description = desc,
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.4375, -0.5, -0.5, 0.4375, -0.0625, 0.1875},
|
||||
{-0.5, -0.4375, -0.5, -0.3125, 0.125, 0.1875},
|
||||
{0.3125, -0.4375, -0.5, 0.5, 0.125, 0.1875},
|
||||
{-0.5, -0.5, 0.1875, 0.5, 0.5, 0.5},
|
||||
{-0.5, -0.5, -0.4375, 0.5, -0.4375, 0.5},
|
||||
}
|
||||
},
|
||||
tiles = {wooltile..".png"},
|
||||
is_ground_content = false,
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
stack_max = 64,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
|
||||
},
|
||||
groups = {handy=1, shearsy_wool=1, attached_node=1, deco_block=1, armchair=1, flammable=1, fire_encouragement=30, fire_flammability=60, [colorgroup]=1},
|
||||
_mcl_hardness = 1,
|
||||
_mcl_blast_resistance = 1,
|
||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
||||
on_rightclick = mcl_decor.sit
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = "mcl_decor:"..color.."_armchair",
|
||||
recipe = {
|
||||
{"", "", "mcl_wool:"..color},
|
||||
{"mcl_wool:"..color, "mcl_wool:"..color, "mcl_wool:"..color},
|
||||
{"mcl_core:stick", "mcl_core:stick", "mcl_core:stick"}
|
||||
}
|
||||
},
|
||||
tiles = {tiles},
|
||||
is_ground_content = false,
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
stack_max = 64,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
|
||||
},
|
||||
groups = {handy=1, shearsy_wool=1, attached_node=1, deco_block=1, armchair=1, flammable=1, fire_encouragement=30, fire_flammability=60, [colorgroup]=1},
|
||||
_mcl_hardness = 1,
|
||||
_mcl_blast_resistance = 1,
|
||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
||||
on_rightclick = mcl_decor.sit
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = "mcl_decor:"..color.."_armchair",
|
||||
recipe = {
|
||||
{"", "", "mcl_wool:"..color},
|
||||
{"mcl_wool:"..color, "mcl_wool:"..color, "mcl_wool:"..color},
|
||||
{"mcl_core:stick", "mcl_core:stick", "mcl_core:stick"}
|
||||
}
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = "mcl_decor:"..color.."_armchair",
|
||||
recipe = {
|
||||
{"mcl_wool:"..color, "", ""},
|
||||
{"mcl_wool:"..color, "mcl_wool:"..color, "mcl_wool:"..color},
|
||||
{"mcl_core:stick", "mcl_core:stick", "mcl_core:stick"}
|
||||
}
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "mcl_decor:"..color.."_armchair",
|
||||
recipe = {"group:armchair", "mcl_dye:"..dye},
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "mcl_decor:"..color.."_armchair",
|
||||
burntime = 10,
|
||||
})
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = "mcl_decor:"..color.."_armchair",
|
||||
recipe = {
|
||||
{"mcl_wool:"..color, "", ""},
|
||||
{"mcl_wool:"..color, "mcl_wool:"..color, "mcl_wool:"..color},
|
||||
{"mcl_core:stick", "mcl_core:stick", "mcl_core:stick"}
|
||||
}
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "mcl_decor:"..color.."_armchair",
|
||||
recipe = {"group:armchair", "mcl_dye:"..dye},
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "mcl_decor:"..color.."_armchair",
|
||||
burntime = 10,
|
||||
})
|
||||
|
||||
-- register curtains
|
||||
minetest.register_node("mcl_decor:curtain_"..color, {
|
||||
description = desc2,
|
||||
tiles = {
|
||||
-- very hacky way to make curtains render as they should
|
||||
wooltile..".png".."^mcl_decor_curtain_alpha.png^[makealpha:255,126,126^mcl_decor_curtain_overlay.png",
|
||||
wooltile..".png".."^mcl_decor_curtain_alpha.png^[makealpha:255,126,126^mcl_decor_curtain_overlay.png^[transformFY",
|
||||
wooltile..".png".."^mcl_decor_curtain_overlay.png^[transformR270",
|
||||
wooltile..".png".."^mcl_decor_curtain_overlay.png^[transformR90",
|
||||
wooltile..".png".."^mcl_decor_curtain_overlay.png^[transformFY",
|
||||
wooltile..".png".."^mcl_decor_curtain_alpha.png^[makealpha:255,126,126^mcl_decor_curtain_overlay.png",
|
||||
},
|
||||
use_texture_alpha = "clip",
|
||||
stack_max = 64,
|
||||
inventory_image = wooltile..".png".."^mcl_decor_curtain_alpha.png^[makealpha:255,126,126^mcl_decor_curtain_overlay.png",
|
||||
wield_image = wooltile..".png".."^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 to close curtains
|
||||
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 = desc2..S(" (closed)"),
|
||||
tiles = {
|
||||
wooltile..".png".."^mcl_decor_curtain_overlay.png",
|
||||
wooltile..".png".."^mcl_decor_curtain_overlay.png^[transformFY",
|
||||
wooltile..".png".."^mcl_decor_curtain_overlay.png^[transformR270",
|
||||
wooltile..".png".."^mcl_decor_curtain_overlay.png^[transformR90",
|
||||
wooltile..".png".."^mcl_decor_curtain_overlay.png^[transformFY",
|
||||
wooltile..".png".."^mcl_decor_curtain_overlay.png",
|
||||
},
|
||||
use_texture_alpha = "clip",
|
||||
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,
|
||||
-- function to open curtains
|
||||
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"},
|
||||
{"mcl_wool:"..color, "mcl_wool:"..color, "mcl_wool:"..color},
|
||||
{"mcl_wool:"..color, "", "mcl_wool:"..color}
|
||||
}
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "mcl_decor:curtain_"..color,
|
||||
recipe = {"group:curtain", "mcl_dye:"..dye},
|
||||
})
|
||||
|
||||
-- register dyed planks
|
||||
minetest.register_node("mcl_decor:"..color.."_planks", {
|
||||
description = desc3,
|
||||
tiles = {"mcl_decor_dyed_planks.png^[colorize:"..hexcolor..":125"},
|
||||
stack_max = 64,
|
||||
is_ground_content = false,
|
||||
groups = {handy=1, axey=1, flammable=3, wood=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20, [colorgroup]=1},
|
||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
||||
_mcl_blast_resistance = 3,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "mcl_decor:"..color.."_planks",
|
||||
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
|
||||
mcl_stairs.register_stair_and_slab_simple(
|
||||
color.."_planks", "mcl_decor:"..color.."_planks", desc3..S(" Stair"), desc3..S(" Slab"), S("Double")..desc3..S(" Slab"), "woodlike"
|
||||
)
|
||||
end
|
||||
|
||||
function mcl_decor.register_dyed_planks(color, desc, hexcolor, dye, colorgroup)
|
||||
minetest.register_node("mcl_decor:"..color.."_planks", {
|
||||
description = desc,
|
||||
tiles = {"mcl_decor_dyed_planks.png^[colorize:" .. hexcolor .. ":125"},
|
||||
stack_max = 64,
|
||||
is_ground_content = false,
|
||||
groups = {handy=1, axey=1, flammable=3, wood=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20, [colorgroup]=1},
|
||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
||||
_mcl_blast_resistance = 3,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "mcl_decor:"..color.."_planks",
|
||||
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
|
||||
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,
|
||||
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
|
||||
|
||||
|
||||
|
||||
--=-- REGISTER --=--
|
||||
--- Armchairs ---
|
||||
mcl_decor.register_armchair("white", S("White Armchair"), "wool_white.png", "white", "unicolor_white")
|
||||
mcl_decor.register_armchair("grey", S("Grey Armchair"), "wool_dark_grey.png", "dark_grey", "unicolor_darkgrey")
|
||||
mcl_decor.register_armchair("silver", S("Light Grey Armchair"), "wool_grey.png", "grey", "unicolor_grey")
|
||||
mcl_decor.register_armchair("black", S("Black Armchair"), "wool_black.png", "black", "unicolor_black")
|
||||
mcl_decor.register_armchair("red", S("Red Armchair"), "wool_red.png", "red", "unicolor_red")
|
||||
mcl_decor.register_armchair("yellow", S("Yellow Armchair"), "wool_yellow.png", "yellow", "unicolor_yellow")
|
||||
mcl_decor.register_armchair("green", S("Green Armchair"), "wool_dark_green.png", "dark_green", "unicolor_dark_green")
|
||||
mcl_decor.register_armchair("cyan", S("Cyan Armchair"), "wool_cyan.png", "cyan", "unicolor_cyan")
|
||||
mcl_decor.register_armchair("blue", S("Blue Armchair"), "wool_blue.png", "blue", "unicolor_blue")
|
||||
mcl_decor.register_armchair("magenta", S("Magenta Armchair"), "wool_magenta.png", "magenta", "unicolor_red_violet")
|
||||
mcl_decor.register_armchair("orange", S("Orange Armchair"), "wool_orange.png", "orange", "unicolor_orange")
|
||||
mcl_decor.register_armchair("purple", S("Purple Armchair"), "wool_violet.png", "violet", "unicolor_violet")
|
||||
mcl_decor.register_armchair("brown", S("Brown Armchair"), "wool_brown.png", "brown", "unicolor_dark_orange")
|
||||
mcl_decor.register_armchair("pink", S("Pink Armchair"), "wool_pink.png", "pink", "unicolor_light_red")
|
||||
mcl_decor.register_armchair("lime", S("Lime Armchair"), "mcl_wool_lime.png", "green", "unicolor_green")
|
||||
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 ---
|
||||
mcl_decor.register_dyed_planks("white", S("White Planks"), "#EDEDED", "white", "unicolor_white")
|
||||
mcl_decor.register_dyed_planks("grey", S("Grey Planks"), "#5F5F5F", "dark_grey", "unicolor_darkgrey")
|
||||
mcl_decor.register_dyed_planks("silver", S("Light Grey Planks"), "#8C8C8C", "grey", "unicolor_grey")
|
||||
mcl_decor.register_dyed_planks("black", S("Black Planks"), "#030303", "black", "unicolor_black")
|
||||
mcl_decor.register_dyed_planks("red", S("Red Planks"), "#BD0000", "red", "unicolor_red")
|
||||
mcl_decor.register_dyed_planks("yellow", S("Yellow Planks"), "#EBD800", "yellow", "unicolor_yellow")
|
||||
mcl_decor.register_dyed_planks("green", S("Green Planks"), "#086400", "dark_green", "unicolor_dark_green")
|
||||
mcl_decor.register_dyed_planks("cyan", S("Cyan Planks"), "#00C4B4", "cyan", "unicolor_cyan")
|
||||
mcl_decor.register_dyed_planks("blue", S("Blue Planks"), "#0B1E80", "blue", "unicolor_blue")
|
||||
mcl_decor.register_dyed_planks("magenta", S("Magenta Planks"), "#954395", "magenta", "unicolor_red_violet")
|
||||
mcl_decor.register_dyed_planks("orange", S("Orange Planks"), "#E68200", "orange", "unicolor_orange")
|
||||
mcl_decor.register_dyed_planks("purple", S("Purple Planks"), "#461A6D", "violet", "unicolor_violet")
|
||||
mcl_decor.register_dyed_planks("brown", S("Brown Planks"), "#432209", "brown", "unicolor_dark_orange")
|
||||
mcl_decor.register_dyed_planks("pink", S("Pink Planks"), "#ED9BB4", "pink", "unicolor_light_red")
|
||||
mcl_decor.register_dyed_planks("lime", S("Lime Planks"), "#B3DF86", "green", "unicolor_green")
|
||||
mcl_decor.register_dyed_planks("light_blue", S("Light Blue Planks"), "#72A4D4", "lightblue", "unicolor_light_blue")
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
-- mcl_decor/hedges.lua
|
||||
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
-- API
|
||||
function mcl_decor.register_hedge(name, desc, material, tiles)
|
||||
-- use mcl_fences api to register hedge
|
||||
mcl_fences.register_fence(
|
||||
name .. "_hedge",
|
||||
desc,
|
||||
tiles,
|
||||
{handy = 1, axey = 1, hedge = 1, deco_block = 1, flammable = 2, fire_encouragement = 10, fire_flammability = 10},
|
||||
1, 1,
|
||||
{"group:hedge"},
|
||||
mcl_sounds.node_sound_leaves_defaults()
|
||||
)
|
||||
-- crafting recipe
|
||||
minetest.register_craft({
|
||||
output = "mcl_decor:" .. name .. "_hedge" .. " 6",
|
||||
recipe = {
|
||||
{material, "mcl_core:stick", material},
|
||||
{material, "mcl_core:stick", material},
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
|
||||
|
||||
-- REGISTER
|
||||
mcl_decor.register_hedge("oak", S("Oak Hedge"), "mcl_core:leaves", "default_leaves.png")
|
||||
mcl_decor.register_hedge("dark", S("Dark Oak Hedge"), "mcl_core:darkleaves", "mcl_core_leaves_big_oak.png")
|
||||
mcl_decor.register_hedge("jungle", S("Jungle Hedge"), "mcl_core:jungleleaves", "default_jungleleaves.png")
|
||||
mcl_decor.register_hedge("acacia", S("Acacia Hedge"), "mcl_core:acacialeaves", "default_acacia_leaves.png")
|
||||
mcl_decor.register_hedge("spruce", S("Spruce Hedge"), "mcl_core:spruceleaves", "mcl_core_leaves_spruce.png")
|
||||
mcl_decor.register_hedge("birch", S("Birch Hedge"), "mcl_core:birchleaves", "mcl_core_leaves_birch.png")
|
||||
mcl_decor.register_hedge("mangrove", S("Mangrove Hedge"), "mcl_mangrove:mangroveleaves", "mcl_mangrove_leaves.png")
|
||||
|
||||
-- all hedges should be fuel
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "group:hedge",
|
||||
burntime = 5,
|
||||
})
|
2
init.lua
|
@ -8,4 +8,6 @@ dofile(modpath.."/api.lua")
|
|||
dofile(modpath.."/wooden.lua")
|
||||
dofile(modpath.."/colored.lua")
|
||||
dofile(modpath.."/paths.lua")
|
||||
dofile(modpath.."/hedges.lua")
|
||||
dofile(modpath.."/oven.lua")
|
||||
dofile(modpath.."/misc.lua")
|
||||
|
|
|
@ -0,0 +1,106 @@
|
|||
# textdomain: mcl_decor
|
||||
You have to stop moving before sitting down!=Arrêtez de bouger avant de vous asseoir!
|
||||
Coalquartz Tile=Carreau de Charbon-Quartz
|
||||
Coalquartz Stair=Escalier de Charbon-Quartz
|
||||
Coalquartz Slab=Dalle de Charbon-Quartz
|
||||
Double Coalquartz Slab=Double-Dalle de Charbon-Quartz
|
||||
Gravel Path=Chemin de Gravier
|
||||
Cobblestone Path=Chemin de Pierre
|
||||
Stone Path=Chemin de Roche
|
||||
Granite Path=Chemin de Granite
|
||||
Andesite Path=Chemin d'Andésite
|
||||
Diorite Path=Chemin de Diorite
|
||||
Netherrack Path=Chemin de Netherrack
|
||||
Deepslate Path=Chemin d'Ardoise des abîmes
|
||||
Cobbled Deepslate Path=Chemin de Pierre des abîmes
|
||||
Table Lamp=Lampe de Table
|
||||
Oak Chair=Chaise en Chêne
|
||||
Acacia Chair=Chaise en Acacia
|
||||
Birch Chair=Chaise en Bouleau
|
||||
Dark Oak Chair=Chaise en Chêne Noir
|
||||
Jungle Chair=Chaise en Acajou
|
||||
Spruce Chair=Chaise en Sapin
|
||||
Mangrove Chair=Chaise en Palétuvier
|
||||
Crimson Chair=Chaise Carmin
|
||||
Warped Chair=Chaise Biscornue
|
||||
Bamboo Chair=
|
||||
Oak Table=Table en Chêne
|
||||
Acacia Table=Table en Acacia
|
||||
Birch Table=Table en Bouleau
|
||||
Dark Oak Table=Table en Chêne Noir
|
||||
Jungle Table=Table en Acajou
|
||||
Spruce Table=Table en Sapin
|
||||
Mangrove Table=Table en Palétuvier
|
||||
Crimson Table=Table Carmin
|
||||
Warped Table=Table Biscornue
|
||||
Bamboo Table=
|
||||
Oak Slab Table=Table Basse en Chêne
|
||||
Dark Oak Slab Table=Table Basse en Chêne Noir
|
||||
Jungle Slab Table=Table Basse en Acajou
|
||||
Spruce Slab Table=Table Basse en Sapin
|
||||
Acacia Slab Table=Table Basse en Acacia
|
||||
Birch Slab Table=Table Basse en Bouleau
|
||||
Mangrove Slab Table=Table Basse en Palétuvier
|
||||
Crimson Slab Table=Table Basse Carmin
|
||||
Warped Slab Table=Table Basse Biscornue
|
||||
Bamboo Slab Table=
|
||||
Oak Hedge=Haie de Chêne
|
||||
Dark Oak Hedge=Haie de Chêne Noir
|
||||
Jungle Hedge=Haie d'Acajou
|
||||
Acacia Hedge=Haie d'Acacia
|
||||
Spruce Hedge=Haie de Sapon
|
||||
Birch Hedge=Haie de Bouleau
|
||||
Mangrove Hedge=Haie de Palétuvier
|
||||
White Planks=Planches Blanches
|
||||
Grey Planks=Planches Grise
|
||||
Light Grey Planks=Planches Gris Clair
|
||||
Black Planks=Planches Noire
|
||||
Red Planks=Planches Rouge
|
||||
Yellow Planks=Planches Jaune
|
||||
Green Planks=Planches Verte
|
||||
Cyan Planks=Planches Cyan
|
||||
Blue Planks=Planches Bleu
|
||||
Magenta Planks=Planches Magenta
|
||||
Orange Planks=Planches Orange
|
||||
Purple Planks=Planches Violette
|
||||
Brown Planks=Planches Marron
|
||||
Pink Planks=Planches Rose
|
||||
Lime Planks=Planches Vert Clair
|
||||
Light Blue Planks=Planches Bleu Clair
|
||||
White Armchair=Fauteuil Blanc
|
||||
Grey Armchair=Fauteuil Gris
|
||||
Light Grey Armchair=Fauteuil Gris CLair
|
||||
Black Armchair=Fauteuil Noir
|
||||
Red Armchair=Fauteuil Rouge
|
||||
Yellow Armchair=Fauteuil Jaune
|
||||
Green Armchair=Fauteuil Vert
|
||||
Cyan Armchair=Fauteuil Cyan
|
||||
Blue Armchair=Fauteuil Bleu
|
||||
Magenta Armchair=Fauteuil Magenta
|
||||
Orange Armchair=Fauteuil Orange
|
||||
Purple Armchair=Fauteuil Violet
|
||||
Brown Armchair=Fauteuil Marron
|
||||
Pink Armchair=Fauteuil Rose
|
||||
Lime Armchair=Fauteuil Vert Clair
|
||||
Light Blue Armchair=Fauteuil Bleu Clair
|
||||
White Curtains=Rideaux Blanc
|
||||
Grey Curtains=Rideaux Gris
|
||||
Light Grey Curtains=Rideaux Gris Clair
|
||||
Black Curtains=Rideaux Noir
|
||||
Red Curtains=Rideaux Rouge
|
||||
Yellow Curtains=Rideaux Jaune
|
||||
Green Curtains=Rideaux Vert
|
||||
Cyan Curtains=Rideaux Cyan
|
||||
Blue Curtains=Rideaux Bleu
|
||||
Magenta Curtains=Rideaux Magenta
|
||||
Orange Curtains=Rideaux Orange
|
||||
Purple Curtains=Rideaux Violet
|
||||
Brown Curtains=Rideaux Marron
|
||||
Pink Curtains=Rideaux Rose
|
||||
Lime Curtains=Rideaux Vert Clair
|
||||
Light Blue Curtains=Rideaux Bleu Clair
|
||||
Oven=
|
||||
Stair= Escalier
|
||||
Slab= Dalle
|
||||
Double=Double
|
||||
(closed)= (fermé)
|
|
@ -20,24 +20,37 @@ Birch Chair=Берёзовый стул
|
|||
Dark Oak Chair=Стул из тёмного дуба
|
||||
Jungle Chair=Стул из тропического дерева
|
||||
Spruce Chair=Еловый стул
|
||||
Mangrove Chair=Мангровый стул
|
||||
Crimson Chair=Багровый стул
|
||||
Warped Chair=Искажённый стул
|
||||
Bamboo Chair=Бамбуковый стул
|
||||
Oak Table=Дубовый стол
|
||||
Acacia Table=Стол из акации
|
||||
Birch Table=Берёзовый стол
|
||||
Dark Oak Table=Стол из тёмного дуба
|
||||
Jungle Table=Стол из тропического дерева
|
||||
Spruce Table=Еловый стол
|
||||
Mangrove Table=Мангровый стол
|
||||
Crimson Table=Багровый стол
|
||||
Warped Table=Искажённый стол
|
||||
Bamboo Table=Бамбуковый стол
|
||||
Oak Slab Table=Дубовый полублочный стол
|
||||
Dark Oak Slab Table=Полублочный стол из тёмного дуба
|
||||
Jungle Slab Table=Полублочный стол из тропического дерева
|
||||
Spruce Slab Table=Еловый полублочный стол
|
||||
Acacia Slab Table=Полублочный стол из акации
|
||||
Birch Slab Table=Берёзовый полублочный стол
|
||||
Mangrove Slab Table=Мангровый полублочный стол
|
||||
Crimson Slab Table=Багровый полублочный стол
|
||||
Warped Slab Table=Искажённый полублочный стол
|
||||
Bamboo Slab Table=Бамбуковый полублочный стол
|
||||
Oak Hedge=Дубовая живая изгородь
|
||||
Dark Oak Hedge=Живая изгородь из тёмного дуба
|
||||
Jungle Hedge=Живая изгородь из тропического дерева
|
||||
Acacia Hedge=Живая изгородь из акации
|
||||
Spruce Hedge=Еловая живая изгородь
|
||||
Birch Hedge=Берёзовая живая изгородь
|
||||
Mangrove Hedge=Мангровая живая изгородь
|
||||
White Planks=Белые доски
|
||||
Grey Planks=Серые доски
|
||||
Light Grey Planks=Светло-серые доски
|
||||
|
@ -86,6 +99,7 @@ Brown Armchair=Коричневые шторы
|
|||
Pink Armchair=Розовые шторы
|
||||
Lime Armchair=Зелёные лаймовые шторы
|
||||
Light Blue Armchair=Светло-голубые шторы
|
||||
Oven=Духовка
|
||||
Stair= Ступенька
|
||||
Slab= Плита
|
||||
Double=Двойная
|
||||
|
|
|
@ -20,24 +20,37 @@ Birch Chair=
|
|||
Dark Oak Chair=
|
||||
Jungle Chair=
|
||||
Spruce Chair=
|
||||
Mangrove Chair=
|
||||
Crimson Chair=
|
||||
Warped Chair=
|
||||
Bamboo Chair=
|
||||
Oak Table=
|
||||
Acacia Table=
|
||||
Birch Table=
|
||||
Dark Oak Table=
|
||||
Jungle Table=
|
||||
Spruce Table=
|
||||
Mangrove Table=
|
||||
Crimson Table=
|
||||
Warped Table=
|
||||
Bamboo Table=
|
||||
Oak Slab Table=
|
||||
Dark Oak Slab Table=
|
||||
Jungle Slab Table=
|
||||
Spruce Slab Table=
|
||||
Acacia Slab Table=
|
||||
Birch Slab Table=
|
||||
Mangrove Slab Table=
|
||||
Crimson Slab Table=
|
||||
Warped Slab Table=
|
||||
Bamboo Slab Table=
|
||||
Oak Hedge=
|
||||
Dark Oak Hedge=
|
||||
Jungle Hedge=
|
||||
Acacia Hedge=
|
||||
Spruce Hedge=
|
||||
Birch Hedge=
|
||||
Mangrove Hedge=
|
||||
White Planks=
|
||||
Grey Planks=
|
||||
Light Grey Planks=
|
||||
|
@ -86,6 +99,7 @@ Brown Curtains=
|
|||
Pink Curtains=
|
||||
Lime Curtains=
|
||||
Light Blue Curtains=
|
||||
Oven=
|
||||
Stair=
|
||||
Slab=
|
||||
Double=
|
||||
|
|
25
misc.lua
|
@ -4,8 +4,8 @@ local S = minetest.get_translator(minetest.get_current_modname())
|
|||
|
||||
--- Coalquartz Tile ---
|
||||
minetest.register_node("mcl_decor:coalquartz_tile", {
|
||||
description = S("Coalquartz Tile"),
|
||||
tiles = {"mcl_decor_coalquartz_tile.png"},
|
||||
description = S("Coalquartz Tile"),
|
||||
tiles = {"mcl_decor_coalquartz_tile.png"},
|
||||
is_ground_content = false,
|
||||
groups = {pickaxey=1, flammable=1, quartz_block=1, building_block=1, material_stone=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||
|
@ -33,26 +33,23 @@ mcl_stairs.register_stair_and_slab_simple("coalquartz_tile", "mcl_decor:coalquar
|
|||
--- Table Lamp ---
|
||||
minetest.register_node("mcl_decor:table_lamp", {
|
||||
description = S("Table Lamp"),
|
||||
tiles = {"mcl_decor_table_lamp.png", "mcl_decor_table_lamp_bottom.png", "mcl_decor_table_lamp_side.png",
|
||||
"mcl_decor_table_lamp_side.png", "mcl_decor_table_lamp_side.png", "mcl_decor_table_lamp_side.png"},
|
||||
drawtype = "nodebox",
|
||||
tiles = {"mcl_decor_table_lamp.png"},
|
||||
use_texture_alpha = "clip",
|
||||
drawtype = "mesh",
|
||||
mesh = "mcl_decor_table_lamp.obj",
|
||||
paramtype = "light",
|
||||
stack_max = 64,
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.25, -0.5, -0.25, 0.25, -0.375, 0.25},
|
||||
{-0.0625, -0.375, -0.0625, 0.0625, 0, 0.0625},
|
||||
{-0.3125, 0, -0.3125, 0.3125, 0.5, 0.3125},
|
||||
}
|
||||
},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.3125, -0.5, -0.3125, 0.3125, 0.5, 0.3125},
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.3125, -0.5, -0.3125, 0.3125, 0.5, 0.3125},
|
||||
},
|
||||
is_ground_content = false,
|
||||
light_source = minetest.LIGHT_MAX,
|
||||
groups = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1, flammable=-1},
|
||||
groups = {handy=1, axey=1, attached_node=1, deco_block=1, flammable=-1},
|
||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
||||
_mcl_blast_resistance = 0.9,
|
||||
_mcl_hardness = 0.9,
|
||||
|
|
7
mod.conf
|
@ -1,4 +1,5 @@
|
|||
title = MineClone2 Furniture and decorations
|
||||
name = mcl_decor
|
||||
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, mcl_title
|
||||
optional_depends = mcl_cozy, mcl_mushroom, mcl_deepslate
|
||||
description = Adds more decoration and furniture blocks to MineClone 2
|
||||
depends = mcl_core, mcl_torches, mcl_player, mcl_sounds, mcl_dye, mcl_nether, mcl_stairs, mcl_title, mcl_fences, mcl_mangrove, mcl_deepslate, mcl_crimson, mcl_bamboo
|
||||
optional_depends = mcl_cozy
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
# Made in Blockbench 4.4.1
|
||||
newmtl none
|
|
@ -0,0 +1,141 @@
|
|||
# Made in Blockbench 4.4.1
|
||||
mtllib mcl_decor_table_lamp.mtl
|
||||
|
||||
o cube
|
||||
v 0.3125 0.5 0.3125
|
||||
v 0.3125 0.5 -0.3125
|
||||
v 0.3125 0 0.3125
|
||||
v 0.3125 0 -0.3125
|
||||
v -0.3125 0.5 -0.3125
|
||||
v -0.3125 0.5 0.3125
|
||||
v -0.3125 0 -0.3125
|
||||
v -0.3125 0 0.3125
|
||||
vt 0.15625 0.6153846153846154
|
||||
vt 0.3125 0.6153846153846154
|
||||
vt 0.3125 0.3076923076923077
|
||||
vt 0.15625 0.3076923076923077
|
||||
vt 0 0.6153846153846154
|
||||
vt 0.15625 0.6153846153846154
|
||||
vt 0.15625 0.3076923076923077
|
||||
vt 0 0.3076923076923077
|
||||
vt 0.46875 0.6153846153846154
|
||||
vt 0.625 0.6153846153846154
|
||||
vt 0.625 0.3076923076923077
|
||||
vt 0.46875 0.3076923076923077
|
||||
vt 0.3125 0.6153846153846154
|
||||
vt 0.46875 0.6153846153846154
|
||||
vt 0.46875 0.3076923076923077
|
||||
vt 0.3125 0.3076923076923077
|
||||
vt 0.3125 0.6153846153846154
|
||||
vt 0.15625 0.6153846153846154
|
||||
vt 0.15625 1
|
||||
vt 0.3125 1
|
||||
vt 0.46875 1
|
||||
vt 0.3125 1
|
||||
vt 0.3125 0.6153846153846154
|
||||
vt 0.46875 0.6153846153846154
|
||||
vn 0 0 -1
|
||||
vn 1 0 0
|
||||
vn 0 0 1
|
||||
vn -1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
usemtl none
|
||||
f 4/4/1 7/3/1 5/2/1 2/1/1
|
||||
f 3/8/2 4/7/2 2/6/2 1/5/2
|
||||
f 8/12/3 3/11/3 1/10/3 6/9/3
|
||||
f 7/16/4 8/15/4 6/14/4 5/13/4
|
||||
f 6/20/5 1/19/5 2/18/5 5/17/5
|
||||
f 7/24/6 4/23/6 3/22/6 8/21/6
|
||||
o cube
|
||||
v 0.25 -0.375 0.25
|
||||
v 0.25 -0.375 -0.25
|
||||
v 0.25 -0.5 0.25
|
||||
v 0.25 -0.5 -0.25
|
||||
v -0.25 -0.375 -0.25
|
||||
v -0.25 -0.375 0.25
|
||||
v -0.25 -0.5 -0.25
|
||||
v -0.25 -0.5 0.25
|
||||
vt 0.625 0.6923076923076923
|
||||
vt 0.75 0.6923076923076923
|
||||
vt 0.75 0.6153846153846154
|
||||
vt 0.625 0.6153846153846154
|
||||
vt 0.5 0.6923076923076923
|
||||
vt 0.625 0.6923076923076923
|
||||
vt 0.625 0.6153846153846154
|
||||
vt 0.5 0.6153846153846154
|
||||
vt 0.875 0.6923076923076923
|
||||
vt 1 0.6923076923076923
|
||||
vt 1 0.6153846153846154
|
||||
vt 0.875 0.6153846153846154
|
||||
vt 0.75 0.6923076923076923
|
||||
vt 0.875 0.6923076923076923
|
||||
vt 0.875 0.6153846153846154
|
||||
vt 0.75 0.6153846153846154
|
||||
vt 0.75 0.6923076923076923
|
||||
vt 0.625 0.6923076923076923
|
||||
vt 0.625 1
|
||||
vt 0.75 1
|
||||
vt 0.875 1
|
||||
vt 0.75 1
|
||||
vt 0.75 0.6923076923076923
|
||||
vt 0.875 0.6923076923076923
|
||||
vn 0 0 -1
|
||||
vn 1 0 0
|
||||
vn 0 0 1
|
||||
vn -1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
usemtl none
|
||||
f 12/28/7 15/27/7 13/26/7 10/25/7
|
||||
f 11/32/8 12/31/8 10/30/8 9/29/8
|
||||
f 16/36/9 11/35/9 9/34/9 14/33/9
|
||||
f 15/40/10 16/39/10 14/38/10 13/37/10
|
||||
f 14/44/11 9/43/11 10/42/11 13/41/11
|
||||
f 15/48/12 12/47/12 11/46/12 16/45/12
|
||||
o cube
|
||||
v 0.0625 0 0.0625
|
||||
v 0.0625 0 -0.0625
|
||||
v 0.0625 -0.375 0.0625
|
||||
v 0.0625 -0.375 -0.0625
|
||||
v -0.0625 0 -0.0625
|
||||
v -0.0625 0 0.0625
|
||||
v -0.0625 -0.375 -0.0625
|
||||
v -0.0625 -0.375 0.0625
|
||||
vt 0.03125 0.23076923076923073
|
||||
vt 0.0625 0.23076923076923073
|
||||
vt 0.0625 0
|
||||
vt 0.03125 0
|
||||
vt 0 0.23076923076923073
|
||||
vt 0.03125 0.23076923076923073
|
||||
vt 0.03125 0
|
||||
vt 0 0
|
||||
vt 0.09375 0.23076923076923073
|
||||
vt 0.125 0.23076923076923073
|
||||
vt 0.125 0
|
||||
vt 0.09375 0
|
||||
vt 0.0625 0.23076923076923073
|
||||
vt 0.09375 0.23076923076923073
|
||||
vt 0.09375 0
|
||||
vt 0.0625 0
|
||||
vt 0.0625 0.23076923076923073
|
||||
vt 0.03125 0.23076923076923073
|
||||
vt 0.03125 0.3076923076923077
|
||||
vt 0.0625 0.3076923076923077
|
||||
vt 0.09375 0.3076923076923077
|
||||
vt 0.0625 0.3076923076923077
|
||||
vt 0.0625 0.23076923076923073
|
||||
vt 0.09375 0.23076923076923073
|
||||
vn 0 0 -1
|
||||
vn 1 0 0
|
||||
vn 0 0 1
|
||||
vn -1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
usemtl none
|
||||
f 20/52/13 23/51/13 21/50/13 18/49/13
|
||||
f 19/56/14 20/55/14 18/54/14 17/53/14
|
||||
f 24/60/15 19/59/15 17/58/15 22/57/15
|
||||
f 23/64/16 24/63/16 22/62/16 21/61/16
|
||||
f 22/68/17 17/67/17 18/66/17 21/65/17
|
||||
f 23/72/18 20/71/18 19/70/18 24/69/18
|
|
@ -0,0 +1,574 @@
|
|||
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
local LIGHT_ACTIVE_FURNACE = 13
|
||||
|
||||
--
|
||||
-- Formspecs
|
||||
--
|
||||
|
||||
local function active_formspec(fuel_percent, item_percent)
|
||||
return "size[9,8.75]"..
|
||||
"label[0,4;"..minetest.formspec_escape(minetest.colorize("#313131", S("Inventory"))).."]"..
|
||||
"list[current_player;main;0,4.5;9,3;9]"..
|
||||
mcl_formspec.get_itemslot_bg(0,4.5,9,3)..
|
||||
"list[current_player;main;0,7.74;9,1;]"..
|
||||
mcl_formspec.get_itemslot_bg(0,7.74,9,1)..
|
||||
"label[2.75,0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Oven"))).."]"..
|
||||
"list[context;src;2.75,0.5;1,1;]"..
|
||||
mcl_formspec.get_itemslot_bg(2.75,0.5,1,1)..
|
||||
"list[context;fuel;2.75,2.5;1,1;]"..
|
||||
mcl_formspec.get_itemslot_bg(2.75,2.5,1,1)..
|
||||
"list[context;dst;5.75,1.5;1,1;]"..
|
||||
mcl_formspec.get_itemslot_bg(5.75,1.5,1,1)..
|
||||
"image[2.75,1.5;1,1;default_furnace_fire_bg.png^[lowpart:"..
|
||||
(100-fuel_percent)..":default_furnace_fire_fg.png]"..
|
||||
"image[4.1,1.5;1.5,1;gui_furnace_arrow_bg.png^[lowpart:"..
|
||||
(item_percent)..":gui_furnace_arrow_fg.png^[transformR270]"..
|
||||
-- Craft guide button temporarily removed due to Minetest bug.
|
||||
-- TODO: Add it back when the Minetest bug is fixed.
|
||||
--"image_button[8,0;1,1;craftguide_book.png;craftguide;]"..
|
||||
--"tooltip[craftguide;"..minetest.formspec_escape(S("Recipe book")).."]"..
|
||||
"listring[context;dst]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[context;src]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[context;fuel]"..
|
||||
"listring[current_player;main]"
|
||||
end
|
||||
|
||||
local inactive_formspec = "size[9,8.75]"..
|
||||
"label[0,4;"..minetest.formspec_escape(minetest.colorize("#313131", S("Inventory"))).."]"..
|
||||
"list[current_player;main;0,4.5;9,3;9]"..
|
||||
mcl_formspec.get_itemslot_bg(0,4.5,9,3)..
|
||||
"list[current_player;main;0,7.74;9,1;]"..
|
||||
mcl_formspec.get_itemslot_bg(0,7.74,9,1)..
|
||||
"label[2.75,0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Oven"))).."]"..
|
||||
"list[context;src;2.75,0.5;1,1;]"..
|
||||
mcl_formspec.get_itemslot_bg(2.75,0.5,1,1)..
|
||||
"list[context;fuel;2.75,2.5;1,1;]"..
|
||||
mcl_formspec.get_itemslot_bg(2.75,2.5,1,1)..
|
||||
"list[context;dst;5.75,1.5;1,1;]"..
|
||||
mcl_formspec.get_itemslot_bg(5.75,1.5,1,1)..
|
||||
"image[2.75,1.5;1,1;default_furnace_fire_bg.png]"..
|
||||
"image[4.1,1.5;1.5,1;gui_furnace_arrow_bg.png^[transformR270]"..
|
||||
-- Craft guide button temporarily removed due to Minetest bug.
|
||||
-- TODO: Add it back when the Minetest bug is fixed.
|
||||
--"image_button[8,0;1,1;craftguide_book.png;craftguide;]"..
|
||||
--"tooltip[craftguide;"..minetest.formspec_escape(S("Recipe book")).."]"..
|
||||
"listring[context;dst]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[context;src]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[context;fuel]"..
|
||||
"listring[current_player;main]"
|
||||
|
||||
local receive_fields = function(pos, formname, fields, sender)
|
||||
if fields.craftguide then
|
||||
mcl_craftguide.show(sender:get_player_name())
|
||||
end
|
||||
end
|
||||
|
||||
local function give_xp(pos, player)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local dir = vector.divide(minetest.facedir_to_dir(minetest.get_node(pos).param2),-1.95)
|
||||
local xp = meta:get_int("xp")
|
||||
if xp > 0 then
|
||||
if player then
|
||||
mcl_experience.add_xp(player, xp)
|
||||
else
|
||||
mcl_experience.throw_xp(vector.add(pos, dir), xp)
|
||||
end
|
||||
meta:set_int("xp", 0)
|
||||
end
|
||||
end
|
||||
|
||||
--
|
||||
-- Node callback functions that are the same for active and inactive furnace
|
||||
--
|
||||
|
||||
local function allow_metadata_inventory_put(pos, listname, index, stack, player)
|
||||
if mcl_util.check_position_protection(pos, player) then
|
||||
return 0
|
||||
end
|
||||
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
if listname == "fuel" then
|
||||
-- Test stack with size 1 because we burn one fuel at a time
|
||||
local teststack = ItemStack(stack)
|
||||
teststack:set_count(1)
|
||||
local output, decremented_input = minetest.get_craft_result({method="fuel", width=1, items={teststack}})
|
||||
if output.time ~= 0 then
|
||||
-- Only allow to place 1 item if fuel get replaced by recipe.
|
||||
-- This is the case for lava buckets.
|
||||
local replace_item = decremented_input.items[1]
|
||||
if replace_item:is_empty() then
|
||||
-- For most fuels, just allow to place everything
|
||||
return stack:get_count()
|
||||
else
|
||||
if inv:get_stack(listname, index):get_count() == 0 then
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
end
|
||||
end
|
||||
else
|
||||
return 0
|
||||
end
|
||||
elseif listname == "src" then
|
||||
return stack:get_count()
|
||||
elseif listname == "dst" then
|
||||
return 0
|
||||
end
|
||||
end
|
||||
|
||||
local function allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
local stack = inv:get_stack(from_list, from_index)
|
||||
return allow_metadata_inventory_put(pos, to_list, to_index, stack, player)
|
||||
end
|
||||
|
||||
local function allow_metadata_inventory_take(pos, listname, index, stack, player)
|
||||
local name = player:get_player_name()
|
||||
if minetest.is_protected(pos, name) then
|
||||
minetest.record_protection_violation(pos, name)
|
||||
return 0
|
||||
end
|
||||
return stack:get_count()
|
||||
end
|
||||
|
||||
local function on_metadata_inventory_take(pos, listname, index, stack, player)
|
||||
-- Award smelting achievements
|
||||
if listname == "dst" then
|
||||
if stack:get_name() == "mcl_fishing:fish_cooked" then
|
||||
awards.unlock(player:get_player_name(), "mcl:cookFish")
|
||||
end
|
||||
give_xp(pos, player)
|
||||
end
|
||||
end
|
||||
|
||||
local function on_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
if from_list == "dst" then
|
||||
give_xp(pos, player)
|
||||
end
|
||||
end
|
||||
|
||||
--[[local function spawn_flames(pos, param2)
|
||||
local minrelpos, maxrelpos
|
||||
local dir = minetest.facedir_to_dir(param2)
|
||||
if dir.x > 0 then
|
||||
minrelpos = { x = -0.6, y = -0.05, z = -0.25 }
|
||||
maxrelpos = { x = -0.55, y = -0.45, z = 0.25 }
|
||||
elseif dir.x < 0 then
|
||||
minrelpos = { x = 0.55, y = -0.05, z = -0.25 }
|
||||
maxrelpos = { x = 0.6, y = -0.45, z = 0.25 }
|
||||
elseif dir.z > 0 then
|
||||
minrelpos = { x = -0.25, y = -0.05, z = -0.6 }
|
||||
maxrelpos = { x = 0.25, y = -0.45, z = -0.55 }
|
||||
elseif dir.z < 0 then
|
||||
minrelpos = { x = -0.25, y = -0.05, z = 0.55 }
|
||||
maxrelpos = { x = 0.25, y = -0.45, z = 0.6 }
|
||||
else
|
||||
return
|
||||
end
|
||||
mcl_particles.add_node_particlespawner(pos, {
|
||||
amount = 4,
|
||||
time = 0,
|
||||
minpos = vector.add(pos, minrelpos),
|
||||
maxpos = vector.add(pos, maxrelpos),
|
||||
minvel = { x = -0.01, y = 0, z = -0.01 },
|
||||
maxvel = { x = 0.01, y = 0.1, z = 0.01 },
|
||||
minexptime = 0.3,
|
||||
maxexptime = 0.6,
|
||||
minsize = 0.4,
|
||||
maxsize = 0.8,
|
||||
texture = "mcl_particles_flame.png",
|
||||
glow = LIGHT_ACTIVE_FURNACE,
|
||||
}, "low")
|
||||
end]]
|
||||
|
||||
local function swap_node(pos, name)
|
||||
local node = minetest.get_node(pos)
|
||||
if node.name == name then
|
||||
return
|
||||
end
|
||||
node.name = name
|
||||
minetest.swap_node(pos, node)
|
||||
--[[if name == "mcl_decor:oven_active" then
|
||||
spawn_flames(pos, node.param2)
|
||||
else
|
||||
mcl_particles.delete_node_particlespawners(pos)
|
||||
end]]
|
||||
end
|
||||
|
||||
local function oven_reset_delta_time(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local time_speed = tonumber(minetest.settings:get("time_speed") or 72)
|
||||
if (time_speed < 0.1) then
|
||||
return
|
||||
end
|
||||
local time_multiplier = 86400 / time_speed
|
||||
local current_game_time = .0 + ((minetest.get_day_count() + minetest.get_timeofday()) * time_multiplier)
|
||||
|
||||
-- TODO: Change meta:get/set_string() to get/set_float() for "last_gametime".
|
||||
-- In Windows *_float() works OK but under Linux it returns rounded unusable values like 449540.000000000
|
||||
local last_game_time = meta:get_string("last_gametime")
|
||||
if last_game_time then
|
||||
last_game_time = tonumber(last_game_time)
|
||||
end
|
||||
if not last_game_time or last_game_time < 1 or math.abs(last_game_time - current_game_time) <= 1.5 then
|
||||
return
|
||||
end
|
||||
|
||||
meta:set_string("last_gametime", tostring(current_game_time))
|
||||
end
|
||||
|
||||
local function oven_get_delta_time(pos, elapsed)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local time_speed = tonumber(minetest.settings:get("time_speed") or 72)
|
||||
local current_game_time
|
||||
if (time_speed < 0.1) then
|
||||
return meta, elapsed
|
||||
else
|
||||
local time_multiplier = 86400 / time_speed
|
||||
current_game_time = .0 + ((minetest.get_day_count() + minetest.get_timeofday()) * time_multiplier)
|
||||
end
|
||||
|
||||
local last_game_time = meta:get_string("last_gametime")
|
||||
if last_game_time then
|
||||
last_game_time = tonumber(last_game_time)
|
||||
end
|
||||
if not last_game_time or last_game_time < 1 then
|
||||
last_game_time = current_game_time - 0.1
|
||||
elseif last_game_time == current_game_time then
|
||||
current_game_time = current_game_time + 1.0
|
||||
end
|
||||
|
||||
local elapsed_game_time = .0 + current_game_time - last_game_time
|
||||
|
||||
meta:set_string("last_gametime", tostring(current_game_time))
|
||||
|
||||
return meta, elapsed_game_time
|
||||
end
|
||||
|
||||
local function oven_node_timer(pos, elapsed)
|
||||
--
|
||||
-- Inizialize metadata
|
||||
--
|
||||
local meta, elapsed_game_time = oven_get_delta_time(pos, elapsed)
|
||||
|
||||
local fuel_time = meta:get_float("fuel_time") or 0
|
||||
local src_time = meta:get_float("src_time") or 0
|
||||
local src_item = meta:get_string("src_item") or ""
|
||||
local fuel_totaltime = meta:get_float("fuel_totaltime") or 0
|
||||
|
||||
local inv = meta:get_inventory()
|
||||
local srclist, fuellist
|
||||
|
||||
local cookable, cooked
|
||||
local active = true
|
||||
local fuel
|
||||
|
||||
srclist = inv:get_list("src")
|
||||
fuellist = inv:get_list("fuel")
|
||||
|
||||
-- Check if src item has been changed
|
||||
if srclist[1]:get_name() ~= src_item then
|
||||
-- Reset cooking progress in this case
|
||||
src_time = 0
|
||||
src_item = srclist[1]:get_name()
|
||||
end
|
||||
|
||||
local update = true
|
||||
while elapsed_game_time > 0.00001 and update do
|
||||
--
|
||||
-- Cooking
|
||||
--
|
||||
|
||||
-- Run the smoker at twice the speed of a furnace.
|
||||
local el = elapsed_game_time * 2
|
||||
|
||||
-- Check if we have cookable content: cookable
|
||||
local aftercooked
|
||||
cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
|
||||
cookable = minetest.get_item_group(inv:get_stack("src", 1):get_name(), "smoker_cookable") == 1
|
||||
if cookable then
|
||||
-- Successful cooking requires space in dst slot and time
|
||||
if not inv:room_for_item("dst", cooked.item) then
|
||||
cookable = false
|
||||
end
|
||||
end
|
||||
|
||||
if cookable then -- fuel lasts long enough, adjust el to cooking duration
|
||||
el = math.min(el, cooked.time - src_time)
|
||||
end
|
||||
|
||||
-- Check if we have enough fuel to burn
|
||||
active = fuel_time < fuel_totaltime
|
||||
if cookable and not active then
|
||||
-- We need to get new fuel
|
||||
local afterfuel
|
||||
fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist})
|
||||
|
||||
if fuel.time == 0 then
|
||||
-- No valid fuel in fuel list -- stop
|
||||
fuel_totaltime = 0
|
||||
src_time = 0
|
||||
update = false
|
||||
else
|
||||
-- Take fuel from fuel list
|
||||
inv:set_stack("fuel", 1, afterfuel.items[1])
|
||||
fuel_time = 0
|
||||
fuel_totaltime = fuel.time
|
||||
el = math.min(el, fuel_totaltime)
|
||||
active = true
|
||||
fuellist = inv:get_list("fuel")
|
||||
end
|
||||
elseif active then
|
||||
el = math.min(el, fuel_totaltime - fuel_time)
|
||||
-- The furnace is currently active and has enough fuel
|
||||
fuel_time = fuel_time + el
|
||||
end
|
||||
|
||||
-- If there is a cookable item then check if it is ready yet
|
||||
if cookable and active then
|
||||
src_time = src_time + el
|
||||
-- Place result in dst list if done
|
||||
if src_time >= cooked.time then
|
||||
inv:add_item("dst", cooked.item)
|
||||
inv:set_stack("src", 1, aftercooked.items[1])
|
||||
|
||||
srclist = inv:get_list("src")
|
||||
src_time = 0
|
||||
|
||||
meta:set_int("xp", meta:get_int("xp") + 1) -- ToDo give each recipe an idividial XP count
|
||||
end
|
||||
end
|
||||
|
||||
elapsed_game_time = elapsed_game_time - el
|
||||
end
|
||||
|
||||
if fuel and fuel_totaltime > fuel.time then
|
||||
fuel_totaltime = fuel.time
|
||||
end
|
||||
if srclist and srclist[1]:is_empty() then
|
||||
src_time = 0
|
||||
end
|
||||
|
||||
--
|
||||
-- Update formspec and node
|
||||
--
|
||||
local formspec = inactive_formspec
|
||||
local item_percent = 0
|
||||
if cookable then
|
||||
item_percent = math.floor(src_time / cooked.time * 100)
|
||||
end
|
||||
|
||||
local result = false
|
||||
|
||||
if active then
|
||||
local fuel_percent = 0
|
||||
if fuel_totaltime > 0 then
|
||||
fuel_percent = math.floor(fuel_time / fuel_totaltime * 100)
|
||||
end
|
||||
formspec = active_formspec(fuel_percent, item_percent)
|
||||
swap_node(pos, "mcl_decor:oven_active")
|
||||
-- make sure timer restarts automatically
|
||||
result = true
|
||||
else
|
||||
swap_node(pos, "mcl_decor:oven")
|
||||
-- stop timer on the inactive furnace
|
||||
minetest.get_node_timer(pos):stop()
|
||||
end
|
||||
|
||||
--
|
||||
-- Set meta values
|
||||
--
|
||||
meta:set_float("fuel_totaltime", fuel_totaltime)
|
||||
meta:set_float("fuel_time", fuel_time)
|
||||
meta:set_float("src_time", src_time)
|
||||
if srclist then
|
||||
meta:set_string("src_item", src_item)
|
||||
else
|
||||
meta:set_string("src_item", "")
|
||||
end
|
||||
meta:set_string("formspec", formspec)
|
||||
|
||||
return result
|
||||
end
|
||||
|
||||
local on_rotate, after_rotate_active
|
||||
if minetest.get_modpath("screwdriver") then
|
||||
on_rotate = screwdriver.rotate_simple
|
||||
after_rotate_active = function(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
--mcl_particles.delete_node_particlespawners(pos)
|
||||
if node.name == "mcl_decor:oven" then
|
||||
return
|
||||
end
|
||||
--spawn_flames(pos, node.param2)
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_node("mcl_decor:oven", {
|
||||
description = S("Oven"),
|
||||
_tt_help = S("Cooks food faster than furnace"),
|
||||
_doc_items_longdesc = S("Ovens cook several items, using a furnace fuel, into something else, but twice as fast as a normal furnace and have quadrice slots for result than smoker"),
|
||||
_doc_items_usagehelp =
|
||||
S([[
|
||||
Use the oven to open the furnace menu.
|
||||
Place a furnace fuel in the lower slot and the source material in the upper slot.
|
||||
The oven will slowly use its fuel to smelt the item.
|
||||
The result will be placed into one of the output slots at the right side.
|
||||
]]).."\n"..
|
||||
S("Use the recipe book to see what foods you can smelt, what you can use as fuel and how long it will burn."),
|
||||
_doc_items_hidden = false,
|
||||
tiles = {
|
||||
"mcl_decor_oven_top.png", "mcl_nether_quartz_block_top.png",
|
||||
"mcl_decor_oven_side.png", "mcl_decor_oven_side.png",
|
||||
"mcl_decor_oven_side.png", "mcl_decor_oven_front.png"
|
||||
},
|
||||
paramtype2 = "facedir",
|
||||
groups = {pickaxey=1, container=4, deco_block=1, material_stone=1},
|
||||
is_ground_content = false,
|
||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||
|
||||
on_timer = oven_node_timer,
|
||||
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local meta2 = meta:to_table()
|
||||
meta:from_table(oldmetadata)
|
||||
local inv = meta:get_inventory()
|
||||
for _, listname in ipairs({"src", "dst", "fuel"}) do
|
||||
local stack = inv:get_stack(listname, 1)
|
||||
if not stack:is_empty() then
|
||||
local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5}
|
||||
minetest.add_item(p, stack)
|
||||
end
|
||||
end
|
||||
meta:from_table(meta2)
|
||||
end,
|
||||
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("formspec", inactive_formspec)
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size("src", 1)
|
||||
inv:set_size("fuel", 1)
|
||||
inv:set_size("dst", 1)
|
||||
end,
|
||||
on_destruct = function(pos)
|
||||
--mcl_particles.delete_node_particlespawners(pos)
|
||||
give_xp(pos)
|
||||
end,
|
||||
|
||||
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
-- Reset accumulated game time when player works with furnace:
|
||||
oven_reset_delta_time(pos)
|
||||
minetest.get_node_timer(pos):start(1.0)
|
||||
|
||||
on_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
end,
|
||||
on_metadata_inventory_put = function(pos)
|
||||
-- Reset accumulated game time when player works with furnace:
|
||||
oven_reset_delta_time(pos)
|
||||
-- start timer function, it will sort out whether furnace can burn or not.
|
||||
minetest.get_node_timer(pos):start(1.0)
|
||||
end,
|
||||
on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
-- Reset accumulated game time when player works with furnace:
|
||||
oven_reset_delta_time(pos)
|
||||
-- start timer function, it will helpful if player clears dst slot
|
||||
minetest.get_node_timer(pos):start(1.0)
|
||||
|
||||
on_metadata_inventory_take(pos, listname, index, stack, player)
|
||||
end,
|
||||
|
||||
allow_metadata_inventory_put = allow_metadata_inventory_put,
|
||||
allow_metadata_inventory_move = allow_metadata_inventory_move,
|
||||
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
||||
on_receive_fields = receive_fields,
|
||||
_mcl_blast_resistance = 3.5,
|
||||
_mcl_hardness = 3.5,
|
||||
on_rotate = on_rotate,
|
||||
})
|
||||
|
||||
minetest.register_node("mcl_decor:oven_active", {
|
||||
description = S("Active Oven"),
|
||||
_doc_items_create_entry = false,
|
||||
tiles = {
|
||||
"mcl_decor_oven_top.png", "mcl_nether_quartz_block_top.png",
|
||||
"mcl_decor_oven_side.png", "mcl_decor_oven_side.png",
|
||||
"mcl_decor_oven_side.png", "mcl_decor_oven_front_active.png"
|
||||
},
|
||||
paramtype2 = "facedir",
|
||||
paramtype = "light",
|
||||
light_source = LIGHT_ACTIVE_FURNACE,
|
||||
drop = "mcl_decor:oven",
|
||||
groups = {pickaxey=1, container=4, deco_block=1, not_in_creative_inventory=1, material_stone=1},
|
||||
is_ground_content = false,
|
||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||
on_timer = oven_node_timer,
|
||||
|
||||
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local meta2 = meta
|
||||
meta:from_table(oldmetadata)
|
||||
local inv = meta:get_inventory()
|
||||
for _, listname in ipairs({"src", "dst", "fuel"}) do
|
||||
local stack = inv:get_stack(listname, 1)
|
||||
if not stack:is_empty() then
|
||||
local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5}
|
||||
minetest.add_item(p, stack)
|
||||
end
|
||||
end
|
||||
meta:from_table(meta2:to_table())
|
||||
end,
|
||||
|
||||
--[[on_construct = function(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
spawn_flames(pos, node.param2)
|
||||
end,]]
|
||||
on_destruct = function(pos)
|
||||
--mcl_particles.delete_node_particlespawners(pos)
|
||||
give_xp(pos)
|
||||
end,
|
||||
|
||||
allow_metadata_inventory_put = allow_metadata_inventory_put,
|
||||
allow_metadata_inventory_move = allow_metadata_inventory_move,
|
||||
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
||||
on_metadata_inventory_move = on_metadata_inventory_move,
|
||||
on_metadata_inventory_take = on_metadata_inventory_take,
|
||||
on_receive_fields = receive_fields,
|
||||
_mcl_blast_resistance = 3.5,
|
||||
_mcl_hardness = 3.5,
|
||||
on_rotate = on_rotate,
|
||||
after_rotate = after_rotate_active,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mcl_decor:oven",
|
||||
recipe = {
|
||||
{ "", "group:tree", "" },
|
||||
{ "group:tree", "mcl_furnaces:furnace", "group:tree" },
|
||||
{ "", "group:tree", "" },
|
||||
}
|
||||
})
|
||||
|
||||
-- Add entry alias for the Help
|
||||
if minetest.get_modpath("doc") then
|
||||
doc.add_entry_alias("nodes", "mcl_decor:oven", "nodes", "mcl_decor:oven_active")
|
||||
end
|
||||
|
||||
--[[minetest.register_lbm({
|
||||
label = "Active oven flame particles",
|
||||
name = "mcl_smoker:flames",
|
||||
nodenames = {"mcl_decor:oven_active"},
|
||||
run_at_every_load = true,
|
||||
action = function(pos, node)
|
||||
spawn_flames(pos, node.param2)
|
||||
end,
|
||||
})
|
||||
]]
|
40
paths.lua
|
@ -2,7 +2,7 @@
|
|||
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
--=-- API --=--
|
||||
-- API
|
||||
function mcl_decor.register_path(name, desc, material, tiles, sgroup, sounds)
|
||||
minetest.register_node("mcl_decor:"..name.."_path", {
|
||||
description = desc,
|
||||
|
@ -57,7 +57,7 @@ end
|
|||
|
||||
|
||||
|
||||
--=-- REGISTER --=--
|
||||
-- REGISTER
|
||||
mcl_decor.register_path(
|
||||
"gravel",
|
||||
S("Gravel Path"),
|
||||
|
@ -114,23 +114,19 @@ mcl_decor.register_path(
|
|||
"pickaxey",
|
||||
mcl_sounds.node_sound_stone_defaults()
|
||||
)
|
||||
|
||||
-- support for MineClone 5
|
||||
if minetest.get_modpath("mcl_deepslate") then
|
||||
mcl_decor.register_path(
|
||||
"deepslate",
|
||||
S("Deepslate Path"),
|
||||
"mcl_deepslate:deepslate",
|
||||
"mcl_deepslate_top.png",
|
||||
"pickaxey",
|
||||
mcl_sounds.node_sound_stone_defaults()
|
||||
)
|
||||
mcl_decor.register_path(
|
||||
"deepslate_cobbled",
|
||||
S("Cobbled Deepslate Path"),
|
||||
"mcl_deepslate:deepslate_cobbled",
|
||||
"mcl_cobbled_deepslate.png",
|
||||
"pickaxey",
|
||||
mcl_sounds.node_sound_stone_defaults()
|
||||
)
|
||||
end
|
||||
mcl_decor.register_path(
|
||||
"deepslate",
|
||||
S("Deepslate Path"),
|
||||
"mcl_deepslate:deepslate",
|
||||
"mcl_deepslate_top.png",
|
||||
"pickaxey",
|
||||
mcl_sounds.node_sound_stone_defaults()
|
||||
)
|
||||
mcl_decor.register_path(
|
||||
"deepslate_cobbled",
|
||||
S("Cobbled Deepslate Path"),
|
||||
"mcl_deepslate:deepslate_cobbled",
|
||||
"mcl_cobbled_deepslate.png",
|
||||
"pickaxey",
|
||||
mcl_sounds.node_sound_stone_defaults()
|
||||
)
|
||||
|
|
210
register.lua
|
@ -1,210 +0,0 @@
|
|||
-- mcl_decor/register.lua
|
||||
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
--- Coalquartz Tile ---
|
||||
minetest.register_node("mcl_decor:coalquartz_tile", {
|
||||
description = S("Coalquartz Tile"),
|
||||
tiles = {"mcl_decor_coalquartz_tile.png"},
|
||||
is_ground_content = false,
|
||||
groups = {pickaxey=1, flammable=1, quartz_block=1, building_block=1, material_stone=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||
_mcl_blast_resistance = 4,
|
||||
_mcl_hardness = 3,
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = "mcl_decor:coalquartz_tile",
|
||||
recipe = {
|
||||
{"mcl_core:coal_lump", "mcl_nether:quartz"},
|
||||
{"mcl_nether:quartz", "mcl_core:coal_lump"}
|
||||
}
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = "mcl_decor:coalquartz_tile",
|
||||
recipe = {
|
||||
{"mcl_nether:quartz", "mcl_core:coal_lump"},
|
||||
{"mcl_core:coal_lump", "mcl_nether:quartz"}
|
||||
}
|
||||
})
|
||||
mcl_stairs.register_stair_and_slab_simple("coalquartz_tile", "mcl_decor:coalquartz_tile", S("Coalquartz Stair"), S("Coalquartz Slab"), S("Double Coalquartz Slab"))
|
||||
|
||||
--- Paths ---
|
||||
mcl_decor.register_path(
|
||||
"mcl_decor:gravel_path",
|
||||
S("Gravel Path"),
|
||||
"mcl_core:gravel",
|
||||
"default_gravel.png",
|
||||
"shovely",
|
||||
mcl_sounds.node_sound_dirt_defaults({footstep = {name="default_gravel_footstep", gain=0.45}})
|
||||
)
|
||||
mcl_decor.register_path(
|
||||
"mcl_decor:cobble_path",
|
||||
S("Cobblestone Path"),
|
||||
"mcl_core:cobble",
|
||||
"default_cobble.png",
|
||||
"pickaxey",
|
||||
mcl_sounds.node_sound_stone_defaults()
|
||||
)
|
||||
mcl_decor.register_path(
|
||||
"mcl_decor:stone_path",
|
||||
S("Stone Path"),
|
||||
"mcl_core:stone",
|
||||
"default_stone.png",
|
||||
"pickaxey",
|
||||
mcl_sounds.node_sound_stone_defaults()
|
||||
)
|
||||
mcl_decor.register_path(
|
||||
"mcl_decor:granite_path",
|
||||
S("Granite Path"),
|
||||
"mcl_core:granite",
|
||||
"mcl_core_granite.png",
|
||||
"pickaxey",
|
||||
mcl_sounds.node_sound_stone_defaults()
|
||||
)
|
||||
mcl_decor.register_path(
|
||||
"mcl_decor:andesite_path",
|
||||
S("Andesite Path"),
|
||||
"mcl_core:andesite",
|
||||
"mcl_core_andesite.png",
|
||||
"pickaxey",
|
||||
mcl_sounds.node_sound_stone_defaults()
|
||||
)
|
||||
mcl_decor.register_path(
|
||||
"mcl_decor:diorite_path",
|
||||
S("Diorite Path"),
|
||||
"mcl_core:diorite",
|
||||
"mcl_core_diorite.png",
|
||||
"pickaxey",
|
||||
mcl_sounds.node_sound_stone_defaults()
|
||||
)
|
||||
mcl_decor.register_path(
|
||||
"mcl_decor:netherrack_path",
|
||||
S("Netherrack Path"),
|
||||
"mcl_nether:netherrack",
|
||||
"mcl_nether_netherrack.png",
|
||||
"pickaxey",
|
||||
mcl_sounds.node_sound_stone_defaults()
|
||||
)
|
||||
|
||||
|
||||
|
||||
--- Table Lamp ---
|
||||
minetest.register_node("mcl_decor:table_lamp", {
|
||||
description = S("Table Lamp"),
|
||||
tiles = {"mcl_decor_table_lamp.png", "mcl_decor_table_lamp_bottom.png", "mcl_decor_table_lamp_side.png",
|
||||
"mcl_decor_table_lamp_side.png", "mcl_decor_table_lamp_side.png", "mcl_decor_table_lamp_side.png"},
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
stack_max = 64,
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.25, -0.5, -0.25, 0.25, -0.375, 0.25},
|
||||
{-0.0625, -0.375, -0.0625, 0.0625, 0, 0.0625},
|
||||
{-0.3125, 0, -0.3125, 0.3125, 0.5, 0.3125},
|
||||
}
|
||||
},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.3125, -0.5, -0.3125, 0.3125, 0.5, 0.3125},
|
||||
},
|
||||
is_ground_content = false,
|
||||
light_source = minetest.LIGHT_MAX,
|
||||
groups = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1, flammable=-1},
|
||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
||||
_mcl_blast_resistance = 0.9,
|
||||
_mcl_hardness = 0.9,
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = "mcl_decor:table_lamp 3",
|
||||
recipe = {
|
||||
{"group:wool", "group:wool", "group:wool"},
|
||||
{"group:wool", "mcl_torches:torch", "group:wool"},
|
||||
{"mcl_core:cobble", "mcl_core:cobble", "mcl_core:cobble"}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
--- Tables and Chairs ---
|
||||
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("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("jungle", S("Jungle Chair"), S("Jungle Table"), "mcl_core:junglewood", "default_junglewood.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("acacia", S("Acacia Chair"), S("Acacia Table"), "mcl_core:acaciawood", "default_acacia_wood.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("wooden", S("Oak Slab Table"), "mcl_core:wood", "default_wood.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("jungle", S("Jungle Slab Table"), "mcl_core:junglewood", "default_junglewood.png")
|
||||
mcl_decor.register_slab_table("spruce", S("Spruce Slab Table"), "mcl_core:sprucewood", "mcl_core_planks_spruce.png")
|
||||
mcl_decor.register_slab_table("acacia", S("Acacia Slab Table"), "mcl_core:acaciawood", "default_acacia_wood.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 ---
|
||||
mcl_decor.register_armchair("white", S("White Armchair"), "wool_white.png", "white", "unicolor_white")
|
||||
mcl_decor.register_armchair("grey", S("Grey Armchair"), "wool_dark_grey.png", "dark_grey", "unicolor_darkgrey")
|
||||
mcl_decor.register_armchair("silver", S("Light Grey Armchair"), "wool_grey.png", "grey", "unicolor_grey")
|
||||
mcl_decor.register_armchair("black", S("Black Armchair"), "wool_black.png", "black", "unicolor_black")
|
||||
mcl_decor.register_armchair("red", S("Red Armchair"), "wool_red.png", "red", "unicolor_red")
|
||||
mcl_decor.register_armchair("yellow", S("Yellow Armchair"), "wool_yellow.png", "yellow", "unicolor_yellow")
|
||||
mcl_decor.register_armchair("green", S("Green Armchair"), "wool_dark_green.png", "dark_green", "unicolor_dark_green")
|
||||
mcl_decor.register_armchair("cyan", S("Cyan Armchair"), "wool_cyan.png", "cyan", "unicolor_cyan")
|
||||
mcl_decor.register_armchair("blue", S("Blue Armchair"), "wool_blue.png", "blue", "unicolor_blue")
|
||||
mcl_decor.register_armchair("magenta", S("Magenta Armchair"), "wool_magenta.png", "magenta", "unicolor_red_violet")
|
||||
mcl_decor.register_armchair("orange", S("Orange Armchair"), "wool_orange.png", "orange", "unicolor_orange")
|
||||
mcl_decor.register_armchair("purple", S("Purple Armchair"), "wool_violet.png", "violet", "unicolor_violet")
|
||||
mcl_decor.register_armchair("brown", S("Brown Armchair"), "wool_brown.png", "brown", "unicolor_dark_orange")
|
||||
mcl_decor.register_armchair("pink", S("Pink Armchair"), "wool_pink.png", "pink", "unicolor_light_red")
|
||||
mcl_decor.register_armchair("lime", S("Lime Armchair"), "mcl_wool_lime.png", "green", "unicolor_green")
|
||||
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 ---
|
||||
mcl_decor.register_dyed_planks("white", S("White Planks"), "#EDEDED", "white", "unicolor_white")
|
||||
mcl_decor.register_dyed_planks("grey", S("Grey Planks"), "#5F5F5F", "dark_grey", "unicolor_darkgrey")
|
||||
mcl_decor.register_dyed_planks("silver", S("Light Grey Planks"), "#8C8C8C", "grey", "unicolor_grey")
|
||||
mcl_decor.register_dyed_planks("black", S("Black Planks"), "#030303", "black", "unicolor_black")
|
||||
mcl_decor.register_dyed_planks("red", S("Red Planks"), "#BD0000", "red", "unicolor_red")
|
||||
mcl_decor.register_dyed_planks("yellow", S("Yellow Planks"), "#EBD800", "yellow", "unicolor_yellow")
|
||||
mcl_decor.register_dyed_planks("green", S("Green Planks"), "#086400", "dark_green", "unicolor_dark_green")
|
||||
mcl_decor.register_dyed_planks("cyan", S("Cyan Planks"), "#00C4B4", "cyan", "unicolor_cyan")
|
||||
mcl_decor.register_dyed_planks("blue", S("Blue Planks"), "#0B1E80", "blue", "unicolor_blue")
|
||||
mcl_decor.register_dyed_planks("magenta", S("Magenta Planks"), "#954395", "magenta", "unicolor_red_violet")
|
||||
mcl_decor.register_dyed_planks("orange", S("Orange Planks"), "#E68200", "orange", "unicolor_orange")
|
||||
mcl_decor.register_dyed_planks("purple", S("Purple Planks"), "#461A6D", "violet", "unicolor_violet")
|
||||
mcl_decor.register_dyed_planks("brown", S("Brown Planks"), "#432209", "brown", "unicolor_dark_orange")
|
||||
mcl_decor.register_dyed_planks("pink", S("Pink Planks"), "#ED9BB4", "pink", "unicolor_light_red")
|
||||
mcl_decor.register_dyed_planks("lime", S("Lime Planks"), "#B3DF86", "green", "unicolor_green")
|
||||
mcl_decor.register_dyed_planks("light_blue", S("Light Blue Planks"), "#72A4D4", "lightblue", "unicolor_light_blue")
|
BIN
screenshot.png
Before Width: | Height: | Size: 424 KiB After Width: | Height: | Size: 653 KiB |
Before Width: | Height: | Size: 488 KiB |
After Width: | Height: | Size: 315 B |
After Width: | Height: | Size: 544 B |
After Width: | Height: | Size: 295 B |
After Width: | Height: | Size: 262 B |
Before Width: | Height: | Size: 374 B After Width: | Height: | Size: 8.0 KiB |
Before Width: | Height: | Size: 358 B |
Before Width: | Height: | Size: 501 B |
23
wooden.lua
|
@ -2,8 +2,8 @@
|
|||
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
--=-- API --=--
|
||||
function mcl_decor.register_chair_and_table(name, desc, desc2, material, tiles, groups)
|
||||
-- API
|
||||
function mcl_decor.register_chair_and_table(name, desc, desc2, material, tiles, group)
|
||||
if group == nil then
|
||||
group = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1, flammable=-1}
|
||||
else
|
||||
|
@ -148,25 +148,24 @@ end
|
|||
|
||||
|
||||
|
||||
--=-- REGISTER --=--
|
||||
-- REGISTER
|
||||
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("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("jungle", S("Jungle Chair"), S("Jungle Table"), "mcl_core:junglewood", "default_junglewood.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("acacia", S("Acacia Chair"), S("Acacia Table"), "mcl_core:acaciawood", "default_acacia_wood.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_chair_and_table("mangrove", S("Mangrove Chair"), S("Mangrove Table"), "mcl_mangrove:mangrove_wood", "mcl_mangrove_planks.png")
|
||||
mcl_decor.register_chair_and_table("crimson", S("Crimson Chair"), S("Crimson Table"), "mcl_crimson:crimson_hyphae_wood", "mcl_crimson_crimson_hyphae_wood.png")
|
||||
mcl_decor.register_chair_and_table("warped", S("Warped Chair"), S("Warped Table"), "mcl_crimson:warped_hyphae_wood", "mcl_crimson_warped_hyphae_wood.png")
|
||||
mcl_decor.register_chair_and_table("bamboo", S("Bamboo Chair"), S("Bamboo Table"), "mcl_bamboo:bamboo_plank", "mcl_bamboo_bamboo_block_stripped.png")
|
||||
mcl_decor.register_slab_table("wooden", S("Oak Slab Table"), "mcl_core:wood", "default_wood.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("jungle", S("Jungle Slab Table"), "mcl_core:junglewood", "default_junglewood.png")
|
||||
mcl_decor.register_slab_table("spruce", S("Spruce Slab Table"), "mcl_core:sprucewood", "mcl_core_planks_spruce.png")
|
||||
mcl_decor.register_slab_table("acacia", S("Acacia Slab Table"), "mcl_core:acaciawood", "default_acacia_wood.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
|
||||
mcl_decor.register_slab_table("mangrove", S("Mangrove Slab Table"), "mcl_mangrove:mangrove_wood", "mcl_mangrove_planks.png")
|
||||
mcl_decor.register_slab_table("crimson", S("Crimson Slab Table"), "mcl_crimson:crimson_hyphae_wood", "mcl_crimson_crimson_hyphae_wood.png")
|
||||
mcl_decor.register_slab_table("warped", S("Warped Slab Table"), "mcl_crimson:warped_hyphae_wood", "mcl_crimson_warped_hyphae_wood.png")
|
||||
mcl_decor.register_slab_table("bamboo", S("Bamboo Slab Table"), "mcl_bamboo:bamboo_plank", "mcl_bamboo_bamboo_block_stripped.png")
|
||||
|
|