public void DisplayWeaponFireFrame(WeaponFireFrame frame) { for (int i = 0; i < frame.WeaponFires.Count; i++) { var weaponFire = frame.WeaponFires[i]; var position = (weaponFire.ShooterPosition / PlaybackScale) - Map.Offset; WeaponGraphicsManager.Instance.CreateWeaponFireGraphics(weaponFire, position, PlaybackMode); } }
public void OnWeaponFired(object sender, object e) { if (!_parser.MatchStarted) { return; } var eventArgs = (WeaponFiredEventArgs)e; var parser = (DemoParser)sender; if (NadePlaybackManager.Instance.AddNadeFrame(parser, eventArgs)) { return; } var shooter = eventArgs.Shooter; var weaponFire = new WeaponFire() { ShooterSteamID = shooter.SteamID.ToString(), Weapon = new PartialWeapon(eventArgs.Weapon), ShooterPosition = new Vector3(-shooter.Position.X, shooter.Position.Z, -shooter.Position.Y), ViewX = shooter.ViewDirectionX, ViewY = shooter.ViewDirectionY }; WeaponFireFrame frame = null; if (PlaybackManager.Instance.WeaponFiredFrames.Any()) { frame = PlaybackManager.Instance.WeaponFiredFrames.Last(); } if (frame == null || frame.Tick != parser.CurrentTick) { frame = new WeaponFireFrame() { Tick = parser.CurrentTick, WeaponFires = new List <WeaponFire>() { weaponFire } }; PlaybackManager.Instance.WeaponFiredFrames.Add(frame); } else { frame.WeaponFires.Add(weaponFire); } }