A simple Python script to assist with managing RSDKv5/U projects.
urwid is used for the console interface. It can be installed using:
pip install urwid
-
Project Update
- Generates
All.c/All.cppandAll.h/All.hpp, which can be used in your Visual Studio or CMake project. This can speed up build times by compiling every object at once, instead of compiling them separately. - Generates
Objects.cmake, which can be used instead ofAll.c/All.cpp, if you'd like to build the objects separately.
- Generates
-
Generate public functions
- Generates public functions for the RSDKv5(U) Decompilation's modding API. Entity events are not included.
-
New Object [default]
- Creates a new object in the specified directory.
-
New Object [clean]
- Same as above, without any predefined entity events.
-
New Object [modded]
- Creates a new modded object in the specified directory.
-
New Object [modded][clean]
- Same as above, without any predefined entity events.
gameapi_util_cfg.py is used for configuring various things, such as the path to your objects directory.
Available options:
# Path configuration
GAME_PATH = 'src'
OBJECT_PATH_NAME = 'Objects'
ALL_CODE_NAME = 'All.cpp'
ALL_HEADER_NAME = 'All.hpp'
GAMEAPI_INC_PATH = 'Game.hpp'
PUB_FNS_PATH = "PublicFunctions.hpp"
OBJECT_NAMESPACE = 'GameLogic'
# CMake configuration
CMAKE_PATH = 'Objects.cmake'
GAME_NAME = '${GAME_NAME}' # The game directory to look into
OBJECT_PATH = f'{GAME_PATH}/{OBJECT_PATH_NAME}'
ALL_CODE_PATH = f'{OBJECT_PATH}/{ALL_CODE_NAME}'
ALL_HEADER_PATH = f'{GAME_PATH}/{ALL_HEADER_NAME}'You can extend the main menu with the init function of your project's configuration file. For example:
def init(app_in):
global app
app = app_in
app.add_label('[Custom Tools]')
app.add_option('Validate Objects', object_validity_check)
app.add_option('Check Status', project_status_check)
app.spacer()
