Add: allow gamescripts to build neutral objects #9568
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation / Problem
There are a lot of newgrfs with objects on bananas but, apparently, gamescripts have no way to use them. So this PR aims to pave the way by providing some simple methods to list the objects and build them. This can be useful for adding features during map generattion as well adding some neat details during the game like some landmarks to growing cities, or fences to mark claimed zones.
Description
Adds GSObjectTypeList to list availablle objects. GSObjectType with IsValidObjectType, GetName and GetViews methods to get same basic info about them. And, finally, GSObjectType.BuildObject to make them useful. It's mostly similar to existing GSIndustryType/GSIndustryTypeList.
Also adds AI counterparts for those methods, because why not.
Simple GS for testing (needs an object newgrf):
testobjects.zip
Checklist for review
Some things are not automated, and forgotten often. This list is a reminder for the reviewers.
The bug fix is important enough to be backported? (label: 'backport requested')This PR touches english.txt or translations? Check the guidelinesThis PR affects the save game format? (label 'savegame upgrade')This PR affects the NewGRF API? (label 'needs review: NewGRF')