Improve marker visualization for mapping.
Command renamed to showmarkers. Actually permanent (so if you place markers with it active, you immediately see them).
This commit is contained in:
@@ -13,28 +13,14 @@ namespace Content.Client.Commands
|
|||||||
internal sealed class ShowMarkersCommand : IConsoleCommand
|
internal sealed class ShowMarkersCommand : IConsoleCommand
|
||||||
{
|
{
|
||||||
// ReSharper disable once StringLiteralTypo
|
// ReSharper disable once StringLiteralTypo
|
||||||
public string Command => "togglemarkers";
|
public string Command => "showmarkers";
|
||||||
public string Description => "Toggles visibility of markers such as spawn points.";
|
public string Description => "Toggles visibility of markers such as spawn points.";
|
||||||
public string Help => "";
|
public string Help => "";
|
||||||
|
|
||||||
public bool Execute(IDebugConsole console, params string[] args)
|
public bool Execute(IDebugConsole console, params string[] args)
|
||||||
{
|
{
|
||||||
bool? whichToSet = null;
|
EntitySystem.Get<MarkerSystem>()
|
||||||
foreach (var entity in IoCManager.Resolve<IEntityManager>()
|
.MarkersVisible ^= true;
|
||||||
.GetEntities(new TypeEntityQuery(typeof(SharedSpawnPointComponent))))
|
|
||||||
{
|
|
||||||
if (!entity.TryGetComponent(out ISpriteComponent sprite))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!whichToSet.HasValue)
|
|
||||||
{
|
|
||||||
whichToSet = !sprite.Visible;
|
|
||||||
}
|
|
||||||
|
|
||||||
sprite.Visible = whichToSet.Value;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
using Content.Client.GameObjects.EntitySystems;
|
||||||
|
using Robust.Client.Interfaces.GameObjects.Components;
|
||||||
|
using Robust.Shared.GameObjects;
|
||||||
|
using Robust.Shared.GameObjects.Systems;
|
||||||
|
|
||||||
|
namespace Content.Client.GameObjects.Components.Markers
|
||||||
|
{
|
||||||
|
[RegisterComponent]
|
||||||
|
public sealed class MarkerComponent : Component
|
||||||
|
{
|
||||||
|
public override string Name => "Marker";
|
||||||
|
|
||||||
|
protected override void Startup()
|
||||||
|
{
|
||||||
|
base.Startup();
|
||||||
|
|
||||||
|
UpdateVisibility();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateVisibility()
|
||||||
|
{
|
||||||
|
var system = EntitySystem.Get<MarkerSystem>();
|
||||||
|
|
||||||
|
if (Owner.TryGetComponent(out ISpriteComponent sprite))
|
||||||
|
{
|
||||||
|
sprite.Visible = system.MarkersVisible;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
36
Content.Client/GameObjects/EntitySystems/MarkerSystem.cs
Normal file
36
Content.Client/GameObjects/EntitySystems/MarkerSystem.cs
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
using Content.Client.GameObjects.Components.Markers;
|
||||||
|
using Robust.Shared.GameObjects;
|
||||||
|
using Robust.Shared.GameObjects.Systems;
|
||||||
|
|
||||||
|
namespace Content.Client.GameObjects.EntitySystems
|
||||||
|
{
|
||||||
|
public sealed class MarkerSystem : EntitySystem
|
||||||
|
{
|
||||||
|
private bool _markersVisible;
|
||||||
|
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
|
EntityQuery = new TypeEntityQuery<MarkerComponent>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool MarkersVisible
|
||||||
|
{
|
||||||
|
get => _markersVisible;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_markersVisible = value;
|
||||||
|
UpdateMarkers();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateMarkers()
|
||||||
|
{
|
||||||
|
foreach (var entity in RelevantEntities)
|
||||||
|
{
|
||||||
|
entity.GetComponent<MarkerComponent>().UpdateVisibility();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,14 +7,19 @@
|
|||||||
netsync: false
|
netsync: false
|
||||||
visible: false
|
visible: false
|
||||||
sprite: Objects/markers.rsi
|
sprite: Objects/markers.rsi
|
||||||
|
state: cross_blue
|
||||||
|
|
||||||
- type: Icon
|
- type: Icon
|
||||||
sprite: Objects/markers.rsi
|
sprite: Objects/markers.rsi
|
||||||
|
|
||||||
- type: SpawnPoint
|
- type: SpawnPoint
|
||||||
|
- type: Marker
|
||||||
|
- type: Clickable
|
||||||
|
- type: InteractionOutline
|
||||||
|
- type: Collidable
|
||||||
|
|
||||||
placement:
|
placement:
|
||||||
mode: SnapgridCenter
|
mode: AlignTileAny
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
name: LateJoin Spawn Point
|
name: LateJoin Spawn Point
|
||||||
|
|||||||
Reference in New Issue
Block a user