public override void ProcessMessage(IComponentMessage msg) { if (msg.ComponentMessageType == ComponentMessageType.SkillLMB) { ProcessLMBSkillMessage(msg); } }
public override void ProcessMessage(IComponentMessage msg) { if (msg.ComponentMessageType == ComponentMessageType.Die) { ProcessDieMessage(); } }
void ProcessMove(IComponentMessage msg) { //if (isAbleToMove) { //isAbleToMove = false; double angle = solidBody.Angle; switch (msg.ComponentMessageType) { case ComponentMessageType.MoveBackward: angle += 180; break; case ComponentMessageType.MoveLeft: angle -= 90; break; case ComponentMessageType.MoveRight: angle += 90; break; } angle = angle * Math.PI / 180; int dX = (int)Math.Round(Cos(angle) * speed), dY = (int)Math.Round(Sin(angle) * speed); solidBody.AddToCoords(dX, dY); Owner.IsUpdated = true; //} }
void ProcessMove(IComponentMessage msg) { //if (isAbleToMove) { //isAbleToMove = false; switch (msg.ComponentMessageType) { case ComponentMessageType.MoveBackward: solidBody.AddToCoords(0, speed); break; case ComponentMessageType.MoveLeft: solidBody.AddToCoords(-speed, 0); break; case ComponentMessageType.MoveRight: solidBody.AddToCoords(speed, 0); break; case ComponentMessageType.MoveForward: solidBody.AddToCoords(0, -speed); break; } Owner.IsUpdated = true; //} }
public override void ProcessMessage(IComponentMessage msg) { if (msg.ComponentMessageType == ComponentMessageType.AngleChanged) { ProcessAngleChanged(msg as ComponentMessageAngle); } }
public override void ProcessMessage(IComponentMessage msg) { if (msg.ComponentMessageType == ComponentMessageType.Collide) { ProcessCollideMsg(msg as CollideMessage); } }
public override void ProcessMessage(IComponentMessage msg) { if (msg.ComponentMessageType == ComponentMessageType.TickElapsed) { ProcessTickElapsedMessage(); } }
public override void ProcessMessage(IComponentMessage msg) { if (msg.ComponentMessageType == ComponentMessageType.TakeDmg) { ProcessTakeDMGMessage(msg as TakeDmgMessage); } else if (msg.ComponentMessageType == ComponentMessageType.Die) { ProcessDieMessage(); } }
void ProcessTickElapsed(IComponentMessage msg) { double angle = solidBody.Angle; angle = angle * Math.PI / 180; int dX = (int)Math.Round(Math.Cos(angle) * speed), dY = (int)Math.Round(Math.Sin(angle) * speed); solidBody.AddToCoords(dX, dY); Owner.IsUpdated = true; }
public override void ProcessMessage(IComponentMessage msg) { if (msg.ComponentMessageType == ComponentMessageType.MoveForward || msg.ComponentMessageType == ComponentMessageType.MoveBackward || msg.ComponentMessageType == ComponentMessageType.MoveLeft || msg.ComponentMessageType == ComponentMessageType.MoveRight ) { ProcessMove(msg); } //else if (msg.ComponentMessageType == ComponentMessageType.TickElapsed) //isAbleToMove = true; }
void ProcessLMBSkillMessage(IComponentMessage componentMessage) { actionSkill(componentMessage); }
public bool TryReadMessage(out IComponentMessage msg) => messageQueue.TryDequeue(out msg);
public void SendMessage(IComponentMessage msg) => messageQueue.Enqueue(msg);
public virtual void Receive(IComponentMessage msg) { } // Nothing by default
protected void Message(IComponentMessage msg) => MessageEvent.Invoke(msg);