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

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
guides:random_doors_and_windows [2020/04/23 12:27] vjraymonguides:random_doors_and_windows [2020/04/23 18:58] vjraymon
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 door (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.txt · Last modified: 2021/02/23 11:56 by minotorious

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki