public static void Reflect(TagManager dest, TagTreeViewItemModelManager source) { foreach (var deletedTag in source.DeletedTags) { dest.Remove(deletedTag.Id); } dest.ReconnectAllToBaseTag(); foreach (var tag in source.AddedTags) { var addNewTag = new TagModel(tag.Id) { Name = tag.Name }; dest.Add(addNewTag); dest.ConnectTags(dest.GetBaseTag(), addNewTag); } foreach (var tag in dest.TagDictionary.Values) { if (tag.IsBase()) { continue; } var sourceTag = source.TagDictionary[tag.Id]; var parent = dest.TagDictionary[sourceTag.Parent.Id]; dest.DisconnectFromParent(tag); dest.ConnectTags(parent, tag); tag.Name = sourceTag.Name; } }
public void Init() { tagMgr = TagManager.Instance; tag_google = tagMgr.GetOrCreateTag (TAG_NAME_GOOGLE); tag_school = new Tag ("School"); note = TesterNote.GetTesterNote (); note.Tags.Add ("School", tag_school); }
public static TagTreeViewItemModelManager Convert(TagManager source) { TagTreeViewItemModelManager result = new TagTreeViewItemModelManager(); var baseTag = source.GetBaseTag(); var addBaseTag = ConvertTagToTagTreeViewItemModel.ConvertBaseTag(baseTag); result.Add(addBaseTag); ExpandChild(addBaseTag, baseTag, ref result); return result; }
private static void getArticleListByDynamicSearch() { output += "getArticleListByDynamicSearch\n"; // add tags string name = "测试 样例"; Tag t = new Tag(name, name, primaryGroup.GroupId, DateTime.Now, 0); t.TagId = TagManager.addTag(t); if (t.TagId < 0) { output += "Error! 新增Tag\"" + name + "\"失败!返回值为" + t.TagId + "\n"; errorCount++; return; } // Test GroupNode gn = new GroupNode(); gn.Id = t.TagId; List <Article> list = NewsAssist.getArticleListByDynamicSearch(gn); if (list == null) { output += "Error! getArticleListByDynamicSearch失败,返回null。\n"; errorCount++; return; } if (list.Count < count) { output += "Error! 返回列表长度(=" + list.Count + ")小于测试用例数量!\n"; errorCount++; } else { output += "Ok! 返回列表长度(=" + list.Count + ")不少于测试用例数量!\n"; } // delete tag if (!TagManager.deleteTag(t)) { output += "Error! 删除Tag(id为\"" + t.TagId + "\")失败!\n"; errorCount++; return; } }
public void Show(string displayTitle) { TagManager.Inject(ref displayTitle); //Inject to be able to properly call from CACHE title = displayTitle; if (isRevealing) { StopCoroutine(revealing); } if (!cachedBannerPos) { cachedBannerOriginalPosition = banner.transform.position; } revealing = StartCoroutine(Revealing()); }
private void OnCollisionEnter2D(Collision2D collision) { audioSource.Play(); TagManager tm = collision.gameObject.GetComponent <TagManager>(); if (tm == null) { return; } Tag tag = tm.myTag; if (tag.Equals(Tag.BOMB)) { player.MakeScore(); } }
public override void DoPostConfigureComplete(GameObject go) { go.GetComponent <KAnimControllerBase>().initialAnim = "off"; go.GetComponent <KPrefabID>().AddTag(TagManager.Create("Bed"), false); Clinic clinic = go.AddOrGet <Clinic>(); clinic.doctorVisitInterval = 300f; clinic.workerInjuredAnims = new KAnimFile[1] { Assets.GetAnim("anim_healing_bed_kanim") }; clinic.workerDiseasedAnims = new KAnimFile[1] { Assets.GetAnim("anim_interacts_med_cot_sick_kanim") }; clinic.workLayer = Grid.SceneLayer.BuildingFront; string text = "MedicalCot"; string text2 = "MedicalCotDoctored"; clinic.healthEffect = text; clinic.doctoredHealthEffect = text2; clinic.diseaseEffect = text; clinic.doctoredDiseaseEffect = text2; clinic.doctoredPlaceholderEffect = "DoctoredOffCotEffect"; RoomTracker roomTracker = go.AddOrGet <RoomTracker>(); roomTracker.requiredRoomType = Db.Get().RoomTypes.Hospital.Id; roomTracker.requirement = RoomTracker.Requirement.CustomRecommended; roomTracker.customStatusItemID = Db.Get().BuildingStatusItems.ClinicOutsideHospital.Id; Sleepable sleepable = go.AddOrGet <Sleepable>(); sleepable.overrideAnims = new KAnimFile[1] { Assets.GetAnim("anim_interacts_med_cot_sick_kanim") }; DoctorChoreWorkable doctorChoreWorkable = go.AddOrGet <DoctorChoreWorkable>(); doctorChoreWorkable.overrideAnims = new KAnimFile[1] { Assets.GetAnim("anim_interacts_med_cot_doctor_kanim") }; doctorChoreWorkable.workTime = 45f; Ownable ownable = go.AddOrGet <Ownable>(); ownable.slotID = Db.Get().AssignableSlots.Clinic.Id; }
public static NoteData ToNoteData(NoteInfo noteInfo) { // NOTE: For now, we absolutely require values for // Guid, Title, NoteContent, and NoteContentVersion // TODO: Is this true? What happens if dates are excluded? NoteData noteData = new NoteData(NoteUriFromGuid(noteInfo.Guid)); noteData.Title = noteInfo.Title .Replace("&", "&") .Replace("<", "<") .Replace(">", ">") .Replace(""", "\"") .Replace("'", "\'"); noteData.Text = string.Format("<note-content version=\"{0}\">{1}\n\n{2}</note-content>", noteInfo.NoteContentVersion, noteInfo.Title, noteInfo.NoteContent); if (noteInfo.LastChangeDate.HasValue) { noteData.ChangeDate = noteInfo.LastChangeDate.Value; } if (noteInfo.LastMetadataChangeDate.HasValue) { noteData.MetadataChangeDate = noteInfo.LastMetadataChangeDate.Value; } if (noteInfo.CreateDate.HasValue) { noteData.CreateDate = noteInfo.CreateDate.Value; } if (noteInfo.OpenOnStartup.HasValue) { noteData.IsOpenOnStartup = noteInfo.OpenOnStartup.Value; } // TODO: support Pinned -- http://bugzilla.gnome.org/show_bug.cgi?id=433412 if (noteInfo.Tags != null) { foreach (string tagName in noteInfo.Tags) { Tag tag = TagManager.GetOrCreateTag(tagName); noteData.Tags [tag.NormalizedName] = tag; } } return(noteData); }
public DocumentPickerController( IFolderManager <FileDocument> folderManager, IDocumentService <FileDocument> documentService, IOptions <DriveOptions> driveOptions, TagManager tagManager, DbLoggerProvider log, DbLogService logFetcher, ILogger <DocumentPickerController> logger) : base() { _folderManager = folderManager; _documentService = documentService; _driveOptions = driveOptions.Value; _tagManager = tagManager; _log = log; _logFetcher = logFetcher; _logger = logger; }
/// <summary> /// 绑定实体 /// </summary> protected void BindPost() { PostInfo p = PostManager.GetPost(postId); if (p != null) { txtTitle.Text = StringHelper.HtmlDecode(p.Title); txtSummary.Text = p.Summary; txtContents.Text = p.Content; chkStatus.Checked = p.Status == 1 ? true : false; ddlCategory.SelectedValue = p.CategoryId.ToString(); chkCommentStatus.Checked = p.CommentStatus == 1 ? true : false; txtCustomUrl.Text = StringHelper.HtmlDecode(p.Slug); chkTopStatus.Checked = p.TopStatus == 1 ? true : false; chkRecommend.Checked = p.Recommend == 1 ? true : false; chkHideStatus.Checked = p.HideStatus == 1 ? true : false; ddlUrlType.SelectedValue = p.UrlFormat.ToString(); ddlTemplate.SelectedValue = p.Template; //绑定标签,需改进 string tag = p.Tag; tag = tag.Replace("{", ""); string[] taglist = tag.Split('}'); foreach (string tagId in taglist) { TagInfo taginfo = TagManager.GetTag(StringHelper.StrToInt(tagId, 0)); // string tagName = Tags.GetTagName(Convert.ToInt32(tagID)); if (taginfo != null) { txtTags.Text += taginfo.Name + ","; } } txtTags.Text = txtTags.Text.TrimEnd(','); if (p.UserId != PageUtils.CurrentUser.UserId && PageUtils.CurrentUser.Type != (int)UserType.Administrator) { Response.Redirect("postlist.aspx?result=444"); } } }
public GameObject CreatePrefab() { ComplexRecipe.RecipeElement[] ingredients = new ComplexRecipe.RecipeElement[4] { new ComplexRecipe.RecipeElement((Tag)DreckoConfig.EGG_ID, 2f), new ComplexRecipe.RecipeElement((Tag)RawEggConfig.ID, (float)(5)), new ComplexRecipe.RecipeElement(SimHashes.Algae.CreateTag(), 5000f), new ComplexRecipe.RecipeElement(SimHashes.ToxicSand.CreateTag(), 1000f), }; ComplexRecipe.RecipeElement[] results = new ComplexRecipe.RecipeElement[1] { new ComplexRecipe.RecipeElement((Tag)EGG_ID, 1f) }; var r = new ComplexRecipe(ComplexRecipeManager.MakeRecipeID(ID, (IList <ComplexRecipe.RecipeElement>)ingredients, (IList <ComplexRecipe.RecipeElement>)results), ingredients, results, 0) { time = 80f / 8, description = BabyDescription, nameDisplay = ComplexRecipe.RecipeNameDisplay.Result }; r.fabricators = new List <Tag>() { TagManager.Create(SupermaterialRefineryConfig.ID) }; return(EntityTemplates.ExtendEntityToFertileCreature( CreateCritter( id: ID, name: Name, desc: Description, anim_file: "adult_algae_drecko_kanim", is_baby: false ), EGG_ID, EggName, Description, "egg_algae_drecko_kanim", DreckoTuning.EGG_MASS, BabyId, FertilityCycles, IncubationCycles, EggChances, EGG_SORT_ORDER)); }
private void OnTriggerEnter2D(Collider2D other) { if (other.gameObject.CompareTag(TagManager.GetTag(TagType.DeathZone)) || other.gameObject.CompareTag(TagManager.GetTag(TagType.Enemy)) || other.gameObject.CompareTag(TagManager.GetTag(TagType.Player))) { if (_vfxSpawner != null) { _vfxSpawner.PlayKilledVFX(); } if (gameObject.CompareTag(TagManager.GetTag(TagType.Player))) { restartButton.gameObject.SetActive(true); gameObject.GetComponent <Rigidbody2D>().gravityScale = 0; } } }
/// <summary> /// Returns the details for a question /// </summary> /// <param name="questionid">Question ID</param> /// <returns></returns> public ActionResult GetQuestion(int id) { var actQues = QuestionManager.GetQuestion(id); var model = new GetQuestionModel(); model.CurrentQuestion = actQues; //Get the vote of the question model.Vote = QuestionManager.GetVote(model.CurrentQuestion.Id); //List the tags of the question model.QuestionTags = TagManager.GetAllTagToOneQuestion(id); model.QuestionUser = UserManager.GetUserById(model.CurrentQuestion.UserId); return(View(model)); }
public IHttpActionResult GetTag(int id) { try { TagManager manager = new TagManager(); var tag = manager.Obtener(id); if (tag != null) { return(Ok(tag)); } else { return(BadRequest()); } }catch (Exception e) { return(NotFound()); } }
public static GameObject CreateLightBug(string id, string name, string desc, string anim_file, bool is_baby) { GameObject prefab = BaseLightBugConfig.BaseLightBug(id, name, desc, anim_file, "LightBugBaseTrait", LIGHT2D.LIGHTBUG_COLOR, DECOR.BONUS.TIER4, is_baby, null); EntityTemplates.ExtendEntityToWildCreature(prefab, LightBugTuning.PEN_SIZE_PER_CREATURE, 25f); Trait trait = Db.Get().CreateTrait("LightBugBaseTrait", name, name, null, false, null, true, true); trait.Add(new AttributeModifier(Db.Get().Amounts.Calories.maxAttribute.Id, LightBugTuning.STANDARD_STOMACH_SIZE, name, false, false, true)); trait.Add(new AttributeModifier(Db.Get().Amounts.Calories.deltaAttribute.Id, (0f - LightBugTuning.STANDARD_CALORIES_PER_CYCLE) / 600f, name, false, false, true)); trait.Add(new AttributeModifier(Db.Get().Amounts.HitPoints.maxAttribute.Id, 5f, name, false, false, true)); trait.Add(new AttributeModifier(Db.Get().Amounts.Age.maxAttribute.Id, 25f, name, false, false, true)); HashSet <Tag> hashSet = new HashSet <Tag>(); hashSet.Add(TagManager.Create(PrickleFruitConfig.ID)); hashSet.Add(TagManager.Create("GrilledPrickleFruit")); hashSet.Add(SimHashes.Phosphorite.CreateTag()); return(BaseLightBugConfig.SetupDiet(prefab, hashSet, Tag.Invalid, CALORIES_PER_KG_OF_ORE)); }
public void GetTagsForBlog_NoTags() { using (var db = new Db { new DbItem("blog1") }) { var blogItem = db.GetItem("/sitecore/content/blog1"); var entryManager = MockEntryManager(blogItem, new Entry(), new Entry()); var sut = new TagManager(entryManager); var tags = sut.GetTagsForBlog(blogItem); Assert.That(tags, Is.Empty); } }
bool GetIsOnLadder(List <ContactPoint> wallPoints, out SurfacePoint ladderPoint) { for (int i = 0; i < wallPoints.Count; i++) { ContactPoint point = wallPoints[i]; if (TagManager.CompareTag("Ladder", point.otherCollider.gameObject)) { float ladderAngle = Vector3.Angle(point.normal, rb.transform.up); if (ladderAngle < 91f) { ladderPoint = new SurfacePoint(point, rb.transform.up); return(true); } } } ladderPoint = null; return(false); }
public MusicCollectionModel BuildMusicCollectionModel() { var tagManager = new TagManager { Tags = new List <BasicTag> { } }; var trackManager = new TrackManager { Tracks = new List <TrackElement> { new TrackElement { Name = "First", Tags = new List <BasicTag>() } } }; return(new MusicCollectionModel { MainTagManager = tagManager, MainTrackManager = trackManager }); }
public void OnTriggerEnter(Collider other) { if (other.tag != TagManager.Get(Tag.Player)) { return; } if (GameState.HasEnded) { UIGame.GetInstance().FadeToBlack(2.5f, () => { Application.OpenURL("https://twitter.com/intent/tweet?button_hashtag=MusesSexton&text=" + Player.GetInstance().GetPlayerTombVerse() + "%0D" + Player.GetInstance().GetPlayerTombVerse() + "%0D" + Player.GetInstance().GetPlayerTombVerse() + "%0D"); Application.Quit(); }); } }
/// <summary> /// From list of the question make a QuestionIndexModel list to index page /// </summary> /// <param name="questions">Question list</param> /// <returns></returns> public static List <QuestionIndexModel> ToQuestionIndexModel(IEnumerable <Question> questions) { List <QuestionIndexModel> qim = new List <QuestionIndexModel>(); foreach (var item in questions) { var add = new QuestionIndexModel(); add.Question = item; add.Answers = AnswerManager.GetAllAnswerToOneQuestion(item.Id).Count; add.Vote = QuestionManager.GetVote(item.Id); add.Tags = TagManager.GetAllTagToOneQuestion(item.Id); add.QuestionUser = UserManager.GetUserById(item.UserId); qim.Add(add); } return(qim); }
/// <summary> /// Raised right before the game is saved. /// </summary> /// <param name="sender">Unknown, used by SMAPI.</param> /// <param name="e">Event arguments.</param> /// <remarks>Used to handle day-end events.</remarks> private void Saving(object?sender, SavingEventArgs e) { this.Monitor.DebugLog("Event Saving raised"); DialogueManager.Save(); // Save dialogue DialogueManager.ClearDelayedDialogue(); if (Context.IsSplitScreen && Context.ScreenId != 0) {// Some properties only make sense for a single player to handle in splitscreen. return; } TagManager.ResetRandom(); StatsManager.ClearProperties(); // clear property cache, repopulate at next use RecentSOManager.GrabNewRecentlyCompletedOrders(); RecentSOManager.DayUpdate(Game1.stats.daysPlayed); RecentSOManager.Save(); }
/// <summary> /// The one and only ctor /// </summary> public BlepOut() { //TODO: add first time launch scanning for game folder InitializeComponent(); this.Text = this.Text.Replace("<VersionNumber>", VersionNumber); firstshow = true; MaskModeSelect.Items.AddRange(new object[] { Maskmode.Names, Maskmode.Tags, Maskmode.NamesAndTags }); MaskModeSelect.SelectedItem = Maskmode.NamesAndTags; outrmixmods = new List <string>(); TagManager.ReadTagsFromFile(tagfilePath); BoiConfigManager.ReadConfig(); RootPath = BoiConfigManager.TarPath; //if (File.Exists("changelog.txt")) //{ // System.Diagnostics.Process.Start("changelog.txt"); //} firstshow = false; }
public GameObject CreatePrefab() { string id = ID; string name = "Tooth Fossil";//"Primitive Hatch Fossil"; string desc = "Primitive Hatch Fossil"; float mass = 1f; bool unitMass = false; KAnimFile anim = Assets.GetAnim("bark_skin_kanim"); string initialAnim = "object"; Grid.SceneLayer sceneLayer = Grid.SceneLayer.Front; EntityTemplates.CollisionShape collisionShape = EntityTemplates.CollisionShape.CIRCLE; float width = 0.35f; float height = 0.35f; bool isPickupable = true; List <Tag> additionalTags = new List <Tag> { GameTags.IndustrialIngredient, GameTags.Organics, TagManager.Create("FossilStone") }; GameObject gameObject = EntityTemplates.CreateLooseEntity(id, name, desc, mass, unitMass, anim, initialAnim, sceneLayer, collisionShape, width, height, isPickupable, 0, SimHashes.Creature, additionalTags); gameObject.AddOrGet <EntitySplitter>(); gameObject.AddOrGet <SimpleMassStatusItem>(); var input = new[] { new ComplexRecipe.RecipeElement(HatchConfig.EGG_ID, 1f), new ComplexRecipe.RecipeElement(RawEggConfig.ID, 1f) }; var output = new[] { new ComplexRecipe.RecipeElement(SturdyHatchConfig.EGG_ID, 1f) }; var fabricatorId = Buildings.GeneticSamplerConfig.ID; var recipeId = ComplexRecipeManager.MakeRecipeID(fabricatorId, input, output); var Recipe = new ComplexRecipe(recipeId, input, output) { time = 100f, description = RecipeDescription, nameDisplay = ComplexRecipe.RecipeNameDisplay.Result, fabricators = new List <Tag> { fabricatorId }, sortOrder = 120 }; return(gameObject); }
public static void Postfix() { AddComplexRecipe( input: new[] { new ComplexRecipe.RecipeElement(SimHashes.Diamond.CreateTag(), 50f), new ComplexRecipe.RecipeElement(BasicFabricConfig.ID.ToTag(), 10f) }, output: new[] { new ComplexRecipe.RecipeElement(TagManager.Create(FervineConfig.SeedId), 1f) }, fabricatorId: SupermaterialRefineryConfig.ID, productionTime: 50f, recipeDescription: "Plant + shiny = ?", nameDisplayType: ComplexRecipe.RecipeNameDisplay.Result, sortOrder: 1000 ); }
public ActionResult TagList() { var model = new TagListModel(); model.dataSourceItem = Context.Database.GetItem(RenderingContext.Current.Rendering.DataSource); BlogSettings settingsItem = DataManager.GetBlogSettingsItem(model.dataSourceItem != null ? model.dataSourceItem : Context.Item); model.tagCount = TagManager.GetTagCloud(model.dataSourceItem != null ? model.dataSourceItem : Context.Item); if (settingsItem.OrderTagOnCount) { model.tags = TagManager.GetTagsOrderedByCount(model.tagCount); } else { model.tags = TagManager.GetTags(model.dataSourceItem != null ? model.dataSourceItem : Context.Item); } return(this.View("~/Areas/XBlog/Views/XBlog/Callouts/TagList.cshtml", model)); }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (value == null) { return(null); } ObservableCollection <String> collection = value as ObservableCollection <String>; if (collection == null) { return(null); } List <object> toret = new List <object>(); /*foreach (ObjectStructure os in collection.) * { * toret.Add(os); * }*/ for (int i = 0; i < collection.Count; i++) { MaterialDesignThemes.Wpf.Chip chip = new MaterialDesignThemes.Wpf.Chip(); chip.Height = 24; chip.IsDeletable = true; chip.Content = collection[i]; Brush brush = chip.Background; if (TagManager.isTag("Global", collection[i])) { brush = new SolidColorBrush(TagManager.tagColor("Global", collection[i])); //TODO: Handle tag image } chip.Background = brush; chip.DeleteClick += delete; toret.Add(chip); } return(toret);//collection[idx.Value].Name; }
protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); var tagContext = string.Empty; if (_attributeValues != null) { tagContext = _attributeValues.TagContext; } TagContext.Value = tagContext; ValueField.Attributes.Add("autocomplete", "off"); var tags = TagManager.GetTags(tagContext); var tagList = string.Join(",", tags.Tags.Select(t => "'" + t.Value.TagName + "'")); Script.Text = @"<script> $(document).ready(function() { var tags = [" + tagList + "]; var tags = new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), queryTokenizer: Bloodhound.tokenizers.whitespace, local: $.map(tags, function(state) { return { value: state }; }) }); tags.initialize(); $('#" + ValueField.ClientID + "').tagsinput({ tagClass: 'label label-primary', typeaheadjs: { name: 'tags', displayKey: 'value', valueKey: 'value', source: tags.ttAdapter() } }); });</script>"; }
/// <summary>Initializes a new instance of the <see cref="RepositoryDetails"/> class.</summary> /// <param name="repositoryPath">The path to the repository.</param> public RepositoryDetails(string repositoryPath) { if (Directory.Exists(repositoryPath) == false) { throw new ArgumentException(nameof(repositoryPath)); } RepositoryPath = repositoryPath; var gitProcessManager = new GitProcessManager(repositoryPath); BranchManager = new BranchManager(gitProcessManager); RebaseManager = new RebaseManager(gitProcessManager, BranchManager); RefLogManager = new RefLogManager(gitProcessManager); GitObjectManager = new GitObjectManager(gitProcessManager); TagManager = new TagManager(gitProcessManager); FriendlyName = Path.GetFileName(repositoryPath); RepositoryManager = gitProcessManager; }
// Update is called once per frame //collision adlı nesne diğer nesne, topun çarptığı duvarlar yani; private void OnCollisionEnter2D(Collision2D collision) { //TagManager adlı scriptten nesne oluşturduk ve içinde tagları çekicez; TagManager tagManager = collision.gameObject.GetComponent <TagManager>(); //ses için; GetComponent <AudioSource>().Play(); //tag yoksa null döndürür; if (tagManager == null) { return; } //TagManager den oluşturduğumuz enum=Tag ondan nesne oluşturduk tag isimli, //ve tagManager adlı nesnemiz için myTagleri çektik; Tag tag = tagManager.myTag; //sol duvara çarparsa top sağ raket kazanacak; if (tag.Equals(Tag.Left_Wall)) { //right side will win rightRacket.makeScore(); } //sağ duvara çarparsa top sol raket kazanacak; if (tag.Equals(Tag.Right_Wall)) { //left side will win leftRacket.makeScore(); } //topun raketlere çarptığı yere göre farklı açılarda gitmesi için; if (tag.Equals(Tag.Left_Racket)) { SpinPositionCalculate(collision, 1); } //topun raketlere çarptığı yere göre farklı açılarda gitmesi için; else if (tag.Equals(Tag.Right_Racket)) { SpinPositionCalculate(collision, -1); } }
private void Start() { _isStucked = false; CustomWebPosition = new Vector3(0, 0, -0.3f); // прибавляется к кординатам предмета и в этих кординатах спавнится паутина _playerTransform = GameObject.FindGameObjectWithTag(TagManager.GetTag(TagType.Player)).transform; _animator = GetComponent <Animator>(); _capsuleRigidBody = GetComponent <Rigidbody>(); _capsuleCollider = GetComponent <CapsuleCollider>(); _bombCollider = Bomb.GetComponent <Collider>(); _bombCollider.isTrigger = true; _bombRigidBody = Bomb.GetComponent <Rigidbody>(); int num = 0; Rigidbody[] ragdollRigidBodyes = GetComponentsInChildren <Rigidbody>(); _ragdollRigidBodyes = new Rigidbody[ragdollRigidBodyes.Length - 1]; for (int i = 0; i < ragdollRigidBodyes.Length; i++) { if (ragdollRigidBodyes[i] != _bombRigidBody) { _ragdollRigidBodyes[num] = ragdollRigidBodyes[i]; num++; } } num = 0; Collider[] ragdollColliders = GetComponentsInChildren <Collider>(); _ragdollColliders = new Collider[ragdollColliders.Length - 1]; for (int i = 0; i < ragdollColliders.Length; i++) { if (ragdollColliders[i] != _bombCollider) { _ragdollColliders[num] = ragdollColliders[i]; num++; } } _mainGameController = FindObjectOfType <MainGameController>(); HipsRigidBody.gameObject.AddComponent <RagdollCollisionChecker>().SetParametrs(this); HeadRigidBody.gameObject.AddComponent <RagdollCollisionChecker>().SetParametrs(this); SpineRigidBody.gameObject.AddComponent <RagdollCollisionChecker>().SetParametrs(this); TurnOffRagdoll(); }
/// <summary> /// Sets datasource of listview. /// </summary> /// <remarks> /// Loads tags form Content Repository and adds the following properties of them to a datatable: /// DisplayName, Created By, Creation Date, Modification Date, Reference Count, Path, Is Blacklisted an Node ID. /// Sets this datatable as datasource to the listview. /// </remarks> private void SetDataSource() { var refCounts = TagManager.GetTagOccurrencies(); var dt = new DataTable(); _tagsInRepository = new List <string>(); dt.Columns.AddRange(new[] { new DataColumn("DisplayName", typeof(String)), new DataColumn("CreatedBy", typeof(String)), new DataColumn("CreationDate", typeof(DateTime)), new DataColumn("ModificationDate", typeof(DateTime)), new DataColumn("RefCount", typeof(Int32)), new DataColumn("Path", typeof(String)), new DataColumn("IsBlackListed", typeof(String)), new DataColumn("ID", typeof(Int32)) }); foreach (var item in ContentQuery.Query($"+TypeIs:Tag +InTree:{TagPath}", QuerySettings.AdminSettings).Nodes.ToList()) { var black = GetIsBlackListed(item.Id); dt.Rows.Add(item.DisplayName, item.CreatedBy, item.CreationDate, item.ModificationDate, refCounts.ContainsKey(item.DisplayName) ? refCounts[item.DisplayName] : 0, item.Path, black, Convert.ToInt32(item.Id)); if (black == "No") { _tagsInRepository.Add(item.DisplayName); } } _allTags = TagManager.GetAllTags(null, SearchPaths); dt.DefaultView.Sort = !String.IsNullOrEmpty(Request.QueryString["OrderBy"]) ? String.Concat(Request.QueryString["OrderBy"], " " + Request.QueryString["Direction"]) : "DisplayName ASC"; _lv = FindControl("LVTags") as ListView; if (_lv != null) { _lv.DataSource = dt.DefaultView; _lv.DataBind(); } }
private void OnCollisionEnter2D(Collision2D collision) { TagManager tag = collision.gameObject.GetComponent <TagManager>(); GetComponent <AudioSource>().Play(); if (tag == null) { return; } //direction topla bombanın çarpısı sonucu topun yön değiştirmemesi için kullanılıyor. if (tag.myTag == Tag.SOL_DUVAR) { direction = true; } else if (tag.myTag == Tag.SAG_DUVAR) { direction = false; } }
/// <summary> /// 由标签名称列表返回标签ID列表,带{},新标签自动添加 /// </summary> /// <param name="tagNameList"></param> /// <returns></returns> protected string GetTagIdList(string tagNames) { if (string.IsNullOrEmpty(tagNames)) { return(string.Empty); } string tagIds = string.Empty; tagNames = tagNames.Replace(",", ","); string[] names = tagNames.Split(','); foreach (string n in names) { if (!string.IsNullOrEmpty(n)) { TagInfo t = TagManager.GetTag(n); //if (t == null) //{ // t = TagManager.GetTagBySlug(n); //} // int tagId = TagManager.GetTagId(n); if (t == null) { t = new TagInfo(); t.Count = 0; t.CreateDate = DateTime.Now; t.Description = n; t.Displayorder = 1000; t.Name = n; t.Slug = StringHelper.HtmlEncode(PageUtils.FilterSlug(n, "tag")); t.TagId = TagManager.InsertTag(t); } tagIds += "{" + t.TagId + "}"; } } return(tagIds); }
private void Awake() { if (_instance == null) { _instance = this; } else { Debug.LogWarning ("Multiple MarkerManagers present, disabling: {0}", this.gameObject); enabled = false; } if (_tagNameToToolArray != null) { foreach (TagNameToToolMapping m in _tagNameToToolArray) { _tagNameToToolDict.Add (m.tagName, m.toolPrefab); } } }
/// <summary> /// Halo1 export interface class constructor /// </summary> /// <param name="tag_index">Tag index containing the tag being exported</param> /// <param name="tag_datum">DatumIndex of the tag being exported</param> public ColladaHalo1(TagIndex tag_index, DatumIndex tag_datum) { tagIndex = tag_index; tagManager = tag_index[tag_datum]; GenerateInfoList(); }
public static int GetTriangleCount(RenderModelInfoInternal model_info, TagManager manager) { var definition = manager.TagDefinition as Blam.Halo2.Tags.render_model_group; int count = 0; for (int i = 0; i < model_info.GetGeometryCount(); i++) count += definition.Sections[model_info.GetGeometryIndex(i)].SectionInfo.Value.TotalTriangleCount; return count; }
bool ExtractWithDependents(Blam.CacheExtractionInfo cei, TagManager tag) { ErrorTagDatabase etdb = cei.DatabaseErrors; bool error_root_is_initialized = false; var depns = cacheFile.ExtractionState.CurrentDependents(); var depns_to_extract = new List<Blam.DatumIndex>(); foreach (Blam.DatumIndex datum in depns) { if (!ExtractionDontExtract(cei, datum)) { cei.Database.AddDependent(cacheFile.Index.Tags[datum.Index]); depns_to_extract.Add(datum); } else { ExtractWithDependentsErrorSkipped(etdb, tag, ref error_root_is_initialized, datum); cacheFile.ExtractionState.Dequeue(datum); } } // extract the valid dependents foreach (Blam.DatumIndex datum in depns_to_extract) { cei.Reset(cacheFile.Index.Tags[datum.Index]); if (!Extract(cei, datum, true)) ExtractWithDependentsErrorFailed(etdb, tag, ref error_root_is_initialized, datum); } return true; }
// Initializes the error DB if it hasn't already been setup void ExtractWithDependentsPreprocessErrorDatabase(ErrorTagDatabase etdb, TagManager tag, ref bool root_is_initialized) { if (!root_is_initialized) { etdb.SetRoot(this.References[tag.ReferenceName], tag.GroupTag.ID); root_is_initialized = true; } }
public static int GetPermutationCount(TagManager manager) { var definition = manager.TagDefinition as Blam.Halo1.Tags.gbxmodel_group; int permutation_count = 0; foreach (var region in definition.Regions) permutation_count = (region.Permutations.Count > permutation_count ? region.Permutations.Count : permutation_count); return permutation_count; }
/// <summary> /// Add an existing tag group definition to the index /// </summary> /// <param name="name">name of the tag (relative to the directory this tag index uses)</param> /// <param name="definition">Instance of a tag group definition</param> /// <returns>The tag_index handle associated with the <see cref="TagManager"/> now managing the definition</returns> /// <remarks> /// <paramref name="definition"/> must have a <see cref="TagInterface.TagGroupAttribute"/> applied to it. /// If <paramref name="tag_group"/> is setup to be ignored, we return <see cref="kSkipped"/>. /// If the name\tag_group tag already exists (in memory only), we return <see cref="Blam.DatumIndex.Null"/>. /// </remarks> public Blam.DatumIndex Add(string name, TagInterface.Definition definition) { TagInterface.TagGroupAttribute tga = definition.State.Attribute as TagInterface.TagGroupAttribute; TagInterface.TagGroup tag_group = definition.State.Engine.VersionToTagCollection()[tga.GroupIndex]; if (Ignore(tag_group)) return kSkipped; // Checks to see or if there is one in memory if (IsLoaded(name, tag_group) != Blam.DatumIndex.Null) { indexTrace.WriteLine("Tag Index: Couldn't add an existing tag! '{0}.{1}' already exists", name, tag_group.Name); return Blam.DatumIndex.Null; } #region Initialize tag manager TagManager tm = new TagManager(this); tm.ReferenceName = refManager.Add(tm, tag_group, name); tm.Manage(definition); tm.TagIndex = Array.Add(tm); #endregion base.OnEventOpen(new TagIndexEventArgs(this, tm)); return tm.TagIndex; }
/// <summary> /// Create a new tag /// </summary> /// <param name="name">name of the tag (relative to the directory this tag index uses)</param> /// <param name="tag_group">tag group for the tag</param> /// <returns>The tag_index handle associated with the <see cref="TagManager"/> used to create the tag</returns> /// <remarks> /// If <paramref name="tag_group"/> is setup to be ignored, we return <see cref="kSkipped"/>. /// If the name\tag_group tag already exists (either in memory or on disk), we return <see cref="Blam.DatumIndex.Null"/>. /// </remarks> public Blam.DatumIndex New(string name, TagInterface.TagGroup tag_group) { if (Ignore(tag_group)) return kSkipped; // Checks to see if the tag exists on disk string path = string.Format("{0}.{1}", Path.Combine(directory, name), tag_group.Name); if (Exists(path)) { indexTrace.WriteLine("Tag Index: Couldn't create a new tag! '{0}' already exists on disk", path); return Blam.DatumIndex.Null; } // ...or if there is one in memory if (IsLoaded(name, tag_group) != Blam.DatumIndex.Null) { indexTrace.WriteLine("Tag Index: Couldn't create a new tag! '{0}.{1}' already exists", name, tag_group.Name); return Blam.DatumIndex.Null; } TagManager tm = new TagManager(this); tm.ReferenceName = refManager.Add(tm, tag_group, name); tm.Manage(tag_group); // setup the tag group tm.TagIndex = Array.Add(tm); base.OnEventOpen(new TagIndexEventArgs(this, tm)); return tm.TagIndex; }
void ErrorDatabaseUpdate(TagManager tm) { if (!tm.ContainsBadReferences) return; if(errorDatabase == null) // If this is the first tag to have errors, we need to create the database now errorDatabase = Program.GetManager(engine).CreateErrorTagDatabase(); // Add our 'root' tag, which isn't problematic errorDatabase.SetRoot(tm.Name, tm.GroupTag.ID); foreach(TagInterface.TagReference tr in tm.BadRefereces) { ErrorTagDatabase.ErrorFlags ef; // determine what problem we had with this reference if (tr.Datum == kSkipped) ef = ErrorTagDatabase.ErrorFlags.Skipped; else if (tr.Datum == kMissing) ef = ErrorTagDatabase.ErrorFlags.Missing; else if (tr.Datum == kVersionInvalid) ef = ErrorTagDatabase.ErrorFlags.InvalidVersion; else if (tr.Datum == Blam.DatumIndex.Null) ef = ErrorTagDatabase.ErrorFlags.Failure; else throw new Debug.Exceptions.UnreachableException(tr.Datum); // add this reference to the database under our 'root' tag int hash_value = errorDatabase.AddDependent(refManager[tr.ReferenceId], tr.GroupTagInt, ef); errorDatabaseBadTagHashes.Add(hash_value); } }
public void Init(TagManager tagManager) { _manager = TagManagerConverter.Convert(tagManager); _manager.TagRemoved += _manager_TagRemoved; var baseTag = _manager.GetBaseTag(); _tags = new ObservableCollection<TagTreeViewItemModel>(); _tags.Add(baseTag as TagTreeViewItemModel); }
public static void AddShaderDatums(BSPInfoInternal bsp_info, TagManager manager) { var definition = manager.TagDefinition as Blam.Halo1.Tags.structure_bsp_group; foreach (var lightmap in definition.Lightmaps) { foreach (var material in lightmap.Materials) bsp_info.AddShaderDatum(material.Shader.Datum, material.Shader.ToString()); } }
public void Startup(Core.IAgileOutlookAddIn baseAddin, TagManager tagManager) { this.baseAddin = baseAddin; this.tagManager = tagManager; regEx = @"CM-\w+"; }
/// <summary> /// Open an existing tag /// </summary> /// <param name="name">name of the tag</param> /// <param name="tag_group">group tag of the tag</param> /// <param name="flags">special flags to use when opening</param> /// <returns> /// The tag_index handle associated with the <see cref="TagManager"/> used to load the tag, or <see cref="Blam.DatumIndex.Null"/> if this operations fails /// </returns> /// <remarks> /// Will return existing handles if tag is already open. /// If <paramref name="tag_group"/> is setup to be ignored, we return <see cref="kSkipped"/>. /// </remarks> public Blam.DatumIndex Open(string name, TagInterface.TagGroup tag_group, uint flags) { // HACK: Halo1 PC uses gbx's variant of the model tag if (Engine == BlamVersion.Halo1_CE && tag_group == Blam.Halo1.TagGroups.mode) { tag_group = Blam.Halo1.TagGroups.mod2; } if (Ignore(tag_group)) return kSkipped; // Does this tag even exist on disk? string path = string.Format("{0}.{1}", Path.Combine(directory, name), tag_group.Name); if (!Exists(path)) return kMissing; // Is this tag already loaded? if so, reuse handle Blam.DatumIndex di = IsLoaded(name, tag_group); if (di != Blam.DatumIndex.Null) { Array.IncrementReference(di); return di; } // If the tag had errors, don't try loading it again. // Note that valid tags can exist in the error database since they act as root tags for problem // tags, but since we call [IsLoaded] above this it will catch any valid cases if (ErrorDatabaseContains(name, tag_group)) return Blam.DatumIndex.Null; #region Initialize tag manager TagManager tm = new TagManager(this); tm.ReferenceName = refManager.Add(tm, tag_group, name); tm.Flags.Add(flags); tm.Manage(tag_group); tm.TagIndex = di = Array.Add(tm); // in order to read the tag, the tag index must be setup first (due how TagManager.Path is setup) #endregion #region Stream tag manager tm.OpenForRead(); try { tm.Read(); } catch (TagInterface.Exceptions.InvalidVersion /*ex_version*/) { //indexTrace.WriteLine("Tag Index: Failed to open tag from disk (invalid\\unhandled version): {0}{1}{2}", path, Program.NewLine, ex_version); di = kVersionInvalid; } catch (Exception ex) { indexTrace.WriteLine("Tag Index: Failed to open tag from disk: {0}{1}{2}", path, Program.NewLine, ex); di = Blam.DatumIndex.Null; } finally { tm.Close(); } if(di != tm.TagIndex) { Array.Remove(tm.TagIndex); ErrorDatabaseAddLocalHack(name, tag_group); return di; } #endregion ErrorDatabaseUpdate(tm); base.OnEventOpen(new TagIndexEventArgs(this, tm)); return tm.TagIndex; }
void ExtractWriteTagDatabases(Blam.CacheExtractionInfo cei, TagManager root_tag) { var tdb_group = Program.GetManager(Engine).TagDatabaseGroup; ExtractWriteTagDatabase(cei, root_tag, tdb_group, cei.Database.Definition, false); ExtractWriteTagDatabase(cei, root_tag, tdb_group, cei.DatabaseErrors.Definition, true); }
internal string GetFullPath(TagManager tm) { return string.Format("{0}.{1}", System.IO.Path.Combine(directory, refManager[tm.ReferenceName]), tm.GroupTag.Name); }
// Setup the error DB and add a failed tag entry void ExtractWithDependentsErrorFailed(ErrorTagDatabase etdb, TagManager tag, ref bool root_is_initialized, Blam.DatumIndex error_tag) { ExtractWithDependentsPreprocessErrorDatabase(etdb, tag, ref root_is_initialized); var error_item = cacheFile.Index.Tags[error_tag.Index]; etdb.AddDependent(References[error_item.ReferenceName], error_item.GroupTag.ID, ErrorTagDatabase.ErrorFlags.Failure); }
public void ToDatabase(string db_name) { TagDatabase db = ToDatabase(); using (TagManager tm = new TagManager()) { tm.Engine = this.engine; tm.Manage(db.Definition); tm.CreateForWriteHack(db_name); tm.Write(); } }
void ExtractWriteTagDatabase(Blam.CacheExtractionInfo cei, TagManager root_tag, TagInterface.TagGroup database_group, TagInterface.Definition db_definition, bool is_error_db) { if ((db_definition as ITagDatabase).IsEmpty) return; // name the database after the root tag we're extracting string tag_name = root_tag.Name; if (is_error_db) tag_name = string.Format("{0}.errors", tag_name); Blam.CacheIndex.Item tdb_item; // Just in-case someone tries to extract the same root tag twice if (!cacheFile.TryAndFind(tag_name, database_group, out tdb_item)) { tdb_item = cacheFile.AddFeignTagInstance(tag_name, database_group); if (tdb_item == null) { extractionTrace.WriteLine("Couldn't create a tag_database for {0}! Couldn't create tag entry for database", root_tag.Name); return; } } try { var tdb_index = this.Open(tdb_item.Datum); var tdb = this[tdb_index]; tdb.Manage(db_definition); // Even though the tag isn't actually in the cache, the tag // manager needs to operate this way with CacheTagIndex elements tdb.OpenForExtract(cei.Arguments.OutputDirectory, null); tdb.Extract(); tdb.Close(); Unload(tdb_index); } catch(Exception ex) { extractionTrace.WriteLine("Error while trying to write tag_database!"); extractionTrace.WriteLine(ex); } }
public static void AddShaderDatums(ModelInfoInternal model_info, TagManager manager) { var definition = manager.TagDefinition as Blam.Halo1.Tags.gbxmodel_group; for (int i = 0; i < model_info.GetGeometryCount(); i++) { foreach (var part in definition.Geometries[model_info.GetGeometryIndex(i)].Parts) model_info.AddShaderDatum(definition.Shaders[part.ShaderIndex.Value].Shader.Datum, definition.Shaders[part.ShaderIndex.Value].Shader.ToString()); } }
public void Dispose() { try { if (null != dbConnector && dbConnector.IsConnected()) { dbConnector.Disconnect(); } //Common.StopAPI(); } catch (Exception) { } _mInstance = null; tagTree = null; tagManager = null; dbConnector = null; rootNode = null; realSubscriber = null; //Common.StopAPI(); }
public static int GetTriangleCount(TagManager manager, BSPObjectType type) { var definition = manager.TagDefinition as Blam.Halo1.Tags.structure_bsp_group; int count = 0; switch (type) { case BSPObjectType.RenderMesh: foreach (var lightmap in definition.Lightmaps) { foreach (var material in lightmap.Materials) count += material.SurfaceCount; } break; case BSPObjectType.Portals: foreach (var portal in definition.ClusterPortals) count += portal.Vertices.Count - 2; break; case BSPObjectType.FogPlanes: foreach (var fogplane in definition.FogPlanes) count += fogplane.Vertices.Count - 2; break; }; return count; }
public static void AddGeometryInfos(ModelInfoInternal model_info, TagManager manager, int permutation, int lod) { var definition = manager.TagDefinition as Blam.Halo1.Tags.gbxmodel_group; foreach (var region in definition.Regions) { int permutation_index = permutation; if (permutation >= region.Permutations.Count) permutation_index = region.Permutations.Count - 1; string name = string.Format("{0}-{1}-lod{2}", region.Name.Value, region.Permutations[permutation_index].Name, lod.ToString()); int index = 0; switch (lod) { case 0: index = region.Permutations[permutation_index].SuperHigh; break; case 1: index = region.Permutations[permutation_index].High; break; case 2: index = region.Permutations[permutation_index].Medium; break; case 3: index = region.Permutations[permutation_index].Low; break; case 4: index = region.Permutations[permutation_index].SuperLow; break; }; model_info.AddGeometry(name, index); } }
public static int GetTriangleCount(ModelInfoInternal model_info, TagManager manager) { var definition = manager.TagDefinition as Blam.Halo1.Tags.gbxmodel_group; int triangle_count = 0; for (int i = 0; i < model_info.GetGeometryCount(); i++) { foreach (var part in definition.Geometries[model_info.GetGeometryIndex(i)].Parts) triangle_count += part.Triangles.Count; } return triangle_count; }
/// <summary> /// 是否连接实时库 /// </summary> /// <returns></returns> public Boolean Connection() { try { String serverName = ConfigurationManager.AppSettings["PIServer"]; //格式:"UID=kkk;PWD=" String userNameAndpassword = ConfigurationManager.AppSettings["PIConnectionString"]; if (null == dbConnector) { dbConnector = new DbConnector(); } dbConnector.ServerName = serverName; String userName = String.Empty; String password = String.Empty; GetUserIDAndPwd(userNameAndpassword, out userName, out password); dbConnector.UserName = userName; dbConnector.Password = password; dbConnector.TimeOut = 10; //超时时间,单位为秒 if (null != dbConnector && dbConnector.IsConnected()) { tagTree = TagTree.CreateInstance(dbConnector); tagManager = tagTree.GetMgr(); rootNode = tagTree.GetTreeRoot(); return true; } DbError error = dbConnector.Connect(); if (error.HasErrors) { _ErrorInfo = "pSpaceApi类Connect函数出错:" + error.ErrorMessage + ",错误编码为: " + error.ErrorCode; return false; } tagTree = TagTree.CreateInstance(dbConnector); tagManager = tagTree.GetMgr(); rootNode = tagTree.GetTreeRoot(); return true; } catch (Exception e) { _ErrorInfo = "pSpaceApi类Connect函数异常:" + e.Message + " $$$ " + e.StackTrace; return false; } }
public static int GetVertexCount(ModelInfoInternal model_info, TagManager manager) { var definition = manager.TagDefinition as Blam.Halo1.Tags.gbxmodel_group; int vertex_count = 0; for (int i = 0; i < model_info.GetGeometryCount(); i++) { foreach (var part in definition.Geometries[model_info.GetGeometryIndex(i)].Parts) vertex_count += part.UncompressedVertices.Count; } return vertex_count; }
public TagStickerAddButtonStrategy(ITagStickable stickable, TagManager tagManager) { _stickable = stickable; _tagManager = tagManager; }
/// <summary> /// Open a tag in the cache file /// </summary> /// <param name="tag_datum">index of tag</param> /// <returns> /// The tag_index handle associated to the <see cref="TagManager"/> object used to open the tag, /// or <see cref="Blam.DatumIndex.Null"/> if this operations fails /// </returns> public Blam.DatumIndex Open(Blam.DatumIndex tag_datum) { if (tag_datum == Blam.DatumIndex.Null) return Blam.DatumIndex.Null; Blam.CacheIndex.Item i = cacheFile.Index.Tags[tag_datum.Index]; if (i.IsEmpty) throw new ArgumentNullException("tag_datum", string.Format("The tag handle {0} references an empty tag. We can't open this!", tag_datum.ToString())); // How can we open it if we don't know where it F*****G IS YOU C**T?? if (i.Location != Blam.CacheIndex.ItemLocation.Internal && !i.IsFeignItem) return Blam.DatumIndex.Null; // Is this tag already loaded? if so, reuse handle Blam.DatumIndex di = IsLoaded(i); if (di != Blam.DatumIndex.Null) { Array.IncrementReference(di); return di; } TagManager tm = new TagManager(this); tm.ReferenceName = i.ReferenceName; // sync the tag manager's name with the cache item's bool group_tag_hack = false; BlamBuild build = Engine.ToBuild(); // HACK: Halo1 PC uses gbx's variant of the model tag if (Engine == BlamVersion.Halo1_CE && i.GroupTag == Blam.Halo1.TagGroups.mode) { tm.Manage(Blam.Halo1.TagGroups.mod2); group_tag_hack = true; } else // HACK: Halo 2/3 use a the 'sound' group tag for their 'cache_file_sound' definitions #if !NO_HALO2 if (build == BlamBuild.Halo2 && i.GroupTag == Blam.Halo2.TagGroups.snd_) { tm.Manage(Blam.Halo2.TagGroups.shit); group_tag_hack = true; } else #endif #if !NO_HALO3 if (build == BlamBuild.Halo3 && i.GroupTag == Blam.Halo3.TagGroups.snd_) { tm.Manage(Blam.Halo3.TagGroups.shit); group_tag_hack = true; } else #endif #if !NO_HALO_ODST if (build == BlamBuild.HaloOdst && i.GroupTag == Blam.Halo3.TagGroups.snd_) { tm.Manage(Blam.Halo3.TagGroups.shit); group_tag_hack = true; } else #endif #if !NO_HALO_REACH if (build == BlamBuild.HaloReach && i.GroupTag == Blam.HaloReach.TagGroups.snd_) { tm.Manage(Blam.HaloReach.TagGroups.shit); group_tag_hack = true; } else #endif #if !NO_HALO4 if (build == BlamBuild.Halo4 && i.GroupTag == Blam.Halo4.TagGroups.snd_) { tm.Manage(Blam.Halo4.TagGroups.shit); group_tag_hack = true; } else #endif tm.Manage(i.GroupTag); if (!i.IsFeignItem) { // We don't care about this shit when extracting or opening from a cache file const uint k_open_flags = IO.ITagStreamFlags.DontTrackTagManagerReferences | IO.ITagStreamFlags.DontTrackTagReferencers; tm.Flags.Add(k_open_flags); try { tm.Read(i, cacheFile, group_tag_hack); } catch (Exception ex) { indexTrace.WriteLine("Cache Index: Failed to open tag from cache: {0}{1}'{2}.{3}'{4}{5}", cacheFile.InputStream.FileName, Program.NewLine, cacheFile.GetReferenceName(i), i.GroupTag.Name, Program.NewLine, ex); return Blam.DatumIndex.Null; } // Remove the flag we set before reading tm.Flags.Remove(k_open_flags); } tm.TagIndex = Array.Add(tm); base.OnEventOpen(new TagIndexEventArgs(this, tm)); return tm.TagIndex; }