123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275 |
- -- Test Nodes: Node property tests
- local S = minetest.get_translator("testnodes")
- -- Is supposed to fall when it doesn't rest on solid ground
- minetest.register_node("testnodes:falling", {
- description = S("Falling Node"),
- tiles = {
- "testnodes_node.png",
- "testnodes_node.png",
- "testnodes_node_falling.png",
- },
- groups = { falling_node = 1, dig_immediate = 3 },
- })
- -- Same as falling node, but will stop falling on top of liquids
- minetest.register_node("testnodes:falling_float", {
- description = S("Falling+Floating Node"),
- groups = { falling_node = 1, float = 1, dig_immediate = 3 },
- tiles = {
- "testnodes_node.png",
- "testnodes_node.png",
- "testnodes_node_falling.png",
- },
- color = "cyan",
- })
- -- This node attaches to the floor and drops as item
- -- when the floor is gone.
- minetest.register_node("testnodes:attached", {
- description = S("Floor-Attached Node"),
- tiles = {
- "testnodes_attached_top.png",
- "testnodes_attached_bottom.png",
- "testnodes_attached_side.png",
- },
- groups = { attached_node = 1, dig_immediate = 3 },
- })
- -- This node attaches to the side of a node and drops as item
- -- when the node it attaches to is gone.
- minetest.register_node("testnodes:attached_wallmounted", {
- description = S("Wallmounted Attached Node"),
- paramtype2 = "wallmounted",
- tiles = {
- "testnodes_attachedw_top.png",
- "testnodes_attachedw_bottom.png",
- "testnodes_attachedw_side.png",
- },
- groups = { attached_node = 1, dig_immediate = 3 },
- })
- -- Jump disabled
- minetest.register_node("testnodes:nojump", {
- description = S("Non-jumping Node"),
- groups = {disable_jump=1, dig_immediate=3},
- tiles = {"testnodes_nojump_top.png", "testnodes_nojump_side.png"},
- })
- -- Jump disabled plant
- minetest.register_node("testnodes:nojump_walkable", {
- description = S("Non-jumping Plant Node"),
- drawtype = "plantlike",
- groups = {disable_jump=1, dig_immediate=3},
- walkable = false,
- tiles = {"testnodes_nojump_top.png"},
- })
- -- Climbable up and down with jump and sneak keys
- minetest.register_node("testnodes:climbable", {
- description = S("Climbable Node"),
- climbable = true,
- walkable = false,
- paramtype = "light",
- sunlight_propagates = true,
- is_ground_content = false,
- tiles ={"testnodes_climbable_side.png"},
- drawtype = "glasslike",
- groups = {dig_immediate=3},
- })
- -- Climbable only downwards with sneak key
- minetest.register_node("testnodes:climbable_nojump", {
- description = S("Downwards-climbable Node"),
- climbable = true,
- walkable = false,
- groups = {disable_jump=1, dig_immediate=3},
- drawtype = "glasslike",
- tiles ={"testnodes_climbable_nojump_side.png"},
- paramtype = "light",
- sunlight_propagates = true,
- })
- -- A liquid in which you can't rise
- minetest.register_node("testnodes:liquid_nojump", {
- description = S("Non-jumping Liquid Source Node"),
- liquidtype = "source",
- liquid_range = 1,
- liquid_viscosity = 0,
- liquid_alternative_flowing = "testnodes:liquidflowing_nojump",
- liquid_alternative_source = "testnodes:liquid_nojump",
- liquid_renewable = false,
- groups = {disable_jump=1, dig_immediate=3},
- walkable = false,
- drawtype = "liquid",
- tiles = {"testnodes_liquidsource.png^[colorize:#FF0000:127"},
- special_tiles = {
- {name = "testnodes_liquidsource.png^[colorize:#FF0000:127", backface_culling = false},
- {name = "testnodes_liquidsource.png^[colorize:#FF0000:127", backface_culling = true},
- },
- use_texture_alpha = "blend",
- paramtype = "light",
- pointable = false,
- liquids_pointable = true,
- buildable_to = true,
- is_ground_content = false,
- post_effect_color = {a = 70, r = 255, g = 0, b = 200},
- })
- -- A liquid in which you can't rise (flowing variant)
- minetest.register_node("testnodes:liquidflowing_nojump", {
- description = S("Non-jumping Flowing Liquid Node"),
- liquidtype = "flowing",
- liquid_range = 1,
- liquid_viscosity = 0,
- liquid_alternative_flowing = "testnodes:liquidflowing_nojump",
- liquid_alternative_source = "testnodes:liquid_nojump",
- liquid_renewable = false,
- groups = {disable_jump=1, dig_immediate=3},
- walkable = false,
- drawtype = "flowingliquid",
- tiles = {"testnodes_liquidflowing.png^[colorize:#FF0000:127"},
- special_tiles = {
- {name = "testnodes_liquidflowing.png^[colorize:#FF0000:127", backface_culling = false},
- {name = "testnodes_liquidflowing.png^[colorize:#FF0000:127", backface_culling = false},
- },
- use_texture_alpha = "blend",
- paramtype = "light",
- paramtype2 = "flowingliquid",
- pointable = false,
- liquids_pointable = true,
- buildable_to = true,
- is_ground_content = false,
- post_effect_color = {a = 70, r = 255, g = 0, b = 200},
- })
- -- Nodes that modify fall damage (various damage modifiers)
- for i=-100, 100, 25 do
- if i ~= 0 then
- local subname, descnum
- if i < 0 then
- subname = "m"..math.abs(i)
- descnum = tostring(i)
- else
- subname = tostring(i)
- descnum = S("+@1", i)
- end
- local tex, color, desc
- if i > 0 then
- local val = math.floor((i/100)*255)
- tex = "testnodes_fall_damage_plus.png"
- color = { b=0, g=255-val, r=255, a=255 }
- desc = S("Fall Damage Node (+@1%)", i)
- else
- tex = "testnodes_fall_damage_minus.png"
- if i == -100 then
- color = { r=0, b=0, g=255, a=255 }
- else
- local val = math.floor((math.abs(i)/100)*255)
- color = { r=0, b=255, g=255-val, a=255 }
- end
- desc = S("Fall Damage Node (-@1%)", math.abs(i))
- end
- minetest.register_node("testnodes:damage"..subname, {
- description = desc,
- groups = {fall_damage_add_percent=i, dig_immediate=3},
- tiles = { tex },
- is_ground_content = false,
- color = color,
- })
- end
- end
- -- Bouncy nodes (various bounce levels)
- for i=20, 180, 20 do
- local val = math.floor(((i-20)/200)*255)
- minetest.register_node("testnodes:bouncy"..i, {
- description = S("Bouncy Node (@1%)", i),
- groups = {bouncy=i, dig_immediate=3},
- tiles ={"testnodes_bouncy.png"},
- is_ground_content = false,
- color = { r=255, g=255-val, b=val, a=255 },
- })
- end
- -- Slippery nodes (various slippery levels)
- for i=1, 5 do
- minetest.register_node("testnodes:slippery"..i, {
- description = S("Slippery Node (@1)", i),
- tiles ={"testnodes_slippery.png"},
- is_ground_content = false,
- groups = {slippery=i, dig_immediate=3},
- color = { r=0, g=255, b=math.floor((i/5)*255), a=255 },
- })
- end
- -- By placing something on the node, the node itself will be replaced
- minetest.register_node("testnodes:buildable_to", {
- description = S("Replacable Node"),
- buildable_to = true,
- tiles = {"testnodes_buildable_to.png"},
- is_ground_content = false,
- groups = {dig_immediate=3},
- })
- -- Nodes that deal damage to players that are inside them.
- -- Negative damage nodes should heal.
- for d=-3,3 do
- if d ~= 0 then
- local sub, tile
- if d > 0 then
- sub = tostring(d)
- tile = "testnodes_damage.png"
- else
- sub = "m" .. tostring(math.abs(d))
- tile = "testnodes_damage_neg.png"
- end
- if math.abs(d) == 2 then
- tile = tile .. "^[colorize:#000000:70"
- elseif math.abs(d) == 3 then
- tile = tile .. "^[colorize:#000000:140"
- end
- minetest.register_node("testnodes:damage_"..sub, {
- description = S("Damage Node (@1 damage per second)", d),
- damage_per_second = d,
- walkable = false,
- is_ground_content = false,
- drawtype = "allfaces",
- paramtype = "light",
- sunlight_propagates = true,
- tiles = { tile },
- groups = {dig_immediate=3},
- })
- end
- end
- -- Causes drowning damage
- minetest.register_node("testnodes:drowning_1", {
- description = S("Drowning Node (@1 damage)", 1),
- drowning = 1,
- walkable = false,
- is_ground_content = false,
- drawtype = "allfaces",
- paramtype = "light",
- sunlight_propagates = true,
- tiles = { "testnodes_drowning.png" },
- groups = {dig_immediate=3},
- })
|