mirror of
https://github.com/WWhiteDreamProject/wwdpublic.git
synced 2026-04-17 05:27:38 +03:00
Mirror: Shuttle map IFF tweaks (#142)
## Mirror of PR #25897: [Shuttle map IFF tweaks](https://github.com/space-wizards/space-station-14/pull/25897) from <img src="https://avatars.githubusercontent.com/u/10567778?v=4" alt="space-wizards" width="22"/> [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `a41772a006302bbe267793569b4b0d171eb82c87` PR opened by <img src="https://avatars.githubusercontent.com/u/31366439?v=4" width="16"/><a href="https://github.com/metalgearsloth"> metalgearsloth</a> at 2024-03-07 02:06:24 UTC PR merged by <img src="https://avatars.githubusercontent.com/u/19864447?v=4" width="16"/><a href="https://github.com/web-flow"> web-flow</a> at 2024-03-11 02:11:46 UTC --- PR changed 7 files with 32 additions and 9 deletions. The PR had the following labels: - Changes: UI --- <details open="true"><summary><h1>Original Body</h1></summary> > - HideLabel just means it won't have its name / button drawn whereas Hide will block it completely. > >  > > 🆑 > - tweak: Remove the buttons for generated debris from shuttle maps. > </details> Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
This commit is contained in:
@@ -318,10 +318,13 @@ public sealed partial class MapScreen : BoxContainer
|
||||
|
||||
foreach (var grid in _mapManager.GetAllMapGrids(mapComp.MapId))
|
||||
{
|
||||
_entManager.TryGetComponent(grid.Owner, out IFFComponent? iffComp);
|
||||
|
||||
var gridObj = new GridMapObject()
|
||||
{
|
||||
Name = _entManager.GetComponent<MetaDataComponent>(grid.Owner).EntityName,
|
||||
Entity = grid.Owner
|
||||
Entity = grid.Owner,
|
||||
HideButton = iffComp != null && (iffComp.Flags & IFFFlags.HideLabel) != 0x0,
|
||||
};
|
||||
|
||||
// Always show our shuttle immediately
|
||||
@@ -329,7 +332,8 @@ public sealed partial class MapScreen : BoxContainer
|
||||
{
|
||||
AddMapObject(mapComp.MapId, gridObj);
|
||||
}
|
||||
else
|
||||
else if (iffComp == null ||
|
||||
(iffComp.Flags & IFFFlags.Hide) == 0x0)
|
||||
{
|
||||
_pendingMapObjects.Add((mapComp.MapId, gridObj));
|
||||
}
|
||||
@@ -423,10 +427,14 @@ public sealed partial class MapScreen : BoxContainer
|
||||
/// </summary>
|
||||
private void AddMapObject(MapId mapId, IMapObject mapObj)
|
||||
{
|
||||
var gridContents = _mapHeadings[mapId];
|
||||
var existing = _mapObjects.GetOrNew(mapId);
|
||||
existing.Add(mapObj);
|
||||
|
||||
if (mapObj.HideButton)
|
||||
return;
|
||||
|
||||
var gridContents = _mapHeadings[mapId];
|
||||
|
||||
var gridButton = new Button()
|
||||
{
|
||||
Text = mapObj.Name,
|
||||
|
||||
@@ -345,7 +345,7 @@ public sealed partial class ShuttleMapControl : BaseShuttleControl
|
||||
// Rudimentary IFF for now, if IFF hiding on then we don't show on the map at all
|
||||
if (grid.Owner != _shuttleEntity &&
|
||||
EntManager.TryGetComponent(grid, out iffComp) &&
|
||||
(iffComp.Flags & (IFFFlags.Hide | IFFFlags.HideLabel)) != 0x0)
|
||||
(iffComp.Flags & IFFFlags.Hide) != 0x0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -367,6 +367,9 @@ public sealed partial class ShuttleMapControl : BaseShuttleControl
|
||||
AddMapObject(existingEdges, existingVerts, mapObject);
|
||||
|
||||
// Text
|
||||
if (iffComp != null && (iffComp.Flags & IFFFlags.HideLabel) != 0x0)
|
||||
continue;
|
||||
|
||||
// Force drawing it at this point.
|
||||
var iffText = _shuttles.GetIFFLabel(grid, self: true, component: iffComp);
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ public abstract partial class SharedShuttleSystem
|
||||
return;
|
||||
|
||||
component.Color = color;
|
||||
Dirty(component);
|
||||
Dirty(gridUid, component);
|
||||
UpdateIFFInterfaces(gridUid, component);
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ public abstract partial class SharedShuttleSystem
|
||||
return;
|
||||
|
||||
component.Flags |= flags;
|
||||
Dirty(component);
|
||||
Dirty(gridUid, component);
|
||||
UpdateIFFInterfaces(gridUid, component);
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ public abstract partial class SharedShuttleSystem
|
||||
return;
|
||||
|
||||
component.Flags &= ~flags;
|
||||
Dirty(component);
|
||||
Dirty(gridUid, component);
|
||||
UpdateIFFInterfaces(gridUid, component);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,5 +3,6 @@ namespace Content.Shared.Shuttles.UI.MapObjects;
|
||||
public record struct GridMapObject : IMapObject
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public bool HideButton { get; init; }
|
||||
public EntityUid Entity;
|
||||
}
|
||||
|
||||
@@ -6,4 +6,9 @@ namespace Content.Shared.Shuttles.UI.MapObjects;
|
||||
public interface IMapObject
|
||||
{
|
||||
string Name { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Should we hide the button from being shown (AKA just draw it).
|
||||
/// </summary>
|
||||
bool HideButton { get; }
|
||||
}
|
||||
|
||||
@@ -4,4 +4,7 @@ using Robust.Shared.Serialization;
|
||||
namespace Content.Shared.Shuttles.UI.MapObjects;
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
public readonly record struct ShuttleBeaconObject(NetEntity Entity, NetCoordinates Coordinates, string Name) : IMapObject;
|
||||
public readonly record struct ShuttleBeaconObject(NetEntity Entity, NetCoordinates Coordinates, string Name) : IMapObject
|
||||
{
|
||||
public bool HideButton => false;
|
||||
}
|
||||
|
||||
@@ -4,4 +4,7 @@ using Robust.Shared.Serialization;
|
||||
namespace Content.Shared.Shuttles.UI.MapObjects;
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
public record struct ShuttleExclusionObject(NetCoordinates Coordinates, float Range, string Name = "") : IMapObject;
|
||||
public record struct ShuttleExclusionObject(NetCoordinates Coordinates, float Range, string Name = "") : IMapObject
|
||||
{
|
||||
public bool HideButton => false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user