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); }