Move some classes to Cryville.Common.

This commit is contained in:
2023-05-03 22:51:30 +08:00
parent 8f211568be
commit b143fb49ce
90 changed files with 788 additions and 2457 deletions

View File

@@ -12,30 +12,30 @@ namespace Cryville.Crtr {
public static SkinPropertyKey Construct(HashSet<string> a, IReadOnlyList<string> k, bool compKeyFlag) {
if (a.Remove("has")) {
if (k.Count != 1) throw new FormatException("Invalid anchor name");
return new CreateAnchor(a, IdentifierManager.SharedInstance.Request(k[0]));
return new CreateAnchor(a, IdentifierManager.Shared.Request(k[0]));
}
else if (a.Remove("at")) {
if (k.Count != 1) throw new FormatException("Invalid anchor name");
return new SetAnchor(a, IdentifierManager.SharedInstance.Request(k[0]));
return new SetAnchor(a, IdentifierManager.Shared.Request(k[0]));
}
else if (a.Remove("emit")) {
if (k.Count != 1) throw new FormatException("Invalid effect name");
return new EmitEffect(a, IdentifierManager.SharedInstance.Request(k[0]));
return new EmitEffect(a, IdentifierManager.Shared.Request(k[0]));
}
else if (a.Remove("emit_self")) {
if (k.Count != 1) throw new FormatException("Invalid effect name");
return new EmitEffect(a, IdentifierManager.SharedInstance.Request(k[0]), true);
return new EmitEffect(a, IdentifierManager.Shared.Request(k[0]), true);
}
else if (a.Remove("var")) {
if (k.Count != 1) throw new FormatException("Invalid variable name");
return new SetVariable(a, IdentifierManager.SharedInstance.Request(k[0]));
return new SetVariable(a, IdentifierManager.Shared.Request(k[0]));
}
switch (k.Count) {
case 1:
if (compKeyFlag) return new CreateComponent(a, GetComponentByName(k[0]));
else return new SetProperty(a, typeof(TransformInterface), IdentifierManager.SharedInstance.Request(k[0]));
else return new SetProperty(a, typeof(TransformInterface), IdentifierManager.Shared.Request(k[0]));
case 2:
return new SetProperty(a, GetComponentByName(k[0]), IdentifierManager.SharedInstance.Request(k[1]));
return new SetProperty(a, GetComponentByName(k[0]), IdentifierManager.Shared.Request(k[1]));
default:
throw new FormatException("Unknown error");
}
@@ -77,7 +77,7 @@ namespace Cryville.Crtr {
Name = name;
}
public override string ToString() {
return string.Format("{0}.{1}", Component.Name, IdentifierManager.SharedInstance.Retrieve(Name));
return string.Format("{0}.{1}", Component.Name, IdentifierManager.Shared.Retrieve(Name));
}
public override bool IsValueRequired { get { return true; } }
public override void ExecuteStatic(ISkinnableGroup group, RuntimeSkinContext ctx, PdtExpression exp, IntKeyedDictionary<SkinVariable> vars) {
@@ -100,13 +100,13 @@ namespace Cryville.Crtr {
var comp = (SkinComponent)obj.GetComponent(ctype);
if (comp == null) throw new InvalidOperationException(string.Format(
"Trying to set property \"{0}\" but the component is not found",
IdentifierManager.SharedInstance.Retrieve(Name)
IdentifierManager.Shared.Retrieve(Name)
));
SkinProperty result;
if (!comp.Properties.TryGetValue(Name, out result))
throw new InvalidOperationException(string.Format(
"Property \"{0}\" not found on component",
IdentifierManager.SharedInstance.Retrieve(Name)
IdentifierManager.Shared.Retrieve(Name)
));
return result;
}
@@ -117,7 +117,7 @@ namespace Cryville.Crtr {
Name = name;
}
public override string ToString() {
return string.Format("@has {0}", IdentifierManager.SharedInstance.Retrieve(Name));
return string.Format("@has {0}", IdentifierManager.Shared.Retrieve(Name));
}
public override bool IsValueRequired { get { return false; } }
public override void ExecuteStatic(ISkinnableGroup group, RuntimeSkinContext ctx, PdtExpression exp, IntKeyedDictionary<SkinVariable> vars) {
@@ -134,7 +134,7 @@ namespace Cryville.Crtr {
_timeOp = new PropOp.Float(v => _time = v);
}
public override string ToString() {
return string.Format("@at {0}", IdentifierManager.SharedInstance.Retrieve(Name));
return string.Format("@at {0}", IdentifierManager.Shared.Retrieve(Name));
}
public override bool IsValueRequired { get { return true; } }
public override void ExecuteStatic(ISkinnableGroup group, RuntimeSkinContext ctx, PdtExpression exp, IntKeyedDictionary<SkinVariable> vars) {
@@ -161,7 +161,7 @@ namespace Cryville.Crtr {
_op = new PropOp.Float(v => _index = v);
}
public override string ToString() {
return string.Format(IsSelf ? "@emit_self {0}" : "@emit {0}", IdentifierManager.SharedInstance.Retrieve(Name));
return string.Format(IsSelf ? "@emit_self {0}" : "@emit {0}", IdentifierManager.Shared.Retrieve(Name));
}
public override bool IsValueRequired { get { return true; } }
public override void ExecuteStatic(ISkinnableGroup group, RuntimeSkinContext ctx, PdtExpression exp, IntKeyedDictionary<SkinVariable> vars) {
@@ -182,7 +182,7 @@ namespace Cryville.Crtr {
Name = name;
}
public override string ToString() {
return string.Format("@var {0}", IdentifierManager.SharedInstance.Retrieve(Name));
return string.Format("@var {0}", IdentifierManager.Shared.Retrieve(Name));
}
public override bool IsValueRequired { get { return true; } }
public override void ExecuteStatic(ISkinnableGroup group, RuntimeSkinContext ctx, PdtExpression exp, IntKeyedDictionary<SkinVariable> vars) {
@@ -195,7 +195,7 @@ namespace Cryville.Crtr {
public override void ExecuteDynamic(ISkinnableGroup group, RuntimeSkinContext ctx, PdtExpression exp, IntKeyedDictionary<SkinVariable> vars, int dl) {
SkinVariable v;
if (!vars.TryGetValue(Name, out v))
throw new InvalidOperationException(string.Format("Variable \"{0}\" not defined", IdentifierManager.SharedInstance.Retrieve(Name)));
throw new InvalidOperationException(string.Format("Variable \"{0}\" not defined", IdentifierManager.Shared.Retrieve(Name)));
if (!ChartPlayer.etor.Evaluate(v.Op, exp))
throw new EvaluationFailureException();
}