store as llsd notation on region db, plus a few more changes
parent
dfa69b1869
commit
3a5d5fd50e
|
@ -680,6 +680,8 @@ namespace OpenSim.Framework
|
|||
track = new TrackEntry(-1f, "WLWater");
|
||||
waterTrack.Add(track);
|
||||
|
||||
Name = "WLDaycycle";
|
||||
|
||||
if (skyTrack0.Count == 1 && skyTrack0[0].time == -1f)
|
||||
IsStaticDayCycle = true;
|
||||
}
|
||||
|
@ -912,7 +914,6 @@ namespace OpenSim.Framework
|
|||
{
|
||||
Cycle = new DayCycle();
|
||||
Cycle.FromWLOSD(array);
|
||||
IsLegacy = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -938,16 +939,16 @@ namespace OpenSim.Framework
|
|||
return new Quaternion(0, -(float)Math.Sin(al), 0, (float)Math.Cos(al));
|
||||
}
|
||||
|
||||
float sT = (float)Math.Sin(az);
|
||||
float cT = (float)Math.Cos(az);
|
||||
float sP = (float)Math.Sin(al);
|
||||
float cP = (float)Math.Cos(al);
|
||||
az *= 0.5f;
|
||||
float sz = (float)Math.Sin(az);
|
||||
float cz = (float)Math.Cos(az);
|
||||
al *= 0.5f;
|
||||
float sl = (float)Math.Sin(al);
|
||||
float cl = (float)Math.Cos(al);
|
||||
|
||||
float angle = (float)Math.Acos(cT * cP);
|
||||
Vector3 axis = new Vector3( 0, -sP, sT * cP);
|
||||
axis.Normalize();
|
||||
|
||||
return Quaternion.CreateFromAxisAngle(axis, angle);
|
||||
Quaternion rot = new Quaternion(sl * sz, -sl * cz, cl * sz, cl * cz);
|
||||
rot.Normalize();
|
||||
return rot;
|
||||
}
|
||||
|
||||
public static void convertFromAngles(SkyData sky, float sun_angle, float east_angle)
|
||||
|
|
|
@ -148,7 +148,7 @@ namespace OpenSim.Region.CoreModules.World.LightShare
|
|||
byte[] envData = defEnv.Data;
|
||||
try
|
||||
{
|
||||
OSD oenv = OSDParser.DeserializeLLSDXml(envData);
|
||||
OSD oenv = OSDParser.Deserialize(envData);
|
||||
m_DefaultEnv = new ViewerEnviroment();
|
||||
m_DefaultEnv.CycleFromOSD(oenv);
|
||||
}
|
||||
|
@ -167,7 +167,7 @@ namespace OpenSim.Region.CoreModules.World.LightShare
|
|||
{
|
||||
try
|
||||
{
|
||||
OSD oenv = OSDParser.DeserializeLLSDXml(senv);
|
||||
OSD oenv = OSDParser.Deserialize(senv);
|
||||
ViewerEnviroment VEnv = new ViewerEnviroment();
|
||||
if(oenv is OSDArray)
|
||||
VEnv.FromWLOSD(oenv);
|
||||
|
@ -206,6 +206,34 @@ namespace OpenSim.Region.CoreModules.World.LightShare
|
|||
#endregion
|
||||
|
||||
#region IEnvironmentModule
|
||||
private void StoreOnRegion(ViewerEnviroment VEnv)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (VEnv == null)
|
||||
{
|
||||
m_scene.SimulationDataService.RemoveRegionEnvironmentSettings(regionID);
|
||||
m_scene.RegionEnviroment = null;
|
||||
m_regionEnvVersion = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_regionEnvVersion++;
|
||||
VEnv.version = m_regionEnvVersion;
|
||||
OSD env = VEnv.ToOSD();
|
||||
//m_scene.SimulationDataService.StoreRegionEnvironmentSettings(regionID, OSDParser.SerializeLLSDXmlString(env));
|
||||
m_scene.SimulationDataService.StoreRegionEnvironmentSettings(regionID, OSDParser.SerializeLLSDNotationFull(env));
|
||||
m_scene.RegionEnviroment = VEnv;
|
||||
}
|
||||
m_framets = 0;
|
||||
UpdateEnvTime();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
m_log.ErrorFormat("[Enviroment {0}] failed to store enviroment {1}", m_scene.Name, e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public void ResetEnvironmentSettings(UUID regionUUID)
|
||||
{
|
||||
if (!Enabled)
|
||||
|
@ -375,17 +403,17 @@ namespace OpenSim.Region.CoreModules.World.LightShare
|
|||
Int32.TryParse((string)httpRequest.Query["parcelid"], out parcel);
|
||||
}
|
||||
OSD oenv = ViewerEnviroment.DefaultToOSD(regionID, parcel);
|
||||
httpResponse.RawBuffer = Util.UTF8.GetBytes(OSDParser.SerializeLLSDXmlString(oenv));
|
||||
httpResponse.RawBuffer = Util.UTF8NBGetbytes(OSDParser.SerializeLLSDXmlString(oenv));
|
||||
httpResponse.StatusCode = (int)HttpStatusCode.OK;
|
||||
}
|
||||
|
||||
ViewerEnviroment VEnv = GetRegionEnviroment();
|
||||
|
||||
OSDMap map = new OpenMetaverse.StructuredData.OSDMap();
|
||||
OSDMap map = new OSDMap();
|
||||
map["environment"] = VEnv.ToOSD();
|
||||
|
||||
string env = OSDParser.SerializeLLSDXmlString(map);
|
||||
|
||||
// only the presence of enviroment seems to matter
|
||||
if (String.IsNullOrEmpty(env))
|
||||
{
|
||||
StringBuilder sb = LLSDxmlEncode.Start();
|
||||
|
@ -439,7 +467,7 @@ namespace OpenSim.Region.CoreModules.World.LightShare
|
|||
{
|
||||
try
|
||||
{
|
||||
OSD req = OSDParser.DeserializeLLSDXml(httpRequest.InputStream);
|
||||
OSD req = OSDParser.Deserialize(httpRequest.InputStream);
|
||||
if(req is OpenMetaverse.StructuredData.OSDMap)
|
||||
{
|
||||
OpenMetaverse.StructuredData.OSDMap map = req as OpenMetaverse.StructuredData.OSDMap;
|
||||
|
@ -451,8 +479,8 @@ namespace OpenSim.Region.CoreModules.World.LightShare
|
|||
// need a proper clone
|
||||
VEnv = new ViewerEnviroment();
|
||||
OSD otmp = m_DefaultEnv.ToOSD();
|
||||
byte[] btmp = OSDParser.SerializeLLSDXmlToBytes(otmp);
|
||||
otmp = OSDParser.DeserializeLLSDXml(btmp);
|
||||
string tmpstr = OSDParser.SerializeLLSDXmlString(otmp);
|
||||
otmp = OSDParser.DeserializeLLSDXml(tmpstr);
|
||||
VEnv.FromOSD(otmp);
|
||||
}
|
||||
OSDMap evmap = (OSDMap)env;
|
||||
|
@ -488,10 +516,7 @@ namespace OpenSim.Region.CoreModules.World.LightShare
|
|||
}
|
||||
else if (req is OSDArray)
|
||||
{
|
||||
ViewerEnviroment VEnv = m_scene.RegionEnviroment;
|
||||
if (VEnv == null)
|
||||
VEnv = new ViewerEnviroment();
|
||||
|
||||
ViewerEnviroment VEnv = new ViewerEnviroment();
|
||||
VEnv.FromWLOSD(req);
|
||||
StoreOnRegion(VEnv);
|
||||
success = true;
|
||||
|
@ -506,7 +531,7 @@ namespace OpenSim.Region.CoreModules.World.LightShare
|
|||
LLSDxmlEncode.AddElem("regionID", regionID, sb);
|
||||
LLSDxmlEncode.AddElem("success", success, sb);
|
||||
LLSDxmlEncode.AddEndMap(sb);
|
||||
httpResponse.RawBuffer = Util.UTF8.GetBytes(LLSDxmlEncode.End(sb));
|
||||
httpResponse.RawBuffer = Util.UTF8NBGetbytes(LLSDxmlEncode.End(sb));
|
||||
httpResponse.StatusCode = (int)HttpStatusCode.OK;
|
||||
return;
|
||||
}
|
||||
|
@ -531,7 +556,7 @@ namespace OpenSim.Region.CoreModules.World.LightShare
|
|||
LLSDxmlEncode.AddEndMap(sb);
|
||||
response = LLSDxmlEncode.End(sb);
|
||||
|
||||
httpResponse.RawBuffer = Util.UTF8.GetBytes(response);
|
||||
httpResponse.RawBuffer = Util.UTF8NBGetbytes(response);
|
||||
httpResponse.StatusCode = (int)HttpStatusCode.OK;
|
||||
}
|
||||
|
||||
|
@ -561,32 +586,6 @@ namespace OpenSim.Region.CoreModules.World.LightShare
|
|||
response.StatusCode = (int)HttpStatusCode.OK;
|
||||
}
|
||||
|
||||
private void StoreOnRegion(ViewerEnviroment VEnv)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (VEnv == null)
|
||||
{
|
||||
m_scene.SimulationDataService.RemoveRegionEnvironmentSettings(regionID);
|
||||
m_scene.RegionEnviroment = null;
|
||||
m_regionEnvVersion = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_regionEnvVersion++;
|
||||
VEnv.version = m_regionEnvVersion;
|
||||
OSD env = VEnv.ToOSD();
|
||||
m_scene.SimulationDataService.StoreRegionEnvironmentSettings(regionID, OSDParser.SerializeLLSDXmlString(env));
|
||||
m_scene.RegionEnviroment = VEnv;
|
||||
}
|
||||
m_framets = 0;
|
||||
UpdateEnvTime();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
m_log.ErrorFormat("[Enviroment {0}] failed to store enviroment {1}", m_scene.Name, e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void SetEnvironmentSettings(IOSHttpRequest request, IOSHttpResponse response, UUID agentID)
|
||||
{
|
||||
|
@ -605,7 +604,7 @@ namespace OpenSim.Region.CoreModules.World.LightShare
|
|||
try
|
||||
{
|
||||
ViewerEnviroment VEnv = new ViewerEnviroment();
|
||||
OSD env = OSDParser.DeserializeLLSDXml(request.InputStream);
|
||||
OSD env = OSDParser.Deserialize(request.InputStream);
|
||||
VEnv.FromWLOSD(env);
|
||||
StoreOnRegion(VEnv);
|
||||
success = true;
|
||||
|
@ -633,7 +632,7 @@ namespace OpenSim.Region.CoreModules.World.LightShare
|
|||
if(!success)
|
||||
LLSDxmlEncode.AddElem("fail_reason", fail_reason, sb);
|
||||
LLSDxmlEncode.AddEndMap(sb);
|
||||
response.RawBuffer = Util.UTF8.GetBytes(LLSDxmlEncode.End(sb));
|
||||
response.RawBuffer = Util.UTF8NBGetbytes(LLSDxmlEncode.End(sb));
|
||||
response.StatusCode = (int)HttpStatusCode.OK;
|
||||
}
|
||||
|
||||
|
@ -676,8 +675,7 @@ namespace OpenSim.Region.CoreModules.World.LightShare
|
|||
default:
|
||||
return null;
|
||||
}
|
||||
string sdata = OSDParser.SerializeLLSDXmlString(osddata);
|
||||
return Util.UTF8NBGetbytes(sdata);
|
||||
return OSDParser.SerializeLLSDNotationToBytes(osddata,true);
|
||||
}
|
||||
|
||||
public List<byte[]> MakeLightShareData()
|
||||
|
|
Loading…
Reference in New Issue