* Completed a partial port of OpenSim's LSL API. Thank you to everyone on the OpenSim team for their hard work on this incredibly large feature * Added Agent.GetSimulatorPosition() * Corrected default PrimFlags for agents and prims * Stubs for encoding/decoding prim linkset assets * Route chat through the scene * Stub for grid messaging (IM and email) * Add GetTerrainHeightAt(), removed duplicate heightmap storage in Movement.cs * Added a permissions manager stub * Store wind speeds, added functions to get wind speed * Make sure all of the important prim properties are set before creating an object * Lots of new object manipulation functions in scene * Properly clean up event queues on agent exit * Stubbed out a space for a scripting engine * Stubbed out task inventory * Added ScriptingConsole, which allows you to run LSL functions from the chat console * Added new PacketCategory, Messaging, for chat-related packets * Fixed InventoryObject overrides * Added a NotecardCache, useful for the scripting engine and may become generally useful later * Added several helper functions and new members to SimulationObject git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2462 52acb1d6-8a22-11de-b505-999d5b087335
62 lines
2.3 KiB
C#
62 lines
2.3 KiB
C#
using System;
|
|
using System.Net;
|
|
using OpenMetaverse;
|
|
using OpenMetaverse.Packets;
|
|
|
|
namespace Simian
|
|
{
|
|
public enum PacketCategory
|
|
{
|
|
/// <summary>Any sort of transactional message, such as
|
|
/// AgentMovementComplete</summary>
|
|
Transaction = 0,
|
|
/// <summary>Chat such as intra-simulator chat or instant
|
|
/// messaging</summary>
|
|
Messaging,
|
|
/// <summary>State synchronization, such as animations or
|
|
/// object updates</summary>
|
|
State,
|
|
/// <summary>State synchronization of inventory</summary>
|
|
Inventory,
|
|
/// <summary>State synchronization of terrain, LayerData
|
|
/// packets</summary>
|
|
Terrain,
|
|
/// <summary>Asset transfer packets</summary>
|
|
Asset,
|
|
/// <summary>Texture transfer packets</summary>
|
|
Texture,
|
|
/// <summary>Protocol overhead such as PacketAck</summary>
|
|
Overhead,
|
|
}
|
|
|
|
/// <summary>
|
|
/// Coupled with RegisterCallback(), this is triggered whenever a packet
|
|
/// of a registered type is received
|
|
/// </summary>
|
|
public delegate void PacketCallback(Packet packet, Agent agent);
|
|
/// <summary>
|
|
/// Triggered whenever a packet is going to be sent out to one or more
|
|
/// clients
|
|
/// </summary>
|
|
/// <param name="packet">The packet that will be sent out</param>
|
|
/// <param name="agentID">The UUID of the agent receiving this packet. Equal
|
|
/// to UUID.Zero if this packet will be broadcast to all connected agents</param>
|
|
/// <param name="category">The specified category of the outgoing packet</param>
|
|
/// <returns>True to continue sending this packet, otherwise false</returns>
|
|
public delegate bool OutgoingPacketCallback(Packet packet, UUID agentID, PacketCategory category);
|
|
|
|
public interface IUDPProvider
|
|
{
|
|
event OutgoingPacketCallback OnOutgoingPacket;
|
|
|
|
void AddClient(Agent agent, IPEndPoint endpoint);
|
|
bool RemoveClient(Agent agent);
|
|
uint CreateCircuit(Agent agent);
|
|
|
|
void SendPacket(UUID agentID, Packet packet, PacketCategory category);
|
|
void BroadcastPacket(Packet packet, PacketCategory category);
|
|
|
|
void RegisterPacketCallback(PacketType type, PacketCallback callback);
|
|
}
|
|
}
|