Пример #1
0
 public bool VaildToAdd(EnityToJson jsonGameObject)
 {
     return(jsonGameObject.InstanceLimt == null ||
            !EntityManager.InstanceCount.ContainsKey(jsonGameObject.Alias) ||
            EntityManager.InstanceCount.ContainsKey(jsonGameObject.Alias) &&
            EntityManager.InstanceCount[jsonGameObject.Alias] < jsonGameObject.InstanceLimt);
 }
Пример #2
0
        public long AddCreatedGameObject(EnityToJson jsonGameObject, List <IPassValue> passedValues)
        {
            JsonSerializerSettings settings = new JsonSerializerSettings
            {
                TypeNameHandling = TypeNameHandling.Auto
            };

            var gameObject = new GameObject(ComponentManager);

            if (jsonGameObject.Alias != null)
            {
                gameObject.Alias = jsonGameObject.Alias;
            }

            var entID = EntityManager.CreateEntity(gameObject);

            gameObject = EntityManager.GetEntiy <GameObject>(entID);

            gameObject.Tags = jsonGameObject.Tags;

            jsonGameObject.Components.ForEach(i =>
            {
                var jsonString = JsonConvert.SerializeObject(i, typeof(IComponent), settings);
                var com        = JsonConvert.DeserializeObject <IComponent>(jsonString, settings);

                gameObject.AddComponent(com);
            });

            AddressNeedsAndMangers(gameObject);

            var ent = EntityManager.GetEntiy <GameObject>(entID);

            foreach (var entry in passedValues)
            {
                dynamic dCom = ent.GetComponent <IComponent>(entry.TargetAlais);
                dCom.Value = entry.DValue;
            }

            return(entID);
        }