From af9ed2b456bae0c8c879143d05324aa82b908e0b Mon Sep 17 00:00:00 2001 From: LemonNexus Date: Wed, 11 Feb 2026 19:32:44 +0000 Subject: [PATCH] refactor: sync standalone extractor with cleaned up code --- README-EU-Icon-Extractor.md | 55 ++++++++++++++++++++++++++++++++++++ standalone_icon_extractor.py | 37 ++++++------------------ 2 files changed, 63 insertions(+), 29 deletions(-) create mode 100644 README-EU-Icon-Extractor.md diff --git a/README-EU-Icon-Extractor.md b/README-EU-Icon-Extractor.md new file mode 100644 index 0000000..0a5c948 --- /dev/null +++ b/README-EU-Icon-Extractor.md @@ -0,0 +1,55 @@ +# Entropia Universe Icon Extractor + +A standalone tool for extracting item icons from Entropia Universe game cache. + +EU Icon Extractor + +## Description + +Extract item icons from Entropia Universe cache and convert them to PNG format. + +**Important:** Items must be seen/rendered in-game before they appear in the cache! If an icon is missing, view the item in your inventory or the auction first. + +## Usage + +```bash +python icon_extractor.py +``` + +### Requirements +- Python 3.11+ +- PyQt6: `pip install PyQt6` +- Pillow: `pip install Pillow` + +## Features + +- **Auto-detects** game cache from `C:\ProgramData\Entropia Universe\public_users_data\cache\icon` +- **Version selector** - Choose which game version to extract from +- **"All Folders" option** - Extract from all versions at once +- **Double-click preview** - Preview TGA files before extraction +- **320x320 PNG output** - Icons centered on transparent canvas +- **Light/Dark theme** - Toggle between themes +- **Custom output folder** - Choose where to save extracted icons + +## Output + +Icons are saved to your Documents folder: +``` +Documents\Entropia Universe\Icons\ +``` + +(Same location where `chat.log` is normally stored) + +## Links + +- **Developer:** ImpulsiveFPS +- **Discord:** impulsivefps +- **GitHub:** https://github.com/ImpulsiveFPS/EU-Icon-Extractor + +## Disclaimer + +Entropia Universe Icon Extractor is a fan-made resource and is not affiliated with [MindArk PE AB](https://www.mindark.com/). [Entropia Universe](https://www.entropiauniverse.com/) is a trademark of MindArk PE AB. + +## License + +MIT License - Feel free to use and modify! diff --git a/standalone_icon_extractor.py b/standalone_icon_extractor.py index 9e082e3..4899ce5 100644 --- a/standalone_icon_extractor.py +++ b/standalone_icon_extractor.py @@ -2,59 +2,39 @@ Entropia Universe Icon Extractor A standalone tool for extracting game icons from cache. -Description: Extracts item icons from Entropia Universe game cache and converts -them to PNG format for use with EntropiaNexus.com wiki submissions. - -Important: Items must be seen/rendered in-game before they appear in the cache. - Usage: - python standalone_icon_extractor.py - -Output Location: - Icons are saved to your Documents/Entropia Universe/Icons/ folder - (same location where chat.log is normally stored) + python icon_extractor.py Developer: ImpulsiveFPS Discord: impulsivefps -Website: https://EntropiaNexus.com - -Disclaimer: - Entropia Universe Icon Extractor is a fan-made resource and is not - affiliated with MindArk PE AB. Entropia Universe is a trademark of - MindArk PE AB. +GitHub: https://github.com/ImpulsiveFPS/EU-Icon-Extractor """ import sys import logging from pathlib import Path -from typing import Optional, List, Tuple +from typing import Optional, List import ctypes try: from PyQt6.QtWidgets import ( QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QComboBox, QListWidget, QListWidgetItem, - QFileDialog, QProgressBar, QGroupBox, QMessageBox, QCheckBox, - QSplitter, QTextEdit, QDialog, QScrollArea, QFrame + QFileDialog, QProgressBar, QGroupBox, QMessageBox, + QTextEdit, QDialog, QScrollArea ) - from PyQt6.QtCore import Qt, QThread, pyqtSignal, QSettings, QSize - from PyQt6.QtGui import QIcon, QPixmap, QFont, QImage - PYQT_AVAILABLE = True + from PyQt6.QtCore import Qt, QThread, pyqtSignal, QSettings + from PyQt6.QtGui import QIcon, QPixmap, QImage except ImportError: - PYQT_AVAILABLE = False print("PyQt6 not available. Install with: pip install PyQt6") sys.exit(1) try: - from PIL import Image, ImageFilter - PIL_AVAILABLE = True + from PIL import Image except ImportError: - PIL_AVAILABLE = False print("Pillow not available. Install with: pip install Pillow") sys.exit(1) -import numpy as np - # Setup logging logging.basicConfig( level=logging.INFO, @@ -68,7 +48,6 @@ APP_NAME = "Entropia Universe Icon Extractor" APP_VERSION = "1.0.0" DEVELOPER = "ImpulsiveFPS" DISCORD = "impulsivefps" -WEBSITE = "https://EntropiaNexus.com" class TGAHeader: