После того, как я написал про метатаблицы в Lua, захотелось провернуть что-нибудь этакое. Данная библиотека добавляет одну основную функцию, которая возвращается при вызове этой библиотеки с помощью require(module: string). Эта функция возвращает вектор и принимает в качестве аргументов числа, которые соответствуят каждому новому измерению в векторе. Но сначала, разумеется нужно скачать библиотеку. Вы можете сделать это с помощью команды в OpenOS или CraftOS.
pastebin get mdfDvmps /lib/vector.lua
Разумеется в CraftOS нет никакого require(), но вы можете посмотреть эту тему . Хотя также в CraftOS есть своя библиотека с векторами.
Вернёмся к основной функции, если до сих пор не понятно, как она принимает аргументы, я просто запишу вот так: vector(x: number, y: number, z: number, ... ). Как видите у вектора может быть не ограниченное (ограничивается возможностями Lua) количество измерений.
Сам вектор хранит измерения и их значения в себе как в массиве. Каждый вектор хранит количество измерений, которое он обрабатывает в поле n. То-есть, чтобы получить кол-во, обратитесь к этому полю примерно так:
local vector = require "vector"
local a = vector(1, 5, 89, 6)
print(a.n)
--> 4
Все операции с векторами создают новые вектора, а не изменяют старые.
Теперь я опишу все операции с вектором
Методы:
Если хотите увидеть что-нибудь ещё в этой библиотеке, пишите. Постараюсь добавить.