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:
@@ -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]
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user