// Use this for initialization void Start() { m_instance = this; m_roomTemplateTable = new Dictionary<string, RoomTemplate>(); if (m_compressedRoomTemplateList != null && m_compressedRoomTemplateList.Length > 0) { // Build the room template lookup table from the room template list foreach (CompressedRoomTemplate compressedRoomTemplate in m_compressedRoomTemplateList) { m_roomTemplateTable.Add( compressedRoomTemplate.templateName, RoomTemplate.ParseCompressedRoomTemplate(compressedRoomTemplate)); } if (m_debugging) { Debug.LogWarning("RoomTemplateManager: Dumping " + mapTemplatePath + "/ClientRoomTemplates.txt"); DumpRoomTemplates(); } } else { Debug.LogError("RoomTemplateManager: Room Templates missing!"); } }
void Start() { spawnedRoom = false; Destroy(gameObject, m_timer); template = GameObject.FindGameObjectWithTag("Rooms").GetComponent <RoomTemplateManager>(); Invoke("SpawnRooms", 0.1f); }
public static StaticRoomData FromObject(RoomKey roomKey, JsonData jsonData) { StaticRoomData staticRoomData = new StaticRoomData(); // Fill in the room objects JsonData roomObjectArray = jsonData["objects"]; if (roomObjectArray != null) { for (int roomObjectIndex = 0; roomObjectIndex < roomObjectArray.Count; roomObjectIndex++) { JsonData roomObject = roomObjectArray[roomObjectIndex]; RoomObject room = RoomObject.FromObject(roomObject); staticRoomData.RoomObjects.Add(room); } } // Retrieve the room template by name string templateName = (string)jsonData["room_template_name"]; staticRoomData.RoomTemplate = RoomTemplateManager.GetRoomTemplate(templateName); // Copy the nav mesh from the template staticRoomData.NavMesh = new AsyncRPGSharedLib.Navigation.NavMesh( roomKey, staticRoomData.RoomTemplate.NavMeshTemplate); return(staticRoomData); }
// Use this for initialization void Start() { m_instance = this; m_roomTemplateTable = new Dictionary <string, RoomTemplate>(); if (m_compressedRoomTemplateList != null && m_compressedRoomTemplateList.Length > 0) { // Build the room template lookup table from the room template list foreach (CompressedRoomTemplate compressedRoomTemplate in m_compressedRoomTemplateList) { m_roomTemplateTable.Add( compressedRoomTemplate.templateName, RoomTemplate.ParseCompressedRoomTemplate(compressedRoomTemplate)); } if (m_debugging) { Debug.LogWarning("RoomTemplateManager: Dumping " + mapTemplatePath + "/ClientRoomTemplates.txt"); DumpRoomTemplates(); } } else { Debug.LogError("RoomTemplateManager: Room Templates missing!"); } }
public static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { Log("RoomTemplateImporter called"); foreach (string assetPath in importedAssets) { Log("RoomTemplateImporter: " + assetPath); if (assetPath.EndsWith("RoomTemplates.prefab")) { Log("Found RoomTempaltes Asset: " + assetPath); GameObject assetGameObject = Resources.Load <GameObject>("RoomTemplates"); RoomTemplateManager roomTemplateManager = assetGameObject.GetComponent <RoomTemplateManager>(); if (roomTemplateManager != null) { if (RoomTemplateImporter.ParseRoomTemplates(roomTemplateManager)) { Log("RoomTemplateManager: has RoomTemplateManager component!"); } else { Debug.LogError("RoomTemplateManager: Failed to import room templates"); } } else { Debug.LogError("RoomTemplateManager: Asset missing RoomTemplateManager component!"); } AssetDatabase.Refresh(ImportAssetOptions.Default); } } }
// Use this for initialization void Start() { Screen.SetResolution(GameConstants.GAME_SCREEN_PIXEL_WIDTH, GameConstants.GAME_SCREEN_PIXEL_HEIGHT, false); m_gameManager = this.gameObject.AddComponent("GameManager") as GameManager; m_gameManager.SetTargetGameState("LoginScreen"); m_roomTemplateManager= (GameObject.Instantiate(Resources.Load("RoomTemplates")) as GameObject).GetComponent<RoomTemplateManager>(); m_mobTypeManager = (GameObject.Instantiate(Resources.Load("MobTypes")) as GameObject).GetComponent<MobTypeManager>(); }
// Use this for initialization void Start() { Screen.SetResolution(GameConstants.GAME_SCREEN_PIXEL_WIDTH, GameConstants.GAME_SCREEN_PIXEL_HEIGHT, false); m_gameManager = this.gameObject.AddComponent("GameManager") as GameManager; m_gameManager.SetTargetGameState("LoginScreen"); m_roomTemplateManager = (GameObject.Instantiate(Resources.Load("RoomTemplates")) as GameObject).GetComponent <RoomTemplateManager>(); m_mobTypeManager = (GameObject.Instantiate(Resources.Load("MobTypes")) as GameObject).GetComponent <MobTypeManager>(); }
public void OnDestroy() { m_instance = null; }
private static bool ParseRoomTemplates(RoomTemplateManager roomTemplateManager) { bool success = true; string template_path = roomTemplateManager.mapTemplatePath; string[] templateFiles = null; List<CompressedRoomTemplate> compressedRoomTemplates = new List<CompressedRoomTemplate>(); try { templateFiles = Directory.GetFiles(template_path, "*.oel"); } catch (System.Exception ex) { Debug.LogError("RoomTemplateParser: ERROR: Invalid template folder directory: "+template_path); Debug.LogException(ex); success = false; } if (success) { if (templateFiles != null && templateFiles.Length > 0) { foreach (string templateFile in templateFiles) { string templateName = Path.GetFileNameWithoutExtension(templateFile); try { RoomTemplate roomTemplate = null; byte[] compressedNavCells = null; byte[] compressedPVS = null; // Parse the XML template from the file XmlDocument doc = new XmlDocument(); doc.Load(templateFile); try { // Parse the room template xml into a room template object roomTemplate = RoomTemplate.ParseXML(templateName, doc); // Extract the nav-mesh and visibility data in compressed form to save into the DB roomTemplate.NavMeshTemplate.ToCompressedData(out compressedNavCells, out compressedPVS); // Remove everything from the template XML that we wont care about at runtime RemoveXmlNodeByXPath(doc, "/level/NavMesh"); RemoveXmlNodeByXPath(doc, "/level/Entities"); } catch (System.Exception ex) { Debug.LogError("RoomTemplateParser: ERROR: Problem(s) parsing room template:"+templateFile); Debug.LogException(ex); roomTemplate = null; success = false; } if (roomTemplate != null && ValidateRoomTemplate( templateName, roomTemplate, compressedNavCells, compressedPVS)) { // Save the XML back into string StringWriter stringWriter = new StringWriter(); XmlTextWriter xmlWriter = new XmlTextWriter(stringWriter); doc.WriteTo(xmlWriter); compressedRoomTemplates.Add( new CompressedRoomTemplate { templateName = templateName, xml = stringWriter.ToString(), compressedNavCells = compressedNavCells, compressedVisibility = compressedPVS }); Debug.Log("RoomTemplateParser: Added Room Template: " + templateName); } else { Debug.LogError("RoomTemplateParser: ERROR: Problem(s) validating room template: "+templateFile); success = false; } } catch (XmlException ex) { Debug.LogError("RoomTemplateParser: ERROR: Unable to parse XML: " + templateFile); Debug.LogException(ex); success = false; } catch (Exception ex) { Debug.LogError("RoomTemplateParser: ERROR: Unknown error parsing template file: "+templateFile); Debug.LogException(ex); success = false; } } } else { Debug.LogError("RoomTemplateParser: ERROR: No room template files (*.oel) found in directory:" + template_path); success = false; } } // Store the compressed templates into the room template manager if (success) { Log(string.Format("RoomTemplateParser: Caching {0} compressed template(s) in room template manager.", compressedRoomTemplates.Count)); roomTemplateManager.CacheCompressedRoomTemplates(compressedRoomTemplates.ToArray()); } return success; }
private static bool ParseRoomTemplates(RoomTemplateManager roomTemplateManager) { bool success = true; string template_path = roomTemplateManager.mapTemplatePath; string[] templateFiles = null; List <CompressedRoomTemplate> compressedRoomTemplates = new List <CompressedRoomTemplate>(); try { templateFiles = Directory.GetFiles(template_path, "*.oel"); } catch (System.Exception ex) { Debug.LogError("RoomTemplateParser: ERROR: Invalid template folder directory: " + template_path); Debug.LogException(ex); success = false; } if (success) { if (templateFiles != null && templateFiles.Length > 0) { foreach (string templateFile in templateFiles) { string templateName = Path.GetFileNameWithoutExtension(templateFile); try { RoomTemplate roomTemplate = null; byte[] compressedNavCells = null; byte[] compressedPVS = null; // Parse the XML template from the file XmlDocument doc = new XmlDocument(); doc.Load(templateFile); try { // Parse the room template xml into a room template object roomTemplate = RoomTemplate.ParseXML(templateName, doc); // Extract the nav-mesh and visibility data in compressed form to save into the DB roomTemplate.NavMeshTemplate.ToCompressedData(out compressedNavCells, out compressedPVS); // Remove everything from the template XML that we wont care about at runtime RemoveXmlNodeByXPath(doc, "/level/NavMesh"); RemoveXmlNodeByXPath(doc, "/level/Entities"); } catch (System.Exception ex) { Debug.LogError("RoomTemplateParser: ERROR: Problem(s) parsing room template:" + templateFile); Debug.LogException(ex); roomTemplate = null; success = false; } if (roomTemplate != null && ValidateRoomTemplate( templateName, roomTemplate, compressedNavCells, compressedPVS)) { // Save the XML back into string StringWriter stringWriter = new StringWriter(); XmlTextWriter xmlWriter = new XmlTextWriter(stringWriter); doc.WriteTo(xmlWriter); compressedRoomTemplates.Add( new CompressedRoomTemplate { templateName = templateName, xml = stringWriter.ToString(), compressedNavCells = compressedNavCells, compressedVisibility = compressedPVS }); Debug.Log("RoomTemplateParser: Added Room Template: " + templateName); } else { Debug.LogError("RoomTemplateParser: ERROR: Problem(s) validating room template: " + templateFile); success = false; } } catch (XmlException ex) { Debug.LogError("RoomTemplateParser: ERROR: Unable to parse XML: " + templateFile); Debug.LogException(ex); success = false; } catch (Exception ex) { Debug.LogError("RoomTemplateParser: ERROR: Unknown error parsing template file: " + templateFile); Debug.LogException(ex); success = false; } } } else { Debug.LogError("RoomTemplateParser: ERROR: No room template files (*.oel) found in directory:" + template_path); success = false; } } // Store the compressed templates into the room template manager if (success) { Log(string.Format("RoomTemplateParser: Caching {0} compressed template(s) in room template manager.", compressedRoomTemplates.Count)); roomTemplateManager.CacheCompressedRoomTemplates(compressedRoomTemplates.ToArray()); } return(success); }