public void EditorFindDungeonPieces() { Modules.Clear(); Transitions.Clear(); int moduleNumber = 0; foreach (Transform module in ModuleParent) { DungeonModule dungeonModule = module.gameObject.GetOrAdd <DungeonModule> (); dungeonModule.ModuleNumber = moduleNumber; dungeonModule.ParentDungeon = this; dungeonModule.OcclusionGroup = dungeonModule.gameObject.GetOrAdd <CullingGroup_Manual> (); dungeonModule.Initialize(); Modules.Add(dungeonModule); moduleNumber++; } int transitionNumber = 0; foreach (Transform transition in TransitionParent) { DungeonTransition dungeonTransition = transition.gameObject.GetOrAdd <DungeonTransition> (); dungeonTransition.ParentDungeon = this; dungeonTransition.TransitionNumber = transitionNumber; dungeonTransition.OcclusionGroup = dungeonTransition.gameObject.GetOrAdd <CullingGroup_Manual> (); dungeonTransition.Initialize(); dungeonTransition.FindTriggers(); Transitions.Add(dungeonTransition); transitionNumber++; } }
protected DungeonModule CreateDungeonModule(int moduleNum) { //first create the object Transform moduleTransform = ModuleParent.gameObject.FindOrCreateChild(ModuleName(name, moduleNum)); DungeonModule dungeonModule = moduleTransform.gameObject.AddComponent <DungeonModule> (); dungeonModule.ParentDungeon = this; dungeonModule.ModuleNumber = moduleNum; dungeonModule.OcclusionGroup = dungeonModule.gameObject.AddComponent <CullingGroup_Manual> (); dungeonModule.Initialize(); Modules.Add(dungeonModule); return(dungeonModule); }
public void CreateDungeonModules() { for (int i = 0; i < Template.Modules.InteriorVariants.Count; i++) { //first create the object StructureTemplateGroup dungeonModuleGroup = Template.Modules.InteriorVariants [i]; DungeonModule dungeonModule = CreateDungeonModule(i); //move the group into position dungeonModule.transform.localPosition = dungeonModuleGroup.GroupOffset; dungeonModule.transform.localRotation = Quaternion.Euler(dungeonModuleGroup.GroupRotation); dungeonModule.Refresh(); //move the group into the final position dungeonModule.BuildModule(dungeonModuleGroup, Template.HasLoadedModulesOnce); } Template.HasLoadedModulesOnce = true; }
public void EditorSaveDungeonToTemplate( ) { if (!Manager.IsAwake <WorldItems> ()) { Manager.WakeUp <WorldItems> ("Frontiers_WorldItems"); } if (!Manager.IsAwake <Structures> ()) { Manager.WakeUp <Structures> ("Frontiers_Structures"); } if (!Manager.IsAwake <Mods> ()) { Manager.WakeUp <Mods> ("__MODS"); } Mods.Get.Editor.InitializeEditor(true); //make sure the dungeon is all set up CreateDungeonTransforms(); EditorFindDungeonPieces(); LinkOcclusionGroups(); DungeonTemplate newTemplate = new DungeonTemplate(); for (int i = 0; i < Modules.Count; i++) { DungeonModule module = Modules [i]; StructureTemplateGroup moduleInteriorGroup = new StructureTemplateGroup(); moduleInteriorGroup.GroupOffset = module.transform.localPosition; moduleInteriorGroup.GroupRotation = module.transform.localRotation.eulerAngles; module.EditorSaveModuleToTemplate(moduleInteriorGroup); newTemplate.Modules.InteriorVariants.Add(moduleInteriorGroup); } for (int i = 0; i < Transitions.Count; i++) { DungeonTransition transition = Transitions [i]; StructureTemplateGroup transitionInteriorGroup = new StructureTemplateGroup(); transitionInteriorGroup.GroupOffset = transition.transform.localPosition; transitionInteriorGroup.GroupRotation = transition.transform.localRotation.eulerAngles; StructureTemplate.AddStaticChildrenToStructureTemplate(transition.transform, transitionInteriorGroup.StaticStructureLayers); StructureTemplate.AddGenericDynamicToStructureTemplate(transition.TriggerParent, ref transitionInteriorGroup.GenericDynamic); newTemplate.Transitions.InteriorVariants.Add(transitionInteriorGroup); } Mods.Get.Editor.SaveMod <DungeonTemplate> (newTemplate, "Dungeon", GetTemplateName(gameObject.name)); }