//protected virtual void Start() {

    //}

    public DataColor GetBorderColor()
    {
        if (RuntimeBorderColor == null)
        {
            RuntimeBorderColor = DataColor.CreateInstance <DataColor>();
        }
        return(RuntimeBorderColor);
    }
    private DataColor AddEntry(TetrominoLogic tetrominoLogic)
    {
        GameObject newTetromino = (GameObject)Resources.Load(ManagerTetroGame.I.TetrominoPrefabsPath + "/" + tetrominoLogic.NameTetromino, typeof(GameObject));

        TetraminoListAll.Add(newTetromino.GetComponent <TetrominoLogic>());
        var color = DataColor.CreateInstance <DataColor>();

        color.RandomizeColor();
        TetraminoColors.Add(color);
        return(color);
    }
    //private void Update()
    //{
    //}

    internal void Initialize(TetrominoLogic logic)
    {
        Logic      = logic;
        _sprite    = ManagerVisuals.I.GetTetrominoSprite();
        _dataColor = ManagerVisuals.I.GetTetrominoColor(logic);

        if (_SpriteRenderers.Count == 0)
        {
            foreach (Transform square in transform)
            {
                _SpriteRenderers.Add(square.GetComponent <SpriteRenderer>());
            }
        }

        foreach (var spriteRenderer in _SpriteRenderers)
        {
            spriteRenderer.sprite = _sprite;
            spriteRenderer.color  = _dataColor.Color;
        }
    }
 public void OnAfterDeserialize()
 {
     RuntimeTetraminoListAll = TetraminoListAll;
     RuntimeTetraminoColors  = TetraminoColors;
     RuntimeBorderColor      = BorderColor;
 }