123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 |
- local S = minetest.get_translator("testnodes")
- -- Nodebox examples and tests.
- -- An simple example nodebox with one centered box
- minetest.register_node("testnodes:nodebox_fixed", {
- description = S("Fixed Nodebox Test Node").."\n"..
- S("Nodebox is always the same"),
- tiles = {"testnodes_nodebox.png"},
- drawtype = "nodebox",
- paramtype = "light",
- node_box = {
- type = "fixed",
- fixed = {-0.25, -0.25, -0.25, 0.25, 0.25, 0.25},
- },
- groups = {dig_immediate=3},
- })
- -- 50% higher than a regular node
- minetest.register_node("testnodes:nodebox_overhigh", {
- description = S("+50% high Nodebox Test Node"),
- tiles = {"testnodes_nodebox.png"},
- drawtype = "nodebox",
- paramtype = "light",
- node_box = {
- type = "fixed",
- fixed = {-0.5, -0.5, -0.5, 0.5, 1, 0.5},
- },
- groups = {dig_immediate=3},
- })
- -- 95% higher than a regular node
- minetest.register_node("testnodes:nodebox_overhigh2", {
- description = S("+95% high Nodebox Test Node"),
- tiles = {"testnodes_nodebox.png"},
- drawtype = "nodebox",
- paramtype = "light",
- node_box = {
- type = "fixed",
- -- Y max: more is possible, but glitchy
- fixed = {-0.5, -0.5, -0.5, 0.5, 1.45, 0.5},
- },
- groups = {dig_immediate=3},
- })
- -- Height of nodebox changes with its param2 value
- minetest.register_node("testnodes:nodebox_leveled", {
- description = S("Leveled Nodebox Test Node").."\n"..
- S("param2 = height (0..127)"),
- tiles = {"testnodes_nodebox.png^[colorize:#0F0:32"},
- drawtype = "nodebox",
- paramtype = "light",
- paramtype2 = "leveled",
- node_box = {
- type = "leveled",
- fixed = {-0.5, 0.0, -0.5, 0.5, -0.499, 0.5},
- },
- groups = {dig_immediate=3},
- })
- local nodebox_wall = {
- type = "connected",
- fixed = {-0.125, -0.500, -0.125, 0.125, 0.500, 0.125},
- connect_front = {-0.125, -0.500, -0.500, 0.125, 0.400, -0.125},
- connect_back = {-0.125, -0.500, 0.125, 0.125, 0.400, 0.500},
- connect_left = {-0.500, -0.500, -0.125, -0.125, 0.400, 0.125},
- connect_right = {0.125, -0.500, -0.125, 0.500, 0.400, 0.125},
- }
- local nodebox_cable = {
- type = "connected",
- fixed = {-2/16, -2/16, -2/16, 2/16, 2/16, 2/16},
- connect_front = {-1/16, -1/16, -8/16, 1/16, 1/16, -2/16},
- connect_back = {-1/16, -1/16, 2/16, 1/16, 1/16, 8/16},
- connect_left = {-8/16, -1/16, -1/16, -2/16, 1/16, 1/16},
- connect_right = { 2/16, -1/16, -1/16, 8/16, 1/16, 1/16},
- connect_bottom = {-1/16, -8/16, -1/16, 1/16, -2/16, 1/16},
- connect_top = {-1/16, 2/16, -1/16, 1/16, 8/16, 1/16},
- }
- local nodebox_wall_thick = {
- type = "connected",
- fixed = {-0.25, -0.500, -0.25, 0.25, 0.500, 0.25},
- connect_front = {-0.25, -0.500, -0.500, 0.25, 0.400, -0.25},
- connect_back = {-0.25, -0.500, 0.25, 0.25, 0.400, 0.500},
- connect_left = {-0.500, -0.500, -0.25, -0.25, 0.400, 0.25},
- connect_right = {0.25, -0.500, -0.25, 0.500, 0.400, 0.25},
- }
- -- Wall-like nodebox that connects to 4 neighbors
- minetest.register_node("testnodes:nodebox_connected", {
- description = S("Connected Nodebox Test Node (4 Side Wall)").."\n"..
- S("Connects to 4 neighbors sideways"),
- tiles = {"testnodes_nodebox.png^[colorize:#F00:32"},
- groups = {connected_nodebox=1, dig_immediate=3},
- drawtype = "nodebox",
- paramtype = "light",
- connects_to = {"group:connected_nodebox"},
- connect_sides = {"front", "back", "left", "right"},
- node_box = nodebox_wall,
- })
- -- Cable-like nodebox that connects to 6 neighbors
- minetest.register_node("testnodes:nodebox_connected_6side", {
- description = S("Connected Nodebox Test Node (6 Side Cable)").."\n"..
- S("Connects to 6 neighbors"),
- tiles = {"testnodes_nodebox.png^[colorize:#F00:32"},
- groups = {connected_nodebox=1, dig_immediate=3},
- drawtype = "nodebox",
- paramtype = "light",
- connects_to = {"group:connected_nodebox"},
- connect_sides = {"front", "back", "left", "right", "top", "bottom"},
- node_box = nodebox_cable,
- })
- -- More walls
- minetest.register_node("testnodes:nodebox_connected_facedir", {
- description = S("Facedir Connected Nodebox Test Node (4 Side Wall)").."\n"..
- S("Connects to neighbors").."\n"..
- S("param2 = facedir rotation of textures (not of the nodebox!)"),
- tiles = {
- "testnodes_1.png",
- "testnodes_2.png",
- "testnodes_3.png",
- "testnodes_4.png",
- "testnodes_5.png",
- "testnodes_6.png",
- },
- groups = {connected_nodebox=1, dig_immediate=3},
- drawtype = "nodebox",
- paramtype = "light",
- paramtype2 = "facedir",
- connects_to = {"group:connected_nodebox"},
- connect_sides = {"front", "back", "left", "right"},
- node_box = nodebox_wall_thick,
- })
- minetest.register_node("testnodes:nodebox_connected_4dir", {
- description = S("4Dir Connected Nodebox Test Node").."\n"..
- S("Connects to neighbors").."\n"..
- S("param2 = 4dir rotation of textures (not of the nodebox!)"),
- tiles = {
- "testnodes_1f.png",
- "testnodes_2f.png",
- "testnodes_3f.png",
- "testnodes_4f.png",
- "testnodes_5f.png",
- "testnodes_6f.png",
- },
- groups = {connected_nodebox=1, dig_immediate=3},
- drawtype = "nodebox",
- paramtype = "light",
- paramtype2 = "4dir",
- connects_to = {"group:connected_nodebox"},
- connect_sides = {"front", "back", "left", "right"},
- node_box = nodebox_wall_thick,
- })
- -- Doesn't connect, but lets other nodes connect
- minetest.register_node("testnodes:facedir_to_connect_to", {
- description = S("Facedir Node that connected Nodeboxes connect to").."\n"..
- S("Neighbors connect only to left (blue 4) and top (yellow 1) face").."\n"..
- S("(Currently broken for param2 >= 4, see FIXME in nodedef.cpp)").."\n"..
- S("param2 = facedir"),
- tiles = {
- "testnodes_1.png",
- "testnodes_2.png",
- "testnodes_3.png",
- "testnodes_4.png",
- "testnodes_5.png",
- "testnodes_6.png",
- },
- groups = {connected_nodebox=1, dig_immediate=3},
- drawtype = "normal",
- paramtype2 = "facedir",
- connect_sides = {"left", "top"},
- })
- -- 3D sign and button:
- -- These are example nodes for more realistic example uses
- -- of wallmounted_rotate_vertical
- minetest.register_node("testnodes:sign3d", {
- description = S("Nodebox Sign, Nodebox Type \"fixed\""),
- drawtype = "nodebox",
- paramtype = "light",
- paramtype2 = "wallmounted",
- wallmounted_rotate_vertical = true,
- sunlight_propagates = true,
- walkable = false,
- tiles = {
- "testnodes_sign3d.png",
- },
- groups = { dig_immediate = 3 },
- node_box = {
- type = "fixed",
- fixed = {-0.4375, -0.5, -0.3125, 0.4375, -0.4375, 0.3125},
- },
- })
- minetest.register_node("testnodes:sign3d_wallmounted", {
- description = S("Nodebox Sign, Nodebox Type \"wallmounted\""),
- drawtype = "nodebox",
- paramtype = "light",
- paramtype2 = "wallmounted",
- wallmounted_rotate_vertical = true,
- sunlight_propagates = true,
- walkable = false,
- tiles = {
- "testnodes_sign3d.png^[colorize:#ff0000:127",
- },
- groups = { dig_immediate = 3 },
- node_box = {
- type = "wallmounted",
- wall_top = {-0.4375, 0.4375, -0.3125, 0.4375, 0.5, 0.3125},
- wall_bottom = {-0.4375, -0.5, -0.3125, 0.4375, -0.4375, 0.3125},
- wall_side = {-0.5, -0.3125, -0.4375, -0.4375, 0.3125, 0.4375},
- },
- })
- minetest.register_node("testnodes:button", {
- description = S("Button Nodebox Test Node"),
- drawtype = "nodebox",
- paramtype = "light",
- paramtype2 = "wallmounted",
- wallmounted_rotate_vertical = true,
- sunlight_propagates = true,
- walkable = false,
- tiles = {
- "testnodes_nodebox.png",
- },
- groups = { dig_immediate = 3 },
- node_box = {
- type = "fixed",
- fixed = { -4/16, -8/16, -2/16, 4/16, -6/16, 2/16 },
- },
- })
|