## Lua Suggestions

KINGTUT10101
1,000,000 inhabitants
Reactions:
Posts: 2021
Joined: Thu Jul 07, 2016 22:50
Location: 'Merica
Plugins: Show
Version: Beta
Contact:

### Lua Suggestions

City.getWorkers ([type], [level])
Returns the number of industrial or commercial workers in your city. "type" is optional and is used to select which kind of worker you want to count (commercial, industrial). If "type" is left blank, it returns the total number of workers in the city. "level" is also optional and is used to select which level of worker you want to count (0, 1, 2). If "level" is left blank, workers of all levels will be counted.

City.getBuildingsofType (type, [level])
Returns the number of buildings of a specified type. "type" is used to select which building type you want to count (park, health, residential, etc). "level" is optional and is used to select which building level you want to count if the building type is "residential", "commercial", or "industrial" (0, 1, 2)

City.getIncome ()
Returns the current income of the city.

City.getHappiness ([type])
Returns a number between 0 and 1 that reflect the happiness level of your city. "type" is optional and is used to detect specific happiness levels (supply, transportation, etc). If "type" is left blank, the city's overall happiness will be returned instead.

City.getSize ()
Returns the size of the city as a number.
Last edited by KINGTUT10101 on Mon Oct 14, 2019 4:36, edited 2 times in total.

KINGTUT10101
1,000,000 inhabitants
Reactions:
Posts: 2021
Joined: Thu Jul 07, 2016 22:50
Location: 'Merica
Plugins: Show
Version: Beta
Contact:

### Re: Lua Suggestions

I apologise if any of these are already possible. If some of them are possible, let me know how it works please.

Bearbear76
Former Bearbear65
Reactions:
Posts: 5297
Joined: Fri Feb 10, 2017 14:53
Plugins: Show
Version: Beta

### Re: Lua Suggestions

Cool ideas!
About happiness would the returned value to 0.54 if the happiness of the specified category is 54%? As you said it would be between 0 to 1
Just my opinion

KINGTUT10101
1,000,000 inhabitants
Reactions:
Posts: 2021
Joined: Thu Jul 07, 2016 22:50
Location: 'Merica
Plugins: Show
Version: Beta
Contact:

### Re: Lua Suggestions

Yes. I believe that's how the current version of City.getHappiness () works right now.

FranchuFranchu
Inhabitant of a Country
Reactions:
Posts: 798
Joined: Sun May 28, 2017 0:07
Location: Freezing in Argentina
Plugins: Show
Version: Beta

### Re: Lua Suggestions

for City.getSize() you can do City.getWidth() * City.getHeight()
Did you know you can't blink while smiling :) ?

rjroldan1
Inhabitant of a Megalopolis
Reactions:
Posts: 569
Joined: Mon Jul 17, 2017 16:16
Location: Antipolo, Philippines
Plugins: Show
Contact:

### Re: Lua Suggestions

City.getRegionName(string)
Returns the name of the region currently playing.

These are also helpful as condition for plugins such as:
Plugins can enable if the current Region name returns true specially roleplaying online regions
T.P.C.

Theotown Philippine Corporation

PHILIPPINES

Lobby
Developer
Reactions:
Posts: 3499
Joined: Sun Oct 26, 2008 12:34
Plugins: Show
Version: Beta

### Re: Lua Suggestions

KINGTUT10101 wrote:
Sat Oct 12, 2019 20:51
City.getWorkers ([type], [level])
Returns the number of industrial or commercial workers in your city. "type" is optional and is used to select which kind of worker you want to count (commercial, industrial). If "type" is left blank, it returns the total number of workers in the city. "level" is also optional and is used to select which level of worker you want to count (0, 1, 2). If "level" is left blank, workers of all levels will be counted.
City.getResidentialSpace([level[, progress]])
City.getCommercialJobs([level[, progress]])
City.getIndustrialJobs([level[, progress]])

KINGTUT10101 wrote:
Sat Oct 12, 2019 20:51
City.getBuildingsofType (type, [level])
Returns the number of buildings of a specified type. "type" is used to select which building type you want to count (park, health, residential, etc). "level" is optional and is used to select which building level you want to count if the building type is "residential", "commercial", or "industrial" (0, 1, 2)
Because of the way the game stores buildings I'd recommend the following approach:

Code: Select all

local draftCache = {}
local function countBuldingsOfType(type, level)
level = level == nil and -1 or level
local drafts = draftCache[type..':'..level]
if not drafts then
drafts = Draft.getDrafts()
:filter(function(d)
return d:getType() == type and (level == -1 or d.orig.level - 1 == level)
end)
draftCache[type..':'..level] = drafts
end

local ctr = 0
for i=1,#drafts do
ctr = ctr + City.countBuildings(drafts[i])
end
return ctr
end

-- Now you can call e.g.
-- countBuildingsOfType('residential')
-- countBuildingsOfType('commercial', 0)
-- countBuildingsOfType('industrial', 2)

But will also add that in 1.8.84: City.countBuildingsOfType(type[, level])

KINGTUT10101 wrote:
Sat Oct 12, 2019 20:51
City.getIncome ()
Returns the current income of the city.
Will add that as well in 1.8.84:
City.getIncome()

rjroldan1 wrote:
Fri Jun 19, 2020 2:45

City.getRegionName(string)
Returns the name of the region currently playing.

These are also helpful as condition for plugins such as:
Plugins can enable if the current Region name returns true specially roleplaying online regions
City.getRegionId()
City.getRegionName()

Functions that might be useful in regard to online mode:
City.isOnline()
=^._.^= ∫

distian
Townsman
Reactions:
Posts: 50
Joined: Sat Apr 04, 2020 17:36
Plugins: Show
Version: Beta

### Re: Lua Suggestions

Lobby wrote:
Fri Jun 19, 2020 21:27
1884 will be a nice update for Lua. And don't forget to update the doc site too. lol

rjroldan1
Inhabitant of a Megalopolis
Reactions:
Posts: 569
Joined: Mon Jul 17, 2017 16:16
Location: Antipolo, Philippines
Plugins: Show
Contact:

### Re: Lua Suggestions

How do i collects users name in list using TheoTown.getUserName()?
T.P.C.

Theotown Philippine Corporation

PHILIPPINES

Lobby
Developer
Reactions:
Posts: 3499
Joined: Sun Oct 26, 2008 12:34
Plugins: Show
Version: Beta

### Re: Lua Suggestions

It was a typo in the documentation, the function returns exactly one string, or nil if the player is not logged in.

Code: Select all    Reset

local name = TheoTown.getUserName()
Debug.toast(name)
Interactive Lua editor
=^._.^= ∫