From 701240bc3a17a73d73f3a96cd81e559d662ac42c Mon Sep 17 00:00:00 2001 From: Thomas Rudin <thomas@rudin.li> Date: Sun, 09 Dec 2018 16:01:10 +0100 Subject: [PATCH] Quarry: Check for valid facedir to fix server freeze #465 (#466) --- technic/machines/register/generator.lua | 73 ++++++++++++++++++++++-------------- 1 files changed, 44 insertions(+), 29 deletions(-) diff --git a/technic/machines/register/generator.lua b/technic/machines/register/generator.lua index 6251391..87ef6e7 100644 --- a/technic/machines/register/generator.lua +++ b/technic/machines/register/generator.lua @@ -1,6 +1,7 @@ local S = technic.getter local fs_helpers = pipeworks.fs_helpers +local tube_entry = "^pipeworks_tube_connection_metallic.png" local tube = { insert_object = function(pos, node, stack, direction) @@ -19,7 +20,8 @@ connect_sides = {left=1, right=1, back=1, top=1, bottom=1}, } -function technic.register_generator(data) +function technic.register_generator(data) + local tier = data.tier local ltier = string.lower(tier) @@ -33,7 +35,7 @@ for k, v in pairs(groups) do active_groups[k] = v end local generator_formspec = - "invsize[8,9;]".. + "size[8,9;]".. "label[0,0;"..S("Fuel-Fired %s Generator"):format(tier).."]".. "list[current_name;src;3,1;1,1;]".. "image[4,1;1,1;default_furnace_fire_bg.png]".. @@ -86,13 +88,13 @@ if ltier ~= "lv" then form_buttons = fs_helpers.cycling_button( meta, - "image_button[0,4.3;1,0.6", + pipeworks.button_base, "splitstacks", { - {text="", texture="pipeworks_button_off.png", addopts="false;false;pipeworks_button_interm.png"}, - {text="", texture="pipeworks_button_on.png", addopts="false;false;pipeworks_button_interm.png"} + pipeworks.button_off, + pipeworks.button_on } - ).."label[0.9,4.31;Allow splitting incoming stacks from tubes]" + )..pipeworks.button_label end meta:set_string("formspec", "size[8, 9]".. @@ -105,12 +107,20 @@ form_buttons ) end - + + local tentry = tube_entry + if ltier == "lv" then tentry = "" end + minetest.register_node("technic:"..ltier.."_generator", { description = desc, - tiles = {"technic_"..ltier.."_generator_top.png", "technic_machine_bottom.png", - "technic_"..ltier.."_generator_side.png", "technic_"..ltier.."_generator_side.png", - "technic_"..ltier.."_generator_side.png", "technic_"..ltier.."_generator_front.png"}, + tiles = { + "technic_"..ltier.."_generator_top.png"..tentry, + "technic_machine_bottom.png"..tentry, + "technic_"..ltier.."_generator_side.png"..tentry, + "technic_"..ltier.."_generator_side.png"..tentry, + "technic_"..ltier.."_generator_side.png"..tentry, + "technic_"..ltier.."_generator_front.png" + }, paramtype2 = "facedir", groups = groups, connect_sides = {"bottom", "back", "left", "right"}, @@ -128,13 +138,13 @@ if not string.find(node.name, ":lv_") then form_buttons = fs_helpers.cycling_button( meta, - "image_button[0,4.3;1,0.6", + pipeworks.button_base, "splitstacks", { - {text="", texture="pipeworks_button_off.png", addopts="false;false;pipeworks_button_interm.png"}, - {text="", texture="pipeworks_button_on.png", addopts="false;false;pipeworks_button_interm.png"} + pipeworks.button_off, + pipeworks.button_on } - ).."label[0.9,4.31;Allow splitting incoming stacks from tubes]" + )..pipeworks.button_label end meta:set_string("formspec", generator_formspec..form_buttons) local inv = meta:get_inventory() @@ -157,13 +167,13 @@ if not string.find(node.name, ":lv_") then form_buttons = fs_helpers.cycling_button( meta, - "image_button[0,4.3;1,0.6", + pipeworks.button_base, "splitstacks", { - {text="", texture="pipeworks_button_off.png", addopts="false;false;pipeworks_button_interm.png"}, - {text="", texture="pipeworks_button_on.png", addopts="false;false;pipeworks_button_interm.png"} + pipeworks.button_off, + pipeworks.button_on } - ).."label[0.9,4.31;Allow splitting incoming stacks from tubes]" + )..pipeworks.button_label end meta:set_string("formspec", generator_formspec..form_buttons) end, @@ -171,9 +181,14 @@ minetest.register_node("technic:"..ltier.."_generator_active", { description = desc, - tiles = {"technic_"..ltier.."_generator_top.png", "technic_machine_bottom.png", - "technic_"..ltier.."_generator_side.png", "technic_"..ltier.."_generator_side.png", - "technic_"..ltier.."_generator_side.png", "technic_"..ltier.."_generator_front_active.png"}, + tiles = { + "technic_"..ltier.."_generator_top.png"..tube_entry, + "technic_machine_bottom.png"..tube_entry, + "technic_"..ltier.."_generator_side.png"..tube_entry, + "technic_"..ltier.."_generator_side.png"..tube_entry, + "technic_"..ltier.."_generator_side.png"..tube_entry, + "technic_"..ltier.."_generator_front_active.png" + }, paramtype2 = "facedir", groups = active_groups, connect_sides = {"bottom"}, @@ -217,13 +232,13 @@ if not string.find(node.name, ":lv_") then form_buttons = fs_helpers.cycling_button( meta, - "image_button[0,4.3;1,0.6", + pipeworks.button_base, "splitstacks", { - {text="", texture="pipeworks_button_off.png", addopts="false;false;pipeworks_button_interm.png"}, - {text="", texture="pipeworks_button_on.png", addopts="false;false;pipeworks_button_interm.png"} + pipeworks.button_off, + pipeworks.button_on } - ).."label[0.9,4.31;Allow splitting incoming stacks from tubes]" + )..pipeworks.button_label end meta:set_string("formspec", "size[8, 9]".. @@ -246,13 +261,13 @@ if not string.find(node.name, ":lv_") then form_buttons = fs_helpers.cycling_button( meta, - "image_button[0,4.3;1,0.6", + pipeworks.button_base, "splitstacks", { - {text="", texture="pipeworks_button_off.png", addopts="false;false;pipeworks_button_interm.png"}, - {text="", texture="pipeworks_button_on.png", addopts="false;false;pipeworks_button_interm.png"} + pipeworks.button_off, + pipeworks.button_on } - ).."label[0.9,4.31;Allow splitting incoming stacks from tubes]" + )..pipeworks.button_label end local burn_totaltime = meta:get_int("burn_totaltime") or 0 -- Gitblit v1.8.0