add a few more parameters to llGetObjectDetails(); add intger log2(uint)

This commit is contained in:
UbitUmarov
2022-08-23 17:26:09 +01:00
parent 1456f43bc3
commit d545506efc
6 changed files with 110 additions and 11 deletions

View File

@@ -14661,6 +14661,33 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
ret.Add(new LSL_Integer(count));
break;
case ScriptBaseClass.OBJECT_ACCOUNT_LEVEL:
ret.Add(new LSL_Integer(1));
break;
case ScriptBaseClass.OBJECT_MATERIAL:
ret.Add(new LSL_Integer((int)Material.Flesh));
break;
case ScriptBaseClass.OBJECT_MASS:
ret.Add(new LSL_Float(av.GetMass()));
break;
case ScriptBaseClass.OBJECT_TEXT:
ret.Add(new LSL_String(""));
break;
case ScriptBaseClass.OBJECT_REZ_TIME:
ret.Add(new LSL_String(""));
break;
case ScriptBaseClass.OBJECT_LINK_NUMBER:
ret.Add(new LSL_Integer(0));
break;
case ScriptBaseClass.OBJECT_SCALE:
ret.Add(new LSL_Vector(av.Appearance.AvatarBoxSize));
break;
case ScriptBaseClass.OBJECT_TEXT_COLOR:
ret.Add(new LSL_Vector(0f, 0f, 0f));
break;
case ScriptBaseClass.OBJECT_TEXT_ALPHA:
ret.Add(new LSL_Float(1.0f));
break;
default:
// Invalid or unhandled constant.
ret.Add(new LSL_Integer(ScriptBaseClass.OBJECT_UNKNOWN_DETAIL));
@@ -14886,6 +14913,36 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
case ScriptBaseClass.OBJECT_ANIMATED_SLOTS_AVAILABLE:
ret.Add(new LSL_Integer(0));
break;
case ScriptBaseClass.OBJECT_ACCOUNT_LEVEL:
ret.Add(new LSL_Integer(1));
break;
case ScriptBaseClass.OBJECT_MATERIAL:
ret.Add(new LSL_Integer(m_host.Material));
break;
case ScriptBaseClass.OBJECT_MASS:
ret.Add(new LSL_Float(llGetMassMKS()));
break;
case ScriptBaseClass.OBJECT_TEXT:
ret.Add(new LSL_String(m_host.Text));
break;
case ScriptBaseClass.OBJECT_REZ_TIME:
ret.Add(new LSL_String(m_host.Rezzed.ToString("yyyy-MM-ddTHH:mm:ss.ffffffZ", CultureInfo.InvariantCulture)));
break;
case ScriptBaseClass.OBJECT_LINK_NUMBER:
ret.Add(new LSL_Integer(m_host.LinkNum));
break;
case ScriptBaseClass.OBJECT_SCALE:
ret.Add(new LSL_Vector(m_host.Scale));
break;
case ScriptBaseClass.OBJECT_TEXT_COLOR:
Color4 textColor = m_host.GetTextColor();
ret.Add(new LSL_Vector(textColor.R,
textColor.G,
textColor.B));
break;
case ScriptBaseClass.OBJECT_TEXT_ALPHA:
ret.Add(new LSL_Float(m_host.GetTextColor().A));
break;
default:
// Invalid or unhandled constant.
ret.Add(new LSL_Integer(ScriptBaseClass.OBJECT_UNKNOWN_DETAIL));

View File

@@ -670,6 +670,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
public const int OBJECT_SIT_COUNT = 38;
public const int OBJECT_ANIMATED_COUNT = 39;
public const int OBJECT_ANIMATED_SLOTS_AVAILABLE = 40;
public const int OBJECT_ACCOUNT_LEVEL = 41;
public const int OBJECT_MATERIAL = 42;
public const int OBJECT_MASS = 43;
public const int OBJECT_TEXT = 44;
public const int OBJECT_REZ_TIME = 45;
public const int OBJECT_LINK_NUMBER = 46;
public const int OBJECT_SCALE = 47;
public const int OBJECT_TEXT_COLOR = 48;
public const int OBJECT_TEXT_ALPHA = 49;
// Pathfinding types

View File

@@ -939,8 +939,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
if (Engine.World.PipeEventsForScript(LocalID) ||
data.EventName == "control") // Don't freeze avies!
{
// m_log.DebugFormat("[Script] Delivered event {2} in state {3} to {0}.{1}",
// PrimName, ScriptName, data.EventName, State);
//m_log.DebugFormat("[Script] Delivered event {2} in state {3} to {0}.{1}",
// PrimName, ScriptName, data.EventName, State);
try
{