Namespace PopcorningGuineaPig.Engine.Gameplay
Classes
AnimatedModelCache
Singleton cache managing shared AnimatedModelData instances with reference counting. Ensures each unique GLB file is loaded into GPU memory only once.
AnimatedModelData
Shared data for an animated GLB model (Flyweight intrinsic state). Loads the Raylib Model and all skeletal ModelAnimations once per unique file path. Instances share this data via AnimatedModelInstance structs.
DragDropManager
Manages drag and drop operations for DraggableModel instances. Handles mouse state tracking, drag detection, and 3D mouse projection.
DraggableModel
Component that makes a 3D model draggable with smooth animations. Provides lift, follow, and drop animations for drag and drop interactions.
GameTile
Represents a single tile in a grid-based game system. Flexible design supports board games, 2D adventure games, puzzles, and more.
GpuSkinning
Lighting knobs on the shared GPU-skinning shader. Defaults are unlit (white ambient, sun off) so games that never call this look exactly as they did.
Player
SteamActionEdgeBuffer
One-frame press edges for named Steam Input actions. BeginFrame() clears presses only; held state survives so a held button does not re-fire.
SteamInputGlyphs
Maps a Steam Input EInputActionOrigin name to a pad family and a
face slot. PlayStation Cross/Circle/Square/Triangle land on the same slots
as Xbox A/B/X/Y. Unknown devices return false so the caller keeps its fallback.
SteamManager
SteamPlayer
TMXLoader
Utility class for loading TMX (Tiled Map eXchange) files. Supports Base64 uncompressed and CSV tile data formats.
TileGrid
Manages a 2D grid of GameTiles for grid-based games. Provides efficient access, spatial queries, and occupancy management.
TileProperties
Properties for individual tiles within a tileset.
Tilemap
Represents a complete tilemap loaded from a TMX file. Contains multiple layers, tilesets, and provides rendering capabilities.
TilemapLayer
Represents a single layer within a tilemap. Contains tile data and layer-specific properties.
TilemapTileMetadata
Metadata for GameTiles that are part of a tilemap.
Tileset
Represents a tileset containing tiles from a texture atlas. Manages texture coordinates and tile properties.
Structs
AnimatedModelInstance
Lightweight per-entity state for an animated model (Flyweight extrinsic state). Playback lives here (~20 bytes); mesh/clips live on the shared AnimatedModelData.
Pose and draw are adjacent: Update(float) only advances the frame, Draw(Vector3, Vector3, Vector3, Color)
uploads bone matrices then draws. Never call Raylib.UpdateModelAnimation on a GPU-skinned
model — that writes posed vertices into the VBO, and the shader then skins them again
(collapsed/exploded mesh).
SteamInputGlyphs.Slot
Enums
TileType
Defines the type/category of a game tile. Extensible enum supporting multiple game genres.