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);
            }
        }
Exemple #3
0
 public void Action()
 {
     if (item is SwitchItem)
     {
         SwitchItem switchItem = (SwitchItem)item;
         switchItem.Value = !switchItem.Value;
         item.Property.Change();
     }
 }
Exemple #4
0
        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
            }));
        }
Exemple #5
0
        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
            }));
        }
Exemple #6
0
        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;
            }
        }
Exemple #8
0
        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;
                }
            }
        }
Exemple #9
0
 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);
 }
Exemple #10
0
        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);
        }
Exemple #11
0
        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));
        }
Exemple #13
0
 public static void MarkSequencePoint(this SwitchItem /*!*/ node, CodeGenerator /*!*/ codeGenerator)
 {
     node.NodeCompiler <ISwitchItemCompiler>().MarkSequencePoint(node, codeGenerator);
 }
Exemple #14
0
 void ISwitchItemCompiler.Analyze(SwitchItem node, Analyzer analyzer)
 {
     Analyze((T)node, analyzer);
 }
Exemple #15
0
 void ISwitchItemCompiler.MarkSequencePoint(SwitchItem node, CodeGenerator codeGenerator)
 {
     MarkSequencePoint((T)node, codeGenerator);
 }
Exemple #16
0
        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;
        }
Exemple #17
0
        //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
        }
Exemple #18
0
 public static void EmitStatements(this SwitchItem /*!*/ node, CodeGenerator /*!*/ codeGenerator)
 {
     node.NodeCompiler <ISwitchItemCompiler>().EmitStatements(node, codeGenerator);
 }
Exemple #19
0
 public static void Analyze(this SwitchItem /*!*/ node, Analyzer /*!*/ analyzer)
 {
     node.NodeCompiler <ISwitchItemCompiler>().Analyze(node, analyzer);
 }
Exemple #20
0
 /// <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();
 }
Exemple #24
0
    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
        }
    }
Exemple #25
0
 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
        }
    }
Exemple #27
0
        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);
            }
        }
Exemple #28
0
 public sealed override void VisitSwitchItem(SwitchItem x)
 {
     throw new InvalidOperationException();  // VisitDefaultItem, VisitCaseItem
 }
Exemple #29
0
 protected virtual void OnNotifySwitchItem(SwitchItem e)
 {
     NotifySwitchItem?.Invoke(this, e);
 }