mirror of
https://github.com/EggLinks/DanhengServer-OpenSource.git
synced 2026-01-02 20:26:03 +08:00
132 lines
2.1 KiB
C#
132 lines
2.1 KiB
C#
using EggLink.DanhengServer.Proto;
|
|
|
|
namespace EggLink.DanhengServer.Util;
|
|
|
|
public class Position
|
|
{
|
|
public Position(int x, int y, int z)
|
|
{
|
|
X = x;
|
|
Y = y;
|
|
Z = z;
|
|
}
|
|
|
|
public Position(Vector vector)
|
|
{
|
|
X = vector.X;
|
|
Y = vector.Y;
|
|
Z = vector.Z;
|
|
}
|
|
|
|
public Position()
|
|
{
|
|
X = 0;
|
|
Y = 0;
|
|
Z = 0;
|
|
}
|
|
|
|
public Position(Position position)
|
|
{
|
|
X = position.X;
|
|
Y = position.Y;
|
|
Z = position.Z;
|
|
}
|
|
|
|
public int X { get; set; }
|
|
public int Y { get; set; }
|
|
public int Z { get; set; }
|
|
|
|
public void Set(int x, int y, int z)
|
|
{
|
|
X = x;
|
|
Y = y;
|
|
Z = z;
|
|
}
|
|
|
|
public void Set(Position position)
|
|
{
|
|
X = position.X;
|
|
Y = position.Y;
|
|
Z = position.Z;
|
|
}
|
|
|
|
public void Set(Vector vector)
|
|
{
|
|
X = vector.X;
|
|
Y = vector.Y;
|
|
Z = vector.Z;
|
|
}
|
|
|
|
public void Add(int x, int y, int z)
|
|
{
|
|
X += x;
|
|
Y += y;
|
|
Z += z;
|
|
}
|
|
|
|
public void Add(Position position)
|
|
{
|
|
X += position.X;
|
|
Y += position.Y;
|
|
Z += position.Z;
|
|
}
|
|
|
|
public void Sub(int x, int y, int z)
|
|
{
|
|
X -= x;
|
|
Y -= y;
|
|
Z -= z;
|
|
}
|
|
|
|
public void Sub(Position position)
|
|
{
|
|
X -= position.X;
|
|
Y -= position.Y;
|
|
Z -= position.Z;
|
|
}
|
|
|
|
public void Mul(int x, int y, int z)
|
|
{
|
|
X *= x;
|
|
Y *= y;
|
|
Z *= z;
|
|
}
|
|
|
|
public void Mul(Position position)
|
|
{
|
|
X *= position.X;
|
|
Y *= position.Y;
|
|
Z *= position.Z;
|
|
}
|
|
|
|
public void Div(int x, int y, int z)
|
|
{
|
|
X /= x;
|
|
Y /= y;
|
|
Z /= z;
|
|
}
|
|
|
|
public void Div(Position position)
|
|
{
|
|
X /= position.X;
|
|
Y /= position.Y;
|
|
Z /= position.Z;
|
|
}
|
|
|
|
public Vector ToProto()
|
|
{
|
|
return new Vector
|
|
{
|
|
X = X,
|
|
Y = Y,
|
|
Z = Z
|
|
};
|
|
}
|
|
|
|
public long GetFast2dDist(Position pos)
|
|
{
|
|
long x = X - pos.X;
|
|
long z = Z - pos.Z;
|
|
return x * x + z * z;
|
|
}
|
|
} |