From b20d734c5390d2ab51ed8d7ab21f23563a2ba8df Mon Sep 17 00:00:00 2001 From: Johannes Lundberg Date: Thu, 8 Oct 2020 12:16:56 -0700 Subject: [PATCH] Add scanner node --- mesecons/util.lua | 7 + mesecons_alias/init.lua | 1 + mesecons_scanner/doc/scanner/description.html | 6 + mesecons_scanner/doc/scanner/preview.png | Bin 0 -> 45252 bytes mesecons_scanner/doc/scanner/recipe.png | Bin 0 -> 10705 bytes mesecons_scanner/init.lua | 318 ++++++++++++++++++ mesecons_scanner/mod.conf | 2 + .../textures/mesecons_scanner_back.png | Bin 0 -> 181 bytes .../textures/mesecons_scanner_bottom.png | Bin 0 -> 1780 bytes .../textures/mesecons_scanner_front_off.png | Bin 0 -> 217 bytes .../textures/mesecons_scanner_front_on.png | Bin 0 -> 217 bytes .../textures/mesecons_scanner_left_off.png | Bin 0 -> 219 bytes .../textures/mesecons_scanner_left_on.png | Bin 0 -> 208 bytes .../textures/mesecons_scanner_preview.png | Bin 0 -> 45252 bytes .../textures/mesecons_scanner_right_off.png | Bin 0 -> 197 bytes .../textures/mesecons_scanner_right_on.png | Bin 0 -> 197 bytes .../textures/mesecons_scanner_top_off.png | Bin 0 -> 462 bytes .../textures/mesecons_scanner_top_on.png | Bin 0 -> 519 bytes 18 files changed, 334 insertions(+) create mode 100644 mesecons_scanner/doc/scanner/description.html create mode 100644 mesecons_scanner/doc/scanner/preview.png create mode 100644 mesecons_scanner/doc/scanner/recipe.png create mode 100644 mesecons_scanner/init.lua create mode 100644 mesecons_scanner/mod.conf create mode 100644 mesecons_scanner/textures/mesecons_scanner_back.png create mode 100644 mesecons_scanner/textures/mesecons_scanner_bottom.png create mode 100644 mesecons_scanner/textures/mesecons_scanner_front_off.png create mode 100644 mesecons_scanner/textures/mesecons_scanner_front_on.png create mode 100644 mesecons_scanner/textures/mesecons_scanner_left_off.png create mode 100644 mesecons_scanner/textures/mesecons_scanner_left_on.png create mode 100644 mesecons_scanner/textures/mesecons_scanner_preview.png create mode 100644 mesecons_scanner/textures/mesecons_scanner_right_off.png create mode 100644 mesecons_scanner/textures/mesecons_scanner_right_on.png create mode 100644 mesecons_scanner/textures/mesecons_scanner_top_off.png create mode 100644 mesecons_scanner/textures/mesecons_scanner_top_on.png diff --git a/mesecons/util.lua b/mesecons/util.lua index f1f88d6..db893c6 100644 --- a/mesecons/util.lua +++ b/mesecons/util.lua @@ -158,6 +158,13 @@ function mesecon.getstate(nodename, states) error(nodename.." doesn't mention itself in "..dump(states)) end +function mesecon.setstate(pos, node, newstate) + local nodedef = minetest.registered_nodes[node.name] + + minetest.swap_node(pos, {name = nodedef.__mesecon_basename .. "_" .. newstate, + param2 = node.param2}) +end + function mesecon.getbinstate(nodename, states) return mesecon.dec2bin(mesecon.getstate(nodename, states)-1) end diff --git a/mesecons_alias/init.lua b/mesecons_alias/init.lua index 395c368..57c6cab 100644 --- a/mesecons_alias/init.lua +++ b/mesecons_alias/init.lua @@ -26,6 +26,7 @@ minetest.register_alias("mesecons:noteblock", "mesecons_noteblock:noteblock") minetest.register_alias("mesecons:microcontroller", "mesecons_microcontroller:microcontroller0000") minetest.register_alias("mesecons:delayer", "mesecons_delayer:delayer_off_1") minetest.register_alias("mesecons:solarpanel", "mesecons_solarpanel:solar_panel_off") +minetest.register_alias("mesecons:scanner", "mesecons_scanner:mesecon_scanner_off") --Backwards compatibility diff --git a/mesecons_scanner/doc/scanner/description.html b/mesecons_scanner/doc/scanner/description.html new file mode 100644 index 0000000..308b75e --- /dev/null +++ b/mesecons_scanner/doc/scanner/description.html @@ -0,0 +1,6 @@ +The Scanner detects how many slots are occupied in the inventory of the node behind it +and outputs a signal according to its configuration. Right click on the Scanner to configure it. +The default configuration is to output a signal if the scanned inventory contain any items. + +The Scanner will return its output signal status upon receiving a Digiline "GET" command and +send a message on the channel when the output state changes. diff --git a/mesecons_scanner/doc/scanner/preview.png b/mesecons_scanner/doc/scanner/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..6ef6fc046a435099cc15bfd68d7ff3f6815ecd35 GIT binary patch literal 45252 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≀YS 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%0D)Iztn#!!%^ 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 PQayg8tBO*7_WFMSP(s&i literal 0 HcmV?d00001 diff --git a/mesecons_scanner/init.lua b/mesecons_scanner/init.lua new file mode 100644 index 0000000..04311d9 --- /dev/null +++ b/mesecons_scanner/init.lua @@ -0,0 +1,318 @@ +-- mesecons_scanner + +local digilines_enabled = minetest.get_modpath("digilines") ~= nil + +local scanner_get_output_rules = function(node) + local rules = {{x = 0, y = 0, z = 1}} + for i = 0, node.param2 do + rules = mesecon.rotate_rules_left(rules) + end + return rules +end + +local scanner_get_input_rules = function(node) + local rules = {{x = 0, y = 0, z = -1}} + for i = 0, node.param2 do + rules = mesecon.rotate_rules_left(rules) + end + return rules +end + +local function rotated_facedir(node) + local rules = scanner_get_input_rules(node) + local dir = rules[1] + return dir +end + +local function update_keys(pos, node) + local meta = minetest.get_meta(pos) + local dir = rotated_facedir(node) + local target = { x=pos.x+dir.x, y=pos.y+dir.y, z=pos.z+dir.z } + local invs = minetest.get_meta(target):get_inventory():get_lists() + local keys = {} + for k,v in pairs(invs) do + keys[#keys + 1] = k + if k == meta:get_string("selected_inv") then + meta:set_string("selected_key", #keys) + end + end + meta:set_string("keys", table.concat(keys, ",")) +end + +local function update_formspec(pos, meta) + if digilines_enabled then + meta:set_string("formspec", "size[6,8]".. + ((default and default.gui_bg) or "").. + ((default and default.gui_bg_img) or "").. + "label[0,0;Inventory Scanner]".. + + "label[5,0;(?)]".. + "tooltip[5,0;1,1;Watermark values are in percent of slots occupied with one or more items.;black;white]".. + + "label[0,1;Select inventory]".. + "dropdown[3,1;3,1;inventory;" .. meta:get_string("keys") .. ";" .. meta:get_string("selected_key") .. "]".. + "label[0,2;Low watermark]".. + "field[4,2;2,1;low;;" .. meta:get_int("low_pct") .. "]".. + "label[0,3;High watermark]".. + "field[4,3;2,1;high;;" .. meta:get_int("high_pct") .. "]".. + + "label[0,4;Presets]".. + "button[0,4.5;2,1;empty;Empty]".. + "button[2,4.5;2,1;has_items;Has items]".. + "button[4,4.5;2,1;full;Full]".. + + "label[0,6;Digiline Channel]".. + "field[4,6;2,1;channel;;" .. meta:get_string("channel") .. "]".. + + "checkbox[0,7;invert;Invert output;".. meta:get_string("invert") .."]".. + "button_exit[4,7;2,1;save;Save]".. + "" + ) + else + meta:set_string("formspec", "size[6,7]".. + ((default and default.gui_bg) or "").. + ((default and default.gui_bg_img) or "").. + "label[0,0;Inventory Scanner]".. + + "label[5,0;(?)]".. + "tooltip[5,0;1,1;Watermark values are in percent of slots occupied with one or more items.;black;white]".. + + "label[0,1;Select inventory]".. + "dropdown[3,1;3,1;inventory;" .. meta:get_string("keys") .. ";" .. meta:get_string("selected_key") .. "]".. + "label[0,2;Low watermark]".. + "field[4,2;2,1;low;;" .. meta:get_int("low_pct") .. "]".. + "label[0,3;High watermark]".. + "field[4,3;2,1;high;;" .. meta:get_int("high_pct") .. "]".. + + "label[0,4;Presets]".. + "button[0,4.5;2,1;empty;Empty]".. + "button[2,4.5;2,1;has_items;Has items]".. + "button[4,4.5;2,1;full;Full]".. + + "checkbox[0,6;invert;Invert output;".. meta:get_string("invert") .."]".. + "button_exit[4,6;2,1;save;Save]".. + "" + ) + end +end + +-- Convert input percent to actual inventory slot counts and cache the values +local function update_watermarks(pos, meta) + local node = minetest.get_node(pos) + local dir = rotated_facedir(node) + local i_pos = { x=pos.x+dir.x, y=pos.y+dir.y, z=pos.z+dir.z } + local i_meta = minetest.get_meta(i_pos) + local i_name = meta:get_string("selected_inv") + local i_inv = i_meta:get_inventory() + local i_size = i_inv:get_size(i_name) + + local low_pct = meta:get_int("low_pct") + local high_pct = meta:get_int("high_pct") + + local low = math.ceil(i_size * (low_pct / 100.0)) + local high = math.floor(i_size * (high_pct / 100.0)) + + meta:set_int("low", low) + meta:set_int("high", high) +end + +local function on_receive_fields(pos, form_name, fields, sender) + local meta = minetest.get_meta(pos) + if fields.inventory then + meta:set_string("selected_inv", fields.inventory) + end + if fields.channel then + meta:set_string("channel", fields.channel) + end + if fields.low then + meta:set_int("low_pct", fields.low) + end + if fields.high then + meta:set_int("high_pct", fields.high) + end + if fields.invert then + meta:set_string("invert", fields.invert) + end + -- Buttons + if fields.empty then + meta:set_int("low_pct", 0) + meta:set_int("high_pct", 0) + meta:set_string("invert", "false") + elseif fields.has_items then + meta:set_int("low_pct", 1) + meta:set_int("high_pct", 100) + meta:set_string("invert", "false") + elseif fields.full then + meta:set_int("low_pct", 100) + meta:set_int("high_pct", 100) + meta:set_string("invert", "false") + end + update_formspec(pos, meta) + update_watermarks(pos, meta) +end + +local function set_receptor(pos, output, rules) + if output then + mesecon.receptor_on(pos, rules) + else + mesecon.receptor_off(pos, rules) + end +end + +local boxes = { + { -8/16, -8/16, -8/16, 8/16, -7/16, 8/16 }, -- the bottom slab + { -7/16, -7/16, -4/16, 4/16, -4/16, 4/16 }, -- the "box" + { -8/16, -7/16, -5/16, -7/16, -3/16, 5/16 }, -- the back plate in YZ plane +} + +mesecon.register_node("mesecons_scanner:mesecon_scanner", { + paramtype2="facedir", + description = "Inventory scanner", + is_ground_content = false, + sunlight_propagates = true, + inventory_image = "mesecons_scanner_preview.png", + drawtype = "nodebox", + wield_image = "mesecons_scanner_preview.png", + selection_box = { + type = "fixed", + fixed = { + { -8/16, -8/16, -8/16, 8/16, -3/16, 8/16 }, + } + }, + node_box = { + type = "fixed", + fixed = boxes + }, + after_dig_node = function (pos, node) + mesecon.do_cooldown(pos) + mesecon.receptor_off(pos, output_rules) + end, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + local node = minetest.get_node(pos) + meta:set_string("selected_inv", "main") + -- Default behavior is output signal on "has items" + meta:set_int("low_pct", 1) + meta:set_int("high_pct", 100) + meta:set_string("invert", "false") + meta:set_string("output", "off") + meta:set_string("channel", "channel") + update_keys(pos, node) + update_watermarks(pos, meta) + update_formspec(pos, meta) + minetest.get_node_timer(pos):start(1) + end, + on_receive_fields = on_receive_fields, + on_rightclick = function(pos, node, player, itemstack, pointed_thing) + local meta = minetest.get_meta(pos) + -- Update in case the node behind the scanner has changed + update_keys(pos, node) + update_formspec(pos, meta) + end, + on_timer = function (pos, elapsed) + local meta = minetest.get_meta(pos) + local node = minetest.get_node(pos) + local dir = rotated_facedir(node) + local invert = meta:get_string("invert") == "true" + local old_output = meta:get_string("output") == "on" + + -- Get watermark values in converted from percent to # slots + local low = meta:get_int("low") + local high = meta:get_int("high") + + -- Get the inventory of the node behind our scanner + local i_pos = { x=pos.x+dir.x, y=pos.y+dir.y, z=pos.z+dir.z } + local i_meta = minetest.get_meta(i_pos) + local i_inv = i_meta:get_inventory() + local output = false + local i_name = meta:get_string("selected_inv") + local i_size = i_inv:get_size(i_name) + if i_size > 0 then + -- Get number of slots with items in them + local count = 0 + for i = 1, i_size do + if not i_inv:get_stack(i_name, i):is_empty() then count = count + 1 end + end + -- Calculate our output + output = (count >= low and count <= high) + if invert then + output = not output + end + end + + -- Update if there's a change + if old_output ~= output then + local output_string = (output and "on") or "off" + + -- Save the new state + meta:set_string("output", output_string) + + -- Update node + set_receptor(pos, output, {scanner_get_output_rules(node)}) + mesecon.setstate(pos, node, output_string) + + -- Send digiline message + if digilines_enabled then + digilines.receptor_send(pos, digilines.rules.default, + meta:get_string("channel"), + { output = output_string } + ) + end + end + return true + end, + digiline = { + receptor = {action = function() end}, + effector = { + action = function(pos, node, channel, msg) + if msg ~= "GET" and msg ~= "get" then + return + end + local meta = minetest.get_meta(pos) + if channel ~= meta:get_string("channel") then + return + end + digilines.receptor_send(pos, digilines.rules.default, channel, { + output = meta:get_string("output"), + }) + end + }, + }, + +},{ + groups = { dig_immediate=2 }, + tiles = { + -- top + "mesecons_scanner_top_off.png", + -- bottom + "mesecons_scanner_bottom.png", + -- side 1 (since we are rotated names don't match) + "mesecons_scanner_front_off.png", + -- side 2 + "mesecons_scanner_back.png", + -- front + "mesecons_scanner_right_off.png", + -- back + "mesecons_scanner_left_off.png", + }, + mesecons = { receptor = { state = mesecon.state.off } } +},{ + groups = { dig_immediate=2, not_in_creative_inventory=1 }, + tiles = { + "mesecons_scanner_top_on.png", + "mesecons_scanner_bottom.png", + "mesecons_scanner_front_on.png", + "mesecons_scanner_back.png", + "mesecons_scanner_right_on.png", + "mesecons_scanner_left_on.png", + }, + mesecons = { receptor = { state = mesecon.state.off } } +}) + +minetest.register_craft({ + output = "mesecons_scanner:mesecon_scanner_off 1", + recipe = { + {"mesecons_torch:mesecon_torch_on", "default:mese_crystal", "mesecons_torch:mesecon_torch_on"}, + {"default:stone", "default:stone", "default:stone"}, + } +}) diff --git a/mesecons_scanner/mod.conf b/mesecons_scanner/mod.conf new file mode 100644 index 0000000..d99e65c --- /dev/null +++ b/mesecons_scanner/mod.conf @@ -0,0 +1,2 @@ +name = mesecons_scanner +depends = mesecons diff --git a/mesecons_scanner/textures/mesecons_scanner_back.png b/mesecons_scanner/textures/mesecons_scanner_back.png new file mode 100644 index 0000000000000000000000000000000000000000..b5fc538725979190cb75d29713b2e204588019d7 GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`HJ&bxAr`0KPT0+R*no$%zr}v< zgD~%?;tH>=P3#J~maz|5ye3$ED1GvHZ&N|>XYmuI9-4FC{R@>iJ~8+9yn6+_cjpFi zSw3GUlbjMcZTj5{)_1=DO+ILSw@Kj8d;5s%Us(hM`yMCEQai&F>Ke+JvDWasaavnP fKsKvGXeEQnN|iPH-#?uLbO(c{tDnm{r-UW|@mfcs literal 0 HcmV?d00001 diff --git a/mesecons_scanner/textures/mesecons_scanner_bottom.png b/mesecons_scanner/textures/mesecons_scanner_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f38e5fa5662c8bf16ea15a23f33749e66347fb GIT binary patch literal 1780 zcmV zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1b>((EV*{m&|92?F9{IT~Zt>|mBZn5aq2mpk`X zO{Y52N&wFROvC=q-xdDS4;g2`iVrS2XY^yEjg(Xf=KRFtj>aDM{=*F6F%NTrbc%K4 z^QTW;Kk2+&4-6lepYss<3WaV6r{Uwn&2y8>JxHCWa~^Fs6!%kbG5C9^xf|NL;t@*! z+8Ne4wBPWU@QP9qb;LwFBb(zM&ItJYrZ%s4!(R1}qsq)4jw$NK6p+XECV=J+&;#Tl z!HWKr7Vs(cd0wz|9U~QfTtHdodAgyyW1bPwb3q|;ukG}2ttHgDpSw%eDWa}t)B!dQ zGpd*say}k&dU^ed%Ko^bUcn@@Ddoj%ChN6fL{juCpv8g-EAGd*;ie&4+DSPfqK){N z3(8TXjT=w4U0BI0V}*lqxzP?von@M_;NdqO{x%HixuB{Nsxj0@J}>yy;-6el>((Gb z6DC#~7q!gNFdB31u3Ab6*3O$80FSHFZ*KXcsj3Xh0dvp|CX-JSS@6m&K6qx;6CKYI zLhz*

9sGXfVjifN{uz4vi=Bh>BxSf|5o~Y$+=PC_+VpB+KjwJOygL^%;+cE(tkm z)7qPq2w}%wxzU_s5JC(oQe^Fc5?%B$#28Z|Na`r5t)%)%XEJ5ZHcNKd=a6Ggo2JiZH`(0gx3I-6 z6)Ie`O%zvr2_=@aBkbBKcDu{&cE5)`?x||7Rj#&5b=B8UV@;E_&g$#>1JJuCtG)OINlygxCcdx^?KfZYE_|m3c%VLpiT1;zsC0 zz-Zy=3u$a(IN#pRyFC}jL!xW&z~Hj8z2X@==3z1HUGVK8c)&BZ6<_Wrx~YzU^6)Ng z4G!DWz)B#F#|H2tWW*7BM-DD3Cfp-rTE-M#!PpVHhn0PE5wViLCKKNC1RemmCEg2S z!R|nddjweS2H~D(>sZ!QH)}4?Bo6v!%}jtbfhdi1nHXskSp?o;tr@?T0pS;em%V)C zQImK~4Q27e4oz^}ie$NEE#S{+?`vkiRi1o<`sB6lXBAwT6IbZWQVsg*_o~;jR*d~3 z>$U+{2%eBoo@5P7Mbeixmf4SZO~KzUok*i-rvtN6t}h;I)lbyz16sIa`)ZD_3HL=^ zgf;Hjfuyc+PBZogn&Ibduj5So+49!b1y{eg3f#@`@T-N`yp#Z3N5Q+OCa&?-I<8a4 zjf9+0U&q5tAxU2uSl1E)T3aN|v`g#RGJ6b~wMQ8E?mA*#M|k&TjE^KC@`Zq%ax#o=GJDX$~U_h1kJ00AOt zLqkwWLqi~Na&Km7Y-Iodc$}S(u}Z^G6o$W4(Nc6$9K<1mxD{N?{h+@EJDPO3;cSLIPr)?n?6ompKNRy=8-s4|QCa{KlzkOPJT@5A+Y! Wp=fK&M05}U0000Nkl~?16+6oIX@V(4PgWelONZXY0=J=g&_dN0D=Gs*1b6 z8A~aol!!5sbKdv#)fhrx+qQiIs4C+)eoPRL!riI0qNP zs)z_8kAxzEnK29lt+hSb=?Bv^wWqn(O4oIm8LG1C00000NkvXXu0mjfWxQLM literal 0 HcmV?d00001 diff --git a/mesecons_scanner/textures/mesecons_scanner_front_on.png b/mesecons_scanner/textures/mesecons_scanner_front_on.png new file mode 100644 index 0000000000000000000000000000000000000000..a5bfca4961119f779402c770a72ddf26a3c2e49a GIT binary patch literal 217 zcmV;~04D#5P)NklT_~c00000NkvXXu0mjf{+e3b literal 0 HcmV?d00001 diff --git a/mesecons_scanner/textures/mesecons_scanner_left_off.png b/mesecons_scanner/textures/mesecons_scanner_left_off.png new file mode 100644 index 0000000000000000000000000000000000000000..ae3c364c7e5c446392e9dbfcf9cdf0f8e4279295 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`i#%N%Lo80e?K9+SHV|NWes0>r zwsO^=eNMiuN9rrW9hN*xsd?$4a;ik|@|tZoE*?61wBDd^@&8TznySC{eHUPQ*Vi$j zSnXKFl8y)Oc32-aII-QK_}mJuT;o8mg}KWXw+m#F4xw0xa1koUVz$m4n`pUm}OuNji7x>hj-cr9F|b%sYU@xJ{c^M7+)-yIUM Ru>iW3!PC{xWt~$(69BGTUkv~N literal 0 HcmV?d00001 diff --git a/mesecons_scanner/textures/mesecons_scanner_left_on.png b/mesecons_scanner/textures/mesecons_scanner_left_on.png new file mode 100644 index 0000000000000000000000000000000000000000..aef91ffc88523b3163eaa49261b4ff1c2c34a108 GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`(>+}rLo80e?K9+SHsE16-zO^9 z^@G8f+oMDOnRJiK!FOU?U)@;yNbGjAKRZAF|AYJ9e>}ba>72-EszF{ZEJ{ws2tSJo6KBp0^O>W(H4JKbLh* G2~7YY*-=>l literal 0 HcmV?d00001 diff --git a/mesecons_scanner/textures/mesecons_scanner_preview.png b/mesecons_scanner/textures/mesecons_scanner_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..6ef6fc046a435099cc15bfd68d7ff3f6815ecd35 GIT binary patch literal 45252 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≀YS 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%0D)Iztn#!!%^ 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 literal 0 HcmV?d00001 diff --git a/mesecons_scanner/textures/mesecons_scanner_right_on.png b/mesecons_scanner/textures/mesecons_scanner_right_on.png new file mode 100644 index 0000000000000000000000000000000000000000..8604893ed791ec71fc32b7ef5d9ffda663ac2e4f GIT binary patch literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`J)SO(Ar`0K_HX2EHQ;fXKlg;L zv)jv=3|eI=Qx%f`Kk61ab0GW8=91;cH8nLd$0vTRy|Yc%l|@j|xUf8HZE>2K(xKY> zGbDfUt=M|$*GY-yYyMuETk00A+EOPZ7`)s16W@*RwPpq7AyYdXT%O4Z?yx?+N#XUb wXUTd?C(N87namUNpH+VH%);2~HLMTV)24dMAIR>m1iFjC)78&qol`;+0IP#eYybcN literal 0 HcmV?d00001 diff --git a/mesecons_scanner/textures/mesecons_scanner_top_off.png b/mesecons_scanner/textures/mesecons_scanner_top_off.png new file mode 100644 index 0000000000000000000000000000000000000000..d4347614c7de24d1769db0c31b44c18357e6e15d GIT binary patch literal 462 zcmV;<0WtoGP)D64ii(Pj zjTMfL43d#AlamIMlQ@->H4^giY9$VY)y2jb6bD_keT;(CF1+CLUvSboQ1fg%eV=L^r9l zqIi*O^{}nc9!W3QdA?5?mSX=d`uX?!zC5Dn?XM8!?9qf)J{+)Hh(Zpljh2P`ij9x?g>3jhEB07*qoM6N<$ Ef)mlf-~a#s literal 0 HcmV?d00001 diff --git a/mesecons_scanner/textures/mesecons_scanner_top_on.png b/mesecons_scanner/textures/mesecons_scanner_top_on.png new file mode 100644 index 0000000000000000000000000000000000000000..ee366bdc61037bf403d7a64f4a1599fbb337d539 GIT binary patch literal 519 zcmV+i0{H!jP)jhL8? zn3{)~nU9&7lA4-=nwpQBn}C~}jGLU0oScrGosXTJl%Af9pP+)EppT@agQTR6rKOCf zr-iGnMz^;ixVR#`yd%TKHO9sz#>Ya($0W$eBgn`k%F9X0%T&wDYs}0f%*|2E&O6P` zOwG z;^bHA>{aUQTKoHt0KudF00024Nkl