BadScript 2
Loading...
Searching...
No Matches
BadMemberChangeEvent.cs
Go to the documentation of this file.
2
3namespace BadScript2.Runtime;
4
5public abstract class BadMemberChangeEvent : BadObject
6{
7 private readonly BadObject m_Instance;
8 private readonly BadMemberInfo m_Member;
9 private readonly BadObject m_NewValue;
10 private readonly BadObject m_OldValue;
11
12 protected BadMemberChangeEvent(BadObject mInstance, BadMemberInfo mMember, BadObject mOldValue, BadObject mNewValue)
13 {
14 m_Instance = mInstance;
15 m_Member = mMember;
16 m_OldValue = mOldValue;
17 m_NewValue = mNewValue;
18 }
19
20 public override bool HasProperty(string propName, BadScope? caller = null)
21 {
22 switch (propName)
23 {
24 case "Instance":
25 case "Member":
26 case "OldValue":
27 case "NewValue":
28 return true;
29 default:
30 return base.HasProperty(propName, caller);
31 }
32 }
33
34 public override BadObjectReference GetProperty(string propName, BadScope? caller = null)
35 {
36 switch (propName)
37 {
38 case "Instance":
39 return BadObjectReference.Make("MemberChangeEvent.Instance", (p) => m_Instance);
40 case "Member":
41 return BadObjectReference.Make("MemberChangeEvent.Member", (p) => m_Member);
42 case "OldValue":
43 return BadObjectReference.Make("MemberChangeEvent.OldValue", (p) => m_OldValue);
44 case "NewValue":
45 return BadObjectReference.Make("MemberChangeEvent.NewValue", (p) => m_NewValue);
46 default:
47 return base.GetProperty(propName, caller);
48 }
49 }
50
51 public override string ToSafeString(List<BadObject> done)
52 {
53 return $"{GetType().Name}: " + m_Member.ToSafeString(done);
54 }
55}
override string ToSafeString(List< BadObject > done)
override BadObjectReference GetProperty(string propName, BadScope? caller=null)
Returns a Reference to the Property with the given Name.
override bool HasProperty(string propName, BadScope? caller=null)
Returns true if the object contains a given property or there exists an extension for the current Ins...
BadMemberChangeEvent(BadObject mInstance, BadMemberInfo mMember, BadObject mOldValue, BadObject mNewValue)
override string ToSafeString(List< BadObject > done)
Implements the Scope for the Script Engine.
Definition BadScope.cs:16
The Base Class for all BadScript Objects.
Definition BadObject.cs:14
virtual BadObjectReference GetProperty(string propName, BadScope? caller=null)
Returns a Reference to the Property with the given Name.
Definition BadObject.cs:141
Implements the base functionality for a BadScript Reference.
static BadObjectReference Make(string refText, Func< BadSourcePosition?, BadObject > getter, Action< BadObject, BadSourcePosition?, BadPropertyInfo?>? setter=null, Action< BadSourcePosition?>? delete=null)
Creates a new Reference Object.
Contains the Runtime Objects.
Definition BadArray.cs:10
Contains the Runtime Implementation.