public PlayerController(AccountView account) : base(account.ID, account.Username, account.Faction)
        {
            Account = account ?? throw _logger.LogError(new ArgumentNullException(nameof(account)));

            if (!string.IsNullOrWhiteSpace(Account.UserClientConfiguration))
            {
                ClientConfiguration = JsonConvert.DeserializeObject <UserClientConfiguration>(Account.UserClientConfiguration);
            }
            else
            {
                ClientConfiguration = UserClientConfiguration.Instance();
            }

            InitializeAssemblies();

            _renderedMines   = new HashSet <int>();
            _renderedPlayers = new HashSet <int>();

            _checkPlayersInRange   = new TickInterval(CheckPlayersInRange, 100);
            _checkMinesInRange     = new TickInterval(CheckMinesInRange, 200);
            _checkZonesInRange     = new TickInterval(CheckZonesInRange, 300);
            _updateState           = new TickInterval(UpdateState, 1000 * 60 * 5); // 5 Minuten
            _checkConnectionExists = new TickInterval(CheckConnectionExists, 3000);
            _checkLogout           = new TickInterval(CheckLogout, 5000);

            OnTick += TickEvent;
        }
Пример #2
0
        private static ClientUIMenuBarModule GetTopLeftMenu(UserClientConfiguration configuration, Dictionary <string, Window> extra)
        {
            Dictionary <string, Window> topLeftMenu = new Dictionary <string, Window>(_topLeft); // create copy

            if (!configuration.UserSettings.displaySettingsModule.displayChat)
            {
                topLeftMenu.Remove("chat");
            }

            if (extra != null && extra.Count > 0)
            {
                foreach (var pair in extra)
                {
                    topLeftMenu[pair.Key] = pair.Value;
                }
            }

            foreach (var windowState in configuration.WindowSettings)
            {
                if (topLeftMenu.TryGetValue(windowState.Key, out Window window))
                {
                    topLeftMenu[windowState.Key] = new Window(window.Value, windowState.Value);
                }
            }

            return(new ClientUIMenuBarModule(ClientUIMenuBarModule.GAME_FEATURE_BAR,
                                             GenerateTopLeft(topLeftMenu), configuration.SlotbarPositions.gameFeatureBarPosition,
                                             configuration.SlotbarPositions.gameFeatureBarLayout));
        }
Пример #3
0
        public static ClientUISlotBarsCommand Generate(UserClientConfiguration configuration, PlayerController controller, bool full = true)
        {
            List <ClientUISlotBarModule> slotBars = new List <ClientUISlotBarModule>()
            {
                new ClientUISlotBarModule("standardSlotBar", configuration.StandardSlotBar, configuration.SlotbarPositions.standardSlotBarPosition, configuration.SlotbarPositions.standardSlotBarLayout, true),
                new ClientUISlotBarModule("proActionBar", configuration.ProActionBar, configuration.SlotbarPositions.proActionBarPosition, configuration.SlotbarPositions.proActionBarLayout, false),
                new ClientUISlotBarModule("premiumSlotBar", configuration.PremiumSlotBar, configuration.SlotbarPositions.premiumSlotBarPosition, configuration.SlotbarPositions.premiumSlotBarLayout, true)
            };

            if (full)
            {
                List <ClientUISlotBarCategoryModule> categories = new List <ClientUISlotBarCategoryModule>()
                {
                    LaserCategory(controller),
                    RocketCategory(controller),
                    RocketLauncherCategory(controller),
                    SpecialItemCategory(controller),
                    MineCategory(controller),
                    CpuCategory(controller),
                    new ClientUISlotBarCategoryModule("buy_now"),
                    TechItemCategory(controller),
                    AbilityCategory(controller),
                    DroneFormationCategory(controller)
                };

                return(new ClientUISlotBarsCommand(categories, configuration.SlotbarPositions.categoryBarPosition, slotBars));
            }

            return(new ClientUISlotBarsCommand(null, configuration.SlotbarPositions.categoryBarPosition, slotBars));
        }
Пример #4
0
        private static ClientUIMenuBarModule GetTopRightMenu(UserClientConfiguration configuration)
        {
            if (_topRightMenuItems == null)
            {
                _topRightMenuItems = GenerateTopRight(_topRight);
            }

            return(new ClientUIMenuBarModule(ClientUIMenuBarModule.GENERIC_FEATURE_BAR,
                                             _topRightMenuItems, configuration.SlotbarPositions.genericFeatureBarPosition, configuration.SlotbarPositions.genericFeatureBarLayout));
        }
Пример #5
0
 public static ClientUIMenuBarsCommand Generate(UserClientConfiguration configuration, Dictionary <string, Window> extra)
 {
     lock (_lock) {
         return(new ClientUIMenuBarsCommand(new List <ClientUIMenuBarModule>()
         {
             GetTopLeftMenu(configuration, extra),
             GetTopRightMenu(configuration),
             _keineAhnungWofuer
         }));
     }
 }