@@ -28,6 +28,7 @@ public sealed class AmbientSoundSystem : SharedAmbientSoundSystem
|
|||||||
{
|
{
|
||||||
[Dependency] private readonly AmbientSoundTreeSystem _treeSys = default!;
|
[Dependency] private readonly AmbientSoundTreeSystem _treeSys = default!;
|
||||||
[Dependency] private readonly SharedAudioSystem _audio = default!;
|
[Dependency] private readonly SharedAudioSystem _audio = default!;
|
||||||
|
[Dependency] private readonly SharedTransformSystem _xformSystem = default!;
|
||||||
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
||||||
[Dependency] private readonly IGameTiming _gameTiming = default!;
|
[Dependency] private readonly IGameTiming _gameTiming = default!;
|
||||||
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
||||||
@@ -172,7 +173,7 @@ public sealed class AmbientSoundSystem : SharedAmbientSoundSystem
|
|||||||
|
|
||||||
_targetTime = _gameTiming.CurTime+TimeSpan.FromSeconds(_cooldown);
|
_targetTime = _gameTiming.CurTime+TimeSpan.FromSeconds(_cooldown);
|
||||||
|
|
||||||
var player = _playerManager.LocalPlayer?.ControlledEntity;
|
var player = _playerManager.LocalEntity;
|
||||||
if (!EntityManager.TryGetComponent(player, out TransformComponent? xform))
|
if (!EntityManager.TryGetComponent(player, out TransformComponent? xform))
|
||||||
{
|
{
|
||||||
ClearSounds();
|
ClearSounds();
|
||||||
@@ -198,13 +199,13 @@ public sealed class AmbientSoundSystem : SharedAmbientSoundSystem
|
|||||||
public readonly Dictionary<string, List<(float Importance, AmbientSoundComponent)>> SourceDict = new();
|
public readonly Dictionary<string, List<(float Importance, AmbientSoundComponent)>> SourceDict = new();
|
||||||
public readonly Vector2 MapPos;
|
public readonly Vector2 MapPos;
|
||||||
public readonly TransformComponent Player;
|
public readonly TransformComponent Player;
|
||||||
public readonly EntityQuery<TransformComponent> Query;
|
public readonly SharedTransformSystem TransformSystem;
|
||||||
|
|
||||||
public QueryState(Vector2 mapPos, TransformComponent player, EntityQuery<TransformComponent> query)
|
public QueryState(Vector2 mapPos, TransformComponent player, SharedTransformSystem transformSystem)
|
||||||
{
|
{
|
||||||
MapPos = mapPos;
|
MapPos = mapPos;
|
||||||
Player = player;
|
Player = player;
|
||||||
Query = query;
|
TransformSystem = transformSystem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -218,7 +219,7 @@ public sealed class AmbientSoundSystem : SharedAmbientSoundSystem
|
|||||||
|
|
||||||
var delta = xform.ParentUid == state.Player.ParentUid
|
var delta = xform.ParentUid == state.Player.ParentUid
|
||||||
? xform.LocalPosition - state.Player.LocalPosition
|
? xform.LocalPosition - state.Player.LocalPosition
|
||||||
: xform.WorldPosition - state.MapPos;
|
: state.TransformSystem.GetWorldPosition(xform) - state.MapPos;
|
||||||
|
|
||||||
var range = delta.Length();
|
var range = delta.Length();
|
||||||
if (range >= ambientComp.Range)
|
if (range >= ambientComp.Range)
|
||||||
@@ -244,7 +245,7 @@ public sealed class AmbientSoundSystem : SharedAmbientSoundSystem
|
|||||||
{
|
{
|
||||||
var query = GetEntityQuery<TransformComponent>();
|
var query = GetEntityQuery<TransformComponent>();
|
||||||
var metaQuery = GetEntityQuery<MetaDataComponent>();
|
var metaQuery = GetEntityQuery<MetaDataComponent>();
|
||||||
var mapPos = playerXform.MapPosition;
|
var mapPos = _xformSystem.GetMapCoordinates(playerXform);
|
||||||
|
|
||||||
// Remove out-of-range ambiences
|
// Remove out-of-range ambiences
|
||||||
foreach (var (comp, sound) in _playingSounds)
|
foreach (var (comp, sound) in _playingSounds)
|
||||||
@@ -258,9 +259,10 @@ public sealed class AmbientSoundSystem : SharedAmbientSoundSystem
|
|||||||
xform.MapID == playerXform.MapID &&
|
xform.MapID == playerXform.MapID &&
|
||||||
!metaQuery.GetComponent(entity).EntityPaused)
|
!metaQuery.GetComponent(entity).EntityPaused)
|
||||||
{
|
{
|
||||||
|
// TODO: This is just trydistance for coordinates.
|
||||||
var distance = (xform.ParentUid == playerXform.ParentUid)
|
var distance = (xform.ParentUid == playerXform.ParentUid)
|
||||||
? xform.LocalPosition - playerXform.LocalPosition
|
? xform.LocalPosition - playerXform.LocalPosition
|
||||||
: xform.WorldPosition - mapPos.Position;
|
: _xformSystem.GetWorldPosition(xform) - mapPos.Position;
|
||||||
|
|
||||||
if (distance.LengthSquared() < comp.Range * comp.Range)
|
if (distance.LengthSquared() < comp.Range * comp.Range)
|
||||||
continue;
|
continue;
|
||||||
@@ -277,7 +279,7 @@ public sealed class AmbientSoundSystem : SharedAmbientSoundSystem
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
var pos = mapPos.Position;
|
var pos = mapPos.Position;
|
||||||
var state = new QueryState(pos, playerXform, query);
|
var state = new QueryState(pos, playerXform, _xformSystem);
|
||||||
var worldAabb = new Box2(pos - MaxAmbientVector, pos + MaxAmbientVector);
|
var worldAabb = new Box2(pos - MaxAmbientVector, pos + MaxAmbientVector);
|
||||||
_treeSys.QueryAabb(ref state, Callback, mapPos.MapId, worldAabb);
|
_treeSys.QueryAabb(ref state, Callback, mapPos.MapId, worldAabb);
|
||||||
|
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ public sealed class CargoTest
|
|||||||
await server.WaitAssertion(() =>
|
await server.WaitAssertion(() =>
|
||||||
{
|
{
|
||||||
var mapId = testMap.MapId;
|
var mapId = testMap.MapId;
|
||||||
var grid = mapManager.CreateGrid(mapId);
|
var grid = mapManager.CreateGridEntity(mapId);
|
||||||
var coord = new EntityCoordinates(grid.Owner, 0, 0);
|
var coord = new EntityCoordinates(grid.Owner, 0, 0);
|
||||||
|
|
||||||
var protoIds = protoManager.EnumeratePrototypes<EntityPrototype>()
|
var protoIds = protoManager.EnumeratePrototypes<EntityPrototype>()
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ namespace Content.IntegrationTests.Tests
|
|||||||
var entityMan = server.ResolveDependency<IEntityManager>();
|
var entityMan = server.ResolveDependency<IEntityManager>();
|
||||||
var mapManager = server.ResolveDependency<IMapManager>();
|
var mapManager = server.ResolveDependency<IMapManager>();
|
||||||
var prototypeMan = server.ResolveDependency<IPrototypeManager>();
|
var prototypeMan = server.ResolveDependency<IPrototypeManager>();
|
||||||
|
var mapSystem = entityMan.System<SharedMapSystem>();
|
||||||
|
|
||||||
await server.WaitPost(() =>
|
await server.WaitPost(() =>
|
||||||
{
|
{
|
||||||
@@ -41,12 +42,13 @@ namespace Content.IntegrationTests.Tests
|
|||||||
.Where(p => !p.Components.ContainsKey("MapGrid")) // This will smash stuff otherwise.
|
.Where(p => !p.Components.ContainsKey("MapGrid")) // This will smash stuff otherwise.
|
||||||
.Select(p => p.ID)
|
.Select(p => p.ID)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
foreach (var protoId in protoIds)
|
foreach (var protoId in protoIds)
|
||||||
{
|
{
|
||||||
var mapId = mapManager.CreateMap();
|
var mapId = mapManager.CreateMap();
|
||||||
var grid = mapManager.CreateGrid(mapId);
|
var grid = mapManager.CreateGridEntity(mapId);
|
||||||
// TODO: Fix this better in engine.
|
// TODO: Fix this better in engine.
|
||||||
grid.SetTile(Vector2i.Zero, new Tile(1));
|
mapSystem.SetTile(grid.Owner, grid.Comp, Vector2i.Zero, new Tile(1));
|
||||||
var coord = new EntityCoordinates(grid.Owner, 0, 0);
|
var coord = new EntityCoordinates(grid.Owner, 0, 0);
|
||||||
entityMan.SpawnEntity(protoId, coord);
|
entityMan.SpawnEntity(protoId, coord);
|
||||||
}
|
}
|
||||||
@@ -61,7 +63,9 @@ namespace Content.IntegrationTests.Tests
|
|||||||
{
|
{
|
||||||
var query = entityMan.AllEntityQueryEnumerator<TComp>();
|
var query = entityMan.AllEntityQueryEnumerator<TComp>();
|
||||||
while (query.MoveNext(out var uid, out var meta))
|
while (query.MoveNext(out var uid, out var meta))
|
||||||
|
{
|
||||||
yield return (uid, meta);
|
yield return (uid, meta);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var entityMetas = Query<MetaDataComponent>(entityMan).ToList();
|
var entityMetas = Query<MetaDataComponent>(entityMan).ToList();
|
||||||
@@ -113,8 +117,10 @@ namespace Content.IntegrationTests.Tests
|
|||||||
{
|
{
|
||||||
var query = entityMan.AllEntityQueryEnumerator<TComp>();
|
var query = entityMan.AllEntityQueryEnumerator<TComp>();
|
||||||
while (query.MoveNext(out var uid, out var meta))
|
while (query.MoveNext(out var uid, out var meta))
|
||||||
|
{
|
||||||
yield return (uid, meta);
|
yield return (uid, meta);
|
||||||
};
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var entityMetas = Query<MetaDataComponent>(entityMan).ToList();
|
var entityMetas = Query<MetaDataComponent>(entityMan).ToList();
|
||||||
foreach (var (uid, meta) in entityMetas)
|
foreach (var (uid, meta) in entityMetas)
|
||||||
@@ -163,11 +169,11 @@ namespace Content.IntegrationTests.Tests
|
|||||||
foreach (var protoId in protoIds)
|
foreach (var protoId in protoIds)
|
||||||
{
|
{
|
||||||
var mapId = mapManager.CreateMap();
|
var mapId = mapManager.CreateMap();
|
||||||
var grid = mapManager.CreateGrid(mapId);
|
var grid = mapManager.CreateGridEntity(mapId);
|
||||||
var ent = sEntMan.SpawnEntity(protoId, new EntityCoordinates(grid.Owner, 0.5f, 0.5f));
|
var ent = sEntMan.SpawnEntity(protoId, new EntityCoordinates(grid.Owner, 0.5f, 0.5f));
|
||||||
foreach (var (_, component) in sEntMan.GetNetComponents(ent))
|
foreach (var (_, component) in sEntMan.GetNetComponents(ent))
|
||||||
{
|
{
|
||||||
sEntMan.Dirty(component);
|
sEntMan.Dirty(ent, component);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -185,7 +191,9 @@ namespace Content.IntegrationTests.Tests
|
|||||||
{
|
{
|
||||||
var query = entityMan.AllEntityQueryEnumerator<TComp>();
|
var query = entityMan.AllEntityQueryEnumerator<TComp>();
|
||||||
while (query.MoveNext(out var uid, out var meta))
|
while (query.MoveNext(out var uid, out var meta))
|
||||||
|
{
|
||||||
yield return (uid, meta);
|
yield return (uid, meta);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var entityMetas = Query<MetaDataComponent>(sEntMan).ToList();
|
var entityMetas = Query<MetaDataComponent>(sEntMan).ToList();
|
||||||
@@ -351,9 +359,10 @@ namespace Content.IntegrationTests.Tests
|
|||||||
var entityManager = server.ResolveDependency<IEntityManager>();
|
var entityManager = server.ResolveDependency<IEntityManager>();
|
||||||
var componentFactory = server.ResolveDependency<IComponentFactory>();
|
var componentFactory = server.ResolveDependency<IComponentFactory>();
|
||||||
var tileDefinitionManager = server.ResolveDependency<ITileDefinitionManager>();
|
var tileDefinitionManager = server.ResolveDependency<ITileDefinitionManager>();
|
||||||
|
var mapSystem = entityManager.System<SharedMapSystem>();
|
||||||
var logmill = server.ResolveDependency<ILogManager>().GetSawmill("EntityTest");
|
var logmill = server.ResolveDependency<ILogManager>().GetSawmill("EntityTest");
|
||||||
|
|
||||||
MapGridComponent grid = default;
|
Entity<MapGridComponent> grid = default!;
|
||||||
|
|
||||||
await server.WaitPost(() =>
|
await server.WaitPost(() =>
|
||||||
{
|
{
|
||||||
@@ -362,13 +371,13 @@ namespace Content.IntegrationTests.Tests
|
|||||||
|
|
||||||
mapManager.AddUninitializedMap(mapId);
|
mapManager.AddUninitializedMap(mapId);
|
||||||
|
|
||||||
grid = mapManager.CreateGrid(mapId);
|
grid = mapManager.CreateGridEntity(mapId);
|
||||||
|
|
||||||
var tileDefinition = tileDefinitionManager["Plating"];
|
var tileDefinition = tileDefinitionManager["Plating"];
|
||||||
var tile = new Tile(tileDefinition.TileId);
|
var tile = new Tile(tileDefinition.TileId);
|
||||||
var coordinates = grid.ToCoordinates();
|
var coordinates = new EntityCoordinates(grid.Owner, Vector2.Zero);
|
||||||
|
|
||||||
grid.SetTile(coordinates, tile);
|
mapSystem.SetTile(grid.Owner, grid.Comp!, coordinates, tile);
|
||||||
|
|
||||||
mapManager.DoMapInitialize(mapId);
|
mapManager.DoMapInitialize(mapId);
|
||||||
});
|
});
|
||||||
@@ -379,7 +388,7 @@ namespace Content.IntegrationTests.Tests
|
|||||||
{
|
{
|
||||||
Assert.Multiple(() =>
|
Assert.Multiple(() =>
|
||||||
{
|
{
|
||||||
var testLocation = grid.ToCoordinates();
|
var testLocation = new EntityCoordinates(grid.Owner, Vector2.Zero);
|
||||||
|
|
||||||
foreach (var type in componentFactory.AllRegisteredTypes)
|
foreach (var type in componentFactory.AllRegisteredTypes)
|
||||||
{
|
{
|
||||||
@@ -404,7 +413,6 @@ namespace Content.IntegrationTests.Tests
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
component.Owner = entity;
|
|
||||||
logmill.Debug($"Adding component: {name}");
|
logmill.Debug($"Adding component: {name}");
|
||||||
|
|
||||||
Assert.DoesNotThrow(() =>
|
Assert.DoesNotThrow(() =>
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ public sealed class DockTest : ContentUnitTest
|
|||||||
var entManager = server.ResolveDependency<IEntityManager>();
|
var entManager = server.ResolveDependency<IEntityManager>();
|
||||||
var mapManager = server.ResolveDependency<IMapManager>();
|
var mapManager = server.ResolveDependency<IMapManager>();
|
||||||
var dockingSystem = entManager.System<DockingSystem>();
|
var dockingSystem = entManager.System<DockingSystem>();
|
||||||
|
var mapSystem = entManager.System<SharedMapSystem>();
|
||||||
var xformSystem = entManager.System<SharedTransformSystem>();
|
var xformSystem = entManager.System<SharedTransformSystem>();
|
||||||
|
|
||||||
var mapId = map.MapId;
|
var mapId = map.MapId;
|
||||||
@@ -39,8 +40,8 @@ public sealed class DockTest : ContentUnitTest
|
|||||||
await server.WaitAssertion(() =>
|
await server.WaitAssertion(() =>
|
||||||
{
|
{
|
||||||
entManager.DeleteEntity(map.GridUid);
|
entManager.DeleteEntity(map.GridUid);
|
||||||
var grid1 = mapManager.CreateGrid(mapId);
|
var grid1 = mapManager.CreateGridEntity(mapId);
|
||||||
var grid2 = mapManager.CreateGrid(mapId);
|
var grid2 = mapManager.CreateGridEntity(mapId);
|
||||||
var grid1Ent = grid1.Owner;
|
var grid1Ent = grid1.Owner;
|
||||||
var grid2Ent = grid2.Owner;
|
var grid2Ent = grid2.Owner;
|
||||||
var grid2Offset = new Vector2(50f, 50f);
|
var grid2Offset = new Vector2(50f, 50f);
|
||||||
@@ -57,7 +58,7 @@ public sealed class DockTest : ContentUnitTest
|
|||||||
new(new Vector2i(0, 2), new Tile(1)),
|
new(new Vector2i(0, 2), new Tile(1)),
|
||||||
};
|
};
|
||||||
|
|
||||||
grid1.SetTiles(tiles1);
|
mapSystem.SetTiles(grid1.Owner, grid1.Comp, tiles1);
|
||||||
var dock1 = entManager.SpawnEntity("AirlockShuttle", new EntityCoordinates(grid1Ent, dock1Pos));
|
var dock1 = entManager.SpawnEntity("AirlockShuttle", new EntityCoordinates(grid1Ent, dock1Pos));
|
||||||
var dock1Xform = entManager.GetComponent<TransformComponent>(dock1);
|
var dock1Xform = entManager.GetComponent<TransformComponent>(dock1);
|
||||||
dock1Xform.LocalRotation = dock1Angle;
|
dock1Xform.LocalRotation = dock1Angle;
|
||||||
@@ -71,7 +72,7 @@ public sealed class DockTest : ContentUnitTest
|
|||||||
new(new Vector2i(1, 2), new Tile(1)),
|
new(new Vector2i(1, 2), new Tile(1)),
|
||||||
};
|
};
|
||||||
|
|
||||||
grid2.SetTiles(tiles2);
|
mapSystem.SetTiles(grid2.Owner, grid2.Comp, tiles2);
|
||||||
var dock2 = entManager.SpawnEntity("AirlockShuttle", new EntityCoordinates(grid2Ent, dock2Pos));
|
var dock2 = entManager.SpawnEntity("AirlockShuttle", new EntityCoordinates(grid2Ent, dock2Pos));
|
||||||
var dock2Xform = entManager.GetComponent<TransformComponent>(dock2);
|
var dock2Xform = entManager.GetComponent<TransformComponent>(dock2);
|
||||||
dock2Xform.LocalRotation = dock2Angle;
|
dock2Xform.LocalRotation = dock2Angle;
|
||||||
@@ -94,9 +95,7 @@ public sealed class DockTest : ContentUnitTest
|
|||||||
var otherMap = await pair.CreateTestMap();
|
var otherMap = await pair.CreateTestMap();
|
||||||
|
|
||||||
var entManager = server.ResolveDependency<IEntityManager>();
|
var entManager = server.ResolveDependency<IEntityManager>();
|
||||||
var mapManager = server.ResolveDependency<IMapManager>();
|
|
||||||
var dockingSystem = entManager.System<DockingSystem>();
|
var dockingSystem = entManager.System<DockingSystem>();
|
||||||
var xformSystem = entManager.System<SharedTransformSystem>();
|
|
||||||
var mapSystem = entManager.System<SharedMapSystem>();
|
var mapSystem = entManager.System<SharedMapSystem>();
|
||||||
|
|
||||||
var mapGrid = entManager.AddComponent<MapGridComponent>(map.MapUid);
|
var mapGrid = entManager.AddComponent<MapGridComponent>(map.MapUid);
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ namespace Content.IntegrationTests.Tests
|
|||||||
await server.WaitAssertion(() =>
|
await server.WaitAssertion(() =>
|
||||||
{
|
{
|
||||||
var mapId = mapMan.CreateMap();
|
var mapId = mapMan.CreateMap();
|
||||||
var grid = mapMan.CreateGrid(mapId);
|
var grid = mapMan.CreateGridEntity(mapId);
|
||||||
gridEnt = grid.Owner;
|
gridEnt = grid.Owner;
|
||||||
|
|
||||||
Assert.Multiple(() =>
|
Assert.Multiple(() =>
|
||||||
|
|||||||
Reference in New Issue
Block a user