Exemplo n.º 1
0
        private void OnChatMessage(int groupId, string message, EnumChatType chattype, string data)
        {
            if (_clientApi?.World?.Player == null)
            {
                return;
            }

            var pos = _clientApi.World.Player.WorldData.CurrentGameMode == EnumGameMode.Creative ? blocksSinceLastSuccessList.LastOrDefault()?.Position : blocksSinceLastSuccessList.ElementAtOrDefault(blocksSinceLastSuccessList.Count - 2 - 1)?.Position;

            if (pos == null || groupId != GlobalConstants.InfoLogChatGroup || !_triggerwords.Any(triggerWord => message.StartsWith(triggerWord)))
            {
                return;
            }

            message = _cleanupRegex.Replace(message, string.Empty);
            var posX = pos.X / _chunksize;
            var posZ = pos.Z / _chunksize;

            _messages.RemoveAll(m => m.X == posX && m.Z == posZ);
            _messages.Add(new ProspectInfo(posX, posZ, message));
            _clientApi.SaveDataFile(Filename, _messages);

            _components.RemoveAll(component =>
            {
                var castComponent = component as ProspectorOverlayMapComponent;
                return(castComponent?.ChunkX == posX && castComponent.ChunkZ == posZ);
            });
            var newComponent = new ProspectorOverlayMapComponent(_clientApi, posX, posZ, message, _colorTexture);

            _components.Add(newComponent);

            blocksSinceLastSuccessList.Clear();
        }
Exemplo n.º 2
0
        private void RebuildMap()
        {
            foreach (var component in _components)
            {
                component.Dispose();
            }

            _components.Clear();

            foreach (var message in _messages)
            {
                var component = new ProspectorOverlayMapComponent(_clientApi, message.X, message.Z, message.Message);
                _components.Add(component);
            }
        }
Exemplo n.º 3
0
        public void RebuildMap(bool rebuildTexture = false)
        {
            foreach (var component in _components)
            {
                component.Dispose();
            }

            _components.Clear();

            if (rebuildTexture)
            {
                _colorTexture?.Dispose();
                _colorTexture = GenerateOverlayTexture();
            }

            foreach (var message in _messages)
            {
                var component = new ProspectorOverlayMapComponent(_clientApi, message.X, message.Z, message.Message, _colorTexture);
                _components.Add(component);
            }
        }