protected static bool IsStairsWithId(OSLibStairs stairs) { return stairs.GetId () == _searchedId; }
// merge multiple librairies into one to fit the interface public static OSLib MergeLibraries(ICollection<OSLib> libraries) { OSLib mergedLibrary = new OSLib (-1, -1, "", "Merge", ""); foreach (OSLib library in libraries) { foreach (OSLibCategory catLvl1 in library.GetCategoryList ()) { _searchedId = catLvl1.GetBrandId(); if(_searchedId==-1) _searchedId = catLvl1.GetId (); OSLibCategory libraryCatLvl1 = mergedLibrary.GetCategoryList ().Find (IsCategoryWithId); if (libraryCatLvl1 == null) { libraryCatLvl1 = new OSLibCategory (catLvl1.GetId (), null, catLvl1, catLvl1.GetBrandId()); mergedLibrary.AddCategory (libraryCatLvl1); } foreach (OSLibCategory catLvl2 in catLvl1.GetCategoryList ()) { _searchedId = catLvl2.GetBrandId(); if(_searchedId==-1) _searchedId = catLvl2.GetId (); OSLibCategory libraryCatLvl2 = libraryCatLvl1.GetCategoryList ().Find (IsCategoryWithId); if (libraryCatLvl2 == null) { libraryCatLvl2 = new OSLibCategory (catLvl2.GetId (), libraryCatLvl1, catLvl2, catLvl2.GetBrandId()); libraryCatLvl1.AddChildCategory (libraryCatLvl2); } foreach (OSLibObject obj in catLvl2.GetObjectList ()) { libraryCatLvl2.AddObject (obj); } } foreach (OSLibObject obj in catLvl1.GetObjectList ()) { libraryCatLvl1.AddObject (obj); } } foreach (OSLibStairs stairs in library.GetStairsList ()) { _searchedId = stairs.GetId (); OSLibStairs mergedStairs = mergedLibrary.GetStairsList ().Find (IsStairsWithId); if (mergedStairs == null) { mergedStairs = new OSLibStairs (stairs.GetId (), stairs.GetDependency ()); mergedLibrary.AddStairs (mergedStairs); } foreach (OSLibStair stair in stairs.GetStairList ()) { _searchedId = stair.GetId (); OSLibStair mergedStair = mergedStairs.GetStairList ().Find (IsStairWithId); if (mergedStair == null) { mergedStair = new OSLibStair (stair.GetId (), stair.GetStairType (), stair.GetBrand (), stair.GetThumbnailPath ()); mergedStairs.AddStair (mergedStair); } } } } /* //Debug foreach (OSLibCategory catLvl1 in mergedLibrary.GetCategoryList ()) { Debug.Log("Catégorie niveau 1 : "+catLvl1.GetDefaultText()+" id "+catLvl1.GetId()+" brandid "+catLvl1.GetBrandId()); foreach (OSLibCategory catLvl2 in catLvl1.GetCategoryList ()) { Debug.Log("--------------- Catégorie niveau 2 : "+catLvl2.GetDefaultText()+" id "+catLvl2.GetId()+" brandid "+catLvl2.GetBrandId()); foreach (OSLibObject obj in catLvl2.GetObjectList()) { Debug.Log("---------------- -------------- Objets : "+obj.GetDefaultText()+", cat 1 : "+obj.getCategory().GetParentCategory().GetId()+", cat2 : "+obj.getCategory().GetId()); } } }*/ OSLib mergedAndOrderedLibrary = new OSLib (-1, -1, "", "mergedAndOrdered", ""); //Debug foreach (OSLibCategory catLvl1 in mergedLibrary.GetCategoryList ()) { //OSLibCategory catLvl1Ordered = catLvl1; OSLibCategory catLvl1Ordered = new OSLibCategory( catLvl1.GetId(), catLvl1.GetParentCategory(), catLvl1.isPrimaryType(), catLvl1.GetBrandId()); catLvl1Ordered.SetLanguagesDictionary(catLvl1.GetLanguagesDictionary()); catLvl1Ordered.SetDefaultLanguage(catLvl1.GetDefaultLanguage()); foreach (OSLibCategory catLvl2 in catLvl1.GetCategoryList ()) { //catLvl1Ordered.AddChildCategory(catLvl2); if(catLvl1Ordered.GetCategoryList().Count==0) catLvl1Ordered.AddChildCategory(catLvl2); else { bool max = true; for (int countCat=0; countCat < catLvl1Ordered.GetCategoryList().Count; countCat++) { OSLibCategory catLvl2ReOrdered = catLvl1Ordered.GetCategoryList()[countCat]; if(catLvl2ReOrdered.GetBrandId()>catLvl2.GetBrandId()) { catLvl1Ordered.AddChildCategoryAtPosition(catLvl2,countCat); max = false; break; } } if(max) { catLvl1Ordered.AddChildCategory(catLvl2); } } } if(mergedAndOrderedLibrary.GetCategoryList().Count==0) mergedAndOrderedLibrary.AddCategory (catLvl1Ordered); else { bool max = true; for (int countCat=0; countCat<mergedAndOrderedLibrary.GetCategoryList().Count;countCat++) { OSLibCategory catLvl1ReOrdered = mergedAndOrderedLibrary.GetCategoryList()[countCat]; if(catLvl1ReOrdered.GetBrandId()>catLvl1Ordered.GetBrandId()) { mergedAndOrderedLibrary.AddCategoryAtPosition(catLvl1Ordered,countCat); max = false; break; } } if(max) { mergedAndOrderedLibrary.AddCategory(catLvl1Ordered); } } } /* //Debug Debug.Log("----------------------------------------------------------"); Debug.Log("----------------------------------------------------------"); foreach (OSLibCategory catLvl1 in mergedAndOrderedLibrary.GetCategoryList ()) { Debug.Log("Catégorie niveau 1 : "+catLvl1.GetDefaultText()+" id "+catLvl1.GetId()+" brandid "+catLvl1.GetBrandId()); foreach (OSLibCategory catLvl2 in catLvl1.GetCategoryList ()) { Debug.Log("--------------- Catégorie niveau 2 : "+catLvl2.GetDefaultText()+" id "+catLvl2.GetId()+" brandid "+catLvl2.GetBrandId()); foreach (OSLibObject obj in catLvl2.GetObjectList()) { Debug.Log("---------------- -------------- Objets : "+obj.GetDefaultText()+" isMode 2D : "+obj.IsMode2D().ToString()+", cat 1 : "+obj.getCategory().GetParentCategory().GetId()+", cat2 : "+obj.getCategory().GetId()); } } } */ return mergedAndOrderedLibrary; // return mergedLibrary; }
public void AddStairs(OSLibStairs stairs) { _stairs.Add (stairs); }
protected void SetThumbnails(OSLibStairs stairs) { _thumbnails = new Texture2D [stairs.GetStairList ().Count/* + 1*/]; int textureCounter = 0; foreach (OSLibStair stair in stairs.GetStairList ()) { Texture2D texture = stair.GetThumbnail (); texture.name = stair.GetDefaultText (); _thumbnails[textureCounter++] = texture; } // Texture2D noStair = Resources.Load("thumbnails/noThumbs",typeof(Texture2D)) as Texture2D; // noStair.name = ""; // _thumbnails[stairs.GetStairList ().Count] = noStair; _stairModelList = new GUIUpperList (1, 0, TextManager.GetText("stair"), "sousMenuOn", "sousMenuOff", this); _stairModelList.setImgContent (_thumbnails); }
public void Init() { //check stair module ObjData objData = GetComponent<ObjData> (); if (objData != null) { //OSLibModules modules = objData.GetObjectModel ().GetModules (); _stairList = objData.GetObjectModel ().GetLibrary ().GetStairsList ()[0]; if (_selectedStairIndex >= _stairList.GetStairList ().Count) { _selectedStairIndex = -1; } //OSLibModule stairModule = modules.FindModule ("stair"); if (/*stairModule != null &&*/_gizmos.Count <= 0) { //find gizmos int gizmoIndex = 1; bool gizmoIsNotNull = true; do { Transform gizmo = transform.Find ("Gizmo" + gizmoIndex.ToString ()); _transformGizmos.Add (gizmo); if (gizmo != null) { StairGizmo g = new StairGizmo (); g.index = gizmoIndex - 1; g.position = gizmo.localPosition; g.rotation = gizmo.localRotation; _gizmos.Add (g); } else { gizmoIsNotNull = false; } ++gizmoIndex; } while (gizmoIsNotNull); } } }