From 78f9fe2ef0556ece1192beff63ae1e26256cb61c Mon Sep 17 00:00:00 2001 From: loosewheel <76670709+loosewheel@users.noreply.github.com> Date: Tue, 8 Mar 2022 20:07:00 +1000 Subject: [PATCH] Add files via upload --- breaker.lua | 5 +- camera.lua | 7 +- cannon.lua | 26 ++----- change.log | 6 ++ collector.lua | 1 - conduit.lua | 4 +- crafting.lua | 1 - deployer.lua | 5 +- detector.lua | 170 ++++++++++++++++++++++++++++++++-------------- digiswitch.lua | 143 ++++++++++++++++++++++++++++++-------- dispenser.lua | 4 +- dropper.lua | 1 - dummy_player.lua | 17 +++-- explode.lua | 3 - fan.lua | 2 - force_field.lua | 2 - hologram.lua | 7 +- hopper.lua | 4 +- init.lua | 4 +- movefloor.lua | 6 +- pistons.lua | 4 +- player_button.lua | 7 +- puncher.lua | 56 +++++---------- readme.txt | 2 +- siren.lua | 117 +++++++++++-------------------- storage.lua | 10 +-- utils.lua | 2 +- 27 files changed, 335 insertions(+), 281 deletions(-) diff --git a/breaker.lua b/breaker.lua index bf17152..bbb5a04 100644 --- a/breaker.lua +++ b/breaker.lua @@ -12,7 +12,7 @@ local break_interval = 1.0 local function get_breaker_side (pos, param2, side) - local base = nil + local base if side == "left" then base = { x = -1, y = pos.y, z = 0 } @@ -138,7 +138,7 @@ local function can_break_node (pos, breakpos) if node_def then -- try tool first local tool = get_tool (pos) - local dig_params = nil + local dig_params if tool then local tool_def = minetest.registered_items[tool:get_name ()] @@ -516,7 +516,6 @@ local function on_blast (pos, intensity) local stack = ItemStack (items[1]) if stack then - preserve_metadata (pos, node, meta, { stack }) utils.item_drop (stack, nil, pos) minetest.remove_node (pos) end diff --git a/camera.lua b/camera.lua index 19cd977..1fe7eed 100644 --- a/camera.lua +++ b/camera.lua @@ -121,7 +121,7 @@ local function camera_scan (pos, resolution, distance) local horz = (x - (resolution / 2)) * scale * view local vert = (y - (resolution / 2)) * scale * view - local tpos = nil + local tpos if dir.x ~= 0 then tpos = vector.round ({ x = (dist * dir.x) + pos.x, y = pos.y - vert, z = horz + pos.z }) else @@ -146,9 +146,9 @@ local function camera_scan (pos, resolution, distance) last_color = string.format ("0000%02X", color) image[y][x] = last_color else - local node = utils.get_far_node (tpos) + local tnode = utils.get_far_node (tpos) - if node and node.name ~= "air" then + if tnode and tnode.name ~= "air" then local color = (((distance - dist) / distance) * 98) + 30 last_color = string.format ("%02X%02X%02X", color, color, color) @@ -293,7 +293,6 @@ local function on_blast (pos, intensity) local stack = ItemStack (items[1]) if stack then - preserve_metadata (pos, node, meta, { stack }) utils.item_drop (stack, nil, pos) minetest.remove_node (pos) end diff --git a/cannon.lua b/cannon.lua index 0bdd509..cbc1594 100644 --- a/cannon.lua +++ b/cannon.lua @@ -29,18 +29,6 @@ end -local function get_barrel_pos (pos) - local barrel = get_cannon_barrel (pos) - - if barrel then - return barrel:get_pos () - end - - return nil -end - - - local function get_barrel_angle (pos) local node = minetest.get_node_or_nil (pos) local barrel = get_cannon_barrel (pos) @@ -181,11 +169,7 @@ end local function aim_barrel_delayed (pos, aimpos) - local x = tonumber (aimpos.x) or 0 - local y = tonumber (aimpos.y) or 0 - local z = tonumber (aimpos.z) or 0 - - if z < 1 then + if (tonumber (aimpos.z) or 0) < 1 then return end @@ -230,7 +214,8 @@ local function fire_cannon (pos) if ammo_pos and ammo_angle then local dir = vector.rotate ({ x = 0, y = 0, z = -1 }, ammo_angle) local owner = meta:get_string ("owner") - local obj, cancel = nil, false + local obj = nil + local cancel local spawn_pos = { x = ammo_pos.x + dir.x, y = ammo_pos.y + dir.y, z = ammo_pos.z + dir.z } @@ -464,7 +449,7 @@ local function on_place (itemstack, placer, pointed_thing) minetest.set_node (pos, { name = "lwcomponents:cannon", param1 = 0, param2 = param2 }) after_place_node (pos, placer, itemstack, pointed_thing) - if not utils.is_creative (player) then + if not utils.is_creative (placer) then itemstack:set_count (itemstack:get_count () - 1) end end @@ -499,7 +484,7 @@ local function on_place_locked (itemstack, placer, pointed_thing) minetest.set_node (pos, { name = "lwcomponents:cannon_locked", param1 = 0, param2 = param2 }) after_place_node_locked (pos, placer, itemstack, pointed_thing) - if not utils.is_creative (player) then + if not utils.is_creative (placer) then itemstack:set_count (itemstack:get_count () - 1) end end @@ -621,7 +606,6 @@ local function on_blast (pos, intensity) local stack = ItemStack (items[1]) if stack then - preserve_metadata (pos, node, meta, { stack }) utils.item_drop (stack, nil, pos) on_destruct (pos) minetest.remove_node (pos) diff --git a/change.log b/change.log index 19d3273..252a9b2 100644 --- a/change.log +++ b/change.log @@ -161,3 +161,9 @@ v0.1.26 * Added destroyer. * Cleaned up hopper code. * Fixed recipe for solid conductor blocks. + + +v0.1.27 +* Bug fixes and code cleanup. +* Fixed receptor state in detector. +* Improved receptor state in digiswitch. diff --git a/collector.lua b/collector.lua index 6454cad..0c5d755 100644 --- a/collector.lua +++ b/collector.lua @@ -316,7 +316,6 @@ local function on_blast (pos, intensity) local stack = ItemStack (items[1]) if stack then - preserve_metadata (pos, node, meta, { stack }) utils.item_drop (stack, nil, pos) on_destruct (pos) minetest.remove_node (pos) diff --git a/conduit.lua b/conduit.lua index 06cdf72..6a8cc6d 100644 --- a/conduit.lua +++ b/conduit.lua @@ -300,7 +300,6 @@ local function send_to_target (pos, target, slot) local stack = inv:get_stack ("main", slot) if stack and not stack:is_empty () then - local name = stack:get_name () local item = ItemStack (stack) target = (target and tostring (target)) or @@ -447,7 +446,7 @@ local function send_inventory_message (pos) if stack and not stack:is_empty () then local name = stack:get_name () - local description = nil + local description local custom = false local pallet_index = nil local tstack = stack:to_table () @@ -737,7 +736,6 @@ local function on_blast (pos, intensity) local stack = ItemStack (items[1]) if stack then - preserve_metadata (pos, node, meta, { stack }) utils.item_drop (stack, nil, pos) on_destruct (pos) minetest.remove_node (pos) diff --git a/crafting.lua b/crafting.lua index 5720e5b..d7195a1 100644 --- a/crafting.lua +++ b/crafting.lua @@ -1,5 +1,4 @@ local utils = ... -local S = utils.S diff --git a/deployer.lua b/deployer.lua index 30785eb..9b41cba 100644 --- a/deployer.lua +++ b/deployer.lua @@ -145,7 +145,7 @@ local function place_node (item, pos) if not result then if utils.settings.alert_handler_errors then - minetest.log ("error", "after_place_node handler for "..nodename.." crashed - "..msg) + minetest.log ("error", "after_place_node handler for "..stack:get_name ().." crashed - "..msg) end end end @@ -262,7 +262,7 @@ end -local function deployer_on (pos, node, slot, range) +local function deployer_on (pos, _node, slot, range) local node = minetest.get_node (pos) range = tonumber (range) or 1 @@ -428,7 +428,6 @@ local function on_blast (pos, intensity) local stack = ItemStack (items[1]) if stack then - preserve_metadata (pos, node, meta, { stack }) utils.item_drop (stack, nil, pos) minetest.remove_node (pos) end diff --git a/detector.lua b/detector.lua index 372d376..59c554c 100644 --- a/detector.lua +++ b/detector.lua @@ -21,7 +21,12 @@ local function mesecons_on (pos) local node = utils.get_far_node (pos) if node then - node.param1 = 1 + if node.name == "lwcomponents:detector_locked_on" then + node.name = "lwcomponents:detector_locked_on_on" + elseif node.name == "lwcomponents:detector_on" then + node.name = "lwcomponents:detector_on_on" + end + minetest.swap_node (pos, node) end end @@ -40,7 +45,12 @@ local function mesecons_off (pos) local node = utils.get_far_node (pos) if node then - node.param1 = 0 + if node.name == "lwcomponents:detector_locked_on_on" then + node.name = "lwcomponents:detector_locked_on" + elseif node.name == "lwcomponents:detector_on_on" then + node.name = "lwcomponents:detector_on" + end + minetest.swap_node (pos, node) end end @@ -145,7 +155,7 @@ local function get_entity_height (objref) local entity = objref:get_luaentity () if entity and entity.name then - def = minetest.registered_entities[entity.name] + local def = minetest.registered_entities[entity.name] if def and type (def.collisionbox) == "table" and type (def.collisionbox[5]) == "number" then @@ -343,30 +353,21 @@ end local function start_detector (pos) local node = minetest.get_node (pos) - local meta = minetest.get_meta (pos) - if node and meta then + if node then if node.name == "lwcomponents:detector" then - local meta = minetest.get_meta (pos) + node.name = "lwcomponents:detector_on" - if meta then - node.name = "lwcomponents:detector_on" - - minetest.swap_node (pos, node) - minetest.get_node_timer (pos):start (detect_interval) - update_form_spec (pos) - end + minetest.swap_node (pos, node) + minetest.get_node_timer (pos):start (detect_interval) + update_form_spec (pos) elseif node.name == "lwcomponents:detector_locked" then - local meta = minetest.get_meta (pos) + node.name = "lwcomponents:detector_locked_on" - if meta then - node.name = "lwcomponents:detector_locked_on" - - minetest.swap_node (pos, node) - minetest.get_node_timer (pos):start (detect_interval) - update_form_spec (pos) - end + minetest.swap_node (pos, node) + minetest.get_node_timer (pos):start (detect_interval) + update_form_spec (pos) end end @@ -376,32 +377,25 @@ end local function stop_detector (pos) local node = minetest.get_node (pos) - local meta = minetest.get_meta (pos) - if node and meta then - if node.name == "lwcomponents:detector_on" then - local meta = minetest.get_meta (pos) + if node then + if node.name == "lwcomponents:detector_on" or + node.name == "lwcomponents:detector_on_on" then + node.name = "lwcomponents:detector" - if meta then - node.name = "lwcomponents:detector" + minetest.swap_node (pos, node) + minetest.get_node_timer (pos):stop () + mesecons_off (pos) + update_form_spec (pos) - minetest.swap_node (pos, node) - minetest.get_node_timer (pos):stop () - mesecons_off (pos) - update_form_spec (pos) - end + elseif node.name == "lwcomponents:detector_locked_on" or + node.name == "lwcomponents:detector_locked_on_on" then + node.name = "lwcomponents:detector_locked" - elseif node.name == "lwcomponents:detector_locked_on" then - local meta = minetest.get_meta (pos) - - if meta then - node.name = "lwcomponents:detector_locked" - - minetest.swap_node (pos, node) - minetest.get_node_timer (pos):stop () - mesecons_off (pos) - update_form_spec (pos) - end + minetest.swap_node (pos, node) + minetest.get_node_timer (pos):stop () + mesecons_off (pos) + update_form_spec (pos) end end @@ -565,7 +559,6 @@ local function on_blast (pos, intensity) local stack = ItemStack (items[1]) if stack then - preserve_metadata (pos, node, meta, { stack }) utils.item_drop (stack, nil, pos) on_destruct (pos) minetest.remove_node (pos) @@ -698,16 +691,31 @@ end -local function mesecon_support () +local function mesecon_support_on () if utils.mesecon_supported then return { receptor = { state = utils.mesecon_state_on, - rules = function (node) - return (node.param1 == 0 and { }) or utils.mesecon_default_rules - end + rules = utils.mesecon_default_rules + } + } + end + + return nil +end + + + +local function mesecon_support_off () + if utils.mesecon_supported then + return + { + receptor = + { + state = utils.mesecon_state_off, + rules = utils.mesecon_default_rules } } end @@ -732,7 +740,7 @@ minetest.register_node("lwcomponents:detector", { drop = "lwcomponents:detector", _digistuff_channelcopier_fieldname = "channel", - mesecons = mesecon_support (), + mesecons = mesecon_support_off (), digiline = digilines_support (), on_destruct = on_destruct, @@ -761,7 +769,7 @@ minetest.register_node("lwcomponents:detector_locked", { drop = "lwcomponents:detector_locked", _digistuff_channelcopier_fieldname = "channel", - mesecons = mesecon_support (), + mesecons = mesecon_support_off (), digiline = digilines_support (), on_destruct = on_destruct, @@ -790,7 +798,7 @@ minetest.register_node("lwcomponents:detector_on", { drop = "lwcomponents:detector", _digistuff_channelcopier_fieldname = "channel", - mesecons = mesecon_support (), + mesecons = mesecon_support_off (), digiline = digilines_support (), on_destruct = on_destruct, @@ -819,7 +827,65 @@ minetest.register_node("lwcomponents:detector_locked_on", { drop = "lwcomponents:detector_locked", _digistuff_channelcopier_fieldname = "channel", - mesecons = mesecon_support (), + mesecons = mesecon_support_off (), + digiline = digilines_support (), + + on_destruct = on_destruct, + on_receive_fields = on_receive_fields, + can_dig = can_dig, + after_place_node = after_place_node_locked, + on_blast = on_blast, + on_timer = on_timer, + on_rightclick = on_rightclick +}) + + + +minetest.register_node("lwcomponents:detector_on_on", { + description = S("Detector"), + tiles = { "lwdetector_face_on.png", "lwdetector_face_on.png", "lwdetector.png", + "lwdetector.png", "lwdetector.png", "lwdetector_face_on.png"}, + is_ground_content = false, + groups = { cracky = 3, not_in_creative_inventory = 1 }, + sounds = default.node_sound_stone_defaults (), + paramtype = "none", + param1 = 0, + paramtype2 = "facedir", + param2 = 1, + floodable = false, + drop = "lwcomponents:detector", + _digistuff_channelcopier_fieldname = "channel", + + mesecons = mesecon_support_on (), + digiline = digilines_support (), + + on_destruct = on_destruct, + on_receive_fields = on_receive_fields, + can_dig = can_dig, + after_place_node = after_place_node, + on_blast = on_blast, + on_timer = on_timer, + on_rightclick = on_rightclick +}) + + + +minetest.register_node("lwcomponents:detector_locked_on_on", { + description = S("Detector (locked)"), + tiles = { "lwdetector_face_on.png", "lwdetector_face_on.png", "lwdetector.png", + "lwdetector.png", "lwdetector.png", "lwdetector_face_on.png"}, + is_ground_content = false, + groups = { cracky = 3, not_in_creative_inventory = 1 }, + sounds = default.node_sound_stone_defaults (), + paramtype = "none", + param1 = 0, + paramtype2 = "facedir", + param2 = 1, + floodable = false, + drop = "lwcomponents:detector_locked", + _digistuff_channelcopier_fieldname = "channel", + + mesecons = mesecon_support_on (), digiline = digilines_support (), on_destruct = on_destruct, diff --git a/digiswitch.lua b/digiswitch.lua index 03c05e3..c93919d 100644 --- a/digiswitch.lua +++ b/digiswitch.lua @@ -8,8 +8,6 @@ if utils.digilines_supported and utils.mesecon_supported then local function get_mesecon_rule_for_side (side) - local base = nil - if side == "white" then return { { x = 0, y = 1, z = 0 } } elseif side == "black" then @@ -108,12 +106,59 @@ end +local function get_powered_rules (node) + local rules = { } + + if is_side_on (node.param1, "switch") then + rules = table.copy (utils.mesecon_default_rules) + + if is_side_on (node.param1, "white") then + rules[#rules + 1] = get_mesecon_rule_for_side ("white")[1] + end + + if is_side_on (node.param1, "black") then + rules[#rules + 1] = get_mesecon_rule_for_side ("black")[1] + end + else + local sides = + { + "white", + "black", + "red", + "green", + "blue", + "yellow", + } + + for _, side in ipairs (sides) do + if is_side_on (node.param1, side) then + rules[#rules + 1] = get_mesecon_rule_for_side (side)[1] + end + end + end + + return rules +end + + + +local function get_node_name (node) + if node.param1 ~= 0 then + return "lwcomponents:digiswitch_on" + end + + return "lwcomponents:digiswitch" +end + + + local function switch_on (pos, side) utils.mesecon_receptor_on (pos, get_mesecon_rule_for_side (side)) local node = utils.get_far_node (pos) if node then node.param1 = set_side_bit (node.param1, side, true) + node.name = get_node_name (node) minetest.swap_node (pos, node) end end @@ -126,6 +171,7 @@ local function switch_off (pos, side) local node = utils.get_far_node (pos) if node then node.param1 = set_side_bit (node.param1, side, false) + node.name = get_node_name (node) minetest.swap_node (pos, node) end end @@ -188,36 +234,41 @@ end local function mesecon_support () + return + { + receptor = + { + state = mesecon.state.off, + rules = + { + { x = 0, y = 0, z = -1 }, + { x = 1, y = 0, z = 0 }, + { x = -1, y = 0, z = 0 }, + { x = 0, y = 0, z = 1 }, + { x = 1, y = 1, z = 0 }, + { x = 1, y = -1, z = 0 }, + { x = -1, y = 1, z = 0 }, + { x = -1, y = -1, z = 0 }, + { x = 0, y = 1, z = 1 }, + { x = 0, y = -1, z = 1 }, + { x = 0, y = 1, z = -1 }, + { x = 0, y = -1, z = -1 }, + { x = 0, y = 1, z = 0 }, + { x = 0, y = -1, z = 0 } + } + }, + } +end + + + +local function mesecon_support_on () return { receptor = { state = mesecon.state.on, - - rules = function (node) - if is_side_on (node.param1, "switch") then - return utils.mesecon_default_rules - end - - local r = { } - local sides = - { - "white", - "black", - "red", - "green", - "blue", - "yellow", - } - - for _, side in ipairs (sides) do - if is_side_on (node.param1, side) then - r[#r + 1] = get_mesecon_rule_for_side (side)[1] - end - end - - return r - end + rules = get_powered_rules }, } end @@ -243,7 +294,15 @@ end local function on_destruct (pos) - utils.mesecon_receptor_off (pos, get_mesecon_rule_for_side ()) + local node = utils.get_far_node (pos) + + if node then + local rules = get_powered_rules (node) + + if #rules > 0 then + utils.mesecon_receptor_off (pos, rules) + end + end end @@ -288,4 +347,32 @@ minetest.register_node ("lwcomponents:digiswitch", { +minetest.register_node ("lwcomponents:digiswitch_on", { + description = S("Digilines Switch"), + tiles = { "lwdigiswitch_white.png", "lwdigiswitch_black.png", + "lwdigiswitch_green.png", "lwdigiswitch_red.png", + "lwdigiswitch_yellow.png", "lwdigiswitch_blue.png" }, + sunlight_propagates = false, + drawtype = "normal", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + } + }, + paramtype = "none", + param1 = 0, + groups = { cracky = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory = 1 }, + sounds = default.node_sound_stone_defaults (), + mesecons = mesecon_support_on (), + digiline = digilines_support (), + _digistuff_channelcopier_fieldname = "channel", + + on_construct = on_construct, + on_destruct = on_destruct, + on_receive_fields = on_receive_fields, +}) + + + end -- utils.digilines_supported and utils.mesecon_supported diff --git a/dispenser.lua b/dispenser.lua index cf055ec..dc7ddc1 100644 --- a/dispenser.lua +++ b/dispenser.lua @@ -139,7 +139,8 @@ local function dispense_item (pos, node, slot) item:set_count (1) local spawn_pos = dispense_pos (pos, node) local owner = meta:get_string ("owner") - local obj, cancel = nil, false + local obj = nil + local cancel if utils.settings.spawn_mobs then obj, cancel = utils.spawn_registered (name, @@ -318,7 +319,6 @@ local function on_blast (pos, intensity) local stack = ItemStack (items[1]) if stack then - preserve_metadata (pos, node, meta, { stack }) utils.item_drop (stack, nil, pos) minetest.remove_node (pos) end diff --git a/dropper.lua b/dropper.lua index e628a43..9cbf87b 100644 --- a/dropper.lua +++ b/dropper.lua @@ -254,7 +254,6 @@ local function on_blast (pos, intensity) local stack = ItemStack (items[1]) if stack then - preserve_metadata (pos, node, meta, { stack }) utils.item_drop (stack, nil, pos) minetest.remove_node (pos) end diff --git a/dummy_player.lua b/dummy_player.lua index 2a30631..5d83cee 100644 --- a/dummy_player.lua +++ b/dummy_player.lua @@ -22,8 +22,8 @@ local function get_dummy_player (as_player, name, pos, look_dir, controls, veloc end - object.set_pos = function (self, pos) - obj_pos = vector.new (pos) + object.set_pos = function (self, _pos) + obj_pos = vector.new (_pos) end @@ -37,8 +37,8 @@ local function get_dummy_player (as_player, name, pos, look_dir, controls, veloc end - object.move_to = function (self, pos, continuous) - obj_pos = vector.new (pos) + object.move_to = function (self, _pos, continuous) + obj_pos = vector.new (_pos) end @@ -55,8 +55,8 @@ local function get_dummy_player (as_player, name, pos, look_dir, controls, veloc end - object.set_hp = function (self, hp, reason) - obj_hp = hp + object.set_hp = function (self, _hp, reason) + obj_hp = _hp end @@ -134,8 +134,8 @@ local function get_dummy_player (as_player, name, pos, look_dir, controls, veloc end - object.set_properties = function (self, properties) - obj_properties = table.copy (properties or { }) + object.set_properties = function (self, _properties) + obj_properties = table.copy (_properties or { }) end @@ -237,7 +237,6 @@ local function get_dummy_player (as_player, name, pos, look_dir, controls, veloc object.set_fov = function (self, fov, is_multiplier, transition_time) - obj_breath = value end diff --git a/explode.lua b/explode.lua index e43b908..7ac9729 100644 --- a/explode.lua +++ b/explode.lua @@ -249,9 +249,6 @@ local function explode_entities (pos, radius, damage, drops) if def and def.on_rightclick then def.on_rightclick (obj:get_pos (), ItemStack (), child) - local ent_damage = ((radius - dist) / radius * damage / 2) + (damage / 2) - local reason = { type = "set_hp", from = "lwcomponents" } - child:add_velocity (vel) child:set_hp (child:get_hp () - ent_damage, reason) end diff --git a/fan.lua b/fan.lua index 31729eb..f2563a9 100644 --- a/fan.lua +++ b/fan.lua @@ -45,7 +45,6 @@ end local function blow (pos) - local meta = minetest.get_meta (pos) local node = minetest.get_node (pos) local dir = direction_vector (node) local reach = 5 @@ -211,7 +210,6 @@ local function on_blast (pos, intensity) local stack = ItemStack (items[1]) if stack then - preserve_metadata (pos, node, meta, { stack }) utils.item_drop (stack, nil, pos) minetest.remove_node (pos) end diff --git a/force_field.lua b/force_field.lua index c2e32c6..d58628b 100644 --- a/force_field.lua +++ b/force_field.lua @@ -136,7 +136,6 @@ local function check_fuel (pos, used) end if used > power then - power = 0 meta:set_float ("power", 0) return false @@ -598,7 +597,6 @@ local function on_blast (pos, intensity) local stack = ItemStack (items[1]) if stack then - preserve_metadata (pos, node, meta, { stack }) utils.item_drop (stack, nil, pos) on_destruct (pos) minetest.remove_node (pos) diff --git a/hologram.lua b/hologram.lua index 4619f33..addb11e 100644 --- a/hologram.lua +++ b/hologram.lua @@ -126,14 +126,14 @@ local function draw_map (pos, map) end if draw then - local holonode = hologram_block[line[z]] + local colornode = hologram_block[line[z]] if node then utils.destroy_node (holopos) end - if holonode then - minetest.set_node (holopos, { name = holonode.node }) + if colornode then + minetest.set_node (holopos, { name = colornode.node }) local nodemeta = minetest.get_meta (holopos) @@ -231,7 +231,6 @@ local function on_blast (pos, intensity) local stack = ItemStack (items[1]) if stack then - preserve_metadata (pos, node, meta, { stack }) utils.item_drop (stack, nil, pos) minetest.remove_node (pos) end diff --git a/hopper.lua b/hopper.lua index 91f7662..f822efc 100644 --- a/hopper.lua +++ b/hopper.lua @@ -260,8 +260,8 @@ local function run_hopper_action (pos) if registered_dest_invs then local placer = get_player_object (pos) local src_pos = vector.add (pos, get_input_dir (node)) - local drop = nil - local stack = nil + local drop + local stack local slot = nil local src_inv_name = nil diff --git a/init.lua b/init.lua index 63a2038..f986a8a 100644 --- a/init.lua +++ b/init.lua @@ -1,4 +1,4 @@ -local version = "0.1.26" +local version = "0.1.27" local mod_storage = minetest.get_mod_storage () @@ -17,7 +17,7 @@ local modpath = minetest.get_modpath ("lwcomponents") loadfile (modpath.."/settings.lua") (utils) utils.get_dummy_player = loadfile (modpath.."/dummy_player.lua") () -loadfile (modpath.."/utils.lua") (utils, mod_storage) +loadfile (modpath.."/utils.lua") (utils) loadfile (modpath.."/explode.lua") (utils) loadfile (modpath.."/api.lua") (utils) utils.connections = loadfile (modpath.."/connections.lua") () diff --git a/movefloor.lua b/movefloor.lua index ac96031..6d3e058 100644 --- a/movefloor.lua +++ b/movefloor.lua @@ -237,7 +237,7 @@ local function move_entities (list, move, players) for _, entry in ipairs (list) do if entry.obj then if players or not entry.obj:is_player () then - local pos = nil + local pos if entry.obj:is_player () then pos = vector.add (entry.pos, { x = move.x, y = move.y + 0.1, z = move.z }) @@ -311,7 +311,7 @@ local function move_nodes (list, move) end if list[i].timeout > 0 then - timer = minetest.get_node_timer (pos) + local timer = minetest.get_node_timer (pos) if timer then timer:set (list[i].timeout, list[i].elapsed) @@ -334,7 +334,7 @@ local function move_nodes (list, move) end if list[i].timeout > 0 then - timer = minetest.get_node_timer (pos) + local timer = minetest.get_node_timer (pos) if timer then timer:set (list[i].timeout, list[i].elapsed) diff --git a/pistons.lua b/pistons.lua index 4c19eaa..b228655 100644 --- a/pistons.lua +++ b/pistons.lua @@ -884,7 +884,6 @@ local function on_blast (pos, intensity) local stack = ItemStack (items[1]) if stack then - preserve_metadata (pos, node, meta, { stack }) utils.item_drop (stack, nil, pos) minetest.remove_node (pos) end @@ -1070,7 +1069,7 @@ minetest.register_node("lwcomponents:piston_blank_1", { minetest.register_node("lwcomponents:piston_blank_2", { description = S("Piston blank"), drawtype = "airlike", - paramtype = "none", + paramtype = "light", param1 = 0, paramtype2 = "facedir", param2 = 0, @@ -1092,7 +1091,6 @@ minetest.register_node("lwcomponents:piston_blank_2", { is_ground_content = false, drop = "", groups = { not_in_creative_inventory = 1 }, - paramtype = "light", -- unaffected by explosions on_blast = function() end, }) diff --git a/player_button.lua b/player_button.lua index 1c0718e..6ad3955 100644 --- a/player_button.lua +++ b/player_button.lua @@ -69,7 +69,6 @@ end local function player_button_turnoff (pos) local node = minetest.get_node(pos) - local meta = minetest.get_meta(pos) if node.name == "lwcomponents:player_button_on" then node.name = "lwcomponents:player_button_off" @@ -85,7 +84,7 @@ end minetest.register_node ("lwcomponents:player_button", { - description = "Player Button", + description = S("Player Button"), drawtype = "nodebox", tiles = { "lwplayer_button_side.png", @@ -134,7 +133,7 @@ minetest.register_node ("lwcomponents:player_button", { minetest.register_node ("lwcomponents:player_button_off", { - description = "Player Button", + description = S("Player Button"), drawtype = "nodebox", tiles = { "lwplayer_button_side.png", @@ -184,7 +183,7 @@ minetest.register_node ("lwcomponents:player_button_off", { minetest.register_node ("lwcomponents:player_button_on", { - description = "Player Button", + description = S("Player Button"), drawtype = "nodebox", tiles = { "lwplayer_button_side.png", diff --git a/puncher.lua b/puncher.lua index 0f07aef..10d5bbe 100644 --- a/puncher.lua +++ b/puncher.lua @@ -97,13 +97,8 @@ local function punch (pos) punched = true end - elseif object[i].get_luaentity and object[i]:get_luaentity () and - object[i]:get_luaentity ().name and - object[i]:get_luaentity ().name == "__builtin:item" then - - -- don't punch drops - - elseif object[i].get_pos and object[i]:get_pos () then + elseif not utils.is_drop (object[i]) and object[i].get_pos + and object[i]:get_pos () then -- entity if meta:get_string ("entities") == "true" then @@ -180,28 +175,19 @@ end local function start_puncher (pos) local node = minetest.get_node (pos) - local meta = minetest.get_meta (pos) - if node and meta then + if node then if node.name == "lwcomponents:puncher" then - local meta = minetest.get_meta (pos) + node.name = "lwcomponents:puncher_on" - if meta then - node.name = "lwcomponents:puncher_on" - - minetest.swap_node (pos, node) - update_form_spec (pos) - end + minetest.swap_node (pos, node) + update_form_spec (pos) elseif node.name == "lwcomponents:puncher_locked" then - local meta = minetest.get_meta (pos) + node.name = "lwcomponents:puncher_locked_on" - if meta then - node.name = "lwcomponents:puncher_locked_on" - - minetest.swap_node (pos, node) - update_form_spec (pos) - end + minetest.swap_node (pos, node) + update_form_spec (pos) end end @@ -211,28 +197,19 @@ end local function stop_puncher (pos) local node = minetest.get_node (pos) - local meta = minetest.get_meta (pos) - if node and meta then + if node then if node.name == "lwcomponents:puncher_on" then - local meta = minetest.get_meta (pos) + node.name = "lwcomponents:puncher" - if meta then - node.name = "lwcomponents:puncher" - - minetest.swap_node (pos, node) - update_form_spec (pos) - end + minetest.swap_node (pos, node) + update_form_spec (pos) elseif node.name == "lwcomponents:puncher_locked_on" then - local meta = minetest.get_meta (pos) + node.name = "lwcomponents:puncher_locked" - if meta then - node.name = "lwcomponents:puncher_locked" - - minetest.swap_node (pos, node) - update_form_spec (pos) - end + minetest.swap_node (pos, node) + update_form_spec (pos) end end @@ -365,7 +342,6 @@ local function on_blast (pos, intensity) local stack = ItemStack (items[1]) if stack then - preserve_metadata (pos, node, meta, { stack }) utils.item_drop (stack, nil, pos) minetest.remove_node (pos) end diff --git a/readme.txt b/readme.txt index c0bdea7..6f659e3 100644 --- a/readme.txt +++ b/readme.txt @@ -13,7 +13,7 @@ CC BY-SA 3.0 Version ======= -0.1.26 +0.1.27 Minetest Version diff --git a/siren.lua b/siren.lua index 3bb2058..4169f5d 100644 --- a/siren.lua +++ b/siren.lua @@ -103,30 +103,21 @@ end local function start_siren (pos) local node = minetest.get_node (pos) - local meta = minetest.get_meta (pos) - if node and meta then + if node then if node.name == "lwcomponents:siren" then - local meta = minetest.get_meta (pos) + node.name = "lwcomponents:siren_on" - if meta then - node.name = "lwcomponents:siren_on" - - stop_sound (pos) - minetest.swap_node (pos, node) - update_form_spec (pos) - end + stop_sound (pos) + minetest.swap_node (pos, node) + update_form_spec (pos) elseif node.name == "lwcomponents:siren_locked" then - local meta = minetest.get_meta (pos) + node.name = "lwcomponents:siren_locked_on" - if meta then - node.name = "lwcomponents:siren_locked_on" - - stop_sound (pos) - minetest.swap_node (pos, node) - update_form_spec (pos) - end + stop_sound (pos) + minetest.swap_node (pos, node) + update_form_spec (pos) end end @@ -136,34 +127,25 @@ end local function stop_siren (pos) local node = minetest.get_node (pos) - local meta = minetest.get_meta (pos) - if node and meta then + if node then if node.name == "lwcomponents:siren_on" or - node.name == "lwcomponents:siren_alarm" then - local meta = minetest.get_meta (pos) + node.name == "lwcomponents:siren_alarm" then + node.name = "lwcomponents:siren" - if meta then - node.name = "lwcomponents:siren" - - minetest.get_node_timer (pos):stop () - stop_sound (pos) - minetest.swap_node (pos, node) - update_form_spec (pos) - end + minetest.get_node_timer (pos):stop () + stop_sound (pos) + minetest.swap_node (pos, node) + update_form_spec (pos) elseif node.name == "lwcomponents:siren_locked_on" or - node.name == "lwcomponents:siren_locked_alarm" then - local meta = minetest.get_meta (pos) + node.name == "lwcomponents:siren_locked_alarm" then + node.name = "lwcomponents:siren_locked" - if meta then - node.name = "lwcomponents:siren_locked" - - minetest.get_node_timer (pos):stop () - stop_sound (pos) - minetest.swap_node (pos, node) - update_form_spec (pos) - end + minetest.get_node_timer (pos):stop () + stop_sound (pos) + minetest.swap_node (pos, node) + update_form_spec (pos) end end @@ -173,30 +155,21 @@ end local function start_alarm (pos) local node = minetest.get_node (pos) - local meta = minetest.get_meta (pos) - if node and meta then + if node then if node.name == "lwcomponents:siren_on" then - local meta = minetest.get_meta (pos) + node.name = "lwcomponents:siren_alarm" - if meta then - node.name = "lwcomponents:siren_alarm" - - minetest.get_node_timer (pos):start (sound_interval) - start_sound (pos) - minetest.swap_node (pos, node) - end + minetest.get_node_timer (pos):start (sound_interval) + start_sound (pos) + minetest.swap_node (pos, node) elseif node.name == "lwcomponents:siren_locked_on" then - local meta = minetest.get_meta (pos) + node.name = "lwcomponents:siren_locked_alarm" - if meta then - node.name = "lwcomponents:siren_locked_alarm" - - minetest.get_node_timer (pos):start (sound_interval) - start_sound (pos) - minetest.swap_node (pos, node) - end + minetest.get_node_timer (pos):start (sound_interval) + start_sound (pos) + minetest.swap_node (pos, node) end end @@ -206,30 +179,21 @@ end local function stop_alarm (pos) local node = minetest.get_node (pos) - local meta = minetest.get_meta (pos) - if node and meta then + if node then if node.name == "lwcomponents:siren_alarm" then - local meta = minetest.get_meta (pos) + node.name = "lwcomponents:siren_on" - if meta then - node.name = "lwcomponents:siren_on" - - minetest.get_node_timer (pos):stop () - stop_sound (pos) - minetest.swap_node (pos, node) - end + minetest.get_node_timer (pos):stop () + stop_sound (pos) + minetest.swap_node (pos, node) elseif node.name == "lwcomponents:siren_locked_alarm" then - local meta = minetest.get_meta (pos) + node.name = "lwcomponents:siren_locked_on" - if meta then - node.name = "lwcomponents:siren_locked_on" - - minetest.get_node_timer (pos):stop () - stop_sound (pos) - minetest.swap_node (pos, node) - end + minetest.get_node_timer (pos):stop () + stop_sound (pos) + minetest.swap_node (pos, node) end end @@ -365,7 +329,6 @@ local function on_blast (pos, intensity) local stack = ItemStack (items[1]) if stack then - preserve_metadata (pos, node, meta, { stack }) utils.item_drop (stack, nil, pos) on_destruct (pos) minetest.remove_node (pos) diff --git a/storage.lua b/storage.lua index 15ef75c..b93afb8 100644 --- a/storage.lua +++ b/storage.lua @@ -87,7 +87,6 @@ local function unit_on_blast (pos, intensity) end end - on_destruct (pos) minetest.remove_node (pos) else -- intensity < 1.0 @@ -113,9 +112,7 @@ local function unit_on_blast (pos, intensity) local stack = ItemStack (items[1]) if stack then - preserve_metadata (pos, node, meta, { stack }) utils.item_drop (stack, nil, pos) - on_destruct (pos) minetest.remove_node (pos) end end @@ -312,7 +309,7 @@ local function get_stock_list (pos) for k, v in pairs (inv_list) do local stack = ItemStack (k) local name = stack:get_name () - local description = nil + local description local custom = false local pallet_index = nil local tstack = stack:to_table () @@ -704,8 +701,6 @@ local function get_formspec_list (pos) for k, v in pairs (inv_list) do local description = k local stack = ItemStack (k) - local smeta = stack:get_meta () - if stack:get_short_description () ~= "" then description = stack:get_short_description () @@ -942,7 +937,6 @@ local function indexer_on_blast (pos, intensity) end end - on_destruct (pos) minetest.remove_node (pos) else -- intensity < 1.0 @@ -978,9 +972,7 @@ local function indexer_on_blast (pos, intensity) local stack = ItemStack (items[1]) if stack then - preserve_metadata (pos, node, meta, { stack }) utils.item_drop (stack, nil, pos) - on_destruct (pos) minetest.remove_node (pos) end end diff --git a/utils.lua b/utils.lua index b834722..621138b 100644 --- a/utils.lua +++ b/utils.lua @@ -1,4 +1,4 @@ -local utils, mod_storage = ... +local utils = ...