User Tools

Site Tools


guides:random_doors_and_windows

Differences

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

Link to this comparison view

Next revision
Previous revision
guides:random_doors_and_windows [2020/04/23 12:24] – created vjraymonguides:random_doors_and_windows [2021/02/23 11:56] (current) – title fix minotorious
Line 1: Line 1:
-====== How to randomly set doors and windows on a building ======+====== How to Randomly set Doors and Windows on a Building ======
  
-Here is an example of a building ("myBuilding") with randomly set doors (3 models) and windows (2 models):+Here is an example of a building (''myBuilding'') with randomly set door (3 models) and windows (2 models):
  
 <code lua> <code lua>
 -- Apply building asset processor -- Apply building asset processor
     myMod:registerAssetProcessor("models/myFbxName.fbx", {     myMod:registerAssetProcessor("models/myFbxName.fbx", {
- DataType = "BUILDING_ASSET_PROCESSOR"+        DataType = "BUILDING_ASSET_PROCESSOR"
     })     })
    
 -- Register prefab nodes -- Register prefab nodes
-    myMod:registerAssetId("models/myFbxName.fbx/Prefab/myBuildingPart", MY_BUILDING_PREFAB")+    myMod:registerAssetId("models/myFbxName.fbx/Prefab/myBuildingPart", "MY_BUILDING_PREFAB")
  
 -- Register the assemblage part -- Register the assemblage part
     myMod:register({     myMod:register({
- DataType = "BUILDING_PART", +        DataType = "BUILDING_PART", 
- Id = MY_BUILDING_PART", +        Id = "MY_BUILDING_PART", 
- Mover = { DataType = "BUILDING_PART_MOVER_INSTANCE" }, +        Mover = { DataType = "BUILDING_PART_MOVER_INSTANCE" }, 
- ConstructorData = { +        ConstructorData = { 
- DataType = "BUILDING_CONSTRUCTOR_ASSEMBLAGE", +            DataType = "BUILDING_CONSTRUCTOR_ASSEMBLAGE", 
- CoreRandomBuildingPartList = { "MY_BUILDING_PREFAB" }, +            CoreRandomBuildingPartList = { "MY_BUILDING_PREFAB" }, 
-                MandatoryBuildingPartList = { +            MandatoryBuildingPartList = { 
-                    -- 1 door per building, +                -- 1 door per building, 
-                    -- set on one major point randomly choosen amongst the major points defined in models/myFbxName.fbx under the mesh myBuildingPart +                -- set on one major point randomly choosen amongst the major points 
-                    { BuildingPart = "MY_DOOR_PART" }, +                -- defined in models/myFbxName.fbx under the mesh myBuildingPart 
-                     -- up to 4 windows, +                { BuildingPart = "MY_DOOR_PART" }, 
-                     -- randomly set on the remaining major points. +                -- up to 4 windows, 
-                    { BuildingPart = "MY_WINDOW_PART", Probability = 0.5 }, +                -- randomly set on the remaining major points. 
-                    { BuildingPart = "MY_WINDOW_PART", Probability = 0.5 }, +                { BuildingPart = "MY_WINDOW_PART", Probability = 0.5 }, 
-                    { BuildingPart = "MY_WINDOW_PART", Probability = 0.5 }, +                { BuildingPart = "MY_WINDOW_PART", Probability = 0.5 }, 
-                    { BuildingPart = "MY_WINDOW_PART", Probability = 0.5 } +                { BuildingPart = "MY_WINDOW_PART", Probability = 0.5 }, 
-                +                { BuildingPart = "MY_WINDOW_PART", Probability = 0.5 } 
- }+            
 +        }
     })     })
  
     myMod:registerPrefabComponent("models/myFbxName.fbx/Prefab/myBuildingPart", {     myMod:registerPrefabComponent("models/myFbxName.fbx/Prefab/myBuildingPart", {
- DataType = "COMP_BUILDING_PART", +        DataType = "COMP_BUILDING_PART", 
- HasBuildingZone = true, +        HasBuildingZone = true, 
- BuildingZone = {4, 8} -- BuildingZone of MY_BUILDING_PART +        BuildingZone = {4, 8} -- BuildingZone of MY_BUILDING_PART 
     })     })
  
 -- several models of door -- several models of door
     myMod:register({     myMod:register({
- DataType = "BUILDING_PART", +        DataType = "BUILDING_PART", 
- Id = "MY_DOOR_PART", +        Id = "MY_DOOR_PART", 
- ConstructorData = { +        ConstructorData = { 
- DataType = "BUILDING_CONSTRUCTOR_RANDOM_PART", +            DataType = "BUILDING_CONSTRUCTOR_RANDOM_PART", 
- RandomPartList = { +            RandomPartList = { 
-                                "MY_DOOR_1_PART", +                "MY_DOOR_1_PART", 
-                                "MY_DOOR_2_PART", +                "MY_DOOR_2_PART", 
-                                "MY_DOOR_3_PART" +                "MY_DOOR_3_PART" 
-                }+            }
         }         }
     })     })
Line 59: Line 60:
  
         myMod:register({         myMod:register({
-        DataType = "BUILDING_PART", +            DataType = "BUILDING_PART", 
-         Id = "MY_DOOR_" .. _doorNumber .. "_PART", +            Id = "MY_DOOR_" .. _doorNumber .. "_PART", 
-         Mover = { DataType = "BUILDING_PART_MOVER_INSTANCE" }, +            Mover = { DataType = "BUILDING_PART_MOVER_INSTANCE" }, 
-         ConstructorData = { +            ConstructorData = { 
-     DataType = "BUILDING_CONSTRUCTOR_DEFAULT", +                DataType = "BUILDING_CONSTRUCTOR_DEFAULT", 
-     CoreObjectPrefab = "MY_DOOR_" .. _doorNumber .. "_PREFAB" +                CoreObjectPrefab = "MY_DOOR_" .. _doorNumber .. "_PREFAB" 
-         }+     }
         })         })
  
         myMod:registerPrefabComponent("models/myFbxName.fbx/Prefab/myDoor" .. _doorNumber .. "_Part", {         myMod:registerPrefabComponent("models/myFbxName.fbx/Prefab/myDoor" .. _doorNumber .. "_Part", {
-     DataType = "COMP_BUILDING_PART",+            DataType = "COMP_BUILDING_PART",
             BuildingPartType = "MAJOR",             BuildingPartType = "MAJOR",
-     HasBuildingZone = true, +            HasBuildingZone = true, 
-     BuildingZone = {0.1, 1} -- generic BuildingZone for your door+            BuildingZone = {0.1, 1} -- generic BuildingZone for your door
         })         })
  
         myMod:registerPrefabComponent("models/myFbxName.fbx/Prefab/myDoor" .. _doorNumber .. "_Part", {         myMod:registerPrefabComponent("models/myFbxName.fbx/Prefab/myDoor" .. _doorNumber .. "_Part", {
-     DataType = "COMP_GROUNDED"+            DataType = "COMP_GROUNDED"
         })         })
     end     end
Line 86: Line 87:
 -- several models of window -- several models of window
     myMod:register({     myMod:register({
- DataType = "BUILDING_PART", +        DataType = "BUILDING_PART", 
- Id = "MY_WINDOW_PART", +        Id = "MY_WINDOW_PART", 
- ConstructorData = { +        ConstructorData = { 
- DataType = "BUILDING_CONSTRUCTOR_RANDOM_PART", +            DataType = "BUILDING_CONSTRUCTOR_RANDOM_PART", 
- RandomPartList = { +            RandomPartList = { 
-                                "MY_WINDOW_1_PART", +                "MY_WINDOW_1_PART", 
-                                "MY_WINDOW_2_PART" +                "MY_WINDOW_2_PART" 
-                }+            }
         }         }
     })     })
Line 102: Line 103:
  
         myMod:register({         myMod:register({
-        DataType = "BUILDING_PART", +            DataType = "BUILDING_PART", 
-         Id = "MY_WINDOW_" .. _windowNumber .. "_PART", +            Id = "MY_WINDOW_" .. _windowNumber .. "_PART", 
-         Mover = { DataType = "BUILDING_PART_MOVER_INSTANCE" }, +            Mover = { DataType = "BUILDING_PART_MOVER_INSTANCE" }, 
-         ConstructorData = { +            ConstructorData = { 
-     DataType = "BUILDING_CONSTRUCTOR_DEFAULT", +                DataType = "BUILDING_CONSTRUCTOR_DEFAULT", 
-     CoreObjectPrefab = "MY_WINDOW_" .. _windowNumber .. "_PREFAB" +                CoreObjectPrefab = "MY_WINDOW_" .. _windowNumber .. "_PREFAB" 
-         }+            }
         })         })
  
         myMod:registerPrefabComponent("models/myFbxName.fbx/Prefab/myWindow" .. _windowNumber .. "_Part", {         myMod:registerPrefabComponent("models/myFbxName.fbx/Prefab/myWindow" .. _windowNumber .. "_Part", {
-     DataType = "COMP_BUILDING_PART",+            DataType = "COMP_BUILDING_PART",
             BuildingPartType = "MAJOR",             BuildingPartType = "MAJOR",
-     HasBuildingZone = true, +            HasBuildingZone = true, 
-     BuildingZone = {0.1, 1} -- generic BuildingZone for your window+            BuildingZone = {0.1, 1} -- generic BuildingZone for your window
         })         })
     end     end
guides/random_doors_and_windows.1587659091.txt.gz · Last modified: 2020/04/23 12:24 by vjraymon

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki