Ejemplo n.º 1
0
 public Kn5LocalDeviceContextHolder(IDeviceContextHolder mainHolder, SharedMaterials sharedMaterials, ITexturesProvider texturesProvider,
                                    IKn5Model model)
 {
     _mainHolder       = mainHolder;
     _sharedMaterials  = sharedMaterials;
     _texturesProvider = texturesProvider;
     _model            = model;
 }
Ejemplo n.º 2
0
 private SharedMaterials GetSharedMaterialsInstance()
 {
     return(_sharedMaterials ?? (_sharedMaterials = new SharedMaterials(Get <IMaterialsFactory>())));
 }
Ejemplo n.º 3
0
        public void RebuildPacks()
        {
            if (!Manager.IsAwake <Mods> ())
            {
                Manager.WakeUp <Mods> ("__MODS");
                Mods.Get.Editor.InitializeEditor();
            }
            if (!Manager.IsAwake <Structures> ())
            {
                Manager.WakeUp <Structures> ("Frontiers_Structures");
            }
            //Debug.Log ("Rebuilding structure manager packs from paths");
            Structures.Get.StructurePacks.Clear();
            foreach (StructurePackPaths packPaths in Structures.Get.PackPaths)
            {
                //Debug.Log ("Loading pack " + packPaths.PackPath);
                StructurePack structurePack = new StructurePack();
                structurePack.Name = System.IO.Path.GetFileName(packPaths.PackPath);

                foreach (string staticPrefabPath in packPaths.StaticPrefabs)
                {
                    string finalPath = ("Assets" + staticPrefabPath);
                    //Debug.Log ("Adding statpre " + finalPath);
                    UnityEngine.Object prefab             = AssetDatabase.LoadAssetAtPath(finalPath, typeof(UnityEngine.Object)) as UnityEngine.Object;
                    GameObject         prefabAsGameObject = prefab as GameObject;
                    if (prefabAsGameObject != null)
                    {
                        structurePack.StaticPrefabs.Add(prefabAsGameObject);
                    }
                }

                foreach (string dynamicPrefab in packPaths.DynamicPrefabs)
                {
                    string finalPath = ("Assets" + dynamicPrefab);
                    //Debug.Log ("Adding dynpre " + finalPath);
                    UnityEngine.Object prefab = AssetDatabase.LoadAssetAtPath(finalPath, typeof(UnityEngine.Object)) as UnityEngine.Object;
                    if (prefab != null)
                    {
                        GameObject    prefabGameObject = prefab as GameObject;
                        DynamicPrefab dynPrefab        = prefabGameObject.GetComponent <DynamicPrefab> ();
                        if (dynPrefab != null && dynPrefab.worlditem != null)
                        {
                            dynPrefab.worlditem.OnEditorRefresh();
                            dynPrefab.worlditem.Props.Name.FileName   = prefabGameObject.name;
                            dynPrefab.worlditem.Props.Name.PrefabName = prefabGameObject.name;
                            dynPrefab.worlditem.Props.Name.PackName   = structurePack.Name;
                        }
                        structurePack.DynamicPrefabs.Add(prefabGameObject);
                    }
                    else
                    {
                        //Debug.Log ("PREFAB WAS NULL " + System.IO.Path.GetFileName (dynamicPrefab));
                    }
                }

                //Debug.Log ("Added structure pack FINISHED");
                Structures.Get.StructurePacks.Add(structurePack);
            }

            ColliderMeshPrefabs.Clear();
            foreach (string colliderMeshPrefabPath in ColliderMeshPaths)
            {
                string finalPath = ("Assets" + colliderMeshPrefabPath);
                //Debug.Log ("Adding statpre " + finalPath);
                UnityEngine.Object prefab             = AssetDatabase.LoadAssetAtPath(finalPath, typeof(UnityEngine.Object)) as UnityEngine.Object;
                GameObject         prefabAsGameObject = prefab as GameObject;
                if (prefabAsGameObject != null)
                {
                    ColliderMeshPrefabs.SafeAdd(prefabAsGameObject);
                }
            }

            LodMeshPrefabs.Clear();
            foreach (string lodMeshPrefabPath in LODPrefabPaths)
            {
                string finalPath = ("Assets" + lodMeshPrefabPath);
                //Debug.Log ("Adding statpre " + finalPath);
                UnityEngine.Object prefab             = AssetDatabase.LoadAssetAtPath(finalPath, typeof(UnityEngine.Object)) as UnityEngine.Object;
                GameObject         prefabAsGameObject = prefab as GameObject;
                if (prefabAsGameObject != null)
                {
                    LodMeshPrefabs.SafeAdd(prefabAsGameObject);
                }
            }

            SharedMaterials.Clear();
            foreach (string sharedMaterialPath in SharedMaterialPaths)
            {
                string finalPath = ("Assets" + sharedMaterialPath);
                //Debug.Log ("Adding statpre " + finalPath);
                UnityEngine.Object prefab           = AssetDatabase.LoadAssetAtPath(finalPath, typeof(UnityEngine.Object)) as UnityEngine.Object;
                Material           prefabAsMaterial = prefab as Material;
                if (prefabAsMaterial != null)
                {
                    SharedMaterials.SafeAdd(prefabAsMaterial);
                }
            }
        }