In LSL_Api.cs, no special checking of if ScriptEngineToSceneConnectorModule exist anymore --
async model is no longer used and we get rid of the old code.dsg
							parent
							
								
									e4bdaaaa83
								
							
						
					
					
						commit
						b848df2a3a
					
				|  | @ -1200,7 +1200,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule | |||
|                 primCount += sog.Parts.Length; | ||||
|             } | ||||
| 
 | ||||
|             m_log.WarnFormat("SyncStatus -- Object count: {0}, Prim Count {1} ", sogList.Count, primCount); | ||||
|             m_log.WarnFormat("SyncStateReport -- Object count: {0}, Prim Count {1} ", sogList.Count, primCount); | ||||
|         } | ||||
| 
 | ||||
|         private void SyncDebug(Object[] args) | ||||
|  |  | |||
|  | @ -333,11 +333,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
|             ArrayList errors = new ArrayList(); | ||||
| 
 | ||||
|             //In the old async model, this function is supposed to be executed only on a remote script engine, not an authorative Scene | ||||
|             /* | ||||
|             if (RegionSyncModule==null && !IsSyncedScriptEngine()) | ||||
|             { | ||||
|                 m_log.Warn("This is not the script engine. Should not have received OnUpdateScript event."); | ||||
|                 return errors; | ||||
|             } | ||||
|              * */  | ||||
|             SceneObjectPart part = GetSceneObjectPart(primID); | ||||
|             SceneObjectGroup group = part.ParentGroup; | ||||
|             if (isScriptRunning) | ||||
|  |  | |||
|  | @ -508,6 +508,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
|             //Only Auth. Scene should trigger scritp rez by remote script engine. | ||||
|             return IsSyncedServer(); | ||||
|         } | ||||
|          | ||||
| 
 | ||||
|         /////////////////////////////////////////////////////////////////////////////////////////////// | ||||
|         //RA: Physics Engine | ||||
|  |  | |||
|  | @ -1353,7 +1353,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
|             SetScale(m_host, scale); | ||||
|         } | ||||
| 
 | ||||
|         //REGION SYNC TOUCHED -- set via sync'ing with remote Scene | ||||
|         protected void SetScale(SceneObjectPart part, LSL_Vector scale) | ||||
|         { | ||||
|             // TODO: this needs to trigger a persistance save as well | ||||
|  | @ -1383,21 +1382,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
|             if (scale.z > World.m_maxNonphys) | ||||
|                 scale.z = World.m_maxNonphys; | ||||
| 
 | ||||
|             if (World.ScriptEngineToSceneConnectorModule==null) | ||||
|             { | ||||
|                 //If Script engine is local to Scene (REGION SYNC mode=server, and XEngine enabled=true, and no remote Script Engine connected) | ||||
|                 Vector3 tmp = part.Scale; | ||||
|                 tmp.X = (float)scale.x; | ||||
|                 tmp.Y = (float)scale.y; | ||||
|                 tmp.Z = (float)scale.z; | ||||
|                 part.Scale = tmp; | ||||
|                 part.SendFullUpdateToAllClients(); | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 //set via sync'ing with remote Scene | ||||
|                 World.ScriptEngineToSceneConnectorModule.SendSetPrimProperties(part.ParentGroup.LocX, part.ParentGroup.LocY, part.UUID, "scale", scale); | ||||
|             } | ||||
|             Vector3 tmp = part.Scale; | ||||
|             tmp.X = (float)scale.x; | ||||
|             tmp.Y = (float)scale.y; | ||||
|             tmp.Z = (float)scale.z; | ||||
|             part.Scale = tmp; | ||||
|             part.SendFullUpdateToAllClients(); | ||||
|         } | ||||
| 
 | ||||
|         public LSL_Vector llGetScale() | ||||
|  | @ -1416,7 +1406,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
|             return; | ||||
|         } | ||||
| 
 | ||||
|         //REGION SYNC TOUCHED -- set via sync'ing with remote Scene | ||||
|         public void llSetColor(LSL_Vector color, int face) | ||||
|         { | ||||
|             m_host.AddScriptLPS(1); | ||||
|  | @ -1424,22 +1413,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
|             if (face == ScriptBaseClass.ALL_SIDES) | ||||
|                 face = SceneObjectPart.ALL_SIDES; | ||||
| 
 | ||||
|             // REGION SYNC | ||||
|             if (World.ScriptEngineToSceneConnectorModule == null) | ||||
|             { | ||||
|                 m_host.SetFaceColor(new Vector3((float)color.x, (float)color.y, (float)color.z), face); | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 object[] valParams = new object[2]; | ||||
|                 //valParams[0] = (object)color.x; | ||||
|                 //valParams[1] = (object)color.y; | ||||
|                 //valParams[2] = (object)color.z; | ||||
|                 Vector3 vcolor = new Vector3((float)color.x, (float)color.y, (float)color.z); | ||||
|                 valParams[0] = (object)vcolor; | ||||
|                 valParams[1] = (object)face; | ||||
|                 World.ScriptEngineToSceneConnectorModule.SendSetPrimProperties(m_host.ParentGroup.LocX, m_host.ParentGroup.LocY, m_host.UUID, "color", (object)valParams); | ||||
|             } | ||||
|             m_host.SetFaceColor(new Vector3((float)color.x, (float)color.y, (float)color.z), face); | ||||
|         } | ||||
| 
 | ||||
|         public void SetTexGen(SceneObjectPart part, int face,int style) | ||||
|  | @ -2766,7 +2740,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
|             ScriptSleep(100); | ||||
|         } | ||||
| 
 | ||||
|         //REGION SYNC TOUCHED -- set via sync'ing with remote Scene | ||||
|         public void llRezAtRoot(string inventory, LSL_Vector pos, LSL_Vector vel, LSL_Rotation rot, int param) | ||||
|         { | ||||
|             m_host.AddScriptLPS(1); | ||||
|  | @ -2778,39 +2751,35 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
|             if (dist > m_ScriptDistanceFactor * 10.0f) | ||||
|                 return; | ||||
| 
 | ||||
|             if (World.ScriptEngineToSceneConnectorModule == null) | ||||
|             TaskInventoryDictionary partInventory = (TaskInventoryDictionary)m_host.TaskInventory.Clone(); | ||||
| 
 | ||||
|             foreach (KeyValuePair<UUID, TaskInventoryItem> inv in partInventory) | ||||
|             { | ||||
|                 //if Scene co-locates with Script Engine | ||||
| 
 | ||||
|                 TaskInventoryDictionary partInventory = (TaskInventoryDictionary)m_host.TaskInventory.Clone(); | ||||
| 
 | ||||
|                 foreach (KeyValuePair<UUID, TaskInventoryItem> inv in partInventory) | ||||
|                 if (inv.Value.Name == inventory) | ||||
|                 { | ||||
|                     if (inv.Value.Name == inventory) | ||||
|                     // make sure we're an object. | ||||
|                     if (inv.Value.InvType != (int)InventoryType.Object) | ||||
|                     { | ||||
|                         // make sure we're an object. | ||||
|                         if (inv.Value.InvType != (int)InventoryType.Object) | ||||
|                         { | ||||
|                             llSay(0, "Unable to create requested object. Object is missing from database."); | ||||
|                             return; | ||||
|                         } | ||||
|                         llSay(0, "Unable to create requested object. Object is missing from database."); | ||||
|                         return; | ||||
|                     } | ||||
| 
 | ||||
|                         Vector3 llpos = new Vector3((float)pos.x, (float)pos.y, (float)pos.z); | ||||
|                         Vector3 llvel = new Vector3((float)vel.x, (float)vel.y, (float)vel.z); | ||||
|                     Vector3 llpos = new Vector3((float)pos.x, (float)pos.y, (float)pos.z); | ||||
|                     Vector3 llvel = new Vector3((float)vel.x, (float)vel.y, (float)vel.z); | ||||
| 
 | ||||
|                         // need the magnitude later | ||||
|                         float velmag = (float)Util.GetMagnitude(llvel); | ||||
|                     // need the magnitude later | ||||
|                     float velmag = (float)Util.GetMagnitude(llvel); | ||||
| 
 | ||||
|                         SceneObjectGroup new_group = World.RezObject(m_host, inv.Value, llpos, Rot2Quaternion(rot), llvel, param); | ||||
|                     SceneObjectGroup new_group = World.RezObject(m_host, inv.Value, llpos, Rot2Quaternion(rot), llvel, param); | ||||
| 
 | ||||
|                         // If either of these are null, then there was an unknown error. | ||||
|                         if (new_group == null) | ||||
|                             continue; | ||||
|                         if (new_group.RootPart == null) | ||||
|                             continue; | ||||
|                     // If either of these are null, then there was an unknown error. | ||||
|                     if (new_group == null) | ||||
|                         continue; | ||||
|                     if (new_group.RootPart == null) | ||||
|                         continue; | ||||
| 
 | ||||
|                         // objects rezzed with this method are die_at_edge by default. | ||||
|                         new_group.RootPart.SetDieAtEdge(true); | ||||
|                     // objects rezzed with this method are die_at_edge by default. | ||||
|                     new_group.RootPart.SetDieAtEdge(true); | ||||
| 
 | ||||
|                     new_group.ResumeScripts(); | ||||
| 
 | ||||
|  | @ -2818,45 +2787,26 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
|                             "object_rez", new Object[] { | ||||
|                             new LSL_String( | ||||
|                             new_group.RootPart.UUID.ToString()) }, | ||||
|                                 new DetectParams[0])); | ||||
|                             new DetectParams[0])); | ||||
| 
 | ||||
|                         float groupmass = new_group.GetMass(); | ||||
|                     float groupmass = new_group.GetMass(); | ||||
| 
 | ||||
|                         if (new_group.RootPart.PhysActor != null && new_group.RootPart.PhysActor.IsPhysical && llvel != Vector3.Zero) | ||||
|                         { | ||||
|                             //Recoil. | ||||
|                             llApplyImpulse(new LSL_Vector(llvel.X * groupmass, llvel.Y * groupmass, llvel.Z * groupmass), 0); | ||||
|                         } | ||||
|                         // Variable script delay? (see (http://wiki.secondlife.com/wiki/LSL_Delay) | ||||
|                         ScriptSleep((int)((groupmass * velmag) / 10)); | ||||
|                         ScriptSleep(100); | ||||
|                         return; | ||||
|                     if (new_group.RootPart.PhysActor != null && new_group.RootPart.PhysActor.IsPhysical && llvel != Vector3.Zero) | ||||
|                     { | ||||
|                         //Recoil. | ||||
|                         llApplyImpulse(new LSL_Vector(llvel.X * groupmass, llvel.Y * groupmass, llvel.Z * groupmass), 0); | ||||
|                     } | ||||
|                     // Variable script delay? (see (http://wiki.secondlife.com/wiki/LSL_Delay) | ||||
|                     ScriptSleep((int)((groupmass * velmag) / 10)); | ||||
|                     ScriptSleep(100); | ||||
|                     return; | ||||
|                 } | ||||
| 
 | ||||
|                 llSay(0, "Could not find object " + inventory); | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 //Scene does not co-locate with Script Engine | ||||
|                 Vector3 llpos = new Vector3((float)pos.x, (float)pos.y, (float)pos.z); | ||||
|                 Vector3 llvel = new Vector3((float)vel.x, (float)vel.y, (float)vel.z); | ||||
|                 Quaternion llrot = Rot2Quaternion(rot); | ||||
|                 object[] valParams = new object[5]; | ||||
|                 valParams[0] = (object)inventory; | ||||
|                 valParams[1] = (object)llpos; | ||||
|                 valParams[2] = (object)llpos; | ||||
|                 valParams[3] = (object)llrot; | ||||
|                 valParams[4] = (object)param; | ||||
|                 //we borrow the implementation SendSetPrimProperties to send the message to Scene | ||||
|                 World.ScriptEngineToSceneConnectorModule.SendSetPrimProperties(m_host.ParentGroup.LocX, m_host.ParentGroup.LocY, m_host.UUID, "object_rez", (object)valParams); | ||||
| 
 | ||||
|                 // Variable script delay? (see (http://wiki.secondlife.com/wiki/LSL_Delay) | ||||
|                 //ScriptSleep((int)((groupmass * velmag) / 10)); | ||||
|                 ScriptSleep(100); | ||||
|             } | ||||
|             llSay(0, "Could not find object " + inventory); | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         public void llRezObject(string inventory, LSL_Vector pos, LSL_Vector vel, LSL_Rotation rot, int param) | ||||
|         { | ||||
|             llRezAtRoot(inventory, pos, vel, rot, param); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Huaiyu (Kitty) Liu
						Huaiyu (Kitty) Liu