public Kn5LocalDeviceContextHolder(IDeviceContextHolder mainHolder, SharedMaterials sharedMaterials, ITexturesProvider texturesProvider, IKn5Model model) { _mainHolder = mainHolder; _sharedMaterials = sharedMaterials; _texturesProvider = texturesProvider; _model = model; }
private SharedMaterials GetSharedMaterialsInstance() { return(_sharedMaterials ?? (_sharedMaterials = new SharedMaterials(Get <IMaterialsFactory>()))); }
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); } } }