The textures work with a diffuse map, having two dynamic colors for texture variation ingame, which is made in the texture image as blue and green colors. Blue is for the primary color and green for the secondary. Both should be randomly generated on single passenger cars and based on the player's input on mass transit vehicles. The textures use .png as the file format, and 512x512 pixels resolution for the buses and trains, and 256x256 pixels resolution for the other vehicles, such as cars or trucks.
NewCity uses low poly 3D models for the assets of the game, on the .obj file format. These models are created using 3D modeling software such as Blender, 3ds Max, Maya or SketchUp. The actual mesh file contains the model vertices and triangles, and the UV mapping for the texture. For the model complexity, it's recommended to stay within reasonable triangle counts based on the size and level of detail required for your model. A good guideline for cars and trucks would be using 100-200 triangles per asset, for buses would be 200-300 triangles, and for trains 200-600 triangles per asset, that may be exceeded, in some exceptional cases.
Triangle counts of vanilla assets for reference: Edit
Hatchback Car- 154 Tris
Sedan Car- 152 Tris
Pickup Car- 146 Tris
Sport Car- 134 Tris
SUV Car- 140 Tris
Semi Tractor- 128 Tris
Semi Trailer- 144 Tris
Box Truck- 154 Tris
Bus- 250 Tris
Train Diesel Engine- 726 Tris
Intercity Passenger Train- 546 Tris
After creating the mesh and texture files of your asset, the import process is divided into two steps, described below.
1- First, place the files in the indicated game folders:
For the mesh- C:\Program Files (x86)\Steam\steamapps\common\NewCity\models\vehicles
For the texture- C:\Program Files (x86)\Steam\steamapps\common\NewCity\textures\vehicles
2- Add your asset on the game using the file vehicles.lua, located on: C:\Program Files (x86)\Steam\steamapps\common\NewCity\data\vehicles.lua. To do this, you must enter a new addVehicleModel command on the text code, followed by the values below, according to the code format used on the file. It is recommended that modders use namespacing for vehicle codes and other things, otherwise there can be naming conflicts. (You could just copy+paste one asset text and edit the values.)
code- the vehicle code, used to reference the asset ingame. For ex:
code = "NameOfTheModder::VhModName"
mesh- the name of the mesh file, and where it is located on the game folders.
texture- the name of the texture file, and where it is located on the game folders.
type- the vehicle type. It must be changed according to the proposed use of the vehicle within the game.
passengers- the number of passengers that the vehicle carries.
length- the length of the vehicle model.