public override void Init(GameWorld world, Entity self) { base.Init(world, self); DrawableComponent drawable = self.Get <DrawableComponent>(); if (FadeIn) { foreach (GameDrawable d in drawable.Get("Foreground")) { if (d is DrawableSprite) { if (d.Alpha >= 1.0f) { Skip = true; } } d.Visible = true; } } foreach (GameDrawable d in drawable.Get("Foreground")) { if (FadeIn) { FadeCounter = FadeTime - (int)(d.Alpha * FadeTime); } else { FadeCounter = (int)(d.Alpha * FadeTime); } break; } }
public override void Update(double dt) { foreach (Entity e in brains) { DrawableComponent drawable = e.Get <DrawableComponent>(); CitizenComponent citizen = e.Get <CitizenComponent>(); foreach (GameDrawable d in drawable.Get("Text")) { d.Visible = true; if (d is DrawableText) { string text = ""; Behavior brain = citizen.Brain; while (brain != null) { text += brain.GetType().Name + System.Environment.NewLine; brain = brain.Child; } ((DrawableText)d).Text = text; } } } }
public override BehaviorStatus Update(Entity self, double dt) { BehaviorStatus status = base.Update(self, dt); if (Skip) { return(BehaviorStatus.SUCCESS); } FadeCounter -= dt; DrawableComponent drawable = self.Get <DrawableComponent>(); foreach (GameDrawable d in drawable.Get("Foreground")) { if (d is DrawableSprite) { if (FadeIn) { d.Alpha = 1f - ((float)FadeCounter / (float)FadeTime); } else { d.Alpha = ((float)FadeCounter / (float)FadeTime); } } } if (FadeCounter <= 0) { if (!FadeIn) { foreach (GameDrawable d in drawable.Get("Foreground")) { if (d is DrawableSprite) { d.Visible = false; } } } return(BehaviorStatus.SUCCESS); } return(BehaviorStatus.WAIT); }
public override void Shutdown() { base.Shutdown(); World.Entities.EntityAdded -= Entities_EntityAdded; World.Entities.EntityRemoved -= Entities_EntityRemoved; foreach (Entity e in brains) { DrawableComponent drawable = e.Get <DrawableComponent>(); foreach (GameDrawable d in drawable.Get("Text")) { d.Visible = false; } } brains.Clear(); }