Implemented avatar sounds in Simian

git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2184 52acb1d6-8a22-11de-b505-999d5b087335
This commit is contained in:
2008-08-29 20:31:12 +00:00
parent 36bed01326
commit a6662645b3
2 changed files with 21 additions and 14 deletions

View File

@@ -24,6 +24,7 @@ namespace Simian.Extensions
Server.UDP.RegisterPacketCallback(PacketType.AgentIsNowWearing, new PacketCallback(AgentIsNowWearingHandler));
Server.UDP.RegisterPacketCallback(PacketType.AgentSetAppearance, new PacketCallback(AgentSetAppearanceHandler));
Server.UDP.RegisterPacketCallback(PacketType.AgentAnimation, new PacketCallback(AgentAnimationHandler));
Server.UDP.RegisterPacketCallback(PacketType.SoundTrigger, new PacketCallback(SoundTriggerHandler));
Server.UDP.RegisterPacketCallback(PacketType.ViewerEffect, new PacketCallback(ViewerEffectHandler));
Server.UDP.RegisterPacketCallback(PacketType.UUIDNameRequest, new PacketCallback(UUIDNameRequestHandler));
}
@@ -70,6 +71,20 @@ namespace Simian.Extensions
Server.UDP.BroadcastPacket(sendAnim, PacketCategory.State);
}
public void TriggerSound(Agent agent, UUID soundID, float gain)
{
SoundTriggerPacket sound = new SoundTriggerPacket();
sound.SoundData.Handle = Server.RegionHandle;
sound.SoundData.ObjectID = agent.AgentID;
sound.SoundData.ParentID = agent.AgentID;
sound.SoundData.OwnerID = agent.AgentID;
sound.SoundData.Position = agent.Avatar.Position;
sound.SoundData.SoundID = soundID;
sound.SoundData.Gain = gain;
Server.UDP.BroadcastPacket(sound, PacketCategory.State);
}
void AgentAnimationHandler(Packet packet, Agent agent)
{
AgentAnimationPacket animPacket = (AgentAnimationPacket)packet;
@@ -215,6 +230,12 @@ namespace Simian.Extensions
Server.UDP.BroadcastPacket(appearance, PacketCategory.State);
}
void SoundTriggerHandler(Packet packet, Agent agent)
{
SoundTriggerPacket trigger = (SoundTriggerPacket)packet;
TriggerSound(agent, trigger.SoundData.SoundID, trigger.SoundData.Gain);
}
void UUIDNameRequestHandler(Packet packet, Agent agent)
{
UUIDNameRequestPacket request = (UUIDNameRequestPacket)packet;

View File

@@ -58,20 +58,6 @@ namespace Simian.Extensions
updateTimer.Dispose();
}
public void TriggerSound(Agent agent, UUID soundID)
{
SoundTriggerPacket sound = new SoundTriggerPacket();
sound.SoundData.Handle = server.RegionHandle;
sound.SoundData.ObjectID = agent.AgentID;
sound.SoundData.ParentID = agent.AgentID;
sound.SoundData.OwnerID = agent.AgentID;
sound.SoundData.Position = agent.Avatar.Position;
sound.SoundData.SoundID = soundID;
sound.SoundData.Gain = 1f;
server.UDP.BroadcastPacket(sound, PacketCategory.State);
}
void UpdateTimer_Elapsed(object sender)
{
int tick = Environment.TickCount;