From b79ec7db1fb6e270163f1fd7df33ed6cb27b61bd Mon Sep 17 00:00:00 2001 From: NullBite Date: Fri, 23 Jun 2023 01:08:12 -0400 Subject: [PATCH] UVManager: several changes - new doesn't use self - better type checking for getUV - make parameters for .new optional --- UVManager.lua | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/UVManager.lua b/UVManager.lua index 0c8c7a6..69581fd 100644 --- a/UVManager.lua +++ b/UVManager.lua @@ -10,11 +10,11 @@ UVManager = { } mt.__index=UVManager --- @return UVManager ---- @param step Vector2 A vector representing the distance between UVs ---- @param offset Vector2 A vector represnting the starting point for UVs, or nil ---- @param positions table A dictionary of names and offset vectors ---- @param part ModelPart Model part to manage -function UVManager.new(self, step, offset, positions, part) +--- @param step? Vector2 A vector representing the distance between UVs +--- @param offset? Vector2 A vector represnting the starting point for UVs, or nil +--- @param positions? table A dictionary of names and offset vectors +--- @param part? ModelPart Model part to manage +function UVManager.new(step, offset, positions, part) local t={} if step ~= nil then t.step=step end if offset ~= nil then t.offset=offset end @@ -34,15 +34,20 @@ function UVManager.setPart(self, part) self.dimensions=part:getTextureSize() end + +---Get real UV from vec(x, y) or string representing preset +---@param input Vector2|string UV to get function UVManager.getUV(self, input) local vect={} local stp=self.step local offset=self.offset + assert(type(input)=="string" or type(input) == "Vector2") if type(input) == "string" then if self.positions[input] == nil then return nil end vect=self.positions[input] - else - vect=vectors.of(input) + elseif type(input) == "Vector2" then + -- vect=vectors.of(input) + vect=input end local u=offset.x+(vect.x*stp.x) local v=offset.y+(vect.y*stp.y)