20 Commits

Author SHA1 Message Date
831bbb2b27 Prepare for v1.0.0 release 2017-02-19 13:35:16 +01:00
4ad4dc958f Remove crafting recipes regarding removed jungle sticks
Forgotten in 34c01e66c7
2017-01-27 11:21:45 -08:00
cf1b054a99 allow passing paramtype2 to the nodes being created (#65) 2017-01-26 22:11:45 +01:00
81f77ae97e Prevent creating a global 2016-12-31 12:33:09 -08:00
085e9d56bc Remove unused gui_slots 2016-12-31 12:33:09 -08:00
5500c9906c Run cleanfile on all files, fixing whitespace issues. 2016-12-31 12:33:09 -08:00
d587b4d23f Add luacheckrc file. 2016-12-31 12:33:09 -08:00
01b411c753 Don't unnecessarily break on stable 0.4.14. (#62)
This uses the metal sounds when available
(0.4.14-dev), or the stone sounds otherwise.
2016-12-19 13:29:17 +01:00
2bd998e791 a few multi texture models 2016-12-15 15:12:53 -08:00
de620e4ff8 Some fixes for keeping in line with the default game (#59)
* Tweak some nodes

- Add function for recently-added metal sounds, and make copper patina use this sound
- Add all the wood tiles to the wood group
- Make empty bookshelf usable as fuel for half the time of book and vessel shelves (for 15 seconds)

* Return the books when crafting enpty bookshelves
2016-12-03 18:53:07 +01:00
7f06db2200 Add Alias Functions (#54)
* register_alias
* register_alias_force
2016-10-03 12:14:34 +02:00
ab2c63270f Max light source is 14. (#56) 2016-09-19 10:09:40 -07:00
15033a3514 use valid license for my texture (#51) 2016-08-19 12:04:14 +02:00
34c01e66c7 Remove unnecessary things (#47)
* Removed Junglwood fences -> Alias with default:fence_junglewood
* Removed Jungle stick -> Alias with default:stick
* Removed unnecessary redefinitions because all the overridden options are the same as in minetest_game.
2016-07-12 12:55:15 -07:00
26a5273dd6 Fix drop logic. (#49)
The code

		not type(fields.drop) == "table"

was always false because it compares a boolean with a string,

		not (type(fields.drop) == "table")

is the intended logic.
2016-07-12 12:49:43 -07:00
db93277a98 Add support for the alternative drop syntax (#46)
Until now, when the moreblocks node for a node with the alternative drop syntax were registered, the game crashed.
2016-06-17 12:15:02 -07:00
30fba0ea40 Aspen tree registration in stairsplus. (#44) 2016-06-10 10:47:18 -07:00
27051c782e update readme for copperpatina (#40)
* add pithydon in credits
2016-05-19 22:41:40 -07:00
eb3f9363d5 add node copper patina (#37)
Good for building things like the statue of liberty.
2016-05-18 15:02:28 -07:00
fa6937ce7b Italian locale (#39) 2016-05-18 15:00:21 -07:00
40 changed files with 1524 additions and 852 deletions

14
.luacheckrc Normal file
View File

@ -0,0 +1,14 @@
unused_args = false
allow_defined_top = true
read_globals = {
"DIR_DELIM",
"minetest", "core",
"dump",
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"intllib",
"default",
}

10
CHANGELOG.md Normal file
View File

@ -0,0 +1,10 @@
# Change Log
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).
## [1.0.0] - 2017-02-19
- Initial versioned release.

View File

@ -1,7 +1,6 @@
zlib license # zlib license
============
Copyright (c) 2011-2015 Calinou and contributors Copyright (c) 2011-2017 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.**

View File

@ -1,11 +1,12 @@
More Blocks # More Blocks
===========
More Blocks for Minetest <http://minetest.net>, a free/libre infinite More Blocks for [Minetest](http://minetest.net), a free and open source infinite
world block sandbox game. world block sandbox game.
To install, just clone this repository into your "mods" directory. To install, just clone this repository into your "mods" directory.
More Blocks code is licensed under the zlib license, textures are by Calinou and are licensed under CC BY-SA 3.0 Unported. More Blocks code is licensed under the zlib license, textures are by Calinou and are licensed under CC BY-SA 3.0 Unported.
moreblocks_copperpatina.png is by pithydon licensed under CC0 1.0
**Forum topic:** <https://forum.minetest.net/viewtopic.php?f=11&t=509> **Forum topic:** <https://forum.minetest.net/viewtopic.php?f=11&t=509>

View File

@ -1,7 +1,7 @@
--[[ --[[
More Blocks: alias definitions More Blocks: alias definitions
Copyright (c) 2011-2015 Calinou and contributors. Copyright (c) 2011-2017 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information. Licensed under the zlib license. See LICENSE.md for more information.
--]] --]]
@ -19,6 +19,8 @@ minetest.register_alias("moreblocks:stone_bricks", "default:stonebrick")
minetest.register_alias("moreblocks:stonebrick", "default:stonebrick") minetest.register_alias("moreblocks:stonebrick", "default:stonebrick")
minetest.register_alias("moreblocks:junglewood", "default:junglewood") minetest.register_alias("moreblocks:junglewood", "default:junglewood")
minetest.register_alias("moreblocks:jungle_wood", "default:junglewood") minetest.register_alias("moreblocks:jungle_wood", "default:junglewood")
minetest.register_alias("moreblocks:fence_jungle_wood", "default:fence_junglewood")
minetest.register_alias("moreblocks:jungle_stick", "default:stick")
for _, t in pairs(circular_saw.names) do for _, t in pairs(circular_saw.names) do
minetest.register_alias("moreblocks:" .. t[1] .. "_jungle_wood" .. t[2], minetest.register_alias("moreblocks:" .. t[1] .. "_jungle_wood" .. t[2],
@ -75,4 +77,3 @@ minetest.register_abm({
}) })
end, end,
}) })

View File

@ -1,7 +1,7 @@
--[[ --[[
More Blocks: circular saw More Blocks: circular saw
Copyright (c) 2011-2015 Calinou and contributors. Copyright (c) 2011-2017 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information. Licensed under the zlib license. See LICENSE.md for more information.
--]] --]]
@ -145,7 +145,7 @@ function circular_saw:update_inventory(pos, amount)
self:reset(pos) self:reset(pos)
return return
end end
local stack = inv:get_stack("input", 1) local stack = inv:get_stack("input", 1)
-- At least one "normal" block is necessary to see what kind of stairs are requested. -- At least one "normal" block is necessary to see what kind of stairs are requested.
if stack:is_empty() then if stack:is_empty() then
@ -327,8 +327,6 @@ function circular_saw.on_metadata_inventory_take(
-- The recycle field plays no role here since it is processed immediately. -- The recycle field plays no role here since it is processed immediately.
end end
gui_slots = "listcolors[#606060AA;#808080;#101010;#202020;#FFF]"
function circular_saw.on_construct(pos) function circular_saw.on_construct(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local fancy_inv = default.gui_bg..default.gui_bg_img..default.gui_slots local fancy_inv = default.gui_bg..default.gui_bg_img..default.gui_slots
@ -371,14 +369,14 @@ function circular_saw.can_dig(pos,player)
end end
minetest.register_node("moreblocks:circular_saw", { minetest.register_node("moreblocks:circular_saw", {
description = S("Circular Saw"), description = S("Circular Saw"),
drawtype = "nodebox", drawtype = "nodebox",
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
{-0.4, -0.5, -0.4, -0.25, 0.25, -0.25}, -- Leg {-0.4, -0.5, -0.4, -0.25, 0.25, -0.25}, -- Leg
{0.25, -0.5, 0.25, 0.4, 0.25, 0.4}, -- Leg {0.25, -0.5, 0.25, 0.4, 0.25, 0.4}, -- Leg
{-0.4, -0.5, 0.25, -0.25, 0.25, 0.4}, -- Leg {-0.4, -0.5, 0.25, -0.25, 0.25, 0.4}, -- Leg
{0.25, -0.5, -0.4, 0.4, 0.25, -0.25}, -- Leg {0.25, -0.5, -0.4, 0.4, 0.25, -0.25}, -- Leg
{-0.5, 0.25, -0.5, 0.5, 0.375, 0.5}, -- Tabletop {-0.5, 0.25, -0.5, 0.5, 0.375, 0.5}, -- Tabletop
{-0.01, 0.4375, -0.125, 0.01, 0.5, 0.125}, -- Saw blade (top) {-0.01, 0.4375, -0.125, 0.01, 0.5, 0.125}, -- Saw blade (top)
@ -389,9 +387,9 @@ minetest.register_node("moreblocks:circular_saw", {
tiles = {"moreblocks_circular_saw_top.png", tiles = {"moreblocks_circular_saw_top.png",
"moreblocks_circular_saw_bottom.png", "moreblocks_circular_saw_bottom.png",
"moreblocks_circular_saw_side.png"}, "moreblocks_circular_saw_side.png"},
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
paramtype2 = "facedir", paramtype2 = "facedir",
groups = {choppy = 2,oddly_breakable_by_hand = 2}, groups = {choppy = 2,oddly_breakable_by_hand = 2},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
on_construct = circular_saw.on_construct, on_construct = circular_saw.on_construct,

View File

@ -1,7 +1,7 @@
--[[ --[[
More Blocks: configuration handling More Blocks: configuration handling
Copyright (c) 2011-2015 Calinou and contributors. Copyright (c) 2011-2017 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information. Licensed under the zlib license. See LICENSE.md for more information.
--]] --]]

View File

@ -1,7 +1,7 @@
--[[ --[[
More Blocks: crafting recipes More Blocks: crafting recipes
Copyright (c) 2011-2015 Calinou and contributors. Copyright (c) 2011-2017 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information. Licensed under the zlib license. See LICENSE.md for more information.
--]] --]]
@ -28,14 +28,6 @@ minetest.register_craft({
} }
}) })
minetest.register_craft({
output = "default:junglewood",
recipe = {
{"moreblocks:jungle_stick", "moreblocks:jungle_stick"},
{"moreblocks:jungle_stick", "moreblocks:jungle_stick"},
}
})
minetest.register_craft({ minetest.register_craft({
output = "default:dirt_with_grass", output = "default:dirt_with_grass",
type = "shapeless", type = "shapeless",
@ -121,19 +113,6 @@ minetest.register_craft({
} }
}) })
minetest.register_craft({
output = "moreblocks:junglestick 4",
recipe = {{"default:junglewood"},}
})
minetest.register_craft({
output = "moreblocks:fence_jungle_wood 2",
recipe = {
{"moreblocks:jungle_stick", "moreblocks:jungle_stick", "moreblocks:jungle_stick"},
{"moreblocks:jungle_stick", "moreblocks:jungle_stick", "moreblocks:jungle_stick"},
}
})
minetest.register_craft({ minetest.register_craft({
output = "moreblocks:circle_stone_bricks 8", output = "moreblocks:circle_stone_bricks 8",
recipe = { recipe = {
@ -207,6 +186,8 @@ minetest.register_craft({
output = "moreblocks:empty_bookshelf", output = "moreblocks:empty_bookshelf",
type = "shapeless", type = "shapeless",
recipe = {"moreblocks:sweeper", "default:bookshelf"}, recipe = {"moreblocks:sweeper", "default:bookshelf"},
replacements = {{"default:bookshelf", "default:book 3"}},
-- When obtaining an empty bookshelf, return the books used in it as well
}) })
minetest.register_craft({ minetest.register_craft({
@ -457,9 +438,25 @@ minetest.register_craft({
type = "cooking", output = "moreblocks:tar", recipe = "default:gravel", type = "cooking", output = "moreblocks:tar", recipe = "default:gravel",
}) })
minetest.register_craft({
type = "shapeless",
output = "moreblocks:copperpatina",
recipe = {"bucket:bucket_water", "default:copperblock"},
replacements = {
{"bucket:bucket_water", "bucket:bucket_empty"}
}
})
minetest.register_craft({
output = "default:copper_ingot 9",
recipe = {
{"moreblocks:copperpatina"},
}
})
if minetest.setting_getbool("moreblocks.circular_saw_crafting") ~= false then -- “If nil or true then” if minetest.setting_getbool("moreblocks.circular_saw_crafting") ~= false then -- “If nil or true then”
minetest.register_craft({ minetest.register_craft({
output = "moreblocks:circular_saw", output = "moreblocks:circular_saw",
recipe = { recipe = {
{ "", "default:steel_ingot", "" }, { "", "default:steel_ingot", "" },
{ "group:wood", "group:wood", "group:wood"}, { "group:wood", "group:wood", "group:wood"},

View File

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

70
locale/it.txt Normal file
View File

@ -0,0 +1,70 @@
#
# Italian translation
# Translator: Emon
#
###init.lua###
[moreblocks] loaded. = [moreblocks] caricato.
###nodes.lua###
Jungle Wood Fence = Recinzione in legno della giungla
Empty Bookshelf = Libreria vuota
Clean Glass = Vetro pulito
Plankstone = Pietra e legno
Wooden Tile = Mattonella in legno
Full Wooden Tile = Mattonella in legno pieno
Centered Wooden Tile = Mattonella in legno centrata
Up Wooden Tile = Mattonella in legno verso l'alto
Down Wooden Tile = Mattonella in legno verso il basso
Left Wooden Tile = Mattonella in legno verso sinistra
Right Wooden Tile = Mattonella in legno verso destra
Circle Stone Bricks = Mattoni concentrici in pietra
Stone Tile = Mattonella in pietra
Split Stone Tile = Mattonella in pietra divisa
Glow Glass = Vetro luminoso
Super Glow Glass = Super vetro luminoso
Coal Glass = Vetro e carbone
Iron Glass = Vetro e ferro
Coal Checker = Scacchiera in carbone
Iron Checker = Scacchiera in ferro
Trap Stone = Pietra trappola
Trap Glass = Vetro trappola
Trap Glow Glass = Vetro luminoso trappola
Trap Super Glow Glass = Super vetro luminoso trappola
Coal Stone = Pietra in carbone
Iron Stone = Pietra in ferro
Coal Stone Bricks = Mattoni di pietra in carbone
Iron Stone Bricks = Mattoni di pietra in ferro
Cactus Checker = Scacchiera in cactus
Cactus Brick = Mattoni di cactus
Sweeper = Spazzola
Jungle Stick = Bastone in legno della giungla
Rope = Corda
All-faces Tree = Albero su ogni lato
###circular_saw.lua###
Circular Saw = Sega circolare
Circular saw, empty (owned by %s) = Sega circolare, vuota (di proprietà di %s)
Circular saw, working with %s (owned by %s) = Sega circolare, in funzione su %s (di proprietà di %s)
Circular saw, empty = Sega circolare, vuota
Circular saw is empty (owned by %s) = La sega circolare è vuota (di proprietà di %s)
Input\nmaterial = Materiale\niniziale
Left-over = Scarto
Max = Max.
Set = Imp.
Recycle\noutput = Ricicla\nfinale
###ownership.lua###
someone = qualcuno
Sorry, %s owns that spot. = Spiacente, quel punto è di proprietà di %s
###./stairsplus/*###
%s Stairs = Scale - %s
%s Slab = Lastra - %s
%s Panel = Pannello - %s
%s Microblock = Microblocco %s
%s Pane = Pannello - %s
%s Fence = Recinzione - %s

View File

@ -1,26 +1,56 @@
# Blender v2.72 (sub 0) OBJ File: '' g top
# www.blender.org
mtllib moreblocks_slope.mtl
o Cube_Cube.002
v 0.500000 0.500000 0.500000 v 0.500000 0.500000 0.500000
v -0.500000 0.500000 0.500000 v -0.500000 0.500000 0.500000
v -0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 -0.500000
vt 1.0000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn 0.0000 0.7071 -0.7071
s off
f 2/1/1 1/2/1 4/3/1 3/4/1
g bottom
v -0.500000 -0.500000 0.500000 v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000 v 0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000 v -0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 -0.500000 v 0.500000 -0.500000 -0.500000
vt 1.000000 1.000000 vt 0.0000 0.0000
vt 0.000000 1.000000 vt 1.0000 0.0000
vt 0.000000 0.000000 vt 1.0000 1.0000
vt 1.000000 0.000000 vt 0.0000 1.0000
vn 0.000000 -0.000000 1.000000 vn 0.0000 -1.0000 -0.0000
vn 0.000000 -1.000000 -0.000000
vn -1.000000 0.000000 0.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 0.707100 -0.707100
usemtl None
s off s off
f 1/1/1 2/2/1 3/3/1 4/4/1 f 6/5/2 5/6/2 7/7/2 8/8/2
f 4/3/2 3/4/2 5/1/2 6/2/2 g right
f 2/1/3 5/3/3 3/4/3 v -0.500000 0.500000 0.500000
f 1/2/4 4/3/4 6/4/4 v -0.500000 -0.500000 0.500000
f 2/1/5 1/2/5 6/3/5 5/4/5 v -0.500000 -0.500000 -0.500000
vt 1.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn -1.0000 0.0000 0.0000
s off
f 9/9/3 11/10/3 10/11/3
g left
v 0.500000 0.500000 0.500000
v 0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000
vt 0.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn 1.0000 0.0000 0.0000
s off
f 12/12/4 13/13/4 14/14/4
g back
v 0.500000 0.500000 0.500000
v -0.500000 0.500000 0.500000
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000
vt 1.0000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn 0.0000 -0.0000 1.0000
s off
f 15/15/5 16/16/5 17/17/5 18/18/5

View File

@ -1,33 +1,68 @@
# Blender v2.72 (sub 0) OBJ File: '' g top
# www.blender.org v 0.500000 0.500000 0.500000
mtllib moreblocks_slope_cut.mtl v -0.500000 -0.000000 0.500000
o moreblocks_slope_cut v 0.500000 0.000000 -0.500000
v -0.500000 -0.500000 -0.500000
vt 0.5000 0.0000
vt 1.0000 1.0000
vt 0.5000 2.0000
vt 0.0000 1.0000
vn -0.4082 0.8165 -0.4082
s 1
f 4/1/1 2/2/1 1/3/1 3/4/1
g bottom
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000
v -0.500000 -0.500000 -0.500000
vt 1.0000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn 0.0000 -1.0000 -0.0000
s 1
f 6/5/2 5/6/2 8/7/2 7/8/2
g right
v -0.500000 -0.500000 0.500000
v -0.500000 -0.000000 0.500000
v -0.500000 -0.500000 -0.500000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 0.5000
vn -1.0000 0.0000 0.0000
s 1
f 11/9/3 9/10/3 10/11/3
g left
v 0.500000 -0.500000 0.500000
v 0.500000 0.500000 0.500000
v 0.500000 -0.500000 -0.500000
v 0.500000 0.000000 -0.500000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 0.5000
vt 0.0000 1.0000
vn 1.0000 0.0000 0.0000
s 1
f 12/12/4 14/13/4 15/14/4 13/15/4
g back
v -0.500000 -0.500000 0.500000 v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000 v 0.500000 -0.500000 0.500000
v 0.500000 0.500000 0.500000 v 0.500000 0.500000 0.500000
v -0.500000 -0.000000 0.500000 v -0.500000 -0.000000 0.500000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vt 0.0000 0.5000
vn -0.0000 -0.0000 1.0000
s 1
f 16/16/5 17/17/5 18/18/5 19/19/5
g front
v 0.500000 -0.500000 -0.500000 v 0.500000 -0.500000 -0.500000
v 0.500000 0.000000 -0.500000 v 0.500000 0.000000 -0.500000
v -0.500000 -0.500000 -0.500000 v -0.500000 -0.500000 -0.500000
vt 0.000000 0.000000 vt 0.0000 0.0000
vt 1.000000 0.000000 vt 1.0000 0.0000
vt 1.000000 1.000000 vt 0.0000 0.5000
vt 0.000000 0.500000 vn 0.0000 0.0000 -1.0000
vt 1.000000 0.500000 s 1
vt 0.000000 1.000000 f 20/20/6 22/21/6 21/22/6
vt 0.500000 0.000000
vt 0.500000 2.000000
vn 0.000000 -0.000000 1.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 -1.000000 -0.000000
vn -0.408200 0.816500 -0.408200
vn 0.000000 0.000000 -1.000000
vn -1.000000 0.000000 0.000000
usemtl None
s off
f 1/1/1 2/2/1 3/3/1 4/4/1
f 2/1/2 5/2/2 6/5/2 3/6/2
f 2/3/3 1/6/3 7/1/3 5/2/3
f 7/7/4 4/3/4 3/8/4 6/6/4
f 5/1/5 7/2/5 6/4/5
f 7/1/6 1/2/6 4/5/6

View File

@ -1,28 +1,56 @@
# Blender v2.72 (sub 0) OBJ File: '' g top
# www.blender.org
mtllib moreblocks_slope_half.mtl
o Cube_Cube.002
v 0.500000 -0.000000 0.500000 v 0.500000 -0.000000 0.500000
v -0.500000 -0.000000 0.500000 v -0.500000 -0.000000 0.500000
v -0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 -0.500000
vt 1.0000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn 0.0000 0.8944 -0.4472
s off
f 2/1/1 1/2/1 4/3/1 3/4/1
g bottom
v -0.500000 -0.500000 0.500000 v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000 v 0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000 v -0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 -0.500000 v 0.500000 -0.500000 -0.500000
vt 1.000000 0.500000 vt 0.0000 0.0000
vt 0.000000 0.500000 vt 1.0000 0.0000
vt 0.000000 0.000000 vt 1.0000 1.0000
vt 1.000000 0.000000 vt 0.0000 1.0000
vt 1.000000 1.000000 vn 0.0000 -1.0000 -0.0000
vt 0.000000 1.000000
vn 0.000000 -0.000000 1.000000
vn 0.000000 -1.000000 -0.000000
vn -1.000000 0.000000 0.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 0.894400 -0.447200
usemtl None
s off s off
f 1/1/1 2/2/1 3/3/1 4/4/1 f 6/5/2 5/6/2 7/7/2 8/8/2
f 4/3/2 3/4/2 5/5/2 6/6/2 g right
f 2/1/3 5/3/3 3/4/3 v -0.500000 -0.000000 0.500000
f 1/2/4 4/3/4 6/4/4 v -0.500000 -0.500000 0.500000
f 2/5/5 1/6/5 6/3/5 5/4/5 v -0.500000 -0.500000 -0.500000
vt 1.0000 0.5000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn -1.0000 0.0000 0.0000
s off
f 9/9/3 11/10/3 10/11/3
g left
v 0.500000 -0.000000 0.500000
v 0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000
vt 0.0000 0.5000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn 1.0000 0.0000 0.0000
s off
f 12/12/4 13/13/4 14/14/4
g back
v 0.500000 -0.000000 0.500000
v -0.500000 -0.000000 0.500000
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000
vt 1.0000 0.5000
vt 0.0000 0.5000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn 0.0000 -0.0000 1.0000
s off
f 15/15/5 16/16/5 17/17/5 18/18/5

View File

@ -1,32 +1,72 @@
# Blender v2.72 (sub 0) OBJ File: '' g top
# www.blender.org v -0.500000 0.500000 0.500000
mtllib moreblocks_slope_half_raised.mtl v -0.500000 0.000000 -0.500000
o Cube.001 v 0.500000 0.000000 -0.500000
v 0.500000 0.500000 0.500000
vt 1.0000 0.0000
vt 1.0000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.0000
vn 0.0000 0.8944 -0.4472
s off
f 2/1/1 1/2/1 4/3/1 3/4/1
g bottom
v -0.500000 -0.500000 -0.500000
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 0.500000
vt 1.0000 0.0000
vt 1.0000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.0000
vn 0.0000 -1.0000 -0.0000
s off
f 6/5/2 5/6/2 7/7/2 8/8/2
g right
v -0.500000 0.500000 0.500000 v -0.500000 0.500000 0.500000
v -0.500000 0.000000 -0.500000 v -0.500000 0.000000 -0.500000
v -0.500000 -0.500000 -0.500000 v -0.500000 -0.500000 -0.500000
v -0.500000 -0.500000 0.500000 v -0.500000 -0.500000 0.500000
vt 1.0000 1.0000
vt 0.0000 0.5000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn -1.0000 0.0000 0.0000
s off
f 9/9/3 10/10/3 11/11/3 12/12/3
g left
v 0.500000 0.000000 -0.500000 v 0.500000 0.000000 -0.500000
v 0.500000 -0.500000 -0.500000 v 0.500000 -0.500000 -0.500000
v 0.500000 0.500000 0.500000 v 0.500000 0.500000 0.500000
v 0.500000 -0.500000 0.500000 v 0.500000 -0.500000 0.500000
vt 1.000000 1.000000 vt 1.0000 0.5000
vt 0.000000 0.500000 vt 0.0000 1.0000
vt 0.000000 0.000000 vt 0.0000 0.0000
vt 1.000000 0.000000 vt 1.0000 0.0000
vt 1.000000 0.500000 vn 1.0000 0.0000 0.0000
vt 0.000000 1.000000
vn -1.000000 0.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 -0.000000 1.000000
vn 0.000000 -1.000000 -0.000000
vn 0.000000 0.894400 -0.447200
usemtl None.001
s off s off
f 1/1/1 2/2/1 3/3/1 4/4/1 f 13/13/4 15/14/4 16/15/4 14/16/4
f 2/5/2 5/2/2 6/3/2 3/4/2 g back
f 5/5/3 7/6/3 8/3/3 6/4/3 v -0.500000 0.500000 0.500000
f 7/1/4 1/6/4 4/3/4 8/4/4 v -0.500000 -0.500000 0.500000
f 4/4/5 3/1/5 6/6/5 8/3/5 v 0.500000 0.500000 0.500000
f 2/4/6 1/1/6 7/6/6 5/3/6 v 0.500000 -0.500000 0.500000
vt 1.0000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn 0.0000 -0.0000 1.0000
s off
f 19/17/5 17/18/5 18/19/5 20/20/5
g front
v -0.500000 0.000000 -0.500000
v -0.500000 -0.500000 -0.500000
v 0.500000 0.000000 -0.500000
v 0.500000 -0.500000 -0.500000
vt 1.0000 0.5000
vt 0.0000 0.5000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn 0.0000 0.0000 -1.0000
s off
f 21/21/6 23/22/6 24/23/6 22/24/6

View File

@ -1,35 +1,81 @@
# Blender v2.72 (sub 0) OBJ File: '' g top
# www.blender.org v 0.500000 0.500000 -0.500000
mtllib moreblocks_slope_inner.mtl v 0.500000 0.500000 0.500000
o Cube_Cube.000 v -0.500000 0.500000 0.500000
v -0.500000 -0.500000 -0.500000
v -0.500000 -0.500000 -0.500000
vt 1.0000 1.0000
vt 0.0000 1.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.0000
vn 0.0000 0.7071 -0.7071
vn -0.7071 0.7071 0.0000
s 1
f 3/1/1 2/2/1 4/3/1
f 2/4/2 1/5/2 5/6/2
g bottom
v 0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000
v -0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 0.500000
vt 1.0000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn 0.0000 -1.0000 -0.0000
s 1
f 9/7/3 7/8/3 6/9/3 8/10/3
l 8 10
g right
v -0.500000 0.500000 0.500000
v -0.500000 -0.500000 -0.500000
v -0.500000 -0.500000 0.500000
vt 1.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn -1.0000 0.0000 0.0000
s 1
f 11/11/4 12/12/4 13/13/4
g left
v 0.500000 0.500000 -0.500000 v 0.500000 0.500000 -0.500000
v 0.500000 0.500000 0.500000 v 0.500000 0.500000 0.500000
v 0.500000 -0.500000 0.500000 v 0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000 v 0.500000 -0.500000 -0.500000
v -0.500000 0.500000 0.500000
v -0.500000 -0.500000 -0.500000
v -0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 0.500000 v 0.500000 -0.500000 0.500000
vt 1.000000 1.000000 vt 1.0000 1.0000
vt 0.000000 1.000000 vt 0.0000 1.0000
vt 0.000000 0.000000 vt 0.0000 0.0000
vt 1.000000 0.000000 vt 1.0000 0.0000
vn 1.000000 0.000000 0.000000 vn 1.0000 0.0000 0.0000
vn -1.000000 0.000000 0.000000 s 1
vn 0.000000 0.707100 -0.707100 f 14/14/5 15/15/5 16/16/5 17/17/5
vn 0.000000 0.000000 -1.000000 l 15 18
vn 0.000000 -1.000000 -0.000000 g back
vn 0.000000 -0.000000 1.000000 v 0.500000 0.500000 0.500000
vn -0.707100 0.707100 0.000000 v 0.500000 -0.500000 0.500000
usemtl None v -0.500000 0.500000 0.500000
s off v -0.500000 -0.500000 0.500000
f 1/1/1 2/2/1 3/3/1 4/4/1 v 0.500000 -0.500000 0.500000
f 5/1/2 6/3/2 7/4/2 vt 0.0000 0.0000
f 5/1/3 2/2/3 6/4/3 vt 1.0000 0.0000
f 1/2/4 4/3/4 8/4/4 vt 1.0000 1.0000
f 8/1/5 4/2/5 3/3/5 7/4/5 vt 0.0000 1.0000
f 7/3/6 3/4/6 2/1/6 5/2/6 vn 0.0000 -0.0000 1.0000
f 2/1/7 1/2/7 8/3/7 s 1
l 7 9 f 22/18/6 20/19/6 19/20/6 21/21/6
l 2 9 l 22 23
l 19 23
g front
v 0.500000 0.500000 -0.500000
v 0.500000 -0.500000 -0.500000
v -0.500000 -0.500000 -0.500000
v -0.500000 -0.500000 -0.500000
vt 0.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn 0.0000 0.0000 -1.0000
s 1
f 24/22/7 25/23/7 27/24/7

View File

@ -1,32 +1,72 @@
# Blender v2.72 (sub 0) OBJ File: '' g top
# www.blender.org v 0.500000 0.500000 -0.500000
mtllib moreblocks_slope_inner_cut.mtl v 0.500000 0.500000 0.500000
o moreblocks_slope_inner_cut v -0.500000 0.500000 0.500000
v -0.500000 -0.500000 -0.500000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vt 0.5000 0.0000
vt 1.0000 1.0000
vt 0.0000 1.0000
vn 0.0000 1.0000 0.0000
vn -0.5774 0.5774 -0.5774
s 1
f 3/1/1 2/2/1 1/3/1
f 4/4/2 3/5/2 1/6/2
g bottom
v 0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000
v -0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vt 0.0000 1.0000
vn 0.0000 -1.0000 -0.0000
s 1
f 6/7/3 5/8/3 7/9/3 8/10/3
g right
v -0.500000 -0.500000 0.500000
v -0.500000 0.500000 0.500000
v -0.500000 -0.500000 -0.500000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vn -1.0000 0.0000 0.0000
s 1
f 11/11/4 9/12/4 10/13/4
g left
v 0.500000 -0.500000 0.500000 v 0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000 v 0.500000 -0.500000 -0.500000
v 0.500000 0.500000 -0.500000 v 0.500000 0.500000 -0.500000
v 0.500000 0.500000 0.500000 v 0.500000 0.500000 0.500000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vt 0.0000 1.0000
vn 1.0000 0.0000 0.0000
s 1
f 12/14/5 13/15/5 14/16/5 15/17/5
g back
v 0.500000 -0.500000 0.500000
v 0.500000 0.500000 0.500000
v -0.500000 -0.500000 0.500000 v -0.500000 -0.500000 0.500000
v -0.500000 0.500000 0.500000 v -0.500000 0.500000 0.500000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vt 0.0000 1.0000
vn 0.0000 -0.0000 1.0000
s 1
f 18/18/6 16/19/6 17/20/6 19/21/6
g front
v 0.500000 -0.500000 -0.500000
v 0.500000 0.500000 -0.500000
v -0.500000 -0.500000 -0.500000 v -0.500000 -0.500000 -0.500000
vt 0.000000 0.000000 vt 0.0000 0.0000
vt 1.000000 0.000000 vt 1.0000 0.0000
vt 1.000000 1.000000 vt 0.0000 1.0000
vt 0.000000 1.000000 vn 0.0000 0.0000 -1.0000
vt 0.500000 0.000000 s 1
vn 1.000000 0.000000 0.000000 f 20/22/7 22/23/7 21/24/7
vn 0.000000 -0.000000 1.000000
vn 0.000000 -1.000000 -0.000000
vn 0.000000 1.000000 0.000000
vn -1.000000 0.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn -0.577400 0.577400 -0.577400
usemtl None
s off
f 1/1/1 2/2/1 3/3/1 4/4/1
f 5/1/2 1/2/2 4/3/2 6/4/2
f 2/1/3 1/2/3 5/3/3 7/4/3
f 6/1/4 4/2/4 3/3/4
f 7/1/5 5/2/5 6/3/5
f 2/1/6 7/2/6 3/4/6
f 7/5/7 6/3/7 3/4/7

View File

@ -1,34 +1,72 @@
# Blender v2.72 (sub 0) OBJ File: '' g top
# www.blender.org v 0.500000 0.000000 -0.500000
mtllib moreblocks_slope_inner_cut_half.mtl v 0.500000 -0.000000 0.500000
o moreblocks_slope_inner_cut_half v -0.500000 -0.000000 0.500000
v -0.500000 -0.500000 -0.500000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vt 0.5000 0.0000
vt 1.0000 1.0000
vt 0.0000 1.0000
vn 0.0000 1.0000 0.0000
vn -0.4082 0.8165 -0.4082
s 1
f 3/1/1 2/2/1 1/3/1
f 4/4/2 3/5/2 1/6/2
g bottom
v 0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000
v -0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vt 0.0000 1.0000
vn 0.0000 -1.0000 -0.0000
s 1
f 6/7/3 5/8/3 7/9/3 8/10/3
g right
v -0.500000 -0.500000 0.500000
v -0.500000 -0.000000 0.500000
v -0.500000 -0.500000 -0.500000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 0.5000
vn -1.0000 0.0000 0.0000
s 1
f 11/11/4 9/12/4 10/13/4
g left
v 0.500000 -0.500000 0.500000 v 0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000 v 0.500000 -0.500000 -0.500000
v 0.500000 0.000000 -0.500000 v 0.500000 0.000000 -0.500000
v 0.500000 -0.000000 0.500000 v 0.500000 -0.000000 0.500000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 0.5000
vt 0.0000 0.5000
vn 1.0000 0.0000 0.0000
s 1
f 12/14/5 13/15/5 14/16/5 15/17/5
g back
v 0.500000 -0.500000 0.500000
v 0.500000 -0.000000 0.500000
v -0.500000 -0.500000 0.500000 v -0.500000 -0.500000 0.500000
v -0.500000 -0.000000 0.500000 v -0.500000 -0.000000 0.500000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 0.5000
vt 0.0000 0.5000
vn 0.0000 -0.0000 1.0000
s 1
f 18/18/6 16/19/6 17/20/6 19/21/6
g front
v 0.500000 -0.500000 -0.500000
v 0.500000 0.000000 -0.500000
v -0.500000 -0.500000 -0.500000 v -0.500000 -0.500000 -0.500000
vt 0.000000 0.000000 vt 0.0000 0.0000
vt 1.000000 0.000000 vt 1.0000 0.0000
vt 1.000000 0.500000 vt 0.0000 0.5000
vt 0.000000 0.500000 vn 0.0000 0.0000 -1.0000
vt 1.000000 1.000000 s 1
vt 0.000000 1.000000 f 20/22/7 22/23/7 21/24/7
vt 0.500000 0.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 -0.000000 1.000000
vn 0.000000 -1.000000 -0.000000
vn 0.000000 1.000000 0.000000
vn -1.000000 0.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn -0.408200 0.816500 -0.408200
usemtl None
s off
f 1/1/1 2/2/1 3/3/1 4/4/1
f 5/1/2 1/2/2 4/3/2 6/4/2
f 2/1/3 1/2/3 5/5/3 7/6/3
f 6/1/4 4/2/4 3/5/4
f 7/1/5 5/2/5 6/3/5
f 2/1/6 7/2/6 3/4/6
f 7/7/7 6/5/7 3/6/7

View File

@ -1,35 +1,76 @@
# Blender v2.72 (sub 0) OBJ File: '' g top
# www.blender.org
mtllib moreblocks_slope_inner_cut_half_raised.mtl
o moreblocks_slope_inner_cut_half_raised
v 0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000
v 0.500000 0.500000 -0.500000 v 0.500000 0.500000 -0.500000
v 0.500000 0.500000 0.500000 v 0.500000 0.500000 0.500000
v -0.500000 0.500000 0.500000
v -0.500000 0.000000 -0.500000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vt 0.5000 0.0000
vt 1.0000 1.0000
vt 0.0000 1.0000
vn 0.0000 1.0000 0.0000
vn -0.4082 0.8165 -0.4082
s 1
f 3/1/1 2/2/1 1/3/1
f 4/4/2 3/5/2 1/6/2
g bottom
v 0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000
v -0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vt 0.0000 1.0000
vn 0.0000 -1.0000 -0.0000
s 1
f 6/7/3 5/8/3 7/9/3 8/10/3
g right
v -0.500000 -0.500000 0.500000 v -0.500000 -0.500000 0.500000
v -0.500000 0.500000 0.500000 v -0.500000 0.500000 0.500000
v -0.500000 -0.500000 -0.500000 v -0.500000 -0.500000 -0.500000
v -0.500000 0.000000 -0.500000 v -0.500000 0.000000 -0.500000
vt 0.000000 0.000000 vt 0.0000 0.0000
vt 1.000000 0.000000 vt 1.0000 0.0000
vt 1.000000 1.000000 vt 1.0000 1.0000
vt 0.000000 1.000000 vt 0.0000 0.5000
vt 0.000000 0.500000 vn -1.0000 0.0000 0.0000
vt 1.000000 0.500000 s 1
vt 0.500000 0.000000 f 11/11/4 9/12/4 10/13/4 12/14/4
vn 1.000000 0.000000 0.000000 g left
vn 0.000000 -0.000000 1.000000 v 0.500000 -0.500000 0.500000
vn 0.000000 -1.000000 -0.000000 v 0.500000 -0.500000 -0.500000
vn 0.000000 1.000000 0.000000 v 0.500000 0.500000 -0.500000
vn -1.000000 0.000000 0.000000 v 0.500000 0.500000 0.500000
vn -0.000000 0.000000 -1.000000 vt 0.0000 0.0000
vn -0.408200 0.816500 -0.408200 vt 1.0000 0.0000
usemtl None vt 1.0000 1.0000
s off vt 0.0000 1.0000
f 1/1/1 2/2/1 3/3/1 4/4/1 vn 1.0000 0.0000 0.0000
f 5/1/2 1/2/2 4/3/2 6/4/2 s 1
f 2/1/3 1/2/3 5/3/3 7/4/3 f 13/15/5 14/16/5 15/17/5 16/18/5
f 6/1/4 4/2/4 3/3/4 g back
f 7/1/5 5/2/5 6/3/5 8/5/5 v 0.500000 -0.500000 0.500000
f 2/1/6 7/2/6 8/6/6 3/4/6 v 0.500000 0.500000 0.500000
f 8/7/7 6/3/7 3/4/7 v -0.500000 -0.500000 0.500000
v -0.500000 0.500000 0.500000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vt 0.0000 1.0000
vn 0.0000 -0.0000 1.0000
s 1
f 19/19/6 17/20/6 18/21/6 20/22/6
g front
v 0.500000 -0.500000 -0.500000
v 0.500000 0.500000 -0.500000
v -0.500000 -0.500000 -0.500000
v -0.500000 0.000000 -0.500000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 0.5000
vt 0.0000 1.0000
vn -0.0000 0.0000 -1.0000
s 1
f 21/23/7 23/24/7 24/25/7 22/26/7

View File

@ -1,35 +1,85 @@
# Blender v2.72 (sub 0) OBJ File: '' g top
# www.blender.org
mtllib moreblocks_slope_inner_half.mtl
o Cube_Cube.001
v 0.500000 0.000000 -0.500000 v 0.500000 0.000000 -0.500000
v 0.500000 -0.000000 0.500000 v 0.500000 -0.000000 0.500000
v -0.500000 -0.000000 0.500000
v -0.500000 -0.500000 -0.500000
v -0.500000 -0.500000 -0.500000
vt 1.0000 1.0000
vt 0.0000 1.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.0000
vn 0.0000 0.8944 -0.4472
vn -0.4472 0.8944 0.0000
s off
f 3/1/1 2/2/1 4/3/1
f 2/4/2 1/5/2 5/6/2
g bottom
v 0.500000 -0.500000 0.500000 v 0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000 v 0.500000 -0.500000 -0.500000
v -0.500000 -0.000000 0.500000
v -0.500000 -0.500000 -0.500000 v -0.500000 -0.500000 -0.500000
v -0.500000 -0.500000 0.500000 v -0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000 v -0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 0.500000 v 0.500000 -0.500000 0.500000
vt 1.000000 1.000000 vt 1.0000 1.0000
vt 0.000000 1.000000 vt 0.0000 1.0000
vt 0.000000 0.000000 vt 0.0000 0.0000
vt 1.000000 0.000000 vt 1.0000 0.0000
vn 1.000000 0.000000 0.000000 vn 0.0000 -1.0000 -0.0000
vn -1.000000 0.000000 0.000000
vn 0.000000 0.894400 -0.447200
vn 0.000000 0.000000 -1.000000
vn 0.000000 -1.000000 -0.000000
vn 0.000000 -0.000000 1.000000
vn -0.447200 0.894400 0.000000
usemtl None.002
s off s off
f 1/1/1 2/2/1 3/3/1 4/4/1 f 10/7/3 7/8/3 6/9/3 9/10/3
f 5/1/2 6/3/2 7/4/2 l 9 8
f 5/1/3 2/2/3 6/4/3 l 11 9
f 1/2/4 4/3/4 8/4/4 g right
f 8/1/5 4/2/5 3/3/5 7/4/5 v -0.500000 -0.000000 0.500000
f 7/3/6 3/4/6 2/1/6 5/2/6 v -0.500000 -0.500000 -0.500000
f 2/1/7 1/2/7 8/3/7 v -0.500000 -0.500000 0.500000
l 7 9 v -0.500000 -0.500000 -0.500000
l 2 9 vt 1.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn -1.0000 0.0000 0.0000
s off
f 12/11/4 13/12/4 14/13/4
l 15 14
g left
v 0.500000 0.000000 -0.500000
v 0.500000 -0.000000 0.500000
v 0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 0.500000
vt 1.0000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn 1.0000 0.0000 0.0000
s off
f 16/14/5 17/15/5 18/16/5 19/17/5
l 20 17
g back
v 0.500000 -0.000000 0.500000
v 0.500000 -0.500000 0.500000
v -0.500000 -0.000000 0.500000
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vt 0.0000 1.0000
vn 0.0000 -0.0000 1.0000
s off
f 24/18/6 22/19/6 21/20/6 23/21/6
l 25 24
l 25 21
g front
v 0.500000 0.000000 -0.500000
v 0.500000 -0.500000 -0.500000
v -0.500000 -0.500000 -0.500000
v -0.500000 -0.500000 -0.500000
vt 0.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn 0.0000 0.0000 -1.0000
s off
f 26/22/7 27/23/7 29/24/7

View File

@ -1,38 +1,86 @@
# Blender v2.72 (sub 0) OBJ File: '' g top
# www.blender.org
mtllib moreblocks_slope_inner_half_raised.mtl
o Cube_Cube.003
v 0.500000 0.500000 -0.500000 v 0.500000 0.500000 -0.500000
v 0.500000 0.500000 0.500000 v 0.500000 0.500000 0.500000
v -0.500000 0.500000 0.500000
v -0.500000 0.000000 -0.500000
v -0.500000 0.000000 -0.500000
vt 1.0000 1.0000
vt 0.0000 1.0000
vt 1.0000 0.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn 0.0000 0.8944 -0.4472
vn -0.4472 0.8944 0.0000
s off
f 3/1/1 2/2/1 4/3/1
f 2/2/2 1/4/2 5/5/2
g bottom
v 0.500000 -0.500000 0.500000 v 0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000 v 0.500000 -0.500000 -0.500000
v -0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 0.500000
vt 1.0000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn 0.0000 -1.0000 -0.0000
s off
f 8/6/3 9/7/3 7/8/3 6/9/3
l 10 8
g right
v -0.500000 0.500000 0.500000 v -0.500000 0.500000 0.500000
v -0.500000 0.000000 -0.500000 v -0.500000 0.000000 -0.500000
v -0.500000 -0.500000 0.500000 v -0.500000 -0.500000 0.500000
v -0.500000 0.000000 -0.500000 v -0.500000 0.000000 -0.500000
v -0.500000 -0.500000 -0.500000 v -0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 0.500000 vt 1.0000 0.0000
vt 1.000000 1.000000 vt 1.0000 1.0000
vt 0.000000 1.000000 vt 0.0000 0.5000
vt 0.000000 0.000000 vt 0.0000 0.0000
vt 1.000000 0.000000 vn -1.0000 0.0000 0.0000
vt 1.000000 0.500000
vt 0.000000 0.500000
vn 1.000000 0.000000 0.000000
vn 0.000000 0.894400 -0.447200
vn 0.000000 -0.000000 1.000000
vn -0.447200 0.894400 0.000000
vn 0.000000 -1.000000 -0.000000
vn 0.000000 0.000000 -1.000000
vn -1.000000 0.000000 0.000000
usemtl None.003
s off s off
f 1/1/1 2/2/1 3/3/1 4/4/1 f 13/10/4 11/11/4 12/12/4 15/13/4
f 5/1/2 2/2/2 6/4/2 g left
f 7/3/3 3/4/3 2/1/3 5/2/3 v 0.500000 0.500000 -0.500000
f 2/2/4 1/3/4 8/4/4 v 0.500000 0.500000 0.500000
f 7/1/5 9/2/5 4/3/5 3/4/5 v 0.500000 -0.500000 0.500000
f 6/5/6 1/2/6 4/3/6 9/4/6 v 0.500000 -0.500000 -0.500000
f 7/4/7 5/1/7 6/6/7 9/3/7 v 0.500000 -0.500000 0.500000
l 2 10 vt 1.0000 1.0000
l 7 10 vt 0.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn 1.0000 0.0000 0.0000
s off
f 16/14/5 17/15/5 18/16/5 19/17/5
l 20 17
g back
v 0.500000 0.500000 0.500000
v 0.500000 -0.500000 0.500000
v -0.500000 0.500000 0.500000
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vt 0.0000 1.0000
vn 0.0000 -0.0000 1.0000
s off
f 24/18/6 22/19/6 21/20/6 23/21/6
l 25 21
l 25 24
g front
v 0.500000 0.500000 -0.500000
v 0.500000 -0.500000 -0.500000
v -0.500000 0.000000 -0.500000
v -0.500000 0.000000 -0.500000
v -0.500000 -0.500000 -0.500000
vt 1.0000 0.5000
vt 0.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn -0.0000 0.0000 -1.0000
s off
f 28/22/7 26/23/7 27/24/7 30/25/7
l 29 26

View File

@ -1,25 +1,48 @@
# Blender v2.72 (sub 0) OBJ File: '' g top
# www.blender.org
mtllib moreblocks_slope_outer.mtl
o Cube_Cube.004
v 0.500000 -0.500000 0.500000
v -0.500000 -0.500000 0.500000 v -0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000 v -0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 -0.500000 v 0.500000 -0.500000 -0.500000
v 0.500000 0.500000 0.500000 v 0.500000 0.500000 0.500000
vt 1.000000 1.000000 vt 1.0000 1.0000
vt 0.000000 1.000000 vt 0.0000 0.0000
vt 0.000000 0.000000 vt 1.0000 0.0000
vt 1.000000 0.000000 vt 0.0000 1.0000
vn 0.000000 -1.000000 -0.000000 vt 0.0000 0.0000
vn 1.000000 0.000000 0.000000 vt 1.0000 0.0000
vn 0.000000 -0.000000 1.000000 vn -0.7071 0.7071 0.0000
vn -0.707100 0.707100 0.000000 vn 0.0000 0.7071 -0.7071
vn 0.000000 0.707100 -0.707100
usemtl None
s off s off
f 1/1/1 2/2/1 3/3/1 4/4/1 f 4/1/1 2/2/1 1/3/1
f 5/2/2 1/3/2 4/4/2 f 4/4/2 3/5/2 2/6/2
f 2/3/3 1/4/3 5/1/3 g bottom
f 5/1/4 3/3/4 2/4/4 v 0.500000 -0.500000 0.500000
f 5/2/5 4/3/5 3/4/5 v -0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 -0.500000
vt 1.0000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn 0.0000 -1.0000 -0.0000
s off
f 5/7/3 6/8/3 7/9/3 8/10/3
g right
v 0.500000 -0.500000 0.500000
v -0.500000 -0.500000 0.500000
v 0.500000 0.500000 0.500000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vn 0.0000 -0.0000 1.0000
s off
f 10/11/4 9/12/4 11/13/4
g left
v 0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000
v 0.500000 0.500000 0.500000
vt 0.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn 1.0000 0.0000 0.0000
s off
f 14/14/5 12/15/5 13/16/5

View File

@ -1,23 +1,40 @@
# Blender v2.72 (sub 0) OBJ File: '' g top
# www.blender.org
mtllib moreblocks_slope_outer_cut.mtl
o Cube.002
v 0.500000 0.500000 0.500000 v 0.500000 0.500000 0.500000
v -0.500000 -0.500000 0.500000 v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000
vt 1.0000 0.0000
vt 0.5000 1.0000
vt 0.0000 0.0000
vn -0.5774 0.5774 -0.5774
s off
f 2/1/1 1/2/1 3/3/1
g bottom
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000 v 0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000 v 0.500000 -0.500000 -0.500000
vt 1.000000 1.000000 vt 0.0000 0.0000
vt 0.000000 0.000000 vt 1.0000 0.0000
vt 1.000000 0.000000 vt 0.0000 1.0000
vt 0.000000 1.000000 vn 0.0000 -1.0000 -0.0000
vt 0.500000 1.000000
vn 0.000000 -0.000000 1.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 -1.000000 0.000000
vn -0.577400 0.577400 -0.577400
usemtl None.004
s off s off
f 1/1/1 2/2/1 3/3/1 f 5/4/2 4/5/2 6/6/2
f 4/3/2 1/4/2 3/2/2 g right
f 3/2/3 2/3/3 4/4/3 v 0.500000 0.500000 0.500000
f 2/3/4 1/5/4 4/2/4 v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000
vt 1.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn 0.0000 -0.0000 1.0000
s off
f 7/7/3 8/8/3 9/9/3
g left
v 0.500000 0.500000 0.500000
v 0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000
vt 1.0000 0.0000
vt 0.0000 1.0000
vt 0.0000 0.0000
vn 1.0000 0.0000 0.0000
s off
f 12/10/4 10/11/4 11/12/4

View File

@ -1,24 +1,40 @@
# Blender v2.72 (sub 0) OBJ File: '' g top
# www.blender.org
mtllib moreblocks_slope_outer_cut_half.mtl
o Cube.003
v 0.500000 -0.000000 0.500000 v 0.500000 -0.000000 0.500000
v -0.500000 -0.500000 0.500000 v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000
vt 1.0000 0.0000
vt 0.5000 1.0000
vt 0.0000 0.0000
vn -0.4082 0.8165 -0.4082
s off
f 2/1/1 1/2/1 3/3/1
g bottom
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000 v 0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000 v 0.500000 -0.500000 -0.500000
vt 1.000000 0.500000 vt 0.0000 0.0000
vt 0.000000 0.000000 vt 1.0000 0.0000
vt 1.000000 0.000000 vt 0.0000 1.0000
vt 0.000000 0.500000 vn 0.0000 -1.0000 -0.0000
vt 0.000000 1.000000
vt 0.500000 1.000000
vn 0.000000 -0.000000 1.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 -1.000000 0.000000
vn -0.408200 0.816500 -0.408200
usemtl None.005
s off s off
f 1/1/1 2/2/1 3/3/1 f 5/4/2 4/5/2 6/6/2
f 4/3/2 1/4/2 3/2/2 g right
f 3/2/3 2/3/3 4/5/3 v 0.500000 -0.000000 0.500000
f 2/3/4 1/6/4 4/2/4 v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000
vt 1.0000 0.5000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn 0.0000 -0.0000 1.0000
s off
f 7/7/3 8/8/3 9/9/3
g left
v 0.500000 -0.000000 0.500000
v 0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000
vt 1.0000 0.0000
vt 0.0000 0.5000
vt 0.0000 0.0000
vn 1.0000 0.0000 0.0000
s off
f 12/10/4 10/11/4 11/12/4

View File

@ -1,28 +1,56 @@
# Blender v2.72 (sub 0) OBJ File: '' g top
# www.blender.org v -0.500000 -0.000000 0.500000
mtllib moreblocks_slope_outer_cut_half_raised.mtl v 0.500000 0.500000 0.500000
o Cube_Cube.005 v 0.500000 0.000000 -0.500000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vn -0.4082 0.8165 -0.4082
s off
f 1/1/1 2/2/1 3/3/1
g bottom
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000
vt 0.0000 1.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vn 0.0000 -1.0000 -0.0000
s off
f 4/4/2 6/5/2 5/6/2
g right
v -0.500000 -0.000000 0.500000 v -0.500000 -0.000000 0.500000
v -0.500000 -0.500000 0.500000 v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000
v 0.500000 0.000000 -0.500000
vt 1.0000 0.0000
vt 1.0000 0.5000
vt 0.0000 0.5000
vt 0.0000 0.0000
vn -0.7071 0.0000 -0.7071
s off
f 8/7/3 7/8/3 10/9/3 9/10/3
g left
v 0.500000 -0.500000 0.500000 v 0.500000 -0.500000 0.500000
v 0.500000 0.500000 0.500000 v 0.500000 0.500000 0.500000
v 0.500000 -0.500000 -0.500000 v 0.500000 -0.500000 -0.500000
v 0.500000 0.000000 -0.500000 v 0.500000 0.000000 -0.500000
vt 0.000000 0.500000 vt 0.0000 1.0000
vt 0.000000 0.000000 vt 0.0000 0.0000
vt 1.000000 0.000000 vt 1.0000 0.0000
vt 1.000000 1.000000 vt 1.0000 0.5000
vt 0.000000 1.000000 vn 1.0000 0.0000 0.0000
vt 1.000000 0.500000
vn 0.000000 -0.000000 1.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 -1.000000 0.000000
vn -0.408200 0.816500 -0.408200
vn -0.707100 0.000000 -0.707100
usemtl None.006
s off s off
f 1/1/1 2/2/1 3/3/1 4/4/1 f 12/11/4 11/12/4 13/13/4 14/14/4
f 4/5/2 3/2/2 5/3/2 6/6/2 g back
f 2/5/3 5/3/3 3/4/3 v -0.500000 -0.000000 0.500000
f 1/2/4 4/3/4 6/4/4 v -0.500000 -0.500000 0.500000
f 2/3/5 1/6/5 6/1/5 5/2/5 v 0.500000 -0.500000 0.500000
v 0.500000 0.500000 0.500000
vt 0.0000 0.5000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vn -0.0000 -0.0000 1.0000
s off
f 15/15/5 16/16/5 17/17/5 18/18/5

View File

@ -1,27 +1,48 @@
# Blender v2.72 (sub 0) OBJ File: '' g top
# www.blender.org v -0.500000 -0.500000 0.500000
mtllib moreblocks_slope_outer_half.mtl v -0.500000 -0.500000 -0.500000
o Cube.004 v 0.500000 -0.500000 -0.500000
v 0.500000 -0.000000 0.500000
vt 1.0000 0.0000
vt 0.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vt 0.0000 0.0000
vn 0.0000 0.8944 -0.4472
vn -0.4472 0.8944 0.0000
s off
f 2/1/1 4/2/1 3/3/1
f 1/4/2 4/5/2 2/6/2
g bottom
v -0.500000 -0.500000 0.500000 v -0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000 v -0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 -0.500000 v 0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 0.500000 v 0.500000 -0.500000 0.500000
v 0.500000 -0.000000 0.500000 vt 1.0000 1.0000
vt 1.000000 1.000000 vt 0.0000 1.0000
vt 0.000000 1.000000 vt 0.0000 0.0000
vt 0.000000 0.000000 vt 1.0000 0.0000
vt 1.000000 0.000000 vn 0.0000 -1.0000 -0.0000
vt 1.000000 0.500000
vt 0.000000 0.500000
vn 0.000000 -1.000000 -0.000000
vn 0.000000 -0.000000 1.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 0.894400 -0.447200
vn -0.447200 0.894400 0.000000
usemtl None.007
s off s off
f 1/1/1 2/2/1 3/3/1 4/4/1 f 5/7/3 6/8/3 7/9/3 8/10/3
f 5/5/2 1/3/2 4/4/2 g right
f 3/4/3 5/6/3 4/3/3 v -0.500000 -0.500000 0.500000
f 2/4/4 5/2/4 3/3/4 v 0.500000 -0.500000 0.500000
f 1/4/5 5/1/5 2/3/5 v 0.500000 -0.000000 0.500000
vt 1.0000 0.5000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn 0.0000 -0.0000 1.0000
s off
f 11/11/4 9/12/4 10/13/4
g left
v 0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 0.500000
v 0.500000 -0.000000 0.500000
vt 1.0000 0.0000
vt 0.0000 0.5000
vt 0.0000 0.0000
vn 1.0000 0.0000 0.0000
s off
f 12/14/5 14/15/5 13/16/5

View File

@ -1,34 +1,74 @@
# Blender v2.72 (sub 0) OBJ File: '' g top
# www.blender.org v -0.500000 -0.000000 0.500000
mtllib moreblocks_slope_outer_half_raised.mtl v 0.500000 0.500000 0.500000
o Cube_Cube.006 v 0.500000 0.000000 -0.500000
v -0.500000 0.000000 -0.500000
vt 1.0000 0.0000
vt 0.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 1.0000
vn 0.0000 0.8944 -0.4472
vn -0.4472 0.8944 0.0000
s off
f 4/1/1 2/2/1 3/3/1
f 4/1/2 1/4/2 2/2/2
g bottom
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000
v -0.500000 -0.500000 -0.500000
vt 0.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vn 0.0000 -1.0000 -0.0000
s off
f 7/5/3 6/6/3 5/7/3 8/8/3
g right
v -0.500000 -0.000000 0.500000 v -0.500000 -0.000000 0.500000
v -0.500000 -0.500000 0.500000 v -0.500000 -0.500000 0.500000
v -0.500000 0.000000 -0.500000
v -0.500000 -0.500000 -0.500000
vt 1.0000 0.5000
vt 0.0000 0.5000
vt 0.0000 0.0000
vt 1.0000 0.0000
vn -1.0000 0.0000 0.0000
s off
f 9/9/4 11/10/4 12/11/4 10/12/4
g left
v 0.500000 -0.500000 0.500000 v 0.500000 -0.500000 0.500000
v 0.500000 0.500000 0.500000 v 0.500000 0.500000 0.500000
v 0.500000 -0.500000 -0.500000 v 0.500000 -0.500000 -0.500000
v 0.500000 0.000000 -0.500000 v 0.500000 0.000000 -0.500000
vt 0.0000 1.0000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 0.5000
vn 1.0000 0.0000 0.0000
s off
f 14/13/5 13/14/5 15/15/5 16/16/5
g back
v -0.500000 -0.000000 0.500000
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000
v 0.500000 0.500000 0.500000
vt 0.0000 0.5000
vt 0.0000 0.0000
vt 1.0000 0.0000
vt 1.0000 1.0000
vn -0.0000 -0.0000 1.0000
s off
f 17/17/6 18/18/6 19/19/6 20/20/6
g front
v 0.500000 -0.500000 -0.500000
v 0.500000 0.000000 -0.500000
v -0.500000 0.000000 -0.500000 v -0.500000 0.000000 -0.500000
v -0.500000 -0.500000 -0.500000 v -0.500000 -0.500000 -0.500000
vt 0.000000 0.500000 vt 0.0000 0.5000
vt 0.000000 0.000000 vt 0.0000 0.0000
vt 1.000000 0.000000 vt 1.0000 0.0000
vt 1.000000 1.000000 vt 1.0000 0.5000
vt 0.000000 1.000000 vn 0.0000 0.0000 -1.0000
vt 1.000000 0.500000
vn 0.000000 -0.000000 1.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 0.894400 -0.447200
vn -1.000000 0.000000 0.000000
vn -0.447200 0.894400 0.000000
vn 0.000000 0.000000 -1.000000
vn 0.000000 -1.000000 -0.000000
usemtl None.008
s off s off
f 1/1/1 2/2/1 3/3/1 4/4/1 f 22/21/7 21/22/7 24/23/7 23/24/7
f 4/5/2 3/2/2 5/3/2 6/6/2
f 7/3/3 4/5/3 6/2/3
f 1/6/4 7/1/4 8/2/4 2/3/4
f 7/3/5 1/4/5 4/5/5
f 6/1/6 5/2/6 8/3/6 7/6/6
f 5/5/7 3/2/7 2/3/7 8/4/7

View File

@ -1,7 +1,7 @@
--[[ --[[
More Blocks: node definitions More Blocks: node definitions
Copyright (c) 2011-2015 Calinou and contributors. Copyright (c) 2011-2017 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information. Licensed under the zlib license. See LICENSE.md for more information.
--]] --]]
@ -12,6 +12,10 @@ local sound_stone = default.node_sound_stone_defaults()
local sound_glass = default.node_sound_glass_defaults() local sound_glass = default.node_sound_glass_defaults()
local sound_leaves = default.node_sound_leaves_defaults() local sound_leaves = default.node_sound_leaves_defaults()
-- Don't break on 0.4.14 and earlier.
local sound_metal = (default.node_sound_metal_defaults
and default.node_sound_metal_defaults() or sound_stone)
local function tile_tiles(name) local function tile_tiles(name)
local tex = "moreblocks_" ..name.. ".png" local tex = "moreblocks_" ..name.. ".png"
return {tex, tex, tex, tex, tex.. "^[transformR90", tex.. "^[transformR90"} return {tex, tex, tex, tex, tex.. "^[transformR90", tex.. "^[transformR90"}
@ -31,7 +35,7 @@ local nodes = {
}, },
["wood_tile_flipped"] = { ["wood_tile_flipped"] = {
description = S("Wooden Tile"), description = S("Wooden Tile"),
groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3}, groups = {wood = 1, snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
tiles = {"default_wood.png^moreblocks_wood_tile.png^[transformR90", 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^[transformR90",
@ -43,40 +47,40 @@ local nodes = {
}, },
["wood_tile_center"] = { ["wood_tile_center"] = {
description = S("Centered Wooden Tile"), description = S("Centered Wooden Tile"),
groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3}, groups = {wood = 1, snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
tiles = {"default_wood.png^moreblocks_wood_tile_center.png"}, tiles = {"default_wood.png^moreblocks_wood_tile_center.png"},
sounds = sound_wood, sounds = sound_wood,
}, },
["wood_tile_full"] = { ["wood_tile_full"] = {
description = S("Full Wooden Tile"), description = S("Full Wooden Tile"),
groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3}, groups = {wood = 1, snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
tiles = tile_tiles("wood_tile_full"), tiles = tile_tiles("wood_tile_full"),
sounds = sound_wood, sounds = sound_wood,
}, },
["wood_tile_up"] = { ["wood_tile_up"] = {
description = S("Upwards Wooden Tile"), description = S("Upwards Wooden Tile"),
groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3}, groups = {wood = 1, snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
tiles = {"default_wood.png^moreblocks_wood_tile_up.png"}, tiles = {"default_wood.png^moreblocks_wood_tile_up.png"},
sounds = sound_wood, sounds = sound_wood,
no_stairs = true, no_stairs = true,
}, },
["wood_tile_down"] = { ["wood_tile_down"] = {
description = S("Downwards Wooden Tile"), description = S("Downwards Wooden Tile"),
groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3}, groups = {wood = 1, snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
tiles = {"default_wood.png^[transformR180^moreblocks_wood_tile_up.png^[transformR180"}, tiles = {"default_wood.png^[transformR180^moreblocks_wood_tile_up.png^[transformR180"},
sounds = sound_wood, sounds = sound_wood,
no_stairs = true, no_stairs = true,
}, },
["wood_tile_left"] = { ["wood_tile_left"] = {
description = S("Leftwards Wooden Tile"), description = S("Leftwards Wooden Tile"),
groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3}, groups = {wood = 1, snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
tiles = {"default_wood.png^[transformR270^moreblocks_wood_tile_up.png^[transformR270"}, tiles = {"default_wood.png^[transformR270^moreblocks_wood_tile_up.png^[transformR270"},
sounds = sound_wood, sounds = sound_wood,
no_stairs = true, no_stairs = true,
}, },
["wood_tile_right"] = { ["wood_tile_right"] = {
description = S("Rightwards Wooden Tile"), description = S("Rightwards Wooden Tile"),
groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3}, groups = {wood = 1, snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
tiles = {"default_wood.png^[transformR90^moreblocks_wood_tile_up.png^[transformR90"}, tiles = {"default_wood.png^[transformR90^moreblocks_wood_tile_up.png^[transformR90"},
sounds = sound_wood, sounds = sound_wood,
no_stairs = true, no_stairs = true,
@ -186,6 +190,7 @@ local nodes = {
"moreblocks_empty_bookshelf.png"}, "moreblocks_empty_bookshelf.png"},
groups = {snappy = 2, choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, groups = {snappy = 2, choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
sounds = sound_wood, sounds = sound_wood,
furnace_burntime = 15,
no_stairs = true, no_stairs = true,
}, },
["coal_stone"] = { ["coal_stone"] = {
@ -239,21 +244,6 @@ local nodes = {
sounds = sound_glass, sounds = sound_glass,
no_stairs = true, no_stairs = true,
}, },
["fence_jungle_wood"] = {
description = S("Jungle Wood Fence"),
drawtype = "fencelike",
tiles = {"default_junglewood.png"},
inventory_image = "default_fence_overlay.png^default_junglewood.png^default_fence_overlay.png^[makealpha:255,126,126",
wield_image = "default_fence_overlay.png^default_junglewood.png^default_fence_overlay.png^[makealpha:255,126,126",
paramtype = "light",
selection_box = {
type = "fixed",
fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
},
groups = {snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = sound_wood,
no_stairs = true,
},
["all_faces_tree"] = { ["all_faces_tree"] = {
description = S("All-faces Tree"), description = S("All-faces Tree"),
tiles = {"default_tree_top.png"}, tiles = {"default_tree_top.png"},
@ -299,7 +289,7 @@ local nodes = {
tiles = {"moreblocks_super_glow_glass.png"}, tiles = {"moreblocks_super_glow_glass.png"},
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
light_source = 15, light_source = 14,
groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3}, groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass, sounds = sound_glass,
}, },
@ -310,7 +300,7 @@ local nodes = {
tiles = {"moreblocks_trap_super_glow_glass.png"}, tiles = {"moreblocks_trap_super_glow_glass.png"},
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
light_source = 15, light_source = 14,
walkable = false, walkable = false,
groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3}, groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass, sounds = sound_glass,
@ -331,6 +321,11 @@ local nodes = {
sounds = sound_leaves, sounds = sound_leaves,
no_stairs = true, no_stairs = true,
}, },
["copperpatina"] = {
description = S("Copper Patina Block"),
groups = {cracky = 1, level = 2},
sounds = sound_metal,
},
} }
for name, def in pairs(nodes) do for name, def in pairs(nodes) do
@ -359,14 +354,7 @@ minetest.register_craftitem("moreblocks:sweeper", {
inventory_image = "moreblocks_sweeper.png", inventory_image = "moreblocks_sweeper.png",
}) })
minetest.register_craftitem("moreblocks:jungle_stick", {
description = S("Jungle Stick"),
inventory_image = "moreblocks_junglestick.png",
groups = {stick= 1},
})
minetest.register_craftitem("moreblocks:nothing", { minetest.register_craftitem("moreblocks:nothing", {
inventory_image = "invisible.png", inventory_image = "invisible.png",
on_use = function() end, on_use = function() end,
}) })

View File

@ -1,7 +1,7 @@
--[[ --[[
More Blocks: ownership handling More Blocks: ownership handling
Copyright (c) 2011-2015 Calinou and contributors. Copyright (c) 2011-2017 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information. Licensed under the zlib license. See LICENSE.md for more information.
--]] --]]
@ -22,11 +22,11 @@ function moreblocks.node_is_owned(pos, placer)
end end
end end
elseif type(isprotect)=="function" then -- glomie's protection mod elseif type(isprotect)=="function" then -- glomie's protection mod
if not isprotect(5, pos, placer) then if not isprotect(5, pos, placer) then
ownername = S("someone") ownername = S("someone")
end end
elseif type(protector)=="table" and type(protector.can_dig)=="function" then -- Zeg9's protection mod elseif type(protector)=="table" and type(protector.can_dig)=="function" then -- Zeg9's protection mod
if not protector.can_dig(5, pos, placer) then if not protector.can_dig(5, pos, placer) then
ownername = S("someone") ownername = S("someone")
end end

View File

@ -1,7 +1,7 @@
--[[ --[[
More Blocks: redefinitions of default stuff More Blocks: redefinitions of default stuff
Copyright (c) 2011-2015 Calinou and contributors. Copyright (c) 2011-2017 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information. Licensed under the zlib license. See LICENSE.md for more information.
--]] --]]
@ -45,56 +45,3 @@ minetest.register_craft({
type = "toolrepair", type = "toolrepair",
additional_wear = -0.10, -- Tool repair buff (10% bonus instead of 2%). additional_wear = -0.10, -- Tool repair buff (10% bonus instead of 2%).
}) })
-- Redefinitions of some default nodes
-- ===================================
-- Let there be light. This makes some nodes let light pass through:
minetest.override_item("default:ladder", {
paramtype = "light",
sunlight_propagates = true,
})
minetest.override_item("default:sapling", {
paramtype = "light",
sunlight_propagates = true,
})
minetest.override_item("default:dry_shrub", {
paramtype = "light",
sunlight_propagates = true,
})
minetest.override_item("default:papyrus", {
paramtype = "light",
sunlight_propagates = true,
})
minetest.override_item("default:fence_wood", {
paramtype = "light",
sunlight_propagates = true,
})
minetest.override_item("default:junglegrass", {
paramtype = "light",
sunlight_propagates = true,
})
minetest.override_item("default:junglesapling", {
paramtype = "light",
sunlight_propagates = true,
})
minetest.override_item("default:grass_1", {
inventory_image = "default_grass_3.png", -- Use a bigger inventory image.
wield_image = "default_grass_3.png",
paramtype = "light",
sunlight_propagates = true,
})
for i = 2, 5 do
minetest.override_item("default:grass_" ..i, {
paramtype = "light",
sunlight_propagates = true,
})
end

View File

@ -1,5 +1,4 @@
API documentation for Stairs+ # API documentation for Stairs+
=============================
* `stairsplus:register_all(modname, subname, recipeitem, fields)` * `stairsplus:register_all(modname, subname, recipeitem, fields)`
Registers a stair, slab, panel, microblock, and any other types of Registers a stair, slab, panel, microblock, and any other types of

View File

@ -1,7 +1,7 @@
--[[ --[[
More Blocks: alias definitions More Blocks: alias definitions
Copyright (c) 2011-2015 Calinou and contributors. Copyright (c) 2011-2017 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information. Licensed under the zlib license. See LICENSE.md for more information.
--]] --]]

View File

@ -1,7 +1,7 @@
--[[ --[[
More Blocks: conversion More Blocks: conversion
Copyright (c) 2011-2015 Calinou and contributors. Copyright (c) 2011-2017 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information. Licensed under the zlib license. See LICENSE.md for more information.
--]] --]]
@ -80,8 +80,9 @@ function stairsplus:register_6dfacedir_conversion(modname, material)
chance = 1, chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider) action = function(pos, node, active_object_count, active_object_count_wider)
local fdir = node.param2 or 0 local fdir = node.param2 or 0
local nfdir
if flip_upside_down and not flip_to_wall then if flip_upside_down and not flip_to_wall then
nfdir = dirs1[fdir + 2] nfdir = dirs1[fdir + 2]
elseif flip_to_wall and not flip_upside_down then elseif flip_to_wall and not flip_upside_down then
nfdir = dirs2[fdir + 1] nfdir = dirs2[fdir + 1]
@ -125,7 +126,7 @@ function stairsplus:register_6dfacedir_conversion(modname, material)
local fdir = node.param2 local fdir = node.param2
local nfdir = 20 local nfdir = 20
if flip_upside_down and not flip_to_wall then if flip_upside_down and not flip_to_wall then
nfdir = dirs1[fdir + 1] nfdir = dirs1[fdir + 1]
elseif flip_to_wall and not flip_upside_down then elseif flip_to_wall and not flip_upside_down then
nfdir = dirs2[fdir + 2] nfdir = dirs2[fdir + 2]
@ -136,4 +137,3 @@ function stairsplus:register_6dfacedir_conversion(modname, material)
}) })
end end
end end

View File

@ -1,7 +1,7 @@
--[[ --[[
More Blocks: Stairs+ More Blocks: Stairs+
Copyright (c) 2011-2015 Calinou and contributors. Copyright (c) 2011-2017 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information. Licensed under the zlib license. See LICENSE.md for more information.
--]] --]]
@ -17,6 +17,21 @@ and minetest.setting_getbool("creative_mode") then
stairsplus.expect_infinite_stacks = true stairsplus.expect_infinite_stacks = true
end end
function stairsplus.copytable(orig)
local orig_type = type(orig)
local copy
if orig_type == 'table' then
copy = {}
for orig_key, orig_value in next, orig, nil do
copy[stairsplus.copytable(orig_key)] = stairsplus.copytable(orig_value)
end
setmetatable(copy, stairsplus.copytable(getmetatable(orig)))
else
copy = orig
end
return copy
end
function stairsplus:prepare_groups(groups) function stairsplus:prepare_groups(groups)
local result = {} local result = {}
if groups then if groups then
@ -41,6 +56,21 @@ function stairsplus:register_all(modname, subname, recipeitem, fields)
-- self:register_6dfacedir_conversion(modname, subname) -- Not needed as of Q3 2013, uncomment to fix old maps. -- self:register_6dfacedir_conversion(modname, subname) -- Not needed as of Q3 2013, uncomment to fix old maps.
end end
function stairsplus:register_alias_all(modname_old, subname_old, modname_new, subname_new)
self:register_stair_alias(modname_old, subname_old, modname_new, subname_new)
self:register_slab_alias(modname_old, subname_old, modname_new, subname_new)
self:register_slope_alias(modname_old, subname_old, modname_new, subname_new)
self:register_panel_alias(modname_old, subname_old, modname_new, subname_new)
self:register_micro_alias(modname_old, subname_old, modname_new, subname_new)
end
function stairsplus:register_alias_force_all(modname_old, subname_old, modname_new, subname_new)
self:register_stair_alias_force(modname_old, subname_old, modname_new, subname_new)
self:register_slab_alias_force(modname_old, subname_old, modname_new, subname_new)
self:register_slope_alias_force(modname_old, subname_old, modname_new, subname_new)
self:register_panel_alias_force(modname_old, subname_old, modname_new, subname_new)
self:register_micro_alias_force(modname_old, subname_old, modname_new, subname_new)
end
function register_stair_slab_panel_micro(modname, subname, recipeitem, groups, images, description, drop, light) function register_stair_slab_panel_micro(modname, subname, recipeitem, groups, images, description, drop, light)
stairsplus:register_all(modname, subname, recipeitem, { stairsplus:register_all(modname, subname, recipeitem, {
groups = groups, groups = groups,

View File

@ -1,7 +1,7 @@
--[[ --[[
More Blocks: microblock definitions More Blocks: microblock definitions
Copyright (c) 2011-2015 Calinou and contributors. Copyright (c) 2011-2017 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information. Licensed under the zlib license. See LICENSE.md for more information.
--]] --]]
@ -20,52 +20,67 @@ function register_micro(modname, subname, recipeitem, groups, images, descriptio
}) })
end end
function stairsplus:register_micro(modname, subname, recipeitem, fields) local microblocks_defs = {
local defs = { [""] = {
[""] = { node_box = {
node_box = { type = "fixed",
type = "fixed", fixed = {-0.5, -0.5, 0, 0, 0, 0.5},
fixed = {-0.5, -0.5, 0, 0, 0, 0.5},
},
}, },
["_1"] = { },
node_box = { ["_1"] = {
type = "fixed", node_box = {
fixed = {-0.5, -0.5, 0, 0, -0.4375, 0.5}, type = "fixed",
}, fixed = {-0.5, -0.5, 0, 0, -0.4375, 0.5},
}, },
["_2"] = { },
node_box = { ["_2"] = {
type = "fixed", node_box = {
fixed = {-0.5, -0.5, 0, 0, -0.375, 0.5}, type = "fixed",
}, fixed = {-0.5, -0.5, 0, 0, -0.375, 0.5},
}, },
["_4"] = { },
node_box = { ["_4"] = {
type = "fixed", node_box = {
fixed = {-0.5, -0.5, 0, 0, -0.25, 0.5}, type = "fixed",
}, fixed = {-0.5, -0.5, 0, 0, -0.25, 0.5},
}, },
["_12"] = { },
node_box = { ["_12"] = {
type = "fixed", node_box = {
fixed = {-0.5, -0.5, 0, 0, 0.25, 0.5}, type = "fixed",
}, fixed = {-0.5, -0.5, 0, 0, 0.25, 0.5},
}, },
["_14"] = { },
node_box = { ["_14"] = {
type = "fixed", node_box = {
fixed = {-0.5, -0.5, 0, 0, 0.375, 0.5}, type = "fixed",
}, fixed = {-0.5, -0.5, 0, 0, 0.375, 0.5},
},
},
["_15"] = {
node_box = {
type = "fixed",
fixed = {-0.5, -0.5, 0, 0, 0.4375, 0.5},
}, },
["_15"] = {
node_box = {
type = "fixed",
fixed = {-0.5, -0.5, 0, 0, 0.4375, 0.5},
},
}
} }
}
function stairsplus:register_micro_alias(modname_old, subname_old, modname_new, subname_new)
local defs = stairsplus.copytable(microblocks_defs)
for alternate, def in pairs(defs) do
minetest.register_alias(modname_old .. ":micro_" .. subname_old .. alternate, modname_new .. ":micro_" .. subname_new .. alternate)
end
end
function stairsplus:register_micro_alias_force(modname_old, subname_old, modname_new, subname_new)
local defs = stairsplus.copytable(microblocks_defs)
for alternate, def in pairs(defs) do
minetest.register_alias_force(modname_old .. ":micro_" .. subname_old .. alternate, modname_new .. ":micro_" .. subname_new .. alternate)
end
end
function stairsplus:register_micro(modname, subname, recipeitem, fields)
local defs = stairsplus.copytable(microblocks_defs)
local desc = S("%s Microblock"):format(fields.description) local desc = S("%s Microblock"):format(fields.description)
for alternate, def in pairs(defs) do for alternate, def in pairs(defs) do
for k, v in pairs(fields) do for k, v in pairs(fields) do
@ -73,63 +88,63 @@ function stairsplus:register_micro(modname, subname, recipeitem, fields)
end end
def.drawtype = "nodebox" def.drawtype = "nodebox"
def.paramtype = "light" def.paramtype = "light"
def.paramtype2 = "facedir" def.paramtype2 = def.paramtype2 or "facedir"
def.on_place = minetest.rotate_node def.on_place = minetest.rotate_node
def.groups = stairsplus:prepare_groups(fields.groups) def.groups = stairsplus:prepare_groups(fields.groups)
def.description = desc def.description = desc
if fields.drop then if fields.drop and not (type(fields.drop) == "table") then
def.drop = modname.. ":micro_" ..fields.drop..alternate def.drop = modname.. ":micro_" ..fields.drop..alternate
end end
minetest.register_node(":" ..modname.. ":micro_" ..subname..alternate, def) minetest.register_node(":" ..modname.. ":micro_" ..subname..alternate, def)
end end
minetest.register_alias(modname.. ":micro_" ..subname.. "_bottom", modname.. ":micro_" ..subname) minetest.register_alias(modname.. ":micro_" ..subname.. "_bottom", modname.. ":micro_" ..subname)
circular_saw.known_nodes[recipeitem] = {modname, subname} circular_saw.known_nodes[recipeitem] = {modname, subname}
-- Some saw-less recipes: -- Some saw-less recipes:
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":micro_" .. subname .. " 7", output = modname .. ":micro_" .. subname .. " 7",
recipe = {modname .. ":stair_" .. subname .. "_inner"}, recipe = {modname .. ":stair_" .. subname .. "_inner"},
}) })
minetest.register_craft({ minetest.register_craft({
output = modname .. ":micro_" .. subname .. " 6", output = modname .. ":micro_" .. subname .. " 6",
type = "shapeless", type = "shapeless",
recipe = {modname .. ":stair_" .. subname}, recipe = {modname .. ":stair_" .. subname},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":micro_" .. subname .. " 5", output = modname .. ":micro_" .. subname .. " 5",
recipe = {modname .. ":stair_" .. subname .. "_outer"}, recipe = {modname .. ":stair_" .. subname .. "_outer"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":micro_" .. subname .. " 4", output = modname .. ":micro_" .. subname .. " 4",
recipe = {modname .. ":slab_" .. subname}, recipe = {modname .. ":slab_" .. subname},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":micro_" .. subname .. " 4", output = modname .. ":micro_" .. subname .. " 4",
recipe = {modname .. ":stair_" .. subname .. "_alt"}, recipe = {modname .. ":stair_" .. subname .. "_alt"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":micro_" .. subname .. " 3", output = modname .. ":micro_" .. subname .. " 3",
recipe = {modname .. ":stair_" .. subname .. "_right_half"}, recipe = {modname .. ":stair_" .. subname .. "_right_half"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":micro_" .. subname .. " 2", output = modname .. ":micro_" .. subname .. " 2",
recipe = {modname .. ":panel_" .. subname}, recipe = {modname .. ":panel_" .. subname},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = recipeitem, output = recipeitem,

View File

@ -1,7 +1,7 @@
--[[ --[[
More Blocks: panel definitions More Blocks: panel definitions
Copyright (c) 2011-2015 Calinou and contributors. Copyright (c) 2011-2017 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information. Licensed under the zlib license. See LICENSE.md for more information.
--]] --]]
@ -20,52 +20,67 @@ function register_panel(modname, subname, recipeitem, groups, images, descriptio
}) })
end end
function stairsplus:register_panel(modname, subname, recipeitem, fields) local panels_defs = {
local defs = { [""] = {
[""] = { node_box = {
node_box = { type = "fixed",
type = "fixed", fixed = {-0.5, -0.5, 0, 0.5, 0, 0.5},
fixed = {-0.5, -0.5, 0, 0.5, 0, 0.5},
},
}, },
["_1"] = { },
node_box = { ["_1"] = {
type = "fixed", node_box = {
fixed = {-0.5, -0.5, 0, 0.5, -0.4375, 0.5}, type = "fixed",
}, fixed = {-0.5, -0.5, 0, 0.5, -0.4375, 0.5},
}, },
["_2"] = { },
node_box = { ["_2"] = {
type = "fixed", node_box = {
fixed = {-0.5, -0.5, 0, 0.5, -0.375, 0.5}, type = "fixed",
}, fixed = {-0.5, -0.5, 0, 0.5, -0.375, 0.5},
}, },
["_4"] = { },
node_box = { ["_4"] = {
type = "fixed", node_box = {
fixed = {-0.5, -0.5, 0, 0.5, -0.25, 0.5}, type = "fixed",
}, fixed = {-0.5, -0.5, 0, 0.5, -0.25, 0.5},
}, },
["_12"] = { },
node_box = { ["_12"] = {
type = "fixed", node_box = {
fixed = {-0.5, -0.5, 0, 0.5, 0.25, 0.5}, type = "fixed",
}, fixed = {-0.5, -0.5, 0, 0.5, 0.25, 0.5},
}, },
["_14"] = { },
node_box = { ["_14"] = {
type = "fixed", node_box = {
fixed = {-0.5, -0.5, 0, 0.5, 0.375, 0.5}, type = "fixed",
}, fixed = {-0.5, -0.5, 0, 0.5, 0.375, 0.5},
},
},
["_15"] = {
node_box = {
type = "fixed",
fixed = {-0.5, -0.5, 0, 0.5, 0.4375, 0.5},
}, },
["_15"] = {
node_box = {
type = "fixed",
fixed = {-0.5, -0.5, 0, 0.5, 0.4375, 0.5},
},
}
} }
}
function stairsplus:register_panel_alias(modname_old, subname_old, modname_new, subname_new)
local defs = stairsplus.copytable(panels_defs)
for alternate, def in pairs(defs) do
minetest.register_alias(modname_old .. ":panel_" .. subname_old .. alternate, modname_new .. ":panel_" .. subname_new .. alternate)
end
end
function stairsplus:register_panel_alias_force(modname_old, subname_old, modname_new, subname_new)
local defs = stairsplus.copytable(panels_defs)
for alternate, def in pairs(defs) do
minetest.register_alias_force(modname_old .. ":panel_" .. subname_old .. alternate, modname_new .. ":panel_" .. subname_new .. alternate)
end
end
function stairsplus:register_panel(modname, subname, recipeitem, fields)
local defs = stairsplus.copytable(panels_defs)
local desc = S("%s Panel"):format(fields.description) local desc = S("%s Panel"):format(fields.description)
for alternate, def in pairs(defs) do for alternate, def in pairs(defs) do
for k, v in pairs(fields) do for k, v in pairs(fields) do
@ -73,17 +88,17 @@ function stairsplus:register_panel(modname, subname, recipeitem, fields)
end end
def.drawtype = "nodebox" def.drawtype = "nodebox"
def.paramtype = "light" def.paramtype = "light"
def.paramtype2 = "facedir" def.paramtype2 = def.paramtype2 or "facedir"
def.on_place = minetest.rotate_node def.on_place = minetest.rotate_node
def.description = desc def.description = desc
def.groups = stairsplus:prepare_groups(fields.groups) def.groups = stairsplus:prepare_groups(fields.groups)
if fields.drop then if fields.drop and not (type(fields.drop) == "table") then
def.drop = modname.. ":panel_" ..fields.drop..alternate def.drop = modname.. ":panel_" ..fields.drop..alternate
end end
minetest.register_node(":" ..modname.. ":panel_" ..subname..alternate, def) minetest.register_node(":" ..modname.. ":panel_" ..subname..alternate, def)
end end
minetest.register_alias(modname.. ":panel_" ..subname.. "_bottom", modname.. ":panel_" ..subname) minetest.register_alias(modname.. ":panel_" ..subname.. "_bottom", modname.. ":panel_" ..subname)
circular_saw.known_nodes[recipeitem] = {modname, subname} circular_saw.known_nodes[recipeitem] = {modname, subname}
-- Some saw-less recipes: -- Some saw-less recipes:
@ -95,7 +110,7 @@ function stairsplus:register_panel(modname, subname, recipeitem, fields)
{recipeitem, recipeitem}, {recipeitem, recipeitem},
}, },
}) })
minetest.register_craft({ minetest.register_craft({
output = modname .. ":panel_" .. subname .. " 12", output = modname .. ":panel_" .. subname .. " 12",
recipe = { recipe = {
@ -103,13 +118,13 @@ function stairsplus:register_panel(modname, subname, recipeitem, fields)
{recipeitem, recipeitem}, {recipeitem, recipeitem},
}, },
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":panel_" .. subname, output = modname .. ":panel_" .. subname,
recipe = {modname .. ":micro_" .. subname, modname .. ":micro_" .. subname}, recipe = {modname .. ":micro_" .. subname, modname .. ":micro_" .. subname},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = recipeitem, output = recipeitem,

View File

@ -1,7 +1,7 @@
--[[ --[[
More Blocks: registrations More Blocks: registrations
Copyright (c) 2011-2015 Calinou and contributors. Copyright (c) 2011-2017 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information. Licensed under the zlib license. See LICENSE.md for more information.
--]] --]]
@ -28,6 +28,8 @@ local default_nodes = { -- Default stairs/slabs/panels/microblocks:
"pine_wood", "pine_wood",
"acacia_tree", "acacia_tree",
"acacia_wood", "acacia_wood",
"aspen_tree",
"aspen_wood",
"obsidian", "obsidian",
"obsidian_glass", "obsidian_glass",
"stonebrick", "stonebrick",

View File

@ -1,7 +1,7 @@
--[[ --[[
More Blocks: slab definitions More Blocks: slab definitions
Copyright (c) 2011-2015 Calinou and contributors. Copyright (c) 2011-2017 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information. Licensed under the zlib license. See LICENSE.md for more information.
--]] --]]
@ -20,17 +20,32 @@ function register_slab(modname, subname, recipeitem, groups, images, description
}) })
end end
function stairsplus:register_slab(modname, subname, recipeitem, fields) local slabs_defs = {
local defs = { [""] = 8,
[""] = 8, ["_quarter"] = 4,
["_quarter"] = 4, ["_three_quarter"] = 12,
["_three_quarter"] = 12, ["_1"] = 1,
["_1"] = 1, ["_2"] = 2,
["_2"] = 2, ["_14"] = 14,
["_14"] = 14, ["_15"] = 15,
["_15"] = 15, }
}
function stairsplus:register_slab_alias(modname_old, subname_old, modname_new, subname_new)
local defs = stairsplus.copytable(slabs_defs)
for alternate, def in pairs(defs) do
minetest.register_alias(modname_old .. ":slab_" .. subname_old .. alternate, modname_new .. ":slab_" .. subname_new .. alternate)
end
end
function stairsplus:register_slab_alias_force(modname_old, subname_old, modname_new, subname_new)
local defs = stairsplus.copytable(slabs_defs)
for alternate, def in pairs(defs) do
minetest.register_alias_force(modname_old .. ":slab_" .. subname_old .. alternate, modname_new .. ":slab_" .. subname_new .. alternate)
end
end
function stairsplus:register_slab(modname, subname, recipeitem, fields)
local defs = stairsplus.copytable(slabs_defs)
local desc_base = S("%s Slab"):format(fields.description) local desc_base = S("%s Slab"):format(fields.description)
for alternate, num in pairs(defs) do for alternate, num in pairs(defs) do
local def = { local def = {
@ -44,11 +59,11 @@ function stairsplus:register_slab(modname, subname, recipeitem, fields)
end end
def.drawtype = "nodebox" def.drawtype = "nodebox"
def.paramtype = "light" def.paramtype = "light"
def.paramtype2 = "facedir" def.paramtype2 = def.paramtype2 or "facedir"
def.on_place = minetest.rotate_node def.on_place = minetest.rotate_node
def.description = ("%s (%d/16)"):format(desc_base, num) def.description = ("%s (%d/16)"):format(desc_base, num)
def.groups = stairsplus:prepare_groups(fields.groups) def.groups = stairsplus:prepare_groups(fields.groups)
if fields.drop then if fields.drop and not (type(fields.drop) == "table") then
def.drop = modname.. ":slab_" .. fields.drop .. alternate def.drop = modname.. ":slab_" .. fields.drop .. alternate
end end
minetest.register_node(":" .. modname .. ":slab_" .. subname .. alternate, def) minetest.register_node(":" .. modname .. ":slab_" .. subname .. alternate, def)
@ -63,27 +78,27 @@ function stairsplus:register_slab(modname, subname, recipeitem, fields)
output = modname .. ":slab_" .. subname .. " 6", output = modname .. ":slab_" .. subname .. " 6",
recipe = {{recipeitem, recipeitem, recipeitem}}, recipe = {{recipeitem, recipeitem, recipeitem}},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":slab_" .. subname, output = modname .. ":slab_" .. subname,
recipe = {modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname}, recipe = {modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname},
}) })
-- uncomment this rule when conflict is no longer likely to happen -- uncomment this rule when conflict is no longer likely to happen
-- https://github.com/minetest/minetest/issues/2881 -- https://github.com/minetest/minetest/issues/2881
-- minetest.register_craft({ -- minetest.register_craft({
-- type = "shapeless", -- type = "shapeless",
-- output = modname .. ":slab_" .. subname, -- output = modname .. ":slab_" .. subname,
-- recipe = {modname .. ":panel_" .. subname, modname .. ":panel_" .. subname}, -- recipe = {modname .. ":panel_" .. subname, modname .. ":panel_" .. subname},
-- }) -- })
-- then remove these two -- then remove these two
minetest.register_craft({ minetest.register_craft({
output = modname .. ":slab_" .. subname, output = modname .. ":slab_" .. subname,
recipe = {{modname .. ":panel_" .. subname, modname .. ":panel_" .. subname}}, recipe = {{modname .. ":panel_" .. subname, modname .. ":panel_" .. subname}},
}) })
minetest.register_craft({ minetest.register_craft({
output = modname .. ":slab_" .. subname, output = modname .. ":slab_" .. subname,
recipe = { recipe = {
@ -98,109 +113,109 @@ function stairsplus:register_slab(modname, subname, recipeitem, fields)
output = recipeitem, output = recipeitem,
recipe = {modname .. ":slab_" .. subname, modname .. ":slab_" .. subname}, recipe = {modname .. ":slab_" .. subname, modname .. ":slab_" .. subname},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = recipeitem, output = recipeitem,
recipe = {modname .. ":slab_" .. subname .. "_quarter", modname .. ":slab_" .. subname .. "_quarter", modname .. ":slab_" .. subname .. "_quarter", modname .. ":slab_" .. subname .. "_quarter"}, recipe = {modname .. ":slab_" .. subname .. "_quarter", modname .. ":slab_" .. subname .. "_quarter", modname .. ":slab_" .. subname .. "_quarter", modname .. ":slab_" .. subname .. "_quarter"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = recipeitem, output = recipeitem,
recipe = {modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2"}, recipe = {modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = recipeitem, output = recipeitem,
recipe = {modname .. ":slab_" .. subname .. "_three_quarter", modname .. ":slab_" .. subname .. "_quarter"}, recipe = {modname .. ":slab_" .. subname .. "_three_quarter", modname .. ":slab_" .. subname .. "_quarter"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = recipeitem, output = recipeitem,
recipe = {modname .. ":slab_" .. subname .. "_14", modname .. ":slab_" .. subname .. "_2"}, recipe = {modname .. ":slab_" .. subname .. "_14", modname .. ":slab_" .. subname .. "_2"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = recipeitem, output = recipeitem,
recipe = {modname .. ":slab_" .. subname .. "_15", modname .. ":slab_" .. subname .. "_1"}, recipe = {modname .. ":slab_" .. subname .. "_15", modname .. ":slab_" .. subname .. "_1"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":slab_" .. subname, output = modname .. ":slab_" .. subname,
recipe = {modname .. ":slab_" .. subname .. "_quarter", modname .. ":slab_" .. subname .. "_quarter"}, recipe = {modname .. ":slab_" .. subname .. "_quarter", modname .. ":slab_" .. subname .. "_quarter"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":slab_" .. subname, output = modname .. ":slab_" .. subname,
recipe = {modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2"}, recipe = {modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":slab_" .. subname, output = modname .. ":slab_" .. subname,
recipe = {modname .. ":slab_" .. subname .. "_1", modname .. ":slab_" .. subname .. "_1", modname .. ":slab_" .. subname .. "_1", modname .. ":slab_" .. subname .. "_1", modname .. ":slab_" .. subname .. "_1", modname .. ":slab_" .. subname .. "_1", modname .. ":slab_" .. subname .. "_1", modname .. ":slab_" .. subname .. "_1"}, recipe = {modname .. ":slab_" .. subname .. "_1", modname .. ":slab_" .. subname .. "_1", modname .. ":slab_" .. subname .. "_1", modname .. ":slab_" .. subname .. "_1", modname .. ":slab_" .. subname .. "_1", modname .. ":slab_" .. subname .. "_1", modname .. ":slab_" .. subname .. "_1", modname .. ":slab_" .. subname .. "_1"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":slab_" .. subname .. "_quarter", output = modname .. ":slab_" .. subname .. "_quarter",
recipe = {modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2"}, recipe = {modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":slab_" .. subname .. "_quarter", output = modname .. ":slab_" .. subname .. "_quarter",
recipe = {modname .. ":slab_" .. subname .. "_1", modname .. ":slab_" .. subname .. "_1", modname .. ":slab_" .. subname .. "_1", modname .. ":slab_" .. subname .. "_1"}, recipe = {modname .. ":slab_" .. subname .. "_1", modname .. ":slab_" .. subname .. "_1", modname .. ":slab_" .. subname .. "_1", modname .. ":slab_" .. subname .. "_1"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":slab_" .. subname .. "_2", output = modname .. ":slab_" .. subname .. "_2",
recipe = {modname .. ":slab_" .. subname .. "_1", modname .. ":slab_" .. subname .. "_1"}, recipe = {modname .. ":slab_" .. subname .. "_1", modname .. ":slab_" .. subname .. "_1"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":slab_" .. subname .. "_three_quarter", output = modname .. ":slab_" .. subname .. "_three_quarter",
recipe = {modname .. ":slab_" .. subname, modname .. ":slab_" .. subname .. "_quarter"}, recipe = {modname .. ":slab_" .. subname, modname .. ":slab_" .. subname .. "_quarter"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":slab_" .. subname .. "_three_quarter", output = modname .. ":slab_" .. subname .. "_three_quarter",
recipe = {modname .. ":slab_" .. subname .. "_quarter", modname .. ":slab_" .. subname .. "_quarter", modname .. ":slab_" .. subname .. "_quarter"}, recipe = {modname .. ":slab_" .. subname .. "_quarter", modname .. ":slab_" .. subname .. "_quarter", modname .. ":slab_" .. subname .. "_quarter"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":slab_" .. subname .. "_three_quarter", output = modname .. ":slab_" .. subname .. "_three_quarter",
recipe = {modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2"}, recipe = {modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":slab_" .. subname .. "_14", output = modname .. ":slab_" .. subname .. "_14",
recipe = {modname .. ":slab_" .. subname .. "_three_quarter", modname .. ":slab_" .. subname .. "_2"}, recipe = {modname .. ":slab_" .. subname .. "_three_quarter", modname .. ":slab_" .. subname .. "_2"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":slab_" .. subname .. "_14", output = modname .. ":slab_" .. subname .. "_14",
recipe = {modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2"}, recipe = {modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2", modname .. ":slab_" .. subname .. "_2"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":slab_" .. subname .. "_15", output = modname .. ":slab_" .. subname .. "_15",
recipe = {modname .. ":slab_" .. subname .. "_14", modname .. ":slab_" .. subname .. "_1"}, recipe = {modname .. ":slab_" .. subname .. "_14", modname .. ":slab_" .. subname .. "_1"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":slab_" .. subname .. " 3", output = modname .. ":slab_" .. subname .. " 3",

View File

@ -1,7 +1,7 @@
--[[ --[[
More Blocks: slope definitions More Blocks: slope definitions
Copyright (c) 2011-2015 Calinou and contributors. Copyright (c) 2011-2017 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information. Licensed under the zlib license. See LICENSE.md for more information.
--]] --]]
@ -123,103 +123,118 @@ function register_slope(modname, subname, recipeitem, groups, images, descriptio
}) })
end end
local slopes_defs = {
[""] = {
mesh = "moreblocks_slope.obj",
collision_box = box_slope,
selection_box = box_slope,
},
["_half"] = {
mesh = "moreblocks_slope_half.obj",
collision_box = box_slope_half,
selection_box = box_slope_half,
},
["_half_raised"] = {
mesh = "moreblocks_slope_half_raised.obj",
collision_box = box_slope_half_raised,
selection_box = box_slope_half_raised,
},
--==============================================================
["_inner"] = {
mesh = "moreblocks_slope_inner.obj",
collision_box = box_slope_inner,
selection_box = box_slope_inner,
},
["_inner_half"] = {
mesh = "moreblocks_slope_inner_half.obj",
collision_box = box_slope_inner_half,
selection_box = box_slope_inner_half,
},
["_inner_half_raised"] = {
mesh = "moreblocks_slope_inner_half_raised.obj",
collision_box = box_slope_inner_half_raised,
selection_box = box_slope_inner_half_raised,
},
--==============================================================
["_inner_cut"] = {
mesh = "moreblocks_slope_inner_cut.obj",
collision_box = box_slope_inner,
selection_box = box_slope_inner,
},
["_inner_cut_half"] = {
mesh = "moreblocks_slope_inner_cut_half.obj",
collision_box = box_slope_inner_half,
selection_box = box_slope_inner_half,
},
["_inner_cut_half_raised"] = {
mesh = "moreblocks_slope_inner_cut_half_raised.obj",
collision_box = box_slope_inner_half_raised,
selection_box = box_slope_inner_half_raised,
},
--==============================================================
["_outer"] = {
mesh = "moreblocks_slope_outer.obj",
collision_box = box_slope_outer,
selection_box = box_slope_outer,
},
["_outer_half"] = {
mesh = "moreblocks_slope_outer_half.obj",
collision_box = box_slope_outer_half,
selection_box = box_slope_outer_half,
},
["_outer_half_raised"] = {
mesh = "moreblocks_slope_outer_half_raised.obj",
collision_box = box_slope_outer_half_raised,
selection_box = box_slope_outer_half_raised,
},
--==============================================================
["_outer_cut"] = {
mesh = "moreblocks_slope_outer_cut.obj",
collision_box = box_slope_outer,
selection_box = box_slope_outer,
},
["_outer_cut_half"] = {
mesh = "moreblocks_slope_outer_cut_half.obj",
collision_box = box_slope_outer_half,
selection_box = box_slope_outer_half,
},
["_outer_cut_half_raised"] = {
mesh = "moreblocks_slope_outer_cut_half_raised.obj",
collision_box = box_slope_outer_half_raised,
selection_box = box_slope_outer_half_raised,
},
["_cut"] = {
mesh = "moreblocks_slope_cut.obj",
collision_box = box_slope_outer,
selection_box = box_slope_outer,
},
}
function stairsplus:register_slope_alias(modname_old, subname_old, modname_new, subname_new)
local defs = stairsplus.copytable(slopes_defs)
for alternate, def in pairs(defs) do
minetest.register_alias(modname_old .. ":slope_" .. subname_old .. alternate, modname_new .. ":slope_" .. subname_new .. alternate)
end
end
function stairsplus:register_slope_alias_force(modname_old, subname_old, modname_new, subname_new)
local defs = stairsplus.copytable(slopes_defs)
for alternate, def in pairs(defs) do
minetest.register_alias_force(modname_old .. ":slope_" .. subname_old .. alternate, modname_new .. ":slope_" .. subname_new .. alternate)
end
end
function stairsplus:register_slope(modname, subname, recipeitem, fields) function stairsplus:register_slope(modname, subname, recipeitem, fields)
local defs = { local defs = stairsplus.copytable(slopes_defs)
[""] = {
mesh = "moreblocks_slope.obj",
collision_box = box_slope,
selection_box = box_slope,
},
["_half"] = {
mesh = "moreblocks_slope_half.obj",
collision_box = box_slope_half,
selection_box = box_slope_half,
},
["_half_raised"] = {
mesh = "moreblocks_slope_half_raised.obj",
collision_box = box_slope_half_raised,
selection_box = box_slope_half_raised,
},
--==============================================================
["_inner"] = {
mesh = "moreblocks_slope_inner.obj",
collision_box = box_slope_inner,
selection_box = box_slope_inner,
},
["_inner_half"] = {
mesh = "moreblocks_slope_inner_half.obj",
collision_box = box_slope_inner_half,
selection_box = box_slope_inner_half,
},
["_inner_half_raised"] = {
mesh = "moreblocks_slope_inner_half_raised.obj",
collision_box = box_slope_inner_half_raised,
selection_box = box_slope_inner_half_raised,
},
--==============================================================
["_inner_cut"] = {
mesh = "moreblocks_slope_inner_cut.obj",
collision_box = box_slope_inner,
selection_box = box_slope_inner,
},
["_inner_cut_half"] = {
mesh = "moreblocks_slope_inner_cut_half.obj",
collision_box = box_slope_inner_half,
selection_box = box_slope_inner_half,
},
["_inner_cut_half_raised"] = {
mesh = "moreblocks_slope_inner_cut_half_raised.obj",
collision_box = box_slope_inner_half_raised,
selection_box = box_slope_inner_half_raised,
},
--==============================================================
["_outer"] = {
mesh = "moreblocks_slope_outer.obj",
collision_box = box_slope_outer,
selection_box = box_slope_outer,
},
["_outer_half"] = {
mesh = "moreblocks_slope_outer_half.obj",
collision_box = box_slope_outer_half,
selection_box = box_slope_outer_half,
},
["_outer_half_raised"] = {
mesh = "moreblocks_slope_outer_half_raised.obj",
collision_box = box_slope_outer_half_raised,
selection_box = box_slope_outer_half_raised,
},
--==============================================================
["_outer_cut"] = {
mesh = "moreblocks_slope_outer_cut.obj",
collision_box = box_slope_outer,
selection_box = box_slope_outer,
},
["_outer_cut_half"] = {
mesh = "moreblocks_slope_outer_cut_half.obj",
collision_box = box_slope_outer_half,
selection_box = box_slope_outer_half,
},
["_outer_cut_half_raised"] = {
mesh = "moreblocks_slope_outer_cut_half_raised.obj",
collision_box = box_slope_outer_half_raised,
selection_box = box_slope_outer_half_raised,
},
["_cut"] = {
mesh = "moreblocks_slope_cut.obj",
collision_box = box_slope_outer,
selection_box = box_slope_outer,
},
}
local desc = S("%s Slope"):format(fields.description) local desc = S("%s Slope"):format(fields.description)
for alternate, def in pairs(defs) do for alternate, def in pairs(defs) do
for k, v in pairs(fields) do for k, v in pairs(fields) do
@ -227,11 +242,11 @@ function stairsplus:register_slope(modname, subname, recipeitem, fields)
end end
def.drawtype = "mesh" def.drawtype = "mesh"
def.paramtype = "light" def.paramtype = "light"
def.paramtype2 = "facedir" def.paramtype2 = def.paramtype2 or "facedir"
def.on_place = minetest.rotate_node def.on_place = minetest.rotate_node
def.description = desc def.description = desc
def.groups = stairsplus:prepare_groups(fields.groups) def.groups = stairsplus:prepare_groups(fields.groups)
if fields.drop then if fields.drop and not (type(fields.drop) == "table") then
def.drop = modname.. ":slope_" ..fields.drop..alternate def.drop = modname.. ":slope_" ..fields.drop..alternate
end end
minetest.register_node(":" ..modname.. ":slope_" ..subname..alternate, def) minetest.register_node(":" ..modname.. ":slope_" ..subname..alternate, def)
@ -246,99 +261,99 @@ function stairsplus:register_slope(modname, subname, recipeitem, fields)
output = recipeitem, output = recipeitem,
recipe = {modname .. ":slope_" .. subname, modname .. ":slope_" .. subname}, recipe = {modname .. ":slope_" .. subname, modname .. ":slope_" .. subname},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = recipeitem, output = recipeitem,
recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half_raised"}, recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half_raised"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = recipeitem, output = recipeitem,
recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half", recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half",
modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half"}, modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = recipeitem, output = recipeitem,
recipe = {modname .. ":slope_" .. subname .. "_outer", modname .. ":slope_" .. subname .. "_inner"}, recipe = {modname .. ":slope_" .. subname .. "_outer", modname .. ":slope_" .. subname .. "_inner"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = recipeitem, output = recipeitem,
recipe = {modname .. ":slope_" .. subname .. "_outer_half", modname .. ":slope_" .. subname .. "_inner_half_raised"}, recipe = {modname .. ":slope_" .. subname .. "_outer_half", modname .. ":slope_" .. subname .. "_inner_half_raised"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = recipeitem, output = recipeitem,
recipe = {modname .. ":slope_" .. subname .. "_outer_half_raised", modname .. ":slope_" .. subname .. "_inner_half"}, recipe = {modname .. ":slope_" .. subname .. "_outer_half_raised", modname .. ":slope_" .. subname .. "_inner_half"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = recipeitem, output = recipeitem,
recipe = {modname .. ":slope_" .. subname .. "_outer_cut", modname .. ":slope_" .. subname .. "_inner_cut"}, recipe = {modname .. ":slope_" .. subname .. "_outer_cut", modname .. ":slope_" .. subname .. "_inner_cut"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = recipeitem, output = recipeitem,
recipe = {modname .. ":slope_" .. subname .. "_outer_cut_half", modname .. ":slope_" .. subname .. "_inner_cut_half_raised"}, recipe = {modname .. ":slope_" .. subname .. "_outer_cut_half", modname .. ":slope_" .. subname .. "_inner_cut_half_raised"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = recipeitem, output = recipeitem,
recipe = {modname .. ":slope_" .. subname .. "_cut", modname .. ":slope_" .. subname .. "_cut"}, recipe = {modname .. ":slope_" .. subname .. "_cut", modname .. ":slope_" .. subname .. "_cut"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":slab_" .. subname, output = modname .. ":slab_" .. subname,
recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half"}, recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":slab_" .. subname, output = modname .. ":slab_" .. subname,
recipe = {modname .. ":slope_" .. subname .. "_outer_half", modname .. ":slope_" .. subname .. "_inner_half"}, recipe = {modname .. ":slope_" .. subname .. "_outer_half", modname .. ":slope_" .. subname .. "_inner_half"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":slab_" .. subname, output = modname .. ":slab_" .. subname,
recipe = {modname .. ":slope_" .. subname .. "_outer_cut_half", modname .. ":slope_" .. subname .. "_inner_cut_half"}, recipe = {modname .. ":slope_" .. subname .. "_outer_cut_half", modname .. ":slope_" .. subname .. "_inner_cut_half"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":slope_" .. subname .. "_half_raised", output = modname .. ":slope_" .. subname .. "_half_raised",
recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half", recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half",
modname .. ":slope_" .. subname .. "_half"}, modname .. ":slope_" .. subname .. "_half"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":slope_" .. subname .. "_half_raised", output = modname .. ":slope_" .. subname .. "_half_raised",
recipe = {modname .. ":slab_" .. subname, modname .. ":slope_" .. subname .. "_half"}, recipe = {modname .. ":slab_" .. subname, modname .. ":slope_" .. subname .. "_half"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":slope_" .. subname .. "_inner_half_raised", output = modname .. ":slope_" .. subname .. "_inner_half_raised",
recipe = {modname .. ":slab_" .. subname, modname .. ":slope_" .. subname .. "_inner_half"}, recipe = {modname .. ":slab_" .. subname, modname .. ":slope_" .. subname .. "_inner_half"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":slope_" .. subname .. "_outer_half_raised", output = modname .. ":slope_" .. subname .. "_outer_half_raised",
recipe = {modname .. ":slab_" .. subname, modname .. ":slope_" .. subname .. "_outer_half"}, recipe = {modname .. ":slab_" .. subname, modname .. ":slope_" .. subname .. "_outer_half"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":slope_" .. subname .. "_inner_cut_half_raised", output = modname .. ":slope_" .. subname .. "_inner_cut_half_raised",

View File

@ -1,7 +1,7 @@
--[[ --[[
More Blocks: stair definitions More Blocks: stair definitions
Copyright (c) 2011-2015 Calinou and contributors. Copyright (c) 2011-2017 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information. Licensed under the zlib license. See LICENSE.md for more information.
--]] --]]
@ -20,92 +20,107 @@ function register_stair(modname, subname, recipeitem, groups, images, descriptio
}) })
end end
function stairsplus:register_stair(modname, subname, recipeitem, fields) local stairs_defs = {
local defs = { [""] = {
[""] = { node_box = {
node_box = { type = "fixed",
type = "fixed", fixed = {
fixed = { {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
{-0.5, -0.5, -0.5, 0.5, 0, 0.5}, {-0.5, 0, 0, 0.5, 0.5, 0.5},
{-0.5, 0, 0, 0.5, 0.5, 0.5},
},
}, },
}, },
["_half"] = { },
node_box = { ["_half"] = {
type = "fixed", node_box = {
fixed = { type = "fixed",
{-0.5, -0.5, -0.5, 0, 0, 0.5}, fixed = {
{-0.5, 0, 0, 0, 0.5, 0.5}, {-0.5, -0.5, -0.5, 0, 0, 0.5},
}, {-0.5, 0, 0, 0, 0.5, 0.5},
}, },
}, },
["_right_half" ]= { },
node_box = { ["_right_half" ]= {
type = "fixed", node_box = {
fixed = { type = "fixed",
{0, -0.5, -0.5, 0.5, 0, 0.5}, fixed = {
{0, 0, 0, 0.5, 0.5, 0.5}, {0, -0.5, -0.5, 0.5, 0, 0.5},
}, {0, 0, 0, 0.5, 0.5, 0.5},
}, },
}, },
["_inner"] = { },
node_box = { ["_inner"] = {
type = "fixed", node_box = {
fixed = { type = "fixed",
{-0.5, -0.5, -0.5, 0.5, 0, 0.5}, fixed = {
{-0.5, 0, 0, 0.5, 0.5, 0.5}, {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
{-0.5, 0, -0.5, 0, 0.5, 0}, {-0.5, 0, 0, 0.5, 0.5, 0.5},
}, {-0.5, 0, -0.5, 0, 0.5, 0},
}, },
}, },
["_outer"] = { },
node_box = { ["_outer"] = {
type = "fixed", node_box = {
fixed = { type = "fixed",
{-0.5, -0.5, -0.5, 0.5, 0, 0.5}, fixed = {
{-0.5, 0, 0, 0, 0.5, 0.5}, {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
}, {-0.5, 0, 0, 0, 0.5, 0.5},
}, },
}, },
["_alt"] = { },
node_box = { ["_alt"] = {
type = "fixed", node_box = {
fixed = { type = "fixed",
{-0.5, -0.5, -0.5, 0.5, 0, 0}, fixed = {
{-0.5, 0, 0, 0.5, 0.5, 0.5}, {-0.5, -0.5, -0.5, 0.5, 0, 0},
}, {-0.5, 0, 0, 0.5, 0.5, 0.5},
}, },
}, },
["_alt_1"] = { },
node_box = { ["_alt_1"] = {
type = "fixed", node_box = {
fixed = { type = "fixed",
{-0.5, -0.0625, -0.5, 0.5, 0, 0}, fixed = {
{-0.5, 0.4375, 0, 0.5, 0.5, 0.5}, {-0.5, -0.0625, -0.5, 0.5, 0, 0},
}, {-0.5, 0.4375, 0, 0.5, 0.5, 0.5},
}, },
}, },
["_alt_2"] = { },
node_box = { ["_alt_2"] = {
type = "fixed", node_box = {
fixed = { type = "fixed",
{-0.5, -0.125, -0.5, 0.5, 0, 0}, fixed = {
{-0.5, 0.375, 0, 0.5, 0.5, 0.5}, {-0.5, -0.125, -0.5, 0.5, 0, 0},
}, {-0.5, 0.375, 0, 0.5, 0.5, 0.5},
}, },
}, },
["_alt_4"] = { },
node_box = { ["_alt_4"] = {
type = "fixed", node_box = {
fixed = { type = "fixed",
{-0.5, -0.25, -0.5, 0.5, 0, 0}, fixed = {
{-0.5, 0.25, 0, 0.5, 0.5, 0.5}, {-0.5, -0.25, -0.5, 0.5, 0, 0},
}, {-0.5, 0.25, 0, 0.5, 0.5, 0.5},
}, },
}, },
} },
}
function stairsplus:register_stair_alias(modname_old, subname_old, modname_new, subname_new)
local defs = stairsplus.copytable(stairs_defs)
for alternate, def in pairs(defs) do
minetest.register_alias(modname_old .. ":stair_" .. subname_old .. alternate, modname_new .. ":stair_" .. subname_new .. alternate)
end
end
function stairsplus:register_stair_alias_force(modname_old, subname_old, modname_new, subname_new)
local defs = stairsplus.copytable(stairs_defs)
for alternate, def in pairs(defs) do
minetest.register_alias_force(modname_old .. ":stair_" .. subname_old .. alternate, modname_new .. ":stair_" .. subname_new .. alternate)
end
end
function stairsplus:register_stair(modname, subname, recipeitem, fields)
local defs = stairsplus.copytable(stairs_defs)
local desc = S("%s Stairs"):format(fields.description) local desc = S("%s Stairs"):format(fields.description)
for alternate, def in pairs(defs) do for alternate, def in pairs(defs) do
for k, v in pairs(fields) do for k, v in pairs(fields) do
@ -113,11 +128,11 @@ function stairsplus:register_stair(modname, subname, recipeitem, fields)
end end
def.drawtype = "nodebox" def.drawtype = "nodebox"
def.paramtype = "light" def.paramtype = "light"
def.paramtype2 = "facedir" def.paramtype2 = def.paramtype2 or "facedir"
def.on_place = minetest.rotate_node def.on_place = minetest.rotate_node
def.description = desc def.description = desc
def.groups = stairsplus:prepare_groups(fields.groups) def.groups = stairsplus:prepare_groups(fields.groups)
if fields.drop then if fields.drop and not (type(fields.drop) == "table") then
def.drop = modname .. ":stair_" .. fields.drop .. alternate def.drop = modname .. ":stair_" .. fields.drop .. alternate
end end
minetest.register_node(":" .. modname .. ":stair_" .. subname .. alternate, def) minetest.register_node(":" .. modname .. ":stair_" .. subname .. alternate, def)
@ -127,7 +142,7 @@ function stairsplus:register_stair(modname, subname, recipeitem, fields)
circular_saw.known_nodes[recipeitem] = {modname, subname} circular_saw.known_nodes[recipeitem] = {modname, subname}
-- Some saw-less recipes: -- Some saw-less recipes:
minetest.register_craft({ minetest.register_craft({
output = modname .. ":stair_" .. subname .. " 8", output = modname .. ":stair_" .. subname .. " 8",
recipe = { recipe = {
@ -145,67 +160,67 @@ function stairsplus:register_stair(modname, subname, recipeitem, fields)
{recipeitem, recipeitem, recipeitem}, {recipeitem, recipeitem, recipeitem},
}, },
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":stair_" .. subname, output = modname .. ":stair_" .. subname,
recipe = {modname .. ":panel_" .. subname, modname .. ":slab_" .. subname}, recipe = {modname .. ":panel_" .. subname, modname .. ":slab_" .. subname},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":stair_" .. subname, output = modname .. ":stair_" .. subname,
recipe = {modname .. ":panel_" .. subname, modname .. ":panel_" .. subname, modname .. ":panel_" .. subname}, recipe = {modname .. ":panel_" .. subname, modname .. ":panel_" .. subname, modname .. ":panel_" .. subname},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":stair_" .. subname .. "_outer", output = modname .. ":stair_" .. subname .. "_outer",
recipe = {modname .. ":micro_" .. subname, modname .. ":slab_" .. subname}, recipe = {modname .. ":micro_" .. subname, modname .. ":slab_" .. subname},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":stair_" .. subname .. "_half", output = modname .. ":stair_" .. subname .. "_half",
recipe = {modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname}, recipe = {modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":stair_" .. subname .. "_half", output = modname .. ":stair_" .. subname .. "_half",
recipe = {modname .. ":panel_" .. subname, modname .. ":micro_" .. subname}, recipe = {modname .. ":panel_" .. subname, modname .. ":micro_" .. subname},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":stair_" .. subname .. "_right_half", output = modname .. ":stair_" .. subname .. "_right_half",
recipe = {modname .. ":stair_" .. subname .. "_half"}, recipe = {modname .. ":stair_" .. subname .. "_half"},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":stair_" .. subname, output = modname .. ":stair_" .. subname,
recipe = {modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname}, recipe = {modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":stair_" .. subname .. "_inner", output = modname .. ":stair_" .. subname .. "_inner",
recipe = {modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname}, recipe = {modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":stair_" .. subname .. "_outer", output = modname .. ":stair_" .. subname .. "_outer",
recipe = {modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname}, recipe = {modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname, modname .. ":micro_" .. subname},
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = modname .. ":stair_" .. subname, output = modname .. ":stair_" .. subname,
recipe = {modname .. ":panel_" .. subname, modname .. ":panel_" .. subname, modname .. ":panel_" .. subname}, recipe = {modname .. ":panel_" .. subname, modname .. ":panel_" .. subname, modname .. ":panel_" .. subname},
}) })
minetest.register_craft({ -- See mirrored variation of the recipe below. minetest.register_craft({ -- See mirrored variation of the recipe below.
output = modname .. ":stair_" .. subname .. "_alt", output = modname .. ":stair_" .. subname .. "_alt",
recipe = { recipe = {
@ -213,7 +228,7 @@ function stairsplus:register_stair(modname, subname, recipeitem, fields)
{"" , modname .. ":panel_" .. subname}, {"" , modname .. ":panel_" .. subname},
}, },
}) })
minetest.register_craft({ -- Mirrored variation of the recipe above. minetest.register_craft({ -- Mirrored variation of the recipe above.
output = modname .. ":stair_" .. subname .. "_alt", output = modname .. ":stair_" .. subname .. "_alt",
recipe = { recipe = {

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 B