nonfunctional checkpoint

This commit is contained in:
flux 2022-06-11 18:17:41 -07:00
parent dce587cf33
commit c5ddb5f2d4
109 changed files with 2088 additions and 2153 deletions

View File

@ -1,3 +1,5 @@
# See https://editorconfig.org/
root = true
[*]

View File

@ -1,34 +0,0 @@
std = "lua51+minetest"
unused_args = false
allow_defined_top = true
max_line_length = 999
stds.minetest = {
read_globals = {
"DIR_DELIM",
"minetest",
"core",
"dump",
"vector",
"nodeupdate",
"VoxelManip",
"VoxelArea",
"PseudoRandom",
"ItemStack",
"default",
table = {
fields = {
"copy",
},
},
}
}
read_globals = {
"protector",
"isprotect",
"IsPlayerNodeOwner",
"HasOwner",
"getLastOwner",
"GetNodeOwnerName",
}

View File

@ -7,6 +7,23 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## [Unreleased]
## [3.0.0] - 2022-06-11
### Changed
- turned into a modpack (separate out stairsplus properly
- refactored and rewrote a ton of stuff.)
- a lot of cleanup.
- got rid of some dead code ("ownership").
- more API for creating node variants
- allow registering new variants w/ this mod
- parameterized resources (sounds, textures, craft materials) to make it easier to integrate w/ other games
- actually implemented proper luachecking
- fixed some unreported bugs (e.g. dependencies which weren't declared)
### Fixed
## [2.2.0] - 2021-06-28
### Changed
@ -134,9 +151,15 @@ 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.2.0...HEAD
[2.2.0]: https://github.com/minetest-mods/moreblocks/compare/v2.1.0...v2.2.0
[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
[1.1.0]: https://github.com/minetest-mods/moreblocks/compare/v1.0.0...v1.1.0

View File

@ -2,12 +2,17 @@
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.**
**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.**
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it
and redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If
you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not
required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original
software.
3. This notice may not be removed or altered from any source distribution.

View File

@ -1,29 +0,0 @@
--[[
More Blocks: configuration handling
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
moreblocks.config = {}
local function getbool_default(setting, default)
local value = minetest.settings:get_bool(setting)
if value == nil then
value = default
end
return value
end
local function setting(settingtype, name, default)
if settingtype == "bool" then
moreblocks.config[name] =
getbool_default("moreblocks." .. name, default)
else
moreblocks.config[name] =
minetest.settings:get("moreblocks." .. name) or default
end
end
-- Show stairs/slabs/panels/microblocks in creative inventory (true or false):
setting("bool", "stairsplus_in_creative_inventory", true)

View File

@ -1,648 +0,0 @@
--[[
More Blocks: crafting recipes
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
minetest.register_craft({
output = "default:stick",
recipe = {{"default:dry_shrub"},}
})
minetest.register_craft({
output = "default:stick",
recipe = {{"group:sapling"},}
})
minetest.register_craft({
output = "default:wood",
recipe = {
{"default:stick", "default:stick"},
{"default:stick", "default:stick"},
}
})
minetest.register_craft({
output = "default:dirt_with_grass",
type = "shapeless",
recipe = {"default:junglegrass", "default:dirt"},
})
minetest.register_craft({
output = "default:mossycobble",
type = "shapeless",
recipe = {"default:junglegrass", "default:cobble"},
})
minetest.register_craft({
output = "moreblocks:wood_tile 9",
recipe = {
{"group:wood", "group:wood", "group:wood"},
{"group:wood", "group:wood", "group:wood"},
{"group:wood", "group:wood", "group:wood"},
}
})
-- This must be registered after `moreblocks:wood_tile` to avoid recipe conflicts,
-- since `moreblocks:wood_tile` is part of `group:wood`
minetest.register_craft({
output = "moreblocks:wood_tile_center 9",
recipe = {
{"group:wood", "group:wood", "group:wood"},
{"group:wood", "moreblocks:wood_tile", "group:wood"},
{"group:wood", "group:wood", "group:wood"},
}
})
minetest.register_craft({
type = "shapeless",
output = "moreblocks:wood_tile",
recipe = {"moreblocks:wood_tile_flipped"}
})
minetest.register_craft({
output = "moreblocks:wood_tile_full 4",
recipe = {
{"moreblocks:wood_tile", "moreblocks:wood_tile"},
{"moreblocks:wood_tile", "moreblocks:wood_tile"},
}
})
minetest.register_craft({
output = "moreblocks:wood_tile_offset",
recipe = {
{"default:stick"},
{"moreblocks:wood_tile_center"},
}
})
minetest.register_craft({
type = "shapeless",
output = "moreblocks:wood_tile_offset",
recipe = {"moreblocks:wood_tile_down"}
})
minetest.register_craft({
type = "shapeless",
output = "moreblocks:wood_tile_offset",
recipe = {"moreblocks:wood_tile_left"}
})
minetest.register_craft({
type = "shapeless",
output = "moreblocks:wood_tile_offset",
recipe = {"moreblocks:wood_tile_right"}
})
minetest.register_craft({
output = "moreblocks:circle_stone_bricks 5",
recipe = {
{"", "default:stone", ""},
{"default:stone", "default:coal_lump", "default:stone"},
{"", "default:stone", ""},
}
})
minetest.register_craft({
output = "moreblocks:all_faces_tree 8",
recipe = {
{"default:tree", "default:tree", "default:tree"},
{"default:tree", "", "default:tree"},
{"default:tree", "default:tree", "default:tree"},
}
})
minetest.register_craft({
output = "moreblocks:all_faces_jungle_tree 8",
recipe = {
{"default:jungletree", "default:jungletree", "default:jungletree"},
{"default:jungletree", "", "default:jungletree"},
{"default:jungletree", "default:jungletree", "default:jungletree"},
}
})
minetest.register_craft({
output = "moreblocks:all_faces_pine_tree 8",
recipe = {
{"default:pine_tree", "default:pine_tree", "default:pine_tree"},
{"default:pine_tree", "", "default:pine_tree"},
{"default:pine_tree", "default:pine_tree", "default:pine_tree"},
}
})
minetest.register_craft({
output = "moreblocks:all_faces_acacia_tree 8",
recipe = {
{"default:acacia_tree", "default:acacia_tree", "default:acacia_tree"},
{"default:acacia_tree", "", "default:acacia_tree"},
{"default:acacia_tree", "default:acacia_tree", "default:acacia_tree"},
}
})
minetest.register_craft({
output = "moreblocks:all_faces_aspen_tree 8",
recipe = {
{"default:aspen_tree", "default:aspen_tree", "default:aspen_tree"},
{"default:aspen_tree", "", "default:aspen_tree"},
{"default:aspen_tree", "default:aspen_tree", "default:aspen_tree"},
}
})
minetest.register_craft({
output = "moreblocks:sweeper 4",
recipe = {
{"default:junglegrass"},
{"default:stick"},
}
})
minetest.register_craft({
output = "moreblocks:stone_tile 9",
recipe = {
{"default:cobble", "default:cobble", "default:cobble"},
{"default:cobble", "default:stone", "default:cobble"},
{"default:cobble", "default:cobble", "default:cobble"},
}
})
minetest.register_craft({
output = "moreblocks:split_stone_tile",
recipe = {
{"moreblocks:stone_tile"},
}
})
minetest.register_craft({
output = "moreblocks:checker_stone_tile",
recipe = {
{"moreblocks:split_stone_tile"},
}
})
-- When approaching the below craft, loop back to cobblestone, which can then be used to craft stone tiles again
minetest.register_craft({
output = "default:cobble",
recipe = {
{"moreblocks:checker_stone_tile"},
}
})
minetest.register_craft({
output = "moreblocks:grey_bricks 2",
type = "shapeless",
recipe = {"default:stone", "default:brick"},
})
minetest.register_craft({
output = "moreblocks:grey_bricks 2",
type = "shapeless",
recipe = {"default:stonebrick", "default:brick"},
})
minetest.register_craft({
output = "moreblocks:empty_shelf",
type = "shapeless",
recipe = {"moreblocks:sweeper", "default:bookshelf"},
replacements = {{"default:bookshelf", "default:book 3"}},
-- When obtaining an empty shelf, return the books used in it as well
})
minetest.register_craft({
output = "moreblocks:empty_shelf",
type = "shapeless",
recipe = {"moreblocks:sweeper", "vessels:shelf"},
replacements = {{"vessels:shelf", "vessels:glass_bottle 3"}},
})
minetest.register_craft({
type = "shapeless",
output = "default:bookshelf",
recipe = {"moreblocks:empty_shelf", "default:book", "default:book", "default:book"},
})
minetest.register_craft({
output = "moreblocks:empty_shelf",
recipe = {
{"group:wood", "group:wood", "group:wood"},
{"", "", ""},
{"group:wood", "group:wood", "group:wood"},
}
})
minetest.register_craft({
output = "moreblocks:coal_stone_bricks 4",
recipe = {
{"moreblocks:coal_stone", "moreblocks:coal_stone"},
{"moreblocks:coal_stone", "moreblocks:coal_stone"},
}
})
minetest.register_craft({
output = "moreblocks:iron_stone_bricks 4",
recipe = {
{"moreblocks:iron_stone", "moreblocks:iron_stone"},
{"moreblocks:iron_stone", "moreblocks:iron_stone"},
}
})
minetest.register_craft({
output = "moreblocks:plankstone 4",
recipe = {
{"group:stone", "group:wood"},
{"group:wood", "group:stone"},
}
})
minetest.register_craft({
output = "moreblocks:plankstone 4",
recipe = {
{"group:wood", "group:stone"},
{"group:stone", "group:wood"},
}
})
minetest.register_craft({
output = "moreblocks:coal_checker 4",
recipe = {
{"default:stone", "default:coal_lump"},
{"default:coal_lump", "default:stone"},
}
})
minetest.register_craft({
output = "moreblocks:coal_checker 4",
recipe = {
{"default:coal_lump", "default:stone"},
{"default:stone", "default:coal_lump"},
}
})
minetest.register_craft({
output = "moreblocks:iron_checker 4",
recipe = {
{"default:steel_ingot", "default:stone"},
{"default:stone", "default:steel_ingot"},
}
})
minetest.register_craft({
output = "moreblocks:iron_checker 4",
recipe = {
{"default:stone", "default:steel_ingot"},
{"default:steel_ingot", "default:stone"},
}
})
minetest.register_craft({
output = "default:chest_locked",
type = "shapeless",
recipe = {"default:steel_ingot", "default:chest"},
})
minetest.register_craft({
output = "default:chest_locked",
type = "shapeless",
recipe = {"default:copper_ingot", "default:chest"},
})
minetest.register_craft({
output = "default:chest_locked",
type = "shapeless",
recipe = {"default:bronze_ingot", "default:chest"},
})
minetest.register_craft({
output = "default:chest_locked",
type = "shapeless",
recipe = {"default:gold_ingot", "default:chest"},
})
minetest.register_craft({
output = "moreblocks:iron_glass",
type = "shapeless",
recipe = {"default:steel_ingot", "default:glass"},
})
minetest.register_craft({
output = "default:glass",
type = "shapeless",
recipe = {"default:coal_lump", "moreblocks:iron_glass"},
})
minetest.register_craft({
output = "moreblocks:coal_glass",
type = "shapeless",
recipe = {"default:coal_lump", "default:glass"},
})
minetest.register_craft({
output = "default:glass",
type = "shapeless",
recipe = {"default:steel_ingot", "moreblocks:coal_glass"},
})
minetest.register_craft({
output = "moreblocks:clean_glass",
type = "shapeless",
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",
recipe = {"default:mese_crystal_fragment", "default:glass", "default:torch"},
})
minetest.register_craft({
output = "moreblocks:trap_glow_glass",
type = "shapeless",
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",
recipe = {"default:torch", "default:torch", "default:glass"},
})
minetest.register_craft({
output = "moreblocks:super_glow_glass",
type = "shapeless",
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",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "default:glass", "default:torch", "default:torch"},
})
minetest.register_craft({
output = "moreblocks:trap_super_glow_glass",
type = "shapeless",
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",
recipe = {"default:coal_lump", "default:stone"},
})
minetest.register_craft({
output = "default:stone",
type = "shapeless",
recipe = {"default:steel_ingot", "moreblocks:coal_stone"},
})
minetest.register_craft({
output = "moreblocks:iron_stone",
type = "shapeless",
recipe = {"default:steel_ingot", "default:stone"},
})
minetest.register_craft({
output = "default:stone",
type = "shapeless",
recipe = {"default:coal_lump", "moreblocks:iron_stone"},
})
minetest.register_craft({
output = "moreblocks:trap_stone",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "default:stone"},
})
minetest.register_craft({
output = "moreblocks:trap_desert_stone",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "default:desert_stone"},
})
minetest.register_craft({
output = "moreblocks:trap_glass",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "default:glass"},
})
minetest.register_craft({
output = "moreblocks:trap_obsidian_glass",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "default:obsidian_glass"},
})
minetest.register_craft({
output = "moreblocks:trap_obsidian",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "default:obsidian"},
})
minetest.register_craft({
output = "moreblocks:trap_sandstone",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "default:sandstone"},
})
minetest.register_craft({
output = "moreblocks:cactus_brick",
type = "shapeless",
recipe = {"default:cactus", "default:brick"},
})
minetest.register_craft({
output = "moreblocks:cactus_checker 4",
recipe = {
{"default:cactus", "default:stone"},
{"default:stone", "default:cactus"},
}
})
minetest.register_craft({
output = "moreblocks:cactus_checker 4",
recipe = {
{"default:stone", "default:cactus"},
{"default:cactus", "default:stone"},
}
})
minetest.register_craft({
output = "moreblocks:rope 3",
recipe = {
{"default:junglegrass"},
{"default:junglegrass"},
{"default:junglegrass"},
}
})
minetest.register_craft({
output = "moreblocks:dirt_compressed",
recipe = {
{'default:dirt', 'default:dirt', 'default:dirt'},
{'default:dirt', 'default:dirt', 'default:dirt'},
{'default:dirt', 'default:dirt', 'default:dirt'},
}
})
minetest.register_craft({
output = "default:dirt 9",
recipe = {{"moreblocks:dirt_compressed"}},
})
minetest.register_craft({
output = "moreblocks:cobble_compressed",
recipe = {
{"default:cobble", "default:cobble", "default:cobble"},
{"default:cobble", "default:cobble", "default:cobble"},
{"default:cobble", "default:cobble", "default:cobble"},
}
})
minetest.register_craft({
output = "default:cobble 9",
recipe = {
{"moreblocks:cobble_compressed"},
}
})
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",
})
minetest.register_craft({
type = "shapeless",
output = "moreblocks:copperpatina",
recipe = {"group:water_bucket", "default:copperblock"},
replacements = {
{"group:water_bucket", "bucket:bucket_empty"}
}
})
minetest.register_craft({
output = "default:copper_ingot 9",
recipe = {
{"moreblocks:copperpatina"},
}
})
if minetest.settings:get_bool("moreblocks.circular_saw_crafting") ~= false then -- “If nil or true then”
minetest.register_craft({
output = "moreblocks:circular_saw",
recipe = {
{ "", "default:steel_ingot", "" },
{ "group:wood", "group:wood", "group:wood"},
{ "group:wood", "", "group:wood"},
}
})
end

View File

@ -1,27 +0,0 @@
--[[
=====================================================================
** More Blocks **
By Calinou, with the help of ShadowNinja and VanessaE.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
=====================================================================
--]]
moreblocks = {}
local modpath = minetest.get_modpath("moreblocks")
moreblocks.S = minetest.get_translator("moreblocks")
dofile(modpath .. "/config.lua")
dofile(modpath .. "/sounds.lua")
dofile(modpath .. "/circular_saw.lua")
dofile(modpath .. "/stairsplus/init.lua")
if minetest.get_modpath("default") then
dofile(modpath .. "/nodes.lua")
dofile(modpath .. "/redefinitions.lua")
dofile(modpath .. "/crafting.lua")
dofile(modpath .. "/aliases.lua")
end

View File

@ -1,96 +0,0 @@
# textdomain: moreblocks
# Spanish translation for More Blocks.
# 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.
# Carlos Barraza 2020.
#: circular_saw.lua
Circular Saw=Sierra circular
Input material=Material de@nentrada
Left-over=Sobrante
Max=Maximo
Recycle output=Reciclar@nsalida
Set=Establecer
owned by @1=protegido por @1
Circular Saw is empty=La sierra circular está vacia
Circular Saw is working on @1=Sierra circular trabajando en @1
#: nodes.lua
Deprecated=Obsoleto
All-faces Acacia Tree=Árbol de Acacia, todas las caras
All-faces Aspen Tree=Álamo temblón, todas las caras
All-faces Jungle Tree=Árbol de Selva, todas las caras
All-faces Pine Tree=Pino, todas las caras
All-faces Tree=Tronco de Árbol
Cactus Brick=Ladrillos de Cactus
Cactus Checker=Cuadros de Cactus
Centered Wooden Tile=Parqué Centrado
Checker Stone Tile=Cuadros de Baldosa de Piedra
Circle Stone Bricks=Bloques de Piedra Circulares
Clean Glass=Cristal Limpio
Coal Checker=Cuadros de Carbón
Coal Glass=Cristal con Carbón
Clean Super Glow Glass=Cristal Súper Brillante Limpio
Trap Clean Super Glow Glass=Cristal Súper Brillante Limpio Falso
Trap Clean Glass=Cristal Limpio Falso
Clean Glow Glass=Cristal Brillante Limpio
Trap Clean Glow Glass=Cristal Brillante Limpio Falso
Coal Stone=Carbón y Piedra
Coal Stone Bricks=Ladrillos de Piedra de Carbon
Compressed Cobblestone=Adoquín Comprimido
Compressed Desert Cobblestone=Adoquín del Desierto Comprimido
Compressed Dirt=Tierra Comprimida
Copper Patina Block=Bloque de Pátina de Cobre
Empty Shelf=Estante vacio
Full Wooden Tile=Parqué Completo
Glow Glass=Cristal Brillante
Iron Checker=Cuadros de Hierro
Iron Glass=Cristal con Hierro
Iron Stone=Hierro y Piedra
Iron Stone Bricks=Ladrillo de Piedra de Hierro
Plankstone=Tablones de piedra
Rope=Soga
Split Stone Tile=Baldosas de Piedra Partida
Stone Bricks=Ladrillos de Piedra
Stone Tile=Baldosa de Piedra
Super Glow Glass=Cristal Súper Brillante
Sweeper=Limpiador
Tar=Alquitrán
Trap Desert Stone=Piedra del Desierto Falsa
Trap Glass=Cristal Falso
Trap Glow Glass=Cristal Brillante Falso
Trap Obsidian=Obsidiana Falsa
Trap Obsidian Glass=Vidrio de Obsidiana Falso
Trap Sandstone=Arenisca Falsa
Trap Stone=Piedra Falsa
Trap Super Glow Glass=Cristal Súper Brillante Falso
Wooden Tile=Parqué
Offset Wooden Tile=Parqué Ajustado
Downwards Wooden Tile=Parqué hacia Abajo
Leftwards Wooden Tile=Parqué hacia la Izquierda
Rightwards Wooden Tile=Parqué hacia la Derecha
#: ownership.lua
Sorry, @1 owns that spot.=Lo siento, @1 es dueño de ese lugar.
someone=alguien
#: stairsplus/common.lua
@1 Microblock=Microbloque de @1
@1 Slab=Losa de @1
@1 Slope=Pendiente de @1
@1 Panel=Panel de @1
@1 Stairs=Escalera de @1
#: stairsplus/registrations.lua
Concrete=Concreto
Cement=Cemento
Brass Block=Bloque de latón

View File

@ -1,93 +0,0 @@
# textdomain: moreblocks
# Polish translation for More Blocks.
# 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.
#: circular_saw.lua
Circular Saw=Piła tarczowa
Input material=wejście@nmateriał
Left-over=Resztki
Max=Maks
Recycle output=Przetwarzanie@nWyjście
Set=Ustaw
owned by @1=Należy do @1
Circular Saw is empty=Piła tarczowa jest pusta
Circular Saw is working on @1=Piła tarczowa pracuje na @1
#: init.lua
[moreblocks] loaded.=[moreblocks] załadowane.
#: nodes.lua
Deprecated=Przestarzałe
All-faces Acacia Tree=Wielostronna tekstura akacji
All-faces Aspen Tree=Wielostronna tekstura osiki
All-faces Jungle Tree=Wielostronna tekstura drzewa dżunglowego
All-faces Pine Tree=Wielostronna tekstura sosny
All-faces Tree=Wielostronna tekstura drzewa
Cactus Brick=Kaktusowa cegła
Cactus Checker=Kaktusowa szachownica
Centered Wooden Tile=Wyśrodkowany drewniany kafelek
Checker Stone Tile=Kamienna szachownica
Circle Stone Bricks=Okrągłe kamienne cegły
Clean Glass=Czyste szkło
Coal Checker=Węglowa szachownica
Coal Glass=Szkło węglowe
Clean Super Glow Glass=
Trap Clean Super Glow Glass=
Trap Clean Glass=
Clean Glow Glass=
Trap Clean Glow Glass=
Coal Stone=Kamień węglowy
Coal Stone Bricks=Węglowe kamienne cegły
Compressed Cobblestone=Skompresowany bruk
Compressed Desert Cobblestone=
Compressed Dirt=Skompresowana ziemia
Copper Patina Block=Blok patynowanej miedzi
Empty Shelf=Pusta półka
Full Wooden Tile=Pełny drewniany kafelek
Glow Glass=Świecące szkło
Iron Checker=Żelazna szachownica
Iron Glass=Żelazne szkło
Iron Stone=Żelazny kamień
Iron Stone Bricks=Żelazne kamienne cegły
Plankstone=Deskokamień
Rope=Lina
Split Stone Tile=Kamienny blok kafelkowy
Stone Bricks=Kamienne cegły
Stone Tile=Kamienny kafelek
Super Glow Glass=Super świecące szkło
Sweeper=Miotła
Tar=Smoła
Trap Desert Stone=Pułapka z pustynnego kamienia
Trap Glass=Szklana pułapka
Trap Glow Glass=Pułapka ze świecącego szkłą
Trap Obsidian=Obsydianowa pułapka
Trap Obsidian Glass=Pułapka z obsydianowego szkła
Trap Sandstone=Pułapka z piaskowca
Trap Stone=Kamienna pułapka
Trap Super Glow Glass=Pułapka z super świecącego szkła
Wooden Tile=Drewniany kafelek
Offset Wooden Tile=
Downwards Wooden Tile=Dolny drewniany kafelek
# @deprecated
Leftwards Wooden Tile=Lewy drewniany kafelek
# @deprecated
Rightwards Wooden Tile=Prawy drewniany kafelek
#: ownership.lua
Sorry, @1 owns that spot.=Przykro mi, to miejsce należy do @1
someone=ktoś
#: stairsplus/common.lua
@1 Microblock=@1 Mikroblok
@1 Slab=@1 Płyta
@1 Slope=@1 Spad
@1 Panel=@1 Panel
@1 Stairs=@1 Schody

View File

@ -1,89 +0,0 @@
# textdomain: moreblocks
#: circular_saw.lua
Circular Saw=
Input material=
Left-over=
Max=
Recycle output=
Set=
owned by @1=
Circular Saw is empty=
Circular Saw is working on @1=
#: nodes.lua
Deprecated=
All-faces Acacia Tree=
All-faces Aspen Tree=
All-faces Jungle Tree=
All-faces Pine Tree=
All-faces Tree=
Cactus Brick=
Cactus Checker=
Centered Wooden Tile=
Checker Stone Tile=
Circle Stone Bricks=
Clean Glass=
Coal Checker=
Coal Glass=
Clean Super Glow Glass=
Trap Clean Super Glow Glass=
Trap Clean Glass=
Clean Glow Glass=
Trap Clean Glow Glass=
Coal Stone=
Coal Stone Bricks=
Compressed Cobblestone=
Compressed Desert Cobblestone=
Compressed Dirt=
Copper Patina Block=
Empty Shelf=
Full Wooden Tile=
Glow Glass=
Iron Checker=
Iron Glass=
Iron Stone=
Iron Stone Bricks=
Plankstone=
Rope=
Split Stone Tile=
Stone Bricks=
Stone Tile=
Super Glow Glass=
Sweeper=
Tar=
Trap Desert Stone=
Trap Glass=
Trap Glow Glass=
Trap Obsidian=
Trap Obsidian Glass=
Trap Sandstone=
Trap Stone=
Trap Super Glow Glass=
Wooden Tile=
Offset Wooden Tile=
Downwards Wooden Tile=
Leftwards Wooden Tile=
Rightwards Wooden Tile=
#: ownership.lua
Sorry, @1 owns that spot.=
someone=
#: stairsplus/common.lua
@1 Microblock=
@1 Slab=
@1 Slope=
@1 Panel=
@1 Stairs=
#: stairsplus/registrations.lua
Concrete=
Cement=
Brass Block=

View File

@ -1,94 +0,0 @@
# textdomain: moreblocks
# zh_CN 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.
#: circular_saw.lua
Circular Saw=圆锯
Input material=输入@n材料
Left-over=剩余材料
Max=最大值
Recycle output=回收@n输出物
Set=设置
owned by @1=属于@1所有
Circular Saw is empty=圆锯是空的
Circular Saw is working on @1=圆锯正在加工@1
#: nodes.lua
Deprecated=弃用
All-faces Acacia Tree=全切面相思树木方块
All-faces Aspen Tree=全切面白杨树木方块
All-faces Jungle Tree=全切面丛林树木方块
All-faces Pine Tree=全切面松树木方块
All-faces Tree=全切面树木方块
Cactus Brick=仙人掌砖
Cactus Checker=仙人掌棋盘方块
Centered Wooden Tile=居中的木瓦
Checker Stone Tile=棋盘石瓦
Circle Stone Bricks=圆石砖
Clean Glass=干净的玻璃
Coal Checker=棋盘煤块
Coal Glass=煤玻璃
Clean Super Glow Glass=
Trap Clean Super Glow Glass=
Trap Clean Glass=
Clean Glow Glass=
Trap Clean Glow Glass=
Coal Stone=煤炭石
Coal Stone Bricks=煤炭石砖
Compressed Cobblestone=压缩圆石
Compressed Desert Cobblestone=
Compressed Dirt=压缩土
Copper Patina Block=铜绿方块
Empty Shelf=空书架
Full Wooden Tile=全木瓦
Glow Glass=发光玻璃
Iron Checker=棋盘铁方块
Iron Glass=铁玻璃
Iron Stone=铁石
Iron Stone Bricks=铁石砖
Plankstone=板石
Rope=绳子
Split Stone Tile=裂石砖
Stone Bricks=石砖
Stone Tile=石瓦
Super Glow Glass=超级发光玻璃
Sweeper=清扫器
Tar=焦油
Trap Desert Stone=陷阱沙漠石
Trap Glass=陷阱玻璃
Trap Glow Glass=陷阱发光玻璃
Trap Obsidian=陷阱黑耀石
Trap Obsidian Glass=陷阱黑耀石玻璃
Trap Sandstone=陷阱沙石
Trap Stone=陷阱石
Trap Super Glow Glass=陷阱超级发光玻璃
Wooden Tile=木瓦
Offset Wooden Tile=胶合木瓦
Downwards Wooden Tile=向下的木瓦
Leftwards Wooden Tile=向左的木瓦
Rightwards Wooden Tile=向右的木瓦
#: ownership.lua
Sorry, @1 owns that spot.=抱歉,那个位置是@1的。
someone=某人
#: stairsplus/common.lua
@1 Microblock=@1小方块
@1 Slab=@1台阶
@1 Slope=@1斜坡
@1 Panel=@1嵌板
@1 Stairs=@1楼梯
#: stairsplus/registrations.lua
Concrete=
Cement=
Brass Block=

View File

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

6
modpack.conf Normal file
View File

@ -0,0 +1,6 @@
name = moreblocks
title = More Blocks
description = Adds various blocks to the game.
author = Hugo Locurcio
min_minetest_version = 5.5.0

30
moreblocks/.luacheckrc Normal file
View File

@ -0,0 +1,30 @@
std = "lua51+luajit+minetest+moreblocks"
unused_args = false
max_line_length = 120
stds.minetest = {
read_globals = {
"DIR_DELIM",
"minetest",
"core",
"dump",
"vector",
"nodeupdate",
"VoxelManip",
"VoxelArea",
"PseudoRandom",
"ItemStack",
"default",
"table",
}
}
stds.moreblocks = {
globals = {
"moreblocks",
},
read_globals = {
"default",
"stairsplus",
},
}

View File

@ -59,6 +59,10 @@ minetest.register_alias("moreblocks:splitstonesquare","moreblocks:split_stone_ti
minetest.register_alias("moreblocks:allfacestree", "moreblocks:all_faces_tree")
minetest.register_alias("moreblocks:empty_bookshelf", "moreblocks:empty_shelf")
minetest.register_alias("moreblocks:split_stone_tile_alt", "moreblocks:checker_stone_tile")
minetest.register_alias("moreblocks:wood_tile_flipped", "moreblocks:wood_tile")
minetest.register_alias("moreblocks:wood_tile_down", "moreblocks:wood_tile_offset")
minetest.register_alias("moreblocks:wood_tile_left", "moreblocks:wood_tile_offset")
minetest.register_alias("moreblocks:wood_tile_right", "moreblocks:wood_tile_offset")
-- ABM for horizontal trees (fix facedir):
local horizontal_tree_convert_facedir = {7, 12, 9, 18}
@ -96,7 +100,8 @@ minetest.register_lbm({
minetest.set_node(pos, {name = "moreblocks:wood_tile_offset", param2 = 2})
elseif node.name:find("right") then
minetest.set_node(pos, {name = "moreblocks:wood_tile_offset", param2 = 3})
else -- wood_tile_flipped
else
-- wood_tile_flipped
minetest.set_node(pos, {name = "moreblocks:wood_tile", param2 = 1})
end
minetest.log('action', "LBM replaced " .. node.name ..

View File

@ -0,0 +1,28 @@
local S = moreblocks.S
function moreblocks.api.register_all_faces(mod, name, base, redef)
local def = table.copy(minetest.registered_nodes[base])
def.tiles = {def.tiles[1]}
def.description = S("All-faces @1", def.description)
if def.short_description then
def.short_description = S("All-faces @1", def.short_description)
end
redef = redef or {}
for k, v in pairs(redef) do
def[k] = v
end
local itemstring = ("%s:%s"):format(mod, name)
moreblocks.api.register_node_with_stairs(mod, name, def)
minetest.register_craft({
output = itemstring .. " 8",
recipe = {
{base, base, base},
{base, "", base},
{base, base, base},
}
})
end

4
moreblocks/api/init.lua Normal file
View File

@ -0,0 +1,4 @@
moreblocks.api = {}
moreblocks.dofile("api", "all_faces")
moreblocks.dofile("api", "trap")

40
moreblocks/api/trap.lua Normal file
View File

@ -0,0 +1,40 @@
local S = moreblocks.S
local cm = moreblocks.resources.craft_materials
function moreblocks.api.register_trap(mod, name, base, redef)
local def = table.copy(minetest.registered_nodes[base])
def.description = S("Trap @1", def.description)
if def.short_description then
def.short_description = S("Trap @1", def.short_description)
end
for i, tile in ipairs(def.tiles) do
def.tiles[i] = tile .. "^moreblocks_trap_box.png"
end
if def.drawtype ~= "glasslike_framed_optional" then
def.drawtype = "glasslike_framed"
end
def.walkable = false
def.paramtype = "light"
def.is_ground_content = false
redef = redef or {}
for k, v in pairs(redef) do
def[k] = v
end
local itemstring = ("%s:%s"):format(mod, name)
minetest.register_node(itemstring, def)
if cm.trap_material then
minetest.register_craft({
output = itemstring,
type = "shapeless",
recipe = {cm.trap_material, base},
})
end
end

581
moreblocks/crafting.lua Normal file
View File

@ -0,0 +1,581 @@
--[[
More Blocks: crafting recipes
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
local cm = moreblocks.resources.craft_materials
if cm.stick and cm.dry_shrub then
minetest.register_craft({
output = cm.stick,
recipe = {{cm.dry_shrub}, }
})
end
if cm.stick then
minetest.register_craft({
output = cm.stick,
recipe = {{"group:sapling"}, }
})
end
if cm.stick and cm.wood then
minetest.register_craft({
output = cm.wood,
recipe = {
{cm.stick, cm.stick},
{cm.stick, cm.stick},
}
})
end
if cm.dirt_with_grass and cm.jungle_grass and cm.dirt then
minetest.register_craft({
output = cm.dirt_with_grass,
type = "shapeless",
recipe = {cm.jungle_grass, cm.dirt},
})
end
if cm.mossy_cobble and cm.jungle_grass and cm.cobble then
minetest.register_craft({
output = cm.mossy_cobble,
type = "shapeless",
recipe = {cm.jungle_grass, cm.cobble},
})
end
minetest.register_craft({
output = "moreblocks:wood_tile 9",
recipe = {
{"group:wood", "group:wood", "group:wood"},
{"group:wood", "group:wood", "group:wood"},
{"group:wood", "group:wood", "group:wood"},
}
})
-- This must be registered after `moreblocks:wood_tile` to avoid recipe conflicts,
-- since `moreblocks:wood_tile` is part of `group:wood`
minetest.register_craft({
output = "moreblocks:wood_tile_center 9",
recipe = {
{"group:wood", "group:wood", "group:wood"},
{"group:wood", "moreblocks:wood_tile", "group:wood"},
{"group:wood", "group:wood", "group:wood"},
}
})
minetest.register_craft({
type = "shapeless",
output = "moreblocks:wood_tile",
recipe = {"moreblocks:wood_tile_flipped"}
})
minetest.register_craft({
output = "moreblocks:wood_tile_full 4",
recipe = {
{"moreblocks:wood_tile", "moreblocks:wood_tile"},
{"moreblocks:wood_tile", "moreblocks:wood_tile"},
}
})
if cm.stick then
minetest.register_craft({
output = "moreblocks:wood_tile_offset",
recipe = {
{cm.stick},
{"moreblocks:wood_tile_center"},
}
})
end
minetest.register_craft({
type = "shapeless",
output = "moreblocks:wood_tile_offset",
recipe = {"moreblocks:wood_tile_down"}
})
minetest.register_craft({
type = "shapeless",
output = "moreblocks:wood_tile_offset",
recipe = {"moreblocks:wood_tile_left"}
})
minetest.register_craft({
type = "shapeless",
output = "moreblocks:wood_tile_offset",
recipe = {"moreblocks:wood_tile_right"}
})
if cm.stone and cm.coal_lump then
minetest.register_craft({
output = "moreblocks:circle_stone_bricks 5",
recipe = {
{"", cm.stone, ""},
{cm.stone, cm.coal_lump, cm.stone},
{"", cm.stone, ""},
}
})
end
if cm.jungle_grass and cm.stick then
minetest.register_craft({
output = "moreblocks:sweeper 4",
recipe = {
{cm.jungle_grass},
{cm.stick},
}
})
end
if cm.cobble and cm.stone then
minetest.register_craft({
output = "moreblocks:stone_tile 9",
recipe = {
{cm.cobble, cm.cobble, cm.cobble},
{cm.cobble, cm.stone, cm.cobble},
{cm.cobble, cm.cobble, cm.cobble},
}
})
end
minetest.register_craft({
output = "moreblocks:split_stone_tile",
recipe = {
{"moreblocks:stone_tile"},
}
})
minetest.register_craft({
output = "moreblocks:checker_stone_tile",
recipe = {
{"moreblocks:split_stone_tile"},
}
})
-- When approaching the below craft, loop back to cobblestone, which can then be used to craft stone tiles again
if cm.cobble then
minetest.register_craft({
output = cm.cobble,
recipe = {
{"moreblocks:checker_stone_tile"},
}
})
end
if cm.stone and cm.brick then
minetest.register_craft({
output = "moreblocks:grey_bricks 2",
type = "shapeless",
recipe = {cm.stone, cm.brick},
})
end
if cm.stone_brick and cm.brick then
minetest.register_craft({
output = "moreblocks:grey_bricks 2",
type = "shapeless",
recipe = {cm.stone_brick, cm.brick},
})
end
if cm.bookshelf and cm.book then
minetest.register_craft({
output = "moreblocks:empty_shelf",
type = "shapeless",
recipe = {"moreblocks:sweeper", cm.bookshelf},
replacements = {{cm.bookshelf, cm.book .. " 3"}},
-- When obtaining an empty shelf, return the books used in it as well
})
end
if cm.vessels_shelf and cm.glass_bottle then
minetest.register_craft({
output = "moreblocks:empty_shelf",
type = "shapeless",
recipe = {"moreblocks:sweeper", cm.vessels_shelf},
replacements = {{cm.vessels_shelf, cm.glass_bottle .. " 3"}},
})
end
if cm.book and cm.bookshelf then
minetest.register_craft({
type = "shapeless",
output = cm.bookshelf,
recipe = {"moreblocks:empty_shelf", cm.book, cm.book, cm.book},
})
end
minetest.register_craft({
output = "moreblocks:empty_shelf",
recipe = {
{"group:wood", "group:wood", "group:wood"},
{"", "", ""},
{"group:wood", "group:wood", "group:wood"},
}
})
minetest.register_craft({
output = "moreblocks:coal_stone_bricks 4",
recipe = {
{"moreblocks:coal_stone", "moreblocks:coal_stone"},
{"moreblocks:coal_stone", "moreblocks:coal_stone"},
}
})
minetest.register_craft({
output = "moreblocks:iron_stone_bricks 4",
recipe = {
{"moreblocks:iron_stone", "moreblocks:iron_stone"},
{"moreblocks:iron_stone", "moreblocks:iron_stone"},
}
})
minetest.register_craft({
output = "moreblocks:plankstone 4",
recipe = {
{"group:stone", "group:wood"},
{"group:wood", "group:stone"},
}
})
minetest.register_craft({
output = "moreblocks:plankstone 4",
recipe = {
{"group:wood", "group:stone"},
{"group:stone", "group:wood"},
}
})
if cm.coal_lump and cm.stone then
minetest.register_craft({
output = "moreblocks:coal_checker 4",
recipe = {
{cm.stone, cm.coal_lump},
{cm.coal_lump, cm.stone},
}
})
minetest.register_craft({
output = "moreblocks:coal_checker 4",
recipe = {
{cm.coal_lump, cm.stone},
{cm.stone, cm.coal_lump},
}
})
end
if cm.steel_ingot and cm.stone then
minetest.register_craft({
output = "moreblocks:iron_checker 4",
recipe = {
{cm.steel_ingot, cm.stone},
{cm.stone, cm.steel_ingot},
}
})
minetest.register_craft({
output = "moreblocks:iron_checker 4",
recipe = {
{cm.stone, cm.steel_ingot},
{cm.steel_ingot, cm.stone},
}
})
end
if cm.chest and cm.chest_locked then
if cm.steel_ingot then
minetest.register_craft({
output = cm.chest_locked,
type = "shapeless",
recipe = {cm.steel_ingot, cm.chest},
})
end
if cm.copper_ingot then
minetest.register_craft({
output = cm.chest_locked,
type = "shapeless",
recipe = {cm.copper_ingot, cm.chest},
})
end
if cm.bronze_ingot then
minetest.register_craft({
output = cm.chest_locked,
type = "shapeless",
recipe = {cm.bronze_ingot, cm.chest},
})
end
if cm.gold_ingot then
minetest.register_craft({
output = cm.chest_locked,
type = "shapeless",
recipe = {cm.gold_ingot, cm.chest},
})
end
end
if cm.glass and cm.steel_ingot then
minetest.register_craft({
output = "moreblocks:iron_glass",
type = "shapeless",
recipe = {cm.steel_ingot, cm.glass},
})
minetest.register_craft({
output = cm.glass,
type = "shapeless",
recipe = {cm.steel_ingot, "moreblocks:coal_glass"},
})
end
if cm.glass and cm.coal_lump then
minetest.register_craft({
output = cm.glass,
type = "shapeless",
recipe = {cm.coal_lump, "moreblocks:iron_glass"},
})
minetest.register_craft({
output = "moreblocks:coal_glass",
type = "shapeless",
recipe = {cm.coal_lump, cm.glass},
})
end
if cm.glass then
minetest.register_craft({
output = "moreblocks:clean_glass",
type = "shapeless",
recipe = {"moreblocks:sweeper", cm.glass},
})
end
minetest.register_craft({
output = "moreblocks:trap_clean_glass",
type = "shapeless",
recipe = {"moreblocks:sweeper", "moreblocks:trap_glass"},
})
if cm.glass and cm.torch then
minetest.register_craft({
output = "moreblocks:glow_glass",
type = "shapeless",
recipe = {cm.torch, cm.glass},
})
end
if cm.torch then
minetest.register_craft({
output = "moreblocks:clean_glow_glass",
type = "shapeless",
recipe = {cm.torch, "moreblocks:clean_glass"},
})
end
minetest.register_craft({
output = "moreblocks:clean_glow_glass",
type = "shapeless",
recipe = {"moreblocks:sweeper", "moreblocks:glow_glass"},
})
minetest.register_craft({
output = "moreblocks:trap_clean_glow_glass",
type = "shapeless",
recipe = {"moreblocks:sweeper", "moreblocks:trap_glow_glass"},
})
if cm.torch and cm.glass then
minetest.register_craft({
output = "moreblocks:super_glow_glass",
type = "shapeless",
recipe = {cm.torch, cm.torch, cm.glass},
})
end
if cm.torch then
minetest.register_craft({
output = "moreblocks:super_glow_glass",
type = "shapeless",
recipe = {cm.torch, "moreblocks:glow_glass"},
})
minetest.register_craft({
output = "moreblocks:clean_super_glow_glass",
type = "shapeless",
recipe = {cm.torch, cm.torch, "moreblocks:clean_glass"},
})
minetest.register_craft({
output = "moreblocks:clean_super_glow_glass",
type = "shapeless",
recipe = {cm.torch, "moreblocks:clean_glow_glass"},
})
end
minetest.register_craft({
output = "moreblocks:clean_super_glow_glass",
type = "shapeless",
recipe = {"moreblocks:sweeper", "moreblocks:super_glow_glass"},
})
minetest.register_craft({
output = "moreblocks:trap_clean_super_glow_glass",
type = "shapeless",
recipe = {"moreblocks:sweeper", "moreblocks:trap_super_glow_glass"},
})
if cm.coal_lump and cm.stone then
minetest.register_craft({
output = "moreblocks:coal_stone",
type = "shapeless",
recipe = {cm.coal_lump, cm.stone},
})
minetest.register_craft({
output = cm.stone,
type = "shapeless",
recipe = {cm.coal_lump, "moreblocks:iron_stone"},
})
end
if cm.stone and cm.steel_ingot then
minetest.register_craft({
output = cm.stone,
type = "shapeless",
recipe = {cm.steel_ingot, "moreblocks:coal_stone"},
})
minetest.register_craft({
output = "moreblocks:iron_stone",
type = "shapeless",
recipe = {cm.steel_ingot, cm.stone},
})
end
if cm.cactus and cm.brick then
minetest.register_craft({
output = "moreblocks:cactus_brick",
type = "shapeless",
recipe = {cm.cactus, cm.brick},
})
end
if cm.cactus and cm.stone then
minetest.register_craft({
output = "moreblocks:cactus_checker 4",
recipe = {
{cm.cactus, cm.stone},
{cm.stone, cm.cactus},
}
})
minetest.register_craft({
output = "moreblocks:cactus_checker 4",
recipe = {
{cm.stone, cm.cactus},
{cm.cactus, cm.stone},
}
})
end
if cm.jungle_grass then
minetest.register_craft({
output = "moreblocks:rope 3",
recipe = {
{cm.jungle_grass},
{cm.jungle_grass},
{cm.jungle_grass},
}
})
end
if cm.dirt then
minetest.register_craft({
output = "moreblocks:dirt_compressed",
recipe = {
{cm.dirt, cm.dirt, cm.dirt},
{cm.dirt, cm.dirt, cm.dirt},
{cm.dirt, cm.dirt, cm.dirt},
}
})
minetest.register_craft({
output = cm.dirt .. " 9",
recipe = {{"moreblocks:dirt_compressed"}},
})
end
if cm.cobble then
minetest.register_craft({
output = "moreblocks:cobble_compressed",
recipe = {
{cm.cobble, cm.cobble, cm.cobble},
{cm.cobble, cm.cobble, cm.cobble},
{cm.cobble, cm.cobble, cm.cobble},
}
})
minetest.register_craft({
output = cm.cobble .. " 9",
recipe = {
{"moreblocks:cobble_compressed"},
}
})
end
if cm.desert_cobble then
minetest.register_craft({
output = "moreblocks:desert_cobble_compressed",
recipe = {
{cm.desert_cobble, cm.desert_cobble, cm.desert_cobble},
{cm.desert_cobble, cm.desert_cobble, cm.desert_cobble},
{cm.desert_cobble, cm.desert_cobble, cm.desert_cobble},
}
})
minetest.register_craft({
output = cm.desert_cobble .. " 9",
recipe = {
{"moreblocks:desert_cobble_compressed"},
}
})
end
if cm.pine_tree then
minetest.register_craft({
type = "cooking", output = "moreblocks:tar", recipe = cm.pine_tree,
})
end
if cm.copper_block and cm.bucket_empty then
minetest.register_craft({
type = "shapeless",
output = "moreblocks:copperpatina",
recipe = {"group:water_bucket", cm.copper_block},
replacements = {
{"group:water_bucket", cm.bucket_empty}
}
})
end
if cm.copper_block then
minetest.register_craft({
type = "shapeless",
output = "moreblocks:copperpatina",
recipe = {"group:water", cm.copper_block},
})
end
if cm.copper_ingot then
minetest.register_craft({
output = cm.copper_ingot .. " 9",
recipe = {
{"moreblocks:copperpatina"},
}
})
end

47
moreblocks/init.lua Normal file
View File

@ -0,0 +1,47 @@
--[[
=====================================================================
** More Blocks **
By Calinou, with the help of ShadowNinja and VanessaE.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
=====================================================================
--]]
local modname = minetest.get_current_modname()
local modpath = minetest.get_modpath(modname)
local S = minetest.get_translator(modname)
moreblocks = {
version = {3, 0, 0},
fork = "minetest_mods",
modname = modname,
modpath = modpath,
S = S,
has = {
bucket = minetest.get_modpath("bucket"),
default = minetest.get_modpath("default"),
stairsplus = minetest.get_modpath("stairsplus"),
vessels = minetest.get_modpath("vessels"),
},
log = function(level, messagefmt, ...)
return minetest.log(level, ("[%s] %s"):format(modname, messagefmt:format(...)))
end,
dofile = function(...)
return dofile(table.concat({modpath, ...}, DIR_DELIM) .. ".lua")
end,
}
moreblocks.dofile("settings")
moreblocks.dofile("resources", "init")
moreblocks.dofile("api", "init")
moreblocks.dofile("items")
moreblocks.dofile("nodes")
moreblocks.dofile("redefinitions") -- FLUX TODO what is this doing and why
moreblocks.dofile("crafting")
moreblocks.dofile("aliases")

7
moreblocks/items.lua Normal file
View File

@ -0,0 +1,7 @@
-- Items
local S = moreblocks.S
minetest.register_craftitem("moreblocks:sweeper", {
description = S("Sweeper"),
inventory_image = "moreblocks_sweeper.png",
})

View File

@ -6,30 +6,13 @@
# Xanthin, 2014.
# CodeXP <codexp@gmx.net>, 2018.
#: circular_saw.lua
Circular Saw=Kreissäge
Input material=Ausgangs-@nmaterial
Left-over=Rest
Max=Anzahl
Recycle output=Wiederver-@nwerten
Set=Ok
owned by @1=gehört @1
Circular Saw is empty=Kreissäge ist leer
Circular Saw is working on @1=Kreissäge arbeitet mit @1
#: init.lua
[moreblocks] loaded.=[moreblocks] geladen.
#: nodes.lua
Deprecated=veraltet
All-faces Acacia Tree=allseitiger Akazienbaumstamm
All-faces Aspen Tree=allseitiger Espenbaumstamm
All-faces Jungle Tree=allseitiger Tropenbaumstamm
All-faces Pine Tree=allseitiger Kieferbaumstamm
All-faces Tree=allseitiger Baumstamm
All-faces @1=allseitiger @1
Cactus Brick=Kaktusziegel
Cactus Checker=Kaktus-Mosaik
Centered Wooden Tile=Holzfliese mittig
@ -39,10 +22,8 @@ Clean Glass=Klares Glas
Coal Checker=Kohlen-Mosaik
Coal Glass=Kohleglas
Clean Super Glow Glass=
Trap Clean Super Glow Glass=
Trap Clean Glass=
Trap @1=@1falle
Clean Glow Glass=
Trap Clean Glow Glass=
Coal Stone=Kohlestein
Coal Stone Bricks=Kohlesteinziegel
Compressed Cobblestone=Gepresster Kopfsteinpflaster
@ -64,29 +45,5 @@ Stone Tile=Steinfliese
Super Glow Glass=Superleuchtglas
Sweeper=Besen
Tar=Teer
Trap Desert Stone=Wüstensteinfalle
Trap Glass=Glasfalle
Trap Glow Glass=Leuchtglasfalle
Trap Obsidian=Obsidianfalle
Trap Obsidian Glass=Obsidianglasfalle
Trap Sandstone=Sandsteinfalle
Trap Stone=Steinfalle
Trap Super Glow Glass=Superleuchtglasfalle
Wooden Tile=Holzfliese
Offset Wooden Tile=Holzfliese versetzt
Downwards Wooden Tile=Holzfliese unten
Leftwards Wooden Tile=Holzfliese links
Rightwards Wooden Tile=Holzfliese rechts
#: ownership.lua
Sorry, @1 owns that spot.=Tut mir leid, dieser Bereich gehört @1.
someone=jemand
#: stairsplus/common.lua
@1 Microblock=@1mikroblock
@1 Slab=@1platte
@1 Slope=@1neigung
@1 Panel=@1paneel
@1 Stairs=@1treppe

View File

@ -0,0 +1,46 @@
# textdomain: moreblocks
# Spanish translation for More Blocks.
# 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.
# Carlos Barraza 2020.
#: nodes.lua
All-faces @1=@1, todas las caras
Cactus Brick=Ladrillos de Cactus
Cactus Checker=Cuadros de Cactus
Centered Wooden Tile=Parqué Centrado
Checker Stone Tile=Cuadros de Baldosa de Piedra
Circle Stone Bricks=Bloques de Piedra Circulares
Clean Glass=Cristal Limpio
Coal Checker=Cuadros de Carbón
Coal Glass=Cristal con Carbón
Clean Super Glow Glass=Cristal Súper Brillante Limpio
Trap @1=@1 Falso
Clean Glow Glass=Cristal Brillante Limpio
Coal Stone=Carbón y Piedra
Coal Stone Bricks=Ladrillos de Piedra de Carbon
Compressed Cobblestone=Adoquín Comprimido
Compressed Desert Cobblestone=Adoquín del Desierto Comprimido
Compressed Dirt=Tierra Comprimida
Copper Patina Block=Bloque de Pátina de Cobre
Empty Shelf=Estante vacio
Full Wooden Tile=Parqué Completo
Glow Glass=Cristal Brillante
Iron Checker=Cuadros de Hierro
Iron Glass=Cristal con Hierro
Iron Stone=Hierro y Piedra
Iron Stone Bricks=Ladrillo de Piedra de Hierro
Plankstone=Tablones de piedra
Rope=Soga
Split Stone Tile=Baldosas de Piedra Partida
Stone Bricks=Ladrillos de Piedra
Stone Tile=Baldosa de Piedra
Super Glow Glass=Cristal Súper Brillante
Sweeper=Limpiador
Tar=Alquitrán
Wooden Tile=Parqué
Offset Wooden Tile=Parqué Ajustado

View File

@ -7,30 +7,13 @@
# Jat15, 2013.
# CodeXP <codexp@gmx.net>, 2018.
#: circular_saw.lua
Circular Saw=Scie circulaire
Input material=Matériau@nd'entrée
Left-over=Reste
Max=Max
Recycle output=Sortie à@nrecycler
Set=Définir
owned by @1=propriété de @1
Circular Saw is empty=Scie circulaire vide
Circular Saw is working on @1=Scie circulaire manipulant @1
#: init.lua
[moreblocks] loaded.=[moreblocks] a été chargé.
#: nodes.lua
Deprecated=déprécié
All-faces Acacia Tree=Tronc d'arbre d'acacia (toutes faces)
All-faces Aspen Tree=Tronc d'arbre de peuplier (toutes faces)
All-faces Jungle Tree=Tronc d'arbre de jungle (toutes faces)
All-faces Pine Tree=Tronc d'arbre de pin (toutes faces)
All-faces Tree=Tronc d'arbre (toutes faces)
All-faces @1=@1 (toutes faces)
Cactus Brick=Briques de cactus
Cactus Checker=Damier en cactus
Centered Wooden Tile=Dalle en bois centrée
@ -40,10 +23,8 @@ Clean Glass=Verre propre
Coal Checker=Damier en charbon
Coal Glass=Verre de charbon
Clean Super Glow Glass=
Trap Clean Super Glow Glass=
Trap Clean Glass=
Trap @1=@1 traversable
Clean Glow Glass=
Trap Clean Glow Glass=
Coal Stone=Pierre de charbon
Coal Stone Bricks=Briques en pierre de charbon
Compressed Cobblestone=Pierre taillée compressée
@ -65,29 +46,5 @@ Stone Tile=Dalle en pierre
Super Glow Glass=Verre très brillant
Sweeper=Balai
Tar=Bitume
Trap Desert Stone=Pierre du désert traversable
Trap Glass=Verre traversable
Trap Glow Glass=Verre brillant traversable
Trap Obsidian=Obsidienne traversable
Trap Obsidian Glass=Verre d'obsidienne traversable
Trap Sandstone=Grès traversable
Trap Stone=Pierre traversable
Trap Super Glow Glass=Verre très brillant traversable
Wooden Tile=Dalle en bois
Offset Wooden Tile=Dalle en bois décalée
Downwards Wooden Tile=Dalle en bois vers le bas
Leftwards Wooden Tile=Dalle en bois vers la gauche
Rightwards Wooden Tile=Dalle en bois vers la droite
#: ownership.lua
Sorry, @1 owns that spot.=Désolé, @1 possède cet endroit.
someone=quelqu'un
#: stairsplus/common.lua
@1 Microblock=Microbloc en @1
@1 Slab=Demi-dalle en @1
@1 Slope=Pente en @1
@1 Panel=Barre en @1
@1 Stairs=Escaliers en @1

View File

@ -6,30 +6,13 @@
# Emon, 2016.
# CodeXP <codexp@gmx.net>, 2018.
#: circular_saw.lua
Circular Saw=Sega circolare
Input material=Materiale@niniziale
Left-over=Scarto
Max=Max.
Recycle output=Ricicla@nfinale
Set=Imp.
owned by @1=
Circular Saw is empty=Sega circolare, vuota
Circular Saw is working on @1=Sega circolare, in funzione su @1
#: init.lua
[moreblocks] loaded.=[moreblocks] caricato.
#: nodes.lua
Deprecated=
All-faces Acacia Tree=
All-faces Aspen Tree=
All-faces Jungle Tree=
All-faces Pine Tree=
All-faces Tree=Albero su ogni lato
All-faces @1=@1 su ogni lato
Cactus Brick=Mattoni di cactus
Cactus Checker=Scacchiera in cactus
Centered Wooden Tile=Mattonella in legno centrata
@ -39,10 +22,8 @@ Clean Glass=Vetro pulito
Coal Checker=Scacchiera in carbone
Coal Glass=Vetro e carbone
Clean Super Glow Glass=
Trap Clean Super Glow Glass=
Trap Clean Glass=
Trap @1=@1 trappola
Clean Glow Glass=
Trap Clean Glow Glass=
Coal Stone=Pietra in carbone
Coal Stone Bricks=Mattoni di pietra in carbone
Compressed Cobblestone=
@ -64,29 +45,5 @@ Stone Tile=Mattonella in pietra
Super Glow Glass=Super vetro luminoso
Sweeper=Spazzola
Tar=
Trap Desert Stone=
Trap Glass=Vetro trappola
Trap Glow Glass=Vetro luminoso trappola
Trap Obsidian=
Trap Obsidian Glass=
Trap Sandstone=
Trap Stone=Pietra trappola
Trap Super Glow Glass=Super vetro luminoso trappola
Wooden Tile=Mattonella in legno
Offset Wooden Tile=
Downwards Wooden Tile=
Leftwards Wooden Tile=
Rightwards Wooden Tile=
#: ownership.lua
Sorry, @1 owns that spot.=Spiacente, quel punto è di proprietà di @1
someone=qualcuno
#: stairsplus/common.lua
@1 Microblock=Microblocco @1
@1 Slab=Lastra - @1
@1 Slope=
@1 Panel=Pannello - @1
@1 Stairs=Scale - @1

View File

@ -0,0 +1,49 @@
# textdomain: moreblocks
# Polish translation for More Blocks.
# 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.
#: init.lua
[moreblocks] loaded.=[moreblocks] załadowane.
#: nodes.lua
All-faces @1=Wielostronna tekstura @1
Cactus Brick=Kaktusowa cegła
Cactus Checker=Kaktusowa szachownica
Centered Wooden Tile=Wyśrodkowany drewniany kafelek
Checker Stone Tile=Kamienna szachownica
Circle Stone Bricks=Okrągłe kamienne cegły
Clean Glass=Czyste szkło
Coal Checker=Węglowa szachownica
Coal Glass=Szkło węglowe
Clean Super Glow Glass=
Trap @1=@1 pułapka
Clean Glow Glass=
Coal Stone=Kamień węglowy
Coal Stone Bricks=Węglowe kamienne cegły
Compressed Cobblestone=Skompresowany bruk
Compressed Desert Cobblestone=
Compressed Dirt=Skompresowana ziemia
Copper Patina Block=Blok patynowanej miedzi
Empty Shelf=Pusta półka
Full Wooden Tile=Pełny drewniany kafelek
Glow Glass=Świecące szkło
Iron Checker=Żelazna szachownica
Iron Glass=Żelazne szkło
Iron Stone=Żelazny kamień
Iron Stone Bricks=Żelazne kamienne cegły
Plankstone=Deskokamień
Rope=Lina
Split Stone Tile=Kamienny blok kafelkowy
Stone Bricks=Kamienne cegły
Stone Tile=Kamienny kafelek
Super Glow Glass=Super świecące szkło
Sweeper=Miotła
Tar=Smoła
Wooden Tile=Drewniany kafelek
Offset Wooden Tile=

View File

@ -9,28 +9,13 @@
#: circular_saw.lua
Circular Saw=циркулярная пила
Input material=Входной@nматериал
Left-over=Остатки
Max=Кол.
Recycle output=Пере-@nобработка
Set=ОК
owned by @1=принадлежит @1
Circular Saw is empty=циркулярная пила пустая
Circular Saw is working on @1=циркулярная пила, @1 в обработке
#: init.lua
[MOD] moreblocks loaded.=[MOD] moreblocks загружен.
#: nodes.lua
Deprecated=устаревший
All-faces Acacia Tree=всестороннее бревно акации
All-faces Aspen Tree=всестороннее бревно осины
All-faces Jungle Tree=всестороннее бревно дерева джунглей
All-faces Pine Tree=всестороннее бревно сосновое
All-faces Tree=всестороннее бревно дерева
All-faces @1=всестороннее бревно @1
Cactus Brick=кирпич из кактуса
Cactus Checker=мозаика из кактуса
Centered Wooden Tile=деревянная мозаика (центр)
@ -40,10 +25,8 @@ Clean Glass=чистое стекло
Coal Checker=угольная мозаика
Coal Glass=угольное стекло
Clean Super Glow Glass=
Trap Clean Super Glow Glass=
Trap Clean Glass=
Trap @1=мнимое @1
Clean Glow Glass=
Trap Clean Glow Glass=
Coal Stone=угольный камень
Coal Stone Bricks=угольно-каменный кирпич
Compressed Cobblestone=прессованный булыжник
@ -65,31 +48,5 @@ Stone Tile=каменная плитка
Super Glow Glass=супер светящееся стекло
Sweeper=метёлка
Tar=смола
Trap Desert Stone=мнимый пустынный камень
Trap Glass=мнимое стекло
Trap Glow Glass=мнимое светящееся стекло
Trap Obsidian=мнимый обсидиан
Trap Obsidian Glass=мнимое обсидиановое стекло
Trap Sandstone=мнимый песчаник
Trap Stone=мнимый камень
Trap Super Glow Glass=мнимое супер светящееся стекло
Wooden Tile=деревянная мозаика
Offset Wooden Tile=деревянная мозаика (сверху)
# @deprecated
Downwards Wooden Tile=деревянная мозаика (снизу)
# @deprecated
Leftwards Wooden Tile=деревянная мозаика (слева)
# @deprecated
Rightwards Wooden Tile=деревянная мозаика (справа)
#: ownership.lua
Sorry, @1 owns that spot.=Извините, это принадлежит @1.
someone=кому-то
#: stairsplus/common.lua
@1 Microblock=@1 (микроблок)
@1 Slab=@1 (плита)
@1 Slope=@1 (наклон)
@1 Panel=@1 (панель)
@1 Stairs=@1 (лестница)

View File

@ -0,0 +1,39 @@
# textdomain: moreblocks
#: nodes.lua
All-faces @1=
Cactus Brick=
Cactus Checker=
Centered Wooden Tile=
Checker Stone Tile=
Circle Stone Bricks=
Clean Glass=
Coal Checker=
Coal Glass=
Clean Super Glow Glass=
Trap @1=
Clean Glow Glass=
Coal Stone=
Coal Stone Bricks=
Compressed Cobblestone=
Compressed Desert Cobblestone=
Compressed Dirt=
Copper Patina Block=
Empty Shelf=
Full Wooden Tile=
Glow Glass=
Iron Checker=
Iron Glass=
Iron Stone=
Iron Stone Bricks=
Plankstone=
Rope=
Split Stone Tile=
Stone Bricks=
Stone Tile=
Super Glow Glass=
Sweeper=
Tar=
Wooden Tile=
Offset Wooden Tile=

View File

@ -0,0 +1,44 @@
# textdomain: moreblocks
# zh_CN 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.
#: nodes.lua
All-faces @1=全切面@1树木方块
Cactus Brick=仙人掌砖
Cactus Checker=仙人掌棋盘方块
Centered Wooden Tile=居中的木瓦
Checker Stone Tile=棋盘石瓦
Circle Stone Bricks=圆石砖
Clean Glass=干净的玻璃
Coal Checker=棋盘煤块
Coal Glass=煤玻璃
Clean Super Glow Glass=
Trap @1=陷阱@1
Clean Glow Glass=
Coal Stone=煤炭石
Coal Stone Bricks=煤炭石砖
Compressed Cobblestone=压缩圆石
Compressed Desert Cobblestone=
Compressed Dirt=压缩土
Copper Patina Block=铜绿方块
Empty Shelf=空书架
Full Wooden Tile=全木瓦
Glow Glass=发光玻璃
Iron Checker=棋盘铁方块
Iron Glass=铁玻璃
Iron Stone=铁石
Iron Stone Bricks=铁石砖
Plankstone=板石
Rope=绳子
Split Stone Tile=裂石砖
Stone Bricks=石砖
Stone Tile=石瓦
Super Glow Glass=超级发光玻璃
Sweeper=清扫器
Tar=焦油
Wooden Tile=木瓦
Offset Wooden Tile=胶合木瓦

View File

@ -19,12 +19,7 @@ Circular Saw is working on @1=圓鋸正在加工@1
#: nodes.lua
Deprecated=棄用
All-faces Acacia Tree=全切面相思樹木方塊
All-faces Aspen Tree=全切面白楊樹木方塊
All-faces Jungle Tree=全切面叢林樹木方塊
All-faces Pine Tree=全切面松樹木方塊
All-faces Tree=全切面樹木方塊
All-faces @1=全切面@1樹木方塊
Cactus Brick=仙人掌磚
Cactus Checker=仙人掌棋盤方塊
Centered Wooden Tile=居中的木瓦
@ -34,10 +29,8 @@ Clean Glass=乾淨的玻璃
Coal Checker=棋盤煤塊
Coal Glass=煤玻璃
Clean Super Glow Glass=
Trap Clean Super Glow Glass=
Trap Clean Glass=
Trap @1=陷阱@1
Clean Glow Glass=
Trap Clean Glow Glass=
Coal Stone=煤炭石
Coal Stone Bricks=煤炭石磚
Compressed Cobblestone=壓縮圓石
@ -59,36 +52,5 @@ Stone Tile=石瓦
Super Glow Glass=超級發光玻璃
Sweeper=清掃器
Tar=焦油
Trap Desert Stone=陷阱沙漠石
Trap Glass=陷阱玻璃
Trap Glow Glass=陷阱發光玻璃
Trap Obsidian=陷阱黑耀石
Trap Obsidian Glass=陷阱黑耀石玻璃
Trap Sandstone=陷阱沙石
Trap Stone=陷阱石
Trap Super Glow Glass=陷阱超級發光玻璃
Wooden Tile=木瓦
Offset Wooden Tile=膠合木瓦
Downwards Wooden Tile=向下的木瓦
Leftwards Wooden Tile=向左的木瓦
Rightwards Wooden Tile=向右的木瓦
#: ownership.lua
Sorry, @1 owns that spot.=抱歉,那個位置是@1的。
someone=某人
#: stairsplus/common.lua
@1 Microblock=@1小方塊
@1 Slab=@1臺階
@1 Slope=@1斜坡
@1 Panel=@1嵌板
@1 Stairs=@1樓梯
#: stairsplus/registrations.lua
Concrete=
Cement=
Brass Block=

5
moreblocks/mod.conf Normal file
View File

@ -0,0 +1,5 @@
name = moreblocks
title = More Blocks
description = Adds various blocks to the game.
optional_depends = bucket, default, stairsplus, vessels
min_minetest_version = 5.5.0

440
moreblocks/nodes.lua Normal file
View File

@ -0,0 +1,440 @@
--[[
More Blocks: node definitions
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
local S = moreblocks.S
local cm = moreblocks.resources.craft_materials
local t = moreblocks.resources.textures
local sound_dirt = moreblocks.resources.sounds.dirt
local sound_wood = moreblocks.resources.sounds.wood
local sound_stone = moreblocks.resources.sounds.stone
local sound_glass = moreblocks.resources.sounds.glass
local sound_leaves = moreblocks.resources.sounds.leaves
local sound_metal = moreblocks.resources.sounds.metal
local function tile_tiles(tex)
return {tex, tex, tex, tex, tex .. "^[transformR90", tex .. "^[transformR90"}
end
local function register_with_stairs(name, def)
local itemstring = "moreblocks:" .. name
def.tiles = def.tiles or {"moreblocks_" .. name .. ".png"}
moreblocks.api.register_node_with_stairs("moreblocks", name, def)
minetest.register_alias(name, itemstring)
end
local function register_no_stairs(name, def)
local itemstring = "moreblocks:" .. name
def.tiles = def.tiles or {"moreblocks_" .. name .. ".png"}
minetest.register_node(itemstring, def)
minetest.register_alias(name, itemstring)
end
local function register_all_faces(name, base)
name = "all_faces_" .. name
local itemstring = "moreblocks:" .. name
moreblocks.api.register_all_faces("moreblocks", name, base)
minetest.register_alias(name, itemstring)
end
local function register_trap(name, base)
name = "trap_" .. name
local itemstring = "moreblocks:" .. name
moreblocks.api.register_trap("moreblocks", name, base)
minetest.register_alias(name, itemstring)
end
register_with_stairs("wood_tile", {
description = S("Wooden Tile"),
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
is_ground_content = false,
paramtype2 = "facedir",
place_param2 = 0,
tiles = tile_tiles(("%s^moreblocks_wood_tile.png"):format(t.wood)),
sounds = sound_wood,
})
register_with_stairs("wood_tile_center", {
description = S("Centered Wooden Tile"),
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
is_ground_content = false,
tiles = {
("%s^moreblocks_wood_tile_center.png"):format(t.wood)
},
sounds = sound_wood,
})
register_with_stairs("wood_tile_full", {
description = S("Full Wooden Tile"),
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
is_ground_content = false,
tiles = tile_tiles("moreblocks_wood_tile_full.png"),
sounds = sound_wood,
})
register_no_stairs("wood_tile_offset", {
description = S("Offset Wooden Tile"),
paramtype2 = "facedir",
place_param2 = 0,
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
is_ground_content = false,
tiles = {
("%s^moreblocks_wood_tile_offset.png"):format(t.wood)
},
sounds = sound_wood,
})
register_with_stairs("circle_stone_bricks", {
description = S("Circle Stone Bricks"),
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
})
register_with_stairs("grey_bricks", {
description = S("Stone Bricks"),
paramtype2 = "facedir",
place_param2 = 0,
groups = {cracky = 3},
is_ground_content = false,
sounds = sound_stone,
})
register_with_stairs("coal_stone_bricks", {
description = S("Coal Stone Bricks"),
paramtype2 = "facedir",
place_param2 = 0,
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
})
register_with_stairs("iron_stone_bricks", {
description = S("Iron Stone Bricks"),
paramtype2 = "facedir",
place_param2 = 0,
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
})
register_with_stairs("stone_tile", {
description = S("Stone Tile"),
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
})
register_with_stairs("split_stone_tile", {
description = S("Split Stone Tile"),
paramtype2 = "facedir",
place_param2 = 0,
tiles = {
"moreblocks_split_stone_tile_top.png",
"moreblocks_split_stone_tile.png"
},
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
})
register_with_stairs("checker_stone_tile", {
description = S("Checker Stone Tile"),
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
})
register_with_stairs("tar", {
description = S("Tar"),
groups = {cracky = 2, tar_block = 1},
is_ground_content = false,
sounds = sound_stone,
})
register_with_stairs("dirt_compressed", {
description = S("Compressed Dirt"),
groups = {crumbly = 2},
is_ground_content = false,
sounds = sound_dirt,
})
register_with_stairs("cobble_compressed", {
description = S("Compressed Cobblestone"),
groups = {cracky = 1},
is_ground_content = false,
sounds = sound_stone,
})
register_with_stairs("desert_cobble_compressed", {
description = S("Compressed Desert Cobblestone"),
groups = {cracky = 1},
is_ground_content = false,
sounds = sound_stone,
})
register_with_stairs("plankstone", {
description = S("Plankstone"),
paramtype2 = "facedir",
place_param2 = 0,
groups = {cracky = 3},
is_ground_content = false,
tiles = tile_tiles("moreblocks_plankstone.png"),
sounds = sound_stone,
})
register_with_stairs("iron_glass", {
description = S("Iron Glass"),
drawtype = "glasslike_framed_optional",
tiles = {
("%s^[colorize:#DEDEDE"):format(t.glass),
("%s^[colorize:#DEDEDE"):format(t.glass_detail)
},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
})
register_with_stairs("coal_glass", {
description = S("Coal Glass"),
drawtype = "glasslike_framed_optional",
tiles = {
("%s^[colorize:#828282"):format(t.glass),
("%s^[colorize:#828282"):format(t.glass_detail)
},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
})
register_with_stairs("clean_glass", {
description = S("Clean Glass"),
drawtype = "glasslike_framed_optional",
tiles = {
"moreblocks_clean_glass.png",
"moreblocks_clean_glass_detail.png"
},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
})
register_with_stairs("cactus_brick", {
description = S("Cactus Brick"),
paramtype2 = "facedir",
place_param2 = 0,
groups = {cracky = 3},
is_ground_content = false,
sounds = sound_stone,
})
register_with_stairs("cactus_checker", {
description = S("Cactus Checker"),
groups = {stone = 1, cracky = 3},
is_ground_content = false,
tiles = tile_tiles(("%s^moreblocks_cactus_checker.png"):format(t.stone)),
sounds = sound_stone,
})
register_no_stairs("empty_shelf", {
description = S("Empty Shelf"),
paramtype2 = "facedir",
tiles = {
t.wood,
t.wood,
t.wood,
t.wood,
"moreblocks_empty_shelf.png",
"moreblocks_empty_shelf.png"
},
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
is_ground_content = false,
sounds = sound_wood,
furnace_burntime = 15,
})
register_with_stairs("coal_stone", {
description = S("Coal Stone"),
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
})
register_with_stairs("iron_stone", {
description = S("Iron Stone"),
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
})
register_with_stairs("coal_checker", {
description = S("Coal Checker"),
tiles = tile_tiles(("%s^moreblocks_coal_checker.png"):format(t.stone)),
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
})
register_with_stairs("iron_checker", {
description = S("Iron Checker"),
tiles = tile_tiles(("%s^moreblocks_iron_checker.png"):format(t.stone)),
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
})
register_with_stairs("glow_glass", {
description = S("Glow Glass"),
drawtype = "glasslike_framed_optional",
tiles = {
("%s^[colorize:#E9CD61"):format(t.glass),
("%s^[colorize:#E9CD61"):format(t.glass_detail)
},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
light_source = 11,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
})
register_with_stairs("super_glow_glass", {
description = S("Super Glow Glass"),
drawtype = "glasslike_framed_optional",
tiles = {
("%s^[colorize:#FFFF78"):format(t.glass),
("%s^[colorize:#FFFF78"):format(t.glass_detail)
},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
light_source = minetest.LIGHT_MAX,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
})
register_with_stairs("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 = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
light_source = 11,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
})
register_with_stairs("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 = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
light_source = minetest.LIGHT_MAX,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
})
register_with_stairs("copperpatina", {
description = S("Copper Patina Block"),
groups = {cracky = 1, level = 2},
is_ground_content = false,
sounds = sound_metal,
})
register_no_stairs("rope", {
description = S("Rope"),
drawtype = "signlike",
inventory_image = "moreblocks_rope.png",
wield_image = "moreblocks_rope.png",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
paramtype2 = "wallmounted",
walkable = false,
climbable = true,
selection_box = {type = "wallmounted", },
groups = {snappy = 3, flammable = 2},
sounds = sound_leaves,
})
register_trap("clean_glass", "moreblocks:clean_glass")
register_trap("clean_glow_glass", "moreblocks:clean_glow_glass")
register_trap("clean_super_glow_glass", "moreblocks:clean_super_glow_glass")
if cm.stone then
register_trap("stone", cm.stone)
end
if cm.desert_stone then
register_trap("desert_stone", cm.desert_stone)
end
if cm.glass then
register_trap("glass", cm.glass)
register_trap("glow_glass", "moreblocks:glow_glass")
register_trap("super_glow_glass", "moreblocks:super_glow_glass")
end
if cm.obsidian_glass then
register_trap("obsidian_glass", cm.obsidian_glass)
end
if cm.obsidian then
register_trap("obsidian", cm.obsidian)
end
if cm.obsidian then
register_trap("obsidian", cm.obsidian)
end
if cm.sandstone then
register_trap("sandstone", cm.sandstone)
end
if cm.tree then
register_all_faces("tree", cm.tree)
end
if cm.jungle_tree then
register_all_faces("jungle_tree", cm.jungle_tree)
end
if cm.pine_tree then
register_all_faces("pine_tree", cm.pine_tree)
end
if cm.acacia_tree then
register_all_faces("acacia_tree", cm.acacia_tree)
end
if cm.aspen_tree then
register_all_faces("aspen_tree", cm.aspen_tree)
end

View File

@ -83,9 +83,21 @@ local increase_craft_production_table = function(map_table)
end
increase_craft_production_table({
{ function(n) return n:match('^default:sign_wall') end, function(old) return old + 1 end },
{ function(n) return n == 'default:paper' end, function(old) return old*4 end },
{ function(n) return n:match('^carts:.*rail$') or n:match('^default:.*rail$') end, function(old) return old + old/2 end },
{function(n)
return n:match('^default:sign_wall')
end, function(old)
return old + 1
end},
{function(n)
return n == 'default:paper'
end, function(old)
return old * 4
end},
{function(n)
return n:match('^carts:.*rail$') or n:match('^default:.*rail$')
end, function(old)
return old + old / 2
end},
})
minetest.register_craft({

9
moreblocks/settings.lua Normal file
View File

@ -0,0 +1,9 @@
--[[
More Blocks: configuration handling
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
moreblocks.settings = {
}

View File

Before

Width:  |  Height:  |  Size: 697 B

After

Width:  |  Height:  |  Size: 697 B

View File

Before

Width:  |  Height:  |  Size: 685 B

After

Width:  |  Height:  |  Size: 685 B

View File

Before

Width:  |  Height:  |  Size: 299 B

After

Width:  |  Height:  |  Size: 299 B

View File

Before

Width:  |  Height:  |  Size: 446 B

After

Width:  |  Height:  |  Size: 446 B

View File

Before

Width:  |  Height:  |  Size: 574 B

After

Width:  |  Height:  |  Size: 574 B

View File

Before

Width:  |  Height:  |  Size: 474 B

After

Width:  |  Height:  |  Size: 474 B

View File

Before

Width:  |  Height:  |  Size: 439 B

After

Width:  |  Height:  |  Size: 439 B

View File

Before

Width:  |  Height:  |  Size: 170 B

After

Width:  |  Height:  |  Size: 170 B

View File

Before

Width:  |  Height:  |  Size: 96 B

After

Width:  |  Height:  |  Size: 96 B

View File

Before

Width:  |  Height:  |  Size: 738 B

After

Width:  |  Height:  |  Size: 738 B

View File

Before

Width:  |  Height:  |  Size: 163 B

After

Width:  |  Height:  |  Size: 163 B

View File

Before

Width:  |  Height:  |  Size: 229 B

After

Width:  |  Height:  |  Size: 229 B

View File

Before

Width:  |  Height:  |  Size: 481 B

After

Width:  |  Height:  |  Size: 481 B

View File

Before

Width:  |  Height:  |  Size: 356 B

After

Width:  |  Height:  |  Size: 356 B

View File

Before

Width:  |  Height:  |  Size: 258 B

After

Width:  |  Height:  |  Size: 258 B

View File

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

Before

Width:  |  Height:  |  Size: 269 B

After

Width:  |  Height:  |  Size: 269 B

View File

Before

Width:  |  Height:  |  Size: 207 B

After

Width:  |  Height:  |  Size: 207 B

View File

Before

Width:  |  Height:  |  Size: 167 B

After

Width:  |  Height:  |  Size: 167 B

View File

Before

Width:  |  Height:  |  Size: 167 B

After

Width:  |  Height:  |  Size: 167 B

View File

Before

Width:  |  Height:  |  Size: 725 B

After

Width:  |  Height:  |  Size: 725 B

View File

Before

Width:  |  Height:  |  Size: 739 B

After

Width:  |  Height:  |  Size: 739 B

View File

Before

Width:  |  Height:  |  Size: 167 B

After

Width:  |  Height:  |  Size: 167 B

View File

Before

Width:  |  Height:  |  Size: 229 B

After

Width:  |  Height:  |  Size: 229 B

View File

Before

Width:  |  Height:  |  Size: 483 B

After

Width:  |  Height:  |  Size: 483 B

View File

Before

Width:  |  Height:  |  Size: 115 B

After

Width:  |  Height:  |  Size: 115 B

View File

Before

Width:  |  Height:  |  Size: 144 B

After

Width:  |  Height:  |  Size: 144 B

View File

Before

Width:  |  Height:  |  Size: 335 B

After

Width:  |  Height:  |  Size: 335 B

View File

Before

Width:  |  Height:  |  Size: 354 B

After

Width:  |  Height:  |  Size: 354 B

View File

Before

Width:  |  Height:  |  Size: 352 B

After

Width:  |  Height:  |  Size: 352 B

View File

Before

Width:  |  Height:  |  Size: 272 B

After

Width:  |  Height:  |  Size: 272 B

View File

Before

Width:  |  Height:  |  Size: 278 B

After

Width:  |  Height:  |  Size: 278 B

View File

Before

Width:  |  Height:  |  Size: 271 B

After

Width:  |  Height:  |  Size: 271 B

View File

Before

Width:  |  Height:  |  Size: 169 B

After

Width:  |  Height:  |  Size: 169 B

View File

Before

Width:  |  Height:  |  Size: 309 B

After

Width:  |  Height:  |  Size: 309 B

View File

Before

Width:  |  Height:  |  Size: 266 B

After

Width:  |  Height:  |  Size: 266 B

View File

Before

Width:  |  Height:  |  Size: 88 B

After

Width:  |  Height:  |  Size: 88 B

View File

Before

Width:  |  Height:  |  Size: 117 B

After

Width:  |  Height:  |  Size: 117 B

View File

Before

Width:  |  Height:  |  Size: 286 B

After

Width:  |  Height:  |  Size: 286 B

View File

Before

Width:  |  Height:  |  Size: 387 B

After

Width:  |  Height:  |  Size: 387 B

View File

Before

Width:  |  Height:  |  Size: 281 B

After

Width:  |  Height:  |  Size: 281 B

View File

Before

Width:  |  Height:  |  Size: 433 B

After

Width:  |  Height:  |  Size: 433 B

View File

Before

Width:  |  Height:  |  Size: 282 B

After

Width:  |  Height:  |  Size: 282 B

577
nodes.lua
View File

@ -1,577 +0,0 @@
--[[
More Blocks: node definitions
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
local S = moreblocks.S
local sound_dirt = moreblocks.node_sound_dirt_defaults()
local sound_wood = moreblocks.node_sound_wood_defaults()
local sound_stone = moreblocks.node_sound_stone_defaults()
local sound_glass = moreblocks.node_sound_glass_defaults()
local sound_leaves = moreblocks.node_sound_leaves_defaults()
-- Don't break on 0.4.14 and earlier.
local sound_metal = (moreblocks.node_sound_metal_defaults
and moreblocks.node_sound_metal_defaults() or sound_stone)
local function tile_tiles(name)
local tex = "moreblocks_" ..name.. ".png"
return {tex, tex, tex, tex, tex.. "^[transformR90", tex.. "^[transformR90"}
end
local function wood_tile_replace(itemstack, placer, pointed_thing)
local substack
if itemstack:get_name() == "moreblocks:wood_tile_flipped" then
substack = ItemStack("moreblocks:wood_tile")
else -- right, left, and down variants
substack = ItemStack("moreblocks:wood_tile_offset")
end
local _, success = minetest.item_place(substack, placer, pointed_thing)
if success then
itemstack:take_item()
end
return itemstack
end
local deprecated = (" ("..S('Deprecated')..")")
local nodes = {
["wood_tile"] = {
description = S("Wooden Tile"),
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
is_ground_content = false,
paramtype2 = "facedir",
place_param2 = 0,
tiles = {"default_wood.png^moreblocks_wood_tile.png",
"default_wood.png^moreblocks_wood_tile.png",
"default_wood.png^moreblocks_wood_tile.png",
"default_wood.png^moreblocks_wood_tile.png",
"default_wood.png^moreblocks_wood_tile.png^[transformR90",
"default_wood.png^moreblocks_wood_tile.png^[transformR90"},
sounds = sound_wood,
},
["wood_tile_flipped"] = {
description = S("Wooden Tile") .. deprecated,
tiles = {"default_wood.png^moreblocks_wood_tile.png^[transformR90",
"default_wood.png^moreblocks_wood_tile.png^[transformR90",
"default_wood.png^moreblocks_wood_tile.png^[transformR90",
"default_wood.png^moreblocks_wood_tile.png^[transformR90",
"default_wood.png^moreblocks_wood_tile.png^[transformR180",
"default_wood.png^moreblocks_wood_tile.png^[transformR180"},
no_stairs = true,
on_place = wood_tile_replace
},
["wood_tile_center"] = {
description = S("Centered Wooden Tile"),
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
is_ground_content = false,
tiles = {"default_wood.png^moreblocks_wood_tile_center.png"},
sounds = sound_wood,
},
["wood_tile_full"] = {
description = S("Full Wooden Tile"),
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
is_ground_content = false,
tiles = tile_tiles("wood_tile_full"),
sounds = sound_wood,
},
["wood_tile_offset"] = {
description = S("Offset Wooden Tile"),
paramtype2 = "facedir",
place_param2 = 0,
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
is_ground_content = false,
tiles = {"default_wood.png^moreblocks_wood_tile_offset.png"},
sounds = sound_wood,
no_stairs = true,
},
["wood_tile_down"] = {
description = S("Downwards Wooden Tile") .. deprecated,
tiles = {"default_wood.png^[transformR180^moreblocks_wood_tile_offset.png^[transformR180"},
no_stairs = true,
on_place = wood_tile_replace
},
["wood_tile_left"] = {
description = S("Leftwards Wooden Tile") .. deprecated,
tiles = {"default_wood.png^[transformR270^moreblocks_wood_tile_offset.png^[transformR270"},
no_stairs = true,
on_place = wood_tile_replace
},
["wood_tile_right"] = {
description = S("Rightwards Wooden Tile") .. deprecated,
tiles = {"default_wood.png^[transformR90^moreblocks_wood_tile_offset.png^[transformR90"},
no_stairs = true,
on_place = wood_tile_replace
},
["circle_stone_bricks"] = {
description = S("Circle Stone Bricks"),
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["grey_bricks"] = {
description = S("Stone Bricks"),
paramtype2 = "facedir",
place_param2 = 0,
groups = {cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["coal_stone_bricks"] = {
description = S("Coal Stone Bricks"),
paramtype2 = "facedir",
place_param2 = 0,
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["iron_stone_bricks"] = {
description = S("Iron Stone Bricks"),
paramtype2 = "facedir",
place_param2 = 0,
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["stone_tile"] = {
description = S("Stone Tile"),
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["split_stone_tile"] = {
description = S("Split Stone Tile"),
paramtype2 = "facedir",
place_param2 = 0,
tiles = {"moreblocks_split_stone_tile_top.png",
"moreblocks_split_stone_tile.png"},
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["checker_stone_tile"] = {
description = S("Checker Stone Tile"),
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["tar"] = {
description = S("Tar"),
groups = {cracky=2, tar_block=1},
is_ground_content = false,
sounds = sound_stone,
},
["dirt_compressed"] = {
description = S("Compressed Dirt"),
groups = {crumbly=2},
is_ground_content = false,
sounds = sound_dirt,
},
["cobble_compressed"] = {
description = S("Compressed Cobblestone"),
groups = {cracky = 1},
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",
place_param2 = 0,
groups = {cracky = 3},
is_ground_content = false,
tiles = tile_tiles("plankstone"),
sounds = sound_stone,
},
["iron_glass"] = {
description = S("Iron Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png^[colorize:#DEDEDE", "default_glass_detail.png^[colorize:#DEDEDE"},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
},
["coal_glass"] = {
description = S("Coal Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png^[colorize:#828282", "default_glass_detail.png^[colorize:#828282"},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
},
["clean_glass"] = {
description = S("Clean Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"moreblocks_clean_glass.png", "moreblocks_clean_glass_detail.png"},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
},
["cactus_brick"] = {
description = S("Cactus Brick"),
paramtype2 = "facedir",
place_param2 = 0,
groups = {cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["cactus_checker"] = {
description = S("Cactus Checker"),
groups = {stone = 1, cracky = 3},
is_ground_content = false,
tiles = {"default_stone.png^moreblocks_cactus_checker.png",
"default_stone.png^moreblocks_cactus_checker.png",
"default_stone.png^moreblocks_cactus_checker.png",
"default_stone.png^moreblocks_cactus_checker.png",
"default_stone.png^moreblocks_cactus_checker.png^[transformR90",
"default_stone.png^moreblocks_cactus_checker.png^[transformR90"},
sounds = sound_stone,
},
["empty_shelf"] = {
description = S("Empty Shelf"),
paramtype2 = "facedir",
tiles = {"default_wood.png", "default_wood.png", "default_wood.png",
"default_wood.png", "moreblocks_empty_shelf.png", "moreblocks_empty_shelf.png"},
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
is_ground_content = false,
sounds = sound_wood,
furnace_burntime = 15,
no_stairs = true,
},
["coal_stone"] = {
description = S("Coal Stone"),
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["iron_stone"] = {
description = S("Iron Stone"),
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["coal_checker"] = {
description = S("Coal Checker"),
tiles = {"default_stone.png^moreblocks_coal_checker.png",
"default_stone.png^moreblocks_coal_checker.png",
"default_stone.png^moreblocks_coal_checker.png",
"default_stone.png^moreblocks_coal_checker.png",
"default_stone.png^moreblocks_coal_checker.png^[transformR90",
"default_stone.png^moreblocks_coal_checker.png^[transformR90"},
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["iron_checker"] = {
description = S("Iron Checker"),
tiles = {"default_stone.png^moreblocks_iron_checker.png",
"default_stone.png^moreblocks_iron_checker.png",
"default_stone.png^moreblocks_iron_checker.png",
"default_stone.png^moreblocks_iron_checker.png",
"default_stone.png^moreblocks_iron_checker.png^[transformR90",
"default_stone.png^moreblocks_iron_checker.png^[transformR90"},
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["trap_stone"] = {
description = S("Trap Stone"),
drawtype = "glasslike_framed",
tiles = {"default_stone.png^moreblocks_trap_box.png"},
walkable = false,
groups = {cracky = 3},
paramtype = "light",
is_ground_content = false,
sounds = sound_stone,
no_stairs = true,
},
["trap_desert_stone"] = {
description = S("Trap Desert Stone"),
drawtype = "glasslike_framed",
tiles = {"default_desert_stone.png^moreblocks_trap_box.png"},
walkable = false,
groups = {cracky = 3},
paramtype = "light",
is_ground_content = false,
sounds = sound_stone,
no_stairs = true,
},
["trap_glass"] = {
description = S("Trap Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png^moreblocks_trap_box_glass.png", "default_glass_detail.png"},
use_texture_alpha = "clip",
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_obsidian_glass"] = {
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 = "clip",
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_obsidian"] = {
description = S("Trap Obsidian"),
drawtype = "glasslike_framed",
tiles = {"default_obsidian.png^moreblocks_trap_box.png"},
walkable = false,
groups = {cracky = 1, level = 2},
paramtype = "light",
is_ground_content = false,
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 = "clip",
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",
tiles = {"default_sandstone.png^moreblocks_trap_box.png"},
walkable = false,
groups = {crumbly = 1, cracky = 3},
paramtype = "light",
is_ground_content = false,
sounds = sound_stone,
no_stairs = true,
},
["all_faces_tree"] = {
description = S("All-faces Tree"),
tiles = {"default_tree_top.png"},
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
sounds = sound_wood,
furnace_burntime = 30,
},
["all_faces_jungle_tree"] = {
description = S("All-faces Jungle Tree"),
tiles = {"default_jungletree_top.png"},
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
sounds = sound_wood,
furnace_burntime = 38,
},
["all_faces_pine_tree"] = {
description = S("All-faces Pine Tree"),
tiles = {"default_pine_tree_top.png"},
groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3},
sounds = sound_wood,
furnace_burntime = 26,
},
["all_faces_acacia_tree"] = {
description = S("All-faces Acacia Tree"),
tiles = {"default_acacia_tree_top.png"},
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
sounds = sound_wood,
furnace_burntime = 34,
},
["all_faces_aspen_tree"] = {
description = S("All-faces Aspen Tree"),
tiles = {"default_aspen_tree_top.png"},
groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3},
sounds = sound_wood,
furnace_burntime = 22,
},
["glow_glass"] = {
description = S("Glow Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png^[colorize:#E9CD61", "default_glass_detail.png^[colorize:#E9CD61"},
use_texture_alpha = "clip",
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 = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
light_source = 11,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
},
["trap_glow_glass"] = {
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 = "clip",
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 = "clip",
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,
},
["super_glow_glass"] = {
description = S("Super Glow Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png^[colorize:#FFFF78", "default_glass_detail.png^[colorize:#FFFF78"},
use_texture_alpha = "clip",
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 = "clip",
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,
},
["trap_super_glow_glass"] = {
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 = "clip",
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 = "clip",
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,
},
["rope"] = {
description = S("Rope"),
drawtype = "signlike",
inventory_image = "moreblocks_rope.png",
wield_image = "moreblocks_rope.png",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
paramtype2 = "wallmounted",
walkable = false,
climbable = true,
selection_box = {type = "wallmounted",},
groups = {snappy = 3, flammable = 2},
sounds = sound_leaves,
no_stairs = true,
},
["copperpatina"] = {
description = S("Copper Patina Block"),
groups = {cracky = 1, level = 2},
is_ground_content = false,
sounds = sound_metal,
},
}
for name, def in pairs(nodes) do
def.tiles = def.tiles or {"moreblocks_" ..name.. ".png"}
minetest.register_node("moreblocks:" ..name, def)
minetest.register_alias(name, "moreblocks:" ..name)
def_copy = table.copy(def)
-- Use the primary tile for all sides of cut glasslike nodes.
-- This makes them easier to see
if
#def_copy.tiles > 1 and
def_copy.drawtype and
def_copy.drawtype == "glasslike_framed" or
def_copy.drawtype == "glasslike_framed_optional"
then
def.tiles = {def_copy.tiles[1]}
end
if not def.no_stairs then
local groups = {}
for k, v in pairs(def.groups) do groups[k] = v end
stairsplus:register_all("moreblocks", name, "moreblocks:" ..name, {
description = def.description,
groups = groups,
tiles = def.tiles,
sunlight_propagates = def.sunlight_propagates,
light_source = def.light_source,
sounds = def.sounds,
})
end
end
-- Items
minetest.register_craftitem("moreblocks:sweeper", {
description = S("Sweeper"),
inventory_image = "moreblocks_sweeper.png",
})

View File

@ -1,41 +0,0 @@
--[[
More Blocks: ownership handling
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
local S = moreblocks.S
function moreblocks.node_is_owned(pos, placer)
local ownername = false
if type(IsPlayerNodeOwner) == "function" then -- node_ownership mod
if HasOwner(pos, placer) then -- returns true if the node is owned
if not IsPlayerNodeOwner(pos, placer:get_player_name()) then
if type(getLastOwner) == "function" then -- ...is an old version
ownername = getLastOwner(pos)
elseif type(GetNodeOwnerName) == "function" then -- ...is a recent version
ownername = GetNodeOwnerName(pos)
else
ownername = S("someone")
end
end
end
elseif type(isprotect)=="function" then -- glomie's protection mod
if not isprotect(5, pos, placer) then
ownername = S("someone")
end
elseif type(protector)=="table" and type(protector.can_dig)=="function" then -- Zeg9's protection mod
if not protector.can_dig(5, pos, placer) then
ownername = S("someone")
end
end
if ownername ~= false then
minetest.chat_send_player( placer:get_player_name(), S("Sorry, @1 owns that spot.", ownername) )
return true
else
return false
end
end

View File

@ -0,0 +1,54 @@
moreblocks.resources.craft_materials = {}
if moreblocks.has.bucket then
table.insert_all(moreblocks.resources.craft_materials, {
bucket_empty = "bucket:bucket_empty",
})
end
if moreblocks.has.default then
table.insert_all(moreblocks.resources.craft_materials, {
acacia_tree = "default:acacia_tree",
aspen_tree = "default:aspen_tree",
book = "default:book",
bookshelf = "default:bookshelf",
brick = "default:brick",
bronze_ingot = "default:bronze_ingot",
cactus = "default:cactus",
chest = "default:chest",
chest_locked = "default:chest_locked",
coal_lump = "default:coal_lump",
cobble = "default:cobble",
copper_block = "default:copperblock",
copper_ingot = "default:copper_ingot",
desert_cobble = "default:desert_cobble",
desert_stone = "default:desert_stone",
dirt = "default:dirt",
dirt_with_grass = "default:dirt_with_grass",
dry_shrub = "default:dry_shrub",
glass = "default:glass",
gold_ingot = "default:gold_ingot",
jungle_grass = "default:junglegrass",
jungle_tree = "default:jungletree",
mossy_cobble = "default:mossycobble",
obsidian = "default:obsidian",
obsidian_glass = "default:obsidian_glass",
pine_tree = "default:pine_tree",
sandstone = "default:sandstone",
steel_ingot = "default:steel_ingot",
stick = "default:stick",
stone_brick = "default:stonebrick",
stone = "default:stone",
torch = "default:torch",
trap_material = "default:mese_crystal_fragment",
tree = "default:tree",
wood = "default:wood",
})
end
if moreblocks.has.vessels then
table.insert_all(moreblocks.resources.craft_materials, {
glass_bottle = "vessels:glass_bottle",
vessels_shelf = "vessels:shelf",
})
end

5
resources/init.lua Normal file
View File

@ -0,0 +1,5 @@
moreblocks.resources = {}
moreblocks.dofile("resources", "craft_materials")
moreblocks.dofile("resources", "sounds")
moreblocks.dofile("resources", "textures")

19
resources/sounds.lua Normal file
View File

@ -0,0 +1,19 @@
--[[
More Blocks: sound definitions
Copyright © 2011-2021 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
moreblocks.resources.sounds = {}
if moreblocks.has.default then
table.insert_all(moreblocks.resources.sounds, {
dirt = default.node_sound_dirt_defaults(),
glass = default.node_sound_glass_defaults(),
leaves = default.node_sound_leaves_defaults(),
metal = default.node_sound_metal_defaults(),
stone = default.node_sound_stone_defaults(),
wood = default.node_sound_wood_defaults(),
})
end

16
resources/textures.lua Normal file
View File

@ -0,0 +1,16 @@
moreblocks.resources.textures = {}
if moreblocks.has.default then
table.insert_all(moreblocks.resources.textures, {
wood = "default_wood.png",
glass = "default_glass.png",
glass_detail = "default_glass_detail.png",
stone = "default_stone.png",
desert_stone = "default_desert_stone.png",
obsidian_glass = "default_obsidian_glass.png",
obsidian_glass_detail = "default_obsidian_glass_detail.png",
obsidian = "default_obsidian.png",
sandstone = "default_sandstone.png",
})
end

View File

@ -1,20 +0,0 @@
--[[
More Blocks: sound definitions
Copyright © 2011-2021 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
local has_default_mod = minetest.get_modpath("default")
for _, sound in ipairs({"dirt", "wood", "stone", "metal", "glass", "leaves"}) do
-- use sound-function from default if available
-- otherwise fall back to a no-op function (no sounds)
local sound_function_name = "node_sound_" .. sound .. "_defaults"
if has_default_mod then
-- use default sounds
moreblocks[sound_function_name] = default[sound_function_name]
else
-- no-op
moreblocks[sound_function_name] = function() end
end
end

29
stairsplus/.luacheckrc Normal file
View File

@ -0,0 +1,29 @@
std = "lua51+luajit+minetest+stairsplus"
unused_args = false
max_line_length = 120
stds.minetest = {
read_globals = {
"DIR_DELIM",
"minetest",
"core",
"dump",
"vector",
"nodeupdate",
"VoxelManip",
"VoxelArea",
"PseudoRandom",
"ItemStack",
"default",
"table",
}
}
stds.stairsplus = {
globals = {
"stairsplus",
},
read_globals = {
"default",
},
}

View File

@ -13,6 +13,7 @@
sounds = moreblocks.node_sound_wood_defaults(),
})
```
The following register only a particular type of microblock.
You will probably never want to use them directly:
@ -79,4 +80,5 @@ The subset table should have the following format:
{ "stair", "_alt_4" },
}
```
You can remove entries as needed.

2
stairsplus/aliases.lua Normal file
View File

@ -0,0 +1,2 @@
minetest.register_alias("moreblocks:circular_saw", "stairsplus:circular_saw")

View File

@ -8,7 +8,7 @@ Licensed under the zlib license. See LICENSE.md for more information.
local S = moreblocks.S
local F = minetest.formspec_escape
circular_saw = {}
local circular_saw = {}
circular_saw.known_stairs = setmetatable({}, {
__newindex = function(k, v)
@ -97,7 +97,9 @@ function circular_saw:get_cost(inv, stackname)
end
function circular_saw:get_output_inv(modname, material, amount, max)
if (not max or max < 1 or max > 99) then max = 99 end
if (not max or max < 1 or max > 99) then
max = 99
end
local list = {}
local pos = #list
@ -155,7 +157,8 @@ function circular_saw:update_inventory(pos, amount)
-- The material is recycled automatically.
inv:set_list("recycle", {})
if amount < 1 then -- If the last block is taken out.
if amount < 1 then
-- If the last block is taken out.
self:reset(pos)
return
end
@ -322,7 +325,8 @@ function circular_saw.allow_metadata_inventory_take(pos, listname, index, stack,
local player_inv = player:get_inventory()
if not player_inv:room_for_item("main", input_stack) then
return 0
else return stack:get_count()
else
return stack:get_count()
end
end
@ -411,7 +415,6 @@ function circular_saw.on_construct(pos)
circular_saw:reset(pos)
end
function circular_saw.can_dig(pos, player)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
@ -475,3 +478,5 @@ minetest.register_node("moreblocks:circular_saw", {
on_metadata_inventory_put = circular_saw.on_metadata_inventory_put,
on_metadata_inventory_take = circular_saw.on_metadata_inventory_take,
})
stairplus.circular_saw = circular_saw

View File

@ -161,7 +161,9 @@ stairsplus.register_single = function(category, alternate, info, modname, subnam
type = "fixed",
fixed = info,
}
def.description = desc_base .. alternate:gsub("_", " "):gsub("(%a)(%S*)", function(a, b) return a:upper() .. b end)
def.description = desc_base .. alternate:gsub("_", " "):gsub("(%a)(%S*)", function(a, b)
return a:upper() .. b
end)
end
else
def.description = desc_base

14
stairsplus/crafting.lua Normal file
View File

@ -0,0 +1,14 @@
if cm.steel_ingot then
if moreblocks.settings.circular_saw_crafting then
minetest.register_craft({
output = "stairsplus:circular_saw",
recipe = {
{"", cm.steel_ingot, ""},
{"group:wood", "group:wood", "group:wood"},
{"group:wood", "", "group:wood"},
}
})
end
end

View File

@ -0,0 +1,33 @@
# textdomain: moreblocks
# German translation for More Blocks.
# 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.
#: circular_saw.lua
Circular Saw=Kreissäge
Input material=Ausgangs-@nmaterial
Left-over=Rest
Max=Anzahl
Recycle output=Wiederver-@nwerten
Set=Ok
owned by @1=gehört @1
Circular Saw is empty=Kreissäge ist leer
Circular Saw is working on @1=Kreissäge arbeitet mit @1
#: stairsplus/common.lua
@1 Microblock=@1mikroblock
@1 Slab=@1platte
@1 Slope=@1neigung
@1 Panel=@1paneel
@1 Stairs=@1treppe
#: stairsplus/registrations.lua
Concrete=
Cement=
Brass Block=

View File

@ -0,0 +1,34 @@
# textdomain: moreblocks
# Spanish translation for More Blocks.
# 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.
# Carlos Barraza 2020.
#: circular_saw.lua
Circular Saw=Sierra circular
Input material=Material de@nentrada
Left-over=Sobrante
Max=Maximo
Recycle output=Reciclar@nsalida
Set=Establecer
owned by @1=protegido por @1
Circular Saw is empty=La sierra circular está vacia
Circular Saw is working on @1=Sierra circular trabajando en @1
#: stairsplus/common.lua
@1 Microblock=Microbloque de @1
@1 Slab=Losa de @1
@1 Slope=Pendiente de @1
@1 Panel=Panel de @1
@1 Stairs=Escalera de @1
#: stairsplus/registrations.lua
Concrete=Concreto
Cement=Cemento
Brass Block=Bloque de latón

View File

@ -0,0 +1,34 @@
# textdomain: moreblocks
# French translation for More Blocks.
# 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.
# CodeXP <codexp@gmx.net>, 2018.
#: circular_saw.lua
Circular Saw=Scie circulaire
Input material=Matériau@nd'entrée
Left-over=Reste
Max=Max
Recycle output=Sortie à@nrecycler
Set=Définir
owned by @1=propriété de @1
Circular Saw is empty=Scie circulaire vide
Circular Saw is working on @1=Scie circulaire manipulant @1
#: stairsplus/common.lua
@1 Microblock=Microbloc en @1
@1 Slab=Demi-dalle en @1
@1 Slope=Pente en @1
@1 Panel=Barre en @1
@1 Stairs=Escaliers en @1
#: stairsplus/registrations.lua
Concrete=
Cement=
Brass Block=

View File

@ -0,0 +1,33 @@
# textdomain: moreblocks
# Italian translation for More Blocks.
# 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.
#: circular_saw.lua
Circular Saw=Sega circolare
Input material=Materiale@niniziale
Left-over=Scarto
Max=Max.
Recycle output=Ricicla@nfinale
Set=Imp.
owned by @1=
Circular Saw is empty=Sega circolare, vuota
Circular Saw is working on @1=Sega circolare, in funzione su @1
#: stairsplus/common.lua
@1 Microblock=Microblocco @1
@1 Slab=Lastra - @1
@1 Slope=
@1 Panel=Pannello - @1
@1 Stairs=Scale - @1
#: stairsplus/registrations.lua
Concrete=
Cement=
Brass Block=

View File

@ -0,0 +1,33 @@
# textdomain: moreblocks
# Polish translation for More Blocks.
# 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.
#: circular_saw.lua
Circular Saw=Piła tarczowa
Input material=wejście@nmateriał
Left-over=Resztki
Max=Maks
Recycle output=Przetwarzanie@nWyjście
Set=Ustaw
owned by @1=Należy do @1
Circular Saw is empty=Piła tarczowa jest pusta
Circular Saw is working on @1=Piła tarczowa pracuje na @1
#: stairsplus/common.lua
@1 Microblock=@1 Mikroblok
@1 Slab=@1 Płyta
@1 Slope=@1 Spad
@1 Panel=@1 Panel
@1 Stairs=@1 Schody
#: stairsplus/registrations.lua
Concrete=
Cement=
Brass Block=

View File

@ -0,0 +1,34 @@
# textdomain: moreblocks
# Russian translation for MOREBLOCKS minetest mod.
# Copyright (C) 2018 Hugo Locurcio and contributors
# This file is distributed under the same license as the MOREBLOCKS package.
# CodeXP <codexp@gmx.net>, 2018.
#
#, fuzzy
#: circular_saw.lua
Circular Saw=циркулярная пила
Input material=Входной@nматериал
Left-over=Остатки
Max=Кол.
Recycle output=Пере-@nобработка
Set=ОК
owned by @1=принадлежит @1
Circular Saw is empty=циркулярная пила пустая
Circular Saw is working on @1=циркулярная пила, @1 в обработке
#: stairsplus/common.lua
@1 Microblock=@1 (микроблок)
@1 Slab=@1 (плита)
@1 Slope=@1 (наклон)
@1 Panel=@1 (панель)
@1 Stairs=@1 (лестница)
#: stairsplus/registrations.lua
Concrete=
Cement=
Brass Block=

View File

@ -0,0 +1,27 @@
# textdomain: moreblocks
#: circular_saw.lua
Circular Saw=
Input material=
Left-over=
Max=
Recycle output=
Set=
owned by @1=
Circular Saw is empty=
Circular Saw is working on @1=
#: stairsplus/common.lua
@1 Microblock=
@1 Slab=
@1 Slope=
@1 Panel=
@1 Stairs=
#: stairsplus/registrations.lua
Concrete=
Cement=
Brass Block=

View File

@ -0,0 +1,32 @@
# textdomain: moreblocks
# zh_CN 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.
#: circular_saw.lua
Circular Saw=圆锯
Input material=输入@n材料
Left-over=剩余材料
Max=最大值
Recycle output=回收@n输出物
Set=设置
owned by @1=属于@1所有
Circular Saw is empty=圆锯是空的
Circular Saw is working on @1=圆锯正在加工@1
#: stairsplus/common.lua
@1 Microblock=@1小方块
@1 Slab=@1台阶
@1 Slope=@1斜坡
@1 Panel=@1嵌板
@1 Stairs=@1楼梯
#: stairsplus/registrations.lua
Concrete=
Cement=
Brass Block=

View File

@ -0,0 +1,32 @@
# textdomain: moreblocks
# zh_TW 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.
#: circular_saw.lua
Circular Saw=圓鋸
Input material=輸入@n材料
Left-over=剩餘材料
Max=最大值
Recycle output=回收@n輸出物
Set=設置
owned by @1=屬於@1所有
Circular Saw is empty=圓鋸是空的
Circular Saw is working on @1=圓鋸正在加工@1
#: stairsplus/common.lua
@1 Microblock=@1小方塊
@1 Slab=@1臺階
@1 Slope=@1斜坡
@1 Panel=@1嵌板
@1 Stairs=@1樓梯
#: stairsplus/registrations.lua
Concrete=
Cement=
Brass Block=

4
stairsplus/mod.conf Normal file
View File

@ -0,0 +1,4 @@
name = stairsplus
title = Stairs+
description = Microblock API
optional_depends = basic_materials, default, gloopblocks, stairs, technic, prefab, wool

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