Show / Hide Table of Contents

Class BedComponent

Handles sleep for player through bed objects with MountComponent and SleepManager and has a button to open the sleep manager.

Inheritance
System.Object
WorldObjectComponent
BedComponent
Implements
ILinkable
IOwned
IController
IViewController
IHasUniversalID
IHasSerializableID
IRPCAuthChecks
System.ComponentModel.INotifyPropertyChanged
IThreadSafeSubscriptions
ISubscriptions<ThreadSafeSubscriptions>
ISubscriptions
IHasInteractions
IPickupConfirmationComponent
Inherited Members
WorldObjectComponent.IsRPCAuthorized(IWorldObserver, AccessType, Object[])
WorldObjectComponent.PostInitialize()
WorldObjectComponent.OnCreate()
WorldObjectComponent.Tick()
WorldObjectComponent.LateTick()
WorldObjectComponent.TryPickup(Player, InventoryChangeSet, Inventory, Boolean)
WorldObjectComponent.OnBeforeObjectMoved()
WorldObjectComponent.OnAfterObjectMoved()
WorldObjectComponent.OnLinkClicked(TooltipOrigin, TooltipClickContext, User)
WorldObjectComponent.UILinkContent()
WorldObjectComponent.Parent
WorldObjectComponent.Name
WorldObjectComponent.IconName
WorldObjectComponent.ForceActiveTab
WorldObjectComponent.ComponentPrefabName
WorldObjectComponent.ComponentTabName
WorldObjectComponent.Enabled
WorldObjectComponent.IsDestroyed
WorldObjectComponent.ShouldRequestEverything
WorldObjectComponent.Owners
WorldObjectComponent.ControllerID
WorldObjectComponent.IOwned.Deed
WorldObjectComponent.Subscriptions
WorldObjectComponent.PropertyChanged
Namespace: Eco.Gameplay.Components
Assembly: Eco.Gameplay.dll
Syntax
[ChatCommandHandler]
[RequireComponent]
public class BedComponent : WorldObjectComponent, ILinkable, IOwned, IController, IViewController, IHasUniversalID, IHasSerializableID, IRPCAuthChecks, INotifyPropertyChanged, IThreadSafeSubscriptions, ISubscriptions<ThreadSafeSubscriptions>, ISubscriptions, IHasInteractions, IPickupConfirmationComponent

Constructors

BedComponent()

Declaration
public BedComponent()

Properties

Availability

Declaration
public override WorldObjectComponentClientAvailability Availability { get; }
Property Value
Type Description
WorldObjectComponentClientAvailability
Overrides
WorldObjectComponent.Availability

HasFreeSpace

Make check for free space by checking SleepingUsers with seats count in MountComponent due to beds depend on MountComponent and have no own max seats count.

Declaration
public bool HasFreeSpace { get; }
Property Value
Type Description
System.Boolean

MountComponent

Returns MountComponent. Cannot return null, because it's required.

Declaration
public MountComponent MountComponent { get; }
Property Value
Type Description
MountComponent

SleepingUsers

Stores users as value and seat number that is occupied by user as key.

Declaration
public ControllerDictionary<int, User> SleepingUsers { get; }
Property Value
Type Description
ControllerDictionary<System.Int32, User>

Methods

Bed(User)

Declaration
[ChatSubCommand]
public static Task Bed(User user)
Parameters
Type Name Description
User user
Returns
Type Description
System.Threading.Tasks.Task

Destroy()

To avoid awkward behaviour wakes all players on current bed on destroy.

Declaration
public override void Destroy()
Overrides
WorldObjectComponent.Destroy()

GetComponentPickupConfirmation()

Returns confirmation popup text for player that want to pickup bed with sleeping players.

Declaration
public LocString GetComponentPickupConfirmation()
Returns
Type Description
LocString

Initialize()

Declaration
public override void Initialize()
Overrides
WorldObjectComponent.Initialize()

OnPickup(Player)

To avoid awkward behaviour wakes all users in current bed on pickup.

Declaration
public override void OnPickup(Player player)
Parameters
Type Name Description
Player player
Overrides
WorldObjectComponent.OnPickup(Player)

Sleep(Player)

Use this for player to sleep in bed only. Uses MountComponent.

Declaration
public bool Sleep(Player player)
Parameters
Type Name Description
Player player
Returns
Type Description
System.Boolean

SleepInteraction(Player, InteractionTriggerInfo, InteractionTarget)

Declaration
[Interaction]
public void SleepInteraction(Player player, InteractionTriggerInfo trigger, InteractionTarget target)
Parameters
Type Name Description
Player player
InteractionTriggerInfo trigger
InteractionTarget target

Wake(User)

Dismounts user from bed, removes from list of "sleepers", removes OnEnterWorld sub. Wakes user in SleepManager

Declaration
public void Wake(User user)
Parameters
Type Name Description
User user

Implements

ILinkable
IOwned
IController
IViewController
IHasUniversalID
IHasSerializableID
IRPCAuthChecks
System.ComponentModel.INotifyPropertyChanged
IThreadSafeSubscriptions
ISubscriptions<TSubscriptionsList>
ISubscriptions
IHasInteractions
IPickupConfirmationComponent

Extension Methods

TagUtils.TagNames(Object, Boolean)
TagUtils.TagDisplayNames(Object, Boolean)
ClientSetViewExtensions.SetClassOfProperty(Object, Player, String, String, Int32)
TypeTooltipExtensions.UILinkGeneric(Object)
☀
☾
In This Article
Back to top
Copyright (c) Strange Loop Games 2021
☀
☾