Decouple the usage of PDT evaluator of chart player.

This commit is contained in:
2023-07-28 14:13:49 +08:00
parent 8b64165fb7
commit 3db8f61e3b
15 changed files with 96 additions and 77 deletions

View File

@@ -11,42 +11,42 @@ namespace Cryville.Crtr {
var exp = (PdtExpression)value;
if (type.Equals(typeof(bool))) {
bool result = false;
ChartPlayer.etor.Evaluate(new PropOp.Boolean(r => result = r), exp);
PdtEvaluator.Instance.Evaluate(new PropOp.Boolean(r => result = r), exp);
return result;
}
else if (type.Equals(typeof(int))) {
int result = 0;
ChartPlayer.etor.Evaluate(new PropOp.Integer(r => result = r), exp);
PdtEvaluator.Instance.Evaluate(new PropOp.Integer(r => result = r), exp);
return result;
}
else if (type.Equals(typeof(float))) {
float result = 0;
ChartPlayer.etor.Evaluate(new PropOp.Float(r => result = r), exp);
PdtEvaluator.Instance.Evaluate(new PropOp.Float(r => result = r), exp);
return result;
}
else if (type.Equals(typeof(string))) {
string result = default(string);
ChartPlayer.etor.Evaluate(new PropOp.String(r => result = r), exp);
PdtEvaluator.Instance.Evaluate(new PropOp.String(r => result = r), exp);
return result;
}
else if (type.IsEnum) {
object result = null;
ChartPlayer.etor.Evaluate(new PropOp.Enum(type, r => result = r), exp);
PdtEvaluator.Instance.Evaluate(new PropOp.Enum(type, r => result = r), exp);
return result;
}
else if (type.Equals(typeof(Clip))) {
Clip result = default(Clip);
ChartPlayer.etor.Evaluate(new PropOp.Clip(r => result = r), exp);
PdtEvaluator.Instance.Evaluate(new PropOp.Clip(r => result = r), exp);
return result;
}
else if (type.Equals(typeof(Identifier))) {
Identifier result = default(Identifier);
ChartPlayer.etor.Evaluate(new pop_identstr(r => result = r), exp);
PdtEvaluator.Instance.Evaluate(new pop_identstr(r => result = r), exp);
return result;
}
else if (type.Equals(typeof(Identifier[]))) {
Identifier[] result = null;
ChartPlayer.etor.Evaluate(new pop_identstrarr(r => result = r), exp);
PdtEvaluator.Instance.Evaluate(new pop_identstrarr(r => result = r), exp);
return result;
}
}