This commit is contained in:
2026-02-12 11:18:51 +00:00
parent 414e52de9e
commit b0511f3830
4 changed files with 350 additions and 47 deletions

View File

@@ -0,0 +1,71 @@
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);
}
}
}