move the API to the repo itself because the wikis don't support folders, annoyingly

This commit is contained in:
Ell 2021-02-17 00:17:57 +01:00
parent b4feb0a515
commit 30cc17bdda
114 changed files with 4284 additions and 1 deletions

194
Api/README.md Normal file
View file

@ -0,0 +1,194 @@
# [TinyLifeApi](./README.md)
## Namespaces
### TinyLife
- [`GameImpl`](./TinyLife/GameImpl.md)
- The main class for Tiny Life, which houses a set of important game-wide properties.
- [`Localization`](./TinyLife/Localization.md)
- A class that houses the currently loaded language as well as allows for switching the currently selected language
- [`Need`](./TinyLife/Need.md)
- A need is a desire that a `TinyLife.Objects.Person` can have to a given extent, defined by `TinyLife.Need.Value`. Each need is instantiated through its associated `TinyLife.NeedType`.
- [`NeedType`](./TinyLife/NeedType.md)
- A need is a desire that a `TinyLife.Objects.Person` can have to a given extent. To register a custom need type, use `TinyLife.NeedType.Register(TinyLife.NeedType)`.
- [`Options`](./TinyLife/Options.md)
- The game's options, which are displayed in the `TinyLife.Uis.Menus.InitializeOptions(MLEM.Ui.UiSystem,System.Boolean,System.Boolean)` menu and saved to disk
- [`PerSaveOptions`](./TinyLife/PerSaveOptions.md)
- The game's per-save options, which are displayed in the `TinyLife.Uis.Menus.InitializeOptions(MLEM.Ui.UiSystem,System.Boolean,System.Boolean)` menu and saved to disk. Note that `TinyLife.PerSaveOptions.Instance` is null if there is no `TinyLife.GameImpl.Map` loaded.
- [`PersonalityType`](./TinyLife/PersonalityType.md)
- A personality type is a trait that a `TinyLife.Objects.Person` can have. Each personality type is meant to influence the person's behavior and abilities slightly in a certain way.
- [`Relationship`](./TinyLife/Relationship.md)
- A relationship is a connection between two `TinyLife.Objects.Person` objects. It should be noted that a relationship is not always the same between a person and the linked `TinyLife.Relationship.OtherPerson`. What this means is that A can have a good relationship to B, but B can have a less good relationship to A.
### World
- [`Door`](./TinyLife/World/Door.md)
- [`ExportedHousehold`](./TinyLife/World/ExportedHousehold.md)
- This class represents an exported version of a `TinyLife.World.Household`, storing all of the `TinyLife.World.Map`-independent data.
- [`ExportedLot`](./TinyLife/World/ExportedLot.md)
- An exported lot is all of the relevant data of a `TinyLife.World.Lot` that should be exported to a file when clicking the "Export" button in the build menu. To create an exported lot from a lot, use `TinyLife.World.Lot.Export`.
- [`Household`](./TinyLife/World/Household.md)
- A household is a set of `TinyLife.Objects.Person` instances that live together on the same `TinyLife.World.Household.Lot`
- [`IPricedObject`](./TinyLife/World/IPricedObject.md)
- A priced object is an object that has a floating point price value attached to it. In the world of Tiny Life, prices are written as "tiny bucks", but they don't necessarily resemble the prices of the American dollar.
- [`Lot`](./TinyLife/World/Lot.md)
- A lot is a designated area in the world (created using the `TinyLife.Tools.LotTool`). In the way it works, it acts similarly to a small `TinyLife.World.Map`, allowing the retrieval of various object types only in its designated area. A lot has a `TinyLife.World.LotType`, which determines what things can be done on the lot.
- [`LotType`](./TinyLife/World/LotType.md)
- A lot type is data for a `TinyLife.World.Lot` that determines the required furniture on the lot as well as whether the lot is residential or not. Additionally, custom lot types can define different reasons and interactions for `TinyLife.Objects.Person` objects to visit lots of the type.
- [`Map`](./TinyLife/World/Map.md)
- A map holds all of the data about a city, like its tiles, its objects and its roads. A map is split into `TinyLife.World.MapSection` objects which allows faster retrieval of objects in an area.
- [`MapSection`](./TinyLife/World/MapSection.md)
- A map section is a small area in a `TinyLife.World.MapSection.Map` that actually contains the area's objects. A map section is always `TinyLife.World.MapSection.Size`x`TinyLife.World.MapSection.Size` tiles large.
- [`Opening`](./TinyLife/World/Opening.md)
- An opening is some sort of extrusion in a `TinyLife.World.Wall`, like a window or a door. Openings are created from their underlying `TinyLife.World.OpeningType`.
- [`OpeningType`](./TinyLife/World/OpeningType.md)
- An opening is some sort of extrusion in a `TinyLife.World.Wall`, like a window or a door. An opening type stores data that can be used to construct a `TinyLife.World.Opening` instance.
- [`Roof`](./TinyLife/World/Roof.md)
- A roof is an object on a `TinyLife.World.Map` that is on a higher level and cannot be interacted with by people
- [`Room`](./TinyLife/World/Room.md)
- A room is an area on a `TinyLife.World.Room.Map` that is surrounded by `TinyLife.World.Wall` objects
- [`Tile`](./TinyLife/World/Tile.md)
- A tile is an object on a `TinyLife.World.Map` that represents the covering of the ground (or the ground itself)
- [`Wall`](./TinyLife/World/Wall.md)
- A wall is an element of a `TinyLife.World.Map` that stops traversal and that has a `TinyLife.World.Wallpaper` and optionally an `TinyLife.World.Wall.Opening` attached to it.
- [`Wallpaper`](./TinyLife/World/Wallpaper.md)
- A wallpaper is a single-instanced object that can be attached to a `TinyLife.World.Wall`, which makes the wall render a different texture. To register custom wallpapers, use `TinyLife.World.Wallpaper.Register(System.String,System.Int32,MLEM.Textures.UniformTextureAtlas,Microsoft.Xna.Framework.Point,TinyLife.Utilities.ColorScheme,MLEM.Textures.TextureRegion)`. Note that registered wallpapers need to use a texture generated by `TinyLife.Utilities.TextureHandler.ApplyWallpaperMasks(Microsoft.Xna.Framework.Graphics.Texture2D,System.Int32,System.Int32,System.Action{MLEM.Textures.UniformTextureAtlas})`.
### Utilities
- [`ColorScheme`](./TinyLife/Utilities/ColorScheme.md)
- A color scheme is a list of `Microsoft.Xna.Framework.Color` instances with which an object can be colored. By default, a set of color schemes exist (defined in this class), but new ones can be created easily using `TinyLife.Utilities.ColorScheme.Create(System.Object[])`.
- [`Extensions`](./TinyLife/Utilities/Extensions.md)
- A set of extensions for dealing with various things required by Tiny Life.
- [`StaticJsonConverter`](./TinyLife/Utilities/StaticJsonConverter-1.md)\<[`T`](./README.md)>
- A `Newtonsoft.Json.JsonConverter`1` that doesn't actually serialize the object, but instead serializes the name given to it by the underlying `System.Collections.Generic.Dictionary`2`.
- [`TextureHandler`](./TinyLife/Utilities/TextureHandler.md)
- The texture handler stores data for the game's textures, including all of the game's internal textures and various utility methods. It also stores the game's `MLEM.Data.RuntimeTexturePacker` which is used to pack all textures into a big texture for performance.
### Uis
- [`CharacterCreator`](./TinyLife/Uis/CharacterCreator.md)
- The character creator is displayed when a person (or household) is being edited in terms of their `TinyLife.Objects.Clothes` and `TinyLife.PersonalityType`s.
- [`Cursor`](./TinyLife/Uis/Cursor.md)
- The Cursor class contains ways to change the `Microsoft.Xna.Framework.Input.MouseCursor` visuals to different `TinyLife.Uis.CursorType` values
- [`Notifications`](./TinyLife/Uis/Notifications.md)
- This class holds information about the current and past notifications that are displayed in the top center of the screen. To create custom notifications, use `TinyLife.Uis.Notifications.Add(TinyLife.Objects.MapObject,System.String)` or `TinyLife.Uis.Notifications.Add(MLEM.Textures.TextureRegion,System.String)`.
### Tools
- [`FurniturePlacer`](./TinyLife/Tools/FurniturePlacer.md)
- A helper class that represents a tool part which allows the placement and movement of furniture objects. This class is used by `TinyLife.Tools.FurnitureTool` and `TinyLife.Tools.MoveTool`.
- [`FurnitureTool`](./TinyLife/Tools/FurnitureTool.md)
- [`LotTool`](./TinyLife/Tools/LotTool.md)
- [`MoveLotTool`](./TinyLife/Tools/MoveLotTool.md)
- [`MoveTool`](./TinyLife/Tools/MoveTool.md)
- [`OpeningTool`](./TinyLife/Tools/OpeningTool.md)
- [`PlayModeTool`](./TinyLife/Tools/PlayModeTool.md)
- [`RemoveTool`](./TinyLife/Tools/RemoveTool.md)
- [`RoofTool`](./TinyLife/Tools/RoofTool.md)
- [`TileTool`](./TinyLife/Tools/TileTool.md)
- [`Tool`](./TinyLife/Tools/Tool.md)
- A tool is a type of game mode that is currently active. Tools are split up into the `TinyLife.Tools.Tool.PlayModeTool` and `TinyLife.Tools.Tool.BuildTools`, the latter of which holds all tools that can be found in the build menu.
- [`WallpaperTool`](./TinyLife/Tools/WallpaperTool.md)
- [`WallTool`](./TinyLife/Tools/WallTool.md)
### Skills
- [`FoodType`](./TinyLife/Skills/FoodType.md)
- A food type is a type of dish that can be cooked using `TinyLife.Actions.ActionType.GetIngredients`. Food types store information such as their name and texture, but also the cooking level that is required to make them. Food types are registered using `TinyLife.Skills.FoodType.Register(TinyLife.Skills.FoodType)`.
- [`PaintingType`](./TinyLife/Skills/PaintingType.md)
- This class represents a type of `TinyLife.Objects.Painting` that can be created using the `TinyLife.Skills.SkillType.Painting`. Painting types are registered using `TinyLife.Skills.PaintingType.Register(TinyLife.Skills.PaintingType)`.
- [`Skill`](./TinyLife/Skills/Skill.md)
- A skill is an ability that a `TinyLife.Objects.Person` can have which influences their behavior in some way. Skill instances are created from their corresponding `TinyLife.Skills.SkillType`.
- [`SkillType`](./TinyLife/Skills/SkillType.md)
- A skill is an ability that a `TinyLife.Objects.Person` can have which influences their behavior in some way. The SkillType class contains underlying data for a `TinyLife.Skills.Skill` instance, like its name and maximum level.
### Objects
- [`AbstractSpot`](./TinyLife/Objects/AbstractSpot.md)
- An `TinyLife.Objects.AbstractSpot` is a base class for `TinyLife.Objects.ObjectSpot` and `TinyLife.Objects.ActionSpot`.
- [`ActionSpot`](./TinyLife/Objects/ActionSpot.md)
- An action spot is a `TinyLife.Objects.AbstractSpot` extension that is used by `TinyLife.Objects.Furniture` to declare a location that a `TinyLife.Objects.Person` can interact with the furniture at
- [`BreakableFurniture`](./TinyLife/Objects/BreakableFurniture.md)
- Breakable furniture is `TinyLife.Objects.Furniture` that can be `TinyLife.Objects.BreakableFurniture.Broken` and then repaired. An object of this class is automatically returned in `TinyLife.Objects.FurnitureType.Construct(System.Int32[],TinyLife.World.Map,Microsoft.Xna.Framework.Vector2,System.Nullable{System.Guid})` if no `TinyLife.Objects.FurnitureType.TypeSettings.ConstructedType` is set.
- [`Car`](./TinyLife/Objects/Car.md)
- [`Clothes`](./TinyLife/Objects/Clothes.md)
- A set of information and a registry for clothing items (and hair) that a `TinyLife.Objects.Person` can wear. Custom clothes can be registered using `TinyLife.Objects.Clothes.Register(TinyLife.Objects.Clothes)`.
- [`CornerFurniture`](./TinyLife/Objects/CornerFurniture.md)
- Corner furniture is furniture like `TinyLife.Objects.FurnitureType.SimpleCounter` and `TinyLife.Objects.FurnitureType.Hedge` that automatically connect to their neighbors
- [`Fence`](./TinyLife/Objects/Fence.md)
- A fence is a furniture used by things like `TinyLife.Objects.FurnitureType.CountryFence` that auto-connects similarly to `TinyLife.Objects.CornerFurniture`, but by actually adding additional connection textures onto the regular object textures
- [`Food`](./TinyLife/Objects/Food.md)
- [`FoodTypedItem`](./TinyLife/Objects/FoodTypedItem.md)
- [`Furniture`](./TinyLife/Objects/Furniture.md)
- A furniture is an instance of a `TinyLife.Objects.FurnitureType` which is placed in the world, or in a `TinyLife.Objects.Person`'s hand. To register a custom furniture, use `TinyLife.Objects.FurnitureType.Register(TinyLife.Objects.FurnitureType.TypeSettings)`.
- [`FurnitureType`](./TinyLife/Objects/FurnitureType.md)
- A furniture type is basically a blueprint for `TinyLife.Objects.Furniture` objects. Each furniture type can create a furniture instance and the type's data will be transferred to the instance. Furniture types are automatically listed in the `TinyLife.Tools.FurnitureTool` if registered using `TinyLife.Objects.FurnitureType.Register(TinyLife.Objects.FurnitureType.TypeSettings)`.
- [`Gravestone`](./TinyLife/Objects/Gravestone.md)
- [`IUpdatingObject`](./TinyLife/Objects/IUpdatingObject.md)
- This is an interface that can be added to `TinyLife.Objects.MapObject` classes to make them automatically update each update frame. This is used by things like `TinyLife.Objects.Person`, which needs to update for movement etc.
- [`MapObject`](./TinyLife/Objects/MapObject.md)
- An instance of this class represents an object that can be, or is, part of a `TinyLife.Objects.MapObject.Map`. If this object's `TinyLife.Objects.MapObject.Position` is set to -1, -1, that is usually an indicator that the object is currently not in the world.
- [`ObjectSpot`](./TinyLife/Objects/ObjectSpot.md)
- An object spot is a `TinyLife.Objects.AbstractSpot` extension that is used by `TinyLife.Objects.Furniture` to declare a location that another `TinyLife.Objects.Furniture` object can be slotted into. This behavior is used for things like plates on counters, flower pots on bedside tables etc.
- [`Painting`](./TinyLife/Objects/Painting.md)
- [`Particle`](./TinyLife/Objects/Particle.md)
- A particle is a `MLEM.Animations.SpriteAnimation` that can be moved and displayed in world space. A particle is simply a `TinyLife.Objects.MapObject` that does not collide or interact directly with the world, but has all of the same properties. A new particle can be added for display using `TinyLife.Objects.Particle.Spawn(TinyLife.Objects.Particle)`.
- [`Person`](./TinyLife/Objects/Person.md)
- A person is a `TinyLife.Objects.MapObject` placed on a `TinyLife.World.Map` that represents a person. It stores its actions, clothes, data and movement.
- [`PersonAi`](./TinyLife/Objects/PersonAi.md)
- This class holds the artificial intelligence implementation for a `TinyLife.Objects.Person`. The AI automatically selects actions based on their `TinyLife.Actions.ActionType.AiSettings`.
- [`ScreenObject`](./TinyLife/Objects/ScreenObject.md)
- [`WornClothes`](./TinyLife/Objects/WornClothes.md)
- WornClothes is a wrapper around `TinyLife.Objects.Clothes` that additionally stores the colors and whether or not the clothes are from the `TinyLife.World.Household.ClothesStorage` or not
### Mods
- [`Events`](./TinyLife/Mods/Events.md)
- A set of events that can be subscribed to by mods to allow for special handling of certain situations. To have more events added to this list if they're required by your mods, please reach out to Ellpeck. Note that, for events that use an `TinyLife.Mods.EventPhase`, the subscriber needs to make sure that the code only runs for one of the phases, and not both, by checking the current phase.
- [`Mod`](./TinyLife/Mods/Mod.md)
- The base class for all Tiny Life mods. For an example mod, see <see href="https://github.com/Ellpeck/TinyLifeExampleMod" />. Mods are uniquely identified by their ID. The id is the name of the class that extends `TinyLife.Mods.Mod`.
- [`ModInfo`](./TinyLife/Mods/ModInfo.md)
- A mod info is a set of properties that every `TinyLife.Mods.ModInfo.Mod` instance is assigned
- [`ModLoader`](./TinyLife/Mods/ModLoader.md)
- The mod loader loads `TinyLife.Mods.Mod` instances from the `TinyLife.Mods.ModLoader.GetModsFolder`.
### Goals
- [`Job`](./TinyLife/Goals/Job.md)
- A job is a kind of work that a `TinyLife.Goals.Job.Person` can have. The person's current job is accessible using `TinyLife.Objects.Person.Job`. A job instance is constructed from its underlying `TinyLife.Goals.JobType`.
- [`JobType`](./TinyLife/Goals/JobType.md)
- A job type is a singleton containing various kinds of data for a `TinyLife.Goals.Job` instance. New jobs can be registered using `TinyLife.Goals.JobType.Register(TinyLife.Goals.JobType)`.
### Emotions
- [`EmotionModifier`](./TinyLife/Emotions/EmotionModifier.md)
- An emotion modifier stores information about a `TinyLife.Objects.Person`'s current or past actions or events that influenced their `TinyLife.Objects.Person.Emotion` in some way. Each emotion modifier contributes to the person's emotion, and the emotion modifier with the highest combined `TinyLife.Emotions.EmotionModifier.Instance.Amount` determines the person's `TinyLife.Objects.Person.Emotion`. Emotion modifiers can be applied automatically using `TinyLife.Emotions.EmotionModifier.Condition` or manually using `TinyLife.Objects.Person.AddEmotion(TinyLife.Emotions.EmotionModifier,System.Int32,System.TimeSpan)`.
- [`EmotionType`](./TinyLife/Emotions/EmotionType.md)
- An emotion type is a type of feeling that a `TinyLife.Objects.Person` can have. The emotion that a person has results from that person's applied `TinyLife.Emotions.EmotionModifier``TinyLife.Emotions.EmotionModifier.Instance`s.
### Actions
- [`Action`](./TinyLife/Actions/Action.md)
- An action is something that a `TinyLife.Objects.Person` does. An action is always derived from an underlying `TinyLife.Actions.ActionType` that contains various action settings. Actions can be queued up for a person (`TinyLife.Objects.Person.ActionQueue`) or currently active (`TinyLife.Objects.Person.CurrentActions`). To create a more complex action, it is best to extend `TinyLife.Actions.MultiAction`.
- [`ActionInfo`](./TinyLife/Actions/ActionInfo.md)
- An action info is a set of information that is required to execute an action
- [`ActionType`](./TinyLife/Actions/ActionType.md)
- Action types are blueprints for `TinyLife.Actions.Action` instances which can be registered using `TinyLife.Actions.ActionType.Register(TinyLife.Actions.ActionType.TypeSettings)`. An action type contains information about its action and can create an instance using `TinyLife.Actions.ActionType.TypeSettings.Construct`.
- [`ActionVariety`](./TinyLife/Actions/ActionVariety.md)
- An action variety is a modification to a `TinyLife.Actions.ActionType` that represents a slightly changed version of the generic action type. Action varieties are used, for example, by `TinyLife.Actions.ActionType.PrepareFood` to determine the kind of food that should be prepared.
- [`ComputerAction`](./TinyLife/Actions/ComputerAction.md)
- [`DriveAction`](./TinyLife/Actions/DriveAction.md)
- [`Emote`](./TinyLife/Actions/Emote.md)
- An emote is a graphic that can be displayed in a bubble over a `TinyLife.Objects.Person`, usually as part of a conversation.
- [`GetAndSitDownAction`](./TinyLife/Actions/GetAndSitDownAction.md)
- [`GoHereAction`](./TinyLife/Actions/GoHereAction.md)
- [`MultiAction`](./TinyLife/Actions/MultiAction.md)
- 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 `TinyLife.Objects.Person` to go somewhere to pick up an item etc.
- [`OutOfTownAction`](./TinyLife/Actions/OutOfTownAction.md)
- An out-of-town action is an action where the `TinyLife.Objects.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`](./TinyLife/Actions/PathfindAction.md)
- 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`.
- [`SellAction`](./TinyLife/Actions/SellAction.md)
- [`SitAction`](./TinyLife/Actions/SitAction.md)
- [`SitAtDeskObjectAction`](./TinyLife/Actions/SitAtDeskObjectAction.md)
- [`SocialAction`](./TinyLife/Actions/SocialAction.md)
- A social action is an action that involves two `TinyLife.Objects.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 `TinyLife.Actions.SocialAction.Partner` until they reach them (or give up).
- [`TalkAction`](./TinyLife/Actions/TalkAction.md)
- TalkAction is a generic social action with a set of pre-defined parameters. Things like `TinyLife.PersonalityType` and `TinyLife.Skills.SkillType.Charisma` automatically influence this interaction's `TinyLife.Actions.TalkAction.TalkSettings.FriendshipGain` and `TinyLife.Actions.TalkAction.TalkSettings.GoBadlyChance`. `TinyLife.Actions.TalkAction.Create(System.String,System.Func{TinyLife.Objects.Person,System.Int32},TinyLife.Actions.TalkAction.TalkSettings)` should be used to create a talk action.
- [`TellPeopleToLeaveRoomAction`](./TinyLife/Actions/TellPeopleToLeaveRoomAction.md)
- [`UnderlyingAction`](./TinyLife/Actions/UnderlyingAction.md)
- An UnderlyingAction is a class that can instantiate a single `TinyLife.Actions.UnderlyingAction.Action` that will be executed as part of the action it is used in. Note that, when using this class, `TinyLife.Actions.UnderlyingAction.Update(Microsoft.Xna.Framework.GameTime,System.TimeSpan,TinyLife.GameSpeed)` and `TinyLife.Actions.UnderlyingAction.Validate(TinyLife.Objects.Person)` have to be called in the appropriate places.
- [`WalkAction`](./TinyLife/Actions/WalkAction.md)

View file

@ -0,0 +1,69 @@
# [Action](./Action.md)
Namespace: [TinyLife]() > [Actions]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./Action.md)
## Summary
An action is something that a `TinyLife.Objects.Person` does. An action is always derived from an underlying `TinyLife.Actions.ActionType` that contains various action settings. Actions can be queued up for a person (`TinyLife.Objects.Person.ActionQueue`) or currently active (`TinyLife.Objects.Person.CurrentActions`). To create a more complex action, it is best to extend `TinyLife.Actions.MultiAction`.
## Constructors
| Name | Summary |
| --- | --- |
| Action ( [`ActionType`](./ActionType.md), [`ActionInfo`](./ActionInfo.md) ) | Creates a new action from the given `TinyLife.Actions.ActionType` |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [ActionInfo](./ActionInfo.md) | Info | The `TinyLife.Actions.ActionInfo` for this action that contains the clicked (or otherwise targeted) objects and more |
| [ActionType](./ActionType.md) | Type | The `TinyLife.Actions.ActionType` that this action instance derives from |
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [TimeSpan](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan) | ElapsedTime | The amount of in-game time that has elapsed since this action has started |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | IsCurrent | Returns true if this action instance is currently active. This is a shorthand for a `TinyLife.Objects.Person.CurrentActions` containment check. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | IsUnderlying | Stores whether this action is an underlying action of either a `TinyLife.Actions.MultiAction` or a `TinyLife.Actions.UnderlyingAction` |
| [Map](./../World/Map.md) | Map | The `TinyLife.Actions.Action.Map` that this action occurs on |
| [Person](./../Objects/Person.md) | Person | The `TinyLife.Actions.Action.Person` that this action is being executed by |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | StartedAutomatically | If this value is true, this action was started using `TinyLife.Objects.PersonAi` or through another action rather than by the player |
| [Nullable](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[ActionVariety](./ActionVariety.md)> | Variety | The `TinyLife.Actions.ActionVariety` that this action was initialized with. If this is null, then the underlying `TinyLife.Actions.ActionType` has no varieties. |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | CanCancel ( [`Action`](./Action.md) ) | Returns whether or not this action can be canceled by the given outside source. Note that the outside source can be null, and if it is, it means that the player canceled the action manually. By default, actions can only be canceled if the `` is null. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | CanMultitask ( [`Action`](./Action.md) ) | Return true on this method if this action can be multi-tasked along with the passed `TinyLife.Actions.Action`. To actually check this property, `TinyLife.Actions.Action.CanMultitask(TinyLife.Actions.Action,TinyLife.Actions.Action)` should be used as it compares both objects. A multi-tasking is an action that `TinyLife.Actions.Action.IsCurrent` along with another action. By default, multi-tasking is disallowed for any action. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | CausesExtremelyFastSpeed ( ) | Returns true if this action, while it `TinyLife.Actions.Action.IsCurrent`, should cause the `TinyLife.GameSpeed.ExtremelyFast` speed to be available. By default, this method returns false. |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | GetDisplayName ( ) | Returns a localized string that explains this action in short. By default, this method returns `TinyLife.Actions.ActionType.GetDisplayName(TinyLife.Actions.ActionInfo)`. |
| [MapObject](./../Objects/MapObject.md) | GetIconObject ( ) | Returns the map object that is displayed in the action queue in the top left of the screen. Note that this value is ignored if this action's type has a `TinyLife.Actions.ActionType.TypeSettings.Texture`. By default, the `TinyLife.Actions.ActionInfo.GetActionObject``1` is returned. |
| [Action](./Action.md) | GetNextAction ( [`CompletionType`](./Action.md) ) | |
| void | Initialize ( ) | This method is called when the action is first started by a `TinyLife.Actions.Action.Person`. Note that it is not called when the action gets added to the `TinyLife.Objects.Person.ActionQueue`, but when it is moved to `TinyLife.Objects.Person.CurrentActions`. |
| [CompletionType](./Action.md) | IsCompleted ( ) | This method is called every update frame by a `TinyLife.Actions.Action.Person` if this action `TinyLife.Actions.Action.IsCurrent` to check if it should be stopped. If this returns a result other than `TinyLife.Actions.Action.CompletionType.Completed`, `TinyLife.Actions.Action.OnCompleted(TinyLife.Actions.Action.CompletionType)` will be called and the action is stopped. By default, only `TinyLife.Actions.Action.ForceFail` modifies the completion type, otherwise `TinyLife.Actions.Action.CompletionType.Active` is returned. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | IsFullyInProgress ( ) | Returns whether this action is currently "properly" in progress. This is used by `TinyLife.Actions.MultiAction` and `TinyLife.Actions.SocialAction` and returns true only once the first actions are completed or the conversation has started, respectively. By default, this method returns true if `TinyLife.Actions.Action.GetInProgressTime` is greater than `System.TimeSpan.Zero`. |
| void | OnCompleted ( [`CompletionType`](./Action.md) ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | TryForceFail ( [`CanExecuteResult`](./Action.md) ) | |
| void | Update ( [`GameTime`](./Action.md), [`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan), [`GameSpeed`](./../GameSpeed.md) ) | This method is called every update frame if this action `TinyLife.Actions.Action.IsCurrent`. By default, only the `TinyLife.Actions.Action.ElapsedTime` is modified in this method and `TinyLife.Objects.MapObject.ActionUpdate(TinyLife.Actions.Action,Microsoft.Xna.Framework.GameTime,System.TimeSpan,TinyLife.GameSpeed,System.Boolean)` is called. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | Validate ( [`Person`](./../Objects/Person.md) ) | Validates this action's data. This is called when a map is loaded from disk. When returning false on this method, the action is removed from the `TinyLife.Actions.Action.Person`. |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | CanMultitask ( [`Action`](./Action.md), [`Action`](./Action.md) ) | A utility method that can be used whether the two `TinyLife.Actions.Action` instances can currently be invoked together. Internally, this checks if both actions return true on `TinyLife.Actions.Action.CanMultitask(TinyLife.Actions.Action)`. |
| [IEnumerable](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IEnumerable-1)\<[Furniture](./../Objects/Furniture.md)> | FindAllFreeFurniture ( [`Person`](./../Objects/Person.md), [`ObjectCategory`](./../Objects/ObjectCategory.md), [`FurnitureType`](./../Objects/FurnitureType.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean), [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Vector2`](./Action.md)>, [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | A helper method to find a set of all `TinyLife.Objects.Furniture` instances that are currently valid for interaction with the passed `TinyLife.Actions.Action.Person` |
| [IEnumerable](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IEnumerable-1)\<[Person](./../Objects/Person.md)> | FindAllFreePeople ( [`ActionType`](./ActionType.md), [`Person`](./../Objects/Person.md), [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Vector2`](./Action.md)>, [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) ) | A helper method to find a set of all `TinyLife.Actions.Action.Person` instances that are currently valid for interaction with the passed `TinyLife.Actions.Action.Person` |
| [ActionInfo](./ActionInfo.md) | FindFreeFurniture ( [`Person`](./../Objects/Person.md), [`ObjectCategory`](./../Objects/ObjectCategory.md), [`FurnitureType`](./../Objects/FurnitureType.md), [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Vector2`](./Action.md)>, [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | A helper method to find the best `TinyLife.Objects.Furniture` instance to interact with based on the given data. Note that this method always returns a `TinyLife.Actions.ActionInfo` related to the first result from `TinyLife.Actions.Action.FindAllFreeFurniture(TinyLife.Objects.Person,TinyLife.Objects.ObjectCategory,TinyLife.Objects.FurnitureType,System.Boolean,System.Nullable{Microsoft.Xna.Framework.Vector2},System.Int32,System.Boolean)`. |
| [Furniture](./../Objects/Furniture.md) | GetChair ( [`Furniture`](./../Objects/Furniture.md) ) | A helper method that returns a `TinyLife.Objects.Furniture` with the `TinyLife.Objects.ObjectCategory.Chair` category that is closest to the given object which is on a desk or table. The furniture returned is the one that the person should `TinyLife.Actions.Action.Sit(TinyLife.Objects.Furniture,TinyLife.GameSpeed)` on when interacting with the passed ``. |

View file

@ -0,0 +1,49 @@
# [ActionInfo](./ActionInfo.md)
Namespace: [TinyLife]() > [Actions]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./ActionInfo.md)
## Summary
An action info is a set of information that is required to execute an action
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Vector2](./ActionInfo.md) | ActionLocation | The location that this action should be executed in. Note that this is mostly only relevant if there is no `TinyLife.Actions.ActionInfo.ActionObject`. |
| [Guid](https://docs.microsoft.com/en-us/dotnet/api/System.Guid) | ActionObject | The `System.Guid` of the object that this action is related to. Can be `System.Guid.Empty`, which indicates that there is no action object. To retrieve the actual object, use `TinyLife.Actions.ActionInfo.GetActionObject``1`. |
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [ActionSpot](./../Objects/ActionSpot.md) | ActionSpot | The `TinyLife.Actions.ActionInfo.ActionSpot` that this action is related to. Can be null, even if the `TinyLife.Actions.ActionInfo.ActionObject` exists. |
| [Map](./../World/Map.md) | Map | The `TinyLife.Actions.ActionInfo.Map` that the action is executed on |
| [Person](./../Objects/Person.md) | Person | The `TinyLife.Actions.ActionInfo.Person` that is currently executing the action |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | AddAuxiliaryObject ( [`MapObject`](./../Objects/MapObject.md) ) | Adds an additional object that, along with the `TinyLife.Actions.ActionInfo.ActionObject`, is involved in this action. Adding an auxiliary object causes `TinyLife.Actions.ActionInfo.GetInvolvedObjects``1(TinyLife.Objects.ObjectCategory)` to consider it, as well as `TinyLife.Objects.MapObject.ActionUpdate(TinyLife.Actions.Action,Microsoft.Xna.Framework.GameTime,System.TimeSpan,TinyLife.GameSpeed,System.Boolean)` to be called for it. |
| [T](./ActionInfo.md) | GetActionObject ( ) | Returns the object that this action is related to, or null if there is none or the object isn't of the given type. |
| [T](./ActionInfo.md) | GetInvolvedObject ( [`ObjectCategory`](./../Objects/ObjectCategory.md) ) | A helper method that returns the first available entry from `TinyLife.Actions.ActionInfo.GetInvolvedObjects``1(TinyLife.Objects.ObjectCategory)` or null if there is none |
| [IEnumerable](./ActionInfo.md)\<[T](./ActionInfo.md)> | GetInvolvedObjects ( [`ObjectCategory`](./../Objects/ObjectCategory.md) ) | Returns a set of objects of the given type `type` that match the given ``. The objects considered are the `TinyLife.Actions.ActionInfo.ActionObject`, the `TinyLife.Actions.ActionInfo.Person`'s `TinyLife.Objects.Person.GetHeldObject``1` and the auxiliary objects added using `TinyLife.Actions.ActionInfo.AddAuxiliaryObject(TinyLife.Objects.MapObject)`. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | OccupyFreeActionSpot ( [`ObjectCategory`](./../Objects/ObjectCategory.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean), [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Direction2`](./ActionInfo.md)> ) | This is a shorthand method for `TinyLife.Objects.Furniture.GetFreeActionSpot(TinyLife.Objects.Person,TinyLife.Objects.ObjectCategory)` and `TinyLife.Objects.Person.OccupyActionSpot(TinyLife.Objects.Furniture,TinyLife.Objects.ActionSpot,System.Boolean,System.Nullable{MLEM.Misc.Direction2})`. Note that this method needs to be called every update frame for the person to keep occupying the action spot. |
| [ActionInfo](./ActionInfo.md) | ToFreeActionSpot ( [`ObjectCategory`](./../Objects/ObjectCategory.md) ) | This is a shorthand method for `TinyLife.Objects.Furniture.GetFreeActionSpotInfo(TinyLife.Objects.Person,TinyLife.Objects.ObjectCategory)` that is applied to our action object (`TinyLife.Actions.ActionInfo.GetActionObject``1`). |
| void | Validate ( [`Person`](./../Objects/Person.md) ) | Validates this action info. This method should only be called when this action info is read from disk. |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| [ActionInfo](./ActionInfo.md) | FromLocation ( [`Person`](./../Objects/Person.md), [`Vector2`](./ActionInfo.md) ) | Returns a new `TinyLife.Actions.ActionInfo` based on the given location (and no objects) |
| [ActionInfo](./ActionInfo.md) | FromObjectGeneric ( [`Person`](./../Objects/Person.md), [`MapObject`](./../Objects/MapObject.md) ) | Returns a new `TinyLife.Actions.ActionInfo` basd on the given object, but no object spot |

View file

@ -0,0 +1,110 @@
# [ActionType](./ActionType.md)
Namespace: [TinyLife]() > [Actions]()
Assembly: Tiny Life.dll
## Summary
Action types are blueprints for `TinyLife.Actions.Action` instances which can be registered using `TinyLife.Actions.ActionType.Register(TinyLife.Actions.ActionType.TypeSettings)`. An action type contains information about its action and can create an instance using `TinyLife.Actions.ActionType.TypeSettings.Construct`.
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [TypeSettings](./ActionType.md) | Settings | The `TinyLife.Actions.ActionType.TypeSettings` for this action type, which actually contain this type's properties. |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Action](./Action.md) | Construct ( [`ActionInfo`](./ActionInfo.md), [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`ActionVariety`](./ActionVariety.md)> ) | Creates a new `TinyLife.Actions.Action` instance of this `TinyLife.Actions.ActionType`. |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | GetDisplayName ( [`ActionInfo`](./ActionInfo.md) ) | |
## Static Fields
| Type | Name | Summary |
| --- | --- | --- |
| [ActionType](./ActionType.md) | AskAboutDay | |
| [ActionType](./ActionType.md) | AskToLeave | |
| [ActionType](./ActionType.md) | BreakUp | |
| [ActionType](./ActionType.md) | CallOver | |
| [ActionType](./ActionType.md) | ChangeClothes | |
| [ActionType](./ActionType.md) | Chat | |
| [ActionType](./ActionType.md) | CleanDish | |
| [ActionType](./ActionType.md) | ComplimentLooks | |
| [ActionType](./ActionType.md) | ConfideIn | |
| [ActionType](./ActionType.md) | CookFood | |
| [ActionType](./ActionType.md) | Drive | |
| [ActionType](./ActionType.md) | Eat | |
| [ActionType](./ActionType.md) | Flirt | |
| [ActionType](./ActionType.md) | FoolAround | |
| [ActionType](./ActionType.md) | GaugeRelationship | |
| [ActionType](./ActionType.md) | GetIngredients | |
| [ActionType](./ActionType.md) | GetJob | |
| [ActionType](./ActionType.md) | GoHere | |
| [ActionType](./ActionType.md) | GoHome | |
| [ActionType](./ActionType.md) | HackSomeone | |
| [ActionType](./ActionType.md) | ImplyMotherIsCamel | |
| [ActionType](./ActionType.md) | Insult | |
| [ActionType](./ActionType.md) | MakeRisqueRemark | |
| [ActionType](./ActionType.md) | ModGame | |
| [ActionType](./ActionType.md) | MopPuddle | |
| [ActionType](./ActionType.md) | Paint | |
| [ActionType](./ActionType.md) | PassOut | |
| [ActionType](./ActionType.md) | PeeSelf | |
| [ActionType](./ActionType.md) | PickUp | |
| [ActionType](./ActionType.md) | PlayGames | |
| [ActionType](./ActionType.md) | PlayTrick | |
| [ActionType](./ActionType.md) | PracticeJokes | |
| [ActionType](./ActionType.md) | PracticeProgramming | |
| [ActionType](./ActionType.md) | PracticeSpeech | |
| [ActionType](./ActionType.md) | PrepareFood | |
| [ActionType](./ActionType.md) | PutAwayBook | |
| [ActionType](./ActionType.md) | PutDown | |
| [ActionType](./ActionType.md) | QuitJob | |
| [ActionType](./ActionType.md) | Read | |
| [ActionType](./ActionType.md) | Repair | |
| [ActionType](./ActionType.md) | SellPainting | |
| [ActionType](./ActionType.md) | Sit | |
| [ActionType](./ActionType.md) | SitToilet | |
| [ActionType](./ActionType.md) | Sleep | |
| [ActionType](./ActionType.md) | StartDating | |
| [ActionType](./ActionType.md) | Starve | |
| [ActionType](./ActionType.md) | TakeShower | |
| [ActionType](./ActionType.md) | Talk | |
| [ActionType](./ActionType.md) | TellComplexJoke | |
| [ActionType](./ActionType.md) | TellEngagingStory | |
| [ActionType](./ActionType.md) | TellFunnyStory | |
| [ActionType](./ActionType.md) | TellJoke | |
| [ActionType](./ActionType.md) | TellPeopleToLeaveRoom | |
| [ActionType](./ActionType.md) | TellStory | |
| [ActionType](./ActionType.md) | ThisIsInappropriate | |
| [IDictionary](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IDictionary-2)\<[ObjectCategory](./../Objects/ObjectCategory.md), [List](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.List-1)\<[ActionType](./ActionType.md)>> | Types | A list of all available action types. To register your own action types, use the `TinyLife.Actions.ActionType.Register(TinyLife.Actions.ActionType.TypeSettings)` method. |
| [ActionType](./ActionType.md) | VisitLot | |
| [ActionType](./ActionType.md) | WakeUp | |
| [ActionType](./ActionType.md) | Walk | |
| [ActionType](./ActionType.md) | WatchTv | |
| [ActionType](./ActionType.md) | Work | |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| [CanExecuteResult](./ActionType.md) | CanExecuteAll ( [`ActionInfo`](./ActionInfo.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean), [`CanExecuteDelegate`](./ActionType.md)[] ) | |
| [CanExecuteResult](./ActionType.md) | CanPlaceHeldItem ( [`ActionInfo`](./ActionInfo.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | A helper method intended to be used with `TinyLife.Actions.ActionType.CanExecuteDelegate` that determines whether or not the item that is currently held by the given person can be placed in an object spot on the given object. |
| [CanExecuteResult](./ActionType.md) | CanWorkAtComputer ( [`ActionInfo`](./ActionInfo.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | A helper method intended to be used with `TinyLife.Actions.ActionType.CanExecuteDelegate` that determines if the action object (which is expected to be a computer) meets all of the criteria for working at it |
| [IEnumerable](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IEnumerable-1)\<[ActionType](./ActionType.md)> | GetMatchingActions ( [`ObjectCategory`](./../Objects/ObjectCategory.md) ) | Returns a set of actions that match any the given `TinyLife.Objects.ObjectCategory` flag values. No check occurs that determines whether or not the action is valid in any given circumstance, other than the category. |
| [CanExecuteResult](./ActionType.md) | HasChair ( [`ActionInfo`](./ActionInfo.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | A helper method intended to be used with `TinyLife.Actions.ActionType.CanExecuteDelegate` that determines if the given object is sat on a table or desk that has a chair. |
| [CanExecuteResult](./ActionType.md) | IsComfortable ( [`ActionInfo`](./ActionInfo.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | A helper method intended to be used with `TinyLife.Actions.ActionType.CanExecuteDelegate` that determines if the person is comfortable enough to execute an action. A comfortable person is one that doesn't have the `TinyLife.Emotions.EmotionType.Uncomfortable` or `TinyLife.Emotions.EmotionType.Sad` emotions. |
| [CanExecuteResult](./ActionType.md) | IsDislikedOrMean ( [`ActionInfo`](./ActionInfo.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | A helper method intended to be used with `TinyLife.Actions.ActionType.CanExecuteDelegate` that determines if the action is executed manually, the given `TinyLife.Actions.ActionInfo`'s person has the `TinyLife.PersonalityType.Mean` personality type, or if the interaction partner has the `TinyLife.RelationshipType.Disliked` relationship type (or lower). |
| [CanExecuteResult](./ActionType.md) | IsEmptyHanded ( [`ActionInfo`](./ActionInfo.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | A helper method intended to be used with `TinyLife.Actions.ActionType.CanExecuteDelegate` that determines if the person is not holding an item. |
| [CanExecuteResult](./ActionType.md) | IsFunctional ( [`ActionInfo`](./ActionInfo.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | A helper method inteded to be used with `TinyLife.Actions.ActionType.CanExecuteDelegate` that determines if the action object is functional or broken. This method always returns `TinyLife.Actions.ActionType.CanExecuteResult.Valid` if the object is not breakable. |
| [CanExecuteResult](./ActionType.md) | IsHoldingOrPlaceableOn ( [`ActionInfo`](./ActionInfo.md), [`ObjectCategory`](./../Objects/ObjectCategory.md), [`Predicate`](https://docs.microsoft.com/en-us/dotnet/api/System.Predicate-1)\<[`Furniture`](./../Objects/Furniture.md)> ) | A helper method to check whether or not the person in the given `TinyLife.Actions.ActionInfo` is an item that matches the predicate (``) and the `TinyLife.Actions.ActionInfo.GetActionObject``1` is of the required type (``) or if the action object itself matches the predicate. |
| [CanExecuteResult](./ActionType.md) | IsNotEmbarrassed ( [`ActionInfo`](./ActionInfo.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | A helper method intended to be used with `TinyLife.Actions.ActionType.CanExecuteDelegate` that determines if the person is `TinyLife.Emotions.EmotionType.Embarrassed` or not |
| [CanExecuteResult](./ActionType.md) | IsReadyForRomance ( [`ActionInfo`](./ActionInfo.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | A helper method intended to be used with `TinyLife.Actions.ActionType.CanExecuteDelegate` that determines if the `TinyLife.Actions.ActionInfo.Person` and their interaction partner are `TinyLife.GenealogyType.Unrelated` and whether the action is executed manually or their `TinyLife.Relationship.RomanceLevel` is higher than 0. This method will also return `TinyLife.Actions.ActionType.CanExecuteResult.TooSad` if the person is currently feeling `TinyLife.Emotions.EmotionType.Sad`. This method should be used for `TinyLife.Actions.SocialAction` actions that are romantic in nature. |
| [ActionType](./ActionType.md) | Register ( [`TypeSettings`](./ActionType.md) ) | |

View file

@ -0,0 +1,27 @@
# [ActionVariety](./ActionVariety.md)
Namespace: [TinyLife]() > [Actions]()
Assembly: Tiny Life.dll
## Summary
An action variety is a modification to a `TinyLife.Actions.ActionType` that represents a slightly changed version of the generic action type. Action varieties are used, for example, by `TinyLife.Actions.ActionType.PrepareFood` to determine the kind of food that should be prepared.
## Constructors
| Name | Summary |
| --- | --- |
| ActionVariety ( [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String) ) | Creates a new action variety with the given name |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [CanExecuteDelegate](./ActionVariety.md) | CanExecute | A function that returns whether or not this action variety can currently be chosen. This is an extension of `TinyLife.Actions.ActionType.TypeSettings.CanExecute` |
| [Func](https://docs.microsoft.com/en-us/dotnet/api/System.Func-1)\<[String](https://docs.microsoft.com/en-us/dotnet/api/System.String)> | Description | A function that is called to describe this action variety in more detail. This is used in the menu that pops up when the underlying `TinyLife.Actions.ActionType` is picked. |
| [Func](https://docs.microsoft.com/en-us/dotnet/api/System.Func-1)\<[String](https://docs.microsoft.com/en-us/dotnet/api/System.String)> | DisplayName | A function that is called to describe this action variety. This is used in the menu that pops up when the underlying `TinyLife.Actions.ActionType` is picked. |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | Name | The name of this action variety |
| [Func](https://docs.microsoft.com/en-us/dotnet/api/System.Func-2)\<[Person](./../Objects/Person.md), [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)> | PassivePriority | A function that returns the passive priority of this action variety. This is an extension of `TinyLife.Actions.ActionType.AiSettings.PassivePriority` |

View file

@ -0,0 +1,9 @@
# [ComputerAction](./ComputerAction.md)
Namespace: [TinyLife]() > [Actions]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./ComputerAction.md)

View file

@ -0,0 +1,24 @@
# [DriveAction](./DriveAction.md)
Namespace: [TinyLife]() > [Actions]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./DriveAction.md)
## Constructors
| Name | Summary |
| --- | --- |
| DriveAction ( [`ActionType`](./ActionType.md), [`ActionInfo`](./ActionInfo.md) ) | |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | OnCompleted ( [`CompletionType`](./DriveAction.md) ) | |
| void | Update ( [`GameTime`](./DriveAction.md), [`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan), [`GameSpeed`](./../GameSpeed.md) ) | |

View file

@ -0,0 +1,40 @@
# [Emote](./Emote.md)
Namespace: [TinyLife]() > [Actions]()
Assembly: Tiny Life.dll
## Summary
An emote is a graphic that can be displayed in a bubble over a `TinyLife.Objects.Person`, usually as part of a conversation.
## Constructors
| Name | Summary |
| --- | --- |
| Emote ( [`TextureRegion`](./Emote.md), [`EmoteCategory`](./EmoteCategory.md) ) | Initializes a new emote with the given settings |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [EmoteCategory](./EmoteCategory.md) | Categories | A combined `TinyLife.Actions.EmoteCategory` flag that determines the categories that this emote belongs to |
| [TextureRegion](./Emote.md) | Texture | The texture that is displayed for this emote |
## Static Fields
| Type | Name | Summary |
| --- | --- | --- |
| [EmoteCategory](./Emote.md)[] | AllCategories | A set of all valid `TinyLife.Actions.EmoteCategory` values |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| [IEnumerable](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IEnumerable-1)\<[Emote](./Emote.md)> | GetEmotes ( [`EmoteCategory`](./EmoteCategory.md) ) | Returns a set of all of the emotes in the given combined category flag |
| [Emote](./Emote.md) | GetRandomEmote ( [`EmoteCategory`](./EmoteCategory.md) ) | Returns a random emote from a combined flag of possible categories |
| void | Register ( [`Emote`](./Emote.md) ) | Registers a new `TinyLife.Actions.Emote` with the given settings |

View file

@ -0,0 +1,18 @@
# [EmoteCategory](./EmoteCategory.md)
Namespace: [TinyLife]() > [Actions]()
Assembly: Tiny Life.dll
A flag enumeration that represents the types of `TinyLife.Actions.Emote` that are available
## Enum
| Value | Name | Summary |
| --- | --- | --- |
| 1 | General | An emote category that represents emotes for general conversations |
| 2 | Travel | An emote category that represents travel-related emotes |
| 4 | Negative | An emote category that represents negative emotes |
| 8 | Flirty | An emote category that represents sex related or suggestive emotes |

View file

@ -0,0 +1,31 @@
# [GetAndSitDownAction](./GetAndSitDownAction.md)
Namespace: [TinyLife]() > [Actions]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./GetAndSitDownAction.md)
## Constructors
| Name | Summary |
| --- | --- |
| GetAndSitDownAction ( [`ActionType`](./ActionType.md), [`ActionInfo`](./ActionInfo.md), [`FurnitureType`](./../Objects/FurnitureType.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [MapObject](./../Objects/MapObject.md) | GetIconObject ( ) | |
| [Action](./Action.md) | GetNextAction ( [`CompletionType`](./GetAndSitDownAction.md) ) | |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| [T](./GetAndSitDownAction.md) | GetInteractingItemForAction ( [`ActionInfo`](./ActionInfo.md), [`FurnitureType`](./../Objects/FurnitureType.md) ) | |

View file

@ -0,0 +1,23 @@
# [GoHereAction](./GoHereAction.md)
Namespace: [TinyLife]() > [Actions]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./GoHereAction.md)
## Constructors
| Name | Summary |
| --- | --- |
| GoHereAction ( [`ActionType`](./ActionType.md), [`ActionInfo`](./ActionInfo.md) ) | |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | CanCancel ( [`Action`](./Action.md) ) | |

View file

@ -0,0 +1,38 @@
# [MultiAction](./MultiAction.md)
Namespace: [TinyLife]() > [Actions]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./MultiAction.md)
## Summary
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 `TinyLife.Objects.Person` to go somewhere to pick up an item etc.
## Constructors
| Name | Summary |
| --- | --- |
| MultiAction ( [`ActionType`](./ActionType.md), [`ActionInfo`](./ActionInfo.md) ) | |
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [Queue](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.Queue-1)\<[Action](./Action.md)> | FirstActions | The actions that should be executed beore this action |
| [TimeSpan](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan) | MainElapsedTime | The amount of time that has elapsed of this action, excluding the time that `TinyLife.Actions.MultiAction.FirstActions` took. |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | CanCancel ( [`Action`](./Action.md) ) | |
| void | Initialize ( ) | |
| [CompletionType](./MultiAction.md) | IsCompleted ( ) | |
| void | OnCompleted ( [`CompletionType`](./MultiAction.md) ) | |
| void | Update ( [`GameTime`](./MultiAction.md), [`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan), [`GameSpeed`](./../GameSpeed.md) ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | Validate ( [`Person`](./../Objects/Person.md) ) | |

View file

@ -0,0 +1,26 @@
# [OutOfTownAction](./OutOfTownAction.md)
Namespace: [TinyLife]() > [Actions]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./OutOfTownAction.md)
## Summary
An out-of-town action is an action where the `TinyLife.Objects.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.
## Constructors
| Name | Summary |
| --- | --- |
| OutOfTownAction ( [`ActionType`](./ActionType.md), [`ActionInfo`](./ActionInfo.md), [`NeedType`](./OutOfTownAction.md)[] ) | Creates a new out-of-town action with the given settings. Note that, since some data is not saved to disk, all of the information should be provided by a subclass constructor. |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | CausesExtremelyFastSpeed ( ) | |
| [Action](./Action.md) | GetNextAction ( [`CompletionType`](./OutOfTownAction.md) ) | |

View file

@ -0,0 +1,36 @@
# [PathfindAction](./PathfindAction.md)
Namespace: [TinyLife]() > [Actions]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./PathfindAction.md)
## Summary
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`.
## Constructors
| Name | Summary |
| --- | --- |
| PathfindAction ( [`ActionType`](./ActionType.md), [`ActionInfo`](./ActionInfo.md) ) | |
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [Stack](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.Stack-1)\<[Point](./PathfindAction.md)> | Path | The path that this action has found. WHen `TinyLife.Actions.PathfindAction.OnPathReady` is called, this has a value. |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Initialize ( ) | |
| [CompletionType](./PathfindAction.md) | IsCompleted ( ) | |
| void | OnCompleted ( [`CompletionType`](./PathfindAction.md) ) | |
| void | Update ( [`GameTime`](./PathfindAction.md), [`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan), [`GameSpeed`](./../GameSpeed.md) ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | Validate ( [`Person`](./../Objects/Person.md) ) | |

View file

@ -0,0 +1,23 @@
# [SellAction](./SellAction.md)
Namespace: [TinyLife]() > [Actions]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./SellAction.md)
## Constructors
| Name | Summary |
| --- | --- |
| SellAction ( [`ActionType`](./ActionType.md), [`ActionInfo`](./ActionInfo.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single) ) | |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| [T](./SellAction.md) | GetSoldObject ( [`ActionInfo`](./ActionInfo.md) ) | A helper method that returns the object that is being sold. This method returns the action object or the person's held object. |

View file

@ -0,0 +1,23 @@
# [SitAction](./SitAction.md)
Namespace: [TinyLife]() > [Actions]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./SitAction.md)
## Constructors
| Name | Summary |
| --- | --- |
| SitAction ( [`ActionType`](./ActionType.md), [`ActionInfo`](./ActionInfo.md) ) | |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | CanMultitask ( [`Action`](./Action.md) ) | |

View file

@ -0,0 +1,23 @@
# [SitAtDeskObjectAction](./SitAtDeskObjectAction.md)
Namespace: [TinyLife]() > [Actions]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./SitAtDeskObjectAction.md)
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Action](./Action.md) | GetNextAction ( [`CompletionType`](./SitAtDeskObjectAction.md) ) | |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| [ActionInfo](./ActionInfo.md) | GetChairSpot ( [`ActionInfo`](./ActionInfo.md) ) | Helper method that returns the first valid action spot of the chair returned in `TinyLife.Actions.SitAtDeskObjectAction.GetChair(TinyLife.Actions.ActionInfo)` |

View file

@ -0,0 +1,43 @@
# [SocialAction](./SocialAction.md)
Namespace: [TinyLife]() > [Actions]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./SocialAction.md)
## Summary
A social action is an action that involves two `TinyLife.Objects.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 `TinyLife.Actions.SocialAction.Partner` until they reach them (or give up).
## Constructors
| Name | Summary |
| --- | --- |
| SocialAction ( [`ActionType`](./ActionType.md), [`ActionInfo`](./ActionInfo.md) ) | |
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [TimeSpan](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan) | ConversationTime | The amount of time that the actual conversation has been going on for. This is the total amount of time (`TinyLife.Actions.Action.ElapsedTime`) minus the amount of time it took for the `TinyLife.Actions.SocialAction.IsMain``TinyLife.Objects.Person` to reach the `TinyLife.Actions.SocialAction.Partner`. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | IsMain | Whether or not this is the action that started the social interaction The `TinyLife.Actions.SocialAction.PartnerAction` will always have the inverse value of this value. |
| [Person](./../Objects/Person.md) | Partner | The `TinyLife.Objects.Person` that we're interacting with |
| [SocialAction](./SocialAction.md) | PartnerAction | The `TinyLife.Actions.SocialAction` that the `TinyLife.Actions.SocialAction.Partner` of this action instantiated as part of the interaction |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | CanCancel ( [`Action`](./Action.md) ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | CanMultitask ( [`Action`](./Action.md) ) | |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | GetDisplayName ( ) | |
| void | Initialize ( ) | |
| void | InvokeForBoth ( [`Action`](https://docs.microsoft.com/en-us/dotnet/api/System.Action-2)\<[`Person`](./../Objects/Person.md), [`Person`](./../Objects/Person.md)> ) | Invokes the given action for both the `TinyLife.Objects.Person` and the `TinyLife.Actions.SocialAction.Partner`, passing both of them in the following way: <code> action(Person, Partner); action(Partner, Person); </code> |
| [CompletionType](./SocialAction.md) | IsCompleted ( ) | |
| void | OnCompleted ( [`CompletionType`](./SocialAction.md) ) | |
| void | Update ( [`GameTime`](./SocialAction.md), [`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan), [`GameSpeed`](./../GameSpeed.md) ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | Validate ( [`Person`](./../Objects/Person.md) ) | |

View file

@ -0,0 +1,32 @@
# [TalkAction](./TalkAction.md)
Namespace: [TinyLife]() > [Actions]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./TalkAction.md)
## Summary
TalkAction is a generic social action with a set of pre-defined parameters. Things like `TinyLife.PersonalityType` and `TinyLife.Skills.SkillType.Charisma` automatically influence this interaction's `TinyLife.Actions.TalkAction.TalkSettings.FriendshipGain` and `TinyLife.Actions.TalkAction.TalkSettings.GoBadlyChance`. `TinyLife.Actions.TalkAction.Create(System.String,System.Func{TinyLife.Objects.Person,System.Int32},TinyLife.Actions.TalkAction.TalkSettings)` should be used to create a talk action.
## Constructors
| Name | Summary |
| --- | --- |
| TalkAction ( [`ActionType`](./ActionType.md), [`ActionInfo`](./ActionInfo.md) ) | |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | OnCompleted ( [`CompletionType`](./TalkAction.md) ) | |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| [TypeSettings](./TalkAction.md) | Create ( [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String), [`Func`](https://docs.microsoft.com/en-us/dotnet/api/System.Func-2)\<[`Person`](./../Objects/Person.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)>, [`TalkSettings`](./TalkAction.md) ) | |

View file

@ -0,0 +1,32 @@
# [TellPeopleToLeaveRoomAction](./TellPeopleToLeaveRoomAction.md)
Namespace: [TinyLife]() > [Actions]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./TellPeopleToLeaveRoomAction.md)
## Constructors
| Name | Summary |
| --- | --- |
| TellPeopleToLeaveRoomAction ( [`ActionType`](./ActionType.md), [`ActionInfo`](./ActionInfo.md) ) | |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [List](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.List-1)\<[Guid](https://docs.microsoft.com/en-us/dotnet/api/System.Guid)> | ExcludedPeople | A list of `System.Guid` ids of `TinyLife.Objects.Person` objects that should not be asked to leave the room |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Initialize ( ) | |
| [CompletionType](./TellPeopleToLeaveRoomAction.md) | IsCompleted ( ) | |
| void | OnCompleted ( [`CompletionType`](./TellPeopleToLeaveRoomAction.md) ) | |

View file

@ -0,0 +1,32 @@
# [UnderlyingAction](./UnderlyingAction.md)
Namespace: [TinyLife]() > [Actions]()
Assembly: Tiny Life.dll
## Summary
An UnderlyingAction is a class that can instantiate a single `TinyLife.Actions.UnderlyingAction.Action` that will be executed as part of the action it is used in. Note that, when using this class, `TinyLife.Actions.UnderlyingAction.Update(Microsoft.Xna.Framework.GameTime,System.TimeSpan,TinyLife.GameSpeed)` and `TinyLife.Actions.UnderlyingAction.Validate(TinyLife.Objects.Person)` have to be called in the appropriate places.
## Constructors
| Name | Summary |
| --- | --- |
| UnderlyingAction ( ) | |
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [Action](./Action.md) | Action | The underlying action. This should be initialized using `TinyLife.Actions.UnderlyingAction.Initialize(TinyLife.Actions.ActionType,TinyLife.Actions.ActionInfo)`. |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Initialize ( [`ActionType`](./ActionType.md), [`ActionInfo`](./ActionInfo.md) ) | Initializes the underlying action of this action |
| void | Update ( [`GameTime`](./UnderlyingAction.md), [`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan), [`GameSpeed`](./../GameSpeed.md) ) | Updates the `TinyLife.Actions.UnderlyingAction.Action`, if it exists. This action should be called in `TinyLife.Actions.Action.Update(Microsoft.Xna.Framework.GameTime,System.TimeSpan,TinyLife.GameSpeed)`. |
| void | Validate ( [`Person`](./../Objects/Person.md) ) | Validates this action container and its `TinyLife.Actions.UnderlyingAction.Action`. This method should be called in `TinyLife.Actions.Action.Validate(TinyLife.Objects.Person)`. |

View file

@ -0,0 +1,23 @@
# [WalkAction](./WalkAction.md)
Namespace: [TinyLife]() > [Actions]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./WalkAction.md)
## Constructors
| Name | Summary |
| --- | --- |
| WalkAction ( [`ActionType`](./ActionType.md), [`ActionInfo`](./ActionInfo.md) ) | |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Update ( [`GameTime`](./WalkAction.md), [`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan), [`GameSpeed`](./../GameSpeed.md) ) | |

View file

@ -0,0 +1,82 @@
# [EmotionModifier](./EmotionModifier.md)
Namespace: [TinyLife]() > [Emotions]()
Assembly: Tiny Life.dll
## Summary
An emotion modifier stores information about a `TinyLife.Objects.Person`'s current or past actions or events that influenced their `TinyLife.Objects.Person.Emotion` in some way. Each emotion modifier contributes to the person's emotion, and the emotion modifier with the highest combined `TinyLife.Emotions.EmotionModifier.Instance.Amount` determines the person's `TinyLife.Objects.Person.Emotion`. Emotion modifiers can be applied automatically using `TinyLife.Emotions.EmotionModifier.Condition` or manually using `TinyLife.Objects.Person.AddEmotion(TinyLife.Emotions.EmotionModifier,System.Int32,System.TimeSpan)`.
## Constructors
| Name | Summary |
| --- | --- |
| EmotionModifier ( [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String), [`TextureRegion`](./EmotionModifier.md), [`EmotionType`](./EmotionType.md), [`Func`](https://docs.microsoft.com/en-us/dotnet/api/System.Func-2)\<[`Person`](./../Objects/Person.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)> ) | Creates a new emotion modifier with the given settings |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Func](https://docs.microsoft.com/en-us/dotnet/api/System.Func-2)\<[Person](./../Objects/Person.md), [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)> | Condition | An (optional) condition that has to be met for this emotion modifier to be applied to a person. If this value is non-null, and the value returned by this function is greater than zero, this emotion modifier will be applied to a `TinyLife.Objects.Person` with the `TinyLife.Emotions.EmotionModifier.Instance.Amount` set to the return value. If this value is not set, the emotion modifier has to be applied manually using `TinyLife.Objects.Person.AddEmotion(TinyLife.Emotions.EmotionModifier,System.Int32,System.TimeSpan)`. |
| [EmotionType](./EmotionType.md) | Emotion | The `TinyLife.Emotions.EmotionType` that this emotion modifier causes (if the `TinyLife.Emotions.EmotionModifier.Instance.Amount` is high enough) |
| [TextureRegion](./EmotionModifier.md) | Icon | This emotion modifier's icon which will be displayed in the emotions menu |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | Name | This emotion modifier's name |
## Static Fields
| Type | Name | Summary |
| --- | --- | --- |
| [EmotionModifier](./EmotionModifier.md) | Asleep | |
| [EmotionModifier](./EmotionModifier.md) | BadCreation | |
| [EmotionModifier](./EmotionModifier.md) | BadFood | |
| [EmotionModifier](./EmotionModifier.md) | BoringWork | |
| [EmotionModifier](./EmotionModifier.md) | BrokenUpWith | |
| [EmotionModifier](./EmotionModifier.md) | CaughtBeingInappropriate | |
| [EmotionModifier](./EmotionModifier.md) | Demoted | |
| [EmotionModifier](./EmotionModifier.md) | DirtyConversationPartner | |
| [EmotionModifier](./EmotionModifier.md) | DirtyDishes | |
| [EmotionModifier](./EmotionModifier.md) | FailedJoke | |
| [EmotionModifier](./EmotionModifier.md) | FailedRomance | |
| [EmotionModifier](./EmotionModifier.md) | FinishedMod | |
| [EmotionModifier](./EmotionModifier.md) | Fired | |
| [EmotionModifier](./EmotionModifier.md) | FriendDied | |
| [EmotionModifier](./EmotionModifier.md) | FunFoolingAround | |
| [EmotionModifier](./EmotionModifier.md) | GoodFood | |
| [EmotionModifier](./EmotionModifier.md) | HackingFail | |
| [EmotionModifier](./EmotionModifier.md) | Jobless | |
| [EmotionModifier](./EmotionModifier.md) | LovelyInteraction | |
| [EmotionModifier](./EmotionModifier.md) | MeanConversationPartner | |
| [EmotionModifier](./EmotionModifier.md) | NeedsToilet | |
| [EmotionModifier](./EmotionModifier.md) | NegativeGauge | |
| [EmotionModifier](./EmotionModifier.md) | NicelyDecorated | |
| [EmotionModifier](./EmotionModifier.md) | NoPromotion | |
| [EmotionModifier](./EmotionModifier.md) | NotEnoughCreative | |
| [EmotionModifier](./EmotionModifier.md) | PassedOut | |
| [EmotionModifier](./EmotionModifier.md) | PeedSelf | |
| [EmotionModifier](./EmotionModifier.md) | PerfectCreation | |
| [EmotionModifier](./EmotionModifier.md) | PleasantInteraction | |
| [EmotionModifier](./EmotionModifier.md) | PositiveGauge | |
| [EmotionModifier](./EmotionModifier.md) | Promoted | |
| [EmotionModifier](./EmotionModifier.md) | ReadBook | |
| [EmotionModifier](./EmotionModifier.md) | RepairFail | |
| [EmotionModifier](./EmotionModifier.md) | SawSomethingPersonal | |
| [EmotionModifier](./EmotionModifier.md) | SleptOutside | |
| [EmotionModifier](./EmotionModifier.md) | StartedDating | |
| [IDictionary](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IDictionary-2)\<[String](https://docs.microsoft.com/en-us/dotnet/api/System.String), [EmotionModifier](./EmotionModifier.md)> | Types | A registry that contains all `TinyLife.Emotions.EmotionModifier` instances from the game and mods |
| [EmotionModifier](./EmotionModifier.md) | UglySurroundings | |
| [EmotionModifier](./EmotionModifier.md) | VeryBored | |
| [EmotionModifier](./EmotionModifier.md) | VeryDirty | |
| [EmotionModifier](./EmotionModifier.md) | VeryHungry | |
| [EmotionModifier](./EmotionModifier.md) | VeryLonely | |
| [EmotionModifier](./EmotionModifier.md) | VeryTired | |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| [EmotionModifier](./EmotionModifier.md) | Register ( [`EmotionModifier`](./EmotionModifier.md) ) | Registers the given emotion type into the `TinyLife.Emotions.EmotionModifier.Types` registry |

View file

@ -0,0 +1,51 @@
# [EmotionType](./EmotionType.md)
Namespace: [TinyLife]() > [Emotions]()
Assembly: Tiny Life.dll
## Summary
An emotion type is a type of feeling that a `TinyLife.Objects.Person` can have. The emotion that a person has results from that person's applied `TinyLife.Emotions.EmotionModifier``TinyLife.Emotions.EmotionModifier.Instance`s.
## Constructors
| Name | Summary |
| --- | --- |
| EmotionType ( [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String), [`TextureRegion`](./EmotionType.md), [`Color`](./EmotionType.md), [`TypeCategory`](./EmotionType.md) ) | |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [TypeCategory](./EmotionType.md) | Category | The `TinyLife.Emotions.EmotionType.TypeCategory` that this emotion type fits into. The category is used for ordering and organizing `TinyLife.Emotions.EmotionModifier` instances. |
| [Color](./EmotionType.md) | Color | The color that represents this emotion. The color is used as a backdrop for `TinyLife.Emotions.EmotionModifier` instances of this type. |
| [TextureRegion](./EmotionType.md) | Icon | This emotion's icon, which is used in the portrait section for a `TinyLife.Objects.Person` that has this emotion |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | Name | This emotion's name |
## Static Fields
| Type | Name | Summary |
| --- | --- | --- |
| [EmotionType](./EmotionType.md) | Asleep | |
| [EmotionType](./EmotionType.md) | Bored | |
| [EmotionType](./EmotionType.md) | Creative | |
| [EmotionType](./EmotionType.md) | Embarrassed | |
| [EmotionType](./EmotionType.md) | Fine | |
| [EmotionType](./EmotionType.md) | Focused | |
| [EmotionType](./EmotionType.md) | Frisky | |
| [EmotionType](./EmotionType.md) | Happy | |
| [EmotionType](./EmotionType.md) | Sad | |
| [EmotionType](./EmotionType.md) | Stunned | |
| [IDictionary](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IDictionary-2)\<[String](https://docs.microsoft.com/en-us/dotnet/api/System.String), [EmotionType](./EmotionType.md)> | Types | A registry of all `TinyLife.Emotions.EmotionType` instances from the game and mods |
| [EmotionType](./EmotionType.md) | Uncomfortable | |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| [EmotionType](./EmotionType.md) | Register ( [`EmotionType`](./EmotionType.md) ) | Registers the given emotion type to the `TinyLife.Emotions.EmotionType.Types` registry |

54
Api/TinyLife/GameImpl.md Normal file
View file

@ -0,0 +1,54 @@
# [GameImpl](./GameImpl.md)
Namespace: [TinyLife]()
Assembly: Tiny Life.dll
Implements [IDisposable](https://docs.microsoft.com/en-us/dotnet/api/System.IDisposable)
## Summary
The main class for Tiny Life, which houses a set of important game-wide properties.
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [TimeSpan](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan) | CurrentTime | The current in-game total time since the start of the game. |
| [Person](./Objects/Person.md) | FollowingPerson | The `TinyLife.Objects.Person` that the camera is currently locked onto |
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [Camera](./GameImpl.md) | Camera | The game's in-world camera, created in `TinyLife.GameImpl.LoadContent` |
| [Household](./World/Household.md) | CurrentHousehold | The household that is currently being played, or <code>null</code> if in the main menu, editing a lot or on the map select screen |
| [Lot](./World/Lot.md) | CurrentLot | The lot that is currently being played on or edited, or <code>null</code> if in the main menu or on the map select screen |
| [Tool](./Tools/Tool.md) | CurrentTool | The `TinyLife.Tools.Tool` that is currently selected. Should always be set to either `TinyLife.Tools.Tool.PlayModeTool` or any of `TinyLife.Tools.Tool.BuildTools`. |
| [GraphicsMetrics](./GameImpl.md) | GraphicsMetrics | The game's graphics metrics, gathered at the end of every `TinyLife.GameImpl.DoDraw(Microsoft.Xna.Framework.GameTime)` call |
| [AudioListener](./GameImpl.md) | Listener | The game's `Microsoft.Xna.Framework.Audio.AudioListener` that is automatically moved to the `TinyLife.GameImpl.Camera`'s position |
| [Map](./World/Map.md) | Map | The map that the game is currently on, or <code>null</code> if in the main menu |
| [GameMode](./GameImpl.md) | Mode | The `TinyLife.GameImpl.GameMode` that is currently active |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | Money | The money that the `TinyLife.GameImpl.CurrentHousehold` has, or `System.Single.MaxValue` if there is no active household |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | SaveName | The name of the save file that is currently being played, or <code>null</code> if in the main menu |
| [GameSpeed](./GameSpeed.md) | Speed | The current `TinyLife.GameSpeed`. Note that, if the current speed is `TinyLife.GameSpeed.VeryFast` and the game `TinyLife.GameImpl.CanBeExtremelyFast`, `TinyLife.GameSpeed.ExtremelyFast` is returned. |
| [DayOfWeek](https://docs.microsoft.com/en-us/dotnet/api/System.DayOfWeek) | Weekday | The current in-game weekday, based on `TinyLife.GameImpl.CurrentTime` |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | CanBeExtremelyFast ( ) | Returns whether the game allows changing the speed to `TinyLife.GameSpeed.ExtremelyFast` at the current time. If this returns true, and `TinyLife.GameImpl.Speed` is set to `TinyLife.GameSpeed.VeryFast`, the `TinyLife.GameSpeed.ExtremelyFast` speed is automatically engaged. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | CanSaveOrSwitchModes ( ) | Returns whether the game can currently save or if `TinyLife.GameImpl.SwitchGameMode(TinyLife.GameImpl.GameMode)` is allowed to be used right now. The return value is influenced by `TinyLife.Tools.Tool.CanSaveOrSwitchModes` and `TinyLife.World.Lot.AreRequirementsMet`. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | IsMouseOnUi ( ) | Returns true if the mouse is currently on top of any ui element in the `MLEM.Ui.UiSystem` |
| void | SwitchGameMode ( [`GameMode`](./GameImpl.md) ) | |
## Static Properties
| Type | Name | Summary |
| --- | --- | --- |
| [GameImpl](./GameImpl.md) | Instance | The game's singleton instance |

19
Api/TinyLife/GameSpeed.md Normal file
View file

@ -0,0 +1,19 @@
# [GameSpeed](./GameSpeed.md)
Namespace: [TinyLife]()
Assembly: Tiny Life.dll
An enumeration of all possible game speeds. The value of each value is the amount that the game's speed is multiplied with.
## Enum
| Value | Name | Summary |
| --- | --- | --- |
| 0 | Paused | A game speed that represents no actions occuring |
| 1 | Regular | A game speed that represents the regular speed |
| 2 | Fast | A game speed with which things happen at twice the `TinyLife.GameSpeed.Regular` speed |
| 3 | VeryFast | A game speed with which things happen at three times the `TinyLife.GameSpeed.Regular` speed |
| 20 | ExtremelyFast | A game speed with which things happen at 20 times the `TinyLife.GameSpeed.Regular` speed. Note that this option is not selectable and only occurs if every household member is asleep or out of town. |

View file

@ -0,0 +1,22 @@
# [GenealogyType](./GenealogyType.md)
Namespace: [TinyLife]()
Assembly: Tiny Life.dll
An enumeration that represents the type that a `TinyLife.Relationship`'s genealogy can have. Note that these typs are deliberately gender-neutral.
## Enum
| Value | Name | Summary |
| --- | --- | --- |
| 0 | Unrelated | A genealogy type that represents two unrelated people |
| 1 | Parent | A genealogy type that represents a parent of a `TinyLife.GenealogyType.Child` |
| 2 | Child | A genealogy type that represents a child of a `TinyLife.GenealogyType.Parent` |
| 3 | Sibling | A genealogy type that represents a sibling |
| 4 | Nibling | A genealogy type that represents a nibling (niece or nephew) of a `TinyLife.GenealogyType.Pibling` |
| 5 | Pibling | A genealogy type that represents a pibling (aunt or uncle) or a `TinyLife.GenealogyType.Nibling` |
| 6 | Grandparent | A genealogy type that represents a grandparent of a `TinyLife.GenealogyType.Grandchild` |
| 7 | Grandchild | A genealogy type that represents a grandchild of a `TinyLife.GenealogyType.Grandparent` |

45
Api/TinyLife/Goals/Job.md Normal file
View file

@ -0,0 +1,45 @@
# [Job](./Job.md)
Namespace: [TinyLife]() > [Goals]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./Job.md)
## Summary
A job is a kind of work that a `TinyLife.Goals.Job.Person` can have. The person's current job is accessible using `TinyLife.Objects.Person.Job`. A job instance is constructed from its underlying `TinyLife.Goals.JobType`.
## Constructors
| Name | Summary |
| --- | --- |
| Job ( [`JobType`](./JobType.md), [`Person`](./../Objects/Person.md) ) | Creates a new job from the given settings |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [JobType](./JobType.md) | Type | The underlying `TinyLife.Goals.JobType` that this job results from |
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | CurrentHourlyPay | The amount of tiny bucks that this job pays per hour. This is based on `TinyLife.Goals.JobType.HourlyPay` and the current `TinyLife.Goals.Job.Level`. |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) | Level | The current level that this job is at. Note that the default level is 0, and the level goes up to a maximum of 9. |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | Performance | This job's current performance, ranging from 0 to 1, representing the percentage of work performance. The default value is 0.5. |
| [Person](./../Objects/Person.md) | Person | The `TinyLife.Goals.Job.Person` that currently has this job |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | AddLevel ( [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) ) | Adds (or removes) the given amount of levels to this job's `TinyLife.Goals.Job.Level`. Note that the level value is automatically clamped between 0 and 9, inclusively. |
| void | AddPerformance ( [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single) ) | Adds (or removes) the given amount of performance to this job's `TinyLife.Goals.Job.Performance`. If the total `TinyLife.Goals.Job.Performance` rolls over (below 0 or above 1), `TinyLife.Goals.Job.AddLevel(System.Int32)` is called and the performace is reset accordingly. |
| void | Update ( [`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan) ) | Updates this job, changing the `TinyLife.Goals.Job.Performance` and `TinyLife.Goals.Job.Level` according to this job's person's current actions. This is called in `TinyLife.Objects.Person.Update(Microsoft.Xna.Framework.GameTime,System.TimeSpan,TinyLife.GameSpeed)`. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | Validate ( [`Person`](./../Objects/Person.md) ) | |

View file

@ -0,0 +1,52 @@
# [JobType](./JobType.md)
Namespace: [TinyLife]() > [Goals]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./JobType.md)
## Summary
A job type is a singleton containing various kinds of data for a `TinyLife.Goals.Job` instance. New jobs can be registered using `TinyLife.Goals.JobType.Register(TinyLife.Goals.JobType)`.
## Constructors
| Name | Summary |
| --- | --- |
| JobType ( [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Range`](./JobType.md)\<[`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)>, [`DayOfWeek`](https://docs.microsoft.com/en-us/dotnet/api/System.DayOfWeek)[] ) | Creates a new job type with the given settings |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | HourlyPay | The amount of dollars that being at the job for an hour pays. In `TinyLife.Actions.WorkAction`, this is automatically added to the household funds. |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | Name | The name of this job type |
| [DayOfWeek](https://docs.microsoft.com/en-us/dotnet/api/System.DayOfWeek)[] | OffWorkDays | A set of `System.DayOfWeek` values which are days off of this job. On `TinyLife.GameImpl.Weekday`s contained in this list, the `TinyLife.Goals.JobType.WorkHours` don't apply. |
| [Range](./JobType.md)\<[Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)> | WorkHours | A `System.Range` of hours that this job requires each day. Note that the `MonoGame.Extended.Range`1.Min` value is inclusive, but the `MonoGame.Extended.Range`1.Max` value is exclusive. |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Job](./Job.md) | Construct ( [`Person`](./../Objects/Person.md) ) | Creates a new `TinyLife.Goals.Job` from this type's information |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | GetDisplayName ( [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)> ) | Returns the display name of this `TinyLife.Goals.JobType`, based on the given ``. If no level is given, the job's regular name, without the level-based suffix, is returned. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | IsTimeToWork ( [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan)> ) | Returns whether the given time (or the game's current time) is in the bounds of `TinyLife.Goals.JobType.WorkHours` and outside of the bounds of `TinyLife.Goals.JobType.OffWorkDays`. If this method returns true, `TinyLife.Actions.WorkAction` can be started. |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | ToScheduleString ( ) | Returns a string representation of the schedule. The string includes a line that states the `TinyLife.Goals.JobType.WorkHours` and a line that states the `TinyLife.Goals.JobType.OffWorkDays`. |
## Static Fields
| Type | Name | Summary |
| --- | --- | --- |
| [IDictionary](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IDictionary-2)\<[String](https://docs.microsoft.com/en-us/dotnet/api/System.String), [JobType](./JobType.md)> | Types | A registry of all `TinyLife.Goals.JobType` instances in the game and mods. Register new jobs using `TinyLife.Goals.JobType.Register(TinyLife.Goals.JobType)`. |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Register ( [`JobType`](./JobType.md) ) | Registers the given job type to the `TinyLife.Goals.JobType.Types` registry |

View file

@ -0,0 +1,23 @@
# [LnCategory](./LnCategory.md)
Namespace: [TinyLife]()
Assembly: Tiny Life.dll
An enumeration that contains a set of localization categories. These categories are represented in a localization file as JSON objects with the given names.
## Enum
| Value | Name | Summary |
| --- | --- | --- |
| 0 | Ui | A localization category for UI elements |
| 1 | Actions | A localization category for `TinyLife.Actions.Action`-related localizations |
| 2 | BuildMode | A localization category for build mode items and furniture |
| 3 | Clothes | A localization category for clothes and other character creator items |
| 4 | Food | A localization category for food items |
| 5 | Personalities | A localization category for text related to `TinyLife.PersonalityType` |
| 6 | Skills | A localization category for text related to `TinyLife.Skills.Skill` |
| 7 | Jobs | A localization category for text related to `TinyLife.Goals.Job` |
| 8 | Emotions | A localization category for text related to `TinyLife.Emotions.EmotionType` and `TinyLife.Emotions.EmotionModifier` |

View file

@ -0,0 +1,25 @@
# [Localization](./Localization.md)
Namespace: [TinyLife]()
Assembly: Tiny Life.dll
## Summary
A class that houses the currently loaded language as well as allows for switching the currently selected language
## Static Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Dictionary](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.Dictionary-2)\<[String](https://docs.microsoft.com/en-us/dotnet/api/System.String), [String](https://docs.microsoft.com/en-us/dotnet/api/System.String)> | LanguageNames | A list of the full names of all of the languages that the game supports |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | Get ( [`LnCategory`](./LnCategory.md), [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String) ) | Gets a localized string in the given category with the given key. If the localization is not found, the key, surrounded by question marks, is returned instead. |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | Get ( [`LnCategory`](./LnCategory.md), [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String), [`Object`](https://docs.microsoft.com/en-us/dotnet/api/System.Object)[] ) | Gets a localized string in the given category with the given key. If the localization is not found, the key, surrounded by question marks, is returned instead. |
| void | SetLanguage ( [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String) ) | Switches the current language to the language given. Note that, for most ui elements to update, they have to be re-created. |

View file

@ -0,0 +1,16 @@
# [EventPhase](./EventPhase.md)
Namespace: [TinyLife]() > [Mods]()
Assembly: Tiny Life.dll
An enumeration that represents the phases that an `TinyLife.Mods.Events` event can be invoked in
## Enum
| Value | Name | Summary |
| --- | --- | --- |
| 0 | Pre | A phase that represents an event that is invoked *before* something happens |
| 1 | Post | A phase that represents an event that is invoked *after* something happens |

View file

@ -0,0 +1,18 @@
# [Events](./Events.md)
Namespace: [TinyLife]() > [Mods]()
Assembly: Tiny Life.dll
## Summary
A set of events that can be subscribed to by mods to allow for special handling of certain situations. To have more events added to this list if they're required by your mods, please reach out to Ellpeck. Note that, for events that use an `TinyLife.Mods.EventPhase`, the subscriber needs to make sure that the code only runs for one of the phases, and not both, by checking the current phase.
## Static Events
| Type | Name | Summary |
| --- | --- | --- |
| [DrawEvent](./Events.md)\<[MapObject](./../Objects/MapObject.md)> | MapObjectDraw | An event that is invoked when a `TinyLife.Objects.MapObject` is being drawn (in `TinyLife.World.Map.Draw(Microsoft.Xna.Framework.GameTime,Microsoft.Xna.Framework.Graphics.SpriteBatch,System.Boolean)`) |
| [UpdateEvent](./Events.md)\<[MapObject](./../Objects/MapObject.md)> | MapObjectUpdate | An event that is invoked when a `TinyLife.Objects.MapObject` is updated (in `TinyLife.World.MapSection.Update(Microsoft.Xna.Framework.GameTime,System.TimeSpan,TinyLife.GameSpeed)`) |
| [UpdateEvent](./Events.md)\<[Map](./../World/Map.md)> | MapUpdate | An event that is invoked when a `TinyLife.World.Map` is updated (in `TinyLife.World.Map.Update(Microsoft.Xna.Framework.GameTime,System.TimeSpan,TinyLife.GameSpeed)`) |

27
Api/TinyLife/Mods/Mod.md Normal file
View file

@ -0,0 +1,27 @@
# [Mod](./Mod.md)
Namespace: [TinyLife]() > [Mods]()
Assembly: Tiny Life.dll
## Summary
The base class for all Tiny Life mods. For an example mod, see <see href="https://github.com/Ellpeck/TinyLifeExampleMod" />. Mods are uniquely identified by their ID. The id is the name of the class that extends `TinyLife.Mods.Mod`.
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | Description | The description of this mod, which will be visible in the options menu. To localize the description, use `TinyLife.Localization`. |
| [TextureRegion](./Mod.md) | Icon | The icon texture region of this mod, which will be visible in the options menu |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | Name | The display name of this mod, which will be visible in the options menu |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | AddGameContent ( [`GameImpl`](./../GameImpl.md) ) | Add the content that this mod provides for the given `TinyLife.GameImpl` instance. The following ways of content registration are supported: `TinyLife.Objects.FurnitureType.Register(TinyLife.Objects.FurnitureType.TypeSettings)` to register furniture types, `TinyLife.Actions.ActionType.Register(TinyLife.Actions.ActionType.TypeSettings)` to register action types, `TinyLife.Objects.Clothes.Register(TinyLife.Objects.Clothes)` to register clothes (and hair), `TinyLife.Skills.SkillType.Register(TinyLife.Skills.SkillType)` to register skills, `TinyLife.World.Wallpaper.Register(System.String,System.Int32,MLEM.Textures.UniformTextureAtlas,Microsoft.Xna.Framework.Point,TinyLife.Utilities.ColorScheme,MLEM.Textures.TextureRegion)` to register wallpapers, `TinyLife.World.Tile.Register(System.String,System.Int32,MLEM.Textures.TextureRegion,TinyLife.Utilities.ColorScheme,System.Single,System.Boolean,System.Boolean,MLEM.Textures.TextureRegion)` to register tiles. |
| [IEnumerable](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IEnumerable-1)\<[String](https://docs.microsoft.com/en-us/dotnet/api/System.String)> | GetCustomFurnitureTextures ( ) | Return a list of paths (relative to this mod's Content directory) to textures that contain the texture regions used by this mod's custom `TinyLife.Objects.FurnitureType`s. Note that the furniture texture needs to have an associated `MLEM.Data.DataTextureAtlas` file in the same location, but with the .atlas file extension. By default, an empty `System.Collections.Generic.IEnumerable`1` is returned. |
| void | Initialize ( [`Logger`](./Mod.md), [`RawContentManager`](./Mod.md), [`RuntimeTexturePacker`](./Mod.md) ) | Initialize the data for this mod, including textures, sounds and other data. The `MLEM.Data.Content.RawContentManager` is a variation of MonoGame's `Microsoft.Xna.Framework.Content.ContentManager` and should be used to load mod content. |

View file

@ -0,0 +1,28 @@
# [ModInfo](./ModInfo.md)
Namespace: [TinyLife]() > [Mods]()
Assembly: Tiny Life.dll
Implements [IDisposable](https://docs.microsoft.com/en-us/dotnet/api/System.IDisposable)
## Summary
A mod info is a set of properties that every `TinyLife.Mods.ModInfo.Mod` instance is assigned
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [RawContentManager](./ModInfo.md) | Content | A `MLEM.Data.Content.RawContentManager` that this mod can use to load its content. This content manager's base directory automatically points to the mod's Content folder. |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | Id | The id of the mod, which is based on the `TinyLife.Mods.ModInfo.Mod`'s class name |
| [Logger](./ModInfo.md) | Logger | The `TinyLife.Mods.ModInfo.Logger` that this mod can use to log information about itself. By default, this logger has the same sinks as the game's logger. |
| [Mod](./Mod.md) | Mod | The actual mod instance |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Dispose ( ) | |

View file

@ -0,0 +1,17 @@
# [ModLoader](./ModLoader.md)
Namespace: [TinyLife]() > [Mods]()
Assembly: Tiny Life.dll
## Summary
The mod loader loads `TinyLife.Mods.Mod` instances from the `TinyLife.Mods.ModLoader.GetModsFolder`.
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| [DirectoryInfo](https://docs.microsoft.com/en-us/dotnet/api/System.IO.DirectoryInfo) | GetModsFolder ( ) | Returns a `System.IO.DirectoryInfo` pointing to the directory that mods should be put into and loaded from |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | TryGetModInfo ( [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String), out [`ModInfo`](./ModLoader.md) ) | This method can be used to gather a `TinyLife.Mods.ModInfo` for a mod that is currently loaded with the given id. If no mod with that id is currently loaded, this method returns false and assigns null to `TinyLife.Mods.ModInfo`. |

38
Api/TinyLife/Need.md Normal file
View file

@ -0,0 +1,38 @@
# [Need](./Need.md)
Namespace: [TinyLife]()
Assembly: Tiny Life.dll
## Summary
A need is a desire that a `TinyLife.Objects.Person` can have to a given extent, defined by `TinyLife.Need.Value`. Each need is instantiated through its associated `TinyLife.NeedType`.
## Constructors
| Name | Summary |
| --- | --- |
| Need ( [`NeedType`](./NeedType.md) ) | Instantiate a new need from the given `TinyLife.NeedType` |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [NeedType](./NeedType.md) | Type | The `TinyLife.NeedType` that this need instance originates from |
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | Percentage | The `TinyLife.Need.Value` divided by `TinyLife.Need.Max`, yielding a floating point number between 0 and 1, representing the percentage fullness of this need |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | Value | The current value of this need. Automatically gets clamped to a number between 0 and `TinyLife.Need.Max`. |
## Static Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | Max | The maximum value that the `TinyLife.Need.Value` can have |

47
Api/TinyLife/NeedType.md Normal file
View file

@ -0,0 +1,47 @@
# [NeedType](./NeedType.md)
Namespace: [TinyLife]()
Assembly: Tiny Life.dll
## Summary
A need is a desire that a `TinyLife.Objects.Person` can have to a given extent. To register a custom need type, use `TinyLife.NeedType.Register(TinyLife.NeedType)`.
## Constructors
| Name | Summary |
| --- | --- |
| NeedType ( [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Func`](https://docs.microsoft.com/en-us/dotnet/api/System.Func-2)\<[`Person`](./Objects/Person.md), [`ActionType`](./Actions/ActionType.md)>, [`Func`](https://docs.microsoft.com/en-us/dotnet/api/System.Func-2)\<[`Person`](./Objects/Person.md), [`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan)>, [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single) ) | Instantiates a new need type with the given settings |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | Name | The name of this need. Used for `TinyLife.Localization` purposes and saving to disk. |
| [Func](https://docs.microsoft.com/en-us/dotnet/api/System.Func-2)\<[Person](./Objects/Person.md), [ActionType](./Actions/ActionType.md)> | NeedLowAction | The `TinyLife.Actions.ActionType` that is constructed and executed when this need type's `TinyLife.Need.Value` is very low |
| [Func](https://docs.microsoft.com/en-us/dotnet/api/System.Func-2)\<[Person](./Objects/Person.md), [TimeSpan](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan)> | NeedLowTime | The amount of in-game time that needs to pass until `TinyLife.NeedType.NeedLowAction` is constructed and enqueued |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | PassiveReduction | The amount that a need instance's `TinyLife.Need.Value` is reduced by automatically every update frame |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | SolveImportance | The priority for solving this need over other needs, where higher numbers represent a more urgent need. This value defaults to 0, meaning it has no special importance. |
## Static Fields
| Type | Name | Summary |
| --- | --- | --- |
| [NeedType](./NeedType.md) | Energy | |
| [NeedType](./NeedType.md) | Entertainment | |
| [NeedType](./NeedType.md) | Hunger | |
| [NeedType](./NeedType.md) | Hygiene | |
| [NeedType](./NeedType.md) | Social | |
| [NeedType](./NeedType.md) | Toilet | |
| [IList](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IList-1)\<[NeedType](./NeedType.md)> | Types | A list of all of the need types that are currently registered. Register custom need types using `TinyLife.NeedType.Register(TinyLife.NeedType)`. |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| [NeedType](./NeedType.md) | Register ( [`NeedType`](./NeedType.md) ) | Register the `TinyLife.NeedType` specified to the `TinyLife.NeedType.Types` dictionary |

View file

@ -0,0 +1,32 @@
# [AbstractSpot](./AbstractSpot.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
## Summary
An `TinyLife.Objects.AbstractSpot` is a base class for `TinyLife.Objects.ObjectSpot` and `TinyLife.Objects.ActionSpot`.
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) | Group | The groups that this spot has, which is interpreted as a bit flag. Two action spots with overlapping groups ((g1 AND g2) != 0) cannot both be occupied by two different people. This is used by things lke `TinyLife.Objects.FurnitureType.ModernBed` to stop people from sitting on a side there someone is already sleeping. By default, this is set to 0, meaning there is no group set. |
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | YOffset | The offset on the visual y axis that the `TinyLife.Objects.Furniture` or `TinyLife.Objects.Person` slotted into this spot should render with |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | DoGroupsOverlap ( [`AbstractSpot`](./AbstractSpot.md) ) | Returns whether the passed `TinyLife.Objects.AbstractSpot`'s `TinyLife.Objects.AbstractSpot.Group` and this spot's Group overlap. Two overlapping groups are groups for which (g1 AND g2) != 0. |
| [Vector2](./AbstractSpot.md) | GetLocation ( [`Furniture`](./Furniture.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | Returns the location that this spot has in world space, based on the given `TinyLife.Objects.Furniture` and its position and rotation. |
| [IEnumerable](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IEnumerable-1)\<[Direction2](./AbstractSpot.md)> | GetValidDirections ( [`Direction2`](./AbstractSpot.md) ) | Returns the `TinyLife.Objects.AbstractSpot.ValidDirections` of this spot, but rotated by the given `MLEM.Misc.Direction2`. |

View file

@ -0,0 +1,34 @@
# [ActionSpot](./ActionSpot.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
## Summary
An action spot is a `TinyLife.Objects.AbstractSpot` extension that is used by `TinyLife.Objects.Furniture` to declare a location that a `TinyLife.Objects.Person` can interact with the furniture at
## Constructors
| Name | Summary |
| --- | --- |
| ActionSpot ( [`Vector2`](./ActionSpot.md), [`Direction2`](./ActionSpot.md)[] ) | Creates a new action spot with the given settings |
| ActionSpot ( [`Vector2`](./ActionSpot.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Direction2`](./ActionSpot.md)[] ) | Creates a new action spot with the given settings |
| ActionSpot ( [`Vector2`](./ActionSpot.md), [`Vector2`](./ActionSpot.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Direction2`](./ActionSpot.md)[] ) | Creates a new action spot with the given settings |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Nullable](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[ObjectCategory](./ObjectCategory.md)> | CategoryRestriction | The categories that this `TinyLife.Objects.ActionSpot` is restricted to. This is used by things like `TinyLife.Objects.FurnitureType.ModernBed` to declare separate spots for sitting on and sleeping on. By default, this is set to null. |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) | DrawLayer | The layer that a person slotted into this action spot using `TinyLife.Objects.Person.OccupyActionSpot(TinyLife.Objects.Furniture,TinyLife.Objects.ActionSpot,System.Boolean,System.Nullable{MLEM.Misc.Direction2})` is drawn on. By default, this is set to 0, meaning it will be drawn on top of the first layer of this furniture. |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [IEnumerable](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IEnumerable-1)\<[Direction2](./ActionSpot.md)> | GetFreeDirections ( [`Furniture`](./Furniture.md), [`Person`](./Person.md) ) | Returns a set of `MLEM.Misc.Direction2` values that this spot can be accessed from. Valid directions will have an empty space that a `TinyLife.Objects.Person` can stand in, but not necessarily walk to. The returned value is used by `TinyLife.Objects.Furniture.GetFreeActionSpots(TinyLife.Objects.Person,TinyLife.Objects.ObjectCategory)` and `TinyLife.Objects.Furniture.GetFreeActionSpotInfo(TinyLife.Objects.Person,TinyLife.Objects.ObjectCategory)` to find a location adjacent to this action spot that a `TinyLife.Objects.Person` can walk to. |
| [IEnumerable](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IEnumerable-1)\<[Person](./Person.md)> | GetOccupants ( [`Furniture`](./Furniture.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | Returns a set of the `TinyLife.Objects.Person` instances that are currently occupying this action spot. Note that an action spot is also marked as occupied if the person is currently on their way to it. |

View file

@ -0,0 +1,36 @@
# [BreakableFurniture](./BreakableFurniture.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./BreakableFurniture.md), [IPricedObject](./../World/IPricedObject.md), [IUpdatingObject](./IUpdatingObject.md)
## Summary
Breakable furniture is `TinyLife.Objects.Furniture` that can be `TinyLife.Objects.BreakableFurniture.Broken` and then repaired. An object of this class is automatically returned in `TinyLife.Objects.FurnitureType.Construct(System.Int32[],TinyLife.World.Map,Microsoft.Xna.Framework.Vector2,System.Nullable{System.Guid})` if no `TinyLife.Objects.FurnitureType.TypeSettings.ConstructedType` is set.
## Constructors
| Name | Summary |
| --- | --- |
| BreakableFurniture ( [`Guid`](https://docs.microsoft.com/en-us/dotnet/api/System.Guid), [`FurnitureType`](./FurnitureType.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[], [`Map`](./../World/Map.md), [`Vector2`](./BreakableFurniture.md) ) | |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | Broken | A field that stores whether this furniture is currently broken |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | ActionUpdate ( [`Action`](./../Actions/Action.md), [`GameTime`](./BreakableFurniture.md), [`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan), [`GameSpeed`](./../GameSpeed.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | |
| [IEnumerable](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IEnumerable-1)\<[String](https://docs.microsoft.com/en-us/dotnet/api/System.String)> | GetDescription ( ) | |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | GetPrice ( ) | |
| void | Update ( [`GameTime`](./BreakableFurniture.md), [`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan), [`GameSpeed`](./../GameSpeed.md) ) | |
| void | WearDown ( [`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan) ) | Causes this furniture to wear down, increasing the likelihood of it becoming `TinyLife.Objects.BreakableFurniture.Broken` and randomly breaking it |

View file

@ -0,0 +1,33 @@
# [Car](./Car.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./Car.md), [IUpdatingObject](./IUpdatingObject.md)
## Constructors
| Name | Summary |
| --- | --- |
| Car ( [`Guid`](https://docs.microsoft.com/en-us/dotnet/api/System.Guid), [`Map`](./../World/Map.md), [`Vector2`](./Car.md) ) | |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Guid](https://docs.microsoft.com/en-us/dotnet/api/System.Guid) | Driver | The id of the person driving the car |
| [Direction2](./Car.md) | Rotation | The rotation that this car has |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Draw ( [`GameTime`](./Car.md), [`SpriteBatch`](./Car.md), [`Vector2`](./Car.md), [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Color`](./Car.md)> ) | |
| void | Update ( [`GameTime`](./Car.md), [`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan), [`GameSpeed`](./../GameSpeed.md) ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | Validate ( ) | |

View file

@ -0,0 +1,54 @@
# [Clothes](./Clothes.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
Implements [IPricedObject](./../World/IPricedObject.md)
## Summary
A set of information and a registry for clothing items (and hair) that a `TinyLife.Objects.Person` can wear. Custom clothes can be registered using `TinyLife.Objects.Clothes.Register(TinyLife.Objects.Clothes)`.
## Constructors
| Name | Summary |
| --- | --- |
| Clothes ( [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String), [`ClothesLayer`](./ClothesLayer.md), [`TextureRegion`](./Clothes.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`TextureRegion`](./Clothes.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean), [`ColorScheme`](./Clothes.md)[] ) | |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [ColorScheme](./Clothes.md)[] | Colors | The set of `TinyLife.Utilities.ColorScheme`s that this clothes item can have its colors selected from. The color scheme at index i will be mapped to the `TinyLife.Objects.Clothes.TextureRegions` entry at index i. |
| [TextureRegion](./Clothes.md) | Icon | The character creator icon for this object, which represents the category / theme / mod that it comes from. If this value is nonnull, the icon will be displayed in the corner of the character creator button for this object. |
| [ClothesLayer](./ClothesLayer.md) | Layer | The `TinyLife.Objects.ClothesLayer` that this clothes item should render on |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | Name | The name of this clothes item. Since this is used for the `TinyLife.Objects.Clothes.Types` registry, the name must be unique across mods. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | NonBuyable | This value determines whether this clothes item can be bought in the character creator. If this value is false, the only way for this clothes item to be visible in the character creator is by adding it to the `TinyLife.World.Household.ClothesStorage`. |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | Price | The price of this piece of clothing. Use `TinyLife.Objects.Clothes.GetPrice` to retrieve this value for consistency. |
| [TextureRegion](./Clothes.md)[] | TextureRegions | The `MLEM.Textures.TextureRegion` that this clothes item uses in the world. The texture region specified in the constructor only needs to cover the top left animation frame of the `TinyLife.Objects.Person`, any remaining frames will automatically be gathered. Multiple layers will be gathered if `TinyLife.Objects.Clothes.Colors` has multiple entries. Each new layer will be gathered to the right of the passed region's area. |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | GetPrice ( ) | |
## Static Fields
| Type | Name | Summary |
| --- | --- | --- |
| [ClothesLayer](./Clothes.md)[] | Layers | A set of all valid `TinyLife.Objects.ClothesLayer` values |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) | ReferencePrice | The reference price for a piece of clothing. When clothes items are randomly chosen for a new `TinyLife.Objects.Person`, the items chosen will be guaranteed to have a price equal to or below this value. |
| [IDictionary](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IDictionary-2)\<[String](https://docs.microsoft.com/en-us/dotnet/api/System.String), [Clothes](./Clothes.md)> | Types | A registry that contains all `TinyLife.Objects.Clothes` in the game and all mods |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Register ( [`Clothes`](./Clothes.md) ) | Register the given clothes instance to the `TinyLife.Objects.Clothes.Types` registry |

View file

@ -0,0 +1,20 @@
# [ClothesLayer](./ClothesLayer.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
A flag enumeration that defines a set of layers that a `TinyLife.Objects.Person`'s `TinyLife.Objects.Clothes` are rendered with. The ordering is based on the order that these should be drawn in.
## Enum
| Value | Name | Summary |
| --- | --- | --- |
| 1 | Body | A clothes layer for the body (the person's skin) itself |
| 2 | Eyes | A clothes layer for eyes |
| 4 | Shirt | A clothes layer for t-shirts, shirts etc. |
| 8 | Hair | A clothes layer for hair |
| 16 | Pants | A clothes layer for legwear like pants and skirts |
| 32 | Shoes | A clothes layer for footwear like shoes |

View file

@ -0,0 +1,26 @@
# [CornerFurniture](./CornerFurniture.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./CornerFurniture.md), [IPricedObject](./../World/IPricedObject.md)
## Summary
Corner furniture is furniture like `TinyLife.Objects.FurnitureType.SimpleCounter` and `TinyLife.Objects.FurnitureType.Hedge` that automatically connect to their neighbors
## Constructors
| Name | Summary |
| --- | --- |
| CornerFurniture ( [`Guid`](https://docs.microsoft.com/en-us/dotnet/api/System.Guid), [`FurnitureType`](./FurnitureType.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[], [`Map`](./../World/Map.md), [`Vector2`](./CornerFurniture.md) ) | |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Draw ( [`GameTime`](./CornerFurniture.md), [`SpriteBatch`](./CornerFurniture.md), [`Vector2`](./CornerFurniture.md), [`Vector2`](./CornerFurniture.md), [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Color`](./CornerFurniture.md)>, [`Direction2`](./CornerFurniture.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[], [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean), [`Furniture`](./Furniture.md), [`ObjectSpot`](./ObjectSpot.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | Validate ( ) | |

View file

@ -0,0 +1,26 @@
# [Fence](./Fence.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./Fence.md), [IPricedObject](./../World/IPricedObject.md)
## Summary
A fence is a furniture used by things like `TinyLife.Objects.FurnitureType.CountryFence` that auto-connects similarly to `TinyLife.Objects.CornerFurniture`, but by actually adding additional connection textures onto the regular object textures
## Constructors
| Name | Summary |
| --- | --- |
| Fence ( [`Guid`](https://docs.microsoft.com/en-us/dotnet/api/System.Guid), [`FurnitureType`](./FurnitureType.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[], [`Map`](./../World/Map.md), [`Vector2`](./Fence.md) ) | |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Draw ( [`GameTime`](./Fence.md), [`SpriteBatch`](./Fence.md), [`Vector2`](./Fence.md), [`Vector2`](./Fence.md), [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Color`](./Fence.md)>, [`Direction2`](./Fence.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[], [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean), [`Furniture`](./Furniture.md), [`ObjectSpot`](./ObjectSpot.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | Validate ( ) | |

View file

@ -0,0 +1,32 @@
# [Food](./Food.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./Food.md), [IPricedObject](./../World/IPricedObject.md)
## Constructors
| Name | Summary |
| --- | --- |
| Food ( [`Guid`](https://docs.microsoft.com/en-us/dotnet/api/System.Guid), [`FurnitureType`](./FurnitureType.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[], [`Map`](./../World/Map.md), [`Vector2`](./Food.md) ) | |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | FoodLeft | The amount of food that this food item has left. This is set to `TinyLife.Skills.FoodType.FoodAmount` by default |
| [Quality](./../Skills/Quality.md) | Quality | The `TinyLife.Objects.Food.Quality` of this food item, defaults to `TinyLife.Skills.Quality.Average`. Note that, by default, this property only differs if `TinyLife.Objects.FoodTypedItem.Creator` is set. |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Draw ( [`GameTime`](./Food.md), [`SpriteBatch`](./Food.md), [`Vector2`](./Food.md), [`Vector2`](./Food.md), [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Color`](./Food.md)>, [`Direction2`](./Food.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[], [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean), [`Furniture`](./Furniture.md), [`ObjectSpot`](./ObjectSpot.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | |
| [Tooltip](./Food.md) | GetHoverInfo ( ) | |

View file

@ -0,0 +1,32 @@
# [FoodTypedItem](./FoodTypedItem.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./FoodTypedItem.md), [IPricedObject](./../World/IPricedObject.md)
## Constructors
| Name | Summary |
| --- | --- |
| FoodTypedItem ( [`Guid`](https://docs.microsoft.com/en-us/dotnet/api/System.Guid), [`FurnitureType`](./FurnitureType.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[], [`Map`](./../World/Map.md), [`Vector2`](./FoodTypedItem.md) ) | |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Guid](https://docs.microsoft.com/en-us/dotnet/api/System.Guid) | Creator | The `System.Guid` of the `TinyLife.Objects.Person` that created this item |
| [FoodType](./../Skills/FoodType.md) | FoodType | The `TinyLife.Skills.FoodType` that this food-typed item has |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Tooltip](./FoodTypedItem.md) | GetHoverInfo ( ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | Validate ( ) | |

View file

@ -0,0 +1,66 @@
# [Furniture](./Furniture.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./Furniture.md), [IPricedObject](./../World/IPricedObject.md)
## Summary
A furniture is an instance of a `TinyLife.Objects.FurnitureType` which is placed in the world, or in a `TinyLife.Objects.Person`'s hand. To register a custom furniture, use `TinyLife.Objects.FurnitureType.Register(TinyLife.Objects.FurnitureType.TypeSettings)`.
## Constructors
| Name | Summary |
| --- | --- |
| Furniture ( [`Guid`](https://docs.microsoft.com/en-us/dotnet/api/System.Guid), [`FurnitureType`](./FurnitureType.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[], [`Map`](./../World/Map.md), [`Vector2`](./Furniture.md) ) | Creates a new furniture instance. By default, this is done using `TinyLife.Objects.FurnitureType.Construct(System.Int32[],TinyLife.World.Map,Microsoft.Xna.Framework.Vector2,System.Nullable{System.Guid})`. |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[] | Colors | The indices of the colors that this furniture has. Refer to `TinyLife.Objects.FurnitureType.TypeSettings.ColorSchemes` for the actual colors that these indices represent. |
| [Direction2](./Furniture.md) | Rotation | The current rotation of this furniture. Since furniture has a wide variety of looks, the specific value of the rotation doesn't necessarily have much practical meaning. |
| [FurnitureType](./FurnitureType.md) | Type | The `TinyLife.Objects.FurnitureType` that this furniture has |
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [RectangleF](./Furniture.md) | Area | A `MLEM.Misc.RectangleF` that represents the area that this furniture piece is currently taking up, based on its `TinyLife.Objects.FurnitureType.GetSize(MLEM.Misc.Direction2)` and its `TinyLife.Objects.MapObject.Position` |
| [Furniture](./Furniture.md) | ParentFurniture | The `TinyLife.Objects.Furniture` that this furniture is currently latched on to. If this value is non-null, `TinyLife.Objects.Furniture.ParentObjectSpot` returns the object spot that this furniture is in. |
| [ObjectSpot](./ObjectSpot.md) | ParentObjectSpot | The `TinyLife.Objects.ObjectSpot` that this furniture is currently in. If this value is non-null, `TinyLife.Objects.Furniture.ParentFurniture` returns the furniture that this object spot belongs to. |
| [Vector2](./Furniture.md) | VisualPosition | The position (in world space) that this furniture is at. This only differs from this object's `TinyLife.Objects.MapObject.Position` if the `TinyLife.Objects.Furniture.ParentObjectSpot`'s `TinyLife.Objects.AbstractSpot.YOffset` is non-zero. |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [T](./Furniture.md) | AddChild ( [`FurnitureType`](./FurnitureType.md), [`Direction2`](./Furniture.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[], [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Guid`](https://docs.microsoft.com/en-us/dotnet/api/System.Guid)>, [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Vector2`](./Furniture.md)> ) | Adds a child to this furniture, setting its parent (`TinyLife.Objects.Furniture.SetParent(TinyLife.Objects.Furniture,TinyLife.Objects.ObjectSpot)`) to this furniture. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | AddChild ( [`Furniture`](./Furniture.md), [`Direction2`](./Furniture.md), [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Vector2`](./Furniture.md)> ) | Adds a child to this furniture, setting its parent (`TinyLife.Objects.Furniture.SetParent(TinyLife.Objects.Furniture,TinyLife.Objects.ObjectSpot)`) to this furniture. The object spot selected is the first available object spot. |
| void | Draw ( [`GameTime`](./Furniture.md), [`SpriteBatch`](./Furniture.md), [`Vector2`](./Furniture.md), [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Color`](./Furniture.md)> ) | |
| void | Draw ( [`GameTime`](./Furniture.md), [`SpriteBatch`](./Furniture.md), [`Vector2`](./Furniture.md), [`Vector2`](./Furniture.md), [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Color`](./Furniture.md)>, [`Direction2`](./Furniture.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[], [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean), [`Furniture`](./Furniture.md), [`ObjectSpot`](./ObjectSpot.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | Draws this furniture in the world with the given settings. This is a more generalized version of `TinyLife.Objects.Furniture.Draw(Microsoft.Xna.Framework.GameTime,Microsoft.Xna.Framework.Graphics.SpriteBatch,Microsoft.Xna.Framework.Vector2,System.Nullable{Microsoft.Xna.Framework.Color})` |
| void | DrawUi ( [`GameTime`](./Furniture.md), [`SpriteBatch`](./Furniture.md), [`Element`](./Furniture.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[] ) | Draws this furniture in a ui context, rather than a world context. Scale is determined based on the element that is passed. |
| [ActionInfo](./../Actions/ActionInfo.md) | GetActionSpotInfo ( [`Person`](./Person.md), [`ActionSpot`](./ActionSpot.md), [`Direction2`](./Furniture.md) ) | Returns a `TinyLife.Actions.ActionInfo` that corresponds to the given `TinyLife.Objects.ActionSpot` and rotation |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) | GetAiPriority ( [`Person`](./Person.md), [`ObjectCategory`](./ObjectCategory.md) ) | |
| [ObjectCategory](./ObjectCategory.md) | GetCategories ( [`Person`](./Person.md) ) | |
| [IEnumerable](./Furniture.md)\<[T](./Furniture.md)> | GetChildren ( ) | Returns a list of all of the children of this furniture. Children are all furnitures in the world that have their `TinyLife.Objects.Furniture.ParentFurniture` set to this furniture instance. |
| [IEnumerable](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IEnumerable-1)\<[String](https://docs.microsoft.com/en-us/dotnet/api/System.String)> | GetDescription ( ) | Returns a set of lines that are displayed in build mode when this furniture is hovered over, either in the buy menu or in the `TinyLife.World.Household.FurnitureStorage`. By default, an empty set is returned. |
| [ValueTuple](https://docs.microsoft.com/en-us/dotnet/api/System.ValueTuple-2)\<[ActionSpot](./ActionSpot.md), [Direction2](./Furniture.md)> | GetFreeActionSpot ( [`Person`](./Person.md), [`ObjectCategory`](./ObjectCategory.md) ) | Returns the first free action spot from `TinyLife.Objects.Furniture.GetFreeActionSpots(TinyLife.Objects.Person,TinyLife.Objects.ObjectCategory)`. |
| [ActionInfo](./../Actions/ActionInfo.md) | GetFreeActionSpotInfo ( [`Person`](./Person.md), [`ObjectCategory`](./ObjectCategory.md) ) | Returns the first free action spot from `TinyLife.Objects.Furniture.GetFreeActionSpot(TinyLife.Objects.Person,TinyLife.Objects.ObjectCategory)`, but packed into an `TinyLife.Actions.ActionInfo`. |
| [IEnumerable](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IEnumerable-1)\<[ValueTuple](https://docs.microsoft.com/en-us/dotnet/api/System.ValueTuple-2)\<[ActionSpot](./ActionSpot.md), [Direction2](./Furniture.md)>> | GetFreeActionSpots ( [`Person`](./Person.md), [`ObjectCategory`](./ObjectCategory.md) ) | Returns a list of `TinyLife.Objects.ActionSpot` instances that are part of this furniture, which are considered free. Free, in this instance, is any spot that has the given category and is not currently occupied by another person. |
| [ObjectSpot](./ObjectSpot.md) | GetFreeObjectSpot ( [`FurnitureType`](./FurnitureType.md), [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Vector2`](./Furniture.md)> ) | Returns the first free `TinyLife.Objects.ObjectSpot` on this furniture. Free, in this case, is any object spot that isn't already occupied by a different furniture. |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | GetPrice ( ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | Intersects ( [`RectangleF`](./Furniture.md) ) | |
| void | OnAdded ( ) | |
| void | OnRemoved ( ) | |
| [IEnumerable](./Furniture.md)\<[T](./Furniture.md)> | RemoveChildren ( [`Predicate`](./Furniture.md)\<[`T`](./Furniture.md)> ) | Removes all of the children from this furniture that match the given predicate. Children are all furnitures in the world that have their `TinyLife.Objects.Furniture.ParentFurniture` set to this furniture instance. |
| void | SetChild ( [`ObjectSpot`](./ObjectSpot.md), [`FurnitureType`](./FurnitureType.md), [`Direction2`](./Furniture.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[], [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Guid`](https://docs.microsoft.com/en-us/dotnet/api/System.Guid)> ) | Sets the child element in the given object spot to the given furniture. If there are already children in the given object spot, those are removed prior to adding the new child. |
| void | SetChild ( [`ObjectSpot`](./ObjectSpot.md), [`Furniture`](./Furniture.md), [`Direction2`](./Furniture.md) ) | Sets the child element in the given object spot to the given furniture. If there are already children in the given object spot, those are removed prior to adding the new child. |
| void | SetParent ( [`Furniture`](./Furniture.md), [`ObjectSpot`](./ObjectSpot.md) ) | Sets the parent of this furniture, changing its `TinyLife.Objects.MapObject.Position` and settings its `TinyLife.Objects.Furniture.ParentObjectSpot` value. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | Validate ( ) | |

View file

@ -0,0 +1,102 @@
# [FurnitureType](./FurnitureType.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./FurnitureType.md), [IPricedObject](./../World/IPricedObject.md)
## Summary
A furniture type is basically a blueprint for `TinyLife.Objects.Furniture` objects. Each furniture type can create a furniture instance and the type's data will be transferred to the instance. Furniture types are automatically listed in the `TinyLife.Tools.FurnitureTool` if registered using `TinyLife.Objects.FurnitureType.Register(TinyLife.Objects.FurnitureType.TypeSettings)`.
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Dictionary](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.Dictionary-2)\<[Direction2](./FurnitureType.md), [TextureRegion](./FurnitureType.md)[]> | Textures | The textures that this furniture type has. Each texture is automatically loaded based on the registered `MLEM.Data.DataTextureAtlas` instances. If a furniture type has multiple `TinyLife.Objects.FurnitureType.TypeSettings.ColorMap` entries (or multiple `TinyLife.Objects.FurnitureType.TypeSettings.ColorSchemes`), additional texture regions will automatically be created to the right of the original texture region. |
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [TextureRegion](./FurnitureType.md) | ReferenceTexture | A reference texture that is used for visual size calculations. Always returns the first available texture of `TinyLife.Objects.FurnitureType.TypeSettings.DefaultRotation` in `TinyLife.Objects.FurnitureType.Textures` |
| [ICollection](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.ICollection-1)\<[Direction2](./FurnitureType.md)> | Rotations | The valid rotations that this furniture has, which are automatically determined based on the available `TinyLife.Objects.FurnitureType.Textures` |
| [TypeSettings](./FurnitureType.md) | Settings | This furniture type's settings |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | AreWallsInTheWay ( [`Map`](./../World/Map.md), [`Vector2`](./FurnitureType.md), [`Direction2`](./FurnitureType.md) ) | Returns whether or not there would be walls in the way if this furniture type was placed at the given position with the given rotation |
| [Furniture](./Furniture.md) | Construct ( [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[], [`Map`](./../World/Map.md), [`Vector2`](./FurnitureType.md), [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Guid`](https://docs.microsoft.com/en-us/dotnet/api/System.Guid)> ) | Constructs a new `TinyLife.Objects.Furniture` object from this furniture type |
| void | DrawLayers ( [`Map`](./../World/Map.md), [`Vector2`](./FurnitureType.md), [`SpriteBatch`](./FurnitureType.md), [`Vector2`](./FurnitureType.md), [`Direction2`](./FurnitureType.md), [`TextureRegion`](./FurnitureType.md)[], [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[], [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean), [`Furniture`](./Furniture.md), [`ObjectSpot`](./ObjectSpot.md), [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Color`](./FurnitureType.md)>, [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | Draws the furniture type with the given data |
| [Direction2](./FurnitureType.md) | GetBestRotation ( [`Direction2`](./FurnitureType.md) ) | Returns a `MLEM.Misc.Direction2` that is closest to ``, but that this object is allowed to have. The return value is guaranteed to be contained in `TinyLife.Objects.FurnitureType.Rotations` and have the same verticality as ``, or be the same value. |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) | GetColumns ( [`Direction2`](./FurnitureType.md) ) | Returns the amount of columns that this furniture should be drawn in, based on the given rotation. |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | GetPrice ( ) | |
| [Point](./FurnitureType.md) | GetSize ( [`Direction2`](./FurnitureType.md) ) | Returns the `TinyLife.Objects.FurnitureType.TypeSettings.Size` of this furniture type, modified based on the given rotation. |
| [IEnumerable](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IEnumerable-1)\<[Wall](./../World/Wall.md)> | GetWallsInTheWay ( [`Map`](./../World/Map.md), [`Vector2`](./FurnitureType.md), [`Direction2`](./FurnitureType.md) ) | Returns a set of walls that would be in the way if this furniture type was placed at the given position with the given rotation |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | HasCategory ( [`ObjectCategory`](./ObjectCategory.md) ) | Returns whether this type's `TinyLife.Objects.FurnitureType.Settings` have any of the supplied `TinyLife.Objects.ObjectCategory` values |
| void | SlotIntoActionSpot ( [`Vector2`](./FurnitureType.md), [`Direction2`](./FurnitureType.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32), out [`Vector2`](./FurnitureType.md), out [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single) ) | A helper method that modifies `` and `` so that they can be used for depth calculations that will make an object look as if it was slotted into the given action spot |
## Static Fields
| Type | Name | Summary |
| --- | --- | --- |
| [FurnitureType](./FurnitureType.md) | Book | |
| [FurnitureType](./FurnitureType.md) | CountryFence | |
| [FurnitureType](./FurnitureType.md) | CustomPainting | |
| [FurnitureType](./FurnitureType.md) | EmptyPlate | |
| [FurnitureType](./FurnitureType.md) | FoodPlate | |
| [FurnitureType](./FurnitureType.md) | GrassPatch | |
| [FurnitureType](./FurnitureType.md) | Gravestone | |
| [FurnitureType](./FurnitureType.md) | Hedge | |
| [FurnitureType](./FurnitureType.md) | LongDinnerTable | |
| [FurnitureType](./FurnitureType.md) | Mailbox | |
| [FurnitureType](./FurnitureType.md) | MapleTree | |
| [FurnitureType](./FurnitureType.md) | ModernBed | |
| [FurnitureType](./FurnitureType.md) | ModernComputer | |
| [FurnitureType](./FurnitureType.md) | ModernFridge | |
| [FurnitureType](./FurnitureType.md) | ModernSingleBed | |
| [FurnitureType](./FurnitureType.md) | ModernSink | |
| [FurnitureType](./FurnitureType.md) | ModernStove | |
| [FurnitureType](./FurnitureType.md) | ModernTv | |
| [FurnitureType](./FurnitureType.md) | PaintBrush | |
| [FurnitureType](./FurnitureType.md) | Pot | |
| [FurnitureType](./FurnitureType.md) | PotPlant | |
| [FurnitureType](./FurnitureType.md) | PreparedFood | |
| [FurnitureType](./FurnitureType.md) | Puddle | |
| [FurnitureType](./FurnitureType.md) | SimpleBench | |
| [FurnitureType](./FurnitureType.md) | SimpleBookshelf | |
| [FurnitureType](./FurnitureType.md) | SimpleChair | |
| [FurnitureType](./FurnitureType.md) | SimpleCounter | |
| [FurnitureType](./FurnitureType.md) | SimpleDesk | |
| [FurnitureType](./FurnitureType.md) | SimpleDrawer | |
| [FurnitureType](./FurnitureType.md) | SimpleEasel | |
| [FurnitureType](./FurnitureType.md) | SimpleShower | |
| [FurnitureType](./FurnitureType.md) | SimpleToilet | |
| [FurnitureType](./FurnitureType.md) | SmallBush | |
| [FurnitureType](./FurnitureType.md) | SmallMirror | |
| [FurnitureType](./FurnitureType.md) | SmallPlant | |
| [FurnitureType](./FurnitureType.md) | Spanner | |
| [FurnitureType](./FurnitureType.md) | Sponge | |
| [FurnitureType](./FurnitureType.md) | SquareDinnerTable | |
| [IDictionary](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IDictionary-2)\<[String](https://docs.microsoft.com/en-us/dotnet/api/System.String), [FurnitureType](./FurnitureType.md)> | Types | A list of all available furniture types. Register furniture types using `TinyLife.Objects.FurnitureType.Register(TinyLife.Objects.FurnitureType.TypeSettings)`. |
| [FurnitureType](./FurnitureType.md) | UnpreparedFood | |
| [FurnitureType](./FurnitureType.md) | YarnBox | |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | DrawColumns ( [`Map`](./../World/Map.md), [`Vector2`](./FurnitureType.md), [`Direction2`](./FurnitureType.md), [`SpriteBatch`](./FurnitureType.md), [`Vector2`](./FurnitureType.md), [`TextureRegion`](./FurnitureType.md), [`Color`](./FurnitureType.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Point`](./FurnitureType.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean), [`Furniture`](./Furniture.md), [`ObjectSpot`](./ObjectSpot.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | Draws the given texture region in columns, which allows for depth calculation in isometric view to be possible. Bigger objects, including all furniture, are drawn in this matter. |
| [Rectangle](./FurnitureType.md) | GetCoveredTiles ( [`Vector2`](./FurnitureType.md), [`Point`](./FurnitureType.md) ) | Returns a rectangle that contains all of the tiles which intersect with the furniture when placed at the given position, with the given size. |
| [TextureRegion](./FurnitureType.md) | GetTexture ( [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String) ) | Returns a `MLEM.Textures.TextureRegion` with the given name, based on all of the textures in the base game and all `TinyLife.Mods.Mod.GetCustomFurnitureTextures` textures. |
| [Dictionary](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.Dictionary-2)\<[Direction2](./FurnitureType.md), [TextureRegion](./FurnitureType.md)[]> | GetTextures ( [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) ) | Create a dictionary of textures for all `MLEM.Misc.Direction2Helper.Adjacent` directions that have a texture registered for them. Textures are gathered using `TinyLife.Mods.Mod.GetCustomFurnitureTextures`, and textures need to be suffixed with the direction's string to be recognized. This method is used for furniture of all kinds. |
| [FurnitureType](./FurnitureType.md) | Register ( [`TypeSettings`](./FurnitureType.md) ) | |
| void | SlotIntoObjectSpot ( [`Furniture`](./Furniture.md), [`ObjectSpot`](./ObjectSpot.md), [`Point`](./FurnitureType.md), out [`Vector2`](./FurnitureType.md), out [`Point`](./FurnitureType.md) ) | A helper method that modifies `` and `` to make an object look like it is slotted into the given `TinyLife.Objects.ObjectSpot` |

View file

@ -0,0 +1,37 @@
# [Gravestone](./Gravestone.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./Gravestone.md), [IPricedObject](./../World/IPricedObject.md)
## Constructors
| Name | Summary |
| --- | --- |
| Gravestone ( [`Guid`](https://docs.microsoft.com/en-us/dotnet/api/System.Guid), [`FurnitureType`](./FurnitureType.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[], [`Map`](./../World/Map.md), [`Vector2`](./Gravestone.md) ) | |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [DeathReason](./Gravestone.md) | Reason | The `TinyLife.Objects.Person.DeathReason` for this gravestone's `TinyLife.Objects.Gravestone.DeadPerson`'s death |
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [Person](./Person.md) | DeadPerson | The `TinyLife.Objects.Person` that is "stored" in this gravestone. Note that the actual dead person is stored in `TinyLife.World.Map.GetDeadPerson(System.Guid)`. |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Tooltip](./Gravestone.md) | GetHoverInfo ( ) | |

View file

@ -0,0 +1,16 @@
# [IUpdatingObject](./IUpdatingObject.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
## Summary
This is an interface that can be added to `TinyLife.Objects.MapObject` classes to make them automatically update each update frame. This is used by things like `TinyLife.Objects.Person`, which needs to update for movement etc.
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Update ( [`GameTime`](./IUpdatingObject.md), [`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan), [`GameSpeed`](./../GameSpeed.md) ) | The update method, which is called every update frame by the underlying `TinyLife.World.Map` |

View file

@ -0,0 +1,68 @@
# [MapObject](./MapObject.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./MapObject.md)
## Summary
An instance of this class represents an object that can be, or is, part of a `TinyLife.Objects.MapObject.Map`. If this object's `TinyLife.Objects.MapObject.Position` is set to -1, -1, that is usually an indicator that the object is currently not in the world.
## Constructors
| Name | Summary |
| --- | --- |
| MapObject ( [`Guid`](https://docs.microsoft.com/en-us/dotnet/api/System.Guid), [`Map`](./../World/Map.md), [`Vector2`](./MapObject.md) ) | Creates a new map object with the given settings |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Guid](https://docs.microsoft.com/en-us/dotnet/api/System.Guid) | Id | The `System.Guid` of this object instance |
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [Lot](./../World/Lot.md) | CurrentLot | A property that returns the `TinyLife.Objects.MapObject.CurrentLot` that this object is currently on |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | IsInWorld | A property that returns true if this object is currently present on a `TinyLife.Objects.MapObject.Map` |
| [Map](./../World/Map.md) | Map | The map that this object is currently on. If this is null, the object is not currently on a map. |
| [Vector2](./MapObject.md) | Position | The position on the `TinyLife.Objects.MapObject.Map` of this object. If this is set to -1, -1, that is usually an indicator that the object is currently not in the world. |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | ActionUpdate ( [`Action`](./../Actions/Action.md), [`GameTime`](./MapObject.md), [`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan), [`GameSpeed`](./../GameSpeed.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | This method is called when an `TinyLife.Actions.Action` that this object is involved in updates, which is every `Microsoft.Xna.Framework.Game.Update(Microsoft.Xna.Framework.GameTime)` frame. This object counts as involved in the action if its `TinyLife.Actions.ActionInfo`'s `TinyLife.Actions.ActionInfo.GetInvolvedObjects``1(TinyLife.Objects.ObjectCategory)` includes this object |
| void | Draw ( [`GameTime`](./MapObject.md), [`SpriteBatch`](./MapObject.md), [`Vector2`](./MapObject.md), [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Color`](./MapObject.md)> ) | Draws this object on the current `TinyLife.Objects.MapObject.Map`, at the current `TinyLife.Objects.MapObject.Position`. |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) | GetAiPriority ( [`Person`](./Person.md), [`ObjectCategory`](./ObjectCategory.md) ) | Returns an integer that represents a priority for the `TinyLife.Objects.PersonAi`'s interaction with this object. A higher priority means that this object will be picked over other objects (with lower priority). The default return value is 0, meaning that no special priority is assigned to this object. For any `TinyLife.Objects.Furniture` with the `TinyLife.Objects.ObjectCategory.Bed` category that is the person's `TinyLife.Objects.Person.LastBedSleptIn`, 10 is returned. |
| [ObjectCategory](./ObjectCategory.md) | GetCategories ( [`Person`](./Person.md) ) | Returns a set of `TinyLife.Objects.ObjectCategory` flags that this object has, based on the given `TinyLife.Objects.Person`. |
| [Tooltip](./MapObject.md) | GetHoverInfo ( ) | Returns a `MLEM.Ui.Elements.Tooltip` object that is displayed whenever the mouse is hovered over this object in the world. By default, this method returns null, which will cause no tooltip to be displayed. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | HasCategory ( [`Person`](./Person.md), [`ObjectCategory`](./ObjectCategory.md) ) | A shorthand that checks whether `TinyLife.Objects.MapObject.GetCategories(TinyLife.Objects.Person)` overlaps with the given `` flags |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | Intersects ( [`RectangleF`](./MapObject.md) ) | Returns whether this map object intersects with the given rectangle. This is used for `TinyLife.World.Map.GetObjects``1(MLEM.Misc.RectangleF)` |
| void | OnActionCompleted ( [`Action`](./../Actions/Action.md), [`CompletionType`](./MapObject.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | |
| void | OnAdded ( ) | This method is called when this object is added to a `TinyLife.Objects.MapObject.Map`. By default, it does nothing. |
| void | OnRemoved ( ) | This method is called when this object is removed from a `TinyLife.Objects.MapObject.Map`. By default, it does nothing. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | SetMapAndValidate ( [`Map`](./../World/Map.md) ) | This method is the same as `TinyLife.Objects.MapObject.Validate`, but it also sets the `TinyLife.Objects.MapObject.Map`. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | Validate ( ) | This method is called when this object is loaded from disk. Returning false on this method causes the object to be removed from the map. By default, this method does nothing. |
## Static Fields
| Type | Name | Summary |
| --- | --- | --- |
| [ObjectCategory](./MapObject.md)[] | Categories | A list of all of the `TinyLife.Objects.ObjectCategory` flags that exist |
| [Direction2](./MapObject.md)[] | PersonRotationOrder | The order of `MLEM.Misc.Direction2` that the texture atlas for `TinyLife.Objects.Person` has for its textures, from left to right |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| [ObjectCategory](./ObjectCategory.md) | GetModCategory ( [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String) ) | Adds and returns a custom `TinyLife.Objects.ObjectCategory` with the given name. Note that the returned category is not `System.Enum.IsDefined(System.Type,System.Object)`, and thus, does not have a name. The returned category is guaranteed to be unique and mapped to the given name. Additionally, it can be used in combined flags, as it is not a combined flag itself. |

View file

@ -0,0 +1,50 @@
# [ObjectCategory](./ObjectCategory.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
An object category is a way to tell the `TinyLife.Actions.Action` and `TinyLife.Objects.AbstractSpot` system what type an object is. An object can have any number of categories attached to it, since this is a `System.FlagsAttribute` enumeration. Custom modded categories can be added and retrieved using `TinyLife.Objects.MapObject.GetModCategory(System.String)`.
## Enum
| Value | Name | Summary |
| --- | --- | --- |
| 0 | Nothing | An object category that reprsents an object without any properties |
| 1 | Ground | An object category that represents the ground |
| 2 | Chair | An object category that represents sittable surfaces |
| 4 | Toilet | An object category that represents objects where one can use the toilet |
| 8 | Bed | An object category that represents objects where one can sleep |
| 16 | Fridge | An object category that represents objects where one can get food ingredients |
| 32 | Shower | An object category that represents objects where one can shower |
| 64 | Counter | An object category that represents objects where one can prepare food and place `TinyLife.Objects.ObjectCategory.CounterObject` objects |
| 128 | Stove | An object category that represents objects where one can cook food |
| 256 | SmallObject | An object category that represents objects that can sit on `TinyLife.Objects.ObjectCategory.Counter` and `TinyLife.Objects.ObjectCategory.Table` objects |
| 512 | NonBuyable | An object category that represents objects that cannot be bought in the `TinyLife.Tools.FurnitureTool` |
| 1024 | Table | An object category that represents objects where one can place `TinyLife.Objects.ObjectCategory.SmallObject` objects |
| 2048 | Holdable | An object category that represents objects that can be held by a `TinyLife.Objects.Person` |
| 4096 | DeskObject | An object category that represents objects that can be placed on desk-like tables |
| 8192 | DisallowedOnGround | An object category that represents objects that cannot be placed on the ground, but only in object spots |
| 16384 | Computer | An object category that represents computers |
| 32768 | Sink | An object category that represents objects where one can clean dishes and wash hands |
| 65536 | CounterObject | An object category that represents objects that can be placed on `TinyLife.Objects.ObjectCategory.Counter` objects |
| 131072 | Cleanable | An object category that represents objects that can be cleaned in a `TinyLife.Objects.ObjectCategory.Sink` |
| 262144 | People | An object category that all `TinyLife.Objects.Person` instances hae |
| 524288 | Mailbox | An object category that represents mailboxes |
| 1048576 | Wardrobe | An object category that represents objects where a `TinyLife.Objects.Person` can change |
| 2097152 | NaturalGroundRequired | An object category that represents objects that can only be placed on natural ground, namely grass tiles |
| 4194304 | Self | An object category that represents the object that contains it |
| 8388608 | WallHanging | An object category that represents objects which need to be hung on `TinyLife.World.Wall` objects |
| 16777216 | ForceGridPlacement | An object category that represents objects which cannot be placed off the grid using the ALT key in the `TinyLife.Tools.FurnitureTool` |
| 33554432 | Easel | An object category that represents places where one can paint paintings |
| 67108864 | Mirror | An object category that represents mirrors |
| 134217728 | Bookshelf | An object category that represents things that books are stored in |
| 268435456 | NonColliding | An object category that represents things that a `TinyLife.Objects.Person` does not collide with |
| 536870912 | Gravestone | An object category that represents gravestones |
| 1073741824 | NonSellable | An object category that represents things that cannot be solved or removed using `TinyLife.Tools.RemoveTool` |
| 2147483648 | NonMovable | An object category that represents things that cannot be moved using `TinyLife.Tools.MoveTool` |
| 4294967296 | Tree | An object category that represents trees |
| 8589934592 | GentleCulling | An object category that represents objects that should be culled more gently (in a bigger radius). This property should be assigned to objects that are fairly large in display size. |
| 17179869184 | Television | An object category that represents televisions |

View file

@ -0,0 +1,39 @@
# [ObjectSpot](./ObjectSpot.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
## Summary
An object spot is a `TinyLife.Objects.AbstractSpot` extension that is used by `TinyLife.Objects.Furniture` to declare a location that another `TinyLife.Objects.Furniture` object can be slotted into. This behavior is used for things like plates on counters, flower pots on bedside tables etc.
## Constructors
| Name | Summary |
| --- | --- |
| ObjectSpot ( [`Vector2`](./ObjectSpot.md), [`Predicate`](https://docs.microsoft.com/en-us/dotnet/api/System.Predicate-1)\<[`FurnitureType`](./FurnitureType.md)>, [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Direction2`](./ObjectSpot.md)[] ) | Creates a new object spot with the given settings |
| ObjectSpot ( [`Vector2`](./ObjectSpot.md), [`Vector2`](./ObjectSpot.md), [`Predicate`](https://docs.microsoft.com/en-us/dotnet/api/System.Predicate-1)\<[`FurnitureType`](./FurnitureType.md)>, [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Direction2`](./ObjectSpot.md)[] ) | Creates a new object spot with the given settings |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Predicate](https://docs.microsoft.com/en-us/dotnet/api/System.Predicate-1)\<[FurnitureType](./FurnitureType.md)> | IsFurnitureAllowed | A predicate that determines if the given `TinyLife.Objects.FurnitureType` is allowed to be put into this object spot |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [IEnumerable](./ObjectSpot.md)\<[T](./ObjectSpot.md)> | GetContents ( [`Furniture`](./Furniture.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | Returns the `TinyLife.Objects.Furniture` objects that are currently slotted into this spot |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| [ObjectSpot](./ObjectSpot.md)[] | CounterSpots ( [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | A helper method to create a set of `TinyLife.Objects.ObjectSpot` instnaces for counters and stoves. The resulting set contains a single object spot for `TinyLife.Objects.ObjectCategory.SmallObject` and `TinyLife.Objects.ObjectCategory.CounterObject` object, or `TinyLife.Objects.FurnitureType.PreparedFood` and `TinyLife.Objects.FurnitureType.Pot` if `` is true. |
| [IEnumerable](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IEnumerable-1)\<[ObjectSpot](./ObjectSpot.md)> | TableSpots ( [`Point`](./ObjectSpot.md) ) | A helper method to create a set of `TinyLife.Objects.ObjectSpot` instances for a table of the given size. The resulting set of object spots will have spots for `TinyLife.Objects.ObjectCategory.Chair` objects on each side as well as `TinyLife.Objects.ObjectCategory.SmallObject` objects on each tile position. |

View file

@ -0,0 +1,35 @@
# [Painting](./Painting.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./Painting.md), [IPricedObject](./../World/IPricedObject.md)
## Constructors
| Name | Summary |
| --- | --- |
| Painting ( [`Guid`](https://docs.microsoft.com/en-us/dotnet/api/System.Guid), [`FurnitureType`](./FurnitureType.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[], [`Map`](./../World/Map.md), [`Vector2`](./Painting.md) ) | |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Guid](https://docs.microsoft.com/en-us/dotnet/api/System.Guid) | Creator | The `System.Guid` of the `TinyLife.Objects.Person` that created, and is painting this painting. This value defaults to `System.Guid.Empty`, meaning no creator. |
| [PaintingType](./../Skills/PaintingType.md) | PaintingType | The type of painting that this object displays |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | Progress | The progress that has been done on this painting by the `TinyLife.Objects.Painting.Creator` so far. This value defaults to 1, which is 100%. |
| [Quality](./../Skills/Quality.md) | Quality | The `TinyLife.Objects.Painting.Quality` that this painting has. This value default to `TinyLife.Skills.Quality.Average`, but may be different if there is a `TinyLife.Objects.Painting.Creator`. |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Draw ( [`GameTime`](./Painting.md), [`SpriteBatch`](./Painting.md), [`Vector2`](./Painting.md), [`Vector2`](./Painting.md), [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Color`](./Painting.md)>, [`Direction2`](./Painting.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[], [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean), [`Furniture`](./Furniture.md), [`ObjectSpot`](./ObjectSpot.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | |
| [Tooltip](./Painting.md) | GetHoverInfo ( ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | Validate ( ) | |

View file

@ -0,0 +1,49 @@
# [Particle](./Particle.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
## Summary
A particle is a `MLEM.Animations.SpriteAnimation` that can be moved and displayed in world space. A particle is simply a `TinyLife.Objects.MapObject` that does not collide or interact directly with the world, but has all of the same properties. A new particle can be added for display using `TinyLife.Objects.Particle.Spawn(TinyLife.Objects.Particle)`.
## Constructors
| Name | Summary |
| --- | --- |
| Particle ( [`TextureRegion`](./Particle.md), [`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan), [`Vector2`](./Particle.md) ) | Creates a new particle with the given settings |
| Particle ( [`SpriteAnimation`](./Particle.md), [`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan), [`Vector2`](./Particle.md) ) | Creates a new particle with the given settings |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Easing](./Particle.md) | Alpha | An `MLEM.Misc.Easings.Easing` that determines how this particle's alpha changes based on its `TinyLife.Objects.Particle.TimeToLive` and `TinyLife.Objects.Particle.TimeLived` |
| [Vector2](./Particle.md) | DepthOffset | The amount of tiles that this particle's depth display calculation is offset by, from its `TinyLife.Objects.Particle.Position` |
| [Nullable](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single)> | DepthOverride | An optional override for this particle's depth calculations. If this value is set, it is used as the depth position of this particle, and `TinyLife.Objects.Particle.DepthOffset` is ignored. |
| [Vector2](./Particle.md) | DrawOffset | The amount of tiles that this particle's display position is offset by, from its `TinyLife.Objects.Particle.Position` |
| [Vector2](./Particle.md) | Friction | The friction that is applied to this particle's `TinyLife.Objects.Particle.Motion` every `TinyLife.Objects.Particle.Update(Microsoft.Xna.Framework.GameTime,System.TimeSpan,TinyLife.GameSpeed)` frame |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | Gravity | The amount that this particle's `TinyLife.Objects.Particle.Motion` should be modified by each update frame. This value only has an effect if `TinyLife.Objects.Particle.GroundLevel` is set. |
| [Nullable](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single)> | GroundLevel | An optional y value for the position that this particle should treat as the ground. If this is set, this particle will have `TinyLife.Objects.Particle.Gravity`. |
| [Vector2](./Particle.md) | Motion | The amount that this particle's `TinyLife.Objects.Particle.Position` is modified by each `TinyLife.Objects.Particle.Update(Microsoft.Xna.Framework.GameTime,System.TimeSpan,TinyLife.GameSpeed)` frame |
| [Vector2](./Particle.md) | Position | The position in the world of this particle |
| [Easing](./Particle.md) | Scale | An `MLEM.Misc.Easings.Easing` that determines how this particle's scale (display size) changes based on its `TinyLife.Objects.Particle.TimeToLive` and `TinyLife.Objects.Particle.TimeLived` |
| [TimeSpan](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan) | TimeToLive | The amount of real time that this particle should stay alive for until it disappears |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Draw ( [`GameTime`](./Particle.md), [`SpriteBatch`](./Particle.md), [`Vector2`](./Particle.md) ) | Draws this particle on the current `TinyLife.Objects.Particle.Map`, at the current `TinyLife.Objects.Particle.Position`. |
| void | Update ( [`GameTime`](./Particle.md), [`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan), [`GameSpeed`](./../GameSpeed.md) ) | The update method, which is called every update frame by the underlying `TinyLife.Objects.Particle.Map` |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Spawn ( [`Particle`](./Particle.md) ) | Adds a new particle to the map |

View file

@ -0,0 +1,131 @@
# [Person](./Person.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./Person.md), [IUpdatingObject](./IUpdatingObject.md)
## Summary
A person is a `TinyLife.Objects.MapObject` placed on a `TinyLife.World.Map` that represents a person. It stores its actions, clothes, data and movement.
## Constructors
| Name | Summary |
| --- | --- |
| Person ( [`Map`](./../World/Map.md), [`Vector2`](./Person.md) ) | Creates a new person with the given settings |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [List](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.List-1)\<[ValueTuple](https://docs.microsoft.com/en-us/dotnet/api/System.ValueTuple-2)\<[Action](./../Actions/Action.md), [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)>> | ActionQueue | The actions that are currently enqueued to be executed by this person. Each entry is the action that is enqueued along with a boolean value that represents whether this action was started automatically (true) or manually (false). Use `TinyLife.Objects.Person.EnqueueAction(TinyLife.Actions.ActionType,TinyLife.Actions.ActionInfo,System.Boolean,System.Nullable{TinyLife.Actions.ActionVariety},System.Boolean,System.Boolean)` and `TinyLife.Objects.Person.CancelAction(TinyLife.Actions.Action,TinyLife.Actions.Action,System.Boolean)` to modify this list. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | AnimateHeldObject | Whether or not the `TinyLife.Objects.Person.GetHeldObject``1` should be animated with this person's movement animation. Note that this value is not saved to disk, and is reset to true every `TinyLife.Objects.Person.Update(Microsoft.Xna.Framework.GameTime,System.TimeSpan,TinyLife.GameSpeed)` frame. |
| [List](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.List-1)\<[Action](./../Actions/Action.md)> | CurrentActions | The actions that are currently being executed by this person. Use `TinyLife.Objects.Person.EnqueueAction(TinyLife.Actions.ActionType,TinyLife.Actions.ActionInfo,System.Boolean,System.Nullable{TinyLife.Actions.ActionVariety},System.Boolean,System.Boolean)` and `TinyLife.Objects.Person.CancelAction(TinyLife.Actions.Action,TinyLife.Actions.Action,System.Boolean)` to modify this list. |
| [Pose](./Person.md) | CurrentPose | This person's current `TinyLife.Objects.Person.Pose`. Note that this value is not saved to disk, and is reset to `TinyLife.Objects.Person.Pose.Standing` every `TinyLife.Objects.Person.Update(Microsoft.Xna.Framework.GameTime,System.TimeSpan,TinyLife.GameSpeed)` frame. |
| [List](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.List-1)\<[Instance](./Person.md)> | EmotionModifiers | The `TinyLife.Emotions.EmotionModifier.Instance` objects that are currently applied to this person. To access this collection efficiently, use `TinyLife.Objects.Person.AddEmotion(TinyLife.Emotions.EmotionModifier,System.Int32,System.TimeSpan)`, `TinyLife.Objects.Person.RemoveEmotion(TinyLife.Emotions.EmotionModifier)` and `TinyLife.Objects.Person.LowerEmotion(TinyLife.Emotions.EmotionType,System.Single,TinyLife.GameSpeed)`. |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | FirstName | This person's first name |
| [Guid](https://docs.microsoft.com/en-us/dotnet/api/System.Guid) | LastBedSleptIn | The id of the last bed `TinyLife.Objects.Furniture` that this person has slept in, or `System.Guid.Empty` if no such bed exists |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | LastName | This person's last name |
| [Dictionary](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.Dictionary-2)\<[String](https://docs.microsoft.com/en-us/dotnet/api/System.String), [Need](./../Need.md)> | Needs | This person's `TinyLife.Need` data. When this person is instantiated, all of their needs are gathered from `TinyLife.NeedType.Types` automatically. To access this collection efficiently, use `TinyLife.Objects.Person.GetNeed(TinyLife.NeedType)` and `TinyLife.Objects.Person.GetNeedPercentage(TinyLife.NeedType)`. |
| [HashSet](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.HashSet-1)\<[String](https://docs.microsoft.com/en-us/dotnet/api/System.String)> | PersonalityTypes | The names of the `TinyLife.PersonalityType` values that this person has. To access this collection efficiently, use `TinyLife.Objects.Person.HasPersonality(TinyLife.PersonalityType)`. |
| [RenderTarget2D](./Person.md) | Portrait | The `Microsoft.Xna.Framework.Graphics.RenderTarget2D` that this person's portrait is rendered onto. This will automatically be updated and can be used for rendering of any kind. |
| [List](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.List-1)\<[Relationship](./../Relationship.md)> | Relationships | This person's `TinyLife.Relationship` data. To access this collection efficiently, use `TinyLife.Objects.Person.GetRelationship(TinyLife.Objects.Person,System.Boolean)` and `TinyLife.Objects.Person.ChangeFriendship(TinyLife.Objects.Person,System.Single)`. |
| [Direction2](./Person.md) | Rotation | The `MLEM.Misc.Direction2` that this person is currently facing in |
| [Dictionary](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.Dictionary-2)\<[String](https://docs.microsoft.com/en-us/dotnet/api/System.String), [Skill](./../Skills/Skill.md)> | Skills | This person's `TinyLife.Skills.Skill` data. To access this collection efficiently, use `TinyLife.Objects.Person.GetSkill(TinyLife.Skills.SkillType)`, `TinyLife.Objects.Person.GetSkillLevel(TinyLife.Skills.SkillType)` and `TinyLife.Objects.Person.GainSkill(TinyLife.Skills.SkillType,System.Single,TinyLife.GameSpeed)`. |
| [Dictionary](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.Dictionary-2)\<[ClothesLayer](./ClothesLayer.md), [WornClothes](./WornClothes.md)> | WornClothes | The `TinyLife.Objects.Person.WornClothes` that this person is currently wearing on each of their `TinyLife.Objects.ClothesLayer`s. If a person is not wearing any clothes on any given layer, this dictionary will not contain it. |
| [ClothesLayer](./ClothesLayer.md) | WornLayers | The `TinyLife.Objects.ClothesLayer` flags that represent what layers this person is currently wearing. Note that this value is not saved to disk, and is reset to ~0 (every layer) every `TinyLife.Objects.Person.Update(Microsoft.Xna.Framework.GameTime,System.TimeSpan,TinyLife.GameSpeed)` frame. |
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [IEnumerable](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IEnumerable-1)\<[Action](./../Actions/Action.md)> | AllActions | A concatenation of `TinyLife.Objects.Person.CurrentActions` and `TinyLife.Objects.Person.ActionQueue` that represents all actions that the current person has knowledge about |
| [Emote](./../Actions/Emote.md) | CurrentEmote | The `TinyLife.Actions.Emote` that this person is currently displaying. Use `TinyLife.Objects.Person.DisplayEmote(TinyLife.Actions.EmoteCategory)` to modify this property. |
| [Room](./../World/Room.md) | CurrentRoom | The `TinyLife.World.Room` that this person is currently in |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) | CurrentRoomDecorativeRating | The decorative rating of the `TinyLife.Objects.Person.CurrentRoom`, resulting from the `TinyLife.Objects.FurnitureType.TypeSettings.DecorativeRating` of the contained furniture |
| [Point](./Person.md) | DrawSize | The size, in draw space pixels, that this person's texture takes up. This is gathered from the `TinyLife.Objects.ClothesLayer.Body` layer of its texture data. |
| [TimeSpan](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan) | EmoteTime | The amount of time left for displaying `TinyLife.Objects.Person.CurrentEmote`. Use `TinyLife.Objects.Person.DisplayEmote(TinyLife.Actions.EmoteCategory)` to modify this property. |
| [EmotionType](./../Emotions/EmotionType.md) | Emotion | The `TinyLife.Emotions.EmotionType` that this person currently has, resulting from their current `TinyLife.Objects.Person.EmotionModifiers` |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | FullName | This person's full name, which is a concatenation of their `TinyLife.Objects.Person.FirstName` and `TinyLife.Objects.Person.LastName`. |
| [Household](./../World/Household.md) | Household | The `TinyLife.Objects.Person.Household` that this person is a part of |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | IsMoving | This property stores whether this person is currently moving. A person is considered moving when their `TinyLife.Objects.MapObject.Position` has changed since the last update frame. |
| [Job](./../Goals/Job.md) | Job | The `TinyLife.Objects.Person.Job` that this person currently has. To edit this value, use `TinyLife.Objects.Person.SetJob(TinyLife.Goals.JobType)`. |
| [Lot](./../World/Lot.md) | LastVisitedLot | The `TinyLife.World.Lot` that was last visited by this person. A visited lot is a lot that was actively moved to using `TinyLife.Actions.VisitLotAction`, `TinyLife.Actions.GoHomeAction` or if the person is currently occupying this lot. To modify this value, use `TinyLife.Objects.Person.VisitLot(TinyLife.World.Lot)`. |
| [TimeSpan](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan) | LotVisitCooldown | The amount of time that has to pass before this person can visit another lot. If `TinyLife.Objects.Person.LastVisitedLot` is set using `TinyLife.Objects.Person.VisitLot(TinyLife.World.Lot)`, this value will be set to 2 hours or 4 hours of in-game time, based on whether the visited lot is their home lot or not. |
| [ActionSpot](./ActionSpot.md) | OccupiedActionSpot | The `TinyLife.Objects.ActionSpot` of the `TinyLife.Objects.Person.OccupiedFurniture` that this person is currently occupying. Note that this value is not saved to disk, and is reset to null every `TinyLife.Objects.Person.Update(Microsoft.Xna.Framework.GameTime,System.TimeSpan,TinyLife.GameSpeed)` frame. To edit this value, use `TinyLife.Objects.Person.OccupyActionSpot(TinyLife.Objects.Furniture,TinyLife.Objects.ActionSpot,System.Boolean,System.Nullable{MLEM.Misc.Direction2})`. |
| [Furniture](./Furniture.md) | OccupiedFurniture | The `TinyLife.Objects.Furniture` that this person is currently occupying. Note that this value is not saved to disk, and is reset to null every `TinyLife.Objects.Person.Update(Microsoft.Xna.Framework.GameTime,System.TimeSpan,TinyLife.GameSpeed)` frame. To edit this value, use `TinyLife.Objects.Person.OccupyActionSpot(TinyLife.Objects.Furniture,TinyLife.Objects.ActionSpot,System.Boolean,System.Nullable{MLEM.Misc.Direction2})`. |
| [Vector2](./Person.md) | VisualPosition | The visual position of this person, which is influenced by their `TinyLife.Objects.MapObject.Position` and a visual override that can be set using `TinyLife.Objects.Person.OccupyActionSpot(TinyLife.Objects.Furniture,TinyLife.Objects.ActionSpot,System.Boolean,System.Nullable{MLEM.Misc.Direction2})`. Note that, if changed using `TinyLife.Objects.Person.OccupyActionSpot(TinyLife.Objects.Furniture,TinyLife.Objects.ActionSpot,System.Boolean,System.Nullable{MLEM.Misc.Direction2})`, this value is not saved to disk, and is reset to `TinyLife.Objects.MapObject.Position` every `TinyLife.Objects.Person.Update(Microsoft.Xna.Framework.GameTime,System.TimeSpan,TinyLife.GameSpeed)` frame. Also note that the visual position does not affect collision detection or most interactions. |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | AddEmotion ( [`EmotionModifier`](./../Emotions/EmotionModifier.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32), [`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan) ) | Adds the given `TinyLife.Emotions.EmotionModifier` with the given intensity and time |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | CancelAction ( [`Action`](./../Actions/Action.md), [`Action`](./../Actions/Action.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | Tries to cancel the given action, removing it from `TinyLife.Objects.Person.CurrentActions` or `TinyLife.Objects.Person.ActionQueue` in the process. If the action in question cannot be canceled, this method returns false. |
| void | ChangeFriendship ( [`Person`](./Person.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single) ) | Changes the `TinyLife.Relationship.FriendLevel``TinyLife.Relationship` wit the given person by the given amount. Additionally, a friendship `TinyLife.Objects.Particle` is displayed and a `TinyLife.Uis.Notifications` is displayed if the friendship type changes. |
| void | ChangeRomance ( [`Person`](./Person.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single) ) | Changes the `TinyLife.Relationship.RomanceLevel``TinyLife.Relationship` wit the given person by the given amount. Additionally, a romance `TinyLife.Objects.Particle` is displayed. |
| void | CleanUpForDeletion ( ) | Cleans this person's data up to ready this person for deletion. This removes the person from its `TinyLife.Objects.Person.Household` and removes all `TinyLife.Objects.Person.Relationships` from other people that are associated with this person. |
| void | DepleteNeed ( [`NeedType`](./../NeedType.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`GameSpeed`](./../GameSpeed.md) ) | Depletes this person's `TinyLife.Need` with the given `TinyLife.NeedType` by the given amount Note that, when the "NoNeed" cheat is active, this method does nothing. |
| void | Die ( [`DeathReason`](./Person.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | |
| void | DisplayEmote ( [`EmoteCategory`](./../Actions/EmoteCategory.md) ) | Causes this person to display a `TinyLife.Actions.Emote` over its head for 1 to 3 seconds |
| void | Draw ( [`GameTime`](./Person.md), [`SpriteBatch`](./Person.md), [`Vector2`](./Person.md), [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Color`](./Person.md)> ) | |
| void | DrawUi ( [`SpriteBatch`](./Person.md), [`Vector2`](./Person.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Direction2`](./Person.md) ) | Renders this person on a ui level rather than a world level |
| [Action](./../Actions/Action.md) | EnqueueAction ( [`ActionType`](./../Actions/ActionType.md), [`ActionInfo`](./../Actions/ActionInfo.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean), [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`ActionVariety`](./../Actions/ActionVariety.md)>, [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | Enqueues the given action into `TinyLife.Objects.Person.ActionQueue` to be executed later. |
| [Task](https://docs.microsoft.com/en-us/dotnet/api/System.Threading.Tasks.Task-1)\<[Stack](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.Stack-1)\<[Point](./Person.md)>> | FindPathAsync ( [`Point`](./Person.md), [`Point`](./Person.md), [`GetCost`](./Person.md)\<[`Point`](./Person.md)>, [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)> ) | |
| void | FocusCameraOnEvent ( ) | A helper method that causes the game camera to focus on this person if it is relevant. This person is considered relevant if its `TinyLife.Objects.Person.Household` is current or if the `TinyLife.Objects.MapObject.CurrentLot` is visible to the `TinyLife.GameImpl.CurrentHousehold`. |
| void | GainSkill ( [`SkillType`](./../Skills/SkillType.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`GameSpeed`](./../GameSpeed.md) ) | Causes this person to gain the skill with the given `TinyLife.Skills.SkillType` and raises it by the given amount. Note that `TinyLife.Objects.Person.PersonalityTypes` influence the skinn gain automatically. |
| [ObjectCategory](./ObjectCategory.md) | GetCategories ( [`Person`](./Person.md) ) | |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | GetEfficiencyModifier ( [`SkillType`](./../Skills/SkillType.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single) ) | Returns a multiplier (which will be close to 1) of how "efficiently" this person currently works and moves. This value is influenced by the level of the passed `` as well as this person's `TinyLife.Objects.Person.Emotion` and `TinyLife.Objects.Person.PersonalityTypes`. |
| [ActionInfo](./../Actions/ActionInfo.md) | GetFreeTalkingSpot ( [`Person`](./Person.md) ) | Returns an `TinyLife.Actions.ActionInfo` for a location that this person can be talked to from. This method returns the best possible location from `TinyLife.Objects.Person.GetFreeTalkingSpots` as an `TinyLife.Actions.ActionInfo`. |
| [IEnumerable](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IEnumerable-1)\<[Vector2](./Person.md)> | GetFreeTalkingSpots ( ) | Returns a set of locations, in world space, that this person can be talked to from while standing in its current location |
| [ActionInfo](./../Actions/ActionInfo.md) | GetHeldActionInfo ( ) | Returns a `TinyLife.Actions.ActionInfo` for the `TinyLife.Objects.Person.GetHeldObject``1`, or null if there is none. |
| [T](./Person.md) | GetHeldObject ( ) | Returns the `TinyLife.Objects.Furniture` that this person is currently holding in their hands. Note that, if the held object is not of the required type `type`, null is returned. |
| [Vector2](./Person.md) | GetHomeLocation ( ) | Shorthand method for `TinyLife.World.Lot.GetHomeLocation(TinyLife.Objects.Person)` that returns the home location of this person's `TinyLife.Objects.Person.Household`'s lot |
| [Tooltip](./Person.md) | GetHoverInfo ( ) | |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | GetNeed ( [`NeedType`](./../NeedType.md) ) | Returns the `TinyLife.Need``TinyLife.Need.Value` of the given type for this person |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | GetNeedPercentage ( [`NeedType`](./../NeedType.md) ) | Returns the `TinyLife.Need``TinyLife.Need.Percentage` of the given type for this person |
| [Relationship](./../Relationship.md) | GetRelationship ( [`Person`](./Person.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | Returns the current relationship level for the given `TinyLife.Objects.Person`. Note that this returns this person's `TinyLife.Objects.Person.Relationships` entry, which might have different values from the passed `TinyLife.Objects.Person`'s. |
| [RelationshipType](./../RelationshipType.md) | GetRelationshipType ( [`Person`](./Person.md) ) | Returns the `TinyLife.RelationshipType` that this person has to the given `TinyLife.Objects.Person`. This is a helper method that returns the relationship type of `TinyLife.Objects.Person.GetRelationship(TinyLife.Objects.Person,System.Boolean)`, or `TinyLife.RelationshipType.Acquaintances` if there is no relationship. |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) | GetSkillLevel ( [`SkillType`](./../Skills/SkillType.md) ) | Returns the level of the `TinyLife.Skills.Skill` of the given type that this person has. If this person does not have the given skill, 0 is returned. |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | GetWalkSpeed ( ) | Returns this person's current walk speed, per update frame. The walk speed is influenced by their `TinyLife.Objects.Person.PersonalityTypes` and `TinyLife.Objects.Person.Emotion`. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | HasEmotionModifier ( [`EmotionModifier`](./../Emotions/EmotionModifier.md) ) | Returns whether this person has the given `TinyLife.Emotions.EmotionModifier` in their `TinyLife.Objects.Person.EmotionModifiers` list |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | HasPersonality ( [`PersonalityType`](./../PersonalityType.md) ) | Returns whether this person has the given `TinyLife.PersonalityType` |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | HasSkillLevel ( [`SkillType`](./../Skills/SkillType.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) ) | Returns whether this person has a `TinyLife.Skills.Skill` of the given type and whether its value is high enough. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | Intersects ( [`RectangleF`](./Person.md) ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | IsCloseForTalking ( [`Vector2`](./Person.md) ) | Returns true if `` is considered close enough for talking. For a person to be close enough for talking, they have to be at least 0.25 and at most 2.5 tiles away. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | LowerEmotion ( [`EmotionType`](./../Emotions/EmotionType.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`GameSpeed`](./../GameSpeed.md) ) | Lowers any `TinyLife.Objects.Person.EmotionModifiers` of the given `TinyLife.Emotions.EmotionType` by the given percentage. Each modifier's `TinyLife.Emotions.EmotionModifier.Instance.Time` will be lowered by the percentage of their `TinyLife.Emotions.EmotionModifier.Instance.TotalTime`. |
| void | OccupyActionSpot ( [`Furniture`](./Furniture.md), [`ActionSpot`](./ActionSpot.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean), [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Direction2`](./Person.md)> ) | Causes the given action spot of the given furniture to be marked as occupied. Optionally, the `TinyLife.Objects.Person.VisualPosition` can also be changed, causing this person to look as if they were sitting, standing or laying on the furniture. Note that the values set in this method are reset every `TinyLife.Objects.Person.Update(Microsoft.Xna.Framework.GameTime,System.TimeSpan,TinyLife.GameSpeed)` call. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | RemoveEmotion ( [`EmotionModifier`](./../Emotions/EmotionModifier.md) ) | Removes the given `TinyLife.Emotions.EmotionModifier` from this person's `TinyLife.Objects.Person.EmotionModifiers` |
| void | ResetToStatic ( [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | Resets this person to a static version of itself. This action clears `TinyLife.Objects.Person.AllActions`, clears the `TinyLife.Objects.Person.LastVisitedLot`, resets all `TinyLife.Objects.Person.Relationships` and restores all `TinyLife.Objects.Person.Needs` to their default value. This method is used by map and household ex- and imports. |
| void | RestoreNeed ( [`NeedType`](./../NeedType.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`GameSpeed`](./../GameSpeed.md) ) | Restores this person's `TinyLife.Need` of the given type by the given amount |
| [T](./Person.md) | SetHeldObject ( [`FurnitureType`](./FurnitureType.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[], [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Guid`](https://docs.microsoft.com/en-us/dotnet/api/System.Guid)> ) | Sets the person's held object to the given furniture type, with the given data, and returns the created instance. |
| void | SetHeldObject ( [`Furniture`](./Furniture.md) ) | Sets this person's held object to the given instance. Note that this resets the `TinyLife.Objects.Furniture`'s position to -1, -1. |
| void | SetJob ( [`JobType`](./../Goals/JobType.md) ) | Sets this person's current `TinyLife.Objects.Person.Job`. If null is passed, the person's job gets removed. |
| void | StopEmoting ( ) | Causes this person to stop displaying the current emote immediately |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | ToCreatedByString ( ) | Returns a string representation of this person using the localized "Created by:" prefix |
| void | Update ( [`GameTime`](./Person.md), [`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan), [`GameSpeed`](./../GameSpeed.md) ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | Validate ( ) | |
| void | VisitLot ( [`Lot`](./../World/Lot.md) ) | Marks the given lot as visited, setting `TinyLife.Objects.Person.LotVisitCooldown` to 4 hours if the lot is the person's home lot, and 2 otherwise The passed lot is additionally marked as visible using `TinyLife.World.Household.MarkLotVisible(TinyLife.World.Lot)`, |
## Events
| Type | Name | Summary |
| --- | --- | --- |
| [Action](https://docs.microsoft.com/en-us/dotnet/api/System.Action-1)\<[Person](./Person.md)> | OnActionsChanged | An event that is invoked when the `TinyLife.Objects.Person.CurrentActions` or `TinyLife.Objects.Person.ActionQueue` of this person changed |
| [Action](https://docs.microsoft.com/en-us/dotnet/api/System.Action-1)\<[Person](./Person.md)> | OnEmotionModifiersChanged | An event that is invoked when the `TinyLife.Objects.Person.EmotionModifiers` change |
| [Action](https://docs.microsoft.com/en-us/dotnet/api/System.Action-1)\<[Person](./Person.md)> | OnJobChanged | An event that is invoked when the `TinyLife.Objects.Person.Job` changes |
| [Action](https://docs.microsoft.com/en-us/dotnet/api/System.Action-1)\<[Person](./Person.md)> | OnNewSkillLearned | An event that is invoked when the `TinyLife.Objects.Person.Skills` list gains a new entry, meaning the person learned a new skill |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | CanWalkHere ( [`Map`](./../World/Map.md), [`Point`](./Person.md), [`Point`](./Person.md) ) | Returns whether a `TinyLife.Objects.Person` can walk between the `` and the ``. Note that, since method does not do any pathfinding, the two positions passed have to be adjacent or directly diagonal to each other. |

View file

@ -0,0 +1,9 @@
# [PersonAi](./PersonAi.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
## Summary
This class holds the artificial intelligence implementation for a `TinyLife.Objects.Person`. The AI automatically selects actions based on their `TinyLife.Actions.ActionType.AiSettings`.

View file

@ -0,0 +1,31 @@
# [ScreenObject](./ScreenObject.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./ScreenObject.md), [IPricedObject](./../World/IPricedObject.md), [IUpdatingObject](./IUpdatingObject.md)
## Constructors
| Name | Summary |
| --- | --- |
| ScreenObject ( [`Guid`](https://docs.microsoft.com/en-us/dotnet/api/System.Guid), [`FurnitureType`](./FurnitureType.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[], [`Map`](./../World/Map.md), [`Vector2`](./ScreenObject.md) ) | |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | ScreenContent | A string representing the image that is displayed on this object's screen. This field's value will have "Screen" prepended to it and all furniture `MLEM.Data.DataTextureAtlas` instances that are registered will be searched for the image. This value resets every `TinyLife.Objects.ScreenObject.Draw(Microsoft.Xna.Framework.GameTime,Microsoft.Xna.Framework.Graphics.SpriteBatch,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,System.Nullable{Microsoft.Xna.Framework.Color},MLEM.Misc.Direction2,System.Int32[],System.Single,System.Boolean,TinyLife.Objects.Furniture,TinyLife.Objects.ObjectSpot,System.Single,System.Boolean)` call, so you have to set it perpetually. |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Draw ( [`GameTime`](./ScreenObject.md), [`SpriteBatch`](./ScreenObject.md), [`Vector2`](./ScreenObject.md), [`Vector2`](./ScreenObject.md), [`Nullable`](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[`Color`](./ScreenObject.md)>, [`Direction2`](./ScreenObject.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[], [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean), [`Furniture`](./Furniture.md), [`ObjectSpot`](./ObjectSpot.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | |
| void | Update ( [`GameTime`](./ScreenObject.md), [`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan), [`GameSpeed`](./../GameSpeed.md) ) | |

View file

@ -0,0 +1,33 @@
# [WornClothes](./WornClothes.md)
Namespace: [TinyLife]() > [Objects]()
Assembly: Tiny Life.dll
## Summary
WornClothes is a wrapper around `TinyLife.Objects.Clothes` that additionally stores the colors and whether or not the clothes are from the `TinyLife.World.Household.ClothesStorage` or not
## Constructors
| Name | Summary |
| --- | --- |
| WornClothes ( [`Clothes`](./Clothes.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[] ) | Creates a new worn `TinyLife.Objects.Clothes` instance with the given settings |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[] | Colors | The colors of this `TinyLife.Objects.Clothes` instance. Each index references the color of the underlying `TinyLife.Objects.WornClothes.Type`'s `TinyLife.Objects.Clothes.Colors`. The actual color can be retrieved easily using `TinyLife.Objects.WornClothes.GetColor(System.Int32)`. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | FromStorage | This value is true if this clothes item is from the `TinyLife.World.Household.ClothesStorage` |
| [Clothes](./Clothes.md) | Type | The `TinyLife.Objects.Clothes` type that these worn clothes reference |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Color](./WornClothes.md) | GetColor ( [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) ) | Returns the `Microsoft.Xna.Framework.Color` of the given layer |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | Validate ( ) | This method is called when this object is loaded from disk. |

65
Api/TinyLife/Options.md Normal file
View file

@ -0,0 +1,65 @@
# [Options](./Options.md)
Namespace: [TinyLife]()
Assembly: Tiny Life.dll
## Summary
The game's options, which are displayed in the `TinyLife.Uis.Menus.InitializeOptions(MLEM.Ui.UiSystem,System.Boolean,System.Boolean)` menu and saved to disk
## Constructors
| Name | Summary |
| --- | --- |
| Options ( ) | |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) | AutoSaveIntervalSeconds | The auto-save interval in seconds. Note that this value should be set to 30, 60, 180, 300 or 600, as otherwise, the options menu will display it incorrectly. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | Fullscreen | Whether the game is currently in fullscreen mode |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | Language | The currently selected language's language code. Determines the language used by `TinyLife.Localization`. |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | SoundVolume | The current sound volume as a percentage, ranging from 0 to 1 |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | UiScale | A modifier that is applied to the game's `MLEM.Ui.UiSystem`'s `MLEM.Ui.UiSystem.GlobalScale` |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | VSync | Whether vertical synchronization is currently turned on |
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [WallDisplay](./WallDisplay.md) | WallMode | The currently selected `TinyLife.Options.WallMode`. Note that this value does not always return the wall mode that has been selected by the user: If `TinyLife.GameImpl.Mode` is `TinyLife.GameImpl.GameMode.SelectHousehold`, `TinyLife.WallDisplay.Roofs` is returned. If the `TinyLife.GameImpl.CurrentTool` overrides `TinyLife.Tools.Tool.ForceWallsUp`, that value is returned. |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Apply ( ) | Applies the currently selected options of this instance to the game |
| void | Save ( ) | Saves the options to the default options file path |
## Static Fields
| Type | Name | Summary |
| --- | --- | --- |
| [GameSpeed](./Options.md)[] | GameSpeeds | An array of all defined `TinyLife.GameSpeed` values |
| [WallDisplay](./Options.md)[] | WallDisplays | An array of all defined `TinyLife.WallDisplay` values |
## Static Properties
| Type | Name | Summary |
| --- | --- | --- |
| [Options](./Options.md) | Instance | The static singleton instance of `TinyLife.Options` |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Load ( ) | Loads the options from the default options file path and stores them in `TinyLife.Options.Instance`. If there are no options in the default options file, a new instance is created. |

View file

@ -0,0 +1,45 @@
# [PerSaveOptions](./PerSaveOptions.md)
Namespace: [TinyLife]()
Assembly: Tiny Life.dll
## Summary
The game's per-save options, which are displayed in the `TinyLife.Uis.Menus.InitializeOptions(MLEM.Ui.UiSystem,System.Boolean,System.Boolean)` menu and saved to disk. Note that `TinyLife.PerSaveOptions.Instance` is null if there is no `TinyLife.GameImpl.Map` loaded.
## Constructors
| Name | Summary |
| --- | --- |
| PerSaveOptions ( ) | |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | DisableAiHousehold | Whether the AI of everyone in the `TinyLife.GameImpl.CurrentHousehold` should be disabled or not |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | DisableAiSelected | Whether the AI of the `TinyLife.Tools.PlayModeTool.SelectedPerson` should be disabled or not |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Save ( [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String) ) | |
## Static Properties
| Type | Name | Summary |
| --- | --- | --- |
| [PerSaveOptions](./PerSaveOptions.md) | Instance | The static singleton instance of `TinyLife.PerSaveOptions`. Note that this value is null if there is no `TinyLife.GameImpl.Map` loaded. |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Load ( [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String) ) | |

View file

@ -0,0 +1,46 @@
# [PersonalityType](./PersonalityType.md)
Namespace: [TinyLife]()
Assembly: Tiny Life.dll
## Summary
A personality type is a trait that a `TinyLife.Objects.Person` can have. Each personality type is meant to influence the person's behavior and abilities slightly in a certain way.
## Constructors
| Name | Summary |
| --- | --- |
| PersonalityType ( [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String), [`TextureRegion`](./PersonalityType.md), [`PersonalityType`](./PersonalityType.md)[] ) | Creates a new personality type with the given name |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [PersonalityType](./PersonalityType.md)[] | DisallowedOthers | A set of personality types that cannot be applied together with this one |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | Name | The name of this personality type. As this is used for `TinyLife.PersonalityType.Types`, this name needs to be unique across all installed mods. |
| [TextureRegion](./PersonalityType.md) | Texture | The icon texture for this personality type |
## Static Fields
| Type | Name | Summary |
| --- | --- | --- |
| [PersonalityType](./PersonalityType.md) | Ambitious | |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) | AmountPerPerson | The amount of personality types that each `TinyLife.Objects.Person` can have |
| [PersonalityType](./PersonalityType.md) | Creative | |
| [PersonalityType](./PersonalityType.md) | Energetic | |
| [PersonalityType](./PersonalityType.md) | Lazy | |
| [PersonalityType](./PersonalityType.md) | Likeable | |
| [PersonalityType](./PersonalityType.md) | Mean | |
| [IDictionary](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IDictionary-2)\<[String](https://docs.microsoft.com/en-us/dotnet/api/System.String), [PersonalityType](./PersonalityType.md)> | Types | A registry of all of the personality types in the game. Use `TinyLife.PersonalityType.Register(TinyLife.PersonalityType)` to register custom personality types. |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| [PersonalityType](./PersonalityType.md) | Register ( [`PersonalityType`](./PersonalityType.md) ) | Registers this personality type to the `TinyLife.PersonalityType.Types` registry |

View file

@ -0,0 +1,46 @@
# [Relationship](./Relationship.md)
Namespace: [TinyLife]()
Assembly: Tiny Life.dll
## Summary
A relationship is a connection between two `TinyLife.Objects.Person` objects. It should be noted that a relationship is not always the same between a person and the linked `TinyLife.Relationship.OtherPerson`. What this means is that A can have a good relationship to B, but B can have a less good relationship to A.
## Constructors
| Name | Summary |
| --- | --- |
| Relationship ( [`Guid`](https://docs.microsoft.com/en-us/dotnet/api/System.Guid) ) | Creates a new relationship to the given other person |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | Dating | This value is set to true if this relationship is a romantic relationship |
| [GenealogyType](./GenealogyType.md) | Genealogy | The `TinyLife.GenealogyType` of this relationship. Note that the genealogy's value works in the following direction: "I am the [Genealogy] of [OtherPerson]". Note that `TinyLife.Relationship.OtherPerson` will always have the `TinyLife.GenealogyType`'s `TinyLife.Utilities.Extensions.GetOpposite(TinyLife.GenealogyType)`. |
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | DisplayString | An (unlocalized) string that represents a written version of this relationship's status. If `TinyLife.Relationship.Dating` is true, the string "Dating" will be returned. Otherwise, `TinyLife.Relationship.Type` is returned as a string. |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | FriendLevel | The current amount of friendship points (out of `TinyLife.Relationship.Max`) that this relationship has. This value is automatically clamped between -`TinyLife.Relationship.Max` and `TinyLife.Relationship.Max`. |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | FriendPercentage | The `TinyLife.Relationship.FriendLevel` of this relationship, divided by `TinyLife.Relationship.Max`, yielding a percentage between -1 and 1 of how good this friendship is |
| [Guid](https://docs.microsoft.com/en-us/dotnet/api/System.Guid) | OtherPerson | The `System.Guid` of the person that this relationship is linked to |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | RomanceLevel | The current amount of romance points (out of `TinyLife.Relationship.Max`) that this relationship has. This value is automatically clamped between 0 and `TinyLife.Relationship.Max`. |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | RomancePercentage | The `TinyLife.Relationship.RomanceLevel` of this relationship, divided by `TinyLife.Relationship.Max`, yielding a percentage between 0 and 1 of how good this relationship's romance level is |
| [RelationshipType](./RelationshipType.md) | Type | The `TinyLife.RelationshipType` that this relationship has, based on the current `TinyLife.Relationship.FriendLevel`. |
## Static Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | Max | The maximum value that a relationship level can have |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | PassiveFriendReduction | The amount of points (out of `TinyLife.Relationship.Max`) that are removed from each relationship's `TinyLife.Relationship.FriendLevel` each update frame |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | PassiveRomanceReduction | The amount of points (out of `TinyLife.Relationship.Max`) that are removed from each relationship's `TinyLife.Relationship.RomanceLevel` each update frame |

View file

@ -0,0 +1,19 @@
# [RelationshipType](./RelationshipType.md)
Namespace: [TinyLife]()
Assembly: Tiny Life.dll
An enumeration type that represents the type that a `TinyLife.Relationship` can have
## Enum
| Value | Name | Summary |
| --- | --- | --- |
| 0 | Enemies | A relationship type that represents two people that hate each other |
| 1 | Disliked | A relationship type that represents two people that dislike each other |
| 2 | Acquaintances | A relationship type that represents two people that don't know each other well |
| 3 | Friends | A relationship type that represents two people that know each other well |
| 4 | GoodFriends | A relationship type that represents two people that know each other very well |

16
Api/TinyLife/Set.md Normal file
View file

@ -0,0 +1,16 @@
# [Set](./Set.md)
Namespace: [TinyLife]()
Assembly: Tiny Life.dll
An enumeration that represents all of the sets of the game. Sets are groups of themed game content whose art were created by an artist from the community.
## Enum
| Value | Name | Summary |
| --- | --- | --- |
| 0 | Woodworking | The woodworking set with art by Kat |
| 1 | Knitting | The knitting set with art by Othlon |

View file

@ -0,0 +1,49 @@
# [FoodType](./FoodType.md)
Namespace: [TinyLife]() > [Skills]()
Assembly: Tiny Life.dll
## Summary
A food type is a type of dish that can be cooked using `TinyLife.Actions.ActionType.GetIngredients`. Food types store information such as their name and texture, but also the cooking level that is required to make them. Food types are registered using `TinyLife.Skills.FoodType.Register(TinyLife.Skills.FoodType)`.
## Constructors
| Name | Summary |
| --- | --- |
| FoodType ( [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | Creates a new food type with the given settings |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) | FoodAmount | The amount of food points that this food gives. This is passed to `TinyLife.Objects.Food.FoodLeft` when a dish is created. For reference, the mac and cheese dish has a food amount of 100. |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | Name | This food type's name |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | NeedsCooking | Whether or not this food item needs to be cooked on a stove to be created. If this value is false, the food will instantly go from being on a cutting board to being finished. |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) | Price | The price that creating this food type has |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) | RequiredCookingLevel | The level of the `TinyLife.Skills.SkillType.Cooking` skill that is required to prepare this dish |
| [TextureRegion](./FoodType.md) | Texture | This food type's texture region. The texture is loaded from the `TinyLife.Mods.Mod.GetCustomFurnitureTextures` as "Food`TinyLife.Skills.FoodType.Name`" Since the plate will automatically be rendered below this food type, the texture only needs to contain the dish itself. |
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | DisplayName | This food type's `TinyLife.Skills.FoodType.Name`, but localized using `TinyLife.LnCategory.Food` |
## Static Fields
| Type | Name | Summary |
| --- | --- | --- |
| [IDictionary](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IDictionary-2)\<[String](https://docs.microsoft.com/en-us/dotnet/api/System.String), [FoodType](./FoodType.md)> | Types | All of the `TinyLife.Skills.FoodType` instances that are registered by the game and mods |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Register ( [`FoodType`](./FoodType.md) ) | Registers a new `TinyLife.Skills.FoodType` with the given settings |

View file

@ -0,0 +1,40 @@
# [PaintingType](./PaintingType.md)
Namespace: [TinyLife]() > [Skills]()
Assembly: Tiny Life.dll
## Summary
This class represents a type of `TinyLife.Objects.Painting` that can be created using the `TinyLife.Skills.SkillType.Painting`. Painting types are registered using `TinyLife.Skills.PaintingType.Register(TinyLife.Skills.PaintingType)`.
## Constructors
| Name | Summary |
| --- | --- |
| PaintingType ( [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String), [`Range`](./PaintingType.md)\<[`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)>, [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single) ) | Creates a new painting type with the given settings |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | BaseMarkup | The multiplier with which the created `TinyLife.Objects.Painting`'s price will be marked up. Before this multiplier is applied, the level and quality modifiers are also applied. |
| [Range](./PaintingType.md)\<[Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)> | LevelRange | The `MonoGame.Extended.Range`1` of levels of the `TinyLife.Skills.SkillType.Painting` skill that allows creating this painting |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | Name | The name of this painting type |
| [TextureRegion](./PaintingType.md) | Texture | The texture that this painting uses. The texture is loaded from the `TinyLife.Mods.Mod.GetCustomFurnitureTextures` as "Painting`TinyLife.Skills.PaintingType.Name`" Note that this texture is just an overlay; the frame and white background are automatically drawn. |
## Static Fields
| Type | Name | Summary |
| --- | --- | --- |
| [IDictionary](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IDictionary-2)\<[String](https://docs.microsoft.com/en-us/dotnet/api/System.String), [PaintingType](./PaintingType.md)> | Types | All registered `TinyLife.Skills.PaintingType` instances in the game and in active mods |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Register ( [`PaintingType`](./PaintingType.md) ) | Registers a painting type with the given settings to the `TinyLife.Skills.PaintingType.Types` registry |

View file

@ -0,0 +1,20 @@
# [Quality](./Quality.md)
Namespace: [TinyLife]() > [Skills]()
Assembly: Tiny Life.dll
An enumeration for qualitites of objects like `TinyLife.Objects.FurnitureType.CustomPainting`. To receive a random quality based on a person's `TinyLife.Skills.Skill` level, use `TinyLife.Skills.SkillType.GetRandomQuality(TinyLife.Objects.Person,System.Random,System.Boolean,System.Boolean)`.
## Enum
| Value | Name | Summary |
| --- | --- | --- |
| 0 | Terrible | A quality for objects that are terrible |
| 1 | Average | A quality for objects that have an average quality |
| 2 | Good | A quality for objects that have good quality |
| 3 | Great | A quality for objects that have great quality |
| 4 | Perfect | A quality for objects that are considered perfect |
| 5 | Masterpiece | A quality for objects that are masterpieces. When an object with this quality is created, a `TinyLife.Uis.Notifications` notification should be displayed to the user |

View file

@ -0,0 +1,40 @@
# [Skill](./Skill.md)
Namespace: [TinyLife]() > [Skills]()
Assembly: Tiny Life.dll
## Summary
A skill is an ability that a `TinyLife.Objects.Person` can have which influences their behavior in some way. Skill instances are created from their corresponding `TinyLife.Skills.SkillType`.
## Constructors
| Name | Summary |
| --- | --- |
| Skill ( [`SkillType`](./SkillType.md) ) | Creates a new skill instance from the given `TinyLife.Skills.SkillType`. |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [SkillType](./SkillType.md) | Type | The underlying `TinyLife.Skills.SkillType` that this skill instance originates from |
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) | Level | The current level of this skill. Note that this value never goes beyond `TinyLife.Skills.SkillType.MaxLevel`. To modify this value, use `TinyLife.Skills.Skill.Gain(TinyLife.Objects.Person,System.Single)` or `TinyLife.Objects.Person.GainSkill(TinyLife.Skills.SkillType,System.Single,TinyLife.GameSpeed)`. |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | PointPercentage | The percentage of `TinyLife.Skills.Skill.PointsToNextLevel` out of the required `TinyLife.Skills.Skill.GetRequiredPointsToNextLevel`. Obviously, this value goes between 0 and 1. |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | PointsToNextLevel | The amount of skill points that are required until the next `TinyLife.Skills.Skill.Level` is reached. To modify this value, use `TinyLife.Skills.Skill.Gain(TinyLife.Objects.Person,System.Single)` or `TinyLife.Objects.Person.GainSkill(TinyLife.Skills.SkillType,System.Single,TinyLife.GameSpeed)`. |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Gain ( [`Person`](./../Objects/Person.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single) ) | Causes the given person to gain a certain amount of points of this skill. Note that `TinyLife.Objects.Person.GainSkill(TinyLife.Skills.SkillType,System.Single,TinyLife.GameSpeed)` is preferred to this method. |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) | GetRequiredPointsToNextLevel ( ) | Returns the amount of skill points that is required to reach the next level. This value is depenedent on the current `TinyLife.Skills.Skill.Level`, meaning higher skill levels are harder to reach. |

View file

@ -0,0 +1,18 @@
# [SkillCategory](./SkillCategory.md)
Namespace: [TinyLife]() > [Skills]()
Assembly: Tiny Life.dll
A flag enumeration that determines the categories that a `TinyLife.Skills.SkillType` has
## Enum
| Value | Name | Summary |
| --- | --- | --- |
| 0 | None | A skill category for skills that fit into none of the other categories |
| 1 | Creative | A skill category for skills that require creativity. Skills in this category are boosted by the `TinyLife.PersonalityType.Creative` personality type. |
| 2 | Logical | A skill category for skills that require logical thinking |
| 4 | Social | A skill category for skills that are related to social interaction. Skills in this category are boosted by the `TinyLife.PersonalityType.Likeable` and `TinyLife.PersonalityType.Mean` personality types. |

View file

@ -0,0 +1,53 @@
# [SkillType](./SkillType.md)
Namespace: [TinyLife]() > [Skills]()
Assembly: Tiny Life.dll
## Summary
A skill is an ability that a `TinyLife.Objects.Person` can have which influences their behavior in some way. The SkillType class contains underlying data for a `TinyLife.Skills.Skill` instance, like its name and maximum level.
## Constructors
| Name | Summary |
| --- | --- |
| SkillType ( [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String), [`TextureRegion`](./SkillType.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32), [`SkillCategory`](./SkillCategory.md) ) | Creates a new skill type with the given settings |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [SkillCategory](./SkillCategory.md) | Categories | The `TinyLife.Skills.SkillCategory` combined flag that this skill type has. The skill categories it has are used to determine skill gain from things like the `TinyLife.PersonalityType.Creative` personality type. |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) | MaxLevel | The maximum level that this skill can reach. Most skills should default to 5 or 10 for consistency. |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | Name | The name of this skill type |
| [TextureRegion](./SkillType.md) | Texture | The texture region of this skill type's icon |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Quality](./Quality.md) | GetRandomQuality ( [`Person`](./../Objects/Person.md), [`Random`](https://docs.microsoft.com/en-us/dotnet/api/System.Random), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | Returns a semi-randomly generated `TinyLife.Skills.Quality` for the given `TinyLife.Objects.Person` based on their level of this skill. The higher the skill level is, the more likely it is for higher qualities to be returned. |
## Static Fields
| Type | Name | Summary |
| --- | --- | --- |
| [SkillType](./SkillType.md) | Charisma | |
| [SkillType](./SkillType.md) | Cooking | |
| [SkillType](./SkillType.md) | Humor | |
| [SkillType](./SkillType.md) | Painting | |
| [SkillType](./SkillType.md) | Programming | |
| [SkillType](./SkillType.md) | Repair | |
| [IDictionary](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IDictionary-2)\<[String](https://docs.microsoft.com/en-us/dotnet/api/System.String), [SkillType](./SkillType.md)> | Types | A registry of all skill types that exist in the game and mods. Use `TinyLife.Skills.SkillType.Register(TinyLife.Skills.SkillType)` to register custom skill types. |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| [SkillType](./SkillType.md) | Register ( [`SkillType`](./SkillType.md) ) | Registers a new `TinyLife.Skills.SkillType` to the `TinyLife.Skills.SkillType.Types` registry |

View file

@ -0,0 +1,37 @@
# [FurniturePlacer](./FurniturePlacer.md)
Namespace: [TinyLife]() > [Tools]()
Assembly: Tiny Life.dll
## Summary
A helper class that represents a tool part which allows the placement and movement of furniture objects. This class is used by `TinyLife.Tools.FurnitureTool` and `TinyLife.Tools.MoveTool`.
## Constructors
| Name | Summary |
| --- | --- |
| FurniturePlacer ( [`Action`](https://docs.microsoft.com/en-us/dotnet/api/System.Action-1)\<[`Furniture`](./../Objects/Furniture.md)> ) | Creates a new furniture placer with the given settings |
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[] | SelectedColors | The color indices that are currently selected for the `TinyLife.Tools.FurniturePlacer.SelectedFurniture` |
| [FurnitureType](./../Objects/FurnitureType.md) | SelectedFurniture | The `TinyLife.Objects.FurnitureType` that is currently selected for placement |
| [Furniture](./../Objects/Furniture.md) | SelectedPreview | An instance of the `TinyLife.Tools.FurniturePlacer.SelectedFurniture` |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Draw ( [`GameTime`](./FurniturePlacer.md), [`SpriteBatch`](./FurniturePlacer.md) ) | Draws the `TinyLife.Tools.FurniturePlacer.SelectedPreview` of this furniture placer |
| [Nullable](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[WallDisplay](./../WallDisplay.md)> | ForceWallsUp ( ) | |
| [CursorType](./../Uis/CursorType.md) | GetMouseCursor ( ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | HighlightSelectedObject ( ) | |
| void | SelectFurniture ( [`FurnitureType`](./../Objects/FurnitureType.md), [`Furniture`](./../Objects/Furniture.md), [`Action`](https://docs.microsoft.com/en-us/dotnet/api/System.Action-1)\<[`Furniture`](./../Objects/Furniture.md)>, [`Direction2`](./FurniturePlacer.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)[], [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | Selects the given `TinyLife.Objects.FurnitureType`. If `` is enabled, the `` is the exact furniture instance that will be placed. If it is false, a new instance of the given `` will be created upon placement. |
| void | Update ( ) | Updates this furniture placer. This should be called in `TinyLife.Tools.Tool.Update(Microsoft.Xna.Framework.GameTime)` each frame. |

View file

@ -0,0 +1,25 @@
# [FurnitureTool](./FurnitureTool.md)
Namespace: [TinyLife]() > [Tools]()
Assembly: Tiny Life.dll
## Constructors
| Name | Summary |
| --- | --- |
| FurnitureTool ( ) | |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Draw ( [`GameTime`](./FurnitureTool.md), [`SpriteBatch`](./FurnitureTool.md) ) | |
| [Nullable](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[WallDisplay](./../WallDisplay.md)> | ForceWallsUp ( ) | |
| [CursorType](./../Uis/CursorType.md) | GetMouseCursor ( ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | ShouldHighlightSelectedObject ( ) | |
| void | Update ( [`GameTime`](./FurnitureTool.md) ) | |

View file

@ -0,0 +1,23 @@
# [LotTool](./LotTool.md)
Namespace: [TinyLife]() > [Tools]()
Assembly: Tiny Life.dll
## Constructors
| Name | Summary |
| --- | --- |
| LotTool ( ) | |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Draw ( [`GameTime`](./LotTool.md), [`SpriteBatch`](./LotTool.md) ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | ShouldHighlightSelectedObject ( ) | |
| void | Update ( [`GameTime`](./LotTool.md) ) | |

View file

@ -0,0 +1,21 @@
# [MoveLotTool](./MoveLotTool.md)
Namespace: [TinyLife]() > [Tools]()
Assembly: Tiny Life.dll
## Constructors
| Name | Summary |
| --- | --- |
| MoveLotTool ( ) | |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | ShouldHighlightSelectedObject ( ) | |

View file

@ -0,0 +1,26 @@
# [MoveTool](./MoveTool.md)
Namespace: [TinyLife]() > [Tools]()
Assembly: Tiny Life.dll
## Constructors
| Name | Summary |
| --- | --- |
| MoveTool ( ) | |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | CanSaveOrSwitchModes ( ) | |
| void | Draw ( [`GameTime`](./MoveTool.md), [`SpriteBatch`](./MoveTool.md) ) | |
| [Nullable](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[WallDisplay](./../WallDisplay.md)> | ForceWallsUp ( ) | |
| [CursorType](./../Uis/CursorType.md) | GetMouseCursor ( ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | ShouldHighlightSelectedObject ( ) | |
| void | Update ( [`GameTime`](./MoveTool.md) ) | |

View file

@ -0,0 +1,24 @@
# [OpeningTool](./OpeningTool.md)
Namespace: [TinyLife]() > [Tools]()
Assembly: Tiny Life.dll
## Constructors
| Name | Summary |
| --- | --- |
| OpeningTool ( ) | |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Draw ( [`GameTime`](./OpeningTool.md), [`SpriteBatch`](./OpeningTool.md) ) | |
| [CursorType](./../Uis/CursorType.md) | GetMouseCursor ( ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | ShouldHighlightSelectedObject ( ) | |
| void | Update ( [`GameTime`](./OpeningTool.md) ) | |

View file

@ -0,0 +1,30 @@
# [PlayModeTool](./PlayModeTool.md)
Namespace: [TinyLife]() > [Tools]()
Assembly: Tiny Life.dll
## Constructors
| Name | Summary |
| --- | --- |
| PlayModeTool ( ) | |
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [Person](./../Objects/Person.md) | SelectedPerson | Stores the `TinyLife.Objects.Person` that is currently selected |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Closed ( ) | |
| void | Opened ( ) | |
| void | Update ( [`GameTime`](./PlayModeTool.md) ) | |

View file

@ -0,0 +1,24 @@
# [RemoveTool](./RemoveTool.md)
Namespace: [TinyLife]() > [Tools]()
Assembly: Tiny Life.dll
## Constructors
| Name | Summary |
| --- | --- |
| RemoveTool ( ) | |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Draw ( [`GameTime`](./RemoveTool.md), [`SpriteBatch`](./RemoveTool.md) ) | |
| [CursorType](./../Uis/CursorType.md) | GetMouseCursor ( ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | ShouldHighlightSelectedObject ( ) | |
| void | Update ( [`GameTime`](./RemoveTool.md) ) | |

View file

@ -0,0 +1,24 @@
# [RoofTool](./RoofTool.md)
Namespace: [TinyLife]() > [Tools]()
Assembly: Tiny Life.dll
## Constructors
| Name | Summary |
| --- | --- |
| RoofTool ( ) | |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Draw ( [`GameTime`](./RoofTool.md), [`SpriteBatch`](./RoofTool.md) ) | |
| [Nullable](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[WallDisplay](./../WallDisplay.md)> | ForceWallsUp ( ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | ShouldHighlightSelectedObject ( ) | |
| void | Update ( [`GameTime`](./RoofTool.md) ) | |

View file

@ -0,0 +1,24 @@
# [TileTool](./TileTool.md)
Namespace: [TinyLife]() > [Tools]()
Assembly: Tiny Life.dll
## Constructors
| Name | Summary |
| --- | --- |
| TileTool ( ) | |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Draw ( [`GameTime`](./TileTool.md), [`SpriteBatch`](./TileTool.md) ) | |
| [CursorType](./../Uis/CursorType.md) | GetMouseCursor ( ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | ShouldHighlightSelectedObject ( ) | |
| void | Update ( [`GameTime`](./TileTool.md) ) | |

View file

@ -0,0 +1,57 @@
# [Tool](./Tool.md)
Namespace: [TinyLife]() > [Tools]()
Assembly: Tiny Life.dll
## Summary
A tool is a type of game mode that is currently active. Tools are split up into the `TinyLife.Tools.Tool.PlayModeTool` and `TinyLife.Tools.Tool.BuildTools`, the latter of which holds all tools that can be found in the build menu.
## Constructors
| Name | Summary |
| --- | --- |
| Tool ( [`TextureRegion`](./Tool.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | Creates a new tool with the given settings |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | DisplayAsTab | Whether or not this tool should be displayed as a tab (like the `TinyLife.Tools.Tool.RemoveTool`) or a button in the build menu |
| [TextureRegion](./Tool.md) | Texture | The texture region that should be used to display this tool in the build menu |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | CanSaveOrSwitchModes ( ) | Whether or not the game `TinyLife.GameImpl.CanSaveOrSwitchModes` currently, while this tool is selected |
| void | Closed ( ) | Called when this build tool is closed. By default, this method removes its elements from the ui. |
| void | Draw ( [`GameTime`](./Tool.md), [`SpriteBatch`](./Tool.md) ) | This method is called every draw frame for the `TinyLife.GameImpl.CurrentTool`. Note that this method is only called if the mouse is not hovering over any ui elements. |
| [Nullable](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)\<[WallDisplay](./../WallDisplay.md)> | ForceWallsUp ( ) | Returns whether the `TinyLife.WallDisplay` should be forcibly changed by this tool. If it shouldn't be changed, null should be returned. Otherwise, the required `TinyLife.WallDisplay` should be returned. |
| [CursorType](./../Uis/CursorType.md) | GetMouseCursor ( ) | Returns the `TinyLife.Uis.CursorType` that this tool should currently display. By default, `TinyLife.Uis.CursorType.Default` is returned. |
| void | Opened ( ) | Called when this build tool is opened. By default, this method initializes several settings and calls `TinyLife.Tools.Tool.InitBuildModeUi(MLEM.Ui.Elements.Panel,MLEM.Ui.Elements.Panel)`. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | ShouldHighlightSelectedObject ( ) | Whether or not the `TinyLife.Tools.Tool.SelectedObject` should currently have a white highlight around it. This method defaults to return true if `TinyLife.GameImpl.IsMouseOnUi` is false. |
| void | Update ( [`GameTime`](./Tool.md) ) | This method is called every update frame for the `TinyLife.GameImpl.CurrentTool`. |
## Static Fields
| Type | Name | Summary |
| --- | --- | --- |
| [List](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.List-1)\<[Tool](./Tool.md)> | BuildTools | A set of `TinyLife.Tools.Tool` instances that can be activated using the build mode menu. All tools in this list are automatically added to the menu. |
| [MoveTool](./MoveTool.md) | MoveTool | The `TinyLife.Tools.Tool.MoveTool` singleton |
| [PlayModeTool](./PlayModeTool.md) | PlayModeTool | The `TinyLife.Tools.Tool.PlayModeTool` singleton, which is activated when build mode is inactive. |
| [RemoveTool](./RemoveTool.md) | RemoveTool | The `TinyLife.Tools.Tool.RemoveTool` singleton, which is activated using the Remove tab in the build menu or by holding the control key. |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Button](./Tool.md) | BuildModeButton ( [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String), [`GenericCallback`](./Tool.md), [`DrawCallback`](./Tool.md), [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single), [`TextureRegion`](./Tool.md), [`LnCategory`](./../LnCategory.md), [`IEnumerable`](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IEnumerable-1)\<[`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String)> ) | |
| [Group](./Tool.md) | ColorSelection ( [`ColorScheme`](./../Utilities/ColorScheme.md), [`Action`](https://docs.microsoft.com/en-us/dotnet/api/System.Action-1)\<[`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)> ) | Creates a new `MLEM.Ui.Elements.Group` that resembles a set of color selection buttons. This is used by `TinyLife.Uis.CharacterCreator`, as well as tools like the `TinyLife.Tools.FurnitureTool`. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | IsOnLot ( [`Point`](./Tool.md) ) | Returns whether or not the passed position is on the currently edited lot (`TinyLife.GameImpl.CurrentLot`) |

View file

@ -0,0 +1,24 @@
# [WallTool](./WallTool.md)
Namespace: [TinyLife]() > [Tools]()
Assembly: Tiny Life.dll
## Constructors
| Name | Summary |
| --- | --- |
| WallTool ( ) | |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Draw ( [`GameTime`](./WallTool.md), [`SpriteBatch`](./WallTool.md) ) | |
| [CursorType](./../Uis/CursorType.md) | GetMouseCursor ( ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | ShouldHighlightSelectedObject ( ) | |
| void | Update ( [`GameTime`](./WallTool.md) ) | |

View file

@ -0,0 +1,24 @@
# [WallpaperTool](./WallpaperTool.md)
Namespace: [TinyLife]() > [Tools]()
Assembly: Tiny Life.dll
## Constructors
| Name | Summary |
| --- | --- |
| WallpaperTool ( ) | |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Draw ( [`GameTime`](./WallpaperTool.md), [`SpriteBatch`](./WallpaperTool.md) ) | |
| [CursorType](./../Uis/CursorType.md) | GetMouseCursor ( ) | |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | ShouldHighlightSelectedObject ( ) | |
| void | Update ( [`GameTime`](./WallpaperTool.md) ) | |

View file

@ -0,0 +1,31 @@
# [CharacterCreator](./CharacterCreator.md)
Namespace: [TinyLife]() > [Uis]()
Assembly: Tiny Life.dll
## Summary
The character creator is displayed when a person (or household) is being edited in terms of their `TinyLife.Objects.Clothes` and `TinyLife.PersonalityType`s.
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | CanSwitchPeople ( ) | Returns whether or not this character creator instance currently allows switching the selected character. The return value is based on the selected person's `TinyLife.Objects.Person.FullName` and `TinyLife.Objects.Person.PersonalityTypes`. |
## Static Properties
| Type | Name | Summary |
| --- | --- | --- |
| [CharacterCreator](./CharacterCreator.md) | Active | The currently displayed `TinyLife.Uis.CharacterCreator` instance, or null if the character editor is closed |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Person](./../Objects/Person.md) | CreatePerson ( [`Map`](./../World/Map.md), [`Household`](./../World/Household.md) ) | Creates a new `TinyLife.Objects.Person` instance on the given map with the given lot. The person is placed at the top left corner of the lot. A few settings, like their animation and portrait, are additionally set up. |
| void | Open ( [`Person`](./../Objects/Person.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | Opens a new `TinyLife.Uis.CharacterCreator` for the given person (and their household). |

View file

@ -0,0 +1,16 @@
# [Cursor](./Cursor.md)
Namespace: [TinyLife]() > [Uis]()
Assembly: Tiny Life.dll
## Summary
The Cursor class contains ways to change the `Microsoft.Xna.Framework.Input.MouseCursor` visuals to different `TinyLife.Uis.CursorType` values
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | SetCursor ( [`CursorType`](./CursorType.md) ) | Sets the currently used cursor to the given `TinyLife.Uis.CursorType`. Note that, every `MLEM.Startup.MlemGame.Update(Microsoft.Xna.Framework.GameTime)` frame, the cursor is reset to the default. |

View file

@ -0,0 +1,20 @@
# [CursorType](./CursorType.md)
Namespace: [TinyLife]() > [Uis]()
Assembly: Tiny Life.dll
An enumeration that defines types of cursor graphics that can be set using `TinyLife.Uis.Cursor.SetCursor(TinyLife.Uis.CursorType)`
## Enum
| Value | Name | Summary |
| --- | --- | --- |
| 0 | None | No cursor |
| 1 | Default | The default cursor graphic, which is just an arrow |
| 2 | Wall | The wall placement cursor graphic, which is an arrow with a little wall next to it |
| 3 | Hammer | The hammer cursor graphic, which is a hammer |
| 4 | Range | The range cursor graphic, which is an arrow with small green arrows next to it, arranged in a way to signify that a range is edited |
| 5 | Disallowed | The disallowed cursor graphic, which is an arrow with a "disallowed" sign next to it |

View file

@ -0,0 +1,17 @@
# [Notifications](./Notifications.md)
Namespace: [TinyLife]() > [Uis]()
Assembly: Tiny Life.dll
## Summary
This class holds information about the current and past notifications that are displayed in the top center of the screen. To create custom notifications, use `TinyLife.Uis.Notifications.Add(TinyLife.Objects.MapObject,System.String)` or `TinyLife.Uis.Notifications.Add(MLEM.Textures.TextureRegion,System.String)`.
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Add ( [`MapObject`](./../Objects/MapObject.md), [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String) ) | Adds a new notification related to the given map object. The passed object is also the one that will be displayed in the notification. |
| void | Add ( [`TextureRegion`](./Notifications.md), [`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String) ) | Adds a new notification related to nothing. The passed icon is displayed instead of an object. |

View file

@ -0,0 +1,55 @@
# [ColorScheme](./ColorScheme.md)
Namespace: [TinyLife]() > [Utilities]()
Assembly: Tiny Life.dll
Implements [IReadOnlyCollection](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IReadOnlyCollection-1)\<[Color](./ColorScheme.md)>, [IEnumerable](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IEnumerable-1)\<[Color](./ColorScheme.md)>, [IEnumerable](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.IEnumerable)
## Summary
A color scheme is a list of `Microsoft.Xna.Framework.Color` instances with which an object can be colored. By default, a set of color schemes exist (defined in this class), but new ones can be created easily using `TinyLife.Utilities.ColorScheme.Create(System.Object[])`.
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) | Count | Stores the amount of `Microsoft.Xna.Framework.Color` instances that are part of this color scheme |
| [Color](./ColorScheme.md) | Item | Returns the `Microsoft.Xna.Framework.Color` at the given index in this color scheme |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [IEnumerator](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IEnumerator-1)\<[Color](./ColorScheme.md)> | GetEnumerator ( ) | |
## Static Fields
| Type | Name | Summary |
| --- | --- | --- |
| [ColorScheme](./ColorScheme.md) | Bricks | |
| [ColorScheme](./ColorScheme.md) | Ceramics | |
| [ColorScheme](./ColorScheme.md) | Eyes | |
| [ColorScheme](./ColorScheme.md) | Flannel | |
| [ColorScheme](./ColorScheme.md) | Grays | |
| [ColorScheme](./ColorScheme.md) | Hair | |
| [ColorScheme](./ColorScheme.md) | Knit1 | |
| [ColorScheme](./ColorScheme.md) | Knit2 | |
| [ColorScheme](./ColorScheme.md) | Modern | |
| [ColorScheme](./ColorScheme.md) | Pastel | |
| [ColorScheme](./ColorScheme.md) | Plants | |
| [ColorScheme](./ColorScheme.md) | SimpleWood | |
| [ColorScheme](./ColorScheme.md) | Skin | |
| [ColorScheme](./ColorScheme.md) | WarmDark | |
| [ColorScheme](./ColorScheme.md) | White | |
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| [ColorScheme](./ColorScheme.md) | Create ( [`Object`](https://docs.microsoft.com/en-us/dotnet/api/System.Object)[] ) | Create a new color scheme from the given colors. The colors passed can be of type `Microsoft.Xna.Framework.Color`, `System.Int32` or `System.UInt32`. |
| [ColorScheme](./ColorScheme.md) | Load ( [`TextureRegion`](./ColorScheme.md) ) | Loads a color scheme from the given texture region. Each pixel on the texture region is evaluated and any pixels with an alpha value greater than zero are added to the color scheme. |

View file

@ -0,0 +1,31 @@
# [Extensions](./Extensions.md)
Namespace: [TinyLife]() > [Utilities]()
Assembly: Tiny Life.dll
## Summary
A set of extensions for dealing with various things required by Tiny Life.
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Button](./Extensions.md) | AddHoverAnimation ( [`Button`](./Extensions.md) ) | Adds a hover animation to the given `MLEM.Ui.Elements.Button`. The hover animation will automatically start playing when the mouse enters the button. |
| [CompletionType](./Extensions.md) | BothCompleted ( [`CompletionType`](./Extensions.md), [`Func`](https://docs.microsoft.com/en-us/dotnet/api/System.Func-1)\<[`CompletionType`](./Extensions.md)> ) | |
| [CanExecuteResult](./Extensions.md) | BothValid ( [`CanExecuteResult`](./Extensions.md), [`Func`](https://docs.microsoft.com/en-us/dotnet/api/System.Func-1)\<[`CanExecuteResult`](./Extensions.md)> ) | |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) | GetDecorativeRating ( [`Quality`](./../Skills/Quality.md) ) | Returns the decorative rating of an object with the given `TinyLife.Skills.Quality`. The returned values are as follows: `TinyLife.Skills.Quality.Terrible`: -2, `TinyLife.Skills.Quality.Good`: 1, `TinyLife.Skills.Quality.Great`: 1, `TinyLife.Skills.Quality.Perfect`: 2, `TinyLife.Skills.Quality.Masterpiece`: 3, Else: 0. |
| [GenealogyType](./../GenealogyType.md) | GetOpposite ( [`GenealogyType`](./../GenealogyType.md) ) | Returns the opposite of the given `TinyLife.GenealogyType`. The "opposite" is the relationship that the other partner of this `TinyLife.GenealogyType` will have. For example, the opposite of `TinyLife.GenealogyType.Parent` is `TinyLife.GenealogyType.Child` and vice versa. |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | GetPriceModifier ( [`Quality`](./../Skills/Quality.md) ) | Returns a multiplier that an object's price should be multiplied with based on the given `TinyLife.Skills.Quality`. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | IsVertical ( [`Direction2`](./Extensions.md) ) | Returns whether the passed direction is considered vertical. A vertical direction is `MLEM.Misc.Direction2.Up` and `MLEM.Misc.Direction2.Down`. All other directions return false. |
| [T](./Extensions.md) | JsonCopy ( [`T`](./Extensions.md) ) | Copies the given object using the `TinyLife.SaveHandler.Serializer`. |
| [CompletionType](./Extensions.md) | OneCompleted ( [`CompletionType`](./Extensions.md), [`Func`](https://docs.microsoft.com/en-us/dotnet/api/System.Func-1)\<[`CompletionType`](./Extensions.md)> ) | |
| [Direction2](./Extensions.md) | RotateBy ( [`Direction2`](./Extensions.md), [`Direction2`](./Extensions.md), [`Direction2`](./Extensions.md) ) | Rotates the given direction by a given reference direction. |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | ToLocalizedString ( [`Quality`](./../Skills/Quality.md) ) | Returns a localized string for the given `TinyLife.Skills.Quality`. |
| [Vector2](./Extensions.md) | ToScreenPos ( [`Vector2`](./Extensions.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) ) | Converts the given world-space position into a draw-space position |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | ToSellingPriceString ( [`Single`](https://docs.microsoft.com/en-us/dotnet/api/System.Single) ) | Returns a string of the structure "$0.##" that displays the given value as a price in dollars. |
| [Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) | ToWallSide ( [`Direction2`](./Extensions.md) ) | Returns an integer that represents the given `MLEM.Misc.Direction2` as a side of a `TinyLife.World.Wall`. Specifically, `MLEM.Misc.Direction2.Up` and `MLEM.Misc.Direction2.Left` return 0, any other directions return 1. |
| [Pose](./Extensions.md) | ToWorking ( [`Pose`](./Extensions.md) ) | |
| [Vector2](./Extensions.md) | ToWorldPos ( [`Vector2`](./Extensions.md) ) | Converts the given draw-space position into a world-space position |

View file

@ -0,0 +1,24 @@
# [StaticJsonConverter](./StaticJsonConverter-1.md)\<[T](./StaticJsonConverter-1.md)>
Namespace: [TinyLife]() > [Utilities]()
Assembly: Tiny Life.dll
## Summary
A `Newtonsoft.Json.JsonConverter`1` that doesn't actually serialize the object, but instead serializes the name given to it by the underlying `System.Collections.Generic.Dictionary`2`.
## Constructors
| Name | Summary |
| --- | --- |
| StaticJsonConverter ( [`Dictionary`](./StaticJsonConverter-1.md)\<[`String`](https://docs.microsoft.com/en-us/dotnet/api/System.String), [`T`](./StaticJsonConverter-1.md)> ) | |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [T](./StaticJsonConverter-1.md) | ReadJson ( [`JsonReader`](./StaticJsonConverter-1.md), [`Type`](https://docs.microsoft.com/en-us/dotnet/api/System.Type), [`T`](./StaticJsonConverter-1.md), [`Boolean`](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean), [`JsonSerializer`](./StaticJsonConverter-1.md) ) | |
| void | WriteJson ( [`JsonWriter`](./StaticJsonConverter-1.md), [`T`](./StaticJsonConverter-1.md), [`JsonSerializer`](./StaticJsonConverter-1.md) ) | |

View file

@ -0,0 +1,16 @@
# [TextureHandler](./TextureHandler.md)
Namespace: [TinyLife]() > [Utilities]()
Assembly: Tiny Life.dll
## Summary
The texture handler stores data for the game's textures, including all of the game's internal textures and various utility methods. It also stores the game's `MLEM.Data.RuntimeTexturePacker` which is used to pack all textures into a big texture for performance.
## Static Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | ApplyWallpaperMasks ( [`Texture2D`](./TextureHandler.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32), [`Action`](https://docs.microsoft.com/en-us/dotnet/api/System.Action-1)\<[`UniformTextureAtlas`](./TextureHandler.md)> ) | Applies the game's predefined wallpaper maskings (based on `TinyLife.World.WallMode`) to the given wallpaper texture. When adding custom `TinyLife.World.Wallpaper` types, this method should be used. Note that, as part of this method, the resulting texture is implicitly added onto the game's `MLEM.Data.RuntimeTexturePacker`. |

View file

@ -0,0 +1,18 @@
# [WallDisplay](./WallDisplay.md)
Namespace: [TinyLife]()
Assembly: Tiny Life.dll
The possible modes that a `TinyLife.World.Wall` and `TinyLife.World.Roof` can display in. The ordering of this enumeration is based on how much of the walls (and roofs) can be seen.
## Enum
| Value | Name | Summary |
| --- | --- | --- |
| 0 | Roofs | A wall display that represents full walls and the roofs of buildings being displayed |
| 1 | Up | A wall display that represents full walls, but no roofs, being displayed |
| 2 | Auto | A wall display that represents the back walls of buildings being `TinyLife.WallDisplay.Up`, but the front wals being `TinyLife.WallDisplay.Down` |
| 3 | Down | A wall display that represents only the lowest few pixels of each wall being displayed |

View file

@ -0,0 +1,23 @@
# [Door](./Door.md)
Namespace: [TinyLife]() > [World]()
Assembly: Tiny Life.dll
Implements [IPricedObject](./IPricedObject.md)
## Constructors
| Name | Summary |
| --- | --- |
| Door ( [`OpeningType`](./OpeningType.md), [`Int32`](https://docs.microsoft.com/en-us/dotnet/api/System.Int32) ) | |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | CanWalkThrough ( ) | |

View file

@ -0,0 +1,24 @@
# [ExportedHousehold](./ExportedHousehold.md)
Namespace: [TinyLife]() > [World]()
Assembly: Tiny Life.dll
## Summary
This class represents an exported version of a `TinyLife.World.Household`, storing all of the `TinyLife.World.Map`-independent data.
## Constructors
| Name | Summary |
| --- | --- |
| ExportedHousehold ( ) | |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [List](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.List-1)\<[Person](./../Objects/Person.md)> | Members | The `TinyLife.Objects.Person` instances that are members of this household |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | Money | The money that this household has |

View file

@ -0,0 +1,38 @@
# [ExportedLot](./ExportedLot.md)
Namespace: [TinyLife]() > [World]()
Assembly: Tiny Life.dll
Implements [IPricedObject](./IPricedObject.md)
## Summary
An exported lot is all of the relevant data of a `TinyLife.World.Lot` that should be exported to a file when clicking the "Export" button in the build menu. To create an exported lot from a lot, use `TinyLife.World.Lot.Export`.
## Constructors
| Name | Summary |
| --- | --- |
| ExportedLot ( ) | |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [Rectangle](./ExportedLot.md) | Area | The area that this lot covers in the world |
| [List](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.List-1)\<[Furniture](./../Objects/Furniture.md)> | Furniture | The `TinyLife.World.ExportedLot.Furniture` that is present on this lot |
| [List](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.List-1)\<[Roof](./Roof.md)> | Roofs | The roofs that are present on this lot |
| [Tile](./ExportedLot.md)[] | Tiles | The ground tiles of this lot |
| [LotType](./LotType.md) | Type | This lot's `TinyLife.World.LotType` |
| [List](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.List-1)\<[Wall](./Wall.md)> | Walls | The walls that are present on this lot |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [RectangleF](./ExportedLot.md) | GetCoveredArea ( ) | Returns a `MLEM.Misc.RectangleF` that represents the area that this lot actually covers. The area covered by this lot is always bounded by its `TinyLife.World.ExportedLot.Area`, but will be smaller if there are fewer objects on the lot. |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | GetPrice ( ) | |

View file

@ -0,0 +1,55 @@
# [Household](./Household.md)
Namespace: [TinyLife]() > [World]()
Assembly: Tiny Life.dll
Implements [IGenericDataHolder](./Household.md)
## Summary
A household is a set of `TinyLife.Objects.Person` instances that live together on the same `TinyLife.World.Household.Lot`
## Constructors
| Name | Summary |
| --- | --- |
| Household ( [`Map`](./Map.md), [`Lot`](./Lot.md) ) | Creates a new household on the given map and lot |
## Fields
| Type | Name | Summary |
| --- | --- | --- |
| [HashSet](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.HashSet-1)\<[WornClothes](./../Objects/WornClothes.md)> | ClothesStorage | This household's clothing storage, which is a set of `TinyLife.Objects.WornClothes` that are not currently being worn by any members, but that are owned by this household |
| [HashSet](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.HashSet-1)\<[Furniture](./../Objects/Furniture.md)> | FurnitureStorage | This household's furniture storage, which is a set of `TinyLife.Objects.Furniture` items that are not placed, but owned by this household |
## Properties
| Type | Name | Summary |
| --- | --- | --- |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | IsCurrent | A property that indicates whether or not this household is the same as `TinyLife.GameImpl.CurrentHousehold` |
| [Lot](./Lot.md) | Lot | The `TinyLife.World.Household.Lot` that this household lives on. For exported households, this might be null. |
| [IEnumerable](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IEnumerable-1)\<[Person](./../Objects/Person.md)> | Members | The `TinyLife.Objects.Person` instances that are members of this household |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | Money | The money that this household has, rounded by two digits after the decimal point |
| [String](https://docs.microsoft.com/en-us/dotnet/api/System.String) | Name | The name of this household. The name of a household is the `TinyLife.Objects.Person.LastName` that most people in this household have. |
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| void | Add ( [`Person`](./../Objects/Person.md) ) | Adds the given person to this household |
| [ExportedHousehold](./ExportedHousehold.md) | Export ( ) | Exports this household's data into an `TinyLife.World.ExportedHousehold`, which can be saved to disk independently of the `TinyLife.World.Map` that this household is on. |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | GetAverageFriendshipTo ( [`Person`](./../Objects/Person.md) ) | Returns the average friendship level that the given `TinyLife.Objects.Person` has with members of this lot. This method returns an averaged value of the `TinyLife.Relationship.FriendLevel` that this person has towards each member of this lot. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | HasMember ( [`Person`](./../Objects/Person.md) ) | Returns whether the given person is a part of this household |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | HasMember ( [`Guid`](https://docs.microsoft.com/en-us/dotnet/api/System.Guid) ) | Returns whether the given person `TinyLife.Objects.MapObject.Id` is a part of this household |
| void | Import ( [`ExportedHousehold`](./ExportedHousehold.md) ) | Imports the given `TinyLife.World.ExportedHousehold` into this household. Note that existing `TinyLife.World.Household.Members` are not removed or replaced beforehand. |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | IsLotVisible ( [`Lot`](./Lot.md) ) | Returns whether the given lot is considered visible to this household Note that passing this household's `TinyLife.World.Household.Lot` will always cause this method to return true. |
| void | MarkLotNonVisible ( [`Lot`](./Lot.md) ) | Marks a lot non-visible if it's currently visible. |
| void | MarkLotVisible ( [`Lot`](./Lot.md) ) | Marks the given lot as visible for members of this household. `TinyLife.Objects.Person.VisitLot(TinyLife.World.Lot)` should be used in favor of this method in most cases. By default, visibility lasts for 30 seconds of real time. |
| void | Remove ( [`Person`](./../Objects/Person.md) ) | Removes the given person from this household, if they're part of it |
| void | Update ( [`GameTime`](./Household.md), [`TimeSpan`](https://docs.microsoft.com/en-us/dotnet/api/System.TimeSpan), [`GameSpeed`](./../GameSpeed.md) ) | Updates this household, ticking down the lot visibility times |
| [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean) | Validate ( [`Map`](./Map.md) ) | |

View file

@ -0,0 +1,16 @@
# [IPricedObject](./IPricedObject.md)
Namespace: [TinyLife]() > [World]()
Assembly: Tiny Life.dll
## Summary
A priced object is an object that has a floating point price value attached to it. In the world of Tiny Life, prices are written as "tiny bucks", but they don't necessarily resemble the prices of the American dollar.
## Methods
| Return | Name | Summary |
| --- | --- | --- |
| [Single](https://docs.microsoft.com/en-us/dotnet/api/System.Single) | GetPrice ( ) | Returns the price that this object can be bought or sold for. Note that, like in the case of the `TinyLife.Objects.Painting`, the returned price isn't necessarily the full price that the object can be sold for. Instead, the price returned here should be the price that this object has when bought or sold from the `TinyLife.Tools.FurnitureTool` or similar. |

Some files were not shown because too many files have changed in this diff Show more