From 69e3b24cfed42d81c121da9ea2e0079705e131c9 Mon Sep 17 00:00:00 2001 From: zontreck Date: Wed, 12 Feb 2025 00:38:01 -0700 Subject: [PATCH] Add a special effect for the workbench crafting system --- LSL/raw/basic_ingredient.lsl | 37 +++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/LSL/raw/basic_ingredient.lsl b/LSL/raw/basic_ingredient.lsl index 063ed1c..f6f22ab 100644 --- a/LSL/raw/basic_ingredient.lsl +++ b/LSL/raw/basic_ingredient.lsl @@ -7,6 +7,9 @@ key g_kFollow = NULL_KEY; integer g_iProdLink=3; integer g_iDies=FALSE; vector g_vScale; +integer g_iPreCraft; +rotation g_rRot; +vector g_vPreCraft; setText() { llSetText(g_sIngredientType + ": " + (string)g_iQuantity, <1,1,1>, 1); @@ -149,7 +152,7 @@ default if(c == global_ingredients) { if(g_kID == NULL_KEY) return; else { - if(llJsonGetValue(params, ["cmd"]) == "query") { + if(llJsonGetValue(params, ["cmd"]) == "query" && !g_iPreCraft) { llRegionSayTo(i,c,xtea_encrypt_string(llList2Json(JSON_OBJECT, ["cmd", "reply", "ingredient", g_sIngredientType, "id", g_kID]))); } } @@ -202,7 +205,39 @@ default #endif if(g_iDies) llDie(); + else { + if(!g_iPreCraft)return; + llTargetOmega(ZERO_VECTOR, 0,0); + llSetRot(g_rRot); + llSetPos(g_vPreCraft); + g_iPreCraft=0; + llScaleByFactor(1); + } } + } else if(llJsonGetValue(params, ["cmd"]) == "precraft") { + if(g_iPreCraft)return; + stopFollowing(g_vScale.z-0.2); + g_vRot = llGetRot(); + g_iPreCraft=1; + + llScaleByFactor(0.025); + llTargetOmega(<0,0.1,1>, 0.25, 1); + g_vPreCraft = llGetPos(); + + llSetPos((vector)llJsonGetValue(params, ["pos"]) + <0,0,0.05>); + + particles(i); + } else if(llJsonGetValue(params, ["cmd"]) == "abortcraft") { + if(!g_iPreCraft)return; + g_iPreCraft = 0; + + llScaleByFactor(1); + llTargetOmega(<0,0,0>, 0,0); + llSetRot(g_vRot); + + llSetPos(g_vPreCraft); + + particles(llGetKey()); } }