Difference between revisions of "Script/Building"
From SF3
(→class Building) |
|||
Line 9: | Line 9: | ||
'''Inherits from:''' [[../Entity|Entity]] | '''Inherits from:''' [[../Entity|Entity]] | ||
=== Class Methods === | === Class Methods === | ||
+ | ==== Basic Information ==== | ||
{| border='0' style ='border:solid 1px #eeeedd; color: black; width: 1200px;background-color: #ffffcc;' cellspacing='0' cellpadding='7' | {| border='0' style ='border:solid 1px #eeeedd; color: black; width: 1200px;background-color: #ffffcc;' cellspacing='0' cellpadding='7' | ||
|- | |- | ||
Line 22: | Line 23: | ||
| | | | ||
| style = 'color: #505050; line-height: 0.5;' |''get building type'' | | style = 'color: #505050; line-height: 0.5;' |''get building type'' | ||
+ | |- | ||
+ | | style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes|uint16]] | ||
+ | | style='color: black; width: 90%; line-height: 0.8;' | '''GetSectorIndex''' () const | ||
+ | |- | ||
+ | | | ||
+ | | style = 'color: #505050; line-height: 0.5;' |''get index of the sector in which the building is located.'' | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | ==== Status ==== | ||
+ | {| border='0' style ='border:solid 1px #eeeedd; color: black; width: 1200px;background-color: #ffffcc;' cellspacing='0' cellpadding='7' | ||
|- | |- | ||
| style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../LogicEnums#EBuildingStage|EBuildingStage]] | | style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../LogicEnums#EBuildingStage|EBuildingStage]] | ||
Line 28: | Line 40: | ||
| | | | ||
| style = 'color: #505050; line-height: 0.5;' |''get current building stage'' | | style = 'color: #505050; line-height: 0.5;' |''get current building stage'' | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes|int]] | | style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes|int]] | ||
Line 47: | Line 53: | ||
| style = 'color: #505050; line-height: 0.5;' |''get maximum building health'' | | style = 'color: #505050; line-height: 0.5;' |''get maximum building health'' | ||
|- | |- | ||
− | | style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes| | + | | style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes|bool]] |
− | | style='color: black; width: 90%; line-height: | + | | style='color: black; width: 90%; line-height: 0.8;' | '''Damage''' (const [[../LogicEnums#EDamageType|EDamageType]] ''_DamageType'', const [[../BasicDataTypes|uint]] ''_uAmount'') |
|- | |- | ||
| | | | ||
− | | style = 'color: #505050; line-height: 0.5;' |'' | + | | style = 'color: #505050; line-height: 0.5;' |''damage the building for _uAmount HP of the given damage type, returns true if destroyed'' |
|- | |- | ||
| style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes|void]] | | style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes|void]] | ||
− | | style='color: black; width: 90%; line-height: | + | | style='color: black; width: 90%; line-height: 0.8;' | '''Destroy''' () |
|- | |- | ||
| | | | ||
− | | style = 'color: #505050; line-height: 0.5;' |'' | + | | style = 'color: #505050; line-height: 0.5;' |''immediately destroy the building'' |
|- | |- | ||
− | | style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes| | + | | style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes|uint8]] |
− | | style='color: black; width: 90%; line-height: 1.0;' | ''' | + | | style='color: black; width: 90%; line-height: 1.0;' | '''GetAssignedWorkers''' () const |
|- | |- | ||
| | | | ||
− | | style = 'color: #505050; line-height: 0.5;' |''get | + | | style = 'color: #505050; line-height: 0.5;' |''get number of workers currently assigned to this building'' |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes|void]] | | style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes|void]] | ||
− | | style='color: black; width: 90%; line-height: 0 | + | | style='color: black; width: 90%; line-height: 1.0;' | '''AssignWorkers''' (const [[../BasicDataTypes|uint8]] ''_uNumWorkers'') |
|- | |- | ||
| | | | ||
− | | style = 'color: #505050; line-height: 0.5;' |'' | + | | style = 'color: #505050; line-height: 0.5;' |''assign the given number of workers to this building'' |
|- | |- | ||
− | | | + | |} |
− | | | + | |
− | + | ==== Flags ==== | |
− | + | {| border='0' style ='border:solid 1px #eeeedd; color: black; width: 1200px;background-color: #ffffcc;' cellspacing='0' cellpadding='7' | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes|bool]] | | style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes|bool]] | ||
Line 131: | Line 118: | ||
| style = 'color: #505050; line-height: 0.5;' |''set the given custom building state'' | | style = 'color: #505050; line-height: 0.5;' |''set the given custom building state'' | ||
|- | |- | ||
− | | | + | |} |
− | | | + | |
− | + | ==== Resources ==== | |
− | + | {| border='0' style ='border:solid 1px #eeeedd; color: black; width: 1200px;background-color: #ffffcc;' cellspacing='0' cellpadding='7' | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes|uint]] | | style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes|uint]] | ||
Line 166: | Line 146: | ||
| | | | ||
| style = 'color: #505050; line-height: 0.5;' |''remove _uAmount resources of _Type from the building's production store. returns the actual amount of resources removed.'' | | style = 'color: #505050; line-height: 0.5;' |''remove _uAmount resources of _Type from the building's production store. returns the actual amount of resources removed.'' | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | ==== Special Behaviors ==== | ||
+ | {| border='0' style ='border:solid 1px #eeeedd; color: black; width: 1200px;background-color: #ffffcc;' cellspacing='0' cellpadding='7' | ||
+ | |- | ||
+ | | style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes|uint]] | ||
+ | | style='color: black; width: 90%; line-height: 1.0;' | '''GetCharge''' () const | ||
+ | |- | ||
+ | | | ||
+ | | style = 'color: #505050; line-height: 0.5;' |''get the building's current charge (returns 0 if the building does not have a charge behavior)'' | ||
+ | |- | ||
+ | | style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes|uint]] | ||
+ | | style='color: black; width: 90%; line-height: 1.0;' | '''GetMaxCharge''' () const | ||
+ | |- | ||
+ | | | ||
+ | | style = 'color: #505050; line-height: 0.5;' |''get the building's maximum charge (returns 0 if the building does not have a charge behavior)'' | ||
+ | |- | ||
+ | | style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes|void]] | ||
+ | | style='color: black; width: 90%; line-height: 0.8;' | '''Charge''' (const [[../BasicDataTypes|int]] ''_iChargePoints'') | ||
+ | |- | ||
+ | | | ||
+ | | style = 'color: #505050; line-height: 0.5;' |''modify charge value of a charge type building'' | ||
+ | |- | ||
+ | | style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../Building|Building]] | ||
+ | | style='color: black; width: 90%; line-height: 1.0;' | '''GetConnectedGodstone''' () | ||
+ | |- | ||
+ | | | ||
+ | | style = 'color: #505050; line-height: 0.5;' |''get connected godstone (may be invalid if the godstone is not connected or if this building is not a godstone)'' | ||
+ | |- | ||
+ | | style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes|string]] | ||
+ | | style='color: black; width: 90%; line-height: 1.0;' | '''GetConnectedGodstoneName''' () const | ||
+ | |- | ||
+ | | | ||
+ | | style = 'color: #505050; line-height: 0.5;' |''get name of the connected godstone (may be empty if the godstone is not connected or if this building is not a godstone)'' | ||
+ | |- | ||
+ | | style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes|void]] | ||
+ | | style='color: black; width: 90%; line-height: 1.0;' | '''ConnectGodstone''' (const [[../Building|Building]]&in ''_TargetGodstone'') | ||
+ | |- | ||
+ | | | ||
+ | | style = 'color: #505050; line-height: 0.5;' |''connect this godstone to another one (both buildings must be godstones!)'' | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | ==== Miscellaneous ==== | ||
+ | {| border='0' style ='border:solid 1px #eeeedd; color: black; width: 1200px;background-color: #ffffcc;' cellspacing='0' cellpadding='7' | ||
|- | |- | ||
| style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes|uint]] | | style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes|uint]] | ||
Line 172: | Line 198: | ||
| | | | ||
| style = 'color: #505050; line-height: 0.5;' |''upgrade the building to the given description'' | | style = 'color: #505050; line-height: 0.5;' |''upgrade the building to the given description'' | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | ==== Operators ==== | ||
+ | {| border='0' style ='border:solid 1px #eeeedd; color: black; width: 1200px;background-color: #ffffcc;' cellspacing='0' cellpadding='7' | ||
|- | |- | ||
| style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../Building|Building]]& | | style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../Building|Building]]& | ||
Line 180: | Line 211: | ||
| style='color: black; width: 90%; line-height: 0.8;' | '''operator==''' (const [[../Building|Building]]&in) | | style='color: black; width: 90%; line-height: 0.8;' | '''operator==''' (const [[../Building|Building]]&in) | ||
|- | |- | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | ==== Inherited Functions ==== | ||
+ | Functions inherited from [[../Entity|Entity]]. | ||
+ | {| border='0' style ='border:solid 1px #eeeedd; color: black; width: 1200px;background-color: #ffffcc;' cellspacing='0' cellpadding='7' | ||
|- | |- | ||
| style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes|bool]] | | style='color: blue; width: 10%; text-align:right;line-height: 0.8;' | [[../BasicDataTypes|bool]] |
Revision as of 09:39, 27 March 2017
Contents
class Building
Represents a reference to a building in the game world. An instance of this class acts like a weak pointer to an existing building in the game world and provides an interface to interact with it. Before interacting with the building, you should call Exists() in order to check if the building actually (still) exists. IMPORTANT: This class must NOT be stored as a class member. If you want to store the building for later reference, store the id obtained by GetId instead. You can then later retrieve the building from the LevelReference class by calling GetBuildingById.
Inherits from: Entity
Class Methods
Basic Information
string | GetDescriptionName () const |
get building description name | |
EBuildingType | GetBuildingType () const |
get building type | |
uint16 | GetSectorIndex () const |
get index of the sector in which the building is located. |
Status
EBuildingStage | GetStage () const |
get current building stage | |
int | GetCurrentHP () const |
get current building health | |
int | GetMaxHP () const |
get maximum building health | |
bool | Damage (const EDamageType _DamageType, const uint _uAmount) |
damage the building for _uAmount HP of the given damage type, returns true if destroyed | |
void | Destroy () |
immediately destroy the building | |
uint8 | GetAssignedWorkers () const |
get number of workers currently assigned to this building | |
void | AssignWorkers (const uint8 _uNumWorkers) |
assign the given number of workers to this building |
Flags
bool | IsActive () const |
is the building currently active? (assignments can be given by the player) | |
void | SetActive (const bool _bActive) |
set whether the player can give assignments to the building | |
bool | CanBeUsedByAllFactions () const |
can the building be used by all factions? | |
void | SetUsableByAllFactions (const bool _bUsable) |
set whether the building is allowed to be used by all factions | |
bool | CheckCustomState (const EBuildingCustomState _State) const |
check whether the given custom building state is currently active | |
void | SetCustomState (const EBuildingCustomState _State, const bool _bValue) |
set the given custom building state |
Resources
uint | GetResources (const EResource _Type) const |
get the amount of resources of _Type currently in the building's production store. | |
uint | GetResourceCapacity (const EResource _Type) const |
get the maximum amount of resources of _Type which the building can store in its production store. | |
uint | AddResources (const EResource _Type, const uint _uAmount) |
add _uAmount resources of _Type to the building's production store. returns the actual amount of resources added. | |
uint | RemoveResources (const EResource _Type, const uint _uAmount) |
remove _uAmount resources of _Type from the building's production store. returns the actual amount of resources removed. |
Special Behaviors
uint | GetCharge () const |
get the building's current charge (returns 0 if the building does not have a charge behavior) | |
uint | GetMaxCharge () const |
get the building's maximum charge (returns 0 if the building does not have a charge behavior) | |
void | Charge (const int _iChargePoints) |
modify charge value of a charge type building | |
Building | GetConnectedGodstone () |
get connected godstone (may be invalid if the godstone is not connected or if this building is not a godstone) | |
string | GetConnectedGodstoneName () const |
get name of the connected godstone (may be empty if the godstone is not connected or if this building is not a godstone) | |
void | ConnectGodstone (const Building&in _TargetGodstone) |
connect this godstone to another one (both buildings must be godstones!) |
Miscellaneous
uint | Upgrade (const LevelReference@ _Level, const string&in _sDescriptionName, const bool _bInstant = false) |
upgrade the building to the given description |
Operators
Building& | operator= (const Building&in) |
bool | operator== (const Building&in) |
Inherited Functions
Functions inherited from Entity.
bool | operator== (const Entity&in) |
bool | Exists () const |
does the entity actually exist? (always check this before doing anything with the entity!) | |
uint | GetId () const |
get persistent entity id, use this to save the entity for later reference. | |
uint8 | GetFaction () const |
get owner faction | |
void | SetFaction (const uint8 _Faction) |
set owner faction | |
EEntityType | GetEntityType () const |
get entity type | |
bool | IsEnabled () const |
whether the entity is currently enabled (i.e. is visible in the game world) | |
void | Enable (const bool _bEnabled) |
enabled or disable the entity | |
bool | IsInteractive () const |
can the entity be interacted with? | |
void | SetInteractive (const bool _bInteractive) |
set whether the entity can be interacted with | |
bool | IsSelectable () const |
can the entity (theoretically) be selected by the player? | |
void | SetSelectable (const bool _bSelectable) |
set whether the entity can be selected by the player
(note that depending on the type of entity, there may be additional checks preventing the entity from being selected) | |
bool | IsBusy () const |
is the entity currently marked as busy? | |
void | SetBusy (const bool _bBusy) |
mark the entity as busy | |
void | SetInspectionText (const uint _uTextId) |
make the entity inspectable and set the text to be displayed upon inspection | |
bool | CanBeAttacked () const |
can the entity be attacked? | |
void | SetAttackable (const bool _bAttackable) |
set whether the entity can be attacked | |
Entity | opImplConv () const |