Inline Transform

This commit is contained in:
Vera Aguilera Puerto
2021-12-03 14:20:34 +01:00
parent 69b270017b
commit a5b57c8e10
283 changed files with 742 additions and 709 deletions

View File

@@ -115,7 +115,7 @@ namespace Content.Server.Solar.EntitySystems
foreach (var panel in EntityManager.EntityQuery<SolarPanelComponent>())
{
TotalPanelPower += panel.MaxSupply * panel.Coverage;
panel.Owner.Transform.WorldRotation = TargetPanelRotation;
IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(panel.Owner.Uid).WorldRotation = TargetPanelRotation;
_updateQueue.Enqueue(panel);
}
}
@@ -136,7 +136,7 @@ namespace Content.Server.Solar.EntitySystems
// directly downwards (abs(theta) = pi) = coverage -1
// as TowardsSun + = CCW,
// panelRelativeToSun should - = CW
var panelRelativeToSun = entity.Transform.WorldRotation - TowardsSun;
var panelRelativeToSun = IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(entity.Uid).WorldRotation - TowardsSun;
// essentially, given cos = X & sin = Y & Y is 'downwards',
// then for the first 90 degrees of rotation in either direction,
// this plots the lower-right quadrant of a circle.
@@ -154,12 +154,12 @@ namespace Content.Server.Solar.EntitySystems
if (coverage > 0)
{
// Determine if the solar panel is occluded, and zero out coverage if so.
var ray = new CollisionRay(entity.Transform.WorldPosition, TowardsSun.ToWorldVec(), (int) CollisionGroup.Opaque);
var ray = new CollisionRay(IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(entity.Uid).WorldPosition, TowardsSun.ToWorldVec(), (int) CollisionGroup.Opaque);
var rayCastResults = _physicsSystem.IntersectRayWithPredicate(
entity.Transform.MapID,
IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(entity.Uid).MapID,
ray,
SunOcclusionCheckDistance,
e => !e.Transform.Anchored || e == entity);
e => !IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(e.Uid).Anchored || e == entity);
if (rayCastResults.Any())
coverage = 0;
}