Exemple #1
0
    /// <summary>
    /// Disposes of all created AssetButtons and clears the list.
    /// </summary>
    public void Dispose()
    {
        for (int i = 0; i < assetButtons.Count; i++)
        {
            Object.Destroy(assetButtons[i].transform.parent.gameObject);
        }

        assetButtons.Clear();
        activeAssetButton = null;
    }
Exemple #2
0
    /// <summary>
    /// Enables a new asset button by making it interactable, and disabling the old one by making it non interactable.
    /// </summary>
    /// <param name="newAssetButton"> The new button to set as interactable. </param>
    public void EnableNewTokenButton(ITradableAssetButton newAssetButton)
    {
        if (activeAssetButton != null)
        {
            activeAssetButton.Button.interactable = true;
        }

        newAssetButton.Button.interactable = false;
        activeAssetButton = newAssetButton;

        OnActiveButtonChanged?.Invoke(activeAssetButton);
    }
Exemple #3
0
    /// <summary>
    /// Removes a TradableAsset's button from the list of buttons, and destroys the gameobject.
    /// </summary>
    /// <param name="assetToRemove"> The TradableAsset to remove. </param>
    private void RemoveButton(TradableAsset assetToRemove)
    {
        for (int i = 0; i < assetButtons.Count; i++)
        {
            ITradableAssetButton assetButton = assetButtons[i];

            if (assetButton.ButtonInfo == assetToRemove)
            {
                if (assetButton == activeAssetButton)
                {
                    assetButtons[0].ButtonLeftClicked();
                }

                assetButtons.Remove(assetButton);
                OnTradableAssetButtonRemoved?.Invoke(assetButton);
                return;
            }
        }
    }