private void OnStepTrigger(EntityUid uid, MousetrapComponent component, ref StepTriggeredEvent args) { component.IsActive = false; _triggerSystem.Trigger(uid); UpdateVisuals(uid); }
private bool UpdateColliding(StepTriggerComponent component, TransformComponent ownerTransform, EntityUid otherUid, EntityQuery <PhysicsComponent> query) { if (!query.TryGetComponent(otherUid, out var otherPhysics)) { return(true); } // TODO: This shouldn't be calculating based on world AABBs. var ourAabb = _entityLookup.GetWorldAABB(component.Owner, ownerTransform); var otherAabb = _entityLookup.GetWorldAABB(otherUid); if (!ourAabb.Intersects(otherAabb)) { return(true); } if (otherPhysics.LinearVelocity.Length < component.RequiredTriggerSpeed || component.CurrentlySteppedOn.Contains(otherUid) || otherAabb.IntersectPercentage(ourAabb) < component.IntersectRatio || !CanTrigger(component.Owner, otherUid, component)) { return(false); } var ev = new StepTriggeredEvent { Source = component.Owner, Tripper = otherUid }; RaiseLocalEvent(component.Owner, ref ev, true); component.CurrentlySteppedOn.Add(otherUid); Dirty(component); return(false); }
private void HandleTriggered(EntityUid uid, LandMineComponent component, ref StepTriggeredEvent args) { // This doesn't use TriggerOnStepTrigger since we don't want to display the popup if nothing happens // and I didn't feel like making an `AfterTrigger` event if (_trigger.Trigger(uid, args.Tripper)) { _popupSystem.PopupCoordinates( Loc.GetString("land-mine-triggered", ("mine", uid)), Transform(uid).Coordinates, Filter.Entities(args.Tripper), PopupType.LargeCaution); } }
private void HandleTriggered(EntityUid uid, LandMineComponent component, ref StepTriggeredEvent args) { if (_trigger.Trigger(uid, args.Tripper)) { _popupSystem.PopupCoordinates( Loc.GetString("land-mine-triggered", ("mine", uid)), Transform(uid).Coordinates, Filter.Entities(args.Tripper)); } if (component.DeleteOnActivate) { QueueDel(uid); } }
private void OnStepTrigger(EntityUid uid, DamageOnTriggerComponent component, ref StepTriggeredEvent args) { OnDamageTrigger(uid, args.Tripper, component); }
private void HandleStepTrigger(EntityUid uid, SlipperyComponent component, ref StepTriggeredEvent args) { TrySlip(component, args.Tripper); }
private void OnStepTriggered(EntityUid uid, TriggerOnStepTriggerComponent component, ref StepTriggeredEvent args) { Trigger(uid, args.Tripper); }