Show / Hide Table of Contents

    Namespace AGS.API

    Classes

    AGSBoundingBoxes

    The bounding boxes used for the entity.

    AGSHashSetChangedEventArgs<TItem>

    Event arguments for a hash set change event.

    AGSListChangedEventArgs<TItem>

    Event arguments for a list change.

    AnimationCompletedEventArgs

    Event arguments for when an animation completes.

    BeforeSayEventArgs

    Event arguments which allows you to modify how/where the text is rendered and control how the speech is skipped (assuming you configure External in your ISayConfig).

    ButtonAnimation

    Allows changing properties of the button to "animate" it as it moves between states (idle, hover, pushed). Each ButtonAnimation represents one of this states, and can have a different animation (or image), border, background color (tint) or text rendering configuration (font, shadows, etc- ITextConfig).

    CheckBoxEventArgs

    Event arguments for a checkbox check change.

    Colors

    A list of colors to choose from.

    ConcreteImplementationAttribute

    This attribute can be assigned to concrete implementations of interfaces. This affects the inspector, when selecting implementations for interfaces (for example, when selecting a border you'd want to look of implmentations of IBorderStyle).

    CustomStringValueAttribute

    An attribute to be placed on a method that will be used instead of ToString() to supply the string display value to the inspector. The method must accept no arguments and return a string.

    DisplayListEventArgs

    Event arguments for retrieiving (and possibly modifying) the display list before rendering it.

    FourCorners<TValue>

    Represents four values of "something" that matches four corners of a bounding box (for example, four colors for a gradient border).

    HasFactoryAttribute

    This attribute can be associated to an interface, to allow specifying factory methods that can be used to create a possible implementation. This is used by the inspector when selecting an implementation for an interface. For example, when selecting a border via IBorderStyle, it can refer you to various methods in IBorderFactory.

    InventoryCombinationEventArgs

    The event arguments for the inventory combination events. The arguments contain the two combined items.

    InventoryInteractEventArgs

    Event arguments for inventory interaction

    KeyboardEventArgs

    Event arguments for keyboard key press/release.

    ListboxItemArgs

    Event arguments for when a selected item changes in a listbox/combobox.

    ListboxItemChangingArgs

    Event arguments for when a selected item is in the process of changing (before actually being changed) in a listbox/combobox. The event gives the ability to cancel the selection by settings ShouldCancel to true.

    MathHelper

    Contains common mathematical functions and constants.

    MathUtils

    MethodParamAttribute

    An attribute to configure parameters for a method wizard (MethodWizardAttribute).

    MethodWizardAttribute

    An attribute to mark methods that can act as wizards in the editor (can show a window to let the user set the parameters for the method).

    MouseButtonEventArgs

    Mouse button down/up event arguments.

    MouseClickEventArgs

    Mouse click/double-click event arguments.

    MousePositionEventArgs

    Event arguments for mouse move to indicate the mouse's position.

    NamedColorsMap

    NodeEventArgs

    Event arguments which contain a tree node.

    NumberEditorSliderAttribute

    Allows controlling the "suggested" minimum and maximum values that will be assigned to a slider of a number editor in the inspector.

    NumberValueChangedArgs

    Event arguments for when the number editor's value changed.

    ObjectEventArgs

    Event arguments for interacting with an object.

    PropertyAttribute

    Allows attaching an attribute to a property which controls various aspects on how it will look when shown via the inspector.

    PropertyFolderAttribute

    Allows declaring a class as a folder of properties which can be expanded in the inspector.

    QueryLayoutEventArgs

    Event arguments used by ITreeTableLayout when querying the rows for the layout. Each row should set a new column size for each column with a size smaller than what the row needs.

    RequiredComponentAttribute

    A decorator for components, to hint that this component requires other components in order to function. For example, a walk component needs a translate (x,y,z) component to move x and y when the character moves. The walk component also needs an animation component to animate the walk. So a walk component will have a required component attribute with translate compnent, and another attribute with the animation component.

    SliderValueEventArgs

    Event arguments for slider value change.

    TextBoxKeyPressingEventArgs

    Event arguments for when a key is pressed on the textbox.

    TextboxState

    Represents the state in which the textbox is currently in.

    Structs

    AGSBoundingBox

    A bounding box (a square that bounds something)- used for rendering and hit-tests.

    AGSCropInfo

    Information about how to crop entities.

    AGSListItem<TItem>

    Represents an item in a list

    BeforeCropEventArgs

    Event arguments for the "before crop" event.

    ClaimEventToken

    This is a token that can be used when you want to claim an event, so that other subscribers which follow you on the subscriber list will not get that event. ClaimableCallback

    Color

    Represents a color.

    Matrix3

    Represents a 3x3 matrix containing 3D rotation and scale.

    Matrix4

    Represents a 4x4 matrix containing 3D rotation, scale, transform, and projection.

    ModelMatrices

    The model matrix is used for rendering and hit-testing the object.

    MousePosition

    Represents a mouse position on the screen. Allows to get the position in either window coordinates or viewport coordinates.

    Point

    Represents an integer point in 2D space.

    PointF

    Represents a float point in 2D space.

    Position

    A 3D location in the world.

    Quaternion

    Represents a Quaternion.

    Rectangle

    Represents a rectangle in 2D space.

    RectangleF

    Represents a rectangle in 2D space.

    ResourcePack

    A resource pack to be registered with the resource loader. It carries both the resource pack implementation, and a priority which used to decide which resource pack takes precedence in the resource loader (higher is better).

    Size

    Represents an integer size (width and height).

    SizeF

    Represents a float size (width and height).

    Vector2

    Represents a 2D vector using two single-precision floating-point numbers.

    Vector3

    Represents a 3D vector using three single-precision floating-point numbers.

    Vector4

    Represents a 4D vector using four single-precision floating-point numbers.

    Interfaces

    IAGSBindingList<TItem>

    A binding list is a list which notifies on each list change

    IAnimation

    Represents an animation. This allows you to configure an animation, and also to query/control animation when it's running.

    IAnimationComponent

    An animation container. This gives access to the animation, and allows to start a new animation which will replace the old animation.

    IAnimationConfiguration

    Allows to configure various aspects of the animation.

    IAnimationFrame

    An animation frame (an animation is composed from a list of frames, which change all the time to make the object looks like it's animated).

    IAnimationState

    Control and query the animation current state.

    IApproachComponent

    Allows a character to approach a hotspot. When an interaction event is triggered for a hotspot, if this component is available for the player (which it is by default), then the character will approach the hotspot before the interaction logic code is triggered.

    IApproachStyle

    How to approach hotspots? Can be configured per verb.

    IArea

    Areas are specific regions in a room that provide additional behaviors that apply only within that region.

    IAreaComponent

    Areas are specific regions in a room that provide additional behaviors that apply only within that region.

    IAreaRestriction

    Adds the ability to restrict certain entities from being affected by the area.

    IAudioClip

    An audio clip that can be played multiple times during the game. The audio clip should be loaded from a file using IAudioFactory. You can then set its properties (volume, pitch, panning) which will be used for all sounds played from this clip.

    Note that an audio clip is the template for the sound, whereas ISound is the actual playing sound instance.

    IAudioFactory

    A factory to load audio clips from files.

    IAudioRule

    You can implement an audio rule and add it to AudioRules, to modify properties of playing sounds. It gets callbacks from the engines whenever a sound has played and completed, and can add a ISoundModifier to the sound (SoundModifiers) to modify its properties.

    Note: the audio rule is a conviency interface for interacting all the sounds in the system. You don't have to use it, though, there's nothing stopping you from adding sound modifiers to sounds outside this system.

    IAudioSettings

    Allows to set global audio settings

    IAudioSystem

    The entry point for interacting with the audio system.

    IBitmap

    A low level bitmap which can be manipulated.

    IBitmapLoader

    This interface allows creating bitmaps.

    IBitmapTextDraw

    This interface allows drawing text on a bitmap.

    IBlend

    IBlockingEvent

    Represents an event which can be subscribed and invoked synchronously. An event is a notification for something that has happened. Interested parties can subscribe to the event and be notified when it triggers (https://en.wikipedia.org/wiki/Event-driven_programming).

    IBlockingEvent<TEventArgs>

    Represents an event which can be subscribed and invoked synchronously. An event is a notification for something that has happened. Interested parties can subscribe to the event and be notified when it triggers (https://en.wikipedia.org/wiki/Event-driven_programming).

    IBorderComponent

    Allows drawing a border around the entity.

    IBorderFactory

    A factory for creating borders (IBorderStyle).

    IBorderStyle

    A border style will draw a border around an entity. It can draw both behind and in front of the entity.

    There are several borders that come built in:

    1. A solid color border (use SolidColor(Color, Single, Boolean)): allows to set a color, line width and optional rounded corners.
    2. A gradient color border (use ): allows to set 4 colors for the 4 corners which will be interpolated across, a line width and optional rounded corners.
    3. A 9-slice image border (use AGSSlicedImageBorder): this allows you to use an image, slice it to 9 pieces, and spread it in various ways to create a border. The 9-slice image border is heavily inspired by the border image used by CSS, so you can look at an example in CSS, to see what can be done with a 9-slice image: https://css-tricks.com/almanac/properties/b/border-image/

    You can also implement your own custom border style by implementing this interface, which can then be used for all objects.

    IBoundingBoxComponent

    A component that calculates the bounding box of the entity. This is for both the bounding box used to render the entity, and for collision checks.

    IBoundingBoxWithChildrenComponent

    Allows to query the size of the entity combined with all its children (i.e the size of the minimal bounding box that surrounds them all).

    IBrush

    A brush which can be used to draw.

    IBrushLoader

    Loads a brush

    IButton

    A pre-set entity with all of the UI control components, plus a button component and a text component.

    IButtonComponent

    A button component allows having the entity behave like a button.

    ICamera

    The camera is a script that is executed each game tick, and manipulates the viewport.

    The default camera tracks the target (usually the player) by slowly moving the viewport (in a smooth transition) so the target is at the center, while also adjusting the zoom if the target is standing in a IZoomArea.

    You can however implement your own camera, where each room can have a different camera if desired.

    ICharacter

    A character is an entity with pre-set components (like talk, walk, and inventory) which is useful to depict adventure game characters.

    ICheckBox

    A pre-set entity with all of the UI control components, plus a checkbox component.

    ICheckboxComponent

    The checkbox component allows having an entity behave like a checkbox (can be checked an unchecked).

    IChildrenCollection

    A collection of children (to be used in a tree like structure).

    IClippingPlane

    A clipping plane allows clipping objects (i.e hiding objects) if they're on the wrong side of the plane. A near clipping plane is for clipping objects which are too close to the camera, and a far clipping plane is for clipping objects which are too far from the camera.

    IColliderComponent

    Adds the ability for an entity to check collisions (i.e check whether it collides with a point in the room). The collision is checked via either the entity's bounding box, or via a pixel perfect collision if the IPixelPerfectComponent exists and enabled.

    IColorBlend

    IComboBox

    A pre-set entity with all of the UI control components, plus a combo box component (a drop-down).

    IComboBoxComponent

    The combo box component allows having the entity behave like a drop-down for selecting an item from a list.

    IComponent

    A component can be added to an entity (object/character/button/etc), and add additional behavior to it.

    IComponentBinding

    Represents binding of actions to be performed when a component is added/removed.

    IComponentsCollection

    A collection of componenets: allows you to add, remove, get and iterate components.

    IConcurrentHashSet<TItem>

    A hashed set which can be write/read concurrently.

    ICoordinates

    Utility methods to help convert between different coordinate systems:

    1. Window coordinates: those are the coordinates of the window which hosts the game (the units are based on the number of pixels the window has on your screen- determined from your screen resolution and display size).
    2. World coordinates: those are the coordinates of your game world (the units are based on your virtual resolution).
    3. Viewport coordinates: the game might have multiple viewports on the screen (for example, in a split-screen game). Each viewport can have its own coordinates. The world coordinates are actually the main viewport coordinates.
    4. Object coordinates: each object in the game can have its own coordinates. First, it can be using a IRenderLayer which has a different resolution than your world's resolution. Secondly, if the object is a child of another object, then the coordinate system is relative to the parent.

    ICropChildrenComponent

    This component allows cropping all children to the parent's size. For example, you can have an object to represent a TV, then crop all of its children entities, so the entities will not get out of the boundaries of the TV (giving the appearance that it's really a TV).

    ICropSelfComponent

    Adds the ability to crop the shown image (only show part of the image).

    ICrossFading

    Allows to set how cross fading audio clips between rooms behaves.

    ICustomProperties

    Custom properties that you can attach to entities and can be used to get/set values during the game.

    ICustomPropertiesComponent

    ICustomPropertiesPerType<TValue>

    Custom properties that you can attach to entities and can be used to get/set values during the game.

    ICustomSearchItem

    Allows providing behavior for custom searching text in tree view or list box.

    ICustomSerializable

    ICustomSerializableData

    ICutscene

    A cutscene is used to wrap a portion of the game together. This portion can then be skipped by the user. This is useful for things like introduction sequences, where you want the player to be able to skip over an intro that they've seen before.

    IDefaultFonts

    Allows to set the default fonts to be used in the game.

    IDefaultInteractions

    Default interactions (when no specific interaction callback is subscribed) are defined here. This is where you define generic responses (like the famous "this doesn't work") that cover all of the interactions for which you didn't code a specific response.

    IDefaultsSettings

    Gets or sets settings for various defaults.

    IDepthClipping

    Depth clipping allows clipping objects (i.e hiding objects) if they're either too close or too far from the camera. A near clipping plane is for clipping objects which are too close to the camera, and a far clipping plane is for clipping objects which are too far from the camera.

    IDialog

    Represents a dialog (an on-going conversation) between two (or more) characters. The dialog is structured as a sequence of actions (usually the characters talking), followed by a list of choices for the player, where each choice branches to another sequence of actions, followed by another list of choices, and so on.

    IDialogAction

    A dialog action. This is usually text spoken by one of the characters, but it can be any action, which will run in the sequence.

    IDialogActions

    Represents a sequence of actions that can be performed after a dialog choice.

    IDialogFactory

    A factory to create dialogs and dialog options.

    IDialogLayout

    Allows customizing how the dialog options will be layed out on the screen. The default will show them at the bottom of the screen.

    IDialogOption

    Represents a dialog option that is shown on the screen as part of a list of options, where the user needs to choose one of the options.

    IDialogSettings

    Allows to set default settings to control how dialogs look and behave.

    IDirectionalAnimation

    Allows grouping animations for different directions together (for example, walking left and right). This is used by the character when choosing a directional animation: if you don't assign all of the directions, the engine will attempt to choose the best direction based on what you have assigned. So, for example, if you only assign Left and Right animations for your walk animation, and the player is attempting to walk down-right, the engine will use the Right animation.

    IDisplayList

    Represents an ordered list of objects that will be displayed on screen.

    IDisplayListSettings

    Controls what is shown on screen for this display list.

    IDraggableComponent

    Adds the ability for an entity to be dragged on the screen with the mouse/touch.

    IDrawableInfoComponent

    Adds the ability for an entity to configure various aspects of how it is rendered.

    IEdge

    Room edges are a convenient way for scripting a room change once a player walks beyond an edge. Each room has 4 edges, and this interface represents any of those edges.

    IEdges

    Room edges are a convenient way for scripting a room change once a player walks beyond an edge. You can set the 'X' for the left and right edge, and the 'Y' for the top and bottom edge and subscribe to events when the player crosses the edge to change the room.

    IEnabledComponent

    Adds the ability for an entity to be disabled/enabled. Only enabled entities can be interacted with by the player.

    IEntity

    An entity is the most basic unit for composition. On itself it doesn't do anything except be a collection of components. Each added component adds more abilities to the entity. For example, adding a "talk" component to the entity, will give the entity the ability to talk.

    IEvent

    Represents an event which can be subscribed both synchronously or asynchorously, and is invoked asynchronously. An event is a notification for something that has happened. Interested parties can subscribe to the event and be notified when it triggers (https://en.wikipedia.org/wiki/Event-driven_programming).

    IEvent<TEventArgs>

    Represents an event which can be subscribed both synchronously or asynchorously, and is invoked asynchronously. An event is a notification for something that has happened. Interested parties can subscribe to the event and be notified when it triggers (https://en.wikipedia.org/wiki/Event-driven_programming).

    IFaceDirectionComponent

    Gives the ability for a character to change the direction he/she is facing.

    IFocusedUI

    Contains information about UI controls which have focus (and thus block input from other controls).

    IFollowComponent

    This component adds the ability for a character to follow another entity (i.e to keep walking to where the entity is. The follow settings can be configured to set how aggressive that follow is).

    IFollowSettings

    Configures how the character follow component behaves.

    IFont

    Represents a font which is used when drawing text.

    IFontFactory

    IFontLoader

    Allows loading fonts.

    IForm

    A form (a panel with a header).

    IFrameBuffer

    Allows rendering into a texture instead of rendering to screen

    IGame

    A top-level interface to interact with the game.

    IGameEvents

    The game events, allows you to subscribe to important events that happen in the game.

    IGameFactory

    The game factory. This factory contains all of the other factories. Factories are used to offer convience methods for creating game objects.

    IGameLoop

    The game loop, which updates the game state on every tick.

    IGameSettings

    Game settings (those can be set only once).

    IGameStarter

    The game starter interface is the interface that a game project should implement so that it can be loaded by the editor. When loading a game from the editor, the editor searches for an implementation of this interface in the game, and calls the "StartGame" method with the game it created so that the editor and the game will have a shared interface to the game.

    IGameState

    The game state. This is the entry point for all "changing" things in the game.

    IGraphicsFactory

    Factory to allow loading graphics (images/animations).

    IHasCursorComponent

    Allows setting a special cursor that will be shown when the mouse is hovering the entity. This can be useful for having special "Exit" cursors for doors (for example).

    IHasImage

    A container for an image.

    IHasModelMatrix

    An interface representing an entity which has a model matrix and can be rendered on screen.

    IHasRoomComponent

    This component associates an entity with the game's room system. It means that the entity can be belong to a room and moved between rooms.

    IHitTest

    Responsible for returning the current object that is located under the mouse position.

    IHotspotComponent

    Allows an entity to act as a hotspot (i.e can be interacted with).

    IIconFactory

    A factory for creating icons.

    IImage

    Represents an image that can be rendered on screen (usually as part of an animation).

    IImageComponent

    A component which allows setting an image to the entity.

    IInObjectTreeComponent

    A component which adds the ability for an entity to be a part of an object's tree.

    IInput

    The entry point for getting input from the user (keyboard/mouse/touch).

    IInputEvents

    A collection of input events.

    IInteractions

    Allows subscribing interaction events (to define what happens when an object is looked at/interacted with/etc).

    IInTree<TItem>

    A component which adds the ability for an entity to be a part of an entity's tree.

    IInventory

    The character's inventory. Those are the items that the character holds in his/her (usually) imaginary bag. It is composed of a list of inventory items, and one active item that the character holds in his/her hand.

    IInventoryComponent

    This component allows an entity to carry inventory.

    IInventoryFactory

    A factory for creating inventory items and inventory windows.

    IInventoryItem

    Represents an inventory item that a character can hold in his/her inventory.

    IInventoryWindow

    A pre-set entity with all of the UI control components, plus an inventory window component, for displaying inventory items in a window.

    IInventoryWindowComponent

    An inventory window allows displaying inventory items in a window.

    IJumpOffsetComponent

    Jump offset allows changing the position of the entity without affecting its X,Y and Z co-ordinates. This means that it won't affect the rendering order, collision tests, etc. This can be used for having a character jump in the air, for example, without causing it to appear behind objects which shouldn't be in front. This is also used by the engine for scrolling contents inside a scrolling panel.

    ILabel

    A pre-set entity with all of the UI control components, plus a text component for displaying text.

    IListbox

    Represents a listbox (a GUI view of a list of items).

    IListboxComponent

    A component for displaying a list of items (as text), and allowing selecting an item from the list.

    ILoadImageConfig

    Configuration to be used when loading images.

    ILockStep

    A mechanism to lock changes for various components, to ensure multiple changes happen at once.

    IMask

    A mask is basically a 2D array of booleans, usually representing an area on the screen.

    IMaskLoader

    Allows loading a mask from an image.

    IMessageBoxSettings

    Settings for creating message boxes. Those are created from the "AGSMessageBox" class.

    IModalWindowComponent

    Adds the ability for a window to be modal (blocks input from other windows). For example, if you create a "Save Game" dialog, you wouldn't want to be able to open the inventory when the dialog is showing, so you'll make the dialog a modal window, then you can grab focus when the window is shown, and lose focus when the window is closed.

    IModelMatrixComponent

    A component to calculate the matrix used to render/hit-test the object. The matrix includes transormations, rotations and scale.

    INumberEditorComponent

    A component that acts as a control to edit numbers.

    IObject

    An object is an entity with pre-set components (like location, scale, rotation, animation, etc) which is useful to depict all adventure game objects. Both characters and UI controls are also objects (with additional components).

    IObjectFactory

    A factory for creating objects, characters, and masked hotspots.

    IOutfit

    An outfit is a collection of animations that are associated with a character. The collection can be swapped with another collection when the character changes his look.

    IOutfitComponent

    Gives an entity the ability to have an outfit (and be able to change outfits).

    IOutfitFactory

    A factory for creating animation outfits for characters. The factory conveniently allows for idle, walk and speak animations, where other animations can be added to the outfit manually.

    IPanel

    A panel is a UI control which hosts other UI controls. Note: the panel is in fact completely unnecessary, as any other UI control can host UI controls as well, but it's here as it provides a clear intent on its use.

    IPathFinder

    This implements a path finder, to find a walking path from a position in 2D space to another position, while a mask implies where the character is allowed to walk on the 2D space.

    IPixelPerfectCollidable

    Adds the ability for pixel perfect collision checks (https://wiki.allegro.cc/index.php?title=Pixel_Perfect_Collision)

    IPixelPerfectComponent

    Adds the ability for an entity to have pixel perfect collision checks (as opposed to bounding box collision checks). See: https://wiki.allegro.cc/index.php?title=Pixel_Perfect_Collision

    IPortraitConfig

    Configuration for how the speech portrait is rendered.

    IRadioGroup

    Used to group multiple checkboxes together to guarantee that only one will be checked at any given time.

    IRenderer

    A renderer is an object which passes on drawing instructions on demand. All renderers which are subcribed to the rendering pipeline (for entities which are to be displayed), are requested to pass on the drawing instructions on each game tick. The rendering loop then uses those instructions to draw on the screen.

    IRendererLoop

    Represents the render loop of the game. All drawing to the screen is performed from the render loop.

    IRenderInstruction

    A render instruction represents an instruction to draw something. It is created on demand by renderers, and used by the rendering loop to draw on the screen on each game tick.

    IRenderLayer

    A render layer is an abstract grouping of objects with similar rendering properties. A render layer has a "Z" property for sorting which takes precedence over specific objects "Z" property. This means that if you have a UI render layer which is configured to be in front of a Background render layer, all objects which are associated with the UI layer will always be in front of the objects that are associated with the background layer. In addition, render layers add support for assigning different parallax speeds, to create beautiful parallax effects.

    AGS comes with a few built in layers that are used by default (Background, Foreground, UI and Speech). Speech layer is in front to ensure that displayed text can always be seen. This is the default layer used for Character.Say. UI layer is next, to ensure that it can always be seen (unless obstructed by text). This is the default layer used for all UI controls. This is followed by the Foreground layer, which is the default for all non UI objects. And lastly the Background layer, which is the default for the room's background graphics. You can assign those layers yourself, using AGSLayers static class:

    cEgo.RenderLayer = AGSLayers.UI; //The player is now on the UI layer!

    IRenderPipeline

    The render pipeline is responsible for collecting all of the rendering information and passing it on to the render loop. It allows entities to subscribe their own renderers and pass on custom drawing instructions.

    IRepeatedlyExecuteEventArgs

    Event arguments for the OnRepeatedlyExecute event.

    IResolver

    The resolver is an object that allows you to retrieve various systems from the engine. It uses an inversion of control container (https://en.wikipedia.org/wiki/Inversion_of_control) in order to allow you to replace the built-in engine system implementations with your own implementations. For more details, see: https://tzachshabtay.github.io/MonoAGS/articles/customizations.html

    IResource

    A resource is any asset which is loaded from a stream of data (could be from a file, or embedded in memory, or network stream, or any other stream).

    IResourceLoader

    The resource loader is the go-to place for retrieving resources. It does so by querying various resources packs for the resource you require until it is found. Each resource pack has a priority which determines the order of precedence in which the packs are queried (higher priority gets precedence).

    There are currently 2 built-in resource packs in the engine, which allow for 2 ways you can have resources in your game: They can be embedded in the project or loaded from the file system. This interface allows for loading resource either from the embedded project files or from the file system.

    The advantage of having the resources embedded is that you can rest assured the resources will be distributed with your game and cannot be touched from outside, which is why it's the recommended method. Loading from file system might be useful if you need the resources to be loaded dynamically, for example you might want to download resources from the internet, or if you give the user the option to choose her/his avatar. To embed resources in your game project, first add the resource files to the "Assets" folder in your shared game project(it doesn't have to be in the root "Assets" folder, you can have any structure you want in there). Then, in the solution explorer, right click the "Assets" folder and "Add Existing" (there are options for adding files or complete folders, depending on what you want to do) and add those resources to the project. You should then see those resources in the tree. Lastly, right click those resources and select "Embedded Resource" as your "Build Option". Note that even the resource is embedded, it's only embedded when compiling the game, so you cannot delete the file before deploying your game, and if you replace the file, it will be automatically replaced in the game on your next run.

    The path used by the loading methods has to be structured as so: if the resource is to be loaded from a file in the file system, then put the absolute path of the file. If the resource is embedded then put the relative path of the file (when the current folder is the "Assets" folder). So, for example, if you have an audio file called "trumpet.ogg" sitting under a "Sounds" folder in "Assets", your path would be "Sounds/trumpet.ogg". Note that this would work even if the file is sitting in that folder but not embedded. This is because (assuming the resource loader is configured with both an embedded resource pack and a file system resource pack) ResourceLoader will search for both an embedded resource and for a file from the file system. The order of the search depends on the configured priority for each resource pack.

    IResourcePack

    A resource pack is an abstract representation of a storage space for retrieving resources. There can be a resource pack that's based on the file system, a resource pack which retrieves embedded resource in the game file itself, a resource pack that downloads resources from the web, a resource pack based on a zip file, etc. IResourceLoader

    IRestrictionList

    Adds the ability to restrict certain entities from being affected by "something". That "something" can be an area, for example, or a display list for a viewport.

    IRoom

    The rooms are where the game takes place. A room can be a room in a house, or an outdoor location, or anything in between. The game can show only one room at a time.This would usually be the room where the player is, though you can change to a different room than the one the player is in if you want. Note: this is different than "Classic" AGS in which the room is explicitly tied to where the player is.

    IRoomEvents

    Each room has specific events which you can subscribe to and code stuff to happen on those events.

    IRoomFactory

    Factory for creating rooms and room specifics.

    IRoomLimitsProvider

    Allow providing custom room limits. The room limits are used to limit the camera from moving too much to the left or to the right. By default the room limits are bound to the room background size and start from (0,0), however this can be changed by setting a custom room limits provider to a room.

    IRoomProvider

    Provides a room.

    IRoomTransition

    This interface allows you to create custom room transitions, to build all kinds of special effects when transitioning from room to room.

    IRoomTransitions

    Allows to set the room transitions (and to get some information on the transitions)

    IRotate

    Allows rotating an entity/sprite.

    IRotateComponent

    A component which allows rotating an entity.

    IRuntimeSettings

    Game settings.

    ISaturationEffectComponent

    Allows adjusting the saturation of an entity/screen. If added as a component to an entity, the saturation property will control the entity's saturation. If created separately (and initialized with a null entity), this can be use to control the saturation of the entire screen.

    //to adjust saturation for an object:
    myObj.AddComponent<ISaturationEffectComponent>().Saturation = 0.5f;
    
    //to adjust saturation for the screen:
    var effect = new SaturationEffect(game.Factory.Shaders, game.Events);
    effect.Init(null);
    effect.Saturation = 0.5f;

    ISaveLoad

    Allows saving/loading a game.

    ISayComponent

    A component which adds the ability to speak for an entity.

    ISayConfig

    Configuration for how speech is rendered.

    ISayLocation

    Represents a location of where to render said text, and where to render a portrait (if a portrait should be rendered).

    ISayLocationProvider

    This is called every time a character speaks to determine the location on the screen on which the text (and the portrait, if portrait rendering is desired) will be rendered.

    IScale

    Allows scaling (changing the size of) entities/sprites.

    IScaleComponent

    Allows scaling (changing the size of) an entity.

    IScalingArea

    This component adds the ability for an area to automatically scale each object/character within it (and also 'scale' the volume of sounds coming from that object). The most common use is for faking perspective, so that when a character walks to the top of the screen (closer to the horizon), he will appear smaller and make quieter sounds. For that common use case, you'll want to scale on the Y axis (which is why Y axis is the default), and scale both the object x && y (to keep the aspect ration in tact).

    IScrollbar

    A scrollbar is a ISlider with 2 buttons (left + right or up + down depending on which SliderDirection is used) that can be clicked to modify the slider.

    IScrollingComponent

    This component gives the ability to attach scrollbars to an entity, which will then scroll the content (i.e the children) of the entity.

    ISelectableIcon

    An icon which has two modes: selected and not selected.

    IShader

    Represents a shader which is a user defined program that can be written to directly affect what's rendered on the screen. See here: https://www.opengl.org/wiki/Shader We're currently supporting vertex & fragment shaders.

    IShaderComponent

    This component provides a way to attach a shader to your entities

    IShaderFactory

    Factory for creating shaders (IShader).

    IShouldBlockInput

    This interface is used when processing input to determine whether input should be allowed and processed. For example, when the room is in transition, input is not allowed. You can change the behavior of when input is allowed or not by overriding this interface and hooking it up with the Resolver.

    ISkin

    Allows skinning (providing a common custom theme to) an entity.

    ISkinComponent

    Allows skinning (providing a common custom theme to) an entity. It's usually used for GUIs. For example, you might have a blue themed skin which gives all controls a common blue-ish look.

    ISlider

    A pre-set entity with all of the UI control components, plus a slider component, for selecting a numeric value within an allowed range.

    ISliderComponent

    A slider component allows selecting a numeric value between an allowed range, by dragging a handle across a line (usually).

    ISound

    An instance of a playing sound. You'll usually use an IAudioClip to play a sound, and control the playing sound from this interface.

    ISoundEmitter

    A sound emitter allows to bind an audio clip to an entity which is moving on a screen. Playing a sound from the emitter will pan it or set the volume (both can be turned off) to sound like it coming from the same location the entity is in. You can also assign the emitter to automatically play the sound on specific animation frames (so it's a perfect fit for footsteps, for example).

    ISoundModifier

    A sound modifier can be implemented in order to modify one or more properties of a sound on-the-fly. For example, the engine has an audio rule (IAudioRule) that adds a modifier to all non-speech sounds, which reduces the volume of those sounds when a speech sound plays.

    ISoundPlayer

    Allows to play a sound.

    ISoundProperties

    Allows to read or adjust the properties (volume, pitch, gain) of a sound/clip.

    ISpeechCache

    The speech cache is responsible for providing the correct audio clips to play for a specific text that's being said.

    ISpeechLine

    Represents a line of speech (text and sound).

    ISprite

    A sprite is an image which can be manipulated (scaled, rotated or translated in space).

    ISpriteProvider

    Interface of a single sprite source.

    ISpriteSheet

    Represents a sprite sheet: An image that contains multiple sprites in it, with some rules on how to read the sprites to perform an animation (usually).

    IStackLayoutComponent

    The stack layout component organizes its children in a one-dimensional line ("stack"), either horizontally, or vertically. The default is a simple vertical layout (top to bottom).

    IStringItem

    A textual item to be shown on GUI controls (like combobox, listbox or tree).

    ITextBox

    A pre-set entity with all of the UI control components, plus a text and textbox component, for allowing editing/inserting text.

    ITextBoxComponent

    This component allows us to create a textbox control (a UI control which allows keyboard input to print text on screen).

    ITextComponent

    A text component allows displaying text on the screen.

    ITextConfig

    Configuration which is used when rendering text.

    ITexture

    ITextureCache

    A single cache which stores all of the textures in a single place.

    ITextureConfig

    Various configurations for a texture.

    ITextureFactory

    A factory for creating textures.

    ITextureOffsetComponent

    Allows changing the starting offset from which the texture will be rendered.

    This can be useful, for example, when dealing with a tiled texture (i.e when the ITextureConfig has either wrapX or wrapY as Repeat or MirroredRepeat) when you want to animate the tile.

    ITransformMatrix

    ITranslate

    Allows changing the position of entities/sprites.

    ITranslateComponent

    Allows changing the position of an entity.

    ITreeNode<TItem>

    A node in a tree. A tree is a structure in which every node can have one parent (or no parent if it's the root) and several children (or no children, which will make it a leaf in the tree).

    ITreeNodeView

    Encapsulates all the UI controls needed to show a tree node in a ITreeViewComponent. Each node has a parent panel with two additional panels: a horizontal stack layout panel with an expand/collapse button and the text label, and a vertical panel for holding the children of the node.

    ITreeNodeViewProvider

    The tree node view provider is responsible for displaying a node in a ITreeViewComponent control.

    ITreeStringNode

    A string tree node, which will be shown in a ITreeViewComponent .

    ITreeTableLayout

    Represents a layout of columns that is shared between nodes in a tree view, using a ITreeTableRowLayoutComponent. By sharing the interaces different nodes on the list can align the columns together.

    ITreeTableRowLayoutComponent

    Represents a row in a tree view that aligns its columns with other rows, based on ITreeTableLayout .

    ITreeViewComponent

    A component for displaying a hierarchical collection of text labels. Each label is a node in the tree which can be collapsed/expanded to hide/show its children.

    IUIControl

    A UI control is an object which has events like mouse click, to help the user interact with it. A UI control also has a skin component, for customing its look. All other GUIs (buttons, checkboxes, textboxes, etc) are also a UI control.

    IUIEvents

    The UI events component adds the ability to subscribe to multiple events which are needed by GUIs \ (like mouse click, enter, leave).

    IUIFactory

    Factory for creating UI controls (buttons, textboxes, etc).

    IViewport

    It might be that not all of the room is shown on the screen at once (for example, a scrolling room). A viewport to the room instructs the engine on what parts of the room to show.

    IVisibleComponent

    Adds the ability to show/hide an entity.

    IWalkableArea

    These are the areas that indicate where the characters can walk.

    IWalkBehindArea

    These are areas that indicate that the background graphic of the room should be in front of the characters/objects. When rendering the engine will actually crop those up and render them on top.

    IWalkComponent

    Gives an entity the ability to walk around the room.

    IWindowInfo

    Information about the application window and the sub-window containing the game. Usually, the window hosting the game IS the application window, but for some scenarios (like for the editor which is hosting the game) the game can be configured to only use part of the window (a "sub window").

    IWorldPositionComponent

    Allows getting the world position for entities.

    IZoomArea

    These are areas that indicate the camera should automatically zoom when the player (or whatever other target was chosen for the camera) is in that area. This works along nicely with a vertical scaling area, to zoom the camera as the player moves farther away from the camera.

    Enums

    Alignment

    ApproachHotspots

    How to approach hotspots?

    ArrowDirection

    AutoFit

    Allows for a label and its text to fit together in various way.

    BoundingBoxType

    Bounding box type.

    BrushType

    CallbackPriority

    In a scenario where an event has multiple subscribers, the callback priority affects which subscriber gets the callback first. High priority subscribers will receive the event before normal priority (the default) subscribers, and low priority will receive the event last.

    Note: For 2 subscribers with the same callback priority, there's no guarantee regarding who gets the event first.

    ComboSuggest

    Which mode to apply when typing text in the combo box's textbox?

    CropFrom

    If the item was completely cropped, gets the direction the item was cropped from.

    CustomStringApplyWhen

    Indicates when to apply a custom display string instead of using ToString().

    Direction

    A general direction to which a character can face.

    FontStyle

    Font style (regular, bold, italic, underline or strikeout).

    HatchStyle

    Key

    The keyboard keys.

    LayoutDirection

    ListChangeType

    How did the list change?

    LoopingStyle

    Determines how the animation will run.

    MouseButton

    Mouse buttons.

    PortraitPositioning

    Configures how the portraits will be positioned.

    RestrictionListType

    Defines how a restriction list (IRestrictionList) is interpreted.

    ScaleDownFilters

    The filter to be used when scaling down the texture.

    ScaleUpFilters

    The filter to be used when scaling up the texture.

    ScalingAxis

    Scaling axis on which the scaling takes place.

    SelectionType

    SkipCutsceneTrigger

    Different options of how to trigger skipping a cutscene.

    SkipText

    How to skip the text?

    SliderDirection

    The direction in which the slider moves from minimum to maximum.

    SpriteSheetOrder

    Determines the order in which a sprite sheet is read.

    TextureWrap

    How a texture is wrapped to fill an image. ITextureOffsetComponent

    VsyncMode

    Vsync mode- how the FPS and screen refresh rate are synchronized.

    WindowBorder

    Window border- resizable, fixed or hidden.

    WindowState

    Window state (minimized, maximized, full screen, floating).

    WrapMode

    Delegates

    ClaimableCallback

    This allows you to subscribe to an event with the option of claiming the event, so that other subscribers in the list will not receive the event.

    myEvent.Subscribe(onEvent1);
    myEvent.Subscribe(onEvent2);
    
    void onEvent1(ref ClaimEventToken token)
    {
        token.Claimed = true; //We claimed the event, "onEvent2" will not get called.
    }

    ClaimableCallbackWithArgs<TEventArgs>

    This allows you to subscribe to an event with the option of claiming the event, so that other subscribers in the list will not receive the event.

    For an example- ClaimableCallback.

    Back to top Generated by DocFX