Fix literally every single activatable UI bug (#27401)

* Fix all activatable bugs

Apparently this was a load-bearing nullable enum.

* build
This commit is contained in:
metalgearsloth
2024-04-28 02:32:57 +10:00
committed by GitHub
parent 8a59e9e1f8
commit 74041cf66f
3 changed files with 6 additions and 5 deletions

View File

@@ -8,7 +8,7 @@ namespace Content.Shared.UserInterface
public sealed partial class ActivatableUIComponent : Component public sealed partial class ActivatableUIComponent : Component
{ {
[DataField(required: true, customTypeSerializer: typeof(EnumSerializer))] [DataField(required: true, customTypeSerializer: typeof(EnumSerializer))]
public Enum Key { get; set; } = default!; public Enum? Key { get; set; } = default!;
[ViewVariables(VVAccess.ReadWrite)] [ViewVariables(VVAccess.ReadWrite)]
[DataField] [DataField]

View File

@@ -21,7 +21,8 @@ public sealed partial class ActivatableUISystem
_cell.SetPowerCellDrawEnabled(uid, false); _cell.SetPowerCellDrawEnabled(uid, false);
if (HasComp<ActivatableUIRequiresPowerCellComponent>(uid) && if (HasComp<ActivatableUIRequiresPowerCellComponent>(uid) &&
TryComp<ActivatableUIComponent>(uid, out var activatable)) TryComp<ActivatableUIComponent>(uid, out var activatable) &&
activatable.Key != null)
{ {
_uiSystem.CloseUi(uid, activatable.Key); _uiSystem.CloseUi(uid, activatable.Key);
} }
@@ -54,7 +55,7 @@ public sealed partial class ActivatableUISystem
/// </summary> /// </summary>
public void CheckUsage(EntityUid uid, ActivatableUIComponent? active = null, ActivatableUIRequiresPowerCellComponent? component = null, PowerCellDrawComponent? draw = null) public void CheckUsage(EntityUid uid, ActivatableUIComponent? active = null, ActivatableUIRequiresPowerCellComponent? component = null, PowerCellDrawComponent? draw = null)
{ {
if (!Resolve(uid, ref component, ref draw, ref active, false)) if (!Resolve(uid, ref component, ref draw, ref active, false) || active.Key == null)
return; return;
if (_cell.HasActivatableCharge(uid)) if (_cell.HasActivatableCharge(uid))

View File

@@ -136,7 +136,7 @@ public sealed partial class ActivatableUISystem : EntitySystem
private bool InteractUI(EntityUid user, EntityUid uiEntity, ActivatableUIComponent aui) private bool InteractUI(EntityUid user, EntityUid uiEntity, ActivatableUIComponent aui)
{ {
if (!_uiSystem.HasUi(uiEntity, aui.Key)) if (aui.Key == null || !_uiSystem.HasUi(uiEntity, aui.Key))
return false; return false;
if (_uiSystem.IsUiOpen(uiEntity, aui.Key, user)) if (_uiSystem.IsUiOpen(uiEntity, aui.Key, user))
@@ -205,7 +205,7 @@ public sealed partial class ActivatableUISystem : EntitySystem
public void CloseAll(EntityUid uid, ActivatableUIComponent? aui = null) public void CloseAll(EntityUid uid, ActivatableUIComponent? aui = null)
{ {
if (!Resolve(uid, ref aui, false)) if (!Resolve(uid, ref aui, false) || aui.Key == null)
return; return;
_uiSystem.CloseUi(uid, aui.Key); _uiSystem.CloseUi(uid, aui.Key);