Begin script abstraction
This commit is contained in:
76
ReallifeGamemode.Server.Core.API/Position.cs
Normal file
76
ReallifeGamemode.Server.Core.API/Position.cs
Normal file
@@ -0,0 +1,76 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
|
||||
namespace ReallifeGamemode.Server.Core.API
|
||||
{
|
||||
public class Position
|
||||
{
|
||||
public double X { get; set; }
|
||||
|
||||
public double Y { get; set; }
|
||||
|
||||
public double Z { get; set; }
|
||||
|
||||
public Position()
|
||||
{
|
||||
X = 0.0;
|
||||
Y = 0.0;
|
||||
Z = 0.0;
|
||||
}
|
||||
|
||||
public Position(double x, double y, double z)
|
||||
{
|
||||
X = x;
|
||||
Y = y;
|
||||
Z = z;
|
||||
}
|
||||
|
||||
public Position(float x, float y, float z)
|
||||
{
|
||||
X = x;
|
||||
Y = y;
|
||||
Z = z;
|
||||
}
|
||||
public Position(decimal x, decimal y, decimal z)
|
||||
{
|
||||
X = (double)x;
|
||||
Y = (double)y;
|
||||
Z = (double)z;
|
||||
}
|
||||
|
||||
public Position(int x, int y, int z)
|
||||
{
|
||||
X = x;
|
||||
Y = y;
|
||||
Z = z;
|
||||
}
|
||||
|
||||
public Position Add(Position toAdd)
|
||||
{
|
||||
return new Position(X + toAdd.X, Y + toAdd.Y, Z + toAdd.Z);
|
||||
}
|
||||
|
||||
public Position Subtract(Position toSubtract)
|
||||
{
|
||||
return new Position(X - toSubtract.X, Y - toSubtract.Y, Z - toSubtract.Z);
|
||||
}
|
||||
|
||||
public double DistanceTo(Position position)
|
||||
{
|
||||
var x = position.X - X;
|
||||
var y = position.Y - Y;
|
||||
var z = position.Z - Z;
|
||||
|
||||
return Math.Sqrt(x * x + y * y + z * z);
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
var x = Math.Round(this.X, 2).ToString(CultureInfo.InvariantCulture);
|
||||
var y = Math.Round(this.Y, 2).ToString(CultureInfo.InvariantCulture);
|
||||
var z = Math.Round(this.Z, 2).ToString(CultureInfo.InvariantCulture);
|
||||
|
||||
return $"{x}, {y}, {z}";
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user