Prepared UnitTest for StreamContainer.

WorldChunkRefactoring
Martin Felis 2023-08-28 14:48:54 +02:00
parent 53b1f7f414
commit d61ef6ba45
2 changed files with 68 additions and 8 deletions

View File

@ -14,7 +14,7 @@ public class StreamContainer : Spatial
private MeshInstance _bounds; private MeshInstance _bounds;
private Spatial _activeTiles; private Spatial _activeTiles;
private Queue<HexTile3D> _unusedTiles; private Queue<HexTile3D> _unusedTiles;
private TileWorld _tileWorld; public TileWorld TileWorld;
private MultiMeshInstance _tileMultiMesh; private MultiMeshInstance _tileMultiMesh;
// resources // resources
@ -47,7 +47,7 @@ public class StreamContainer : Spatial
public void SetWorld(TileWorld tileWorld) public void SetWorld(TileWorld tileWorld)
{ {
_tileWorld = tileWorld; TileWorld = tileWorld;
} }
// Called when the node enters the scene tree for the first time. // Called when the node enters the scene tree for the first time.
@ -71,7 +71,7 @@ public class StreamContainer : Spatial
boundsTransform = boundsTransform.Scaled(new Vector3(Dimensions.x, 1, Dimensions.y)); boundsTransform = boundsTransform.Scaled(new Vector3(Dimensions.x, 1, Dimensions.y));
_bounds.Transform = boundsTransform; _bounds.Transform = boundsTransform;
_tileWorld = GetNode<TileWorld>(World); TileWorld = GetNode<TileWorld>(World);
} }
@ -186,9 +186,9 @@ public class StreamContainer : Spatial
{ {
HexTile3D tile3D = _unusedTiles.Dequeue(); HexTile3D tile3D = _unusedTiles.Dequeue();
tile3D.OffsetCoords = coord; tile3D.OffsetCoords = coord;
tile3D.Type = _tileWorld.GetTileTypeAtOffset(coord); tile3D.Type = TileWorld.GetTileTypeAtOffset(coord);
Transform tileTransform = tile3D.Transform; Transform tileTransform = tile3D.Transform;
tileTransform.origin.y = _tileWorld.GetHeightAtOffset(coord); tileTransform.origin.y = TileWorld.GetHeightAtOffset(coord);
tile3D.Transform = tileTransform; tile3D.Transform = tileTransform;
OnTileActivate(tile3D); OnTileActivate(tile3D);
@ -217,9 +217,9 @@ public class StreamContainer : Spatial
} }
Transform tileTransform = tile3D.Transform; Transform tileTransform = tile3D.Transform;
tileTransform.origin.y = _tileWorld.GetHeightAtOffset(offsetCoords); tileTransform.origin.y = TileWorld.GetHeightAtOffset(offsetCoords);
tile3D.Transform = tileTransform; tile3D.Transform = tileTransform;
tile3D.Type = _tileWorld.GetTileTypeAtOffset(offsetCoords); tile3D.Type = TileWorld.GetTileTypeAtOffset(offsetCoords);
_tileToInstanceIndex[tile3D] = _tileToInstanceIndex.Count; _tileToInstanceIndex[tile3D] = _tileToInstanceIndex.Count;
@ -291,7 +291,7 @@ public class StreamContainer : Spatial
} }
Transform tileTransform = tile.GlobalTransform; Transform tileTransform = tile.GlobalTransform;
tileTransform.origin.y = _tileWorld.GetHeightAtOffset(tile.OffsetCoords); tileTransform.origin.y = TileWorld.GetHeightAtOffset(tile.OffsetCoords);
tile.GlobalTransform = tileTransform; tile.GlobalTransform = tileTransform;
OnTileActivate(tile); OnTileActivate(tile);

View File

@ -0,0 +1,60 @@
using System;
using Godot;
using GodotComponentTest.utils;
using GoDotTest;
using Xunit;
namespace GodotComponentTest.tests;
public class StreamContainerTests : TestClass
{
private Node _testScene = null;
private TileWorld _tileWorld;
private StreamContainer _streamContainer;
private PackedScene _tileWorldScene = GD.Load<PackedScene>("res://scenes/TileWorld.tscn");
private PackedScene _streamContainerScene = GD.Load<PackedScene>("res://scenes/StreamContainer.tscn");
public StreamContainerTests(Node testScene) : base(testScene)
{
_testScene = testScene;
}
[Setup]
public void Setup()
{
_tileWorld = (TileWorld) _tileWorldScene.Instance();
_tileWorld.HexGrid = new HexGrid();
_testScene.AddChild(_tileWorld);
_streamContainer = (StreamContainer) _streamContainerScene.Instance();
foreach (Node node in _testScene.GetChildren())
{
if (node is TileWorld)
{
_streamContainer.World = node.GetPath();
}
}
_testScene.AddChild(_streamContainer);
}
[Cleanup]
public void Cleanup()
{
foreach (Node node in _testScene.GetChildren())
{
node.QueueFree();
}
_streamContainer.QueueFree();
_tileWorld.QueueFree();
}
[Test]
public void Plane2DDistSimple()
{
// _streamContainer.UpdateRects(new Vector2(0, 0));
// _streamContainer.UpdateRects(new Vector2(1, 0));
}
}