void InitDictionary() { int length = EntityBase.entity_count; EntitiesDictionary = new Dictionary <int, EntContainer>(); for (int ent = 0; ent < length; ent++) { EntitiesDictionary.Add(ent, EntContainer.Empty); if (EntityBase.GetEntity(ent) != null) { EntContainer entContainer = new EntContainer(ent, Components.Count); for (int comp = 0; comp < Components.Count; comp++) { if (Storage.ContainsComponent(Components[comp], ent)) { entContainer.remains_components--; } } for (int exc = 0; exc < Exceptions.Count; exc++) { if (Storage.ContainsComponent(Exceptions[exc], ent)) { entContainer.remains_exceptions++; } } EntitiesDictionary[ent] = entContainer; if (entContainer.ShouldJoin()) { AddEntity(ent); } } } }
void OnCreateNewEntityID(int entity) { if (!EntitiesDictionary.ContainsKey(entity)) { EntitiesDictionary.Add(entity, null); } EntContainer entContainer = new EntContainer(entity, Components.Count); for (int comp = 0; comp < Components.Count; comp++) { if (Storage.ContainsComponent(Components[comp], entity)) { Debug.LogWarning("При добавлении сущности в группу, на ней не должны находится компоненты, " + "по идее. сейчас находятся. работа продолжится в штатном режиме"); entContainer.remains_components--; } } for (int exc = 0; exc < Exceptions.Count; exc++) { if (Storage.ContainsComponent(Exceptions[exc], entity)) { Debug.LogWarning("При добавлении сущности в группу, на ней не должны находится компоненты, " + "по идее. сейчас находятся. работа продолжится в штатном режиме"); entContainer.remains_exceptions++; } } EntitiesDictionary[entity] = entContainer; if (EntitiesDictionary[entity].ShouldJoin()) { AddEntity(entity); } }