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 :slope_ + +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