Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert "FTL + AI fixes (#31952)" #31968

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 10 additions & 46 deletions Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,11 @@ public sealed partial class ShuttleSystem

private readonly HashSet<EntityUid> _lookupEnts = new();
private readonly HashSet<EntityUid> _immuneEnts = new();
private readonly HashSet<Entity<NoFTLComponent>> _noFtls = new();

private EntityQuery<BodyComponent> _bodyQuery;
private EntityQuery<BuckleComponent> _buckleQuery;
private EntityQuery<FTLSmashImmuneComponent> _immuneQuery;
private EntityQuery<FTLBeaconComponent> _beaconQuery;
private EntityQuery<GhostComponent> _ghostQuery;
private EntityQuery<PhysicsComponent> _physicsQuery;
private EntityQuery<StatusEffectsComponent> _statusQuery;
private EntityQuery<TransformComponent> _xformQuery;
Expand All @@ -86,7 +86,8 @@ private void InitializeFTL()

_bodyQuery = GetEntityQuery<BodyComponent>();
_buckleQuery = GetEntityQuery<BuckleComponent>();
_immuneQuery = GetEntityQuery<FTLSmashImmuneComponent>();
_beaconQuery = GetEntityQuery<FTLBeaconComponent>();
_ghostQuery = GetEntityQuery<GhostComponent>();
_physicsQuery = GetEntityQuery<PhysicsComponent>();
_statusQuery = GetEntityQuery<StatusEffectsComponent>();
_xformQuery = GetEntityQuery<TransformComponent>();
Expand All @@ -101,7 +102,7 @@ private void InitializeFTL()

private void OnFtlShutdown(Entity<FTLComponent> ent, ref ComponentShutdown args)
{
QueueDel(ent.Comp.VisualizerEntity);
Del(ent.Comp.VisualizerEntity);
ent.Comp.VisualizerEntity = null;
}

Expand Down Expand Up @@ -403,12 +404,7 @@ private void UpdateFTLStarting(Entity<FTLComponent, ShuttleComponent> entity)
// Offset the start by buffer range just to avoid overlap.
var ftlStart = new EntityCoordinates(ftlMap, new Vector2(_index + width / 2f, 0f) - shuttleCenter);

// Store the matrix for the grid prior to movement. This means any entities we need to leave behind we can make sure their positions are updated.
// Setting the entity to map directly may run grid traversal (at least at time of writing this).
var oldMapUid = xform.MapUid;
var oldGridMatrix = _transform.GetWorldMatrix(xform);
_transform.SetCoordinates(entity.Owner, ftlStart);
LeaveNoFTLBehind((entity.Owner, xform), oldGridMatrix, oldMapUid);

// Reset rotation so they always face the same direction.
xform.LocalRotation = Angle.Zero;
Expand Down Expand Up @@ -480,9 +476,6 @@ private void UpdateFTLArriving(Entity<FTLComponent, ShuttleComponent> entity)

MapId mapId;

QueueDel(entity.Comp1.VisualizerEntity);
entity.Comp1.VisualizerEntity = null;

if (!Exists(entity.Comp1.TargetCoordinates.EntityId))
{
// Uhh good luck
Expand Down Expand Up @@ -635,31 +628,6 @@ private void DoTheDinosaur(TransformComponent xform)
}
}

private void LeaveNoFTLBehind(Entity<TransformComponent> grid, Matrix3x2 oldGridMatrix, EntityUid? oldMapUid)
{
if (oldMapUid == null)
return;

_noFtls.Clear();
var oldGridRotation = oldGridMatrix.Rotation();
_lookup.GetGridEntities(grid.Owner, _noFtls);

foreach (var childUid in _noFtls)
{
if (!_xformQuery.TryComp(childUid, out var childXform))
continue;

// If we're not parented directly to the grid the matrix may be wrong.
var relative = _physics.GetRelativePhysicsTransform(childUid.Owner, (grid.Owner, grid.Comp));

_transform.SetCoordinates(
childUid,
childXform,
new EntityCoordinates(oldMapUid.Value,
Vector2.Transform(relative.Position, oldGridMatrix)), rotation: relative.Quaternion2D.Angle + oldGridRotation);
}
}

private void KnockOverKids(TransformComponent xform, ref ValueList<EntityUid> toKnock)
{
// Not recursive because probably not necessary? If we need it to be that's why this method is separate.
Expand Down Expand Up @@ -958,8 +926,7 @@ private void Smimsh(EntityUid uid, FixturesComponent? manager = null, MapGridCom
_biomes.ReserveTiles(xform.MapUid.Value, aabb, tileSet);
_lookupEnts.Clear();
_immuneEnts.Clear();
// TODO: Ideally we'd query first BEFORE moving grid but needs adjustments above.
_lookup.GetEntitiesIntersecting(xform.MapID, fixture.Shape, transform, _lookupEnts, LookupFlags.Uncontained);
_lookup.GetEntitiesIntersecting(xform.MapUid.Value, aabb, _lookupEnts, LookupFlags.Uncontained);

foreach (var ent in _lookupEnts)
{
Expand All @@ -968,13 +935,7 @@ private void Smimsh(EntityUid uid, FixturesComponent? manager = null, MapGridCom
continue;
}

// If it's on our grid ignore it.
if (!_xformQuery.TryComp(ent, out var childXform) || childXform.GridUid == uid)
{
continue;
}

if (_immuneQuery.HasComponent(ent))
if (_ghostQuery.HasComponent(ent) || _beaconQuery.HasComponent(ent))
{
continue;
}
Expand All @@ -988,6 +949,9 @@ private void Smimsh(EntityUid uid, FixturesComponent? manager = null, MapGridCom
continue;
}

if (HasComp<FTLBeaconComponent>(ent))
continue;

QueueDel(ent);
}
}
Expand Down

This file was deleted.

12 changes: 0 additions & 12 deletions Content.Shared/Shuttles/Components/NoFTLComponent.cs

This file was deleted.

1 change: 0 additions & 1 deletion Resources/Prototypes/Entities/Markers/shuttle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
parent: MarkerBase
name: FTL point
components:
- type: FTLSmashImmune
- type: FTLBeacon
- type: Sprite
state: pink
Expand Down
1 change: 0 additions & 1 deletion Resources/Prototypes/Entities/Mobs/Player/observer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
noRot: true
overrideContainerOcclusion: true # Always show up regardless of where they're contained.
drawdepth: Ghosts
- type: FTLSmashImmune
- type: CargoSellBlacklist
- type: MovementSpeedModifier
baseSprintSpeed: 12
Expand Down
11 changes: 5 additions & 6 deletions Resources/Prototypes/Entities/Mobs/Player/silicon.yml
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@
state: std_mod
- type: SiliconLawProvider
laws: PaladinLawset

- type: entity
id: LiveLetLiveCircuitBoard
parent: BaseElectronics
Expand All @@ -158,7 +158,7 @@
state: std_mod
- type: SiliconLawProvider
laws: LiveLetLiveLaws

- type: entity
id: StationEfficiencyCircuitBoard
parent: BaseElectronics
Expand All @@ -182,7 +182,7 @@
state: std_mod
- type: SiliconLawProvider
laws: RobocopLawset

- type: entity
id: OverlordCircuitBoard
parent: BaseElectronics
Expand All @@ -194,7 +194,7 @@
state: std_mod
- type: SiliconLawProvider
laws: OverlordLawset

- type: entity
id: DungeonMasterCircuitBoard
parent: BaseElectronics
Expand Down Expand Up @@ -230,7 +230,7 @@
state: std_mod
- type: SiliconLawProvider
laws: AntimovLawset

- type: entity
id: NutimovCircuitBoard
parent: BaseElectronics
Expand Down Expand Up @@ -376,7 +376,6 @@
noSpawn: true
suffix: DO NOT MAP
components:
- type: NoFTL
- type: WarpPoint
follow: true
- type: Eye
Expand Down
Loading