Make many blocks drop when pushed by piston

This commit is contained in:
Wuzzy 2017-03-29 22:58:31 +02:00
parent 2f4f196eaf
commit 30564e494e
27 changed files with 81 additions and 81 deletions

View file

@ -37,7 +37,7 @@ for zmy=0, 1 do
local longdesc
local usagehelp
if nodeid == "00000000" then
groups = {dig_immediate = 3, mesecon_conductor_craftable = 1, attached_node = 1, dig_by_water = 1}
groups = {dig_immediate = 3, mesecon_conductor_craftable = 1, attached_node = 1, dig_by_water = 1, dig_by_piston = 1}
wiredesc = "Redstone"
wirehelp = nodeid == "00000000"
if wirehelp then
@ -49,7 +49,7 @@ Redstone power can be received from various redstone components, such as a block
Read the help entries on the other redstone components to learn how redstone components interact.]]
end
else
groups = {dig_immediate = 3, not_in_creative_inventory = 1, attached_node = 1, dig_by_water = 1}
groups = {dig_immediate = 3, not_in_creative_inventory = 1, attached_node = 1, dig_by_water = 1, dig_by_piston = 1}
wiredesc = "Redstone Trail (ID: "..nodeid..")"
wirehelp = false
end
@ -163,7 +163,7 @@ Read the help entries on the other redstone components to learn how redstone com
type = "fixed",
fixed = nodebox
},
groups = {dig_immediate = 3, mesecon = 2, dig_by_water = 1, attached_node = 1, not_in_creative_inventory = 1},
groups = {dig_immediate = 3, mesecon = 2, dig_by_water = 1, dig_by_piston = 1, attached_node = 1, not_in_creative_inventory = 1},
walkable = false,
stack_max = 64,
drop = "mesecons:wire_00000000_off",

View file

@ -57,7 +57,7 @@ minetest.register_node("mesecons_button:button_stone_off", {
walkable = false,
sunlight_propagates = true,
node_box = boxes_off,
groups = {handy=1,pickaxey=1, attached_node=1, dig_by_water=1},
groups = {handy=1,pickaxey=1, attached_node=1, dig_by_water=1, dig_by_piston=1},
description = "Stone Button",
_doc_items_longdesc = "A stone button is a redstone component made out of stone which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1 second.",
_doc_items_usagehelp = buttonuse,
@ -88,7 +88,7 @@ minetest.register_node("mesecons_button:button_stone_on", {
walkable = false,
sunlight_propagates = true,
node_box = boxes_on,
groups = {handy=1,pickaxey=1, not_in_creative_inventory=1, attached_node=1, dig_by_water=1},
groups = {handy=1,pickaxey=1, not_in_creative_inventory=1, attached_node=1, dig_by_water=1, dig_by_piston=1},
drop = 'mesecons_button:button_stone_off',
description = "Stone Button",
_doc_items_create_entry = false,
@ -113,7 +113,7 @@ minetest.register_node("mesecons_button:button_wood_off", {
walkable = false,
sunlight_propagates = true,
node_box = boxes_off,
groups = {handy=1,axey=1, attached_node=1, dig_by_water=1},
groups = {handy=1,axey=1, attached_node=1, dig_by_water=1, dig_by_piston=1},
description = "Wooden Button",
_doc_items_longdesc = "A wooden button is a redstone component made out of wood which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1.5 seconds.",
_doc_items_usagehelp = buttonuse,
@ -144,7 +144,7 @@ minetest.register_node("mesecons_button:button_wood_on", {
walkable = false,
sunlight_propagates = true,
node_box = boxes_on,
groups = {handy=1,axey=1, not_in_creative_inventory=1, attached_node=1, dig_by_water=1},
groups = {handy=1,axey=1, not_in_creative_inventory=1, attached_node=1, dig_by_water=1, dig_by_piston=1},
drop = 'mesecons_button:button_wood_off',
description = "Wooden Button",
_doc_items_create_entry = false,

View file

@ -46,9 +46,9 @@ end
for i = 1, 4 do
local groups = {}
if i == 1 then
groups = {dig_immediate=3,dig_by_water=1,attached_node=1}
groups = {dig_immediate=3,dig_by_water=1,dig_by_piston=1,attached_node=1}
else
groups = {dig_immediate=3,dig_by_water=1,attached_node=1, not_in_creative_inventory=1}
groups = {dig_immediate=3,dig_by_water=1,dig_by_piston=1,attached_node=1, not_in_creative_inventory=1}
end
local delaytime
@ -185,7 +185,7 @@ minetest.register_node("mesecons_delayer:delayer_on_"..tostring(i), {
type = "fixed",
fixed = boxes
},
groups = {dig_immediate = 3, dig_by_water=1, attached_node=1, not_in_creative_inventory = 1},
groups = {dig_immediate = 3, dig_by_water=1, dig_by_piston=1, attached_node=1, not_in_creative_inventory = 1},
paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = false,

View file

@ -24,6 +24,9 @@ function mesecon:is_mvps_dropper(node, pushdir, stack, stackid)
if type (get_dropper) == "function" then
get_dropper = get_dropper(node, pushdir, stack, stackid)
end
if not get_dropper then
get_dropper = minetest.get_item_group(node.name, "dig_by_piston") == 1
end
return get_dropper
end
@ -78,7 +81,6 @@ function mesecon:mvps_push(pos, dir, maximum) -- pos: pos of mvps; dir: directio
n.meta = minetest.get_meta(n.pos):to_table()
local is_dropper = mesecon:is_mvps_dropper(n.node, dir, nodes, id)
if is_dropper then
minetest.log("error", "DROPPER @ "..minetest.pos_to_string(n.pos))
local drops = minetest.get_node_drops(n.node.name, "")
local droppos = vector.add(n.pos, dir)
minetest.handle_node_drops(droppos, drops, nil)
@ -193,10 +195,3 @@ mesecon:register_mvps_stopper("mesecons_solarpanel:solar_panel_on")
mesecon:register_mvps_stopper("mesecons_solarpanel:solar_panel_inverted_off")
mesecon:register_mvps_stopper("mesecons_solarpanel:solar_panel_inverted_on")
mesecon:register_mvps_stopper("mesecons_noteblock:noteblock")
mesecon:register_mvps_dropper("mcl_core:cactus")
mesecon:register_mvps_dropper("mcl_core:cobweb")
mesecon:register_mvps_dropper("mcl_farming:melon")
mesecon:register_mvps_dropper("mcl_farming:pumpkin")
mesecon:register_mvps_dropper("beds:bed_top")
mesecon:register_mvps_dropper("beds:bed_bottom")

View file

@ -59,6 +59,7 @@ function mesecon:register_pressure_plate(offstate, onstate, description, texture
local groups_off = table.copy(plusgroups)
groups_off.attached_node = 1
groups_off.dig_by_piston = 1
minetest.register_node(offstate, {
drawtype = "nodebox",