From 6731db14e580ddccace186f5a8ac03dad0661e0c Mon Sep 17 00:00:00 2001 From: Gábriel <38207624+gabriel1379@users.noreply.github.com> Date: Sun, 07 Jul 2024 18:53:15 +0200 Subject: [PATCH] Add compressor recipes for nether racks (#644) --- technic/legacy.lua | 46 +++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 43 insertions(+), 3 deletions(-) diff --git a/technic/legacy.lua b/technic/legacy.lua index 8360a71..14453eb 100644 --- a/technic/legacy.lua +++ b/technic/legacy.lua @@ -22,9 +22,6 @@ ["technic:compressor"] = "technic:lv_compressor", ["technic:compressor_active"] = "technic:lv_compressor_active", ["technic:hv_battery_box"] = "technic:hv_battery_box0", - ["technic:hv_cable"] = "technic:hv_cable0", - ["technic:lv_cable"] = "technic:lv_cable0", - ["technic:mv_cable"] = "technic:mv_cable0", ["technic:mv_battery_box"] = "technic:mv_battery_box0", ["technic:generator"] = "technic:lv_generator", ["technic:generator_active"] = "technic:lv_generator_active", @@ -36,3 +33,46 @@ minetest.register_alias(old, new) end +for i = 0, 64 do + minetest.register_alias("technic:hv_cable"..i, "technic:hv_cable") + minetest.register_alias("technic:mv_cable"..i, "technic:mv_cable") + minetest.register_alias("technic:lv_cable"..i, "technic:lv_cable") +end + +-- Item meta + +-- Meta keys that have changed +technic.legacy_meta_keys = { + ["charge"] = "technic:charge", +} + +-- Converts legacy itemstack metadata string to itemstack meta and returns the ItemStackMetaRef +function technic.get_stack_meta(itemstack) + local meta = itemstack:get_meta() + local legacy_string = meta:get("") -- Get deprecated metadata + if legacy_string then + local legacy_table = minetest.deserialize(legacy_string) + if legacy_table then + local table = meta:to_table() + for k, v in pairs(legacy_table) do + table.fields[technic.legacy_meta_keys[k] or k] = v + end + meta:from_table(table) + end + meta:set_string("", "") -- Remove deprecated metadata + end + return meta +end + +-- Same as technic.get_stack_meta for cans. +-- (Cans didn't store a serialized table in the legacy metadata string, but just a number.) +function technic.get_stack_meta_cans(itemstack) + local meta = itemstack:get_meta() + local legacy_string = meta:get("") -- Get deprecated metadata + if legacy_string then + meta:set_string("can_level", legacy_string) + meta:set_string("", "") -- Remove deprecated metadata + return meta + end + return meta +end -- Gitblit v1.8.0