예제 #1
0
    /// <summary>
    /// Set the selected tile since AssetManager with that name
    /// </summary>
    /// <param name="_name"></param>
    /// <param name="_layerDepth"></param>
    void SetSelectTileName(string _name, LayerDepth _layerDepth)
    {
        TileBase tileBase = null;

        switch (_layerDepth)
        {
        case LayerDepth.Tile:
            tileBase = AssetManager.Instance.GetTile(_name);
            break;

        case LayerDepth.Object:
            tileBase = AssetManager.Instance.GetObject(_name);
            break;
        }
        EditorManager.Instance.SetTileSelectedName(_name, _layerDepth);

        Sprite sprite = null;

        AssetManager.SetSpriteByType(tileBase, out sprite);

        if (sprite)
        {
            selectedTileViewer.sprite = sprite;
        }
        else
        {
            Debug.LogError("Selected " + name + " tile is null ");
        }
    }
예제 #2
0
        public static float GetLayerDepth(LayerDepth depth)
        {
            int   index  = orderedDepths.FindIndex(x => x == depth);
            float result = layerDepths[index];

            return(result);
        }
예제 #3
0
        public static float SetLayerDepth(Entity entity, LayerDepth depth)
        {
            int   index  = orderedDepths.FindIndex(x => x == depth);
            float result = layerDepths[index];

            entity.GetComponent <Transform>().layerDepth = result;
            return(result);
        }
예제 #4
0
    /// <summary>
    /// Init all button with assetbundle tile
    /// /// </summary>
    void InitScrollViewButton(LayerDepth _layerDepth)
    {
        TileBase[] tilesBase = null;
        bool       isFirst   = true;

        switch (_layerDepth)
        {
        case LayerDepth.Tile:
            tilesBase = AssetManager.Instance.GetAllTile();
            break;

        case LayerDepth.Object:
            tilesBase = AssetManager.Instance.GetAllObject();
            break;
        }

        if (tilesBase == null)
        {
            Debug.LogAssertion("InitScrollViewButton :: tilesBase == null");
            return;
        }

        foreach (TileBase tilebase in tilesBase)
        {
            // Set GameObject
            GameObject gButton  = GameObject.Instantiate(footerButtonPrefabs, SelectTileViewParent(_layerDepth));
            Button     uiButton = gButton.GetComponent <Button>();
            gButton.transform.name = SelectTileViewName(_layerDepth) + tilebase.name;
            gButton.GetComponentInChildren <Text>().text = tilebase.name;

            // Get TileType
            TileUtils.TileType tileType = TileUtils.ParseTileTypeName(tilebase.GetType().ToString());

            // Set button callback :: warning layerdepth define by tiletype it can be source of bug in the future if more tiletype will add
            uiButton.onClick.AddListener(delegate { SetSelectTileName(tilebase.name, _layerDepth); });

            Sprite sprite = null;
            AssetManager.SetSpriteByType(tilebase, out sprite);

            if (sprite)
            {
                gButton.GetComponentInChildren <Image>().sprite = sprite;

                if (isFirst)
                {
                    selectedTileViewer.sprite = sprite;
                    isFirst = false;
                }
            }
            else
            {
                Debug.LogError(tilebase.name + " sprite is null");
            }
        }
    }
예제 #5
0
    /// <summary>
    /// Return the generic name with LayerDepth condition
    /// </summary>
    /// <param name="_layerDepth"></param>
    /// <returns></returns>
    string SelectTileViewName(LayerDepth _layerDepth)
    {
        switch (_layerDepth)
        {
        case LayerDepth.Tile:
            return("TileButton_");

        case LayerDepth.Object:
            return("ObjectButton_");

        default:
            return("UnkonwLayer");
        }
    }
예제 #6
0
    /// <summary>
    /// Set the container of tile button with type condition
    /// </summary>
    /// <param name="_layerDepth"></param>
    /// <returns></returns>
    Transform SelectTileViewParent(LayerDepth _layerDepth)
    {
        switch (_layerDepth)
        {
        case LayerDepth.Tile:
            return(tileButtonScrollViewContent.transform);

        case LayerDepth.Object:
            return(objectScrollViewContent.transform);

        default:
            return(null);
        }
    }
예제 #7
0
        private void LayerButton_Click(object sender, EventArgs e)
        {
            if (_activeWorld != null)
            {
                Dictionary <ButtonState, Rectangle> sourceRectangles = (sender as ButtonWrapper).SourceRectangles;
                int paddingLeft    = 167;
                int maxPaddingLeft = 668;

                foreach (ButtonState buttonState in Enum.GetValues(typeof(ButtonState)))
                {
                    Rectangle rectangle = sourceRectangles[buttonState];
                    rectangle.Y = (rectangle.Y + paddingLeft) % maxPaddingLeft;
                    sourceRectangles[buttonState] = rectangle;
                }

                _activeLayerDepth             = (LayerDepth)((int)++_activeLayerDepth % Enum.GetValues(typeof(LayerDepth)).Length);
                _activeWorld.ActiveLayerDepth = _activeLayerDepth;
            }
        }
예제 #8
0
        /// <summary>
        /// Gets the value of the corresponding layer depth.
        /// </summary>
        /// <param name="Depth">The depth for which to retrieve a value.</param>
        /// <returns>The value of the specified depth.</returns>
        public static float GetLayerDepth(LayerDepth Depth)
        {
            switch (Depth)
            {
            case LayerDepth.Default:
                return(0.0f);

            case LayerDepth.ImageLayer:
                return(0.8f);

            case LayerDepth.ButtonLayer:
                return(0.9f);

            case LayerDepth.DialogLayer:
                return(0.10f);

            case LayerDepth.TextLayer:
                return(0.11f);

            default:
                return(0.0f);
            }
        }
예제 #9
0
 public static float ToFloat(this LayerDepth layerDepth)
 {
     return((int)layerDepth * 0.1F);
 }
예제 #10
0
 public void SetTileSelectedName(string _selectedTileName, LayerDepth _layerDepth)
 {
     m_selectedTileID    = _selectedTileName;
     m_currentLayerDepth = _layerDepth;
 }
예제 #11
0
 /// <summary>
 /// Gets the value of the corresponding layer depth.
 /// </summary>
 /// <param name="Depth">The depth for which to retrieve a value.</param>
 /// <returns>The value of the specified depth.</returns>
 public static float GetLayerDepth(LayerDepth Depth)
 {
     switch(Depth)
     {
         case LayerDepth.Default:
             return 0.0f;
         case LayerDepth.ImageLayer:
             return 0.8f;
         case LayerDepth.ButtonLayer:
             return 0.9f;
         case LayerDepth.DialogLayer:
             return 0.10f;
         case LayerDepth.TextLayer:
             return 0.11f;
         default:
             return 0.0f;
     }
 }
예제 #12
0
 public int CompareTo(object obj)
 {
     return(LayerDepth.CompareTo(((Entity)obj).LayerDepth));
 }