using System; using System.Collections.Generic; using System.Linq; using System.Text; using Ion.Storage; using Holo.Managers; using System.Data; namespace Holo.Virtual.Rooms.Items { public class MoodLight { public static void refreshWallitem(int roomID, int itemID, string cctName, string wallPosition, string itemVariable) { roomManager.getRoom(roomID).sendData("AU" + itemID + Convert.ToChar(9) + cctName + Convert.ToChar(9) + " " + wallPosition + Convert.ToChar(9) + itemVariable); } public static string getSettings(int roomID) { try { DataRow dRow; using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient()) { dRow = dbClient.ReadDataRow("SELECT preset_cur,preset_1,preset_2,preset_3 FROM furniture_moodlight WHERE roomid = '" + roomID + "'"); } string settingPack = Encoding.encodeVL64(3) + Encoding.encodeVL64(Convert.ToInt32(dRow["preset_cur"])); for (int i = 1; i <= 3; i++) { string[] curPresetData = dRow[i].ToString().Split(Char.Parse(",")); settingPack += Encoding.encodeVL64(i) + Encoding.encodeVL64(int.Parse(curPresetData[0])) + curPresetData[1] + Convert.ToChar(2) + Encoding.encodeVL64(int.Parse(curPresetData[2])); } return settingPack; } catch { return null; } } public static void setSettings(int roomID, bool isEnabled, int presetID, int bgState, string presetColour, int alphaDarkF) { int itemID; using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient()) { itemID = dbClient.ReadInt32("SELECT id FROM furniture_moodlight WHERE roomid = '" + roomID + "'"); } string newPresetValue; if (isEnabled == false) { string curPresetValue; using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient()) { curPresetValue = dbClient.ReadString("SELECT var FROM furniture WHERE id = '" + itemID + "'"); } if (curPresetValue.Substring(0, 1) == "2") { newPresetValue = "1" + curPresetValue.Substring(1); } else { newPresetValue = "2" + curPresetValue.Substring(1); } using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient()) { dbClient.ExecuteQuery("UPDATE furniture SET var = '" + newPresetValue + "' WHERE id = '" + itemID.ToString() + "' LIMIT 1"); } } else { newPresetValue = "2" + "," + presetID.ToString() + "," + bgState.ToString() + "," + presetColour + "," + alphaDarkF.ToString(); using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient()) { dbClient.AddParamWithValue("var", newPresetValue); dbClient.AddParamWithValue("preset", bgState.ToString() + ", " + presetColour + ", " + alphaDarkF.ToString()); dbClient.ExecuteQuery("UPDATE furniture SET var = @var WHERE id = '" + itemID.ToString() + "' LIMIT 1"); dbClient.ExecuteQuery("UPDATE furniture_moodlight SET preset_cur = '" + presetID.ToString() + "',preset_" + presetID.ToString() + "= @preset WHERE id = '" + itemID.ToString() + "' LIMIT 1"); } } string wallPosition; using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient()) { wallPosition = dbClient.ReadString("SELECT wallpos FROM furniture WHERE id = '" + itemID + "'"); } refreshWallitem(roomID, itemID, "roomdimmer", wallPosition, newPresetValue); } } }