public string add(module_type moduleType) { try { UserInfoService us = new UserInfoService(); string quanxian_save1 = us.new_quanxian("add", "模块单位"); if (quanxian_save1 != null && quanxian_save1.Length > 0 && quanxian_save1 == "是") { } else { return(ResultUtil.error("没有权限!")); } mts = new ModuleTypeService(); moduleType = mts.save(moduleType); if (moduleType.id > 0) { return(ResultUtil.success(moduleType, "添加成功")); } else { return(ResultUtil.success("未添加")); } } catch (ErrorUtil err) { return(ResultUtil.fail(401, err.Message)); } catch { return(ResultUtil.error("添加失败")); } }
//~osd_module_manager() //{ // for (int i = 0; m_modules[i] != NULL; i++) // { // global_free(m_modules[i]); // } //} public void register_module(module_type mod_type) { osd_module module = mod_type(); if (module.probe()) { osd_printf_verbose("===> registered module {0} {1}\n", module.name(), module.type()); //int i; //for (i = 0; m_modules[i] != NULL; i++) // ; //m_modules[i] = module; m_modules.Add(module); } else { osd_printf_verbose("===> not supported {0} {1}\n", module.name(), module.type()); //module->~osd_module(); //global_free(module); } }
public static void update(Vessel v, vessel_info vi, VesselData vd, vessel_resources resources, double elapsed_s) { // get most used resource handlers resource_info ec = resources.Info(v, "ElectricCharge"); // store data required to support multiple modules of same type in a part var PD = new Dictionary <string, Lib.module_prefab_data>(); // for each part foreach (ProtoPartSnapshot p in v.protoVessel.protoPartSnapshots) { // get part prefab (required for module properties) Part part_prefab = PartLoader.getPartInfoByName(p.partName).partPrefab; // get all module prefabs var module_prefabs = part_prefab.FindModulesImplementing <PartModule>(); // clear module indexes PD.Clear(); // for each module foreach (ProtoPartModuleSnapshot m in p.modules) { // get module type // if the type is unknown, skip it module_type type = ModuleType(m.moduleName); if (type == module_type.Unknown) { continue; } // get the module prefab // if the prefab doesn't contain this module, skip it PartModule module_prefab = Lib.ModulePrefab(module_prefabs, m.moduleName, PD); if (!module_prefab) { continue; } // if the module is disabled, skip it // note: this must be done after ModulePrefab is called, so that indexes are right if (!Lib.Proto.GetBool(m, "isEnabled")) { continue; } // process modules // note: this should be a fast switch, possibly compiled to a jump table switch (type) { case module_type.Reliability: Reliability.BackgroundUpdate(v, p, m, module_prefab as Reliability); break; case module_type.Experiment: Experiment.BackgroundUpdate(v, m, module_prefab as Experiment, ec, elapsed_s); break; case module_type.Greenhouse: Greenhouse.BackgroundUpdate(v, m, module_prefab as Greenhouse, vi, resources, elapsed_s); break; case module_type.GravityRing: GravityRing.BackgroundUpdate(v, p, m, module_prefab as GravityRing, ec, elapsed_s); break; case module_type.Emitter: Emitter.BackgroundUpdate(v, p, m, module_prefab as Emitter, ec, elapsed_s); break; case module_type.Harvester: Harvester.BackgroundUpdate(v, m, module_prefab as Harvester, elapsed_s); break; case module_type.Laboratory: Laboratory.BackgroundUpdate(v, p, m, module_prefab as Laboratory, ec, elapsed_s); break; case module_type.Command: ProcessCommand(v, p, m, module_prefab as ModuleCommand, resources, elapsed_s); break; case module_type.Panel: ProcessPanel(v, p, m, module_prefab as ModuleDeployableSolarPanel, vi, ec, elapsed_s); break; case module_type.Generator: ProcessGenerator(v, p, m, module_prefab as ModuleGenerator, resources, elapsed_s); break; case module_type.Converter: ProcessConverter(v, p, m, module_prefab as ModuleResourceConverter, resources, elapsed_s); break; case module_type.Drill: ProcessHarvester(v, p, m, module_prefab as ModuleResourceHarvester, resources, elapsed_s); break; case module_type.AsteroidDrill: ProcessAsteroidDrill(v, p, m, module_prefab as ModuleAsteroidDrill, resources, elapsed_s); break; case module_type.StockLab: ProcessStockLab(v, p, m, module_prefab as ModuleScienceConverter, ec, elapsed_s); break; case module_type.Light: ProcessLight(v, p, m, module_prefab as ModuleLight, ec, elapsed_s); break; case module_type.Scanner: ProcessScanner(v, p, m, module_prefab, part_prefab, vd, ec, elapsed_s); break; case module_type.CurvedPanel: ProcessCurvedPanel(v, p, m, module_prefab, part_prefab, vi, ec, elapsed_s); break; case module_type.FissionGenerator: ProcessFissionGenerator(v, p, m, module_prefab, ec, elapsed_s); break; case module_type.RadioisotopeGenerator: ProcessRadioisotopeGenerator(v, p, m, module_prefab, ec, elapsed_s); break; case module_type.CryoTank: ProcessCryoTank(v, p, m, module_prefab, resources, elapsed_s); break; } } } }
protected static module_type MODULE_DEFINITION(module_type creator) { return(creator); } //#define MODULE_DEFINITION(_id, _class) extern const module_type _id ; const module_type _id = &module_creator< _class >;
/// <summary> /// 修改模块类别 /// </summary> /// <param name="moduleType"></param> /// <returns></returns> public Boolean update(module_type moduleType) { return(cd.update <module_type>(moduleType)); }
/// <summary> /// 新增模块类别 /// </summary> /// <param name="moduleType"></param> /// <returns></returns> public module_type save(module_type moduleType) { moduleType.company = user.company; return(cd.save <module_type>(moduleType)); }