private void EquipBodyShape(WearableItem bodyShape) { if (bodyShape.category != Categories.BODY_SHAPE) { Debug.LogError($"Item ({bodyShape.id} is not a body shape"); return; } if (model.bodyShape == bodyShape) { return; } model.bodyShape = bodyShape; view.UpdateSelectedBody(bodyShape); int wearablesCount = model.wearables.Count; for (var i = wearablesCount - 1; i >= 0; i--) { UnequipWearable(model.wearables[i]); } var defaultWearables = WearableLiterals.DefaultWearables.GetDefaultWearables(bodyShape.id); for (var i = 0; i < defaultWearables.Length; i++) { EquipWearable(catalog.Get(defaultWearables[i])); } }
public IEnumerator ProcessHideListProperly_HeadHidden() { //Clean hides/replaces to avoid interferences CleanWearableHidesAndReplaces(SUNGLASSES_ID); CleanWearableHidesAndReplaces(BLUE_BANDANA_ID); catalog.Get(SUNGLASSES_ID).hides = new [] { WearableLiterals.Misc.HEAD }; avatarModel.wearables = new List <string>() { SUNGLASSES_ID }; bool ready = false; avatarRenderer.ApplyModel(avatarModel, () => ready = true, null); yield return(new DCL.WaitUntil(() => ready)); Assert.IsFalse(AvatarRenderer_Mock.GetBodyShapeController(avatarRenderer).headRenderer.enabled); Assert.IsFalse(AvatarRenderer_Mock.GetBodyShapeController(avatarRenderer).eyebrowsRenderer.enabled); Assert.IsFalse(AvatarRenderer_Mock.GetBodyShapeController(avatarRenderer).eyesRenderer.enabled); Assert.IsFalse(AvatarRenderer_Mock.GetBodyShapeController(avatarRenderer).mouthRenderer.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 }; 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)); }