12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- using UnityEngine;
- using CustomExtensions;
- using System;
- public struct InputState{
- public int Tick;
- public Vector2 Input;
- public override string ToString()
- {
- return $"tick: {Tick}, input: {Input}";
- }
- public override bool Equals(object obj)
- {
- InputState _obj = (InputState) obj;
- if(_obj.Input == Input){
- return true;
- }
- return false;
- }
- public bool CloseEnough(InputState other, float threshold) => Mathf.Abs((other.Input-Input).magnitude) < threshold;
- }
- public struct PlayerState{
- public int Tick;
- public Vector3 Position;
- public Quaternion Rotation;
- public override string ToString()
- {
- return $"tick: {Tick},pos: {Position}, rot: {Rotation}";
- }
-
- public override bool Equals(object obj)
- {
- PlayerState _obj = (PlayerState) obj;
- if(_obj.Position == Position && _obj.Rotation == Rotation){
- return true;
- }
- return false;
- }
- public bool CloseEnough(PlayerState other, float threshold) => Mathf.Abs((other.Position-Position).magnitude) < threshold && Rotation.Approximately(other.Rotation, threshold);
- public float Difference(PlayerState other){
- return (Mathf.Abs((other.Position-Position).magnitude) + Rotation.Difference(other.Rotation))/2f;
- }
- }
- public class Helpers{
- public static int unixTimestamp = (int)System.DateTime.UtcNow.Subtract(new System.DateTime(1970, 1, 1)).TotalSeconds;
-
- }
- namespace CustomExtensions{
- public static class QuaternionExtensions{
- public static bool Approximately(this Quaternion quatA, Quaternion value, float acceptableRange)
- {
- return 1 - Mathf.Abs(Quaternion.Dot(quatA, value)) < acceptableRange;
- }
- public static float Difference(this Quaternion quatA, Quaternion value){
- return 1 - Mathf.Abs(Quaternion.Dot(quatA, value));
- }
- public static long ToUnix(this DateTime time){
- return (long)time.Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds;
- }
- }
- }
|