public IEnumerator SetTheCorrectMaterialWhenLoadingMultipleTimes() { avatarModel = AvatarShapeTestHelpers.GetTestAvatarModel("test", "TestAvatar.json"); avatarShape.avatarRenderer.ApplyModel(avatarModel, null, null); avatarShape.avatarRenderer.ApplyModel(avatarModel, null, null); avatarShape.avatarRenderer.ApplyModel(avatarModel, null, null); bool lastUpdateIsDone = false; avatarShape.avatarRenderer.ApplyModel(avatarModel, () => lastUpdateIsDone = true, null); yield return(new DCL.WaitUntil(() => lastUpdateIsDone)); var wearableControllers = AvatarRenderer_Mock.GetWearableMockControllers(avatarShape.avatarRenderer); List <Material> materials = new List <Material>(); foreach (var wearableControllerMock in wearableControllers.Values) { if (wearableControllerMock.category == WearableLiterals.Categories.EYES || wearableControllerMock.category == WearableLiterals.Categories.EYEBROWS || wearableControllerMock.category == WearableLiterals.Categories.MOUTH) { continue; } materials.AddRange(wearableControllerMock.myAssetContainer.GetComponentsInChildren <Renderer>().SelectMany(x => x.materials).ToList()); } Assert.IsTrue(materials.All(x => x.shader.name == "DCL/Toon Shader")); }
public IEnumerator BeVisibleByDefault() { avatarModel.wearables = new List <string>() { SUNGLASSES_ID }; yield return(avatarShape.ApplyChanges(JsonUtility.ToJson(avatarModel))); var sunglassesController = new WearableController_Mock(AvatarRenderer_Mock.GetWearableControllers(avatarShape.avatarRenderer)[SUNGLASSES_ID]); Assert.IsTrue(sunglassesController.myAssetRenderers.All(x => x.enabled)); }
public IEnumerator BeVisibleByDefault() { avatarModel.wearables = new List <string>() { SUNGLASSES_ID }; avatarShape.UpdateFromModel(avatarModel); yield return(avatarShape.routine); var sunglassesController = new WearableController_Mock(AvatarRenderer_Mock.GetWearableControllers(avatarShape.avatarRenderer)[SUNGLASSES_ID]); Assert.IsTrue(sunglassesController.myAssetRenderers.All(x => x.enabled)); }
public IEnumerator NotBeHiddenByWrongGeneralHides() { var bandana = catalog.Get(BLUE_BANDANA_ID); bandana.hides = new[] { "NonExistentCategory" }; avatarModel.wearables = new List <string>() { SUNGLASSES_ID, BLUE_BANDANA_ID }; yield return(avatarShape.ApplyChanges(JsonUtility.ToJson(avatarModel))); var sunglassesController = new WearableController_Mock(AvatarRenderer_Mock.GetWearableControllers(avatarShape.avatarRenderer)[SUNGLASSES_ID]); var bandanaController = new WearableController_Mock(AvatarRenderer_Mock.GetWearableControllers(avatarShape.avatarRenderer)[BLUE_BANDANA_ID]); Assert.IsTrue(sunglassesController.myAssetRenderers.All(x => x.enabled)); Assert.IsTrue(bandanaController.myAssetRenderers.All(x => x.enabled)); }
public IEnumerator HideBodyShapeProperly() { catalog.Get(SUNGLASSES_ID).hides = new[] { WearableLiterals.Misc.HEAD }; avatarModel.wearables = new List <string>() { SUNGLASSES_ID, BLUE_BANDANA_ID }; yield return(avatarShape.ApplyChanges(JsonUtility.ToJson(avatarModel))); var bodyShapeAssetContainer = AvatarRenderer_Mock.GetBodyShapeController(avatarShape.avatarRenderer)?.myAssetContainer; Assert.IsNotNull(bodyShapeAssetContainer); var renderers = bodyShapeAssetContainer.GetComponentsInChildren <Renderer>(); Assert.IsTrue(renderers.All(x => !x.enabled)); }
public IEnumerator BeRetrievedWithoutPoolableObject() { avatarModel.wearables = new List <string>() { SUNGLASSES_ID, BLUE_BANDANA_ID }; yield return(avatarShape.ApplyChanges(JsonUtility.ToJson(avatarModel))); var sunglassesAssetContainer = AvatarRenderer_Mock.GetWearableController(avatarShape.avatarRenderer, SUNGLASSES_ID)?.myAssetContainer; var bandanaAssetContainer = AvatarRenderer_Mock.GetWearableController(avatarShape.avatarRenderer, BLUE_BANDANA_ID)?.myAssetContainer; var sunglassesPoolableObject = PoolManager.i.GetPoolable(sunglassesAssetContainer); var bandanaPoolableObject = PoolManager.i.GetPoolable(bandanaAssetContainer); Assert.IsNull(sunglassesPoolableObject); Assert.IsNull(bandanaPoolableObject); }
public IEnumerator BeUnequipedProperly() { avatarModel.wearables = new List <string>() { SUNGLASSES_ID }; yield return(avatarShape.ApplyChanges(JsonUtility.ToJson(avatarModel))); avatarModel.wearables = new List <string>() { }; yield return(avatarShape.ApplyChanges(JsonUtility.ToJson(avatarModel))); var wearableControllers = AvatarRenderer_Mock.GetWearableControllers(avatarShape.avatarRenderer); Assert.IsFalse(wearableControllers.ContainsKey(SUNGLASSES_ID)); }
public IEnumerator NotBeHiddenByOverrideHides() { var sunglasses = catalog.Get(SUNGLASSES_ID); var bandana = catalog.Get(BLUE_BANDANA_ID); bandana.GetRepresentation(WearableLiterals.BodyShapes.MALE).overrideHides = new[] { sunglasses.category }; avatarModel.wearables = new List <string>() { SUNGLASSES_ID, BLUE_BANDANA_ID }; yield return(avatarShape.ApplyChanges(JsonUtility.ToJson(avatarModel))); var sunglassesController = new WearableController_Mock(AvatarRenderer_Mock.GetWearableControllers(avatarShape.avatarRenderer)[SUNGLASSES_ID]); var bandanaController = new WearableController_Mock(AvatarRenderer_Mock.GetWearableControllers(avatarShape.avatarRenderer)[BLUE_BANDANA_ID]); Assert.IsTrue(sunglassesController.myAssetRenderers.All(x => x.enabled)); Assert.IsTrue(bandanaController.myAssetRenderers.All(x => x.enabled)); }
public IEnumerator ProcessVisibilityFalseWhenSetBeforeLoading() { //Clean hides/replaces to avoid interferences CleanWearableHidesAndReplaces(SUNGLASSES_ID); CleanWearableHidesAndReplaces(BLUE_BANDANA_ID); avatarModel.wearables = new List <string>() { SUNGLASSES_ID, BLUE_BANDANA_ID }; avatarRenderer.SetVisibility(false); bool ready = false; avatarRenderer.ApplyModel(avatarModel, () => ready = true, null); yield return(new DCL.WaitUntil(() => ready)); Assert.IsTrue(AvatarRenderer_Mock.GetBodyShapeController(avatarRenderer).myAssetRenderers.All(x => !x.enabled)); }
public IEnumerator BeHiddenByGeneralHides() { var sunglasses = catalog.Get(SUNGLASSES_ID); var bandana = catalog.Get(BLUE_BANDANA_ID); bandana.hides = new[] { sunglasses.category }; avatarModel.wearables = new List <string>() { SUNGLASSES_ID, BLUE_BANDANA_ID }; avatarShape.UpdateFromModel(avatarModel); yield return(avatarShape.routine); var sunglassesController = new WearableController_Mock(AvatarRenderer_Mock.GetWearableControllers(avatarShape.avatarRenderer)[SUNGLASSES_ID]); var bandanaController = new WearableController_Mock(AvatarRenderer_Mock.GetWearableControllers(avatarShape.avatarRenderer)[BLUE_BANDANA_ID]); Assert.IsTrue(sunglassesController.myAssetRenderers.All(x => !x.enabled)); Assert.IsTrue(bandanaController.myAssetRenderers.All(x => x.enabled)); }
public IEnumerator BeUnequipedProperly() { avatarModel.wearables = new List <string>() { SUNGLASSES_ID }; avatarShape.UpdateFromModel(avatarModel); yield return(avatarShape.routine); avatarModel.wearables = new List <string>() { }; avatarShape.UpdateFromModel(avatarModel); yield return(avatarShape.routine); var wearableControllers = AvatarRenderer_Mock.GetWearableControllers(avatarShape.avatarRenderer); Assert.IsFalse(wearableControllers.ContainsKey(SUNGLASSES_ID)); }
public IEnumerator SetTheCorrectMaterial() { avatarModel = AvatarTestHelpers.GetTestAvatarModel("test", "TestAvatar.json"); yield return(avatarShape.ApplyChanges(JsonUtility.ToJson(avatarModel))); var wearableControllers = AvatarRenderer_Mock.GetWearableMockControllers(avatarShape.avatarRenderer); List <Material> materials = new List <Material>(); foreach (var wearableControllerMock in wearableControllers.Values) { if (wearableControllerMock.category == WearableLiterals.Categories.EYES || wearableControllerMock.category == WearableLiterals.Categories.EYEBROWS || wearableControllerMock.category == WearableLiterals.Categories.MOUTH) { continue; } materials.AddRange(wearableControllerMock.myAssetContainer.GetComponentsInChildren <Renderer>().SelectMany(x => x.materials).ToList()); } Assert.IsTrue(materials.All(x => x.shader.name == "DCL/Toon Shader")); }
public IEnumerator ProcessHideListProperly_HeadShowing() { //Clean hides/replaces to avoid interferences CleanWearableHidesAndReplaces(SUNGLASSES_ID); CleanWearableHidesAndReplaces(BLUE_BANDANA_ID); avatarModel.wearables = new List <string>() { SUNGLASSES_ID }; bool ready = false; avatarRenderer.ApplyModel(avatarModel, () => ready = true, null); yield return(new DCL.WaitUntil(() => ready)); Assert.IsTrue(AvatarRenderer_Mock.GetBodyShapeController(avatarRenderer).headRenderer.enabled); Assert.IsTrue(AvatarRenderer_Mock.GetBodyShapeController(avatarRenderer).eyebrowsRenderer.enabled); Assert.IsTrue(AvatarRenderer_Mock.GetBodyShapeController(avatarRenderer).eyesRenderer.enabled); Assert.IsTrue(AvatarRenderer_Mock.GetBodyShapeController(avatarRenderer).mouthRenderer.enabled); }
public IEnumerator BeUnequipedProperlyMultipleTimes() { List <GameObject> containers = new List <GameObject>(); for (int i = 0; i < 6; i++) { avatarModel.wearables = new List <string>() { SUNGLASSES_ID }; yield return(avatarShape.ApplyChanges(JsonUtility.ToJson(avatarModel))); containers.Add(AvatarRenderer_Mock.GetWearableController(avatarShape.avatarRenderer, SUNGLASSES_ID)?.myAssetContainer); avatarModel.wearables = new List <string>() { }; yield return(avatarShape.ApplyChanges(JsonUtility.ToJson(avatarModel))); } Assert.IsTrue(containers.All(x => x == null)); }