Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions projects/Recycler/docs/ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ net.tfminecraft.recycler/
AdvancedCraftingProvider.java
MagicGearProvider.java
GunsAndGadgetsProvider.java
GoldsmithProvider.java
ConfigProvider.java

manager/
Expand Down Expand Up @@ -61,6 +62,7 @@ Specialized providers run before the config fallback:
| 10 | `AdvancedCraftingProvider` | AdvancedCrafting plugin present |
| 15 | `MagicGearProvider` | Magic present with stamped gear provenance |
| 20 | `GunsAndGadgetsProvider` | GunsAndGadgets present with stamped provenance |
| 25 | `GoldsmithProvider` | GemInfusion present; item matches one jewelry project |
| max | `ConfigProvider` | Always (yaml recipes) |

Resolution flow:
Expand All @@ -85,9 +87,9 @@ BirdMessenger and Research only keep items in memory or GUI slots - Recycler mus
## Dependencies

- **Required:** TLibs, ItemsAdder (station block + icons)
- **Soft:** AdvancedCrafting, Magic, GunsAndGadgets, MMOItems
- **Soft:** AdvancedCrafting, Magic, GunsAndGadgets, GemInfusion, MMOItems

AC/GG providers require stamped provenance from those plugins. Admin escrow tooling: `/recycler escrow list|return`.
AdvancedCrafting, Magic, and GunsAndGadgets providers require stamped provenance from those plugins. Goldsmithing matches the live jewelry project for the item. Admin escrow tooling: `/recycler escrow list|return`.

## What not to add yet

Expand Down
8 changes: 6 additions & 2 deletions projects/Recycler/docs/SYSTEM.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Reference: `util/GridLayout.java`.

## Return math

Provider recipes (AdvancedCrafting, GunsAndGadgets):
Provider recipes (AdvancedCrafting, Magic, GunsAndGadgets, goldsmithing):

```
final_amount = floor(base_amount * max_return_rate * durability_factor * stack_amount)
Expand All @@ -37,7 +37,7 @@ Config recipes (`recipes/*.yml`):
final_amount = floor(base_amount * durability_factor * stack_amount)
```

- `max_return_rate`: config default `0.8` (80% cap). Applies only to AC/GG providers, not yaml config recipes.
- `max_return_rate`: config default `0.8` (80% cap). Applies to AdvancedCrafting, Magic, GunsAndGadgets, and goldsmithing providers, not yaml config recipes.
- `durability_factor`: `0.0` when broken, `1.0` when full. Vanilla `Damageable` items and MMOItems custom durability NBT when MMOItems is present.
- `stack_amount`: full stack placed in station (one stack per deposit).
- Use `floor`; zero yield blocks confirm when `block_confirm_when_zero_yield` is true.
Expand All @@ -56,6 +56,10 @@ Raw AC ingredients/alloys (`ac_ingredient_id` / `ac_alloy_id`) are not provenanc

Read stamped part list from gun PDC (`gg_craft_parts`), sum each `GunPart.getCost()` from live `parts.yml` via `GunsAndGadgetsProvider`. Broken guns and guns with missing stamped ids are not handled by this provider.

### Goldsmithing (GemInfusion jewelry)

Match the item to exactly one live jewelry project with `TLibs ItemChecker` against that project's output path. Return each recipe material's live item path and amount. The infused gem is not returned. Pieces with socketed gems, and items that match more than one project, are not handled by this provider.

### Config fallback (`recipes/*.yml`)

Recipe id is a label; matching uses the `input` tlibs path.
Expand Down