From f38635c3ec12bcd6e130bf430e51b42569899e67 Mon Sep 17 00:00:00 2001 From: Rabbi Bob Date: Sun, 17 Mar 2013 10:15:49 -0400 Subject: [PATCH] 0.0.8 upgrade --- blocks.lua | 844 ++++++++++++++++++++++++ depends.txt | 2 + health.lua | 95 +++ init.lua | 11 + readme.txt | 53 ++ sounds/bobblocks_glassblock.ogg | Bin 0 -> 15029 bytes sounds/bobblocks_health.ogg | Bin 0 -> 8811 bytes sounds/bobblocks_trap_fall.ogg | Bin 0 -> 12025 bytes sounds/bobblocks_trap_fall_major.ogg | Bin 0 -> 23782 bytes textures/bobblocks_blueblock.png | Bin 0 -> 3193 bytes textures/bobblocks_btm.png | Bin 0 -> 3193 bytes textures/bobblocks_btm_sides.png | Bin 0 -> 3193 bytes textures/bobblocks_greenblock.png | Bin 0 -> 3193 bytes textures/bobblocks_greyblock.png | Bin 0 -> 3193 bytes textures/bobblocks_health_off.png | Bin 0 -> 3193 bytes textures/bobblocks_health_on.png | Bin 0 -> 3193 bytes textures/bobblocks_health_one_sides.png | Bin 0 -> 3193 bytes textures/bobblocks_indigoblock.png | Bin 0 -> 3193 bytes textures/bobblocks_invbluepole.png | Bin 0 -> 3211 bytes textures/bobblocks_invgreenpole.png | Bin 0 -> 3211 bytes textures/bobblocks_invgreypole.png | Bin 0 -> 3211 bytes textures/bobblocks_invindigopole.png | Bin 0 -> 3211 bytes textures/bobblocks_invorangepole.png | Bin 0 -> 3211 bytes textures/bobblocks_invredpole.png | Bin 0 -> 3211 bytes textures/bobblocks_invvioletpole.png | Bin 0 -> 3211 bytes textures/bobblocks_invwhitepole.png | Bin 0 -> 3211 bytes textures/bobblocks_invyellowpole.png | Bin 0 -> 3211 bytes textures/bobblocks_majorspike.png | Bin 0 -> 3190 bytes textures/bobblocks_minorspike.png | Bin 0 -> 3190 bytes textures/bobblocks_orangeblock.png | Bin 0 -> 3193 bytes textures/bobblocks_redblock.png | Bin 0 -> 3193 bytes textures/bobblocks_redblock_off.png | Bin 0 -> 3193 bytes textures/bobblocks_trap_set.png | Bin 0 -> 3211 bytes textures/bobblocks_violetblock.png | Bin 0 -> 3193 bytes textures/bobblocks_whiteblock.png | Bin 0 -> 3193 bytes textures/bobblocks_yellowblock.png | Bin 0 -> 3193 bytes trap.lua | 183 +++++ 37 files changed, 1188 insertions(+) create mode 100644 blocks.lua create mode 100644 depends.txt create mode 100644 health.lua create mode 100644 init.lua create mode 100644 readme.txt create mode 100644 sounds/bobblocks_glassblock.ogg create mode 100644 sounds/bobblocks_health.ogg create mode 100644 sounds/bobblocks_trap_fall.ogg create mode 100644 sounds/bobblocks_trap_fall_major.ogg create mode 100644 textures/bobblocks_blueblock.png create mode 100644 textures/bobblocks_btm.png create mode 100644 textures/bobblocks_btm_sides.png create mode 100644 textures/bobblocks_greenblock.png create mode 100644 textures/bobblocks_greyblock.png create mode 100644 textures/bobblocks_health_off.png create mode 100644 textures/bobblocks_health_on.png create mode 100644 textures/bobblocks_health_one_sides.png create mode 100644 textures/bobblocks_indigoblock.png create mode 100644 textures/bobblocks_invbluepole.png create mode 100644 textures/bobblocks_invgreenpole.png create mode 100644 textures/bobblocks_invgreypole.png create mode 100644 textures/bobblocks_invindigopole.png create mode 100644 textures/bobblocks_invorangepole.png create mode 100644 textures/bobblocks_invredpole.png create mode 100644 textures/bobblocks_invvioletpole.png create mode 100644 textures/bobblocks_invwhitepole.png create mode 100644 textures/bobblocks_invyellowpole.png create mode 100644 textures/bobblocks_majorspike.png create mode 100644 textures/bobblocks_minorspike.png create mode 100644 textures/bobblocks_orangeblock.png create mode 100644 textures/bobblocks_redblock.png create mode 100644 textures/bobblocks_redblock_off.png create mode 100644 textures/bobblocks_trap_set.png create mode 100644 textures/bobblocks_violetblock.png create mode 100644 textures/bobblocks_whiteblock.png create mode 100644 textures/bobblocks_yellowblock.png create mode 100644 trap.lua 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 0000000000000000000000000000000000000000..d60859f15018ca00cad94f873940fa1b9ad73b2c GIT binary patch literal 15029 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 literal 0 HcmV?d00001 diff --git a/sounds/bobblocks_health.ogg b/sounds/bobblocks_health.ogg new file mode 100644 index 0000000000000000000000000000000000000000..4a0148bc816ffbae2c4043dc31ae5f641679c929 GIT binary patch literal 8811 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 literal 0 HcmV?d00001 diff --git a/sounds/bobblocks_trap_fall.ogg b/sounds/bobblocks_trap_fall.ogg new file mode 100644 index 0000000000000000000000000000000000000000..a49efb34966fa99747dbbba40fae0b1bfa6907fe GIT binary patch literal 12025 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 D0m^i< literal 0 HcmV?d00001 diff --git a/sounds/bobblocks_trap_fall_major.ogg b/sounds/bobblocks_trap_fall_major.ogg new file mode 100644 index 0000000000000000000000000000000000000000..b6bdea65fdc965ab408b419322c58cf0e7d8289c GIT binary patch literal 23782 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 literal 0 HcmV?d00001 diff --git a/textures/bobblocks_btm.png b/textures/bobblocks_btm.png new file mode 100644 index 0000000000000000000000000000000000000000..7e14d084028de79606b22319fa2f694d3804b849 GIT binary patch literal 3193 zcmb_e*>4?J89)21ck^`}$4iqYPC}NZElsM@LPQ~yhKEuicz_2){{tjm5D!Qo@qlArzRS$qnK>)p*iJ~xBOIMObMDNX z@ArMb^KCzT>dDX7!l@7;R6Fs+@h`!BXZ7<5T=nGIb8rj3`NUVhg;3P4ei%LT>?A_* z!4tPO^4;e06#8 z>8HMMMu^LctHdJ89SsbP4DzidNGg)$bdG6q$gLnCVXTn@M%5o56w#6@(-RHu82Wm$IY!F@B-pw6|rQ_RxG^1@}mm%_Id05}C>NCehm!|R5`z<#Bw)Epl?Bo7`3=%vlEKq%WV2vVV z8dx`BS``I`13t$nVAj%=K&n#Rq;d;jjhXpC-U!PcE0F*_ohoo9X_ArtkPL?;&9FAN z_1{8a8pRej5NR4x(g#p_g8AK8^UlDo>K>0MQiJtMhNdSUmfpQ71$&$44oHXN7 zZCHC-|BVG0Asmmbt|?KIV1)LC<PLfyXwLY~?TGe{iwP+m_|F(4GxW7{9%@iwXZ#riN8oRvvv3}GxQSBvyY zYJ6O-mjFP$NNgY9Jv;HS&f*|uVzOOZ@612@YoS#AzP)RI`CIw&Ywaw_e)Ga`Zu-i1 ze>`*aVE3obtmL_R{Y>ZND|bDx-$p`TxS0Ip7u(vkY@(H1Jb&%NKNoDK`>V_A>r0j4 zD%C|dFPBr@&zVCWWh#63;=Jqk*tMl(etz)YyXTJ1y?XWibMIYR&j#7C!)LBte%mCk zEMEM>Z(sC$hTnc`_58cbrc9C4re74x>FCBt4sOK(0-HyLOGhX#kTL=HIMp}T^trQ3 z%hy-OCU<`J(b*8!;64C<>78VNT)r9SMC;K76$G(Bbm;f4aKbE1KhNKW-^ysK+L!x9{1z zV{BsX;YS{xX`cMi&pT6-xmHR!#sh&p4@BX}$AW|G>I`Og?%R9lfz;^Mw&wPk)?4S7 zPn~{4(B)M6r{7rEH~Yq+1Hp|o|HYRsrt7DMdDv<VdgcOV^gygpSMPPddJohqv?%sV-#^t!r^-D zo*1a|dyvGpQiT;w4KB`5+0Rz-h(io-#`B#Rw%fqs>eExHnXWAP^FB_A<9dt(zPuB zUg%&@#Jxny4)Us$ODw^fSS_>?GUp|f`;V4`N_S`v0xm->W1~W8xQ0@PMM-o|qS6zi zDh?`&e1n^cC`o+~pq>o9T&@_Wb@a@)s?xyNo>ZaKs%^C>> zBj67OaV0ky{a{pA-hryP!3QkOHGa+R_?Cna=l_Ex$E-~qO&vMR$6-JC*`0Yq8H>`1u8gNgbD z8Y#9}+CW;wD}o+t_E5q47_}Ndg{g3UVrE6 z3JAyh?%i|b;MBP{-*1Pt!LWd%q>$@`#U8XFz-!e@ZI)=bx($G;z2sZI4=z`gY!k_;hx7#2bhb@0@*IcQ}Znyh?Y~Lp)COq!V dFU)`K{I7oY*Z6wXBB2wXd-C}6pZUi3{|&C{yea?y literal 0 HcmV?d00001 diff --git a/textures/bobblocks_btm_sides.png b/textures/bobblocks_btm_sides.png new file mode 100644 index 0000000000000000000000000000000000000000..0e1ca0d791722120469417c741cb94e09834ca75 GIT binary patch literal 3193 zcmb_eORHp872bQT{Wzyi)vao8(!|>>#7>%!j>ac~r~##oX$MIV2Rc)Kf#5`(DTw$N z#F_I91O*!hBH{xHXfhDf&!iu>?<=>?sq@-z*S>YT?a)S|oyD$G4{EP(ueHDRt@YEF zU;N5!vNd6h%`Uuf{%iF9czzW?Pyg7#FX*lO?hD`i9%I#JesT7*pFhUf^qC9izxeg< zzri1$UR&`GJ#p&!^Uq(ocJ=SC{Vjw*dmi2p@ng?^{D}{rx%k_QVsrD6z3uDYe)+3^ zRqD$1J%|it!ZKhLSP>&I>!2I3AH--d1WxdXsVu^z^pnDCnRsMufY75KM0AX{Bo#mR zk<)M14LKJ(yLVOx+n+gi_OqY=#3!F_0GO=2oI6~2RtC>_JBZ~z@16Q>QVoof{j;iNY)CrFL99CgbSA zMJ1dDtI#N(a{eGBuueFmqpi5rA~Fq0ODCme(p$K*-=98r?$xWWlXF2EK3Hvj;mo=5 z*0s>>sEUh<;e<0qnAmzTwQ6GZ)Tx1Cc2Abr#PNk?o0cs+uh64nY{G)$&U2Tbu|2-q6Y46+&3%1g`nQKG!~L|F`)2>UdSMdC^!|>yLeyY5r$4d z_<+tM5mf}m2y&11OR-P?$pB$Q*GRLk$HO=p7&1N38RQ<0*mU3JuD!nF$=L|LL!%K& z!3!T%9BZw>Q*9puxRvW}4b6>Jv)3C7mX?D=n(+=t|LqGMVE`6obSi2UOy6qZ&D-V} zz&5Vi9-8Z2v)%XrL`T|?74v^I@<#_VnC#eEisS9OGEv zRZ!fn?gB99SwFJ2XH72d_rYABNbd}>XiaY^SXr>DWYdbR_3U9l5+{l0it{Ls0YoMA zqorB=gLrh+?-7O0lQm98 zwPsOA8XgXvVprAxGew zm?nux7NJ+rXjNNP8`&E9Ks#X6`lrIrwWYP8-2{WAWE##4z|u0KRe!e*ioh2RoW;Tc z6N%CmWg1gzinz3)R@m4?%%7O)t-y z;?z)jTT%WQbs}nfigyy02ulu2z_z2G{_UTpn>@K}gvA^dGngomc|B6~%FyA>-WaD2 zh^A|RBEsCtvMEXab9grAx4}r2jpTx~6Urb?Eprq?2E)2rA z(zRk3z+@8Lm1_d7d2C&D9jEG+NJ9oCDkc$ol~$S-TaK)EV$E3cR>_Gw&D7E~1@{PLh0$5Nqjb?^Yssc;wX9umAj)*WSEC&iPXxJ^SfrwqAer(&l7V zHzVB(iUf*!H;o~b*E~y6|1lQVU5E~q$4i+TOD-`?oZ`xT05VrY7R%{W{_w{?xcJ9E zz4EKy39a2~XW`J3NQH#f;SpPVS3JoBV+W_Ne@eH`CUo;<0gzI^raOW)~!a_-XMH!?pi OeEG%muYBoSKl&HM{0fc$ literal 0 HcmV?d00001 diff --git a/textures/bobblocks_greenblock.png b/textures/bobblocks_greenblock.png new file mode 100644 index 0000000000000000000000000000000000000000..0acebc5df8a225b4e822305fe139889add1f9e37 GIT binary patch literal 3193 zcmbuB&2JTD6vpSBnS19_3W8v*Sfqv0#1PcPjV?67R0K`XAZpzC2e>fN7`M8!I~Q(@ zJGaJ!4MCJ8aYY0ok{AkMK}<+YNC@0J-~OI+W^UUxXWE(fo;l}v&e!|i`|W$D-r6y< zZzhVO9Vbt$p60oz|541nn*Z-79@{=U@$u(Tw0)2ML-fOs^HDT=TB`dwliy`t4g+uU)C@8lT6PBuQR;;iW@M2QU17A>FfQZ;@25eDLb&Pv2krc`bwx zafJ}aF?K0elCXx=m0Fug8?`9grtO49)bch>)AirhUwixY`*-gH9-diz`oNLJaWpyh z&at!S&N_OCb+Hx=R~&;bfrX`gQlda2JQ^)zFWY!_I6J;QzH#;M*_rL>!-o&=-nqN@ z^3tUnm&Uut4!v*0fDit2z#fhmb=+!>jgz^k@(fNJ6BFM=5YhQ;?x00N%6#AIg9p z8*W0W8zzECRrg56+#;K1rOSZOhQpye@oCyR)C$SO!vtBerwMA%WoF@Hq8{{@yAYEv zxLXEoRMk~gR&Cl2vms=pAqzL7g-t{HN-o4*5Is6pXe36W>MD78yI2Ns7>!2hj576Mobv_=I1f6M2$ij;6U~3s-9F6Isqs` z!$o7Fy=UR7I0iIG1|bQ!Xg{|NI`Y;r#pvm?cDVam4{R$bv?wMnd}ucdG~luaNn3C2 zq=bW4C|QtVGz6)Sqiz%y2SHKyI@`(0-i~r0a07iZp3H2UAtG=&7^Jjwh~Ub+o+g|nTmWE$0HjUplVjgD zmW#4UqQrt$k&M8P(lmXPKN@A68Y3zL4ROf=>?A4j0#Ku<;J^R~hCH-4%E7dHPJ}bR#c3t@Ybi>y?DEYV~Xa3Y9F^4OnU%I%NLpzkbY1T z^|;j_ZVsvsP6biuepigP7PhEx^zd1CQ-o^#XgqGl4yV25KZp7l-BbBlO~hpA=%qwr zOHTOutcQud8bN0OIfbZ+M-2$Ei-V2}N`4#A<|!p=LzKdK?A)^VmR6U6ak6J9i}oQi zV1o{sMxIR$k;_J89UnH`8;=@m(@c}lCfc=k*U{&XUi|Cg(*7l^frCJMwXU&dpQ#f7 zS{x3iyCDN8tZ5!Hiteo6;V8rb@O18}xx>#LK5+2B_3y8*oLM0Wu)vM0?x$nmShH}a zK}|VG+IWqQbp7X3h?i%VuT|F;78kN~m}bKaqqQ&B>VK;%=l-<1de!?$aQG?ebYbQ4 z%+SfP&tqZV!u~@GAHMt1`Sa((%r literal 0 HcmV?d00001 diff --git a/textures/bobblocks_greyblock.png b/textures/bobblocks_greyblock.png new file mode 100644 index 0000000000000000000000000000000000000000..c3728787cb0284dffd88a9010bafac1725eb95b3 GIT binary patch literal 3193 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 literal 0 HcmV?d00001 diff --git a/textures/bobblocks_health_one_sides.png b/textures/bobblocks_health_one_sides.png new file mode 100644 index 0000000000000000000000000000000000000000..ac24409cf411e3504ffce212bbaf717a95de728f GIT binary patch literal 3193 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z81_mB& zPZ!6Kid&2dJoi5{0u?nhGyqAeg9BgyGWPT5&;MxvAnpeF_WASYzkdCqx(^@*f-ImZ z7`1?4@Qw!2Xb=$$0fGufQ_*M;5exx>3Pw}WXb=$$0fGufQ_;W&5ev`>@87?dmX;>y z7V;E;EZDJQ$Bi2|I5;@SGXkqFplOdDJ;EwQWkKg_c|9*vUo8h2>*?y}vd$@?2>>*N BgZ%&i literal 0 HcmV?d00001 diff --git a/textures/bobblocks_indigoblock.png b/textures/bobblocks_indigoblock.png new file mode 100644 index 0000000000000000000000000000000000000000..0dbf7fdad22f7bbdbc983e1e63f85f48c428bd72 GIT binary patch literal 3193 zcmbuBO^6*u6otFGt6xuECV$3ECehJMCJ{wZ7j6}lNz51xk{`rP5W%eoB1qhbJC|9A zBH6iCL9z%zvJnvx`~$O)m}~|ifhiuB|?M^4;Iv zzWHmn-O|c^hgT2(aqa3azy92|Ek6H$6h-mG<4>+E@4xu&=B9 zKmWlgx;)Pvzq}~C{d275&Sfk*=9=2*7+I!k7i^lbjmNo*=T00wb$R_V;BL>p-A_OE z%nrBx_|fB+E?fddNQNUcmlugmp#8F<=ts{Hf`W>HRmFE#zyJ29Z?a+Lw(gogxOniT zr(Rsywi5noT{IzN3zaAGB@y}BlJ`7$n0kV&v%k=V6hh{1wYOhC`$pp?`7rm`VO>>o z-uv>NO%}e%k@T>z#K&I-*PtAb6oRxZvIN{szT6w56boT=YZM{a6#)Ydg7nTydJPeE z=Ho0vpumNIJtC$Z+NKRbfGHb`pGW>eXxWG(WkC3Ysw%q@ehNlx3fO+JdaAY!)`%S| zA=!uq5!n`;^6G~Oux*;Au4}0@7?j>q3CoJB8btc4Bn4MeQ4l7Mwk>8j#70z3?WWlJ zAp!)Mo15D*KVRjQ5(pvVJfM+mrIyc2J(?eZCpd#hkK(a}%*g7M7>vN0zpfiRApk4( zP)^)==+syp+DFyoH;p`jh+DgnBW=$R$i+D-)3geXGIppDfh;m7ojMiXz~u^7j2O7I zp88aq(ZDiR1`G(KaaQ1nC`@%#W^BknQgD>0LD#9hgl`N}O6^516Io6gi2$>*EURpQ zn;`>>eH=mUN2(PuQ;2wh7Txk9ZX5EWT>&{|c;+HV@S z9&O3wmjZ^0vC`LE>>_}Z9#wZ|p`J|YsDsPOazI)-Sr$b`gPJTlab2#{BnlC7*mNlr z5d!$KRE{=8z%oaav$@fX@Z}tU+|X1WXJHaS#8yUDEFI}0rz;q=HH)ke4HNX>8qv9$ zL?mHGy0eS@wpIJTOmos7o_49;C#gAlY48K{o3=xilY z^hE}*>rj9q2|a}IcnlAgDqjnEk3^n!K;(>c zB0%yTjueDL~j*OwkxB3OML=_u1+hC?;+|y37pm#NWRdjexD)dl#2ime-EGaQ?zqZn$Ia x!2Sc{dVJ%?4HTcj`R`L?UszbE%IeD1EBT@2N4`9B_I;tP9Xhu9#dEKH@DIVfG;;s| literal 0 HcmV?d00001 diff --git a/textures/bobblocks_invbluepole.png b/textures/bobblocks_invbluepole.png new file mode 100644 index 0000000000000000000000000000000000000000..e60d3eb09e4a86d398544b0e7bac0102cec1ef43 GIT binary patch literal 3211 zcmb_e&ui2`6rP#PB-!nj+Sc7IMaohU3RWydmLh^b+G2ZXk+ulE75@Mc^x(PR!J{`R z-jsqDj|DH{Nhqb@LJuN{Ei6kBnyuY!lWcyBUlP3tP3EwVY$j|b?|bik-@KWZ4;JtD z=7;lykly*ZnI(*s=w~wA{h_0`81!dLi^~{ck2j517;;bMR-Y2mGZ_6S*?2QVNa5=I z%-xme-)W`rvqj_C88^LGP)c&STo{I!${4e4n^L;6@X)fXt*xz;?|I6*8D#auS`tLTh=Mu2_Z*E%bV}( zcy?Vk9YCo>gT-p;;sPNfmgS*Vt=8{S=||&m`_k}np-`yRYAG1m8Q|l-z6&EGmo;rb z*Bz7|Oh~DN%yQYt%s>es4iKIh=Nj%JGOlSFAzn)C$tyJgO5sk|b;BUw7%BqQl7Q`O zi$tDj2%eCz)A4Y@F_3^IxXAnv6Vx)m5<~Pxk8PX4YBo6%NY+Fqh7y3_95Evg&-38d zwjIOpy9t0W5jbNs2twcYg20cLn-T{~8AOCiU@%PsXOVuuGi6HrDFKjJFep(hP+^+6 zNTv)j%{C=~gi_!4&(3Usg&|4=*WD{o5J<;yId|b2bU>`&8+h6AE6Nl#H%)_59t45s z1&-qg5uj~%4FD2~s|2T@md0xU_32)T(A*GvqEso-HaJwISR$n~|E*ifxiE|zWQruP z^i)cu1OP{|Mmc1PRM0f?`8-pTsS*IZ!(A8#=>EEnB#anQB>}Z&hlPyx0F8oS7@pCv zmE0@J6db@3Eur7JZl}xZAnrmMk1Rw67@(qV$`soTJc8j^I5OTW3HD``Dyj7%g8D>z zy=|YNZJ;BWrYFPh0U%PSGYmWENO+F*%D}3^_+1J?-!BpPU>U7D#myW5A22F{F$a-{Tkc1*_g z>(^FsvOCXp@_%-T>h-$gwV4Q*=={BOpNbX}%~Gk9C@KXbo2zQITKo1DvHy2`2N_;F eKnCr0I|ZQpaqaV!cQ0;4Q|4zEXFl9pTmJ)^<#);e literal 0 HcmV?d00001 diff --git a/textures/bobblocks_invgreenpole.png b/textures/bobblocks_invgreenpole.png new file mode 100644 index 0000000000000000000000000000000000000000..72b83c70d529abc36e1625e2e3489d1f1e9b9610 GIT binary patch literal 3211 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 literal 0 HcmV?d00001 diff --git a/textures/bobblocks_invwhitepole.png b/textures/bobblocks_invwhitepole.png new file mode 100644 index 0000000000000000000000000000000000000000..3f3540130d6f7879b4d482af6b5a04f592043ef0 GIT binary patch literal 3211 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 Zv%|gl?A7h;#>UJ3WvSJ4a(nsa!(aDK%98*9 literal 0 HcmV?d00001 diff --git a/textures/bobblocks_orangeblock.png b/textures/bobblocks_orangeblock.png new file mode 100644 index 0000000000000000000000000000000000000000..40e34f9727284be93689177ee1768dc12f6f10d4 GIT binary patch literal 3193 zcmbuBJ&aUU6vy9vA2ZABBH+5qf^67bR)R5tt&I`0;!+3-5@WQmv9mC-F|jdr(i@F2 zHpa%n#F!96&<10RK(sJ?#7Ln;5~6{fnRnm2{{H9QH!Q8**?I4Nob&&muX|=cc;VP{ zTL-%bS(a@*y1sUT_maL-IZwZE>vLXP-dca;JgLeGea5J972_t`fd%db5l3;}sw<3@305=` zFkP7-5`87I2^|^BLGJqfsjXYfsZd*R0raRN4T;68ur!!m!Z9$kZAe91T5#BfHy#=R zAn?|8?fg)|mTBPTZL4eqdunDXhLdJ#E`9ETG2d@Kaw*ARlC;|6f!rjO!T=IYnWgfG zzDF9_+fk+coJt_!b|NR!NCX%`8p}}1M@FG=TRc-DP$3tf8!D&Zr>OdorRcoqXCB0b5*~jg5^qjH;^VsC1Wb~<|?Wrjhe6kb7ll>ONLvL$|Q`v5(|Dt$?{QE#8f~cIPOFqvI1eQ zjp8H*0&6uYqP(gm__2zt!_cdT<00uS3075kUz^ni9vxsBP0d|ZRHTTyU{H9VqF7ZW z9>eLzy5Ug6V>uv!T>4T0X>gF6UKX?(`5A(5y!wQ7N^D0+wl^Nos@LmDBswOLrlAhQ zc+{k=u1s0#f@sh-%Hrqy8rj!J(5ep542qHn0 zr61m%vVpu>rGiUJX|ct4JQjf{fL3-4R_#;>0^wm;>8U-YmV-<_0x?5FRa7O-VT>5h z;b;W%81P!n%4%0qeDy+>Kl9bxkmK=)rQ3tf)nU8iIIspU@I=WGu|-=>h;t^ zCHFPj;OntMA_?k*>a;;DER}K9#VD=1<)-*>l5#*Mt4gg7PgH6|$1;gG@O21!#|3gs z;&XDUWy-|86C<#mOfT|&!&*B(s!jZLPT-hr{moz#U%~(pAz2X_%?MMAy5>9Am7h#v zqTd6xYnmiaIEcG6lGh13nhYr%X>fv|8smL3oW>C8-x=kWOXlels<}8wFYp{ipv~H5 zvIKS0IEX$VXE!*WihxVBYj*qUqmSRZ@ZI9#GFvnSdVwyhZz>nKgAk-lY)VKnKZYps zch5Ulf2#`D5C(EPKR3Uy_mP$5y&r%0^Qn{jxxv^1LE9)${4<(yF;uXO&Md>0#mZP3 z)_QfX+5G##)lqY4acNJ@|0w;QF4(K@p1$#y|MT31Nnqvsy?`eC4o&Y4x_evmiP74* zd(Xa=J?k&N{LQy#++fGl>dNY<9^Jfolj7M7@t@~}eSUtvU-hqCyK?3Dp>X5En_mj- O=(ESxzIx{M_x}a$`$eDt literal 0 HcmV?d00001 diff --git a/textures/bobblocks_redblock.png b/textures/bobblocks_redblock.png new file mode 100644 index 0000000000000000000000000000000000000000..096d3f1d77cc07d6fb375e430b3f9007d5a27ccc GIT binary patch literal 3193 zcmbuBPiP%g6vk)XoA)O#FKHwuCMKat8ncnAxDi2wNLm||BDGfBb?3s3;6}IZ%)+(! zXXRcfh>Kvmvmh?iNGp`4rBp!!idgBJc{B6I-*?W;%WG3`;ce#5{d3Ouo%7vu=kxgh91zO}h=_T6jY za`)z)aOv2>$<32{H*fs7`$L}R`27D?uh*Y^;;CaRt2S-!7aZNO02Q7wh}izbt!>2tff$4xz`>GY!K2&#w%7aS+SPDsJe-{A zu63tgT3lI;GGHk%F6%PGurj|rPnT+Z8K2Svb8I=!6& zW-vLT`k`|Wh=83u%hD{1iUJyRASjv1R=dFA;s*#H(@{9ani_$SD?QEI2#}=JZg-=o zm8R~TWf`X4&==8tY=nk160Zwb#&3#Y?CA7<$SU(RO^Y~oYr&C)PB)asJ~bzRhM74E zn;Iw!iQ|hUUqzq|PAyAQvk5s#3`-z9#ZwHO?}PAl8C&t#dx&otutb!Aatkq1fTA&Qhl9ODWoz!a4u0^wL#;wXCx7veC?@X2#_g^Obp zkp#ho6*t!98IXjMs?``!P6Jbk6|4tY=3y!hS8OogRst$L&BlX8gMwNwiUd|)s%|oi z`jq2Oki^o9<4&i;_X9H+ebHs<`(8PqY5&<(TlYW03QB792CO!hBi<1Os#G&a(tsD(P z@W9bTN$h&mv|&vI%qa$;S>UWN_C@ML;$~St;p86hUjj!LhygLhS$)M}1Qjs>fyNA2R=}nrG?e@aA<;D~2YXD)0)w%76_Jkwv9a z-osKZD0RcF4HMGLz}WRvhR_PJ+>{kj*5{|D){h_m?c&9yl@*q}M#+f+B|8kHRhe}e z;X&*patqJeueWaT0pSkf8_mwl&aXYTa`fm&SFW60U*{gVnpq_j&_nbJL2rdw9g_I0 zI<#J^_14zX-QA^y#jMkeTFn;upZ{?CmmvG|r|jz`hdnYEP{-+1qC zSe)8?5EeR5U0AvB>t^?-+dq!SV{HC=i{tq0bLTqGEZz9_Mlv%qd#u`6J@W%Jk{eSJv0>KR5t94%O&Xv-SH%_l5K4 z`~Chf%SL%lpO%9WgDe~7xy$MKrPgc7l+};NX%vxxah~70d2_$j`ny@XyS16@@9+0^ zcHVvK>UY;td~gRZq}} zo6SbMJ?Qlo7Z!*eEbq})mXxOg5a?>PijOSMv+n4&+S@tJ1!Jbnla^ZjlilotKVD3qm znc0g@Iq;EVX>9UhT83g`6@{l#UhL3}d%fO4ujeHU1r5vwf8u3&GKQMX9moXazX(Mu zwrAy**&d{+&W$j+bB05d+ifkB=k5&aX1(#<#wL& zN8ynZBt+~1k%_$DS05jW06L_lQLnqwbi3_v$})vZ5|ac7FrX$R8|XAz1o#t8Bdbok zQv{|6EH@SS;+9I~)3y20)n7;El~;N7h{;?6-(q3UK4vqm)t3vGp%YMr|X^l5=G^(6Al8Lu4|el?V*qnaubS*Uz7xG7lt1}LGZ-{QH5yd&~fSUp}Y&E zM0afO3#lefnJc~)MGgK>h5&JGq3?m~gGeo@R79m{Dk}R5y3QnUP0fDdg#h3Jt~;oa z0R0V%bch=B^MBsEm(I>kcRCoroDEV2g}c%dir4W*KgaeUcUU<_3H#-$;3tRaTaSMD-4749cEk#Bt^&{CL+L1H_IAv z+*+7VTeYNKt9Q+4^B^L1z)ZJb;>IT#IgcXzb`|3@RMb8~a`YJH=-v9tQYmA8NS=$LTVRxho5{?eQ8 F{{wBAm*D^a literal 0 HcmV?d00001 diff --git a/textures/bobblocks_trap_set.png b/textures/bobblocks_trap_set.png new file mode 100644 index 0000000000000000000000000000000000000000..55d1cf9e862cfca202aceeecee5f0ac9a4160d31 GIT binary patch literal 3211 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W*h+%@f`K#;L2&6a*JR*x3 z7`TN&n2}-D90>*n9&Jw-$B>F!j0!yWKZ6yI5`!=V3^g^Vv5S4c<*ND@>DR4{OU|>e$lg-stRgn}G5#Zr|@#YO-L(;-RiOffY&BCez z=vg4ZDn+Uw_MEINEgjd6ZMijpZXu`w|*KYR6xJi7_&A||n6Pep{y2CEoN dY(xeWer1I$qCeSX-p&T8@^tlcS?83{1OOF?EWZE% literal 0 HcmV?d00001 diff --git a/textures/bobblocks_violetblock.png b/textures/bobblocks_violetblock.png new file mode 100644 index 0000000000000000000000000000000000000000..c1a98ca86bb224f99cdf708e021256ce8d54ac9c GIT binary patch literal 3193 zcmb`JONbps6o#w%aeHPm35k=8F_XlZWDq47gBx+-A~NQI8a0aGLU83;q6-(UTnM^w zr5h19?gIhEIH)THMTI;RNyvji6b)n*$2)zyyV~zR)qN)k?zHaQzFk%4{Qo)sIbA(( zKYi@*#;F}s&bf_8k1QSMcV6F#gloP1`p5iCzH;P+SDo81qpx=#e7N1Y>3v6+4nFt# zML$1%^@iWIcka;Aq03jVoIQ7@X&QX~`$*IDf&B;eF6>$UVmX_c+3L&U$p>G2`H9y) zdgo-~!S~)LN#ZjMGhLXm99OyZP9N9uaqapDuEo#e^4;ank34kz&l@WOzia-^d*=?c zf8~b{KK|*c(}v>`3==@0Ns`pA1`7!YFfn65AR2}XT%vuN_{r(wkKvUw7k`-CoM)@6 ztH1ufvVZ5pXTP~n47XUAf>5Norr;Bl%`{g^Nv6F>Kt1{-EI0*{gy!2Hzi#s;tmau% zq$mb{ly2RAhdeRSFbYL)=_q2-Px5>~PDI=UMQzI%=odGUg?8B9U}Aqx1ln>*Ms69X zlElDcgxYJ7*R||Z6XFN92{Z&0aG;~N-sp33u5ls4a zD6Zn_hX|0Rn3&v`aa%>Q5KqcOisYhB`FxC^N zv7f>bhX6PZBBFxScWfpmxv;3N)`q4cU`A69hh-?+d@$hf2?1+8`WzUBs-Wx-bMrMpfl2oH6Ce$n)HcfnrT~4AgWfy$f_lVl^^c zH3w?u0MHN&O&vV^kIW- zwXY3+rIHDv$dydo(Y2F^e07AjD9+igHv)FZif7p%NnMsDHWpZi8!<45L=jr|QMR6= zD{{=ZsnmGXn&iuJ6rIrV0%|%F!b?5*J%{F}Izd;(yF6PK>FQf?6>}@+7 z4y&Q0UcqSij(dXbqphK^g$X1{UK zP<3$eZ=3S9(D`|Ni?R778Bo~dYmbV(*3g3q*GaccUhk(tqo5_WTG@aSJ zZQuR(egEZ8yB2n1!2tk4Q&*7Tje+t&$MHvDOAd{jtMb~l oYtrQZ7$`G4J6q(%r7M@tpLpc03%{JcAl##m9a}p2=u2<@1N7umP5=M^ literal 0 HcmV?d00001 diff --git a/textures/bobblocks_whiteblock.png b/textures/bobblocks_whiteblock.png new file mode 100644 index 0000000000000000000000000000000000000000..857fa47b6ad81d30b1537946815733fa00c26a10 GIT binary patch literal 3193 zcmbuB%WGX#6vp>?-Fp+0v?ZEHr6r~{83;C02MS7zxvdltQ?Y{hCkP@26bFv9|9}si z2@XXRC$)}rAV}+D;ESXMi&kRm0~>PB+uyhLIXAac-N`*?@3q(Z*0&ye-~0MwryrRd zKRoW7o9wTzKF)hVpI*qbn7i>Vud(OWpL*W8+otsi+}rQWIX7`nfAzs9Hh&5hCa(Mw z965I9+UnZ&mCN6J`*m5C*!=$yMbU|SSB~Aac>coqczXKw1Cs||e&MCr+1X1MzYK!F z1wj~u8c`IZ8%3cB*MyNLiVdST5`5p6NEroG{?VgV6;%ien@u3TQqAinhpg}5Pn8r#y z!;Jh6Pa|2WCe$MeS)mfc==Vq#)27>HU`6|V3}vHp&A3_7Ocr2o00cN32X+Z$jsz4sk9o z@!$ju%2iN@B#g|dkH$uZZKmkHv7zJ! zen_iAj@Z0nZ8&;JB1Eu!W|idDt0JJSsW6~SvMdjrDuKMy>BLE*QVSjs(u3TR=_2*2 zT|#U!(BYm#HhPET3sYzkLb zRzl_A;VBtObAUPANe5(^C=WW$lvJ>#sG`yoA2n^(B@7cHbcu0L7a=S-tgcGa%;ygs zE3yEDZk^AK6AlJ@V`Jll0$(x*D1^C)V3(V*?&pfzDU1^ka9MK|*iAzsYR;3W4O8R^ z5@5GGR;U=&VA&@pDLG+I4G@y?<|h{- zgEx%U5M&7(wn&>;y`xqOoTkWZ(?uLH4x)D{Yr8N2VhiC&^+p5XYoh5M(^0I#S4?{A z7|qYmFD)-!zkXwCY6?pFsilUa7;=+V5+;%=u) z2F^b7^wq0BU;F*HhLc`=1no!rZkBo}3H!q=8tb{axy8E|`~Ch$AAcB(AL<=nJf7z1 s&d!c6z`oIcosssLnVD|V-MYN>%6rRye6Y6tgRuG!pI&|cp=V$H7wMQiQ2+n{ literal 0 HcmV?d00001 diff --git a/textures/bobblocks_yellowblock.png b/textures/bobblocks_yellowblock.png new file mode 100644 index 0000000000000000000000000000000000000000..975ffe8c9f5f376d1fe2e50e1b1f3dbb7a08613e GIT binary patch literal 3193 zcmbuB%a2r55XSGhkM5@D;bWj@a6&Q+ldvFBATco^Q8Xhm8)A$bToA*KgoVb9ZegQt zS*V1#nM7T=F)k!T{sLblM&!BF41qXdx~Fg77r(F0=|;ACdhWgF)~WMV)mK&L&L?l4 zcw?sfTsMlMnYH7qZ}D8x)rq;63-{M~?0E0^$q%AvYEGAnE?!!QqUi%`tFONO;SIMm zefOc;vv2X(>ap8*@BDV{*Q%=6^Z!SZBriOFaNpkL%U3R^b8|aqXEx8C$@cF*_s8`w zT;yEroQvW(Mla!(Cb5Z-GBl4JPBe|(cr;Pn)Q!Ef#*RxDZ=64W@`o!ofBI#o+r2b@ zIS!=taXit^^6!?Qw?o^JlKKoTzmKTXm!O(Ml$qhTiR^}{({BDb~G|McUZ|GEcu zlOknvyUngN%Tned$%rxw3PD1Hfh<^K9aicp(830bT1Yj<>S}W{PqPFtHpu|P@5DDB zBX_h})}={ZH&Nmg3>+f^y)3a%YaMtXWXGbAwhSqvD6$CRILlhCR=cb+BeSt`@_v&* zX{Je%Wf=wtrmC_cumzR%K2;c_5zVr9D+aAs**217oHse4~gw zG9!lVd7w z@a|BWiv>_l06Bo+62z z%hIgV>6oKNNKoJ*blrhd-O8#hj)~{R3&zfn6H7MIMn(ZBs&Y8o9t;K)D6iCsRj1b@ zJOLp0D;S!*E5X!QAcyp-fs6y0V3#NYZIq8FZcRob7C=HyYf$@2Z-m4e0Er}u zGl?RyCay`GKuKpSt9fW4R8bPcKECJqkVZ{Yx-O%rycsYjq^e{oL&`46XnvZxRKzu` z(dBm1#ArKL_<(}}LdJdkz__AlI0NJ$U?Qa|Egs4n5Ya^^H%*B;U7586C089CL=VZW ze3VzE;tK|BX4NhT$2VX&7mlod#jTUBMA=RCkP7yaHb zx`{*(7akdJo}XYqX6Xhyv_ZiV98d|~Pke_H3rbc^*KSN@FZ7(RC7p=A0YV#u)6}IL z6iHfTnLL165(#AmoxgKi9ccEu{E0+XD9_P%tpuoDAY7xH1?}bC}Vj|%P0*V zXT0x8REy(ZBCjP!{Ez_#{A_P;_Xk@(LK;T@4k^igox68S@##fuOV&8BywKi7TcF8n zLaSmD9bBVAEcj!WhrYluSmU7mmS9q~;!DQ_*pnSIZ#KerEks~TIwvR@{^>D9oj?>7 z4oq?outOrjk#{Np{tQ|Ie!LL89Iezu^Yg8}OMCC#-<*4P4+>BNV{{c2rPqWc8v?t> z4vH_&HWNR*0SVpT<^5i7@Xy0xl0<25S8s9gz@dXjKl}W`>C;CD0{`fBY9Cdf2KfWZ z*hhJ3#i#-E}M c`_`RXn;*SDSU$e+Kxk{PpIH6&wRg`w0v>CIwg3PC literal 0 HcmV?d00001 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, + +})