public FootprintPlaceBuildingPreviewPreview(WorldRenderer wr, ActorInfo ai, FootprintPlaceBuildingPreviewInfo info, TypeDictionary init)
        {
            ActorInfo   = ai;
            this.info   = info;
            decorations = ActorInfo.TraitInfos <IPlaceBuildingDecorationInfo>().ToArray();

            var world = wr.World;

            CenterOffset        = ActorInfo.TraitInfo <BuildingInfo>().CenterOffset(world);
            topLeftScreenOffset = -wr.ScreenPxOffset(CenterOffset);

            var tileset = world.Map.Tileset.ToLowerInvariant();

            if (world.Map.Rules.Sequences.HasSequence("overlay", $"build-valid-{tileset}"))
            {
                var validSequence = world.Map.Rules.Sequences.GetSequence("overlay", $"build-valid-{tileset}");
                validTile  = validSequence.GetSprite(0);
                validAlpha = validSequence.GetAlpha(0);
            }
            else
            {
                var validSequence = world.Map.Rules.Sequences.GetSequence("overlay", "build-valid");
                validTile  = validSequence.GetSprite(0);
                validAlpha = validSequence.GetAlpha(0);
            }

            var blockedSequence = world.Map.Rules.Sequences.GetSequence("overlay", "build-invalid");

            blockedTile  = blockedSequence.GetSprite(0);
            blockedAlpha = blockedSequence.GetAlpha(0);
        }
        public FootprintPlaceBuildingPreviewPreview(WorldRenderer wr, ActorInfo ai, FootprintPlaceBuildingPreviewInfo info, TypeDictionary init)
        {
            actorInfo   = ai;
            this.info   = info;
            decorations = actorInfo.TraitInfos <IPlaceBuildingDecorationInfo>().ToArray();

            var world = wr.World;

            centerOffset        = actorInfo.TraitInfo <BuildingInfo>().CenterOffset(world);
            topLeftScreenOffset = -wr.ScreenPxOffset(centerOffset);

            var tileset = world.Map.Tileset.ToLowerInvariant();

            if (world.Map.Rules.Sequences.HasSequence("overlay", "build-valid-{0}".F(tileset)))
            {
                buildOk = world.Map.Rules.Sequences.GetSequence("overlay", "build-valid-{0}".F(tileset)).GetSprite(0);
            }
            else
            {
                buildOk = world.Map.Rules.Sequences.GetSequence("overlay", "build-valid").GetSprite(0);
            }
            buildBlocked = world.Map.Rules.Sequences.GetSequence("overlay", "build-invalid").GetSprite(0);
        }