Makes PlaceableSurface ECS

This commit is contained in:
Vera Aguilera Puerto
2021-08-20 10:21:39 +02:00
parent 3610abecbd
commit fd8872cc4e
9 changed files with 207 additions and 297 deletions

View File

@@ -0,0 +1,51 @@
using System;
using Robust.Shared.Analyzers;
using Robust.Shared.GameObjects;
using Robust.Shared.GameStates;
using Robust.Shared.Maths;
using Robust.Shared.Players;
using Robust.Shared.Serialization;
using Robust.Shared.Serialization.Manager.Attributes;
using Robust.Shared.ViewVariables;
namespace Content.Shared.Placeable
{
[RegisterComponent, NetworkedComponent]
[Friend(typeof(PlaceableSurfaceSystem))]
public class PlaceableSurfaceComponent : Component
{
public override string Name => "PlaceableSurface";
[ViewVariables]
[DataField("isPlaceable")]
public bool IsPlaceable { get; set; } = true;
[ViewVariables]
[DataField("placeCentered")]
public bool PlaceCentered { get; set; }
[ViewVariables]
[DataField("positionOffset")]
public Vector2 PositionOffset { get; set; }
public override ComponentState GetComponentState(ICommonSession session)
{
return new PlaceableSurfaceComponentState(IsPlaceable,PlaceCentered, PositionOffset);
}
}
[Serializable, NetSerializable]
public class PlaceableSurfaceComponentState : ComponentState
{
public readonly bool IsPlaceable;
public readonly bool PlaceCentered;
public readonly Vector2 PositionOffset;
public PlaceableSurfaceComponentState(bool placeable, bool centered, Vector2 offset)
{
IsPlaceable = placeable;
PlaceCentered = centered;
PositionOffset = offset;
}
}
}