Basic universe management, generation and simulation flow
This commit is contained in:
parent
4c078dbede
commit
78fceeb95e
29 changed files with 664 additions and 29 deletions
|
|
@ -1,4 +1,71 @@
|
|||
using Godot;
|
||||
|
||||
public abstract class GameObject
|
||||
{
|
||||
public abstract void Simulate(double delta);
|
||||
public Sector CurrentSector { get; private set; }
|
||||
public Vector3 LocalCoordinates;
|
||||
public Vector3Dec GlobalCoordinates;
|
||||
|
||||
public GameObject(Sector sector, Vector3 localCoordinates)
|
||||
{
|
||||
CurrentSector = sector;
|
||||
LocalCoordinates = localCoordinates;
|
||||
|
||||
GlobalCoordinates = new
|
||||
(
|
||||
sector.GlobalStartCoordinates.X + (decimal)localCoordinates.X,
|
||||
sector.GlobalStartCoordinates.Y + (decimal)localCoordinates.Y,
|
||||
sector.GlobalStartCoordinates.Z + (decimal)localCoordinates.Z
|
||||
);
|
||||
}
|
||||
|
||||
public GameObject(Sector sector, double localX, double localY, double localZ)
|
||||
{
|
||||
CurrentSector = sector;
|
||||
LocalCoordinates = new(localX, localY, localZ);
|
||||
|
||||
GlobalCoordinates = new
|
||||
(
|
||||
sector.GlobalStartCoordinates.X + (decimal)localX,
|
||||
sector.GlobalStartCoordinates.Y + (decimal)localY,
|
||||
sector.GlobalStartCoordinates.Z + (decimal)localZ
|
||||
);
|
||||
}
|
||||
|
||||
public GameObject(Vector3Dec coordinates)
|
||||
{
|
||||
GlobalCoordinates = coordinates;
|
||||
UpdateSector();
|
||||
}
|
||||
|
||||
public GameObject(decimal x, decimal y, decimal z)
|
||||
{
|
||||
GlobalCoordinates = new(x, y, z);
|
||||
UpdateSector();
|
||||
}
|
||||
|
||||
public Vector3 GetSectorCoordinates()
|
||||
{
|
||||
Vector3Dec relativeSectorCoordinates = GlobalCoordinates - CurrentSector.GlobalStartCoordinates;
|
||||
|
||||
return relativeSectorCoordinates.ToVector3();
|
||||
}
|
||||
|
||||
public bool IsInSector()
|
||||
{
|
||||
return Helpers.IsInsideArea(CurrentSector.Size, GetSectorCoordinates());
|
||||
}
|
||||
|
||||
public void UpdateSector()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public virtual void Simulate(double delta)
|
||||
{
|
||||
if (!IsInSector())
|
||||
{
|
||||
UpdateSector();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue