本文整理汇总了C#中ConfigNode.SetValue方法的典型用法代码示例。如果您正苦于以下问题:C# ConfigNode.SetValue方法的具体用法?C# ConfigNode.SetValue怎么用?C# ConfigNode.SetValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ConfigNode
的用法示例。
在下文中一共展示了ConfigNode.SetValue方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: FitEngineIfNecessary
public virtual void FitEngineIfNecessary(bool saveToDatabase)
{
if (!ShouldFitEngine) return;
bool doFit = false;
ConfigNode node = EngineDatabase.GetNodeForEngine(engine);
if (node == null)
{
doFit = true;
}
else
{
doFit = EngineDatabase.PluginUpdateCheck(engine, node);
// Check for changes
foreach (EngineParameterInfo entry in engineFitParameters)
{
if (entry.IsFitResult()) continue;
if (!entry.EqualsValueInNode(node))
{
doFit = true;
break;
}
}
if (!doFit)
{
Debug.Log("[" + engine.EngineTypeName + "] Reading engine params from cache for engine " + engine.EnginePartName);
foreach (EngineParameterInfo entry in engineFitParameters)
{
// Only copy things that would be fitted
if (entry.IsFitResult())
entry.SetValueFromNode(node);
}
engine.PushFitParamsToSolver();
}
}
if (!doFit) return;
Debug.Log("[" + engine.EngineTypeName + "] Fitting params for engine " + engine.EnginePartName);
// Copy valid fit results from database - they might still be correct
if (node != null)
{
foreach (EngineParameterInfo entry in engineFitParameters)
{
if (entry.IsFitResult())
entry.SetValueFromNode(node);
}
}
// Make sure everything has the correct value
engine.PushFitParamsToSolver();
engine.DoEngineFit();
ConfigNode newNode = new ConfigNode();
foreach (EngineParameterInfo entry in engineFitParameters)
{
newNode.SetValue(entry.Name, entry.GetValueStr(), true);
}
if (saveToDatabase)
{
#if DEBUG
Debug.Log("Saving fitted engine parameters to database");
#endif
EngineDatabase.SetNodeForEngine(engine, newNode);
}
}
示例2: SetNodeForEngine
/// <summary>
/// Store fitted engine parameters in the database so they can be accessed later
/// </summary>
/// <param name="engine">Engine to associated this config node with</param>
/// <param name="node">Config node describing engine parameters (both input parameters and fitted parameters)</param>
public static void SetNodeForEngine(IEngineIdentifier engine, ConfigNode node)
{
string partName = engine.EnginePartName;
string engineType = engine.EngineTypeName;
string engineID = engine.EngineID;
Assembly assembly = engine.GetType().Assembly;
node.SetValue("engineID", engineID, true);
node.SetValue("DeclaringAssemblyVersion", assembly.GetVersion().ToString(), true);
node.SetValue("DeclaringAssemblyChecksum", checksumCache.GetChecksum(assembly), true);
node.SetValue("SolverEnginesVersion", SolverEnginesVersion, true);
node.SetValue("SolverEnginesAssemblyChecksum", SolverEnginesAssemblyChecksum, true);
ConfigNode partNode = database.GetNode(partName);
int nodeIndex = 0;
if (partNode != null)
{
ConfigNode[] moduleNodes = partNode.GetNodes(engineType);
for (int i = 0; i < moduleNodes.Length; i++)
{
ConfigNode mNode = moduleNodes[i];
if (mNode.GetValue("engineID") == engineID)
{
nodeIndex = i;
}
}
}
else
{
partNode = new ConfigNode(partName);
database.AddNode(partNode);
nodeIndex = 0;
}
partNode.SetNode(engineType, node, nodeIndex, true);
}