Table of Contents

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

string

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

bool

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

string

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

Dictionary<string, object>

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; }

Property Value

string