internal Module DuplicateModule(Module module) { Module prefab = ModuleHead.instance.GetModulePrefab(module.data.GetType()); GameObject gameObject = Instantiate(prefab.gameObject, this.transform); gameObject.name = module.data.name; Module instance = gameObject.GetComponent <Module>(); instance.parent = this; instance.PopulateData(module.data); instance.data.id = GameHead.instance.universeData.GenerateUniqueId(); _idModuleMap.Add(instance.data.id, instance); instance.OnLoad(); return(instance); }
internal Module NewModule(Module prefab) { GameObject gameObject = Instantiate(prefab.gameObject, this.transform); Module module = gameObject.GetComponent <Module>(); ModuleData moduleData = module.data.defaultData; moduleData.id = GameHead.instance.universeData.GenerateUniqueId(); _idModuleMap.Add(moduleData.id, module); module.parent = this; gameObject.name = moduleData.name; module.PopulateData(moduleData); module.OnLoad(); return(module); }