public void DynamicCustom() { DivisorItem divisorItem = new DivisorItem(1); TextItem textItem = new TextItem("Dynamic Test!", Color.blue); SwitchItem switchItem1 = new SwitchItem("Switch item1", "switch1", true); SwitchItem switchItem2 = new SwitchItem("Switch item2", "switch2", false); SliderItem sliderItem1 = new SliderItem("Slider item1", "slider1", 50, 0, 100, 0, 0, ""); SliderItem sliderItem2 = new SliderItem("Slider item2", "slider2", 0.5f, 0, 1, 2, 0, ""); ToggleItem toggleItem = new ToggleItem( new String[] { "Toggle1", "Toggle2" }, "toggles", new String[] { "toggle value1", "toggle value2" }, "value2"); DialogItem[] items = new DialogItem[] { divisorItem, textItem, switchItem1, switchItem2, sliderItem1, sliderItem2, toggleItem }; if (customControl != null) { customControl.SetItem(items); customControl.Show(); XDebug.Log("CurrentValue : " + customControl.CurrentValue.Select(e => e.Key + "=" + e.Value).Aggregate((s, a) => s + ", " + a)); } }
private void PopulateSwitchesInfo() { // grab it in a local in case assembly load causes static to null out // Until we start listening to assembly load events, we should not cache! Switch[] switchesLocal = null; // switches if (switchesLocal == null) { switchesLocal = GetSwitchesFromLoadedAssemblies(); switches = switchesLocal; Array.Sort(switchesLocal, new SwitchSorter()); } foreach (Switch sw in switchesLocal) { bool value; if (sw is TraceSwitch) { value = ((TraceSwitch)sw).Level > TraceLevel.Off; } else if (sw is BooleanSwitch) { value = ((BooleanSwitch)sw).Enabled; } else { continue; } ListViewItem item = new SwitchItem(sw); item.Checked = value; switchesList.Items.Add(item); } }
public void Action() { if (item is SwitchItem) { SwitchItem switchItem = (SwitchItem)item; switchItem.Value = !switchItem.Value; item.Property.Change(); } }
private CaseBlock /*!*/ NewBlock(SwitchItem item) { BoundItemsBag <BoundExpression> caseValueBag = item is CaseItem caseItem ? _binder.BindWholeExpression(caseItem.CaseVal, BoundAccess.Read) : BoundItemsBag <BoundExpression> .Empty; // BoundItem -eq null => DefaultItem return(WithNewOrdinal(new CaseBlock(caseValueBag) { PhpSyntax = item, Naming = _naming })); }
private CaseBlock /*!*/ NewBlock(SwitchItem item) { var caseitem = item as CaseItem; BoundExpression caseValue = // null => DefaultItem (caseitem != null) ? _binder.BindExpression(caseitem.CaseVal, BoundAccess.Read) : null; return(WithNewOrdinal(new CaseBlock(caseValue) { PhpSyntax = item, Naming = _naming })); }
void Start() { // Init Db _Id = GetPrefabID(); if (!QPatch.Database.SwitchItemList.Exists(w => w.Id == _Id)) { var newSwitch = new SwitchItem(_Id); QPatch.Database.SwitchItemList.Add(newSwitch); QPatch.Database.Save(); } Light = AD3D_Common.GameObjectFinder.FindByName(gameObject, "LightItem").GetComponent <Light>(); }
private void SwitchChecked(object sender, ItemCheckEventArgs e) { SwitchItem item = (SwitchItem)switchesList.Items[e.Index]; Switch sw = item.Value; bool value = e.NewValue == CheckState.Checked; if (sw is TraceSwitch) { ((TraceSwitch)sw).Level = (value ? TraceLevel.Verbose : TraceLevel.Off); } else if (sw is BooleanSwitch) { ((BooleanSwitch)sw).Enabled = value; } }
private void SwitchChecked(object sender, ItemCheckEventArgs e) { SwitchItem item = (SwitchItem)switchesList.Items[e.Index]; Switch sw = item.Value; bool value = e.NewValue == CheckState.Checked; TraceSwitch tsw = sw as TraceSwitch; if (tsw != null) { tsw.Level = (value ? TraceLevel.Verbose : TraceLevel.Off); } else { BooleanSwitch bsw = sw as BooleanSwitch; if (bsw != null) { bsw.Enabled = value; } } }
virtual protected void propertyUpdated(Property property) { if (property.DeviceName == deviceName) { Log("set" + property); if (property == connectionProperty) { SwitchItem item = (SwitchItem)property.GetItem("CONNECTED"); connectedState = item != null && item.Value; if (connectedState) { waitFor.Hide(ref waitingForConnected); } else if (!connectedState) { waitFor.Hide(ref waitingForDisconnected); } } } propertyChanged(property); }
private void HitCheckTask_NotifySwitchItem(object sender, SwitchItem e) { if (_isPost) { return; } var buttonItem = _buttonItems.FirstOrDefault(s => s.Number == e.SwitchNumber); if ((buttonItem != null) && (e.SwitchNumber == _needButtonItem.Number) && (e.SwitchStatus == SwitchStatus.NC)) { _isPost = true; PostResult(true); return; } if (buttonItem == null) { return; } PostResult(false); }
void Start() { // Init Db _Id = GetPrefabID(); if (!QPatch.Database.SwitchItemList.Exists(w => w.Id == _Id)) { var newSwitch = new SwitchItem(_Id); QPatch.Database.SwitchItemList.Add(newSwitch); QPatch.Database.Save(); } if (SyncCode == 0) { SyncCode = GetSyncCode(); } IsEnable = false; MainColor = new Color(1, 1, 1, 1); InitUI(); btnSwitch.onClick.AddListener(() => SwitchLight()); btnLessPower.onClick.AddListener(() => RemoveIntensity()); btnMorePower.onClick.AddListener(() => AddIntensity()); btnOpenSetting.onClick.AddListener(() => OpenSetting(true)); btnHome.onClick.AddListener(() => OpenSetting(false)); SliderR.onValueChanged.AddListener(delegate { SetMainColor(); }); SliderG.onValueChanged.AddListener(delegate { SetMainColor(); }); SliderB.onValueChanged.AddListener(delegate { SetMainColor(); }); // Hide Settings SettingsDisplay.SetActive(false); txtSyncCode.text = $"Sync Code: {SyncCode}"; // Set Text CurrentMaxIntensity = CurrentIntensity; CurrentIntensity = IsEnable ? MaxIntensity : MinIntensity; txtIntensity.text = CurrentIntensity.ToString(); btnSwitchText.text = IsEnable ? "ON" : "OFF"; SwitchLightList(); }
public override bool Give(Mobile m, Item item, bool placeAtFeet) { if (m.Skills.Lumberjacking.Value >= 100) { if (Utility.RandomDouble() < 0.15) { Item sitem = null; int message = 0; double chance = Utility.RandomDouble(); if (chance < 0.0025) // not completely sure { sitem = new BrilliantAmber(); message = 1072551; // You found a brilliant amber! } else if (chance < 0.05) { sitem = new ParasiticPlant(); message = 1072549; // You found a parasitic plant! } else if (chance < 0.35) { if (Utility.RandomBool()) { sitem = new SwitchItem(); message = 1072547; // You found a switch! } else { sitem = new LuminescentFungi(); message = 1072550; // You found a luminescent fungi! } } else { sitem = new BarkFragment(); message = 1072548; // You found a bark fragment! } if (!m.PlaceInBackpack(sitem)) { if (placeAtFeet) { List <Item> atFeet = new List <Item>(); foreach (Item obj in m.GetItemsInRange(0)) { atFeet.Add(obj); } for (int i = 0; i < atFeet.Count; ++i) { Item check = atFeet[i]; if (check.StackWith(m, sitem, false)) { m.SendLocalizedMessage(message); return(base.Give(m, item, placeAtFeet)); } } sitem.MoveToWorld(m.Location, m.Map); m.SendLocalizedMessage(message); } else { sitem.Delete(); } } else { m.SendLocalizedMessage(message); } } } return(base.Give(m, item, placeAtFeet)); }
public static void MarkSequencePoint(this SwitchItem /*!*/ node, CodeGenerator /*!*/ codeGenerator) { node.NodeCompiler <ISwitchItemCompiler>().MarkSequencePoint(node, codeGenerator); }
void ISwitchItemCompiler.Analyze(SwitchItem node, Analyzer analyzer) { Analyze((T)node, analyzer); }
void ISwitchItemCompiler.MarkSequencePoint(SwitchItem node, CodeGenerator codeGenerator) { MarkSequencePoint((T)node, codeGenerator); }
public static void AddItemToContainer(byte[] packet, Client cli) { PacketReader packetReader = new PacketReader(packet); bool noAppearanceUpdate = false; /* Container ID's: * 0065 Weaponpage * 0066 Armorpage * 0067 Implantpage * 0068 Inventory (places 64-93) * 0069 Bank * 006B Backpack * 006C KnuBot Trade Window * 006E Overflow window * 006F Trade Window * 0073 Socialpage * 0767 Shop Inventory * 0790 Playershop Inventory * DEAD Trade Window (incoming) */ packetReader.PopInt(); packetReader.PopInt(); int sender = packetReader.PopInt(); packetReader.PopInt(); packetReader.PopInt(); Identity fromIdentity = packetReader.PopIdentity(); byte flag = packetReader.PopByte(); int c350 = fromIdentity.Type; int fromId = fromIdentity.Instance; int fromContainerID = packetReader.PopInt(); int fromPlacement = packetReader.PopInt(); Identity toIdentity = packetReader.PopIdentity(); int toid = toIdentity.Instance; c350 = toIdentity.Type; int toPlacement = packetReader.PopInt(); int counterFrom = 0; if ((fromContainerID <= 0x68) || (fromContainerID == 0x73)) // Inventory or Equipmentpages? { for (counterFrom = 0; (counterFrom < cli.Character.Inventory.Count) && (fromPlacement != cli.Character.Inventory[counterFrom].Placement); counterFrom++) { ; } } else { if (fromContainerID == 0x69) { for (counterFrom = 0; (counterFrom < cli.Character.Bank.Count) && (fromPlacement != cli.Character.Bank[counterFrom].Flags); counterFrom++) { ; } } else { counterFrom = -1; } } // TODO: Add check for instanced items (fromcontainerid:fromplacement) if (counterFrom == -1) { return; } int counterTo; if (toIdentity.Type == 0xdead) // Transferring to a trade window??? (only bank trade window yet) { counterTo = cli.Character.Bank.Count; } else { for (counterTo = 0; (counterTo < cli.Character.Inventory.Count) && (toPlacement != cli.Character.Inventory[counterTo].Placement); counterTo++) { ; } } AOItem itemFrom = null; if (counterFrom < cli.Character.Inventory.Count) { itemFrom = ItemHandler.interpolate( cli.Character.Inventory[counterFrom].Item.LowID, cli.Character.Inventory[counterFrom].Item.HighID, cli.Character.Inventory[counterFrom].Item.Quality); } AOItem itemTo = null; if (counterTo < cli.Character.Inventory.Count) { itemTo = ItemHandler.interpolate( cli.Character.Inventory[counterTo].Item.LowID, cli.Character.Inventory[counterTo].Item.HighID, cli.Character.Inventory[counterTo].Item.Quality); } // Calculating delay for equip/unequip/switch gear int delay = 0; if (itemFrom != null) { delay += itemFrom.getItemAttribute(211); } if (itemTo != null) { delay += itemTo.getItemAttribute(211); } if (delay == 0) { delay = 200; } int counter; if (toPlacement == 0x6f) // 0x6f = next free inventory place, we need to send back the actual spot where the item goes // something has to be free, client checks for full inventory { counter = 0; int counter2 = 0; int counter3 = 0; if (toIdentity.Type == 0xdead) { while (counter3 == 0) { counter3 = 1; for (counter2 = 0; counter2 < cli.Character.Bank.Count; counter2++) { if (cli.Character.Bank[counter2].Flags == counter) // using flags for placement { counter++; counter3 = 0; continue; } } } } else { counter = 64; while (counter3 == 0) { counter3 = 1; for (counter2 = 0; counter2 < cli.Character.Inventory.Count; counter2++) { if (cli.Character.Inventory[counter2].Placement == counter) { counter++; counter3 = 0; continue; } } } } toPlacement = counter; } cli.Character.DoNotDoTimers = true; if (toIdentity.Type == 0xdead) // 0xdead only stays for bank at the moment { cli.Character.TransferItemtoBank(fromPlacement, toPlacement); noAppearanceUpdate = true; } else { switch (fromContainerID) { case 0x68: // from Inventory if (toPlacement <= 30) { // to Weaponspage or Armorpage // TODO: Send some animation if (itemTo != null) { cli.Character.UnequipItem(itemTo, cli.Character, false, fromPlacement); // send interpolated item Unequip.Send(cli, itemTo, InventoryPage(toPlacement), toPlacement); // client takes care of hotswap cli.Character.EquipItem(itemFrom, cli.Character, false, toPlacement); Equip.Send(cli, itemFrom, InventoryPage(toPlacement), toPlacement); } else { cli.Character.EquipItem(itemFrom, cli.Character, false, toPlacement); Equip.Send(cli, itemFrom, InventoryPage(toPlacement), toPlacement); } } else { if (toPlacement < 46) { if (itemTo == null) { cli.Character.EquipItem(itemFrom, cli.Character, false, toPlacement); Equip.Send(cli, itemFrom, InventoryPage(toPlacement), toPlacement); } } // Equiping to social page if ((toPlacement >= 49) && (toPlacement <= 63)) { if (itemTo != null) { cli.Character.UnequipItem(itemTo, cli.Character, true, fromPlacement); // send interpolated item cli.Character.EquipItem(itemFrom, cli.Character, true, toPlacement); } else { cli.Character.EquipItem(itemFrom, cli.Character, true, toPlacement); } //cli.Character.switchItems(cli, fromplacement, toplacement); } } cli.Character.SwitchItems(fromPlacement, toPlacement); cli.Character.CalculateSkills(); noAppearanceUpdate = false; break; case 0x66: // from Armorpage cli.Character.UnequipItem(itemFrom, cli.Character, false, fromPlacement); // send interpolated item Unequip.Send(cli, itemFrom, InventoryPage(fromPlacement), fromPlacement); cli.Character.SwitchItems(fromPlacement, toPlacement); cli.Character.CalculateSkills(); noAppearanceUpdate = false; break; case 0x65: // from Weaponspage cli.Character.UnequipItem(itemFrom, cli.Character, false, fromPlacement); // send interpolated item Unequip.Send(cli, itemFrom, InventoryPage(fromPlacement), fromPlacement); cli.Character.SwitchItems(fromPlacement, toPlacement); cli.Character.CalculateSkills(); noAppearanceUpdate = false; break; case 0x67: // from Implantpage cli.Character.UnequipItem(itemFrom, cli.Character, false, fromPlacement); // send interpolated item Unequip.Send(cli, itemFrom, InventoryPage(fromPlacement), fromPlacement); cli.Character.SwitchItems(fromPlacement, toPlacement); cli.Character.CalculateSkills(); noAppearanceUpdate = true; break; case 0x73: cli.Character.UnequipItem(itemFrom, cli.Character, true, fromPlacement); cli.Character.SwitchItems(fromPlacement, toPlacement); cli.Character.CalculateSkills(); break; case 0x69: cli.Character.TransferItemfromBank(fromPlacement, toPlacement); toPlacement = 0x6f; // setting back to 0x6f for packet reply noAppearanceUpdate = true; break; case 0x6c: // KnuBot Trade Window cli.Character.TransferItemfromKnuBotTrade(fromPlacement, toPlacement); break; default: break; } } cli.Character.DoNotDoTimers = false; if ((fromPlacement < 0x30) || (toPlacement < 0x30)) // Equipmentpages need delays { // Delay when equipping/unequipping // has to be redone, jumping breaks the equiping/unequiping // and other messages have to be done too // like heartbeat timer, damage from environment and such Thread.Sleep(delay); } else { Thread.Sleep(200); //social has to wait for 0.2 secs too (for helmet update) } SwitchItem.Send(cli, fromContainerID, fromPlacement, toIdentity, toPlacement); cli.Character.Stats.ClearChangedFlags(); if (!noAppearanceUpdate) { cli.Character.AppearanceUpdate(); } itemFrom = null; itemTo = null; }
//Inspecter value (DialogItemParameter) -> Local value (DialogItem). //(*) When internal processing, it is used dialogItems. //・Make 'key -> index' table //・Store the values of the inspector (initValue). //・Check for key exist. private void ConvertToDialogItem() { if (items == null || items.Length == 0) //from inspector { return; } dialogItems = new DialogItem[items.Length]; initValue = new DialogItem[items.Length]; keyToIndex.Clear(); int keyCount = 0; for (int i = 0; i < items.Length; i++) { var item = items[i]; if (item == null) { continue; } switch (item.type) { case DialogItemType.Divisor: dialogItems[i] = new DivisorItem(item.lineHeight, item.lineColor); initValue[i] = ((DivisorItem)dialogItems[i]).Clone(); break; case DialogItemType.Text: string align = item.align.ToString().ToLower(); dialogItems[i] = new TextItem(item.Text, item.textColor, item.backgroundColor, align == "none" ? "" : align); initValue[i] = ((TextItem)dialogItems[i]).Clone(); break; case DialogItemType.Switch: dialogItems[i] = new SwitchItem(item.Text, item.key, item.defaultChecked, item.textColor, "ReceiveChanged"); initValue[i] = ((SwitchItem)dialogItems[i]).Clone(); if (!string.IsNullOrEmpty(item.key)) { keyToIndex[item.key] = i; } keyCount++; break; case DialogItemType.Slider: dialogItems[i] = new SliderItem(item.Text, item.key, item.value, item.minValue, item.maxValue, item.digit, item.textColor, "ReceiveChanged"); initValue[i] = ((SliderItem)dialogItems[i]).Clone(); if (!string.IsNullOrEmpty(item.key)) { keyToIndex[item.key] = i; } keyCount++; break; case DialogItemType.Toggle: dialogItems[i] = new ToggleItem(item.TogglesTexts, item.key, item.TogglesValues, item.toggleItems[item.checkedIndex].value, item.textColor, "ReceiveChanged"); initValue[i] = ((ToggleItem)dialogItems[i]).Clone(); if (!string.IsNullOrEmpty(item.key)) { keyToIndex[item.key] = i; } keyCount++; break; case DialogItemType.Check: dialogItems[i] = new CheckItem(item.Text, item.key, item.defaultChecked, item.textColor, "ReceiveChanged"); initValue[i] = ((CheckItem)dialogItems[i]).Clone(); if (!string.IsNullOrEmpty(item.key)) { keyToIndex[item.key] = i; } keyCount++; break; } } #if UNITY_EDITOR //Check for errors (Editor only). if (keyCount != keyToIndex.Count) { Debug.LogError("[" + gameObject.name + "] There is empty or duplicate 'Key'."); } #endif }
public static void EmitStatements(this SwitchItem /*!*/ node, CodeGenerator /*!*/ codeGenerator) { node.NodeCompiler <ISwitchItemCompiler>().EmitStatements(node, codeGenerator); }
public static void Analyze(this SwitchItem /*!*/ node, Analyzer /*!*/ analyzer) { node.NodeCompiler <ISwitchItemCompiler>().Analyze(node, analyzer); }
/// <summary> /// Called by derived objects visitor (CaseItem and DefaultItem). /// Visit all statements in SwitchItem. /// </summary> /// <param name="x">SwitchItem, CaseItem or DefaultItem.</param> virtual public void VisitSwitchItem(SwitchItem x) { VisitList(x.Statements); }
protected GotoTargetRef(SwitchItem declaration, bool isFirstOnLine) : base(declaration, isFirstOnLine) { }
public SwitchItemChangedEventArgs(SwitchItem switchItem) { SwitchItem = switchItem; }
private View CreateSwitch(SwitchItem switchItem) { throw new NotImplementedException(); }
const string JSON_PREF = "_json"; //JSON とは保存データを分ける public void OpenDialog() { if (toggleJson != null && toggleJson.isOn) //JSON 形式 { #if UNITY_ANDROID Data data = new Data(); XPlayerPrefs.GetObjectOverwrite(gameObject.name + JSON_PREF, ref data); //保存されたデータがないときはデフォ値となる XDebug.Clear(); //※ヒエラルキーにある「DebugConsole」をオンにすると内容が見れます。 XDebug.Log("(PlayerPrefs or init)"); XDebug.Log(data, 3); DivisorItem divisorItem = new DivisorItem(1); TextItem textItem = new TextItem("あんなことやこんなことを設定できます。"); TextItem textItem1 = new TextItem("嫁のブレンド・S"); SwitchItem switchItem = new SwitchItem("ユニティちゃん", "utc", data.utc); SwitchItem switchItem2 = new SwitchItem("プロ生ちゃん", "pronama", data.pronama); SwitchItem switchItem3 = new SwitchItem("クエリちゃん", "query", data.query); TextItem textItem2 = new TextItem("あなたの属性"); ToggleItem toggleItem = new ToggleItem( new String[] { "ツンデレ", "ヤンデレ", "しょびっち" }, "zokusei", new String[] { "tsundere", "yandere", "syobicchi" }, data.zokusei); TextItem textItem3 = new TextItem("サウンド設定"); Dictionary <string, int> vols; if (volumeController != null) { vols = volumeController.GetVolumes(); } else { vols = new Dictionary <string, int>() { { "master", 100 }, { "bgm", 50 }, { "voice", 50 }, { "se", 50 } } }; SliderItem sliderItem = new SliderItem("マスター", "master", vols["master"], 0, 100, 0, 0, "PreviewVolume"); SliderItem sliderItem1 = new SliderItem("音楽", "bgm", vols["bgm"], 0, 100, 0, 0, "PreviewVolume"); SliderItem sliderItem2 = new SliderItem("ボイス", "voice", vols["voice"], 0, 100, 0, 0, "PreviewVolume"); SliderItem sliderItem3 = new SliderItem("効果音", "se", vols["se"], 0, 100, 0, 0, "PreviewVolume"); TextItem textItem4 = new TextItem("リセットすると保存された設定が全て消去されます", Color.red); SwitchItem switchItem4 = new SwitchItem("設定のリセット", "reset", false, Color.blue); DialogItem[] items = new DialogItem[] { textItem, divisorItem, textItem1, switchItem, switchItem2, switchItem3, divisorItem, textItem2, toggleItem, divisorItem, textItem3, sliderItem, sliderItem1, sliderItem2, sliderItem3, divisorItem, switchItem4, textItem4, divisorItem, }; #endif #if UNITY_ANDROID && !UNITY_EDITOR AndroidPlugin.ShowCustomDialog("設定いろいろ", "", items, gameObject.name, "OnReceiveResult", true, "決定", "キャンセル"); #endif } else //キーと値ペアの形式 { #if UNITY_ANDROID //Param は基本的に Dictionary と同じもので、値の型変換とデフォルト値を簡単に扱うために用意したラッパー的なクラスと考えて良い Param pref = Param.GetPlayerPrefs(gameObject.name, new Param()); //保存されたデータがないときは新規に生成(中身は空) XDebug.Clear(); //※ヒエラルキーにある「DebugConsole」をオンにすると内容が見れます。 XDebug.Log("(PlayerPrefs or init)"); XDebug.Log(pref, 3); DivisorItem divisorItem = new DivisorItem(1); TextItem textItem = new TextItem("あんなことやこんなことを設定できます。"); TextItem textItem1 = new TextItem("嫁のブレンド・S", AndroidColor.WHITE, XColor.ToIntARGB("#ff1493"), "center"); //※色の形式はどれでも同じです(テストで色々試してるだけ) SwitchItem switchItem = new SwitchItem("ユニティちゃん", "utc", pref.GetBool("utc", false)); SwitchItem switchItem2 = new SwitchItem("プロ生ちゃん", "pronama", pref.GetBool("pronama", false)); SwitchItem switchItem3 = new SwitchItem("クエリちゃん", "query", pref.GetBool("query", false)); TextItem textItem2 = new TextItem("あなたの属性", XColor.ToColor("#fff"), XColor.ToColor("0x1e90ff"), "center"); //※色の形式はどれでも同じです(テストで色々試してるだけ) ToggleItem toggleItem = new ToggleItem( new String[] { "ツンデレ", "ヤンデレ", "しょびっち" }, "zokusei", new String[] { "tsundere", "yandere", "syobicchi" }, pref.GetString("zokusei", "tsundere")); TextItem textItem3 = new TextItem("サウンド設定", XColor.ToIntARGB(Color.white), XColor.ToIntARGB(0x3c, 0xb3, 0x71), "center");//"#3cb371" ※色の形式はどれでも同じです(テストで色々試してるだけ) Dictionary <string, int> vols; if (volumeController != null) { vols = volumeController.GetVolumes(); } else { vols = new Dictionary <string, int>() { { "master", 100 }, { "bgm", 50 }, { "voice", 50 }, { "se", 50 } } }; SliderItem sliderItem = new SliderItem("マスター", "master", vols["master"], 0, 100, 0, 0, "PreviewVolume"); SliderItem sliderItem1 = new SliderItem("音楽", "bgm", vols["bgm"], 0, 100, 0, 0, "PreviewVolume"); SliderItem sliderItem2 = new SliderItem("ボイス", "voice", vols["voice"], 0, 100, 0, 0, "PreviewVolume"); SliderItem sliderItem3 = new SliderItem("効果音", "se", vols["se"], 0, 100, 0, 0, "PreviewVolume"); TextItem textItem4 = new TextItem("リセットすると保存された設定が全て消去されます", Color.red); SwitchItem switchItem4 = new SwitchItem("設定のリセット", "reset", false, Color.blue); DialogItem[] items = new DialogItem[] { textItem, divisorItem, textItem1, switchItem, switchItem2, switchItem3, divisorItem, textItem2, toggleItem, divisorItem, textItem3, sliderItem, sliderItem1, sliderItem2, sliderItem3, divisorItem, switchItem4, textItem4, divisorItem, }; #endif #if UNITY_ANDROID && !UNITY_EDITOR AndroidPlugin.ShowCustomDialog("設定いろいろ", "", items, gameObject.name, "OnReceiveResult", false, "決定", "キャンセル"); #endif } }
void ISwitchItemCompiler.EmitStatements(SwitchItem node, CodeGenerator codeGenerator) { EmitStatements((T)node, codeGenerator); }
const string JSON_PREF = "_json"; //For save JSON parameters //Call Android Custom Dialog //http://fantom1x.blog130.fc2.com/blog-entry-282.html#fantomPlugin_CustomDialogItems public void OpenDialog() { if (toggleJson != null && toggleJson.isOn) //JSON format { #if UNITY_ANDROID Data data = new Data(); XPlayerPrefs.GetObjectOverwrite(gameObject.name + JSON_PREF, ref data); //Default value when there is no saved data. //(*) Activate the "DebugConsole" in the hierarchy to see its parameters. XDebug.Clear(); XDebug.Log("(PlayerPrefs or init)"); XDebug.Log(data, 3); DivisorItem divisorItem = new DivisorItem(1); TextItem textItem = new TextItem("You can make various settings."); TextItem textItem1 = new TextItem("Switch the Party Character"); SwitchItem switchItem = new SwitchItem("UnityChan", "utc", data.utc); SwitchItem switchItem2 = new SwitchItem("PronamaChan", "pronama", data.pronama); SwitchItem switchItem3 = new SwitchItem("QueryChan", "query", data.query); TextItem textItem2 = new TextItem("Select a Servant"); ToggleItem toggleItem = new ToggleItem( new String[] { "Saber", "Rancer", "Caster" }, "servant", new String[] { "saber", "rancer", "caster" }, data.servant); TextItem textItem3 = new TextItem("Sound Setting"); Dictionary <string, int> vols; if (volumeController != null) { vols = volumeController.GetVolumes(); } else { vols = new Dictionary <string, int>() { { "master", 100 }, { "bgm", 50 }, { "voice", 50 }, { "se", 50 } } }; SliderItem sliderItem = new SliderItem("Master", "master", vols["master"], 0, 100, 0, 0, "PreviewVolume"); SliderItem sliderItem1 = new SliderItem("Music", "bgm", vols["bgm"], 0, 100, 0, 0, "PreviewVolume"); SliderItem sliderItem2 = new SliderItem("Voice", "voice", vols["voice"], 0, 100, 0, 0, "PreviewVolume"); SliderItem sliderItem3 = new SliderItem("Effect", "se", vols["se"], 0, 100, 0, 0, "PreviewVolume"); TextItem textItem4 = new TextItem("All saved settings will be deleted when Reset.", Color.red); SwitchItem switchItem4 = new SwitchItem("Reset Setting", "reset", false, Color.blue); DialogItem[] items = new DialogItem[] { textItem, divisorItem, textItem1, switchItem, switchItem2, switchItem3, divisorItem, textItem2, toggleItem, divisorItem, textItem3, sliderItem, sliderItem1, sliderItem2, sliderItem3, divisorItem, switchItem4, textItem4, divisorItem, }; #endif #if UNITY_ANDROID && !UNITY_EDITOR AndroidPlugin.ShowCustomDialog("This is Custom Dialog Demo", "", items, gameObject.name, "OnReceiveResult", true, "Apply", "Cancel"); #endif } else //"key=value" format { #if UNITY_ANDROID //'Param' class is basically the same as Dictionary prepared for easy handling of value type conversion and default value. Param pref = Param.GetPlayerPrefs(gameObject.name, new Param()); //When there is no saved data, it is newly generated (elements are empty). //(*) Activate the "DebugConsole" in the hierarchy to see its parameters. XDebug.Clear(); XDebug.Log("(PlayerPrefs or init)"); XDebug.Log(pref, 3); DivisorItem divisorItem = new DivisorItem(1); TextItem textItem = new TextItem("You can make various settings."); TextItem textItem1 = new TextItem("Switch the Party Character", AndroidColor.WHITE, XColor.ToIntARGB("#ff1493"), "center"); //(*) All color formats are the same (only trying on various tests) SwitchItem switchItem = new SwitchItem("UnityChan", "utc", pref.GetBool("utc", false)); SwitchItem switchItem2 = new SwitchItem("PronamaChan", "pronama", pref.GetBool("pronama", false)); SwitchItem switchItem3 = new SwitchItem("QueryChan", "query", pref.GetBool("query", false)); TextItem textItem2 = new TextItem("Select a Servant", XColor.ToColor("#fff"), XColor.ToColor("0x1e90ff"), "center"); //(*) All color formats are the same (only trying on various tests) ToggleItem toggleItem = new ToggleItem( new String[] { "Saber", "Rancer", "Caster" }, "servant", new String[] { "saber", "rancer", "caster" }, pref.GetString("servant", "saber")); TextItem textItem3 = new TextItem("Sound Setting", XColor.ToIntARGB(Color.white), XColor.ToIntARGB(0x3c, 0xb3, 0x71), "center");//"#3cb371" (*) All color formats are the same (only trying on various tests) Dictionary <string, int> vols; if (volumeController != null) { vols = volumeController.GetVolumes(); } else { vols = new Dictionary <string, int>() { { "master", 100 }, { "bgm", 50 }, { "voice", 50 }, { "se", 50 } } }; SliderItem sliderItem = new SliderItem("Master", "master", vols["master"], 0, 100, 0, 0, "PreviewVolume"); SliderItem sliderItem1 = new SliderItem("Music", "bgm", vols["bgm"], 0, 100, 0, 0, "PreviewVolume"); SliderItem sliderItem2 = new SliderItem("Voice", "voice", vols["voice"], 0, 100, 0, 0, "PreviewVolume"); SliderItem sliderItem3 = new SliderItem("Effect", "se", vols["se"], 0, 100, 0, 0, "PreviewVolume"); TextItem textItem4 = new TextItem("All saved settings will be deleted when Reset.", Color.red); SwitchItem switchItem4 = new SwitchItem("Reset Setting", "reset", false, Color.blue); DialogItem[] items = new DialogItem[] { textItem, divisorItem, textItem1, switchItem, switchItem2, switchItem3, divisorItem, textItem2, toggleItem, divisorItem, textItem3, sliderItem, sliderItem1, sliderItem2, sliderItem3, divisorItem, switchItem4, textItem4, divisorItem, }; #endif #if UNITY_ANDROID && !UNITY_EDITOR AndroidPlugin.ShowCustomDialog("This is Custom Dialog Demo", "", items, gameObject.name, "OnReceiveResult", false, "Apply", "Cancel"); #endif } }
private void PopulateSwitchesInfo() { // grab it in a local in case assembly load causes static to null out // Until we start listening to assembly load events, we should not cache! Switch[] switchesLocal = null; // switches if (switchesLocal == null) { switchesLocal = GetSwitchesFromLoadedAssemblies(); switches = switchesLocal; Array.Sort(switchesLocal, new SwitchSorter()); } foreach (Switch sw in switchesLocal) { bool value; TraceSwitch tsw = sw as TraceSwitch; if (tsw != null) value = tsw.Level > TraceLevel.Off; else { BooleanSwitch bsw = sw as BooleanSwitch; if (bsw != null) value = bsw.Enabled; else continue; } ListViewItem item = new SwitchItem(sw); item.Checked = value; switchesList.Items.Add(item); } }
public sealed override void VisitSwitchItem(SwitchItem x) { throw new InvalidOperationException(); // VisitDefaultItem, VisitCaseItem }
protected virtual void OnNotifySwitchItem(SwitchItem e) { NotifySwitchItem?.Invoke(this, e); }