Merge branch 'master' into expl_int_analyzer

This commit is contained in:
Pieter-Jan Briers
2021-02-08 22:46:28 +01:00
140 changed files with 3622 additions and 1208 deletions

View File

@@ -4,7 +4,7 @@ using Robust.Shared.Serialization;
namespace Content.Shared.GameObjects.Components.ActionBlocking
{
public class SharedHandcuffComponent : Component
public abstract class SharedHandcuffComponent : Component
{
public override string Name => "Handcuff";
public override uint? NetID => ContentNetIDs.HANDCUFFS;

View File

@@ -12,13 +12,13 @@ namespace Content.Shared.GameObjects.Components.GUI
{
public override string Name => "Stripping";
public bool CanDragDropOn(DragDropEventArgs eventArgs)
bool IDragDropOn.CanDragDropOn(DragDropEventArgs eventArgs)
{
if (!eventArgs.Dragged.TryGetComponent(out SharedStrippableComponent? strippable)) return false;
return strippable.CanBeStripped(Owner);
}
public bool DragDropOn(DragDropEventArgs eventArgs)
bool IDragDropOn.DragDropOn(DragDropEventArgs eventArgs)
{
// Handled by StrippableComponent
return true;

View File

@@ -0,0 +1,33 @@
using Content.Shared.GameObjects.EntitySystems.ActionBlocker;
using Robust.Shared.GameObjects;
using Robust.Shared.Serialization;
namespace Content.Shared.GameObjects.Components.Mobs.Speech
{
[RegisterComponent]
public class SharedEmotingComponent : Component, IActionBlocker
{
private bool _enabled = true;
public override string Name => "Emoting";
public bool Enabled
{
get => _enabled;
set
{
if (_enabled == value) return;
_enabled = value;
Dirty();
}
}
bool IActionBlocker.CanEmote() => Enabled;
public override void ExposeData(ObjectSerializer serializer)
{
base.ExposeData(serializer);
serializer.DataField(this, x => x.Enabled, "enabled", true);
}
}
}

View File

@@ -0,0 +1,36 @@
using Content.Shared.GameObjects.EntitySystems.ActionBlocker;
using Robust.Shared.GameObjects;
using Robust.Shared.Serialization;
namespace Content.Shared.GameObjects.Components.Mobs.Speech
{
/// <summary>
/// Component required for entities to be able to speak.
/// </summary>
[RegisterComponent]
public class SharedSpeechComponent : Component, IActionBlocker
{
private bool _enabled = true;
public override string Name => "Speech";
public bool Enabled
{
get => _enabled;
set
{
if (_enabled == value) return;
_enabled = value;
Dirty();
}
}
bool IActionBlocker.CanSpeak() => Enabled;
public override void ExposeData(ObjectSerializer serializer)
{
base.ExposeData(serializer);
serializer.DataField(this, x => x.Enabled, "enabled", true);
}
}
}

View File

@@ -0,0 +1,29 @@
using Robust.Shared.GameObjects;
using Robust.Shared.Map;
using Robust.Shared.Maths;
namespace Content.Shared.GameObjects.Components.Movement
{
[RegisterComponent]
[ComponentReference(typeof(IMoverComponent))]
public class SharedDummyInputMoverComponent : Component, IMoverComponent
{
public override string Name => "DummyInputMover";
public float CurrentWalkSpeed => 0f;
public float CurrentSprintSpeed => 0f;
public float CurrentPushSpeed => 0f;
public float GrabRange => 0f;
public bool Sprinting => false;
public (Vector2 walking, Vector2 sprinting) VelocityDir => (Vector2.Zero, Vector2.Zero);
public EntityCoordinates LastPosition { get; set; }
public float StepSoundDistance { get; set; }
public void SetVelocityDirection(Direction direction, ushort subTick, bool enabled)
{
}
public void SetSprinting(ushort subTick, bool walking)
{
}
}
}

View File

@@ -1,8 +1,11 @@
#nullable enable
using Robust.Shared.GameObjects;
using System;
using Robust.Shared.Serialization;
namespace Content.Shared.GameObjects.Components.Tag
{
[Serializable, NetSerializable]
public class TagComponentState : ComponentState
{
public TagComponentState(string[] tags) : base(ContentNetIDs.TAG)

View File

@@ -1,4 +1,5 @@
using Content.Shared.GameObjects.EntitySystems.EffectBlocker;
using Content.Shared.GameObjects.Components.Mobs.Speech;
using Content.Shared.GameObjects.EntitySystems.EffectBlocker;
using JetBrains.Annotations;
using Robust.Shared.GameObjects.Systems;
using Robust.Shared.Interfaces.GameObjects;
@@ -62,6 +63,9 @@ namespace Content.Shared.GameObjects.EntitySystems.ActionBlocker
public static bool CanSpeak(IEntity entity)
{
if (!entity.HasComponent<SharedSpeechComponent>())
return false;
var canSpeak = true;
foreach (var blocker in entity.GetAllComponents<IActionBlocker>())
@@ -98,6 +102,9 @@ namespace Content.Shared.GameObjects.EntitySystems.ActionBlocker
public static bool CanEmote(IEntity entity)
{
if (!entity.HasComponent<SharedEmotingComponent>())
return false;
var canEmote = true;
foreach (var blocker in entity.GetAllComponents<IActionBlocker>())