Files
tbd-station-14/Content.Shared/GameObjects/Components/Storage/SharedStorageComponent.cs
indeano 2d23c6a45e Some work on directing storage component's client updates (#75)
* adds storage system, primitive client-unsubscribing of storage updates

* strips out currently unneeded system

* channel to actor

* closestorageui todo added

* thorough logging, actor to session, validates session before sending packets

* offloads session status check to an event handler
2018-06-20 15:49:13 -05:00

73 lines
2.0 KiB
C#

using SS14.Shared.GameObjects;
using SS14.Shared.Serialization;
using System;
using System.Collections.Generic;
namespace Content.Shared.GameObjects.Components.Storage
{
public abstract class SharedStorageComponent : Component
{
public sealed override string Name => "Storage";
public override uint? NetID => ContentNetIDs.INVENTORY;
}
/// <summary>
/// Updates the client component about what entities this storage is holding
/// </summary>
[Serializable, NetSerializable]
public class StorageHeldItemsMessage : ComponentMessage
{
public readonly int StorageSizeMax;
public readonly int StorageSizeUsed;
public Dictionary<EntityUid, int> StoredEntities;
public StorageHeldItemsMessage(Dictionary<EntityUid, int> storedentities, int storageused, int storagemaxsize)
{
Directed = true;
StorageSizeMax = storagemaxsize;
StorageSizeUsed = storageused;
StoredEntities = storedentities;
}
}
/// <summary>
/// Component message for removing a contained entity from the storage entity
/// </summary>
[Serializable, NetSerializable]
public class RemoveEntityMessage : ComponentMessage
{
public EntityUid EntityUid;
public RemoveEntityMessage(EntityUid entityuid)
{
Directed = true;
EntityUid = entityuid;
}
}
/// <summary>
/// Component message for opening the storage UI
/// </summary>
[Serializable, NetSerializable]
public class OpenStorageUIMessage : ComponentMessage
{
public OpenStorageUIMessage()
{
Directed = true;
}
}
/// <summary>
/// Component message for closing the storage UI.
/// E.g when the player moves too far away from the container.
/// </summary>
[Serializable, NetSerializable]
public class CloseStorageUIMessage : ComponentMessage
{
public CloseStorageUIMessage()
{
Directed = true;
}
}
}