|
3 | 3 | Hammer 5 Tools |
4 | 4 | </h1> |
5 | 5 |
|
| 6 | +<p align="center"> |
| 7 | + <strong>The ultimate toolkit for Counter-Strike 2 level designers and modders.</strong> |
| 8 | +</p> |
| 9 | + |
6 | 10 | <p align="center"> |
7 | 11 | <a href="https://github.com/dertwist/Hammer5Tools/releases/latest"> |
8 | 12 | <img src="https://gist.githubusercontent.com/cxmeel/0dbc95191f239b631c3874f4ccf114e2/raw/download.svg" height="45" alt="Download"> |
|
15 | 19 | </a> |
16 | 20 | </p> |
17 | 21 |
|
18 | | -# Essential Tools for Counter-Strike 2 Mapping |
| 22 | +--- |
| 23 | + |
| 24 | +# Level Up Your Mapping Workflow |
| 25 | + |
| 26 | +Welcome to **Hammer 5 Tools**. If you've ever felt that the standard CS2 Workshop Tools are missing a few essential features, you're in the right place. This toolkit is built by a mapper, for mappers, to bridge the gaps and streamline your workflow. |
19 | 27 |
|
20 | | -A powerful toolkit for Counter-Strike 2 Workshop Tools. Edit sound events, create smart props, build maps, manage keybindings, and customize loading screens. |
| 28 | +Whether you're wrestling with sound events, trying to make sense of Smart Props, or just want a faster way to compile your project, we've got you covered. |
21 | 29 |
|
22 | | -[**Visit Official Website**](https://hammer5tools.github.io/) |
| 30 | +[**Check out the Official Website**](https://hammer5tools.github.io/) |
23 | 31 |
|
24 | 32 | <p align="center"> |
25 | 33 | <video src="https://hammer5tools.github.io/videos/hero.mp4" controls="controls" width="100%" muted="true" loop="true" autoplay="true"></video> |
26 | 34 | </p> |
27 | 35 |
|
28 | | -## Tools |
| 36 | +## What's Inside? |
29 | 37 |
|
30 | 38 | ### SmartProp Editor |
31 | | -Edit .vsmart files using an intuitive interface. The tool supports all essential properties while maintaining compatibility with older formats. Modify properties in real-time to precisely adjust the position, rotation, and scaling of your models. Utilize presets to rapidly construct repetitive elements. |
| 39 | +Stop editing `.vsmart` files in notepad. Our editor gives you a visual way to manage position, rotation, and scaling in real-time. It's fully compatible with Valve's formats and includes presets to help you build complex scenes in seconds. |
32 | 40 |
|
33 | 41 |  |
34 | 42 |
|
35 | | ---- |
36 | | - |
37 | 43 | ### SoundEvent Editor |
38 | | -Manage in-game sounds seamlessly. The editor works directly with Counter-Strike 2 sounds (.vsnd files) and allows you to explore, preview, and configure sound events. Use presets to quickly set up sound events or define your own custom configurations. Edits the `soundevents_addon.vsndevts` file directly. |
| 44 | +Managing sounds shouldn't be a chore. Explore, preview, and configure your `.vsnd` files directly. We edit your `soundevents_addon.vsndevts` file safely, so you can focus on the atmosphere, not the syntax. |
39 | 45 |
|
40 | 46 |  |
41 | 47 |
|
42 | | ---- |
43 | | - |
44 | 48 | ### Map Builder |
45 | | -Streamline the map compilation process with a dedicated and powerful interface. Access fast, full, or custom compile options such as building geometry, visibility, or baking lighting. Configure settings like lightmap resolution and quality while monitoring CPU, RAM, and GPU usage during the build in real-time. |
| 49 | +A streamlined interface for the compilation process. Whether it's a quick preview or a final bake with high-quality lighting, you can monitor your system's performance (CPU/RAM/GPU) in real-time while it works. |
46 | 50 |
|
47 | 51 |  |
48 | 52 |
|
49 | | ---- |
50 | | - |
51 | 53 | ### Cleanup Tool |
52 | | -Effortlessly remove unused and redundant files from your addon's content folder. By scanning your project's .vmap file, the tool identifies and keeps only the actively referenced assets, freeing up valuable storage space and simplifying project management. |
| 54 | +Is your addon folder getting messy? This tool scans your `.vmap` and sweeps away unused assets, keeping your project lean and professional. |
53 | 55 |
|
54 | 56 |  |
55 | 57 |
|
56 | | ---- |
57 | | - |
58 | | -### Export / Import Addon |
59 | | -Simplify the distribution of your projects by exporting and importing entire addons seamlessly. Filter out unnecessary folders or VCS files, and include compiled maps, materials, or models effortlessly. Ideal for packaging your map for release or collaborating with other developers. |
| 58 | +### Addon Porter (Export/Import) |
| 59 | +Easily package your addon for release or collaboration. Filter out junk files, include compiled maps, and share your work with a single click. |
60 | 60 |
|
61 | 61 |  |
62 | 62 |
|
63 | 63 | --- |
64 | 64 |
|
65 | | -### AssetGroup Maker |
66 | | -Batch-create assets for Source 2 effortlessly. By utilizing a straightforward configuration file and a folder scan, you can automatically generate files for massive asset sets. This ensures consistency across all your assets and drastically minimizes time spent on manual edits. |
67 | | - |
68 | | - |
69 | | - |
70 | | ---- |
71 | | - |
72 | | -### Hotkey Editor |
73 | | -Configure and manage custom keyboard shortcuts for a wide variety of tasks. Streamline your workflow by keeping essential functions right at your fingertips. Store multiple hotkey presets tailored to different projects and switch between them seamlessly. |
| 65 | +# For Developers |
74 | 66 |
|
75 | | - |
| 67 | +Want to contribute or build your own version? Here's the lowdown on the project structure. |
76 | 68 |
|
77 | | ---- |
| 69 | +### Project Architecture |
| 70 | +The app is modular. Each editor lives in its own folder under `src/` and can run standalone if you point it to the right paths. `src/main.py` is the entry point that brings everything together. |
78 | 71 |
|
79 | | -### Loading Editor |
80 | | -Customize your map's loading experience by managing screenshots, map icons, and descriptions. Capture high-quality screenshots and history snapshots directly from CS2, process them into multiple resolutions, and configure rich-text descriptions for the community workshop. |
| 72 | +* `src/`: The heart of the app. |
| 73 | +* `src/forms/`: Minor dialogs and UI helpers. |
| 74 | +* `src/external/`: External libraries and .NET resources. |
| 75 | +* `src/common/`: Shared logic and utility functions. |
81 | 76 |
|
82 | | - |
| 77 | +### Getting Started |
| 78 | +1. **Environment**: Requires Python 3.11+. Install dependencies via `pip install -r requirements.txt`. |
| 79 | +2. **Running**: Launch `src/main.py`. Ensure your working directory is set to the project root. |
| 80 | +3. **Building**: We use a custom `makefile.py` to handle the build process: |
| 81 | + ```powershell |
| 82 | + # Build a stable release |
| 83 | + python makefile.py --build-all --stable |
| 84 | + |
| 85 | + # Build a development version |
| 86 | + python makefile.py --build-all --dev |
| 87 | + ``` |
83 | 88 |
|
| 89 | +### Distribution & Updates |
| 90 | +We use **Velopack** for delta-based updates. The GitHub Actions pipeline handles packaging automatically whenever a new tag (e.g., `v5.0.0`) is pushed to the repository. |
84 | 91 |
|
85 | | -# Development Guide |
86 | 92 | --- |
87 | | -## 1. Project Structure |
88 | 93 |
|
89 | | -The application is organized into modules, with each editor implemented as a separate module. Editors can be run independently if you provide the paths to CS2 and the addon. All editors are integrated through the main application (src/main.py), which manages their settings. If you wish to use an editor separately from the main application, you must create separate settings and handle the CS2 and addon paths manually. |
| 94 | +## Join the Community |
| 95 | +Have questions? Found a bug? Or just want to show off what you've built? Join our **[Discord Server](https://discord.com/invite/DvCXEyhssd)**. We're a friendly group of mappers and developers always looking to help out. |
90 | 96 |
|
91 | | -Project folder overview: |
92 | | -- `src/`: Contains the main application code and all editor modules. |
93 | | - - `forms/`: Minor Qt dialogs, such as About or Launch Options. |
94 | | - - `external/`: External libraries and resources not related to Python (e.g., .NET libraries). |
95 | | - - `dotnet/`: .NET handle, functions (located in `src/external`). |
96 | | - |
97 | | -Each major feature or editor has its own folder: |
98 | | -- `common/`: Shared helpers and logic used across editors. |
99 | | -- `main.py`: General functions, entry point. |
100 | 97 | --- |
101 | | - |
102 | | -## 2. Launch and Build configurations |
103 | | -Run configurations are available for PyCharm and Visual Studio Code. |
104 | | -- **Run:** |
105 | | - To run the application, you need to run the main.py file in the src folder. |
106 | | - Do not forget to set the working directory to the `hammer5tools` folder, which is in the same root folder as src. |
107 | | - Otherwise, just use the ready-made run configurations in your IDE. |
108 | | -- **Build:** |
109 | | - ```shell |
110 | | - python makefile.py --build-all --archive |
111 | | - ``` |
112 | | - The script will generate exe file in the `hammer5tools` folder. After that |
113 | | - it will create a zip archive of the application in the `dist` folder for distribution. |
114 | | - The archive used by automic updates and can be used to run the application on other computers without installation. |
115 | | - |
116 | | - |
117 | | -- **Installer:** |
118 | | - |
119 | | - To create the installer, you need to install [Inno Setup](https://jrsoftware.org/isinfo.php). Do not change the default installation path. |
120 | | - |
| 98 | +*Created with ❤️ by dertwist and the community.* |
0 commit comments