コード例 #1
0
 // COPY STACK //
 //
 public void CopyStack(BaseStack originalStack)
 {
     modules.Clear();
     foreach (var item in originalStack.modules)
     {
         BaseModule m = ScriptableObject.CreateInstance(item.GetType()) as BaseModule;
         m.Initialize(this, ownerBlueprint);
         m.CopyProperties(item, ownerBlueprint);
         modules.Add(m);
     }
 }
コード例 #2
0
        // DUPLICATE SELECTED MODULE //
        //
        // Called from a GenericMenu in ShowModules().
        public void DuplicateSelectedModule()
        {
            int selectedIndex = modules.FindIndex(delegate(BaseModule bm) { return(bm == selectedModule); });

            if (ownerBlueprint.ownerEmitter.selectedStack.stackFunction == AmpsHelpers.eStackFunction.MultiFunction)
            {
                BaseMultiFunctionModule duplicateModule = ScriptableObject.CreateInstance(selectedModule.GetType()) as BaseMultiFunctionModule;
                duplicateModule.Initialize(this, ownerBlueprint);
                duplicateModule.CopyProperties(selectedModule);
                modules.Insert(selectedIndex + 1, duplicateModule);
            }
            else
            {
                BaseModule duplicateModule = ScriptableObject.CreateInstance(selectedModule.GetType()) as BaseGenericModule;
                duplicateModule.Initialize(this, ownerBlueprint);
                duplicateModule.CopyProperties(selectedModule);
                modules.Insert(selectedIndex + 1, duplicateModule);
            }
            selectedModule = modules[selectedIndex + 1];
            ownerBlueprint.ownerEmitter.SoftReset();
        }