Power monitoring console overhaul (#20927)
* Prototyping whole station wire map * More prototyping * Added icons for the different power distributors and toggleable cable displays * Power cable layouts are now only sent to the client when the power monitor is open * UI prototyping * Power monitors can now see the sprites of distant entities, long entity names are truncated * Updated how network devices are added to the player's PVS * More feature prototypes * Added source / load symbols * Final prototype! Time to actually code it properly... * Start of code clean up * Continuing code clean up * Fixed UI appearance * Code clean up complete * Removed unnecessary changes * Updated how power values are calculated, added UI warnings for power sinks and power net checks * Updated how power values are calculated again, added support for portable generators * Removed unnecessary files * Map beacons start toggled off, console map now works outside the station, fixed substation icon * Made some of Sloth's requested changes. Power distributors don't blink anymore, unless selected * Moved a number of static variables in PowerMonitoringHelper to sensible places in the main files. Added a NavMapTrackableComponent so that you can specify how individual entities appear on the navmap * Updated the colors/positions of HV cables and SMESes to improve contrast * Fixed SMES color in map legend * Partially fixed auto-scrolling on device selection, made sublists alphabetical * Changed how auto-scroll is handled * Changed the font color of the console warning messages * Reduced the font size of beacon labels * Added the station name to the console * Organized references * Removed unwanted changes to RobustToolbox * Fix merge conflict * Fix merge conflict, maybe * Fix merge conflict * Updated outdated reference * Fixed portable_generator.yml * Implemented a number of requested changes, move bit masks to a shared component * Navigate listings via the navmap * First attempt at improving efficiency * Second attempt at optimization, entity grouping added for solar panels * Finished solar panel entity joining * Finished major revisions, code clean up needed * Finializing optimizations * Made requested changes * Bug fix, removed obsolete code * Bug fixes * Bug fixes * STarted revisions * Further revisions * More revision * Finalizing revisions. Need to make RT PR * Code tidying * More code tidying * Trying to avoid merge conflicts * Trying to avoid merge conflicts * Removed use of PVS * Improving efficiency * Addressed a bunch of outstanding issues * Clear old data on console refresh * UI adjustments * Made node comparison more robust. More devices can be combined into one entry * Added missing component 'dirty'
This commit is contained in:
@@ -1,38 +1,54 @@
|
||||
using Content.Server.Power.EntitySystems;
|
||||
using Content.Shared.Power;
|
||||
using Content.Shared.Tools;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
|
||||
using System.Diagnostics.Tracing;
|
||||
|
||||
namespace Content.Server.Power.Components
|
||||
namespace Content.Server.Power.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Allows the attached entity to be destroyed by a cutting tool, dropping a piece of cable.
|
||||
/// </summary>
|
||||
[RegisterComponent]
|
||||
[Access(typeof(CableSystem))]
|
||||
public sealed partial class CableComponent : Component
|
||||
{
|
||||
[DataField("cableDroppedOnCutPrototype", customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>))]
|
||||
public string CableDroppedOnCutPrototype = "CableHVStack1";
|
||||
|
||||
[DataField("cuttingQuality", customTypeSerializer:typeof(PrototypeIdSerializer<ToolQualityPrototype>))]
|
||||
public string CuttingQuality = "Cutting";
|
||||
|
||||
/// <summary>
|
||||
/// Allows the attached entity to be destroyed by a cutting tool, dropping a piece of cable.
|
||||
/// Checked by <see cref="CablePlacerComponent"/> to determine if there is
|
||||
/// already a cable of a type on a tile.
|
||||
/// </summary>
|
||||
[RegisterComponent]
|
||||
[Access(typeof(CableSystem))]
|
||||
public sealed partial class CableComponent : Component
|
||||
[DataField("cableType")]
|
||||
public CableType CableType = CableType.HighVoltage;
|
||||
|
||||
[DataField("cuttingDelay")]
|
||||
public float CuttingDelay = 1f;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Event to be raised when a cable is anchored / unanchored
|
||||
/// </summary>
|
||||
[ByRefEvent]
|
||||
public readonly struct CableAnchorStateChangedEvent
|
||||
{
|
||||
public readonly TransformComponent Transform;
|
||||
public EntityUid Entity => Transform.Owner;
|
||||
public bool Anchored => Transform.Anchored;
|
||||
|
||||
/// <summary>
|
||||
/// If true, the entity is being detached to null-space
|
||||
/// </summary>
|
||||
public readonly bool Detaching;
|
||||
|
||||
public CableAnchorStateChangedEvent(TransformComponent transform, bool detaching = false)
|
||||
{
|
||||
[DataField("cableDroppedOnCutPrototype", customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>))]
|
||||
public string CableDroppedOnCutPrototype = "CableHVStack1";
|
||||
|
||||
[DataField("cuttingQuality", customTypeSerializer:typeof(PrototypeIdSerializer<ToolQualityPrototype>))]
|
||||
public string CuttingQuality = "Cutting";
|
||||
|
||||
/// <summary>
|
||||
/// Checked by <see cref="CablePlacerComponent"/> to determine if there is
|
||||
/// already a cable of a type on a tile.
|
||||
/// </summary>
|
||||
[DataField("cableType")]
|
||||
public CableType CableType = CableType.HighVoltage;
|
||||
|
||||
[DataField("cuttingDelay")]
|
||||
public float CuttingDelay = 1f;
|
||||
}
|
||||
|
||||
public enum CableType
|
||||
{
|
||||
HighVoltage,
|
||||
MediumVoltage,
|
||||
Apc,
|
||||
Detaching = detaching;
|
||||
Transform = transform;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user