Take care of the new additions in 0.0.20250202000

This commit is contained in:
Sei Lisa 2025-02-02 13:01:28 +01:00
parent 42bc44d583
commit 822c9e00d1
5 changed files with 197 additions and 17 deletions

View file

@ -84,6 +84,12 @@ def llClearLinkMedia(link, face):
return 0
raise ELSLCantCompute
def llDetectedDamage(idx, evsym=None):
idx = fi(idx)
if 0 <= idx <= 15 and (evsym is None or 'damage' in evsym):
raise ELSLCantCompute
return []
def llDetectedGrab(idx, evsym=None):
idx = fi(idx)
if 0 <= idx <= 15 and (evsym is None or 'grab' in evsym):
@ -126,6 +132,12 @@ def llDetectedPos(idx, evsym=None):
raise ELSLCantCompute
return ZERO_VECTOR
def llDetectedRezzer(idx, evsym=None):
idx = fi(idx)
if 0 <= idx <= 15 and (evsym is None or 'detect' in evsym):
raise ELSLCantCompute
return []
def llDetectedRot(idx, evsym=None):
idx = fi(idx)
if 0 <= idx <= 15 and (evsym is None or 'detect' in evsym):
@ -250,6 +262,13 @@ def llGetAttachedList(id):
return [u'NOT FOUND']
raise ELSLCantCompute
def llGetAttachedListFiltered(id, opts):
id = fk(id)
opts = fl(opts)
if not cond(id):
return [u'NOT FOUND']
raise ELSLCantCompute
def llGetBoundingBox(id):
id = fk(id)
if not cond(id):
@ -286,6 +305,12 @@ def llGetExperienceList(id):
# This function is not implemented and always returns empty list
return []
def llGetHealth(id):
id = fk(id)
if not cond(id):
return 0.0
raise ELSLCantCompute
def llGetHTTPHeader(id, s):
id = fk(id)
s = fs(s)

View file

@ -57,8 +57,8 @@ def OptimizeArgs(node, sym):
# llGetObjectDetails return types
# Last: 49 (OBJECT_TEXT_ALPHA).
objDetailsTypes = 'issvrvkkkiiififfffkiiiiiiffkiviiksiisiiiiiifssivvf'
# Last: 52 (OBJECT_DAMAGE_TYPE).
objDetailsTypes = 'issvrvkkkiiififfffkiiiiiiffkiviiksiisiiiiiifssivvfffi'
# llGetParcelDetails return types
# Last: 13 (PARCEL_DETAILS_SCRIPT_DANGER)
@ -125,6 +125,8 @@ primParamsTypes = \
, 48: '*' # 48=PRIM_GLTF_BASE_COLOR
, 49: 's' # 49=PRIM_RENDER_MATERIAL
, 50: 'i' # 50=PRIM_SIT_FLAGS
, 51: 'fi' # 51=PRIM_DAMAGE
, 52: 'f' # 51=PRIM_HEALTH
}
# llGetPrimitiveParams parameters with arguments. F=face, L=link.

View file

@ -229,7 +229,7 @@ def LoadLibrary(builtins = None, fndata = None):
r'("(?:\\.|[^"])*"|<[^>]+>|[-+0-9x.e]+' # strings, vectors, numbers
r'|\[(?:[^]"]|"(?:\\.|[^"])*")*\]))' # lists
r'(?:\s+if\s+(.*\S))?'
r'|(unstable|stop|strlen|detect|touch|grab)'
r'|(unstable|stop|strlen|detect|touch|grab|damage)'
r'|(min|max|delay)\s+([-0-9.]+)'
r'|listto\s+(integer|float|string|key|vector|rotation|list)'
r')\s*$'), re.I)
@ -362,7 +362,7 @@ def LoadLibrary(builtins = None, fndata = None):
elif curr_ty == 'event':
if match_flag.group(4):
flag = match_flag.group(4).lower()
if flag in ('detect','touch','grab'):
if flag in ('detect','touch','grab', 'damage'):
events[curr_fn][flag] = True
else:
warning(u"Events only support a few flags"