From d623715d94152e38e817555f43c7c6ab2372045c Mon Sep 17 00:00:00 2001 From: Bryce w <55167737+blockhead100@users.noreply.github.com> Date: Thu, 20 Oct 2022 18:28:45 +0200 Subject: [PATCH] Add LV led and lamp --- technic/machines/HV/forcefield.lua | 24 +++++++++++++----------- 1 files changed, 13 insertions(+), 11 deletions(-) diff --git a/technic/machines/HV/forcefield.lua b/technic/machines/HV/forcefield.lua index 230c8b0..5b8ff4f 100644 --- a/technic/machines/HV/forcefield.lua +++ b/technic/machines/HV/forcefield.lua @@ -42,7 +42,7 @@ -- | | -- \___/\___/ -local function update_forcefield(pos, meta, active, first) +local function update_forcefield(pos, meta, active) local shape = meta:get_int("shape") local range = meta:get_int("range") local vm = VoxelManip() @@ -86,11 +86,6 @@ vm:set_data(data) vm:update_liquids() vm:write_to_map() - -- update_map is very slow, but if we don't call it we'll - -- get phantom blocks on the client. - if not active or first then - vm:update_map() - end end local function set_forcefield_formspec(meta) @@ -117,15 +112,24 @@ else formspec = formspec.."button[0,1;5,1;mesecon_mode_0;"..S("Controlled by Mesecon Signal").."]" end + -- TODO: String replacement with %s will stop working with client-side translations if meta:get_int("enabled") == 0 then - formspec = formspec.."button[0,1.75;5,1;enable;"..S("%s Disabled"):format(S("%s Forcefield Emitter"):format("HV")).."]" + formspec = formspec.."button[0,1.75;5,1;enable;".. + S("%s Disabled"):format(S("%s Forcefield Emitter"):format("HV")).."]" else - formspec = formspec.."button[0,1.75;5,1;disable;"..S("%s Enabled"):format(S("%s Forcefield Emitter"):format("HV")).."]" + formspec = formspec.."button[0,1.75;5,1;disable;".. + S("%s Enabled"):format(S("%s Forcefield Emitter"):format("HV")).."]" end meta:set_string("formspec", formspec) end local forcefield_receive_fields = function(pos, formname, fields, sender) + local player_name = sender:get_player_name() + if minetest.is_protected(pos, player_name) then + minetest.chat_send_player(player_name, "You are not allowed to edit this!") + minetest.record_protection_violation(pos, player_name) + return + end local meta = minetest.get_meta(pos) local range = nil if fields.range then @@ -273,13 +277,11 @@ technic.swap_node(pos, "technic:forcefield_emitter_off") end elseif eu_input >= power_requirement then - local first = false if node.name == "technic:forcefield_emitter_off" then - first = true technic.swap_node(pos, "technic:forcefield_emitter_on") meta:set_string("infotext", S("%s Active"):format(machine_name)) end - update_forcefield(pos, meta, true, first) + update_forcefield(pos, meta, true) end end -- Gitblit v1.8.0