Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- riventest={}
- local WATER_ALPHA = 160
- local WATER_VISC = 1
- local LIGHT_MAX = 14
- local round = function( n )
- if n >= 0 then
- return math.floor( n + 0.5 )
- else
- return math.ceil( n - 0.5 )
- end
- end
- --[[
- SOUNDS
- ]]
- -- default
- function riventest.node_sound_defaults(table)
- table = table or {}
- table.footstep = table.footstep or
- {name="", gain=1.0}
- table.dug = table.dug or
- {name="riventest_dug_node", gain=1.0}
- return table
- end
- -- metal
- function riventest.node_sound_metal_defaults(table)
- table = table or {}
- table.footstep = table.footstep or
- {name="riventest_metal_footstep", gain=1.0}
- table.dig = table.dig or
- {name="riventest_metal_dig", gain=0.5}
- table.dug = table.dug or
- {name="riventest_metal_dug", gain=0.5}
- return table
- end
- -- stone
- function riventest.node_sound_stone_defaults(table)
- table = table or {}
- table.footstep = table.footstep or
- {name="riventest_hard_footstep", gain=1.0}
- table.dug = table.dug or
- {name="riventest_dug_node", gain=1.0}
- riventest.node_sound_defaults(table)
- return table
- end
- -- wood
- function riventest.node_sound_wood_defaults(table)
- table = table or {}
- table.footstep = table.footstep or
- {name="riventest_wood_footstep", gain=1.0}
- table.dug = table.dug or
- {name="riventest_dug_node", gain=1.0}
- riventest.node_sound_defaults(table)
- return table
- end
- -- glass
- riventest.node_sound_glass_defaults = riventest.node_sound_defaults
- -- leaves
- riventest.node_sound_leaves_defaults = riventest.node_sound_defaults
- GLOWLIKE = function(nodeid,nodename,drawtype)
- if drawtype == nil then
- drawtype = 'glasslike'
- inv_image = minetest.inventorycube("riventest_"..nodeid..".png")
- else
- inv_image = "riventest_"..nodeid..".png"
- end
- minetest.register_node("riventest:"..nodeid, {
- description = nodename,
- drawtype = drawtype,
- tiles = {"riventest_"..nodeid..".png"},
- inventory_image = inv_image,
- light_propagates = true,
- paramtype = "light",
- sunlight_propagates = true,
- light_source = 15 ,
- is_ground_content = true,
- groups = {snappy=2,cracky=3},
- sounds = riventest.node_sound_glass_defaults(),
- node_box = {
- type = "fixed",
- fixed = {-0.125, -0.5, -0.125, 0.125, 0.3, 0.125}
- },
- selection_box = {
- type = "fixed",
- fixed = {-0.14, -0.5, -0.14, 0.14, 0.3, 0.14}
- },
- })
- end
- METALLIKE = function(nodeid, nodename,fence)
- minetest.register_node("riventest:"..nodeid, {
- description = nodename,
- tiles = {"riventest_"..nodeid..".png"},
- is_ground_content = true,
- groups = {bendy=2,cracky=1,melty=2},
- sounds = riventest.node_sound_metal_defaults()
- })
- if fence == true then
- minetest.register_node("riventest:"..nodeid.."_fence", {
- description = nodename.." fence",
- drawtype = "fencelike",
- tiles = {"riventest_"..nodeid..".png"},
- inventory_image = "riventest_"..nodeid.."_fence.png",
- wield_image = "riventest_"..nodeid.."_fence.png",
- paramtype = "light",
- is_ground_content = true,
- selection_box = {
- type = "fixed",
- fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
- },
- groups = {bendy=2,cracky=1,melty=2},
- sounds = riventest.node_sound_metal_defaults()
- })
- end
- end
- TREELIKE = function(nodeid, nodename,fence)
- minetest.register_node("riventest:"..nodeid, {
- description = nodename,
- tiles = {"riventest_"..nodeid..".png"},
- is_ground_content = true,
- groups = {snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
- sounds = riventest.node_sound_wood_defaults(),
- })
- if fence == true then
- minetest.register_node("riventest:"..nodeid.."_fence", {
- description = nodename.." fence",
- drawtype = "fencelike",
- tiles = {"riventest_"..nodeid..".png"},
- inventory_image = "riventest_"..nodeid.."_fence.png",
- wield_image = "riventest_"..nodeid.."_fence.png",
- paramtype = "light",
- is_ground_content = true,
- selection_box = {
- type = "fixed",
- fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
- },
- groups = {snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2,tree=1},
- sounds = riventest.node_sound_wood_defaults()
- })
- end
- end
- STONELIKE = function(nodeid, nodename)
- minetest.register_node("riventest:"..nodeid, {
- description = nodename,
- tiles = {"riventest_"..nodeid..".png"},
- is_ground_content = true,
- groups = {cracky=3, stone=1},
- sounds = riventest.node_sound_stone_defaults()
- })
- end
- local SOUNDS = {}
- SOUNDNODE = function(nodeid, nodename,drawtype)
- SOUNDS[nodeid] = {}
- SOUNDS[nodeid].sounds = {}
- local on_punch = function(pos,node)
- local sound = SOUNDS[nodeid].sounds[minetest.hash_node_position(pos)]
- if sound == nil then
- local wanted_sound = {name=nodeid, gain=1.5}
- SOUNDS[nodeid].sounds[minetest.hash_node_position(pos)] = { handle = minetest.sound_play(wanted_sound, {pos=pos, loop=true}), name = wanted_sound.name, }
- else
- minetest.sound_stop(sound.handle)
- SOUNDS[nodeid].sounds[minetest.hash_node_position(pos)] = nil
- end
- end
- after_dig_node = function(pos,node)
- local sound = SOUNDS[nodeid].sounds[minetest.hash_node_position(pos)]
- if sound ~= nil then
- minetest.sound_stop(sound.handle)
- SOUNDS[nodeid].sounds[minetest.hash_node_position(pos)] = nil
- nodeupdate(pos)
- end
- end
- if drawtype == 'signlike' then
- minetest.register_node("riventest:"..nodeid, {
- description = nodename,
- drawtype = "signlike",
- tiles = {"riventest_"..nodeid..'.png'},
- inventory_image = "riventest_"..nodeid..'.png',
- wield_image = "riventest_"..nodeid..'.png',
- paramtype = "light",
- paramtype2 = "wallmounted",
- sunlight_propagates = true,
- walkable = false,
- metadata_name = "sign",
- selection_box = {
- type = "wallmounted",
- },
- groups = {snappy=2,choppy=2,dig_immediate=2,flammable=2},
- legacy_wallmounted = true,
- sounds = riventest.node_sound_defaults(),
- on_punch = on_punch,
- after_dig_node = after_dig_node,
- })
- else
- minetest.register_node("riventest:"..nodeid, {
- description = nodename,
- drawtype = 'plantlike',
- tiles = {"riventest_"..nodeid..'.png'},
- inventory_image = "riventest_"..nodeid..'.png',
- wield_image = "riventest_"..nodeid..'.png',
- paramtype = "light",
- groups = {cracky=3},
- sounds = riventest.node_sound_stone_defaults(),
- on_punch = on_punch,
- after_dig_node = after_dig_node,
- })
- end
- end
- PLANTLIKE = function(nodeid, nodename,type,option)
- if option == nil then option = false end
- local params ={ description = nodename, drawtype = "plantlike", tiles = {"riventest_"..nodeid..'.png'},
- inventory_image = "riventest_"..nodeid..'.png', wield_image = "riventest_"..nodeid..'.png', paramtype = "light",
- sunlight_propagates=true,
- }
- if type == 'veg' then
- params.groups = {snappy=2,dig_immediate=3,flammable=2}
- params.sounds = riventest.node_sound_leaves_defaults()
- if option == false then params.walkable = false end
- elseif type == 'met' then -- metallic
- params.groups = {snappy=1,bendy=2,cracky=1,melty=2}
- params.sounds = riventest.node_sound_stone_defaults()
- elseif type == 'cri' then -- craft items
- params.groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3}
- params.sounds = riventest.node_sound_wood_defaults()
- if option == false then params.walkable = false end
- elseif type == 'eat' then -- edible
- params.groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3}
- params.sounds = riventest.node_sound_wood_defaults()
- params.walkable = false
- params.on_use = minetest.item_eat(option)
- end
- minetest.register_node("riventest:"..nodeid, params)
- end
- STONELIKE('rt1','inward-squared brownstone')
- METALLIKE('rt2','flower-patterned metal')
- STONELIKE('rt3','lined brownestone')
- METALLIKE('rt4','metal block')
- METALLIKE('rt5','golden block')
- PLANTLIKE('rt6_mushroom','mushroom','veg')
- STONELIKE('rt7','outward-squared brownstone')
- STONELIKE('rt8','cobble brightstone')
- GLOWLIKE('rt9_lamppost','turquiose lamppost','plantlike')
- GLOWLIKE('rt17_lamppost','orange lamppost','plantlike')
- GLOWLIKE('rt18_lamppost','green lamppost','plantlike')
- GLOWLIKE('rt19_lamppost','red lamppost','plantlike')
- METALLIKE('rt10','rusted metal block')
- STONELIKE('rt11','flower-patterned brightstone')
- STONELIKE('rt12','mosaic brightstone')
- SOUNDNODE('1','art (1)','signlike')
- SOUNDNODE('2','art (2)','signlike')
- SOUNDNODE('3','art (3)','signlike')
- TREELIKE('wood','wood')
- TREELIKE('woodblue','bluewood')
- STONELIKE('stone1','brownstone')
- STONELIKE('stone2','graystone')
- STONELIKE('stoneblue','bluestone')
- METALLIKE('metal','black metal')
- METALLIKE('bulkhead','metal bulkhead')
- STONELIKE('goldstone1','brightstone')
- STONELIKE('goldstone2','goldstone')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement