From dd25a9852d214e0cf4d74bfa3e4a1dd5c52817fa Mon Sep 17 00:00:00 2001 From: Noaaan Date: Sun, 9 Nov 2025 18:21:21 +0100 Subject: [PATCH] Begin reworking Alloy Forgery documentation --- .gitignore | 3 +- .vitepress/config.mts | 14 +++++-- alloy-forgery/building-a-forge.md | 12 +++--- alloy-forgery/defining-a-forge.md | 32 -------------- alloy-forgery/developer/fuels.md | 32 ++++++++++++++ alloy-forgery/developer/quick-start.md | 42 +++++++++++++++++++ .../recipes.md} | 37 ++-------------- alloy-forgery/home.md | 14 +++++-- alloy-forgery/recipe-adaptation.md | 26 ------------ alloy-forgery/recipe-adapters.md | 40 ++++++++++++++++++ 10 files changed, 145 insertions(+), 107 deletions(-) delete mode 100644 alloy-forgery/defining-a-forge.md create mode 100644 alloy-forgery/developer/fuels.md create mode 100644 alloy-forgery/developer/quick-start.md rename alloy-forgery/{adding-recipes-and-fuels.md => developer/recipes.md} (82%) delete mode 100644 alloy-forgery/recipe-adaptation.md create mode 100644 alloy-forgery/recipe-adapters.md diff --git a/.gitignore b/.gitignore index 2fa2eb0..e3bc82f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules .vitepress/cache -.vitepress/dist \ No newline at end of file +.vitepress/dist +.idea/ \ No newline at end of file diff --git a/.vitepress/config.mts b/.vitepress/config.mts index 52863ed..8be7449 100644 --- a/.vitepress/config.mts +++ b/.vitepress/config.mts @@ -165,10 +165,16 @@ export default defineConfig({ ], '/alloy-forgery/': [ { text: 'Home', link: '/alloy-forgery/home' }, - { text: 'Adding Recipes and Fuels', link: '/alloy-forgery/adding-recipes-and-fuels' }, - { text: 'How to build a Forge', link: '/alloy-forgery/building-a-forge' }, - { text: 'Recipe Adaptation', link: '/alloy-forgery/recipe-adaptation' }, - { text: 'Defining new Forges though Data', link: '/alloy-forgery/defining-a-forge' }, + { text: 'Building an Alloy Forge', link: '/alloy-forgery/building-a-forge' }, + { text: 'Recipe Adapters', link: '/alloy-forgery/recipe-adapters' }, + { + text: 'Developer', + items: [ + { text: 'Quick Start', link: '/alloy-forgery/developer/quick-start', }, + { text: 'Adding Recipes', link: '/alloy-forgery/developer/recipes' }, + { text: 'Adding Fuels', link: '/alloy-forgery/developer/fuels' }, + ] + }, ], }, diff --git a/alloy-forgery/building-a-forge.md b/alloy-forgery/building-a-forge.md index ac23064..bdf1fd7 100644 --- a/alloy-forgery/building-a-forge.md +++ b/alloy-forgery/building-a-forge.md @@ -1,13 +1,10 @@ -# How to build a Forge +# Building an Alloy Forge *Up to date as of 2.0.22* -You can currently make an Alloy Forge out of 5 materials: Bricks, Stone Bricks, Blackstone, Deepslate, and End Stone. Alloy Forges are dynamically generated. You can add more of these through data, which is explained [on this page.](defining-a-forge.md) - -The basic shape of a forge looks like this: +The shape of an Alloy Forge is mostly freeform. The basic shape of a forge looks like this: ![an image showing how to construct an Alloy Forge in 3 steps. Layer one is a 3x3 base. Layer two is the forge controller block in the front, and one block on each side, leaving the corners and the middle empty. Step three is the same as step two, but with a block instead of a controller](../assets/alloy-forgery/forge_structure.png) - -It has a 3x3 bottom, and is shaped like a chimney. You can put more blocks around it, even covering the top. +As long as you build the basic shape, you can expand and build onto it in any way you'd like. Feel free to fill in the chimney, or add extra blocks on the corners. These don't need to respect the required material(s) for the Forge to be valid. ## Forge Controller @@ -31,8 +28,9 @@ Mods and modpacks can add their own Alloy Forges, but by default you can make a A forge can by default be fueled by vanilla materials. Currently they accept the following list: -- Coal and Blocks of Coal +- Coal - Charcoal +- Blocks of Coal - Blaze Rods - Lava Bucket diff --git a/alloy-forgery/defining-a-forge.md b/alloy-forgery/defining-a-forge.md deleted file mode 100644 index 08d2337..0000000 --- a/alloy-forgery/defining-a-forge.md +++ /dev/null @@ -1,32 +0,0 @@ -# Defining new Forges though Data - -## Where do I define it? - -When Alloy Forgery is loaded for the first time it generates a folder in the `.minecraft` directory, which is called `moddata`. Under the `moddata` folder you can create new forges, and override existing ones. An example would be overriding the deepslate forge. For this we would create enough folders so that we can go into `moddata/alloy_forgery/alloy_forges`, and create a new `deepslate_bricks_forge.json` file. This new file *will override* the existing deepslate bricks forge, allowing us to change it. - -For creating new forges simply create your own data folder. An example would be `moddata/custom_content/alloy_forges`, with a new `bedrock_forge.json` file inside. - -## Defining the forge - -An example is provided below: -```JSON -{ - "material": "minecraft:deepslate_bricks", - "additional_materials": [ - "minecraft:deepslate_tiles", - "minecraft:polished_deepslate", - "minecraft:chiseled_deepslate" - ], - "tier": 2, - "speed_multiplier": 1.5, - "fuel_capacity": 96000 -} -``` - -| Field

| Description | -|----------------------------------|-----------------------------------------------------------------------------------------------------| -| `material` | Defines the block used for crafting the Forge Controller and the block the Forge is built from. | -| `additional_materials` | Defines extra materials the Forge structure can be built from. | -| `tier` | The tier of the Forge. Determines what recipes it can process. | -| `fuel_capacity` | How much fuel the Forge can hold before needing to be refueled. | -| `speed_multiplier` | A multiplier which decides how fast the Forge processes a recipe. Does not impact fuel consumption. | diff --git a/alloy-forgery/developer/fuels.md b/alloy-forgery/developer/fuels.md new file mode 100644 index 0000000..3175be1 --- /dev/null +++ b/alloy-forgery/developer/fuels.md @@ -0,0 +1,32 @@ +# Adding Fuels + +Alloy Forgery loads fuels from a specific folder in data. The path is `data//alloy_forge_fuels`, and in here you put your fuel definition. A fuel file does not require a specific name, and can hold multiple different fuels. Currently, we only support items for fuels, tags are not accepted. An example is provided below: + +```JSON +{ + "fuels": [ + { + "item": "minecraft:lava_bucket", + "return_item": "minecraft:bucket", + "fuel": 24000 + }, + { + "item": "minecraft:coal", + "fuel": 1000 + }, + { + "item": "minecraft:charcoal", + "fuel": 1000 + }, + { + "item": "minecraft:blaze_rod", + "fuel": 2000 + }, + { + "item": "minecraft:coal_block", + "fuel": 9000 + } + ] +} +``` +The special field `return_item` is optional, and is used for returning an Item after being deposited into the Alloy Forge. An example is returning an Empty Bucket after inserting a Lava Bucket. \ No newline at end of file diff --git a/alloy-forgery/developer/quick-start.md b/alloy-forgery/developer/quick-start.md new file mode 100644 index 0000000..4bc119c --- /dev/null +++ b/alloy-forgery/developer/quick-start.md @@ -0,0 +1,42 @@ +# Quick Start + +## Setup - Modpacks + +Due to limitations with needing to register new blocks way before datapacks are loaded, modpacks are recommended to use the provided `moddata` folder for creating new Alloy Forges. When Alloy Forgery is loaded for the first time it generates this folder in the `.minecraft` directory. Under the `moddata` folder you can create new forge controllers, and override existing ones. + +To get started create enough folders so you can navigate to `moddata/custom_content/alloy_forge/controller`. Then, create a new `bedrock_forge.json` file inside. + +Next up you might want to do the following: + +- Add a new [Forge Controller](#controllers). +- Potentially add a new [Tier](#Tiers). +- Add a [Tier Binding](#tier-bindings) between your Forge Controller and a new/existing tier. + +## Setup - Mods + +TODO - The following: +- Adding AF to development environment for local testing +- Use built-in datapack instead of `moddata` + +## Resources + +## Controllers + +## Tiers + +| Property | Type | Description | +|--|--|--| +|`tier`|b|Number which| +|`speed_multiplier`|b|c| +|`fuel_consumption_multiplier`|b|c| +|`fuel_capacity`|b|c| +|`parent_tier`|Identifier|Example: `alloy_forgery:common_tier`| + +## Tier Bindings + +## Next Steps + +TODO - Summarize, and link to the following: + +- Adding new recipes +- Adding new fuels \ No newline at end of file diff --git a/alloy-forgery/adding-recipes-and-fuels.md b/alloy-forgery/developer/recipes.md similarity index 82% rename from alloy-forgery/adding-recipes-and-fuels.md rename to alloy-forgery/developer/recipes.md index 07bbe34..79624c8 100644 --- a/alloy-forgery/adding-recipes-and-fuels.md +++ b/alloy-forgery/developer/recipes.md @@ -1,4 +1,7 @@ # Creating a recipe + +TODO - This is out-of-date as of 1.21.4. Update the data structures. + When creating an Alloy Forge recipe you want to use the `alloy_forgery:forging` type. The recipe can be placed anywhere under `data//recipes` in your data. Here is an example of a recipe: @@ -136,36 +139,4 @@ The initial Item ID here is the input to be replaced. Supported settings: | `item` | The ID of the returned item. | | `count` | Custom stack counts (optional) | -In the lower example, the initial item (copper ore) is what is being checked for, and the second item (sand) is returned once the recipe completes. - -# Adding new fuels -Alloy Forgery loads fuel from a specific folder in data. The path is `data//alloy_forge_fuels`, and in here you put your fuel definition. A fuel file does not require a specific name, and can hold multiple different fuels. Currently, we only support items for fuels, tags are not accepted. An example is provided below: - -```JSON -{ - "fuels": [ - { - "item": "minecraft:lava_bucket", - "return_item": "minecraft:bucket", - "fuel": 24000 - }, - { - "item": "minecraft:coal", - "fuel": 1000 - }, - { - "item": "minecraft:charcoal", - "fuel": 1000 - }, - { - "item": "minecraft:blaze_rod", - "fuel": 2000 - }, - { - "item": "minecraft:coal_block", - "fuel": 9000 - } - ] -} -``` -The special field `return_item` is optional, and is intended for when you want to do something similar to returning an empty bucket after using a lava bucket with the forge. \ No newline at end of file +In the lower example, the initial item (copper ore) is what is being checked for, and the second item (sand) is returned once the recipe completes. \ No newline at end of file diff --git a/alloy-forgery/home.md b/alloy-forgery/home.md index 477dfa1..2d6b1cc 100644 --- a/alloy-forgery/home.md +++ b/alloy-forgery/home.md @@ -5,11 +5,17 @@ project: alloy-forgery # Alloy Forgery -Alloy Forgery is a mod all about forging metals. +Alloy Forgery is a mod all about blasting ores and forging alloys. -If you are a player looking for info on how to make an Alloy Forge, see the ["Building a Forge"](building-a-forge.md) section. We recommend a mod like Roughly Enough Items or EMI to view alloy recipes. +**Note:** This documentation is up-to-date as of Alloy Forgery 3.0.0. For older versions, we suggest seeing the [legacy documentation](https://docs.wispforest.io/legacy/alloy-forgery/home/ "Click here to go to the legacy Alloy Forgery documentation."). -By default, Alloy Forgery provides no new materials, but it does provide recipes for smelting ores into extra ingots. It also supports a handful of mods out of the box, [which you can see here.](https://github.com/wisp-forest/alloy-forgery/tree/1.20/src/main/resources/data/alloy_forgery/recipes/compat) +## Overview -Furthermore, if you need any assistance on finding out how to create a Datapack in general, you can see Datapack Tutorial for help with such. +TODO - Summary of playing Alloy Forgery. Something like +- Collect materials +- Create Forge Controller +- Build multiblock +- Smelt ores + +By default, Alloy Forgery provides no new materials, but it does provide recipes for smelting ores into extra ingots. It also supports a handful of mods out of the box, [which you can see here.](https://github.com/wisp-forest/alloy-forgery/tree/1.21.10-multiloader/fabric/src/generated/resources/data/alloy_forgery/recipe/compat) diff --git a/alloy-forgery/recipe-adaptation.md b/alloy-forgery/recipe-adaptation.md deleted file mode 100644 index c8d38ee..0000000 --- a/alloy-forgery/recipe-adaptation.md +++ /dev/null @@ -1,26 +0,0 @@ -# Recipe Adaptation - -Since 2.1.0, Alloy Forgery added a system to adapt existing recipes to alloy forging recipes. Currently, only Blast Furnace recipes are adapted to work with the forge. - -Developed alongside this adaptation system is the ability to create tags for Recipes with such following the same format as any other tag just being the tags should be placed within the `{your_namespace_here}/tags/recipes/` folder within your datapack. - -## Blast Furnace Adaptation - -By default, Alloy Forgery attempts to adapt all Blast Furnace recipes to work within the Alloy Forge combined with giving an output increase when reaching tier 3 forge. This System can be controlled by two methods: - -### Tags - -Included are some tags that are used to adjust the behavior of the recipe adapter. One of these is a blacklist for recipes altogether (`alloy_forge:blacklisted_blasting_recipes`) which, for each recipe ID within it, prevents the corresponding recipe from being adapted into an Alloy Forge recipe. - -You can also specifically blacklist a blasting recipe from gaining the increased output by putting it within the (`alloy_forge:blacklisted_increased_blasting_outputs`) recipe tag. - -### Config - -More recent versions of Alloy Forgery include a config file which contains some more options on controlling blasting adaption, such outlined below: - -| Option

| Description | -|-----------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `allowHigherTierOutput` | Allows for the ability to toggle on or off the tier increase on **ALL** Blasting Recipes. | -| `allowBlastingFurnaceAdaption` | Allows for the ability to toggle on or off the blasting adaption for **ALL** Blasting Recipes. | -| `baseInputAmount` | Adjusts the required input amount for the adapted Blasting Recipe. Such functions as a multiplier for both the input and output meaning that with the default value of '2', the required amount needed to craft is '2' with an output of '2'. | -| `higherTierOutputIncrease` | Controls the amount of increased output that is gotten when using a tier 3 Alloy Forge if such tier output was not disabled. | \ No newline at end of file diff --git a/alloy-forgery/recipe-adapters.md b/alloy-forgery/recipe-adapters.md new file mode 100644 index 0000000..4d13704 --- /dev/null +++ b/alloy-forgery/recipe-adapters.md @@ -0,0 +1,40 @@ +# Recipe Adapters + +Since 2.1.0, Alloy Forgery added a system to adapt existing recipes to Alloy Forging recipes. +By default Alloy Forgery provides an adapter for Blast Furnace recipes. + +## Recipe Tags + +You might not want some recipes to be automatically converted by Alloy Forgery. As such, you can use the included **Recipe tag** system to further configure the adapters. +These follow the same format as any other tag, and should be placed within the `{your_namespace_here}/tags/recipe/` folder within your datapack. + +Example: + +```json +{ + "values": [ + "minecraft:copper_ingot_from_blasting_copper_ore" + ] +} +``` + +## Blast Furnace Adapter + +By default, Alloy Forgery attempts to adapt all Blast Furnace recipes to work within the Alloy Forge. It also adds an override for the rare tier (tier 3) forges with increased outputs. This System can be further configured via recipe tags or the config. + +### Tags + +Included are some tags that are used to adjust the behavior of the recipe adapter: +- `alloy_forge:blacklisted_blasting_recipes`: prevents the recipe from being adapted into an Alloy Forgery recipe entirely. +- `alloy_forge:blacklisted_increased_blasting_outputs`: prevents the adapted recipe from gaining increased output when smelted inside an Alloy Forge + +### Config + +In the Alloy Forgery config file you can configure the following settings: + +| Option | Value | Description | +|--------|-------|-------------| +| `allowBlastingFurnaceAdaption` | Boolean | Enables/Disables the Blast Furnace Adapter entirely. Default:`true` | +| `allowHigherTierOutput` | Boolean | Overrides the increased yield from **ALL** adapted recipes Recipes. Default:`true` | +| `baseInputAmount` | Integer | Adjusts the required input amount for the adapted Blasting Recipe. Such functions as a multiplier for both the input and output meaning that with the default value of '2', the required amount needed to craft is '2' with an output of '2'. Default:`2` | +| `higherTierOutputIncrease` | Integer | Decides how much increased output the rare tier override provides. Default:`1` | \ No newline at end of file