aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCalinou <calinou@opmbx.org>2014-10-28 22:12:40 +0100
committerCalinou <calinou@opmbx.org>2014-10-28 22:12:40 +0100
commit851a6db870f9ee4a2e644c3cc1ee9cf7d5f63776 (patch)
tree05408cad632f8fe0eefef6425e4cd558486c5811
parent84ee1ffae8e17c00cc20c166556b2fe39fa54c7c (diff)
downloadmoreblocks-851a6db870f9ee4a2e644c3cc1ee9cf7d5f63776.tar.gz
moreblocks-851a6db870f9ee4a2e644c3cc1ee9cf7d5f63776.tar.bz2
moreblocks-851a6db870f9ee4a2e644c3cc1ee9cf7d5f63776.zip
Add slopes and their crafting.
-rw-r--r--models/moreblocks_slope.obj21
-rw-r--r--models/moreblocks_slope_half.obj23
-rw-r--r--models/moreblocks_slope_half_raised.obj26
-rw-r--r--models/moreblocks_slope_inner.obj26
-rw-r--r--models/moreblocks_slope_inner_half.obj28
-rw-r--r--models/moreblocks_slope_inner_half_raised.obj31
-rw-r--r--models/moreblocks_slope_outer.obj18
-rw-r--r--models/moreblocks_slope_outer_cut.obj19
-rw-r--r--models/moreblocks_slope_outer_cut_half.obj20
-rw-r--r--models/moreblocks_slope_outer_cut_half_raised.obj23
-rw-r--r--models/moreblocks_slope_outer_half.obj22
-rw-r--r--models/moreblocks_slope_outer_half_raised.obj27
-rw-r--r--stairsplus/init.lua12
-rw-r--r--stairsplus/registrations.lua2
-rw-r--r--stairsplus/slopes.lua106
15 files changed, 398 insertions, 6 deletions
diff --git a/models/moreblocks_slope.obj b/models/moreblocks_slope.obj
new file mode 100644
index 0000000..05c853b
--- /dev/null
+++ b/models/moreblocks_slope.obj
@@ -0,0 +1,21 @@
+# Blender v2.69 (sub 0) OBJ File: 'slope_test_slope_onetexture.blend'
+# www.blender.org
+mtllib slope_test_slope_onetexture.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.000000 1.000000
+vt 0.000000 1.000000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+usemtl None
+s off
+f 1/1 2/2 3/3 4/4
+f 4/3 3/4 5/1 6/2
+f 2/1 5/3 3/4
+f 1/2 4/3 6/4
+f 2/1 1/2 6/3 5/4
diff --git a/models/moreblocks_slope_half.obj b/models/moreblocks_slope_half.obj
new file mode 100644
index 0000000..bc96bb8
--- /dev/null
+++ b/models/moreblocks_slope_half.obj
@@ -0,0 +1,23 @@
+# Blender v2.69 (sub 0) OBJ File: 'slope_test_slope_long_fronthalf_onetexture.blend'
+# www.blender.org
+mtllib slope_test_slope_long_fronthalf_onetexture.mtl
+o Cube_Cube.002
+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.000000 0.500000
+vt 0.000000 0.500000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+usemtl None
+s off
+f 1/1 2/2 3/3 4/4
+f 4/3 3/4 5/5 6/6
+f 2/1 5/3 3/4
+f 1/2 4/3 6/4
+f 2/5 1/6 6/3 5/4
diff --git a/models/moreblocks_slope_half_raised.obj b/models/moreblocks_slope_half_raised.obj
new file mode 100644
index 0000000..79e0dc0
--- /dev/null
+++ b/models/moreblocks_slope_half_raised.obj
@@ -0,0 +1,26 @@
+# Blender v2.69 (sub 0) OBJ File: 'slope_test_slope_long_backhalf_onetexture.blend'
+# www.blender.org
+mtllib slope_test_slope_long_backhalf_onetexture.mtl
+o Cube
+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
+v 0.500000 0.500000 0.500000
+vt 1.000000 1.000000
+vt 0.000000 0.500000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 0.500000
+vt 0.000000 1.000000
+usemtl None
+s off
+f 5/1 6/2 2/3 1/4
+f 6/5 7/2 3/3 2/4
+f 7/5 8/6 4/3 3/4
+f 8/1 5/6 1/3 4/4
+f 1/4 2/1 3/6 4/3
+f 8/6 7/3 6/4 5/1
diff --git a/models/moreblocks_slope_inner.obj b/models/moreblocks_slope_inner.obj
new file mode 100644
index 0000000..68fc170
--- /dev/null
+++ b/models/moreblocks_slope_inner.obj
@@ -0,0 +1,26 @@
+# Blender v2.69 (sub 0) OBJ File: 'slope_test_icorner_onetexture.blend'
+# www.blender.org
+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
+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.000000 1.000000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+s off
+f 6/1 1/2 7/3 8/4
+f 2/1 5/3 3/4
+f 2/1 1/2 5/4
+f 6/2 8/3 9/4
+f 9/1 8/2 7/3 3/4
+f 3/3 7/4 1/1 2/2
+f 1/1 6/2 9/3
+l 1 4
+l 3 4
diff --git a/models/moreblocks_slope_inner_half.obj b/models/moreblocks_slope_inner_half.obj
new file mode 100644
index 0000000..6decaea
--- /dev/null
+++ b/models/moreblocks_slope_inner_half.obj
@@ -0,0 +1,28 @@
+# Blender v2.69 (sub 0) OBJ File: 'slope_test_icorner_half_short_onetexture.blend'
+# www.blender.org
+mtllib slope_test_icorner_half_short_onetexture.mtl
+o Cube_Cube.000
+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
+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.000000 1.000000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+usemtl None
+s off
+f 6/1 1/2 7/3 8/4
+f 2/1 5/3 3/4
+f 2/1 1/2 5/4
+f 6/2 8/3 9/4
+f 9/1 8/2 7/3 3/4
+f 3/3 7/4 1/1 2/2
+f 1/1 6/2 9/3
+l 1 4
+l 3 4
diff --git a/models/moreblocks_slope_inner_half_raised.obj b/models/moreblocks_slope_inner_half_raised.obj
new file mode 100644
index 0000000..8aff6ca
--- /dev/null
+++ b/models/moreblocks_slope_inner_half_raised.obj
@@ -0,0 +1,31 @@
+# Blender v2.69 (sub 0) OBJ File: 'slope_test_icorner_half_tall_onetexture.blend'
+# www.blender.org
+mtllib slope_test_icorner_half_tall_onetexture.mtl
+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
+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.000000 -0.500000
+v -0.500000 -0.500000 -0.500000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 0.500000
+vt 0.000000 0.500000
+usemtl None
+s off
+f 6/1 1/2 7/3 8/4
+f 2/1 1/2 5/4
+f 3/3 7/4 1/1 2/2
+f 1/2 6/3 9/4
+f 3/1 10/2 8/3 7/4
+f 8/3 10/4 5/5 6/2
+f 3/4 2/1 5/6 10/3
+l 1 4
+l 3 4
diff --git a/models/moreblocks_slope_outer.obj b/models/moreblocks_slope_outer.obj
new file mode 100644
index 0000000..383c195
--- /dev/null
+++ b/models/moreblocks_slope_outer.obj
@@ -0,0 +1,18 @@
+# Blender v2.69 (sub 0) OBJ File: 'slope_test_ocorner_onetexture.blend'
+# www.blender.org
+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
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+s off
+f 3/1 2/2 4/3 5/4
+f 1/2 3/3 5/4
+f 1/1 2/3 3/4
+f 1/1 4/3 2/4
+f 1/2 5/3 4/4
diff --git a/models/moreblocks_slope_outer_cut.obj b/models/moreblocks_slope_outer_cut.obj
new file mode 100644
index 0000000..4608c69
--- /dev/null
+++ b/models/moreblocks_slope_outer_cut.obj
@@ -0,0 +1,19 @@
+# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_tall_2_onetexture.blend'
+# www.blender.org
+mtllib slope_test_corner_pyramid_tall_2_onetexture.mtl
+o Cube
+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.000000 0.000000
+vt 1.000000 0.000000
+vt 0.000000 1.000000
+vt 0.500000 1.000000
+usemtl None
+s off
+f 4/1 1/2 3/3
+f 2/3 4/4 3/2
+f 3/2 1/3 2/4
+f 1/3 4/5 2/2
diff --git a/models/moreblocks_slope_outer_cut_half.obj b/models/moreblocks_slope_outer_cut_half.obj
new file mode 100644
index 0000000..e4be882
--- /dev/null
+++ b/models/moreblocks_slope_outer_cut_half.obj
@@ -0,0 +1,20 @@
+# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_short_2_onetexture.blend'
+# www.blender.org
+mtllib slope_test_corner_pyramid_short_2_onetexture.mtl
+o Cube
+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.000000 0.500000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 0.000000 0.500000
+vt 0.000000 1.000000
+vt 0.500000 1.000000
+usemtl None
+s off
+f 4/1 1/2 3/3
+f 2/3 4/4 3/2
+f 3/2 1/3 2/5
+f 1/3 4/6 2/2
diff --git a/models/moreblocks_slope_outer_cut_half_raised.obj b/models/moreblocks_slope_outer_cut_half_raised.obj
new file mode 100644
index 0000000..65a3b8a
--- /dev/null
+++ b/models/moreblocks_slope_outer_cut_half_raised.obj
@@ -0,0 +1,23 @@
+# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_short_3_onetexture.blend'
+# www.blender.org
+mtllib slope_test_corner_pyramid_short_3_onetexture.mtl
+o Cube_Cube.002
+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.000000 -0.500000
+vt 0.000000 0.500000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 1.000000 0.500000
+usemtl None
+s off
+f 1/1 2/2 3/3 4/4
+f 4/5 3/2 5/3 6/6
+f 2/5 5/3 3/4
+f 1/2 4/3 6/4
+f 2/3 1/6 6/1 5/2
diff --git a/models/moreblocks_slope_outer_half.obj b/models/moreblocks_slope_outer_half.obj
new file mode 100644
index 0000000..0c56e26
--- /dev/null
+++ b/models/moreblocks_slope_outer_half.obj
@@ -0,0 +1,22 @@
+# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_short_1_onetexture.blend'
+# www.blender.org
+mtllib slope_test_corner_pyramid_short_1_onetexture.mtl
+o Cube
+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.000000 1.000000
+vt 0.000000 1.000000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 0.500000
+vt 0.000000 0.500000
+usemtl None
+s off
+f 1/1 2/2 3/3 4/4
+f 5/5 1/3 4/4
+f 3/4 5/6 4/3
+f 2/4 5/2 3/3
+f 1/4 5/1 2/3
diff --git a/models/moreblocks_slope_outer_half_raised.obj b/models/moreblocks_slope_outer_half_raised.obj
new file mode 100644
index 0000000..e4fa3d1
--- /dev/null
+++ b/models/moreblocks_slope_outer_half_raised.obj
@@ -0,0 +1,27 @@
+# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_tall_3_onetexture.blend'
+# www.blender.org
+mtllib slope_test_corner_pyramid_tall_3_onetexture.mtl
+o Cube_Cube.002
+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.000000 -0.500000
+v -0.500000 -0.500000 -0.500000
+v -0.500000 -0.000000 -0.500000
+vt 0.000000 0.500000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 1.000000 0.500000
+usemtl None
+s off
+f 1/1 2/2 3/3 4/4
+f 4/5 3/2 5/3 6/6
+f 8/3 4/5 6/2
+f 1/6 8/1 7/2 2/3
+f 4/5 8/3 1/4
+f 6/1 5/2 7/3 8/6
+f 5/5 3/2 2/3 7/4
diff --git a/stairsplus/init.lua b/stairsplus/init.lua
index ae09b7d..9717039 100644
--- a/stairsplus/init.lua
+++ b/stairsplus/init.lua
@@ -18,6 +18,7 @@ function stairsplus:register_all(modname, subname, recipeitem, fields)
end
self:register_stair(modname, subname, recipeitem, fields)
self:register_slab (modname, subname, recipeitem, fields)
+ self:register_slope(modname, subname, recipeitem, fields)
self:register_panel(modname, subname, recipeitem, fields)
self:register_micro(modname, subname, recipeitem, fields)
-- self:register_6dfacedir_conversion(modname, subname) -- Not needed as of Q3 2013, uncomment to fix old maps.
@@ -36,8 +37,9 @@ end
-- dofile(modpath.. "/aliases.lua") -- Not needed as of Q2 2013, uncomment to fix old maps.
-- dofile(modpath.. "/conversion.lua") -- Not needed as of Q2 2013, uncomment to fix old maps.
-dofile(modpath.. "/stairs.lua")
-dofile(modpath.. "/slabs.lua")
-dofile(modpath.. "/panels.lua")
-dofile(modpath.. "/microblocks.lua")
-dofile(modpath.. "/registrations.lua")
+dofile(modpath .. "/stairs.lua")
+dofile(modpath .. "/slabs.lua")
+dofile(modpath .. "/slopes.lua")
+dofile(modpath .. "/panels.lua")
+dofile(modpath .. "/microblocks.lua")
+dofile(modpath .. "/registrations.lua")
diff --git a/stairsplus/registrations.lua b/stairsplus/registrations.lua
index cc22d33..69f4e2f 100644
--- a/stairsplus/registrations.lua
+++ b/stairsplus/registrations.lua
@@ -10,7 +10,7 @@ local default_nodes = { -- Default stairs/slabs/panels/microblocks:
"bronzeblock",
"diamondblock",
"desert_stone",
--- "desert_cobble",
+ "desert_cobble",
"glass",
"tree",
"wood",
diff --git a/stairsplus/slopes.lua b/stairsplus/slopes.lua
new file mode 100644
index 0000000..f38a7ad
--- /dev/null
+++ b/stairsplus/slopes.lua
@@ -0,0 +1,106 @@
+local S -- Load translation library if intllib is installed:
+if intllib then
+ S = intllib.Getter(minetest.get_current_modname())
+else
+ S = function(s) return s end
+end
+
+local box_slope = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5},
+ {-0.5, -0.25, -0.25, 0.5, 0, 0.5},
+ {-0.5, 0, 0, 0.5, 0.25, 0.5},
+ {-0.5, 0.25, 0.25, 0.5, 0.5, 0.5}
+ }
+}
+
+local box_slope_half = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.5, -0.5, 0.5, -0.375, 0.5}, -- NodeBox1
+ {-0.5, -0.375, -0.25, 0.5, -0.25, 0.5}, -- NodeBox2
+ {-0.5, -0.25, 0, 0.5, -0.125, 0.5}, -- NodeBox3
+ {-0.5, -0.125, 0.25, 0.5, 0, 0.5}, -- NodeBox4
+ }
+}
+
+local box_slope_half_raised = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.5, -0.5, 0.5, 0.125, 0.5}, -- NodeBox1
+ {-0.5, 0.125, -0.25, 0.5, 0.25, 0.5}, -- NodeBox2
+ {-0.5, 0.25, 0, 0.5, 0.375, 0.5}, -- NodeBox3
+ {-0.5, 0.375, 0.25, 0.5, 0.5, 0.5}, -- NodeBox4
+ }
+}
+
+-- Node will be called <modname>:slope_<subname>
+
+function register_slope(modname, subname, recipeitem, groups, images, description, drop, light)
+ return stairsplus:register_slope(modname, subname, recipeitem, {
+ groups = groups,
+ tiles = images,
+ description = description,
+ drop = drop,
+ light_source = light,
+ sounds = default.node_sound_stone_defaults(),
+ })
+end
+
+function stairsplus:register_slope(modname, subname, recipeitem, fields)
+ local 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,
+ },
+ }
+
+ local desc = S("%s Slope"):format(fields.description)
+ for alternate, def in pairs(defs) do
+ def.drawtype = "mesh"
+ def.paramtype = "light"
+ def.paramtype2 = "facedir"
+ def.on_place = minetest.rotate_node
+ for k, v in pairs(fields) do
+ def[k] = v
+ end
+ def.description = desc
+ if fields.drop then
+ def.drop = modname.. ":slope_" ..fields.drop..alternate
+ end
+ minetest.register_node(":" ..modname.. ":slope_" ..subname..alternate, def)
+ end
+
+ -- Some saw-less recipes:
+
+ minetest.register_craft({
+ output = modname .. ":slope_" .. subname .. " 10",
+ recipe = {
+ {modname .. ":stair_" .. subname, "", ""},
+ {recipeitem, modname .. ":stair_" .. subname, ""},
+ {recipeitem, recipeitem, modname .. ":stair_" .. subname},
+ },
+ })
+
+ minetest.register_craft({
+ output = modname .. ":slope_" .. subname .. " 10",
+ recipe = {
+ {"", "", modname .. ":stair_" .. subname},
+ {"", modname .. ":stair_" .. subname, recipeitem},
+ {modname .. ":stair_" .. subname, recipeitem, recipeitem},
+ },
+ })
+end