Editor/ChitChat/ActionWidgets/ChoiceActionInspectorWidget.cs
using Sandbox;
using Editor;
namespace ChitChat.Editor;
public class ChoiceActionInspectorWidget : Widget
{
private SerializedObject _serializedObject;
private readonly Layout _content;
public ChoiceActionInspectorWidget(SerializedObject speakActionSO, Widget parent) : base(parent)
{
Name = "ChoiceAction";
SetSerializedObject(speakActionSO);
Layout = Layout.Column();
_content = Layout;
Rebuild();
}
public void SetSerializedObject(SerializedObject speakActionSO)
{
if (!speakActionSO.TypeName.Equals(nameof(ChoiceAction)))
{
Log.Error("SerializedObject is not a " + nameof(ChoiceAction) + "!");
return;
}
_serializedObject = speakActionSO;
}
public void Rebuild()
{
_content.Clear(true);
_content.Add(new TextSeperatorWidget("Choices", 50, this));
SerializedProperty prop = _serializedObject.GetProperty(nameof(ChoiceAction.Choices));
if (prop.TryGetAsObject(out var obj))
{
ListControlView list = new ListControlView(prop, (SerializedCollection)obj);
_content.Add(list);
}
else
{
Log.Error("Could not convert SerializedProperty to SerializedObject!");
return;
}
}
}