Beispiel #1
0
 private void AddModelComposition(string key, ModelComposition modelComposition)
 {
     if (!_modelCompositions.ContainsKey(key))
     {
         _modelCompositions.Add(key, modelComposition);
     }
 }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 public void SetModelComposition(ModelComposition composition)
 {
     CurrentModelComposition?.DestroyAdditionalInstances();
     CurrentModelComposition = composition;
     _saberSet.SetModelComposition(CurrentModelComposition);
     OnModelCompositionSet?.Invoke(CurrentModelComposition);
 }
Beispiel #4
0
 public void SetModelComposition(ModelComposition composition)
 {
     CurrentModelComposition?.DestroyAdditionalInstances();
     CurrentModelComposition = composition;
     _saberSet.SetModelComposition(CurrentModelComposition);
     OnModelCompositionSet?.Invoke(CurrentModelComposition);
     _logger.Info($"Selected Saber: {composition.ListName}");
 }
Beispiel #5
0
        public PreloadMetaData GetMetaDataForComposition(ModelComposition comp)
        {
            var path = comp.GetLeft().StoreAsset.RelativePath + ".meta";

            if (_metaData.TryGetValue(path, out var preloadMetaData))
            {
                return(preloadMetaData);
            }
            return(null);
        }
Beispiel #6
0
        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);
        }
Beispiel #8
0
 private void OnModelCompositionSet(ModelComposition composition)
 {
     _spawnedSaber?.Destroy();
     _spawnedSaber = _editorInstanceManager.CreateSaber(_saberSet.LeftSaber, _pedestal.SaberContainerTransform, true, true);
 }
Beispiel #9
0
 private void SaberSelected(ICustomListItem item)
 {
     _selectedComposition = (ModelComposition)item;
 }