I want to make a support column plugin. The idea behind the plugin is the user clicks on the ground where they want the support column drawn, then drags up until the column is at the desired height. The user would also be able to set the colors of the support column. Custom scenery for support columns have been made in 3 positions: quarter-tile centered, half-tile centered, and full-tile centered. It would be nice to include all 3 options in the plugin.
Based on the current state of the Plugin API, I presume this would require some new things added:
We already request to having plugins support like 4 years ago #3166
plugins are happening, check the pull requests. This is a request for API features.
The new name of this issue is vague and confusing people. Old name was better and more specific.
Another plugin I want to make: shift the contents of the entire map by specified offsets. Current source code can be found here: https://github.com/OpenRCT2/OpenRCT2/issues/11495#issuecomment-619811496
I assumed I could insertElement into a tile using a TileElement I got from another tile, but this does not seem to be the case.
@spacek531 that would be very difficult to do there are so many references you need to account for. It's best to remove an element at a location and recreate it else where that is how the track design placement works. Only very basic tile elements can be moved by copying the data like that. Anything with animations, track, banners,... Will have issues.
way to get what tile/half tile/quarter tile the mouse is on
In addition to that, I would like to see a way for us to create/display a grid like the land tool has. But in a flexible manner where it would, for instance, allow us to use it as a draggable grid.
Allowing us to create (any amount of) grids at any position of any size would allow us to do that in combination with an on click and on click release for
way to get what tile/half tile/quarter tile the mouse is on
To make plugins that help make 'showcase' parks more interactive, it would be great to have support for:
onClick for any kind of tile element, so you could click specific bits of scenery to make stuff happen@duncanspumpkin if you are talking about the references a ride object has to its first station and what not... I didn't add that to the plugin because it doesn't work yet.
Adding to @Umdlye s suggestion, a way to add a tooltip and change the mouse pointer. This could add hover abilities to objects in the park that originally do not have them. A plugin like Umdlye is suggesting would probably do better after the new save file format implements arbitrary data storage, so a new plugin is not created for every single park that wants these interactive features.
~Please expose access to the peeps hunger/thirst/fatigue .. thanks :)~
Access to the park's name would be nice as a temporary way to identify a park to link park-specific settings until the new save file format comes out.
How about subscriptions for when things are built? For example, path additions.
More info on why you'd want this: tubbo/openrct2-benchwarmer#14
When things are built you hook game actions
That's an interesting idea @duncanspumpkin. It looks like I can hook action.location for whenever a game action occurs on a given tile. But I'm not sure how I'm supposed to know what the action that occurred actually was, according to ActionLocationArgs. Does the type have something to do with it? If "build a path addition" has its own type, then I suppose we're in business.
edit: Just looked on master branch and there's now an action.execute subscription I never saw before. :) Would this be what I need?
You can hook actions or you can hook action location requests.
This is probably what you want to hook. subscribe(hook: "action.execute", callback: (e: GameActionEventArgs) => void): IDisposable;
Most helpful comment
To make plugins that help make 'showcase' parks more interactive, it would be great to have support for:
onClickfor any kind of tile element, so you could click specific bits of scenery to make stuff happen