[mcl_observers] fix warnings

This commit is contained in:
AFCMS 2021-05-23 11:47:59 +02:00
parent 962ae359af
commit b814fe47f9
1 changed files with 161 additions and 156 deletions

View File

@ -11,7 +11,7 @@ local realtime = true
local rules_flat = { local rules_flat = {
{ x = 0, y = 0, z = -1, spread = true }, { x = 0, y = 0, z = -1, spread = true },
} }
local get_rules_flat = function(node) local function get_rules_flat(node)
local rules = rules_flat local rules = rules_flat
for i=1, node.param2 do for i=1, node.param2 do
rules = mesecon.rotate_rules_left(rules) rules = mesecon.rotate_rules_left(rules)
@ -46,7 +46,7 @@ end
-- and update the observer state if needed. -- and update the observer state if needed.
-- TODO: Also scan metadata changes. -- TODO: Also scan metadata changes.
-- TODO: Ignore some node changes. -- TODO: Ignore some node changes.
local observer_scan = function(pos, initialize) local function observer_scan(pos, initialize)
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
local front local front
if node.name == "mcl_observers:observer_up_off" or node.name == "mcl_observers:observer_up_on" then if node.name == "mcl_observers:observer_up_off" or node.name == "mcl_observers:observer_up_on" then
@ -87,14 +87,14 @@ local observer_scan = function(pos, initialize)
end end
-- Vertical orientation (CURRENTLY DISABLED) -- Vertical orientation (CURRENTLY DISABLED)
local observer_orientate = function(pos, placer) local function observer_orientate(pos, placer)
-- Not placed by player -- Not placed by player
if not placer then return end if not placer then return end
-- Placer pitch in degrees -- Placer pitch in degrees
local pitch = placer:get_look_vertical() * (180 / math.pi) local pitch = placer:get_look_vertical() * (180 / math.pi)
local node = minetest.get_node(pos) --local node = minetest.get_node(pos)
if pitch > 55 then -- player looking upwards if pitch > 55 then -- player looking upwards
-- Observer looking downwards -- Observer looking downwards
minetest.set_node(pos, {name="mcl_observers:observer_down_off"}) minetest.set_node(pos, {name="mcl_observers:observer_down_off"})
@ -104,16 +104,14 @@ local observer_orientate = function(pos, placer)
end end
end end
mesecon.register_node("mcl_observers:observer", mesecon.register_node("mcl_observers:observer", {
{
is_ground_content = false, is_ground_content = false,
sounds = mcl_sounds.node_sound_stone_defaults(), sounds = mcl_sounds.node_sound_stone_defaults(),
paramtype2 = "facedir", paramtype2 = "facedir",
on_rotate = false, on_rotate = false,
_mcl_blast_resistance = 3.5, _mcl_blast_resistance = 3.5,
_mcl_hardness = 3.5, _mcl_hardness = 3.5,
}, }, {
{
description = S("Observer"), description = S("Observer"),
_tt_help = S("Emits redstone pulse when block in front changes"), _tt_help = S("Emits redstone pulse when block in front changes"),
_doc_items_longdesc = S("An observer is a redstone component which observes the block in front of it and sends a very short redstone pulse whenever this block changes."), _doc_items_longdesc = S("An observer is a redstone component which observes the block in front of it and sends a very short redstone pulse whenever this block changes."),
@ -125,18 +123,19 @@ mesecon.register_node("mcl_observers:observer",
"mcl_observers_observer_side.png", "mcl_observers_observer_side.png", "mcl_observers_observer_side.png", "mcl_observers_observer_side.png",
"mcl_observers_observer_front.png", "mcl_observers_observer_back.png", "mcl_observers_observer_front.png", "mcl_observers_observer_back.png",
}, },
mesecons = { receptor = { mesecons = {
receptor = {
state = mesecon.state.off, state = mesecon.state.off,
rules = get_rules_flat, rules = get_rules_flat,
}}, },
},
on_construct = function(pos) on_construct = function(pos)
if not realtime then if not realtime then
observer_scan(pos, true) observer_scan(pos, true)
end end
end, end,
after_place_node = observer_orientate, after_place_node = observer_orientate,
}, }, {
{
_doc_items_create_entry = false, _doc_items_create_entry = false,
groups = {pickaxey=1, material_stone=1, not_opaque=1, not_in_creative_inventory=1 }, groups = {pickaxey=1, material_stone=1, not_opaque=1, not_in_creative_inventory=1 },
tiles = { tiles = {
@ -144,10 +143,12 @@ mesecon.register_node("mcl_observers:observer",
"mcl_observers_observer_side.png", "mcl_observers_observer_side.png", "mcl_observers_observer_side.png", "mcl_observers_observer_side.png",
"mcl_observers_observer_front.png", "mcl_observers_observer_back_lit.png", "mcl_observers_observer_front.png", "mcl_observers_observer_back_lit.png",
}, },
mesecons = { receptor = { mesecons = {
receptor = {
state = mesecon.state.on, state = mesecon.state.on,
rules = get_rules_flat, rules = get_rules_flat,
}}, }
},
-- VERY quickly disable observer after construction -- VERY quickly disable observer after construction
on_construct = function(pos) on_construct = function(pos)
@ -159,11 +160,10 @@ mesecon.register_node("mcl_observers:observer",
minetest.set_node(pos, {name = "mcl_observers:observer_off", param2 = node.param2}) minetest.set_node(pos, {name = "mcl_observers:observer_off", param2 = node.param2})
mesecon.receptor_off(pos, get_rules_flat(node)) mesecon.receptor_off(pos, get_rules_flat(node))
end, end,
} }
) )
mesecon.register_node("mcl_observers:observer_down", mesecon.register_node("mcl_observers:observer_down", {
{
is_ground_content = false, is_ground_content = false,
sounds = mcl_sounds.node_sound_stone_defaults(), sounds = mcl_sounds.node_sound_stone_defaults(),
groups = {pickaxey=1, material_stone=1, not_opaque=1, not_in_creative_inventory=1 }, groups = {pickaxey=1, material_stone=1, not_opaque=1, not_in_creative_inventory=1 },
@ -171,34 +171,36 @@ mesecon.register_node("mcl_observers:observer_down",
_mcl_blast_resistance = 3.5, _mcl_blast_resistance = 3.5,
_mcl_hardness = 3.5, _mcl_hardness = 3.5,
drop = "mcl_observers:observer_off", drop = "mcl_observers:observer_off",
}, }, {
{
tiles = { tiles = {
"mcl_observers_observer_back.png", "mcl_observers_observer_front.png", "mcl_observers_observer_back.png", "mcl_observers_observer_front.png",
"mcl_observers_observer_side.png^[transformR90", "mcl_observers_observer_side.png^[transformR90", "mcl_observers_observer_side.png^[transformR90", "mcl_observers_observer_side.png^[transformR90",
"mcl_observers_observer_top.png", "mcl_observers_observer_top.png", "mcl_observers_observer_top.png", "mcl_observers_observer_top.png",
}, },
mesecons = { receptor = { mesecons = {
receptor = {
state = mesecon.state.off, state = mesecon.state.off,
rules = rules_down, rules = rules_down,
}}, },
},
on_construct = function(pos) on_construct = function(pos)
if not realtime then if not realtime then
observer_scan(pos, true) observer_scan(pos, true)
end end
end, end,
}, }, {
{
_doc_items_create_entry = false, _doc_items_create_entry = false,
tiles = { tiles = {
"mcl_observers_observer_back_lit.png", "mcl_observers_observer_front.png", "mcl_observers_observer_back_lit.png", "mcl_observers_observer_front.png",
"mcl_observers_observer_side.png^[transformR90", "mcl_observers_observer_side.png^[transformR90", "mcl_observers_observer_side.png^[transformR90", "mcl_observers_observer_side.png^[transformR90",
"mcl_observers_observer_top.png", "mcl_observers_observer_top.png", "mcl_observers_observer_top.png", "mcl_observers_observer_top.png",
}, },
mesecons = { receptor = { mesecons = {
receptor = {
state = mesecon.state.on, state = mesecon.state.on,
rules = rules_down, rules = rules_down,
}}, },
},
-- VERY quickly disable observer after construction -- VERY quickly disable observer after construction
on_construct = function(pos) on_construct = function(pos)
@ -210,10 +212,10 @@ mesecon.register_node("mcl_observers:observer_down",
minetest.set_node(pos, {name = "mcl_observers:observer_down_off", param2 = node.param2}) minetest.set_node(pos, {name = "mcl_observers:observer_down_off", param2 = node.param2})
mesecon.receptor_off(pos, rules_down) mesecon.receptor_off(pos, rules_down)
end, end,
}) }
)
mesecon.register_node("mcl_observers:observer_up", mesecon.register_node("mcl_observers:observer_up", {
{
is_ground_content = false, is_ground_content = false,
sounds = mcl_sounds.node_sound_stone_defaults(), sounds = mcl_sounds.node_sound_stone_defaults(),
groups = {pickaxey=1, material_stone=1, not_opaque=1, not_in_creative_inventory=1 }, groups = {pickaxey=1, material_stone=1, not_opaque=1, not_in_creative_inventory=1 },
@ -221,34 +223,36 @@ mesecon.register_node("mcl_observers:observer_up",
_mcl_blast_resistance = 3.5, _mcl_blast_resistance = 3.5,
_mcl_hardness = 3.5, _mcl_hardness = 3.5,
drop = "mcl_observers:observer_off", drop = "mcl_observers:observer_off",
}, }, {
{
tiles = { tiles = {
"mcl_observers_observer_front.png", "mcl_observers_observer_back.png", "mcl_observers_observer_front.png", "mcl_observers_observer_back.png",
"mcl_observers_observer_side.png^[transformR270", "mcl_observers_observer_side.png^[transformR270", "mcl_observers_observer_side.png^[transformR270", "mcl_observers_observer_side.png^[transformR270",
"mcl_observers_observer_top.png^[transformR180", "mcl_observers_observer_top.png^[transformR180", "mcl_observers_observer_top.png^[transformR180", "mcl_observers_observer_top.png^[transformR180",
}, },
mesecons = { receptor = { mesecons = {
receptor = {
state = mesecon.state.off, state = mesecon.state.off,
rules = rules_up, rules = rules_up,
}}, },
},
on_construct = function(pos) on_construct = function(pos)
if not realtime then if not realtime then
observer_scan(pos, true) observer_scan(pos, true)
end end
end, end,
}, }, {
{
_doc_items_create_entry = false, _doc_items_create_entry = false,
tiles = { tiles = {
"mcl_observers_observer_front.png", "mcl_observers_observer_back_lit.png", "mcl_observers_observer_front.png", "mcl_observers_observer_back_lit.png",
"mcl_observers_observer_side.png^[transformR270", "mcl_observers_observer_side.png^[transformR270", "mcl_observers_observer_side.png^[transformR270", "mcl_observers_observer_side.png^[transformR270",
"mcl_observers_observer_top.png^[transformR180", "mcl_observers_observer_top.png^[transformR180", "mcl_observers_observer_top.png^[transformR180", "mcl_observers_observer_top.png^[transformR180",
}, },
mesecons = { receptor = { mesecons = {
receptor = {
state = mesecon.state.on, state = mesecon.state.on,
rules = rules_up, rules = rules_up,
}}, },
},
-- VERY quickly disable observer after construction -- VERY quickly disable observer after construction
on_construct = function(pos) on_construct = function(pos)
@ -259,7 +263,8 @@ mesecon.register_node("mcl_observers:observer_up",
minetest.set_node(pos, {name = "mcl_observers:observer_up_off"}) minetest.set_node(pos, {name = "mcl_observers:observer_up_off"})
mesecon.receptor_off(pos, rules_up) mesecon.receptor_off(pos, rules_up)
end, end,
}) }
)
minetest.register_craft({ minetest.register_craft({
output = "mcl_observers:observer_off", output = "mcl_observers:observer_off",
@ -267,7 +272,7 @@ minetest.register_craft({
{ "mcl_core:cobble", "mcl_core:cobble", "mcl_core:cobble" }, { "mcl_core:cobble", "mcl_core:cobble", "mcl_core:cobble" },
{ "mcl_nether:quartz", "mesecons:redstone", "mesecons:redstone" }, { "mcl_nether:quartz", "mesecons:redstone", "mesecons:redstone" },
{ "mcl_core:cobble", "mcl_core:cobble", "mcl_core:cobble" }, { "mcl_core:cobble", "mcl_core:cobble", "mcl_core:cobble" },
} },
}) })
minetest.register_craft({ minetest.register_craft({
output = "mcl_observers:observer_off", output = "mcl_observers:observer_off",
@ -275,7 +280,7 @@ minetest.register_craft({
{ "mcl_core:cobble", "mcl_core:cobble", "mcl_core:cobble" }, { "mcl_core:cobble", "mcl_core:cobble", "mcl_core:cobble" },
{ "mesecons:redstone", "mesecons:redstone", "mcl_nether:quartz" }, { "mesecons:redstone", "mesecons:redstone", "mcl_nether:quartz" },
{ "mcl_core:cobble", "mcl_core:cobble", "mcl_core:cobble" }, { "mcl_core:cobble", "mcl_core:cobble", "mcl_core:cobble" },
} },
}) })
if realtime then if realtime then