bool CollisionSkin_callbackFn(CollisionSkin skin0, CollisionSkin skin1) { RoverObject rover = null; Gobject obj = null; if (skin0.Owner.ExternalData is RoverObject) { rover = skin0.Owner.ExternalData as RoverObject; } if (skin1.Owner == null) { return(true); } if (skin1.Owner.ExternalData is Gobject) { obj = skin1.Owner.ExternalData as Gobject; } if (rover == null || obj == null) { return(true); } if (objectsToDelete.Contains(obj.ID)) // if the object is going to be deleted soon, { return(false); // don't bother doing any collision with it } int type = obj.type; if ((AssetTypes)type == AssetTypes.Laser1Pickup) { rover.SetLaser(true); DeleteObject(obj.ID); return(false); } if ((AssetTypes)type == AssetTypes.Radar1Pickup) { rover.SetRadar(true); DeleteObject(obj.ID); return(false); } return(true); }