From e7ce0985fba47c1c16cb3117b0582c8f2ca561bd Mon Sep 17 00:00:00 2001 From: PopSlime Date: Wed, 15 Feb 2023 18:13:04 +0800 Subject: [PATCH] Add effect emitting stub. --- Assets/Cryville/Crtr/SkinInterpreter.cs | 6 ++++++ Assets/Cryville/Crtr/SkinPropertyKey.cs | 14 ++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/Assets/Cryville/Crtr/SkinInterpreter.cs b/Assets/Cryville/Crtr/SkinInterpreter.cs index 0ef4848..bf3405c 100644 --- a/Assets/Cryville/Crtr/SkinInterpreter.cs +++ b/Assets/Cryville/Crtr/SkinInterpreter.cs @@ -70,6 +70,12 @@ namespace Cryville.Crtr { Name = IdentifierManager.SharedInstance.Request(k[0]) }; } + else if (a.Contains("emit")) { + if (k.Count != 1) throw new FormatException("Invalid effect name"); + return new SkinPropertyKey.EmitEffect { + Name = IdentifierManager.SharedInstance.Request(k[0]) + }; + } switch (k.Count) { case 1: if (compKeyFlag) return new SkinPropertyKey.CreateComponent { diff --git a/Assets/Cryville/Crtr/SkinPropertyKey.cs b/Assets/Cryville/Crtr/SkinPropertyKey.cs index 016ff5b..e81e4a8 100644 --- a/Assets/Cryville/Crtr/SkinPropertyKey.cs +++ b/Assets/Cryville/Crtr/SkinPropertyKey.cs @@ -97,5 +97,19 @@ namespace Cryville.Crtr { state.Handler.PushAnchorEvent(_time, Name); } } + public class EmitEffect : SkinPropertyKey { + public int Name { get; set; } + public EmitEffect() { } + public override string ToString() { + return string.Format("@emit {0}", IdentifierManager.SharedInstance.Retrieve(Name)); + } + public override bool IsValueRequired { get { return true; } } + public override void ExecuteStatic(ContainerState state, RuntimeSkinContext ctx, PdtExpression exp) { + // TODO + } + public override void ExecuteDynamic(ContainerState state, RuntimeSkinContext ctx, PdtExpression exp) { + // TODO + } + } } }