Ejemplo n.º 1
0
    void GetLocalItem(string _isoPath)
    {
        mLocalIsoPath = _isoPath;
        mLocalIsoPath = mLocalIsoPath.Replace('\\', '/');
        mIcoPath.text = mLocalIsoPath.Replace(mDefoutIcoPath, "[ISO]/");

        if (mLocalIsoPath.Length <= mDefoutIcoPath.Length)
        {
            mBxBtnGoBack.enabled = false;
        }
        else
        {
            mBxBtnGoBack.enabled = true;
        }


        if (mLocalIsoInfo != null)
        {
            mLocalIsoInfo.Clear();
            mLocalIsoInfo = null;
        }
        string _KeyWord = mQueryInput.text.Trim();


        mLocalIsoInfo = VCEAssetMgr.SearchIso(mLocalIsoPath, _KeyWord);

        mLocalGridCtrl.ReSetGrid(mLocalIsoInfo.Count);
        mLocalGridCtrl._UpdatePagText();
        mSelectedIsoIndex = -1;
        mVCERightPanel.SetActive(false);
    }
Ejemplo n.º 2
0
 public void OnDelClick()
 {
     s_CurrentDelDecal = VCEAssetMgr.GetDecal(m_GUID);
     if (s_CurrentDelDecal != null)
     {
         VCEMsgBox.Show(VCEMsgBoxType.DECAL_DEL_QUERY);
     }
 }
Ejemplo n.º 3
0
 // ----------- Submit ------------------------
 void Apply()
 {
     if (m_Target != null)
     {
         ulong old_guid           = 0;
         ulong new_guid           = 0;
         bool  need_update_isomat = (VCEditor.s_Scene.m_IsoData.QueryMaterial(m_Target.m_Guid) != null);
         if (VCEAssetMgr.s_Materials.ContainsKey(m_Target.m_Guid))
         {
             old_guid = m_Target.m_Guid;
             if (!VCEAssetMgr.DeleteMaterialDataFile(m_Target.m_Guid))
             {
                 VCEMsgBox.Show(VCEMsgBoxType.MATERIAL_NOT_SAVED);
             }
             VCEAssetMgr.s_Materials.Remove(m_Target.m_Guid);
             m_Target.Import(m_TempMaterial.Export());
             new_guid = m_Target.m_Guid;
             VCEAssetMgr.s_Materials.Add(m_Target.m_Guid, m_Target);
             if (!VCEAssetMgr.CreateMaterialDataFile(m_Target))
             {
                 VCEMsgBox.Show(VCEMsgBoxType.MATERIAL_NOT_SAVED);
             }
         }
         else if (VCEAssetMgr.s_TempMaterials.ContainsKey(m_Target.m_Guid))
         {
             old_guid = m_Target.m_Guid;
             VCEAssetMgr.s_TempMaterials.Remove(m_Target.m_Guid);
             m_Target.Import(m_TempMaterial.Export());
             new_guid = m_Target.m_Guid;
             VCEAssetMgr.s_TempMaterials.Add(m_Target.m_Guid, m_Target);
         }
         else
         {
             Debug.LogError("What the hell is that ?!");
             old_guid = m_Target.m_Guid;
             m_Target.Import(m_TempMaterial.Export());
             new_guid = m_Target.m_Guid;
             VCEAssetMgr.s_Materials.Add(m_Target.m_Guid, m_Target);
             if (!VCEAssetMgr.CreateMaterialDataFile(m_Target))
             {
                 VCEMsgBox.Show(VCEMsgBoxType.MATERIAL_NOT_SAVED);
             }
         }
         VCEAlterMaterialMap.MatChange(old_guid, new_guid);
         if (need_update_isomat)
         {
             VCEditor.s_Scene.GenerateIsoMat();
         }
         VCEditor.SelectedMaterial = m_Target;
         VCEditor.Instance.m_UI.m_MaterialList.RefreshMaterialListThenFocusOnSelected();
         VCEditor.SelectedMaterial = m_Target;
     }
     else
     {
         Debug.LogError("No target material, Create new material instead !");
         CreateAsNew();
     }
 }
Ejemplo n.º 4
0
 // Reset the Voxel Creation Editor - When GameShutting
 private static void Destroy()
 {
     if (s_Active)
     {
         QuitFinally();
     }
     VCEAssetMgr.Destroy();
     VCEHistory.Destroy();
 }
Ejemplo n.º 5
0
    // Update is called once per frame
    void LateUpdate()
    {
        VCDecalAsset decal_asset = VCEAssetMgr.GetDecal(m_Guid);

        if (decal_asset == null)
        {
            if (m_Iso != null && m_Iso.m_DecalAssets != null && m_AssetIndex >= 0 && m_AssetIndex < VCIsoData.DECAL_ARR_CNT)
            {
                decal_asset = m_Iso.m_DecalAssets[m_AssetIndex];
            }
        }
        if (decal_asset == null)
        {
            m_Projector.gameObject.SetActive(false);
            return;
        }

        if (VCEditor.DocumentOpen() && m_Tool != null && m_Tool.m_SelBound != null)
        {
            m_Tool.m_SelBound.transform.localScale    = new Vector3(m_Size, m_Size, m_Depth * 2 - 0.002f);
            m_Tool.m_SelBound.transform.localPosition = new Vector3(0, 0, 0);
        }
        Material usedMaterial = null;

        if (m_ShaderIndex >= 0 && m_ShaderIndex < m_DecalMats.Length)
        {
            usedMaterial = m_DecalMats[m_ShaderIndex];
        }

        m_Projector.gameObject.SetActive(usedMaterial != null);

        if (usedMaterial != null)
        {
            m_Projector.material         = usedMaterial;
            m_Projector.nearClipPlane    = 0.001f - m_Depth;
            m_Projector.farClipPlane     = m_Depth - 0.001f;
            m_Projector.orthographicSize = m_Size * 0.5f;
            usedMaterial.SetTexture("_Texture", decal_asset.m_Tex);
            usedMaterial.SetColor("_TintColor", m_Color);
            usedMaterial.SetFloat("_Size", m_Size * 0.5f);
            usedMaterial.SetFloat("_Depth", m_Depth);
            usedMaterial.SetVector("_Center", new Vector4(transform.position.x, transform.position.y, transform.position.z, 1));
            usedMaterial.SetVector("_Forward", new Vector4(transform.forward.x, transform.forward.y, transform.forward.z, 0));
            if (m_Mirrored)
            {
                usedMaterial.SetVector("_Right", -new Vector4(transform.right.x, transform.right.y, transform.right.z, 0));
            }
            else
            {
                usedMaterial.SetVector("_Right", new Vector4(transform.right.x, transform.right.y, transform.right.z, 0));
            }
            usedMaterial.SetVector("_Up", new Vector4(transform.up.x, transform.up.y, transform.up.z, 0));
        }
    }
Ejemplo n.º 6
0
    public override void Redo()
    {
        VCDecalAsset old_dcl  = VCEditor.s_Scene.m_IsoData.m_DecalAssets[m_Index];
        VCDecalAsset new_dcl  = VCEAssetMgr.GetDecal(m_NewDecal);
        ulong        old_guid = (old_dcl == null) ? (0) : (old_dcl.m_Guid);
        ulong        new_guid = (new_dcl == null) ? (0) : (new_dcl.m_Guid);

        if (old_guid != new_guid)
        {
            VCEditor.s_Scene.m_IsoData.m_DecalAssets[m_Index] = new_dcl;
        }
    }
Ejemplo n.º 7
0
    public override void Redo()
    {
        VCMaterial old_mat  = VCEditor.s_Scene.m_IsoData.m_Materials[m_Index];
        VCMaterial new_mat  = VCEAssetMgr.GetMaterial(m_NewMat);
        ulong      old_guid = (old_mat == null) ? (0) : (old_mat.m_Guid);
        ulong      new_guid = (new_mat == null) ? (0) : (new_mat.m_Guid);

        if (old_guid != new_guid)
        {
            VCEditor.s_Scene.m_IsoData.m_Materials[m_Index] = new_mat;
            VCEditor.s_Scene.GenerateIsoMat();
        }
    }
Ejemplo n.º 8
0
    // Reset the Voxel Creation Editor - When GameLoading
    private static void Init()
    {
        s_Active = false;
        s_Ready  = false;
        VCEAssetMgr.Init();
        VCEHistory.Init();
        GameObject ui = GameObject.Instantiate(s_Instance.m_UIPrefab) as GameObject;

        ui.transform.parent        = s_Instance.m_EditorGO.transform;
        ui.transform.localPosition = Vector3.zero;
        ui.transform.localRotation = Quaternion.identity;
        ui.SetActive(true);
        s_Instance.m_UI = ui.GetComponent <VCEUI>();
        s_Instance.m_UI.Init();
    }
Ejemplo n.º 9
0
 public void OnAddClick()
 {
     if (VCEAssetMgr.AddDecalFromTemp(m_GUID))
     {
         VCDecalAsset decal = VCEAssetMgr.GetDecal(m_GUID);
         VCEditor.SelectedDecalGUID = m_GUID;
         m_ParentList.RefreshDecalList();
         VCEStatusBar.ShowText("Add decal".ToLocalizationString() + " [" + decal.GUIDString + "] " + "from the current ISO".ToLocalizationString() + " !", 6f, true);
     }
     else
     {
         VCEMsgBox.Show(VCEMsgBoxType.DECAL_NOT_SAVED);
     }
     s_CurrentDelDecal = null;
 }
Ejemplo n.º 10
0
 public void OnAddClick()
 {
     if (VCEAssetMgr.AddMaterialFromTemp(m_Material.m_Guid))
     {
         VCEditor.SelectedMaterial = m_Material;
         VCEditor.Instance.m_UI.m_MaterialWindow.Reset(m_Material);
         VCEditor.Instance.m_UI.m_MaterialList.RefreshMaterialList(VCEditor.Instance.m_UI.m_MatterPopupList.selection);
         VCEStatusBar.ShowText("Add material".ToLocalizationString() + " [" + m_Material.m_Name + "] " + "from the current ISO".ToLocalizationString() + " !", 6f, true);
     }
     else
     {
         VCEMsgBox.Show(VCEMsgBoxType.MATERIAL_NOT_SAVED);
     }
     s_CurrentDelMat = null;
 }
Ejemplo n.º 11
0
    public static void DoDeleteFromMsgBox()
    {
        string sguid = s_CurrentDelDecal.GUIDString;

        if (VCEAssetMgr.DeleteDecal(s_CurrentDelDecal.m_Guid))
        {
            VCEditor.SelectedDecal = null;
            VCEditor.Instance.m_UI.m_DecalList.RefreshDecalList();
            VCEStatusBar.ShowText("Decal".ToLocalizationString() + " [" + sguid + "] " + "has been deleted".ToLocalizationString() + " !", 6f, true);
        }
        else
        {
            VCEMsgBox.Show(VCEMsgBoxType.DECAL_NOT_SAVED);
        }
    }
Ejemplo n.º 12
0
 bool CheckExist(out string warning)
 {
     warning = "";
     if (m_Target != null && m_Target.m_Guid == m_TempMaterial.m_Guid)
     {
         warning = "";
         return(true);
     }
     if (VCEAssetMgr.GetMaterial(m_TempMaterial.m_Guid) != null)
     {
         warning = "The same material already exist".ToLocalizationString() + " !";
         return(true);
     }
     return(false);
 }
Ejemplo n.º 13
0
    // Use this for initialization
    void Start()
    {
        m_DecalUITexMat       = Material.Instantiate(m_DecalUITex.material) as Material;
        m_DecalUITex.material = m_DecalUITexMat;
        m_SelectedSign.SetActive(false);
        VCDecalAsset dcl = VCEAssetMgr.GetDecal(m_GUID);

        if (dcl != null)
        {
            m_DecalUITexMat.SetTexture("_MainTex", dcl.m_Tex);
        }
        else
        {
            m_DecalUITexMat.SetTexture("_MainTex", null);
        }
    }
Ejemplo n.º 14
0
 public static void DoDeleteFromMsgBox()
 {
     if (VCEAssetMgr.DeleteMaterial(s_CurrentDelMat.m_Guid))
     {
         VCEditor.SelectedMaterial = null;
         if (VCEditor.Instance.m_UI.m_MaterialWindow.WindowVisible())
         {
             VCEditor.Instance.m_UI.m_MaterialWindow.HideWindow();
         }
         VCEditor.Instance.m_UI.m_MaterialList.RefreshMaterialList(VCEditor.Instance.m_UI.m_MatterPopupList.selection);
         VCEStatusBar.ShowText("Material".ToLocalizationString() + " [" + s_CurrentDelMat.m_Name + "] " + "has been deleted".ToLocalizationString() + " !", 6f, true);
     }
     else
     {
         VCEMsgBox.Show(VCEMsgBoxType.MATERIAL_NOT_SAVED);
     }
 }
Ejemplo n.º 15
0
    void CreateAsNew()
    {
        VCMaterial newmat = new VCMaterial();

        newmat.Import(m_TempMaterial.Export());
        VCEAssetMgr.s_Materials.Add(newmat.m_Guid, newmat);
        if (!VCEAssetMgr.CreateMaterialDataFile(newmat))
        {
            VCEMsgBox.Show(VCEMsgBoxType.MATERIAL_NOT_SAVED);
        }

        VCEditor.SelectedMaterial = newmat;
        VCEditor.Instance.m_UI.m_MaterialList.RefreshMaterialListThenFocusOnSelected();
        VCEditor.SelectedMaterial = newmat;
        Reset(newmat);
        VCEStatusBar.ShowText("New Material".ToLocalizationString() + " [" + newmat.m_Name + "]", 6f, true);
    }
Ejemplo n.º 16
0
    public void OnOKClick()
    {
        if (m_ErrorLabel.text.Trim().Length < 1 && m_TmpDecal != null && m_TmpDecal.m_Tex != null)
        {
            VCDecalAsset newdcl = new VCDecalAsset();
            newdcl.Import(m_TmpDecal.Export());
            VCEAssetMgr.s_Decals.Add(newdcl.m_Guid, newdcl);
            if (!VCEAssetMgr.CreateDecalDataFile(newdcl))
            {
                VCEMsgBox.Show(VCEMsgBoxType.DECAL_NOT_SAVED);
            }

            VCEditor.SelectedDecal = newdcl;
            VCEditor.Instance.m_UI.m_DecalList.RefreshDecalList();
            VCEditor.SelectedDecal = newdcl;

            VCEStatusBar.ShowText("Added new decal".ToLocalizationString() + " !", 4f, true);
        }
    }
Ejemplo n.º 17
0
    // close current scene
    private static void CloseScene()
    {
        if (s_Scene != null)
        {
            Debug.Log("VCE close scene. sceneid = " + s_SceneId.ToString());
            if (OnSceneClose != null)
            {
                OnSceneClose(s_Scene);
            }
        }

        // Selection
        DeselectAllTools();
        DestroyBrushes();
        ClearSelections();

        // Destroy scene data
        DestroySceneData();

        // Temporary materials
        VCEAssetMgr.ClearTempMaterials();

        // Temporary decals
        VCEAssetMgr.ClearTempDecals();

        // Reset Some vars
        // Ref plane
        s_Instance.m_UI.OnSceneClose();
        VCERefPlane.Reset();

        // History manager
        VCEHistory.Clear();
        VCEHistory.s_Modified = false;

        // Mirror
        s_Mirror = null;
    }
Ejemplo n.º 18
0
    // Update is called once per frame
    void Update()
    {
        if (VCEditor.DocumentOpen())
        {
            VCDecalAsset decal = VCEAssetMgr.GetDecal(m_GUID);

            m_SelectedSign.SetActive(VCEditor.SelectedDecalGUID == m_GUID && m_GUID != 0);
            int index = VCEditor.s_Scene.m_IsoData.QueryExistDecalIndex(decal);
            if (index >= 0 && VCEditor.s_Scene.m_IsoData.m_DecalAssets[index] == decal)
            {
                m_IndexLabel.text  = (index + 1).ToString() + " of " + VCIsoData.DECAL_ARR_CNT.ToString();
                m_IndexLabel.color = Color.white;
            }
            else if (VCEditor.SelectedDecal == decal)
            {
                if (VCEditor.SelectedDecalIndex < 0)
                {
                    m_IndexLabel.text  = "FULL";
                    m_IndexLabel.color = Color.red;
                }
                else
                {
                    m_IndexLabel.text  = (VCEditor.SelectedDecalIndex + 1).ToString() + " of " + VCIsoData.DECAL_ARR_CNT.ToString();
                    m_IndexLabel.color = Color.white;
                }
            }
            else
            {
                m_IndexLabel.text  = "";
                m_IndexLabel.color = Color.white;
            }
            bool tempdcl  = VCEAssetMgr.s_TempDecals.ContainsKey(m_GUID);
            bool existdcl = VCEAssetMgr.s_Decals.ContainsKey(m_GUID);
            m_AddBtn.SetActive(tempdcl && !existdcl);
            m_DelBtn.SetActive(!tempdcl && existdcl && index < 0 && VCEditor.SelectedDecal == decal);
        }
    }
Ejemplo n.º 19
0
    // Update is called once per frame
    void Update()
    {
        if (!WindowVisible())
        {
            return;
        }
        if (VCEditor.SelectedDecal != null)
        {
            HideWindow();
        }
        if (m_PathInput.text.Length > 0)
        {
            string s = m_PathInput.text.Replace("\\", "/");
            if (m_PathInput.text != s)
            {
                m_PathInput.text = s;
            }
        }
        if (m_LastPath.Length < 4)
        {
            if (m_TmpDecal != null)
            {
                m_TmpDecal.Destroy();
                m_TmpDecal = null;
            }
        }
        if (m_LastPath != m_PathInput.text)
        {
            m_LastPath = m_PathInput.text;
            if (m_TmpDecal != null)
            {
                m_TmpDecal.Destroy();
                m_TmpDecal = null;
            }
            Texture2D tmptex = VCUtils.LoadTextureFromFile(m_PathInput.text);
            if (tmptex != null)
            {
                m_TmpDecal = new VCDecalAsset();
                m_TmpDecal.Import(tmptex.EncodeToPNG());
                Texture2D.Destroy(tmptex);
            }
        }

        if (m_TmpDecal != null && m_TmpDecal.m_Tex != null)
        {
            m_UIDLabel.text          = m_TmpDecal.GUIDString;
            m_DecalUIMat.mainTexture = m_TmpDecal.m_Tex;
            m_DecalUITex.gameObject.SetActive(true);
            if (VCEAssetMgr.GetDecal(m_TmpDecal.m_Guid) != null)
            {
                m_ErrorLabel.text = "The same decal image already exist".ToLocalizationString() + " !";
            }
            else if (m_TmpDecal.m_Tex.width > 512 || m_TmpDecal.m_Tex.height > 512)
            {
                m_ErrorLabel.text = "Decal size must smaller than 512px".ToLocalizationString() + " !";
            }
            else
            {
                m_ErrorLabel.text = "";
            }
        }
        else
        {
            m_UIDLabel.text = "0000000000000000";
            m_DecalUITex.gameObject.SetActive(false);
            m_DecalUIMat.mainTexture = null;
            m_ErrorLabel.text        = "Please specify a decal image".ToLocalizationString() + " (*.png)";
        }
        m_CreateBtnGO.SetActive(m_ErrorLabel.text.Trim().Length < 1);
    }