Implement ruleset config browser.
This commit is contained in:
@@ -8,10 +8,11 @@ namespace Cryville.Crtr.Config {
|
||||
internal class RulesetConfigPropertyMasterAdapter : IPropertyMasterAdapter {
|
||||
readonly List<RulesetConfigPropertyAdapter> _props = new List<RulesetConfigPropertyAdapter>();
|
||||
readonly RulesetConfigStore _store;
|
||||
public PdtEvaluator Evaluator { get; private set; }
|
||||
|
||||
public RulesetConfigPropertyMasterAdapter(Dictionary<Identifier, ConfigDefinition> defs, Dictionary<string, object> values) {
|
||||
_store = new RulesetConfigStore(defs, values);
|
||||
PdtEvaluator.Instance.ContextRulesetConfig = _store;
|
||||
Evaluator = new PdtEvaluator() { ContextRulesetConfig = _store };
|
||||
if (defs == null) return;
|
||||
foreach (var def in defs) {
|
||||
_props.Add(new RulesetConfigPropertyAdapter(def.Key, def.Value, this));
|
||||
@@ -64,7 +65,7 @@ namespace Cryville.Crtr.Config {
|
||||
public object[] Range {
|
||||
get {
|
||||
if (_def.range != null)
|
||||
PdtEvaluator.Instance.Evaluate(_rangeOp, _def.range);
|
||||
_master.Evaluator.Evaluate(_rangeOp, _def.range);
|
||||
return m_range;
|
||||
}
|
||||
}
|
||||
@@ -89,9 +90,9 @@ namespace Cryville.Crtr.Config {
|
||||
public object MapValue(object value) {
|
||||
_numst.Value = (float)(double)value;
|
||||
if (_def.value == null) return _numst.Value;
|
||||
PdtEvaluator.Instance.ContextSelfValue = _numst.Source;
|
||||
PdtEvaluator.Instance.Evaluate(_numst.Target, _def.value);
|
||||
PdtEvaluator.Instance.ContextSelfValue = null;
|
||||
_master.Evaluator.ContextSelfValue = _numst.Source;
|
||||
_master.Evaluator.Evaluate(_numst.Target, _def.value);
|
||||
_master.Evaluator.ContextSelfValue = null;
|
||||
return _numst.Value;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user