private void AddTerrainUploadTransaction(TerrainUploadTransaction t, UUID fromSceneID) { var id = UUID.Random; t.XferID = NextXferID; m_TerrainTransactions.Add(id, t.XferID, t); var m = new RequestXfer { ID = t.XferID, VFileType = 0, VFileID = id, FilePath = 0, Filename = t.Filename }; SendMessageAlways(m, fromSceneID); }
private void EstateOwner_Terrain(AgentCircuit circuit, EstateOwnerMessage req) { if (req.ParamList.Count < 1) { return; } SceneInterface scene = circuit.Scene; if (scene == null) { return; } switch (req.ParamList[0].FromUTF8Bytes()) { case "download filename": if (req.ParamList.Count > 1) { string viewerFilename = req.ParamList[1].FromUTF8Bytes(); AddNewFile("terrain.raw", LLRAWData.ToLLRaw(scene.Terrain.AllPatches)); circuit.SendMessage(new InitiateDownload { AgentID = ID, SimFilename = "terrain.raw", ViewerFilename = viewerFilename }); } break; case "upload filename": if (req.ParamList.Count > 1) { var t = new TerrainUploadTransaction(circuit.Scene) { Filename = req.ParamList[1].FromUTF8Bytes() }; AddTerrainUploadTransaction(t, req.CircuitSceneID); } break; default: break; } }