User Tools

Site Tools


migration

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
migration [2020/05/22 12:14] maximemigration [2023/09/05 11:21] (current) – Migrate to 1.9.6 mathieu
Line 1: Line 1:
 ====== Migration Notes ====== ====== Migration Notes ======
  
-===== Foundation Preview 1.6.0.0522 =====+===== Foundation 1.9.6 ===== 
 + 
 +==== Trading Village ==== 
 + 
 +In 1.9.6, we simplified ''TRADING_VILLAGE'''s list of resources by simply requiring a list of assets. 
 + 
 +<file lua> 
 +-- OLD WAY 
 +-- Register an addition neighbour to trade with.  
 +saltTrader:registerAsset({ 
 + DataType = "TRADING_VILLAGE", 
 + Id = SaltPrefix .. "_VILLAGE_NANTES", 
 +        Heraldry = "ICON_" .. CommonResourceSalt, 
 +        Description = SaltPrefix .. "_VILLAGE_NANTES_DESC", 
 + VillageName = "Nantes", 
 + --RESOURCE QUANTITY PAIR 
 + UnlockCost = {  
 + { Resource = "GOLD", Quantity = 300 } 
 + }, 
 + ResourceTradingReplenishDelay = 300.0, 
 +  
 + --BUYING RESOURCE TRADING INFO 
 + BuyingResourceList = {  
 +
 + ResourceMaxAmount = { Resource = "HONEY", Quantity = 30 }, 
 +                        ReplenishingAmount = 10, 
 + }, 
 +
 + ResourceMaxAmount = { Resource = "HERBS", Quantity = 30 }, 
 +                        ReplenishingAmount = 10, 
 +
 + }, 
 +  
 + --SELLING RESOURCE TRADING INFO 
 + SellingResourceList = { 
 +
 + ResourceMaxAmount = { Resource = CommonResourceSalt, Quantity = 50 }, 
 +                        ReplenishingAmount = 20, 
 +
 + }, 
 + Allegeance = "CLERGY", 
 +      ResourceNeededToUpgrade = "BERRIES", 
 +      TradeRouteUpgradeNarrativePanelTemplate = "NARRATIVE_PANEL_TEMPLATE_TRADE_ROUTE_UPGRADE", 
 +      WorldGuiIcon = "ICON_" .. CommonResourceSalt, 
 +      UpgradeEventEnvoyProfile = "PROFILE_ENVOY_ROYAL", 
 +}) 
 + 
 +-- NEW WAY 
 +-- Register an addition neighbour to trade with.  
 +saltTrader:registerAsset({ 
 + DataType = "TRADING_VILLAGE", 
 + Id = SaltPrefix .. "_VILLAGE_NANTES", 
 +        Heraldry = "ICON_" .. CommonResourceSalt, 
 +        Description = SaltPrefix .. "_VILLAGE_NANTES_DESC", 
 + VillageName = "Nantes", 
 + --RESOURCE QUANTITY PAIR 
 + UnlockCost = {  
 + { Resource = "GOLD", Quantity = 300 } 
 + }, 
 + ResourceTradingReplenishDelay = 300.0, 
 +  
 + --BUYING RESOURCE TRADING INFO 
 + BuyingResourceList = {  
 + "HONEY", 
 + "HERBS" 
 + }, 
 +  
 + --SELLING RESOURCE TRADING INFO 
 + SellingResourceList = { 
 + CommonResourceSalt 
 + }, 
 + Allegeance = "CLERGY", 
 +      ResourceNeededToUpgrade = "BERRIES", 
 +      TradeRouteUpgradeNarrativePanelTemplate = "NARRATIVE_PANEL_TEMPLATE_TRADE_ROUTE_UPGRADE", 
 +      WorldGuiIcon = "ICON_" .. CommonResourceSalt, 
 +      UpgradeEventEnvoyProfile = "PROFILE_ENVOY_ROYAL", 
 +}) 
 +</file> 
 + 
 +===== Foundation 1.9.3 ===== 
 + 
 +  * [[changelog:1.9.3.1.0417|Changelog]] 
 + 
 +==== Gendered fields ==== 
 + 
 +In 1.9.3, we merged the Nun and Monk profiles and statuses together to avoid duplication. This brought in the notion of "gendered fields". Those fields are arrays based on ''GENDER_USAGE''. Fields that needed to be different depending on gender became "gendered fields"
 + 
 +**Note: ''AGENT_PROFILE'' and ''VILLAGER_STATUS'' linked to Nun have been removed. Nuns will have their profile and status converted to the Monk equivalent.** 
 + 
 +==== Text fields ==== 
 + 
 +  * If empty in gender, will take ''GENERIC'' 
 +  * If we want the ''GENERIC'' version: 
 +    * If empty, will LOG and ERROR and take the ''MASCULINE'' version 
 +  * To convert: 
 +<file lua> 
 +-- OLD WAY 
 +AgentProfile = { 
 +    DataType = "AGENT_PROFILE", 
 +    ProfileName = "MONK" 
 +
 + 
 +-- NEW WAY 
 +AgentProfile = { 
 +    DataType = "AGENT_PROFILE", 
 +    ProfileNameGendered = { 
 +        -- MASCULINE 
 +        "MONK", 
 +        -- FEMININE 
 +        "NUN", 
 +        -- GENERIC 
 +        "MONASTIC" 
 +    } 
 +
 +</file> 
 + 
 +==== Character Setup ==== 
 + 
 +  * ''[[api:CHARACTER_SETUP_DATA|CHARACTER_SETUP_DATA]]'' per gender 
 +    * Animations: If NONE in gender, will take the one from ''ALL'' 
 +    * Left/Right Hand: If ''nil'' in gender, will take the one from ''ALL'' 
 +    * Clothing: If ''nil'' in gender, will take the one from ''ALL'' 
 +    * Lists: 
 +      * What is in ''ALL'' will be used by every gender 
 +      * No more need to duplicate stuff in both genders 
 +    * To convert: 
 +<file lua> 
 +-- OLD WAY 
 +CharacterSetup = { 
 +    DataType = "CHARACTER_SETUP", 
 +    WalkAnimation = "WALKING", 
 +    IdleAnimation = "GATHER", 
 +    FemaleHatList = { 
 +        "PREFAB_HAT_BERRYPICKER1", 
 +    },  
 +    MaleHatList = { 
 +        "PREFAB_HAT_BERRYPICKER2", 
 +    } 
 +
 + 
 +-- NEW WAY 
 +CharacterSetup = { 
 +    DataType = "CHARACTER_SETUP", 
 +    CharacterSetupDataGendered = { 
 +        -- MALE 
 +        { 
 +            DataType = "CHARACTER_SETUP_DATA", 
 +            HatList = { 
 +                "PREFAB_HAT_BERRYPICKER2" 
 +            } 
 +        }, 
 +        -- FEMALE 
 +        { 
 +            DataType = "CHARACTER_SETUP_DATA", 
 +            HatList = { 
 +                "PREFAB_HAT_BERRYPICKER1" 
 +            } 
 +        }, 
 +        -- ALL 
 +        { 
 +            DataType = "CHARACTER_SETUP_DATA", 
 +            WalkAnimation = "WALKING", 
 +            IdleAnimation = "GATHER" 
 +            -- Things put in lists here will be used by all genders 
 +        } 
 +    } 
 +
 +</file> 
 + 
 +==== Assets ==== 
 +''[[api:agent_profile|AGENT_PROFILE]]'' 
 +  * Gendered Fields: 
 +    * ''[[api:agent_profile#CharacterSetup|CharacterSetup]]'' 
 +      * Need to do conversion manually 
 +    * ''[[api:agent_profile#ProfileFunctionGendered|ProfileFunctionGendered]]'' 
 +      * Will automatically bring the value in ''ProfileFunction'' to the ''ALL'' value 
 +      * You can set it up manually if you want 
 +    * ''[[api:agent_profile#ProfileNameGendered|ProfileNameGendered]]'' 
 +      * Will automatically bring the value in ''ProfileName'' to the ''ALL'' value 
 +      * You can set it up manually if you want 
 +    * ''[[api:agent_profile#ProfileNamePluralGendered|ProfileNamePluralGendered]]'' 
 +      * Will automatically bring the value in ''ProfileNamePlural'' to the ''ALL'' value 
 +      * You can set it up manually if you want 
 + 
 +''[[api:VILLAGER_STATUS|VILLAGER_STATUS]]'' 
 +  * Gendered Fields: 
 +    * ''[[api:VILLAGER_STATUS#CharacterSetup|CharacterSetup]]'' 
 +      * Need to do conversion manually 
 +    * ''[[api:VILLAGER_STATUS#StatusNameGendered|StatusNameGendered]]'' 
 +      * Will automatically bring the value in ''StatusName'' to the ''ALL'' value 
 +      * You can set it up manually if you want 
 +    * ''[[api:VILLAGER_STATUS#StatusDescriptionGendered|StatusDescriptionGendered]]'' 
 +      * Will automatically bring the value in ''StatusDescription'' to the ''ALL'' value 
 +      * You can set it up manually if you want 
 +    * ''[[api:VILLAGER_STATUS#TitleGendered|TitleGendered]]'' 
 +      * Will automatically bring the value in ''Title'' to the ''ALL'' value 
 +      * You can set it up manually if you want 
 + 
 +==== Data ==== 
 +''[[api:agent_profile_function|AGENT_PROFILE_FUNCTION]]'' 
 +  * Gendered Fields: 
 +    * ''[[api:agent_profile_function#AssetStatusQuotaGendered|AssetStatusQuotaGendered]]'' 
 +      * If ''nil'' in gender, will use quota in ''ALL''
 +      * Can use same quota for each gender, it will only evaluate villagers of that gender for the quota. 
 +      * If quota from ''ALL'', will evaluate all villagers 
 + 
 +===== Foundation 1.9.0.7 ===== 
 + 
 +  * [[changelog:1.9|Full Changelog]] 
 + 
 +==== Sub-buildings and building functions ==== 
 + 
 +Buildings can now have sub-buildings, each sub-building having one or multiple building parts. To achieve this, each building can have a list of sub-buildings (''[[api:building#SubAssetBuildingList|BUILDING.SubAssetBuildingList]]''). Each sub-building can also have a building function used for all its parts (''[[api:building#AssetBuildingFunction|BUILDING.AssetBuildingFunction]]''). 
 + 
 +Sub-buildings are available as soon as their parent building is available by feeding the list above. But like building parts, they can be unlocked later on using the game action ''[[api:GAME_ACTION_UNLOCK_BUILDING_LIST|GAME_ACTION_UNLOCK_BUILDING_LIST]]'' in unlockables, and feeding the field ''[[api:BUILDING_PROGRESS#AdditionalBuildingUnlockList|BUILDING_PROGRESS.AdditionalBuildingUnlockList]]''
 + 
 +An example of sub-buildings is given in the ''Example 02'' mod, in the scripts in the ''scripts/mithril_factory directory''
 + 
 +==== Building part list ==== 
 + 
 +The building part set list (''[[api:BUILDING#BuildingPartSetList|BUILDING.BuildingPartSetList]]'') has been replaced with a simpler part list, without splitting parts into sets (''[[api:BUILDING#AssetBuildingPartList|BUILDING.AssetBuildingPartList]]''). Building parts will now be sorted in the construction UI by their category, instead of the set they belong to. 
 + 
 +==== Unlockables ==== 
 + 
 +With the whole rework of the progression system for 1.9, unlockables have been reworked to improve the way content is unlocked throughout the game. 
 + 
 +Unlockable types (''[[api:UNLOCKABLE|UNLOCKABLE]]'' and its sub-types) can now have a list of prerequisite unlockables that must be unlocked before this one (''[[api:UNLOCKABLE#PrerequisiteUnlockableList|UNLOCKABLE.PrerequisiteUnlockableList]]''). The way content is unlocked is now with specialized game actions (''[[api:GAME_ACTION|GAME_ACTION]]''), and a single unlockable can have multiple game actions (''[[api:UNLOCKABLE#ActionList|UNLOCKABLE.ActionList]]''). 
 + 
 +Examples are given in the ''Example 02'' mod, in the ''monument.lua'' and ''wall.lua'' scripts. 
 + 
 +<file lua> 
 +-- OLD UNLOCKABLE 
 +mod:registerAsset({ 
 + DataType = "UNLOCKABLE_BUILDING", 
 + Id = "UNLOCKABLE_MITHRIL_FACTORY", 
 + Name = "UNLOCKABLE_MITHRIL_FACTORY_NAME", 
 + Description = "UNLOCKABLE_MITHRIL_FACTORY_DESC", 
 + EstateInfluenceCostList = { 
 + { Estate = "LABOUR", Quantity = 5 } 
 + }, 
 + RelatedProp = "MITHRIL_FACTORY_MONUMENT" 
 +}) 
 + 
 +-- NEW UNLOCKABLE 
 +mod:registerAsset({ 
 + DataType = "UNLOCKABLE", 
 + Id = "UNLOCKABLE_MITHRIL_FACTORY", 
 + Name = "UNLOCKABLE_MITHRIL_FACTORY_NAME", 
 + Description = "UNLOCKABLE_MITHRIL_FACTORY_DESC", 
 + DataCost = { 
 + ResourceCollection = { 
 + { Resource = "GOLD_COINS", Quantity = 50 }, 
 +
 + }, 
 + ActionList = { 
 +
 + DataType = "GAME_ACTION_UNLOCK_BUILDING_LIST", 
 + BuildingProgressData = { 
 + AssetBuildingList = { 
 + "MITHRIL_FACTORY_MONUMENT", 
 + }, 
 + }, 
 + }, 
 + }, 
 +}) 
 +</file> 
 + 
 +==== Estates and progression ==== 
 + 
 +Progression, both globally and within estates, having been greatly reworked with 1.9. With this, came changes to the structure of progress tiers. Progress tiers are now grouped together in a new assets of type ''[[api:PROGRESS_PATH|PROGRESS_PATH]]'', each progress path containing a list of ''[[api:PROGRESS_TIER_DATA|PROGRESS_TIER_DATA]]''. One progress path can be set for each estate (''[[api:ESTATE#AssetProgressPath|ESTATE.AssetProgressPath]]''), and one is also set for the common progress path (''[[api:BALANCING#AssetCommonProgressPath|BALANCING.AssetCommonProgressPath]]''). 
 + 
 +Unlockables are now added directly to progress tiers (''[[api:PROGRESS_TIER_DATA#UnlockableList|PROGRESS_TIER_DATA.UnlockableList]]''), and the conditions to unlock this unlockable are determined by the the progress tier’s conditions (''[[api:PROGRESS_TIER_DATA#ConditionList|PROGRESS_TIER_DATA.ConditionList]]''). 
 + 
 +<file lua> 
 +-- OLD PROGRESSION 
 +mithrilFactoryMod:overrideAsset({ 
 + Id = "KINGDOM", 
 + EstateProgressList = { -- Add a new estate progress tier 
 + Action = "APPEND", 
 +
 + DataType = "ESTATE_PROGRESS_TIER", 
 + SplendorRequired = 5, 
 + VillagerStatusRequired = { Status = "COMMONER", Quantity = 10 }, 
 + UpgradeList = { 
 + "UNLOCKABLE_SCI_FI_BRIDGE", 
 + "UNLOCKABLE_SCI_FI_WALL" 
 +
 +
 +
 +}) 
 + 
 +-- NEW PROGRESS TIER 
 +mithrilFactoryMod:overrideAsset({ 
 + Id = "PROGRESS_TIER_COMMON_T2", 
 + UnlockableList = { 
 + Action = "APPEND", 
 + "UNLOCKABLE_SCI_FI_BRIDGE", 
 + "UNLOCKABLE_SCI_FI_WALL", 
 + }, 
 +}) 
 +</file> 
 + 
 +==== Quests ==== 
 + 
 +Quests have been greatly reworked, where instead of having a single ''[[api:QUEST_FUNCTION|QUEST_FUNCTION]]'', they can have multiple objectives (''[[api:QUEST#ObjectiveList|QUEST.ObjectiveList]]''), failure conditions (''[[api:QUEST#FailureConditionList|QUEST.FailureConditionList]]''), success actions (''[[api:QUEST#QuestSuccessActionList|QUEST.QuestSuccessActionList]]''), and fail actions (''[[api:QUEST#QuestFailActionList|QUEST.QuestFailActionList]]''). 
 + 
 +All of those are in the form of game conditions (''[[api:GAME_CONDITION|GAME_CONDITION]]'' and all its sub-types), which allows for a better granularity in the structure of quests. 
 + 
 +An example of quest is given in the ''Example 01 mod'', in the ''events.lua'' script. 
 + 
 +<file lua> 
 +-- OLD QUEST 
 +myMod:registerAsset({ 
 + DataType = "QUEST", 
 + Id = "SUPER_QUEST", 
 + Name = "THE_GREAT_QUEST", 
 + Description = "THE_GREAT_QUEST", 
 + QuestFunction = { 
 + DataType = "QUEST_FUNCTION_DELIVER_RESOURCES", 
 + Estate = "KINGDOM", 
 + ResourceListToDeliver = {{ Resource = "WOOD", Quantity = 10 }}, 
 + DaysCount = 60 
 + }, 
 + QuestRewardList = { 
 + QuestRewardResources({{ Resource = "ASTEROID_ROCK", Quantity = 5 }}) 
 +
 +}) 
 + 
 +-- NEW QUEST 
 +myMod:registerAsset({ 
 + DataType = "QUEST", 
 + Id = "SUPER_QUEST", 
 + Name = "THE_GREAT_QUEST", 
 + Description = "THE_GREAT_QUEST_DESCRIPTION", 
 + ObjectiveList = { 
 +
 + DataType = "GAME_CONDITION_ACCUMULATE_IN_STORAGE", 
 + ResourceListToAccumulate = { 
 + { Resource = "WOOD", Quantity = 10 }, 
 + }, 
 + }, 
 +
 + DataType = "GAME_CONDITION_EXECUTE_ACTION_LIST", 
 + IsNeedExecution = true, 
 + ActionList = { 
 +
 + DataType = "GAME_ACTION_DELIVER_RESOURCE", 
 + AmountToPay = { 
 + { Resource = "WOOD", Quantity = 10 }, 
 + }, 
 + IsDeliveryAction = true, 
 + }, 
 + }, 
 + }, 
 + }, 
 + FailureConditionList = { 
 +
 + DataType = "GAME_CONDITION_DAY_COUNT", 
 + DaysToComplete = 30, 
 + }, 
 + }, 
 + QuestSuccessActionList = { 
 +
 + DataType = "GAME_ACTION_GIVE_RESOURCE_LIST", 
 + BudgetCategory = "QUESTS", 
 + ResourceCollection = { 
 + { Resource = "ASTEROID_ROCK", Quantity = 5 }, 
 + }, 
 + }, 
 + }, 
 + QuestFailActionList = {}, 
 +}) 
 +</file> 
 + 
 +==== Events ==== 
 + 
 +Similarly to quests, events have been reworked to trigger a list of actions (''[[api:EVENT#ActionList|EVENT.ActionList]]'') instead of having to select a single choice when the event triggers. This helps to decouple events from their potential UI, which can now be triggered by the action ''[[api:GAME_ACTION_SHOW_NARRATIVE_PANEL|GAME_ACTION_SHOW_NARRATIVE_PANEL]]'' and the new asset ''[[api:ASSET_NARRATIVE_PANEL|ASSET_NARRATIVE_PANEL]]''
 + 
 +An example of event is given in the ''Example 01 mod'', in the ''events.lua'' script. 
 + 
 +===== Foundation 1.8.0.0 ===== 
 + 
 +  * [[changelog:1.8|Full Changelog]] 
 + 
 +==== Resource bundles ==== 
 + 
 +Building part costs have been changed to allow for building in steps, with the builder bringing a bundle of resources for each step. 
 + 
 +To allow this, ''BUILDING_PART_COST.RessourcesNeeded'' has been replaced with ''[[api:building_part_cost#ResourceNeededList|BUILDING_PART_COST.ResourceNeededList]]'', a list of lists of ''[[api:resource_quantity_pair|RESOURCE_QUANTITY_PAIR]]''. Each entry in the outer list corresponds to a bundle. 
 + 
 +The number of construction steps built for each bundle is proportional to a bundle's quantity of resources. For example, if a part needs two resource bundles, one with 30 planks and the other with 10 planks, 75% of the construction steps will be done with the first bundle, and the rest with the second bundle. 
 + 
 +===== Foundation 1.7.1 ===== 
 + 
 +  * [[changelog:1.7|Full Changelog]] 
 + 
 +==== Texture loading ==== 
 + 
 +Some ''[[api:texture|TEXTURE]]'' properties have been changed, depending on their use, to a new type: ''[[api:atlas_cell|ATLAS_CELL]]''
 + 
 +Therefore, we added a way to explicitly choose the type of an asset to load, when calling ''[[mod-management-functions#registerassetid|registerAssetId]]''. Specifying the type is optional, ''TEXTURE'' will be inferred for texture assets if absent. 
 + 
 +This third parameter is currently only used for image assets. 
 + 
 +<file lua> 
 +mod:registerAssetId("test_img1.png", "TEST_IMAGE_1") -- without type specified, loads as a TEXTURE asset 
 +mod:registerAssetId("test_img2.png", "TEST_IMAGE_2", "TEXTURE") -- loads as a TEXTURE asset 
 +mod:registerAssetId("test_img3.png", "TEST_IMAGE_3", "ATLAS_CELL") -- loads as an ATLAS_CELL asset 
 +</file> 
 + 
 +**Technical Info:**  Atlas Cells are images packed in a large unique texture (commonly called atlas). This is especially useful for the GUI engine, allowing to draw most of the interface without having to switch the active binded texture. 
 + 
 +===== Foundation 1.6.0.0522 =====
  
 ==== BUILDING and MONUMENT asset types ==== ==== BUILDING and MONUMENT asset types ====
  
-Monuments have been reworked, and the ''MONUMENT'' type has been merged into ''[[preview:api:building|BUILDING]]''. This means there are a few changes to the way buildings and monuments are created.+Monuments have been reworked, and the ''MONUMENT'' type has been merged into ''[[api:building|BUILDING]]''. This means there are a few changes to the way buildings and monuments are created.
  
 === Buildings === === Buildings ===
  
-A building's only building part should be specified with the property ''[[preview:api:building#assetcorebuildingpart|AssetCoreBuildingPart]]'' instead of ''BuildingPartSetList''. For the game to not mistake a building for a monument, the property ''[[preview:api:building#buildingpartsetlist|BuildingPartSetList]]'' shoud be left empty.+A building's only building part should be specified with the property ''[[api:building#assetcorebuildingpart|AssetCoreBuildingPart]]'' instead of ''BuildingPartSetList''. For the game to not mistake a building for a monument, the property ''[[api:building#buildingpartsetlist|BuildingPartSetList]]'' shoud be left empty.
  
 <file lua> <file lua>
Line 34: Line 446:
 === Monuments === === Monuments ===
  
-Monuments are now created around a single building part, placed before all the others. This part is the one selected just after selecting the monument in the building selection menu. This part has to be specified in the property ''[[preview:api:building#assetcorebuildingpart|AssetCoreBuildingPart]]''. All other parts still are in ''[[preview:api:building#buildingpartsetlist|BuildingPartSetList]]''.+Monuments are now created around a single building part, placed before all the others. This part is the one selected just after selecting the monument in the building selection menu. This part has to be specified in the property ''[[api:building#assetcorebuildingpart|AssetCoreBuildingPart]]''. All other parts still are in ''[[api:building#buildingpartsetlist|BuildingPartSetList]]''.
  
-The core building part, if removed, will remove the whole monument. Like for the market, the core building part can be used for preview only, and be invisible once built by setting ''[[preview:api:building_part#isvisiblewhenbuild|BUILDING_PART.IsVisibleWhenBuilt]]'' to ''false''.+The core building part, if removed, will remove the whole monument. Like for the market, the core building part can be used for preview only, and be invisible once built by setting ''[[api:building_part#isvisiblewhenbuild|BUILDING_PART.IsVisibleWhenBuilt]]'' to ''false''.
  
 <file lua> <file lua>
Line 44: Line 456:
  
 if (foundation.getGameVersion == nil or version.cmp(foundation.getGameVersion(), "1.6") < 0) then if (foundation.getGameVersion == nil or version.cmp(foundation.getGameVersion(), "1.6") < 0) then
-    myMonument.DataType = "BUILDING",+    myMonument.DataType = "BUILDING"
     myMonument.BuildingPartSetList = {     myMonument.BuildingPartSetList = {
     {     {
Line 51: Line 463:
     }     }
 else else
-    myMonument.DataType = "BUILDING", +    myMonument.DataType = "BUILDING" 
-    myMonument.AssetCoreBuildingPart = "CORE_BUILDING_PART",+    myMonument.AssetCoreBuildingPart = "CORE_BUILDING_PART"
     myMonument.BuildingPartSetList = {     myMonument.BuildingPartSetList = {
     {     {
Line 70: Line 482:
  
 Before: Before:
-  * CorePart - ''[[preview:api:building_part_mover_bridge|BUILDING_PART_MOVER_BRIDGE]]'' +  * CorePart - ''[[api:building_part_mover_bridge|BUILDING_PART_MOVER_BRIDGE]]'' 
-    * StartPart - ''[[preview:api:building_part_mover|BUILDING_PART_MOVER]]'' +    * StartPart - ''[[api:building_part_mover|BUILDING_PART_MOVER]]'' 
-    * EndPart - ''[[preview:api:building_part_mover_bridge|BUILDING_PART_MOVER_BRIDGE]]''+    * EndPart - ''[[api:building_part_mover_bridge|BUILDING_PART_MOVER_BRIDGE]]''
  
 Now: Now:
-  * CorePart - ''[[preview:api:building_part_mover|BUILDING_PART_MOVER]]'' +  * CorePart - ''[[api:building_part_mover|BUILDING_PART_MOVER]]'' 
-    * StartPart - ''[[preview:api:building_part_mover_bridge|BUILDING_PART_MOVER_BRIDGE]]'' +    * StartPart - ''[[api:building_part_mover_bridge|BUILDING_PART_MOVER_BRIDGE]]'' 
-    * EndPart - ''[[preview:api:building_part_mover_bridge|BUILDING_PART_MOVER_BRIDGE]]''+    * EndPart - ''[[api:building_part_mover_bridge|BUILDING_PART_MOVER_BRIDGE]]''
  
 ==== Slope constructor ==== ==== Slope constructor ====
  
-Improvements have been made to the bridge, and you now have to setup bridge end parts (''StartPart'' and ''EndPart'') with a ''[[preview:api:building_constructor_slope|BUILDING_CONSTRUCTOR_SLOPE]]''.+Improvements have been made to the bridge, and you now have to setup bridge end parts (''StartPart'' and ''EndPart'') with a ''[[api:building_constructor_slope|BUILDING_CONSTRUCTOR_SLOPE]]''.
  
 ==== Building zone and basement ==== ==== Building zone and basement ====
  
-To improve the number of basement spawned, scalable building parts (with constructor ''[[preview:api:building_constructor_scaler|BUILDING_CONSTRUCTOR_SCALER]]'' or ''[[preview:api:building_constructor_basement|BUILDING_CONSTRUCTOR_BASEMENT]]'') now need a non-empty building zone that fits the size of your basement filler. If no building zone is set, basements will not be placed.+To improve the number of basement spawned, scalable building parts (with constructor ''[[api:building_constructor_scaler|BUILDING_CONSTRUCTOR_SCALER]]'' or ''[[api:building_constructor_basement|BUILDING_CONSTRUCTOR_BASEMENT]]'') now need a non-empty building zone that fits the size of your basement filler. If no building zone is set, basements will not be placed
 + 
 +The [[api:building_zone|BUILDING_ZONE]] type has also been reworked to allow zone polygons per building part.
  
 ===== Foundation 1.4.5.1009 ===== ===== Foundation 1.4.5.1009 =====
migration.1590164044.txt.gz · Last modified: 2020/05/22 12:14 by maxime

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki