SubscribeLocalEvent<HandheldLightComponent, AppearanceChangeEvent>(OnAppearanceChange);
}
+ /// <remarks>
+ /// TODO: Not properly predicted yet. Don't call this function if you want a the actual return value!
+ /// </remarks>
+ public override bool TurnOff(Entity<HandheldLightComponent> ent, bool makeNoise = true)
+ {
+ return true;
+ }
+
+ /// <remarks>
+ /// TODO: Not properly predicted yet. Don't call this function if you want a the actual return value!
+ /// </remarks>
+ public override bool TurnOn(EntityUid user, Entity<HandheldLightComponent> uid)
+ {
+ return true;
+ }
+
private void OnAppearanceChange(EntityUid uid, HandheldLightComponent? component, ref AppearanceChangeEvent args)
{
if (!Resolve(uid, ref component))
using Content.Shared.Light.Components;
using Content.Shared.Rounding;
using Content.Shared.Toggleable;
-using Content.Shared.Verbs;
using JetBrains.Annotations;
using Robust.Server.GameObjects;
using Robust.Shared.Audio;
SubscribeLocalEvent<HandheldLightComponent, ComponentShutdown>(OnShutdown);
SubscribeLocalEvent<HandheldLightComponent, ExaminedEvent>(OnExamine);
- SubscribeLocalEvent<HandheldLightComponent, GetVerbsEvent<ActivationVerb>>(AddToggleLightVerb);
SubscribeLocalEvent<HandheldLightComponent, ActivateInWorldEvent>(OnActivate);
}
}
- private void AddToggleLightVerb(Entity<HandheldLightComponent> ent, ref GetVerbsEvent<ActivationVerb> args)
- {
- if (!args.CanAccess || !args.CanInteract || !ent.Comp.ToggleOnInteract)
- return;
-
- var @event = args;
- ActivationVerb verb = new()
- {
- Text = Loc.GetString("verb-common-toggle-light"),
- Icon = new SpriteSpecifier.Texture(new ("/Textures/Interface/VerbIcons/light.svg.192dpi.png")),
- Act = ent.Comp.Activated
- ? () => TurnOff(ent)
- : () => TurnOn(@event.User, ent)
- };
-
- args.Verbs.Add(verb);
- }
-
- public bool TurnOff(Entity<HandheldLightComponent> ent, bool makeNoise = true)
+ public override bool TurnOff(Entity<HandheldLightComponent> ent, bool makeNoise = true)
{
if (!ent.Comp.Activated || !_lights.TryGetLight(ent, out var pointLightComponent))
{
return true;
}
- public bool TurnOn(EntityUid user, Entity<HandheldLightComponent> uid)
+ public override bool TurnOn(EntityUid user, Entity<HandheldLightComponent> uid)
{
var component = uid.Comp;
if (component.Activated || !_lights.TryGetLight(uid, out var pointLightComponent))
using Content.Shared.Item;
using Content.Shared.Light.Components;
using Content.Shared.Toggleable;
+using Content.Shared.Verbs;
using Robust.Shared.Audio;
using Robust.Shared.Audio.Systems;
using Robust.Shared.GameStates;
+using Robust.Shared.Utility;
namespace Content.Shared.Light;
base.Initialize();
SubscribeLocalEvent<HandheldLightComponent, ComponentInit>(OnInit);
SubscribeLocalEvent<HandheldLightComponent, ComponentHandleState>(OnHandleState);
+
+ SubscribeLocalEvent<HandheldLightComponent, GetVerbsEvent<ActivationVerb>>(AddToggleLightVerb);
}
private void OnInit(EntityUid uid, HandheldLightComponent component, ComponentInit args)
_appearance.SetData(uid, ToggleableLightVisuals.Enabled, component.Activated, appearance);
}
+
+ private void AddToggleLightVerb(Entity<HandheldLightComponent> ent, ref GetVerbsEvent<ActivationVerb> args)
+ {
+ if (!args.CanAccess || !args.CanInteract || !ent.Comp.ToggleOnInteract)
+ return;
+
+ var @event = args;
+ ActivationVerb verb = new()
+ {
+ Text = Loc.GetString("verb-common-toggle-light"),
+ Icon = new SpriteSpecifier.Texture(new ("/Textures/Interface/VerbIcons/light.svg.192dpi.png")),
+ Act = ent.Comp.Activated
+ ? () => TurnOff(ent)
+ : () => TurnOn(@event.User, ent)
+ };
+
+ args.Verbs.Add(verb);
+ }
+
+ public abstract bool TurnOff(Entity<HandheldLightComponent> ent, bool makeNoise = true);
+ public abstract bool TurnOn(EntityUid user, Entity<HandheldLightComponent> uid);
}