0.0.8 upgrade
844
blocks.lua
Normal file
@ -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
|
||||
|
2
depends.txt
Normal file
@ -0,0 +1,2 @@
|
||||
default
|
||||
mesecons
|
95
health.lua
Normal file
@ -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)
|
||||
|
11
init.lua
Normal file
@ -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!")
|
53
readme.txt
Normal file
@ -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
|
BIN
sounds/bobblocks_glassblock.ogg
Normal file
BIN
sounds/bobblocks_health.ogg
Normal file
BIN
sounds/bobblocks_trap_fall.ogg
Normal file
BIN
sounds/bobblocks_trap_fall_major.ogg
Normal file
BIN
textures/bobblocks_blueblock.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_btm.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_btm_sides.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_greenblock.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_greyblock.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_health_off.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_health_on.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_health_one_sides.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_indigoblock.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_invbluepole.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_invgreenpole.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_invgreypole.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_invindigopole.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_invorangepole.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_invredpole.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_invvioletpole.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_invwhitepole.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_invyellowpole.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_majorspike.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_minorspike.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_orangeblock.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_redblock.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_redblock_off.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_trap_set.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_violetblock.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_whiteblock.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/bobblocks_yellowblock.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
183
trap.lua
Normal file
@ -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,
|
||||
|
||||
})
|