diff --git a/src/components/Island/IslandUniverse.jsx b/src/components/Island/IslandUniverse.jsx
index 31daa4e..485562e 100644
--- a/src/components/Island/IslandUniverse.jsx
+++ b/src/components/Island/IslandUniverse.jsx
@@ -185,6 +185,76 @@ export default function IslandUniverse({ onClose, onIslandClick }) {
markers.push({ marker, island, el });
});
+ // Add planet markers (positioned in outer ring)
+ planets.forEach((planet, idx) => {
+ const angle = (idx / Math.max(planets.length, 1)) * Math.PI * 2;
+ const radius = 18 + (idx % 3) * 4;
+ const lng = centerLng + Math.cos(angle) * radius;
+ const lat = centerLat + Math.sin(angle) * radius;
+
+ const el = document.createElement('div');
+ el.className = 'universe-planet-marker';
+
+ const planetColor = getPlanetColor(planet.theme || 'default');
+ const memberCount = planet.member_count || 0;
+
+ el.innerHTML = `
+
+
+
+ 🪐 ${planet.name || 'Planet'}
+
+ ${memberCount} ${t('universe.members')}
+
+
+
+ `;
+
+ el.addEventListener('mouseenter', () => {
+ setHoveredIsland({ ...planet, isPlanet: true, username: planet.name });
+ });
+ el.addEventListener('mouseleave', () => setHoveredIsland(null));
+ el.addEventListener('click', (e) => {
+ e.stopPropagation();
+ console.log('[IslandUniverse] Clicked planet:', planet.name);
+ // TODO: Navigate to planet page when ready
+ });
+
+ const marker = new maplibregl.Marker({ element: el, anchor: 'center' })
+ .setLngLat([lng, lat])
+ .addTo(map);
+
+ markers.push({ marker, planet, el, isPlanet: true });
+ });
+
markersRef.current = markers;
// Slow rotation animation
@@ -328,6 +398,22 @@ function getTerrainColor(terrainType) {
return palettes[terrainType] || palettes['tropical'];
}
+/**
+ * Get planet theme color
+ */
+function getPlanetColor(theme) {
+ const palettes = {
+ 'default': '#9b59b6',
+ 'tech': '#3498db',
+ 'gaming': '#e74c3c',
+ 'music': '#1abc9c',
+ 'art': '#e91e63',
+ 'science': '#00bcd4',
+ 'sports': '#ff9800',
+ };
+ return palettes[theme] || palettes['default'];
+}
+
/**
* Generate a detailed island SVG shape (bigger, more features)
*/