mirror of
https://github.com/Winded/RagdollMover.git
synced 2025-03-04 03:13:36 -05:00
Radial bone options menu now has colored options, things of similar functionality are colored in the same color. Any physics related locks will now make bones appear as locks in adv bone select mode, so it should be easier to find them. Corrected localization
This commit is contained in:
parent
5ec7072d56
commit
874edb41a6
@ -1048,6 +1048,9 @@ local RGM_CIRCLE = {
|
||||
{ x = -4, y = 0 }
|
||||
}
|
||||
|
||||
local LockGo = Material("icon16/lock_go.png", "alphatest")
|
||||
local Lock = Material("icon16/lock.png", "alphatest")
|
||||
|
||||
local midw, midh = ScrW()/2, ScrH()/2
|
||||
local divide540 = RGM_Constants.FLOAT_1DIVIDE540 -- aggressive microoptimizations
|
||||
|
||||
@ -1114,13 +1117,14 @@ function AdvBoneSelectRender(ent, bonenodes)
|
||||
if nodesExist and (not bonenodes[ent][i]) or false then continue end
|
||||
local pos = ent:GetBonePosition(i)
|
||||
pos = pos:ToScreen()
|
||||
local x, y = pos.x, pos.y
|
||||
|
||||
local dist = math.abs((mx - pos.x)^2 + (my - pos.y)^2)
|
||||
local dist = math.abs((mx - x)^2 + (my - y)^2)
|
||||
|
||||
local circ = table.Copy(RGM_CIRCLE)
|
||||
for k, v in ipairs(circ) do
|
||||
v.x = v.x + pos.x
|
||||
v.y = v.y + pos.y
|
||||
v.x = v.x + x
|
||||
v.y = v.y + y
|
||||
end
|
||||
|
||||
if dist < 576 then -- 24 pixels
|
||||
@ -1136,6 +1140,16 @@ function AdvBoneSelectRender(ent, bonenodes)
|
||||
|
||||
draw.NoTexture()
|
||||
surface.DrawPoly(circ)
|
||||
|
||||
if bonenodes[ent][i].bonelock then
|
||||
surface.SetMaterial(LockGo)
|
||||
surface.SetDrawColor(COLOR_WHITE:Unpack())
|
||||
surface.DrawTexturedRect(x - 12, y - 12, 24, 24)
|
||||
elseif bonenodes[ent][i].poslock or bonenodes[ent][i].anglock then
|
||||
surface.SetMaterial(Lock)
|
||||
surface.SetDrawColor(COLOR_WHITE:Unpack())
|
||||
surface.DrawTexturedRect(x - 12, y - 12, 24, 24)
|
||||
end
|
||||
end
|
||||
|
||||
-- We use the average length of all bone names to ensure some names don't overlap each other
|
||||
@ -1198,36 +1212,44 @@ function AdvBoneSelectPick(ent, bonenodes)
|
||||
end
|
||||
|
||||
local SelectedBone = nil
|
||||
|
||||
local Colors = {
|
||||
Color(255, 140, 105), -- Orange, for Resets
|
||||
Color(100, 255, 255), -- Cyan (Blue is too dark), for Zeroing scale
|
||||
Color(100, 255, 0), -- Green, for Locks
|
||||
Color(255, 255, 255) -- White, for whatever
|
||||
}
|
||||
|
||||
local FeaturesNPhys = {
|
||||
{ 1, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.reset")) }, -- 1
|
||||
{ 5, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.resetchildren")) }, -- 5
|
||||
{ 2, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.resetpos")) }, -- 2
|
||||
{ 6, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.resetposchildren")) }, -- 6
|
||||
{ 3, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.resetrot")) }, -- 3
|
||||
{ 7, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.resetrotchildren")) }, -- 7
|
||||
{ 4, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.resetscale")) }, -- 4
|
||||
{ 8, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.resetscalechildren")) }, -- 8
|
||||
{ 9, (language.GetPhrase("tool.ragdollmover.scalezero") .. " " .. language.GetPhrase("tool.ragdollmover.bone")) }, -- 9
|
||||
{ 10, (language.GetPhrase("tool.ragdollmover.scalezero") .. " " .. language.GetPhrase("tool.ragdollmover.bonechildren")) }, -- 10
|
||||
{ 15, { "#tool.ragdollmover.unlockscale", "#tool.ragdollmover.lockscale" } }, --15
|
||||
{ 17, "#tool.ragdollmover.putgizmopos" } -- 17
|
||||
{ 1, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.reset")), 1 }, -- 1
|
||||
{ 5, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.resetchildren")), 1 }, -- 5
|
||||
{ 2, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.resetpos")), 1 }, -- 2
|
||||
{ 6, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.resetposchildren")), 1 }, -- 6
|
||||
{ 3, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.resetrot")), 1 }, -- 3
|
||||
{ 7, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.resetrotchildren")), 1 }, -- 7
|
||||
{ 4, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.resetscale")), 1 }, -- 4
|
||||
{ 8, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.resetscalechildren")), 1 }, -- 8
|
||||
{ 9, (language.GetPhrase("tool.ragdollmover.scalezero") .. " " .. language.GetPhrase("tool.ragdollmover.bone")), 2 }, -- 9
|
||||
{ 10, (language.GetPhrase("tool.ragdollmover.scalezero") .. " " .. language.GetPhrase("tool.ragdollmover.bonechildren")), 2 }, -- 10
|
||||
{ 15, { "#tool.ragdollmover.unlockscale", "#tool.ragdollmover.lockscale" }, 3 }, --15
|
||||
{ 17, "#tool.ragdollmover.putgizmopos", 4 } -- 17
|
||||
}
|
||||
|
||||
local FeaturesPhys = {
|
||||
{ 1, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.reset")) }, -- 1
|
||||
{ 5, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.resetchildren")) }, -- 5
|
||||
{ 6, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.resetposchildren")) }, -- 6
|
||||
{ 7, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.resetrotchildren")) }, -- 7
|
||||
{ 8, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.resetscalechildren")) }, -- 8
|
||||
{ 9, (language.GetPhrase("tool.ragdollmover.scalezero") .. " " .. language.GetPhrase("tool.ragdollmover.bone")) }, -- 9
|
||||
{ 10, (language.GetPhrase("tool.ragdollmover.scalezero") .. " " .. language.GetPhrase("tool.ragdollmover.bonechildren")) }, -- 10
|
||||
{ 12, { "#tool.ragdollmover.unlockpos", "#tool.ragdollmover.lockpos" } }, -- 12
|
||||
{ 13, { "#tool.ragdollmover.unlockang", "#tool.ragdollmover.lockang" } }, -- 13
|
||||
{ 15, { "#tool.ragdollmover.unlockscale", "#tool.ragdollmover.lockscale" } }, --15
|
||||
{ 14, "#tool.ragdollmover.lockbone" }, -- 14
|
||||
{ 11, "#tool.ragdollmover.unlockbone" }, -- 11
|
||||
{ 16, "#tool.ragdollmover.freezebone" }, -- 16
|
||||
{ 17, "#tool.ragdollmover.putgizmopos" } -- 17
|
||||
{ 1, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.reset")), 1 }, -- 1
|
||||
{ 5, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.resetchildren")), 1 }, -- 5
|
||||
{ 6, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.resetposchildren")), 1 }, -- 6
|
||||
{ 7, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.resetrotchildren")), 1 }, -- 7
|
||||
{ 8, (language.GetPhrase("tool.ragdollmover.resetmenu") .. " " .. language.GetPhrase("tool.ragdollmover.resetscalechildren")), 1 }, -- 8
|
||||
{ 9, (language.GetPhrase("tool.ragdollmover.scalezero") .. " " .. language.GetPhrase("tool.ragdollmover.bone")), 2 }, -- 9
|
||||
{ 10, (language.GetPhrase("tool.ragdollmover.scalezero") .. " " .. language.GetPhrase("tool.ragdollmover.bonechildren")), 2 }, -- 10
|
||||
{ 12, { "#tool.ragdollmover.unlockpos", "#tool.ragdollmover.lockpos" }, 3 }, -- 12
|
||||
{ 13, { "#tool.ragdollmover.unlockang", "#tool.ragdollmover.lockang" }, 3}, -- 13
|
||||
{ 15, { "#tool.ragdollmover.unlockscale", "#tool.ragdollmover.lockscale" }, 3 }, --15
|
||||
{ 14, "#tool.ragdollmover.lockbone", 3 }, -- 14
|
||||
{ 11, "#tool.ragdollmover.unlockbone", 3 }, -- 11
|
||||
{ 16, "#tool.ragdollmover.freezebone", 4 }, -- 16
|
||||
{ 17, "#tool.ragdollmover.putgizmopos", 4 } -- 17
|
||||
}
|
||||
|
||||
function AdvBoneSelectRadialRender(ent, bones, bonenodes, isresetmode)
|
||||
@ -1301,6 +1323,20 @@ function AdvBoneSelectRadialRender(ent, bones, bonenodes, isresetmode)
|
||||
btype = bonenodes[ent][bone].Type
|
||||
end
|
||||
|
||||
local pos = ent:GetBonePosition(bone)
|
||||
pos = pos:ToScreen()
|
||||
|
||||
local circ = table.Copy(RGM_CIRCLE)
|
||||
for k, v in ipairs(circ) do
|
||||
v.x = v.x + pos.x
|
||||
v.y = v.y + pos.y
|
||||
end
|
||||
|
||||
surface.SetDrawColor(COLOR_WHITE:Unpack())
|
||||
|
||||
draw.NoTexture()
|
||||
surface.DrawPoly(circ)
|
||||
|
||||
local boneoptions = btype == 1 and FeaturesPhys or FeaturesNPhys
|
||||
local count = btype == 1 and 14 or 12
|
||||
local angborder = (360 / count) / 2
|
||||
@ -1324,7 +1360,7 @@ function AdvBoneSelectRadialRender(ent, bones, bonenodes, isresetmode)
|
||||
local thisang = (360 / count * (k - 1))
|
||||
local thisrad = thisang / 180 * math.pi
|
||||
local uix, uiy = (math.sin(thisrad) * 250 * modifier), (math.cos(thisrad) * -250 * modifier)
|
||||
local color = COLOR_WHITE
|
||||
local color = Colors[option[3]]
|
||||
|
||||
uix, uiy = uix + midw, uiy + midh
|
||||
|
||||
@ -1333,26 +1369,11 @@ function AdvBoneSelectRadialRender(ent, bones, bonenodes, isresetmode)
|
||||
local diff = math.abs((thisang - selangle + 180) % 360 - 180)
|
||||
local isselected = diff < angborder and true or false
|
||||
|
||||
local pos = ent:GetBonePosition(bone)
|
||||
pos = pos:ToScreen()
|
||||
|
||||
local circ = table.Copy(RGM_CIRCLE)
|
||||
for k, v in ipairs(circ) do
|
||||
v.x = v.x + pos.x
|
||||
v.y = v.y + pos.y
|
||||
end
|
||||
|
||||
if isselected then
|
||||
surface.SetDrawColor(COLOR_BRIGHT_YELLOW:Unpack())
|
||||
color = COLOR_BRIGHT_YELLOW
|
||||
SelectedBone = id
|
||||
else
|
||||
surface.SetDrawColor(color:Unpack())
|
||||
end
|
||||
|
||||
draw.NoTexture()
|
||||
surface.DrawPoly(circ)
|
||||
|
||||
local ytextoffset = -14
|
||||
if uiy > (midh + 30) then ytextoffset = RGMFontSize + 14 end
|
||||
|
||||
|
@ -96,7 +96,7 @@ tool.ragdollmover.lockang=Lock Rotation
|
||||
tool.ragdollmover.unlockang=Unlock Rotation
|
||||
tool.ragdollmover.lockscale=Lock Scale
|
||||
tool.ragdollmover.unlockscale=Unlock Scale
|
||||
tool.ragdollmover.lockbone=Lock to this Bone
|
||||
tool.ragdollmover.lockbone=Lock Other Bone to this Bone
|
||||
tool.ragdollmover.unlockbone=Unlock this Bone
|
||||
tool.ragdollmover.freezebone=Freeze/Unfreeze this Bone
|
||||
|
||||
|
@ -78,17 +78,17 @@ tool.ragdollmover.physmovetip=Манипулирование нефизичес
|
||||
tool.ragdollmover.scalerelativemove=Относительное масштабирование дочерних костей
|
||||
|
||||
tool.ragdollmover.resetmenu=Сброс
|
||||
tool.ragdollmover.resetpos=Сброс позиции
|
||||
tool.ragdollmover.resetrot=Сброс вращения
|
||||
tool.ragdollmover.resetscale=Сброс масштабирования
|
||||
tool.ragdollmover.reset=Сброс всего
|
||||
tool.ragdollmover.resetposchildren=+Сброс позиции потомка
|
||||
tool.ragdollmover.resetrotchildren=+Сброс вращения потомка
|
||||
tool.ragdollmover.resetscalechildren=+Сброс масштабирования потомка
|
||||
tool.ragdollmover.resetchildren=+Сброс потомка
|
||||
tool.ragdollmover.resetpos=Позиции
|
||||
tool.ragdollmover.resetrot=Вращения
|
||||
tool.ragdollmover.resetscale=Масштабирования
|
||||
tool.ragdollmover.reset=Всего
|
||||
tool.ragdollmover.resetposchildren=+Позиций потомков
|
||||
tool.ragdollmover.resetrotchildren=+Вращения потомков
|
||||
tool.ragdollmover.resetscalechildren=+Масштабирования потомков
|
||||
tool.ragdollmover.resetchildren=+Потомков
|
||||
tool.ragdollmover.scalezero=Установить нулевой размер
|
||||
tool.ragdollmover.bone=Кость
|
||||
tool.ragdollmover.bonechildren=Кость + Потомок
|
||||
tool.ragdollmover.bone=Кости
|
||||
tool.ragdollmover.bonechildren=Кости + Потомков
|
||||
|
||||
tool.ragdollmover.lockpos=Заблокировать позицию
|
||||
tool.ragdollmover.unlockpos=Разблокировать позицию
|
||||
@ -96,7 +96,7 @@ tool.ragdollmover.lockang=Заблокировать поворот
|
||||
tool.ragdollmover.unlockang=Разблокировать поворот
|
||||
tool.ragdollmover.lockscale=Заблокировать масштабирование
|
||||
tool.ragdollmover.unlockscale=Разблокировать масштабирование
|
||||
tool.ragdollmover.lockbone=Привязать к этой кости
|
||||
tool.ragdollmover.lockbone=Привязать другую кость к этой кости
|
||||
tool.ragdollmover.unlockbone=Разблокировать кость
|
||||
tool.ragdollmover.freezebone=Заморозить/разморозить кость
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user