forked from minetest-mods/MoreMesecons
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3c3fc6749a | ||
|
|
46d1f500bf | ||
|
|
3b0d06569d | ||
|
|
52fc535d26 |
@@ -1,6 +1,6 @@
|
|||||||
read_globals = {
|
read_globals = {
|
||||||
-- Defined by Minetest
|
-- Defined by Minetest
|
||||||
"minetest", "vector", "PseudoRandom", "VoxelArea", "table",
|
"minetest", "vector", "PseudoRandom", "VoxelArea", "table", "ItemStack",
|
||||||
|
|
||||||
-- Mods
|
-- Mods
|
||||||
"digiline", "default", "creative",
|
"digiline", "default", "creative",
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
name = moremesecons_adjustable_blinkyplant
|
name = moremesecons_adjustable_blinkyplant
|
||||||
depends = mesecons,moremesecons_utils
|
depends = mesecons,moremesecons_utils,default
|
||||||
optional_depends = craft_guide
|
optional_depends = craft_guide
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
name = moremesecons_adjustable_player_detector
|
name = moremesecons_adjustable_player_detector
|
||||||
depends = mesecons
|
depends = mesecons,moremesecons_utils,default
|
||||||
optional_depends = craft_guide
|
optional_depends = craft_guide
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
name = moremesecons_commandblock
|
name = moremesecons_commandblock
|
||||||
depends = mesecons,moremesecons_utils
|
depends = mesecons,moremesecons_utils,default
|
||||||
optional_depends = craft_guide
|
optional_depends = craft_guide
|
||||||
|
|||||||
@@ -45,10 +45,11 @@ mesecon.register_node("moremesecons_conductor_signalchanger:conductor_signalchan
|
|||||||
inventory_image = "moremesecons_conductor_signalchanger_off.png",
|
inventory_image = "moremesecons_conductor_signalchanger_off.png",
|
||||||
groups = {dig_immediate = 2},
|
groups = {dig_immediate = 2},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "4dir",
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
selection_box = nodebox,
|
selection_box = nodebox,
|
||||||
node_box = nodebox,
|
node_box = nodebox,
|
||||||
|
on_rotate = mesecon.on_rotate,
|
||||||
},{
|
},{
|
||||||
groups = {dig_immediate = 2},
|
groups = {dig_immediate = 2},
|
||||||
mesecons = {
|
mesecons = {
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ for n,i in pairs({{0,0},{1,0},{1,1}}) do
|
|||||||
inventory_image = top_texture,
|
inventory_image = top_texture,
|
||||||
wield_image = top_texture,
|
wield_image = top_texture,
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "4dir",
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
node_box = {
|
node_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
@@ -79,6 +79,7 @@ for n,i in pairs({{0,0},{1,0},{1,1}}) do
|
|||||||
groups = groups,
|
groups = groups,
|
||||||
tiles = {top_texture, "moremesecons_dual_delayer_bottom.png", "moremesecons_dual_delayer_side_left.png", "moremesecons_dual_delayer_side_right.png", "moremesecons_dual_delayer_ends.png", "moremesecons_dual_delayer_ends.png"},
|
tiles = {top_texture, "moremesecons_dual_delayer_bottom.png", "moremesecons_dual_delayer_side_left.png", "moremesecons_dual_delayer_side_right.png", "moremesecons_dual_delayer_ends.png", "moremesecons_dual_delayer_ends.png"},
|
||||||
use_texture_alpha = use_texture_alpha,
|
use_texture_alpha = use_texture_alpha,
|
||||||
|
on_rotate = mesecon.on_rotate,
|
||||||
mesecons = {
|
mesecons = {
|
||||||
receptor = {
|
receptor = {
|
||||||
state = mesecon.state.off,
|
state = mesecon.state.off,
|
||||||
|
|||||||
@@ -46,9 +46,14 @@ local object_detector_scan = function (pos)
|
|||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
local isname = luaentity.name
|
local isname = luaentity.name
|
||||||
|
-- If the item is present as dropped item entity:
|
||||||
|
local bitemname = (isname == "__builtin:item" and ItemStack(luaentity.itemstring):get_name())
|
||||||
for _, name in ipairs(scan_names) do
|
for _, name in ipairs(scan_names) do
|
||||||
if isname == name or (isname == "__builtin:item" and luaentity.itemstring == name) then
|
if name == isname then
|
||||||
return true
|
return true -- object name matches
|
||||||
|
end
|
||||||
|
if name == bitemname then
|
||||||
|
return true -- item of the item entity matches
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
name = moremesecons_entity_detector
|
name = moremesecons_entity_detector
|
||||||
depends = mesecons
|
depends = mesecons,moremesecons_utils,default
|
||||||
optional_depends = craft_guide
|
optional_depends = craft_guide
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ mesecon.register_node("moremesecons_induction_transmitter:induction_transmitter"
|
|||||||
{-0.25, -0.25, -0.5, 0.25, 0.25, -0.1875},
|
{-0.25, -0.25, -0.5, 0.25, 0.25, -0.1875},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
on_rotate = mesecon.on_rotate,
|
||||||
}, {
|
}, {
|
||||||
tiles = {"default_mese_block.png"},
|
tiles = {"default_mese_block.png"},
|
||||||
groups = {cracky = 3},
|
groups = {cracky = 3},
|
||||||
|
|||||||
@@ -42,12 +42,13 @@ mesecon.register_node("moremesecons_injector_controller:injector_controller", {
|
|||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
inventory_image = "moremesecons_injector_controller_off.png",
|
inventory_image = "moremesecons_injector_controller_off.png",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "4dir",
|
||||||
node_box = {
|
node_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {{-8/16, -8/16, -8/16, 8/16, -7/16, 8/16 }},
|
fixed = {{-8/16, -8/16, -8/16, 8/16, -7/16, 8/16 }},
|
||||||
},
|
},
|
||||||
on_timer = on_timer,
|
on_timer = on_timer,
|
||||||
|
on_rotate = mesecon.on_rotate,
|
||||||
},{
|
},{
|
||||||
tiles = {"moremesecons_injector_controller_off.png", "moremesecons_injector_controller_side.png", "moremesecons_injector_controller_side.png"},
|
tiles = {"moremesecons_injector_controller_off.png", "moremesecons_injector_controller_side.png", "moremesecons_injector_controller_side.png"},
|
||||||
groups = {dig_immediate=2},
|
groups = {dig_immediate=2},
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
name = moremesecons_playerkiller
|
name = moremesecons_playerkiller
|
||||||
depends = mesecons,mesecons_materials,moremesecons_utils
|
depends = mesecons,mesecons_materials,moremesecons_utils,default
|
||||||
optional_depends = craft_guide
|
optional_depends = craft_guide
|
||||||
|
|||||||
@@ -41,10 +41,11 @@ mesecon.register_node("moremesecons_signalchanger:signalchanger", {
|
|||||||
inventory_image = "moremesecons_signalchanger_off.png",
|
inventory_image = "moremesecons_signalchanger_off.png",
|
||||||
groups = {dig_immediate = 2},
|
groups = {dig_immediate = 2},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "4dir",
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
selection_box = nodebox,
|
selection_box = nodebox,
|
||||||
node_box = nodebox,
|
node_box = nodebox,
|
||||||
|
on_rotate = mesecon.on_rotate,
|
||||||
},{
|
},{
|
||||||
groups = {dig_immediate = 2},
|
groups = {dig_immediate = 2},
|
||||||
mesecons = {
|
mesecons = {
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
name = moremesecons_teleporter
|
name = moremesecons_teleporter
|
||||||
depends = mesecons,moremesecons_utils
|
depends = mesecons,moremesecons_utils,default
|
||||||
optional_depends = craft_guide
|
optional_depends = craft_guide
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
local MIN_DELAY = moremesecons.setting("timegate", "min_delay", 0.5)
|
||||||
|
|
||||||
local timegate_get_output_rules = function(node)
|
local timegate_get_output_rules = function(node)
|
||||||
local rules = {{x = 0, y = 0, z = 1}}
|
local rules = {{x = 0, y = 0, z = 1}}
|
||||||
for _ = 0, node.param2 do
|
for _ = 0, node.param2 do
|
||||||
@@ -14,25 +16,28 @@ local timegate_get_input_rules = function(node)
|
|||||||
return rules
|
return rules
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Functions that are called after the delay time
|
local function turnoff(pos, _, node)
|
||||||
|
if mesecon.is_receptor_on(node.name) then
|
||||||
|
node.name = "moremesecons_timegate:timegate_off"
|
||||||
|
minetest.swap_node(pos, node)
|
||||||
|
mesecon.receptor_off(pos)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
local function timegate_activate(pos, node)
|
local function turnon(pos, node)
|
||||||
-- using a meta string allows writing the time in hexadecimals
|
-- using a meta string allows writing the time in hexadecimals
|
||||||
local time = tonumber(minetest.get_meta(pos):get_string("time"))
|
local time = tonumber(minetest.get_meta(pos):get_string("time"))
|
||||||
if not time then
|
if not (time and time >= MIN_DELAY) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
-- restart the timer when the input was turned off and on again
|
||||||
|
minetest.get_node_timer(pos):start(time)
|
||||||
|
|
||||||
|
if mesecon.is_receptor_off(node.name) then
|
||||||
node.name = "moremesecons_timegate:timegate_on"
|
node.name = "moremesecons_timegate:timegate_on"
|
||||||
minetest.swap_node(pos, node)
|
minetest.swap_node(pos, node)
|
||||||
mesecon.receptor_on(pos)
|
mesecon.receptor_on(pos)
|
||||||
minetest.after(time, function()
|
|
||||||
local node = minetest.get_node(pos)
|
|
||||||
if node.name == "moremesecons_timegate:timegate_on" then
|
|
||||||
mesecon.receptor_off(pos)
|
|
||||||
node.name = "moremesecons_timegate:timegate_off"
|
|
||||||
minetest.swap_node(pos, node)
|
|
||||||
end
|
end
|
||||||
end)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local boxes = {{ -6/16, -8/16, -6/16, 6/16, -7/16, 6/16 }, -- the main slab
|
local boxes = {{ -6/16, -8/16, -6/16, 6/16, -7/16, 6/16 }, -- the main slab
|
||||||
@@ -66,7 +71,7 @@ mesecon.register_node("moremesecons_timegate:timegate", {
|
|||||||
fixed = boxes
|
fixed = boxes
|
||||||
},
|
},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "4dir",
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
sounds = default.node_sound_stone_defaults(),
|
sounds = default.node_sound_stone_defaults(),
|
||||||
@@ -78,7 +83,9 @@ mesecon.register_node("moremesecons_timegate:timegate", {
|
|||||||
and not minetest.is_protected(pos, player:get_player_name()) then
|
and not minetest.is_protected(pos, player:get_player_name()) then
|
||||||
minetest.get_meta(pos):set_string("time", fields.time)
|
minetest.get_meta(pos):set_string("time", fields.time)
|
||||||
end
|
end
|
||||||
end
|
end,
|
||||||
|
on_timer = turnoff,
|
||||||
|
on_rotate = mesecon.on_rotate
|
||||||
},{
|
},{
|
||||||
tiles = {
|
tiles = {
|
||||||
"moremesecons_timegate_off.png",
|
"moremesecons_timegate_off.png",
|
||||||
@@ -99,7 +106,7 @@ mesecon.register_node("moremesecons_timegate:timegate", {
|
|||||||
effector =
|
effector =
|
||||||
{
|
{
|
||||||
rules = timegate_get_input_rules,
|
rules = timegate_get_input_rules,
|
||||||
action_on = timegate_activate
|
action_on = turnon
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},{
|
},{
|
||||||
@@ -120,6 +127,7 @@ mesecon.register_node("moremesecons_timegate:timegate", {
|
|||||||
},
|
},
|
||||||
effector = {
|
effector = {
|
||||||
rules = timegate_get_input_rules,
|
rules = timegate_get_input_rules,
|
||||||
|
action_on = turnon
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
name = moremesecons_timegate
|
name = moremesecons_timegate
|
||||||
depends = mesecons
|
depends = mesecons,default
|
||||||
optional_depends = craft_guide
|
optional_depends = craft_guide
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
name = moremesecons_wireless
|
name = moremesecons_wireless
|
||||||
depends = mesecons,moremesecons_utils
|
depends = mesecons,moremesecons_utils,default
|
||||||
optional_depends = digilines,craft_guide
|
optional_depends = digilines,craft_guide
|
||||||
|
|||||||
@@ -69,6 +69,11 @@ moremesecons_teleporter.max_p2t_distance (Maximum Player To Teleporter distance)
|
|||||||
# from an older version which did not use it.
|
# from an older version which did not use it.
|
||||||
moremesecons_teleporter.enable_lbm (Enable Registration LBM) bool false
|
moremesecons_teleporter.enable_lbm (Enable Registration LBM) bool false
|
||||||
|
|
||||||
|
[Timegate]
|
||||||
|
|
||||||
|
# Minimum authorized length for the timegate signal. Timegates with a shorter time will not respond.
|
||||||
|
moremesecons_timegate.min_delay (Minimum timegate delay) float 0.5
|
||||||
|
|
||||||
[Wireless]
|
[Wireless]
|
||||||
|
|
||||||
# Whether to enable the wireless jammer node
|
# Whether to enable the wireless jammer node
|
||||||
|
|||||||
Reference in New Issue
Block a user