public override void OnInit(ITraitContainer container) { var m = container.NewMatcher(); m.HasTrait <Renderer>().HasTag(Renderer.Loaded).HasTrait <Movement>().HasTag(Movement.Inited); this.filter = container.GetFilter(this, TupleType.Job, m); }
private bool PlayAnimation(ITraitContainer e, ActionState state, ActionState nextState = ActionState.Unknown) { if (!CanPlay(state)) { return(false); } this.state = state; string animationName = null; if (animations.TryGetValue(state, out animationName)) { var animator = GetAnimator(e); if (null != animator) { animator.CrossFade(animationName, 0.03f, 0); this.nextState = nextState; if (ActionState.Unknown != nextState) { this.duration = animationDurations[state]; } return(true); } } return(false); }
public override void OnUpdate(ITraitContainer container, float deltaTime) { if (null != this.initFilter.Target) { var e = this.initFilter.Target; var r = e.GetTrait <Renderer>(); var effect = e.GetTrait <Effect>(); effect.View = r.Pool.Pick(effect.Path); effect.Pool = r.Pool; var transform = effect.View.transform; transform.SetParent(r.View.transform); transform.localPosition = Vector3.up * EffectHeight; var particle = transform.GetComponent <ParticleSystem>(); particle.Play(); e.AddTag(Effect.Inited); } if (null != this.updateFilter.Target) { var e = this.updateFilter.Target; var effect = e.GetTrait <Effect>(); effect.Duration -= deltaTime; if (effect.Duration <= 0) { e.RemoveTrait <Effect>(); e.RemoveTag(Effect.Inited); } } }
public override void OnUpdate(ITraitContainer container, float deltaTime) { if (null != this.filter.Target) { var e = this.filter.Target; var w = e.GetTrait <Window>(); if (!this.inited) { this.inited = true; OnLoad(); } OnUpdate(deltaTime); if (-1 != w.FadeOutTimer && w.FadeOutTimer > 0) { w.FadeOutTimer -= Time.deltaTime; if (w.FadeOutTimer <= 0) { w.FadeOutTimer = -1; Game.CloseWindow(w.Path); } } } }
public override void OnUpdate(ITraitContainer container, float deltaTime) { if (null != this.state) { this.state.OnExecute(this); } }
public override void OnInit(ITraitContainer container) { this.container = container; var m = container.NewMatcher(); m.HasTrait <Window>().HasTag(Window.Inited); this.filter = container.GetFilter(this, TupleType.Job, m); }
public override void OnUpdate(ITraitContainer container, float deltaTime) { if (null != this.filter.Target) { var e = this.filter.Target; var m = e.GetTrait <Movement>(); var player = e.GetTrait <Player>(); if (player.IsDead) { PlayAnimation(e, ActionState.Death); } else if (0 != m.Move.state || ActionState.Unknown == this.nextState) { if ((uint)ActionState.Attack == m.Move.state) { if (PlayAnimation(e, ActionState.Attack, ActionState.Idle)) { var effect = e.AddTrait <Effect>(); if (!e.HasTag(Effect.Inited)) { effect.Path = "Effect/AttackEffect0"; effect.Duration = 0.5f; } if (!e.HasTrait <Audio>()) { var audio = e.AddTrait <Audio>(); audio.Path = ExcelManager.Configuration_audio[2].path; } } } else if (m.Move.state >= (uint)ActionState.Hurt) { PlayAnimation(e, ActionState.Hurt); } else if (null == m.LastMove || (m.LastMove.x == m.Move.x && m.LastMove.y == m.Move.y)) { PlayAnimation(e, ActionState.Idle); } else { PlayAnimation(e, ActionState.Run); } } if (ActionState.Unknown != this.nextState) { this.duration -= deltaTime; if (this.duration <= 0) { PlayAnimation(e, this.nextState); } } } }
public override void OnUpdate(ITraitContainer container, float deltaTime) { if (null != this.filter.Target) { var e = this.filter.Target; var m = e.GetTrait <Movement>(); var r = e.GetTrait <Renderer>(); var transform = r.View.transform; transform.rotation = Quaternion.Euler(0, m.Move.angle + 90, 0); } }
private Animator GetAnimator(ITraitContainer e) { if (null == this.animator) { var r = e.GetTrait <Renderer>(); if (null != r.View) { this.animator = r.View.GetComponent <Animator>(); } } return(this.animator); }
public override void OnUpdate(ITraitContainer container, float deltaTime) { if (null != this.filter.Target) { var e = this.filter.Target; var item = e.GetTrait <Item>(); var r = e.GetTrait <Renderer>(); r.View.transform.position = new Vector3(item.Data.x * Server2Client, 0, item.Data.y * Server2Client); e.AddTag(Item.Inited); } }
public override void OnUpdate(ITraitContainer container, float deltaTime) { if (null != this.filter.Target) { var e = this.filter.Target; var m = e.GetTrait <Movement>(); var r = e.GetTrait <Renderer>(); this.offset.x = m.Move.x * Server2Client - r.View.transform.position.x; this.offset.y = m.Move.y * Server2Client - r.View.transform.position.z; var deltaX = this.offset.x * deltaTime * MoveSpeed; var deltaZ = this.offset.y * deltaTime * MoveSpeed; var position = r.View.transform.position; r.View.transform.position = new Vector3(position.x + deltaX, 0, position.z + deltaZ); } }
public override void OnInit(ITraitContainer container) { var initMatcher = container.NewMatcher(); initMatcher.HasTrait <Effect>() .ExceptTag(Effect.Inited) .HasTrait <Renderer>() .HasTag(Renderer.Loaded); this.initFilter = container.GetFilter(this, TupleType.Job, initMatcher); var updateMatcher = container.NewMatcher(); updateMatcher.HasTrait <Effect>() .HasTag(Effect.Inited); this.updateFilter = container.GetFilter(this, TupleType.Job, updateMatcher); }
public override void OnInit(ITraitContainer container) { Game.On(MessageDef.JoyStickDragging, OnJoyStickDragging); Game.On(MessageDef.JoyStickStop, OnJoyStickStop); Game.On(MessageDef.Attack, OnAttack); }
public override void OnInit(ITraitContainer container) { this.owner = container; }