maintenance
This commit is contained in:
parent
8c8ceaaf47
commit
d27c1fa39a
23 changed files with 1977 additions and 1564 deletions
84
scripts/libs/SquAPI_modules/taur.lua
Normal file
84
scripts/libs/SquAPI_modules/taur.lua
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
---@meta _
|
||||
local squassets
|
||||
local assetPath = "./SquAssets"
|
||||
if pcall(require, assetPath) then squassets = require(assetPath) end
|
||||
assert(squassets, "§4The taur module requires SquAssets, which was not found!§c")
|
||||
|
||||
|
||||
---@class taur
|
||||
local taur = {}
|
||||
taur.all = {}
|
||||
|
||||
---*CONSTRUCTOR
|
||||
---@param taurBody ModelPart The group of the body that contains all parts of the actual centaur part of the body, pivot should be placed near the connection between body and taurs body.
|
||||
---@param frontLegs? ModelPart The group that contains both front legs.
|
||||
---@param backLegs? ModelPart The group that contains both back legs.
|
||||
---@return SquAPI.Taur
|
||||
function taur:new(taurBody, frontLegs, backLegs)
|
||||
---@class SquAPI.taur
|
||||
local self = {}
|
||||
|
||||
assert(taurBody, "§4Your model path for the body in taurPhysics is incorrect.§c")
|
||||
self.taurBody = taurBody
|
||||
self.frontLegs = frontLegs
|
||||
self.backLegs = backLegs
|
||||
self.taur = squassets.BERP:new(0.01, 0.5)
|
||||
self.target = 0
|
||||
|
||||
self.enabled = true
|
||||
|
||||
self = setmetatable(self, {__index = taur})
|
||||
table.insert(taur.all, self)
|
||||
return self
|
||||
end
|
||||
|
||||
|
||||
--*CONTROL FUNCTIONS
|
||||
|
||||
---taur enable handling
|
||||
function taur:disable() self.enabled = false return self end
|
||||
function taur:enable() self.enabled = true return self end
|
||||
function taur:toggle() self.enabled = not self.enabled return self end
|
||||
|
||||
---@param bool boolean
|
||||
function taur:setEnabled(bool)
|
||||
self.enabled = bool or false
|
||||
return self
|
||||
end
|
||||
|
||||
|
||||
|
||||
--*UPDATE FUNCTIONS
|
||||
|
||||
function taur:tick()
|
||||
if self.enabled then
|
||||
self.target = math.min(math.max(-30, squassets.verticalVel() * 40), 45)
|
||||
end
|
||||
end
|
||||
|
||||
function taur:render(dt, _)
|
||||
if self.enabled then
|
||||
self.taur:berp(self.target, dt / 2)
|
||||
local pose = player:getPose()
|
||||
|
||||
if pose == "FALL_FLYING" or pose == "SWIMMING" or (player:isClimbing() and not player:isOnGround()) or player:riptideSpinning() then
|
||||
self.taurBody:setRot(80, 0, 0)
|
||||
if self.backLegs then
|
||||
self.backLegs:setRot(-50, 0, 0)
|
||||
end
|
||||
if self.frontLegs then
|
||||
self.frontLegs:setRot(-50, 0, 0)
|
||||
end
|
||||
else
|
||||
self.taurBody:setRot(self.taur.pos, 0, 0)
|
||||
if self.backLegs then
|
||||
self.backLegs:setRot(self.taur.pos * 3, 0, 0)
|
||||
end
|
||||
if self.frontLegs then
|
||||
self.frontLegs:setRot(-self.taur.pos * 3, 0, 0)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return taur
|
||||
Loading…
Add table
Add a link
Reference in a new issue