← Назад к ресурсам

Enchantment Calculator

Client-side mod that calculates optimal enchantment paths to save XP and levels when enchanting gear, tools, weapons, and armor.

Modrinth equipment game-mechanics utility

Описание

## Overview Enchantment Calculator is a client-side mod that helps you find the most cost-effective way to combine enchantments on your items. This mod is based on the functionality provided by [this website](https://iamcal.github.io/enchant-order/) This mod supports customization via a custom resource pack. GUI elements are located at: `assets/enchantmentcalculator/textures/gui` You can view the original textures in the source code on [GitHub](https://github.com/FanyaOff/Enchantment-Calculator/tree/main/src/main/resources/assets/enchantmentcalculator/textures/gui) _If you have an idea to improve the interface by redrawing the elements or by changing the code, I would appreciate it._ ## Known bugs - The interface overflows off-screen when using UI scale 4 (idk how to fix this :P) ## Bug Reports & Feature Requests Found a bug, errors in calculations, have a suggestion? Please report it my our [GitHub Issues](https://github.com/FanyaOff/Enchantment-Calculator/issues) page. ## Usage 1. **Place an item** in the anvil 2. **Select enchantments** from the left panel 3. **Click Calculate** to find the optimal sequence 4. **Follow the steps** shown in the right panel 5. **Navigate** through steps using arrow buttons ## Screenshot # Technical Algorithm Overview ## Optimization Algorithm The Enchantment Calculator uses a sophisticated **tree-based optimization algorithm** to find the most cost-effective enchanting sequence. ### Core Algorithm Steps: #### 1. **Tree Structure Generation** ``` For n enchantments, generate all possible binary combination trees - Each leaf = enchantment book or base item - Each internal node = anvil combination operation - Tree depth determines maximum prior work penalty ``` #### 2. **Cost Calculation Model** The mod calculates costs using Minecraft's exact anvil mechanics: **Total Cost = Enchantment Cost + Prior Work Penalty** Where: - **Enchantment Cost**: Based on enchantment rarity weights - **Prior Work Penalty**: `MULTIPLIERS[left_uses] + MULTIPLIERS[right_uses]` - **Multipliers**: `[1023]` #### 3. **Tree Pruning Optimization** Instead of testing all possible trees, the algorithm: - Groups trees by maximum depth (anvil use count) - Calculates weighted contribution sums for each tree - Keeps only the best tree per depth level - Reduces complexity from O(n!) to O(n²) #### 4. **Item Placement Optimization** For each tree structure: ``` 1. Sort enchantment books by cost (expensive first) 2. Calculate leaf contribution values for each position 3. Place expensive items at positions with lowest contributions 4. Minimize total weighted cost ``` #### 5. **Multi-Mode Optimization** Supports two optimization targets: - **Level Mode**: Minimizes total anvil level cost - **Experience Mode**: Minimizes total XP expenditure ### Mathematical Foundation #### Prior Work Penalty Calculation: ``` penalty = MULTIPLIERS[left_item_uses] + MULTIPLIERS[right_item_uses] ``` #### Experience Cost Conversion: ``` if (levels ≤ 16): xp = levels² + 6×levels if (levels ≤ 31): xp = 2.5×levels² - 40.5×levels + 360 if (levels > 31): xp = 4.5×levels² - 162.5×levels + 2220 ``` #### Tree Contribution Weighting: ``` For each tree position i: contribution[i] = depth_from_root weighted_sum = Σ(i × contribution[i]) ``` ### Algorithm Complexity - **Time Complexity**: O(n² × 2^n) where n = number of enchantments - **Space Complexity**: O(n × 2^n) for tree storage - **Practical Performance**: