public NetDataWriter GetComponentWriter(NetworkedComponent component) { if (!networkedComponents.Contains(component)) { return(null); } NetDataWriter writer = new NetDataWriter(); writer.Put(GameServer.MESSAGE_COMPONENT_CUSTOM); writer.Put(id); writer.Put((byte)networkedComponents.IndexOf(component)); return(writer); }
public static void UpdateObjectOfType(NetworkedComponent component, JObject jObject) { var componentProperties = component.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance) .ToDictionary(key => key.Name, v => v); foreach (var key in jObject) { if (componentProperties.ContainsKey(key.Key)) { var property = componentProperties[key.Key]; property.SetValue(component, key.Value.ToObject(property.PropertyType)); } } }