gg.easy.airship 0.1.2104 → 0.1.2105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Editor/Accessories/AccessoryEditorWindow.cs +37 -28
- package/Editor/Accessories/Clothing/PlatformGearBundleManifestEditor.cs +3 -2
- package/Editor/AirAsset/AirAssetBundleEditor.cs +2 -2
- package/Editor/EditorIntegrationsConfig.cs +1 -1
- package/Editor/Publish/Deploy.cs +16 -5
- package/Editor/TypescriptCompiler~/utsc.js +140 -140
- package/Editor/TypescriptServices/Compiler/TypescriptCompilationService.cs +97 -42
- package/Editor/TypescriptServices/Editor/TypescriptOptions.cs +105 -38
- package/Editor/TypescriptServices/Projects/TypescriptProject.cs +2 -0
- package/Editor/TypescriptServices/TypescriptServices.cs +1 -0
- package/Runtime/Code/AirAssetBundle/AirAssetBundle.cs +9 -5
- package/Runtime/Code/Player/Accessories/AccessoryBuilder.cs +2 -2
- package/Runtime/Code/Player/Accessories/AccessoryComponent.cs +7 -0
- package/Runtime/Code/VoxelWorld/VoxelBlockDefinitionList.cs +37 -11
- package/Runtime/Plugins/Mac/LuauPlugin.bundle/Contents/Info.plist.meta +7 -0
- package/Runtime/Plugins/Mac/LuauPlugin.bundle/Contents/MacOS.meta +8 -0
- package/Runtime/Plugins/Mac/LuauPlugin.bundle/Contents/_CodeSignature/CodeResources.meta +7 -0
- package/Runtime/Plugins/Mac/LuauPlugin.bundle/Contents/_CodeSignature.meta +8 -0
- package/Runtime/Plugins/Mac/LuauPlugin.bundle/Contents.meta +8 -0
- package/ThirdParty/UnityTweens/Runtime/AirshipTweenExtensions.cs +11 -0
- package/URP/AirshipURPAsset_Renderer.asset +34 -37
- package/URP/Shaders/AirshipCharacterAlpha.shader +95 -0
- package/URP/Shaders/AirshipCharacterAlpha.shader.meta +9 -0
- package/URP/Shaders/AirshipCharacterBehindWalls.shader +59 -0
- package/URP/Shaders/AirshipCharacterBehindWalls.shader.meta +9 -0
- package/URP/Shaders/AirshipCharacterStencil.shader +19 -0
- package/URP/Shaders/AirshipCharacterStencil.shader.meta +9 -0
- package/URP/Shaders/CharacterOverlayAlpha.mat +167 -0
- package/URP/Shaders/CharacterOverlayAlpha.mat.meta +8 -0
- package/URP/Shaders/CharacterOverlayBehindWalls.mat +167 -0
- package/URP/Shaders/CharacterOverlayBehindWalls.mat.meta +8 -0
- package/URP/Shaders/CharacterOverlayStencil.mat +167 -0
- package/URP/Shaders/CharacterOverlayStencil.mat.meta +8 -0
- package/URP/Shaders.meta +8 -0
- package/package.json +1 -1
|
@@ -34,8 +34,8 @@ namespace Editor.Accessories {
|
|
|
34
34
|
private AccessoryPrefabEditor prefabEditor;
|
|
35
35
|
private GameObject characterGO;
|
|
36
36
|
List<AccessoryComponent> allAccessories = new List<AccessoryComponent>();
|
|
37
|
-
private AccessoryComponent
|
|
38
|
-
private AccessoryComponent
|
|
37
|
+
private AccessoryComponent editingAccessoryComponent;
|
|
38
|
+
private AccessoryComponent referenceAccessoryComponent;
|
|
39
39
|
private ListView _listPane;
|
|
40
40
|
|
|
41
41
|
private Label _selectedItemLabel;
|
|
@@ -57,8 +57,8 @@ namespace Editor.Accessories {
|
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
_prefabStage = null;
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
editingAccessoryComponent = null;
|
|
61
|
+
referenceAccessoryComponent = null;
|
|
62
62
|
|
|
63
63
|
if (characterGO) {
|
|
64
64
|
DestroyImmediate(characterGO);
|
|
@@ -130,7 +130,7 @@ namespace Editor.Accessories {
|
|
|
130
130
|
saveBtn.text = "Save";
|
|
131
131
|
buttonPanel.Add(saveBtn);
|
|
132
132
|
saveBtn.clickable.clicked += () => {
|
|
133
|
-
if (
|
|
133
|
+
if (editingAccessoryComponent == null || referenceAccessoryComponent == null) return;
|
|
134
134
|
SaveCurrentAccessory();
|
|
135
135
|
};
|
|
136
136
|
|
|
@@ -139,7 +139,7 @@ namespace Editor.Accessories {
|
|
|
139
139
|
resetBtn.text = "Reset";
|
|
140
140
|
buttonPanel.Add(resetBtn);
|
|
141
141
|
resetBtn.clickable.clicked += () => {
|
|
142
|
-
if (
|
|
142
|
+
if (editingAccessoryComponent == null || referenceAccessoryComponent == null) return;
|
|
143
143
|
ResetCurrentAccessory();
|
|
144
144
|
};
|
|
145
145
|
|
|
@@ -219,9 +219,9 @@ namespace Editor.Accessories {
|
|
|
219
219
|
|
|
220
220
|
private void ClearCurrentAccessory() {
|
|
221
221
|
Log("ClearCurrentAccessory");
|
|
222
|
-
if (
|
|
223
|
-
DestroyImmediate(
|
|
224
|
-
|
|
222
|
+
if (editingAccessoryComponent) {
|
|
223
|
+
DestroyImmediate(editingAccessoryComponent.gameObject);
|
|
224
|
+
editingAccessoryComponent = null;
|
|
225
225
|
}
|
|
226
226
|
|
|
227
227
|
if (_selectedItemLabel != null) {
|
|
@@ -229,9 +229,11 @@ namespace Editor.Accessories {
|
|
|
229
229
|
}
|
|
230
230
|
}
|
|
231
231
|
|
|
232
|
+
|
|
233
|
+
private bool hasFramedView = false;
|
|
232
234
|
private void BuildScene(AccessoryComponent accessoryComponent, bool forceRedraw = false) {
|
|
233
|
-
var newItem = accessoryComponent !=
|
|
234
|
-
Log("Building Scene. New Item: " + newItem + " acc: " + accessoryComponent?.gameObject.name + " oldAcc: " +
|
|
235
|
+
var newItem = accessoryComponent != referenceAccessoryComponent;
|
|
236
|
+
Log("Building Scene. New Item: " + newItem + " acc: " + accessoryComponent?.gameObject.name + " oldAcc: " + referenceAccessoryComponent?.gameObject.name);
|
|
235
237
|
if (_prefabStage == null || characterGO == null) {
|
|
236
238
|
CreateStage();
|
|
237
239
|
}
|
|
@@ -252,17 +254,24 @@ namespace Editor.Accessories {
|
|
|
252
254
|
return;
|
|
253
255
|
}
|
|
254
256
|
|
|
255
|
-
|
|
256
257
|
var go = (GameObject)PrefabUtility.InstantiatePrefab(accessoryComponent.gameObject, parent);
|
|
257
258
|
if (go != null) {
|
|
258
|
-
|
|
259
|
-
|
|
259
|
+
this.editingAccessoryComponent = go.GetComponent<AccessoryComponent>();
|
|
260
|
+
this.referenceAccessoryComponent = accessoryComponent;
|
|
260
261
|
//accessoryComponent.gameObject.hideFlags = HideFlags.DontSave;
|
|
261
262
|
Selection.activeObject = go;
|
|
262
263
|
Selection.activeGameObject = go;
|
|
263
|
-
SceneView.FrameLastActiveSceneView();
|
|
264
|
+
// SceneView.FrameLastActiveSceneView();
|
|
264
265
|
|
|
265
266
|
_selectedItemLabel.text = accessoryComponent.name;
|
|
267
|
+
|
|
268
|
+
if (this.editingAccessoryComponent.skinnedToCharacter) {
|
|
269
|
+
var skinnedMeshRenderers = go.GetComponentsInChildren<SkinnedMeshRenderer>();
|
|
270
|
+
foreach (var skinnedMeshRenderer in skinnedMeshRenderers) {
|
|
271
|
+
skinnedMeshRenderer.rootBone = rig.bodyMesh.rootBone;
|
|
272
|
+
skinnedMeshRenderer.bones = rig.bodyMesh.bones;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
266
275
|
}
|
|
267
276
|
}
|
|
268
277
|
}
|
|
@@ -366,30 +375,30 @@ namespace Editor.Accessories {
|
|
|
366
375
|
}
|
|
367
376
|
|
|
368
377
|
private void SaveCurrentAccessory() {
|
|
369
|
-
if (!
|
|
378
|
+
if (!referenceAccessoryComponent) {
|
|
370
379
|
Debug.LogError("Trying to save with an empty accessory component");
|
|
371
380
|
return;
|
|
372
381
|
}
|
|
373
382
|
|
|
374
|
-
Log("Saving acc: " +
|
|
375
|
-
Undo.RecordObject(
|
|
376
|
-
|
|
377
|
-
PrefabUtility.RecordPrefabInstancePropertyModifications(
|
|
378
|
-
EditorUtility.SetDirty(
|
|
379
|
-
PrefabUtility.ApplyPrefabInstance(
|
|
383
|
+
Log("Saving acc: " + referenceAccessoryComponent.gameObject.name);
|
|
384
|
+
Undo.RecordObject(referenceAccessoryComponent, "Save Accessory");
|
|
385
|
+
referenceAccessoryComponent.Copy(editingAccessoryComponent);
|
|
386
|
+
PrefabUtility.RecordPrefabInstancePropertyModifications(referenceAccessoryComponent);
|
|
387
|
+
EditorUtility.SetDirty(referenceAccessoryComponent);
|
|
388
|
+
PrefabUtility.ApplyPrefabInstance(editingAccessoryComponent.gameObject, InteractionMode.UserAction);
|
|
380
389
|
AssetDatabase.SaveAssets();
|
|
381
390
|
}
|
|
382
391
|
|
|
383
392
|
private void ResetCurrentAccessory() {
|
|
384
|
-
if(!
|
|
393
|
+
if(!referenceAccessoryComponent){
|
|
385
394
|
Debug.LogError("Trying to reset an empty accessory component");
|
|
386
395
|
return;
|
|
387
396
|
}
|
|
388
|
-
Log("Resetting acc: " +
|
|
389
|
-
Undo.RecordObject(
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
PrefabUtility.RevertPrefabInstance(
|
|
397
|
+
Log("Resetting acc: " + referenceAccessoryComponent.gameObject.name);
|
|
398
|
+
Undo.RecordObject(editingAccessoryComponent.transform, "ResetTransform");
|
|
399
|
+
editingAccessoryComponent.transform.SetLocalPositionAndRotation(referenceAccessoryComponent.localPosition, referenceAccessoryComponent.localRotation);
|
|
400
|
+
editingAccessoryComponent.localScale = referenceAccessoryComponent.localScale;
|
|
401
|
+
PrefabUtility.RevertPrefabInstance(editingAccessoryComponent.gameObject, InteractionMode.UserAction);
|
|
393
402
|
}
|
|
394
403
|
|
|
395
404
|
private void SetPose(PoseType poseType){
|
|
@@ -224,7 +224,8 @@ namespace Editor.Accessories.Clothing {
|
|
|
224
224
|
category = category,
|
|
225
225
|
subcategory = subcategory,
|
|
226
226
|
};
|
|
227
|
-
var
|
|
227
|
+
var url = $"{AirshipPlatformUrl.contentService}/gear/class-id/{gear.classId}";
|
|
228
|
+
var req = UnityWebRequest.Put(url,
|
|
228
229
|
JsonUtility.ToJson(data));
|
|
229
230
|
req.method = "PATCH";
|
|
230
231
|
req.SetRequestHeader("Content-Type","application/json");
|
|
@@ -232,7 +233,7 @@ namespace Editor.Accessories.Clothing {
|
|
|
232
233
|
req.SetRequestHeader("x-airship-ignore-rate-limit", "true");
|
|
233
234
|
await req.SendWebRequest();
|
|
234
235
|
if (req.result != UnityWebRequest.Result.Success) {
|
|
235
|
-
Debug.LogError("patch classId
|
|
236
|
+
Debug.LogError($"patch classId. url: {url}, response: {req.downloadHandler.text}, authToken: {InternalHttpManager.editorAuthToken}");
|
|
236
237
|
return;
|
|
237
238
|
}
|
|
238
239
|
}
|
|
@@ -4,7 +4,7 @@ using System.IO;
|
|
|
4
4
|
using System.Linq;
|
|
5
5
|
using System.Threading.Tasks;
|
|
6
6
|
using Code.Accessories.Clothing;
|
|
7
|
-
using Code.
|
|
7
|
+
using Code.AirAssetBundle;
|
|
8
8
|
using Code.Bootstrap;
|
|
9
9
|
using Code.Http.Internal;
|
|
10
10
|
using Code.Platform.Shared;
|
|
@@ -174,7 +174,7 @@ namespace Editor.AirAsset {
|
|
|
174
174
|
var addressableNames = assetPaths
|
|
175
175
|
.Select((p) => p.ToLower())
|
|
176
176
|
.Select((p) => {
|
|
177
|
-
if (p.Contains(target.name + ".asset")) {
|
|
177
|
+
if (p.Contains(target.name.ToLower() + ".asset")) {
|
|
178
178
|
// custom name so it's easier to find when loading
|
|
179
179
|
return "_AirAssetBundle";
|
|
180
180
|
}
|
|
@@ -54,7 +54,7 @@ public class EditorIntegrationsConfig : ScriptableSingleton<EditorIntegrationsCo
|
|
|
54
54
|
|
|
55
55
|
[FormerlySerializedAs("automaticTypeScriptCompilation")]
|
|
56
56
|
[SerializeField] public bool typescriptAutostartCompiler = true;
|
|
57
|
-
|
|
57
|
+
|
|
58
58
|
/// <summary>
|
|
59
59
|
/// The version of the compiler to use
|
|
60
60
|
/// </summary>
|
package/Editor/Publish/Deploy.cs
CHANGED
|
@@ -124,12 +124,23 @@ public class Deploy {
|
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
// Rebuild Typescript
|
|
127
|
-
var
|
|
128
|
-
var
|
|
129
|
-
|
|
127
|
+
var skipRecompileOnCodeDeploy = skipBuild && TypescriptServicesLocalConfig.instance.skipCompileOnCodeDeploy;
|
|
128
|
+
var shouldRecompile = !skipBuild || !skipRecompileOnCodeDeploy;
|
|
129
|
+
var shouldResumeTypescriptWatch = shouldRecompile && TypescriptCompilationService.IsWatchModeRunning;
|
|
130
|
+
|
|
130
131
|
// We want to do a full publish
|
|
131
|
-
|
|
132
|
-
|
|
132
|
+
|
|
133
|
+
if (shouldRecompile) {
|
|
134
|
+
TypescriptCompilationService.StopCompilers();
|
|
135
|
+
|
|
136
|
+
var compileFlags = TypeScriptCompileFlags.Publishing | TypeScriptCompileFlags.DisplayProgressBar; // FullClean will clear the incremental file & Publishing will omit editor data
|
|
137
|
+
|
|
138
|
+
if (skipBuild) {
|
|
139
|
+
compileFlags |= TypeScriptCompileFlags.SkipReimportQueue; // code publish does not require asset reimport
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
TypescriptCompilationService.BuildTypescript(compileFlags);
|
|
143
|
+
}
|
|
133
144
|
|
|
134
145
|
if (TypescriptCompilationService.ErrorCount > 0) {
|
|
135
146
|
Debug.LogError($"Could not publish the project with {TypescriptCompilationService.ErrorCount} compilation error{(TypescriptCompilationService.ErrorCount == 1 ? "" : "s")}");
|