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.
Files changed (35) hide show
  1. package/Editor/Accessories/AccessoryEditorWindow.cs +37 -28
  2. package/Editor/Accessories/Clothing/PlatformGearBundleManifestEditor.cs +3 -2
  3. package/Editor/AirAsset/AirAssetBundleEditor.cs +2 -2
  4. package/Editor/EditorIntegrationsConfig.cs +1 -1
  5. package/Editor/Publish/Deploy.cs +16 -5
  6. package/Editor/TypescriptCompiler~/utsc.js +140 -140
  7. package/Editor/TypescriptServices/Compiler/TypescriptCompilationService.cs +97 -42
  8. package/Editor/TypescriptServices/Editor/TypescriptOptions.cs +105 -38
  9. package/Editor/TypescriptServices/Projects/TypescriptProject.cs +2 -0
  10. package/Editor/TypescriptServices/TypescriptServices.cs +1 -0
  11. package/Runtime/Code/AirAssetBundle/AirAssetBundle.cs +9 -5
  12. package/Runtime/Code/Player/Accessories/AccessoryBuilder.cs +2 -2
  13. package/Runtime/Code/Player/Accessories/AccessoryComponent.cs +7 -0
  14. package/Runtime/Code/VoxelWorld/VoxelBlockDefinitionList.cs +37 -11
  15. package/Runtime/Plugins/Mac/LuauPlugin.bundle/Contents/Info.plist.meta +7 -0
  16. package/Runtime/Plugins/Mac/LuauPlugin.bundle/Contents/MacOS.meta +8 -0
  17. package/Runtime/Plugins/Mac/LuauPlugin.bundle/Contents/_CodeSignature/CodeResources.meta +7 -0
  18. package/Runtime/Plugins/Mac/LuauPlugin.bundle/Contents/_CodeSignature.meta +8 -0
  19. package/Runtime/Plugins/Mac/LuauPlugin.bundle/Contents.meta +8 -0
  20. package/ThirdParty/UnityTweens/Runtime/AirshipTweenExtensions.cs +11 -0
  21. package/URP/AirshipURPAsset_Renderer.asset +34 -37
  22. package/URP/Shaders/AirshipCharacterAlpha.shader +95 -0
  23. package/URP/Shaders/AirshipCharacterAlpha.shader.meta +9 -0
  24. package/URP/Shaders/AirshipCharacterBehindWalls.shader +59 -0
  25. package/URP/Shaders/AirshipCharacterBehindWalls.shader.meta +9 -0
  26. package/URP/Shaders/AirshipCharacterStencil.shader +19 -0
  27. package/URP/Shaders/AirshipCharacterStencil.shader.meta +9 -0
  28. package/URP/Shaders/CharacterOverlayAlpha.mat +167 -0
  29. package/URP/Shaders/CharacterOverlayAlpha.mat.meta +8 -0
  30. package/URP/Shaders/CharacterOverlayBehindWalls.mat +167 -0
  31. package/URP/Shaders/CharacterOverlayBehindWalls.mat.meta +8 -0
  32. package/URP/Shaders/CharacterOverlayStencil.mat +167 -0
  33. package/URP/Shaders/CharacterOverlayStencil.mat.meta +8 -0
  34. package/URP/Shaders.meta +8 -0
  35. 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 _editingAccessoryComponent;
38
- private AccessoryComponent _referenceAccessoryComponent;
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
- _editingAccessoryComponent = null;
61
- _referenceAccessoryComponent = null;
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 (_editingAccessoryComponent == null || _referenceAccessoryComponent == null) return;
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 (_editingAccessoryComponent == null || _referenceAccessoryComponent == null) return;
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 (_editingAccessoryComponent) {
223
- DestroyImmediate(_editingAccessoryComponent.gameObject);
224
- _editingAccessoryComponent = null;
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 != _referenceAccessoryComponent;
234
- Log("Building Scene. New Item: " + newItem + " acc: " + accessoryComponent?.gameObject.name + " oldAcc: " + _referenceAccessoryComponent?.gameObject.name);
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
- _editingAccessoryComponent = go.GetComponent<AccessoryComponent>();
259
- _referenceAccessoryComponent = accessoryComponent;
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 (!_referenceAccessoryComponent) {
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: " + _referenceAccessoryComponent.gameObject.name);
375
- Undo.RecordObject(_referenceAccessoryComponent, "Save Accessory");
376
- _referenceAccessoryComponent.Copy(_editingAccessoryComponent);
377
- PrefabUtility.RecordPrefabInstancePropertyModifications(_referenceAccessoryComponent);
378
- EditorUtility.SetDirty(_referenceAccessoryComponent);
379
- PrefabUtility.ApplyPrefabInstance(_editingAccessoryComponent.gameObject, InteractionMode.UserAction);
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(!_referenceAccessoryComponent){
393
+ if(!referenceAccessoryComponent){
385
394
  Debug.LogError("Trying to reset an empty accessory component");
386
395
  return;
387
396
  }
388
- Log("Resetting acc: " + _referenceAccessoryComponent.gameObject.name);
389
- Undo.RecordObject(_editingAccessoryComponent.transform, "ResetTransform");
390
- _editingAccessoryComponent.transform.SetLocalPositionAndRotation(_referenceAccessoryComponent.localPosition, _referenceAccessoryComponent.localRotation);
391
- _editingAccessoryComponent.localScale = _referenceAccessoryComponent.localScale;
392
- PrefabUtility.RevertPrefabInstance(_editingAccessoryComponent.gameObject, InteractionMode.UserAction);
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 req = UnityWebRequest.Put($"{AirshipPlatformUrl.contentService}/gear/class-id/{gear.classId}",
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 response: " + req.downloadHandler.text);
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.AirAsset;
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>
@@ -124,12 +124,23 @@ public class Deploy {
124
124
  }
125
125
 
126
126
  // Rebuild Typescript
127
- var shouldResumeTypescriptWatch = TypescriptCompilationService.IsWatchModeRunning;
128
- var compileFlags = TypeScriptCompileFlags.FullClean | TypeScriptCompileFlags.Publishing; // FullClean will clear the incremental file & Publishing will omit editor data
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
- TypescriptCompilationService.StopCompilers();
132
- TypescriptCompilationService.BuildTypescript(compileFlags);
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")}");