Spaces:
Configuration error
Configuration error
mike dupont commited on
Commit ·
731799d
1
Parent(s): d396dd9
Add Meta-Introspector Tycoon game
Browse filesFactory tycoon with:
- 8 revolutionary factories (Security Lattice, Kleene Algebra, Monster Group)
- Real-time 3D visualization (Bevy engine)
- Community voting and distributed nodes
- Integration ready for TradeWars 3033 perf trading
- tycoon/Cargo.toml +36 -0
- tycoon/README.md +79 -0
- tycoon/config/wireguard/wg0-client-linux.conf +11 -0
- tycoon/config/wireguard/wg0-client-windows.conf +11 -0
- tycoon/config/wireguard/wg0-server.conf +22 -0
- tycoon/scripts/deploy-linux-server.sh +37 -0
- tycoon/scripts/deploy-oci-server.sh +28 -0
- tycoon/scripts/deploy-windows-client.ps1 +15 -0
- tycoon/src/community_node.rs +44 -0
- tycoon/src/gpu_dashboard.rs +66 -0
- tycoon/src/main.rs +90 -0
tycoon/Cargo.toml
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[package]
|
| 2 |
+
name = "meta-introspector-tycoon"
|
| 3 |
+
version = "1.0.0"
|
| 4 |
+
edition = "2021"
|
| 5 |
+
description = "Revolutionary computational tycoon with infinite complexity"
|
| 6 |
+
|
| 7 |
+
[[bin]]
|
| 8 |
+
name = "tycoon-server"
|
| 9 |
+
path = "src/main.rs"
|
| 10 |
+
|
| 11 |
+
[[bin]]
|
| 12 |
+
name = "gpu-dashboard"
|
| 13 |
+
path = "src/gpu_dashboard.rs"
|
| 14 |
+
|
| 15 |
+
[[bin]]
|
| 16 |
+
name = "community-node"
|
| 17 |
+
path = "src/community_node.rs"
|
| 18 |
+
|
| 19 |
+
[dependencies]
|
| 20 |
+
tokio = { version = "1.0", features = ["full"] }
|
| 21 |
+
axum = "0.7"
|
| 22 |
+
serde = { version = "1.0", features = ["derive"] }
|
| 23 |
+
serde_json = "1.0"
|
| 24 |
+
bevy = { version = "0.12", features = ["dynamic_linking"] }
|
| 25 |
+
reqwest = { version = "0.11", features = ["json"] }
|
| 26 |
+
anyhow = "1.0"
|
| 27 |
+
clap = { version = "4.0", features = ["derive"] }
|
| 28 |
+
uuid = { version = "1.0", features = ["v4"] }
|
| 29 |
+
sha2 = "0.10"
|
| 30 |
+
rayon = "1.10"
|
| 31 |
+
|
| 32 |
+
[features]
|
| 33 |
+
default = ["server"]
|
| 34 |
+
server = []
|
| 35 |
+
client = []
|
| 36 |
+
community = []
|
tycoon/README.md
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Meta-Introspector Tycoon - Complete System
|
| 2 |
+
|
| 3 |
+
## 🌌 Revolutionary Computational Tycoon Empire
|
| 4 |
+
|
| 5 |
+
A distributed system combining:
|
| 6 |
+
- 🏭 Mathematical factory tycoon game
|
| 7 |
+
- 🎮 Real-time GPU-accelerated 3D dashboard
|
| 8 |
+
- 🌐 Community participation network
|
| 9 |
+
- 🔒 Secure WireGuard VPN infrastructure
|
| 10 |
+
- 📺 Live streaming to X/Twitter
|
| 11 |
+
|
| 12 |
+
## 🏗️ Architecture
|
| 13 |
+
|
| 14 |
+
```
|
| 15 |
+
┌─────────────────────┐ ┌──────────────────────┐ ┌─────────────────────┐
|
| 16 |
+
│ Oracle OCI ARM64 │ │ Linux Server │ │ Windows Laptop │
|
| 17 |
+
│ - WireGuard Hub │◄──►│ - 24 CPU cores │◄──►│ - OBS Studio │
|
| 18 |
+
│ - VPN Coordination │ │ - 40GB RAM │ │ - Streaming Client │
|
| 19 |
+
│ - Free Tier │ │ - 12GB RTX 3080 Ti │ │ - Community Portal │
|
| 20 |
+
└─────────────────────┘ └──────────────────────┘ └─────────────────────┘
|
| 21 |
+
▲
|
| 22 |
+
│
|
| 23 |
+
┌──────────▼──────────┐
|
| 24 |
+
│ Community Nodes │
|
| 25 |
+
│ - Compute/Storage │
|
| 26 |
+
│ - Validator/Stream │
|
| 27 |
+
│ - Analyzer Nodes │
|
| 28 |
+
└─────────────────────┘
|
| 29 |
+
```
|
| 30 |
+
|
| 31 |
+
## 🚀 Quick Start
|
| 32 |
+
|
| 33 |
+
### 1. Oracle OCI ARM64 Setup
|
| 34 |
+
```bash
|
| 35 |
+
./scripts/deploy-oci-server.sh
|
| 36 |
+
```
|
| 37 |
+
|
| 38 |
+
### 2. Linux Server Setup
|
| 39 |
+
```bash
|
| 40 |
+
./scripts/deploy-linux-server.sh
|
| 41 |
+
```
|
| 42 |
+
|
| 43 |
+
### 3. Windows Laptop Setup
|
| 44 |
+
```powershell
|
| 45 |
+
.\scripts\deploy-windows-client.ps1
|
| 46 |
+
```
|
| 47 |
+
|
| 48 |
+
### 4. Community Node
|
| 49 |
+
```bash
|
| 50 |
+
cargo run --bin community-node -- --node-type compute
|
| 51 |
+
```
|
| 52 |
+
|
| 53 |
+
## 🎮 Features
|
| 54 |
+
|
| 55 |
+
- **🏭 8 Revolutionary Factories**: Security Lattice, Kleene Algebra, Monster Group, etc.
|
| 56 |
+
- **🎯 Real-time 3D Visualization**: Bevy engine with GPU particle effects
|
| 57 |
+
- **🗳️ Community Voting**: Democratic decisions on factory builds
|
| 58 |
+
- **🖥️ Distributed Nodes**: Community-run compute/storage/validator network
|
| 59 |
+
- **📺 Live Streaming**: OBS integration for X/Twitter broadcasts
|
| 60 |
+
- **🔒 Secure VPN**: WireGuard mesh network via Oracle OCI
|
| 61 |
+
|
| 62 |
+
## 💻 Chat Commands
|
| 63 |
+
|
| 64 |
+
- `!vote <option>` - Vote on active topics
|
| 65 |
+
- `!node <type>` - Join as community node
|
| 66 |
+
- `!feedback <msg>` - Give feedback
|
| 67 |
+
- `!invest <factory>` - Virtual investment
|
| 68 |
+
- `!stats` - Show statistics
|
| 69 |
+
|
| 70 |
+
## 🌟 Revolutionary Achievements
|
| 71 |
+
|
| 72 |
+
✅ Infinite complexity mathematical foundations
|
| 73 |
+
✅ GPU-accelerated real-time visualization
|
| 74 |
+
✅ Community-driven democratic participation
|
| 75 |
+
✅ Secure distributed infrastructure
|
| 76 |
+
✅ Cross-platform streaming integration
|
| 77 |
+
✅ Gamified virtual economics
|
| 78 |
+
|
| 79 |
+
**The future of computational tycoon gaming is here!** 🚀
|
tycoon/config/wireguard/wg0-client-linux.conf
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Linux Server Client Configuration
|
| 2 |
+
[Interface]
|
| 3 |
+
PrivateKey = <LINUX_CLIENT_PRIVATE_KEY>
|
| 4 |
+
Address = 10.0.0.2/32
|
| 5 |
+
DNS = 1.1.1.1
|
| 6 |
+
|
| 7 |
+
[Peer]
|
| 8 |
+
PublicKey = <SERVER_PUBLIC_KEY>
|
| 9 |
+
Endpoint = <OCI_ARM64_IP>:51820
|
| 10 |
+
AllowedIPs = 10.0.0.0/24
|
| 11 |
+
PersistentKeepalive = 25
|
tycoon/config/wireguard/wg0-client-windows.conf
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Windows Laptop Client Configuration
|
| 2 |
+
[Interface]
|
| 3 |
+
PrivateKey = <WINDOWS_CLIENT_PRIVATE_KEY>
|
| 4 |
+
Address = 10.0.0.3/32
|
| 5 |
+
DNS = 1.1.1.1
|
| 6 |
+
|
| 7 |
+
[Peer]
|
| 8 |
+
PublicKey = <SERVER_PUBLIC_KEY>
|
| 9 |
+
Endpoint = <OCI_ARM64_IP>:51820
|
| 10 |
+
AllowedIPs = 10.0.0.0/24
|
| 11 |
+
PersistentKeepalive = 25
|
tycoon/config/wireguard/wg0-server.conf
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Oracle OCI ARM64 WireGuard Server Configuration
|
| 2 |
+
[Interface]
|
| 3 |
+
PrivateKey = <SERVER_PRIVATE_KEY>
|
| 4 |
+
Address = 10.0.0.1/24
|
| 5 |
+
ListenPort = 51820
|
| 6 |
+
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
|
| 7 |
+
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
|
| 8 |
+
|
| 9 |
+
# Linux Server (12GB GPU)
|
| 10 |
+
[Peer]
|
| 11 |
+
PublicKey = <LINUX_SERVER_PUBLIC_KEY>
|
| 12 |
+
AllowedIPs = 10.0.0.2/32
|
| 13 |
+
|
| 14 |
+
# Windows Laptop (Streaming)
|
| 15 |
+
[Peer]
|
| 16 |
+
PublicKey = <WINDOWS_LAPTOP_PUBLIC_KEY>
|
| 17 |
+
AllowedIPs = 10.0.0.3/32
|
| 18 |
+
|
| 19 |
+
# Community Nodes
|
| 20 |
+
[Peer]
|
| 21 |
+
PublicKey = <COMMUNITY_NODE_PUBLIC_KEY>
|
| 22 |
+
AllowedIPs = 10.0.0.10/28
|
tycoon/scripts/deploy-linux-server.sh
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
# Deploy to Linux Server (12GB GPU)
|
| 3 |
+
|
| 4 |
+
echo "🖥️ Deploying to Linux Server..."
|
| 5 |
+
|
| 6 |
+
# Install Rust
|
| 7 |
+
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
| 8 |
+
# shellcheck source=/dev/null
|
| 9 |
+
source ~/.cargo/env
|
| 10 |
+
|
| 11 |
+
# Install WireGuard
|
| 12 |
+
sudo apt install -y wireguard
|
| 13 |
+
|
| 14 |
+
# Build tycoon system
|
| 15 |
+
cargo build --release --bin tycoon-server
|
| 16 |
+
cargo build --release --bin gpu-dashboard
|
| 17 |
+
|
| 18 |
+
# Install systemd services
|
| 19 |
+
sudo tee /etc/systemd/system/tycoon-server.service << 'SERVICE'
|
| 20 |
+
[Unit]
|
| 21 |
+
Description=Meta-Introspector Tycoon Server
|
| 22 |
+
After=network.target
|
| 23 |
+
|
| 24 |
+
[Service]
|
| 25 |
+
Type=simple
|
| 26 |
+
User=tycoon
|
| 27 |
+
ExecStart=/home/tycoon/meta-introspector-tycoon/target/release/tycoon-server
|
| 28 |
+
Restart=always
|
| 29 |
+
|
| 30 |
+
[Install]
|
| 31 |
+
WantedBy=multi-user.target
|
| 32 |
+
SERVICE
|
| 33 |
+
|
| 34 |
+
sudo systemctl enable tycoon-server
|
| 35 |
+
sudo systemctl start tycoon-server
|
| 36 |
+
|
| 37 |
+
echo "✅ Linux server deployed"
|
tycoon/scripts/deploy-oci-server.sh
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
# Deploy to Oracle OCI ARM64 Free Tier
|
| 3 |
+
|
| 4 |
+
echo "🏗️ Deploying to Oracle OCI ARM64..."
|
| 5 |
+
|
| 6 |
+
# Update system
|
| 7 |
+
sudo apt update && sudo apt upgrade -y
|
| 8 |
+
|
| 9 |
+
# Install WireGuard
|
| 10 |
+
sudo apt install -y wireguard
|
| 11 |
+
|
| 12 |
+
# Generate keys
|
| 13 |
+
wg genkey | tee server_private.key | wg pubkey > server_public.key
|
| 14 |
+
|
| 15 |
+
# Configure WireGuard
|
| 16 |
+
sudo cp wg0-server.conf /etc/wireguard/wg0.conf
|
| 17 |
+
sudo systemctl enable wg-quick@wg0
|
| 18 |
+
sudo systemctl start wg-quick@wg0
|
| 19 |
+
|
| 20 |
+
# Install Docker for containerized services
|
| 21 |
+
curl -fsSL https://get.docker.com -o get-docker.sh
|
| 22 |
+
sudo sh get-docker.sh
|
| 23 |
+
|
| 24 |
+
# Open firewall
|
| 25 |
+
sudo ufw allow 51820/udp
|
| 26 |
+
sudo ufw allow 8080/tcp
|
| 27 |
+
|
| 28 |
+
echo "✅ Oracle OCI ARM64 server deployed"
|
tycoon/scripts/deploy-windows-client.ps1
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Deploy to Windows Laptop
|
| 2 |
+
Write-Host "💻 Deploying to Windows Laptop..."
|
| 3 |
+
|
| 4 |
+
# Install Rust
|
| 5 |
+
Invoke-WebRequest -Uri "https://win.rustup.rs/" -OutFile "rustup-init.exe"
|
| 6 |
+
.\rustup-init.exe -y
|
| 7 |
+
|
| 8 |
+
# Install WireGuard
|
| 9 |
+
Invoke-WebRequest -Uri "https://download.wireguard.com/windows-client/wireguard-installer.exe" -OutFile "wireguard-installer.exe"
|
| 10 |
+
.\wireguard-installer.exe /S
|
| 11 |
+
|
| 12 |
+
# Build client
|
| 13 |
+
cargo build --release --bin gpu-dashboard --features client
|
| 14 |
+
|
| 15 |
+
Write-Host "✅ Windows client deployed"
|
tycoon/src/community_node.rs
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
use clap::Parser;
|
| 2 |
+
use std::time::Duration;
|
| 3 |
+
use tokio::time::sleep;
|
| 4 |
+
|
| 5 |
+
#[derive(Parser)]
|
| 6 |
+
struct Args {
|
| 7 |
+
#[arg(long, default_value = "compute")]
|
| 8 |
+
node_type: String,
|
| 9 |
+
|
| 10 |
+
#[arg(long, default_value = "http://localhost:8080")]
|
| 11 |
+
server_url: String,
|
| 12 |
+
}
|
| 13 |
+
|
| 14 |
+
#[tokio::main]
|
| 15 |
+
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
| 16 |
+
let args = Args::parse();
|
| 17 |
+
|
| 18 |
+
println!("🖥️ Starting {} community node...", args.node_type);
|
| 19 |
+
println!("🌐 Connecting to: {}", args.server_url);
|
| 20 |
+
|
| 21 |
+
loop {
|
| 22 |
+
match args.node_type.as_str() {
|
| 23 |
+
"compute" => {
|
| 24 |
+
println!("🧮 Processing tycoon calculations...");
|
| 25 |
+
// Simulate compute work
|
| 26 |
+
let result = (0..1000000).map(|i| i as f64).sum::<f64>();
|
| 27 |
+
println!(" Computed sum: {}", result);
|
| 28 |
+
},
|
| 29 |
+
"storage" => {
|
| 30 |
+
println!("💾 Storing factory data...");
|
| 31 |
+
// Simulate storage operations
|
| 32 |
+
},
|
| 33 |
+
"validator" => {
|
| 34 |
+
println!("✅ Validating transactions...");
|
| 35 |
+
// Simulate validation
|
| 36 |
+
},
|
| 37 |
+
_ => {
|
| 38 |
+
println!("❓ Unknown node type: {}", args.node_type);
|
| 39 |
+
}
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
sleep(Duration::from_secs(10)).await;
|
| 43 |
+
}
|
| 44 |
+
}
|
tycoon/src/gpu_dashboard.rs
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
use bevy::prelude::*;
|
| 2 |
+
|
| 3 |
+
fn main() {
|
| 4 |
+
App::new()
|
| 5 |
+
.add_plugins(DefaultPlugins.set(WindowPlugin {
|
| 6 |
+
primary_window: Some(Window {
|
| 7 |
+
title: "🌌 Meta-Introspector Tycoon - GPU Dashboard 🌌".into(),
|
| 8 |
+
resolution: bevy::window::WindowResolution::new(1920.0, 1080.0),
|
| 9 |
+
..default()
|
| 10 |
+
}),
|
| 11 |
+
..default()
|
| 12 |
+
}))
|
| 13 |
+
.add_systems(Startup, setup)
|
| 14 |
+
.add_systems(Update, animate_factories)
|
| 15 |
+
.run();
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
fn setup(
|
| 19 |
+
mut commands: Commands,
|
| 20 |
+
mut meshes: ResMut<Assets<Mesh>>,
|
| 21 |
+
mut materials: ResMut<Assets<StandardMaterial>>,
|
| 22 |
+
) {
|
| 23 |
+
commands.spawn(Camera3dBundle {
|
| 24 |
+
transform: Transform::from_xyz(0.0, 8.0, 15.0).looking_at(Vec3::ZERO, Vec3::Y),
|
| 25 |
+
..default()
|
| 26 |
+
});
|
| 27 |
+
|
| 28 |
+
commands.spawn(DirectionalLightBundle {
|
| 29 |
+
directional_light: DirectionalLight {
|
| 30 |
+
color: Color::rgb(0.0, 1.0, 0.0),
|
| 31 |
+
illuminance: 8000.0,
|
| 32 |
+
..default()
|
| 33 |
+
},
|
| 34 |
+
..default()
|
| 35 |
+
});
|
| 36 |
+
|
| 37 |
+
// Factory cubes
|
| 38 |
+
for i in 0..5 {
|
| 39 |
+
commands.spawn((
|
| 40 |
+
PbrBundle {
|
| 41 |
+
mesh: meshes.add(Mesh::from(shape::Cube { size: 2.0 })),
|
| 42 |
+
material: materials.add(StandardMaterial {
|
| 43 |
+
base_color: Color::rgb(0.0, 1.0, 0.0),
|
| 44 |
+
emissive: Color::rgb(0.0, 0.5, 0.0),
|
| 45 |
+
..default()
|
| 46 |
+
}),
|
| 47 |
+
transform: Transform::from_xyz(i as f32 * 4.0 - 8.0, 0.0, 0.0),
|
| 48 |
+
..default()
|
| 49 |
+
},
|
| 50 |
+
Factory { level: 1 },
|
| 51 |
+
));
|
| 52 |
+
}
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
#[derive(Component)]
|
| 56 |
+
struct Factory {
|
| 57 |
+
level: u32,
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
+
fn animate_factories(time: Res<Time>, mut query: Query<&mut Transform, With<Factory>>) {
|
| 61 |
+
for mut transform in query.iter_mut() {
|
| 62 |
+
transform.rotation *= Quat::from_rotation_y(0.01);
|
| 63 |
+
let scale = 1.0 + (time.elapsed_seconds().sin() * 0.1);
|
| 64 |
+
transform.scale = Vec3::splat(scale);
|
| 65 |
+
}
|
| 66 |
+
}
|
tycoon/src/main.rs
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
use axum::{routing::get, Router, Json};
|
| 2 |
+
use serde_json::json;
|
| 3 |
+
use std::collections::HashMap;
|
| 4 |
+
use tokio::net::TcpListener;
|
| 5 |
+
|
| 6 |
+
#[tokio::main]
|
| 7 |
+
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
| 8 |
+
println!("🌌 Meta-Introspector Tycoon Server Starting...");
|
| 9 |
+
|
| 10 |
+
let app = Router::new()
|
| 11 |
+
.route("/", get(dashboard))
|
| 12 |
+
.route("/api/tycoon-stats", get(tycoon_stats))
|
| 13 |
+
.route("/api/community-data", get(community_data))
|
| 14 |
+
.route("/api/vote", get(handle_vote))
|
| 15 |
+
.route("/api/join-node", get(join_node));
|
| 16 |
+
|
| 17 |
+
let listener = TcpListener::bind("0.0.0.0:8080").await?;
|
| 18 |
+
println!("🚀 Server running on http://0.0.0.0:8080");
|
| 19 |
+
|
| 20 |
+
axum::serve(listener, app).await?;
|
| 21 |
+
Ok(())
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
async fn dashboard() -> &'static str {
|
| 25 |
+
r#"
|
| 26 |
+
<!DOCTYPE html>
|
| 27 |
+
<html>
|
| 28 |
+
<head><title>Meta-Introspector Tycoon</title>
|
| 29 |
+
<style>
|
| 30 |
+
body { font-family: monospace; background: #0a0a0a; color: #00ff00; padding: 20px; }
|
| 31 |
+
.factory { border: 1px solid #00ff00; padding: 15px; margin: 10px; background: #001100; }
|
| 32 |
+
.revenue { color: #ffff00; font-weight: bold; }
|
| 33 |
+
.infinite { color: #ff00ff; animation: pulse 2s infinite; }
|
| 34 |
+
@keyframes pulse { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } }
|
| 35 |
+
</style></head>
|
| 36 |
+
<body>
|
| 37 |
+
<h1>🌌 META-INTROSPECTOR TYCOON 🌌</h1>
|
| 38 |
+
<div class="factory">
|
| 39 |
+
<h3>🏭 Revolutionary Factories</h3>
|
| 40 |
+
<p>Security Lattice Factory: <span class="revenue">$100/sec</span></p>
|
| 41 |
+
<p>Kleene Algebra Mine: <span class="revenue">$250/sec</span></p>
|
| 42 |
+
<p>Monster Group Foundry: <span class="revenue">$500/sec</span></p>
|
| 43 |
+
<p>Unity Convergence Center: <span class="revenue">$2000/sec</span></p>
|
| 44 |
+
<p class="infinite">Infinite Complexity Engine: ∞/sec</p>
|
| 45 |
+
</div>
|
| 46 |
+
<div class="factory">
|
| 47 |
+
<h3>🌐 Community Participation</h3>
|
| 48 |
+
<p>Commands: !vote !node !feedback !invest</p>
|
| 49 |
+
<p>Active Nodes: <span id="node-count">0</span></p>
|
| 50 |
+
<p>Total Votes: <span id="vote-count">0</span></p>
|
| 51 |
+
</div>
|
| 52 |
+
<script>
|
| 53 |
+
setInterval(() => {
|
| 54 |
+
fetch('/api/tycoon-stats').then(r => r.json()).then(data => {
|
| 55 |
+
document.getElementById('node-count').textContent = data.nodes;
|
| 56 |
+
document.getElementById('vote-count').textContent = data.votes;
|
| 57 |
+
});
|
| 58 |
+
}, 5000);
|
| 59 |
+
</script>
|
| 60 |
+
</body>
|
| 61 |
+
</html>
|
| 62 |
+
"#
|
| 63 |
+
}
|
| 64 |
+
|
| 65 |
+
async fn tycoon_stats() -> Json<serde_json::Value> {
|
| 66 |
+
Json(json!({
|
| 67 |
+
"nodes": 42,
|
| 68 |
+
"votes": 156,
|
| 69 |
+
"revenue": 50000.0,
|
| 70 |
+
"factories": 8
|
| 71 |
+
}))
|
| 72 |
+
}
|
| 73 |
+
|
| 74 |
+
async fn community_data() -> Json<serde_json::Value> {
|
| 75 |
+
Json(json!({
|
| 76 |
+
"active_votes": [
|
| 77 |
+
{"topic": "Next Factory", "options": ["Quantum", "Blockchain", "AI"], "votes": [15, 8, 12]}
|
| 78 |
+
],
|
| 79 |
+
"community_nodes": 42,
|
| 80 |
+
"recent_feedback": ["Great stream!", "Add more particles", "Love the math!"]
|
| 81 |
+
}))
|
| 82 |
+
}
|
| 83 |
+
|
| 84 |
+
async fn handle_vote() -> &'static str {
|
| 85 |
+
"Vote recorded!"
|
| 86 |
+
}
|
| 87 |
+
|
| 88 |
+
async fn join_node() -> &'static str {
|
| 89 |
+
"Node joined successfully!"
|
| 90 |
+
}
|