public void OnTokenRemovedFromScreen(object sender, ApplicationTokenEventArgs e)
    {
        spriteRenderer.enabled = false;

        if (collider2D != null)
            collider2D.enabled = false;
    }
    public void OnTokenPlacedOnScreen(object sender, ApplicationTokenEventArgs e)
    {
        tokenPosition = new Vector3(e.Token.Position.x, e.Token.Position.y, Camera.main.nearClipPlane);
        myTransform.position = Camera.main.ScreenToWorldPoint(tokenPosition);
        myTransform.rotation = Quaternion.Euler(myTransform.rotation.x, myTransform.rotation.y, e.Token.Angle);
        spriteRenderer.enabled = true;

        if (collider2d != null)
            collider2d.enabled = true;

    }
Beispiel #3
0
        private void DispatchEventToSubscribers(List<Delegate> subscribers, int? invokerTokenClass, ApplicationTokenEventArgs e)
        {
            foreach (Delegate subscriber in subscribers)
            {
                IApplicationToken applicationToken = subscriber.Target as IApplicationToken;
                int subscriberTokenClass = applicationToken.TokenClass;

                if (invokerTokenClass == subscriberTokenClass)
                {
                    EventHandler<ApplicationTokenEventArgs> subscriberHandler = subscriber as EventHandler<ApplicationTokenEventArgs>;
                    subscriberHandler(this, e);
                }
            }
        }
Beispiel #4
0
        private void LaunchTokenRemovedFromScreen(ApplicationTokenEventArgs e)
        {
            EventHandler<ApplicationTokenEventArgs> handler;
            List<Delegate> subscribers = new List<Delegate>();
            int? invokerTokenClass = null;

            lock (TokenCallBackLock)
            {
                handler = TokenRemovedFromScreen;
            }

            if (handler != null)
            {
                subscribers = handler.GetInvocationList().ToList();
                invokerTokenClass = e.Token.Class;
                DispatchEventToSubscribers(subscribers, invokerTokenClass, e);
            }
        }
 public void OnTokenUpdated(object sender, ApplicationTokenEventArgs e)
 {
     tokenPosition = new Vector3(e.Token.Position.x, e.Token.Position.y, Camera.main.nearClipPlane);
     myTransform.position = Camera.main.ScreenToWorldPoint(tokenPosition);
     myTransform.rotation = Quaternion.Euler(myTransform.rotation.x, myTransform.rotation.y, e.Token.Angle);
 }