Show / Hide Table of Contents

Class PartsComponent

A component that defines a set of parts that reduce in durability over time, and must have durability or else the object will disable.

Inheritance
System.Object
WorldObjectComponent
PartsComponent
Implements
ILinkable
IOwned
IController
IViewController
IHasUniversalID
IHasSerializableID
IRPCAuthChecks
System.ComponentModel.INotifyPropertyChanged
IThreadSafeSubscriptions
ISubscriptions<ThreadSafeSubscriptions>
ISubscriptions
IHasInteractions
IHasEnvVars
IPersistentData
IComponentDurability
Inherited Members
WorldObjectComponent.IsRPCAuthorized(IWorldObserver, AccessType, Object[])
WorldObjectComponent.PostInitialize()
WorldObjectComponent.OnCreate()
WorldObjectComponent.Destroy()
WorldObjectComponent.Tick()
WorldObjectComponent.LateTick()
WorldObjectComponent.TryPickup(Player, InventoryChangeSet, Inventory, Boolean)
WorldObjectComponent.OnPickup(Player)
WorldObjectComponent.OnBeforeObjectMoved()
WorldObjectComponent.OnAfterObjectMoved()
WorldObjectComponent.OnLinkClicked(TooltipOrigin, TooltipClickContext, User)
WorldObjectComponent.UILinkContent()
WorldObjectComponent.Parent
WorldObjectComponent.Name
WorldObjectComponent.IconName
WorldObjectComponent.ForceActiveTab
WorldObjectComponent.ComponentPrefabName
WorldObjectComponent.ComponentTabName
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]
[RequireComponent]
public class PartsComponent : WorldObjectComponent, ILinkable, IOwned, IController, IViewController, IHasUniversalID, IHasSerializableID, IRPCAuthChecks, INotifyPropertyChanged, IThreadSafeSubscriptions, ISubscriptions<ThreadSafeSubscriptions>, ISubscriptions, IHasInteractions, IHasEnvVars, IPersistentData, IComponentDurability

Constructors

PartsComponent()

Declaration
public PartsComponent()

Fields

ConsumeWithoutDelay

Declaration
public bool ConsumeWithoutDelay
Field Value
Type Description
System.Boolean

DurabilityConsumed

Declaration
public ThreadSafeAction DurabilityConsumed
Field Value
Type Description
ThreadSafeAction

Properties

AllPartsPresent

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

AllPartsWorking

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

Availability

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

DecayMultiplier

Declaration
public virtual float DecayMultiplier { get; set; }
Property Value
Type Description
System.Single

Description

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

Enabled

Declaration
public override bool Enabled { get; }
Property Value
Type Description
System.Boolean
Overrides
WorldObjectComponent.Enabled

Parts

Declaration
public AuthorizationInventory Parts { get; }
Property Value
Type Description
AuthorizationInventory

PartsRequired

Declaration
public PartsComponent.PartInfo[] PartsRequired { get; }
Property Value
Type Description
PartsComponent.PartInfo[]

PersistentData

Declaration
public object PersistentData { get; set; }
Property Value
Type Description
System.Object

SkillReqs

Requirements to replace parts, if configured in settings. Any may match.

Declaration
public RepairRequiresSkillAttribute[] SkillReqs { get; }
Property Value
Type Description
RepairRequiresSkillAttribute[]

Methods

Config(Func<LocString>, PartsComponent.PartInfo[])

Declaration
public void Config(Func<LocString> decayDescription, params PartsComponent.PartInfo[] partsRequired)
Parameters
Type Name Description
System.Func<LocString> decayDescription
PartsComponent.PartInfo[] partsRequired

ConsumeDurabilityAccumulated(User, Double)

Called by sibling components to consume in an acculumating way, so it doesnt make syncable changed too frequently.

Declaration
public void ConsumeDurabilityAccumulated(User user, double amountToConsume)
Parameters
Type Name Description
User user
System.Double amountToConsume

ConsumeDurabilityNow(User, Single)

Called by sibling components to reduce the durability of all our parts when an action is performed. Should be used only for large consumptions, otherwise use the ConsumeDurability function which will accumulate changes to reduce updates.

Declaration
public void ConsumeDurabilityNow(User user, float amountToConsume)
Parameters
Type Name Description
User user
System.Single amountToConsume

Initialize()

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

MinDurability()

Declaration
public float MinDurability()
Returns
Type Description
System.Single

MinDurabilityPercent()

Declaration
public float MinDurabilityPercent()
Returns
Type Description
System.Single

None()

Declaration
[Interaction]
public void None()

SetPartDecayMult(User, Single, Boolean, Single)

Declaration
[ChatSubCommand]
public static void SetPartDecayMult(User user, float multiplier = 100F, bool consumeWithoutDelay = true, float radius = 20F)
Parameters
Type Name Description
User user
System.Single multiplier
System.Boolean consumeWithoutDelay
System.Single radius

TotalDurability()

Return the weighted average durability of all installed parts.

Declaration
public float TotalDurability()
Returns
Type Description
System.Single

WornParts(User)

Declaration
[EnvVar]
public AuthorizationInventory WornParts(User user)
Parameters
Type Name Description
User user
Returns
Type Description
AuthorizationInventory

Explicit Interface Implementations

IComponentDurability.Durability

Declaration
float IComponentDurability.Durability { get; }
Returns
Type Description
System.Single

Implements

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

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
☀
☾