Beispiel #1
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));
        }
Beispiel #2
0
        public void EditorSaveModuleToTemplate(StructureTemplateGroup moduleInteriorGroup)
        {
            Transform normalFX         = gameObject.FindOrCreateChild("__FX");
            Transform normalCol        = gameObject.FindOrCreateChild("__COLLIDERS");
            Transform normalWIsGen     = gameObject.FindOrCreateChild("__WORLDITEMS_GENERIC");
            Transform normalWindowsGen = gameObject.FindOrCreateChild("__WINDOWS_GENERIC");
            Transform normalDoorsGen   = gameObject.FindOrCreateChild("__DOORS_GENERIC");
            Transform normalWIsUnique  = gameObject.FindOrCreateChild("__WORLDITEMS_UNIQUE");
            Transform normalChrs       = gameObject.FindOrCreateChild("__ACTION_NODES");
            Transform normalDyn        = gameObject.FindOrCreateChild("__DYNAMIC");
            Transform normalStat       = gameObject.FindOrCreateChild("__STATIC");
            Transform normalSub        = gameObject.FindOrCreateChild("__SUBSTRUCTURES");
            Transform normalWindows    = gameObject.FindOrCreateChild("__WINDOWS");
            Transform normalTriggers   = gameObject.FindOrCreateChild("__TRIGGERS");

            StructureTemplate.AddStaticChildrenToStructureTemplate(normalStat, moduleInteriorGroup.StaticStructureLayers);
            StructureTemplate.AddGenericWorldItemsToStructureTemplate(normalWIsGen, ref moduleInteriorGroup.GenericWItems);
            StructureTemplate.AddUniqueWorldItemsToStructureTemplate(normalWIsUnique, moduleInteriorGroup.UniqueWorlditems);
            StructureTemplate.AddActionNodesToTemplate(normalChrs, moduleInteriorGroup.ActionNodes);
            StructureTemplate.AddTriggersToStructureTemplate(normalTriggers, moduleInteriorGroup.Triggers);
        }