public static bool IsRecordableCard(Entity entity) { var tagSet = entity.GetTags(); int tagValue; if (tagSet.TryGetValue((int)GAME_TAG.CANT_PLAY, out tagValue)) return false; if (tagSet.TryGetValue((int)GAME_TAG.REVEALED, out tagValue) && tagValue == 0) return false; if (tagSet.TryGetValue((int)GAME_TAG.CARDTYPE, out tagValue)) { var cardType = (TAG_CARDTYPE)tagValue; return cardType != TAG_CARDTYPE.HERO && cardType != TAG_CARDTYPE.HERO_POWER; } return true; }
internal void AddEntity(Entity mEntity) { _entities.Add(mEntity); foreach (var tag in mEntity.GetTags()) { if (!_taggedEntities.ContainsKey(tag)) _taggedEntities.Add(tag, new HashSet<Entity>()); _taggedEntities[tag].Add(mEntity); } foreach (var component in mEntity.GetComponents()) { var componentType = component.GetType(); if (!_componentEntities.ContainsKey(componentType)) { _componentEntities.Add(componentType, new HashSet<Entity>()); _components.Add(componentType, new HashSet<Component>()); } _componentEntities[componentType].Add(mEntity); _components[componentType].Add(component); } }
private static void SaveEntity(Entity entity, BinaryWriter writer) { SaveArray(entity.GetComponentsForSaving(), writer); SaveArray(entity.GetTags(), writer); SaveEntityBehaviors(entity, writer); if (entity is DrawableEntity) SaveDrawableEntityDrawBehaviors(entity as DrawableEntity, writer); }
internal void RemoveEntity(Entity mEntity) { _entities.Remove(mEntity); foreach (var tag in mEntity.GetTags()) _taggedEntities[tag].Remove(mEntity); foreach (var component in mEntity.GetComponents()) { var componentType = component.GetType(); _componentEntities[componentType].Remove(mEntity); _components[componentType].Remove(component); } }
private static bool IsAvatarAvailable(AvatarSlot avatarSlot, Entity avatar) { return avatar.GetTags().Contains(avatarSlot.AvatarName.ToString()); }