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; }
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); } } }
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); }