public void SaveFog() { mFogInfo = new FogInfo(); mFogInfo.fog = RenderSettings.fog; mFogInfo.fogMode = RenderSettings.fogMode; mFogInfo.fogColor = RenderSettings.fogColor; mFogInfo.fogStartDistance = RenderSettings.fogStartDistance; mFogInfo.fogEndDistance = RenderSettings.fogEndDistance; }
public Chunk_MFOG(WMOFile file) : base(file, "MFOG", Magic) { int entryCount = (int)ChunkSize / 48; entries = new FogInfo[entryCount]; for (int i = 0; i < entryCount; i++) { entries[i] = FogInfo.Read(file); } LogWrite("Loaded " + entryCount + " fog info entries."); }
private void SaveLightmap() { fogInfo = new FogInfo(); fogInfo.fog = RenderSettings.fog; fogInfo.fogMode = RenderSettings.fogMode; fogInfo.fogColor = RenderSettings.fogColor; fogInfo.fogStartDistance = RenderSettings.fogStartDistance; fogInfo.fogEndDistance = RenderSettings.fogEndDistance; lightmapNear = new List <Texture2D>(); lightmapFar = new List <Texture2D>(); for (int i = 0; i < LightmapSettings.lightmaps.Length; i++) { LightmapData data = LightmapSettings.lightmaps[i]; if (data.lightmapDir != null) { lightmapNear.Add(data.lightmapDir); } if (data.lightmapColor != null) { lightmapFar.Add(data.lightmapColor); } } m_RendererInfo = new List <RendererInfo>(); var renderers = GetComponentsInChildren <MeshRenderer>(); foreach (MeshRenderer r in renderers) { if (r.lightmapIndex != -1) { RendererInfo info = new RendererInfo(); info.renderer = r; info.lightmapOffsetScale = r.lightmapScaleOffset; info.lightmapIndex = r.lightmapIndex; m_RendererInfo.Add(info); } } terrain = GetComponentInChildren <Terrain>(); if (terrain != null) { terrainRendererInfo = new RendererInfo(); terrainRendererInfo.lightmapOffsetScale = terrain.lightmapScaleOffset; terrainRendererInfo.lightmapIndex = terrain.lightmapIndex; } lightmapsMode = LightmapSettings.lightmapsMode; }
private static FogInfo ReadFogInfo(EndianBinaryReader stream) { var retVal = new FogInfo(); retVal.Type = stream.ReadByte(); retVal.Enable = stream.ReadBoolean(); retVal.Center = stream.ReadUInt16(); retVal.StartZ = stream.ReadSingle(); retVal.EndZ = stream.ReadSingle(); retVal.NearZ = stream.ReadSingle(); retVal.FarZ = stream.ReadSingle(); retVal.Color = ReadColor32(stream); retVal.Table = new ushort[10]; for (int i = 0; i < retVal.Table.Length; i++) { retVal.Table[i] = stream.ReadUInt16(); } return(retVal); }
public void SaveLightmap() { fogInfo = new FogInfo(); fogInfo.fog = RenderSettings.fog; fogInfo.fogMode = RenderSettings.fogMode; fogInfo.fogColor = RenderSettings.fogColor; fogInfo.fogStartDistance = RenderSettings.fogStartDistance; fogInfo.fogEndDistance = RenderSettings.fogEndDistance; m_RendererInfo = new List <RendererInfo>(); var renderers = GetComponentsInChildren <MeshRenderer>(); foreach (MeshRenderer r in renderers) { if (r.lightmapIndex != -1) { RendererInfo info = new RendererInfo(); info.renderer = r; info.lightmapOffsetScale = r.lightmapScaleOffset; info.lightmapIndex = r.lightmapIndex; m_RendererInfo.Add(info); } } terrains = GetComponentsInChildren <Terrain>(); if (terrains != null) { int cnt = terrains.Length; terrainsRendererInfo = new TerrainInfo[cnt]; for (int i = 0; i < cnt; i++) { var terrainRenderer = new TerrainInfo(); terrainRenderer.lightmapOffsetScale = terrains[i].lightmapScaleOffset; terrainRenderer.lightmapIndex = terrains[i].lightmapIndex; terrainsRendererInfo[i] = terrainRenderer; } } lightmapsMode = LightmapSettings.lightmapsMode; }
public static XElement PutItem(XElement item) { //XElement result = null; string owner = item.Attribute("owner")?.Value; // Запись возможна только если есть код владельца if (owner == null) { return(new XElement("error", "no owner attribute")); } // Проверим и изменим отметку времени string mT = DateTime.Now.ToUniversalTime().ToString("u"); XAttribute mT_att = item.Attribute("mT"); if (mT_att == null) { item.Add(new XAttribute("mT", mT)); } else { mT_att.Value = mT; } // Ищем подходящий фог-документ FogInfo fi = fogs.FirstOrDefault(f => f.owner == owner && f.writable); // Если нет подходящего - запись не производится if (fi == null) { return(new XElement("error", "no writable fog for request")); } // Если фог не загружен, то загрузить его if (fi.fogx == null) { fi.fogx = XElement.Load(fi.pth); } // читаем или формируем идентификатор string id = item.Attribute("{http://www.w3.org/1999/02/22-rdf-syntax-ns#}about")?.Value; XElement element = null; // запись с пришедшим идентификатором if (id == null) { XAttribute counter_att = fi.fogx.Attribute("counter"); int counter = Int32.Parse(counter_att.Value); id = fi.fogx.Attribute("prefix").Value + counter; // внедряем item.Add(new XAttribute("{http://www.w3.org/1999/02/22-rdf-syntax-ns#}about", id)); counter_att.Value = "" + (counter + 1); } else { element = fi.fogx.Elements().FirstOrDefault(el => el.Attribute("{http://www.w3.org/1999/02/22-rdf-syntax-ns#}about")?.Value == id); } // Изымаем из пришедшего элемента владельца и фиксируем его в фоге XAttribute owner_att = item.Attribute("owner"); owner_att.Remove(); if (element != null) { element.Remove(); } XElement nitem = new XElement(item); fi.fogx.Add(nitem); // Сохраняем файл fi.fogx.Save(fi.pth); // Сохраняем в базе данных adapter.PutItem(nitem); // Сохраняем в логе using (Stream log = File.Open(putlogfilename, FileMode.Append, FileAccess.Write)) { TextWriter tw = new StreamWriter(log, System.Text.Encoding.UTF8); tw.WriteLine(nitem.ToString()); tw.Close(); } return(new XElement(nitem)); }
protected override void ActivationBehaviour() { initialFogInfo = new FogInfo(); RenderSettings.fog = true; }