15 Commits

Author SHA1 Message Date
cf0f875709 Bump to version 2.1.0 2020-12-14 14:52:04 +01:00
c3b45149b0 Update the changelog with recent fixes 2020-12-14 14:50:02 +01:00
ab91ad967a Improve the placement logic for slabs, etc (#160)
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2020-12-14 14:46:50 +01:00
5aacb05b14 Add Clean (Super) Glow Glass and traps (#159) 2020-12-14 14:44:21 +01:00
87e27d9f20 Refresh built-in crafting recipe overrides (#161) 2020-12-14 14:38:16 +01:00
26ca7af997 Update pre-commit hooks to version 3.3.0 2020-10-28 16:41:16 +01:00
3cfff98fc9 Replace Travis CI with GitHub Actions (#158)
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2020-10-02 11:21:10 +02:00
b67028a417 Fix use_texture_alpha warnings since 5.4.0-dev 2020-08-16 10:14:18 +02:00
c081caf494 Add Chinese Translation (#153) 2020-08-01 20:21:55 +02:00
f8314c322e Add compressed desert cobblestone (#156)
Desert cobblestone can be obtained in large quantities from deserts, so makes sense to add a compressed node.
2020-06-07 14:25:19 +02:00
8e6f339313 Declare the minimum supported Minetest version to 5.0.0
This information can be used by ContentDB.
2020-06-03 18:52:38 +02:00
6f9b787f3e Improve the stairsplus_in_creative_inventory setting description 2020-03-24 22:03:51 +01:00
bbfd782300 Remove legacy Stairs+ conversion code
It was only required to import worlds last edited before Q3 2013.
2020-01-03 11:34:13 +01:00
6595ebc78d Remove obsolete notice about renaming the extracted mod folder
This is no longer required thanks to `mod.conf`.
2020-01-01 17:54:58 +01:00
917a46014f Update copyright statements to 2020 2020-01-01 04:09:24 +01:00
39 changed files with 999 additions and 271 deletions

24
.github/workflows/build.yml vendored Normal file
View File

@ -0,0 +1,24 @@
name: build
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: actions/setup-python@master
- run: |
sudo apt-get update -qq
sudo apt-get install -qqq luarocks
- name: Install pre-commit
run: pip3 install pre-commit
- name: Install LuaCheck
run: luarocks install --local luacheck
- name: Run LuaCheck using pre-commit
run: |
pre-commit run --all-files
$HOME/.luarocks/bin/luacheck .

View File

@ -1,7 +1,8 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0
rev: v3.3.0
hooks:
- id: fix-byte-order-marker
- id: end-of-file-fixer
- id: trailing-whitespace

View File

@ -1,15 +0,0 @@
dist: bionic
language: python
python:
- 3.7.1
install:
- sudo apt-get update -qq
- sudo apt-get install -qqq luarocks
- pip3 install pre-commit
- luarocks install --local luacheck
script:
- pre-commit run --all-files
- $HOME/.luarocks/bin/luacheck .

View File

@ -7,6 +7,33 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## [Unreleased]
## [2.1.0] - 2020-12-14
### Added
- Clean Glass versions of Trap and (Super) Glowing Glass.
- Compressed desert cobblestone.
### Changed
- Revised placing strategy that takes into account which side of the face
(top/bottom for horizontal, left/right for vertical placement) is being clicked.
Aux (sprint/special, default E) key can be used to place the node with the orientation
it would have if placed from the other side.
When placing nodes next to nodes of the same gategory (e.g.slab to slab) the other
node's orientation is copied, flipping it placing on top or below an upright or
upside-down node. In this case the aux key will disable the special processing of
same-category nodes.
### Fixed
- Revised minetest_game crafting recipe overrides to match Minetest 5.0.0 and later.
### Removed
- Legacy Stairs+ conversion code.
- It was only required to import worlds last edited before Q3 2013.
## [2.0.0] - 2019-11-25
### Added
@ -90,7 +117,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Initial versioned release.
[Unreleased]: https://github.com/minetest-mods/moreblocks/compare/v2.0.0...HEAD
[Unreleased]: https://github.com/minetest-mods/moreblocks/compare/v2.1.0...HEAD
[2.1.0]: https://github.com/minetest-mods/moreblocks/compare/v2.0.0...v2.1.0
[2.0.0]: https://github.com/minetest-mods/moreblocks/compare/v1.3.0...v2.0.0
[1.3.0]: https://github.com/minetest-mods/moreblocks/compare/v1.2.0...v1.3.0
[1.2.0]: https://github.com/minetest-mods/moreblocks/compare/v1.1.0...v1.2.0

View File

@ -1,6 +1,6 @@
# zlib license
Copyright © 2011-2019 Hugo Locurcio and contributors
Copyright © 2011-2020 Hugo Locurcio and contributors
**This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.**

View File

@ -1,4 +1,4 @@
# More Blocks
# More Blocks [![Build status](https://github.com/minetest-mods/moreblocks/workflows/build/badge.svg)](https://github.com/minetest-mods/moreblocks/actions)
More Blocks for [Minetest](https://www.minetest.net/), a free and open source infinite
world block sandbox game.
@ -18,9 +18,7 @@ git clone https://github.com/minetest-mods/moreblocks.git
You can also
[download a ZIP archive](https://github.com/minetest-mods/moreblocks/archive/master.zip)
of More Blocks. If you do so, you will need to extract the archive then rename
the resulting folder from `moreblocks-master` to `moreblocks` this is
**absolutely** required, as the mod won't work otherwise.
of More Blocks.
### Enable the mod
@ -60,13 +58,13 @@ on that line.
## Version compatibility
More Blocks is currently primarily tested with Minetest 5.1.0.
More Blocks is currently primarily tested with Minetest 5.3.0.
It may or may not work with newer or older versions. Issues arising in older
versions than 5.0.0 will generally not be fixed.
## License
Copyright © 2011-2019 Hugo Locurcio and contributors
Copyright © 2011-2020 Hugo Locurcio and contributors
- More Blocks code is licensed under the zlib license, see
[`LICENSE.md`](LICENSE.md) for details.

View File

@ -1,7 +1,7 @@
--[[
More Blocks: alias definitions
Copyright © 2011-2019 Hugo Locurcio and contributors.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]

View File

@ -1,7 +1,7 @@
--[[
More Blocks: circular saw
Copyright © 2011-2019 Hugo Locurcio, Sokomine and contributors.
Copyright © 2011-2020 Hugo Locurcio, Sokomine and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]

View File

@ -1,7 +1,7 @@
--[[
More Blocks: configuration handling
Copyright © 2011-2019 Hugo Locurcio and contributors.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]

View File

@ -1,7 +1,7 @@
--[[
More Blocks: crafting recipes
Copyright © 2011-2019 Hugo Locurcio and contributors.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
@ -348,12 +348,36 @@ minetest.register_craft({
recipe = {"moreblocks:sweeper", "default:glass"},
})
minetest.register_craft({
output = "moreblocks:trap_clean_glass",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "moreblocks:clean_glass"},
})
minetest.register_craft({
output = "moreblocks:trap_clean_glass",
type = "shapeless",
recipe = {"moreblocks:sweeper", "moreblocks:trap_glass"},
})
minetest.register_craft({
output = "moreblocks:glow_glass",
type = "shapeless",
recipe = {"default:torch", "default:glass"},
})
minetest.register_craft({
output = "moreblocks:clean_glow_glass",
type = "shapeless",
recipe = {"default:torch", "moreblocks:clean_glass"},
})
minetest.register_craft({
output = "moreblocks:clean_glow_glass",
type = "shapeless",
recipe = {"moreblocks:sweeper", "moreblocks:glow_glass"},
})
minetest.register_craft({
output = "moreblocks:trap_glow_glass",
type = "shapeless",
@ -366,6 +390,26 @@ minetest.register_craft({
recipe = {"default:mese_crystal_fragment", "moreblocks:glow_glass"},
})
-- several recipes are possible for the trap+clean+glow, we only present 3 of them
minetest.register_craft({
output = "moreblocks:trap_clean_glow_glass",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "moreblocks:clean_glow_glass"},
})
minetest.register_craft({
output = "moreblocks:trap_clean_glow_glass",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "moreblocks:clean_glass", "default:torch"},
})
minetest.register_craft({
output = "moreblocks:trap_clean_glow_glass",
type = "shapeless",
recipe = {"moreblocks:sweeper", "moreblocks:trap_glow_glass" },
})
minetest.register_craft({
output = "moreblocks:super_glow_glass",
type = "shapeless",
@ -378,6 +422,24 @@ minetest.register_craft({
recipe = {"default:torch", "moreblocks:glow_glass"},
})
minetest.register_craft({
output = "moreblocks:clean_super_glow_glass",
type = "shapeless",
recipe = {"default:torch", "default:torch", "moreblocks:clean_glass"},
})
minetest.register_craft({
output = "moreblocks:clean_super_glow_glass",
type = "shapeless",
recipe = {"default:torch", "moreblocks:clean_glow_glass"},
})
minetest.register_craft({
output = "moreblocks:clean_super_glow_glass",
type = "shapeless",
recipe = {"moreblocks:sweeper", "moreblocks:super_glow_glass"},
})
minetest.register_craft({
output = "moreblocks:trap_super_glow_glass",
@ -391,6 +453,32 @@ minetest.register_craft({
recipe = {"default:mese_crystal_fragment", "moreblocks:super_glow_glass"},
})
-- several recipes are possible for the trap+clean+glow, we only present 4 of them
minetest.register_craft({
output = "moreblocks:trap_clean_super_glow_glass",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "moreblocks:clean_super_glow_glass"},
})
minetest.register_craft({
output = "moreblocks:trap_clean_super_glow_glass",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "moreblocks:clean_glow_glass", "default:torch"},
})
minetest.register_craft({
output = "moreblocks:trap_clean_super_glow_glass",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "moreblocks:clean_glass", "default:torch", "default:torch"},
})
minetest.register_craft({
output = "moreblocks:trap_clean_super_glow_glass",
type = "shapeless",
recipe = {"moreblocks:sweeper", "moreblocks:trap_super_glow_glass" },
})
minetest.register_craft({
output = "moreblocks:coal_stone",
type = "shapeless",
@ -512,6 +600,22 @@ minetest.register_craft({
}
})
minetest.register_craft({
output = "moreblocks:desert_cobble_compressed",
recipe = {
{"default:desert_cobble", "default:desert_cobble", "default:desert_cobble"},
{"default:desert_cobble", "default:desert_cobble", "default:desert_cobble"},
{"default:desert_cobble", "default:desert_cobble", "default:desert_cobble"},
}
})
minetest.register_craft({
output = "default:desert_cobble 9",
recipe = {
{"moreblocks:desert_cobble_compressed"},
}
})
minetest.register_craft({
type = "cooking", output = "moreblocks:tar", recipe = "default:pine_tree",
})

View File

@ -3,7 +3,7 @@
** More Blocks **
By Calinou, with the help of ShadowNinja and VanessaE.
Copyright © 2011-2019 Hugo Locurcio and contributors.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
=====================================================================
--]]

View File

@ -1,5 +1,5 @@
# German translation for More Blocks.
# Copyright © 2011-2019 Hugo Locurcio and contributors
# Copyright © 2011-2020 Hugo Locurcio and contributors
# This file is distributed under the same license as the More Blocks package.
# Xanthin, 2014.
# CodeXP <codexp@gmx.net>, 2018.
@ -132,6 +132,10 @@ msgstr "Kohlesteinziegel"
msgid "Compressed Cobblestone"
msgstr "Gepresster Kopfsteinpflaster"
#: nodes.lua
msgid "Compressed Desert Cobblestone"
msgstr ""
#: nodes.lua
msgid "Compressed Dirt"
msgstr "Gepresste Erde"

View File

@ -1,5 +1,5 @@
# Spanish translation for More Blocks.
# Copyright © 2011-2019 Hugo Locurcio and contributors
# Copyright © 2011-2020 Hugo Locurcio and contributors
# This file is distributed under the same license as the More Blocks package.
# kaeza, 2013.
# CodeXP <codexp@gmx.net>, 2018.
@ -128,6 +128,10 @@ msgstr ""
msgid "Compressed Cobblestone"
msgstr ""
#: nodes.lua
msgid "Compressed Desert Cobblestone"
msgstr ""
#: nodes.lua
msgid "Compressed Dirt"
msgstr ""

View File

@ -1,5 +1,5 @@
# French translation for More Blocks.
# Copyright © 2011-2019 Hugo Locurcio and contributors
# Copyright © 2011-2020 Hugo Locurcio and contributors
# This file is distributed under the same license as the More Blocks package.
# Hugo Locurcio <hugo.locurcio@hugo.pro>, 2013-2019.
# Jat15, 2013.
@ -133,6 +133,10 @@ msgstr "Briques en pierre de charbon"
msgid "Compressed Cobblestone"
msgstr "Pierre taillée compressée"
#: nodes.lua
msgid "Compressed Desert Cobblestone"
msgstr ""
#: nodes.lua
msgid "Compressed Dirt"
msgstr "Terre compressée"

View File

@ -1,5 +1,5 @@
# Italian translation for More Blocks.
# Copyright © 2011-2019 Hugo Locurcio and contributors
# Copyright © 2011-2020 Hugo Locurcio and contributors
# This file is distributed under the same license as the More Blocks package.
# Emon, 2016.
# CodeXP <codexp@gmx.net>, 2018.
@ -132,6 +132,10 @@ msgstr "Mattoni di pietra in carbone"
msgid "Compressed Cobblestone"
msgstr ""
#: nodes.lua
msgid "Compressed Desert Cobblestone"
msgstr ""
#: nodes.lua
msgid "Compressed Dirt"
msgstr ""

View File

@ -1,5 +1,5 @@
# Polish translation for More Blocks.
# Copyright © 2011-2019 Hugo Locurcio and contributors
# Copyright © 2011-2020 Hugo Locurcio and contributors
# This file is distributed under the same license as the More Blocks package.
# mat9117, 2019
# CodeXP <codexp@gmx.net>, 2018.
@ -132,6 +132,10 @@ msgstr "Węglowe kamienne cegły"
msgid "Compressed Cobblestone"
msgstr "Skompresowany bruk"
#: nodes.lua
msgid "Compressed Desert Cobblestone"
msgstr ""
#: nodes.lua
msgid "Compressed Dirt"
msgstr "Skompresowana ziemia"

View File

@ -133,6 +133,10 @@ msgstr "угольно-каменный кирпич"
msgid "Compressed Cobblestone"
msgstr "прессованный булыжник"
#: nodes.lua
msgid "Compressed Desert Cobblestone"
msgstr ""
#: nodes.lua
msgid "Compressed Dirt"
msgstr "прессованная земля"

View File

@ -1,5 +1,5 @@
# Template translation for More Blocks.
# Copyright © 2011-2019 Hugo Locurcio and contributors
# Copyright © 2011-2020 Hugo Locurcio and contributors
# This file is distributed under the same license as the More Blocks package.
# CodeXP <codexp@gmx.net>, 2018.
msgid ""
@ -127,6 +127,10 @@ msgstr ""
msgid "Compressed Cobblestone"
msgstr ""
#: nodes.lua
msgid "Compressed Desert Cobblestone"
msgstr ""
#: nodes.lua
msgid "Compressed Dirt"
msgstr ""

288
locale/zh_CN.po Normal file
View File

@ -0,0 +1,288 @@
# Template translation for More Blocks.
# Copyright © 2011-2020 Hugo Locurcio and contributors
# This file is distributed under the same license as the More Blocks package.
# IFRFSX <IFRFSX@protonmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: More Blocks\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-07-13 12:37+0200\n"
"PO-Revision-Date: \n"
"Last-Translator: CodeXP <codexp@gmx.net>\n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: circular_saw.lua
msgid "Circular Saw"
msgstr "圆锯"
#: circular_saw.lua
msgid ""
"Input\n"
"material"
msgstr ""
"输入\n"
"材料"
#: circular_saw.lua
msgid "Left-over"
msgstr "剩余材料"
#: circular_saw.lua
msgid "Max"
msgstr "最大值"
#: circular_saw.lua
msgid ""
"Recycle\n"
"output"
msgstr ""
"回收\n"
"输出物"
#: circular_saw.lua
msgid "Set"
msgstr "设置"
#: circular_saw.lua
msgid "owned by @1"
msgstr "属于@1所有"
#: circular_saw.lua
msgid "Circular Saw is empty"
msgstr "圆锯是空的"
#: circular_saw.lua
msgid "Circular Saw is working on @1"
msgstr "圆锯正在加工@1"
#: init.lua
msgid "[moreblocks] loaded."
msgstr "[moreblocks] 已加载"
#: nodes.lua
msgid "Deprecated"
msgstr "弃用"
#: nodes.lua
msgid "All-faces Acacia Tree"
msgstr "全切面相思树木方块"
#: nodes.lua
msgid "All-faces Aspen Tree"
msgstr "全切面白杨树木方块"
#: nodes.lua
msgid "All-faces Jungle Tree"
msgstr "全切面丛林树木方块"
#: nodes.lua
msgid "All-faces Pine Tree"
msgstr "全切面松树木方块"
#: nodes.lua
msgid "All-faces Tree"
msgstr "全切面树木方块"
#: nodes.lua
msgid "Cactus Brick"
msgstr "仙人掌砖"
#: nodes.lua
msgid "Cactus Checker"
msgstr "仙人掌棋盘方块"
#: nodes.lua
msgid "Centered Wooden Tile"
msgstr "居中的木瓦"
#: nodes.lua
msgid "Checker Stone Tile"
msgstr "棋盘石瓦"
#: nodes.lua
msgid "Circle Stone Bricks"
msgstr "圆石砖"
#: nodes.lua
msgid "Clean Glass"
msgstr "干净的玻璃"
#: nodes.lua
msgid "Coal Checker"
msgstr "棋盘煤块"
#: nodes.lua
msgid "Coal Glass"
msgstr "煤玻璃"
#: nodes.lua
msgid "Coal Stone"
msgstr "煤炭石"
#: nodes.lua
msgid "Coal Stone Bricks"
msgstr "煤炭石砖"
#: nodes.lua
msgid "Compressed Cobblestone"
msgstr "压缩圆石"
#: nodes.lua
msgid "Compressed Dirt"
msgstr "压缩土"
#: nodes.lua
msgid "Copper Patina Block"
msgstr "铜绿方块"
#: nodes.lua
msgid "Empty Shelf"
msgstr "空书架"
#: nodes.lua
msgid "Full Wooden Tile"
msgstr "全木瓦"
#: nodes.lua
msgid "Glow Glass"
msgstr "发光玻璃"
#: nodes.lua
msgid "Iron Checker"
msgstr "棋盘铁方块"
#: nodes.lua
msgid "Iron Glass"
msgstr "铁玻璃"
#: nodes.lua
msgid "Iron Stone"
msgstr "铁石"
#: nodes.lua
msgid "Iron Stone Bricks"
msgstr "铁石砖"
#: nodes.lua
msgid "Plankstone"
msgstr "板石"
#: nodes.lua
msgid "Rope"
msgstr "绳子"
#: nodes.lua
msgid "Split Stone Tile"
msgstr "裂石砖"
#: nodes.lua
msgid "Stone Bricks"
msgstr "石砖"
#: nodes.lua
msgid "Stone Tile"
msgstr "石瓦"
#: nodes.lua
msgid "Super Glow Glass"
msgstr "超级发光玻璃"
#: nodes.lua
msgid "Sweeper"
msgstr "清扫器"
#: nodes.lua
msgid "Tar"
msgstr "焦油"
#: nodes.lua
msgid "Trap Desert Stone"
msgstr "陷阱沙漠石"
#: nodes.lua
msgid "Trap Glass"
msgstr "陷阱玻璃"
#: nodes.lua
msgid "Trap Glow Glass"
msgstr "陷阱发光玻璃"
#: nodes.lua
msgid "Trap Obsidian"
msgstr "陷阱黑耀石"
#: nodes.lua
msgid "Trap Obsidian Glass"
msgstr "陷阱黑耀石玻璃"
#: nodes.lua
msgid "Trap Sandstone"
msgstr "陷阱沙石"
#: nodes.lua
msgid "Trap Stone"
msgstr "陷阱石"
#: nodes.lua
msgid "Trap Super Glow Glass"
msgstr "陷阱超级发光玻璃"
#: nodes.lua
msgid "Wooden Tile"
msgstr "木瓦"
#: nodes.lua
msgid "Offset Wooden Tile"
msgstr "胶合木瓦"
# @deprecated
#: nodes.lua
msgid "Downwards Wooden Tile"
msgstr "向下的木瓦"
# @deprecated
#: nodes.lua
msgid "Leftwards Wooden Tile"
msgstr "向左的木瓦"
# @deprecated
#: nodes.lua
msgid "Rightwards Wooden Tile"
msgstr "向右的木瓦"
#: ownership.lua
msgid "Sorry, @1 owns that spot."
msgstr "抱歉,那个位置是@1的。"
#: ownership.lua
msgid "someone"
msgstr "某人"
#: stairsplus/common.lua
#, lua-format
msgid "%s Microblock"
msgstr "%s 小方块"
#: stairsplus/common.lua stairsplus/slabs.lua
#, lua-format
msgid "%s Slab"
msgstr "%s 台阶"
#: stairsplus/common.lua
#, lua-format
msgid "%s Slope"
msgstr "%s 斜坡"
#: stairsplus/common.lua
#, lua-format
msgid "%s Panel"
msgstr "%s 嵌板"
#: stairsplus/common.lua
#, lua-format
msgid "%s Stairs"
msgstr "%s 楼梯"

288
locale/zh_TW.po Normal file
View File

@ -0,0 +1,288 @@
# Template translation for More Blocks.
# Copyright © 2011-2020 Hugo Locurcio and contributors
# This file is distributed under the same license as the More Blocks package.
# IFRFSX <IFRFSX@protonmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: More Blocks\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-07-13 12:37+0200\n"
"PO-Revision-Date: \n"
"Last-Translator: CodeXP <codexp@gmx.net>\n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: circular_saw.lua
msgid "Circular Saw"
msgstr "圓鋸"
#: circular_saw.lua
msgid ""
"Input\n"
"material"
msgstr ""
"輸入\n"
"材料"
#: circular_saw.lua
msgid "Left-over"
msgstr "剩餘材料"
#: circular_saw.lua
msgid "Max"
msgstr "最大值"
#: circular_saw.lua
msgid ""
"Recycle\n"
"output"
msgstr ""
"回收\n"
"輸出物"
#: circular_saw.lua
msgid "Set"
msgstr "設置"
#: circular_saw.lua
msgid "owned by @1"
msgstr "屬於@1所有"
#: circular_saw.lua
msgid "Circular Saw is empty"
msgstr "圓鋸是空的"
#: circular_saw.lua
msgid "Circular Saw is working on @1"
msgstr "圓鋸正在加工@1"
#: init.lua
msgid "[moreblocks] loaded."
msgstr "[moreblocks] 已加載"
#: nodes.lua
msgid "Deprecated"
msgstr "棄用"
#: nodes.lua
msgid "All-faces Acacia Tree"
msgstr "全切面相思樹木方塊"
#: nodes.lua
msgid "All-faces Aspen Tree"
msgstr "全切面白楊樹木方塊"
#: nodes.lua
msgid "All-faces Jungle Tree"
msgstr "全切面叢林樹木方塊"
#: nodes.lua
msgid "All-faces Pine Tree"
msgstr "全切面松樹木方塊"
#: nodes.lua
msgid "All-faces Tree"
msgstr "全切面樹木方塊"
#: nodes.lua
msgid "Cactus Brick"
msgstr "仙人掌磚"
#: nodes.lua
msgid "Cactus Checker"
msgstr "仙人掌棋盤方塊"
#: nodes.lua
msgid "Centered Wooden Tile"
msgstr "居中的木瓦"
#: nodes.lua
msgid "Checker Stone Tile"
msgstr "棋盤石瓦"
#: nodes.lua
msgid "Circle Stone Bricks"
msgstr "圓石磚"
#: nodes.lua
msgid "Clean Glass"
msgstr "乾淨的玻璃"
#: nodes.lua
msgid "Coal Checker"
msgstr "棋盤煤塊"
#: nodes.lua
msgid "Coal Glass"
msgstr "煤玻璃"
#: nodes.lua
msgid "Coal Stone"
msgstr "煤炭石"
#: nodes.lua
msgid "Coal Stone Bricks"
msgstr "煤炭石磚"
#: nodes.lua
msgid "Compressed Cobblestone"
msgstr "壓縮圓石"
#: nodes.lua
msgid "Compressed Dirt"
msgstr "壓縮土"
#: nodes.lua
msgid "Copper Patina Block"
msgstr "銅綠方塊"
#: nodes.lua
msgid "Empty Shelf"
msgstr "空書架"
#: nodes.lua
msgid "Full Wooden Tile"
msgstr "全木瓦"
#: nodes.lua
msgid "Glow Glass"
msgstr "發光玻璃"
#: nodes.lua
msgid "Iron Checker"
msgstr "棋盤鐵方塊"
#: nodes.lua
msgid "Iron Glass"
msgstr "鐵玻璃"
#: nodes.lua
msgid "Iron Stone"
msgstr "鐵石"
#: nodes.lua
msgid "Iron Stone Bricks"
msgstr "鐵石磚"
#: nodes.lua
msgid "Plankstone"
msgstr "板石"
#: nodes.lua
msgid "Rope"
msgstr "繩子"
#: nodes.lua
msgid "Split Stone Tile"
msgstr "裂石磚"
#: nodes.lua
msgid "Stone Bricks"
msgstr "石磚"
#: nodes.lua
msgid "Stone Tile"
msgstr "石瓦"
#: nodes.lua
msgid "Super Glow Glass"
msgstr "超級發光玻璃"
#: nodes.lua
msgid "Sweeper"
msgstr "清掃器"
#: nodes.lua
msgid "Tar"
msgstr "焦油"
#: nodes.lua
msgid "Trap Desert Stone"
msgstr "陷阱沙漠石"
#: nodes.lua
msgid "Trap Glass"
msgstr "陷阱玻璃"
#: nodes.lua
msgid "Trap Glow Glass"
msgstr "陷阱發光玻璃"
#: nodes.lua
msgid "Trap Obsidian"
msgstr "陷阱黑耀石"
#: nodes.lua
msgid "Trap Obsidian Glass"
msgstr "陷阱黑耀石玻璃"
#: nodes.lua
msgid "Trap Sandstone"
msgstr "陷阱沙石"
#: nodes.lua
msgid "Trap Stone"
msgstr "陷阱石"
#: nodes.lua
msgid "Trap Super Glow Glass"
msgstr "陷阱超級發光玻璃"
#: nodes.lua
msgid "Wooden Tile"
msgstr "木瓦"
#: nodes.lua
msgid "Offset Wooden Tile"
msgstr "膠合木瓦"
# @deprecated
#: nodes.lua
msgid "Downwards Wooden Tile"
msgstr "向下的木瓦"
# @deprecated
#: nodes.lua
msgid "Leftwards Wooden Tile"
msgstr "向左的木瓦"
# @deprecated
#: nodes.lua
msgid "Rightwards Wooden Tile"
msgstr "向右的木瓦"
#: ownership.lua
msgid "Sorry, @1 owns that spot."
msgstr "抱歉,那個位置是@1的。"
#: ownership.lua
msgid "someone"
msgstr "某人"
#: stairsplus/common.lua
#, lua-format
msgid "%s Microblock"
msgstr "%s 小方塊"
#: stairsplus/common.lua stairsplus/slabs.lua
#, lua-format
msgid "%s Slab"
msgstr "%s 臺階"
#: stairsplus/common.lua
#, lua-format
msgid "%s Slope"
msgstr "%s 斜坡"
#: stairsplus/common.lua
#, lua-format
msgid "%s Panel"
msgstr "%s 嵌板"
#: stairsplus/common.lua
#, lua-format
msgid "%s Stairs"
msgstr "%s 樓梯"

View File

@ -2,3 +2,4 @@ name = moreblocks
description = Adds various miscellaneous blocks to the game.
depends = default
optional_depends = intllib,stairs,farming,wool,basic_materials
min_minetest_version = 5.0.0

View File

@ -1,7 +1,7 @@
--[[
More Blocks: node definitions
Copyright © 2011-2019 Hugo Locurcio and contributors.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
@ -175,6 +175,12 @@ local nodes = {
is_ground_content = false,
sounds = sound_stone,
},
["desert_cobble_compressed"] = {
description = S("Compressed Desert Cobblestone"),
groups = {cracky = 1},
is_ground_content = false,
sounds = sound_stone,
},
["plankstone"] = {
description = S("Plankstone"),
paramtype2 = "facedir",
@ -188,6 +194,7 @@ local nodes = {
description = S("Iron Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png^[colorize:#DEDEDE", "default_glass_detail.png^[colorize:#DEDEDE"},
use_texture_alpha = true,
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
@ -198,6 +205,7 @@ local nodes = {
description = S("Coal Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png^[colorize:#828282", "default_glass_detail.png^[colorize:#828282"},
use_texture_alpha = true,
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
@ -208,6 +216,7 @@ local nodes = {
description = S("Clean Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"moreblocks_clean_glass.png", "moreblocks_clean_glass_detail.png"},
use_texture_alpha = true,
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
@ -307,6 +316,7 @@ local nodes = {
description = S("Trap Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png^moreblocks_trap_box_glass.png", "default_glass_detail.png"},
use_texture_alpha = true,
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
@ -319,6 +329,7 @@ local nodes = {
description = S("Trap Obsidian Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"default_obsidian_glass.png^moreblocks_trap_box_glass.png", "default_obsidian_glass_detail.png"},
use_texture_alpha = true,
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
@ -338,6 +349,19 @@ local nodes = {
sounds = sound_stone,
no_stairs = true,
},
["trap_clean_glass"] = {
description = S("Trap Clean Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"moreblocks_clean_glass.png^moreblocks_trap_box_glass.png", "moreblocks_clean_glass_detail.png"},
use_texture_alpha = true,
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
walkable = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
no_stairs = true,
},
["trap_sandstone"] = {
description = S("Trap Sandstone"),
drawtype = "glasslike_framed",
@ -388,6 +412,19 @@ local nodes = {
description = S("Glow Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png^[colorize:#E9CD61", "default_glass_detail.png^[colorize:#E9CD61"},
use_texture_alpha = true,
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
light_source = 11,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
},
["clean_glow_glass"] = {
description = S("Clean Glow Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"moreblocks_clean_glass.png^[colorize:#E9CD61", "moreblocks_clean_glass_detail.png^[colorize:#E9CD61"},
use_texture_alpha = true,
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
@ -399,6 +436,21 @@ local nodes = {
description = S("Trap Glow Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png^[colorize:#E9CD61^moreblocks_trap_box_glass.png", "default_glass_detail.png^[colorize:#E9CD61"},
use_texture_alpha = true,
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
light_source = 11,
walkable = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
no_stairs = true,
},
["trap_clean_glow_glass"] = {
description = S("Trap Clean Glow Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"moreblocks_clean_glass.png^[colorize:#E9CD61^moreblocks_trap_box_glass.png", "moreblocks_clean_glass_detail.png^[colorize:#E9CD61"},
use_texture_alpha = true,
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
@ -412,6 +464,19 @@ local nodes = {
description = S("Super Glow Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png^[colorize:#FFFF78", "default_glass_detail.png^[colorize:#FFFF78"},
use_texture_alpha = true,
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
light_source = default.LIGHT_MAX,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
},
["clean_super_glow_glass"] = {
description = S("Clean Super Glow Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"moreblocks_clean_glass.png^[colorize:#FFFF78", "moreblocks_clean_glass_detail.png^[colorize:#FFFF78"},
use_texture_alpha = true,
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
@ -423,6 +488,21 @@ local nodes = {
description = S("Trap Super Glow Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png^[colorize:#FFFF78^moreblocks_trap_box_glass.png", "default_glass_detail.png^[colorize:#FFFF78"},
use_texture_alpha = true,
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
light_source = default.LIGHT_MAX,
walkable = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
no_stairs = true,
},
["trap_clean_super_glow_glass"] = {
description = S("Trap Clean Super Glow Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"moreblocks_clean_glass.png^[colorize:#FFFF78^moreblocks_trap_box_glass.png", "moreblocks_clean_glass_detail.png^[colorize:#FFFF78"},
use_texture_alpha = true,
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,

View File

@ -1,7 +1,7 @@
--[[
More Blocks: ownership handling
Copyright © 2011-2019 Hugo Locurcio and contributors.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]

View File

@ -1,30 +1,48 @@
--[[
More Blocks: redefinitions of default stuff
Copyright © 2011-2019 Hugo Locurcio and contributors.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
-- Redefinitions of some default crafting recipes:
minetest.register_craft({
output = "default:sign_wall 4",
-- Signs: +1
minetest.clear_craft({
recipe = {
{"default:wood", "default:wood", "default:wood"},
{"default:wood", "default:wood", "default:wood"},
{"", "default:stick", ""},
{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
{'', 'group:stick', ''},
}
})
minetest.clear_craft({
recipe = {
{'group:wood', 'group:wood', 'group:wood'},
{'group:wood', 'group:wood', 'group:wood'},
{'', 'group:stick', ''},
}
})
minetest.register_craft({
output = "default:ladder 4",
output = 'default:sign_wall_steel 4',
recipe = {
{"default:stick", "", "default:stick"},
{"default:stick", "default:stick", "default:stick"},
{"default:stick", "", "default:stick"},
{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
{'', 'group:stick', ''},
}
})
minetest.register_craft({
output = 'default:sign_wall_wood 4',
recipe = {
{'group:wood', 'group:wood', 'group:wood'},
{'group:wood', 'group:wood', 'group:wood'},
{'', 'group:stick', ''},
}
})
minetest.clear_craft({
recipe = {
{"default:papyrus", "default:papyrus", "default:papyrus"}
@ -37,6 +55,7 @@ minetest.register_craft({
}
})
minetest.register_craft({
output = "default:rail 24",
recipe = {

View File

@ -1,2 +1,3 @@
# If enabled, Stairs+ nodes will be displayed in the inventory when playing in creative mode.
# Disabling this can speed up loading times for clients as fewer nodes need to be registered in the creative inventory.
moreblocks.stairsplus_in_creative_inventory (Display Stairs+ nodes in creative inventory) bool true

View File

@ -1,70 +0,0 @@
--[[
More Blocks: alias definitions
Copyright © 2011-2019 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
local function register_stairsplus_alias(modname, origname, newname)
minetest.register_alias(modname.. ":slab_" ..origname, "moreblocks:slab_" ..newname)
minetest.register_alias(modname.. ":slab_" ..origname.. "_inverted", "moreblocks:slab_" ..newname.. "_inverted")
minetest.register_alias(modname.. ":slab_" ..origname.. "_wall", "moreblocks:slab_" ..newname.. "_wall")
minetest.register_alias(modname.. ":slab_" ..origname.. "_quarter", "moreblocks:slab_" ..newname.. "_quarter")
minetest.register_alias(modname.. ":slab_" ..origname.. "_quarter_inverted", "moreblocks:slab_" ..newname.. "_quarter_inverted")
minetest.register_alias(modname.. ":slab_" ..origname.. "_quarter_wall", "moreblocks:slab_" ..newname.. "_quarter_wall")
minetest.register_alias(modname.. ":slab_" ..origname.. "_three_quarter", "moreblocks:slab_" ..newname.. "_three_quarter")
minetest.register_alias(modname.. ":slab_" ..origname.. "_three_quarter_inverted", "moreblocks:slab_" ..newname.. "_three_quarter_inverted")
minetest.register_alias(modname.. ":slab_" ..origname.. "_three_quarter_wall", "moreblocks:slab_" ..newname.. "_three_quarter_wall")
minetest.register_alias(modname.. ":stair_" ..origname, "moreblocks:stair_" ..newname)
minetest.register_alias(modname.. ":stair_" ..origname.. "_inverted", "moreblocks:stair_" ..newname.. "_inverted")
minetest.register_alias(modname.. ":stair_" ..origname.. "_wall", "moreblocks:stair_" ..newname.. "_wall")
minetest.register_alias(modname.. ":stair_" ..origname.. "_wall_half", "moreblocks:stair_" ..newname.. "_wall_half")
minetest.register_alias(modname.. ":stair_" ..origname.. "_wall_half_inverted", "moreblocks:stair_" ..newname.. "_wall_half_inverted")
minetest.register_alias(modname.. ":stair_" ..origname.. "_half", "moreblocks:stair_" ..newname.. "_half")
minetest.register_alias(modname.. ":stair_" ..origname.. "_half_inverted", "moreblocks:stair_" ..newname.. "_half_inverted")
minetest.register_alias(modname.. ":stair_" ..origname.. "_right_half", "moreblocks:stair_" ..newname.. "_right_half")
minetest.register_alias(modname.. ":stair_" ..origname.. "_right_half_inverted", "moreblocks:stair_" ..newname.. "_right_half_inverted")
minetest.register_alias(modname.. ":stair_" ..origname.. "_wall_half", "moreblocks:stair_" ..newname.. "_wall_half")
minetest.register_alias(modname.. ":stair_" ..origname.. "_wall_half_inverted", "moreblocks:stair_" ..newname.. "_wall_half_inverted")
minetest.register_alias(modname.. ":stair_" ..origname.. "_inner", "moreblocks:stair_" ..newname.. "_inner")
minetest.register_alias(modname.. ":stair_" ..origname.. "_inner_inverted", "moreblocks:stair_" ..newname.. "_inner_inverted")
minetest.register_alias(modname.. ":stair_" ..origname.. "_outer", "moreblocks:stair_" ..newname.. "_outer")
minetest.register_alias(modname.. ":stair_" ..origname.. "_outer_inverted", "moreblocks:stair_" ..newname.. "_outer_inverted")
minetest.register_alias(modname.. ":panel_" ..origname.. "_bottom", "moreblocks:panel_" ..newname.. "_bottom")
minetest.register_alias(modname.. ":panel_" ..origname.. "_top", "moreblocks:panel_" ..newname.. "_top")
minetest.register_alias(modname.. ":panel_" ..origname.. "_vertical", "moreblocks:panel_" ..newname.. "_vertical")
minetest.register_alias(modname.. ":micro_" ..origname.. "_bottom", "moreblocks:micro_" ..newname.. "_bottom")
minetest.register_alias(modname.. ":micro_" ..origname.. "_top", "moreblocks:micro_" ..newname.. "_top")
end
register_stairsplus_alias("stairsplus", "stone", "stone")
register_stairsplus_alias("stairsplus", "wood", "wood")
register_stairsplus_alias("stairsplus", "pinewood", "pinewood")
register_stairsplus_alias("stairsplus", "cobble", "cobble")
register_stairsplus_alias("stairsplus", "brick", "brick")
register_stairsplus_alias("stairsplus", "sandstone", "sandstone")
register_stairsplus_alias("stairsplus", "glass", "glass")
register_stairsplus_alias("stairsplus", "tree", "tree")
register_stairsplus_alias("stairsplus", "jungletree", "jungletree")
register_stairsplus_alias("stairsplus", "pinetree", "pinetree")
register_stairsplus_alias("stairsplus", "desert_stone", "desert_stone")
register_stairsplus_alias("stairsplus", "steelblock", "steelblock")
register_stairsplus_alias("stairsplus", "mossycobble", "mossycobble")
register_stairsplus_alias("moreblocks", "coalstone", "coal_stone")
register_stairsplus_alias("moreblocks", "junglewood", "jungle_wood")
register_stairsplus_alias("moreblocks", "circlestonebrick", "circle_stone_bricks")
register_stairsplus_alias("moreblocks", "ironstone", "iron_stone")
register_stairsplus_alias("moreblocks", "coalglass", "coal_glass")
register_stairsplus_alias("moreblocks", "ironglass", "iron_glass")
register_stairsplus_alias("moreblocks", "glowglass", "glow_glass")
register_stairsplus_alias("moreblocks", "superglowglass", "super_glow_glass")
register_stairsplus_alias("moreblocks", "coalchecker", "coal_checker")
register_stairsplus_alias("moreblocks", "ironchecker", "iron_checker")
register_stairsplus_alias("moreblocks", "cactuschecker", "cactus_checker")
register_stairsplus_alias("moreblocks", "ironstonebrick", "iron_stone_bricks")
register_stairsplus_alias("moreblocks", "stonesquare", "stone_tile")
register_stairsplus_alias("moreblocks", "splitstonesquare", "split_stone_tile")
register_stairsplus_alias("moreblocks", "woodtile", "wood_tile")
register_stairsplus_alias("moreblocks", "woodtile_centered", "wood_tile_centered")
register_stairsplus_alias("moreblocks", "woodtile_full", "wood_tile_full")

View File

@ -1,7 +1,7 @@
--[[
More Blocks: registrations
Copyright © 2011-2019 Hugo Locurcio and contributors.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
@ -15,7 +15,99 @@ local descriptions = {
["stair"] = S("%s Stairs"),
}
-- Extends the standad rotate_node placement so that it takes into account
-- the side (top/bottom or left/right) of the face being pointed at.
-- As with the standard rotate_node, sneak can be used to force the perpendicular
-- placement (wall placement on floor/ceiling, floor/ceiling placement on walls).
-- Additionally, the aux / sprint / special key can be used to place the node
-- as if from the opposite side.
--
-- When placing a node next to one of the same category (e.g. slab to slab or
-- stair to stair), the default placement (regardless of sneak) is to copy the
-- under node's param2, flipping if placed above or below it. The aux key disable
-- this behavior.
local wall_right_dirmap = {9, 18, 7, 12}
local wall_left_dirmap = {11, 16, 5, 14}
local ceil_dirmap = {20, 23, 22, 21}
stairsplus.rotate_node_aux = function(itemstack, placer, pointed_thing)
local sneak = placer and placer:get_player_control().sneak
local aux = placer and placer:get_player_control().aux1
-- namestring for what we are placing, up to the first _ (exclusive)
local item_prefix = itemstack:get_name():gsub("_.*$", "")
-- namestring for what we are placing against
local under = pointed_thing.under
local under_node = minetest.get_node(under)
local under_prefix = under_node and under_node.name:gsub("_.*$", "")
local same_cat = item_prefix == under_prefix
-- standard (floor) facedir, also used for sneak placement against the lower half of the wall
local p2 = placer and minetest.dir_to_facedir(placer:get_look_dir()) or 0
-- check which face and which quadrant we are interested in
-- this is used both to check if we're handling parallel placement in the same-category case,
-- and in general for sneak placement
local face_pos = minetest.pointed_thing_to_face_pos(placer, pointed_thing)
local face_off = vector.subtract(face_pos, under)
local wallmounted = minetest.dir_to_wallmounted(face_off)
if same_cat and not aux then
p2 = under_node.param2
-- flip if placing above or below an upright or upside-down node
-- TODO should we also flip when placing next to a side-mounted node?
if wallmounted < 2 then
if p2 < 4 then
p2 = (p2 + 2) % 4
p2 = ceil_dirmap[p2 + 1]
elseif p2 > 19 then
p2 = ceil_dirmap[p2 - 19] - 20
p2 = (p2 + 2) % 4
end
end
else
-- for same-cat placement, aux is used to disable param2 copying
if same_cat then
aux = not aux
end
local remap = nil
-- standard placement against the wall
local use_wallmap = (wallmounted > 1 and not sneak) or (wallmounted < 2 and sneak)
-- standard placement against the ceiling, or sneak placement against the upper half of the wall
local use_ceilmap = wallmounted == 1 and not sneak
use_ceilmap = use_ceilmap or (wallmounted > 1 and sneak and face_off.y > 0)
if use_wallmap then
local left = (p2 == 0 and face_off.x < 0) or
(p2 == 1 and face_off.z > 0) or
(p2 == 2 and face_off.x > 0) or
(p2 == 3 and face_off.z < 0)
if aux then
left = not left
end
remap = left and wall_left_dirmap or wall_right_dirmap
elseif use_ceilmap then
remap = ceil_dirmap
end
if aux then
p2 = (p2 + 2) % 4
end
if remap then
p2 = remap[p2 + 1]
end
end
return minetest.item_place(itemstack, placer, pointed_thing, p2)
end
stairsplus.register_single = function(category, alternate, info, modname, subname, recipeitem, fields)
local src_def = minetest.registered_nodes[recipeitem] or {}
local desc_base = descriptions[category]:format(fields.description)
local def = {}
@ -31,6 +123,9 @@ stairsplus.register_single = function(category, alternate, info, modname, subnam
def.drawtype = "nodebox"
def.paramtype = "light"
def.paramtype2 = def.paramtype2 or "facedir"
if def.use_texture_alpha == nil then
def.use_texture_alpha = src_def.use_texture_alpha
end
-- This makes node rotation work on placement
def.place_param2 = nil
@ -38,7 +133,7 @@ stairsplus.register_single = function(category, alternate, info, modname, subnam
-- Darken light sources slightly to make up for their smaller visual size
def.light_source = math.max(0, (def.light_source or 0) - 1)
def.on_place = minetest.rotate_node
def.on_place = stairsplus.rotate_node_aux
def.groups = stairsplus:prepare_groups(fields.groups)
if category == "slab" then

View File

@ -1,139 +0,0 @@
--[[
More Blocks: conversion
Copyright © 2011-2019 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
-- Function to convert all stairs/slabs/etc nodes from
-- inverted, wall, etc to regular + 6d facedir
local dirs1 = {21, 20, 23, 22, 21}
local dirs2 = {15, 8, 17, 6, 15}
local dirs3 = {14, 11, 16, 5, 14}
function stairsplus:register_6dfacedir_conversion(modname, material)
--print("Register stairsplus 6d facedir conversion")
--print('ABM for '..modname..' "'..material..'"')
local objects_list1 = {
modname.. ":slab_" ..material.. "_inverted",
modname.. ":slab_" ..material.. "_quarter_inverted",
modname.. ":slab_" ..material.. "_three_quarter_inverted",
modname.. ":stair_" ..material.. "_inverted",
modname.. ":stair_" ..material.. "_wall",
modname.. ":stair_" ..material.. "_wall_half",
modname.. ":stair_" ..material.. "_wall_half_inverted",
modname.. ":stair_" ..material.. "_half_inverted",
modname.. ":stair_" ..material.. "_right_half_inverted",
modname.. ":panel_" ..material.. "_vertical",
modname.. ":panel_" ..material.. "_top",
}
local objects_list2 = {
modname.. ":slab_" ..material.. "_wall",
modname.. ":slab_" ..material.. "_quarter_wall",
modname.. ":slab_" ..material.. "_three_quarter_wall",
modname.. ":stair_" ..material.. "_inner_inverted",
modname.. ":stair_" ..material.. "_outer_inverted",
modname.. ":micro_" ..material.. "_top"
}
for _, object in pairs(objects_list1) do
local flip_upside_down = false
local flip_to_wall = false
local dest_object = object
if string.find(dest_object, "_inverted") then
flip_upside_down = true
dest_object = string.gsub(dest_object, "_inverted", "")
end
if string.find(object, "_top") then
flip_upside_down = true
dest_object = string.gsub(dest_object, "_top", "")
end
if string.find(dest_object, "_wall") then
flip_to_wall = true
dest_object = string.gsub(dest_object, "_wall", "")
end
if string.find(dest_object, "_vertical") then
flip_to_wall = true
dest_object = string.gsub(dest_object, "_vertical", "")
end
if string.find(dest_object, "_half") and not string.find(dest_object, "_right_half") then
dest_object = string.gsub(dest_object, "_half", "_right_half")
elseif string.find(dest_object, "_right_half") then
dest_object = string.gsub(dest_object, "_right_half", "_half")
end
--print(" +---> convert " ..object)
--print(" | to " ..dest_object)
minetest.register_abm({
nodenames = {object},
interval = 1,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local fdir = node.param2 or 0
local nfdir
if flip_upside_down and not flip_to_wall then
nfdir = dirs1[fdir + 2]
elseif flip_to_wall and not flip_upside_down then
nfdir = dirs2[fdir + 1]
elseif flip_to_wall and flip_upside_down then
nfdir = dirs3[fdir + 2]
end
minetest.set_node(pos, {name = dest_object, param2 = nfdir})
end
})
end
for _, object in pairs(objects_list2) do
local flip_upside_down = false
local flip_to_wall = false
local dest_object = object
if string.find(dest_object, "_inverted") then
flip_upside_down = true
dest_object = string.gsub(dest_object, "_inverted", "")
end
if string.find(dest_object, "_top") then
flip_upside_down = true
dest_object = string.gsub(dest_object, "_top", "")
end
if string.find(dest_object, "_wall") then
flip_to_wall = true
dest_object = string.gsub(dest_object, "_wall", "")
end
--print(" +---> convert " ..object)
--print(" | to " ..dest_object)
minetest.register_abm({
nodenames = {object},
interval = 1,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local fdir = node.param2
local nfdir = 20
if flip_upside_down and not flip_to_wall then
nfdir = dirs1[fdir + 1]
elseif flip_to_wall and not flip_upside_down then
nfdir = dirs2[fdir + 2]
end
minetest.set_node(pos, {name = dest_object, param2 = nfdir})
end
})
end
end

View File

@ -1,7 +1,7 @@
--[[
More Blocks: microblock definitions
Copyright © 2011-2019 Hugo Locurcio and contributors.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]

View File

@ -1,7 +1,7 @@
--[[
More Blocks: registrations
Copyright © 2011-2019 Hugo Locurcio and contributors.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]

View File

@ -1,7 +1,7 @@
--[[
More Blocks: Stairs+
Copyright © 2011-2019 Hugo Locurcio and contributors.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
@ -42,7 +42,6 @@ function stairsplus:register_all(modname, subname, recipeitem, fields)
self:register_slope(modname, subname, recipeitem, fields)
self:register_panel(modname, subname, recipeitem, fields)
self:register_micro(modname, subname, recipeitem, fields)
-- self:register_6dfacedir_conversion(modname, subname) -- Not needed as of Q3 2013, uncomment to fix old maps.
end
function stairsplus:register_alias_all(modname_old, subname_old, modname_new, subname_new)
@ -71,8 +70,6 @@ local function register_stair_slab_panel_micro(modname, subname, recipeitem, gro
})
end
-- dofile(modpath.. "/aliases.lua") -- Not needed as of Q2 2013, uncomment to fix old maps.
-- dofile(modpath.. "/conversion.lua") -- Not needed as of Q2 2013, uncomment to fix old maps.
dofile(modpath .. "/defs.lua")
dofile(modpath .. "/recipes.lua")
dofile(modpath .. "/common.lua")

View File

@ -1,7 +1,7 @@
--[[
More Blocks: microblock definitions
Copyright © 2011-2019 Hugo Locurcio and contributors.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]

View File

@ -1,7 +1,7 @@
--[[
More Blocks: panel definitions
Copyright © 2011-2019 Hugo Locurcio and contributors.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]

View File

@ -1,7 +1,7 @@
--[[
More Blocks: Stairs+
Copyright © 2011-2019 Hugo Locurcio and contributors.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]

View File

@ -1,7 +1,7 @@
--[[
More Blocks: registrations
Copyright © 2011-2019 Hugo Locurcio and contributors.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]

View File

@ -1,7 +1,7 @@
--[[
More Blocks: slab definitions
Copyright © 2011-2019 Hugo Locurcio and contributors.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]

View File

@ -1,7 +1,7 @@
--[[
More Blocks: slope definitions
Copyright © 2011-2019 Hugo Locurcio and contributors.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]

View File

@ -1,7 +1,7 @@
--[[
More Blocks: stair definitions
Copyright © 2011-2019 Hugo Locurcio and contributors.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB