/// <summary> /// Creates a <see cref="PacketData"/>. /// </summary> /// <param name="definition">The <see cref="PacketDefinition"/>.</param> /// <param name="packet">The <see cref="Custom"/> packet.</param> public PacketData(PacketDefinition definition, Custom packet) { this.Definition = definition; this.items = new Dictionary <string, object>(); Load(packet); }
/// <summary> /// Remove <see cref="PacketDefinition"/> to definitions. /// </summary> /// <param name="definition">The <see cref="PacketDefinition"/>.</param> public void UnRegister(PacketDefinition definition) { lock (definition) { if (definitions.ContainsKey(definition.Name)) { definitions.Remove(definition.Name); } } }
/// <summary> /// Receive packet and raise event. /// </summary> /// <param name="guid">The <see cref="Guid"/>.</param> /// <param name="packet">The <see cref="Custom"/> packet data.</param> public void Receive(Guid guid, Custom packet) { if (definitions.ContainsKey(packet.name)) { PacketDefinition definition = definitions[packet.name]; PacketData data = new PacketData(definition, packet); definition.RaiseEvent(guid, data); } }
/// <summary> /// Add <see cref="PacketDefinition"/> to definitions. /// </summary> /// <param name="definition">The <see cref="PacketDefinition"/>.</param> public void Register(PacketDefinition definition) { lock (definition) { if (definitions.ContainsKey(definition.Name)) { throw new Exception("Packet definition name already exists."); } definitions.Add(definition.Name, definition); } }
/// <summary> /// Creates a <see cref="PacketData"/>. /// </summary> /// <param name="definition">The <see cref="PacketDefinition"/>.</param> public PacketData(PacketDefinition definition) { this.Definition = definition; this.items = new Dictionary <string, object>(); }