public SoundParam(SoundParam src) { SoundID = src.SoundID; Gain = src.Gain; Radius = src.Radius; Flags = src.Flags; }
public void SendAttachedSound(ObjectPart objpart, UUID sound, double gain, double soundradius, PrimitiveSoundFlags flags) { var req = new AttachedSound { OwnerID = objpart.ObjectGroup.Owner.ID, SoundID = sound, ObjectID = objpart.ID, Flags = flags }; if (gain < 0) { gain = 0; } else if (gain > 1) { gain = 1; } req.Gain = gain; if (objpart.ObjectGroup.IsAttachedToPrivate) { IAgent agent; if (Agents.TryGetValue(objpart.ObjectGroup.Owner.ID, out agent) && (agent.GlobalPosition - objpart.GlobalPosition).Length <= soundradius) { agent.SendMessageAlways(req, ID); } } else { foreach (IAgent agent in Agents) { if ((agent.GlobalPosition - objpart.GlobalPosition).Length <= soundradius) { agent.SendMessageAlways(req, ID); } } } }