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"));
        }
示例#3
0
        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);
        }
示例#4
0
        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"));
        }
示例#5
0
        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"));
        }
示例#6
0
        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;
        }