From d3036417e73c2907cae18b92dfb9f3779e8e6b63 Mon Sep 17 00:00:00 2001 From: Zinggi Date: Sun, 24 Feb 2013 17:25:19 +0100 Subject: [PATCH] Big Update: Build System, Launch game visit the wiki: https://github.com/Zinggi/UnrealScriptIDE/wiki --- .gitignore | 2 + Default (Windows).sublime-keymap | 17 ++ Main.sublime-menu | 156 +++++++++------- README.md | 33 +++- UnrealBuildSystem.py | 311 +++++++++++++++++++++++++++++++ UnrealScript.sublime-build | 5 - UnrealScript.sublime-commands | 21 +++ UnrealScriptAutocomplete.py | 17 +- UnrealScriptIDE.sublime-settings | 34 ++++ messages.json | 4 + messages/1.0.1.txt | 19 ++ 11 files changed, 538 insertions(+), 81 deletions(-) create mode 100644 UnrealBuildSystem.py delete mode 100644 UnrealScript.sublime-build create mode 100644 UnrealScript.sublime-commands create mode 100644 UnrealScriptIDE.sublime-settings create mode 100644 messages.json create mode 100644 messages/1.0.1.txt diff --git a/.gitignore b/.gitignore index 5ebd21a..7f3e48c 100644 --- a/.gitignore +++ b/.gitignore @@ -161,3 +161,5 @@ pip-log.txt # Mac crap .DS_Store + +*.log \ No newline at end of file diff --git a/Default (Windows).sublime-keymap b/Default (Windows).sublime-keymap index e337d31..167002f 100644 --- a/Default (Windows).sublime-keymap +++ b/Default (Windows).sublime-keymap @@ -4,6 +4,23 @@ "command": "unreal_goto_definition", "args": {"b_new_start_point": false} }, + { + "keys": ["f7"], + "command": "unreal_build_project", + "context":[{ "key": "selector", "operator": "equal", "operand": "source.unrealscript" }] + }, + { + "keys": ["ctrl+b"], + "command": "unreal_build_project", + "context":[{ "key": "selector", "operator": "equal", "operand": "source.unrealscript" }] + }, + { + "keys": ["ctrl+shift+b"], + "command": "unreal_build_project", + "args": {"b_build_and_run": true}, + "context":[{ "key": "selector", "operator": "equal", "operand": "source.unrealscript" }] + }, + // Add event right before auto-completion to insert a dynamic snippet { "keys": ["tab"], diff --git a/Main.sublime-menu b/Main.sublime-menu index f8f8d0f..5c89e45 100644 --- a/Main.sublime-menu +++ b/Main.sublime-menu @@ -2,101 +2,127 @@ { "caption": "Goto", "id": "goto", - "children": - [ - { "caption": "-" }, + "children": [ { - "caption": "UnrealScript Goto Declaration (or back)", "id": "unreal_script_goto_declaration", "command": "unreal_goto_definition", "args": {"b_new_start_point": false} + "caption": "-" + }, + { + "caption": "UnrealScript Goto Declaration (or back)", + "id": "unreal_script_goto_declaration", + "command": "unreal_goto_definition", + "args": { + "b_new_start_point": false + } } ] }, { "caption": "Preferences", "id": "preferences", - "children": - [ + "children": [ { "caption": "Package Settings", "id": "package-settings", - "children": - [ + "children": [ { "caption": "UnrealScriptIDE", - "id":"Unreal_Script_IDE", - "children": - [ + "id": "Unreal_Script_IDE", + "children": [ + { + "command": "open_file", + "args": { + "file": "${packages}/UnrealScriptIDE/README.md" + }, + "caption": "Readme" + }, + { + "caption": "-" + }, + { + "command": "open_file", + "args": { + "file": "${packages}/UnrealScriptIDE/UnrealScriptIDE.sublime-settings" + }, + "caption": "Settings - Default" + }, + { + "command": "open_file", + "args": { + "file": "${packages}/User/UnrealScriptIDE.sublime-settings" + }, + "caption": "Settings - User" + }, { - "command": "open_file", - "args": { - "file": "${packages}/UnrealScriptIDE/README.md" - }, - "caption": "Readme" + "caption": "-" }, - { "caption": "-" }, { - "command": "open_file", - "args": { - "file": "${packages}/UnrealScriptIDE/Default (Windows).sublime-keymap", - "platform": "Windows" - }, - "caption": "Keymap – Default" + "command": "open_file", + "args": { + "file": "${packages}/UnrealScriptIDE/Default (Windows).sublime-keymap", + "platform": "Windows" + }, + "caption": "Keymap – Default" }, { - "command": "open_file", - "args": { - "file": "${packages}/UnrealScriptIDE/Default (OSX).sublime-keymap", - "platform": "OSX" - }, - "caption": "Keymap – Default" + "command": "open_file", + "args": { + "file": "${packages}/UnrealScriptIDE/Default (OSX).sublime-keymap", + "platform": "OSX" + }, + "caption": "Keymap – Default" }, { - "command": "open_file", - "args": { - "file": "${packages}/UnrealScriptIDE/Default (Linux).sublime-keymap", - "platform": "Linux" - }, - "caption": "Keymap – Default" + "command": "open_file", + "args": { + "file": "${packages}/UnrealScriptIDE/Default (Linux).sublime-keymap", + "platform": "Linux" + }, + "caption": "Keymap – Default" }, { - "command": "open_file", - "args": { - "file": "${packages}/User/Default (Windows).sublime-keymap", - "platform": "Windows" - }, - "caption": "Keymap – User" + "command": "open_file", + "args": { + "file": "${packages}/User/Default (Windows).sublime-keymap", + "platform": "Windows" + }, + "caption": "Keymap – User" }, { - "command": "open_file", - "args": { - "file": "${packages}/User/Default (OSX).sublime-keymap", - "platform": "OSX" - }, - "caption": "Keymap – User" + "command": "open_file", + "args": { + "file": "${packages}/User/Default (OSX).sublime-keymap", + "platform": "OSX" + }, + "caption": "Keymap – User" }, { - "command": "open_file", - "args": { - "file": "${packages}/User/Default (Linux).sublime-keymap", - "platform": "Linux" - }, - "caption": "Keymap – User" + "command": "open_file", + "args": { + "file": "${packages}/User/Default (Linux).sublime-keymap", + "platform": "Linux" + }, + "caption": "Keymap – User" }, - { "caption": "-" }, { - "command": "open_file", - "args": { - "file": "${packages}/UnrealScriptIDE/Default.sublime-mousemap" - }, - "caption": "Mousemap – Default" + "caption": "-" }, { - "command": "open_file", - "args": { - "file": "${packages}/User/Default.sublime-mousemap" - }, - "caption": "Mousemap – User" + "command": "open_file", + "args": { + "file": "${packages}/UnrealScriptIDE/Default.sublime-mousemap" + }, + "caption": "Mousemap – Default" }, - { "caption": "-" } + { + "command": "open_file", + "args": { + "file": "${packages}/User/Default.sublime-mousemap" + }, + "caption": "Mousemap – User" + }, + { + "caption": "-" + } ] } ] diff --git a/README.md b/README.md index b6b420e..caf061c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -#UnrealScript IDE Plug-in for Sublime Text 2 -* * * +UnrealScript IDE Plug-in for Sublime Text 2 +=========================== UnrealScript IDE mainly adds better auto-completion features to Sublime Text 2 for UnrealScript and a goto declaration command. @@ -17,11 +17,22 @@ Feautures * get other completions depending where you are typing (e.g. in the defaultproperties block you only want to get variables) * **Goto declaration and back again** - * use F10, alt + left click, right click menu or via 'Goto' -> 'UnrealScript Goto Declaration' + * use F10, alt + left click, right click menu, via 'Goto' -> 'UnrealScript Goto Declaration' or search in the command palette to go to the declaration of the currently selected word * when browsing in the declarations you can always return to your starting position by using one of the above keys when nothing is under your cursor. * **Syntax highlighting** +* **Build system** + * use Ctrl + B, F7 or search in the command palette to build your game + * if the build contains errors, the error log will be opened, allowing you to navigate to your errors quickly. + * if the build was successful, the game will start + +* **Launch Game** + * quickly open the game with your last configuration + * you can chose witch map to open + * chose between Standalone or a Server and 2 Clients + * you can specify additional startup settings + * **Various useful Snippets** * **Add bookmarks to your comments** @@ -42,19 +53,20 @@ Planned * **Add support for enumerations, structs and CONST** -* **Better build system** - -* **Your suggestion here...** +* **Your suggestion here?** + * You can suggest features, report bugs and vote for features on this site here: [UnrealScript IDE - Userecho](http://unrealscriptide.userecho.com/) Installation ------------ -**Very easy with [Package Control](http://wbond.net/sublime_packages/package_control "http://wbond.net/sublime_packages/package_control") right inside Sublime Text 2 (Package Control needs to be installed):** +**Very easy with [Package Control](http://wbond.net/sublime_packages/package_control) right inside Sublime Text 2 (Package Control needs to be installed):** 1. Ctrl + shift + P 2. Search for "inst", hit enter 3. Search for "UnrealScriptIDE", hit enter +For a more in detail explanation visit the wiki: https://github.com/Zinggi/UnrealScriptIDE/wiki/Getting-Started + **Manually (not recommended):** 1. Clone or download this package @@ -65,8 +77,13 @@ Installation UnrealScriptIDE will **only** work properly if you add the **Src** folder as a project. To do so, goto 'Project' -> 'Add Folder To Project...' -> add the Src folder (/UDK/UDK-201*-**/Development/Src/) +Usage +---------------- +Please refer to the wiki: https://github.com/Zinggi/UnrealScriptIDE/wiki + ------------ -All **credits** for Syntax highlighting and Snippets goes to **[Michael Alexander](https://github.com/beefsack "https://github.com/beefsack")**. Thanks! +All **credits** for Syntax highlighting and Snippets goes to **[Michael Alexander](https://github.com/beefsack)**. Thanks! +All **credits** for Syntax highlighting in Log files goes to **[Rokit](https://github.com/rokit)**. Thanks! My auto-complete settings ------------ diff --git a/UnrealBuildSystem.py b/UnrealBuildSystem.py new file mode 100644 index 0000000..2c5555f --- /dev/null +++ b/UnrealBuildSystem.py @@ -0,0 +1,311 @@ +#------------------------------------------------------------------------------ +# UnrealScriptIDE build system +#------------------------------------------------------------------------------ +# +# This script searches the UDK.exe based on the Src path. +# It can compile your project and start the game with a specified map. +# If the build contains errors, an error summary / log will open. +# If the build contains only warnings, you will be asked to either open the log or start the game. +# +# (c) Florian Zinggeler +#------------------------------------------------------------------------------ +import sublime +import sublime_plugin +import subprocess +import threading +import os + + +# Builds your udk project and gets the output. +class UnrealBuildProjectCommand(sublime_plugin.TextCommand): + udk_exe_path = "" + udkLift_exe_path = "" + # the building output + _output = [] + # there were some errors + _b_open_output = False + # there were just warnings + _b_ask_if_open_output = False + + _last_opened_map = "" + _selected_map = "" + + b_build_and_run = False + + _b_Multi_Player = False + # a list of additional startup settings. + additional_startup_settings = "" + + # find src folder and start building + def run(self, edit, b_build_and_run=False): + if self.view.file_name() != None: # and is_unrealscript_file(self.view.file_name()): + self.settings = sublime.load_settings('UnrealScriptIDE.sublime-settings') + possible_src_folders = [] + open_folder_arr = self.view.window().folders() # Gets all opened folders in the Sublime Text editor. + self.b_build_and_run = b_build_and_run + + # search open folders for Src directory + for folder in open_folder_arr: + if "Src" in folder: + possible_src_folders.append(folder) + else: + possible_src_folders.append(self.search_src_in(folder)) + # get the right one! + for folder in possible_src_folders: + if not folder: + continue + if "\Development\Src" in folder: + self.udk_exe_path = folder + + # Removing "Development\Src" and adding the UDK.com path (this is probably not how it's done correctly): + self.udk_exe_path = self.udk_exe_path[:-15] + "Binaries\\Win32\\UDK.com" + self.udkLift_exe_path = self.udk_exe_path[:-13] + "UDKLift.exe" + self.udk_maps_folder = self.udk_exe_path[:-22] + "UDKGame\\Content\\Maps" + self.start_build() + + # starts building your game. This adds a new UDKbuild thread. + def start_build(self): + self._output = [] + self._build_thread = UDKbuild(self.udk_exe_path, self) + self._build_thread.start() + self.handle_thread() + + # display a progress icon at the bottom while building. + # Once finished, this opens the log, starts the game or ask you what to do. + def handle_thread(self, i=0, dir=1): + if self._build_thread and not self._build_thread.isAlive(): + self._build_thread = None + + # while it is building.. + if self._build_thread: + # This animates a little activity indicator in the status area + before = i % 8 + after = (7) - before + if not after: + dir = -1 + if not before: + dir = 1 + i += dir + self.view.set_status('UnrealScript build', 'UnrealScriptIDE is building your project [%s=%s]' % \ + (' ' * before, ' ' * after)) + + sublime.set_timeout(lambda: self.handle_thread(i, dir), 100) + return + + # when finished, show output. b_build_and_run is set to true, just start last opened map: + else: + self.view.erase_status('UnrealScript build') + + # == there were building errors, display log + if self._b_open_output: + self.show_error_panel() + self._b_open_output = False + + # == there were only warnings, ask what to do + elif self._b_ask_if_open_output: + if self.settings.get('always_open_log'): + self.show_error_panel() + return + if self.settings.get('always_start_game'): + self.run_game() + return + + input_list = ["Successfully compiled with Warnings, open the building log?", + + "Don't open log, run the game anyway!", + + ["Always open log. Never ask again!", + "You can reset your choice under:", + "'Preferences' -> 'Package Settings' -> 'UnrealScriptIDE' -> 'Settings - User'"], + + ["Always open game. Never ask for log again!", + "You can reset your choice under:", + "'Preferences' -> 'Package Settings' -> 'UnrealScriptIDE' -> 'Settings - User'"]] + self.view.window().show_quick_panel(input_list, self.on_done_warnings_input) + + self._b_ask_if_open_output = False + + # == no warnings and no errors, start the game. + else: + self.run_game() + + # shows the building error log, with summery at the top + def show_error_panel(self): + log_cache = os.path.join(sublime.packages_path(), "UnrealScriptIDE\\log_cache.log") + with open(log_cache, 'w') as log: + log_massage = "==============\nBUILD RESULTS:\n==============\n\nNote:\nuse UnrealScript Goto Definition to navigate to errors. (by default with f10, alt + LMB, context menu or via 'Goto' -> 'UnrealScript Goto Declaration')\n----------------------------------------------\n\n" + log_massage += self.get_summery() + log_massage += "\n\n\n\n\n\n\n\n\n\n\n----------------------------------------------\nFull log:\n----------------------------------------------\n\n\n" + log_massage += "\n".join(self._output) + log.write(log_massage) + + sublime.active_window().open_file(log_cache) + sublime.active_window().open_file(log_cache) + + # gets called from the warning input panel + def on_done_warnings_input(self, index): + # 0 = open log, 1 = run game, 2 = always log, 3 = always run game, -1 = was canceled + if index == 0: + self.show_error_panel() + elif index == 1: + self.run_game() + elif index == 2: + self.settings.set('always_open_log', True) + sublime.save_settings('UnrealScriptIDE.sublime-settings') + self.show_error_panel() + + elif index == 3: + self.settings.set('always_start_game', True) + sublime.save_settings('UnrealScriptIDE.sublime-settings') + self.run_game() + elif index == -1: + pass + else: + print "unhandled case!!!" + + # Ask the user to enter a start map to start the game. + # ask if wants to open server + two clients + def run_game(self): + if self._last_opened_map == "": + self._last_opened_map = self.settings.get('last_opened_map') + self._b_Multi_Player = self.settings.get('b_multi_player') + + if self.b_build_and_run: + self.on_done_run_game_input(0) + return + + input_list = [["Start with last opened map", + self._last_opened_map + (", Server and 2 Clients" if self._b_Multi_Player else ", Standalone")], + "Start with default map"] + # add all maps found in the maps folder. + self._map_list = self.search_mapfiles(self.udk_maps_folder) + input_list += self._map_list + + self.view.window().show_quick_panel(input_list, self.on_done_run_game_input) + + # gets called from the run game input. Opens the chosen map. + def on_done_run_game_input(self, index): + self.additional_startup_settings = self.settings.get('additional_startup_settings') + # 0 = open last map, 1 = open default, else: open map index, -1 = was canceled + if index == 0: + if self._b_Multi_Player: + # open server and 2 clients + subprocess.Popen([self.udkLift_exe_path, "server " + self._last_opened_map + self.settings.get('additional_startup_settings_server')]) + subprocess.Popen([self.udkLift_exe_path, "127.0.0.1 " + self.settings.get('additional_startup_settings_client1')]) + subprocess.Popen([self.udkLift_exe_path, "127.0.0.1 " + self.settings.get('additional_startup_settings_client2')]) + else: + subprocess.Popen([self.udkLift_exe_path, self._last_opened_map + self.additional_startup_settings]) + elif index == 1: + subprocess.Popen([self.udkLift_exe_path, self.additional_startup_settings]) + elif index == -1: + pass + else: + self._selected_map = self._map_list[index - 2][0] + + input_list = [["Start Standalone game", + "Your choice will be remembered, next time you can use:", + "'Start with last opened map'"], + ["Start a Server and connect 2 Clients", + "Your choice will be remembered, next time you can use:", + "'Start with last opened map'"]] + + self.view.window().show_quick_panel(input_list, self.on_done_single_or_multi) + + def on_done_single_or_multi(self, index): + # 0 = single-player, 1 = multi-player, -1 = back to run game dialog + if index == 0: + self._last_opened_map = self._selected_map + self.settings.set('last_opened_map', self._last_opened_map) + + self._b_Multi_Player = False + self.settings.set('b_multi_player', self._b_Multi_Player) + + sublime.save_settings('UnrealScriptIDE.sublime-settings') + + subprocess.Popen([self.udkLift_exe_path, self._last_opened_map + self.additional_startup_settings]) + elif index == 1: + self._last_opened_map = self._selected_map + self.settings.set('last_opened_map', self._last_opened_map) + + self._b_Multi_Player = True + self.settings.set('b_multi_player', self._b_Multi_Player) + + sublime.save_settings('UnrealScriptIDE.sublime-settings') + # open server and 2 clients + subprocess.Popen([self.udkLift_exe_path, "server " + self._last_opened_map + self.settings.get('additional_startup_settings_server')]) + subprocess.Popen([self.udkLift_exe_path, "127.0.0.1 " + self.settings.get('additional_startup_settings_client1')]) + subprocess.Popen([self.udkLift_exe_path, "127.0.0.1 " + self.settings.get('additional_startup_settings_client2')]) + + elif index == -1: + self.run_game() + else: + print "unhandled case!!!" + + # returns all map files in the path folder + def search_mapfiles(self, path): + maps = [] + for file in os.listdir(path): + dirfile = os.path.join(path, file) + + if os.path.isdir(dirfile): + maps += self.search_mapfiles(dirfile) + elif ".udk" in dirfile: + maps.append([file, dirfile]) + + return maps + + # search for the Src folder in the path. Returns the found folder. + def search_src_in(self, path): + for file in os.listdir(path): + dirfile = os.path.join(path, file) + + if os.path.isdir(dirfile): + if "Src" in dirfile: + return dirfile + else: + return self.search_src_in(dirfile) + + # returns the found summery in a building log file. + def get_summery(self): + i = self._output.index("Warning/Error Summary") + return "\n".join(self._output[i:]) + + +# Builds your project and captures the building log output +class UDKbuild(threading.Thread): + _collector = None + + def __init__(self, exe_path, collector): + self.exe_path = exe_path + self._collector = collector + threading.Thread.__init__(self) + + def run(self): # gets called when the thread is created + pipe = subprocess.Popen([self.exe_path, "make"], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + # saves output lines + while True: + line = pipe.stdout.readline() + if not line: + break + self._collector._output.append(line.rstrip()) + + output_text = "".join(self._collector._output) + if "Warning/Error Summary" in output_text: + if "Failure" in self._collector._output[-3]: + print "Error" + self._collector._b_open_output = True + else: + print "Warning" + self._collector._b_ask_if_open_output = True + else: + print "everything's fine!" + + self.stop() + + def stop(self): + if self.isAlive(): + self._Thread__stop() + + +def is_unrealscript_file(filename): + return '.uc' in filename diff --git a/UnrealScript.sublime-build b/UnrealScript.sublime-build deleted file mode 100644 index d7b3069..0000000 --- a/UnrealScript.sublime-build +++ /dev/null @@ -1,5 +0,0 @@ -{ - "cmd": ["C:\\UDK\\UDK-2011-11\\Binaries\\Win64\\UDK.exe", "make"], - "selector": "source.unrealscript", - "file_regex": "^(.+?)\\\\(\\w+)\\.uc\\((\\d+)\\)\\s*:\\s*Warning,\\s*(.+?)$" -} diff --git a/UnrealScript.sublime-commands b/UnrealScript.sublime-commands new file mode 100644 index 0000000..6aed5b2 --- /dev/null +++ b/UnrealScript.sublime-commands @@ -0,0 +1,21 @@ +[ + { + "caption": "UnrealScriptIDE: Goto Declaration", + "command": "unreal_goto_definition", + "args": {"b_new_start_point": false} + }, + { + "caption": "UnrealScriptIDE: Goto Declaration (New starting point)", + "command": "unreal_goto_definition", + "args": {"b_new_start_point": true} + }, + { + "caption": "UnrealScriptIDE: Build Project", + "command": "unreal_build_project" + } + { + "caption": "UnrealScriptIDE: Build and Run last opened map", + "command": "unreal_build_project", + "args": {"b_build_and_run": true} + } +] diff --git a/UnrealScriptAutocomplete.py b/UnrealScriptAutocomplete.py index c4b7c39..e72d2eb 100644 --- a/UnrealScriptAutocomplete.py +++ b/UnrealScriptAutocomplete.py @@ -71,7 +71,7 @@ def run(self, edit, b_new_start_point=False): # if no word is selected or the cursor is at the beginning of the line, return to last location row, col = self.view.rowcol(self.view.sel()[0].begin()) if last_location != None and (word.strip() == "" or col == 0): - if current_location == active_file: + if current_location.lower() == active_file.lower(): window.open_file(last_location, sublime.ENCODED_POSITION) window.open_file(last_location, sublime.ENCODED_POSITION) last_location = None @@ -94,9 +94,17 @@ def run(self, edit, b_new_start_point=False): return # if the word wasn't found: - print_to_panel(self.view, word + " not found") + print word + " not found" # print_to_panel(self.view, word + " not found") sublime.set_timeout(lambda: self.hide_panel(self.view), OPEN_TIME * 1000) + elif is_unreal_log_file(active_file): + line = self.view.substr(self.view.line(self.view.sel()[0])) + split_line = re.split(r"\(|\)", line) # line.split("()") + if len(split_line) > 1: + self.open_file(split_line[0], split_line[1], True) + else: + print '"', line, '"', " not found!!" + def open_file(self, file_name, line_number=1, b_new_start_point=False): global last_location, current_location active_file = self.view.file_name() @@ -394,7 +402,7 @@ def run(self): # gets called when the thread is created if parent_file != None: self.collector.add_thread(parent_file, self.open_folder_arr) # create a new thread to do the same stuff on the parent_file else: - print "parent file not found in: ", folder + pass # print "parent file not found in: ", folder break self.stop() @@ -547,6 +555,9 @@ def stop(self): def is_unrealscript_file(filename): return '.uc' in filename +def is_unreal_log_file(filename): + return '.log' in filename + # class to store a function/ event class Function: diff --git a/UnrealScriptIDE.sublime-settings b/UnrealScriptIDE.sublime-settings new file mode 100644 index 0000000..c9e58f1 --- /dev/null +++ b/UnrealScriptIDE.sublime-settings @@ -0,0 +1,34 @@ +{ + // Add additional startup settings here. A complete overview of all available startup settings can be found here: http://udn.epicgames.com/Three/CommandLineArguments.html + // DO NOT USE: editor, server, 127.0.0.1, yourmap.udk as those are handled internally by my plug-in. + // For example, use "-ResX=1920 -ResY=1080 -fullscreen" for full-screen and HD or use "-log" to display the log + "additional_startup_settings": "", + + // If you launch a server and 2 clients, these will be used instead: + "additional_startup_settings_server": "-ConsolePosX=600 -ConsolePosY=600", + "additional_startup_settings_client1": "-log -resx=800 -resy=600 -ConsolePosX=0 -ConsolePosY=600 -posx=0 -posy=0", + "additional_startup_settings_client2": "-log -resx=800 -resy=600 -ConsolePosX=1250 -ConsolePosY=600 -posx=1200 -posy=0", + + + + // -------------------------------------- + // DO NOT SET BOTH SETTINGS BELOW TO TRUE + //--------------------------------------- + // If this is set to true, you wont get asked if you want to open the error log or start the game when there were only warnings in your build. + // Instead the log will be opened immediately as if there were build errors. + "always_open_log": false, + // If this is set to true, you wont get asked if you want to open the error log or start the game when there were only warnings in your build. + // Instead it will start the game, as if there were 0 errors and 0 warnings. + "always_start_game": false, + + + + + //======================= + // Nothing of interest... + //======================= + // Used to save your last opened map. No need to overwrite this, as it is done automatically + "last_opened_map": "", + // Used to save if you opened a server the last time. No need to overwrite this, as it is done automatically + "b_multi_player": false +} \ No newline at end of file diff --git a/messages.json b/messages.json new file mode 100644 index 0000000..9eac5d4 --- /dev/null +++ b/messages.json @@ -0,0 +1,4 @@ +{ + "install": "README.md", + "1.0.1": "messages/1.0.1.txt" +} \ No newline at end of file diff --git a/messages/1.0.1.txt b/messages/1.0.1.txt new file mode 100644 index 0000000..53920b5 --- /dev/null +++ b/messages/1.0.1.txt @@ -0,0 +1,19 @@ +================================= +UnrealScript IDE has been updated +================================= + +New Stuff: +---------- + +* **Build system** + * use Ctrl + B, F7 or search in the command palette to build your game + * if the build contains errors, the error log will be opened, allowing you to navigate to your errors quickly. + * if the build was successful, the game will start + +* **Launch Game** + * quickly open the game with your last configuration + * you can chose witch map to open + * chose between Standalone or a Server and 2 Clients + * you can specify additional startup settings + +For an in detail explanation, read the wiki: https://github.com/Zinggi/UnrealScriptIDE/wiki \ No newline at end of file