public TriggerEvent(double time, PhysicsObject myPhysicsObject, Action <PhysicsObject> callback, PhysicsObject otherPhysicsObject) { this.Time = time; this.myPhysicsObject = myPhysicsObject ?? throw new ArgumentNullException(nameof(myPhysicsObject)); this.callback = callback ?? throw new ArgumentNullException(nameof(callback)); this.otherPhysicsObject = otherPhysicsObject ?? throw new ArgumentNullException(nameof(otherPhysicsObject)); this.start_vx = myPhysicsObject.Vx; this.start_vy = myPhysicsObject.Vy; this.start_x = myPhysicsObject.X; this.start_y = myPhysicsObject.Y; }