Update content vectors to numerics (#17759)
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using Content.Server.Beam.Components;
|
||||
using System.Numerics;
|
||||
using Content.Server.Beam.Components;
|
||||
using Content.Shared.Beam;
|
||||
using Content.Shared.Beam.Components;
|
||||
using Content.Shared.Physics;
|
||||
@@ -74,10 +75,10 @@ public sealed class BeamSystem : SharedBeamSystem
|
||||
var beamSpawnPos = beamStartPos;
|
||||
var ent = Spawn(prototype, beamSpawnPos);
|
||||
var shape = new EdgeShape(distanceCorrection, new Vector2(0,0));
|
||||
var distanceLength = distanceCorrection.Length;
|
||||
|
||||
if (!TryComp<PhysicsComponent>(ent, out var physics) || !TryComp<BeamComponent>(ent, out var beam))
|
||||
return;
|
||||
|
||||
FixturesComponent? manager = null;
|
||||
_fixture.TryCreateFixture(
|
||||
ent,
|
||||
@@ -93,6 +94,8 @@ public sealed class BeamSystem : SharedBeamSystem
|
||||
_physics.SetCanCollide(ent, true, manager: manager, body: physics);
|
||||
_broadphase.RegenerateContacts(ent, physics, manager);
|
||||
|
||||
var distanceLength = distanceCorrection.Length();
|
||||
|
||||
var beamVisualizerEvent = new BeamVisualizerEvent(ent, distanceLength, userAngle, bodyState, shader);
|
||||
RaiseNetworkEvent(beamVisualizerEvent);
|
||||
|
||||
@@ -104,7 +107,7 @@ public sealed class BeamSystem : SharedBeamSystem
|
||||
var controllerEnt = Spawn("VirtualBeamEntityController", beamSpawnPos);
|
||||
beam.VirtualBeamController = controllerEnt;
|
||||
|
||||
_audio.PlayPvs(beam.Sound, beam.Owner);
|
||||
_audio.PlayPvs(beam.Sound, ent);
|
||||
|
||||
var beamControllerCreatedEvent = new BeamControllerCreatedEvent(ent, controllerEnt);
|
||||
RaiseLocalEvent(controllerEnt, beamControllerCreatedEvent);
|
||||
@@ -113,7 +116,7 @@ public sealed class BeamSystem : SharedBeamSystem
|
||||
//Create the rest of the beam, sprites handled through the BeamVisualizerEvent
|
||||
for (var i = 0; i < distanceLength-1; i++)
|
||||
{
|
||||
beamSpawnPos = beamSpawnPos.Offset(calculatedDistance.Normalized);
|
||||
beamSpawnPos = beamSpawnPos.Offset(calculatedDistance.Normalized());
|
||||
var newEnt = Spawn(prototype, beamSpawnPos);
|
||||
|
||||
var ev = new BeamVisualizerEvent(newEnt, distanceLength, userAngle, bodyState, shader);
|
||||
@@ -150,10 +153,10 @@ public sealed class BeamSystem : SharedBeamSystem
|
||||
return;
|
||||
|
||||
//Where the start of the beam will spawn
|
||||
var beamStartPos = userMapPos.Offset(calculatedDistance.Normalized);
|
||||
var beamStartPos = userMapPos.Offset(calculatedDistance.Normalized());
|
||||
|
||||
//Don't divide by zero
|
||||
if (calculatedDistance.Length == 0)
|
||||
if (calculatedDistance.Length() == 0)
|
||||
return;
|
||||
|
||||
if (controller != null && TryComp<BeamComponent>(controller, out var controllerBeamComp))
|
||||
@@ -162,7 +165,7 @@ public sealed class BeamSystem : SharedBeamSystem
|
||||
controllerBeamComp.HitTargets.Add(target);
|
||||
}
|
||||
|
||||
var distanceCorrection = calculatedDistance - calculatedDistance.Normalized;
|
||||
var distanceCorrection = calculatedDistance - calculatedDistance.Normalized();
|
||||
|
||||
CreateBeam(bodyPrototype, userAngle, calculatedDistance, beamStartPos, distanceCorrection, controller, bodyState, shader);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user