Beispiel #1
0
        public Dictionary <int, IComponent> DeserializeEntity(string contextID, EntityDocument entityDocument)
        {
            IContext _context = Array.Find(contexts.allContexts, c => c.contextInfo.name == contextID);

            Dictionary <int, IComponent> _components = new Dictionary <int, IComponent>();

            foreach (BsonElement _element in entityDocument.entityData)
            {
                int        _componentIndex = Array.IndexOf(_context.contextInfo.componentNames, _element.Name);
                IComponent _component      = (IComponent)BsonSerializer.Deserialize(_element.Value.AsBsonDocument, _context.contextInfo.componentTypes[_componentIndex]);
                _components.Add(_componentIndex, _component);
            }
            return(_components);
        }
Beispiel #2
0
        public EntityDocument SerializeEntity(IEntity entity)
        {
            EntityDocument _entityDocument = new EntityDocument();

            _entityDocument.entityData = new BsonDocument();

            foreach (IComponent _component in entity.GetComponents())
            {
                if (_component.GetType().IsDefined(typeof(StoredAttribute), false))
                {
                    _entityDocument.entityData.Add(new BsonElement(_component.GetType().Name.RemoveComponentSuffix(), _component.ToBsonDocument(_component.GetType())));
                }
            }
            return(_entityDocument);
        }
Beispiel #3
0
        public Dictionary <int, IComponent> DeserializeEntityFromJson(string contextID, string entityJson)
        {
            EntityDocument _document = BsonSerializer.Deserialize <EntityDocument>(entityJson);

            return(DeserializeEntity(contextID, _document));
        }