diff --git a/.github/unity-project/Packages/vpm-manifest.2022.3.6f1.json b/.github/unity-project/Packages/vpm-manifest.2022.3.6f1.json
index 3c4cf5a..6a29124 100644
--- a/.github/unity-project/Packages/vpm-manifest.2022.3.6f1.json
+++ b/.github/unity-project/Packages/vpm-manifest.2022.3.6f1.json
@@ -1,21 +1,21 @@
{
"dependencies": {
"com.vrchat.avatars": {
- "version": "3.5.0"
+ "version": "3.5.1"
},
"com.vrchat.core.vpm-resolver": {
- "version": "0.1.27"
+ "version": "0.1.28"
}
},
"locked": {
"com.vrchat.avatars": {
- "version": "3.5.0",
+ "version": "3.5.1",
"dependencies": {
- "com.vrchat.base": "3.5.0"
+ "com.vrchat.base": "3.5.1"
}
},
"com.vrchat.base": {
- "version": "3.5.0",
+ "version": "3.5.1",
"dependencies": {}
}
}
diff --git a/.github/workflows/unity-tests.yml b/.github/workflows/unity-tests.yml
index 72f69a0..fbac3ed 100644
--- a/.github/workflows/unity-tests.yml
+++ b/.github/workflows/unity-tests.yml
@@ -2,6 +2,12 @@ name: Unity Tests
on:
push:
+ branches: master
+ paths:
+ - "**.cs"
+ - ".github/unity-project/**/*"
+ - ".github/workflows/unity-tests.yml"
+ pull_request:
paths:
- "**.cs"
- ".github/unity-project/**/*"
@@ -9,14 +15,14 @@ on:
jobs:
build:
- name: Build and Test (${{ matrix.unity-version }}${{ matrix.import-vrcsdk && ', VRC' || '' }}${{ matrix.import-dynbone && ', DynBone' || '' }}${{ matrix.import-univrm && ', VRM' || '' }})
+ name: Build and Test (${{ matrix.unity-version }}${{ matrix.import-vrcsdk && ', VRC' || '' }}${{ matrix.import-dynbone && ', DynBone' || '' }}${{ matrix.import-univrm && ', VRM' || '' }}${{ matrix.import-ma && ', MA' || '' }})
runs-on: ubuntu-latest
strategy:
fail-fast: true
- max-parallel: 6
matrix:
unity-version: ['2019.4.31f1', '2022.3.6f1', '2023.2.2f1']
import-vrcsdk: [false, true]
+ import-ma: [false, true]
# import-dynbone: [false, true]
# import-univrm: [false, true]
import-dynbone: [false]
@@ -24,6 +30,8 @@ jobs:
exclude:
# - unity-version: "2019.4.31f1"
# import-univrm: true
+ - import-vrcsdk: false
+ import-ma: true
- unity-version: "2023.2.2f1"
import-vrcsdk: true
steps:
@@ -63,8 +71,15 @@ jobs:
run: |
mv Packages/vpm-manifest.${{ matrix.unity-version }}.json Packages/vpm-manifest.json
dotnet tool install --global vrchat.vpm.cli
+ vpm add repo https://vpm.chocopoi.com/index.json
vpm resolve project
+ - name: Import ModularAvatar
+ if: matrix.import-ma
+ run: |
+ vpm add repo https://vpm.nadena.dev/vpm.json
+ vpm add package nadena.dev.modular-avatar@1.9.7
+
# DynamicsBones stub
- name: Import DynamicBones stub
if: matrix.import-dynbone
diff --git a/Editor/Context.cs b/Editor/Context.cs
index e922e2f..8230c86 100644
--- a/Editor/Context.cs
+++ b/Editor/Context.cs
@@ -13,6 +13,7 @@
using System;
using System.Collections.Generic;
using Chocopoi.DressingFramework.Animations;
+using Chocopoi.DressingFramework.Extensibility.Sequencing;
using Chocopoi.DressingFramework.Logging;
using UnityEngine;
using Object = UnityEngine.Object;
@@ -26,6 +27,7 @@ public abstract class Context : IContext
{
public GameObject AvatarGameObject { get; private set; }
+ public abstract BuildRuntime CurrentRuntime { get; }
public abstract object RuntimeContext { get; }
internal abstract Report Report { get; }
public abstract Object AssetContainer { get; }
diff --git a/Editor/Detail/DK/AvatarBuilder.cs b/Editor/Detail/DK/AvatarBuilder.cs
index a572104..146547b 100644
--- a/Editor/Detail/DK/AvatarBuilder.cs
+++ b/Editor/Detail/DK/AvatarBuilder.cs
@@ -73,7 +73,7 @@ private void DispatchAnimationStore()
private bool RunPassesAtStage(BuildStage stage)
{
// Debug.Log($"[DK] =========== {stage} Start ===========");
- var passes = _plugMgr.GetSortedBuildPassesAtStage(stage);
+ var passes = _plugMgr.GetSortedBuildPassesAtStage(BuildRuntime.DK, stage);
if (passes == null)
{
diff --git a/Editor/Detail/DK/DKMAMenuStore.cs b/Editor/Detail/DK/DKMAMenuStore.cs
index f898e73..c2e5104 100644
--- a/Editor/Detail/DK/DKMAMenuStore.cs
+++ b/Editor/Detail/DK/DKMAMenuStore.cs
@@ -1,13 +1,13 @@
/*
* Copyright (c) 2024 chocopoi
*
- * This file is part of DressingTools.
+ * This file is part of DressingFramework.
*
- * DressingTools is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ * DressingFramework is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
- * DressingTools is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * DressingFramework is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License along with DressingTools. If not, see .
+ * You should have received a copy of the GNU General Public License along with DressingFramework. If not, see .
*/
#if DK_MA && DK_VRCSDK3A
@@ -30,13 +30,13 @@ namespace Chocopoi.DressingFramework.Detail.DK
internal class DKMAMenuStore : MenuStore
{
private readonly Context _ctx;
- private readonly Dictionary> _buffer;
+ private readonly Dictionary _buffer;
private readonly HashSet _clonedVrcMenus;
public DKMAMenuStore(Context ctx)
{
_ctx = ctx;
- _buffer = new Dictionary>();
+ _buffer = new Dictionary();
_clonedVrcMenus = new HashSet();
}
@@ -50,17 +50,17 @@ public override void Append(MenuItem menuItem, string path = null)
if (!_buffer.TryGetValue(path, out var menuItems))
{
- menuItems = _buffer[path] = new List