diff --git a/Templates/C#-Empty/Winterleaf.Engine.Omni/Classes/ModelBase.cs b/Templates/C#-Empty/Winterleaf.Engine.Omni/Classes/ModelBase.cs index f52ea1bf..458886af 100644 --- a/Templates/C#-Empty/Winterleaf.Engine.Omni/Classes/ModelBase.cs +++ b/Templates/C#-Empty/Winterleaf.Engine.Omni/Classes/ModelBase.cs @@ -319,7 +319,7 @@ public string GetID() return _ID; } - internal virtual void SetUpObject(uint simobjectid) + public virtual void SetUpObject(uint simobjectid) { _ID = simobjectid.AsString(); _iID = simobjectid; diff --git a/Templates/C#-Empty/Winterleaf.Engine.Omni/Classes/View.Creators/AbstractDynamicInstance.cs b/Templates/C#-Empty/Winterleaf.Engine.Omni/Classes/View.Creators/AbstractDynamicInstance.cs new file mode 100644 index 00000000..441ffb09 --- /dev/null +++ b/Templates/C#-Empty/Winterleaf.Engine.Omni/Classes/View.Creators/AbstractDynamicInstance.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.Dynamic; +using System.Linq; +using System.Text; +using WinterLeaf.Engine.Classes.Extensions; + +namespace WinterLeaf.Engine.Classes.View.Creators +{ + /// + /// + /// + public abstract class AbstractDynamicInstance + { + private readonly IDictionary mExpandoObject = + new ExpandoObject(); + protected IDictionary mFieldsDictionary = + new Dictionary(); + + /// + /// + /// + public dynamic Dynamics + { + get { return mExpandoObject; } + } + + protected IDictionary Fields + { + get { return mFieldsDictionary; } + } + + /// + /// This will return the TorqueScript code that will be executed when Create is called. + /// + /// + public override string ToString() + { + StringBuilder result = new StringBuilder(); + result.Append(")\r\n{\r\n"); + foreach (KeyValuePair ele in mFieldsDictionary) + { + result.Append(ele.Key); + result.Append(" = "); + result.Append(ele.Value.ToString().Trim() != string.Empty ? ele.Value : "\"\""); + result.Append(";\r\n"); + } + foreach (KeyValuePair ele in mExpandoObject) + { + result.Append(ele.Key); + result.Append(" = "); + result.Append(ele.Value.ToString().Trim() != string.Empty ? ele.Value : "\"\""); + result.Append(";\r\n"); + } + result.Append("};\r\n"); + return (result.ToString()); + } + } +} diff --git a/Templates/C#-Empty/Winterleaf.Engine.Omni/Classes/View.Creators/FieldWrapper.cs b/Templates/C#-Empty/Winterleaf.Engine.Omni/Classes/View.Creators/FieldWrapper.cs new file mode 100644 index 00000000..b8456c87 --- /dev/null +++ b/Templates/C#-Empty/Winterleaf.Engine.Omni/Classes/View.Creators/FieldWrapper.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace WinterLeaf.Engine.Classes.View.Creators +{ + public class FieldWrapper : IEnumerable + { + private IDictionary mParentDictionary; + private string mName; + + public void Set(ref IDictionary pDictionary, string pName) + { + mParentDictionary = pDictionary; + mName = pName; + } + + public void Add(int arg1, T arg2) + { + mParentDictionary[mName + "[" + arg1 + "]"] = arg2.ToString(); + } + + public IEnumerator GetEnumerator() + { + throw new NotImplementedException(); + } + } +} diff --git a/Templates/C#-Empty/Winterleaf.Engine.Omni/Classes/View.Creators/ObjectInstance.cs b/Templates/C#-Empty/Winterleaf.Engine.Omni/Classes/View.Creators/ObjectInstance.cs new file mode 100644 index 00000000..adddd8e0 --- /dev/null +++ b/Templates/C#-Empty/Winterleaf.Engine.Omni/Classes/View.Creators/ObjectInstance.cs @@ -0,0 +1,77 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WinterLeaf.Engine.Classes.View.Creators +{ + public enum ObjectType + { + Instance, + Datablock, + Singleton + } + /// + /// + /// + public class ObjectInstance : AbstractDynamicInstance + { + private string mInstanceName; + private string mClassName; + private ObjectType mObjectType; + + public ObjectInstance(string pInstanceName, string pClassName, ObjectType pObjectType) + { + mClassName = pClassName; + mInstanceName = pInstanceName; + mObjectType = pObjectType; + } + + /// + /// This will return the TorqueScript code that will be executed when Create is called. + /// + /// + public override string ToString() + { + StringBuilder result = new StringBuilder(); + switch (mObjectType) + { + case ObjectType.Instance: + result.Append(" new "); + break; + case ObjectType.Datablock: + result.Append(" datablock "); + break; + case ObjectType.Singleton: + result.Append(" singleton "); + break; + } + result.Append(mClassName); + result.Append("("); + result.Append(mInstanceName); + result.Append(base.ToString()); + return (result.ToString()); + } + + /// + /// + /// + /// + /// + public static implicit operator ModelBase(ObjectInstance inst) + { + UInt32 r; + string id = Omni.self.Evaluate("return " + inst.ToString() + ";", true); + return UInt32.TryParse(id, out r) ? r : 0; + } + + /// + /// + /// + /// + /// + public static implicit operator string(ObjectInstance inst) + { + return Omni.self.Evaluate("return " + inst.ToString() + ";", true); + } + } +} diff --git a/Templates/C#-Full-Ded/Winterleaf.Engine.Omni/Classes/ModelBase.cs b/Templates/C#-Full-Ded/Winterleaf.Engine.Omni/Classes/ModelBase.cs index f52ea1bf..458886af 100644 --- a/Templates/C#-Full-Ded/Winterleaf.Engine.Omni/Classes/ModelBase.cs +++ b/Templates/C#-Full-Ded/Winterleaf.Engine.Omni/Classes/ModelBase.cs @@ -319,7 +319,7 @@ public string GetID() return _ID; } - internal virtual void SetUpObject(uint simobjectid) + public virtual void SetUpObject(uint simobjectid) { _ID = simobjectid.AsString(); _iID = simobjectid; diff --git a/Templates/C#-Full-Ded/Winterleaf.Engine.Omni/Classes/View.Creators/AbstractDynamicInstance.cs b/Templates/C#-Full-Ded/Winterleaf.Engine.Omni/Classes/View.Creators/AbstractDynamicInstance.cs new file mode 100644 index 00000000..441ffb09 --- /dev/null +++ b/Templates/C#-Full-Ded/Winterleaf.Engine.Omni/Classes/View.Creators/AbstractDynamicInstance.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.Dynamic; +using System.Linq; +using System.Text; +using WinterLeaf.Engine.Classes.Extensions; + +namespace WinterLeaf.Engine.Classes.View.Creators +{ + /// + /// + /// + public abstract class AbstractDynamicInstance + { + private readonly IDictionary mExpandoObject = + new ExpandoObject(); + protected IDictionary mFieldsDictionary = + new Dictionary(); + + /// + /// + /// + public dynamic Dynamics + { + get { return mExpandoObject; } + } + + protected IDictionary Fields + { + get { return mFieldsDictionary; } + } + + /// + /// This will return the TorqueScript code that will be executed when Create is called. + /// + /// + public override string ToString() + { + StringBuilder result = new StringBuilder(); + result.Append(")\r\n{\r\n"); + foreach (KeyValuePair ele in mFieldsDictionary) + { + result.Append(ele.Key); + result.Append(" = "); + result.Append(ele.Value.ToString().Trim() != string.Empty ? ele.Value : "\"\""); + result.Append(";\r\n"); + } + foreach (KeyValuePair ele in mExpandoObject) + { + result.Append(ele.Key); + result.Append(" = "); + result.Append(ele.Value.ToString().Trim() != string.Empty ? ele.Value : "\"\""); + result.Append(";\r\n"); + } + result.Append("};\r\n"); + return (result.ToString()); + } + } +} diff --git a/Templates/C#-Full-Ded/Winterleaf.Engine.Omni/Classes/View.Creators/FieldWrapper.cs b/Templates/C#-Full-Ded/Winterleaf.Engine.Omni/Classes/View.Creators/FieldWrapper.cs new file mode 100644 index 00000000..b8456c87 --- /dev/null +++ b/Templates/C#-Full-Ded/Winterleaf.Engine.Omni/Classes/View.Creators/FieldWrapper.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace WinterLeaf.Engine.Classes.View.Creators +{ + public class FieldWrapper : IEnumerable + { + private IDictionary mParentDictionary; + private string mName; + + public void Set(ref IDictionary pDictionary, string pName) + { + mParentDictionary = pDictionary; + mName = pName; + } + + public void Add(int arg1, T arg2) + { + mParentDictionary[mName + "[" + arg1 + "]"] = arg2.ToString(); + } + + public IEnumerator GetEnumerator() + { + throw new NotImplementedException(); + } + } +} diff --git a/Templates/C#-Full-Ded/Winterleaf.Engine.Omni/Classes/View.Creators/ObjectInstance.cs b/Templates/C#-Full-Ded/Winterleaf.Engine.Omni/Classes/View.Creators/ObjectInstance.cs new file mode 100644 index 00000000..adddd8e0 --- /dev/null +++ b/Templates/C#-Full-Ded/Winterleaf.Engine.Omni/Classes/View.Creators/ObjectInstance.cs @@ -0,0 +1,77 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WinterLeaf.Engine.Classes.View.Creators +{ + public enum ObjectType + { + Instance, + Datablock, + Singleton + } + /// + /// + /// + public class ObjectInstance : AbstractDynamicInstance + { + private string mInstanceName; + private string mClassName; + private ObjectType mObjectType; + + public ObjectInstance(string pInstanceName, string pClassName, ObjectType pObjectType) + { + mClassName = pClassName; + mInstanceName = pInstanceName; + mObjectType = pObjectType; + } + + /// + /// This will return the TorqueScript code that will be executed when Create is called. + /// + /// + public override string ToString() + { + StringBuilder result = new StringBuilder(); + switch (mObjectType) + { + case ObjectType.Instance: + result.Append(" new "); + break; + case ObjectType.Datablock: + result.Append(" datablock "); + break; + case ObjectType.Singleton: + result.Append(" singleton "); + break; + } + result.Append(mClassName); + result.Append("("); + result.Append(mInstanceName); + result.Append(base.ToString()); + return (result.ToString()); + } + + /// + /// + /// + /// + /// + public static implicit operator ModelBase(ObjectInstance inst) + { + UInt32 r; + string id = Omni.self.Evaluate("return " + inst.ToString() + ";", true); + return UInt32.TryParse(id, out r) ? r : 0; + } + + /// + /// + /// + /// + /// + public static implicit operator string(ObjectInstance inst) + { + return Omni.self.Evaluate("return " + inst.ToString() + ";", true); + } + } +} diff --git a/Templates/C#-Full/Winterleaf.Engine.Omni/Classes/ModelBase.cs b/Templates/C#-Full/Winterleaf.Engine.Omni/Classes/ModelBase.cs index f52ea1bf..458886af 100644 --- a/Templates/C#-Full/Winterleaf.Engine.Omni/Classes/ModelBase.cs +++ b/Templates/C#-Full/Winterleaf.Engine.Omni/Classes/ModelBase.cs @@ -319,7 +319,7 @@ public string GetID() return _ID; } - internal virtual void SetUpObject(uint simobjectid) + public virtual void SetUpObject(uint simobjectid) { _ID = simobjectid.AsString(); _iID = simobjectid; diff --git a/Templates/C#-Full/Winterleaf.Engine.Omni/Classes/View.Creators/AbstractDynamicInstance.cs b/Templates/C#-Full/Winterleaf.Engine.Omni/Classes/View.Creators/AbstractDynamicInstance.cs new file mode 100644 index 00000000..441ffb09 --- /dev/null +++ b/Templates/C#-Full/Winterleaf.Engine.Omni/Classes/View.Creators/AbstractDynamicInstance.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.Dynamic; +using System.Linq; +using System.Text; +using WinterLeaf.Engine.Classes.Extensions; + +namespace WinterLeaf.Engine.Classes.View.Creators +{ + /// + /// + /// + public abstract class AbstractDynamicInstance + { + private readonly IDictionary mExpandoObject = + new ExpandoObject(); + protected IDictionary mFieldsDictionary = + new Dictionary(); + + /// + /// + /// + public dynamic Dynamics + { + get { return mExpandoObject; } + } + + protected IDictionary Fields + { + get { return mFieldsDictionary; } + } + + /// + /// This will return the TorqueScript code that will be executed when Create is called. + /// + /// + public override string ToString() + { + StringBuilder result = new StringBuilder(); + result.Append(")\r\n{\r\n"); + foreach (KeyValuePair ele in mFieldsDictionary) + { + result.Append(ele.Key); + result.Append(" = "); + result.Append(ele.Value.ToString().Trim() != string.Empty ? ele.Value : "\"\""); + result.Append(";\r\n"); + } + foreach (KeyValuePair ele in mExpandoObject) + { + result.Append(ele.Key); + result.Append(" = "); + result.Append(ele.Value.ToString().Trim() != string.Empty ? ele.Value : "\"\""); + result.Append(";\r\n"); + } + result.Append("};\r\n"); + return (result.ToString()); + } + } +} diff --git a/Templates/C#-Full/Winterleaf.Engine.Omni/Classes/View.Creators/FieldWrapper.cs b/Templates/C#-Full/Winterleaf.Engine.Omni/Classes/View.Creators/FieldWrapper.cs new file mode 100644 index 00000000..b8456c87 --- /dev/null +++ b/Templates/C#-Full/Winterleaf.Engine.Omni/Classes/View.Creators/FieldWrapper.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace WinterLeaf.Engine.Classes.View.Creators +{ + public class FieldWrapper : IEnumerable + { + private IDictionary mParentDictionary; + private string mName; + + public void Set(ref IDictionary pDictionary, string pName) + { + mParentDictionary = pDictionary; + mName = pName; + } + + public void Add(int arg1, T arg2) + { + mParentDictionary[mName + "[" + arg1 + "]"] = arg2.ToString(); + } + + public IEnumerator GetEnumerator() + { + throw new NotImplementedException(); + } + } +} diff --git a/Templates/C#-Full/Winterleaf.Engine.Omni/Classes/View.Creators/ObjectInstance.cs b/Templates/C#-Full/Winterleaf.Engine.Omni/Classes/View.Creators/ObjectInstance.cs new file mode 100644 index 00000000..adddd8e0 --- /dev/null +++ b/Templates/C#-Full/Winterleaf.Engine.Omni/Classes/View.Creators/ObjectInstance.cs @@ -0,0 +1,77 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WinterLeaf.Engine.Classes.View.Creators +{ + public enum ObjectType + { + Instance, + Datablock, + Singleton + } + /// + /// + /// + public class ObjectInstance : AbstractDynamicInstance + { + private string mInstanceName; + private string mClassName; + private ObjectType mObjectType; + + public ObjectInstance(string pInstanceName, string pClassName, ObjectType pObjectType) + { + mClassName = pClassName; + mInstanceName = pInstanceName; + mObjectType = pObjectType; + } + + /// + /// This will return the TorqueScript code that will be executed when Create is called. + /// + /// + public override string ToString() + { + StringBuilder result = new StringBuilder(); + switch (mObjectType) + { + case ObjectType.Instance: + result.Append(" new "); + break; + case ObjectType.Datablock: + result.Append(" datablock "); + break; + case ObjectType.Singleton: + result.Append(" singleton "); + break; + } + result.Append(mClassName); + result.Append("("); + result.Append(mInstanceName); + result.Append(base.ToString()); + return (result.ToString()); + } + + /// + /// + /// + /// + /// + public static implicit operator ModelBase(ObjectInstance inst) + { + UInt32 r; + string id = Omni.self.Evaluate("return " + inst.ToString() + ";", true); + return UInt32.TryParse(id, out r) ? r : 0; + } + + /// + /// + /// + /// + /// + public static implicit operator string(ObjectInstance inst) + { + return Omni.self.Evaluate("return " + inst.ToString() + ";", true); + } + } +}