void Awake()
    {
        Guard.CheckIsNull(SelectedModifierLabelGO, "SelectedModifierLabelGO", gameObject);
        Guard.CheckIsNull(SelectedModifierSpriteGO, "SelectedModifierSpriteGO", gameObject);
        Guard.CheckIsNull(SelectedModifierLabel, "SelectedModifierLabel", gameObject);
        Guard.CheckIsNull(SelectedModifierSprite, "SelectedModifierSprite", gameObject);

        EditorCanvasUI.Instance.SelectedTileModifierContainer = this;

        ResetLists();

        _editorTileAttributeSelector  = new EditorTileAttributeSelector(this);
        _editorTileBackgroundSelector = new EditorTileBackgroundSelector(this);
        _editorTileTransformationTriggererSelector = new EditorTileTransformationTriggererSelector(this);

        EditorTileAttributes.Add(new EditorPlayerSpawnpointOverworldTileAttribute());
        EditorTileAttributes.Add(new EditorOverworldMazeLevelEntryTileAttribute());

        EditorManager.SelectedTileAttributeModifierIndex = 0;

        EditorTileBackgrounds.Add(new EditorOverworldTileBaseGround());
        EditorTileBackgrounds.Add(new EditorOverworldTileBaseWater());
        EditorTileBackgrounds.Add(new EditorOverworldTilePath());
        EditorManager.SelectedTileBackgroundModifierIndex = 0;

        EditorManager.SelectedTileTransformationTriggererIndex = 0;

        UsedTileModifierCategories.Add(EditorTileModifierCategory.Background);
        UsedTileModifierCategories.Add(EditorTileModifierCategory.Attribute);

        SetCurrentlyAvailableModifierCategories(new EditorMazeTileGroundModifierCategory());
    }
    void Awake()
    {
        Guard.CheckIsNull(SelectedModifierLabelGO, "SelectedModifierLabelGO", gameObject);
        Guard.CheckIsNull(SelectedModifierSpriteGO, "SelectedModifierSpriteGO", gameObject);
        Guard.CheckIsNull(SelectedModifierLabel, "SelectedModifierLabel", gameObject);
        Guard.CheckIsNull(SelectedModifierSprite, "SelectedModifierSprite", gameObject);

        EditorCanvasUI.Instance.SelectedTileModifierContainer = this;

        ResetLists();

        _editorTileAttributeSelector  = new EditorTileAttributeSelector(this);
        _editorTileBackgroundSelector = new EditorTileBackgroundSelector(this);
        _editorTileTransformationTriggererSelector = new EditorTileTransformationTriggererSelector(this);
        _editorTileAreaModifierSelector            = new EditorTileAreaModifierSelector(this);

        EditorTileAttributes.Add(new EditorObstacleTileAttribute());
        EditorTileAttributes.Add(new EditorPlayerExitTileAttribute());
        EditorTileAttributes.Add(new EditorPlayerSpawnpointMazeTileAttribute());
        EditorTileAttributes.Add(new EditorPlayerOnlyTileAttribute());
        EditorTileAttributes.Add(new EditorEnemySpawnpointTileAttribute());
        EditorTileAttributes.Add(new EditorBridgeMazeTileAttribute());
        EditorTileAttributes.Add(new EditorMusicInstrumentCaseTileAttribute());

        EditorManager.SelectedTileAttributeModifierIndex = 0;

        EditorTileBackgrounds.Add(new EditorMazeTileBaseGround());
        EditorTileBackgrounds.Add(new EditorMazeTileBaseWater());
        EditorTileBackgrounds.Add(new EditorMazeTilePath());
        EditorManager.SelectedTileBackgroundModifierIndex = 0;

        EditorTileTransformationTriggerers.Add(new EditorMazeTileBeautificationTriggerer());

        EditorManager.SelectedTileTransformationTriggererIndex = 0;

        EditorTileAreaModifiers.Add(new EditorMazeTileTileAreaModifier());

        EditorManager.SelectedTileAreaModifierIndex = 0;


        UsedTileModifierCategories.Add(EditorTileModifierCategory.Background);
        UsedTileModifierCategories.Add(EditorTileModifierCategory.Attribute);
        UsedTileModifierCategories.Add(EditorTileModifierCategory.TransformationTriggerer);
        UsedTileModifierCategories.Add(EditorTileModifierCategory.Area);

        SetCurrentlyAvailableModifierCategories(new EditorMazeTileGroundModifierCategory());
    }