mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-15 11:03:00 +01:00
Make all GameAction types accessible to plugins (#12708)
* add ActionType * Make all game actions available to plugins Includes list of game actions in the .d.ts * Add an overload for internal game actions This allows things like Visual Studio Code to autocomplete * action can be a string (custom gameactions) * Increment OPENRCT2_PLUGIN_API_VERSION * Add #12708 to changelog and tombomp to contributors.
This commit is contained in:
@@ -42,7 +42,7 @@
|
||||
using namespace OpenRCT2;
|
||||
using namespace OpenRCT2::Scripting;
|
||||
|
||||
static constexpr int32_t OPENRCT2_PLUGIN_API_VERSION = 4;
|
||||
static constexpr int32_t OPENRCT2_PLUGIN_API_VERSION = 5;
|
||||
|
||||
struct ExpressionStringifier final
|
||||
{
|
||||
@@ -948,25 +948,84 @@ public:
|
||||
};
|
||||
|
||||
const static std::unordered_map<std::string, uint32_t> ActionNameToType = {
|
||||
{ "balloonpress", GAME_COMMAND_BALLOON_PRESS },
|
||||
{ "bannerplace", GAME_COMMAND_PLACE_BANNER },
|
||||
{ "bannerremove", GAME_COMMAND_REMOVE_BANNER },
|
||||
{ "bannersetcolour", GAME_COMMAND_SET_BANNER_COLOUR },
|
||||
{ "bannersetname", GAME_COMMAND_SET_BANNER_NAME },
|
||||
{ "bannersetstyle", GAME_COMMAND_SET_BANNER_STYLE },
|
||||
{ "clearscenery", GAME_COMMAND_CLEAR_SCENERY },
|
||||
{ "climateset", GAME_COMMAND_SET_CLIMATE },
|
||||
{ "footpathplace", GAME_COMMAND_PLACE_PATH },
|
||||
{ "footpathplacefromtrack", GAME_COMMAND_PLACE_PATH_FROM_TRACK },
|
||||
{ "footpathremove", GAME_COMMAND_REMOVE_PATH },
|
||||
{ "footpathsceneryplace", GAME_COMMAND_PLACE_FOOTPATH_SCENERY },
|
||||
{ "footpathsceneryremove", GAME_COMMAND_REMOVE_FOOTPATH_SCENERY },
|
||||
{ "guestsetflags", GAME_COMMAND_GUEST_SET_FLAGS },
|
||||
{ "guestsetname", GAME_COMMAND_SET_GUEST_NAME },
|
||||
{ "landbuyrights", GAME_COMMAND_BUY_LAND_RIGHTS },
|
||||
{ "landlower", GAME_COMMAND_LOWER_LAND },
|
||||
{ "landraise", GAME_COMMAND_RAISE_LAND },
|
||||
{ "landsetheight", GAME_COMMAND_SET_LAND_HEIGHT },
|
||||
{ "landsetrights", GAME_COMMAND_SET_LAND_OWNERSHIP },
|
||||
{ "landsmoothaction", GAME_COMMAND_EDIT_LAND_SMOOTH },
|
||||
{ "largesceneryplace", GAME_COMMAND_PLACE_LARGE_SCENERY },
|
||||
{ "largesceneryremove", GAME_COMMAND_REMOVE_LARGE_SCENERY },
|
||||
{ "largescenerysetcolour", GAME_COMMAND_SET_SCENERY_COLOUR },
|
||||
{ "loadorquit", GAME_COMMAND_LOAD_OR_QUIT },
|
||||
{ "mazeplacetrack", GAME_COMMAND_PLACE_MAZE_DESIGN },
|
||||
{ "mazesettrack", GAME_COMMAND_SET_MAZE_TRACK },
|
||||
{ "networkmodifygroup", GAME_COMMAND_MODIFY_GROUPS },
|
||||
{ "parkentranceremove", GAME_COMMAND_REMOVE_PARK_ENTRANCE },
|
||||
{ "parkmarketing", GAME_COMMAND_START_MARKETING_CAMPAIGN },
|
||||
{ "parksetdate", GAME_COMMAND_SET_DATE },
|
||||
{ "parksetloan", GAME_COMMAND_SET_CURRENT_LOAN },
|
||||
{ "parksetname", GAME_COMMAND_SET_PARK_NAME },
|
||||
{ "parksetparameter", GAME_COMMAND_SET_PARK_OPEN },
|
||||
{ "parksetresearchfunding", GAME_COMMAND_SET_RESEARCH_FUNDING },
|
||||
{ "pausetoggle", GAME_COMMAND_TOGGLE_PAUSE },
|
||||
{ "peeppickup", GAME_COMMAND_PICKUP_GUEST },
|
||||
{ "placeparkentrance", GAME_COMMAND_PLACE_PARK_ENTRANCE },
|
||||
{ "placepeepspawn", GAME_COMMAND_PLACE_PEEP_SPAWN },
|
||||
{ "playerkick", GAME_COMMAND_KICK_PLAYER },
|
||||
{ "playersetgroup", GAME_COMMAND_SET_PLAYER_GROUP },
|
||||
{ "ridecreate", GAME_COMMAND_CREATE_RIDE },
|
||||
{ "ridedemolish", GAME_COMMAND_DEMOLISH_RIDE },
|
||||
{ "rideentranceexitplace", GAME_COMMAND_PLACE_RIDE_ENTRANCE_OR_EXIT },
|
||||
{ "rideentranceexitremove", GAME_COMMAND_REMOVE_RIDE_ENTRANCE_OR_EXIT },
|
||||
{ "ridesetappearance", GAME_COMMAND_SET_RIDE_APPEARANCE },
|
||||
{ "ridesetcolourscheme.hpp", GAME_COMMAND_SET_COLOUR_SCHEME },
|
||||
{ "ridesetcolourscheme", GAME_COMMAND_SET_COLOUR_SCHEME },
|
||||
{ "ridesetname", GAME_COMMAND_SET_RIDE_NAME },
|
||||
{ "ridesetprice", GAME_COMMAND_SET_RIDE_PRICE },
|
||||
{ "ridesetsetting", GAME_COMMAND_SET_RIDE_SETTING },
|
||||
{ "ridesetstatus", GAME_COMMAND_SET_RIDE_STATUS },
|
||||
{ "ridesetvehicles", GAME_COMMAND_SET_RIDE_VEHICLES },
|
||||
{ "scenariosetsetting", GAME_COMMAND_EDIT_SCENARIO_OPTIONS },
|
||||
{ "setcheataction", GAME_COMMAND_CHEAT },
|
||||
{ "setparkentrancefee", GAME_COMMAND_SET_PARK_ENTRANCE_FEE },
|
||||
{ "signsetname", GAME_COMMAND_SET_SIGN_NAME },
|
||||
{ "signsetstyle", GAME_COMMAND_SET_SIGN_STYLE },
|
||||
{ "smallsceneryplace", GAME_COMMAND_PLACE_SCENERY },
|
||||
{ "smallsceneryremove", GAME_COMMAND_REMOVE_SCENERY },
|
||||
{ "stafffire", GAME_COMMAND_FIRE_STAFF_MEMBER },
|
||||
{ "staffhire", GAME_COMMAND_HIRE_NEW_STAFF_MEMBER },
|
||||
{ "staffsetcolour", GAME_COMMAND_SET_STAFF_COLOUR },
|
||||
{ "staffsetcostume", GAME_COMMAND_SET_STAFF_COSTUME },
|
||||
{ "staffsetname", GAME_COMMAND_SET_STAFF_NAME },
|
||||
{ "staffsetorders", GAME_COMMAND_SET_STAFF_ORDERS },
|
||||
{ "staffsetpatrolarea", GAME_COMMAND_SET_STAFF_PATROL },
|
||||
{ "surfacesetstyle", GAME_COMMAND_CHANGE_SURFACE_STYLE },
|
||||
{ "tilemodify", GAME_COMMAND_MODIFY_TILE },
|
||||
{ "trackdesign", GAME_COMMAND_PLACE_TRACK_DESIGN },
|
||||
{ "trackplace", GAME_COMMAND_PLACE_TRACK },
|
||||
{ "trackremove", GAME_COMMAND_REMOVE_TRACK },
|
||||
{ "tracksetbrakespeed", GAME_COMMAND_SET_BRAKES_SPEED },
|
||||
{ "wallplace", GAME_COMMAND_PLACE_WALL },
|
||||
{ "wallremove", GAME_COMMAND_REMOVE_WALL },
|
||||
{ "wallsetcolour", GAME_COMMAND_SET_WALL_COLOUR },
|
||||
{ "waterlower", GAME_COMMAND_LOWER_WATER },
|
||||
{ "waterraise", GAME_COMMAND_RAISE_WATER },
|
||||
{ "watersetheight", GAME_COMMAND_SET_WATER_HEIGHT }
|
||||
};
|
||||
|
||||
static std::string GetActionName(uint32_t commandId)
|
||||
|
||||
Reference in New Issue
Block a user