/// <summary> /// システムデータ含めてデフォルト値で初期化 /// </summary> public void InitDefaultAll(AdvParamSetting src) { this.Clear(); foreach (AdvParamSettingData item in src.List) { AdvParamSettingData data = new AdvParamSettingData(); data.Copy(item); Add(data); } }
/// <summary> /// if文の開始 /// </summary> /// <param name="param">判定に使う数値パラメーター</param> /// <param name="exp">判定式</param> public void BeginIf(AdvParamSetting param, ExpressionParser exp) { AdvIfData new_if = new AdvIfData(); if (null != current) { new_if.Parent = current; } current = new_if; current.BeginIf(param, exp); }
/// <summary> /// else if文の開始 /// </summary> /// <param name="param">判定に使う数値パラメーター</param> /// <param name="exp">判定式</param> public void ElseIf(AdvParamSetting param, ExpressionParser exp) { if (!isIf) { isIf = param.CalcExpressionBoolean(exp); isSkpping = !isIf; } else { isSkpping = true; } }
/// <summary> /// else if文の開始 /// </summary> /// <param name="param">判定に使う数値パラメーター</param> /// <param name="exp">判定式</param> public void ElseIf(AdvParamSetting param, ExpressionParser exp) { if (current == null) { if (!IsLoadInit) { Debug.LogError(LanguageAdvErrorMsg.LocalizeTextFormat(AdvErrorMsg.ElseIf, exp)); } current = new AdvIfData(); } current.ElseIf(param, exp); }
/// <summary> /// else if文の開始 /// </summary> /// <param name="param">判定に使う数値パラメーター</param> /// <param name="exp">判定式</param> public void ElseIf(AdvParamSetting param, ExpressionParser exp) { if (current == null) { // Debug.LogError(LanguageAdvErrorMsg.LocalizeTextFormat(AdvErrorMsg.ElseIf, exp)); current = new AdvIfData(); current.IsSkpping = true; } else { current.ElseIf(param, exp); } }
/// <summary> /// システムデータ以外の値をデフォルト値で初期化 /// </summary> /// <param name="advParamSetting"></param> internal void InitDefaultNormal(AdvParamSetting src) { foreach (AdvParamSettingData item in src.List) { if (item.SaveFileType == AdvParamSettingData.FileType.System) { continue; } AdvParamSettingData dst; if (TryGetValue(item.Key, out dst)) { dst.Copy(item); } else { Debug.LogError("Param: " + item.Key + " is not found in default param"); } } }
bool isIf = false; //if文がtrueになったか /// <summary> /// if文の開始 /// </summary> /// <param name="param">判定に使う数値パラメーター</param> /// <param name="exp">判定式</param> public void BeginIf(AdvParamSetting param, ExpressionParser exp) { isIf = param.CalcExpressionBoolean(exp); isSkpping = !isIf; }
bool IsEnable(AdvParamSetting param) { return(exp == null || param.CalcExpressionBoolean(exp)); }