public override void ReceiveMessageRecursive(Message messageToReceive) { switch(messageToReceive.Type) { case Message.MessageType.OnChunkModified: HasMoved = true; break; } base.ReceiveMessageRecursive(messageToReceive); }
public void NotifyChangedComponents() { HashSet<IBoundedObject> componentsInside = new HashSet<IBoundedObject>(); Manager.Components.CollisionManager.GetObjectsIntersecting(GetBoundingBox(), componentsInside, CollisionManager.CollisionType.Dynamic | CollisionManager.CollisionType.Static); Message changedMessage = new Message(Message.MessageType.OnChunkModified, "Chunk Modified"); foreach(IBoundedObject c in componentsInside) { if(c is GameComponent) { ((GameComponent) c).ReceiveMessageRecursive(changedMessage); } } }
public override void ReceiveMessageRecursive(Message messageToReceive) { if (messageToReceive.Type == Message.MessageType.OnHurt) { HurtTimer.Update(DwarfTime.LastTime); if(HurtTimer.HasTriggered) Particles.Trigger(1); } base.ReceiveMessageRecursive(messageToReceive); }
public override void ReceiveMessageRecursive(Message messageToReceive) { switch(messageToReceive.Type) { case Message.MessageType.OnChunkModified: break; case Message.MessageType.OnHurt: NoiseMaker.MakeNoise("Hurt", AI.Position); this.Sprite.Blink(0.5f); AI.AddThought(Thought.ThoughtType.TookDamage); PlayState.ParticleManager.Trigger(DeathParticleTrigger.EmitterName, AI.Position, Color.White, 2); break; } base.ReceiveMessageRecursive(messageToReceive); }
public override void ReceiveMessageRecursive(Message messageToReceive) { if(messageToReceive.MessageString == "Chunk Modified") { checkHeight = true; } base.ReceiveMessageRecursive(messageToReceive); }
public override void ReceiveMessageRecursive(Message messageToReceive) { if(messageToReceive.MessageString == "Chunk Modified") { ColorAppplied = false; } base.ReceiveMessageRecursive(messageToReceive); }