From 4775d98fb7e12f7210cf778351767828e551011d Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Thu, 20 Oct 2022 20:06:03 +0200 Subject: [PATCH] Unify and simplify LED/Lamp node definition --- technic/machines/LV/lamp.lua | 71 ++++++++++++++---------------------- technic/machines/LV/led.lua | 71 +++++++++++++++--------------------- 2 files changed, 57 insertions(+), 85 deletions(-) diff --git a/technic/machines/LV/lamp.lua b/technic/machines/LV/lamp.lua index ebeac36..a4605f2 100644 --- a/technic/machines/LV/lamp.lua +++ b/technic/machines/LV/lamp.lua @@ -84,21 +84,12 @@ local function lamp_toggle(pos, node, player) end end -minetest.register_node("technic:lv_lamp", { - description = desc, +local common_fields = { drawtype = "nodebox", node_box = { type = "fixed", fixed = {0.5,0.5,0.5,-0.5,-0.2,-0.5} }, - collision_box = { - type = "fixed", - fixed = {0.5,0.5,0.5,-0.5,-0.2,-0.5} - }, - selection_box = { - type = "fixed", - fixed = {0.5,0.5,0.5,-0.5,-0.2,-0.5} - }, tiles = { "technic_lv_lamp_top.png", "technic_lv_lamp_bottom.png", @@ -107,56 +98,50 @@ minetest.register_node("technic:lv_lamp", { "technic_lv_lamp_side.png", "technic_lv_lamp_side.png" }, - groups = {cracky = 2, technic_machine = 1, technic_lv = 1}, connect_sides = {"front", "back", "left", "right", "top"}, can_dig = technic.machine_can_dig, technic_run = lamp_run, + on_destruct = illuminate, + on_rightclick = lamp_toggle +} + +local ndef + +ndef = { + description = desc, + groups = {cracky = 2, technic_machine = 1, technic_lv = 1}, on_construct = function(pos) local meta = minetest.get_meta(pos) meta:set_string("infotext", desc) meta:set_int("LV_EU_demand", demand) - end, - on_destruct = illuminate, - on_rightclick = lamp_toggle -}) + end +} -minetest.register_node("technic:lv_lamp_active", { +for k, v in pairs(common_fields) do + ndef[k] = v +end + +minetest.register_node("technic:lv_lamp", ndef) + + +ndef = { description = active_desc, - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = {0.5, 0.5, 0.5, -0.5, -0.2, -0.5} - }, - collision_box = { - type = "fixed", - fixed = {0.5, 0.5, 0.5, -0.5, -0.2, -0.5} - }, - selection_box = { - type = "fixed", - fixed = {0.5, 0.5, 0.5, -0.5, -0.2, -0.5} - }, - tiles = { - "technic_lv_lamp_top.png", - "technic_lv_lamp_bottom.png", - "technic_lv_lamp_side.png", - "technic_lv_lamp_side.png", - "technic_lv_lamp_side.png", - "technic_lv_lamp_side.png" - }, paramtype = "light", light_source = 14, drop = "technic:lv_lamp", groups = {cracky = 2, technic_machine = 1, technic_lv = 1, not_in_creative_inventory = 1}, - connect_sides = {"front", "back", "left", "right", "top"}, - can_dig = technic.machine_can_dig, - technic_run = lamp_run, technic_on_disable = function(pos) illuminate(pos, false) technic.swap_node(pos, "technic:lv_lamp") end, - on_destruct = illuminate, - on_rightclick = lamp_toggle, -}) +} + +for k, v in pairs(common_fields) do + ndef[k] = v +end + +minetest.register_node("technic:lv_lamp_active", ndef) + technic.register_machine("LV", "technic:lv_lamp", technic.receiver) technic.register_machine("LV", "technic:lv_lamp_active", technic.receiver) diff --git a/technic/machines/LV/led.lua b/technic/machines/LV/led.lua index 1e8a408..3786ab7 100644 --- a/technic/machines/LV/led.lua +++ b/technic/machines/LV/led.lua @@ -22,21 +22,12 @@ local function led_run(pos, node) end end -minetest.register_node("technic:lv_led", { - description = desc, +local common_fields = { drawtype = "nodebox", node_box = { type = "fixed", fixed = {0.5, 0.5, 0.5, -0.5, 0.3, -0.5} }, - collision_box = { - type = "fixed", - fixed = {0.5, 0.5, 0.5, -0.5, 0.3, -0.5} - }, - selection_box = { - type = "fixed", - fixed = {0.5, 0.5, 0.5, -0.5, 0.3, -0.5} - }, tiles = { "technic_lv_led_top.png", "technic_lv_led.png", @@ -45,55 +36,51 @@ minetest.register_node("technic:lv_led", { "technic_lv_led_side2.png", "technic_lv_led_side2.png", }, - inventory_image = "technic_lv_led_inv.png", - sunlight_propagates = true, - groups = {cracky = 2, technic_machine = 1, technic_lv = 1}, + connect_sides = {"front", "back", "left", "right", "top", "bottom"}, can_dig = technic.machine_can_dig, technic_run = led_run, +} + +local ndef + +ndef = { + description = desc, + inventory_image = "technic_lv_led_inv.png", + sunlight_propagates = true, + groups = {cracky = 2, technic_machine = 1, technic_lv = 1}, + on_construct = function(pos) local meta = minetest.get_meta(pos) meta:set_string("infotext", desc) meta:set_int("LV_EU_demand", demand) end, -}) +} -minetest.register_node("technic:lv_led_active", { +for k, v in pairs(common_fields) do + ndef[k] = v +end + +minetest.register_node("technic:lv_led", ndef) + + +ndef = { description = active_desc, - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = {0.5, 0.5, 0.5, -0.5, 0.3, -0.5} - }, - collision_box = { - type = "fixed", - fixed = {0.5, 0.5, 0.5, -0.5, 0.3, -0.5} - }, - selection_box = { - type = "fixed", - fixed = {0.5, 0.5, 0.5, -0.5, 0.3, -0.5} - }, - tiles = { - "technic_lv_led_top.png", - "technic_lv_led.png", - "technic_lv_led_side.png", - "technic_lv_led_side2.png", - "technic_lv_led_side2.png", - "technic_lv_led_side2.png", - }, - inventory_image = "technic_lv_led_inv.png", paramtype = "light", light_source = 9, drop = "technic:lv_led", - sunlight_propagates = true, groups = {cracky = 2, technic_machine = 1, technic_lv = 1, not_in_creative_inventory = 1}, - connect_sides = {"front", "back", "left", "right", "top", "bottom"}, - can_dig = technic.machine_can_dig, - technic_run = led_run, technic_on_disable = function(pos) technic.swap_node(pos, "technic:lv_led") end, -}) +} + +for k, v in pairs(common_fields) do + ndef[k] = v +end + +minetest.register_node("technic:lv_led_active", ndef) + technic.register_machine("LV", "technic:lv_led", technic.receiver) technic.register_machine("LV", "technic:lv_led_active", technic.receiver)