Ejemplo n.º 1
0
 // Token: 0x06000366 RID: 870 RVA: 0x0002086C File Offset: 0x0001EA6C
 public bool Validate(INGUIAtlas atlas)
 {
     if (atlas == null)
     {
         return(false);
     }
     if (!this.mIsValid)
     {
         if (string.IsNullOrEmpty(this.spriteName))
         {
             return(false);
         }
         this.mSprite = atlas.GetSprite(this.spriteName);
         Texture texture = atlas.texture;
         if (this.mSprite != null)
         {
             if (texture == null)
             {
                 this.mSprite = null;
             }
             else
             {
                 this.mUV      = new Rect((float)this.mSprite.x, (float)this.mSprite.y, (float)this.mSprite.width, (float)this.mSprite.height);
                 this.mUV      = NGUIMath.ConvertToTexCoords(this.mUV, texture.width, texture.height);
                 this.mOffsetX = this.mSprite.paddingLeft;
                 this.mOffsetY = this.mSprite.paddingTop;
                 this.mWidth   = this.mSprite.width;
                 this.mHeight  = this.mSprite.height;
                 this.mAdvance = this.mSprite.width + (this.mSprite.paddingLeft + this.mSprite.paddingRight);
                 this.mIsValid = true;
             }
         }
     }
     return(this.mSprite != null);
 }
Ejemplo n.º 2
0
    /// <summary>
    /// Duplicate the specified sprite.
    /// </summary>

    static public SpriteEntry DuplicateSprite(INGUIAtlas atlas, string spriteName)
    {
        if (atlas == null || atlas.texture == null)
        {
            return(null);
        }
        var sd = atlas.GetSprite(spriteName);

        if (sd == null)
        {
            return(null);
        }

        var         tex = NGUIEditorTools.ImportTexture(atlas.texture, true, true, false);
        SpriteEntry se  = ExtractSprite(sd, tex);

        if (se != null)
        {
            se.name = se.name + " (Copy)";

            var sprites = new List <UIAtlasMaker.SpriteEntry>();
            UIAtlasMaker.ExtractSprites(atlas, sprites);
            sprites.Add(se);
            UIAtlasMaker.UpdateAtlas(atlas, sprites);
            se.Release();
        }
        else
        {
            NGUIEditorTools.ImportTexture(atlas.texture, false, false, !atlas.premultipliedAlpha);
        }
        return(se);
    }
Ejemplo n.º 3
0
    // Token: 0x060008DE RID: 2270 RVA: 0x00046B40 File Offset: 0x00044D40
    public void AddSprite(object id, string spriteName, Vector2 pos, float width, float height, Color32 color, Vector2 pivot, float rot = 0f, UIBasicSprite.Type type = UIBasicSprite.Type.Simple, UIBasicSprite.Flip flip = UIBasicSprite.Flip.Nothing, bool enabled = true)
    {
        if (this.mAtlas == null)
        {
            Debug.LogError("Atlas must be assigned first");
            return;
        }
        UISpriteCollection.Sprite sprite = default(UISpriteCollection.Sprite);
        INGUIAtlas atlas = this.atlas;

        if (atlas != null)
        {
            sprite.sprite = atlas.GetSprite(spriteName);
        }
        if (sprite.sprite == null)
        {
            return;
        }
        sprite.pos        = pos;
        sprite.rot        = rot;
        sprite.width      = width;
        sprite.height     = height;
        sprite.color      = color;
        sprite.pivot      = pivot;
        sprite.type       = type;
        sprite.flip       = flip;
        sprite.enabled    = enabled;
        this.mSprites[id] = sprite;
        if (enabled && !this.mChanged)
        {
            this.MarkAsChanged();
        }
    }
Ejemplo n.º 4
0
    // Token: 0x060008A7 RID: 2215 RVA: 0x0004571C File Offset: 0x0004391C
    public UISpriteData GetSprite(string spriteName)
    {
        INGUIAtlas atlas = this.atlas;

        if (atlas == null)
        {
            return(null);
        }
        return(atlas.GetSprite(spriteName));
    }
Ejemplo n.º 5
0
    // Token: 0x060006F7 RID: 1783 RVA: 0x00039134 File Offset: 0x00037334
    public UISpriteData GetSprite(string name)
    {
        INGUIAtlas replacement = this.replacement;

        if (replacement != null)
        {
            return(replacement.GetSprite(name));
        }
        if (!string.IsNullOrEmpty(name))
        {
            if (this.mSprites.Count == 0)
            {
                this.Upgrade();
            }
            if (this.mSprites.Count == 0)
            {
                return(null);
            }
            if (this.mSpriteIndices.Count != this.mSprites.Count)
            {
                this.MarkSpriteListAsChanged();
            }
            int num;
            if (this.mSpriteIndices.TryGetValue(name, out num))
            {
                if (num > -1 && num < this.mSprites.Count)
                {
                    return(this.mSprites[num]);
                }
                this.MarkSpriteListAsChanged();
                if (!this.mSpriteIndices.TryGetValue(name, out num))
                {
                    return(null);
                }
                return(this.mSprites[num]);
            }
            else
            {
                int i     = 0;
                int count = this.mSprites.Count;
                while (i < count)
                {
                    UISpriteData uispriteData = this.mSprites[i];
                    if (!string.IsNullOrEmpty(uispriteData.name) && name == uispriteData.name)
                    {
                        this.MarkSpriteListAsChanged();
                        return(uispriteData);
                    }
                    i++;
                }
            }
        }
        return(null);
    }
Ejemplo n.º 6
0
    /// <summary>
    /// Convenience function -- mark all widgets using the sprite as changed.
    /// </summary>

    void MarkSpriteAsDirty()
    {
        var sprite = (mAtlas != null) ? mAtlas.GetSprite(NGUISettings.selectedSprite) : null;

        if (sprite == null)
        {
            return;
        }

        var sprites = NGUITools.FindActive <UISprite>();

        foreach (UISprite sp in sprites)
        {
            if (NGUITools.CheckIfRelated(sp.atlas, mAtlas) && sp.spriteName == sprite.name)
            {
                var atl = sp.atlas;
                sp.atlas = null;
                sp.atlas = atl;
                NGUITools.SetDirty(sp);
            }
        }

        var labels = NGUITools.FindActive <UILabel>();

        foreach (UILabel lbl in labels)
        {
            if (lbl.bitmapFont == null)
            {
                continue;
            }

            var font = lbl.bitmapFont;

            if (NGUITools.CheckIfRelated(font.atlas, mAtlas) && font.UsesSprite(sprite.name))
            {
                lbl.bitmapFont = null;
                lbl.bitmapFont = font;
                NGUITools.SetDirty(lbl);
            }
        }
    }
Ejemplo n.º 7
0
    /// <summary>
    /// Validate this symbol, given the specified atlas.
    /// </summary>

    public bool Validate(INGUIAtlas atlas)
    {
        if (atlas == null)
        {
            return(false);
        }

#if UNITY_EDITOR
        if (!Application.isPlaying || !mIsValid)
#else
        if (!mIsValid)
#endif
        {
            if (string.IsNullOrEmpty(spriteName))
            {
                return(false);
            }

            Texture tex = null;
            mSprite = atlas.GetSprite(spriteName);

            if (mSprite != null)
            {
                tex = atlas.texture;

                if (tex == null)
                {
                    mSprite = null;
                }
                else
                {
                    mUV      = new Rect(mSprite.x, mSprite.y, mSprite.width, mSprite.height);
                    mUV      = NGUIMath.ConvertToTexCoords(mUV, tex.width, tex.height);
                    mOffsetX = mSprite.paddingLeft;
                    mOffsetY = mSprite.paddingTop;
                    mWidth   = mSprite.width;
                    mHeight  = mSprite.height;
                    mAdvance = mSprite.width + (mSprite.paddingLeft + mSprite.paddingRight);
                    mIsValid = true;
                }
            }
        }
        return(mSprite != null);
    }
Ejemplo n.º 8
0
    /// <summary>
    /// Extract the specified sprite from the atlas.
    /// </summary>

    static public SpriteEntry ExtractSprite(INGUIAtlas atlas, string spriteName)
    {
        if (atlas == null || atlas.texture == null)
        {
            return(null);
        }
        var sd = atlas.GetSprite(spriteName);

        if (sd == null)
        {
            return(null);
        }

        var tex = NGUIEditorTools.ImportTexture(atlas.texture, true, true, false);
        var se  = ExtractSprite(sd, tex);

        NGUIEditorTools.ImportTexture(atlas.texture, false, false, !atlas.premultipliedAlpha);
        return(se);
    }
Ejemplo n.º 9
0
 // Token: 0x060008BB RID: 2235 RVA: 0x00045DA4 File Offset: 0x00043FA4
 public UISpriteData GetAtlasSprite()
 {
     if (!this.mSpriteSet)
     {
         this.mSprite = null;
     }
     if (this.mSprite == null)
     {
         INGUIAtlas inguiatlas = this.mAtlas as INGUIAtlas;
         if (inguiatlas != null)
         {
             if (!string.IsNullOrEmpty(this.mSpriteName))
             {
                 UISpriteData sprite = inguiatlas.GetSprite(this.mSpriteName);
                 if (sprite == null)
                 {
                     return(null);
                 }
                 this.SetAtlasSprite(sprite);
             }
             if (this.mSprite == null && inguiatlas.spriteList.Count > 0)
             {
                 UISpriteData uispriteData = inguiatlas.spriteList[0];
                 if (uispriteData == null)
                 {
                     return(null);
                 }
                 this.SetAtlasSprite(uispriteData);
                 if (this.mSprite == null)
                 {
                     Debug.LogError((inguiatlas as UnityEngine.Object).name + " seems to have a null sprite!");
                     return(null);
                 }
                 this.mSpriteName = this.mSprite.name;
             }
         }
     }
     return(this.mSprite);
 }
Ejemplo n.º 10
0
    // Token: 0x06000228 RID: 552 RVA: 0x00018418 File Offset: 0x00016618
    private void SetSprite(string sprite)
    {
        if (string.IsNullOrEmpty(sprite))
        {
            return;
        }
        INGUIAtlas atlas = this.target.atlas;

        if (atlas == null)
        {
            return;
        }
        INGUIAtlas inguiatlas = atlas;

        if (inguiatlas == null || inguiatlas.GetSprite(sprite) == null)
        {
            return;
        }
        this.target.spriteName = sprite;
        if (this.pixelSnap)
        {
            this.target.MakePixelPerfect();
        }
    }