Namespace TinyLife.Actions
Classes
- Action
An action is something that a Person does. An action is always derived from an underlying ActionType that contains various action settings. Actions can be queued up for a person (ActionQueue) or currently active (CurrentActions). To create a more complex action, it is best to extend MultiAction. You can find a multitude of action-related events in Person, like OnActionsCompleted.
- ActionArgument
An action variety is a modification to a ActionType that represents a slightly changed version of the generic action type. Action varieties are used, for example, by PrepareFood to determine the kind of food that should be prepared.
- ActionInfo
An action info is a set of information that is required to execute an action
- ActionType
Action types are blueprints for Action instances which can be registered using Register(TypeSettings). An action type contains information about its action and can create an instance using ConstructedType.
- BehaviorAction
A behavior-based action is an Action that invokes an underlying ActionBehavior in the appropriate places. This type of action can be useful for when an action uses a basic behavior, but does a more complex additional action. See BehaviorAction<T> for a generic version with some additional functionality.
- BehaviorAction<T>
A generic version of BehaviorAction<T> with some additional functionality. If the chosen behavior type
T
does not have a constructor that only accepts an Action as an argument, the Behavior property has to be set manually in the subclass constructor.
- ChoicePromptInfo
A choice prompt info is a set of data that can be used in OpenChoicePrompt(ChoicePromptInfo) to display a set of options to the player, one of which is randomly chosen to be "correct", causing a positive effect to happen. Choice prompts are used by JobType, but can also be used in custom circumstances.
- ChoicePromptInfo.Option
An option is a possible action and outcome for a ChoicePromptInfo. It is randomly chosen to be correct or incorrect, based on a multitude of factors that can be specified in the constructors.
- CleanEverythingAction
An action is something that a Person does. An action is always derived from an underlying ActionType that contains various action settings. Actions can be queued up for a person (ActionQueue) or currently active (CurrentActions). To create a more complex action, it is best to extend MultiAction. You can find a multitude of action-related events in Person, like OnActionsCompleted.
- DebugAction
An abstract class that can be used to easily create debug-only actions that are available when ShowDebugActions is enabled. A debug action type should be created using Create(string, ObjectCategory, Type, CanExecuteDelegate).
- DeferredAction
A deferred action is an Action that, when started, invokes an underlying action using UnderlyingActionHandler. This is useful for situations where a MultiActionHandler would construct an action prematurely, before its ActionInfo is properly available.
- DieAction
An action that is invoked when a Person should Die(DeathReason). All default DeathReason values are handled by this action. To enqueue this action efficiently, use Enqueue(Person, DeathReason).
- DiscardHeldItemAction
A typeless action that can be used to make tinies get rid of the item that they're currently holding before starting their action, using MultiAction. To add custom default ways of discarding an item, they can be added to the DiscardActions collection.
- DriveAction
A drive action is the action that gets executed by GoHere if the distance long enough to drive. This action involves a Tiny getting into a Vehicle that this action spawns, driving on a road and then exiting and deleting the Vehicle.
- Emote
An emote is a graphic that can be displayed in a bubble over a Person, usually as part of a conversation.
- GoHereAction
A go here action is an action that uses two underlying actions for its execution: an action where a person walks to a goal and an action where a person drives to a goal. This is the action class used by GoHere.
- HelpAction
An action class derived from SocialAction that represents a complex action that involves a person being helped by a helper, and that can be started from both parties ("Ask for Help" and "Offer Help"). An action type for actions of this class should be created using CreateActions(string, ObjectCategory, Type, CanExecuteDelegate, CanExecuteDelegate, AiSettings?, AiSettings?).
- HoldingPersonAction
This is a SocialAction with additional capabilities that can be used for actions that involve one Person picking up and holding another Person, especially babies.
- MultiAction
A multi action is an action that can have different actions executed before and/or after itself. This is quite useful if an action requires a Person to go somewhere to pick up an item etc.
- OrderFromStaffAction
An abstract action class that allows creating actions where a Person orders a given item from a LotEmployment employee. This action expects the employee to then execute an action that leaves them with an item in their hand that can be passed to the one who submitted the order.
- OutOfTownAction
An out-of-town action is an action where the Person finds the closest exit road and then exits the city using that road. Out-of-town actions are things like going to work, where the destination location isn't visible to the player.
- PathfindAction
A pathfinding action is an action that first finds a path and then allows that path to be traversed. The pathfinding is done using MLEM.Pathfinding.AStar2.
- PathfindToPersonAction
An Action that causes the underlying Person to pathfind to another person repeatedly until they have reached them, or until GetMaxPathfindTime() is up. This action is used by SocialAction.
- PutAwayAction
An action class used by PutAway. This action is exposed to allow the addition of custom put-away-able items by adding them to the Items collection.
- SellAction
The Sell action is an action that includes Person of the action picking up the item (if they're not already holding it), and then carrying it to a mailbox and selling it there. To add new sellable items for this action type to support, you can add them to the Items collection.
- SimpleBehaviorAction
A simple behavior action is a BehaviorAction that can be constructed simply without requiring a custom class that extends BehaviorAction. It does this through the Create(ActionSettings) method, similarly to TalkAction.
- SitAction
A sit action is an action in which someone perpetually sits on an object while the action is being executed. This action is the base class used for SitToilet's action class. Note that, for desk object interactions and interactions with movable held items, WorkAtDeskObjectBehavior or GetAndSitDownBehavior should be used instead.
- SocialAction
A social action is an action that involves two Person instances. Before a social action "actually" starts, both parties have to have the action as their current action. For this to happen, the person that initiates the action follows the Partner until they reach them (or give up).
- SocialAction.StartPartnerAction
An action is something that a Person does. An action is always derived from an underlying ActionType that contains various action settings. Actions can be queued up for a person (ActionQueue) or currently active (CurrentActions). To create a more complex action, it is best to extend MultiAction. You can find a multitude of action-related events in Person, like OnActionsCompleted.
- StoreAction
The Store action can be invoked by a Person, causing them to walk to the object, pick it up and then store it into their Household's FurnitureStorage. To add new items that have this ability, you can add them to the Items collection.
- TalkAction
TalkAction is a generic social action with a set of pre-defined parameters. Things like PersonalityType and Charisma automatically influence this interaction's FriendshipGain and GoBadlyChance. Create(string, Func<Person, float>, TalkSettings) should be used to create a talk action.
- TellPeopleToLeaveRoomAction
An action that causes the current Person to tell everyone else who is currently in the room to leave it. When initializing this action, a set of ExcludedPeople can optionally be specified.
- TryGoHereAction
This action is similar to GoHereAction, but considers all involved locations (GetInvolvedLocations()) rather than a single position. The action's Person will then try to pathfind to each one of the positions in a random order, until one of them is valid, and go to it.
- WalkAction
A walk action is the action that gets executed by GoHere if the distance is short enough, or before and after driving part of the way to the action location.
- WatchTvAction
Watch tv action is the action that is created by the WatchTv action types. This action class is exposed as its behavior is rather complex, taking into account the possible locations that a person can stand or sit while watching TV. See GetViewers(Furniture, int), GetViewingArea(Furniture, int) and GetSeating(Person, Furniture, int) for more information.
- WorkAction
A work action is the action that is used for Job instances when a person goes to work
Structs
- ActionType.AiSettings
A set of settings that ActionType.TypeSettings uses to determine how PersonAi should deal with this ActionType
- ActionType.TypeSettings
A struct that contains information about an ActionType
- CanExecuteResult
A utility structure used by ActionType.CanExecuteDelegate and other situations where an action can fail, or fail to start, due to a specific circumstance. The Name of the CanExecuteResult will be localized and displayed to the player if the CanExecuteResult.ResultType is not Hidden or Valid.
- SimpleBehaviorAction.ActionSettings
A struct used by SimpleBehaviorAction's Create(ActionSettings) method to pass settings onto a simple behavior action.
- TalkAction.TalkSettings
Additional settings for TalkAction, used by Create(string, Func<Person, float>, TalkSettings)
Enums
- CanExecuteResult.ResultType
A type of result that a CanExecuteResult can have. In general, custom CanExecuteResult instances will have the Invalid result type, as Valid and Hidden are already covered by their respective CanExecuteResult counterparts.
- CompletionType
An enumeration that represents the various states that an Action can be in.
- EmoteCategory
A flag enumeration that represents the types of Emote that are available
- MultiAction.Stage
An enumeration that defines the stage that a MultiAction is currently in.
- WatchTvAction.Channel
An enumeration that represents channels that a tv can display in WatchTvAction
Delegates
- ActionType.CanExecuteDelegate
A delegate method used for CanExecute
- TalkAction.TalkSettings.EvaluationResult
A delegate that is used for EvaluateSimple(Action, Person, float, float) and EvaluateFully(SocialAction).