Class TerrainPalette
- Namespace
- GridPlacement.GDScript
- Assembly
- MoonBark.GridPlacement.GDScript.dll
Filters which terrains from a TileSet are exposed for painting.\n\nA lean whitelist: holds TilePlacementEntry resources that combine terrain names and optional icon into a single data structure. The TileSet remains the single source of truth for terrain IDs, colors, peering, and existence. Names are resolved against a TileMapLayer's TileSet at paint-time.\n\nUsage: var palette := TerrainPalette.new() palette.display_name = "Dungeon Pack" palette.entries = [ TilePlacementEntry.new(terrain_name="dungeon_floor", icon=preload("res://art/icon.png")), TilePlacementEntry.new(terrain_name="stone_wall") ]
class TerrainPalette extends Resource
Properties
display_name
Display name shown in the palette selector (e.g. "Dungeon Pack").
@export var display_name: StringName
icon
Optional icon for the palette folder in a multi-palette UI.
@export var icon: Texture2D
placement_rules
List of rules to validate for all terrains in this palette.
@export var placement_rules: Array[TilePaintRule] = []
ignore_base_rules
If true, base rules from PlacementSettings are ignored for this palette.
@export var ignore_base_rules: bool = false
entries
Terrain entries to expose for painting. Each entry carries both a terrain name and optional icon. Each name must match [method TileSet.get_terrain_name] on the target TileSet.
@export var entries: Array[TilePlacementEntry] = []
issues
var issues: Array[String] = []
result
var result: Array[TilePlacementEntry] = []
Methods
get_editor_issues
func get_editor_issues() -> Array[String]:
Returns
get_entries
func get_entries() -> Array[TilePlacementEntry]: