void DrawControlGroup(WorldRenderer wr, Actor self, float2 basePosition) { var group = self.World.Selection.GetControlGroupForActor(self); if (group == null) return; var pipImages = new Animation("pips"); pipImages.PlayFetchIndex("groups", () => (int)group); pipImages.Tick(); pipImages.Image.DrawAt(basePosition + new float2(-8, 1), wr.Palette("chrome")); }
void DrawControlGroup(WorldRenderer wr, Actor self, int2 basePosition) { var group = self.World.Selection.GetControlGroupForActor(self); if (group == null) return; var pipImages = new Animation("pips"); pipImages.PlayFetchIndex("groups", () => (int)group); pipImages.Tick(); var pos = wr.Viewport.WorldToViewPx(basePosition) - (0.5f * pipImages.Image.size).ToInt2() + new int2(9, 5); Game.Renderer.SpriteRenderer.DrawSprite(pipImages.Image, pos, wr.Palette("chrome")); }
IEnumerable<IRenderable> DrawControlGroup(WorldRenderer wr, Actor self, int2 basePosition) { var group = self.World.Selection.GetControlGroupForActor(self); if (group == null) yield break; var pipImages = new Animation(self.World, "pips"); var pal = wr.Palette(Info.Palette); pipImages.PlayFetchIndex("groups", () => (int)group); pipImages.Tick(); var pos = basePosition - (0.5f * pipImages.Image.Size).ToInt2() + new int2(9, 5); yield return new UISpriteRenderable(pipImages.Image, pos, 0, pal, 1f); }
public Parachute(Player owner, string image, float2 location, int altitude, Actor cargo) { this.location = location; this.altitude = altitude; this.cargo = cargo; this.owner = owner; anim = new Animation(image); if (anim.HasSequence("idle")) anim.PlayFetchIndex("idle", () => 0); else anim.PlayFetchIndex("stand", () => 0); anim.Tick(); paraAnim = new Animation("parach"); paraAnim.PlayThen("open", () => paraAnim.PlayRepeating("idle")); }
public Parachute(Player owner, float2 location, int altitude, Actor cargo) { this.location = location; this.altitude = altitude; this.cargo = cargo; var rs = cargo.Trait<RenderSimple>(); var image = rs.anim.Name; palette = rs.Palette(owner); anim = new Animation(image); if (anim.HasSequence("idle")) anim.PlayFetchIndex("idle", () => 0); else anim.PlayFetchIndex("stand", () => 0); anim.Tick(); paraAnim = new Animation("parach"); paraAnim.PlayThen("open", () => paraAnim.PlayRepeating("idle")); }
public Parachute(Player owner, PPos location, int altitude, Actor cargo) { this.location = location; this.altitude = altitude; this.cargo = cargo; var rs = cargo.Trait<RenderSimple>(); var image = rs.anim.Name; palette = rs.Palette(owner); anim = new Animation(image); if (anim.HasSequence("idle")) anim.PlayFetchIndex("idle", () => 0); else anim.PlayFetchIndex("stand", () => 0); anim.Tick(); var pai = cargo.Info.Traits.GetOrDefault<ParachuteAttachmentInfo>(); paraAnim = new Animation(pai != null ? pai.ParachuteSprite : "parach"); paraAnim.PlayThen("open", () => paraAnim.PlayRepeating("idle")); if (pai != null) offset = pai.Offset; }