Minor changes. Changed Prebuild.xml to avoid first-time-compile error because of dependencies. Made some changes to new LSLString.

afrisby
Tedd Hansen 2008-01-01 14:23:14 +00:00
parent 86a38dfd0f
commit 8d79a5d93c
2 changed files with 332 additions and 308 deletions

View File

@ -36,310 +36,7 @@ namespace OpenSim.Region.ScriptEngine.Common
{
// Types are kept is separate .dll to avoid having to add whatever .dll it is in it to script AppDomain
[Serializable]
public struct key
{
public string value;
#region Constructors
public key(string s)
{
value = s;
}
#endregion
#region Methods
static public bool Parse2Key(string s)
{
Regex isuuid = new Regex(@"^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$", RegexOptions.Compiled);
if (isuuid.IsMatch(s))
{
return true;
}
else
{
return false;
}
}
#endregion
#region Operators
static public implicit operator System.Boolean(key k)
{
if (k.value.Length == 0)
{
return false;
}
if (k.value == "00000000-0000-0000-0000-000000000000")
{
return false;
}
Regex isuuid = new Regex(@"^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$", RegexOptions.Compiled);
if (isuuid.IsMatch(k.value))
{
return true;
}
else
{
return false;
}
}
static public implicit operator key(string s)
{
return new key(s);
}
static public implicit operator System.String(key k)
{
return k.value;
}
public static bool operator ==(key k1, key k2)
{
return k1.value == k2.value;
}
public static bool operator !=(key k1, key k2)
{
return k1.value != k2.value;
}
#endregion
#region Overriders
public override bool Equals(object o)
{
if (o is String)
{
string s = (string)o;
return s == this.value;
}
if (o is key)
{
key k = (key)o;
return this.value == k.value;
}
return false;
}
public override int GetHashCode()
{
return value.GetHashCode();
}
#endregion
}
[Serializable]
public struct LSLString
{
public string value;
#region Constructors
public LSLString(string s)
{
value = s;
}
#endregion
#region Operators
static public implicit operator System.Boolean(LSLString s)
{
if (s.value.Length == 0)
{
return false;
}
else
{
return true;
}
}
static public implicit operator System.String(LSLString s)
{
return s.value;
}
static public implicit operator LSLString(string s)
{
return new LSLString(s);
}
public static bool operator ==(LSLString s1, LSLString s2)
{
return s1.value == s2.value;
}
public static bool operator !=(LSLString s1, LSLString s2)
{
return s1.value != s2.value;
}
#endregion
#region Overriders
public override bool Equals(object o)
{
if (o is String)
{
string s = (string)o;
return s == this.value;
}
if (o is key)
{
key k = (key)o;
return this.value == k.value;
}
if (o is LSLString)
{
LSLString s = (string)o;
return this.value == s.value;
}
return false;
}
public override int GetHashCode()
{
return value.GetHashCode();
}
#endregion
}
[Serializable]
public struct LSLInteger
{
public int value;
#region Constructors
public LSLInteger(int i)
{
value = i;
}
public LSLInteger(double d)
{
value = (int)d;
}
#endregion
static public implicit operator System.Int32(LSLInteger i)
{
return i.value;
}
static public implicit operator System.Boolean(LSLInteger i)
{
if (i.value == 0)
{
return false;
}
else
{
return true;
}
}
static public implicit operator LSLInteger(int i)
{
return new LSLInteger(i);
}
static public implicit operator LSLInteger(double d)
{
return new LSLInteger(d);
}
static public LSLInteger operator &(LSLInteger i1, LSLInteger i2)
{
int ret = i1.value & i2.value;
return ret;
}
//static public implicit operator System.Double(LSLInteger i)
//{
// return (double)i.value;
//}
#region Overriders
public override string ToString()
{
return this.value.ToString();
}
#endregion
}
[Serializable]
public struct LSLFloat
{
public double value;
#region Constructors
public LSLFloat(int i)
{
this.value = (double)i;
}
public LSLFloat(double d)
{
this.value = d;
}
#endregion
#region Operators
static public implicit operator System.Double(LSLFloat f)
{
return f.value;
}
//static public implicit operator System.Int32(LSLFloat f)
//{
// return (int)f.value;
//}
static public implicit operator System.Boolean(LSLFloat f)
{
if (f.value == 0)
{
return false;
}
else
{
return true;
}
}
static public implicit operator LSLFloat(int i)
{
return new LSLFloat(i);
}
static public implicit operator LSLFloat(double d)
{
return new LSLFloat(d);
}
#endregion
#region Overriders
public override string ToString()
{
return this.value.ToString();
}
#endregion
}
[Serializable]
public struct Vector3
{
@ -745,11 +442,23 @@ namespace OpenSim.Region.ScriptEngine.Common
}
public struct String
//
// BELOW IS WORK IN PROGRESS... IT WILL CHANGE, SO DON'T USE YET! :)
//
public struct StringTest
{
// Our own little string
internal string actualString;
public static implicit operator bool(String mString)
public static implicit operator bool(StringTest mString)
{
if (mString.actualString.Length == 0)
return true;
@ -762,6 +471,321 @@ namespace OpenSim.Region.ScriptEngine.Common
}
[Serializable]
public struct key
{
public string value;
#region Constructors
public key(string s)
{
value = s;
}
#endregion
#region Methods
static public bool Parse2Key(string s)
{
Regex isuuid = new Regex(@"^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$", RegexOptions.Compiled);
if (isuuid.IsMatch(s))
{
return true;
}
else
{
return false;
}
}
#endregion
#region Operators
static public implicit operator System.Boolean(key k)
{
if (k.value.Length == 0)
{
return false;
}
if (k.value == "00000000-0000-0000-0000-000000000000")
{
return false;
}
Regex isuuid = new Regex(@"^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$", RegexOptions.Compiled);
if (isuuid.IsMatch(k.value))
{
return true;
}
else
{
return false;
}
}
static public implicit operator key(string s)
{
return new key(s);
}
static public implicit operator System.String(key k)
{
return k.value;
}
public static bool operator ==(key k1, key k2)
{
return k1.value == k2.value;
}
public static bool operator !=(key k1, key k2)
{
return k1.value != k2.value;
}
#endregion
#region Overriders
public override bool Equals(object o)
{
if (o is String)
{
string s = (string)o;
return s == this.value;
}
if (o is key)
{
key k = (key)o;
return this.value == k.value;
}
return false;
}
public override int GetHashCode()
{
return value.GetHashCode();
}
#endregion
}
[Serializable]
public struct LSLString
{
public string m_string;
#region Constructors
public LSLString(string s)
{
m_string = s;
}
#endregion
#region Operators
static public implicit operator System.Boolean(LSLString s)
{
if (s.m_string.Length == 0)
{
return false;
}
else
{
return true;
}
}
static public implicit operator System.String(LSLString s)
{
return s.m_string;
}
static public implicit operator LSLString(string s)
{
return new LSLString(s);
}
public static bool operator ==(LSLString s1, LSLString s2)
{
return s1.m_string == s2.m_string;
}
public static bool operator !=(LSLString s1, LSLString s2)
{
return s1.m_string != s2.m_string;
}
#endregion
#region Overriders
public override bool Equals(object o)
{
if (o is String)
{
string s = (string)o;
return s == this.m_string;
}
if (o is key)
{
key k = (key)o;
return this.m_string == k.value;
}
if (o is LSLString)
{
LSLString s = (string)o;
return this.m_string == s;
}
return false;
}
public override int GetHashCode()
{
return m_string.GetHashCode();
}
#endregion
#region " Standard string functions "
//Clone,CompareTo,Contains
//CopyTo,EndsWith,Equals,GetEnumerator,GetHashCode,GetType,GetTypeCode
//IndexOf,IndexOfAny,Insert,IsNormalized,LastIndexOf,LastIndexOfAny
//Length,Normalize,PadLeft,PadRight,Remove,Replace,Split,StartsWith,Substring,ToCharArray,ToLowerInvariant
//ToString,ToUpper,ToUpperInvariant,Trim,TrimEnd,TrimStart
public bool Contains(string value) { return m_string.Contains(value); }
public int IndexOf(string value) { return m_string.IndexOf(value); }
public int Length { get { return m_string.Length; } }
#endregion
}
[Serializable]
public struct LSLInteger
{
public int value;
#region Constructors
public LSLInteger(int i)
{
value = i;
}
public LSLInteger(double d)
{
value = (int)d;
}
#endregion
static public implicit operator System.Int32(LSLInteger i)
{
return i.value;
}
static public implicit operator System.Boolean(LSLInteger i)
{
if (i.value == 0)
{
return false;
}
else
{
return true;
}
}
static public implicit operator LSLInteger(int i)
{
return new LSLInteger(i);
}
static public implicit operator LSLInteger(double d)
{
return new LSLInteger(d);
}
static public LSLInteger operator &(LSLInteger i1, LSLInteger i2)
{
int ret = i1.value & i2.value;
return ret;
}
//static public implicit operator System.Double(LSLInteger i)
//{
// return (double)i.value;
//}
#region Overriders
public override string ToString()
{
return this.value.ToString();
}
#endregion
}
[Serializable]
public struct LSLFloat
{
public double value;
#region Constructors
public LSLFloat(int i)
{
this.value = (double)i;
}
public LSLFloat(double d)
{
this.value = d;
}
#endregion
#region Operators
static public implicit operator System.Double(LSLFloat f)
{
return f.value;
}
//static public implicit operator System.Int32(LSLFloat f)
//{
// return (int)f.value;
//}
static public implicit operator System.Boolean(LSLFloat f)
{
if (f.value == 0)
{
return false;
}
else
{
return true;
}
}
static public implicit operator LSLFloat(int i)
{
return new LSLFloat(i);
}
static public implicit operator LSLFloat(double d)
{
return new LSLFloat(d);
}
#endregion
#region Overriders
public override string ToString()
{
return this.value.ToString();
}
#endregion
}
}
}
}

View File

@ -1177,7 +1177,7 @@
<Reference name="OpenSim.Framework.Servers"/>
<Reference name="OpenSim.Framework.Data"/>
<Reference name="OpenSim.Region.Environment"/>
<Reference name="../../../bin/ScriptEngines/OpenSim.Region.ScriptEngine.DotNetEngine"/>
<Reference name="OpenSim.Region.ScriptEngine.DotNetEngine"/>
<Reference name="OpenSim.Region.ScriptEngine.Common"/>
<Reference name="libsecondlife.dll"/>
<Reference name="Axiom.MathLib.dll" localCopy="false"/>
@ -1214,7 +1214,7 @@
<Reference name="OpenSim.Region.ScriptEngine.Common"/>
<Reference name="OpenSim.Region.Terrain.BasicTerrain"/>
<Reference name="OpenSim.Grid.ScriptServer"/>
<Reference name="../../../../bin/ScriptEngines/OpenSim.Region.ScriptEngine.DotNetEngine"/>
<Reference name="OpenSim.Region.ScriptEngine.DotNetEngine"/>
<Reference name="Axiom.MathLib.dll" localCopy="false"/>
<Reference name="Nini.dll" />
<Files>