Prune code.
This commit is contained in:
@@ -1,14 +1,11 @@
|
||||
using Cryville.Common;
|
||||
using Cryville.Common.Pdt;
|
||||
using Cryville.Crtr.Components;
|
||||
using Microsoft.Windows.PropSys;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using UnityEngine.Animations;
|
||||
|
||||
namespace Cryville.Crtr {
|
||||
public class Ruleset {
|
||||
@@ -21,9 +18,6 @@ namespace Cryville.Crtr {
|
||||
[JsonRequired]
|
||||
public string pdt;
|
||||
|
||||
/*[JsonIgnore][Obsolete]
|
||||
public CompiledRuleset c;*/
|
||||
|
||||
[JsonIgnore]
|
||||
public PdtRuleset Root { get; private set; }
|
||||
|
||||
@@ -31,119 +25,10 @@ namespace Cryville.Crtr {
|
||||
using (StreamReader pdtreader = new StreamReader(dir.FullName + "/" + pdt + ".pdt", Encoding.UTF8)) {
|
||||
var src = pdtreader.ReadToEnd();
|
||||
Root = new RulesetInterpreter(src, null).Interpret();
|
||||
/*c = PdtReader.Read<CompiledRuleset>(src);
|
||||
c.PreEval(new Evaluator());*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#region Obsolete
|
||||
#if false
|
||||
[Binder(typeof(RulesetBinder))][Obsolete]
|
||||
public class CompiledRuleset {
|
||||
public Dictionary<string, PrimaryJudge> primary_judges;
|
||||
public Dictionary<string, SecondaryJudge> secondary_judges;
|
||||
public Dictionary<string, TertiaryJudge> tertiary_judges;
|
||||
public Dictionary<string, Score> scores;
|
||||
|
||||
public void PreEval(Evaluator etor) {
|
||||
foreach (var j in primary_judges.Values) {
|
||||
foreach (var i in j.pass)
|
||||
j.PassCh.Add(i, secondary_judges[i]);
|
||||
if (j.time != null) j.time.PreEval(etor);
|
||||
}
|
||||
foreach (var j in secondary_judges.Values) {
|
||||
if (j.call != null) foreach (var i in j.call)
|
||||
j.CallCh.Add(i, secondary_judges[i]);
|
||||
if (j.pass != null) foreach (var i in j.pass)
|
||||
j.PassCh.Add(i, tertiary_judges[i]);
|
||||
if (j.time != null) j.time.PreEval(etor);
|
||||
etor.Context = new EvaluatorContext() { Reservations = new List<string>() { "npos" } };
|
||||
if (j.area != null) j.area.PreEval(etor);
|
||||
etor.Context = default(EvaluatorContext);
|
||||
}
|
||||
var scoreNames = scores.Keys.ToList();
|
||||
foreach (var j in tertiary_judges.Values) {
|
||||
if (j.time != null) j.time.PreEval(etor);
|
||||
etor.Context = new EvaluatorContext() { Reservations = new List<string>() { "npos" } };
|
||||
if (j.area != null) j.area.PreEval(etor);
|
||||
etor.Context = new EvaluatorContext() { Reservations = scoreNames };
|
||||
foreach (var s in j.scores.Values) {
|
||||
s.PreEval(etor);
|
||||
}
|
||||
etor.Context = default(EvaluatorContext);
|
||||
}
|
||||
}
|
||||
|
||||
/*public void PatchChart(EventBatcher b) {
|
||||
var etor = new EvalImpl();
|
||||
List<StampedEvent> app = new List<StampedEvent>();
|
||||
foreach (var ev in b.stampedEvents) {
|
||||
if (ev.Event is Chart.Note) {
|
||||
var tev = (Chart.Note)ev.Event;
|
||||
if (tev.judge != null)
|
||||
PatchJudge(tev, primary_judges[tev.judge], ev.Time, etor, app);
|
||||
if (tev.endjudge != null)
|
||||
PatchJudge(tev, primary_judges[tev.endjudge], ev.Time + ev.Duration, etor, app);
|
||||
}
|
||||
}
|
||||
b.stampedEvents.AddRange(app);
|
||||
}*/
|
||||
public static void PatchJudge(Chart.Note tev, PrimaryJudge pj, float t, IEvaluator etor, List<StampedEvent.Judge> l, bool endjudge = false) {
|
||||
float? min = null; float? max = null;
|
||||
if (pj.time != null) {
|
||||
var r = pj.time.Eval<List<float>>(etor);
|
||||
min = r[0]; max = r[1];
|
||||
}
|
||||
else {
|
||||
foreach (var sj in pj.PassCh.Values) {
|
||||
if (sj.time == null) continue;
|
||||
var r = sj.time.Eval<List<float>>(etor);
|
||||
if (r[0] > min || min == null) min = r[0];
|
||||
if (r[1] < max || max == null) max = r[1];
|
||||
}
|
||||
}
|
||||
var sev = new StampedEvent.Judge() {
|
||||
Time = t + (min ?? 0),
|
||||
NoteTime = t,
|
||||
Container = tev,
|
||||
TargetJudge = pj,
|
||||
IsEndJudge = endjudge,
|
||||
};
|
||||
var scev = new StampedEvent.Judge() {
|
||||
Time = t,
|
||||
NoteTime = t,
|
||||
Container = tev,
|
||||
StartEvent = sev,
|
||||
IsEndJudge = endjudge,
|
||||
};
|
||||
var seev = new StampedEvent.Judge() {
|
||||
Time = t + (max ?? 0),
|
||||
NoteTime = t,
|
||||
Container = tev,
|
||||
TargetJudge = pj,
|
||||
StartEvent = sev,
|
||||
IsEndJudge = endjudge,
|
||||
};
|
||||
l.Add(sev); l.Add(scev); l.Add(seev);
|
||||
}
|
||||
}
|
||||
[Obsolete]
|
||||
public class RulesetBinder : EmptyBinder {
|
||||
public override object ChangeType(object value, Type type, System.Globalization.CultureInfo culture) {
|
||||
try {
|
||||
var etor = new Evaluator();
|
||||
var r = ((Expression)value).Eval(etor);
|
||||
return etor.Cast(type, r);
|
||||
}
|
||||
catch (Exception) {
|
||||
return base.ChangeType(value, type, culture);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endregion
|
||||
|
||||
[Binder(typeof(PdtRulesetBinder))]
|
||||
public class PdtRuleset {
|
||||
public Dictionary<string, InputDefinition> inputs;
|
||||
|
||||
Reference in New Issue
Block a user