Class PlaceableVariant
- Namespace
- MoonBark.GridPlacement.Core.Data
- Assembly
- MoonBark.GridPlacement.Core.dll
Represents a visual variant of a placeable object.
Variants allow the same placeable to have multiple visual representations while sharing the same core gameplay logic and properties. This is useful for:
- Seasonal appearances (winter/summer versions)
- Upgrade tiers (level 1, 2, 3 visual states)
- CoreColor schemes or material variations
- Damage states (pristine, damaged, ruined)
Each variant can have its own scene file, display name, and custom properties while maintaining the same core placeable behavior.
public class PlaceableVariant
- Inheritance
-
PlaceableVariant
- Inherited Members
Properties
Id
Unique identifier for this variant within the placeable. Must be unique across all variants of the same placeable. Example: "winter", "level2", "damaged"
public string Id { get; set; }
Property Value
IsAvailable
Indicates whether this variant is currently available for use. Can be used for unlockable content, seasonal variants, or feature flags. When false, the variant won't appear in selection UIs.
public bool IsAvailable { get; set; }
Property Value
Name
Human-readable display name for this variant. Shown in UI elements like variant selection menus or tooltips. Example: "Winter Version", "Level 2", "Damaged State"
public string Name { get; set; }
Property Value
Properties
Custom properties specific to this variant. Allows for variant-specific data like:
- Material overrides
- Animation parameters
- Particle effect settings
- Sound effect variations
public Dictionary<string, object> Properties { get; set; }
Property Value
Scene
Path to the Godot scene file (.tscn) that contains the visual representation for this variant. The scene should contain the visual nodes (sprites, meshes, etc.) but not the gameplay logic which is handled by the core placeable.
public string Scene { get; set; }