protected virtual bool _body_OnCollision(Fixture fixtureA, Fixture fixtureB, FarseerPhysics.Dynamics.Contacts.Contact contact) { if (fixtureB.UserData is ShipBodyDataObject) { if (TimeKeeper.MsSinceInitialization - _lastSendTime > 1000) { _messageService.SendObjectPickupRequest(((ShipBodyDataObject)fixtureB.UserData).ID, Id, PickupableTypes.FloatyAreaObject); _lastSendTime = TimeKeeper.MsSinceInitialization; } } return(false); }
protected bool _pickupBody_OnCollision(Fixture fixtureA, Fixture fixtureB, FarseerPhysics.Dynamics.Contacts.Contact contact) { if (fixtureB.Body.UserData is ShipBodyDataObject) { var s = fixtureB.Body.UserData as ShipBodyDataObject; if (s.Ship.EnterMode && s.Ship.OnSameTeam(this) && s.Ship.Cargo.CheckCargoSpace(StatefulCargoTypes.DefensiveMine, 1)) { _messageService.SendObjectPickupRequest(s.ID, Id, PickupableTypes.DefensiveMine); } } return(false); }
bool OnCollision(Fixture fixtureA, Fixture fixtureB, Contact contact) { if (fixtureB.Body.UserData is ShipBodyDataObject) { var s = fixtureB.Body.UserData as ShipBodyDataObject; if (!s.Ship.OnSameTeam(this)) { return(true);//Collide with enemy turrets } if (s.Ship.EnterMode && s.Ship.Cargo.CheckCargoSpace(StatefulCargoTypes.LaserTurret, 1)) { _messageService.SendObjectPickupRequest(s.ID, Id, PickupableTypes.Turret); } } return(false); }