CatStation/Content.Shared/Vehicle/VehicleSystem.Operator.cs
AndrewFenriz 358ecc1181
Vehicle system: Core systems & Components (#43527)
* Part one of Vehicles

* Also we need this

* Part 1

* Part 1.1

* And we need this

* Part 2

* Part 2.1

* We REALLY need this

* Little fix

* Just fixes

* fixes (i'm tired)

* fix

* Apply suggestions from code review

Co-authored-by: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com>

* update

* fixed

* just for cleaner diff

* just in case

* I think this might be cleaner

* fix

* upd

* Update Content.Shared/Vehicle/VehicleSystem.cs

Co-authored-by: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com>

* fix vehicle key and unstrap checks

* fix OnBuckleUpdateCanMove

* fixes

* clear vehicle operator relays

* small fix

* fix1

* fix2

* upd

* fix?

* fix??

---------

Co-authored-by: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com>
2026-07-18 18:02:50 +00:00

55 lines
1.6 KiB
C#

using Content.Shared.Buckle.Components;
using Content.Shared.Vehicle.Components;
using Robust.Shared.Containers;
namespace Content.Shared.Vehicle;
public sealed partial class VehicleSystem
{
[SubscribeLocalEvent]
private void OnVehicleStrapped(Entity<StrapVehicleComponent> ent, ref StrappedEvent args)
{
if (!_vehicleQuery.TryComp(ent, out var vehicle))
return;
TrySetOperator((ent, vehicle), args.Buckle);
}
[SubscribeLocalEvent]
private void OnVehicleUnstrapped(Entity<StrapVehicleComponent> ent, ref UnstrappedEvent args)
{
if (!_vehicleQuery.TryComp(ent, out var vehicle))
return;
if (vehicle.Operator != args.Buckle)
return;
TryRemoveOperator((ent, vehicle));
}
[SubscribeLocalEvent]
private void OnContainerEntInserted(Entity<ContainerVehicleComponent> ent, ref EntInsertedIntoContainerMessage args)
{
if (_timing.ApplyingState || args.Container.ID != ent.Comp.ContainerId)
return;
if (!_vehicleQuery.TryComp(ent, out var vehicle))
return;
TrySetOperator((ent, vehicle), args.Entity);
}
[SubscribeLocalEvent]
private void OnContainerEntRemoved(Entity<ContainerVehicleComponent> ent, ref EntRemovedFromContainerMessage args)
{
if (_timing.ApplyingState || args.Container.ID != ent.Comp.ContainerId)
return;
if (!_vehicleQuery.TryComp(ent, out var vehicle))
return;
if (vehicle.Operator != args.Entity)
return;
TryRemoveOperator((ent, vehicle));
}
}