1
0
Fork 0

Add: [Script] GetBaseStationID

Added ScriptBaseStation::GetBaseStationID to get the StationID of a tile, if there is a basestation (Station or Waypoint).
pull/13408/head
SamuXarick 2025-01-30 13:56:07 +00:00
parent 5fef32bde7
commit 3c44d5ba5a
4 changed files with 17 additions and 0 deletions

View File

@ -28,6 +28,7 @@
* \li AICargo::CC_POTABLE
* \li AICargo::CC_NON_POTABLE
* \li AIVehicleList_Waypoint
* \li AIBaseStation::GetBaseStationID
*
* Other changes:
* \li AIBridge::GetBridgeID renamed to AIBridge::GetBridgeType

View File

@ -29,6 +29,7 @@
* \li GSCargo::CC_NON_POTABLE
* \li GSVehicleList_Waypoint
* \li GSBaseStation::GetOwner
* \li GSBaseStation::GetBaseStationID
*
* Other changes:
* \li GSBridge::GetBridgeID renamed to GSBridge::GetBridgeType

View File

@ -34,6 +34,12 @@
return ScriptCompany::ToScriptCompanyID(::BaseStation::Get(station_id)->owner);
}
/* static */ StationID ScriptBaseStation::GetBaseStationID(TileIndex tile)
{
if (!::IsValidTile(tile) || !::IsTileType(tile, MP_STATION) || ::BaseStation::GetByTile(tile) == nullptr) return StationID::Invalid();
return ::GetStationIndex(tile);
}
/* static */ std::optional<std::string> ScriptBaseStation::GetName(StationID station_id)
{
if (!IsValidBaseStation(station_id)) return std::nullopt;

View File

@ -42,6 +42,15 @@ public:
*/
static ScriptCompany::CompanyID GetOwner(StationID station_id);
/**
* Get the StationID of a tile, if there is a basestation.
* @param tile The tile to find the StationID of.
* @pre IsValidTile(tile).
* @return StationID of the basestation.
* @post Use IsValidBaseStation() to see if the basestation is valid.
*/
static StationID GetBaseStationID(TileIndex tile);
/**
* Get the name of a basestation.
* @param station_id The basestation to get the name of.