private static void ScaleOnChangeValue(DependencyObject source, DependencyPropertyChangedEventArgs e) { if (e != null) { CharacterView instance = source as CharacterView; if (instance._actor != null) { float sx = instance._actor.GetScale().X; float sy = instance._actor.GetScale().Y; float oldScale = (float)Math.Round((float)e.OldValue); float newScale = (float)Math.Round((float)e.NewValue); instance.CheckScale(newScale, oldScale); } } }
private static void ActorOnChangeValue(DependencyObject source, DependencyPropertyChangedEventArgs e) { if (e != null) { CharacterView instance = source as CharacterView; String actor = (string)e.NewValue; instance._frames = new List <string>(); instance._baseOffset = new Position(); instance._shadowOffset = new Position(); instance._position = new Position(); if (string.IsNullOrEmpty(actor) == false) { if (instance._actor != null) { GameManager.GetInstance().RemoveEntity(instance._actor); } instance._position.X = 400; instance._position.Y = 200; if (instance._entities.ContainsKey(actor) == false) { if (instance._fusionEngineASM != null) { var type = instance._fusionEngineASM.GetType("FusionEngine." + actor); Entity entity = (Entity)Activator.CreateInstance(type); entity.SetAnimationType(FusionEngine.Animation.Type.NONE); entity.SetAnimationState(FusionEngine.Animation.State.STANCE); instance._entities.TryAdd(actor, entity); GameManager.GetInstance().GetRenderManager().AddEntity(entity); instance._actor = entity; } } else { instance._actor = instance._entities[actor]; instance._actor.SetAnimationState(FusionEngine.Animation.State.STANCE); GameManager.GetInstance().GetRenderManager().AddEntity(instance._actor); } instance._baseOffset.X = (int)instance._actor.GetBaseOffsetX(); instance._baseOffset.Y = (int)instance._actor.GetBaseOffsetY(); instance._shadowOffset.X = (int)instance._actor.GetCurrentSprite().GetShadowOffsetX(); instance._shadowOffset.Y = (int)instance._actor.GetCurrentSprite().GetShadowOffsetY(); } instance.Frames = instance._frames; instance.BaseOffset = instance._baseOffset; instance.Position = instance._position; instance.ShadowOffset = instance._shadowOffset; if (instance._actor != null) { instance._actor.SetPostion(instance.Position.X, 0, instance.Position.Y); instance._actor.SetScale(instance._actor.GetBaseScale().X - 1, instance._actor.GetBaseScale().Y - 1); instance.CheckScale(instance.Scale, 0); DependencyPropertyChangedEventArgs args = new DependencyPropertyChangedEventArgs(AnimationProperty, null, "STANCE"); AnimationOnChangeValue(source, args); } } }