update CCK to 3.10, fixing unity 2021 crash :)

This commit is contained in:
Crispy 2024-08-03 22:24:42 +02:00
parent 48a978fa2a
commit d11e0fb3a9
492 changed files with 2165204 additions and 437687 deletions

View file

@ -1,66 +1,92 @@
using System;
using ABI.CCK.Components;
using UnityEditor;
using UnityEngine;
namespace ABI.CCK.Scripts.Editor
{
[CustomEditor(typeof(ABI.CCK.Components.CVRAssetInfo))]
[CanEditMultipleObjects]
[CustomEditor(typeof(CVRAssetInfo))]
public class CCK_CVRAssetInfoEditor : UnityEditor.Editor
{
private CVRAssetInfo _info;
private string _newGuid;
private SerializedProperty _objectIdProperty;
private string _newGUID;
#region Unity Events
private void OnEnable()
{
if (target == null)
return;
_objectIdProperty = serializedObject.FindProperty("objectId");
}
public override void OnInspectorGUI()
{
if (_info == null) _info = (CVRAssetInfo)target;
serializedObject.Update();
EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_HEADER_INFORMATION"), MessageType.Info);
DrawHeaderInfo();
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();
}
if (!string.IsNullOrEmpty(_objectIdProperty.stringValue))
DrawDetachGUID();
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);
}
DrawAttachGUID();
serializedObject.ApplyModifiedProperties();
}
private void DetachGuid()
#endregion
#region GUI Drawing
private void DrawHeaderInfo()
{
if (!string.IsNullOrEmpty(_info.objectId)) _info.objectId = string.Empty;
}
private void ReattachGuid(string Guid)
{
_info.objectId = Guid;
EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_HEADER_INFORMATION"), MessageType.Info);
}
private void DrawDetachGUID()
{
EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_GUID_LABEL") + _objectIdProperty.stringValue, MessageType.Info);
EditorGUILayout.BeginHorizontal();
if (GUILayout.Button(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_DETACH_BUTTON")))
{
bool shouldDetach = 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 (shouldDetach)
{
_newGUID = _objectIdProperty.stringValue;
_objectIdProperty.stringValue = string.Empty;
}
}
if (GUILayout.Button(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_COPY_BUTTON")))
{
if (!string.IsNullOrEmpty(_objectIdProperty.stringValue))
GUIUtility.systemCopyBuffer = _objectIdProperty.stringValue;
}
EditorGUILayout.EndHorizontal();
}
private void DrawAttachGUID()
{
_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")))
return;
if (System.Guid.TryParse(_newGUID, out _))
_objectIdProperty.stringValue = _newGUID;
}
#endregion
}
}
}