|
"""
|
|
Documentation Tabs Component for MMORPG UI
|
|
|
|
This module contains the documentation content management for the HuggingFace-style UI.
|
|
"""
|
|
|
|
import gradio as gr
|
|
from typing import Dict, Any
|
|
|
|
class DocumentationTabs:
|
|
"""Manages documentation content for the MMORPG application."""
|
|
|
|
def __init__(self):
|
|
self.docs_content = self._initialize_docs_content()
|
|
|
|
def _initialize_docs_content(self) -> Dict[str, str]:
|
|
"""Initialize documentation content."""
|
|
return {
|
|
"quick_start": self._get_quick_start_content(),
|
|
"game_mechanics": self._get_game_mechanics_content(),
|
|
"chat_system": self._get_chat_system_content(),
|
|
"technical": self._get_technical_content()
|
|
}
|
|
|
|
def create_documentation_tabs(self) -> None:
|
|
"""Create the documentation tabs interface."""
|
|
gr.Markdown("""
|
|
<div class="doc-section">
|
|
|
|
# 📚 MMORPG Documentation
|
|
|
|
Welcome to the comprehensive guide for our modern MMORPG with MCP integration!
|
|
|
|
</div>
|
|
""")
|
|
|
|
with gr.Tabs():
|
|
with gr.Tab("🚀 Quick Start"):
|
|
gr.Markdown(self.docs_content["quick_start"])
|
|
|
|
with gr.Tab("🎮 Game Mechanics"):
|
|
gr.Markdown(self.docs_content["game_mechanics"])
|
|
|
|
with gr.Tab("💬 Chat System"):
|
|
gr.Markdown(self.docs_content["chat_system"])
|
|
|
|
with gr.Tab("🔧 Technical"):
|
|
gr.Markdown(self.docs_content["technical"])
|
|
|
|
def _get_quick_start_content(self) -> str:
|
|
"""Get quick start guide content."""
|
|
return """
|
|
## 🚀 Quick Start Guide
|
|
|
|
### Getting Started
|
|
1. **Join the Game**: Enter your character name and click "Join Game"
|
|
2. **Move Around**: Use WASD keys or arrow keys to move your character
|
|
3. **Interact**: Walk near NPCs (📮🏪🌤️) to interact with them
|
|
4. **Chat**: Use the chat system to communicate with other players
|
|
5. **Explore**: Check out the NPC Add-ons tab for special features
|
|
|
|
### Basic Controls
|
|
- **Movement**: WASD or Arrow Keys
|
|
- **Action**: Spacebar
|
|
- **Chat**: Type in the chat box and press Enter
|
|
- **Private Messages**: Move near players/NPCs and use the private chat system
|
|
|
|
### Game Features
|
|
- **Real-time Multiplayer**: Up to 20 players can join simultaneously
|
|
- **AI Agent Support**: AI agents can connect via MCP protocol
|
|
- **NPC Interactions**: Each NPC has unique features and personalities
|
|
- **Plugin System**: Extensible architecture for custom add-ons
|
|
- **Tree Collision**: Navigate around trees in the expanded world
|
|
"""
|
|
|
|
def _get_game_mechanics_content(self) -> str:
|
|
"""Get game mechanics content."""
|
|
return """
|
|
## 🎮 Game Mechanics
|
|
|
|
### Player System
|
|
- **Health Points (HP)**: Start with 100 HP, maximum 100 HP
|
|
- **Experience Points**: Gain XP through interactions and activities
|
|
- **Leveling**: Level up as you gain experience
|
|
- **Gold**: Virtual currency for trading with NPCs
|
|
|
|
### World Interaction
|
|
- **NPC Proximity**: Walk within range of NPCs to interact
|
|
- **Collision Detection**: Trees and obstacles block movement
|
|
- **Chat System**: Public and private messaging
|
|
- **Real-time Updates**: All actions update in real-time
|
|
|
|
### NPCs Available
|
|
- **📮 Secure Mailbox**: Read2Burn messaging system
|
|
- **🏪 Donald the Trader**: deal making trading NPC with funny responses
|
|
- **🚶 Roaming Rick**: Moving NPC that wanders the world
|
|
- **🧙 Ancient Sage**: Mystical NPC with wisdom and magic
|
|
- **🌤️ Weather Oracle**: MCP-powered weather information
|
|
"""
|
|
|
|
def _get_chat_system_content(self) -> str:
|
|
"""Get chat system content."""
|
|
return """
|
|
## 💬 Advanced Chat System
|
|
|
|
### Public Chat
|
|
- Visible to all players in the game
|
|
- Supports emojis and basic formatting
|
|
- Command system with /help for available commands
|
|
|
|
### Private Messaging
|
|
- **Tab-based Interface**: Multiple simultaneous conversations
|
|
- **Proximity-based**: Start chats with nearby players/NPCs
|
|
- **Pin/Unpin Tabs**: Keep important conversations open
|
|
- **Auto-refresh**: Real-time message updates
|
|
|
|
### Chat Commands
|
|
- `/help` - Show available commands
|
|
- `/players` - List online players
|
|
- `/stats` - Show your character stats
|
|
- `/clear` - Clear chat history
|
|
- `/whisper <player> <message>` - Send private message
|
|
|
|
### Chat Features
|
|
- **Message History**: Persistent chat history per conversation
|
|
- **Unread Indicators**: Visual badges for new messages
|
|
- **Emoji Support**: Full emoji support in messages
|
|
- **Timestamps**: All messages include timestamps
|
|
"""
|
|
|
|
def _get_technical_content(self) -> str:
|
|
"""Get technical documentation content."""
|
|
return """
|
|
## 🔧 Technical Architecture
|
|
|
|
### Clean Architecture Implementation
|
|
- **Domain Layer**: Core business logic and entities
|
|
- **Service Layer**: Application services and use cases
|
|
- **Interface Layer**: Contracts and abstractions
|
|
- **Infrastructure Layer**: External integrations (MCP, file system)
|
|
- **Presentation Layer**: UI components and user interaction
|
|
|
|
### Key Components
|
|
- **GameEngine**: Central singleton managing all game services
|
|
- **PlayerService**: Player management and state
|
|
- **ChatService**: Messaging and communication
|
|
- **NPCService**: NPC behavior and interactions
|
|
- **PluginService**: Dynamic plugin loading and management
|
|
- **MCPService**: AI agent integration via Model Context Protocol
|
|
|
|
### Plugin System
|
|
- **Hot-reload**: Plugins can be loaded/unloaded at runtime
|
|
- **Type Safety**: Strong typing with interfaces and protocols
|
|
- **Dependency Management**: Plugin dependencies and requirements
|
|
- **Configuration**: JSON-based plugin configuration
|
|
|
|
### MCP Integration
|
|
- **AI Agents**: Connect AI agents as game players
|
|
- **Real-time Communication**: Bidirectional communication with agents
|
|
- **Tool Integration**: Agents can use game tools and features
|
|
- **State Synchronization**: Keep agent state in sync with game state
|
|
"""
|
|
|