public static GameObject MakeStructure(ThingTypes thingType, bool isBlueprint) { if (!ThingFactory.IsBlueprint(thingType)) { Debug.LogError("StructureFactory.MakeStructure got a non-blueprint thingType: " + thingType); return(null); } GameObject prefab = GetStructurePrefab(thingType); GameObject structure = Instantiate(prefab) as GameObject; StructureController sc = structure.GetComponent <StructureController>(); if (isBlueprint) { sc.SetupBlueprint(); } else { sc.SetupRealStructure(); } if (isBlueprint) { ParentChildFunctions.SetMaterialOfChildren(structure, Blueprint.GetBlueprintMaterial()); ParentChildFunctions.SetCollisionForChildren(structure, false); } else if (!sc.HasColliders()) { //real structures with no colliders get mesh colliders ParentChildFunctions.SetCollisionForChildren(structure, !isBlueprint); } return(structure); }