Fix for items dropped being rotated to world north (#26662)
* Fix rotation of dropped items * combined world position rotation function for dumpable * scuffed implementation? * less scuffed? * even less scuffed... I guess * capital D --------- Co-authored-by: Plykiya <plykiya@protonmail.com>
This commit is contained in:
@@ -134,8 +134,10 @@ public abstract partial class SharedHandsSystem
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var (itemPos, itemRot) = TransformSystem.GetWorldPositionRotation(entity);
|
||||||
|
var origin = new MapCoordinates(itemPos, itemXform.MapID);
|
||||||
var target = targetDropLocation.Value.ToMap(EntityManager, TransformSystem);
|
var target = targetDropLocation.Value.ToMap(EntityManager, TransformSystem);
|
||||||
TransformSystem.SetWorldPosition(itemXform, GetFinalDropCoordinates(uid, userXform.MapPosition, target));
|
TransformSystem.SetWorldPositionRotation(entity, GetFinalDropCoordinates(uid, origin, target), itemRot);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -159,11 +159,11 @@ public sealed class DumpableSystem : EntitySystem
|
|||||||
{
|
{
|
||||||
dumped = true;
|
dumped = true;
|
||||||
|
|
||||||
var targetPos = _transformSystem.GetWorldPosition(args.Args.Target.Value);
|
var (targetPos, targetRot) = _transformSystem.GetWorldPositionRotation(args.Args.Target.Value);
|
||||||
|
|
||||||
foreach (var entity in dumpQueue)
|
foreach (var entity in dumpQueue)
|
||||||
{
|
{
|
||||||
_transformSystem.SetWorldPosition(entity, targetPos + _random.NextVector2Box() / 4);
|
_transformSystem.SetWorldPositionRotation(entity, targetPos + _random.NextVector2Box() / 4, targetRot);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user