/// <summary> /// Gives a mob a permission to place a given Tile. /// </summary> public void AssignBuildPermissionTile(IEntity mob, int range, string tileType, string alignOption) { var newPermission = new PlacementInformation { MobUid = mob.Uid, Range = range, IsTile = true, TileType = _tileDefinitionManager[tileType].TileId, PlacementOption = alignOption }; IEnumerable <PlacementInformation> mobPermissions = from PlacementInformation permission in BuildPermissions where permission.MobUid == mob.Uid select permission; if (mobPermissions.Any()) //Already has one? Revoke the old one and add this one. { RevokeAllBuildPermissions(mob); BuildPermissions.Add(newPermission); } else { BuildPermissions.Add(newPermission); } }
/// <summary> /// Removes all building Permissions for given mob. /// </summary> public void RevokeAllBuildPermissions(IEntity mob) { var mobPermissions = BuildPermissions .Where(permission => permission.MobUid == mob.Uid) .ToList(); if (mobPermissions.Count != 0) { BuildPermissions.RemoveAll(x => mobPermissions.Contains(x)); } }