123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487 |
- ---------------------------------------------------------------------------------------
- -- decoration and building material
- ---------------------------------------------------------------------------------------
- -- * includes a wagon wheel that can be used as decoration on walls or to build (stationary) wagons
- -- * dirt road - those are more natural in small old villages than cobble roads
- -- * loam - no, old buildings are usually not built out of clay; loam was used
- -- * straw - useful material for roofs
- -- * glass pane - an improvement compared to fence posts as windows :-)
- ---------------------------------------------------------------------------------------
- local S = cottages.S
- -- supported modes:
- -- * simple: only a straight dirt road; no curves, junctions etc.
- -- * flat: each node is a full node; junction, t-junction and corner are included
- -- * nodebox: like flat - except that each node has a nodebox that fits to that road node
- -- * mesh: like nodebox - except that it uses a nice roundish model
- local cottages_feldweg_mode = minetest.settings:get("cottages_feldweg_mode")
- if( cottages_feldweg_mode ~= "mesh"
- and cottages_feldweg_mode ~= "flat"
- and cottages_feldweg_mode ~= "nodebox"
- and cottages_feldweg_mode ~= "flat") then
- cottages_feldweg_mode = "mesh";
- -- add the setting to the minetest.conf so that the player can set it there
- minetest.settings:set("cottages_feldweg_mode", "mesh")
- end
- local function register_recipes(include_end)
-
- minetest.register_craft({
- output = "cottages:feldweg_crossing 5",
- recipe = {
- {"", "cottages:feldweg", "" },
- {"cottages:feldweg", "cottages:feldweg", "cottages:feldweg"},
- {"", "cottages:feldweg", "" },
- },
- })
-
- minetest.register_craft({
- output = "cottages:feldweg_t_junction 5",
- recipe = {
- {"", "cottages:feldweg", "" },
- {"", "cottages:feldweg", "" },
- {"cottages:feldweg", "cottages:feldweg", "cottages:feldweg"}
-
- },
- })
-
- minetest.register_craft({
- output = "cottages:feldweg_curve 5",
- recipe = {
- {"cottages:feldweg", "", "" },
- {"cottages:feldweg", "", ""},
- {"cottages:feldweg", "cottages:feldweg", "cottages:feldweg"}
- },
- })
-
- if include_end then
- minetest.register_craft({
- output = "cottages:feldweg_end 5",
- recipe = {
- {"cottages:feldweg", "", "cottages:feldweg" },
- {"cottages:feldweg", "cottages:feldweg", "cottages:feldweg"}
- },
- })
- end
- end
- --- a nice dirt road for small villages or paths to fields
- if( cottages_feldweg_mode == "simple" or cottages_feldweg_mode == "flat" ) then
- minetest.register_node("cottages:feldweg", {
- description = S("dirt road"),
- tiles = {"cottages_feldweg.png","default_dirt.png", "default_dirt.png^default_grass_side.png"},
- paramtype2 = "facedir",
- groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
- legacy_facedir_simple = true,
- groups = {crumbly=3},
- sounds = cottages.sounds.dirt,
- is_ground_content = false,
- })
- end
- -- add crossing, t-junction and corner
- --
- -- flat - just textures, full blocks
- --
- if( cottages_feldweg_mode == "flat" ) then
- minetest.register_node("cottages:feldweg_crossing", {
- description = S("dirt road crossing"),
- tiles = {"cottages_feldweg_kreuzung.png","default_dirt.png", "default_dirt.png^default_grass_side.png"},
- paramtype2 = "facedir",
- groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
- legacy_facedir_simple = true,
- groups = {crumbly=3},
- sounds = cottages.sounds.dirt,
- is_ground_content = false,
- })
- minetest.register_node("cottages:feldweg_t_junction", {
- description = S("dirt road t junction"),
- tiles = {"cottages_feldweg_t-kreuzung.png^[transform2","default_dirt.png", "default_dirt.png^default_grass_side.png"},
- paramtype2 = "facedir",
- groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
- legacy_facedir_simple = true,
- groups = {crumbly=3},
- sounds = cottages.sounds.dirt,
- is_ground_content = false,
- })
- minetest.register_node("cottages:feldweg_curve", {
- description = S("dirt road curve"),
- tiles = {"cottages_feldweg_ecke.png^[transform2","default_dirt.png", "default_dirt.png^default_grass_side.png"},
- paramtype2 = "facedir",
- groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
- legacy_facedir_simple = true,
- groups = {crumbly=3},
- sounds = cottages.sounds.dirt,
- is_ground_content = false,
- })
-
- register_recipes(false)
- --
- -- cube-style nodebox version
- --
- elseif( cottages_feldweg_mode == "nodebox" ) then
- minetest.register_node("cottages:feldweg", {
- description = S("dirt road"),
- tiles = {"cottages_feldweg_orig.png","default_dirt.png", "default_dirt.png^default_grass_side.png"},
- paramtype2 = "facedir",
- roups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
- legacy_facedir_simple = true,
- groups = {crumbly=3},
- sounds = cottages.sounds.dirt,
- is_ground_content = false,
- drawtype = "nodebox",
- -- top, bottom, side1, side2, inner, outer
- paramtype = "light",
- node_box = {
- type = "fixed",
- fixed = {
- { -0.5, -0.5, -0.5, 0.5, 0.5-2/16, 0.5},
- -- Rasenkanten
- { -0.5, 0.5-2/16, -0.5, -0.5+3/16, 0.5, 0.5},
- { 0.5-3/16, 0.5-2/16, -0.5, 0.5, 0.5, 0.5},
- -- uebergang zwischen Wagenspur und Rasenkante
- { -0.5+3/16, 0.5-2/16, -0.5, -0.5+4/16, 0.5-1/16, 0.5},
- { 0.5-4/16, 0.5-2/16, -0.5, 0.5-3/16, 0.5-1/16, 0.5},
- },
- },
- selection_box = {
- type = "fixed",
- fixed = {
- { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
- },
- },
- })
- minetest.register_node("cottages:feldweg_crossing", {
- description = S("dirt road crossing"),
- tiles = {"cottages_feldweg_kreuzung.png","default_dirt.png", "default_dirt.png^default_grass_side.png"},
- paramtype2 = "facedir",
- groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
- legacy_facedir_simple = true,
- groups = {crumbly=3},
- sounds = cottages.sounds.dirt,
- is_ground_content = false,
- drawtype = "nodebox",
- -- top, bottom, side1, side2, inner, outer
- paramtype = "light",
- node_box = {
- type = "fixed",
- fixed = {
- { -0.5, -0.5, -0.5, 0.5, 0.5-2/16, 0.5},
- -- Rasenkanten
- { -0.5, 0.5-2/16, -0.5, -0.5+3/16, 0.5, -0.5+3/16},
- { 0.5-3/16, 0.5-2/16, -0.5, 0.5, 0.5, -0.5+3/16},
- { -0.5, 0.5-2/16, 0.5-3/16, -0.5+3/16, 0.5, 0.5},
- { 0.5-3/16, 0.5-2/16, 0.5-3/16, 0.5, 0.5, 0.5},
- -- uebergang zwischen Wagenspur und Rasenkante
- { -0.5+3/16, 0.5-2/16, -0.5, -0.5+4/16, 0.5-1/16, -0.5+4/16},
- { 0.5-4/16, 0.5-2/16, -0.5, 0.5-3/16, 0.5-1/16, -0.5+4/16},
- { -0.5+3/16, 0.5-2/16, 0.5-4/16, -0.5+4/16, 0.5-1/16, 0.5},
- { 0.5-4/16, 0.5-2/16, 0.5-4/16, 0.5-3/16, 0.5-1/16, 0.5},
- { -0.5, 0.5-2/16, -0.5+3/16, -0.5+3/16, 0.5-1/16, -0.5+4/16},
- { 0.5-3/16, 0.5-2/16, -0.5+3/16, 0.5, 0.5-1/16, -0.5+4/16},
- { -0.5, 0.5-2/16, 0.5-4/16, -0.5+3/16, 0.5-1/16, 0.5-3/16},
- { 0.5-3/16, 0.5-2/16, 0.5-4/16, 0.5, 0.5-1/16, 0.5-3/16},
- },
- },
- selection_box = {
- type = "fixed",
- fixed = {
- { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
- },
- },
- })
- minetest.register_node("cottages:feldweg_t_junction", {
- description = S("dirt road t junction"),
- tiles = {"cottages_feldweg_t-kreuzung.png^[transform2","default_dirt.png", "default_dirt.png^default_grass_side.png"},
- paramtype2 = "facedir",
- groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
- legacy_facedir_simple = true,
- groups = {crumbly=3},
- sounds = cottages.sounds.dirt,
- is_ground_content = false,
- drawtype = "nodebox",
- -- top, bottom, side1, side2, inner, outer
- paramtype = "light",
- node_box = {
- type = "fixed",
- fixed = {
- { -0.5, -0.5, -0.5, 0.5, 0.5-2/16, 0.5},
- -- Rasenkanten
- { -0.5, 0.5-2/16, -0.5, -0.5+3/16, 0.5, -0.5+3/16},
- { -0.5, 0.5-2/16, 0.5-3/16, -0.5+3/16, 0.5, 0.5},
- -- Rasenkante seitlich durchgehend
- { 0.5-3/16, 0.5-2/16, -0.5, 0.5, 0.5, 0.5},
- -- uebergang zwischen Wagenspur und Rasenkante
- { -0.5+3/16, 0.5-2/16, -0.5, -0.5+4/16, 0.5-1/16, -0.5+4/16},
- { -0.5+3/16, 0.5-2/16, 0.5-4/16, -0.5+4/16, 0.5-1/16, 0.5},
- { -0.5, 0.5-2/16, -0.5+3/16, -0.5+3/16, 0.5-1/16, -0.5+4/16},
- { -0.5, 0.5-2/16, 0.5-4/16, -0.5+3/16, 0.5-1/16, 0.5-3/16},
- -- Ueberganng seitlich durchgehend
- { 0.5-4/16, 0.5-2/16, -0.5, 0.5-3/16, 0.5-1/16, 0.5},
- },
- },
- selection_box = {
- type = "fixed",
- fixed = {
- { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
- },
- },
- })
- minetest.register_node("cottages:feldweg_curve", {
- description = S("dirt road curve"),
- tiles = {"cottages_feldweg_ecke.png^[transform2","default_dirt.png", "default_dirt.png^default_grass_side.png"},
- paramtype2 = "facedir",
- groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
- legacy_facedir_simple = true,
- groups = {crumbly=3},
- sounds = cottages.sounds.dirt,
- is_ground_content = false,
- drawtype = "nodebox",
- -- top, bottom, side1, side2, inner, outer
- paramtype = "light",
- node_box = {
- type = "fixed",
- fixed = {
- { -0.5, -0.5, -0.5, 0.5, 0.5-2/16, 0.5},
- -- Rasenkante vorne durchgehend
- { -0.5, 0.5-2/16, -0.5, 0.5-3/16, 0.5, -0.5+3/16},
- -- Rasenkanten
- { -0.5, 0.5-2/16, 0.5-3/16, -0.5+3/16, 0.5, 0.5},
- -- Rasenkante seitlich durchgehend
- { 0.5-3/16, 0.5-2/16, -0.5, 0.5, 0.5, 0.5},
- -- uebergang zwischen Wagenspur und Rasenkante
- { -0.5+3/16, 0.5-2/16, 0.5-4/16, -0.5+4/16, 0.5-1/16, 0.5},
- -- Uebergang vorne durchgehend
- { -0.5, 0.5-2/16, -0.5+3/16, 0.5-3/16, 0.5-1/16, -0.5+4/16},
- { -0.5, 0.5-2/16, 0.5-4/16, -0.5+3/16, 0.5-1/16, 0.5-3/16},
- -- Ueberganng seitlich durchgehend
- { 0.5-4/16, 0.5-2/16, -0.5, 0.5-3/16, 0.5-1/16, 0.5},
- },
- },
- selection_box = {
- type = "fixed",
- fixed = {
- { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
- },
- },
- })
- register_recipes(false)
-
- --
- -- the mesh version (rounded); provided and created by VanessaE
- --
- elseif( cottages_feldweg_mode == "mesh" ) then
- -- a nice dirt road for small villages or paths to fields
- minetest.register_node("cottages:feldweg", {
- description = S("dirt road"),
- paramtype2 = "facedir",
- groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
- legacy_facedir_simple = true,
- groups = {crumbly=3},
- sounds = cottages.sounds.dirt,
- is_ground_content = false,
- tiles = {"cottages_feldweg_end.png","default_dirt.png^default_grass_side.png",
- "default_dirt.png", "default_grass.png",
- "cottages_feldweg_surface.png",
- "cottages_feldweg_surface.png^cottages_feldweg_edges.png"},
- paramtype = "light",
- drawtype = "mesh",
- mesh = "feldweg.obj",
- })
- minetest.register_node("cottages:feldweg_crossing", {
- description = S("dirt road crossing"),
- paramtype2 = "facedir",
- groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
- legacy_facedir_simple = true,
- groups = {crumbly=3},
- sounds = cottages.sounds.dirt,
- is_ground_content = false,
- tiles = {"cottages_feldweg_end.png","default_dirt.png",
- "default_grass.png","cottages_feldweg_surface.png",
- "cottages_feldweg_surface.png^cottages_feldweg_edges.png"},
- paramtype = "light",
- drawtype = "mesh",
- mesh = "feldweg-crossing.obj",
- })
-
- minetest.register_node("cottages:feldweg_t_junction", {
- description = S("dirt road t junction"),
- paramtype2 = "facedir",
- groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
- legacy_facedir_simple = true,
- groups = {crumbly=3},
- sounds = cottages.sounds.dirt,
- is_ground_content = false,
- tiles = {"cottages_feldweg_end.png","default_dirt.png^default_grass_side.png", "default_dirt.png",
- "default_grass.png","cottages_feldweg_surface.png",
- "cottages_feldweg_surface.png^cottages_feldweg_edges.png"},
- paramtype = "light",
- drawtype = "mesh",
- mesh = "feldweg-T-junction.obj",
- })
-
- minetest.register_node("cottages:feldweg_curve", {
- description = S("dirt road curve"),
- paramtype2 = "facedir",
- groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
- legacy_facedir_simple = true,
- groups = {crumbly=3},
- sounds = cottages.sounds.dirt,
- is_ground_content = false,
- tiles = {"default_dirt.png^default_grass_side.png","default_grass.png",
- "default_dirt.png^default_grass_side.png","cottages_feldweg_surface.png",
- "default_dirt.png","cottages_feldweg_surface.png^cottages_feldweg_edges.png"},
- paramtype = "light",
- drawtype = "mesh",
- mesh = "feldweg-curve.obj",
- })
-
- minetest.register_node("cottages:feldweg_end", {
- description = S("dirt road end"),
- paramtype2 = "facedir",
- groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
- legacy_facedir_simple = true,
- groups = {crumbly=3},
- sounds = cottages.sounds.dirt,
- is_ground_content = false,
- tiles = {"cottages_feldweg_end.png","default_dirt.png^default_grass_side.png",
- "default_dirt.png", "default_grass.png",
- "cottages_feldweg_surface.png^cottages_feldweg_edges.png",
- "cottages_feldweg_surface.png"},
- paramtype = "light",
- drawtype = "mesh",
- mesh = "feldweg_end.obj",
- })
-
-
- register_recipes(true)
-
-
- end
- -- create stairs if possible
- if( minetest.get_modpath("stairs") and stairs and stairs.register_stair_and_slab) then
- stairs.register_stair_and_slab("feldweg", "cottages:feldweg",
- {snappy=2,choppy=2,oddly_breakable_by_hand=2},
- {"cottages_feldweg.png","default_dirt.png", "default_grass.png","default_grass.png","cottages_feldweg.png","cottages_feldweg.png"},
- S("Dirt Road Stairs"),
- S("Dirt Road, half height"),
- cottages.sounds.dirt)
- end
- if( cottages_feldweg_mode == "nodebox" or cottages_feldweg_mode == "mesh" ) then
- 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_long = {
- type = "fixed",
- fixed = {
- {-0.5, -0.5, -1.5, 0.5, -0.10, 0.5},
- {-0.5, -0.25, -1.3, 0.5, -0.25, 0.5},
- {-0.5, -0.25, -1.0, 0.5, 0, 0.5},
- {-0.5, 0, -0.5, 0.5, 0.25, 0.5},
- {-0.5, 0.25, 0, 0.5, 0.5, 0.5}
- }};
- minetest.register_node("cottages:feldweg_slope", {
- description = S("dirt road slope"),
- paramtype2 = "facedir",
- groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
- legacy_facedir_simple = true,
- groups = {crumbly=3},
- sounds = cottages.sounds.dirt,
- is_ground_content = false,
- tiles = {"cottages_feldweg_end.png","default_dirt.png^default_grass_side.png",
- "default_dirt.png", "default_grass.png",
- "cottages_feldweg_surface.png",
- "cottages_feldweg_surface.png^cottages_feldweg_edges.png"},
- paramtype = "light",
- drawtype = "mesh",
- mesh = "feldweg_slope.obj",
- collision_box = box_slope,
- selection_box = box_slope,
- })
-
-
- minetest.register_node("cottages:feldweg_slope_long", {
- description = S("dirt road slope long"),
- paramtype2 = "facedir",
- groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
- legacy_facedir_simple = true,
- groups = {crumbly=3},
- sounds = cottages.sounds.dirt,
- is_ground_content = false,
- tiles = {"cottages_feldweg_end.png","default_dirt.png^default_grass_side.png",
- "default_dirt.png", "default_grass.png",
- "cottages_feldweg_surface.png",
- "cottages_feldweg_surface.png^cottages_feldweg_edges.png"},
- paramtype = "light",
- drawtype = "mesh",
- mesh = "feldweg_slope_long.obj",
- collision_box = box_slope_long,
- selection_box = box_slope_long,
- })
-
-
- minetest.register_craft({
- output = "cottages:feldweg_slope 3",
- recipe = {
- {"cottages:feldweg", "", "" },
- {"cottages:feldweg", "cottages:feldweg", ""}
- },
- })
-
- minetest.register_craft({
- output = "cottages:feldweg_slope_long 4",
- recipe = {
- {"cottages:feldweg", "", "" },
- {"cottages:feldweg", "cottages:feldweg", "cottages:feldweg"}
- },
- })
- end
|