using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace VoxelIsometricRenderer { public static class PlayerObject { static int PositionX = 0; static int PositionY = 0; static int PositionZ = 0; static float PrecisePositionX = 0.0f; static float PrecisePositionY = 0.0f; static float PrecisePositionZ = 0.0f; public static int[] GetPos() { return new int[] { PositionX, PositionY, PositionZ }; } public static float[] GetPresicePos() { return new float[] { PrecisePositionX, PrecisePositionY, PrecisePositionZ }; } public static void SetPos(int[] pos, bool Reoccure) { PositionX = pos[0]; PositionY = pos[1]; PositionZ = pos[2]; if (Reoccure) SetPrecisePos(new float[] { pos[0], pos[1], pos[2] },false); } public static void SetPrecisePos(float[] pos, bool Reoccure) { PrecisePositionX = pos[0]; PrecisePositionY = pos[1]; PrecisePositionZ = pos[2]; if(Reoccure)SetPos(new int[] {(int)pos[0], (int)pos[1],(int)pos[2] },false); } public static void IncrementPos(int Axis, int Increment) { IncrementPos(Axis, Increment, true); } public static void IncrementPos(int Axis, int Increment,bool Reoccure) { switch (Axis) { case 0: PositionX += Increment; break; case 1: PositionY += Increment; break; case 2: PositionZ += Increment; break; } if (Reoccure) SetPrecisePos(new float[] { (float)PositionX, (float)PositionY, (float)PositionZ },false); } public static void IncrementPrecisePos(int Axis, float Increment, bool Reoccure) { switch (Axis) { case 0: PrecisePositionX += Increment; break; case 1: PrecisePositionY += Increment; break; case 2: PrecisePositionZ += Increment; break; } if (Reoccure) SetPos(new int[] {(int)PrecisePositionX, (int)PrecisePositionY, (int)PrecisePositionZ },false); } public static void SetSpecificPos(int Axis, int Pos, bool Reoccure) { switch (Axis) { case 0:PositionX = Pos; break; case 1: PositionY = Pos; break; case 2: PositionZ = Pos; break; } if (Reoccure) SetPrecisePos(new float[] { PositionX, PositionY, PositionZ },false); } } }