private void AddModelComposition(string key, ModelComposition modelComposition) { if (!_modelCompositions.ContainsKey(key)) { _modelCompositions.Add(key, modelComposition); } }
public ModelComposition GetComposition(StoreAsset storeAsset) { var(leftSaber, rightSaber) = GetSabers(storeAsset.Prefab.transform); if (rightSaber == null) { var newParent = new GameObject("RightSaber").transform; newParent.parent = storeAsset.Prefab.transform; rightSaber = Object.Instantiate(leftSaber, newParent, false); rightSaber.transform.position = Vector3.zero; rightSaber.transform.localScale = new Vector3(-1, 1, 1); rightSaber.name = "RightSaberMirror"; rightSaber = newParent.gameObject; rightSaber.SetActive(false); } var storeAssetLeft = new StoreAsset(storeAsset.RelativePath, leftSaber, storeAsset.AssetBundle); var storeAssetRight = new StoreAsset(storeAsset.RelativePath, rightSaber, storeAsset.AssetBundle); var modelLeft = _factory.Create(storeAssetLeft); var modelRight = _factory.Create(storeAssetRight); modelLeft.SaberDescriptor = modelRight.SaberDescriptor = storeAsset.Prefab.GetComponent <SaberDescriptor>(); modelLeft.SaberSlot = ESaberSlot.Left; modelRight.SaberSlot = ESaberSlot.Right; var composition = new ModelComposition(AssetTypeDefinition.CustomSaber, modelLeft, modelRight, storeAsset.Prefab); composition.SetFavorite(_config.IsFavorite(storeAsset.RelativePath)); return(composition); }
public void SetModelComposition(ModelComposition composition) { CurrentModelComposition?.DestroyAdditionalInstances(); CurrentModelComposition = composition; _saberSet.SetModelComposition(CurrentModelComposition); OnModelCompositionSet?.Invoke(CurrentModelComposition); }
public void SetModelComposition(ModelComposition composition) { CurrentModelComposition?.DestroyAdditionalInstances(); CurrentModelComposition = composition; _saberSet.SetModelComposition(CurrentModelComposition); OnModelCompositionSet?.Invoke(CurrentModelComposition); _logger.Info($"Selected Saber: {composition.ListName}"); }
public PreloadMetaData GetMetaDataForComposition(ModelComposition comp) { var path = comp.GetLeft().StoreAsset.RelativePath + ".meta"; if (_metaData.TryGetValue(path, out var preloadMetaData)) { return(preloadMetaData); } return(null); }
public void SetModelComposition(ModelComposition composition, bool lazyInit = true) { if (CurrentModelComposition != null) { CurrentModelComposition.SaveAdditionalData(); CurrentModelComposition.DestroyAdditionalInstances(); } if (lazyInit && CurrentModelComposition != composition) { composition?.LazyInit(); } CurrentModelComposition = composition; _saberSet.SetModelComposition(CurrentModelComposition); OnModelCompositionSet?.Invoke(CurrentModelComposition); _logger.Info($"Selected Saber: {composition?.ListName}"); }
public ModelComposition GetComposition(StoreAsset storeAsset) { var(leftSaber, rightSaber) = GetSabers(storeAsset.Prefab.transform); var storeAssetLeft = new StoreAsset(storeAsset.RelativePath, leftSaber, storeAsset.AssetBundle); var storeAssetRight = new StoreAsset(storeAsset.RelativePath, rightSaber, storeAsset.AssetBundle); var modelLeft = _factory.Create(storeAssetLeft); var modelRight = _factory.Create(storeAssetRight); modelLeft.SaberDescriptor = modelRight.SaberDescriptor = storeAsset.Prefab.GetComponent <SaberDescriptor>(); modelLeft.SaberSlot = ESaberSlot.Left; modelRight.SaberSlot = ESaberSlot.Right; var composition = new ModelComposition(AssetTypeDefinition.CustomSaber, modelLeft, modelRight, storeAsset.Prefab); composition.SetFavorite(_config.IsFavorite(storeAsset.RelativePath)); return(composition); }
private void OnModelCompositionSet(ModelComposition composition) { _spawnedSaber?.Destroy(); _spawnedSaber = _editorInstanceManager.CreateSaber(_saberSet.LeftSaber, _pedestal.SaberContainerTransform, true, true); }
private void SaberSelected(ICustomListItem item) { _selectedComposition = (ModelComposition)item; }