public void ObjectParse(object parse) { CatalogueItem_Model item = parse as CatalogueItem_Model; this.tile = item; lable.text = item.friendlyName; assetID = item.itemID; favourite = item.favourite; if (item.thumnailData != null) { Texture2D tex = new Texture2D(2, 2); tex.LoadImage(item.thumnailData); Sprite mySprite = Sprite.Create(tex, new Rect(0.0f, 0.0f, tex.width, tex.height), new Vector2(0.5f, 0.5f), 100.0f); thumbnail.sprite = mySprite; } }
public void ObjectParse(CatalogueItem_Model tileParse, CatalogueItemThumnail_Model thumbnail) { this.itemModel = tileParse; if (itemModel.itemID != 0) { //Existing Asset itemThumbnail = thumbnail; assetFriendlyName.text = itemModel.friendlyName; tagsInputField.text = string.Join("#", itemModel.tags); categoryDropDown.value = itemModel.itemTypeCategory; favouritesToggle.isOn = itemModel.favourite; editViewObject.SetActive(false); ImportModel(Application.persistentDataPath + itemModel.modelPath); ClearMaterialData(); foreach (Renderer renderer in modelViewParent.GetComponentsInChildren <Renderer>()) { if (!string.IsNullOrEmpty(itemModel.textureColourPath)) { LoadTextureColour(Application.persistentDataPath + itemModel.textureColourPath, renderer); } if (!string.IsNullOrEmpty(itemModel.textureNormalPath)) { LoadTextureNormal(Application.persistentDataPath + itemModel.textureNormalPath, renderer); } if (!string.IsNullOrEmpty(itemModel.textureDisplacementPath)) { LoadTextureDisplacement(Application.persistentDataPath + itemModel.textureDisplacementPath, renderer); } if (!string.IsNullOrEmpty(itemModel.textureSpecularPath)) { LoadTextureSpecular(Application.persistentDataPath + itemModel.textureSpecularPath, renderer); } if (!string.IsNullOrEmpty(itemModel.textureOcclusionPath)) { LoadTextureOcclusion(Application.persistentDataPath + itemModel.textureOcclusionPath, renderer); } } modelViewParent.transform.localPosition = itemModel.savePos.GetVector3(); modelViewParent.transform.localEulerAngles = itemModel.saveRot.GetVector3(); modelViewParent.transform.localScale = itemModel.saveScale.GetVector3(); } }
public async void SaveAssetAsync() { if (string.IsNullOrEmpty(assetFriendlyName.text)) { MessageBox.Show("Error", "Asset Name Is Missing", () => { }); return; } if (itemModel.itemID == 0) { if (string.IsNullOrEmpty(tempModelPath)) { MessageBox.Show("Error", "Must Import Model", () => { }); return; } } this.GetComponent <Button>().interactable = false; LoadingPanelUI loadingPanelUI = GetComponentInChildren <LoadingPanelUI>(true); loadingPanelUI.gameObject.SetActive(true); loadingPanelUI.ChangeText("Please Wait", "Assets Uploading"); const string itemFileName = "CatalogueItem.asscat"; const string thumnailPrefabName = "AssetThumnail_Model"; if (itemModel.itemID == 0) { itemModel = new CatalogueItem_Model { friendlyName = assetFriendlyName.text, itemID = itemModel.itemID, modifiedDate = DateTime.Now.ToString(), tags = tagsInputField.text.Split('#'), favourite = favouritesToggle.isOn, itemTypeCategory = categoryDropDown.value, savePos = new CustomVector3(modelViewParent.transform.localPosition), saveRot = new CustomVector3(modelViewParent.transform.localEulerAngles), saveScale = new CustomVector3(modelViewParent.transform.localScale), }; } //Screenshot Texture2D tex = new Texture2D(renderTextureNew.height, renderTextureNew.height); RenderTexture.active = renderTextureNew; float offsetX = (renderTextureNew.width - renderTextureNew.height) / 2; tex.ReadPixels(new Rect(offsetX, 0, renderTextureNew.height, renderTextureNew.height), 0, 0); tex.Apply(); itemModel.thumnailData = tex.EncodeToPNG(); if (itemModel.itemID == 0) { //Copy All Files catalogueManager._CreatedAssetCount++; itemModel.itemID = catalogueManager._CreatedAssetCount; CatalogueItemDetail itemDetail = new CatalogueItemDetail { ItemType = CatalogueItemDetail.ItemTypes.Model, ItemID = catalogueManager._CreatedAssetCount, CatalogueItemDirectory = "/Assets/Models/" + catalogueManager._CreatedAssetCount.ToString("D5") + "/", DateModified = DateTime.Now.ToString(), FriendlyName = itemModel.friendlyName, ItemTypeCategory = categoryDropDown.value, }; string localAssetPath = "/" + catalogueManager._DatabaseUID + itemDetail.CatalogueItemDirectory + "/"; //Debug.Log(_LocalAssetPath); cmd_File.DeleteFolder(Application.persistentDataPath + localAssetPath, false); Directory.CreateDirectory(Application.persistentDataPath + localAssetPath); if (tempModelPath != null) { string path = localAssetPath + "/" + Path.GetFileName(tempModelPath); File.Copy(tempModelPath, Application.persistentDataPath + path, true); itemModel.modelPath = path; } if (tempTextureColourPath != null) { string path = localAssetPath + "/" + Path.GetFileName(tempTextureColourPath); File.Copy(tempTextureColourPath, Application.persistentDataPath + path, true); itemModel.textureColourPath = path; } if (tempTextureNormalPath != null) { string path = localAssetPath + "/" + Path.GetFileName(tempTextureNormalPath); File.Copy(tempTextureNormalPath, Application.persistentDataPath + path, true); itemModel.textureNormalPath = path; } if (tempTextureDisplacementPath != null) { string path = localAssetPath + "/" + Path.GetFileName(tempTextureDisplacementPath); File.Copy(tempTextureDisplacementPath, Application.persistentDataPath + path, true); itemModel.textureDisplacementPath = path; } if (tempTextureSpecularPath != null) { string path = localAssetPath + "/" + Path.GetFileName(tempTextureSpecularPath); File.Copy(tempTextureSpecularPath, Application.persistentDataPath + path, true); itemModel.textureSpecularPath = path; } if (tempTextureOcclusionPath != null) { string path = localAssetPath + "/" + Path.GetFileName(tempTextureOcclusionPath); File.Copy(tempTextureOcclusionPath, Application.persistentDataPath + path, true); itemModel.textureOcclusionPath = path; } cmd_File.SerializeObject(Application.persistentDataPath + localAssetPath, itemFileName, itemModel); catalogueManager._CatalogueItemDetails.Add(itemDetail); catalogueManager.ResyncCatalogueDatabaseAsync(); using (DropboxClient dbx = new DropboxClient(AvoEx.AesEncryptor.DecryptString(PlayerPrefs.GetString("Token")))) { if (tempModelPath != null) { await cmd_Dropbox.UploadFileAsync(dbx, tempModelPath, itemDetail.CatalogueItemDirectory, Path.GetFileName(tempModelPath)); } if (tempTextureColourPath != null) { await cmd_Dropbox.UploadFileAsync(dbx, tempTextureColourPath, itemDetail.CatalogueItemDirectory, Path.GetFileName(tempTextureColourPath)); } if (tempTextureNormalPath != null) { await cmd_Dropbox.UploadFileAsync(dbx, tempTextureNormalPath, itemDetail.CatalogueItemDirectory, Path.GetFileName(tempTextureNormalPath)); } if (tempTextureDisplacementPath != null) { await cmd_Dropbox.UploadFileAsync(dbx, tempTextureDisplacementPath, itemDetail.CatalogueItemDirectory, Path.GetFileName(tempTextureDisplacementPath)); } if (tempTextureSpecularPath != null) { await cmd_Dropbox.UploadFileAsync(dbx, tempTextureSpecularPath, itemDetail.CatalogueItemDirectory, Path.GetFileName(tempTextureSpecularPath)); } if (tempTextureOcclusionPath != null) { await cmd_Dropbox.UploadFileAsync(dbx, tempTextureOcclusionPath, itemDetail.CatalogueItemDirectory, Path.GetFileName(tempTextureOcclusionPath)); } await cmd_Dropbox.UploadObjAsync(dbx, itemModel, itemDetail.CatalogueItemDirectory, itemFileName); Debug.Log("LOG:" + DateTime.Now.ToString() + " - " + itemModel.friendlyName + " Created"); MessageBox.Show("Boom Shaka Laka", "Asset Now Added", () => { GetComponent <PopupItemController>().HideDialog(0); }); } GameObject go = Instantiate(Resources.Load(thumnailPrefabName) as GameObject, GameObject.FindWithTag("ThumbnailGrid").transform); go.SendMessage("ObjectParse", itemModel); } else { foreach (CatalogueItemDetail itemDetail in catalogueManager._CatalogueItemDetails) { if (itemDetail.ItemID == itemModel.itemID) { itemDetail.DateModified = DateTime.Now.ToString(); itemModel.modifiedDate = DateTime.Now.ToString(); itemDetail.FriendlyName = assetFriendlyName.text; itemModel.friendlyName = assetFriendlyName.text; itemModel.tags = tagsInputField.text.Split('#'); itemModel.favourite = favouritesToggle.isOn; itemModel.itemTypeCategory = categoryDropDown.value; itemModel.savePos = new CustomVector3(modelViewParent.transform.localPosition); itemModel.saveRot = new CustomVector3(modelViewParent.transform.localEulerAngles); itemModel.saveScale = new CustomVector3(modelViewParent.transform.localScale); itemThumbnail.lable.text = assetFriendlyName.text; itemThumbnail.ObjectParse(itemModel); catalogueManager.ResyncCatalogueDatabaseAsync(); using (DropboxClient dropboxClient = new DropboxClient(AvoEx.AesEncryptor.DecryptString(PlayerPrefs.GetString("Token")))) { await cmd_Dropbox.UploadObjAsync(dropboxClient, itemModel, itemDetail.CatalogueItemDirectory, itemFileName); Debug.Log("LOG:" + DateTime.Now.ToString() + " - " + itemModel.friendlyName + " Updated"); MessageBox.Show("Boom Shaka Laka", "Asset Now Updated", () => { GetComponent <PopupItemController>().HideDialog(0); }); string localPath = Application.persistentDataPath + "/" + catalogueManager._DatabaseUID + itemDetail.CatalogueItemDirectory + "/"; cmd_File.SerializeObject(localPath, itemFileName, itemModel); return; } } } } loadingPanelUI.gameObject.SetActive(false); this.GetComponent <Button>().interactable = true; }