mirror of
https://github.com/Winded/RagdollMover.git
synced 2025-03-04 03:13:36 -05:00
Merge pull request #34 from penolakushari/fixes2
Fixed issue with position gizmo moving ragdoll root in unpredictable …
This commit is contained in:
commit
930502686b
@ -57,6 +57,7 @@ function ENT:Setup()
|
||||
self.ArrowX:SetColor(Color(255, 0, 0, 255))
|
||||
self.ArrowX:SetLocalPos(Vector(0, 0, 0))
|
||||
self.ArrowX:SetLocalAngles(Vector(1, 0, 0):Angle())
|
||||
self.ArrowX.DefAngle = Vector(1, 0, 0):Angle()
|
||||
self.ArrowX.axistype = 1
|
||||
|
||||
self.ArrowY = ents.Create("rgm_axis_arrow")
|
||||
@ -65,6 +66,7 @@ function ENT:Setup()
|
||||
self.ArrowY:SetColor(Color(0, 255, 0, 255))
|
||||
self.ArrowY:SetLocalPos(Vector(0, 0, 0))
|
||||
self.ArrowY:SetLocalAngles(Vector(0, 1, 0):Angle())
|
||||
self.ArrowY.DefAngle = Vector(0, 1, 0):Angle()
|
||||
self.ArrowY.axistype = 2
|
||||
|
||||
self.ArrowZ = ents.Create("rgm_axis_arrow")
|
||||
@ -73,6 +75,7 @@ function ENT:Setup()
|
||||
self.ArrowZ:SetColor(Color(0, 0, 255, 255))
|
||||
self.ArrowZ:SetLocalPos(Vector(0, 0, 0))
|
||||
self.ArrowZ:SetLocalAngles(Vector(0, 0, 1):Angle())
|
||||
self.ArrowZ.DefAngle = Vector(0, 0, 1):Angle()
|
||||
self.ArrowZ.axistype = 3
|
||||
|
||||
--Arrow sides
|
||||
@ -408,20 +411,16 @@ function ENT:Think()
|
||||
disc:SetLocalAngles(ang)
|
||||
self.ArrowOmni:SetLocalAngles(ang)
|
||||
|
||||
pos, poseye = self:WorldToLocal(pos), self:WorldToLocal(poseye)
|
||||
local xangle, yangle = (Vector(pos.y, pos.z, 0) - Vector(poseye.y, poseye.z, 0)):Angle(), (Vector(pos.x, pos.z, 0) - Vector(poseye.x, poseye.z, 0)):Angle()
|
||||
local XAng, YAng, ZAng = Angle(0, 0, xangle.y + 90) + VECTOR_FRONT:Angle(), ANGLE_ARROW_OFFSET - Angle(0, 0, yangle.y), Angle(0, ang.y, 0) + vector_up:Angle()
|
||||
self.ArrowX:SetLocalAngles(XAng)
|
||||
self.ScaleX:SetLocalAngles(XAng)
|
||||
self.ArrowY:SetLocalAngles(YAng)
|
||||
self.ScaleY:SetLocalAngles(YAng)
|
||||
self.ArrowZ:SetLocalAngles(ZAng)
|
||||
self.ScaleZ:SetLocalAngles(ZAng)
|
||||
|
||||
if not pl.rgm.Moving then
|
||||
self.ArrowX.GizmoAngle = self.ArrowX:GetAngles()
|
||||
self.ArrowY.GizmoAngle = self.ArrowY:GetAngles()
|
||||
self.ArrowZ.GizmoAngle = self.ArrowZ:GetAngles()
|
||||
pos, poseye = self:WorldToLocal(pos), self:WorldToLocal(poseye)
|
||||
local xangle, yangle = (Vector(pos.y, pos.z, 0) - Vector(poseye.y, poseye.z, 0)):Angle(), (Vector(pos.x, pos.z, 0) - Vector(poseye.x, poseye.z, 0)):Angle()
|
||||
local XAng, YAng, ZAng = Angle(0, 0, xangle.y + 90) + VECTOR_FRONT:Angle(), ANGLE_ARROW_OFFSET - Angle(0, 0, yangle.y), Angle(0, ang.y, 0) + vector_up:Angle()
|
||||
self.ArrowX:SetLocalAngles(XAng)
|
||||
self.ScaleX:SetLocalAngles(XAng)
|
||||
self.ArrowY:SetLocalAngles(YAng)
|
||||
self.ScaleY:SetLocalAngles(YAng)
|
||||
self.ArrowZ:SetLocalAngles(ZAng)
|
||||
self.ScaleZ:SetLocalAngles(ZAng)
|
||||
end
|
||||
|
||||
self:NextThink(CurTime() + 0.001)
|
||||
|
@ -19,7 +19,7 @@ function ENT:ProcessMovement(offpos, _, eyepos, eyeang, ent, bone, ppos, _, move
|
||||
offset = offset + entoffset
|
||||
end
|
||||
local pos, ang
|
||||
local selfangle = self.GizmoAngle and self.GizmoAngle or self:GetAngles()
|
||||
local _, selfangle = LocalToWorld(vector_origin, self.DefAngle, vector_origin, axis:GetAngles()) --self:GetAngles()
|
||||
|
||||
if movetype == 1 then
|
||||
local obj = ent:GetPhysicsObjectNum(bone)
|
||||
|
@ -1336,6 +1336,7 @@ function TOOL:Deploy()
|
||||
local axis = pl.rgm.Axis
|
||||
if not IsValid(axis) then
|
||||
axis = ents.Create("rgm_axis")
|
||||
axis:SetPos(pl:EyePos())
|
||||
axis:Spawn()
|
||||
axis.Owner = pl
|
||||
axis.localpos = self:GetClientNumber("localpos", 0) ~= 0
|
||||
@ -1402,8 +1403,8 @@ function TOOL:LeftClick(tr)
|
||||
|
||||
local axis = pl.rgm.Axis
|
||||
if not IsValid(axis) then
|
||||
pl:ChatPrint("Axis entity isn't found. Spawning new one, try selecting the entity again.")
|
||||
axis = ents.Create("rgm_axis")
|
||||
axis:SetPos(pl:EyePos())
|
||||
axis:Spawn()
|
||||
axis.Owner = pl
|
||||
pl.rgm.Axis = axis
|
||||
@ -1493,7 +1494,7 @@ function TOOL:LeftClick(tr)
|
||||
|
||||
pl.rgm.Ignore = ignore
|
||||
|
||||
local dirnorm = (collision.hitpos-axis:GetPos())
|
||||
local dirnorm = (collision.hitpos - axis:GetPos())
|
||||
dirnorm:Normalize()
|
||||
pl.rgm.DirNorm = dirnorm
|
||||
pl.rgm.MoveAxis = apart
|
||||
|
Loading…
Reference in New Issue
Block a user