Files
Christopher Whitley 3a5269cfea Reorganization (#909)
* Removed MonoGame.Extended.Animations
This project was just a shell that referenced MonoGame.Extended.csproj. It added no additional functionality.

* Rework BitmapFonts for new project organization.

* Cleanup namespaces

* Cleanup namespaces

* Move MonoGame.Extended.Collision into base project

* Moved MonoGame.Extended.Entities into base project

* Moved MonoGame.Extended.Graphics into base project

* Moved MonoGame.Extended.Graphics into base project

* Moved MonoGame.Extended.Input into base project

* Moved MonoGame.Extended.Particles into base project

* Moved MonoGame.Extended.Tiled into base project

* Moved MonoGame.Extended.Tiled into base project

* Moved MonoGame.Extended.Tweening into base project

* Removing SpriteFactory support
This will be added back in at a later date once the SpriteFactory application has been updated

* Update TexturePacker content import support

* Only needs to reference base project now

* Moved to Serialization namespace

* Moved  Json serialization to Serialization.Json namespace

* Moved TexturePacker content DTOs to the Content namespace

* Renamed to Texture2DRegion.Extensions.cs

* Cleaned up namespace

* Moved ReadTiledMapProperties into the ContentReaderExtensions

* Created an Extended content manager

* Moved Tweening tests to base test project

* Moved Tiled test to base test project

* Moved Entities Tests to base test project

* Moved Entities tests to base test project

* Moved Collisions tests to base test project

* Moved Pipeline Tiled test to Pipeline tests project

* Use `var` instead of full type name

* Add Tiled namespace

* Correct `Metadata` property name to new `Meta` property name

* Cleanup namespace

* Add effects namespace

* Add Content namespace

* Update using statements to new namespaces

* Move Pipeline Tiled tests to Pipeline test project

* Use correct namespace

* Use `var` instead of typing out nested types

* Remove unused namespaces

* Update to new namespaces

* Remove unused namespaces

* Update to new namespaces

* Remove dependency on Particles csproj

* Update included content on build

* Add embedded resources

* Merge multi csproj structure into single csproj structure

* TexturePackerPoint properties should be `double` not `int`

* Update csproj

* Use dotnet tool to rebuild effects

* Move effect compilation to targets file
This will ensure the effects are always built

* Fix workflow to build effects on linux

* Set wine path

* Export instead of using actions env section

* Revert back to manual effect compile until automation can be solved on GitHub Ubuntu runner
2024-07-06 23:46:20 -04:00

70 lines
2.1 KiB
C#

using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using MonoGame.Extended.ECS.Systems;
namespace MonoGame.Extended.ECS.Tests;
public class WorldManagerTests
{
private GameTime _gameTime = new GameTime(TimeSpan.Zero, TimeSpan.FromMilliseconds(16));
[Fact]
public void CrudEntity()
{
var dummySystem = new DummySystem();
var worldBuilder = new WorldBuilder();
worldBuilder.AddSystem(dummySystem);
var world = worldBuilder.Build();
world.Initialize();
var entity = world.CreateEntity();
entity.Attach(new Transform2());
world.Update(_gameTime);
world.Draw(_gameTime);
var otherEntity = world.GetEntity(entity.Id);
Assert.Equal(entity, otherEntity);
Assert.True(otherEntity.Has<Transform2>());
Assert.Contains(entity.Id, dummySystem.AddedEntitiesId);
entity.Destroy();
world.Update(_gameTime);
world.Draw(_gameTime);
otherEntity = world.GetEntity(entity.Id);
Assert.Null(otherEntity);
Assert.Contains(entity.Id, dummySystem.RemovedEntitiesId);
}
private class DummyComponent { }
private class DummySystem : EntitySystem, IUpdateSystem, IDrawSystem
{
public List<int> AddedEntitiesId { get; } = new();
public List<int> RemovedEntitiesId { get; } = new();
public DummySystem() : base(Aspect.All(typeof(DummyComponent))) { }
public override void Initialize(IComponentMapperService mapperService)
{
// Do NOT initialize mapper in order to test: https://github.com/craftworkgames/MonoGame.Extended/issues/707
}
public void Draw(GameTime gameTime) { }
public void Update(GameTime gameTime) { }
protected override void OnEntityAdded(int entityId)
{
base.OnEntityAdded(entityId);
AddedEntitiesId.Add(entityId);
}
protected override void OnEntityRemoved(int entityId)
{
base.OnEntityRemoved(entityId);
RemovedEntitiesId.Add(entityId);
}
}
}