Модуль:Инвентарный слот2/Utils

[создать | история | обновить]Документация
У этого модуля нет документации. Если вы знаете, как использовать этот модуль, пожалуйста, добавьте соответствующую информацию.
-- Модуль для функций, используемых в модуле Инвентарный слот. -- Этим функциям может быть найдено применение и в других модулях. local p = {} --[[ Простая функция для рекурсивного клонирования. Возвращает глубокую копию таблицы origTable. ]] function p.cloneTable( origTable ) local newTable = {} for origKey, origValue in pairs( origTable ) do if type( origValue ) == 'table' then origValue = cloneTable( origValue ) end newTable[origKey] = origValue end return newTable end --[[ Дописывает элементы из последовательности content в последовательность parentTable. Если content — не последовательность, дописывает content в parentTable. ]] function p.mergeList( parentTable, content ) local index = #parentTable + 1 if content[1] then for _, contentValue in ipairs( content ) do parentTable[index] = contentValue index = index + 1 end else -- Add strings or tables to table parentTable[index] = content end end --[[ Берёт:  • строку str;  • паттерн match;  • необязательное значение fallback   и проверяет, соответствует ли начало str паттерну match. Если соответствует, возвращает 2 значения:  1) исходную строку, но без префикса, которому соответствовал паттерн;  2) префикс, соответствующий паттерну (или первую группу захвата, если указана в  паттерне). Если не соответствует, возвращает 2 значения:  1) исходную строку;  2) значение fallback (если указано). ]] function p.removePrefix(str, match, fallback) local _, matchEnd, capture = str:find("^" .. match) if not matchEnd then return str, fallback end return str:sub(matchEnd + 1), capture or str:sub(1, matchEnd) end --[[ Аналогична removePrefix, но удаляет заключительную, а не начальную часть строки. ]] function p.removeSuffix(str, match, fallback) local matchStart, matchEnd, capture = str:find(match .. "$") if not matchStart then return str, fallback end return str:sub(1, matchStart - 1), capture or str:sub(matchStart, matchEnd) end --[[ Аналогична mw.loadData, но если заданного модуля не существует, возвращает false, а не генерирует ошибку. ]] function p.loadMaybeData(moduleName) local success, data = pcall(function() return mw.loadData(moduleName) end) return success and data end return p 
В данной статье используются материалы из статьи «Модуль:Инвентарный слот2/Utils» с вики-сайта Minecraft Wiki, расположенного на Фэндоме, и они распространяются согласно лицензии Creative Commons Attribution-NonCommercial-ShareAlike 3.0. Авторы статьи.