Implement basic networking
This commit is contained in:
parent
c320d9ddcb
commit
994823a9c3
25 changed files with 643 additions and 217 deletions
|
|
@ -4,15 +4,18 @@ using Godot;
|
|||
public class Universe
|
||||
{
|
||||
public Sector[,,] Sectors;
|
||||
public Vector3I Size;
|
||||
|
||||
public Universe(Vector3I size)
|
||||
{
|
||||
Sectors = new Sector[size.X, size.Y, size.Z];
|
||||
Size = size;
|
||||
}
|
||||
|
||||
public Universe(int sizeX, int sizeY, int sizeZ)
|
||||
{
|
||||
Sectors = new Sector[sizeX, sizeY, sizeZ];
|
||||
Size = new(sizeX, sizeY, sizeZ);
|
||||
}
|
||||
|
||||
public Sector GetSector(Vector3I coordinates)
|
||||
|
|
@ -25,6 +28,32 @@ public class Universe
|
|||
return Sectors[x, y, z];
|
||||
}
|
||||
|
||||
public bool IsInside(Vector3I sectorCoordinates, Vector3 localCoordinates)
|
||||
{
|
||||
Vector3 sectorSize = GameManager.Generator.GetSectorSize() / 2;
|
||||
Vector3I universeSize = GameManager.GameUniverse.Size;
|
||||
|
||||
if (
|
||||
sectorCoordinates.X == 0 && localCoordinates.X < -sectorSize.X ||
|
||||
sectorCoordinates.Y == 0 && localCoordinates.Y < -sectorSize.Y ||
|
||||
sectorCoordinates.Z == 0 && localCoordinates.Z < -sectorSize.Z
|
||||
)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (
|
||||
sectorCoordinates.X == universeSize.X - 1 && localCoordinates.X >= sectorSize.X ||
|
||||
sectorCoordinates.Y == universeSize.Y - 1 && localCoordinates.Y >= sectorSize.Y ||
|
||||
sectorCoordinates.Z == universeSize.Z - 1 && localCoordinates.Z >= sectorSize.Z
|
||||
)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public void ForEachSector(Action<Sector> action)
|
||||
{
|
||||
int sizeX = Sectors.GetLength(0);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue