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