Inheritance: MonoBehaviour, tk2dRuntime.ISpriteCollectionForceBuild
	void DoDemoTexturePacker(tk2dSpriteCollectionSize spriteCollectionSize) {
		if (GUILayout.Button("Import")) {
			DestroyData();

			// Create atlas
			spriteCollectionInstance = tk2dSpriteCollectionData.CreateFromTexturePacker(spriteCollectionSize, texturePackerExportFile.text, texturePackerTexture );

			GameObject go = new GameObject("sprite");
			go.transform.localPosition = new Vector3(-1, 0, 0);
			spriteInstance = go.AddComponent<tk2dSprite>();
			spriteInstance.SetSprite(spriteCollectionInstance, "sun");

			go = new GameObject("sprite2");
			go.transform.parent = spriteInstance.transform;
			go.transform.localPosition = new Vector3(2, 0, 0);
			tk2dSprite sprite = go.AddComponent<tk2dSprite>();
			sprite.SetSprite(spriteCollectionInstance, "2dtoolkit_logo");

			go = new GameObject("sprite3");
			go.transform.parent = spriteInstance.transform;
			go.transform.localPosition = new Vector3(1, 1, 0);
			sprite = go.AddComponent<tk2dSprite>();
			sprite.SetSprite(spriteCollectionInstance, "button_up");

			go = new GameObject("sprite4");
			go.transform.parent = spriteInstance.transform;
			go.transform.localPosition = new Vector3(1, -1, 0);
			sprite = go.AddComponent<tk2dSprite>();
			sprite.SetSprite(spriteCollectionInstance, "Rock");
		}
	}
 private void DoDemoRuntimeSpriteCollection(tk2dSpriteCollectionSize spriteCollectionSize)
 {
     if (GUILayout.Button("Use Full Texture", new GUILayoutOption[0]))
     {
         this.DestroyData();
         Rect region = new Rect(0f, 0f, (float) this.runtimeTexture.width, (float) this.runtimeTexture.height);
         Vector2 anchor = new Vector2(region.width / 2f, region.height / 2f);
         this.spriteInstance = tk2dSprite.CreateFromTexture(this.runtimeTexture, spriteCollectionSize, region, anchor, string.Empty).GetComponent<tk2dSprite>();
         this.spriteCollectionInstance = this.spriteInstance.Collection;
     }
     if (GUILayout.Button("Extract Region)", new GUILayoutOption[0]))
     {
         this.DestroyData();
         Rect rect2 = new Rect(79f, 243f, 215f, 200f);
         Vector2 vector2 = new Vector2(rect2.width / 2f, rect2.height / 2f);
         this.spriteInstance = tk2dSprite.CreateFromTexture(this.runtimeTexture, spriteCollectionSize, rect2, vector2, string.Empty).GetComponent<tk2dSprite>();
         this.spriteCollectionInstance = this.spriteInstance.Collection;
     }
     if (GUILayout.Button("Extract multiple Sprites", new GUILayoutOption[0]))
     {
         this.DestroyData();
         string[] names = new string[] { "Extracted region", "Another region", "Full sprite" };
         Rect[] regions = new Rect[] { new Rect(79f, 243f, 215f, 200f), new Rect(256f, 0f, 64f, 64f), new Rect(0f, 0f, (float) this.runtimeTexture.width, (float) this.runtimeTexture.height) };
         Vector2[] anchors = new Vector2[] { new Vector2(regions[0].width / 2f, regions[0].height / 2f), new Vector2(0f, regions[1].height), new Vector2(0f, regions[1].height) };
         this.spriteCollectionInstance = tk2dSpriteCollectionData.CreateFromTexture(this.runtimeTexture, spriteCollectionSize, names, regions, anchors);
         GameObject obj4 = new GameObject("sprite");
         obj4.transform.localPosition = new Vector3(-1f, 0f, 0f);
         this.spriteInstance = obj4.AddComponent<tk2dSprite>();
         this.spriteInstance.SetSprite(this.spriteCollectionInstance, 0);
         obj4 = new GameObject("sprite2");
         obj4.transform.parent = this.spriteInstance.transform;
         obj4.transform.localPosition = new Vector3(2f, 0f, 0f);
         obj4.AddComponent<tk2dSprite>().SetSprite(this.spriteCollectionInstance, "Another region");
     }
 }
    public void Create( tk2dSpriteCollectionSize spriteCollectionSize, Texture texture, tk2dBaseSprite.Anchor anchor )
    {
        DestroyInternal();
        if (texture != null) {
            // Copy values
            this.spriteCollectionSize.CopyFrom( spriteCollectionSize );
            this.texture = texture;
            this.anchor = anchor;

            Vector2 anchorPos = tk2dSpriteGeomGen.GetAnchorOffset( anchor, texture.width, texture.height );
            spriteCollection = tk2dRuntime.SpriteCollectionGenerator.CreateFromTexture(
                gameObject,
                texture,
                spriteCollectionSize,
                new Vector2(texture.width, texture.height),
                new string[] { "unnamed" } ,
                new Rect[] { new Rect(0, 0, texture.width, texture.height) },
                null,
                new Vector2[] { anchorPos },
                new bool[] { false } );

            // don't want to save or see this
            spriteCollection.hideFlags = HideFlags.HideInInspector;

            string objName = "SpriteFromTexture " + texture.name;
            spriteCollection.spriteCollectionName = objName;
            spriteCollection.spriteDefinitions[0].material.name = objName;
            spriteCollection.spriteDefinitions[0].material.hideFlags = HideFlags.DontSave | HideFlags.HideInInspector;

            Sprite.SetSprite( spriteCollection, 0 );
        }
    }
 public void Create(tk2dSpriteCollectionSize spriteCollectionSize, Texture texture, tk2dBaseSprite.Anchor anchor)
 {
     this.DestroyInternal();
     if (texture != null)
     {
         this.spriteCollectionSize.CopyFrom(spriteCollectionSize);
         this.texture = texture;
         this.anchor = anchor;
         GameObject parentObject = new GameObject("tk2dSpriteFromTexture - " + texture.name);
         parentObject.transform.localPosition = Vector3.zero;
         parentObject.transform.localRotation = Quaternion.identity;
         parentObject.transform.localScale = Vector3.one;
         parentObject.hideFlags = HideFlags.DontSave;
         Vector2 vector = tk2dSpriteGeomGen.GetAnchorOffset(anchor, (float) texture.width, (float) texture.height);
         string[] names = new string[] { "unnamed" };
         Rect[] regions = new Rect[] { new Rect(0f, 0f, (float) texture.width, (float) texture.height) };
         Vector2[] anchors = new Vector2[] { vector };
         this.spriteCollection = SpriteCollectionGenerator.CreateFromTexture(parentObject, texture, spriteCollectionSize, new Vector2((float) texture.width, (float) texture.height), names, regions, null, anchors, new bool[1]);
         string str = "SpriteFromTexture " + texture.name;
         this.spriteCollection.spriteCollectionName = str;
         this.spriteCollection.spriteDefinitions[0].material.name = str;
         this.spriteCollection.spriteDefinitions[0].material.hideFlags = HideFlags.DontSave | HideFlags.HideInInspector;
         this.Sprite.SetSprite(this.spriteCollection, 0);
     }
 }
	public void Create( tk2dSpriteCollectionSize spriteCollectionSize, Texture texture, tk2dBaseSprite.Anchor anchor ) {
		DestroyInternal();
		if (texture != null) {
			// Copy values
			this.spriteCollectionSize.CopyFrom( spriteCollectionSize );
			this.texture = texture;
			this.anchor = anchor;

			GameObject go = new GameObject("tk2dSpriteFromTexture - " + texture.name);
			go.transform.localPosition = Vector3.zero;
			go.transform.localRotation = Quaternion.identity;
			go.transform.localScale = Vector3.one;
			go.hideFlags = HideFlags.DontSave;
			
			Vector2 anchorPos = tk2dSpriteGeomGen.GetAnchorOffset( anchor, texture.width, texture.height );
			spriteCollection = tk2dRuntime.SpriteCollectionGenerator.CreateFromTexture(
				go, 
				texture, 
				spriteCollectionSize,
				new Vector2(texture.width, texture.height),
				new string[] { "unnamed" } ,
				new Rect[] { new Rect(0, 0, texture.width, texture.height) },
				null,
				new Vector2[] { anchorPos },
				new bool[] { false } );

			string objName = "SpriteFromTexture " + texture.name;
			spriteCollection.spriteCollectionName = objName;
			spriteCollection.spriteDefinitions[0].material.name = objName;
			spriteCollection.spriteDefinitions[0].material.hideFlags = HideFlags.DontSave | HideFlags.HideInInspector;

			Sprite.SetSprite( spriteCollection, 0 );
		}
	}
	void HandleSpriteChanged(tk2dBaseSprite spr) {
		tk2dSpriteDefinition def = spr.CurrentSprite;

		int maxAttachPoints = Mathf.Max( def.attachPoints.Length, attachPoints.Count );
		if (maxAttachPoints > attachPointUpdated.Length) {
			// resize to accomodate. no more bounds tests required below
			attachPointUpdated = new bool[maxAttachPoints];
		}

		foreach (tk2dSpriteDefinition.AttachPoint ap in def.attachPoints) {
			bool found = false;
			int currAttachPointId = 0;
			for (int i = 0; i < attachPoints.Count; ++i) {
				Transform inst = attachPoints[i];
				// A dictionary would be ideal here, but could end up in an indeterminate state due to
				// user deleting things at runtime. Hopefully the user won't have that many attach points
				// that a linear search becomes an issue
				if (inst != null && GetInstanceName(inst) == ap.name) {
					attachPointUpdated[currAttachPointId] = true;
					UpdateAttachPointTransform( ap, inst );
					found = true;
				}
				currAttachPointId++;
			}
			if (!found) {
				GameObject go = new GameObject(ap.name);
				Transform t = go.transform;
				t.parent = transform;
				UpdateAttachPointTransform( ap, t );
				attachPointUpdated[attachPoints.Count] = true;
				attachPoints.Add(t);
			}
		}

		if (deactivateUnusedAttachPoints) {
			for (int i = 0; i < attachPoints.Count; ++i) {
				if (attachPoints[i] != null) {
					GameObject go = attachPoints[i].gameObject;
#if UNITY_3_5
					if (attachPointUpdated[i] && !go.active) {
						go.SetActiveRecursively(true);
					}
					else if (!attachPointUpdated[i] && go.active) {
						go.SetActiveRecursively(false);
					}
#else
					if (attachPointUpdated[i] && !go.activeSelf) {
						go.SetActive(true);
					}
					else if (!attachPointUpdated[i] && go.activeSelf) {
						go.SetActive(false);
					}

#endif
				}
				attachPointUpdated[i] = false; // always reset to false to avoid a second pass update next time
			}
		}
	}
	void Awake() {
		if (sprite == null) {
			sprite = GetComponent<tk2dBaseSprite>();
			if (sprite != null) {
				HandleSpriteChanged( sprite );
			}
		}
	}
 public void SetFrame(int id)
 {
     if (sprite == null) {
         sprite = this.GetComponent<tk2dBaseSprite>();
     }
     spriteName = sprite.GetCurrentSpriteDef().name;
     spriteName = spriteName.Substring(0,spriteName.Length-1);
     sprite.SetSprite(sprite.GetSpriteIdByName(spriteName + id.ToString()));
 }
    // Use this for initialization
    void Start()
    {
        sprite = GetComponent<tk2dBaseSprite>();

        if (sprite != null)
        {
            sprite.color = color;
        }
    }
	void DoDemoRuntimeSpriteCollection(tk2dSpriteCollectionSize spriteCollectionSize) {
		if (GUILayout.Button("Use Full Texture")) {
			DestroyData();

			// Create a sprite, using the entire texture as the sprite
			Rect region = new Rect(0, 0, runtimeTexture.width, runtimeTexture.height);
			Vector2 anchor = new Vector2(region.width / 2, region.height / 2);
			GameObject go = tk2dSprite.CreateFromTexture(runtimeTexture, spriteCollectionSize, region, anchor);
			spriteInstance = go.GetComponent<tk2dSprite>();
			spriteCollectionInstance = spriteInstance.Collection;
		}

		if (GUILayout.Button("Extract Region)")) {
			DestroyData();

			// Create a sprite, using a region of the texture as the sprite
			Rect region = new Rect(79, 243, 215, 200);
			Vector2 anchor = new Vector2(region.width / 2, region.height / 2);
			GameObject go = tk2dSprite.CreateFromTexture(runtimeTexture, spriteCollectionSize, region, anchor);
			spriteInstance = go.GetComponent<tk2dSprite>();
			spriteCollectionInstance = spriteInstance.Collection;
		}

		if (GUILayout.Button("Extract multiple Sprites")) {
			DestroyData();

			string[] names = new string[] {
				"Extracted region",
				"Another region",
				"Full sprite",
			};
			Rect[] regions = new Rect[] {
				new Rect(79, 243, 215, 200), 
				new Rect(256, 0, 64, 64),
				new Rect(0, 0, runtimeTexture.width, runtimeTexture.height)
			};
			Vector2[] anchors = new Vector2[] {
				new Vector2(regions[0].width / 2, regions[0].height / 2),
				new Vector2(0, regions[1].height),
				new Vector2(0, regions[1].height)
			};

			// Create a sprite collection with multiple sprites, using regions of the texture
			spriteCollectionInstance = tk2dSpriteCollectionData.CreateFromTexture(runtimeTexture, spriteCollectionSize, names, regions, anchors);
			GameObject go = new GameObject("sprite");
			go.transform.localPosition = new Vector3(-1, 0, 0);
			spriteInstance = go.AddComponent<tk2dSprite>();
			spriteInstance.SetSprite(spriteCollectionInstance, 0);

			go = new GameObject("sprite2");
			go.transform.parent = spriteInstance.transform;
			go.transform.localPosition = new Vector3(2, 0, 0);
			tk2dSprite sprite = go.AddComponent<tk2dSprite>();
			sprite.SetSprite(spriteCollectionInstance, "Another region");
		}		
	}
        private void _getSprite()
        {
            GameObject go = Fsm.GetOwnerDefaultTarget(gameObject);
            if (go == null)
            {
                return;
            }

            _sprite =  go.GetComponent<tk2dBaseSprite>();
        }
Example #12
0
    protected override void Awake()
    {
        base.Awake ();

        if(mDefaultRadius == 0) {
            mDefaultRadius = entMove.radius;
        }

        mSpr = GetComponentInChildren<tk2dBaseSprite>();
    }
Example #13
0
    private void Recycle(tk2dBaseSprite o)
    {
        var trans = o.transform;
        var size = o.GetBounds().size;
        var position = nextPosition;
        _batch.Enqueue(o);

        trans.localPosition = position;
        nextPosition.x += size.x;
    }
 private void Awake()
 {
     if (this.sprite == null)
     {
         this.sprite = base.GetComponent<tk2dBaseSprite>();
         if (this.sprite != null)
         {
             this.HandleSpriteChanged(this.sprite);
         }
     }
 }
Example #15
0
        private void _getSprite()
        {
            GameObject go = Fsm.GetOwnerDefaultTarget(gameObject);

            if (go == null)
            {
                return;
            }

            _sprite = go.GetComponent <tk2dBaseSprite>();
        }
Example #16
0
    // Callback and delegate
    void SpriteChangedCallbackImpl(tk2dSpriteCollectionData spriteCollection, int spriteId, object data)
    {
        tk2dBaseSprite s = target as tk2dBaseSprite;

        if (s != null)
        {
            s.SwitchCollectionAndSprite(spriteCollection, spriteId);
            s.EditMode__CreateCollider();
            EditorUtility.SetDirty(target);
        }
    }
    public override void OnInspectorGUI()
    {
        tk2dBaseSprite sprite = (tk2dBaseSprite)target;

        if (generatorCache == null)
        {
            generatorCache = new tk2dSpriteGeneratorCache();
        }

        DrawSpriteEditorGUI(sprite);
    }
Example #18
0
 void OnSpriteChanged(tk2dBaseSprite spr)
 {
     for (int i = 0, max = mRenderers.Length; i < max; i++)
     {
         if (spr.renderer == mRenderers[i])
         {
             mRenderers[i].sharedMaterial = mBlinkMats[i];
             break;
         }
     }
 }
Example #19
0
        public void Uninitialize()
        {
            this.m_controller.BulletScript.scriptTypeName = this.m_cachedAttack;
            tk2dBaseSprite tk2dBaseSprite = base.GetComponent <tk2dBaseSprite>();

            tk2dBaseSprite.usesOverrideMaterial = false;
            this.m_controller.MinSpeed         /= 1.5f;
            this.m_controller.MaxSpeed         /= 1.5f;
            SetParticlesPerSecond(GetParticlesPerSecond() / 2);
            Destroy(this);
        }
Example #20
0
 void Awake()
 {
     if (sprite == null)
     {
         sprite = GetComponent <tk2dBaseSprite>();
         if (sprite != null)
         {
             HandleSpriteChanged(sprite);
         }
     }
 }
    public void Shoot()
    {
        Vector3    pt   = projPt.position; pt.z = 0.0f;
        Projectile proj = Projectile.Create(projGroup, projType, pt, projPt.up, mTarget);

        if (proj)
        {
            tk2dBaseSprite spr = proj.GetComponentInChildren <tk2dBaseSprite>();
            spr.FlipY = mSprites[0].FlipX;
        }
    }
        public static void BaseDump(Action <tk2dBaseSprite> orig, tk2dBaseSprite self)
        {
            orig(self);
            if (dumpedCollections.Contains(self.Collection))
            {
                return;
            }

            DumpSpriteCollection(self.Collection);
            dumpedCollections.Add(self.Collection);
        }
Example #23
0
    static public void RecalculateSizeSprite(tk2dBaseSprite sprite, SizeFactor factorType, Fit fitType, RoundFloatEnum roundPreference)
    {
        if (sprite == null)
        {
            return;
        }

        sprite.scale = RecalculateByFactor(sprite.scale, factorType);
        sprite.scale = RecalculateByFit(sprite.scale, fitType, true);
        sprite.scale = RoundVector3(sprite.scale, roundPreference);
    }
    public static void FillBatchedSprite(tk2dBatchedSprite bs, GameObject go)
    {
        tk2dSprite        srcSprite        = go.transform.GetComponent <tk2dSprite>();
        tk2dTiledSprite   srcTiledSprite   = go.transform.GetComponent <tk2dTiledSprite>();
        tk2dSlicedSprite  srcSlicedSprite  = go.transform.GetComponent <tk2dSlicedSprite>();
        tk2dClippedSprite srcClippedSprite = go.transform.GetComponent <tk2dClippedSprite>();

        tk2dBaseSprite baseSprite = go.GetComponent <tk2dBaseSprite>();

        bs.spriteId         = baseSprite.spriteId;
        bs.spriteCollection = baseSprite.Collection;
        bs.baseScale        = baseSprite.scale;
        bs.color            = baseSprite.color;
        bs.renderLayer      = baseSprite.SortingOrder;
        if (baseSprite.boxCollider != null)
        {
            bs.BoxColliderOffsetZ = baseSprite.boxCollider.center.z;
            bs.BoxColliderExtentZ = baseSprite.boxCollider.size.z * 0.5f;
        }
        else
        {
            bs.BoxColliderOffsetZ = 0.0f;
            bs.BoxColliderExtentZ = 1.0f;
        }

        if (srcSprite)
        {
            bs.type = tk2dBatchedSprite.Type.Sprite;
        }
        else if (srcTiledSprite)
        {
            bs.type       = tk2dBatchedSprite.Type.TiledSprite;
            bs.Dimensions = srcTiledSprite.dimensions;
            bs.anchor     = srcTiledSprite.anchor;
            bs.SetFlag(tk2dBatchedSprite.Flags.Sprite_CreateBoxCollider, srcTiledSprite.CreateBoxCollider);
        }
        else if (srcSlicedSprite)
        {
            bs.type       = tk2dBatchedSprite.Type.SlicedSprite;
            bs.Dimensions = srcSlicedSprite.dimensions;
            bs.anchor     = srcSlicedSprite.anchor;
            bs.SetFlag(tk2dBatchedSprite.Flags.Sprite_CreateBoxCollider, srcSlicedSprite.CreateBoxCollider);
            bs.SetFlag(tk2dBatchedSprite.Flags.SlicedSprite_BorderOnly, srcSlicedSprite.BorderOnly);
            bs.SlicedSpriteBorderBottomLeft = new Vector2(srcSlicedSprite.borderLeft, srcSlicedSprite.borderBottom);
            bs.SlicedSpriteBorderTopRight   = new Vector2(srcSlicedSprite.borderRight, srcSlicedSprite.borderTop);
        }
        else if (srcClippedSprite)
        {
            bs.type = tk2dBatchedSprite.Type.ClippedSprite;
            bs.ClippedSpriteRegionBottomLeft = srcClippedSprite.clipBottomLeft;
            bs.ClippedSpriteRegionTopRight   = srcClippedSprite.clipTopRight;
            bs.SetFlag(tk2dBatchedSprite.Flags.Sprite_CreateBoxCollider, srcClippedSprite.CreateBoxCollider);
        }
    }
Example #25
0
 private void HandleRadialIndicator(float Radius, tk2dBaseSprite Psprite)
 {
     Psprite = Owner.sprite;
     if (!this.m_indicator)
     {
         Vector3 position = Psprite.WorldCenter.ToVector3ZisY(0f);
         this.m_indicator = ((GameObject)UnityEngine.Object.Instantiate(ResourceCache.Acquire("Global VFX/HeatIndicator"), position, Quaternion.identity, sprite.transform)).GetComponent <HeatIndicatorController>();
         this.m_indicator.CurrentRadius = 6.5f;
         this.m_indicator.CurrentColor  = new Color(56 / 100, 59 / 100, 64 / 100);
     }
 }
    void Awake()
    {
        mSpriteBatcher = GetComponent<tk2dStaticSpriteBatcher>();
        mSprite = GetComponent<tk2dBaseSprite>();

        mSpriteAnim = mSprite != null ? mSprite as tk2dAnimatedSprite : null;

        if(mSpriteAnim != null) {
            mSpriteAnim.animationCompleteDelegate += OnSpriteAnimComplete;
        }
    }
Example #27
0
    void Awake()
    {
        if (sprite == null)
        {
            sprite = GetComponent <tk2dBaseSprite>();
        }

        mOrigColor = sprite.color;

        mWait = new WaitForSeconds(delay);
    }
Example #28
0
        public void PlaceBomb(Vector3 position)
        {
            SpawnObjectPlayerItem playerItem = PickupObjectDatabase.GetById(LastOwner.PlayerHasActiveSynergy("Cold as Ice") ? 109 : 108).GetComponent <SpawnObjectPlayerItem>();
            GameObject            bombPrefab = playerItem.objectToSpawn.gameObject;
            GameObject            BombObject = Object.Instantiate <GameObject>(bombPrefab, position, Quaternion.identity);
            tk2dBaseSprite        bombSprite = BombObject.GetComponent <tk2dBaseSprite>();

            if (bombSprite)
            {
                bombSprite.PlaceAtPositionByAnchor(position, tk2dBaseSprite.Anchor.MiddleCenter);
            }
        }
Example #29
0
    public IEnumerator CreateFadeCoroutine(tk2dBaseSprite TargetSprite, float fStartAlpha, float fTargetAlpha, float fFadeTime)
    {
        if (TargetSprite == null)
        {
            return(null);
        }

        int nSpriteKey = TargetSprite.GetInstanceID();

        TargetSprite.SetAlpha(fStartAlpha);
        return(FadeBlind(TargetSprite, fTargetAlpha, fFadeTime));
    }
Example #30
0
    // Use this for initialization
    void Start()
    {
        if (viewCamera == null)
        {
            // Find a camera parent
            Transform node = transform;
            while (node && node.GetComponent <Camera>() == null)
            {
                node = node.parent;
            }
            if (node && node.GetComponent <Camera>() != null)
            {
                viewCamera = node.GetComponent <Camera>();
            }

            // See if a tk2dCamera exists
            if (viewCamera == null && tk2dCamera.inst)
            {
                viewCamera = tk2dCamera.inst.mainCamera;
            }

            // ...otherwise, use the main camera
            if (viewCamera == null)
            {
                viewCamera = Camera.main;
            }
        }

        sprite = GetComponent <tk2dBaseSprite>();

        // Further tests for sprite not being null aren't necessary, as the IDs will default to -1 in that case. Testing them will be sufficient
        if (sprite)
        {
            // Change this to use animated sprites if necessary
            // Same concept here, lookup Ids and call Play(xxx) instead of .spriteId = xxx
            UpdateSpriteIds();
        }

        if (GetComponent <Collider>() == null)
        {
            BoxCollider newCollider     = gameObject.AddComponent <BoxCollider>();
            Vector3     colliderExtents = newCollider.extents;
            colliderExtents.z   = 0.2f;
            newCollider.extents = colliderExtents;
        }

        if ((buttonDownSound != null || buttonPressedSound != null || buttonUpSound != null) &&
            GetComponent <AudioSource>() == null)
        {
            AudioSource audioSource = gameObject.AddComponent <AudioSource>();
            audioSource.playOnAwake = false;
        }
    }
Example #31
0
    public override void StartAction( )
    {
        updateChild( );

        sprite      = GetComponent <tk2dBaseSprite>();
        AlphaTo     = Alpha;
        alphaChanel = AlphaTo / 255;

        if (sprite)
        {
            sprite.color = new Color(sprite.color.r, sprite.color.g, sprite.color.g, AlphaFrom / 255);
            startAlpha   = sprite.color.a;

            if (Type == FadeType.FadeIn)
            {
//				sprite.color = new Color(sprite.color.r , sprite.color.g , sprite.color.g , AlphaFrom );
//				startAlpha = sprite.color.a;

                if (Duration != 0)
                {
                    fadePerSec = (alphaChanel) / Duration;
                }
                else
                {
                    fadePerSec = alphaChanel;
                }
            }
            else if (Type == FadeType.FadeOut)
            {
                startAlpha = sprite.color.a;
                if (Duration != 0)
                {
                    fadePerSec = (sprite.color.a - this.alphaChanel) / Duration;
                }
                else
                {
                    fadePerSec = alphaChanel;
                }
            }
        }

        this.Running  = true;
        this.Delaying = this.Delay > 0;

        if (NoDuration)
        {
            StartCoroutine("updateNoDuration");
        }
        else
        {
            StartCoroutine("updateColor");
        }
    }
Example #32
0
 private void HandleRadialIndicator(float Radius, tk2dBaseSprite Psprite)
 {
     Psprite = m_owner.sprite;
     if (!this.m_indicator)
     {
         Vector3 position = Psprite.WorldCenter.ToVector3ZisY(0f);
         this.m_indicator = ((GameObject)UnityEngine.Object.Instantiate(ResourceCache.Acquire("Global VFX/HeatIndicator"), position, Quaternion.identity, m_owner.sprite.transform)).GetComponent <HeatIndicatorController>();
         this.m_indicator.CurrentRadius = TRadius;
         m_indicator.IsFire             = false;
         m_indicator.CurrentColor       = new Color(10 / 25, 152 / 25, 216 / 25);
     }
 }
 private void HandleSpriteChanged(tk2dBaseSprite spr)
 {
     tk2dSpriteDefinition currentSprite = spr.CurrentSprite;
     int num = Mathf.Max(currentSprite.attachPoints.Length, this.attachPoints.Count);
     if (num > attachPointUpdated.Length)
     {
         attachPointUpdated = new bool[num];
     }
     foreach (tk2dSpriteDefinition.AttachPoint point in currentSprite.attachPoints)
     {
         bool flag = false;
         int index = 0;
         foreach (Transform transform in this.attachPoints)
         {
             if ((transform != null) && (transform.name == point.name))
             {
                 attachPointUpdated[index] = true;
                 this.UpdateAttachPointTransform(point, transform);
                 flag = true;
             }
             index++;
         }
         if (!flag)
         {
             GameObject obj2 = new GameObject(point.name);
             Transform t = obj2.transform;
             t.parent = base.transform;
             this.UpdateAttachPointTransform(point, t);
             attachPointUpdated[this.attachPoints.Count] = true;
             this.attachPoints.Add(t);
         }
     }
     if (this.deactivateUnusedAttachPoints)
     {
         for (int i = 0; i < this.attachPoints.Count; i++)
         {
             if (this.attachPoints[i] != null)
             {
                 GameObject gameObject = this.attachPoints[i].gameObject;
                 if (attachPointUpdated[i] && !gameObject.activeSelf)
                 {
                     gameObject.SetActive(true);
                 }
                 else if (!attachPointUpdated[i] && gameObject.activeSelf)
                 {
                     gameObject.SetActive(false);
                 }
             }
             attachPointUpdated[i] = false;
         }
     }
 }
Example #34
0
        public static tk2dSpriteCollectionData HandleAnimations2(tk2dBaseSprite sprite, List <Texture2D> playerSheet)
        {
            tk2dSpriteCollectionData orig = sprite.Collection;
            var copyCollection            = GameObject.Instantiate(orig);

            GameObject.DontDestroyOnLoad(copyCollection);

            tk2dSpriteDefinition[] copyDefinitions = new tk2dSpriteDefinition[orig.spriteDefinitions.Length];
            for (int i = 0; i < copyCollection.spriteDefinitions.Length; i++)
            {
                copyDefinitions[i] = Copy(orig.spriteDefinitions[i]);
            }
            copyCollection.spriteDefinitions = copyDefinitions;
            {
                RuntimeAtlasPage page = new RuntimeAtlasPage();
                for (int i = 0; i < playerSheet.Count; i++)
                {
                    var tex = playerSheet[i];

                    float nw = (tex.width) / 16f;
                    float nh = (tex.height) / 16f;

                    var def = copyCollection.GetSpriteDefinition(tex.name);
                    if (def != null)
                    {
                        if (def.boundsDataCenter != Vector3.zero)
                        {
                            var ras = page.Pack(tex);
                            def.materialInst.mainTexture = ras.texture;
                            def.uvs           = ras.uvs;
                            def.extractRegion = true;
                            def.position0     = new Vector3(0, 0, 0);
                            def.position1     = new Vector3(nw, 0, 0);
                            def.position2     = new Vector3(0, nh, 0);
                            def.position3     = new Vector3(nw, nh, 0);

                            def.boundsDataCenter          = new Vector2(nw / 2, nh / 2);
                            def.untrimmedBoundsDataCenter = def.boundsDataCenter;

                            def.boundsDataExtents          = new Vector2(nw, nh);
                            def.untrimmedBoundsDataExtents = def.boundsDataExtents;
                        }
                        else
                        {
                            def.ReplaceTexture(tex);
                        }
                    }
                }
                page.Apply();
            }
            return(copyCollection);
        }
Example #35
0
    // Use this for initialization
    void Start()
    {
        if (_childSpriteForScale != null)
        {
            _childSpriteDefaultScale = _childSpriteForScale.scale;
        }

        if (viewCamera == null)
        {
            // Find a camera parent
            Transform node = transform;
            while (node && node.camera == null)
            {
                node = node.parent;
            }
            if (node && node.camera != null)
            {
                viewCamera = node.camera;
            }

            // See if a tk2dCamera exists
            if (viewCamera == null && tk2dCamera.inst)
            {
                viewCamera = tk2dCamera.inst.mainCamera;
            }

            // ...otherwise, use the main camera
            if (viewCamera == null)
            {
                viewCamera = Camera.main;
            }
        }

        sprite = GetComponent <tk2dBaseSprite>();

        // Further tests for sprite not being null aren't necessary, as the IDs will default to -1 in that case. Testing them will be sufficient
        if (sprite)
        {
            // Change this to use animated sprites if necessary
            // Same concept here, lookup Ids and call Play(xxx) instead of .spriteId = xxx
            UpdateSpriteIds();
        }

        if (collider == null)
        {
            //Debug.Log("creating collider on " + gameObject.name);
            BoxCollider newCollider     = gameObject.AddComponent <BoxCollider>();
            Vector3     colliderExtents = newCollider.extents;
            colliderExtents.z   = 0.2f;
            newCollider.extents = colliderExtents;
        }
    }
Example #36
0
 protected override void OnDestroy()
 {
     if ((PickupObjectDatabase.GetById(565) as PlayerOrbitalItem).BreakVFX && this.sprite != null)
     {
         for (int i = 0; i < 5; i++)
         {
             SpawnManager.SpawnVFX((PickupObjectDatabase.GetById(565) as PlayerOrbitalItem).BreakVFX, this.sprite.WorldCenter.ToVector3ZisY(0f), Quaternion.identity);
         }
         tk2dBaseSprite sprite = SpawnManager.SpawnVFX((PickupObjectDatabase.GetById(538) as SilverBulletsPassiveItem).SynergyPowerVFX, this.sprite.WorldCenter.ToVector3ZisY(0f), Quaternion.identity).GetComponent <tk2dBaseSprite>();
         sprite.PlaceAtPositionByAnchor(this.sprite.WorldCenter.ToVector3ZisY(0f), tk2dBaseSprite.Anchor.MiddleCenter);
     }
     base.OnDestroy();
 }
Example #37
0
 public static void SetArrowIcon(this tk2dBaseSprite spriteTarget, bool bUp)
 {
     if (bUp)
     {
         spriteTarget.SetSprite(string.Concat("c_icon_2"));
         spriteTarget.transform.localRotation = Quaternion.Euler(new Vector3(0, 0, 0));
     }
     else
     {
         spriteTarget.SetSprite(string.Concat("c_icon_1"));
         spriteTarget.transform.localRotation = Quaternion.Euler(new Vector3(0, 0, 180));
     }
 }
Example #38
0
 // Use this for initialization
 void Start()
 {
     sprite   = GetComponent <tk2dBaseSprite>();
     textMesh = GetComponent <tk2dTextMesh>();
     if (sprite != null)
     {
         color = sprite.color;
     }
     if (textMesh != null)
     {
         color = textMesh.color;
     }
 }
Example #39
0
    public static void ChangeAllSpritesColor(float percentage, List <tk2dBaseSprite> exclude)
    {
        var sprites = GameObject.FindObjectsOfType(typeof(tk2dBaseSprite));

        foreach (var sp in sprites)
        {
            tk2dBaseSprite sprite = (tk2dBaseSprite)sp;
            if (exclude == null || !exclude.Contains(sprite))
            {
                NewbieCommonHelper.ChangeSpriteColor(sprite, percentage);
            }
        }
    }
Example #40
0
    // Use this for initialization
    void Start()
    {
        if (viewCamera == null)
        {
            // Find a camera parent
            Transform node = transform;
            while (node && node.camera == null)
            {
                node = node.parent;
            }
            if (node && node.camera != null)
            {
                viewCamera = node.camera;
            }

            // ...otherwise, use the main camera
            if (viewCamera == null)
            {
                viewCamera = Camera.main;
            }
        }

        sprite = GetComponent <tk2dBaseSprite>();

        // Further tests for sprite not being null aren't necessary, as the IDs will default to -1 in that case. Testing them will be sufficient
        if (sprite)
        {
            // Change this to use animated sprites if necessary
            // Same concept here, lookup Ids and call Play(xxx) instead of .spriteId = xxx
            if (buttonDownSprite.Length > 0)
            {
                buttonDownSpriteId = sprite.GetSpriteIdByName(buttonDownSprite);
            }
            if (buttonUpSprite.Length > 0)
            {
                buttonUpSpriteId = sprite.GetSpriteIdByName(buttonUpSprite);
            }
            if (buttonPressedSprite.Length > 0)
            {
                buttonPressedSpriteId = sprite.GetSpriteIdByName(buttonPressedSprite);
            }
        }

        if (collider == null)
        {
            BoxCollider newCollider     = gameObject.AddComponent <BoxCollider>();
            Vector3     colliderExtents = newCollider.extents;
            colliderExtents.z   = 0.2f;
            newCollider.extents = colliderExtents;
        }
    }
    static void ConvertSpriteType(GameObject go, System.Type targetType)
    {
        tk2dBaseSprite spr = go.GetComponent <tk2dBaseSprite>();

        System.Type sourceType = spr.GetType();

        if (sourceType != targetType)
        {
            tk2dBatchedSprite batchedSprite = new tk2dBatchedSprite();
            tk2dStaticSpriteBatcherEditor.FillBatchedSprite(batchedSprite, go);
            if (targetType == typeof(tk2dSprite))
            {
                batchedSprite.type = tk2dBatchedSprite.Type.Sprite;
            }
            else if (targetType == typeof(tk2dTiledSprite))
            {
                batchedSprite.type = tk2dBatchedSprite.Type.TiledSprite;
            }
            else if (targetType == typeof(tk2dSlicedSprite))
            {
                batchedSprite.type = tk2dBatchedSprite.Type.SlicedSprite;
            }
            else if (targetType == typeof(tk2dClippedSprite))
            {
                batchedSprite.type = tk2dBatchedSprite.Type.ClippedSprite;
            }

            Object.DestroyImmediate(spr, true);

            bool sourceHasDimensions = sourceType == typeof(tk2dSlicedSprite) || sourceType == typeof(tk2dTiledSprite);
            bool targetHasDimensions = targetType == typeof(tk2dSlicedSprite) || targetType == typeof(tk2dTiledSprite);

            // Some minor fixups
            if (!sourceHasDimensions && targetHasDimensions)
            {
                batchedSprite.Dimensions = new Vector2(100, 100);
            }
            if (targetType == typeof(tk2dClippedSprite))
            {
                batchedSprite.ClippedSpriteRegionBottomLeft = Vector2.zero;
                batchedSprite.ClippedSpriteRegionTopRight   = Vector2.one;
            }
            if (targetType == typeof(tk2dSlicedSprite))
            {
                batchedSprite.SlicedSpriteBorderBottomLeft = new Vector2(0.1f, 0.1f);
                batchedSprite.SlicedSpriteBorderTopRight   = new Vector2(0.1f, 0.1f);
            }

            tk2dStaticSpriteBatcherEditor.RestoreBatchedSprite(go, batchedSprite);
        }
    }
    void Awake()
    {
        if (anim == null)
        {
            anim = GetComponent <tk2dSpriteAnimator>();
        }

        if (spr == null)
        {
            spr = GetComponent <tk2dBaseSprite>();
        }

        mDoUpdate = new WaitForFixedUpdate();
    }
    public void ShootMissile()
    {
        Vector3 pt  = seekerPt.position; pt.z = 0.0f;
        Vector3 dir = bodySpriteCtrl.anim.Sprite.FlipX ? -seekerPt.up : seekerPt.up;

        Projectile proj = Projectile.Create(projGroup, seekerProjType, pt, dir, mPlayer.transform);

        if (proj)
        {
            proj.stats.itemDropIndex = -1;
            tk2dBaseSprite spr = proj.GetComponentInChildren <tk2dBaseSprite>();
            spr.FlipY = bodySpriteCtrl.anim.Sprite.FlipX;
        }
    }
 protected override void DoEffect(PlayerController user)
 {
     if (this.hasTriggeredVFX != true)
     {
         teleportObject = UnityEngine.Object.Instantiate <GameObject>(PhaseShifterStopwatch.TeleportIcon, user.sprite.WorldCenter, Quaternion.identity);
         tk2dBaseSprite vfxSprite = teleportObject.GetComponent <tk2dBaseSprite>();
         vfxSprite.sprite.usesOverrideMaterial     = true;
         vfxSprite.sprite.renderer.material.shader = ShaderCache.Acquire("Brave/Internal/HologramShader");
         base.StartCoroutine(ItemBuilder.HandleDuration(this, this.duration, user, new Action <PlayerController>(this.EndEffect)));
         this.health          = user.healthHaver.GetCurrentHealth();
         this.armor           = user.healthHaver.Armor;
         this.hasTriggeredVFX = true;
     }
 }
 private void UpdatePlayerPosition(tk2dBaseSprite obj)
 {
     if (obj)
     {
         Transform        transform = m_aiActor.transform.Find("carry");
         PlayerController m_owner   = m_aiActor.CompanionOwner;
         if (transform)
         {
             Vector2 v = transform.position.XY() + (m_owner.transform.position.XY() - m_owner.sprite.WorldBottomCenter) + new Vector2(0f, -0.125f);
             m_owner.transform.position = v;
             m_owner.specRigidbody.Reinitialize();
         }
     }
 }
Example #46
0
        public static void Notify(string header, string text, tk2dBaseSprite sprite = null)
        {
            tk2dBaseSprite notificationObjectSprite;

            if (sprite == null)
            {
                notificationObjectSprite = GameUIRoot.Instance.notificationController.notificationObjectSprite;
            }
            else
            {
                notificationObjectSprite = sprite;
            }
            GameUIRoot.Instance.notificationController.DoCustomNotification(header, text, notificationObjectSprite.Collection, notificationObjectSprite.spriteId, UINotificationController.NotificationColor.PURPLE, false, false);
        }
Example #47
0
    void Start()
    {
        lifeTimeCounter = LifeTime;

        transparent = new Color(1, 1, 1, 0);
        sprite = gameObject.GetComponent<tk2dBaseSprite>();

        this.tag = "bullet";

        dir = Vector3.up;
        dir = dir * Time.smoothDeltaTime * speed;

        thisTransform = this.transform;
        thisTransform.eulerAngles = new Vector3(90, thisTransform.eulerAngles.y, thisTransform.eulerAngles.z);
    }
 public void SetAsSelected(bool value)
 {
     this.isSelected = value;
     this.button = base.GetComponent<tk2dButton>();
     this.sprite = base.GetComponent<tk2dBaseSprite>();
     this.selectedSprite.gameObject.SetActive(this.isSelected);
     if (this.sprite != null)
     {
         this.sprite.enabled = !this.isSelected;
     }
     if (this.button != null)
     {
         this.button.enabled = !value;
     }
 }
	public static Vector2 GetAnchorOffset( tk2dBaseSprite.Anchor anchor, float width, float height ) {
		Vector2 anchorOffset = Vector2.zero;

		switch (anchor) {
		case tk2dBaseSprite.Anchor.LowerLeft: case tk2dBaseSprite.Anchor.MiddleLeft: case tk2dBaseSprite.Anchor.UpperLeft: 
			break;
		case tk2dBaseSprite.Anchor.LowerCenter: case tk2dBaseSprite.Anchor.MiddleCenter: case tk2dBaseSprite.Anchor.UpperCenter: 
			anchorOffset.x = (int)(width / 2.0f); break;
		case tk2dBaseSprite.Anchor.LowerRight: case tk2dBaseSprite.Anchor.MiddleRight: case tk2dBaseSprite.Anchor.UpperRight: 
			anchorOffset.x = (int)(width); break;
		}
		switch (anchor) {
		case tk2dBaseSprite.Anchor.UpperLeft: case tk2dBaseSprite.Anchor.UpperCenter: case tk2dBaseSprite.Anchor.UpperRight:
			break;
		case tk2dBaseSprite.Anchor.MiddleLeft: case tk2dBaseSprite.Anchor.MiddleCenter: case tk2dBaseSprite.Anchor.MiddleRight:
			anchorOffset.y = (int)(height / 2.0f); break;
		case tk2dBaseSprite.Anchor.LowerLeft: case tk2dBaseSprite.Anchor.LowerCenter: case tk2dBaseSprite.Anchor.LowerRight:
			anchorOffset.y = (int)height; break;
		}

		return anchorOffset;
	}
    public static Vector2 GetAnchorOffset(tk2dBaseSprite.Anchor anchor, float width, float height)
    {
        Vector2 zero = Vector2.zero;
        switch (anchor)
        {
            case tk2dBaseSprite.Anchor.LowerCenter:
            case tk2dBaseSprite.Anchor.MiddleCenter:
            case tk2dBaseSprite.Anchor.UpperCenter:
                zero.x = (int) (width / 2f);
                break;

            case tk2dBaseSprite.Anchor.LowerRight:
            case tk2dBaseSprite.Anchor.MiddleRight:
            case tk2dBaseSprite.Anchor.UpperRight:
                zero.x = (int) width;
                break;
        }
        switch (anchor)
        {
            case tk2dBaseSprite.Anchor.LowerLeft:
            case tk2dBaseSprite.Anchor.LowerCenter:
            case tk2dBaseSprite.Anchor.LowerRight:
                zero.y = (int) height;
                return zero;

            case tk2dBaseSprite.Anchor.MiddleLeft:
            case tk2dBaseSprite.Anchor.MiddleCenter:
            case tk2dBaseSprite.Anchor.MiddleRight:
                zero.y = (int) (height / 2f);
                return zero;

            case tk2dBaseSprite.Anchor.UpperLeft:
            case tk2dBaseSprite.Anchor.UpperCenter:
            case tk2dBaseSprite.Anchor.UpperRight:
                return zero;
        }
        return zero;
    }
 private void DoDemoTexturePacker(tk2dSpriteCollectionSize spriteCollectionSize)
 {
     if (GUILayout.Button("Import", new GUILayoutOption[0]))
     {
         this.DestroyData();
         this.spriteCollectionInstance = tk2dSpriteCollectionData.CreateFromTexturePacker(spriteCollectionSize, this.texturePackerExportFile.text, this.texturePackerTexture);
         GameObject obj2 = new GameObject("sprite");
         obj2.transform.localPosition = new Vector3(-1f, 0f, 0f);
         this.spriteInstance = obj2.AddComponent<tk2dSprite>();
         this.spriteInstance.SetSprite(this.spriteCollectionInstance, "sun");
         obj2 = new GameObject("sprite2");
         obj2.transform.parent = this.spriteInstance.transform;
         obj2.transform.localPosition = new Vector3(2f, 0f, 0f);
         obj2.AddComponent<tk2dSprite>().SetSprite(this.spriteCollectionInstance, "2dtoolkit_logo");
         obj2 = new GameObject("sprite3");
         obj2.transform.parent = this.spriteInstance.transform;
         obj2.transform.localPosition = new Vector3(1f, 1f, 0f);
         obj2.AddComponent<tk2dSprite>().SetSprite(this.spriteCollectionInstance, "button_up");
         obj2 = new GameObject("sprite4");
         obj2.transform.parent = this.spriteInstance.transform;
         obj2.transform.localPosition = new Vector3(1f, -1f, 0f);
         obj2.AddComponent<tk2dSprite>().SetSprite(this.spriteCollectionInstance, "Rock");
     }
 }
 void Start()
 {
     transparent = new Color(1, 1, 1, 0);
     sprite = gameObject.GetComponent<tk2dBaseSprite>();
 }
Example #53
0
	static string GetAnchorPointName( tk2dBaseSprite.Anchor anchor ) {
		return "Anchor (" + anchor.ToString() + ")";
	}
Example #54
0
    protected void DrawSpriteEditorGUI(tk2dBaseSprite sprite)
    {
        var newCollection = tk2dSpriteGuiUtility.SpriteCollectionPopup("Collection", sprite.Collection, true, sprite.spriteId);
        if (sprite.Collection != newCollection)
        {
            if (sprite.Collection == null)
                sprite.Collection = newCollection;

            int spriteId = sprite.spriteId;
            if (sprite.spriteId < 0 || sprite.spriteId >= sprite.Collection.Count
                || !sprite.Collection.inst.spriteDefinitions[sprite.spriteId].Valid)
                spriteId = sprite.Collection.FirstValidDefinitionIndex;
            sprite.SwitchCollectionAndSprite(newCollection, spriteId);
            sprite.ForceBuild();
        }

        if (sprite.Collection)
        {
            int newSpriteId = sprite.spriteId;

            // sanity check sprite id
            if (sprite.spriteId < 0 || sprite.spriteId >= sprite.Collection.Count
                || !sprite.Collection.inst.spriteDefinitions[sprite.spriteId].Valid)
            {
                newSpriteId = sprite.Collection.inst.FirstValidDefinitionIndex;
            }

            newSpriteId = tk2dSpriteGuiUtility.SpriteSelectorPopup("Sprite", sprite.spriteId, sprite.Collection);
            if (tk2dPreferences.inst.displayTextureThumbs)
            {
                tk2dSpriteDefinition def = sprite.GetCurrentSpriteDef();
                if (sprite.Collection.version < 1 || def.texelSize == Vector2.zero)
                {
                    string message = "";

                    message = "No thumbnail data.";
                    if (sprite.Collection.version < 1)
                        message += "\nPlease rebuild Sprite Collection.";

                    tk2dGuiUtility.InfoBox(message, tk2dGuiUtility.WarningLevel.Info);
                }
                else
                {
                    GUILayout.BeginHorizontal();
                    EditorGUILayout.PrefixLabel(" ");

                    Vector2 texSize = thumbnailCache.GetSpriteSizePixels(def);
                    float w = texSize.x;
                    float h = texSize.y;
                    float maxSize = 128.0f;
                    if (w > maxSize)
                    {
                        h = h / w * maxSize;
                        w = maxSize;
                    }

                    Rect r = GUILayoutUtility.GetRect(w, h, GUILayout.ExpandWidth(false));
                    thumbnailCache.DrawSpriteTexture(r, def);

                    GUILayout.EndHorizontal();
                }
            }

            if (newSpriteId != sprite.spriteId)
            {
                sprite.spriteId = newSpriteId;
                sprite.EditMode__CreateCollider();
                GUI.changed = true;
            }

            sprite.color = EditorGUILayout.ColorField("Color", sprite.color);
            Vector3 newScale = EditorGUILayout.Vector3Field("Scale", sprite.scale);
            if (newScale != sprite.scale)
            {
                sprite.scale = newScale;
                sprite.EditMode__CreateCollider();
            }

            EditorGUILayout.BeginHorizontal();

            if (GUILayout.Button("HFlip"))
            {
                Vector3 s = sprite.scale;
                s.x *= -1.0f;
                sprite.scale = s;
                GUI.changed = true;
            }
            if (GUILayout.Button("VFlip"))
            {
                Vector3 s = sprite.scale;
                s.y *= -1.0f;
                sprite.scale = s;
                GUI.changed = true;
            }

            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();

            if (GUILayout.Button(new GUIContent("Reset Scale", "Set scale to 1")))
            {
                Vector3 s = sprite.scale;
                s.x = Mathf.Sign(s.x);
                s.y = Mathf.Sign(s.y);
                s.z = Mathf.Sign(s.z);
                sprite.scale = s;
                GUI.changed = true;
            }

            if (GUILayout.Button(new GUIContent("Bake Scale", "Transfer scale from transform.scale -> sprite")))
            {
                tk2dScaleUtility.Bake(sprite.transform);
                GUI.changed = true;
            }

            GUIContent pixelPerfectButton = new GUIContent("1:1", "Make Pixel Perfect");
            if ( GUILayout.Button(pixelPerfectButton ))
            {
                if (tk2dPixelPerfectHelper.inst) tk2dPixelPerfectHelper.inst.Setup();
                sprite.MakePixelPerfect();
                GUI.changed = true;
            }

            sprite.pixelPerfect = GUILayout.Toggle(sprite.pixelPerfect, new GUIContent("Always", "Always keep pixel perfect"), GUILayout.Width(60.0f));
            EditorGUILayout.EndHorizontal();
        }
        else
        {
            EditorGUILayout.IntSlider("Need a collection bound", 0, 0, 1);
        }

        bool needUpdatePrefabs = false;
        if (GUI.changed)
        {
            EditorUtility.SetDirty(sprite);
        #if !(UNITY_3_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4)
            if (PrefabUtility.GetPrefabType(sprite) == PrefabType.Prefab)
                needUpdatePrefabs = true;
        #endif
        }

        // This is a prefab, and changes need to be propagated. This isn't supported in Unity 3.4
        if (needUpdatePrefabs)
        {
        #if !(UNITY_3_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4)
            // Rebuild prefab instances
            tk2dBaseSprite[] allSprites = Resources.FindObjectsOfTypeAll(sprite.GetType()) as tk2dBaseSprite[];
            foreach (var spr in allSprites)
            {
                if (PrefabUtility.GetPrefabType(spr) == PrefabType.PrefabInstance &&
                    PrefabUtility.GetPrefabParent(spr.gameObject) == sprite.gameObject)
                {
                    // Reset all prefab states
                    var propMod = PrefabUtility.GetPropertyModifications(spr);
                    PrefabUtility.ResetToPrefabState(spr);
                    PrefabUtility.SetPropertyModifications(spr, propMod);

                    spr.ForceBuild();
                }
            }
        #endif
        }
    }
    protected void DrawSpriteEditorGUI(tk2dBaseSprite sprite)
    {
        Event ev = Event.current;
        tk2dSpriteGuiUtility.SpriteSelector( sprite.Collection, sprite.spriteId, spriteChangedCallbackInstance, null );

        if (sprite.Collection != null)
        {
            if (tk2dPreferences.inst.displayTextureThumbs) {
                tk2dSpriteDefinition def = sprite.GetCurrentSpriteDef();
                if (sprite.Collection.version < 1 || def.texelSize == Vector2.zero)
                {
                    string message = "";

                    message = "No thumbnail data.";
                    if (sprite.Collection.version < 1)
                        message += "\nPlease rebuild Sprite Collection.";

                    tk2dGuiUtility.InfoBox(message, tk2dGuiUtility.WarningLevel.Info);
                }
                else
                {
                    GUILayout.BeginHorizontal();
                    EditorGUILayout.PrefixLabel(" ");

                    int tileSize = 128;
                    Rect r = GUILayoutUtility.GetRect(tileSize, tileSize, GUILayout.ExpandWidth(false));
                    tk2dGrid.Draw(r);
                    thumbnailCache.DrawSpriteTextureInRect(r, def, Color.white);

                    GUILayout.EndHorizontal();

                    r = GUILayoutUtility.GetLastRect();
                    if (ev.type == EventType.MouseDown && ev.button == 0 && r.Contains(ev.mousePosition)) {
                        tk2dSpriteGuiUtility.SpriteSelectorPopup( sprite.Collection, sprite.spriteId, spriteChangedCallbackInstance, null );
                    }
                }
            }

            sprite.color = EditorGUILayout.ColorField("Color", sprite.color);
            Vector3 newScale = EditorGUILayout.Vector3Field("Scale", sprite.scale);
            if (newScale != sprite.scale)
            {
                sprite.scale = newScale;
                sprite.EditMode__CreateCollider();
            }

            EditorGUILayout.BeginHorizontal();

            if (GUILayout.Button("HFlip"))
            {
                Vector3 s = sprite.scale;
                s.x *= -1.0f;
                sprite.scale = s;
                GUI.changed = true;
            }
            if (GUILayout.Button("VFlip"))
            {
                Vector3 s = sprite.scale;
                s.y *= -1.0f;
                sprite.scale = s;
                GUI.changed = true;
            }

            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();

            if (GUILayout.Button(new GUIContent("Reset Scale", "Set scale to 1")))
            {
                Vector3 s = sprite.scale;
                s.x = Mathf.Sign(s.x);
                s.y = Mathf.Sign(s.y);
                s.z = Mathf.Sign(s.z);
                sprite.scale = s;
                GUI.changed = true;
            }

            if (GUILayout.Button(new GUIContent("Bake Scale", "Transfer scale from transform.scale -> sprite")))
            {
                tk2dScaleUtility.Bake(sprite.transform);
                GUI.changed = true;
            }

            GUIContent pixelPerfectButton = new GUIContent("1:1", "Make Pixel Perfect");
            if ( GUILayout.Button(pixelPerfectButton ))
            {
                if (tk2dPixelPerfectHelper.inst) tk2dPixelPerfectHelper.inst.Setup();
                sprite.MakePixelPerfect();
                GUI.changed = true;
            }

            sprite.pixelPerfect = GUILayout.Toggle(sprite.pixelPerfect, new GUIContent("Always", "Always keep pixel perfect"), GUILayout.Width(60.0f));
            EditorGUILayout.EndHorizontal();
        }
        else
        {
            EditorGUILayout.IntSlider("Need a collection bound", 0, 0, 1);
        }

        bool needUpdatePrefabs = false;
        if (GUI.changed)
        {
            EditorUtility.SetDirty(sprite);
        #if !(UNITY_3_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4)
            if (PrefabUtility.GetPrefabType(sprite) == PrefabType.Prefab)
                needUpdatePrefabs = true;
        #endif
        }

        // This is a prefab, and changes need to be propagated. This isn't supported in Unity 3.4
        if (needUpdatePrefabs)
        {
        #if !(UNITY_3_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4)
            // Rebuild prefab instances
            tk2dBaseSprite[] allSprites = Resources.FindObjectsOfTypeAll(sprite.GetType()) as tk2dBaseSprite[];
            foreach (var spr in allSprites)
            {
                if (PrefabUtility.GetPrefabType(spr) == PrefabType.PrefabInstance &&
                    PrefabUtility.GetPrefabParent(spr.gameObject) == sprite.gameObject)
                {
                    // Reset all prefab states
                    var propMod = PrefabUtility.GetPropertyModifications(spr);
                    PrefabUtility.ResetToPrefabState(spr);
                    PrefabUtility.SetPropertyModifications(spr, propMod);

                    spr.ForceBuild();
                }
            }
        #endif
        }
    }
Example #56
0
	public static List<int> getAnchorHidePtList(tk2dBaseSprite.Anchor anchor, Rect r, Transform t) {
		List<int> hidePts = new List<int>();
		int x = 0;
		int y = 0;
		switch (anchor) {
			case tk2dBaseSprite.Anchor.LowerLeft: x = -1; y = -1; break;
			case tk2dBaseSprite.Anchor.LowerRight: x = 1; y = -1; break;
			case tk2dBaseSprite.Anchor.UpperLeft: x = -1; y = 1; break;
			case tk2dBaseSprite.Anchor.UpperRight: x = 1; y = 1; break;
		}
		if (r.width < 0.0f) x = -x;
		if (r.height < 0.0f) y = -y;
		if (t.localScale.x < 0.0f) x = -x;
		if (t.localScale.y < 0.0f) y = -y;
		if (x == -1 && y == -1) hidePts.Add (0);
		if (x == 1 && y == -1) hidePts.Add (1);
		if (x == -1 && y == 1) hidePts.Add (2);
		if (x == 1 && y == 1) hidePts.Add (3);
		return hidePts;
	}
Example #57
0
	// Rect origin as offset from Anchor
	public static Vector2 GetAnchorOffset( Vector2 rectSize, tk2dBaseSprite.Anchor anchor ) {
		Vector2 anchorOffset = Vector3.zero;
		switch (anchor)
		{
			case tk2dBaseSprite.Anchor.LowerLeft: case tk2dBaseSprite.Anchor.MiddleLeft: case tk2dBaseSprite.Anchor.UpperLeft: 
				break;
			case tk2dBaseSprite.Anchor.LowerCenter: case tk2dBaseSprite.Anchor.MiddleCenter: case tk2dBaseSprite.Anchor.UpperCenter: 
				anchorOffset.x = -(rectSize.x / 2.0f); break;
			case tk2dBaseSprite.Anchor.LowerRight: case tk2dBaseSprite.Anchor.MiddleRight: case tk2dBaseSprite.Anchor.UpperRight: 
				anchorOffset.x = -(rectSize.x); break;
		}
		switch (anchor)
		{
			case tk2dBaseSprite.Anchor.LowerLeft: case tk2dBaseSprite.Anchor.LowerCenter: case tk2dBaseSprite.Anchor.LowerRight:
				break;
			case tk2dBaseSprite.Anchor.MiddleLeft: case tk2dBaseSprite.Anchor.MiddleCenter: case tk2dBaseSprite.Anchor.MiddleRight:
				anchorOffset.y = -(rectSize.y / 2.0f); break;
			case tk2dBaseSprite.Anchor.UpperLeft: case tk2dBaseSprite.Anchor.UpperCenter: case tk2dBaseSprite.Anchor.UpperRight:
				anchorOffset.y = -(rectSize.y); break;
		}
		return anchorOffset;
	}
 protected virtual void Awake()
 {
     mSprite = GetComponent<tk2dBaseSprite>();
     mSpriteAnim = mSprite as tk2dAnimatedSprite;
 }
Example #59
0
    protected void DrawSpriteEditorGUI(tk2dBaseSprite sprite)
    {
        var newCollection = tk2dSpriteGuiUtility.SpriteCollectionPopup("Collection", sprite.collection, true, sprite.spriteId);
        if (sprite.collection != newCollection)
        {
            if (sprite.collection == null)
                sprite.collection = newCollection;

            int spriteId = sprite.spriteId;
            if (sprite.spriteId < 0 || sprite.spriteId >= sprite.collection.Count
                || !sprite.collection.spriteDefinitions[sprite.spriteId].Valid)
                spriteId = sprite.collection.FirstValidDefinitionIndex;
            sprite.SwitchCollectionAndSprite(newCollection, spriteId);
            sprite.ForceBuild();
        }

        if (sprite.collection)
        {
            int newSpriteId = sprite.spriteId;

            // sanity check sprite id
            if (sprite.spriteId < 0 || sprite.spriteId >= sprite.collection.Count
                || !sprite.collection.spriteDefinitions[sprite.spriteId].Valid)
            {
                newSpriteId = sprite.collection.FirstValidDefinitionIndex;
            }

            newSpriteId = tk2dSpriteGuiUtility.SpriteSelectorPopup("Sprite", sprite.spriteId, sprite.collection);
            if (tk2dPreferences.inst.displayTextureThumbs)
            {
                if (sprite.collection.version < 1 || sprite.collection.dataGuid == tk2dSpriteGuiUtility.TransientGUID)
                {
                    string message = "";

                    message = "No thumbnail data.";
                    if (sprite.collection.version < 1 && sprite.collection.dataGuid != tk2dSpriteGuiUtility.TransientGUID)
                        message += "\nPlease rebuild Sprite Collection.";

                    tk2dGuiUtility.InfoBox(message, tk2dGuiUtility.WarningLevel.Info);
                }
                else
                {
                    var tex = tk2dSpriteThumbnailCache.GetThumbnailTexture(sprite.collection, sprite.spriteId);
                    if (tex)
                    {
                        float w = tex.width;
                        float h = tex.height;
                        float maxSize = 128.0f;
                        if (w > maxSize)
                        {
                            h = h / w * maxSize;
                            w = maxSize;
                        }

                        Rect r = GUILayoutUtility.GetRect(w, h);
                        GUI.DrawTexture(r, tex, ScaleMode.ScaleToFit);
                    }
                }
            }

            if (newSpriteId != sprite.spriteId)
            {
                sprite.spriteId = newSpriteId;
                sprite.EditMode__CreateCollider();
                GUI.changed = true;
            }

            sprite.color = EditorGUILayout.ColorField("Color", sprite.color);
            Vector3 newScale = EditorGUILayout.Vector3Field("Scale", sprite.scale);
            if (newScale != sprite.scale)
            {
                sprite.scale = newScale;
                sprite.EditMode__CreateCollider();
            }

            EditorGUILayout.BeginHorizontal();

            if (GUILayout.Button("HFlip"))
            {
                Vector3 s = sprite.scale;
                s.x *= -1.0f;
                sprite.scale = s;
                GUI.changed = true;
            }
            if (GUILayout.Button("VFlip"))
            {
                Vector3 s = sprite.scale;
                s.y *= -1.0f;
                sprite.scale = s;
                GUI.changed = true;
            }

            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();

            if (GUILayout.Button(new GUIContent("Reset Scale", "Set scale to 1")))
            {
                Vector3 s = sprite.scale;
                s.x = Mathf.Sign(s.x);
                s.y = Mathf.Sign(s.y);
                s.z = Mathf.Sign(s.z);
                sprite.scale = s;
                GUI.changed = true;
            }

            if (GUILayout.Button(new GUIContent("Bake Scale", "Transfer scale from transform.scale -> sprite")))
            {
                tk2dScaleUtility.Bake(sprite.transform);
                GUI.changed = true;
            }

            GUIContent pixelPerfectButton = new GUIContent("1:1", "Make Pixel Perfect");
            if ( GUILayout.Button(pixelPerfectButton ))
            {
                if (tk2dPixelPerfectHelper.inst) tk2dPixelPerfectHelper.inst.Setup();
                sprite.MakePixelPerfect();
                GUI.changed = true;
            }

            sprite.pixelPerfect = GUILayout.Toggle(sprite.pixelPerfect, new GUIContent("Always", "Always keep pixel perfect"), GUILayout.Width(60.0f));
            EditorGUILayout.EndHorizontal();
        }
        else
        {
            EditorGUILayout.IntSlider("Need a collection bound", 0, 0, 1);
        }

        if (GUI.changed)
            EditorUtility.SetDirty(sprite);
    }
Example #60
0
	// Use this for initialization
	void Start () 
	{
		if (viewCamera == null)
		{
			// Find a camera parent 
            Transform node = transform;
            while (node && node.camera == null)
            {
                node = node.parent;
            }
            if (node && node.camera != null) 
			{
				viewCamera = node.camera;
			}
			
			// See if a tk2dCamera exists
			if (viewCamera == null && tk2dCamera.Instance)
			{
				viewCamera = tk2dCamera.Instance.camera;
			}
			
			// ...otherwise, use the main camera
			if (viewCamera == null)
			{
				viewCamera = Camera.main;
			}
		}
		
		sprite = GetComponent<tk2dBaseSprite>();
		
		// Further tests for sprite not being null aren't necessary, as the IDs will default to -1 in that case. Testing them will be sufficient
		if (sprite)
		{
			// Change this to use animated sprites if necessary
			// Same concept here, lookup Ids and call Play(xxx) instead of .spriteId = xxx
			UpdateSpriteIds();
		}
		
		if (collider == null)
		{
			BoxCollider newCollider = gameObject.AddComponent<BoxCollider>();
			Vector3 colliderSize = newCollider.size;
			colliderSize.z = 0.2f;
			newCollider.size = colliderSize;
		}
		
		if ((buttonDownSound != null || buttonPressedSound != null || buttonUpSound != null) &&
			audio == null)
		{
			AudioSource audioSource = gameObject.AddComponent<AudioSource>();
			audioSource.playOnAwake = false;
		}
	}