Esempio n. 1
0
        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++;
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 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;
 }
Esempio n. 4
0
        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));
        }