예제 #1
0
 private void ExportPreset(ServerPreset set)
 {
     set.Daylight    = daylight;
     set.Difficulity = difficulity;
     set.Map         = mapSelection;
     set.Password    = password;
     set.Players     = maxPlayers;
     set.ServerName  = serverName;
     set.Time        = serverTime;
 }
예제 #2
0
 private void ImportPreset(ServerPreset preset)
 {
     daylight      = preset.Daylight;
     difficulity   = preset.Difficulity;
     mapSelection  = preset.Map;
     password      = preset.Password;
     serverName    = preset.ServerName;
     maxPlayers    = preset.Players;
     serverTime    = preset.Time;
     newPresetName = preset.Name;
 }
        public static ServerPresetItem ToItem(this ServerPreset entity)
        {
            var item = new ServerPresetItem()
            {
                Id                 = entity.Id,
                Name               = entity.Name,
                BanListPreset      = BanListPresetsProvider.Instance.FindPresetItemById(entity.BanListPresetId),
                MapListPreset      = MapListPresetsProvider.Instance.FindPresetItemById(entity.MapListPresetId),
                ServerParamsPreset = ServerParamsPresetsProvider.Instance.FindPresetItemById(entity.ServerParamsPresetId),
                StartupPreset      = StartupPresetsProvider.Instance.FindPresetItemById(entity.StartupPresetId),
                OpenConsole        = entity.OpenConsole,
            };

            item.ModSelections.AddRange(entity.ModSelections.ToItemList());
            item.IsDirty = false;
            return(item);
        }
예제 #4
0
        private void EnableCreation()
        {
            head = locale["roomCreationTitle"];
            SmartRect[] rects = Helper.GetSmartRects(WindowPosition, 2);
            left  = rects[0];
            right = rects[1];

            serverName = "Food for titoons";
            serverTime = "83";
            password   = string.Empty;
            //mapSelection = 0;
            maps = new string[] {
                "The City", "The Forest", "The Forest II", "The Forest III", "The Forest IV  - LAVA", "Annie", "Annie II", "Colossal Titan", "Colossal Titan II",
                "Trost", "Trost II", "Racing - Akina", "Outside The Walls", "The City III", "Cave Fight", "House Fight", "Custom", "Custom (No PT)", //End RC maps
                //Custom maps, added in Anarchy or other mods
                "The City II", "The City IV", "The City V",
                //Anarchy maps
                "Custom-Anarchy (No PT)"
            };
            daylight      = 0;
            daylights     = locale.GetArray("dayLights");
            difficulity   = 0;
            difficulities = locale.GetArray("difficulities");
            maxPlayers    = "5";
            ServerPreset[] sets = ServerPreset.LoadPresets();
            presets = new List <ServerPreset>();
            if (sets != null)
            {
                foreach (ServerPreset set in sets)
                {
                    presets.Add(set);
                }
            }
            newPresetName = "Set " + (presets.Count + 1);
            if (sets.Length > 0)
            {
                newPresetName = sets[sets.Length - 1].Name;
            }
            presetArea                = new Rect(left.x, 0f, left.width, Style.Height * PresetsVisibleCount + Style.VerticalMargin * (PresetsVisibleCount - 1));
            presetView                = new Rect(0f, 0f, left.width, Style.Height * presets.Count + (Style.VerticalMargin * (presets.Count - 1)));
            presetRect                = new SmartRect(0f, 0f, left.width, Style.Height, 0f, Style.VerticalMargin);
            presetScroll              = Optimization.Caching.Vectors.v2zero;
            mapSelectionSetting       = new Configuration.IntSetting("tempMapSelectionSetting", 0);
            mapSelectionSetting.Value = 0;
        }
예제 #5
0
        private void RoomCreation()
        {
            left.Reset();
            right.Reset();
            LabelCenter(left, locale["roomSettings"], true);
            serverName = TextField(left, serverName, locale["roomName"], Style.LabelOffset, true);
            password   = TextField(left, password, locale["pwd"], Style.LabelOffset, true);
            serverTime = TextField(left, serverTime, locale["time"], Style.LabelOffset * 2f, true);
            maxPlayers = TextField(left, maxPlayers, locale["players"], Style.LabelOffset * 2f, true);

            LabelCenter(left, locale["difficulity"], true);
            difficulity = SelectionGrid(left, difficulity, difficulities, difficulities.Length, true);

            LabelCenter(left, locale["dayLight"], true);
            daylight = SelectionGrid(left, daylight, daylights, daylights.Length, true);
            left.MoveY();

            LabelCenter(left, locale["presets"], true);
            Label(left, locale["presetNote"], true);
            newPresetName = TextField(left, newPresetName, locale["presetName"], Style.LabelOffset, true);
            left.width    = (left.DefaultWidth - Style.HorizontalMargin) / 2f;
            if (Button(left, locale["presetAdd"], false))
            {
                ServerPreset set = new ServerPreset(newPresetName);
                ExportPreset(set);
                presets.Add(set);
                presetView.height = (presets.Count * Style.Height) + ((presets.Count - 1) * Style.VerticalMargin);
                set.Save();
            }
            left.MoveX();
            if (Button(left, locale["presetRemove"], true))
            {
                if (presets.Count > 0)
                {
                    ServerPreset selected = null;
                    for (int i = 0; i < presets.Count; i++)
                    {
                        if (presets[i].Name == newPresetName)
                        {
                            selected = presets[i];
                        }
                    }
                    if (selected != null)
                    {
                        presets.Remove(selected);
                        selected.Delete();
                        newPresetName = "Set " + (presets.Count + 1);
                        if (presets.Count > 0)
                        {
                            newPresetName = presets[presets.Count - 1].Name;
                        }

                        presetView.height = (presets.Count * Style.Height) + ((presets.Count - 1) * Style.VerticalMargin);
                    }
                }
            }
            left.ResetX();
            if (presets.Count > 0)
            {
                presetArea.y = left.y;
                presetRect.Reset();
                presetScroll = BeginScrollView(presetArea, presetScroll, presetView);
                {
                    for (int i = 0; i < presets.Count; i++)
                    {
                        if (Button(presetRect, presets[i].Name, true))
                        {
                            ServerPreset selected = presets[i];
                            ImportPreset(selected);
                        }
                    }
                }
                EndScrollView();
            }

            left.MoveToEndY(BoxPosition, Style.Height);
            left.width = left.DefaultWidth / 2f - Style.HorizontalMargin;
            if (Button(left, locale["btnCreation"], false))
            {
                disconnectByJoin = true;
                string[] args = new string[]
                {
                    serverName,
                    maps[mapSelection],
                    new string[] { "normal", "hard", "abnormal" }[difficulity],
                    serverTime,
                    new string[] { "day", "dawn", "night" }[daylight],
                    password.Length > 0 ? new SimpleAES().Encrypt(password) : string.Empty,
                    UnityEngine.Random.Range(1000000, 10000000).ToString()
                };
                if (!int.TryParse(maxPlayers, out int max))
                {
                    max = 5;
                }
                PhotonNetwork.CreateRoom(string.Join("`", args), new RoomOptions()
                {
                    isVisible = true, isOpen = true, maxPlayers = max
                }, null);
                DisableImmediate();
                AnarchyManager.Background.Disable();
                return;
            }
            left.MoveX(Style.HorizontalMargin, true);
            if (Button(left, locale["btnOffline"], false))
            {
                disconnectByJoin = true;
                PhotonNetwork.Disconnect();
                PhotonNetwork.offlineMode = true;
                string[] args = new string[]
                {
                    serverName,
                    maps[mapSelection],
                    new string[] { "normal", "hard", "abnormal" }[difficulity],
                    serverTime,
                    new string[] { "day", "dawn", "night" }[daylight],
                    password.Length > 0 ? new SimpleAES().Encrypt(password) : string.Empty,
                    UnityEngine.Random.Range(1000000, 10000000).ToString()
                };
                if (!int.TryParse(maxPlayers, out int max))
                {
                    max = 5;
                }
                PhotonNetwork.CreateRoom(string.Join("`", args), new RoomOptions()
                {
                    isVisible = true, isOpen = true, maxPlayers = max
                }, null);
                DisableImmediate();
                AnarchyManager.Background.Disable();
                return;
            }

            LabelCenter(right, locale["mapSelection"], true);
            mapSelection = SelectionGrid(right, mapSelection, maps, 1);
            right.MoveToEndY(BoxPosition, Style.Height);
            right.MoveToEndX(BoxPosition, new AutoScaleFloat(240f) + Style.HorizontalMargin);
            right.width = new AutoScaleFloat(120f);
            if (Button(right, locale["btnSettings"], false))
            {
                connected     = false;
                pageSelection = SettingsPage;
                return;
            }
            right.MoveX();
            if (Button(right, locale["btnList"], false))
            {
                connected = PhotonNetwork.connected;
                if (connected)
                {
                    timeToUpdate = 0.1f;
                }
                pageSelection = ServerListPage;
                return;
            }
        }