Skip to content

Commit 4abc7d0

Browse files
[animgraph] Refactored preview Anim Set
1 parent 076f35f commit 4abc7d0

File tree

4 files changed

+68
-37
lines changed

4 files changed

+68
-37
lines changed

bin/style.css

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4269,6 +4269,8 @@ graph-editor-root properties-container graph-parameters {
42694269
display: flex;
42704270
flex-direction: column;
42714271
flex-grow: 1;
4272+
min-width: 0;
4273+
min-height: 0;
42724274
}
42734275
graph-editor-root properties-container graph-parameters h1 {
42744276
font-size: 1.2em;
@@ -4279,6 +4281,7 @@ graph-editor-root properties-container graph-parameters > ul {
42794281
flex-direction: column;
42804282
list-style: none;
42814283
align-items: stretch;
4284+
overflow-y: auto;
42824285
gap: 2px;
42834286
}
42844287
graph-editor-root properties-container graph-parameters > ul graph-parameter {
@@ -4369,6 +4372,10 @@ graph-editor-root properties-container graph-parameters > ul graph-parameter:aft
43694372
bottom: 0px;
43704373
pointer-events: none;
43714374
}
4375+
graph-editor-root properties-container .anim-list {
4376+
flex-grow: 0;
4377+
flex-shrink: 0;
4378+
}
43724379
center-content {
43734380
width: 100%;
43744381
height: 100%;

bin/style.less

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5051,6 +5051,9 @@ graph-editor-root {
50515051
flex-direction: column;
50525052
flex-grow: 1;
50535053

5054+
min-width: 0;
5055+
min-height: 0;
5056+
50545057
h1 {
50555058
font-size: 1.2em;
50565059
}
@@ -5062,6 +5065,7 @@ graph-editor-root {
50625065
list-style: none;
50635066
align-items: stretch;
50645067

5068+
overflow-y: auto;
50655069
gap: 2px;
50665070
graph-parameter {
50675071
display: flex;
@@ -5170,6 +5174,12 @@ graph-editor-root {
51705174
}
51715175
}
51725176
}
5177+
5178+
}
5179+
5180+
.anim-list {
5181+
flex-grow: 0;
5182+
flex-shrink: 0;
51735183
}
51745184
}
51755185
}

hide/view/animgraph/AnimGraphEditor.hx

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ class AnimGraphEditor extends GenericGraphEditor {
1717
var previewNode : hrt.animgraph.nodes.AnimNode = null;
1818
var queuedPreview : hrt.animgraph.nodes.AnimNode = null;
1919

20+
var customProviderIndex : Int = 0;
21+
2022
override function reloadView() {
2123
previewNode = null;
2224
animGraph = cast hide.Ide.inst.loadPrefab(state.path, null, true);
@@ -44,6 +46,13 @@ class AnimGraphEditor extends GenericGraphEditor {
4446

4547
refreshPamamList();
4648

49+
var dl = new Element("<dl></dl>").appendTo(propertiesContainer);
50+
addAnimSetSelector(dl, undo, () -> customProviderIndex, (i: Int) -> {
51+
customProviderIndex = i;
52+
refreshPreview();
53+
});
54+
55+
4756
new AnimList(propertiesContainer, null, getAnims(scenePreview, animGraph.animFolder));
4857

4958
graphEditor.element.get(0).addEventListener("dragover", (e: js.html.DragEvent) -> {
@@ -210,6 +219,43 @@ class AnimGraphEditor extends GenericGraphEditor {
210219
return options;
211220
}
212221

222+
static public function addAnimSetSelector(target: Element, undo: hide.ui.UndoHistory, getIndex: () -> Int, setIndex:(Int) -> Void) {
223+
if (hrt.animgraph.AnimGraph.customEditorResolverProvider != null)
224+
{
225+
var div = new Element("<div></div>").appendTo(target);
226+
div.append(new Element("<dt>Anim Set</dt>"));
227+
228+
var providers = hrt.animgraph.AnimGraph.customEditorResolverProvider(_);
229+
230+
var button = new hide.comp.Button(div, null, null, {hasDropdown: true});
231+
button.label = providers[getIndex()].name;
232+
233+
var options : Array<hide.comp.ContextMenu.MenuItem> = [];
234+
for (i => provider in providers) {
235+
options.push({
236+
label: provider.name,
237+
click: () -> {
238+
var old = getIndex();
239+
function exec(isUndo: Bool) {
240+
if (!isUndo) {
241+
setIndex(i);
242+
} else {
243+
setIndex(old);
244+
}
245+
button.label = providers[getIndex()].name;
246+
}
247+
exec(false);
248+
undo.change(Custom(exec));
249+
}
250+
});
251+
}
252+
253+
button.onClick = () -> {
254+
hide.comp.ContextMenu.createDropdown(button.element.get(0), options, {search: Visible, autoWidth: true});
255+
}
256+
}
257+
}
258+
213259
public function refreshPreview() {
214260
if (previewNode != null)
215261
setPreview(previewNode);
@@ -233,7 +279,7 @@ class AnimGraphEditor extends GenericGraphEditor {
233279
var resolver = null;
234280
if (AnimGraph.customEditorResolverProvider != null) {
235281
var providers = AnimGraph.customEditorResolverProvider(_);
236-
resolver = providers != null ? providers[0].resolver : null;
282+
resolver = providers != null ? providers[customProviderIndex].resolver : null;
237283
}
238284
var anim = animGraph.getAnimation(previewNode, resolver);
239285
previewModel.playAnimation(anim);

hide/view/animgraph/BlendSpace2DEditor.hx

Lines changed: 4 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -451,42 +451,10 @@ class BlendSpace2DEditor extends hide.view.FileView {
451451
updatePreviewAxis();
452452
});
453453

454-
if (hrt.animgraph.AnimGraph.customEditorResolverProvider != null)
455-
{
456-
var dl = preview.find("dl");
457-
var div = new Element("<div></div>").appendTo(dl);
458-
div.append(new Element("<dt>Anim Set</dt>"));
459-
460-
var providers = hrt.animgraph.AnimGraph.customEditorResolverProvider(_);
461-
462-
var button = new hide.comp.Button(div, null, null, {hasDropdown: true});
463-
button.label = providers[customProviderIndex].name;
464-
465-
var options : Array<hide.comp.ContextMenu.MenuItem> = [];
466-
for (i => provider in providers) {
467-
options.push({
468-
label: provider.name,
469-
click: () -> {
470-
var old = customProviderIndex;
471-
function exec(isUndo: Bool) {
472-
if (!isUndo) {
473-
customProviderIndex = i;
474-
} else {
475-
customProviderIndex = old;
476-
}
477-
button.label = providers[customProviderIndex].name;
478-
refreshPreviewAnimation();
479-
}
480-
exec(false);
481-
undo.change(Custom(exec));
482-
}
483-
});
484-
}
485-
486-
button.onClick = () -> {
487-
hide.comp.ContextMenu.createDropdown(button.element.get(0), options, {search: Visible, autoWidth: true});
488-
}
489-
}
454+
AnimGraphEditor.addAnimSetSelector(preview.find("dl"), undo, () -> customProviderIndex, (i: Int) -> {
455+
customProviderIndex = i;
456+
refreshPreviewAnimation();
457+
});
490458
}
491459

492460
override function save() {

0 commit comments

Comments
 (0)