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 | 37 +++++++++++++++++++++++++++++++++++++ 1 files changed, 37 insertions(+), 0 deletions(-) diff --git a/technic/legacy.lua b/technic/legacy.lua index 6a080e1..14453eb 100644 --- a/technic/legacy.lua +++ b/technic/legacy.lua @@ -39,3 +39,40 @@ 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