====== Asset Override ======
All [[assets|game assets]] (and other mods assets) can be override by mods, partially or totally.
The ''mod:override'' function should be used for that purpose.
===== Overriding specific values =====
myMod:override({
Id = "DEFAULT_BALANCING",
InitialFamilyCount = 1,
MinimumHappinessForLeaving = 30
})
In this example, we only override the ''InitialFamilyCount'' and the ''MinimumHappinessForLeaving'' of Foundation default Balancing.
By doing so, you allow other mods to modify other values of the default balancing.
===== List OVERRIDE / APPEND =====
By default, overriding a property of type List will completely replace the list with your value(s):
-- Override default village list
myMod:override({
Id = "VILLAGE_LIST_DEFAULT",
TradingVillageList = {
"VILLAGE_AVIGNON"
}
})
In that example, the ''TradingVillageList'' will only contains the new village Avignon.
But you can decide to **append** values to the list instead of overriding:
-- Override default village list
myMod:override({
Id = "VILLAGE_LIST_DEFAULT",
TradingVillageList = {
Action = "APPEND", -- Append the following value to the existing list
"VILLAGE_AVIGNON"
}
})
In that case, the ''TradingVillageList'' will contains all villages from the game **and** Avignon.
The list will also include all villages added by other active mods. (unless one of theme completely override the List after your mod append its villages).
===== FBX asset override =====
You can now override the materials generated from textures when you import a 3D model. This can be useful for example to enable Alpha Test for models created with Blender. All materials of a model can be found in a virtual directory under your model's file.
For example, in the //Example 01// mod, there is a 3D model named ''fountain.fbx'' in the directory ''models'', and this model uses a texture named ''FountainColor.png''.
The material can be found at the path ''[path to the FBX file]/Materials/[name of the texture without extension]''. In //Example 01//, here is how to enable alpha test on a material:
-- File path is "models/fountain.fbx" and texture name is "FountainColor.png"
mod:registerAssetId("models/fountain.fbx/Materials/FountainColor", "FOUNTAIN_COLOR_MATERIAL")
mod:override({
Id = "FOUNTAIN_COLOR_MATERIAL",
HasAlphaTest = true
})
===== Related features not yet implemented =====
* Removing specific items from a list