Описание
# EMC Essentials (ReFabricated)
*A unified Fabric port of the EMC Essentials Forge Modpack — bringing ProjectE, Project Expansion, Arcane Tablet, and more into a single Fabric mod built on [Item Alchemy](https://modrinth.com/mod/item-alchemy).*
---
## Overview
EMC Essentials (ReFabricated) ports the core experience of the **EMC Essentials Forge Modpack** to **Minecraft 1.20.1 Fabric**. Instead of needing a dozen separate mods, this single `.jar` enhances the EMC ecosystem with commands, Power Flowers, an EMC Link, an EMC Interface, a Miniature Sun, a HUD display, configurable values, and auto-registration — wrapping Item Alchemy as the backend EMC engine.
Think of it as the Project Expansion equivalent for Fabric — a companion mod for **Item Alchemy** (the Fabric equivalent of ProjectE), giving you the machines, tools, and QoL features to inspect, manage, and scale your EMC production without leaving the game.
---
## Features
### `/emce` Command Suite
Seven subcommands for full EMC control, plus `/emce bank` for balance management:
| Command | What it does |
|---------|--------------|
| `/emce help` | Shows all available commands |
| `/emce get ` | Look up the EMC value of any item |
| `/emce set ` | Set a custom EMC value for an item |
| `/emce remove ` | Remove a custom EMC override |
| `/emce bank get` | Check your EMC balance |
| `/emce bank add ` | Add EMC (supports K/M/B/T/Q suffixes) |
| `/emce bank remove ` | Remove EMC |
| `/emce bank set ` | Set EMC balance to exact value |
| `/emce reload` | Reload the config from disk |
| `/emce list` | List all custom EMC values |
| `/emce stats` | Show overall EMC system statistics |
### EMC Link
A combined **EMC Importer + Exporter** with an 18-slot GUI. Bridges your Item Alchemy EMC network with vanilla inventories and Tom's Simple Storage.
- **Import** (items → EMC): Scans adjacent chests/barrels/Tom's storage every 5 ticks, pulls items with EMC value into its input buffer (slots 0–8), converts them to EMC, and pushes into connected Item Alchemy batteries/cables.
- **Export** (EMC → items): Place a sample item in slots 9–17 as a persistent filter. Each tick it checks for EMC in adjacent storage, consumes it, generates 1 copy of the item, and pushes it to adjacent inventories.
### EMC Interface
A **no-GUI** mechanical block ported from the Forge `emc-interface` mod by Ofek2608. Uses the same proven slot architecture:
- **Slot 0 (Insertion only)**: Items with EMC value are converted via `EMCManager.setEMCtoPlayer()` + `syncS2C()` — same path as `/emce bank add`. Items without EMC value are stored temporarily so Tom's routes them to the next priority storage instead of deleting them.
- **Slots 1+ (Extraction only)**: Each unlocked EMC item gets its own slot. Quantities are unlimited (`EMC ÷ itemEMC`, capped only by Java's int max ~2.1B). When Tom's syncs after extracting, `setStack()` detects the delta and deducts EMC automatically.
- **`/team` support**: If the owner is on a vanilla Minecraft team, EMC and knowledge from all online teammates are merged.
- **Priority setup**: Place an **Inventory Cable Connector** next to the EMC Interface and right-click with an empty hand to cycle priority. Set to **Highest** for auto-selling (items go here first). Set to **Lowest** for pulling (drains chests before touching EMC).
- Uses the original Forge mod's 16×48 animated texture.
### Power Flowers (MK1–MK6)
Single-block compact EMC generators ported from Project Expansion. Each tier generates EMC every tick and pushes it to both the **owner's personal EMC balance** (via `EMCManager.setEMCtoPlayer()` + `syncS2C()`) and adjacent Item Alchemy batteries/cables.
| Tier | Generation Rate | Material |
|------|----------------|----------|
| MK1 | 4 EMC/tick | Iron |
| MK2 | 12 EMC/tick | Iron |
| MK3 | 48 EMC/tick | Iron |
| MK4 | 192 EMC/tick | Diamond |
| MK5 | 768 EMC/tick | Diamond |
| MK6 | 3072 EMC/tick | Netherite |
Each flower has a 1 billion EMC internal buffer and captures the placer as owner — EMC goes directly to their bank. Miniature Sun within 5 blocks boosts output 10×.
### Arcane Tablet
A portable EMC access device ported from Projex (Project EX). Right-click to view your current EMC balance and known item count. Uses the same EMC API path as the EMC Interface and `/emce bank` commands. EPIC rarity.
### Miniature Sun
An expensive item that multiplies EMC output of nearby collectors and Power Flowers by 10×. Stacks with time acceleration effects.
### EMC HUD
Your EMC balance displayed in the top-left corner, positioned below FPS and coordinates so nothing overlaps. Shows your current balance plus a live delta indicator:
- **`EMC: 1,234,567 (+100 | +100/s)`** in green when gaining EMC
- **`EMC: 1,234,567 (-50 | -50/s )`** in red when losing EMC
Formats large values: `1,234` / `1.2M` / `3.5B` / `7.8T`.
### Custom EMC Config
A plain-text config file at `config/emcessentials.properties` lets you define or override EMC values for any item in the game:
```properties
# =
minecraft:diamond=8192
minecraft:netherite_ingot=49152
```
Changes take effect after running `/emce reload` (no restart needed).
---
## Requirements
| Dependency | Minimum Version |
|------------|----------------|
| **Minecraft** | 1.20.1 |
| **Fabric Loader** | ≥ 0.18.6 |
| **Fabric API** | ≥ 0.92.5+1.20.1 |
| **Item Alchemy** | ≥ 1.3.1 |
| *MCPitanLib* | *≥ 3.7.0 (suggested)* |
| *Architectury* | *≥ 9.2.0 (suggested)* |
All of these are already present in the CreateBound Prism instance.
---
## Installation
1. Drop `emcessentials-reabricated-1.3.1.jar` into your `mods/` folder
2. Ensure **Item Alchemy** (`itemalchemy-1.3.1.jar`) is also in `mods/`
3. Launch Minecraft with Fabric Loader 0.18.6+
4. Run `/emce help` in-game to verify it loaded
---
## Development Notes
Uses **Item Alchemy's API** (`EMCUtil$ITEM`, `EMCManager`) to read, write, and transfer EMC values at runtime. API calls are made via reflection so the mod won't crash if Item Alchemy isn't installed — it simply logs a warning and disables EMC features. EMC modifications use `EMCManager.setEMCtoPlayer()` + `EMCManager.syncS2C()` directly, matching the same code path as the built-in `/itemalchemy` commands.
---
## License
**MIT** — do what you want with it.