public bool AddNadeFrame(DemoParser parser, WeaponFiredEventArgs eventArgs) { if (eventArgs.Weapon.Class != EquipmentClass.Grenade) { return(false); } var nadeThrow = new NadeThrow() { NadeType = eventArgs.Weapon.Weapon, Thrower = eventArgs.Shooter.SteamID.ToString(), Position = new Vector3(-eventArgs.Shooter.Position.X, eventArgs.Shooter.Position.Z, -eventArgs.Shooter.Position.Y), Direction = DemoInfoHelper.ViewAnglesToVector3(eventArgs.Shooter.ViewDirectionX, eventArgs.Shooter.ViewDirectionY) }; NadeThrowFrame frame = null; if (NadeThrowFrames.Count != 0) { frame = NadeThrowFrames.Last(); } if (frame == null || frame.Tick != parser.CurrentTick) { frame = new NadeThrowFrame() { Tick = parser.CurrentTick, Round = MatchInfoManager.Instance.Rounds.Last().Number, NadeThrows = new List <NadeThrow>() { nadeThrow } }; NadeThrowFrames.Add(frame); } else { frame.NadeThrows.Add(nadeThrow); } return(true); }
public WeaponFireGraphics CreateWeaponFireGraphics(WeaponFire weaponFire, Vector3 position, PlaybackMode playbackMode) { var weaponFireClone = Instantiate(WeaponFirePrefab); var weaponGraphics = weaponFireClone.GetComponent <WeaponFireGraphics>(); weaponGraphics.Direction = playbackMode == PlaybackMode.ThreeD ? DemoInfoHelper.ViewAnglesToVector3(weaponFire.ViewX, weaponFire.ViewY) : DemoInfoHelper.ViewAnglesToVector3(weaponFire.ViewX, 0); weaponGraphics.HasEndPoint = false; position += PlayersManager.HeadOffset; if (playbackMode == PlaybackMode.TwoD) { position.y = 0.3f; } weaponFireClone.transform.position = weaponGraphics.StartPoint = position; return(weaponGraphics); }
public void UpdateViewAngle(float viewX, float viewY) { TargetViewDirection = DemoInfoHelper.ViewAnglesToVector3(viewX, viewY); }