![]() |
Gondwana Game Engine
Gondwana is a cross-platform 2.5D game and rendering engine written in C#/.NET 8. It provides fine-grained control over rendering, timing, and scene composition, with built-in support for parallax, z-ordering, pixel overhang, collision detection, and particle effects. Gondwana targets desktop, mobile, and web platforms using SkiaSharp for graphics and NAudio for sound.
|
Represents an abstract base class for drawable tiles in the Gondwana engine. Provides core functionality for rendering, animation, collision detection, and scene layer integration. More...
Public Member Functions | |
| virtual RectangleF | GetDrawLocationScreen (View view) |
| Converts the tile's world location to screen coordinates based on the specified view. | |
| virtual RectangleF | GetCollisionAreaScreen (View view) |
| Converts the tile's collision area from world coordinates to screen coordinates. | |
| virtual void | Draw (BackbufferBase backbuffer, RectangleF destRectScreen) |
| Renders the tile to the specified backbuffer at the given screen location. | |
| int | CompareTo (Tile? tile) |
| Compares this tile to another tile for sorting purposes. Fixed-position tiles are rendered first, followed by tiles sorted by Y-coordinate, Z-order, and X-coordinate. | |
| virtual void | Dispose () |
| Releases all resources used by the tile, including removing it from animation tracking, disposing its animator, and clearing collision references. | |
Protected Attributes | |
| bool | pauseAnimation |
| ICollider? | _collider |
Properties | |
| static List< Tile > | TilesAnimating = new() [get] |
| Gets the collection of all tiles that are currently animating in the scene. Used to track and update animated tiles during the render cycle. | |
| bool | IsPositionFixed [get] |
| Gets a value indicating whether the tile's position is fixed in screen space (e.g., UI elements) or moves with the world (e.g., game objects). | |
| Rectangle | DrawLocationWorld [get] |
| Gets the tile's draw location in world coordinates as a rectangle. This represents the area occupied by the tile in the game world. | |
| PointF | SceneLayerCoordinates [get] |
| Gets the tile's position within its scene layer using the layer's coordinate system. | |
| SceneLayer | SceneLayer [get] |
| Gets the scene layer that contains this tile. | |
| Guid | Id = Guid.NewGuid() [get] |
| Gets the unique identifier for this tile instance. | |
| string? | Nickname [get, set] |
| Gets or sets an optional friendly name for the tile, useful for debugging and identification. | |
| virtual bool | Visible [get, set] |
| Gets or sets a value indicating whether the tile is visible and should be rendered. Setting this property triggers a refresh of the tile's screen area. | |
| virtual int | ZOrder [get, set] |
| Gets or sets the Z-order (depth) of the tile for rendering priority. Higher values are drawn later (on top of lower values). Setting this property triggers a refresh of the tile's screen area. | |
| virtual Overhang | OverhangPixels [get] |
| Gets the overhang dimensions (in pixels) that extend beyond the tile's primary area. This is typically used for tiles with visual elements that exceed their logical boundaries. | |
| virtual Frame | CurrentFrame [get, set] |
| Gets or sets the current frame being displayed for this tile. Setting this property triggers a refresh of both the old and new tile areas to handle size changes. | |
| virtual Animator | TileAnimator [get] |
| Gets the animator responsible for managing frame transitions and animation sequences for this tile. | |
| virtual bool | PauseAnimation [get, set] |
| Gets or sets a value indicating whether the tile's animation is currently paused. | |
| virtual ? ICollider | Collider [get] |
| Gets the collider used for collision detection with this tile. Returns null if the tile has no collision detection. | |
| virtual Rectangle | CollisionArea [get] |
| Gets the effective collision area of the tile in world coordinates, incorporating any adjustments specified by AdjustCollisionArea. | |
| virtual bool | EnableFog [get, set] |
| Gets or sets a value indicating whether fog of war rendering is enabled for this tile. Setting this property triggers a refresh of the tile's screen area. | |
| virtual Point[] | OutlinePointsWorld [get] |
| Used to determine polygonal area when drawing grid lines or fog. Override this property in a derived class to define custom areas for these effects. | |
| virtual CollisionDetectionAdjustment | AdjustCollisionArea = CollisionDetectionAdjustment.None [get, set] |
| Gets or sets the collision area adjustment values that modify the tile's collision boundaries. Use this to fine-tune the collision detection area relative to the tile's visual bounds. | |
| bool | CollisionsEnabled [get, set] |
| Gets or sets a value indicating whether collision detection is enabled for this tile. When set to true, the tile's collider is registered with the scene layer's collision system. When set to false, the collider is unregistered and collisions will not be detected. | |
| TypedValueBag | ValueBag = new() [get] |
| Gets the value bag for storing arbitrary typed values associated with this tile. Useful for attaching custom game-specific data without subclassing. | |
Represents an abstract base class for drawable tiles in the Gondwana engine. Provides core functionality for rendering, animation, collision detection, and scene layer integration.
| int Gondwana.Drawing.Tile.CompareTo | ( | Tile? | tile | ) |
Compares this tile to another tile for sorting purposes. Fixed-position tiles are rendered first, followed by tiles sorted by Y-coordinate, Z-order, and X-coordinate.
| tile | The tile to compare with this instance. |
|
virtual |
Releases all resources used by the tile, including removing it from animation tracking, disposing its animator, and clearing collision references.
Reimplemented in Gondwana.Drawing.Sprites.Sprite.
|
virtual |
Renders the tile to the specified backbuffer at the given screen location.
| backbuffer | The backbuffer to render to. |
| destRectScreen | The destination rectangle in screen coordinates where the tile should be drawn. |
Implements Gondwana.Drawing.IDrawable.
|
virtual |
Converts the tile's collision area from world coordinates to screen coordinates.
| view | The view containing camera and viewport information for the transformation. |
|
virtual |
Converts the tile's world location to screen coordinates based on the specified view.
| view | The view containing camera and viewport information for the transformation. |
Implements Gondwana.Drawing.IDrawable.
|
protected |
|
protected |
|
getset |
Gets or sets the collision area adjustment values that modify the tile's collision boundaries. Use this to fine-tune the collision detection area relative to the tile's visual bounds.
|
get |
Gets the collider used for collision detection with this tile. Returns null if the tile has no collision detection.
|
get |
Gets the effective collision area of the tile in world coordinates, incorporating any adjustments specified by AdjustCollisionArea.
Implements Gondwana.Collisions.ICollisionEntity.
|
getset |
Gets or sets a value indicating whether collision detection is enabled for this tile. When set to true, the tile's collider is registered with the scene layer's collision system. When set to false, the collider is unregistered and collisions will not be detected.
|
getset |
Gets or sets the current frame being displayed for this tile. Setting this property triggers a refresh of both the old and new tile areas to handle size changes.
|
getabstract |
Gets the tile's draw location in world coordinates as a rectangle. This represents the area occupied by the tile in the game world.
|
getset |
Gets or sets a value indicating whether fog of war rendering is enabled for this tile. Setting this property triggers a refresh of the tile's screen area.
|
get |
Gets the unique identifier for this tile instance.
Implements Gondwana.Drawing.IDrawable.
|
getabstract |
Gets a value indicating whether the tile's position is fixed in screen space (e.g., UI elements) or moves with the world (e.g., game objects).
|
getset |
Gets or sets an optional friendly name for the tile, useful for debugging and identification.
Implements Gondwana.Drawing.IDrawable.
|
get |
Used to determine polygonal area when drawing grid lines or fog. Override this property in a derived class to define custom areas for these effects.
|
get |
Gets the overhang dimensions (in pixels) that extend beyond the tile's primary area. This is typically used for tiles with visual elements that exceed their logical boundaries.
|
getset |
Gets or sets a value indicating whether the tile's animation is currently paused.
|
getabstract |
Gets the scene layer that contains this tile.
|
getabstract |
Gets the tile's position within its scene layer using the layer's coordinate system.
|
get |
Gets the animator responsible for managing frame transitions and animation sequences for this tile.
|
staticget |
Gets the collection of all tiles that are currently animating in the scene. Used to track and update animated tiles during the render cycle.
|
get |
Gets the value bag for storing arbitrary typed values associated with this tile. Useful for attaching custom game-specific data without subclassing.
|
getset |
Gets or sets a value indicating whether the tile is visible and should be rendered. Setting this property triggers a refresh of the tile's screen area.
Implements Gondwana.Drawing.IDrawable.
|
getset |
Gets or sets the Z-order (depth) of the tile for rendering priority. Higher values are drawn later (on top of lower values). Setting this property triggers a refresh of the tile's screen area.
Implements Gondwana.Drawing.IDrawable.