commit f38635c3ec12bcd6e130bf430e51b42569899e67 Author: Rabbi Bob Date: Sun Mar 17 10:15:49 2013 -0400 0.0.8 upgrade diff --git a/blocks.lua b/blocks.lua new file mode 100644 index 0000000..91310bd --- /dev/null +++ b/blocks.lua @@ -0,0 +1,844 @@ +-- BobBlocks mod by RabbiBob +-- State Changes + +local update_bobblock = function (pos, node) + local nodename="" + local param2="" + --Switch Block State + if + -- Start Blocks + node.name == 'bobblocks:redblock_off' then nodename = 'bobblocks:redblock' + elseif node.name == 'bobblocks:redblock' then nodename = 'bobblocks:redblock_off' + elseif node.name == 'bobblocks:orangeblock_off' then nodename = 'bobblocks:orangeblock' + elseif node.name == 'bobblocks:orangeblock' then nodename = 'bobblocks:orangeblock_off' + elseif node.name == 'bobblocks:yellowblock_off' then nodename = 'bobblocks:yellowblock' + elseif node.name == 'bobblocks:yellowblock' then nodename = 'bobblocks:yellowblock_off' + elseif node.name == 'bobblocks:greenblock_off' then nodename = 'bobblocks:greenblock' + elseif node.name == 'bobblocks:greenblock' then nodename = 'bobblocks:greenblock_off' + elseif node.name == 'bobblocks:blueblock_off' then nodename = 'bobblocks:blueblock' + elseif node.name == 'bobblocks:blueblock' then nodename = 'bobblocks:blueblock_off' + elseif node.name == 'bobblocks:indigoblock_off' then nodename = 'bobblocks:indigoblock' + elseif node.name == 'bobblocks:indigoblock' then nodename = 'bobblocks:indigoblock_off' + elseif node.name == 'bobblocks:violetblock_off' then nodename = 'bobblocks:violetblock' + elseif node.name == 'bobblocks:violetblock' then nodename = 'bobblocks:violetblock_off' + elseif node.name == 'bobblocks:whiteblock_off' then nodename = 'bobblocks:whiteblock' + elseif node.name == 'bobblocks:whiteblock' then nodename = 'bobblocks:whiteblock_off' + -- Start Poles + elseif node.name == 'bobblocks:redpole_off' then nodename = 'bobblocks:redpole' + elseif node.name == 'bobblocks:redpole' then nodename = 'bobblocks:redpole_off' + elseif node.name == 'bobblocks:orangepole_off' then nodename = 'bobblocks:orangepole' + elseif node.name == 'bobblocks:orangepole' then nodename = 'bobblocks:orangepole_off' + elseif node.name == 'bobblocks:yellowpole_off' then nodename = 'bobblocks:yellowpole' + elseif node.name == 'bobblocks:yellowpole' then nodename = 'bobblocks:yellowpole_off' + elseif node.name == 'bobblocks:greenpole_off' then nodename = 'bobblocks:greenpole' + elseif node.name == 'bobblocks:greenpole' then nodename = 'bobblocks:greenpole_off' + elseif node.name == 'bobblocks:bluepole_off' then nodename = 'bobblocks:bluepole' + elseif node.name == 'bobblocks:bluepole' then nodename = 'bobblocks:bluepole_off' + elseif node.name == 'bobblocks:indigopole_off' then nodename = 'bobblocks:indigopole' + elseif node.name == 'bobblocks:indigopole' then nodename = 'bobblocks:indigopole_off' + elseif node.name == 'bobblocks:violetpole_off' then nodename = 'bobblocks:violetpole' + elseif node.name == 'bobblocks:violetpole' then nodename = 'bobblocks:violetpole_off' + elseif node.name == 'bobblocks:whitepole_off' then nodename = 'bobblocks:whitepole' + elseif node.name == 'bobblocks:whitepole' then nodename = 'bobblocks:whitepole_off' + end + minetest.env:add_node(pos, {name = nodename}) + minetest.sound_play("bobblocks_glassblock", + {pos = pos, gain = 1.0, max_hear_distance = 32,}) +end + + +-- Punch Blocks +local on_bobblock_punched = function (pos, node, puncher) + if + -- Start Blocks + node.name == 'bobblocks:redblock_off' or node.name == 'bobblocks:redblock' or + node.name == 'bobblocks:orangeblock_off' or node.name == 'bobblocks:orangeblock' or + node.name == 'bobblocks:yellowblock_off' or node.name == 'bobblocks:yellowblock' or + node.name == 'bobblocks:greenblock_off' or node.name == 'bobblocks:greenblock' or + node.name == 'bobblocks:blueblock_off' or node.name == 'bobblocks:blueblock' or + node.name == 'bobblocks:indigoblock_off' or node.name == 'bobblocks:indigoblock' or + node.name == 'bobblocks:violetblock_off' or node.name == 'bobblocks:violetblock' or + node.name == 'bobblocks:whiteblock_off' or node.name == 'bobblocks:whiteblock' or + --Start Poles + node.name == 'bobblocks:redpole_off' or node.name == 'bobblocks:redpole' or + node.name == 'bobblocks:orangepole_off' or node.name == 'bobblocks:orangepole' or + node.name == 'bobblocks:yellowpole_off' or node.name == 'bobblocks:yellowpole' or + node.name == 'bobblocks:greenpole_off' or node.name == 'bobblocks:greenpole' or + node.name == 'bobblocks:bluepole_off' or node.name == 'bobblocks:bluepole' or + node.name == 'bobblocks:indigopole_off' or node.name == 'bobblocks:indigopole' or + node.name == 'bobblocks:violetpole_off' or node.name == 'bobblocks:violetpole' or + node.name == 'bobblocks:whitepole_off' or node.name == 'bobblocks:whitepole' + then + update_bobblock(pos, node) + end +end + +minetest.register_on_punchnode(on_bobblock_punched) + +-- Nodes +-- Misc Node + +minetest.register_node("bobblocks:btm", { + description = "Bobs TransMorgifier v5", + tile_images = {"bobblocks_btm_sides.png", "bobblocks_btm_sides.png", "bobblocks_btm_sides.png", + "bobblocks_btm_sides.png", "bobblocks_btm_sides.png", "bobblocks_btm.png"}, + inventory_image = "bobblocks_btm.png", + paramtype2 = "facedir", + material = minetest.digprop_dirtlike(1.0), + legacy_facedir_simple = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,not_in_creative_inventory=1}, + +}) + + +-- Start Block Nodes +minetest.register_node("bobblocks:redblock", { + description = "Red Block", + drawtype = "glasslike", + tile_images = {"bobblocks_redblock.png"}, + inventory_image = minetest.inventorycube("bobblocks_redblock.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-0, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + mesecons = {conductor={ + state = mesecon.state.on, + offstate = "bobblocks:redblock_off" + }} +}) + +minetest.register_node("bobblocks:redblock_off", { + description = "Red Block", + tile_images = {"bobblocks_redblock.png"}, + is_ground_content = true, + alpha = WATER_ALPHA, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,not_in_creative_inventory=1}, + drop = 'bobblocks:redblock', + mesecons = {conductor={ + state = mesecon.state.off, + onstate = "bobblocks:redblock" + }} + +}) + +minetest.register_node("bobblocks:orangeblock", { + description = "Orange Block", + drawtype = "glasslike", + tile_images = {"bobblocks_orangeblock.png"}, + inventory_image = minetest.inventorycube("bobblocks_orangeblock.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-0, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + mesecons = {conductor={ + state = mesecon.state.on, + offstate = "bobblocks:orangeblock_off" + }} +}) + +minetest.register_node("bobblocks:orangeblock_off", { + description = "Orange Block", + tile_images = {"bobblocks_orangeblock.png"}, + is_ground_content = true, + alpha = WATER_ALPHA, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,not_in_creative_inventory=1}, + drop = 'bobblocks:orangeblock', + mesecons = {conductor={ + state = mesecon.state.off, + onstate = "bobblocks:orangeblock" + }} + +}) + +minetest.register_node("bobblocks:yellowblock", { + description = "Yellow Block", + drawtype = "glasslike", + tile_images = {"bobblocks_yellowblock.png"}, + inventory_image = minetest.inventorycube("bobblocks_yellowblock.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-0, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + mesecons = {conductor={ + state = mesecon.state.on, + offstate = "bobblocks:yellowblock_off" + }} +}) + +minetest.register_node("bobblocks:yellowblock_off", { + description = "Yellow Block", + tile_images = {"bobblocks_yellowblock.png"}, + is_ground_content = true, + alpha = WATER_ALPHA, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,not_in_creative_inventory=1}, + drop = 'bobblocks:yellowblock', + mesecons = {conductor={ + state = mesecon.state.off, + onstate = "bobblocks:yellowblock" + }} + +}) + +minetest.register_node("bobblocks:greenblock", { + description = "Green Block", + drawtype = "glasslike", + tile_images = {"bobblocks_greenblock.png"}, + inventory_image = minetest.inventorycube("bobblocks_greenblock.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-0, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + mesecons = {conductor={ + state = mesecon.state.on, + offstate = "bobblocks:greenblock_off" + }} +}) + +minetest.register_node("bobblocks:greenblock_off", { + description = "Green Block", + tile_images = {"bobblocks_greenblock.png"}, + is_ground_content = true, + alpha = WATER_ALPHA, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,not_in_creative_inventory=1}, + drop = 'bobblocks:greenblock', + mesecons = {conductor={ + state = mesecon.state.off, + onstate = "bobblocks:greenblock" + }} + +}) + + +minetest.register_node("bobblocks:blueblock", { + description = "Blue Block", + drawtype = "glasslike", + tile_images = {"bobblocks_blueblock.png"}, + inventory_image = minetest.inventorycube("bobblocks_blueblock.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-0, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + mesecons = {conductor={ + state = mesecon.state.on, + offstate = "bobblocks:blueblock_off" + }} +}) + +minetest.register_node("bobblocks:blueblock_off", { + description = "Blue Block", + tile_images = {"bobblocks_blueblock.png"}, + is_ground_content = true, + alpha = WATER_ALPHA, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,not_in_creative_inventory=1}, + drop = 'bobblocks:blueblock', + mesecons = {conductor={ + state = mesecon.state.off, + onstate = "bobblocks:blueblock" + }} + +}) + +minetest.register_node("bobblocks:indigoblock", { + description = "Indigo Block", + drawtype = "glasslike", + tile_images = {"bobblocks_indigoblock.png"}, + inventory_image = minetest.inventorycube("bobblocks_indigoblock.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-0, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + mesecons = {conductor={ + state = mesecon.state.on, + offstate = "bobblocks:indigoblock_off" + }} +}) + +minetest.register_node("bobblocks:indigoblock_off", { + description = "Indigo Block", + tile_images = {"bobblocks_indigoblock.png"}, + is_ground_content = true, + alpha = WATER_ALPHA, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,not_in_creative_inventory=1}, + drop = 'bobblocks:indigoblock', + mesecons = {conductor={ + state = mesecon.state.off, + onstate = "bobblocks:indigoblock" + }} + +}) + + +minetest.register_node("bobblocks:violetblock", { + description = "Violet Block", + drawtype = "glasslike", + tile_images = {"bobblocks_violetblock.png"}, + inventory_image = minetest.inventorycube("bobblocks_violetblock.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-0, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + mesecons = {conductor={ + state = mesecon.state.on, + offstate = "bobblocks:violetblock_off" + }} +}) + +minetest.register_node("bobblocks:violetblock_off", { + description = "Violet Block", + tile_images = {"bobblocks_violetblock.png"}, + is_ground_content = true, + alpha = WATER_ALPHA, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,not_in_creative_inventory=1}, + drop = 'bobblocks:violetblock', + mesecons = {conductor={ + state = mesecon.state.off, + onstate = "bobblocks:violetblock" + }} + +}) + +minetest.register_node("bobblocks:whiteblock", { + description = "White Block", + drawtype = "glasslike", + tile_images = {"bobblocks_whiteblock.png"}, + inventory_image = minetest.inventorycube("bobblocks_whiteblock.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-0, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + mesecons = {conductor={ + state = mesecon.state.on, + offstate = "bobblocks:whiteblock_off" + }} +}) + +minetest.register_node("bobblocks:whiteblock_off", { + description = "White Block", + tile_images = {"bobblocks_whiteblock.png"}, + is_ground_content = true, + alpha = WATER_ALPHA, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,not_in_creative_inventory=1}, + drop = 'bobblocks:whiteblock', + mesecons = {conductor={ + state = mesecon.state.off, + onstate = "bobblocks:whiteblock" + }} + +}) + + +minetest.register_node("bobblocks:greyblock", { + description = "Grey Block", + drawtype = "glasslike", + tile_images = {"bobblocks_greyblock.png"}, + inventory_image = minetest.inventorycube("bobblocks_greyblock.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-0, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + mesecons = {conductor={ + state = mesecon.state.on, + offstate = "bobblocks:greyblock_off" + }} +}) + +minetest.register_node("bobblocks:greyblock_off", { + description = "Grey Block", + tile_images = {"bobblocks_greyblock.png"}, + is_ground_content = true, + alpha = WATER_ALPHA, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,not_in_creative_inventory=1}, + drop = 'bobblocks:greyblock', + mesecons = {conductor={ + state = mesecon.state.off, + onstate = "bobblocks:greyblock" + }} + +}) + + +-- Block Poles +minetest.register_node("bobblocks:redpole", { + description = "Red Pole", + drawtype = "fencelike", + tile_images = {"bobblocks_redblock.png"}, + inventory_image = ("bobblocks_invredpole.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-0, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + mesecons = {conductor={ + state = mesecon.state.on, + offstate = "bobblocks:redpole_off" + }} +}) + +minetest.register_node("bobblocks:redpole_off", { + description = "Red Pole", + drawtype = "fencelike", + tile_images = {"bobblocks_redblock.png"}, + inventory_image = ("bobblocks_invredpole.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-10, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,not_in_creative_inventory=1}, + drop = 'bobblocks:redpole', + mesecons = {conductor={ + state = mesecon.state.off, + onstate = "bobblocks:redpole" + }} + +}) + +minetest.register_node("bobblocks:orangepole", { + description = "Orange Pole", + drawtype = "fencelike", + tile_images = {"bobblocks_orangeblock.png"}, + inventory_image = ("bobblocks_invorangepole.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-0, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + mesecons = {conductor={ + state = mesecon.state.on, + offstate = "bobblocks:orangepole_off" + }} +}) + +minetest.register_node("bobblocks:orangepole_off", { + description = "Orange Pole", + drawtype = "fencelike", + tile_images = {"bobblocks_orangeblock.png"}, + inventory_image = ("bobblocks_invorangepole.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-10, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,not_in_creative_inventory=1}, + drop = 'bobblocks:orangepole', + mesecons = {conductor={ + state = mesecon.state.off, + onstate = "bobblocks:orangepole" + }} + +}) + +minetest.register_node("bobblocks:yellowpole", { + description = "Yellow Pole", + drawtype = "fencelike", + tile_images = {"bobblocks_yellowblock.png"}, + inventory_image = ("bobblocks_invyellowpole.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-0, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + mesecons = {conductor={ + state = mesecon.state.on, + offstate = "bobblocks:yellowpole_off" + }} +}) + +minetest.register_node("bobblocks:yellowpole_off", { + description = "Yellow Pole", + drawtype = "fencelike", + tile_images = {"bobblocks_yellowblock.png"}, + inventory_image = ("bobblocks_invyellowpole.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-10, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,not_in_creative_inventory=1}, + drop = 'bobblocks:yellowpole', + mesecons = {conductor={ + state = mesecon.state.off, + onstate = "bobblocks:yellowpole" + }} + +}) + +minetest.register_node("bobblocks:greenpole", { + description = "Green Pole", + drawtype = "fencelike", + tile_images = {"bobblocks_greenblock.png"}, + inventory_image = ("bobblocks_invgreenpole.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-0, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + mesecons = {conductor={ + state = mesecon.state.on, + offstate = "bobblocks:greenpole_off" + }} +}) + +minetest.register_node("bobblocks:greenpole_off", { + description = "Green Pole", + drawtype = "fencelike", + tile_images = {"bobblocks_greenblock.png"}, + inventory_image = ("bobblocks_invgreenpole.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-10, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,not_in_creative_inventory=1}, + drop = 'bobblocks:greenpole', + mesecons = {conductor={ + state = mesecon.state.off, + onstate = "bobblocks:greenpole" + }} + +}) + +minetest.register_node("bobblocks:bluepole", { + description = "Blue Pole", + drawtype = "fencelike", + tile_images = {"bobblocks_blueblock.png"}, + inventory_image = ("bobblocks_invbluepole.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-0, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + mesecons = {conductor={ + state = mesecon.state.on, + offstate = "bobblocks:bluepole_off" + }} +}) + +minetest.register_node("bobblocks:bluepole_off", { + description = "Blue Pole", + drawtype = "fencelike", + tile_images = {"bobblocks_blueblock.png"}, + inventory_image = ("bobblocks_invbluepole.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-10, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,not_in_creative_inventory=1}, + drop = 'bobblocks:bluepole', + mesecons = {conductor={ + state = mesecon.state.off, + onstate = "bobblocks:bluepole" + }} + +}) + +minetest.register_node("bobblocks:indigopole", { + description = "Indigo Pole", + drawtype = "fencelike", + tile_images = {"bobblocks_indigoblock.png"}, + inventory_image = ("bobblocks_invindigopole.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-0, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + mesecons = {conductor={ + state = mesecon.state.on, + offstate = "bobblocks:indigopole_off" + }} +}) + +minetest.register_node("bobblocks:indigopole_off", { + description = "Indigo Pole", + drawtype = "fencelike", + tile_images = {"bobblocks_indigoblock.png"}, + inventory_image = ("bobblocks_invindigopole.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-10, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,not_in_creative_inventory=1}, + drop = 'bobblocks:indigopole', + mesecons = {conductor={ + state = mesecon.state.off, + onstate = "bobblocks:indigopole" + }} + +}) + +minetest.register_node("bobblocks:violetpole", { + description = "Violet Pole", + drawtype = "fencelike", + tile_images = {"bobblocks_violetblock.png"}, + inventory_image = ("bobblocks_invvioletpole.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-0, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + mesecons = {conductor={ + state = mesecon.state.on, + offstate = "bobblocks:violetpole_off" + }} +}) + +minetest.register_node("bobblocks:violetpole_off", { + description = "Violet Pole", + drawtype = "fencelike", + tile_images = {"bobblocks_violetblock.png"}, + inventory_image = ("bobblocks_invvioletpole.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-10, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,not_in_creative_inventory=1}, + drop = 'bobblocks:violetpole', + mesecons = {conductor={ + state = mesecon.state.off, + onstate = "bobblocks:violetpole" + }} + +}) + +minetest.register_node("bobblocks:whitepole", { + description = "White Pole", + drawtype = "fencelike", + tile_images = {"bobblocks_whiteblock.png"}, + inventory_image = ("bobblocks_invwhitepole.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-0, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + mesecons = {conductor={ + state = mesecon.state.on, + offstate = "bobblocks:whitepole_off" + }} +}) + +minetest.register_node("bobblocks:whitepole_off", { + description = "White Pole", + drawtype = "fencelike", + tile_images = {"bobblocks_whiteblock.png"}, + inventory_image = ("bobblocks_invwhitepole.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + light_source = LIGHT_MAX-10, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,not_in_creative_inventory=1}, + drop = 'bobblocks:whitepole', + mesecons = {conductor={ + state = mesecon.state.off, + onstate = "bobblocks:whitepole" + }} + +}) + +minetest.register_node("bobblocks:greypole", { + description = "Grey Pole", + drawtype = "fencelike", + tile_images = {"bobblocks_greyblock.png"}, + inventory_image = ("bobblocks_invgreypole.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = true, + sounds = default.node_sound_glass_defaults(), + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + --light_source = LIGHT_MAX-0, +}) + + + +-- Crafts +-- BTM +minetest.register_craft({ + output = 'NodeItem "bobblocks:btm" 1', + recipe = { + {'node "default:glass" 1', 'node "default:torch" 1', 'node "default:leaves" 1', + 'node "default:mese" 1','node "default:rat" 1'}, + + }, +}) + +minetest.register_craft({ + output = 'NodeItem "bobblocks:greyblock" 2', + recipe = { + {'node "default:glass" 1', 'node "default:torch" 1', 'node "default:cobble" 1'}, + }, +}) + +-- Red / Yellow / Blue / White +-- Red / Yellow -> Orange +-- Red / Blue -> Violet +-- Blue / Yellow -> Green +-- Red / Yellow / White -> Indigo + +minetest.register_craft({ + output = 'NodeItem "bobblocks:redblock" 2', + recipe = { + {'node "default:glass" 1', 'node "default:torch" 1', 'node "default:brick" 1'}, + }, +}) +minetest.register_craft({ + output = 'NodeItem "bobblocks:yellowblock" 2', + recipe = { + {'node "default:glass" 1', 'node "default:torch" 1', 'node "default:sand" 1'}, + }, +}) +minetest.register_craft({ + output = 'NodeItem "bobblocks:blueblock" 2', + recipe = { + {'node "default:glass" 1', 'node "default:torch" 1', 'node "default:gravel" 1'}, + }, +}) + +minetest.register_craft({ + output = 'NodeItem "bobblocks:whiteblock" 2', + recipe = { + {'node "default:glass" 1', 'node "default:torch" 1', 'node "default:dirt" 1'}, + }, +}) + + +minetest.register_craft({ + output = 'NodeItem "bobblocks:orangeblock" 2', + recipe = { + {'node "bobblocks:redblock" 1', 'node "bobblocks:yellowblock" 1'}, + + }, +}) + + +minetest.register_craft({ + output = 'NodeItem "bobblocks:violetblock" 2', + recipe = { + {'node "bobblocks:redblock" 1', 'node "bobblocks:blueblock" 1'}, + + }, +}) + +minetest.register_craft({ + output = 'NodeItem "bobblocks:greenblock" 2', + recipe = { + {'node "bobblocks:blueblock" 1', 'node "bobblocks:yellowblock" 1'}, + + }, +}) + + +minetest.register_craft({ + output = 'NodeItem "bobblocks:indigoblock" 3', + recipe = { + {'node "bobblocks:redblock" 1', 'node "bobblocks:blueblock" 1', 'node "bobblocks:whiteblock" 1'}, + + }, +}) + +-- Poles + +minetest.register_craft({ + output = 'NodeItem "bobblocks:redpole" 1', + recipe = { + {'node "bobblocks:redblock" 1', 'node "default:stick" 1'}, + + }, +}) + +minetest.register_craft({ + output = 'NodeItem "bobblocks:yellowpole" 1', + recipe = { + {'node "bobblocks:yellowblock" 1', 'node "default:stick" 1'}, + + }, +}) + +minetest.register_craft({ + output = 'NodeItem "bobblocks:bluepole" 1', + recipe = { + {'node "bobblocks:blueblock" 1', 'node "default:stick" 1'}, + + }, +}) + +minetest.register_craft({ + output = 'NodeItem "bobblocks:whitepole" 1', + recipe = { + {'node "bobblocks:whiteblock" 1', 'node "default:stick" 1'}, + + }, +}) + +minetest.register_craft({ + output = 'NodeItem "bobblocks:orangepole" 1', + recipe = { + {'node "bobblocks:orangeblock" 1', 'node "default:stick" 1'}, + + }, +}) + +minetest.register_craft({ + output = 'NodeItem "bobblocks:violetpole" 1', + recipe = { + {'node "bobblocks:violetblock" 1', 'node "default:stick" 1'}, + + }, +}) + +minetest.register_craft({ + output = 'NodeItem "bobblocks:greenpole" 1', + recipe = { + {'node "bobblocks:greenblock" 1', 'node "default:stick" 1'}, + + }, +}) + +minetest.register_craft({ + output = 'NodeItem "bobblocks:indigopole" 1', + recipe = { + {'node "bobblocks:indigoblock" 1', 'node "default:stick" 1'}, + + }, +}) + +minetest.register_craft({ + output = 'NodeItem "bobblocks:greypole" 1', + recipe = { + {'node "bobblocks:greyblock" 1', 'node "default:stick" 1'}, + + }, +}) + + +-- MESECON +-- Add jeija to bobblocks\default.txt and paste the below in at the bottom of bobblocks\blocks.lua + diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..aca967d --- /dev/null +++ b/depends.txt @@ -0,0 +1,2 @@ +default +mesecons diff --git a/health.lua b/health.lua new file mode 100644 index 0000000..eef30e9 --- /dev/null +++ b/health.lua @@ -0,0 +1,95 @@ +local is_healthpack = function(node) + if node.name == 'bobblocks:health_off' or node.name == 'health_on' then + return true + end + return false +end + +local update_healthpack = function (pos, node) + local nodename="" + local param2="" + --Switch HealthPack State + if node.name == 'bobblocks:health_off' then + nodename = 'bobblocks:health_on' + elseif node.name == 'bobblocks:health_on' then + nodename = 'bobblocks:health_off' + end + minetest.env:add_node(pos, {name = nodename}) +end + +local toggle_healthpack = function (pos, node) + if not is_healthgate(node) then return end + update_healthpack (pos, node, state) +end + +local on_healthpack_punched = function (pos, node, puncher) + if node.name == 'bobblocks:health_off' or node.name == 'bobblocks:health_on' then + update_healthpack(pos, node) + end +end + +-- Healing Node + +minetest.register_node("bobblocks:health_off", { + description = "Health Pack 1 Off", + tile_images = {"bobblocks_health_off.png"}, + inventory_image = "bobblocks_health_off.png", + paramtype2 = "facedir", + legacy_facedir_simple = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + is_ground_content = true, + walkable = false, + climbable = false, + mesecons = {conductor={ + state = mesecon.state.off, + onstate = "bobblocks:health_on" + }} +}) + +minetest.register_node("bobblocks:health_on", { + description = "Health Pack 1 On", + tile_images = {"bobblocks_health_on.png"}, + paramtype2 = "facedir", + legacy_facedir_simple = true, + light_source = LIGHT_MAX-0, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + is_ground_content = true, + walkable = false, + climbable = false, + drop = "bobblocks:health_off", + mesecons = {conductor={ + state = mesecon.state.on, + offstate = "bobblocks:health_off" + }} +}) + + +minetest.register_abm( + {nodenames = {"bobblocks:health_on"}, + interval = 1.0, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local objs = minetest.env:get_objects_inside_radius(pos, 1) + for k, obj in pairs(objs) do + minetest.sound_play("bobblocks_health", + {pos = pos, gain = 1.0, max_hear_distance = 32,}) + obj:set_hp(obj:get_hp()+10) -- give 10HP + minetest.env:remove_node(pos) -- remove the node after use + end + end, + +}) + +--- Health + +minetest.register_craft({ + output = 'NodeItem "bobblocks:health_off" 1', + recipe = { + {'node "default:dirt" 1', 'node "default:paper" 1', 'node "default:apple" 2'}, + + }, +}) + + +minetest.register_on_punchnode(on_healthpack_punched) + diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..3bcf03f --- /dev/null +++ b/init.lua @@ -0,0 +1,11 @@ +print("[BobBlocks By minetest@rabbibob.com] Version 0.0.8 loading....") +print("[BobBlocks] loading Blocks") +dofile(minetest.get_modpath("bobblocks") .. "/blocks.lua") +print("[BobBlocks] loaded Blocks") +print("[BobBlocks] loading Health") +dofile(minetest.get_modpath("bobblocks") .. "/health.lua") +print("[BobBlocks] loaded Health") +print("[BobBlocks] loading Traps") +dofile(minetest.get_modpath("bobblocks") .. "/trap.lua") +print("[BobBlocks] loaded Traps") +print("[BobBlocks By minetest@rabbibob.com] Version 0.0.8 loaded!") \ No newline at end of file diff --git a/readme.txt b/readme.txt new file mode 100644 index 0000000..947ae5e --- /dev/null +++ b/readme.txt @@ -0,0 +1,53 @@ +-- BobBlocks v0.0.8 +-- (Minetest 0.4.5 compatible 20130315) +-- http://forum.minetest.net/viewtopic.php?id=1274 +-------------------------------------------------------------------------- +-------------------------------------------------------------------------- +-- Requirements: Mesecons -- +-- http://forum.minetest.net/viewtopic.php?id=628 -- +-- -- +-- Does not support jeija or older version of Mesecons -- +-- before 1/20/2013 -- +-- http://forum.minetest.net/viewtopic.php?pid=64976#p64976 -- +-------------------------------------------------------------------------- +-------------------------------------------------------------------------- +-- Colored Lit Blocks +---- Default state = Solid lit block +---- Secondary state (punch) = transparent unlit block +---- Mesecons activation [CONDUCTOR] +-- Colored Lit Poles +---- Default state = Solid lit block +---- Secondary state (punch) = unlit block +---- Mesecons activation [CONDUCTOR] +-- Health Kit +---- Default state = health kit inactive +---- Secondary state (punch) = health kit active +10HP when walked through +---- Mesecons activation [CONDUCTOR] +-- Trap +---- Default Grass (walkable off) +---- Spike Minor (1HP per hit) +------ Spikes can be 'set' and activated when walked over +---- Spike Major (100HP per hit) +------ Spikes can be 'set' and activated when walked over + +# [ATTRIBUTION] +# Unless otherwise noted, all graphics & sounds +# created by Rabbi Bob +# Licensed under the GPLv2/later + +# [GRAPHICS] +# minor & major spikes by Death Dealer +# License: WTFPL +# http://minetest.net/forum/viewtopic.php?id=1582 + +# [SOUNDS] +# bobblocks_glass + # Author: Ch0cchi + # http://www.freesound.org/people/Ch0cchi/sounds/15285/ + # Edited by rabbibob +# bobblocks_trap_fall & bobblocks_trap_fall_major + # Author: Rock Savage + # http://www.freesound.org/people/Rock%20Savage/sounds/65924/# + # Edited by rabbibob +# bobblocks_health + # http://hamsterrepublic.com/ohrrpgce/Free_Sound_Effects.html \ No newline at end of file diff --git a/sounds/bobblocks_glassblock.ogg b/sounds/bobblocks_glassblock.ogg new file mode 100644 index 0000000..d60859f Binary files /dev/null and b/sounds/bobblocks_glassblock.ogg differ diff --git a/sounds/bobblocks_health.ogg b/sounds/bobblocks_health.ogg new file mode 100644 index 0000000..4a0148b Binary files /dev/null and b/sounds/bobblocks_health.ogg differ diff --git a/sounds/bobblocks_trap_fall.ogg b/sounds/bobblocks_trap_fall.ogg new file mode 100644 index 0000000..a49efb3 Binary files /dev/null and b/sounds/bobblocks_trap_fall.ogg differ diff --git a/sounds/bobblocks_trap_fall_major.ogg b/sounds/bobblocks_trap_fall_major.ogg new file mode 100644 index 0000000..b6bdea6 Binary files /dev/null and b/sounds/bobblocks_trap_fall_major.ogg differ diff --git a/textures/bobblocks_blueblock.png b/textures/bobblocks_blueblock.png new file mode 100644 index 0000000..df5d835 Binary files /dev/null and b/textures/bobblocks_blueblock.png differ diff --git a/textures/bobblocks_btm.png b/textures/bobblocks_btm.png new file mode 100644 index 0000000..7e14d08 Binary files /dev/null and b/textures/bobblocks_btm.png differ diff --git a/textures/bobblocks_btm_sides.png b/textures/bobblocks_btm_sides.png new file mode 100644 index 0000000..0e1ca0d Binary files /dev/null and b/textures/bobblocks_btm_sides.png differ diff --git a/textures/bobblocks_greenblock.png b/textures/bobblocks_greenblock.png new file mode 100644 index 0000000..0acebc5 Binary files /dev/null and b/textures/bobblocks_greenblock.png differ diff --git a/textures/bobblocks_greyblock.png b/textures/bobblocks_greyblock.png new file mode 100644 index 0000000..c372878 Binary files /dev/null and b/textures/bobblocks_greyblock.png differ diff --git a/textures/bobblocks_health_off.png b/textures/bobblocks_health_off.png new file mode 100644 index 0000000..9f9aaac Binary files /dev/null and b/textures/bobblocks_health_off.png differ diff --git a/textures/bobblocks_health_on.png b/textures/bobblocks_health_on.png new file mode 100644 index 0000000..ec808c9 Binary files /dev/null and b/textures/bobblocks_health_on.png differ diff --git a/textures/bobblocks_health_one_sides.png b/textures/bobblocks_health_one_sides.png new file mode 100644 index 0000000..ac24409 Binary files /dev/null and b/textures/bobblocks_health_one_sides.png differ diff --git a/textures/bobblocks_indigoblock.png b/textures/bobblocks_indigoblock.png new file mode 100644 index 0000000..0dbf7fd Binary files /dev/null and b/textures/bobblocks_indigoblock.png differ diff --git a/textures/bobblocks_invbluepole.png b/textures/bobblocks_invbluepole.png new file mode 100644 index 0000000..e60d3eb Binary files /dev/null and b/textures/bobblocks_invbluepole.png differ diff --git a/textures/bobblocks_invgreenpole.png b/textures/bobblocks_invgreenpole.png new file mode 100644 index 0000000..72b83c7 Binary files /dev/null and b/textures/bobblocks_invgreenpole.png differ diff --git a/textures/bobblocks_invgreypole.png b/textures/bobblocks_invgreypole.png new file mode 100644 index 0000000..e9ad643 Binary files /dev/null and b/textures/bobblocks_invgreypole.png differ diff --git a/textures/bobblocks_invindigopole.png b/textures/bobblocks_invindigopole.png new file mode 100644 index 0000000..8650912 Binary files /dev/null and b/textures/bobblocks_invindigopole.png differ diff --git a/textures/bobblocks_invorangepole.png b/textures/bobblocks_invorangepole.png new file mode 100644 index 0000000..4f8cb97 Binary files /dev/null and b/textures/bobblocks_invorangepole.png differ diff --git a/textures/bobblocks_invredpole.png b/textures/bobblocks_invredpole.png new file mode 100644 index 0000000..a6c9a65 Binary files /dev/null and b/textures/bobblocks_invredpole.png differ diff --git a/textures/bobblocks_invvioletpole.png b/textures/bobblocks_invvioletpole.png new file mode 100644 index 0000000..3eeb60a Binary files /dev/null and b/textures/bobblocks_invvioletpole.png differ diff --git a/textures/bobblocks_invwhitepole.png b/textures/bobblocks_invwhitepole.png new file mode 100644 index 0000000..3f35401 Binary files /dev/null and b/textures/bobblocks_invwhitepole.png differ diff --git a/textures/bobblocks_invyellowpole.png b/textures/bobblocks_invyellowpole.png new file mode 100644 index 0000000..2b5c1ee Binary files /dev/null and b/textures/bobblocks_invyellowpole.png differ diff --git a/textures/bobblocks_majorspike.png b/textures/bobblocks_majorspike.png new file mode 100644 index 0000000..159ddc3 Binary files /dev/null and b/textures/bobblocks_majorspike.png differ diff --git a/textures/bobblocks_minorspike.png b/textures/bobblocks_minorspike.png new file mode 100644 index 0000000..fd2e9f3 Binary files /dev/null and b/textures/bobblocks_minorspike.png differ diff --git a/textures/bobblocks_orangeblock.png b/textures/bobblocks_orangeblock.png new file mode 100644 index 0000000..40e34f9 Binary files /dev/null and b/textures/bobblocks_orangeblock.png differ diff --git a/textures/bobblocks_redblock.png b/textures/bobblocks_redblock.png new file mode 100644 index 0000000..096d3f1 Binary files /dev/null and b/textures/bobblocks_redblock.png differ diff --git a/textures/bobblocks_redblock_off.png b/textures/bobblocks_redblock_off.png new file mode 100644 index 0000000..ca0bc5c Binary files /dev/null and b/textures/bobblocks_redblock_off.png differ diff --git a/textures/bobblocks_trap_set.png b/textures/bobblocks_trap_set.png new file mode 100644 index 0000000..55d1cf9 Binary files /dev/null and b/textures/bobblocks_trap_set.png differ diff --git a/textures/bobblocks_violetblock.png b/textures/bobblocks_violetblock.png new file mode 100644 index 0000000..c1a98ca Binary files /dev/null and b/textures/bobblocks_violetblock.png differ diff --git a/textures/bobblocks_whiteblock.png b/textures/bobblocks_whiteblock.png new file mode 100644 index 0000000..857fa47 Binary files /dev/null and b/textures/bobblocks_whiteblock.png differ diff --git a/textures/bobblocks_yellowblock.png b/textures/bobblocks_yellowblock.png new file mode 100644 index 0000000..975ffe8 Binary files /dev/null and b/textures/bobblocks_yellowblock.png differ diff --git a/trap.lua b/trap.lua new file mode 100644 index 0000000..0c41ecf --- /dev/null +++ b/trap.lua @@ -0,0 +1,183 @@ +-- State Changes + +local update_bobtrap = function (pos, node) + local nodename="" + local param2="" + --Switch Trap State + if + -- Swap Traps + node.name == 'bobblocks:trap_spike' then nodename = 'bobblocks:trap_spike_set' + elseif node.name == 'bobblocks:trap_spike_set' then nodename = 'bobblocks:trap_spike' + elseif node.name == 'bobblocks:trap_spike_major' then nodename = 'bobblocks:trap_spike_major_set' + elseif node.name == 'bobblocks:trap_spike_major_set' then nodename = 'bobblocks:trap_spike_major' + end + minetest.env:add_node(pos, {name = nodename}) +end + +-- Punch Traps +local on_bobtrap_punched = function (pos, node, puncher) + if + -- Start Traps + node.name == 'bobblocks:trap_spike' or node.name == 'bobblocks:trap_spike_set' or + node.name == 'bobblocks:trap_spike_major' or node.name == 'bobblocks:trap_spike_major_set' + then + update_bobtrap(pos, node) + end +end + +minetest.register_on_punchnode(on_bobtrap_punched) + + +--ABM (Spring The Traps) + +minetest.register_abm( + {nodenames = {"bobblocks:trap_spike_set"}, + interval = 1.0, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local objs = minetest.env:get_objects_inside_radius(pos, 1) + for k, obj in pairs(objs) do + + update_bobtrap(pos, node) + end + end, + +}) + +minetest.register_abm( + {nodenames = {"bobblocks:trap_spike_major_set"}, + interval = 1.0, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local objs = minetest.env:get_objects_inside_radius(pos, 1) + for k, obj in pairs(objs) do + + update_bobtrap(pos, node) + end + end, + +}) + + + + +-- Nodes +minetest.register_node("bobblocks:trap_grass", { + description = "Trap Grass", + tile_images = {"default_grass.png"}, + paramtype2 = "facedir", + legacy_facedir_simple = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + is_ground_content = false, + walkable = false, + climbable = false, +}) + +minetest.register_node("bobblocks:trap_spike", { + description = "Trap Spike Minor", + drawtype = "plantlike", + visual_scale = 1, + tile_images = {"bobblocks_minorspike.png"}, + inventory_image = ("bobblocks_minorspike.png"), + paramtype = "light", + walkable = false, + sunlight_propagates = true, + groups = {cracky=3,melty=3}, +}) + +minetest.register_node("bobblocks:trap_spike_set", { + description = "Trap Spike Minor Set", + drawtype = "raillike", + visual_scale = 1, + tile_images = {"bobblocks_trap_set.png"}, + paramtype = "light", + walkable = false, + sunlight_propagates = true, + groups = {cracky=3,melty=3,not_in_creative_inventory=1}, + drop = 'bobblocks:trap_spike', +}) + + +minetest.register_node("bobblocks:trap_spike_major", { + description = "Trap Spike Major", + drawtype = "plantlike", + visual_scale = 1, + tile_images = {"bobblocks_majorspike.png"}, + inventory_image = ("bobblocks_majorspike.png"), + paramtype = "light", + walkable = false, + sunlight_propagates = true, + groups = {cracky=2,melty=2}, +}) + +minetest.register_node("bobblocks:trap_spike_major_set", { + description = "Trap Spike Major Set", + drawtype = "raillike", + visual_scale = 1, + tile_images = {"bobblocks_trap_set.png"}, + paramtype = "light", + walkable = false, + sunlight_propagates = true, + groups = {cracky=3,melty=3,not_in_creative_inventory=1}, + drop = 'bobblocks:trap_spike_major', +}) + + +-- Crafting + +minetest.register_craft({ + output = 'bobblocks:trap_spike', + recipe = { + {'', '', ''}, + {'', 'default:cobble', ''}, + {'default:cobble', 'default:apple', 'default:cobble'}, + } +}) + +minetest.register_craft({ + output = 'bobblocks:trap_spike_major', + recipe = { + {'', 'default:cobble', ''}, + {'', 'default:apple', ''}, + {'default:cobble', 'default:apple', 'default:cobble'}, + } +}) + +minetest.register_craft({ + output = 'bobblocks:trap_grass', + recipe = { + {'', '', ''}, + {'', 'default:dirt', ''}, + {'', 'default:stick', ''}, + } +}) + +-- ABM +minetest.register_abm( + {nodenames = {"bobblocks:trap_spike"}, + interval = 1.0, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local objs = minetest.env:get_objects_inside_radius(pos, 1) + for k, obj in pairs(objs) do + obj:set_hp(obj:get_hp()-1) + minetest.sound_play("bobblocks_trap_fall", + {pos = pos, gain = 1.0, max_hear_distance = 3,}) + end + end, +}) + +minetest.register_abm( + {nodenames = {"bobblocks:trap_spike_major"}, + interval = 1.0, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local objs = minetest.env:get_objects_inside_radius(pos, 1) + for k, obj in pairs(objs) do + obj:set_hp(obj:get_hp()-100) + minetest.sound_play("bobblocks_trap_fall", + {pos = pos, gain = 1.0, max_hear_distance = 3,}) + end + end, + +})