private void CreateNewMessageFilesBasedOnTemplate() { if (!_isClient && !_isServer) { throw new Exception("The interpreter requires one or both of the check boxes for Client/Server to be enabled"); } var checker = new MessageContractChecker(); int nextId = checker.HighestCodeFound + 1; string messageTemplatePath = "Templates/MessageTemplate"; string interpreterTemplatePath = "Templates/MessageInterpreterTemplate"; if (_useSingletonInterpreter) { messageTemplatePath += "Singleton"; interpreterTemplatePath += "Singleton"; } var messageTemplate = Resources.Load <TextAsset>(messageTemplatePath); var interpreterTemplate = Resources.Load <TextAsset>(interpreterTemplatePath); string messageCode = string.Format(messageTemplate.text, nextId, _messageName); string interpreterCode = string.Format(interpreterTemplate.text, _messageName, _isClient.ToString().ToLower(), _isServer.ToString().ToLower()); string path = Selection.activeObject != null ? AssetDatabase.GetAssetPath(Selection.activeObject.GetInstanceID()) : "Assets"; string interpreterPath = path; if (Directory.Exists($"{interpreterPath}/Interpreters")) { interpreterPath += "/Interpreters"; } File.WriteAllText($"{path}/{_messageName}Message.cs", messageCode); File.WriteAllText($"{interpreterPath}/{_messageName}Interpreter.cs", interpreterCode); AssetDatabase.Refresh(); }
public MessageCheckingWindow() { _checker = new MessageContractChecker(); _errors = _checker.GetAllErrors(); }