OpenTTD AI API  20240426-master-ga60a81f34e
Public Types | Static Public Member Functions
AIIndustry Class Reference

Class that handles all industry related functions. More...

Inheritance diagram for AIIndustry:

Public Types

enum  CargoAcceptState {
  CAS_NOT_ACCEPTED,
  CAS_ACCEPTED,
  CAS_TEMP_REFUSED
}
 Ways for an industry to accept a cargo. More...
 

Static Public Member Functions

static SQInteger GetIndustryCount ()
 Gets the number of industries. More...
 
static bool IsValidIndustry (IndustryID industry_id)
 Checks whether the given industry index is valid. More...
 
static IndustryID GetIndustryID (TileIndex tile)
 Get the IndustryID of a tile, if there is an industry. More...
 
static std::optional< std::string > GetName (IndustryID industry_id)
 Get the name of the industry. More...
 
static CargoAcceptState IsCargoAccepted (IndustryID industry_id, CargoID cargo_id)
 See whether an industry currently accepts a certain cargo. More...
 
static SQInteger GetStockpiledCargo (IndustryID industry_id, CargoID cargo_id)
 Get the amount of cargo stockpiled for processing. More...
 
static SQInteger GetLastMonthProduction (IndustryID industry_id, CargoID cargo_id)
 Get the total last month's production of the given cargo at an industry. More...
 
static SQInteger GetLastMonthTransported (IndustryID industry_id, CargoID cargo_id)
 Get the total amount of cargo transported from an industry last month. More...
 
static SQInteger GetLastMonthTransportedPercentage (IndustryID industry_id, CargoID cargo_id)
 Get the percentage of cargo transported from an industry last month. More...
 
static TileIndex GetLocation (IndustryID industry_id)
 Gets the location of the industry. More...
 
static SQInteger GetAmountOfStationsAround (IndustryID industry_id)
 Get the number of stations around an industry. More...
 
static SQInteger GetDistanceManhattanToTile (IndustryID industry_id, TileIndex tile)
 Get the manhattan distance from the tile to the AIIndustry::GetLocation() of the industry. More...
 
static SQInteger GetDistanceSquareToTile (IndustryID industry_id, TileIndex tile)
 Get the square distance from the tile to the AIIndustry::GetLocation() of the industry. More...
 
static bool IsBuiltOnWater (IndustryID industry_id)
 Is this industry built on water. More...
 
static bool HasHeliport (IndustryID industry_id)
 Does this industry have a heliport? More...
 
static TileIndex GetHeliportLocation (IndustryID industry_id)
 Gets the location of the industry's heliport. More...
 
static bool HasDock (IndustryID industry_id)
 Does this industry have a dock? More...
 
static TileIndex GetDockLocation (IndustryID industry_id)
 Gets the location of the industry's dock. More...
 
static IndustryType GetIndustryType (IndustryID industry_id)
 Get the IndustryType of the industry. More...
 
static AICompany::CompanyID GetExclusiveSupplier (IndustryID industry_id)
 Find out which company currently has the exclusive rights to deliver cargo to the industry. More...
 
static AICompany::CompanyID GetExclusiveConsumer (IndustryID industry_id)
 Find out which company currently has the exclusive rights to take cargo from the industry. More...
 

Detailed Description

Class that handles all industry related functions.

Member Enumeration Documentation

◆ CargoAcceptState

Ways for an industry to accept a cargo.

Enumerator
CAS_NOT_ACCEPTED 

The CargoID is not accepted by this industry.

CAS_ACCEPTED 

The industry currently accepts this CargoID.

CAS_TEMP_REFUSED 

The industry temporarily refuses to accept this CargoID but may do so again in the future.

Member Function Documentation

◆ GetAmountOfStationsAround()

static SQInteger AIIndustry::GetAmountOfStationsAround ( IndustryID  industry_id)
static

Get the number of stations around an industry.

All stations that can service the industry are counted, your own stations but also your opponents stations.

Parameters
industry_idThe index of the industry.
Precondition
IsValidIndustry(industry_id).
Returns
The number of stations around an industry.

◆ GetDistanceManhattanToTile()

static SQInteger AIIndustry::GetDistanceManhattanToTile ( IndustryID  industry_id,
TileIndex  tile 
)
static

Get the manhattan distance from the tile to the AIIndustry::GetLocation() of the industry.

Parameters
industry_idThe industry to get the distance to.
tileThe tile to get the distance to.
Precondition
IsValidIndustry(industry_id).
AIMap::IsValidTile(tile).
Returns
The distance between industry and tile.

◆ GetDistanceSquareToTile()

static SQInteger AIIndustry::GetDistanceSquareToTile ( IndustryID  industry_id,
TileIndex  tile 
)
static

Get the square distance from the tile to the AIIndustry::GetLocation() of the industry.

Parameters
industry_idThe industry to get the distance to.
tileThe tile to get the distance to.
Precondition
IsValidIndustry(industry_id).
AIMap::IsValidTile(tile).
Returns
The distance between industry and tile.

◆ GetDockLocation()

static TileIndex AIIndustry::GetDockLocation ( IndustryID  industry_id)
static

Gets the location of the industry's dock.

Parameters
industry_idThe index of the industry.
Precondition
IsValidIndustry(industry_id).
HasDock(industry_id).
Returns
The location of the industry's dock.

◆ GetExclusiveConsumer()

static AICompany::CompanyID AIIndustry::GetExclusiveConsumer ( IndustryID  industry_id)
static

Find out which company currently has the exclusive rights to take cargo from the industry.

Parameters
industry_idThe index of the industry.
Precondition
IsValidIndustry(industry_id).
Returns
The company that has the exclusive rights. The value AICompany::COMPANY_SPECTATOR means that there are currently no exclusive rights given out to anyone.

◆ GetExclusiveSupplier()

static AICompany::CompanyID AIIndustry::GetExclusiveSupplier ( IndustryID  industry_id)
static

Find out which company currently has the exclusive rights to deliver cargo to the industry.

Parameters
industry_idThe index of the industry.
Precondition
IsValidIndustry(industry_id).
Returns
The company that has the exclusive rights. The value AICompany::COMPANY_INVALID means that there are currently no exclusive rights given out to anyone.

◆ GetHeliportLocation()

static TileIndex AIIndustry::GetHeliportLocation ( IndustryID  industry_id)
static

Gets the location of the industry's heliport.

Parameters
industry_idThe index of the industry.
Precondition
IsValidIndustry(industry_id).
HasHeliport(industry_id).
Returns
The location of the industry's heliport.

◆ GetIndustryCount()

static SQInteger AIIndustry::GetIndustryCount ( )
static

Gets the number of industries.

Returns
The number of industries.
Note
The maximum valid IndustryID can be higher than the value returned.

◆ GetIndustryID()

static IndustryID AIIndustry::GetIndustryID ( TileIndex  tile)
static

Get the IndustryID of a tile, if there is an industry.

Parameters
tileThe tile to find the IndustryID of.
Returns
IndustryID of the industry.
Postcondition
Use IsValidIndustry() to see if the industry is valid.
Note
GetIndustryID will return an invalid IndustryID for the station tile of industries with a dock/heliport.

◆ GetIndustryType()

static IndustryType AIIndustry::GetIndustryType ( IndustryID  industry_id)
static

Get the IndustryType of the industry.

Parameters
industry_idThe index of the industry.
Precondition
IsValidIndustry(industry_id).
Returns
The IndustryType of the industry.

◆ GetLastMonthProduction()

static SQInteger AIIndustry::GetLastMonthProduction ( IndustryID  industry_id,
CargoID  cargo_id 
)
static

Get the total last month's production of the given cargo at an industry.

Parameters
industry_idThe index of the industry.
cargo_idThe index of the cargo.
Precondition
IsValidIndustry(industry_id).
AICargo::IsValidCargo(cargo_id).
Returns
The last month's production of the given cargo for this industry.

◆ GetLastMonthTransported()

static SQInteger AIIndustry::GetLastMonthTransported ( IndustryID  industry_id,
CargoID  cargo_id 
)
static

Get the total amount of cargo transported from an industry last month.

Parameters
industry_idThe index of the industry.
cargo_idThe index of the cargo.
Precondition
IsValidIndustry(industry_id).
AICargo::IsValidCargo(cargo_id).
Returns
The amount of given cargo transported from this industry last month.

◆ GetLastMonthTransportedPercentage()

static SQInteger AIIndustry::GetLastMonthTransportedPercentage ( IndustryID  industry_id,
CargoID  cargo_id 
)
static

Get the percentage of cargo transported from an industry last month.

Parameters
industry_idThe index of the industry.
cargo_idThe index of the cargo.
Precondition
IsValidIndustry(industry_id).
AICargo::IsValidCargo(cargo_id).
Returns
The percentage of given cargo transported from this industry last month.

◆ GetLocation()

static TileIndex AIIndustry::GetLocation ( IndustryID  industry_id)
static

Gets the location of the industry.

Parameters
industry_idThe index of the industry.
Precondition
IsValidIndustry(industry_id).
Returns
The location of the industry.

◆ GetName()

static std::optional<std::string> AIIndustry::GetName ( IndustryID  industry_id)
static

Get the name of the industry.

Parameters
industry_idThe industry to get the name of.
Precondition
IsValidIndustry(industry_id).
Returns
The name of the industry.

◆ GetStockpiledCargo()

static SQInteger AIIndustry::GetStockpiledCargo ( IndustryID  industry_id,
CargoID  cargo_id 
)
static

Get the amount of cargo stockpiled for processing.

Parameters
industry_idThe index of the industry.
cargo_idThe index of the cargo.
Precondition
IsValidIndustry(industry_id).
AICargo::IsValidCargo(cargo_id).
Returns
The amount of cargo that is waiting for processing.

◆ HasDock()

static bool AIIndustry::HasDock ( IndustryID  industry_id)
static

Does this industry have a dock?

Parameters
industry_idThe index of the industry.
Precondition
IsValidIndustry(industry_id).
Returns
True when the industry has a dock.

◆ HasHeliport()

static bool AIIndustry::HasHeliport ( IndustryID  industry_id)
static

Does this industry have a heliport?

Parameters
industry_idThe index of the industry.
Precondition
IsValidIndustry(industry_id).
Returns
True when the industry has a heliport.

◆ IsBuiltOnWater()

static bool AIIndustry::IsBuiltOnWater ( IndustryID  industry_id)
static

Is this industry built on water.

Parameters
industry_idThe index of the industry.
Precondition
IsValidIndustry(industry_id).
Returns
True when the industry is built on water.

◆ IsCargoAccepted()

static CargoAcceptState AIIndustry::IsCargoAccepted ( IndustryID  industry_id,
CargoID  cargo_id 
)
static

See whether an industry currently accepts a certain cargo.

Parameters
industry_idThe index of the industry.
cargo_idThe index of the cargo.
Precondition
IsValidIndustry(industry_id).
AICargo::IsValidCargo(cargo_id).
Returns
Whether the industry accepts, temporarily refuses or never accepts this cargo.

◆ IsValidIndustry()

static bool AIIndustry::IsValidIndustry ( IndustryID  industry_id)
static

Checks whether the given industry index is valid.

Parameters
industry_idThe index to check.
Returns
True if and only if the industry is valid.