Search the Community
Showing results for tags 'automation'.
-
I have previously posted about automation efforts in this thread about watching over asset files. I decided to create a more generic thread for whatever discussions related to automation. The most recent version of automation library and scripts (by the time this topic was created) can be downloaded from this link. More information can be found in readme.md. It should run properly against any beta version of TDM 2.07. Some new Python 3 is required to run automation stuff. I'm afraid that decent skills in Python are needed if you want to do anything advanced with it. If you have some tedious work that you regularly do with TDM, and feel that it can be automated, post ideas here. UPDATE: Current version (2019.02.22) is available here. It should run properly against TDM 2.07.
-
The most recent TDM has the "automation" system, which allows an external Python script to connect to TDM game and programmatically do some stuff within it. Right now only one basic action is supported, which is: run a given command in console. Originally, the whole system was intended to implement automatic testing, and I hope I'll have time to get it there some day. However, I already find it useful. Recently I implemented a simple watcher script for interactive shader editing. It works like this: 1) Python script watches over all files like glprogs/*.fs, glprogs/*.vs and glprogs/*.gs. 2) Whenever one of them changes, reloadGLSLPrograms command is run automatically. As a result, you can edit GLSL shader file in Notepad++ on the left half of the screen, which TDM on the right half reloads immediately after each save. You can see some sort of demo: Probably this scenario applies to other TDM resources which are reloadable without restarting map. Something like reloading texture while editing it in special software, or doing the same with mesh/model. In fact, it is even possible to auto-reload map with something like: getviewpos // this gives coordinates and orientation dmap {mapname} // make the updated map playable map {mapname} // start the updated map setviewpos {saved coords} // teleport to the same exact locationIf you have any ideas about using this system to reduce amount of dull work, please share.