/** * Object-related communications */ public bool CreateObject(GridRegion destination, Vector3 newPosition, ISceneObject sog, bool isLocalCall) { if (destination == null) { return(false); } if (m_scenes.ContainsKey(destination.RegionID)) { // m_log.DebugFormat( // "[LOCAL SIMULATION CONNECTOR]: Found region {0} {1} to send AgentUpdate", // s.RegionInfo.RegionName, destination.RegionHandle); Scene s = m_scenes[destination.RegionID]; if (isLocalCall) { // We need to make a local copy of the object ISceneObject sogClone = sog.CloneForNewScene(); sogClone.SetState(sog.GetStateSnapshot(), s); return(s.IncomingCreateObject(newPosition, sogClone)); } else { // Use the object as it came through the wire return(s.IncomingCreateObject(newPosition, sog)); } } return(false); }
/** * Object-related communications */ public bool CreateObject(GridRegion destination, ISceneObject sog, bool isLocalCall) { if (destination == null) { return(false); } foreach (Scene s in m_sceneList) { if (s.RegionInfo.RegionHandle == destination.RegionHandle) { //m_log.Debug("[LOCAL COMMS]: Found region to SendCreateObject"); if (isLocalCall) { // We need to make a local copy of the object ISceneObject sogClone = sog.CloneForNewScene(); sogClone.SetState(sog.GetStateSnapshot(), s); return(s.IncomingCreateObject(sogClone)); } else { // Use the object as it came through the wire return(s.IncomingCreateObject(sog)); } } } return(false); }
/** * Object-related communications */ public bool CreateObject(GridRegion destination, ISceneObject sog, bool isLocalCall) { if (destination == null) return false; foreach (Scene s in m_sceneList) { if (s.RegionInfo.RegionHandle == destination.RegionHandle) { //m_log.Debug("[LOCAL COMMS]: Found region to SendCreateObject"); if (isLocalCall) { // We need to make a local copy of the object ISceneObject sogClone = sog.CloneForNewScene(s); sogClone.SetState(sog.GetStateSnapshot(), s); return s.IncomingCreateObject(sogClone); } else { // Use the object as it came through the wire return s.IncomingCreateObject(sog); } } } return false; }
/** * Object-related communications */ public bool CreateObject(GridRegion destination, Vector3 newPosition, ISceneObject sog, bool isLocalCall) { if (destination == null) return false; if (m_scenes.ContainsKey(destination.RegionID)) { // m_log.DebugFormat( // "[LOCAL SIMULATION CONNECTOR]: Found region {0} {1} to send AgentUpdate", // s.RegionInfo.RegionName, destination.RegionHandle); Scene s = m_scenes[destination.RegionID]; if (isLocalCall) { // We need to make a local copy of the object ISceneObject sogClone = sog.CloneForNewScene(); sogClone.SetState(sog.GetStateSnapshot(), s); return s.IncomingCreateObject(newPosition, sogClone); } else { // Use the object as it came through the wire return s.IncomingCreateObject(newPosition, sog); } } return false; }