Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
Gallimathias committed Jul 25, 2020
2 parents fc933ea + ddd9d58 commit 6a03bfd
Show file tree
Hide file tree
Showing 248 changed files with 7,017 additions and 10,369 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -303,4 +303,5 @@ paket-files/

# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
*.pyc
/OctoAwesome/OctoAwesome.Client/Content/engenious.CreatedContent.Content.dll
11 changes: 6 additions & 5 deletions OctoAwesome/OctoAwesome.Basics/ComplexPlanet.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public class ComplexPlanet : Planet
public float[,,] CloudMap { get; private set; }

public SurfaceBiomeGenerator BiomeGenerator { get; private set; }

/// <summary>
/// Konstruktor des komplexen Map-Generators
/// </summary>
Expand All @@ -29,22 +29,23 @@ public class ComplexPlanet : Planet
public ComplexPlanet(int id, Guid universe, Index3 size, IMapGenerator generator, int seed, int averageDensity = 5510)
: base(id, universe, size, seed)
{
Generator = generator;

// Berechnung der Gravitation auf Basis des Newton'schen Grundgesetzes und
// der Annahme einer Kugel mit gleicher Oberfläche wie der rechteckige Planet.
var radius = Math.Sqrt((Size.X * Size.Y) / (16 * Math.PI));
Gravity = (float)((4f / 3f) * Math.PI * GravitationalConstant * averageDensity * radius);

Initalize();
}

public ComplexPlanet() : base()
{
Initalize();
//Initalize();
}

public void Deserialize(BinaryReader reader, IDefinitionManager definitionManager)
public override void Deserialize(BinaryReader reader)
{
base.Deserialize(reader, definitionManager);
base.Deserialize(reader);
Initalize();
}

Expand Down
48 changes: 21 additions & 27 deletions OctoAwesome/OctoAwesome.Basics/ComplexPlanetGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,8 @@ namespace OctoAwesome.Basics
{
public class ComplexPlanetGenerator : IMapGenerator
{
public IPlanet GeneratePlanet(Guid universe, int id, int seed)
{
Index3 size = new Index3(12, 12, 3);
//TODO: Ist es gewollt, das hier der Generator zwei mal reingegeben wird?
ComplexPlanet planet = new ComplexPlanet(id, universe, size, this, seed)
{
Generator = this
};
return planet;
}
public IPlanet GeneratePlanet(Guid universe, int id, int seed)
=> new ComplexPlanet(id, universe, new Index3(12, 12, 3), this, seed);

public IChunkColumn GenerateColumn(IDefinitionManager definitionManager, IPlanet planet, Index2 index)
{
Expand Down Expand Up @@ -50,7 +42,7 @@ public IChunkColumn GenerateColumn(IDefinitionManager definitionManager, IPlanet

IChunk[] chunks = new IChunk[planet.Size.Z];
for (int i = 0; i < planet.Size.Z; i++)
chunks[i] = new Chunk(new Index3(index, i), planet.Id);
chunks[i] = new Chunk(new Index3(index, i), planet);

int obersteSchicht;
bool surfaceBlock;
Expand All @@ -68,6 +60,7 @@ public IChunkColumn GenerateColumn(IDefinitionManager definitionManager, IPlanet
{
for (int z = Chunk.CHUNKSIZE_Z - 1; z >= 0; z--)
{
int flatIndex = Chunk.GetFlatIndex(x, y, z);
int absoluteZ = (z + (i * Chunk.CHUNKSIZE_Z));

if (absoluteZ <= localHeightmap[x, y] * localPlanet.Size.Z * Chunk.CHUNKSIZE_Z)
Expand All @@ -78,58 +71,59 @@ public IChunkColumn GenerateColumn(IDefinitionManager definitionManager, IPlanet

if ((ozeanSurface || surfaceBlock) && (absoluteZ <= (localPlanet.BiomeGenerator.SeaLevel + 2)) && (absoluteZ >= (localPlanet.BiomeGenerator.SeaLevel - 2)))
{
chunks[i].SetBlock(x, y, z, sandIndex);

chunks[i].Blocks[flatIndex] = sandIndex;
}
else if (temp >= 35)
{
chunks[i].SetBlock(x, y, z, sandIndex);
chunks[i].Blocks[flatIndex] = sandIndex;
}
else if (absoluteZ >= localPlanet.Size.Z * Chunk.CHUNKSIZE_Z * 0.6f)
{
if (temp > 12)
chunks[i].SetBlock(x, y, z, groundIndex);
chunks[i].Blocks[flatIndex] = groundIndex;
else
chunks[i].SetBlock(x, y, z, stoneIndex);
chunks[i].Blocks[flatIndex] = stoneIndex;
}
else if (temp >= 8)
{
if (surfaceBlock && !ozeanSurface)
{
chunks[i].SetBlock(x, y, z, grassIndex);
chunks[i].Blocks[flatIndex] = grassIndex;
surfaceBlock = false;
}
else
{
chunks[i].SetBlock(x, y, z, groundIndex);
chunks[i].Blocks[flatIndex] = groundIndex;
}
}
else if (temp <= 0)
{
if (surfaceBlock && !ozeanSurface)
{
chunks[i].SetBlock(x, y, z, snowIndex);
chunks[i].Blocks[flatIndex] = snowIndex;
surfaceBlock = false;
}
else
{
chunks[i].SetBlock(x, y, z, groundIndex);
chunks[i].Blocks[flatIndex] = groundIndex;
}
}
else
{
chunks[i].SetBlock(x, y, z, groundIndex);
chunks[i].Blocks[flatIndex] = groundIndex;
}
obersteSchicht--;
}
else
{
chunks[i].SetBlock(x, y, z, stoneIndex);
chunks[i].Blocks[flatIndex] = stoneIndex;
}
}
else if ((z + (i * Chunk.CHUNKSIZE_Z)) <= localPlanet.BiomeGenerator.SeaLevel)
{

chunks[i].SetBlock(x, y, z, waterIndex);
chunks[i].Blocks[flatIndex] = waterIndex;
ozeanSurface = true;
}

Expand All @@ -138,7 +132,7 @@ public IChunkColumn GenerateColumn(IDefinitionManager definitionManager, IPlanet
}
}

ChunkColumn column = new ChunkColumn(chunks, planet.Id, index);
ChunkColumn column = new ChunkColumn(chunks, planet, index);
column.CalculateHeights();
return column;
}
Expand All @@ -147,16 +141,16 @@ public IPlanet GeneratePlanet(Stream stream)
{
IPlanet planet = new ComplexPlanet();
using(var reader = new BinaryReader(stream))
planet.Deserialize(reader, null);
planet.Deserialize(reader);
planet.Generator = this;
return planet;
}

public IChunkColumn GenerateColumn(Stream stream, IDefinitionManager definitionManager, int planetId, Index2 index)
public IChunkColumn GenerateColumn(Stream stream, IPlanet planet, Index2 index)
{
IChunkColumn column = new ChunkColumn();
IChunkColumn column = new ChunkColumn(planet);
using(var reader = new BinaryReader(stream))
column.Deserialize(reader, definitionManager);
column.Deserialize(reader);
return column;
}
}
Expand Down
12 changes: 6 additions & 6 deletions OctoAwesome/OctoAwesome.Basics/DebugMapGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ public IChunkColumn GenerateColumn(IDefinitionManager definitionManager, IPlanet

IChunk[] result = new IChunk[planet.Size.Z];

ChunkColumn column = new ChunkColumn(result, planet.Id, index);
ChunkColumn column = new ChunkColumn(result, planet, index);


for (int layer = 0; layer < planet.Size.Z; layer++)
result[layer] = new Chunk(new Index3(index.X, index.Y, layer), planet.Id);
result[layer] = new Chunk(new Index3(index.X, index.Y, layer), planet);

int part = (planet.Size.Z * Chunk.CHUNKSIZE_Z) / 4;

Expand Down Expand Up @@ -62,17 +62,17 @@ public IPlanet GeneratePlanet(Stream stream)
{
IPlanet planet = new Planet();
using (var reader = new BinaryReader(stream))
planet.Deserialize(reader, null);
planet.Deserialize(reader);
return planet;
}



public IChunkColumn GenerateColumn(Stream stream, IDefinitionManager definitionManager, int planetId, Index2 index)
public IChunkColumn GenerateColumn(Stream stream, IPlanet planet, Index2 index)
{
IChunkColumn column = new ChunkColumn();
IChunkColumn column = new ChunkColumn(planet);
using (var reader = new BinaryReader(stream))
column.Deserialize(reader, definitionManager);
column.Deserialize(reader);
return column;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public override void Init(IDefinitionManager definitionManager)
water = definitionManager.GetDefinitionIndex<WaterBlockDefinition>();
}

public override void PlantTree(IDefinitionManager definitionManager, IPlanet planet, Index3 index, LocalBuilder builder, int seed)
public override void PlantTree(IPlanet planet, Index3 index, LocalBuilder builder, int seed)
{
ushort ground = builder.GetBlock(0, 0, -1);
if (ground == water) return;
Expand All @@ -59,10 +59,12 @@ public override void PlantTree(IDefinitionManager definitionManager, IPlanet pla

builder.FillSphere(0, 0, height, radius, leave);

var infos = new BlockInfo[height + 2];
for (int i = 0; i < height + 2; i++)
{
builder.SetBlock(0, 0, 0 + i, wood);
infos[i] = (0, 0, i, wood);
}
builder.SetBlocks(false, infos);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,16 +36,20 @@ public override void Init(IDefinitionManager definitionManager)
water = definitionManager.GetDefinitionIndex<WaterBlockDefinition>();
}

public override void PlantTree(IDefinitionManager definitionManager, IPlanet planet, Index3 index, LocalBuilder builder, int seed)
public override void PlantTree(IPlanet planet, Index3 index, LocalBuilder builder, int seed)
{
ushort ground = builder.GetBlock(0, 0, -1);
if (ground == water) return;

Random rand = new Random(seed);
int height = rand.Next(2, 4);

var infos = new BlockInfo[height ];
for (int i = 0; i < height; i++)
builder.SetBlock(0, 0, i, cactus);
{
infos[i] = (0, 0, i, cactus);
}
builder.SetBlocks(false, infos);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public override int GetDensity(IPlanet planet, Index3 index)
return 4;
}

public override void PlantTree(IDefinitionManager definitionManager, IPlanet planet, Index3 index, LocalBuilder builder, int seed)
public override void PlantTree(IPlanet planet, Index3 index, LocalBuilder builder, int seed)
{
ushort ground = builder.GetBlock(0, 0, -1);
if (ground == water) return;
Expand All @@ -59,10 +59,12 @@ public override void PlantTree(IDefinitionManager definitionManager, IPlanet pla

builder.FillSphere(0, 0, height, radius, leave);

var infos = new BlockInfo[height +2];
for (int i = 0; i < height + 2; i++)
{
builder.SetBlock(0, 0, 0 + i, wood);
infos[i] = (0, 0, i, wood);
}
builder.SetBlocks(false, infos);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public override void Init(IDefinitionManager definitionManager)
water = definitionManager.GetDefinitionIndex<WaterBlockDefinition>();
}

public override void PlantTree(IDefinitionManager definitionManager, IPlanet planet, Index3 index, LocalBuilder builder, int seed)
public override void PlantTree(IPlanet planet, Index3 index, LocalBuilder builder, int seed)
{
ushort ground = builder.GetBlock(0, 0, -1);
if (ground == water) return;
Expand All @@ -59,10 +59,13 @@ public override void PlantTree(IDefinitionManager definitionManager, IPlanet pla

builder.FillSphere(0, 0, height, radius, leave);

var infos = new BlockInfo[height + 2];
for (int i = 0; i < height + 2; i++)
{
builder.SetBlock(0, 0, 0 + i, wood);
infos[i] = (0, 0, i, wood);
}
builder.SetBlocks(false, infos);

}
}
}
7 changes: 5 additions & 2 deletions OctoAwesome/OctoAwesome.Basics/Entities/WauziEntity.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public WauziEntity() : base()

protected override void OnInitialize(IResourceManager manager)
{
Cache = new LocalChunkCache(manager.GlobalChunkCache, true, 2, 1);
//Cache = new LocalChunkCache(manager.GlobalChunkCache, true, 2, 1);
}

public override void Update(GameTime gameTime)
Expand All @@ -46,14 +46,17 @@ public override void Update(GameTime gameTime)

public override void RegisterDefault()
{
Components.AddComponent(new PositionComponent() { Position = new Coordinate(0, new Index3(0, 0, 200), new Vector3(0, 0, 0)) });
var posComponent = Components.GetComponent<PositionComponent>() ?? new PositionComponent() { Position = new Coordinate(0, new Index3(0, 0, 200), new Vector3(0, 0, 0)) };

Components.AddComponent(posComponent);
Components.AddComponent(new GravityComponent());
Components.AddComponent(new BodyComponent() { Mass = 50f, Height = 2f, Radius = 1.5f });
Components.AddComponent(new BodyPowerComponent() { Power = 600f, JumpTime = 120 });
Components.AddComponent(new MoveableComponent());
Components.AddComponent(new BoxCollisionComponent());
Components.AddComponent(new ControllableComponent());
Components.AddComponent(new RenderComponent() { Name = "Wauzi", ModelName = "dog", TextureName = "texdog", BaseZRotation = -90 }, true);
Components.AddComponent(new LocalChunkCacheComponent(posComponent.Planet.GlobalChunkCache, 2, 1));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,17 @@ public sealed class BodyPowerComponent : PowerComponent
{
public int JumpTime { get; set; }

public override void Serialize(BinaryWriter writer, IDefinitionManager definitionManager)

public override void Serialize(BinaryWriter writer)
{
base.Serialize(writer, definitionManager);
base.Serialize(writer);

writer.Write(JumpTime);
}

public override void Deserialize(BinaryReader reader, IDefinitionManager definitionManager)
public override void Deserialize(BinaryReader reader)
{
base.Deserialize(reader, definitionManager);
base.Deserialize(reader);

JumpTime = reader.ReadInt32();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,5 @@ public abstract class ForceComponent : EntityComponent
public Vector3 Force { get; set; }



}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,18 @@ public abstract class PowerComponent : EntityComponent
public float Power { get; set; }

public Vector3 Direction { get; set; }


public override void Serialize(BinaryWriter writer, IDefinitionManager definitionManager)
public override void Serialize(BinaryWriter writer)
{
base.Serialize(writer, definitionManager);
base.Serialize(writer);

writer.Write(Power);
}

public override void Deserialize(BinaryReader reader, IDefinitionManager definitionManager)
public override void Deserialize(BinaryReader reader)
{
base.Deserialize(reader, definitionManager);
base.Deserialize(reader);

Power = reader.ReadSingle();
}
Expand Down
Loading

0 comments on commit 6a03bfd

Please sign in to comment.