Ejemplo n.º 1
0
        public static BeamSheet GetBeam(string num)
        {
            IEffectAnim sheet;

            if (vfxCache.TryGetValue("Beam-" + num, out sheet))
            {
                return((BeamSheet)sheet);
            }

            try
            {
                if (System.IO.File.Exists(String.Format(BEAM_PATTERN, num)))
                {
                    using (FileStream stream = File.OpenRead(String.Format(BEAM_PATTERN, num)))
                    {
                        using (BinaryReader reader = new BinaryReader(stream))
                        {
                            sheet = BeamSheet.Load(reader);
                            vfxCache.Add("Beam-" + num, sheet);
                            return((BeamSheet)sheet);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                DiagManager.Instance.LogError(new Exception("Error loading " + String.Format(BEAM_PATTERN, num) + "\n", ex));
            }

            BeamSheet newSheet = BeamSheet.LoadError();

            vfxCache.Add("Beam-" + num, newSheet);
            return(newSheet);
        }
Ejemplo n.º 2
0
        public override void Draw(SpriteBatch spriteBatch, Loc offset)
        {
            if (Finished)
            {
                return;
            }

            Loc       drawLoc = MapLoc - offset + new Loc(GraphicsManager.TileSize / 2);
            BeamSheet sheet   = GraphicsManager.GetBeam(Anim.AnimIndex);

            sheet.DrawColumn(spriteBatch, new Vector2(drawLoc.X, drawLoc.Y - LocHeight), Anim.GetCurrentFrame(ActionTime, sheet.TotalFrames), Color.White * ((float)Anim.Alpha / 255));
        }