Compare commits

..

4 Commits

Author SHA1 Message Date
loosewheel
391d8e1393 Add files via upload 2022-07-12 19:58:17 +10:00
loosewheel
108abd4485 Add files via upload 2022-07-12 19:56:18 +10:00
loosewheel
6fd2af5e17 Add files via upload 2022-06-19 02:28:52 +10:00
loosewheel
85e5a877c6 Add files via upload 2022-05-23 20:01:18 +10:00
25 changed files with 298 additions and 117 deletions

27
.luacheckrc Normal file
View File

@@ -0,0 +1,27 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"default",
"lwcomponents",
"intllib",
"mesecon",
"digiline",
"digilines",
"hopper",
"pipeworks",
"unifieddyes",
"digistuff",
}
globals = {
}

View File

@@ -253,8 +253,13 @@ end
local function break_node (pos, range) local function break_node (pos, range)
local node = minetest.get_node_or_nil (pos) local node = minetest.get_node_or_nil (pos)
local meta = minetest.get_meta (pos)
if node then if node then
if meta and minetest.is_protected (pos, meta:get_string ("owner")) then
return
end
local breakpos = get_break_pos (pos, node.param2, range) local breakpos = get_break_pos (pos, node.param2, range)
if breakpos then if breakpos then
@@ -712,7 +717,7 @@ end
local breaker_groups = { cracky = 3 } local breaker_groups = { cracky = 3, wires_connect = 1 }
if utils.pipeworks_supported then if utils.pipeworks_supported then
breaker_groups.tubedevice = 1 breaker_groups.tubedevice = 1
breaker_groups.tubedevice_receiver = 1 breaker_groups.tubedevice_receiver = 1
@@ -720,7 +725,7 @@ end
local breaker_on_groups = { cracky = 3, not_in_creative_inventory = 1 } local breaker_on_groups = { cracky = 3, not_in_creative_inventory = 1, wires_connect = 1 }
if utils.pipeworks_supported then if utils.pipeworks_supported then
breaker_on_groups.tubedevice = 1 breaker_on_groups.tubedevice = 1
breaker_on_groups.tubedevice_receiver = 1 breaker_on_groups.tubedevice_receiver = 1

View File

@@ -923,7 +923,7 @@ end
local cannon_groups = { cracky = 3 } local cannon_groups = { cracky = 3, wires_connect = 1 }
if utils.pipeworks_supported then if utils.pipeworks_supported then
cannon_groups.tubedevice = 1 cannon_groups.tubedevice = 1
cannon_groups.tubedevice_receiver = 1 cannon_groups.tubedevice_receiver = 1

View File

@@ -167,3 +167,16 @@ v0.1.27
* Bug fixes and code cleanup. * Bug fixes and code cleanup.
* Fixed receptor state in detector. * Fixed receptor state in detector.
* Improved receptor state in digiswitch. * Improved receptor state in digiswitch.
v0.1.28
* Added support for lwwires. Wires will not connect to conduits.
v0.1.29
* Fixed piston moving piston blanks.
v0.1.30
* Added quantity field to droppers.
* Added 'Use player when placing' setting.

View File

@@ -1024,7 +1024,7 @@ end
local conduit_groups = { cracky = 3 } local conduit_groups = { cracky = 3, wires_connect = 1 }
if utils.pipeworks_supported then if utils.pipeworks_supported then
conduit_groups.tubedevice = 1 conduit_groups.tubedevice = 1
conduit_groups.tubedevice_receiver = 1 conduit_groups.tubedevice_receiver = 1
@@ -1034,13 +1034,14 @@ end
minetest.register_node("lwcomponents:conduit", { minetest.register_node("lwcomponents:conduit", {
description = S("Conduit"), description = S("Conduit"),
short_description = S("Conduit"),
tiles = { "lwconduit.png" }, tiles = { "lwconduit.png" },
drawtype = "nodebox", drawtype = "nodebox",
node_box = { node_box = {
type = "connected", type = "connected",
fixed = { -0.375, -0.375, -0.375, 0.375, 0.375, 0.375 }, -- body fixed = { -0.375, -0.375, -0.375, 0.375, 0.375, 0.375 }, -- body
connect_top = { -0.3125, 0.3125, -0.3125, 0.3125, 0.5, 0.3125 }, -- top connect_top = { -0.3125, 0.3125, -0.3125, 0.3125, 0.5, 0.3125 }, -- top
connect_bottom = {-0.3125, -0.5, -0.3125, 0.3125, -0.3125, 0.3125}, -- down connect_bottom = { -0.3125, -0.5, -0.3125, 0.3125, -0.3125, 0.3125 }, -- down
connect_front = { -0.3125, -0.3125, -0.5, 0.3125, 0.3125, -0.3125 }, -- front connect_front = { -0.3125, -0.3125, -0.5, 0.3125, 0.3125, -0.3125 }, -- front
connect_back = { -0.3125, -0.3125, 0.5, 0.3125, 0.3125, 0.3125 }, -- back connect_back = { -0.3125, -0.3125, 0.5, 0.3125, 0.3125, 0.3125 }, -- back
connect_left = { -0.5, -0.3125, -0.3125, -0.3125, 0.3125, 0.3125 }, -- left connect_left = { -0.5, -0.3125, -0.3125, -0.3125, 0.3125, 0.3125 }, -- left
@@ -1056,7 +1057,7 @@ minetest.register_node("lwcomponents:conduit", {
type = "connected", type = "connected",
fixed = { -0.375, -0.375, -0.375, 0.375, 0.375, 0.375 }, -- body fixed = { -0.375, -0.375, -0.375, 0.375, 0.375, 0.375 }, -- body
connect_top = { -0.3125, 0.3125, -0.3125, 0.3125, 0.5, 0.3125 }, -- top connect_top = { -0.3125, 0.3125, -0.3125, 0.3125, 0.5, 0.3125 }, -- top
connect_bottom = {-0.3125, -0.5, -0.3125, 0.3125, -0.3125, 0.3125}, -- down connect_bottom = { -0.3125, -0.5, -0.3125, 0.3125, -0.3125, 0.3125 }, -- down
connect_front = { -0.3125, -0.3125, -0.5, 0.3125, 0.3125, -0.3125 }, -- front connect_front = { -0.3125, -0.3125, -0.5, 0.3125, 0.3125, -0.3125 }, -- front
connect_back = { -0.3125, -0.3125, 0.5, 0.3125, 0.3125, 0.3125 }, -- back connect_back = { -0.3125, -0.3125, 0.5, 0.3125, 0.3125, 0.3125 }, -- back
connect_left = { -0.5, -0.3125, -0.3125, -0.3125, 0.3125, 0.3125 }, -- left connect_left = { -0.5, -0.3125, -0.3125, -0.3125, 0.3125, 0.3125 }, -- left
@@ -1066,7 +1067,7 @@ minetest.register_node("lwcomponents:conduit", {
type = "connected", type = "connected",
fixed = { -0.375, -0.375, -0.375, 0.375, 0.375, 0.375 }, -- body fixed = { -0.375, -0.375, -0.375, 0.375, 0.375, 0.375 }, -- body
connect_top = { -0.3125, 0.3125, -0.3125, 0.3125, 0.5, 0.3125 }, -- top connect_top = { -0.3125, 0.3125, -0.3125, 0.3125, 0.5, 0.3125 }, -- top
connect_bottom = {-0.3125, -0.5, -0.3125, 0.3125, -0.3125, 0.3125}, -- down connect_bottom = { -0.3125, -0.5, -0.3125, 0.3125, -0.3125, 0.3125 }, -- down
connect_front = { -0.3125, -0.3125, -0.5, 0.3125, 0.3125, -0.3125 }, -- front connect_front = { -0.3125, -0.3125, -0.5, 0.3125, 0.3125, -0.3125 }, -- front
connect_back = { -0.3125, -0.3125, 0.5, 0.3125, 0.3125, 0.3125 }, -- back connect_back = { -0.3125, -0.3125, 0.5, 0.3125, 0.3125, 0.3125 }, -- back
connect_left = { -0.5, -0.3125, -0.3125, -0.3125, 0.3125, 0.3125 }, -- left connect_left = { -0.5, -0.3125, -0.3125, -0.3125, 0.3125, 0.3125 }, -- left
@@ -1104,13 +1105,14 @@ minetest.register_node("lwcomponents:conduit", {
minetest.register_node("lwcomponents:conduit_locked", { minetest.register_node("lwcomponents:conduit_locked", {
description = S("Conduit (locked)"), description = S("Conduit (locked)"),
short_description = S("Conduit (locked)"),
tiles = { "lwconduit.png" }, tiles = { "lwconduit.png" },
drawtype = "nodebox", drawtype = "nodebox",
node_box = { node_box = {
type = "connected", type = "connected",
fixed = { -0.375, -0.375, -0.375, 0.375, 0.375, 0.375 }, -- body fixed = { -0.375, -0.375, -0.375, 0.375, 0.375, 0.375 }, -- body
connect_top = { -0.3125, 0.3125, -0.3125, 0.3125, 0.5, 0.3125 }, -- top connect_top = { -0.3125, 0.3125, -0.3125, 0.3125, 0.5, 0.3125 }, -- top
connect_bottom = {-0.3125, -0.5, -0.3125, 0.3125, -0.3125, 0.3125}, -- down connect_bottom = { -0.3125, -0.5, -0.3125, 0.3125, -0.3125, 0.3125 }, -- down
connect_front = { -0.3125, -0.3125, -0.5, 0.3125, 0.3125, -0.3125 }, -- front connect_front = { -0.3125, -0.3125, -0.5, 0.3125, 0.3125, -0.3125 }, -- front
connect_back = { -0.3125, -0.3125, 0.5, 0.3125, 0.3125, 0.3125 }, -- back connect_back = { -0.3125, -0.3125, 0.5, 0.3125, 0.3125, 0.3125 }, -- back
connect_left = { -0.5, -0.3125, -0.3125, -0.3125, 0.3125, 0.3125 }, -- left connect_left = { -0.5, -0.3125, -0.3125, -0.3125, 0.3125, 0.3125 }, -- left
@@ -1126,7 +1128,7 @@ minetest.register_node("lwcomponents:conduit_locked", {
type = "connected", type = "connected",
fixed = { -0.375, -0.375, -0.375, 0.375, 0.375, 0.375 }, -- body fixed = { -0.375, -0.375, -0.375, 0.375, 0.375, 0.375 }, -- body
connect_top = { -0.3125, 0.3125, -0.3125, 0.3125, 0.5, 0.3125 }, -- top connect_top = { -0.3125, 0.3125, -0.3125, 0.3125, 0.5, 0.3125 }, -- top
connect_bottom = {-0.3125, -0.5, -0.3125, 0.3125, -0.3125, 0.3125}, -- down connect_bottom = { -0.3125, -0.5, -0.3125, 0.3125, -0.3125, 0.3125 }, -- down
connect_front = { -0.3125, -0.3125, -0.5, 0.3125, 0.3125, -0.3125 }, -- front connect_front = { -0.3125, -0.3125, -0.5, 0.3125, 0.3125, -0.3125 }, -- front
connect_back = { -0.3125, -0.3125, 0.5, 0.3125, 0.3125, 0.3125 }, -- back connect_back = { -0.3125, -0.3125, 0.5, 0.3125, 0.3125, 0.3125 }, -- back
connect_left = { -0.5, -0.3125, -0.3125, -0.3125, 0.3125, 0.3125 }, -- left connect_left = { -0.5, -0.3125, -0.3125, -0.3125, 0.3125, 0.3125 }, -- left
@@ -1136,7 +1138,7 @@ minetest.register_node("lwcomponents:conduit_locked", {
type = "connected", type = "connected",
fixed = { -0.375, -0.375, -0.375, 0.375, 0.375, 0.375 }, -- body fixed = { -0.375, -0.375, -0.375, 0.375, 0.375, 0.375 }, -- body
connect_top = { -0.3125, 0.3125, -0.3125, 0.3125, 0.5, 0.3125 }, -- top connect_top = { -0.3125, 0.3125, -0.3125, 0.3125, 0.5, 0.3125 }, -- top
connect_bottom = {-0.3125, -0.5, -0.3125, 0.3125, -0.3125, 0.3125}, -- down connect_bottom = { -0.3125, -0.5, -0.3125, 0.3125, -0.3125, 0.3125 }, -- down
connect_front = { -0.3125, -0.3125, -0.5, 0.3125, 0.3125, -0.3125 }, -- front connect_front = { -0.3125, -0.3125, -0.5, 0.3125, 0.3125, -0.3125 }, -- front
connect_back = { -0.3125, -0.3125, 0.5, 0.3125, 0.3125, 0.3125 }, -- back connect_back = { -0.3125, -0.3125, 0.5, 0.3125, 0.3125, 0.3125 }, -- back
connect_left = { -0.5, -0.3125, -0.3125, -0.3125, 0.3125, 0.3125 }, -- left connect_left = { -0.5, -0.3125, -0.3125, -0.3125, 0.3125, 0.3125 }, -- left

View File

@@ -6,3 +6,4 @@ intllib?
hopper? hopper?
digistuff? digistuff?
pipeworks? pipeworks?
lwwires?

View File

@@ -73,13 +73,18 @@ end
local function place_node (item, pos) local function place_node (item, pos, owner)
local node = minetest.get_node_or_nil ({ x = pos.x, y = pos.y - 1, z = pos.z }) local node = minetest.get_node_or_nil ({ x = pos.x, y = pos.y - 1, z = pos.z })
if not node then if not node then
return false return false
end end
if (utils.settings.use_player_when_placing and minetest.is_protected (pos, owner)) or
(not utils.settings.use_player_when_placing and minetest.is_protected (pos, "")) then
return false
end
local nodedef = utils.find_item_def (node.name) local nodedef = utils.find_item_def (node.name)
if node.name == "air" or not nodedef or (nodedef and nodedef.buildable_to) then if node.name == "air" or not nodedef or (nodedef and nodedef.buildable_to) then
@@ -95,7 +100,7 @@ local function place_node (item, pos)
nodedef = utils.find_item_def (node.name) nodedef = utils.find_item_def (node.name)
if node.name ~= "air" then if node.name ~= "air" then
if not nodedef or not nodedef.buildable_to or minetest.is_protected (pos, "") then if not nodedef or not nodedef.buildable_to then
return false return false
end end
end end
@@ -121,8 +126,14 @@ local function place_node (item, pos)
} }
end end
local placer
if owner ~= "" and utils.settings.use_player_when_placing then
placer = minetest.get_player_by_name (owner)
end
if itemdef and itemdef.on_place then if itemdef and itemdef.on_place then
local result, leftover = pcall (itemdef.on_place, stack, nil, pointed_thing) local result, leftover = pcall (itemdef.on_place, stack, placer, pointed_thing)
placed = result placed = result
@@ -221,7 +232,7 @@ local function deploy_item (pos, node, slot, range)
local deploypos = get_deploy_pos (pos, node.param2, range) local deploypos = get_deploy_pos (pos, node.param2, range)
if item and deploypos then if item and deploypos then
if place_node (stack, deploypos) then if place_node (stack, deploypos, meta:get_string ("owner")) then
stack:set_count (stack:get_count () - 1) stack:set_count (stack:get_count () - 1)
inv:set_stack ("main", slot, stack) inv:set_stack ("main", slot, stack)
@@ -630,7 +641,7 @@ end
local deployer_groups = { cracky = 3 } local deployer_groups = { cracky = 3, wires_connect = 1 }
if utils.pipeworks_supported then if utils.pipeworks_supported then
deployer_groups.tubedevice = 1 deployer_groups.tubedevice = 1
deployer_groups.tubedevice_receiver = 1 deployer_groups.tubedevice_receiver = 1
@@ -638,7 +649,7 @@ end
local deployer_on_groups = { cracky = 3, not_in_creative_inventory = 1 } local deployer_on_groups = { cracky = 3, not_in_creative_inventory = 1, wires_connect = 1 }
if utils.pipeworks_supported then if utils.pipeworks_supported then
deployer_on_groups.tubedevice = 1 deployer_on_groups.tubedevice = 1
deployer_on_groups.tubedevice_receiver = 1 deployer_on_groups.tubedevice_receiver = 1

View File

@@ -730,7 +730,7 @@ minetest.register_node("lwcomponents:detector", {
tiles = { "lwdetector_face.png", "lwdetector_face.png", "lwdetector.png", tiles = { "lwdetector_face.png", "lwdetector_face.png", "lwdetector.png",
"lwdetector.png", "lwdetector.png", "lwdetector_face.png"}, "lwdetector.png", "lwdetector.png", "lwdetector_face.png"},
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3 }, groups = { cracky = 3, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "none", paramtype = "none",
param1 = 0, param1 = 0,
@@ -759,7 +759,7 @@ minetest.register_node("lwcomponents:detector_locked", {
tiles = { "lwdetector_face.png", "lwdetector_face.png", "lwdetector.png", tiles = { "lwdetector_face.png", "lwdetector_face.png", "lwdetector.png",
"lwdetector.png", "lwdetector.png", "lwdetector_face.png"}, "lwdetector.png", "lwdetector.png", "lwdetector_face.png"},
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3 }, groups = { cracky = 3, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "none", paramtype = "none",
param1 = 0, param1 = 0,
@@ -788,7 +788,7 @@ minetest.register_node("lwcomponents:detector_on", {
tiles = { "lwdetector_face_on.png", "lwdetector_face_on.png", "lwdetector.png", tiles = { "lwdetector_face_on.png", "lwdetector_face_on.png", "lwdetector.png",
"lwdetector.png", "lwdetector.png", "lwdetector_face_on.png"}, "lwdetector.png", "lwdetector.png", "lwdetector_face_on.png"},
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3, not_in_creative_inventory = 1 }, groups = { cracky = 3, not_in_creative_inventory = 1, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "none", paramtype = "none",
param1 = 0, param1 = 0,
@@ -817,7 +817,7 @@ minetest.register_node("lwcomponents:detector_locked_on", {
tiles = { "lwdetector_face_on.png", "lwdetector_face_on.png", "lwdetector.png", tiles = { "lwdetector_face_on.png", "lwdetector_face_on.png", "lwdetector.png",
"lwdetector.png", "lwdetector.png", "lwdetector_face_on.png"}, "lwdetector.png", "lwdetector.png", "lwdetector_face_on.png"},
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3, not_in_creative_inventory = 1 }, groups = { cracky = 3, not_in_creative_inventory = 1, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "none", paramtype = "none",
param1 = 0, param1 = 0,
@@ -846,7 +846,7 @@ minetest.register_node("lwcomponents:detector_on_on", {
tiles = { "lwdetector_face_on.png", "lwdetector_face_on.png", "lwdetector.png", tiles = { "lwdetector_face_on.png", "lwdetector_face_on.png", "lwdetector.png",
"lwdetector.png", "lwdetector.png", "lwdetector_face_on.png"}, "lwdetector.png", "lwdetector.png", "lwdetector_face_on.png"},
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3, not_in_creative_inventory = 1 }, groups = { cracky = 3, not_in_creative_inventory = 1, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "none", paramtype = "none",
param1 = 0, param1 = 0,
@@ -875,7 +875,7 @@ minetest.register_node("lwcomponents:detector_locked_on_on", {
tiles = { "lwdetector_face_on.png", "lwdetector_face_on.png", "lwdetector.png", tiles = { "lwdetector_face_on.png", "lwdetector_face_on.png", "lwdetector.png",
"lwdetector.png", "lwdetector.png", "lwdetector_face_on.png"}, "lwdetector.png", "lwdetector.png", "lwdetector_face_on.png"},
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3, not_in_creative_inventory = 1 }, groups = { cracky = 3, not_in_creative_inventory = 1, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "none", paramtype = "none",
param1 = 0, param1 = 0,

View File

@@ -334,7 +334,7 @@ minetest.register_node ("lwcomponents:digiswitch", {
}, },
paramtype = "none", paramtype = "none",
param1 = 0, param1 = 0,
groups = { cracky = 2, oddly_breakable_by_hand = 2 }, groups = { cracky = 2, oddly_breakable_by_hand = 2, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
mesecons = mesecon_support (), mesecons = mesecon_support (),
digiline = digilines_support (), digiline = digilines_support (),
@@ -362,7 +362,7 @@ minetest.register_node ("lwcomponents:digiswitch_on", {
}, },
paramtype = "none", paramtype = "none",
param1 = 0, param1 = 0,
groups = { cracky = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory = 1 }, groups = { cracky = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory = 1, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
mesecons = mesecon_support_on (), mesecons = mesecon_support_on (),
digiline = digilines_support (), digiline = digilines_support (),

View File

@@ -513,7 +513,7 @@ end
local dispenser_groups = { cracky = 3 } local dispenser_groups = { cracky = 3, wires_connect = 1 }
if utils.pipeworks_supported then if utils.pipeworks_supported then
dispenser_groups.tubedevice = 1 dispenser_groups.tubedevice = 1
dispenser_groups.tubedevice_receiver = 1 dispenser_groups.tubedevice_receiver = 1

View File

@@ -11,7 +11,9 @@ used. Also acts as a digilines conductor. If the hopper mod is loaded,
will take tools from the top and sides. Pipeworks tubes can push items will take tools from the top and sides. Pipeworks tubes can push items
into and pull items from the inventory. into and pull items from the inventory.
Only the owner can dig or access the form of the locked version. Only the owner can dig or access the form of the locked version. To break
nodes in a protected area, the locked version must be used and the owner
must be able to dig in the area.
UI UI

View File

@@ -1,5 +1,5 @@
Deployer Deployer
------- --------
* This block is only available if digilines and/or mesecons are loaded. * This block is only available if digilines and/or mesecons are loaded.
Deployers place the node up to 5 nodes directly in front of them. The Deployers place the node up to 5 nodes directly in front of them. The
@@ -9,7 +9,10 @@ Also acts as a digilines conductor. If the hopper mod is loaded, will
take items from the top and sides, and release them from the bottom. take items from the top and sides, and release them from the bottom.
Pipeworks tubes can push items into and pull items from the inventory. Pipeworks tubes can push items into and pull items from the inventory.
Only the owner can dig or access the form of the locked version. Only the owner can dig or access the form of the locked version. To place
nodes in a protected area the 'Use player when placing' setting must be
enabled, the deployer must be the locked version and the owner must be able
to place in the area.
UI UI

View File

@@ -2,7 +2,7 @@ Dropper
------- -------
* This block is only available if digilines and/or mesecons are loaded. * This block is only available if digilines and/or mesecons are loaded.
Contains an inventory and drops an item on command. Also acts as a Contains an inventory and drops item/s on command. Also acts as a
digilines conductor. If the hopper mod is loaded, will take items from the digilines conductor. If the hopper mod is loaded, will take items from the
top and sides, and release them from the bottom. Pipeworks tubes can push top and sides, and release them from the bottom. Pipeworks tubes can push
items into and pull items from the inventory. items into and pull items from the inventory.
@@ -13,29 +13,52 @@ UI
Channel - digilines channel of dropper. Channel - digilines channel of dropper.
Top 16 slot inventory - storage of items to drop. Top 16 slot inventory - storage of items to drop.
Qty - the number of items dropped on an action.
Bottom 32 slot inventory - player's inventory. Bottom 32 slot inventory - player's inventory.
Mesecons Mesecons
Drops the next item when power is turned on. Drops the next item/s when power is turned on, to the given quantity.
Digilines messages Digilines messages
"drop [<slot>|<itemname>] [qty]"
slot or itemname are optional. If given slot must be the number of
the dropper slot to drop from (1 to 16). itemname must be the name of
the item from the dropper to drop (eg. default:stone).
qty is optional. If given must be the number of items to drop. If
omitted the quantity set on the dropper's form is dropped.
examples:
"drop" "drop"
Drops the next item. No drop if dropper is empty. Drops the first found item with the quantity from the dropper's form.
"drop <slot>" "drop 7"
Drops 1 item from the given slot (1 to 16). No drop if slot is empty. Drops items from slot 7 with the quantity from the dropper's form.
eg. "drop 7"
"drop <itemname>" "drop default:stone"
Drops 1 item of the given name. No drop if dropper does not contain the Drops the item "default:stone" with the quantity from the dropper's form.
item.
eg. "drop default:stone"
When an item is dropped a digilines message is sent with the dropper's "drop 7 5"
Drops items from slot 7 with the quantity of 5.
"drop default:stone 5"
Drops the item "default:stone" with the quantity of 5.
"drop nil 5"
Drops the first found item with the quantity of 5.
If there are not enough items in the dropper (of a name or in a slot) to
fulfil the quantity, only the amount available is dropped. If no slot or
name is given the first found item is used (multiple items are not dropped
to fulfil the quantity).
When items are dropped a digilines message is sent with the dropper's
channel. The message is a table with the following keys: channel. The message is a table with the following keys:
{ {
action = "drop", action = "drop",
name = "<itemname>", -- name of dropped item name = "<itemname>", -- name of dropped item/s
slot = <slot> -- slot number the item was taken from (1 to 16). slot = <slot>, -- slot number the item/s were taken from (1 to 16). If
-- more than one slot was taken from this will be -1
qty = <number> -- the number of items dropped
} }

View File

@@ -23,7 +23,7 @@ end
local function send_drop_message (pos, slot, name) local function send_drop_message (pos, slot, name, qty)
if utils.digilines_supported then if utils.digilines_supported then
local meta = minetest.get_meta (pos) local meta = minetest.get_meta (pos)
@@ -36,7 +36,8 @@ local function send_drop_message (pos, slot, name)
channel, channel,
{ action = "drop", { action = "drop",
name = name, name = name,
slot = slot }) slot = slot,
qty = qty })
end end
end end
end end
@@ -45,69 +46,110 @@ end
-- slot: -- slot:
-- nil - next item, no drop if empty -- nil or "nil"- next item, no drop if empty, max qty or less of first found item
-- number - 1 item from slot, no drop if empty -- number - qty items from slot, no drop if empty, max qty or less
-- string - name of item to drop, no drop if none -- string - name of item to drop, no drop if none, max qty or less
local function drop_item (pos, node, slot) local function drop_item (pos, node, slot, qty)
local meta = minetest.get_meta (pos) local meta = minetest.get_meta (pos)
if meta then if meta then
local inv = meta:get_inventory () local inv = meta:get_inventory ()
if inv then if inv then
if not slot then local item
if qty then
qty = tonumber (qty)
end
if not qty then
qty = tonumber (meta:get_string ("quantity")) or 1
end
qty = math.max (qty, 1)
if not slot or (type (slot) == "string" and slot == "nil") then
local slots = inv:get_size ("main") local slots = inv:get_size ("main")
for i = 1, slots do for i = 1, slots do
local stack = inv:get_stack ("main", i) local stack = inv:get_stack ("main", i)
if not stack:is_empty () and stack:get_count () > 0 then if not stack:is_empty () and stack:get_count () > 0 then
slot = i item = stack:get_name ()
break break
end end
end end
elseif type (slot) == "string" then
local name = slot
slot = nil slot = nil
local slots = inv:get_size ("main") elseif type (slot) == "string" then
item = slot
for i = 1, slots do slot = nil
local stack = inv:get_stack ("main", i)
if not stack:is_empty () and stack:get_count () > 0 then
if name == stack:get_name () then
slot = i
break
end
end
end
else else
slot = tonumber (slot) slot = tonumber (slot)
end end
if slot then if slot then
local stack = inv:get_stack ("main", slot) local stack = inv:get_stack ("main", slot)
if not stack:is_empty () and stack:get_count () > 0 then if not stack:is_empty () and stack:get_count () > 0 then
local name = stack:get_name () item = stack:get_name ()
local item = ItemStack (stack) local drop
if item then if stack:get_count () >= qty then
item:set_count (1) drop = qty
stack:set_count (stack:get_count () - qty)
stack:set_count (stack:get_count () - 1)
inv:set_stack ("main", slot, stack) inv:set_stack ("main", slot, stack)
else
utils.item_drop (item, nil, drop_pos (pos, node)) drop = stack:get_count ()
inv:set_stack ("main", slot, nil)
send_drop_message (pos, slot, name)
return true, slot, name
end end
if drop > 0 then
utils.item_drop (ItemStack (item.." "..drop), nil, drop_pos (pos, node))
send_drop_message (pos, slot, item, drop)
return true, slot, item
end
end
elseif item then
local slots = inv:get_size ("main")
local drop = 0
for i = 1, slots do
local stack = inv:get_stack ("main", i)
if not stack:is_empty () and stack:get_count () > 0 then
if item == stack:get_name () then
local remain = qty - drop
slot = (slot and -1) or i
if stack:get_count () > remain then
stack:set_count (stack:get_count () - remain)
drop = qty
inv:set_stack ("main", i, stack)
else
drop = drop + stack:get_count ()
inv:set_stack ("main", i, nil)
end
end
end
if drop == qty then
break
end
end
if drop > 0 then
utils.item_drop (ItemStack (item.." "..drop), nil, drop_pos (pos, node))
send_drop_message (pos, slot, item, drop)
return true, slot, item
end end
end end
end end
@@ -118,19 +160,27 @@ end
local function after_place_base (pos, placer, itemstack, pointed_thing) local function get_formspec ()
local meta = minetest.get_meta (pos) return
local spec =
"formspec_version[3]\n".. "formspec_version[3]\n"..
"size[11.75,13.75;true]\n".. "size[11.75,13.75;true]\n"..
"field[1.0,1.0;4.0,0.8;channel;Channel;${channel}]\n".. "field[1.0,1.0;4.0,0.8;channel;Channel;${channel}]"..
"button[5.5,1.0;2.0,0.8;setchannel;Set]\n".. "button[5.5,1.0;2.0,0.8;setchannel;Set]"..
"list[context;main;3.5,2.5;4,4;]\n".. "list[context;main;1.0,2.5;4,4;]"..
"list[current_player;main;1.0,8.0;8,4;]\n".. "list[current_player;main;1.0,8.0;8,4;]"..
"listring[]" "listring[]"..
"field[6.5,2.9;2.75,0.8;quantity;Qty;${quantity}]"..
"button[9.25,2.9;1.5,0.8;setquantity;Set]"
end
local function after_place_base (pos, placer, itemstack, pointed_thing)
local meta = minetest.get_meta (pos)
meta:set_string ("inventory", "{ main = { } }") meta:set_string ("inventory", "{ main = { } }")
meta:set_string ("formspec", spec) meta:set_string ("quantity", "1")
meta:set_string ("formspec", get_formspec ())
local inv = meta:get_inventory () local inv = meta:get_inventory ()
@@ -180,6 +230,15 @@ local function on_receive_fields (pos, formname, fields, sender)
meta:set_string ("channel", fields.channel) meta:set_string ("channel", fields.channel)
end end
end end
if fields.setquantity then
local meta = minetest.get_meta (pos)
if meta then
local qty = math.max (tonumber (fields.quantity or 1) or 1, 1)
meta:set_string ("quantity", tostring (qty))
end
end
end end
@@ -285,6 +344,15 @@ local function on_rightclick (pos, node, clicker, itemstack, pointed_thing)
"lwcomponents:component_privately_owned", "lwcomponents:component_privately_owned",
spec) spec)
end end
else
local meta = minetest.get_meta (pos)
if meta then
if meta:get_string ("quantity") == "" then
meta:set_string ("quantity", "1")
meta:set_string ("formspec", get_formspec ())
end
end
end end
return itemstack return itemstack
@@ -322,7 +390,13 @@ local function digilines_support ()
m[2] = tonumber (m[2]) m[2] = tonumber (m[2])
end end
drop_item (pos, node, m[2]) if m[3] and tonumber (m[3]) then
m[3] = tonumber (m[3])
else
m[3] = nil
end
drop_item (pos, node, m[2], m[3])
end end
end end
end end
@@ -448,7 +522,7 @@ end
local dropper_groups = { cracky = 3 } local dropper_groups = { cracky = 3, wires_connect = 1 }
if utils.pipeworks_supported then if utils.pipeworks_supported then
dropper_groups.tubedevice = 1 dropper_groups.tubedevice = 1
dropper_groups.tubedevice_receiver = 1 dropper_groups.tubedevice_receiver = 1

View File

@@ -341,7 +341,7 @@ minetest.register_node("lwcomponents:fan", {
tiles = { "lwfan.png", "lwfan.png", "lwfan.png", tiles = { "lwfan.png", "lwfan.png", "lwfan.png",
"lwfan.png", "lwfan.png", "lwfan_face.png"}, "lwfan.png", "lwfan.png", "lwfan_face.png"},
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3 }, groups = { cracky = 3, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "none", paramtype = "none",
param1 = 0, param1 = 0,
@@ -369,7 +369,7 @@ minetest.register_node("lwcomponents:fan_locked", {
tiles = { "lwfan.png", "lwfan.png", "lwfan.png", tiles = { "lwfan.png", "lwfan.png", "lwfan.png",
"lwfan.png", "lwfan.png", "lwfan_face.png"}, "lwfan.png", "lwfan.png", "lwfan_face.png"},
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3 }, groups = { cracky = 3, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "none", paramtype = "none",
param1 = 0, param1 = 0,
@@ -397,7 +397,7 @@ minetest.register_node("lwcomponents:fan_on", {
tiles = { "lwfan.png", "lwfan.png", "lwfan.png", tiles = { "lwfan.png", "lwfan.png", "lwfan.png",
"lwfan.png", "lwfan.png", "lwfan_face_on.png"}, "lwfan.png", "lwfan.png", "lwfan_face_on.png"},
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3, not_in_creative_inventory = 1 }, groups = { cracky = 3, not_in_creative_inventory = 1, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "none", paramtype = "none",
param1 = 0, param1 = 0,
@@ -426,7 +426,7 @@ minetest.register_node("lwcomponents:fan_locked_on", {
tiles = { "lwfan.png", "lwfan.png", "lwfan.png", tiles = { "lwfan.png", "lwfan.png", "lwfan.png",
"lwfan.png", "lwfan.png", "lwfan_face_on.png"}, "lwfan.png", "lwfan.png", "lwfan_face_on.png"},
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3, not_in_creative_inventory = 1 }, groups = { cracky = 3, not_in_creative_inventory = 1, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "none", paramtype = "none",
param1 = 0, param1 = 0,

View File

@@ -820,7 +820,7 @@ end
local force_field_groups = { cracky = 3 } local force_field_groups = { cracky = 3, wires_connect = 1 }
if utils.pipeworks_supported then if utils.pipeworks_supported then
force_field_groups.tubedevice = 1 force_field_groups.tubedevice = 1
force_field_groups.tubedevice_receiver = 1 force_field_groups.tubedevice_receiver = 1
@@ -828,7 +828,7 @@ end
local force_field_on_groups = { cracky = 3, not_in_creative_inventory = 1 } local force_field_on_groups = { cracky = 3, not_in_creative_inventory = 1, wires_connect = 1 }
if utils.pipeworks_supported then if utils.pipeworks_supported then
force_field_on_groups.tubedevice = 1 force_field_on_groups.tubedevice = 1
force_field_on_groups.tubedevice_receiver = 1 force_field_on_groups.tubedevice_receiver = 1

View File

@@ -1,4 +1,4 @@
local version = "0.1.27" local version = "0.1.30"
local mod_storage = minetest.get_mod_storage () local mod_storage = minetest.get_mod_storage ()

View File

@@ -3,4 +3,4 @@ description = Various components for mesecons and digilines.
title = LWComponents title = LWComponents
name = lwcomponents name = lwcomponents
depends = default depends = default
optional_depends = mesecons, digilines, unifieddyes, intllib, hopper, digistuff, pipeworks optional_depends = mesecons, digilines, unifieddyes, intllib, hopper, digistuff, pipeworks, lwwires

View File

@@ -150,6 +150,11 @@ local function add_pos_to_list (pos, dir, movedir, node_list, check_list)
return 1 return 1
end end
if node.name == "lwcomponents:piston_blank_1" or
node.name == "lwcomponents:piston_blank_2" then
return 0
end
local meta = minetest.get_meta (pos) local meta = minetest.get_meta (pos)
local timer = minetest.get_node_timer (pos) local timer = minetest.get_node_timer (pos)
@@ -1083,14 +1088,14 @@ minetest.register_node("lwcomponents:piston_blank_2", {
light_source = 0, light_source = 0,
sunlight_propagates = true, sunlight_propagates = true,
walkable = true, walkable = true,
pointable = false, pointable = true,
diggable = false, diggable = true,
climbable = false, climbable = false,
buildable_to = false, buildable_to = false,
floodable = false, floodable = false,
is_ground_content = false, is_ground_content = false,
drop = "", drop = "",
groups = { not_in_creative_inventory = 1 }, groups = { cracky = 3, not_in_creative_inventory = 1 },
-- unaffected by explosions -- unaffected by explosions
on_blast = function() end, on_blast = function() end,
}) })
@@ -1103,7 +1108,7 @@ minetest.register_node("lwcomponents:piston", {
"lwcomponents_piston_right.png", "lwcomponents_piston_left.png", "lwcomponents_piston_right.png", "lwcomponents_piston_left.png",
"lwcomponents_piston_base.png", "lwcomponents_piston_pusher.png" }, "lwcomponents_piston_base.png", "lwcomponents_piston_pusher.png" },
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3 }, groups = { cracky = 3, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "light", paramtype = "light",
param1 = 0, param1 = 0,
@@ -1150,7 +1155,7 @@ minetest.register_node("lwcomponents:piston_1", {
}, },
}, },
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3 , not_in_creative_inventory = 1 }, groups = { cracky = 3 , not_in_creative_inventory = 1, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "light", paramtype = "light",
param1 = 0, param1 = 0,
@@ -1197,7 +1202,7 @@ minetest.register_node("lwcomponents:piston_2", {
}, },
}, },
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3 , not_in_creative_inventory = 1 }, groups = { cracky = 3 , not_in_creative_inventory = 1, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "light", paramtype = "light",
param1 = 0, param1 = 0,
@@ -1227,7 +1232,7 @@ minetest.register_node("lwcomponents:piston_sticky", {
"lwcomponents_piston_right.png", "lwcomponents_piston_left.png", "lwcomponents_piston_right.png", "lwcomponents_piston_left.png",
"lwcomponents_piston_base.png", "lwcomponents_piston_pusher_sticky.png" }, "lwcomponents_piston_base.png", "lwcomponents_piston_pusher_sticky.png" },
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3 }, groups = { cracky = 3, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "light", paramtype = "light",
param1 = 0, param1 = 0,
@@ -1274,7 +1279,7 @@ minetest.register_node("lwcomponents:piston_sticky_1", {
}, },
}, },
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3 , not_in_creative_inventory = 1 }, groups = { cracky = 3 , not_in_creative_inventory = 1, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "light", paramtype = "light",
param1 = 0, param1 = 0,
@@ -1321,7 +1326,7 @@ minetest.register_node("lwcomponents:piston_sticky_2", {
}, },
}, },
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3 , not_in_creative_inventory = 1 }, groups = { cracky = 3 , not_in_creative_inventory = 1, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "light", paramtype = "light",
param1 = 0, param1 = 0,

View File

@@ -482,7 +482,7 @@ minetest.register_node("lwcomponents:puncher", {
tiles = { "lwpuncher_face.png", "lwpuncher_face.png", "lwpuncher.png", tiles = { "lwpuncher_face.png", "lwpuncher_face.png", "lwpuncher.png",
"lwpuncher.png", "lwpuncher.png", "lwpuncher_face.png"}, "lwpuncher.png", "lwpuncher.png", "lwpuncher_face.png"},
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3 }, groups = { cracky = 3, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "none", paramtype = "none",
param1 = 0, param1 = 0,
@@ -509,7 +509,7 @@ minetest.register_node("lwcomponents:puncher_locked", {
tiles = { "lwpuncher_face.png", "lwpuncher_face.png", "lwpuncher.png", tiles = { "lwpuncher_face.png", "lwpuncher_face.png", "lwpuncher.png",
"lwpuncher.png", "lwpuncher.png", "lwpuncher_face.png"}, "lwpuncher.png", "lwpuncher.png", "lwpuncher_face.png"},
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3 }, groups = { cracky = 3, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "none", paramtype = "none",
param1 = 0, param1 = 0,
@@ -536,7 +536,7 @@ minetest.register_node("lwcomponents:puncher_on", {
tiles = { "lwpuncher_face_on.png", "lwpuncher_face_on.png", "lwpuncher.png", tiles = { "lwpuncher_face_on.png", "lwpuncher_face_on.png", "lwpuncher.png",
"lwpuncher.png", "lwpuncher.png", "lwpuncher_face_on.png"}, "lwpuncher.png", "lwpuncher.png", "lwpuncher_face_on.png"},
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3, not_in_creative_inventory = 1 }, groups = { cracky = 3, not_in_creative_inventory = 1, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "none", paramtype = "none",
param1 = 0, param1 = 0,
@@ -563,7 +563,7 @@ minetest.register_node("lwcomponents:puncher_locked_on", {
tiles = { "lwpuncher_face_on.png", "lwpuncher_face_on.png", "lwpuncher.png", tiles = { "lwpuncher_face_on.png", "lwpuncher_face_on.png", "lwpuncher.png",
"lwpuncher.png", "lwpuncher.png", "lwpuncher_face_on.png"}, "lwpuncher.png", "lwpuncher.png", "lwpuncher_face_on.png"},
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3, not_in_creative_inventory = 1 }, groups = { cracky = 3, not_in_creative_inventory = 1, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "none", paramtype = "none",
param1 = 0, param1 = 0,

View File

@@ -13,7 +13,7 @@ CC BY-SA 3.0
Version Version
======= =======
0.1.27 0.1.30
Minetest Version Minetest Version
@@ -35,6 +35,7 @@ intllib
hopper hopper
digistuff digistuff
pipeworks pipeworks
lwwires
Installation Installation
@@ -104,5 +105,9 @@ Maximum piston nodes
Maximum nodes a piston can push. Maximum nodes a piston can push.
Default: 15 Default: 15
Use player when placing
Use the owner player of locked versions when placing nodes, otherwise
no player is used.
Default: false
------------------------------------------------------------------------ ------------------------------------------------------------------------

View File

@@ -12,6 +12,9 @@ utils.settings.alert_handler_errors =
utils.settings.max_piston_nodes = utils.settings.max_piston_nodes =
tonumber (minetest.settings:get ("lwcomponents_max_piston_nodes") or 15) tonumber (minetest.settings:get ("lwcomponents_max_piston_nodes") or 15)
utils.settings.use_player_when_placing =
minetest.settings:get_bool ("lwcomponents_use_player_when_placing", false)
utils.settings.default_stack_max = utils.settings.default_stack_max =
tonumber (minetest.settings:get ("default_stack_max")) or 99 tonumber (minetest.settings:get ("default_stack_max")) or 99

View File

@@ -6,3 +6,6 @@ lwcomponents_alert_handler_errors (Alert handler errors) bool true
# Maximum nodes a piston can push. # Maximum nodes a piston can push.
lwcomponents_max_piston_nodes (Maximum piston nodes) int 15 lwcomponents_max_piston_nodes (Maximum piston nodes) int 15
# Use owner player when placing nodes.
lwcomponents_use_player_when_placing (Use player when placing) bool false

View File

@@ -491,7 +491,7 @@ minetest.register_node("lwcomponents:siren", {
tiles = { "lwsiren_base.png", "lwsiren_base.png", "lwsiren.png", tiles = { "lwsiren_base.png", "lwsiren_base.png", "lwsiren.png",
"lwsiren.png", "lwsiren.png", "lwsiren.png"}, "lwsiren.png", "lwsiren.png", "lwsiren.png"},
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3 }, groups = { cracky = 3, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "none", paramtype = "none",
param1 = 0, param1 = 0,
@@ -518,7 +518,7 @@ minetest.register_node("lwcomponents:siren_locked", {
tiles = { "lwsiren_base.png", "lwsiren_base.png", "lwsiren.png", tiles = { "lwsiren_base.png", "lwsiren_base.png", "lwsiren.png",
"lwsiren.png", "lwsiren.png", "lwsiren.png"}, "lwsiren.png", "lwsiren.png", "lwsiren.png"},
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3 }, groups = { cracky = 3, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "none", paramtype = "none",
param1 = 0, param1 = 0,
@@ -545,7 +545,7 @@ minetest.register_node("lwcomponents:siren_on", {
tiles = { "lwsiren_base.png", "lwsiren_base.png", "lwsiren_on.png", tiles = { "lwsiren_base.png", "lwsiren_base.png", "lwsiren_on.png",
"lwsiren_on.png", "lwsiren_on.png", "lwsiren_on.png"}, "lwsiren_on.png", "lwsiren_on.png", "lwsiren_on.png"},
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3, not_in_creative_inventory = 1 }, groups = { cracky = 3, not_in_creative_inventory = 1, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "none", paramtype = "none",
param1 = 0, param1 = 0,
@@ -572,7 +572,7 @@ minetest.register_node("lwcomponents:siren_locked_on", {
tiles = { "lwsiren_base.png", "lwsiren_base.png", "lwsiren_on.png", tiles = { "lwsiren_base.png", "lwsiren_base.png", "lwsiren_on.png",
"lwsiren_on.png", "lwsiren_on.png", "lwsiren_on.png"}, "lwsiren_on.png", "lwsiren_on.png", "lwsiren_on.png"},
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3, not_in_creative_inventory = 1 }, groups = { cracky = 3, not_in_creative_inventory = 1, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "none", paramtype = "none",
param1 = 0, param1 = 0,
@@ -599,7 +599,7 @@ minetest.register_node("lwcomponents:siren_alarm", {
tiles = { "lwsiren_base.png", "lwsiren_base.png", "lwsiren_alarm.png", tiles = { "lwsiren_base.png", "lwsiren_base.png", "lwsiren_alarm.png",
"lwsiren_alarm.png", "lwsiren_alarm.png", "lwsiren_alarm.png"}, "lwsiren_alarm.png", "lwsiren_alarm.png", "lwsiren_alarm.png"},
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3, not_in_creative_inventory = 1 }, groups = { cracky = 3, not_in_creative_inventory = 1, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "none", paramtype = "none",
param1 = 0, param1 = 0,
@@ -627,7 +627,7 @@ minetest.register_node("lwcomponents:siren_locked_alarm", {
tiles = { "lwsiren_base.png", "lwsiren_base.png", "lwsiren_alarm.png", tiles = { "lwsiren_base.png", "lwsiren_base.png", "lwsiren_alarm.png",
"lwsiren_alarm.png", "lwsiren_alarm.png", "lwsiren_alarm.png"}, "lwsiren_alarm.png", "lwsiren_alarm.png", "lwsiren_alarm.png"},
is_ground_content = false, is_ground_content = false,
groups = { cracky = 3, not_in_creative_inventory = 1 }, groups = { cracky = 3, not_in_creative_inventory = 1, wires_connect = 1 },
sounds = default.node_sound_stone_defaults (), sounds = default.node_sound_stone_defaults (),
paramtype = "none", paramtype = "none",
param1 = 0, param1 = 0,

View File

@@ -35,6 +35,7 @@ mesecon.register_node (":lwcomponents:solid_conductor",
groups = { groups = {
dig_immediate = 2, dig_immediate = 2,
ud_param2_colorable = 1, ud_param2_colorable = 1,
wires_connect = 1
}, },
}, },
{ {
@@ -51,7 +52,8 @@ mesecon.register_node (":lwcomponents:solid_conductor",
groups = { groups = {
dig_immediate = 2, dig_immediate = 2,
ud_param2_colorable = 1, ud_param2_colorable = 1,
not_in_creative_inventory = 1 not_in_creative_inventory = 1,
wires_connect = 1
}, },
} }
) )
@@ -101,6 +103,7 @@ mesecon.register_node (":lwcomponents:solid_horizontal_conductor",
groups = { groups = {
dig_immediate = 2, dig_immediate = 2,
ud_param2_colorable = 1, ud_param2_colorable = 1,
wires_connect = 1
}, },
}, },
{ {
@@ -117,7 +120,8 @@ mesecon.register_node (":lwcomponents:solid_horizontal_conductor",
groups = { groups = {
dig_immediate = 2, dig_immediate = 2,
ud_param2_colorable = 1, ud_param2_colorable = 1,
not_in_creative_inventory = 1 not_in_creative_inventory = 1,
wires_connect = 1
}, },
} }
) )