本文整理汇总了C#中OpenSim.Framework.Capabilities.OSDMap.Remove方法的典型用法代码示例。如果您正苦于以下问题:C# OSDMap.Remove方法的具体用法?C# OSDMap.Remove怎么用?C# OSDMap.Remove使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OpenSim.Framework.Capabilities.OSDMap
的用法示例。
在下文中一共展示了OSDMap.Remove方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DispatchWindLightSettings
private Hashtable DispatchWindLightSettings(Hashtable m_dhttpMethod, UUID agentID)
{
Hashtable responsedata = new Hashtable();
responsedata["int_response_code"] = 200; //501; //410; //404;
responsedata["content_type"] = "text/plain";
responsedata["keepalive"] = false;
responsedata["str_response_string"] = "";
IScenePresence SP = m_scene.GetScenePresence(agentID);
if(SP == null)
return responsedata; //They don't exist
m_log.Info("[WindLightSettings]: Got a request to update WindLight from " + SP.Name);
OSDMap rm = (OSDMap)OSDParser.DeserializeLLSDXml((string)m_dhttpMethod["requestbody"]);
RegionLightShareData lsd = new RegionLightShareData();
lsd.FromOSD(rm);
lsd.regionID = SP.Scene.RegionInfo.RegionID;
bool remove = false;
if (rm.ContainsKey("remove"))
remove = rm["remove"].AsBoolean();
if (remove)
{
if (lsd.type == 0) //Region
{
if (!SP.Scene.Permissions.CanIssueEstateCommand(SP.UUID, false))
return responsedata; // No permissions
bool found = false;
foreach (RegionLightShareData regionLSD in m_WindlightSettings.Values)
{
if (lsd.minEffectiveAltitude == regionLSD.minEffectiveAltitude &&
lsd.maxEffectiveAltitude == regionLSD.maxEffectiveAltitude)
{
//it exists
found = true;
break;
}
}
//Set to default
if(found)
SaveWindLightSettings(lsd.minEffectiveAltitude, new RegionLightShareData());
}
else if (lsd.type == 1) //Parcel
{
IParcelManagementModule parcelManagement = SP.Scene.RequestModuleInterface<IParcelManagementModule>();
if (parcelManagement != null)
{
ILandObject land = parcelManagement.GetLandObject((int)SP.AbsolutePosition.X, (int)SP.AbsolutePosition.Y);
if (!SP.Scene.Permissions.GenericParcelPermission(SP.UUID, land, (ulong)GroupPowers.LandOptions))
return responsedata; // No permissions
IOpenRegionSettingsModule ORSM = SP.Scene.RequestModuleInterface<IOpenRegionSettingsModule>();
if (ORSM == null || !ORSM.AllowParcelWindLight)
{
SP.ControllingClient.SendAlertMessage("Parcel WindLight is disabled in this region.");
return responsedata;
}
OSDMap map = land.LandData.GenericDataMap;
OSDMap innerMap = new OSDMap();
if (land.LandData.GenericDataMap.ContainsKey("WindLight"))
innerMap = (OSDMap)map["WindLight"];
if (innerMap.ContainsKey(lsd.minEffectiveAltitude.ToString()))
{
innerMap.Remove(lsd.minEffectiveAltitude.ToString());
}
land.LandData.AddGenericData("WindLight", innerMap);
//Update the client
SendProfileToClient(SP, false);
}
}
}
else
{
if (lsd.type == 0) //Region
{
if (!SP.Scene.Permissions.CanIssueEstateCommand(SP.UUID, false))
return responsedata; // No permissions
foreach (RegionLightShareData regionLSD in m_WindlightSettings.Values)
{
string message = "";
if (checkAltitude(lsd, regionLSD, out message))
{
SP.ControllingClient.SendAlertMessage(message);
return responsedata;
}
}
SaveWindLightSettings(lsd.minEffectiveAltitude, lsd);
}
else if (lsd.type == 1) //Parcel
{
IParcelManagementModule parcelManagement = SP.Scene.RequestModuleInterface<IParcelManagementModule>();
if (parcelManagement != null)
{
//.........这里部分代码省略.........