User:DonQuich: Difference between revisions

From Civilization Modding Wiki
Jump to navigationJump to search
m (testing my bot)
mNo edit summary
 
(46 intermediate revisions by the same user not shown)
Line 1: Line 1:
The 'TerrainID' pseudo-type is actually a regular '''integer'''.<br/>
Developer of the bot that generated the initial versions of the [[Lua and UI Reference (Civ5)]] on mid-2012.
Pseudo-types do not exist in LUA, they only serve a documentation purpose on the wiki!<br/>


Integers labeled as 'TerrainID corresponds to the 'ID' column of the [[Civ5Terrains]]' XML table.<br/>
CivFanatics profile: [http://forums.civfanatics.com/member.php?u=210491 DonQuiche]
The values in the 'ID' and 'Type' columns are also dynamically stored on startup in the '''TerrainTypes''' LUA enumeration.<br/>
== TerrainTypes enumeration ==
A LUA enumeration is a just a regular table.<br/>
It is commonly used to store constants, the keys being the constants' names and the pairs the corresponding values.<br/>


On startup, the game reads the '''[[Civ5Terrains]]''' data table and stores key/value pairs in the LUA enumeration.<br/>
The keys are the strings from the 'Type' column and the values are the integers from the 'ID' column.<br/>


Below are the values found in an unmodded game updated with Gods & Kings 1.0.1.705 (August 2012).
== Mods ==
{|
* [http://forums.civfanatics.com/showthread.php?t=436912 Ingame Editor (IGE)]
|-
* [http://forums.civfanatics.com/showthread.php?p=11646470 Reseed]
!align="left" |Key
!
!align="left" |Value
|-
|"NO_TERRAIN
|
|align="right" |-1
|-
|"TERRAIN_GRASS
|
|align="right" |0
|-
|"TERRAIN_PLAINS
|
|align="right" |1
|-
|"TERRAIN_DESERT
|
|align="right" |2
|-
|"TERRAIN_TUNDRA
|
|align="right" |3
|-
|"TERRAIN_SNOW
|
|align="right" |4
|-
|"TERRAIN_COAST
|
|align="right" |5
|-
|"TERRAIN_OCEAN
|
|align="right" |6
|-
|"TERRAIN_MOUNTAIN
|
|align="right" |7
|-
|"TERRAIN_HILL
|
|align="right" |8
|-
|"NUM_TERRAIN_TYPES
|
|align="right" |9
|}




== Examples ==
== My scratchpad: pages to salvage ==
Here is how to use the LUA enumeration to retrieve the ID from the 'type'. Those examples will return and assign the integer value 0.
* [[Lua Game Objects/NotificationTypes]]
<pre>
* [[SetHappiness]] - Warning and link
local id = TerrainTypes.TERRAIN_GRASS
* [[HasPolicy]] Good example for HasPolicy and [[SetHasPolicy]]
local id = TerrainTypes["TERRAIN_GRASS"]
* [[GetMinorCivType]] - Good example for player name (add it to Player.GetName?)
</pre>
* Warning about graphics refresh on SetTerrainType
Here are different ways to query the database to retrieve the ID from the 'type'. Those examples will return and assign the integer value 0. See also [[Civ5Lua/GameInfo|GameInfo]].
* Warning and code snippet on SetOwner.
<pre>
* Events.ActivePlayerTurnStart - specify human besides of "active" - exclude AI
local id = GameInfo.Civ5Terrains.TERRAIN_GRASS.ID
* [[GameEvents.PlayerCanConstruct(playerID, buildingTypeID)]] - Example of building constructible with a policy.
local id = GameInfo["Civ5Terrains"].["TERRAIN_GRASS"].ID
* [[Events.SerialEventCityDestroyed (Civ5 API)]] Advise the reader to see SerialEventCityCaptured or copy/paste.
local id = GameInfo.Civ5Terrains{Type="TERRAIN_GRASS"}().ID
* [[Events.SpecificCityInfoDirty (Civ5 API)]] : add "Fired when something in a particular city was changed. E.g. building created/sold, specialists reallocated, and some other things. ".
</pre>
* [[SerialEventCityPopulationChanged]]: fixes the 2k wiki description. Also copy example.
Alternatively you could use this ID to retrieve the value of the 'Description' column. Those examples will return and assign the value TXT_KEY_TERRAIN_GRASS.
* Events.SerialEventCityCaptured: "fired when city is captured or traded to an another civ. "
<pre>
* GameEvents.UnitGetSpecialExploreTarget(iPlayerID, iUnitID) - appears to be triggered when the 'explore' order is given, or some subset thereof. The unit structure for the relevant unit is manipulated to set the explore target.
local description = GameInfo.Civ5Terrains[0].Description
local description = GameInfo["Civ5Terrains"][0]["Description"]
local description = GameInfo.Civ5Terrains{ID=[0}().Description
</pre>
 
==Methods using those identifies==
* '''void''' [[Civ5Lua/Plot|Plot]]:[[Civ5Lua/Plot/SetTerrainType|SetTerrainType]]([[Civ5Lua/TerrainID|TerrainID]] type)
[[Category:Civ5Lua]]

Latest revision as of 08:21, 22 September 2012

Developer of the bot that generated the initial versions of the Lua and UI Reference (Civ5) on mid-2012.

CivFanatics profile: DonQuiche


Mods


My scratchpad: pages to salvage