private void DeleteThisRoom(RoomObject roomToDelete) { if (EditorApplication.isPlayingOrWillChangePlaymode) { return; } if (existingRooms.ContainsKey(roomToDelete.roomPosition)) { existingRooms.Remove(roomToDelete.roomPosition); } RoomDataSaver.DeleteData(roomToDelete); mapper.EliminateRoom(roomToDelete); AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(roomToDelete)); DestroyImmediate(roomToDelete, true); }
private void OnEnable() { if (EditorApplication.isPlayingOrWillChangePlaymode) { return; } if (!isEventSuscribed) { RoomObject.OnChangePosition += RoomPositionChanged; RoomObject.OnChangeStuff += SaveChanges; RoomObject.OnDeleteRoom += DeleteThisRoom; isEventSuscribed = true; } existingRooms.Clear(); roomsToLoad.Clear(); string[] path = new string[1]; path[0] = "Assets/Scripts/_ScriptableObjects Assets/Rooms"; var findRooms = AssetDatabase.FindAssets("t: RoomObject", path); for (int i = 0; i < findRooms.Length; i++) { string assetPath = AssetDatabase.GUIDToAssetPath(findRooms[i]); RoomObject newRoom = AssetDatabase.LoadAssetAtPath(assetPath, typeof(RoomObject)) as RoomObject; roomsToLoad.Add(newRoom); if (!existingRooms.ContainsKey(newRoom.roomPosition)) { existingRooms.Add(newRoom.roomPosition, newRoom); } else { Debug.LogError("Habitación '" + newRoom.roomName + "' no pudo añadirse al Diccionario. Por favor cambiar su posición."); Debug.LogError("La habitación '" + existingRooms[newRoom.roomPosition] + "' ya está ahi."); } } for (int i = 0; i < roomsToLoad.Count; i++) { RoomDataSaver.LoadData(roomsToLoad[i]); } }
private void SaveChanges(RoomObject currentAnalizedRoom) { RoomDataSaver.SaveData(currentAnalizedRoom); Debug.Log("Habitación salvada: " + currentAnalizedRoom.name.ToString()); PutVisualRepresentation(currentAnalizedRoom); }