using System; using ABI.CCK.Components; using UnityEditor; using UnityEngine; namespace ABI.CCK.Scripts.Editor { [CustomEditor(typeof(ABI.CCK.Components.CVRAssetInfo))] public class CCK_CVRAssetInfoEditor : UnityEditor.Editor { private CVRAssetInfo _info; private string _newGuid; public override void OnInspectorGUI() { if (_info == null) _info = (CVRAssetInfo)target; EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_HEADER_INFORMATION"), MessageType.Info); if (!string.IsNullOrEmpty(_info.objectId)) { EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_GUID_LABEL") + _info.objectId, MessageType.Info); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_DETACH_BUTTON"))) { bool detach = EditorUtility.DisplayDialog( CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_DETACH_BUTTON_DIALOG_TITLE"), CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_DETACH_BUTTON_DIALOG_BODY"), CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_DETACH_BUTTON_DIALOG_ACCEPT"), CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_DETACH_BUTTON_DIALOG_DENY")); if (detach) DetachGuid(); } if (GUILayout.Button(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_COPY_BUTTON"))) { if (!string.IsNullOrEmpty(_info.objectId)) { GUIUtility.systemCopyBuffer = _info.objectId; } } EditorGUILayout.EndHorizontal(); } else { _newGuid = EditorGUILayout.TextField(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_ATTACH_LABEL"), _newGuid); EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_ATTACH_INFO"), MessageType.Warning); if (GUILayout.Button(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_ATTACH_BUTTON"))) ReattachGuid(_newGuid); } } private void DetachGuid() { if (!string.IsNullOrEmpty(_info.objectId)) _info.objectId = string.Empty; } private void ReattachGuid(string Guid) { _info.objectId = Guid; } } }