public MapInfo(MySqlDataReader readerMapInfo) { Index = Convert.ToInt32(readerMapInfo["IndexID"]); FileName = Convert.ToString(readerMapInfo["FileName"]); Title = Convert.ToString(readerMapInfo["Title"]); NoReconnectMap = Convert.ToString(readerMapInfo["NoReconnectMap"]); MiniMap = Convert.ToUInt16(readerMapInfo["MiniMap"]); BigMap = Convert.ToUInt16(readerMapInfo["BigMap"]); Music = Convert.ToUInt16(readerMapInfo["Music"]); Light = (LightSetting)Convert.ToByte(readerMapInfo["Light"]); MapDarkLight = Convert.ToByte(readerMapInfo["MapDarkLight"]); FireDamage = Convert.ToInt32(readerMapInfo["FireDamage"]); LightningDamage = Convert.ToInt32(readerMapInfo["LightningDamage"]); MineIndex = Convert.ToByte(readerMapInfo["MineIndex"]); NoTeleport = Convert.ToBoolean(readerMapInfo["NoTeleport"]); NoReconnect = Convert.ToBoolean(readerMapInfo["NoReconnect"]); NoRandom = Convert.ToBoolean(readerMapInfo["NoRandom"]); NoEscape = Convert.ToBoolean(readerMapInfo["NoEscape"]); NoRecall = Convert.ToBoolean(readerMapInfo["NoRecall"]); NoDrug = Convert.ToBoolean(readerMapInfo["NoDrug"]); NoPosition = Convert.ToBoolean(readerMapInfo["NoPosition"]); NoFight = Convert.ToBoolean(readerMapInfo["NoFight"]); NoThrowItem = Convert.ToBoolean(readerMapInfo["NoThrowItem"]); NoDropPlayer = Convert.ToBoolean(readerMapInfo["NoDropPlayer"]); NoDropMonster = Convert.ToBoolean(readerMapInfo["NoDropMonster"]); NoNames = Convert.ToBoolean(readerMapInfo["NoNames"]); NoMount = Convert.ToBoolean(readerMapInfo["NoMount"]); NeedBridle = Convert.ToBoolean(readerMapInfo["NeedBridle"]); Fight = Convert.ToBoolean(readerMapInfo["Fight"]); NeedHole = Convert.ToBoolean(readerMapInfo["NeedHole"]); Fire = Convert.ToBoolean(readerMapInfo["Fire"]); Lightning = Convert.ToBoolean(readerMapInfo["Lightning"]); }
public async Task <IViewComponentResult> InvokeAsync(string hostname) { var dbLights = _db.GetCollection <LightControllerEntity>().Query(); var lightSettings = await Task.WhenAll(dbLights .ToEnumerable() .Select(async _ => { var lightSetting = new LightSetting { Hostname = _.Hostname, }; try { lightSetting.State = await LightingProxy.GetState(_.Hostname); } catch { lightSetting.State = new LightingProxy.LightStateDto(); } return(lightSetting); })); var model = new SettingsModel { LightSettings = lightSettings }; return(View("Default", model)); }
private static void EnvirLoop() { while (true) { Main.UpdateTime(); for (int I = 0; I < MapList.Count; I++) { MapList[I].Process(); } int Hours = (Main.Now.Hour * 2) % 24; if (Hours == 6 || Hours == 7) { CurrentLights = LightSetting.Dawn; } else if (Hours >= 8 && Hours <= 15) { CurrentLights = LightSetting.Day; } else if (Hours == 16 || Hours == 17) { CurrentLights = LightSetting.Evening; } else { CurrentLights = LightSetting.Night; } Thread.Sleep(1); } }
public RepositoryActionResult <LightSetting> PostLightSetting(LightSetting entity, Guid currentUserGuid) { try { GrowSetting growSetting = GetGrowSetting(entity.GrowPhaseSetting.GrowSettingId, currentUserGuid); if (growSetting == null) { return(new RepositoryActionResult <LightSetting>(entity, RepositoryActionStatus.NotFound)); } if (growSetting.UserGuid != currentUserGuid) { return(new RepositoryActionResult <LightSetting>(entity, RepositoryActionStatus.NotFound)); } _dbContext.LightSetting.Add(entity); int result = _dbContext.SaveChanges(); if (result > 0) { return(new RepositoryActionResult <LightSetting>(entity, RepositoryActionStatus.Created)); } return(new RepositoryActionResult <LightSetting>(entity, RepositoryActionStatus.NothingModified, null)); } catch (Exception ex) { return(new RepositoryActionResult <LightSetting>(null, RepositoryActionStatus.Error, ex)); } }
public MapInfo(DataRow Row) { MapIndex = Row["Map Index"] is DBNull ? -1 : (int)Row["Map Index"]; FileName = Row["File Name"] is DBNull ? string.Empty : Row["File Name"].ToString(); MapName = Row["Map Name"] is DBNull ? string.Empty : Row["Map Name"].ToString(); MiniMap = Row["Mini Map"] is DBNull ? -1 : (int)Row["Mini Map"]; BigMap = Row["Big Map"] is DBNull ? -1 : (int)Row["Big Map"]; string Flags = Row["Flags"] is DBNull ? string.Empty : Row["Flags"].ToString(); if (Flags.IndexOf("SAFE", StringComparison.OrdinalIgnoreCase) >= 0) { FightMode = FightSetting.Safe; } else if (Flags.IndexOf("FIGHT", StringComparison.OrdinalIgnoreCase) >= 0) { FightMode = FightSetting.Fight; } if (Flags.IndexOf("DAY", StringComparison.OrdinalIgnoreCase) >= 0) { LightMode = LightSetting.Day; } else if (Flags.IndexOf("NIGHT", StringComparison.OrdinalIgnoreCase) >= 0) { LightMode = LightSetting.Night; } if (Flags.IndexOf("MINE", StringComparison.OrdinalIgnoreCase) >= 0) { CanMine = true; } }
public RepositoryActionResult <LightSetting> DeleteLightSetting(int growSettingId, int GrowPhaseSettingId, int lightSettingsId, Guid currentUserGuid) { try { LightSetting lightSetting = _dbContext.LightSetting.FirstOrDefault(ls => ls.GrowPhaseSetting.GrowSettingId == growSettingId && ls.GrowPhaseSettingId == GrowPhaseSettingId && ls.LightSettingId == lightSettingsId && ls.GrowPhaseSetting.GrowSetting.UserGuid == currentUserGuid); if (lightSetting == null) { return(new RepositoryActionResult <LightSetting>(null, RepositoryActionStatus.NotFound)); } _dbContext.LightSetting.Remove(lightSetting); _dbContext.SaveChanges(); return(new RepositoryActionResult <LightSetting>(null, RepositoryActionStatus.Deleted)); } catch (Exception ex) { return(new RepositoryActionResult <LightSetting>(null, RepositoryActionStatus.Error, ex)); } }
public RepositoryActionResult <LightSetting> PutLightSetting(int growSettingId, int GrowPhaseSettingId, int lightSettingsId, LightSetting modLightSetting, Guid currentUserGuid) { if (modLightSetting.GrowPhaseSetting.GrowSetting.UserGuid != currentUserGuid) { return(new RepositoryActionResult <LightSetting>(modLightSetting, RepositoryActionStatus.NotFound)); } //_dbContext.Entry(modLightSetting).State = EntityState.Modified; try { _dbContext.SaveChanges(); } catch (DbUpdateConcurrencyException ex) { if (!LightSettingExists(lightSettingsId)) { return(new RepositoryActionResult <LightSetting>(null, RepositoryActionStatus.Error, ex)); } throw; } return(new RepositoryActionResult <LightSetting>(modLightSetting, RepositoryActionStatus.Updated)); }
public MapInfo(BinaryReader reader) { Index = reader.ReadInt32(); FileName = reader.ReadString(); Title = reader.ReadString(); MiniMap = reader.ReadUInt16(); Light = (LightSetting) reader.ReadByte(); if (Envir.LoadVersion >= 3) BigMap = reader.ReadUInt16(); if (Envir.LoadVersion >= 10) reader.ReadByte(); int count = reader.ReadInt32(); for (int i = 0; i < count; i++) SafeZones.Add(new SafeZoneInfo(reader) { Info = this }); count = reader.ReadInt32(); for (int i = 0; i < count; i++) Respawns.Add(new RespawnInfo(reader)); count = reader.ReadInt32(); for (int i = 0; i < count; i++) NPCs.Add(new NPCInfo(reader)); count = reader.ReadInt32(); for (int i = 0; i < count; i++) Movements.Add(new MovementInfo(reader)); }
public LightViewModel(LightSetting settings, Color defaultColor) { Name = settings.Name; this.defaultColor = defaultColor; activeColor = settings.Color; DurationSeconds = settings.DurationSeconds; }
private IEnumerator Fade(EDayState state) { Single rndStartOffset = UnityEngine.Random.value * 1f; yield return(new WaitForSeconds(rndStartOffset)); Single startIntensity = GetIntensity(); Single startRange = light.range; Color startColor = light.color; LightSetting targetSetting = GetTargetSetting(state); UpdateParticles(targetSetting); Single currTime = Time.time - Time.deltaTime; Single endTime = Time.time + 3.1f + UnityEngine.Random.value * 1f - rndStartOffset; WaitForEndOfFrame wait = new WaitForEndOfFrame(); while (currTime < endTime) { currTime += Time.deltaTime; if (currTime > endTime) { currTime = endTime; } Single lerp = (endTime - currTime) / 3.1f; Single nextIntensity = Mathf.Lerp(targetSetting.Intensity, startIntensity, lerp); Single nextRange = Mathf.Lerp(targetSetting.Range, startRange, lerp); Color nextColor = Color.Lerp(targetSetting.Color, startColor, lerp); light.enabled = (nextIntensity > 0f && nextRange > 0f && (nextColor.r > 0f || nextColor.g > 0f || nextColor.b > 0f)); SetIntensity(nextIntensity); light.range = nextRange; light.color = nextColor; yield return(wait); } yield break; }
public IHttpActionResult PostLightSetting(int growSettingId, int growPhaseSettingId, LightSettingDto lightSetting) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } Guid currentUserGuid = _userHelper.GetUserGuid(); LightSetting entity = _lightSettingFactory.PostLightSetting(lightSetting); RepositoryActionResult <LightSetting> result = _growSettingsRepository.PostLightSetting(entity, currentUserGuid); if (result.Status == RepositoryActionStatus.Created) { // map to dto LightSettingDto newLightSetting = _lightSettingFactory.GetLightSetting(result.Entity); lightSetting.LightSettingId = entity.LightSettingId; //TODO: this is wrong return address, find out correct one and replace return(Created(Request.RequestUri + "/" + result.Entity.LightSettingId, newLightSetting)); } throw new Exception(); } catch (Exception) { return(InternalServerError()); } }
private void UpdateParticles(LightSetting p_nextSetting) { UpdateParticles(m_dawn, p_nextSetting); UpdateParticles(m_day, p_nextSetting); UpdateParticles(m_dusk, p_nextSetting); UpdateParticles(m_night, p_nextSetting); }
public ClientMapInfo(BinaryReader BReader) { MapIndex = BReader.ReadInt32(); FileName = BReader.ReadString(); MapName = BReader.ReadString(); MiniMap = BReader.ReadInt32(); Lights = (LightSetting)BReader.ReadByte(); }
public LightningManager(LightChannel observedChannel) { lightChannel = observedChannel; availableModes = new List <LightSetting>(); BuildLightOptions(); menuItems = MenuFactory(availableModes); animationSpeed = AnimationSpeed.Normal; selectedSetting = availableModes[0]; }
public void SwitchLights(LightSetting setting, params Light[] lights) { LightSetting[] settings = new LightSetting[lights.Length]; for (int i = 0; i < settings.Length; i++) { settings[i] = setting; } Physical.ChangeLightStates(lights, settings); }
private void LightingManagerCallback(LightningManager sender, LightSetting setting) { commander.AddCommand(KrakenDevice.GenerateLightMessage(setting.mode, new ControlBlock(false, false, sender.lightChannel), new LEDConfiguration(0, 0, AnimationSpeed.Normal), new[] { 0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF })); }
public LightSettingDto GetLightSetting(LightSetting lightSetting) { return(new LightSettingDto { LightSettingId = lightSetting.LightSettingId, TurnOnLightTime = lightSetting.TurnOnLightTime, TurnOffLightTime = lightSetting.TurnOffLightTime, GrowPhaseSettingId = lightSetting.GrowPhaseSettingId }); }
public MapInfo(BinaryReader reader) { Index = reader.ReadInt32(); FileName = reader.ReadString(); Title = reader.ReadString(); MiniMap = reader.ReadUInt16(); Light = (LightSetting) reader.ReadByte(); if (Envir.LoadVersion >= 3) BigMap = reader.ReadUInt16(); int count = reader.ReadInt32(); for (int i = 0; i < count; i++) SafeZones.Add(new SafeZoneInfo(reader) { Info = this }); count = reader.ReadInt32(); for (int i = 0; i < count; i++) Respawns.Add(new RespawnInfo(reader)); count = reader.ReadInt32(); for (int i = 0; i < count; i++) NPCs.Add(new NPCInfo(reader)); count = reader.ReadInt32(); for (int i = 0; i < count; i++) Movements.Add(new MovementInfo(reader)); if (Envir.LoadVersion < 14) return; NoTeleport = reader.ReadBoolean(); NoReconnect = reader.ReadBoolean(); NoReconnectMap = reader.ReadString(); NoRandom = reader.ReadBoolean(); NoEscape = reader.ReadBoolean(); NoRecall = reader.ReadBoolean(); NoDrug = reader.ReadBoolean(); NoPosition = reader.ReadBoolean(); NoThrowItem = reader.ReadBoolean(); NoDropPlayer = reader.ReadBoolean(); NoDropMonster = reader.ReadBoolean(); NoNames = reader.ReadBoolean(); Fight = reader.ReadBoolean(); if (Envir.LoadVersion == 14) NeedHole = reader.ReadBoolean(); Fire = reader.ReadBoolean(); FireDamage = reader.ReadInt32(); Lightning = reader.ReadBoolean(); LightningDamage = reader.ReadInt32(); if (Envir.LoadVersion < 23) return; MapDarkLight = reader.ReadByte(); if (Envir.LoadVersion < 26) return; count = reader.ReadInt32(); for (int i = 0; i < count; i++) MineZones.Add(new MineZone(reader)); if (Envir.LoadVersion < 27) return; MineIndex = reader.ReadByte(); }
private void MenuItemOnChecked(object sender, RoutedEventArgs e) { menuItems.ForEach(x => x.IsChecked = x.Equals(sender)); var item = sender as MenuItem; if (item == null) { return; } var setting = availableModes.First(x => x.mode.ToString() == item.Header.ToString()); selectedSetting = setting; OnNewLightSetting.Invoke(this, setting); }
public void SwitchToLights(params Light[] lights) { Light[] allLights = (Light[])Enum.GetValues(typeof(Light)); LightSetting[] settings = new LightSetting[EtsInterface.LightsCount]; for (int i = 0; i < settings.Length; i++) { settings[i] = LightSetting.Off; } for (int i = 0; i < lights.Length; i++) { settings[(int)lights[i]] = LightSetting.On; } Physical.ChangeLightStates(allLights, settings); }
public IHttpActionResult PutLightSetting(int growSettingId, int growPhaseSettingId, int lightSettingsId, LightSettingDto lightSetting) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } Guid currentUserGuid = _userHelper.GetUserGuid(); LightSetting originalEntity = _growSettingsRepository.GetLightSetting(growSettingId, growPhaseSettingId, lightSettingsId, currentUserGuid); if (originalEntity == null) { return(NotFound()); } LightSetting modifiedGrowPhaseSetting = _lightSettingFactory.PutLightSetting(originalEntity, lightSetting); RepositoryActionResult <LightSetting> result = _growSettingsRepository.PutLightSetting(growSettingId, growPhaseSettingId, lightSettingsId, modifiedGrowPhaseSetting, currentUserGuid); switch (result.Status) { case RepositoryActionStatus.Updated: return(Ok(_lightSettingFactory.GetLightSetting(modifiedGrowPhaseSetting))); case RepositoryActionStatus.Error: return(InternalServerError()); case RepositoryActionStatus.NotFound: return(NotFound()); case RepositoryActionStatus.NothingModified: return(Ok(_lightSettingFactory.GetLightSetting(modifiedGrowPhaseSetting))); default: return(BadRequest()); } } catch (Exception) { return(InternalServerError()); } }
private static void UpdateParticles(LightSetting p_setting, LightSetting p_nextSetting) { if (p_setting.ParticleSys != null) { if (p_nextSetting.ParticleSys == p_setting.ParticleSys) { if (!p_setting.ParticleSys.isPlaying) { p_setting.ParticleSys.Play(); } } else if (p_setting.ParticleSys.isPlaying) { p_setting.ParticleSys.Stop(); } } }
public Light GetLight(LightSetting setting) { this.setting = setting; switch (setting.Vendor) { case LightVendor.Anda: Lighting = new AndaLight(); break; case LightVendor.Custom: //Lighting = new LightingOPT(setting.prm); Lighting = new LightCustom(setting.EasySerialPort); break; case LightVendor.OPT: Lighting = new LightingOPT(setting.EasySerialPort); break; } return(this); }
public IHttpActionResult GetLightSetting(int growSettingId, int growPhaseSettingId, int lightSettingsId) { try { Guid currentUserGuid = _userHelper.GetUserGuid(); LightSetting lightSetting = _growSettingsRepository.GetLightSetting(growSettingId, growPhaseSettingId, lightSettingsId, currentUserGuid); if (lightSetting == null) { return(NotFound()); } return(Ok(_lightSettingFactory.GetLightSetting(lightSetting))); } catch (Exception) { return(InternalServerError()); } }
private void DrawLights(LightSetting setting) { if (DXManager.Lights == null || DXManager.Lights.Count == 0) return; if (_lightTexture == null || _lightTexture.Disposed) { _lightTexture = new Texture(DXManager.Device, Settings.ScreenWidth, Settings.ScreenHeight, 1, Usage.RenderTarget, Format.A8R8G8B8, Pool.Default); _lightTexture.Disposing += FloorTexture_Disposing; _lightSurface = _lightTexture.GetSurfaceLevel(0); } Surface oldSurface = DXManager.CurrentSurface; DXManager.SetSurface(_lightSurface); Color Darkness = Color.Black; switch (MapDarkLight)//todo fill these with more usefull values :p { case 1: Darkness = Color.FromArgb(255, 20, 20, 20); break; case 2: Darkness = Color.LightSlateGray; break; case 3: Darkness = Color.SkyBlue; break; case 4: Darkness = Color.Goldenrod; break; default: Darkness = Color.Black; break; } DXManager.Device.Clear(ClearFlags.Target, setting == LightSetting.Night ? Darkness : Color.FromArgb(255, 50, 50, 50), 0, 0); int light; Point p; DXManager.SetBlend(true); DXManager.Device.RenderState.SourceBlend = Blend.SourceAlpha; for (int i = 0; i < Objects.Count; i++) { MapObject ob = Objects[i]; if (ob.Light > 0 && (!ob.Dead || ob == MapObject.User || ob.Race == ObjectType.Spell)) { light = ob.Light; int LightRange = light % 15; if (LightRange >= DXManager.Lights.Count) LightRange = DXManager.Lights.Count - 1; p = ob.DrawLocation; Color lightIntensity; switch (light / 15) { case 0://no light source lightIntensity = Color.FromArgb(255, 60, 60, 60); break; case 1: lightIntensity = Color.FromArgb(255, 120, 120, 120); break; case 2://Candle lightIntensity = Color.FromArgb(255, 180, 180, 180); break; case 3://Torch lightIntensity = Color.FromArgb(255, 240, 240, 240); break; default://Peddler Torch lightIntensity = Color.FromArgb(255, 255, 255, 255); break; } //NPCs use wider light width, but low source if (ob.Race == ObjectType.Merchant) lightIntensity = Color.FromArgb(255, 120, 120, 120); if (DXManager.Lights[LightRange] != null && !DXManager.Lights[LightRange].Disposed) { p.Offset(-(DXManager.LightSizes[LightRange].X / 2) - (CellWidth / 2) + 10, -(DXManager.LightSizes[LightRange].Y / 2) - (CellHeight / 2) - 5); DXManager.Sprite.Draw2D(DXManager.Lights[LightRange], PointF.Empty, 0, p, lightIntensity); // ob is MonsterObject && ob.AI != 6 ? Color.PaleVioletRed : } } if (!Settings.Effect) continue; for (int e = 0; e < ob.Effects.Count; e++) { Effect effect = ob.Effects[e]; if (!effect.Blend || CMain.Time < effect.Start || (!(effect is Missile) && effect.Light < ob.Light)) continue; light = effect.Light; p = effect.DrawLocation; if (DXManager.Lights[light] != null && !DXManager.Lights[light].Disposed) { p.Offset(-(DXManager.LightSizes[light].X / 2) - (CellWidth / 2) + 10, -(DXManager.LightSizes[light].Y / 2) - (CellHeight / 2) - 5); DXManager.Sprite.Draw2D(DXManager.Lights[light], PointF.Empty, 0, p, effect.LightColour); } } } if (Settings.Effect) for (int e = 0; e < Effects.Count; e++) { Effect effect = Effects[e]; if (!effect.Blend || CMain.Time < effect.Start) continue; light = effect.Light; if (light == 0) continue; p = effect.DrawLocation; if (DXManager.Lights[light] != null && !DXManager.Lights[light].Disposed) { p.Offset(-(DXManager.LightSizes[light].X / 2) - (CellWidth / 2) + 10, -(DXManager.LightSizes[light].Y / 2) - (CellHeight / 2) - 5); DXManager.Sprite.Draw2D(DXManager.Lights[light], PointF.Empty, 0, p, Color.White); } } for (int y = MapObject.User.Movement.Y - ViewRangeY - 24; y <= MapObject.User.Movement.Y + ViewRangeY + 24; y++) { if (y < 0) continue; if (y >= Height) break; for (int x = MapObject.User.Movement.X - ViewRangeX - 24; x < MapObject.User.Movement.X + ViewRangeX + 24; x++) { if (x < 0) continue; if (x >= Width) break; int imageIndex = (M2CellInfo[x, y].FrontImage & 0x7FFF) - 1; if (M2CellInfo[x, y].Light <= 0 || M2CellInfo[x, y].Light >= 10) continue; Color lightIntensity = Color.FromArgb(255, 255, 255, 255); //Color lightIntensity = Color.FromArgb(255, 97, 200, 200); -- this colour matches mir3 //this code would look great on shanda mir2 maps (give a blue glow to blue town lights), but it'll also give blue glow to mir3 maps //if (M2CellInfo[x, y].Light == 4) // lightIntensity = Color.FromArgb(255, 100,100,200); light = M2CellInfo[x, y].Light * 3; int fileIndex = M2CellInfo[x, y].FrontIndex; p = new Point( (x + OffSetX - MapObject.User.Movement.X) * CellWidth + MapObject.User.OffSetMove.X, (y + OffSetY - MapObject.User.Movement.Y) * CellHeight + MapObject.User.OffSetMove.Y + 32); if (M2CellInfo[x, y].FrontAnimationFrame > 0) p.Offset(Libraries.MapLibs[fileIndex].GetOffSet(imageIndex)); if (light >= DXManager.Lights.Count) light = DXManager.Lights.Count - 1; if (DXManager.Lights[light] != null && !DXManager.Lights[light].Disposed) { p.Offset(-(DXManager.LightSizes[light].X / 2) - (CellWidth / 2) + 10, -(DXManager.LightSizes[light].Y / 2) - (CellHeight / 2) - 5); DXManager.Sprite.Draw2D(DXManager.Lights[light], PointF.Empty, 0, p, lightIntensity); } } } DXManager.SetBlend(false); DXManager.SetSurface(oldSurface); DXManager.Device.RenderState.SourceBlend = Blend.DestinationColor; DXManager.Device.RenderState.DestinationBlend = Blend.BothInvSourceAlpha; DXManager.Sprite.Draw2D(_lightTexture, PointF.Empty, 0, PointF.Empty, Color.White); DXManager.Sprite.End(); DXManager.Sprite.Begin(SpriteFlags.AlphaBlend); }
protected override void Dispose(bool disposing) { if (disposing) { Objects.Clear(); MapButtons = 0; MouseLocation = Point.Empty; InputDelay = 0; NextAction = 0; M2CellInfo = null; Width = 0; Height = 0; FileName = String.Empty; Title = String.Empty; MiniMap = 0; BigMap = 0; Lights = 0; FloorValid = false; LightsValid = false; MapDarkLight = 0; Music = 0; if (_floorSurface != null && !_floorSurface.Disposed) _floorSurface.Dispose(); if (_lightSurface != null && !_lightSurface.Disposed) _lightSurface.Dispose(); AnimationCount = 0; Effects.Clear(); } base.Dispose(disposing); }
private void TimeOfDay(S.TimeOfDay p) { Lights = p.Lights; switch (Lights) { case LightSetting.Day: case LightSetting.Normal: MiniMapDialog.LightSetting.Index = 2093; break; case LightSetting.Dawn: MiniMapDialog.LightSetting.Index = 2095; break; case LightSetting.Evening: MiniMapDialog.LightSetting.Index = 2094; break; case LightSetting.Night: MiniMapDialog.LightSetting.Index = 2092; break; } }
protected override void Dispose(bool disposing) { if (disposing) { Scene = null; User = null; MoveTime = 0; AttackTime = 0; NextRunTime = 0; CanMove = false; CanRun = false; MapControl = null; MainDialog = null; ChatDialog = null; ChatControl = null; InventoryDialog = null; CharacterDialog = null; StorageDialog = null; BeltDialog = null; MiniMapDialog = null; InspectDialog = null; OptionDialog = null; MenuDialog = null; NPCDialog = null; QuestDetailDialog = null; QuestListDialog = null; QuestLogDialog = null; QuestTrackingDialog = null; GameShopDialog = null; MentorDialog = null; RelationshipDialog = null; CharacterDuraPanel = null; DuraStatusPanel = null; HoverItem = null; SelectedCell = null; PickedUpGold = false; UseItemTime = 0; PickUpTime = 0; InspectTime = 0; DisposeItemLabel(); AMode = 0; PMode = 0; Lights = 0; NPCTime = 0; NPCID = 0; DefaultNPCID = 0; for (int i = 0; i < OutputLines.Length; i++) if (OutputLines[i] != null && OutputLines[i].IsDisposed) OutputLines[i].Dispose(); OutputMessages.Clear(); OutputMessages = null; } base.Dispose(disposing); }
public LightSetting PutLightSetting(LightSetting originalEntity, LightSettingDto lightSetting) { originalEntity.TurnOffLightTime = lightSetting.TurnOffLightTime; originalEntity.TurnOnLightTime = lightSetting.TurnOnLightTime; return(originalEntity); }
private void AdjustLights() { LightSetting oldLights = Lights; int hours = (Now.Hour * 2) % 24; if (hours == 6 || hours == 7) Lights = LightSetting.Dawn; else if (hours >= 8 && hours <= 15) Lights = LightSetting.Day; else if (hours == 16 || hours == 17) Lights = LightSetting.Evening; else Lights = LightSetting.Night; if (oldLights == Lights) return; Broadcast(new S.TimeOfDay { Lights = Lights }); }
protected override void ReadPacket(BinaryReader reader) { FileName = reader.ReadString(); Title = reader.ReadString(); MiniMap = reader.ReadUInt16(); BigMap = reader.ReadUInt16(); Lights = (LightSetting)reader.ReadByte(); Location = new Point(reader.ReadInt32(), reader.ReadInt32()); Direction = (MirDirection)reader.ReadByte(); MapDarkLight = reader.ReadByte(); Music = reader.ReadUInt16(); }
private void DrawLights(LightSetting setting) { if (DXManager.Lights == null || DXManager.Lights.Count == 0) return; if (_lightTexture == null || _lightTexture.Disposed) { _lightTexture = new Texture(DXManager.Device, Settings.ScreenWidth, Settings.ScreenHeight, 1, Usage.RenderTarget, Format.A8R8G8B8, Pool.Default); _lightTexture.Disposing += FloorTexture_Disposing; _lightSurface = _lightTexture.GetSurfaceLevel(0); } Surface oldSurface = DXManager.CurrentSurface; DXManager.SetSurface(_lightSurface); #region Night Lights Color Darkness = Color.Black; switch (MapDarkLight) { case 1: Darkness = Color.FromArgb(255, 20, 20, 20); break; case 2: Darkness = Color.LightSlateGray; break; case 3: Darkness = Color.SkyBlue; break; case 4: Darkness = Color.Goldenrod; break; default: Darkness = Color.Black; break; } DXManager.Device.Clear(ClearFlags.Target, setting == LightSetting.Night ? Darkness : Color.FromArgb(255, 50, 50, 50), 0, 0); #endregion int light; Point p; DXManager.SetBlend(true); DXManager.Device.RenderState.SourceBlend = Blend.SourceAlpha; #region Object Lights (Player/Mob/NPC) for (int i = 0; i < Objects.Count; i++) { MapObject ob = Objects[i]; if (ob.Light > 0 && (!ob.Dead || ob == MapObject.User || ob.Race == ObjectType.Spell)) { light = ob.Light; int LightRange = light % 15; if (LightRange >= DXManager.Lights.Count) LightRange = DXManager.Lights.Count - 1; p = ob.DrawLocation; Color lightColour = ob.LightColour; if (ob.Race == ObjectType.Player) { switch (light / 15) { case 0://no light source lightColour = Color.FromArgb(255, 60, 60, 60); break; case 1: lightColour = Color.FromArgb(255, 120, 120, 120); break; case 2://Candle lightColour = Color.FromArgb(255, 180, 180, 180); break; case 3://Torch lightColour = Color.FromArgb(255, 240, 240, 240); break; default://Peddler Torch lightColour = Color.FromArgb(255, 255, 255, 255); break; } } else if (ob.Race == ObjectType.Merchant) { lightColour = Color.FromArgb(255, 120, 120, 120); } if (DXManager.Lights[LightRange] != null && !DXManager.Lights[LightRange].Disposed) { p.Offset(-(DXManager.LightSizes[LightRange].X / 2) - (CellWidth / 2), -(DXManager.LightSizes[LightRange].Y / 2) - (CellHeight / 2) -5); DXManager.Sprite.Draw2D(DXManager.Lights[LightRange], PointF.Empty, 0, p, lightColour); } } #region Object Effect Lights if (!Settings.Effect) continue; for (int e = 0; e < ob.Effects.Count; e++) { Effect effect = ob.Effects[e]; if (!effect.Blend || CMain.Time < effect.Start || (!(effect is Missile) && effect.Light < ob.Light)) continue; light = effect.Light; p = effect.DrawLocation; if (DXManager.Lights[light] != null && !DXManager.Lights[light].Disposed) { p.Offset(-(DXManager.LightSizes[light].X / 2) - (CellWidth / 2), -(DXManager.LightSizes[light].Y / 2) - (CellHeight / 2) - 5); DXManager.Sprite.Draw2D(DXManager.Lights[light], PointF.Empty, 0, p, effect.LightColour); } } #endregion } #endregion #region Map Effect Lights if (Settings.Effect) { for (int e = 0; e < Effects.Count; e++) { Effect effect = Effects[e]; if (!effect.Blend || CMain.Time < effect.Start) continue; light = effect.Light; if (light == 0) continue; p = effect.DrawLocation; if (DXManager.Lights[light] != null && !DXManager.Lights[light].Disposed) { p.Offset(-(DXManager.LightSizes[light].X / 2) - (CellWidth / 2), -(DXManager.LightSizes[light].Y / 2) - (CellHeight / 2) - 5); DXManager.Sprite.Draw2D(DXManager.Lights[light], PointF.Empty, 0, p, Color.White); } } } #endregion #region Map Lights for (int y = MapObject.User.Movement.Y - ViewRangeY - 24; y <= MapObject.User.Movement.Y + ViewRangeY + 24; y++) { if (y < 0) continue; if (y >= Height) break; for (int x = MapObject.User.Movement.X - ViewRangeX - 24; x < MapObject.User.Movement.X + ViewRangeX + 24; x++) { if (x < 0) continue; if (x >= Width) break; int imageIndex = (M2CellInfo[x, y].FrontImage & 0x7FFF) - 1; //if (M2CellInfo[x, y].Light <= 0 || M2CellInfo[x, y].Light >= 10) continue; if (M2CellInfo[x, y].Light == 0) continue; Color lightIntensity; light = (M2CellInfo[x, y].Light % 10) * 3; switch (M2CellInfo[x, y].Light / 10) { case 1: lightIntensity = Color.FromArgb(255, 255, 255, 255); break; case 2: lightIntensity = Color.FromArgb(255, 120, 180, 255); break; case 3: lightIntensity = Color.FromArgb(255, 255, 180, 120); break; case 4: lightIntensity = Color.FromArgb(255, 22, 160, 5); break; default: lightIntensity = Color.FromArgb(255, 255, 255, 255); break; } int fileIndex = M2CellInfo[x, y].FrontIndex; p = new Point( (x + OffSetX - MapObject.User.Movement.X) * CellWidth + MapObject.User.OffSetMove.X, (y + OffSetY - MapObject.User.Movement.Y) * CellHeight + MapObject.User.OffSetMove.Y + 32); if (M2CellInfo[x, y].FrontAnimationFrame > 0) p.Offset(Libraries.MapLibs[fileIndex].GetOffSet(imageIndex)); if (light >= DXManager.Lights.Count) light = DXManager.Lights.Count - 1; if (DXManager.Lights[light] != null && !DXManager.Lights[light].Disposed) { p.Offset(-(DXManager.LightSizes[light].X / 2) - (CellWidth / 2) + 10, -(DXManager.LightSizes[light].Y / 2) - (CellHeight / 2) - 5); DXManager.Sprite.Draw2D(DXManager.Lights[light], PointF.Empty, 0, p, lightIntensity); } } } #endregion DXManager.SetBlend(false); DXManager.SetSurface(oldSurface); DXManager.Device.RenderState.SourceBlend = Blend.DestinationColor; DXManager.Device.RenderState.DestinationBlend = Blend.BothInvSourceAlpha; DXManager.Sprite.Draw2D(_lightTexture, PointF.Empty, 0, PointF.Empty, Color.White); DXManager.Sprite.End(); DXManager.Sprite.Begin(SpriteFlags.AlphaBlend); }
private void DrawLights(LightSetting setting) { if (DXManager.Lights == null || DXManager.Lights.Count == 0) return; if (_lightTexture == null || _lightTexture.Disposed) { _lightTexture = new Texture(DXManager.Device, Settings.ScreenWidth, Settings.ScreenHeight, 1, Usage.RenderTarget, Format.A8R8G8B8, Pool.Default); _lightTexture.Disposing += FloorTexture_Disposing; _lightSurface = _lightTexture.GetSurfaceLevel(0); } Surface oldSurface = DXManager.CurrentSurface; DXManager.SetSurface(_lightSurface); DXManager.Device.Clear(ClearFlags.Target, setting == LightSetting.Night ? Color.Black : Color.FromArgb(255, 50, 50, 50), 0, 0); int light; Point p; DXManager.SetBlend(true); DXManager.Device.RenderState.SourceBlend = Blend.SourceAlpha; for (int i = 0; i < Objects.Count; i++) { MapObject ob = Objects[i]; if (ob.Light > 0 && (!ob.Dead || ob == MapObject.User || ob.Race == ObjectType.Spell)) { light = ob.Light; if (light >= DXManager.Lights.Count) light = DXManager.Lights.Count - 1; p = ob.DrawLocation; p.Offset(((light + 1)*-65 + CellWidth)/2, ((light + 1)*-50 + CellHeight)/2); if (DXManager.Lights[light] != null && !DXManager.Lights[light].Disposed) DXManager.Sprite.Draw2D(DXManager.Lights[light], PointF.Empty, 0, p, ob is MonsterObject && ob.AI != 6 ? Color.PaleVioletRed : Color.White); } if (!Settings.Effect) continue; for (int e = 0; e < ob.Effects.Count; e++) { Effect effect = ob.Effects[e]; if (!effect.Blend || CMain.Time < effect.Start || (!(effect is Missile) && effect.Light < ob.Light)) continue; light = effect.Light; p = effect.DrawLocation; p.Offset(((light + 1)*-65 + CellWidth)/2, ((light + 1)*-50 + CellHeight)/2); if (DXManager.Lights[light] != null && !DXManager.Lights[light].Disposed) DXManager.Sprite.Draw2D(DXManager.Lights[light], PointF.Empty, 0, p, Color.White); } } if (Settings.Effect) for (int e = 0; e < Effects.Count; e++) { Effect effect = Effects[e]; if (!effect.Blend || CMain.Time < effect.Start) continue; light = effect.Light; p = effect.DrawLocation; p.Offset(((light + 1)*-65 + CellWidth)/2, ((light + 1)*-50 + CellHeight)/2); if (DXManager.Lights[light] != null && !DXManager.Lights[light].Disposed) DXManager.Sprite.Draw2D(DXManager.Lights[light], PointF.Empty, 0, p, Color.White); } for (int y = MapObject.User.Movement.Y - ViewRangeY - 10; y <= MapObject.User.Movement.Y + ViewRangeY + 10; y++) { if (y < 0) continue; if (y >= Height) break; for (int x = MapObject.User.Movement.X - ViewRangeX - 10; x < MapObject.User.Movement.X + ViewRangeX + 10; x++) { if (x < 0) continue; if (x >= Width) break; int imageIndex = (M2CellInfo[x, y].FrontImage & 0x7FFF) - 1; if (M2CellInfo[x, y].Light <= 0 || M2CellInfo[x, y].Light >= 10) continue; light = M2CellInfo[x, y].Light*3; int fileIndex = M2CellInfo[x, y].FileIndex; p = new Point( (x + OffSetX - MapObject.User.Movement.X) * CellWidth + MapObject.User.OffSetMove.X, (y + OffSetY - MapObject.User.Movement.Y) * CellHeight + MapObject.User.OffSetMove.Y + 32); p.Offset(((light + 1)*-65 + CellWidth)/2, ((light + 1)*-50 + CellHeight)/2); if (M2CellInfo[x, y].AnimationFrame > 0) p.Offset(Libraries.Objects[fileIndex].GetOffSet(imageIndex)); if (light > DXManager.Lights.Count) light = DXManager.Lights.Count - 1; if (DXManager.Lights[light] != null && !DXManager.Lights[light].Disposed) DXManager.Sprite.Draw2D(DXManager.Lights[light], PointF.Empty, 0, p, Color.White); } } DXManager.SetBlend(false); DXManager.SetSurface(oldSurface); DXManager.Device.RenderState.SourceBlend = Blend.DestinationColor; DXManager.Device.RenderState.DestinationBlend = Blend.BothInvSourceAlpha; DXManager.Sprite.Draw2D(_lightTexture, PointF.Empty, 0, PointF.Empty, Color.White); DXManager.Sprite.End(); DXManager.Sprite.Begin(SpriteFlags.AlphaBlend); }
protected override void ReadPacket(BinaryReader reader) { Lights = (LightSetting)reader.ReadByte(); }
protected override void ReadPacket(BinaryReader reader) { FileName = reader.ReadString(); Title = reader.ReadString(); MiniMap = reader.ReadUInt16(); BigMap = reader.ReadUInt16(); Lights = (LightSetting) reader.ReadByte(); }
public void SwitchAllLights(LightSetting setting) { Light[] allLights = (Light[])Enum.GetValues(typeof(Light)); SwitchLights(setting, allLights); }
public MapInfo(BinaryReader reader) { Index = reader.ReadInt32(); FileName = reader.ReadString(); Title = reader.ReadString(); MiniMap = reader.ReadUInt16(); Light = (LightSetting)reader.ReadByte(); if (Settings.DatabaseVersion >= 3) { BigMap = reader.ReadUInt16(); } int count = reader.ReadInt32(); for (int i = 0; i < count; i++) { SafeZones.Add(new SafeZoneInfo(reader) { Info = this }); } count = reader.ReadInt32(); for (int i = 0; i < count; i++) { Respawns.Add(new RespawnInfo(reader, Settings.DatabaseVersion, Settings.CustomDatabaseVersion)); } if (Settings.DatabaseVersion <= 33) { count = reader.ReadInt32(); for (int i = 0; i < count; i++) { NPCs.Add(new NPCInfo(reader)); } } count = reader.ReadInt32(); for (int i = 0; i < count; i++) { Movements.Add(new MovementInfo(reader)); } if (Settings.DatabaseVersion < 14) { return; } NoTeleport = reader.ReadBoolean(); NoReconnect = reader.ReadBoolean(); NoReconnectMap = reader.ReadString(); NoRandom = reader.ReadBoolean(); NoEscape = reader.ReadBoolean(); NoRecall = reader.ReadBoolean(); NoDrug = reader.ReadBoolean(); NoPosition = reader.ReadBoolean(); NoThrowItem = reader.ReadBoolean(); NoDropPlayer = reader.ReadBoolean(); NoDropMonster = reader.ReadBoolean(); NoNames = reader.ReadBoolean(); Fight = reader.ReadBoolean(); if (Settings.DatabaseVersion == 14) { NeedHole = reader.ReadBoolean(); } Fire = reader.ReadBoolean(); FireDamage = reader.ReadInt32(); Lightning = reader.ReadBoolean(); LightningDamage = reader.ReadInt32(); if (Settings.DatabaseVersion < 23) { return; } MapDarkLight = reader.ReadByte(); if (Settings.DatabaseVersion < 26) { return; } count = reader.ReadInt32(); for (int i = 0; i < count; i++) { MineZones.Add(new MineZone(reader)); } if (Settings.DatabaseVersion < 27) { return; } MineIndex = reader.ReadByte(); if (Settings.DatabaseVersion < 33) { return; } NoMount = reader.ReadBoolean(); NeedBridle = reader.ReadBoolean(); if (Settings.DatabaseVersion < 42) { return; } NoFight = reader.ReadBoolean(); if (Settings.DatabaseVersion < 53) { return; } Music = reader.ReadUInt16(); if (Settings.DatabaseVersion < 103) { return; } NoHero = reader.ReadBoolean(); if (Settings.DatabaseVersion < 110) { return; } GT = reader.ReadBoolean(); if (Settings.DatabaseVersion < 117) { return; } SafeZone = reader.ReadBoolean(); if (Settings.DatabaseVersion > 135) { count = reader.ReadInt32(); for (int i = 0; i < count; i++) { PublicEvents.Add(new PublicEventInfo(reader)); } } }
/// <summary> /// Find the light transforms and lights to dim with the animation /// </summary> /// <param name="state">The startstate of the partmodule</param> public override void OnStart(StartState state) { base.OnStart(state); modelBaseField = Fields["numModel"]; modelBaseField.guiName = Localizer.GetStringByTag("#LOC_KERBETROTTER.light.type"); modelUIChooser = (UI_ChooseOption)modelBaseField.uiControlEditor; //find all the lights lightSettings = new List <LightSetting>(); //Search in the named transforms for the lights if (transforms != string.Empty) { string[] transformNames = transforms.Split(','); //find all the transforms List <Transform> transformsList = new List <Transform>(); for (int i = 0; i < transformNames.Length; i++) { LightSetting lightSetting = new LightSetting(); //get all the transforms lightSetting.transforms.AddRange(part.FindModelTransforms(transformNames[i].Trim())); //get all the lights in the transforms for (int j = 0; j < lightSetting.transforms.Count; j++) { lightSetting.lights.AddRange(lightSetting.transforms[j].gameObject.GetComponentsInChildren <Light>()); } //get all the intensities of the lights for (int j = 0; j < lightSetting.lights.Count; j++) { lightSetting.intensities.Add(lightSetting.lights[j].intensity); } lightSettings.Add(lightSetting); } string[] visible = visibleNames.Split(','); for (int i = 0; i < visible.Length; i++) { visible[i] = visible[i].Trim(); } if (visible.Length == transformNames.Length) { modelUIChooser.options = visible; } else { //set the changes for the modelchooser modelUIChooser.options = transformNames; } //when there is only one model, we do not need to show the controls if (transformNames.Length < 2) { modelBaseField.guiActive = false; modelBaseField.guiActiveEditor = false; } } else { Debug.LogError("ModuleKerbetrotterMultiLight: No light transform defined!)"); } //update the initial state of the lights updateLights(currentRateState); }
protected override void ReadPacket(BinaryReader reader) { FileName = reader.ReadString(); Title = reader.ReadString(); MiniMap = reader.ReadUInt16(); BigMap = reader.ReadUInt16(); Lights = (LightSetting)reader.ReadByte(); byte bools = reader.ReadByte(); if ((bools & 0x01) == 0x01) Lightning = true; if ((bools & 0x02) == 0x02) Fire = true; MapDarkLight = reader.ReadByte(); Music = reader.ReadUInt16(); }
public MapInfo(BinaryReader reader, Manager manager) { Manager Envir = manager; this.manager = manager; MapIndex = reader.ReadInt32(); FileName = reader.ReadString(); Title = reader.ReadString(); MiniMap = reader.ReadUInt16(); Light = (LightSetting)reader.ReadByte(); if (Envir.LoadVersion >= 3) { BigMap = reader.ReadUInt16(); } int count = reader.ReadInt32(); for (int i = 0; i < count; i++) { SafeZones.Add(new SafeZoneInfo(reader) { Info = this }); } count = reader.ReadInt32(); for (int i = 0; i < count; i++) { Respawns.Add(new RespawnInfo(reader, Envir.LoadVersion, Envir.LoadCustomVersion, Envir)); } if (Envir.LoadVersion <= 33) { count = reader.ReadInt32(); for (int i = 0; i < count; i++) { NPCs.Add(new NPCInfo(reader, Envir)); } } count = reader.ReadInt32(); for (int i = 0; i < count; i++) { Movements.Add(new MovementInfo(reader, Envir)); } if (Envir.LoadVersion < 14) { return; } NoTeleport = reader.ReadBoolean(); NoReconnect = reader.ReadBoolean(); NoReconnectMap = reader.ReadString(); NoRandom = reader.ReadBoolean(); NoEscape = reader.ReadBoolean(); NoRecall = reader.ReadBoolean(); NoDrug = reader.ReadBoolean(); NoPosition = reader.ReadBoolean(); NoThrowItem = reader.ReadBoolean(); NoDropPlayer = reader.ReadBoolean(); NoDropMonster = reader.ReadBoolean(); NoNames = reader.ReadBoolean(); Fight = reader.ReadBoolean(); if (Envir.LoadVersion == 14) { NeedHole = reader.ReadBoolean(); } Fire = reader.ReadBoolean(); FireDamage = reader.ReadInt32(); Lightning = reader.ReadBoolean(); LightningDamage = reader.ReadInt32(); if (Envir.LoadVersion < 23) { return; } MapDarkLight = reader.ReadByte(); if (Envir.LoadVersion < 26) { return; } count = reader.ReadInt32(); for (int i = 0; i < count; i++) { MineZones.Add(new MineZone(reader)); } if (Envir.LoadVersion < 27) { return; } MineIndex = reader.ReadByte(); if (Envir.LoadVersion < 33) { return; } NoMount = reader.ReadBoolean(); NeedBridle = reader.ReadBoolean(); if (Envir.LoadVersion < 42) { return; } NoFight = reader.ReadBoolean(); if (Envir.LoadVersion < 53) { return; } Music = reader.ReadUInt16(); if (Envir.LoadVersion < 78) { return; } NoTownTeleport = reader.ReadBoolean(); if (Envir.LoadVersion < 79) { return; } NoReincarnation = reader.ReadBoolean(); }
public IHttpActionResult SwitchStatus(string light) { LightSetting lightSetting = null; var settings = GetSettings(); foreach (var setting in settings) { if (setting.AlexaName.Equals(light, StringComparison.InvariantCultureIgnoreCase)) { lightSetting = setting; break; } } if (lightSetting == null) { return(NotFound()); } foreach (var key in _lightStatusCache.Keys) { if (key.StartsWith("LightStatus_" + lightSetting.StatusAddress, StringComparison.InvariantCulture)) { string value; _lightStatusCache.TryRemove(key, out value); } } lock (knxLock) { var localAddress = ConfigurationManager.AppSettings["localAddress"]; var localPort = GetNextRandom(); var remoteAddress = ConfigurationManager.AppSettings["remoteAddress"]; var remotePort = int.Parse(ConfigurationManager.AppSettings["remotePort"]); var connection = new KnxConnectionTunneling(remoteAddress, remotePort, localAddress, localPort); try { connection.KnxStatusDelegate = (string address, string state) => { Debug.WriteLine("ReceiveKnxStatus: " + address); if (state != null && (int)state[0] > 0) { _lightStatusCache["LightStatus_" + address] = "on"; } else { _lightStatusCache["LightStatus_" + address] = "off"; } }; connection.Connect(); Thread.Sleep(500); connection.RequestStatus(lightSetting.StatusAddress); //Wait so statuses can update for (int i = 0; i < 100; i++) { var statusCache = _lightStatusCache.Keys.FirstOrDefault(item => item.StartsWith("LightStatus_" + lightSetting.StatusAddress, StringComparison.CurrentCulture)); if (statusCache != null) { break; } else { Thread.Sleep(100); } } } catch (Exception ex) { Debug.WriteLine("ERROR: " + ex.ToString()); } finally { if (connection != null) { connection.Disconnect(); } } } string lightingStatus; _lightStatusCache.TryGetValue("LightStatus_" + lightSetting.StatusAddress, out lightingStatus); if (lightingStatus != null && lightingStatus.Equals("on", StringComparison.InvariantCultureIgnoreCase)) { return(Ok(1)); } else { return(Ok(0)); } }