• Manual
  • Scripting API
Show / Hide Table of Contents
  • BinaryCharm.SemanticColorPalette
    • SCP_ColorId
    • SCP_IPaletteCore
    • SCP_Palette
    • SCP_Palette.eType
    • SCP_PaletteProvider
  • BinaryCharm.SemanticColorPalette.Colorers
    • SCP_AColorer
    • SCP_AColorer<T>
    • SCP_AColorerBase
    • SCP_AGradientColorer
    • SCP_AGraphicColorer
    • SCP_AMaterialColorer
    • SCP_AMaterialColorer<T>
    • SCP_AMaterialColorerBase
    • SCP_IColorer
    • SCP_IColorer<T>
    • SCP_IGradientAccessor
    • SCP_MaterialColorDef
  • BinaryCharm.SemanticColorPalette.Importers
    • SCP_AcoPaletteData
    • SCP_AndroidXmlPaletteData
    • SCP_APaletteData
    • SCP_AsePaletteData
    • SCP_GimpPaletteData
    • SCP_IPaletteDataProvider
    • SCP_KritaPaletteData
    • SCP_SvgPaletteData
  • BinaryCharm.SemanticColorPalette.Utils
    • SCP_ColorUtils
    • SCP_ImportUtils
    • SCP_Utils

Class SCP_PaletteProvider

One of the core components of the system, acting as broker between palettes and colorers. Every colorer gets linked to a SCP_PaletteProvider, that handles a list of one or more SCP_Palette instances. Colorers monitor their provider for changes, and the provider themselves monitor their palettes. So, when a palette color changes, the change gets propagated to all the providers holding that palette, and then to all colorers linked to those providers.

For convenience, providers have an "active" palette that is the one that colorers use by default. Changing active palette also refreshes all the linked colorers.

Inheritance
Object
SCP_PaletteProvider
Namespace: BinaryCharm.SemanticColorPalette
Assembly: cs.temp.dll.dll
Syntax
public class SCP_PaletteProvider : MonoBehaviour

Fields

m_stateTracker

State tracking struct. Potentially needs to be accessed in custom providers inheriting from this class.

Declaration
protected MutableStateTracker m_stateTracker
Field Value
Type Description
MutableStateTracker

Methods

AddPalette(SCP_Palette)

Adds a palette to the set of palettes managed by the provider. If such set is not empty (that is, the PaletteProvider already handles one or more palettes), the new palette must be compatible with the previously added others, or an Exception is thrown and the palette doesn't get added.

Two palettes A and B are compatible when

  • A is a main palette and B is a variant of A
  • A and B are both variants of the same main palette
Declaration
public void AddPalette(SCP_Palette rPalette)
Parameters
Type Name Description
SCP_Palette rPalette

The Palette to be added.

GetActivePaletteIndex()

Fetches the active palette index.

Declaration
public int GetActivePaletteIndex()
Returns
Type Description
Int32

The active palette index.

GetNumPalettes()

Fetches the number of palettes currently handled by the provider.

Declaration
public int GetNumPalettes()
Returns
Type Description
Int32

The number of palettes currently handled.

GetPalette()

Fetches the currently active palette.

Declaration
public virtual SCP_Palette GetPalette()
Returns
Type Description
SCP_Palette

The currently active palette.

GetPaletteByIndex(Int32)

Fetches the palette specified by iPaletteIndex

Declaration
public SCP_Palette GetPaletteByIndex(int iPaletteIndex)
Parameters
Type Name Description
Int32 iPaletteIndex

The zero-based index of the palette to fetch.

Returns
Type Description
SCP_Palette

The requested palette, or null if an out of bounds iPaletteIndex is provided.

GetPaletteIndex(SCP_Palette)

Retrieves the current position of rPalette in the list of palettes handled by the provider. Note that it's an index and not an identifier, and it might change when removing other palettes.

Declaration
public int GetPaletteIndex(SCP_Palette rPalette)
Parameters
Type Name Description
SCP_Palette rPalette

The palette to look for.

Returns
Type Description
Int32

The index of rPalette in the list of palettes handled by the provider (throws an Exception if the passed palette is not in the list).

GetStateTracker()

Returns a reference to the state tracking struct.

Declaration
public ref MutableStateTracker GetStateTracker()
Returns
Type Description
MutableStateTracker

A reference to the state tracking struct.

Remarks

Should never be used in everyday application code.

OnDestroy()

Declaration
protected void OnDestroy()

OnDisable()

Declaration
protected void OnDisable()

OnEnable()

Declaration
protected void OnEnable()

OnValidate()

Declaration
protected void OnValidate()

RemPalette(SCP_Palette)

Removes rPalette from the list of handled palettes. If rPalette is not in such list, it throws an exception.

Declaration
public void RemPalette(SCP_Palette rPalette)
Parameters
Type Name Description
SCP_Palette rPalette

Reference to the palette to remove.

Remarks

Removing a palette from the list might invalidate the configuration of any colorers referring to this palette provider.

RemPaletteByIndex(Int32)

Removes the palette at index iPaletteIndex from the set of handled palettes. If iPaletteIndex is not valid (that is: not between 0 and GetNumPalettes() - 1), throws an exception.

Declaration
public void RemPaletteByIndex(int iPaletteIndex)
Parameters
Type Name Description
Int32 iPaletteIndex

Index of the palette to remove.

Remarks

Removing a palette from the list might invalidate the configuration of any colorers referring to this palette provider.

SetActivePaletteIndex(Int32)

Changes the active palette index. It is user resposability to pass a valid iPaletteIndex (between 0 and GetNumPalettes() - 1)

Declaration
public void SetActivePaletteIndex(int iPaletteIndex)
Parameters
Type Name Description
Int32 iPaletteIndex

The value to set as active palette index.

Update()

If any of the handled palette has been modified, or if the active palette selection has been changed, then also the provider is considered modified (and this will prompt the linked colorers to update).

Declaration
protected void Update()
In This Article
Back to top Binary Charm