if (xform.MapID != args.MapId)
continue;
- var other = _entManager.GetEntity(visuals.Target);
+ var other = visuals.Target;
if (!xformQuery.TryGetComponent(other, out var otherXform))
continue;
continue;
var texture = spriteSystem.Frame0(visuals.Sprite);
- var width = texture.Width / (float) EyeManager.PixelsPerMeter;
+ var width = texture.Width / (float)EyeManager.PixelsPerMeter;
var coordsA = xform.Coordinates;
var coordsB = otherXform.Coordinates;
var posA = xformSystem.ToMapCoordinates(coordsA).Position;
var posB = xformSystem.ToMapCoordinates(coordsB).Position;
- var diff = (posB - posA);
+ var diff = posB - posA;
var length = diff.Length();
var midPoint = diff / 2f + posA;
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
public sealed partial class JointVisualsComponent : Component
{
- [ViewVariables(VVAccess.ReadWrite), DataField("sprite", required: true), AutoNetworkedField]
+ /// <summary>
+ /// The sprite to use for the line.
+ /// </summary>
+ [DataField(required: true), AutoNetworkedField]
public SpriteSpecifier Sprite = default!;
- [ViewVariables(VVAccess.ReadWrite), DataField("target"), AutoNetworkedField]
- public NetEntity? Target;
+ /// <summary>
+ /// The line is drawn between this target and the entity owning the component.
+ /// </summary>
+ /// <summary>
+ /// TODO: WeakEntityReference.
+ /// </summary>
+ [DataField, AutoNetworkedField]
+ public EntityUid? Target;
/// <summary>
/// Offset from Body A.
/// </summary>
- [ViewVariables(VVAccess.ReadWrite), DataField("offsetA"), AutoNetworkedField]
+ [DataField, AutoNetworkedField]
public Vector2 OffsetA;
/// <summary>
/// Offset from Body B.
/// </summary>
- [ViewVariables(VVAccess.ReadWrite), DataField("offsetB"), AutoNetworkedField]
+ [DataField, AutoNetworkedField]
public Vector2 OffsetB;
}
var visuals = EnsureComp<JointVisualsComponent>(shotUid.Value);
visuals.Sprite = component.RopeSprite;
visuals.OffsetA = new Vector2(0f, 0.5f);
- visuals.Target = GetNetEntity(uid);
+ visuals.Target = uid;
Dirty(shotUid.Value, visuals);
}