##########################################################################################
## --Bone functions.
##########################################################################################
--redo these functions.
ShowBone = function(self, bone, affectChild)
if not bone then return end
local HiddenBones = self:GetUnitParam('HiddenBones') or {}
if table.find(HiddenBones, bone) and self:IsValidBone(bone) then
table.removeByValue(HiddenBones, bone)
end
self:SetUnitParam('HiddenBones', HiddenBones)
oldUnit.ShowBone(self, bone, affectChild)
end,
ShowAllValidBones = function(self, AffectsChild)
local HiddenBones = self:GetUnitParam('HiddenBones') or {}
end,
HideBone = function(self, bone, affectChild)
if not bone then return end
local HiddenBones = self:GetUnitParam('HiddenBones') or {}
if not table.find(HiddenBones, bone) and self:IsValidBone(bone) then
table.insert(HiddenBones, bone)
end
self:SetUnitParam('HiddenBones', HiddenBones)
oldUnit.HideBone(self, bone, affectChild)
end,
HideAllValidBones = function(self, affectsChild)
local HiddenBones = self:GetUnitParam('HiddenBones') or {}
end,
GetHiddenBones = function(self)
local HiddenBones = self:GetUnitParam('HiddenBones') or {}
return HiddenBones
end,
IsBoneHidden = function(self, bone)
if not bone or not self:IsValidBone(bone) then return end
local HiddenBones = self:GetUnitParam('HiddenBones') or {}
if table.find(HiddenBones, bone) then
return true
else
return false
end
end,
HideHiddenBones = function(self)
local HiddenBones = self:GetUnitParam('HiddenBones') or {}
if table.getn(HiddenBones) > 0 then
for k,v in HiddenBones do
self:HideBone(v, true)
end
end
end,
ShowHiddenBones = function(self)
local HiddenBones = self:GetUnitParam('HiddenBones') or {}
if table.getn(HiddenBones) > 0 then
for k,v in HiddenBones do
self:ShowBone(v, true)
end
end
end,
ShowBoneNames = function(self)
local totalBones = self:GetBoneCount()
for i = 1, totalBones do
if self:GetBoneName(i) then
LOG('Bone #' ..i..' Name --> ' .. repr(self:GetBoneName(i)))
end
end
end,
GetBonesByName = function(self)
local totalBones = self:GetBoneCount()
local Bones = {}
if totalBones > 0 then
for i = 1, totalBones do
if self:GetBoneName(i) then
table.insert(Bones, self:GetBoneName(i))
end
end
end
return Bones
end,