avatar/Assets/VRCFury/Scripts/Editor/VF/Feature/ToesBuilder.cs

44 lines
1.3 KiB
C#

using UnityEditor;
using UnityEngine.UIElements;
using VF.Feature.Base;
using VF.Inspector;
using VF.Model.Feature;
namespace VF.Feature {
public class ToesBuilder : FeatureBuilder<Toes> {
[FeatureBuilderAction]
public void Apply() {
var toes = new Puppet {
name = "Toes"
};
if (StateExists(model.down)) toes.stops.Add(new Puppet.Stop(0,-1,model.down));
if (StateExists(model.up)) toes.stops.Add(new Puppet.Stop(0,1,model.up));
if (StateExists(model.splay)) {
toes.stops.Add(new Puppet.Stop(-1,0,model.splay));
toes.stops.Add(new Puppet.Stop(1,0,model.splay));
}
if (toes.stops.Count > 0) {
addOtherFeature(toes);
}
}
public override string GetEditorTitle() {
return "Toes Puppet";
}
public override VisualElement CreateEditor(SerializedProperty prop) {
var content = new VisualElement();
content.Add(VRCFuryStateEditor.render(prop.FindPropertyRelative("down"), "Down"));
content.Add(VRCFuryStateEditor.render(prop.FindPropertyRelative("up"), "Up"));
content.Add(VRCFuryStateEditor.render(prop.FindPropertyRelative("splay"), "Splay"));
return content;
}
public override bool AvailableOnProps() {
return false;
}
}
}