Action disabled: source
modding:developerinfo:townbuilding

Town buildings

Town buildings are a subcategory of construction files. Although town buildings can be configured in the same way as any other construction, they have certain restrictions and conditions.

Overview

Town buildings are stored as .con files in the folder res\construction\building.

Each era has its own subfolder:

  • res\construction\building\era_a: until 1900
  • res\construction\building\era_b: 1900 to 1975
  • res\construction\building\era_c: from 1975

make_buildings function

To ensure town buildings fulfil all needed requirements, the function make_building is used to create town buildings.

The function is located in the script res\scripts\townbuildingutil.lua.

function townbuildingutil.make_building(constructionModelId, buildingModelId, buildingFace, transf, landUseType, era, size, parcelSize, assets)

Function parameters

  • constructionModelId: link to a model file to be placed during the construction
  • buildingModelId: link to the building model file
  • buildingFace: list of 2D coordinates
  • transf: transformation relative to parcel center
  • landUseType: “RESIDENTIAL”, “COMMERCIAL”, or “INDUSTRIAL”
  • era: “A”, “B”, or “C”
  • size: building size (1 to 5)
  • parcelSize: parcel size, from 1×1 to 4×5 (resp. { 1, 1 } to { 4, 5 })
  • assets: list of model files to be placed around the building

Complete code example

local townbuildingutil = require "townbuildingutil"
local transf = require "transf"
local vec3 = require "vec3"
 
function data()
 
return townbuildingutil.make_building(
	"asset/construction_1850.mdl", 
	"building/era_a/res_1_1x1_01_02.mdl",
	{ { -4.00, -1.25 }, { 4.00, -1.25 }, { 4.00, 8.00 }, { -4.00, 8.00 } },
	transf.transl(vec3.new(.0, 1.5, .0)),
	"COMMERCIAL", "A", 1,
	{ 1, 1 },
	{	
	        -- list of grp and ids
	}
)
 
end

grp and ids

A grp is a categorized collection of decorative model files. One (or none) of the models are chosen at random and placed at the specified position.

ids are model files, which are placed at the specified position.

Example

{
	grp = "era_a_com_1_wall_sign",
	transf = { 1, 0, 0, 0,   0, 1, 0, 0,   0, 0, 1, 0,   -0.8, 2.725, 2.5, 1 }
},

{
	ids = { "building/era_a/com_1_asset_wall_awning_03_start.mdl" },
	transf = { 1, 0, 0, 0,   0, 1, 0, 0,   0, 0, 1, 0,   1.5, 2.725, 1.5, 1 }
},

Available grp files:

  • bench
  • era_a_ind_random_decoration
  • era_b_ind_random_decoration
  • era_c_ind_random_decoration
  • era_a_res_random_decoration
  • era_b_res_random_decoration
  • era_c_res_random_decoration
  • random_roof_decoration_small
  • random_roof_decoration_large
  • solar_panel_on_off
  • era_c_pavillion_on_off
  • era_a_com_random_decoration
  • era_b_com_random_decoration
  • era_b_com_1_ground_box
  • era_b_com_1_ground_food_booth
  • era_b_com_1_ground_sign
  • era_b_com_1_wall_sign_big
  • era_b_com_1_wall_sign_small
  • era_b_com_1_wall_store_sign_big
  • era_b_com_1_wall_store_sign_small
  • era_b_com_2_to_3_wall_sign_big
  • era_b_com_2_to_3_wall_sign_small
  • era_b_com_2_to_3_wall_store_sign
  • era_b_com_2_to_3_wall_store_sign_small
  • era_c_com_random_decoration
  • era_a_com_1_food_booth
  • era_a_com_1_wall_sign
  • era_a_com_1_wall_sign_big
  • era_a_com_1_ground_sign
  • era_a_com_1_wall_store_sign
  • era_a_com_2_wall_sign
  • era_a_com_2_roof_sign
  • era_a_com_2_wall_store_sign
  • era_a_com_2_wall_store_sign_big
  • era_a_com_2_wall_awning_04
  • era_c_com_2_to_4_wall_sign_small
  • era_c_com_2_to_4_wall_sign_large
  • era_c_com_2_to_4_wall_store_sign
  • silo_horizontal
  • silo_vertical
  • silo_special
  • garden_sunshade_large_01
  • garden_sunshade_large_02
  • garden_sunshade_small
  • random_medium_tree
  • random_large_tree
  • random_small_tree
  • random_shrub_europe
  • random_shrub_usa

For more detailed information about the categories, please refer to the townbuildingutil.assets list in the townbuildingutil.lua script.

modding/developerinfo/townbuilding.txt · Last modified: 2019/03/19 10:18 (external edit)