Skip to content

Commit

Permalink
- Add docs folder for 1.20
Browse files Browse the repository at this point in the history
- Update all worldgen, recipe, and data items that I can think of
- Remove stuff that was removed for the port
- Update wiki links to use the new minecraft wiki community fork
  • Loading branch information
eerussianguy committed Oct 24, 2023
1 parent 674d564 commit 1ef6e33
Show file tree
Hide file tree
Showing 29 changed files with 3,487 additions and 15 deletions.
4 changes: 2 additions & 2 deletions 1.18.x/data/custom.md
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,7 @@ In summary:

## Sluicing

Sluices link items to loot tables that it processes those items into. This means that any given item can be configured to drop any loot table, even existing loot tables. The loot table generated by sluices has no required context parameters. See the `minecraft:empty` entry in the [Minecraft Wiki article](https://minecraft.fandom.com/wiki/Loot_table) for loot context types. It has the following properties:
Sluices link items to loot tables that it processes those items into. This means that any given item can be configured to drop any loot table, even existing loot tables. The loot table generated by sluices has no required context parameters. See the `minecraft:empty` entry in the [Minecraft Wiki article](https://minecraft.wiki/w/Loot_table) for loot context types. It has the following properties:

- `ingredient`: An [Ingredient](../ingredients/) matching the item(s) that will go in the sluice
- `loot_table` The location of a loot table to be dropped for this item.
Expand All @@ -419,7 +419,7 @@ Sluices link items to loot tables that it processes those items into. This means

## Panning

Panning links blocks to loot tables that it processes those blocks into. This means that any given block can be configured to work in the pan and drop any loot table, even existing loot tables. The loot table generated by sluices has three required context parameters: `origin`, the position of the player, `tool`, the pan itself, and `this` (this entity), the player doing the panning. See the `minecraft:fishing` entry in the [Minecraft Wiki article](https://minecraft.fandom.com/wiki/Loot_table) for loot context types. It has the following properties:
Panning links blocks to loot tables that it processes those blocks into. This means that any given block can be configured to work in the pan and drop any loot table, even existing loot tables. The loot table generated by sluices has three required context parameters: `origin`, the position of the player, `tool`, the pan itself, and `this` (this entity), the player doing the panning. See the `minecraft:fishing` entry in the [Minecraft Wiki article](https://minecraft.wiki/w/Loot_table) for loot context types. It has the following properties:

- `ingredient`: A [Block Ingredient](../common-types/#block-ingredients) matching the block(s) that will go in the pan
- `loot_table` The location of a loot table to be dropped for this block after panning.
Expand Down
2 changes: 1 addition & 1 deletion 1.18.x/data/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ permalink: /1.18.x/data/

# Data

This page is for any non-world generation data used by TFC. All of TFC's data can be configured through [datapacks](https://minecraft.fandom.com/wiki/Recipe). This includes crafting recipes, custom recipes, custom data, and tags. All data here can be loaded in datapacks and can be reloaded during the game using the `/reload` command.
This page is for any non-world generation data used by TFC. All of TFC's data can be configured through [datapacks](https://minecraft.wiki/w/Recipe). This includes crafting recipes, custom recipes, custom data, and tags. All data here can be loaded in datapacks and can be reloaded during the game using the `/reload` command.

### [Crafting Recipes](crafting/)

Expand Down
2 changes: 1 addition & 1 deletion 1.18.x/data/recipes.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ permalink: /1.18.x/data/recipes/

# Recipe Types

Recipes can be configured through [datapacks](https://minecraft.fandom.com/wiki/Recipe). TFC adds a number of recipe types for its custom crafting operations, and they can be used to add, remove, or modify existing recipes. A complete reference of all of TFC's defined recipes, organized into folders depending on their type can be found in the [TFC Github](https://github.com/TerraFirmaCraft/TerraFirmaCraft/tree/1.18.x/src/main/resources/data/tfc/recipes).
Recipes can be configured through [datapacks](https://minecraft.wiki/w/Recipe). TFC adds a number of recipe types for its custom crafting operations, and they can be used to add, remove, or modify existing recipes. A complete reference of all of TFC's defined recipes, organized into folders depending on their type can be found in the [TFC Github](https://github.com/TerraFirmaCraft/TerraFirmaCraft/tree/1.18.x/src/main/resources/data/tfc/recipes).

TFC adds the following recipe types:

Expand Down
2 changes: 1 addition & 1 deletion 1.18.x/worldgen/common-types.md
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ Or, it can be a string with the registry name of the block to use. In this case,

## Structure

A structure is a reference to an NBT file. They can be created and loaded using [Structure Blocks](https://minecraft.fandom.com/wiki/Structure_Block).
A structure is a reference to an NBT file. They can be created and loaded using [Structure Blocks](https://minecraft.wiki/w/Structure_Block).

A structure file must have a file name such as `data/<domain>/structures/<path>.nbt`, which would then have the structure name `<domain>:<path>`.

Expand Down
2 changes: 1 addition & 1 deletion 1.18.x/worldgen/decorators.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ permalink: /1.18.x/worldgen/decorators/

# Decorators

*[Vanilla Reference for Placement Modifiers / Decorators](https://minecraft.fandom.com/wiki/Placed_feature)*
*[Vanilla Reference for Placement Modifiers / Decorators](https://minecraft.wiki/w/Placed_feature)*

Note that historically, Placement Modifiers / Placed Features were called Decorators, and TFC still refers to the two interchangeably. TFC adds the following placement modifier types, for use in placed features:

Expand Down
6 changes: 3 additions & 3 deletions 1.18.x/worldgen/dimension.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ title: "Dimension"
permalink: /1.18.x/worldgen/dimension/
---

In order to modify the `TerraFirmaCraft` world preset, it is necessary to override the vanilla overworld dimension (`data/minecraft/dimension/overworld.json`). The format of a dimension can be found [here](https://minecraft.fandom.com/wiki/Custom_dimension#Dimension_syntax). Included here is [an example](#example) of an override for the vanilla overworld, with TFC properties set to defaults.
In order to modify the `TerraFirmaCraft` world preset, it is necessary to override the vanilla overworld dimension (`data/minecraft/dimension/overworld.json`). The format of a dimension can be found [here](https://minecraft.wiki/w/Custom_dimension#Syntax_2). Included here is [an example](#example) of an override for the vanilla overworld, with TFC properties set to defaults.

Configuration:

- `type` is the namespaced ID of the [dimension type](https://minecraft.fandom.com/wiki/Custom_dimension#Dimension_type). The default is `minecraft:overworld`.
- `type` is the namespaced ID of the [dimension type](https://minecraft.wiki/w/Custom_dimension#Dimension). The default is `minecraft:overworld`.
- `generator` is an object:
- `type` is the namespaced ID of the chunk generator. It must be `tfc:overworld`.
- `seed` is an optional `long` (Default: `0`). It is the seed of the world.
- `noise_settings` is the [noise settings](https://minecraft.fandom.com/wiki/Custom_world_generation#Noise_settings) used in the chunk generator. The default is `minecraft:overworld`.
- `noise_settings` is the [noise settings](https://minecraft.wiki/w/Custom_world_generation#Noise) used in the chunk generator. The default is `minecraft:overworld`.
- `flat_bedrock` is a `boolean`. It controls if the bottom layer of bedrock in the world is flat.
- `biome_source` is an object:
- `type` is the namespaced ID of the biome source. It must be `tfc:overworld`.
Expand Down
2 changes: 1 addition & 1 deletion 1.18.x/worldgen/features/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ permalink: /1.18.x/worldgen/features/

# Features

*[Vanilla Reference for Features](https://minecraft.fandom.com/wiki/Custom_feature)*
*[Vanilla Reference for Features](https://minecraft.wiki/w/Custom_feature)*

Features are small decorations that modify individual chunks, based on the biome present in that chunk. In TFC, features are all added to biomes via the use of [Biome Tags](../tags/#biome-tags), which means that they can also be added to biomes via the use of these tags.

Expand Down
8 changes: 4 additions & 4 deletions 1.18.x/worldgen/features/trees.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ This feature is used to describe the spawning conditions of a single tree. They
- `bush_log`: An optional [Lenient Blockstate](../../common-types/#lenient-blockstate) specifying the log used for bushes. If omitted, no bushes will spawn.
- `bush_leaves`: An optional [Lenient Blockstate](../../common-types/#lenient-blockstate) specifying the leaves used for bushes.
- `groundcover`: An optional [Weighted List](../../common-types/#weighted-list) specifying the blocks that can spawn on the ground around the trees.
- `normal_tree`: A [Configured Feature](https://minecraft.fandom.com/wiki/Custom_feature#Configured_Feature) which will be used to place a normal tree.
- `dead_tree`: A [Configured Feature](https://minecraft.fandom.com/wiki/Custom_feature#Configured_Feature) which will be used to place a dead tree.
- `old_growth_tree`: An optional [Configured Feature](https://minecraft.fandom.com/wiki/Custom_feature#Configured_Feature) which will be used to place a rare "old growth" tree.
- `normal_tree`: A [Configured Feature](https://minecraft.wiki/w/Configured_featuree) which will be used to place a normal tree.
- `dead_tree`: A [Configured Feature](https://minecraft.wiki/w/Configured_feature) which will be used to place a dead tree.
- `old_growth_tree`: An optional [Configured Feature](https://minecraft.wiki/w/Configured_feature) which will be used to place a rare "old growth" tree.
- `old_growth_chance`: (Default: `6`) An optional integer, representing the chance for an old growth tree to be selected. On average, 1 / `old_growth_chance` of trees will be old growth.
- `spoiler_old_growth_chance`: (Default: `200`) An optional integer, representing the chance for a old growth tree to spawn in non-old-growth forests. On average, 1 / `spoiler_old_growth_chance` of trees in these areas will be old growth.
- `fallen_tree_chance`: (Default: `14`) An optional integer, specifying how often fallen trees spawn. On average, 1 / `fallen_tree_chance` chunks will contain a fallen tree.
Expand All @@ -67,7 +67,7 @@ This feature chooses structures randomly from a list, and places them. Optionall

### Overlay Tree

This feature uses two structures: a "Base" structure, and an "Overlay" structure. The overlay structure is placed with each of it's blocks randomly chosen to place or not, using the "Integrity" option found in [Structure Blocks](https://minecraft.fandom.com/wiki/Structure_Block). It is used for trees like Oak and Ash.
This feature uses two structures: a "Base" structure, and an "Overlay" structure. The overlay structure is placed with each of it's blocks randomly chosen to place or not, using the "Integrity" option found in [Structure Blocks](https://minecraft.wiki/w/Structure_Block). It is used for trees like Oak and Ash.

- Type: `tfc:overlay_tree`
- Config:
Expand Down
2 changes: 1 addition & 1 deletion 1.18.x/worldgen/features/veins.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ permalink: /1.18.x/worldgen/features/veins/

# Ore Veins

TFC's ore veins are generated using three different features: [Cluster Vein](#cluster-vein), [Disc Vein](#disc-vein), and [Pipe Vein](#pipe-vein). These are used to generate veins that span across many chunks, unlike normal [Features](https://minecraft.fandom.com/wiki/Custom_feature).
TFC's ore veins are generated using three different features: [Cluster Vein](#cluster-vein), [Disc Vein](#disc-vein), and [Pipe Vein](#pipe-vein). These are used to generate veins that span across many chunks, unlike normal [Features](https://minecraft.wiki/w/Custom_feature).

In order to do this, veins must be added to **every biome** in the same dimension, even if they cannot spawn in some biomes. Veins must instead whitelist certain biomes using their own biome filter.

Expand Down
195 changes: 195 additions & 0 deletions 1.20.x/data/common-types.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
---
layout: page
title: "Common Types"
permalink: /1.20.x/data/common-types/
---

# Common Types

Below are a number of common types used by recipes and custom data.

<!--linky_begin_sort_alphabetical-->

- [Block Ingredients](#block-ingredients)
- [Block State](#block-state)
- [Fluid Ingredients](#fluid-ingredients)
- [Fluid Stack Ingredients](#fluid-stack-ingredients)
- [Fluid Stack](#fluid-stack)
- [Food Traits](#food-traits)
- [Item Stack Ingredients](#item-stack-ingredients)
- [Item Stack Providers](#item-stack-providers)
- [Item Stacks](#item-stacks)
- [Temperature](#temperature)

<!--linky_end_sort_alphabetical-->

<hr>

## Block Ingredients

This represents a predicate on blocks in the world. It can be any of the following options:

- A String, with the registry name of a single block.
- A JSON object, with a single `block` key, with the registry name of a single block.
- A JSON object, with a single `tag` key, with the name of a block tag to match.
- A JSON object, with a `type` key which specifies a custom block ingredient type to use.
- A JSON array, whose entries are [Block Ingredients](#block-ingredients), which are logically OR'd together.

**Note:** TFC only adds the `tfc:block` and `tfc:tag` types, which are already usable via the above syntaxes for `block` and `tag`, and as a result, are not detailed here. Addons may define other block ingredient types.

<hr>

## Block State

A block state represents an output of a recipe in world. It must be a string which encodes a block. It must contain the registry name of the block, optionally followed by properties with key value pairs separated by `=`, within square brackets. For example:

- `minecraft:dirt` : Just specifying a block name.
- `minecraft:grass_block[snowy=true]` : Using the `snowy=true` property.
- `minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]` : Using multiple properties.

<hr>

## Fluid Ingredients

A fluid ingredient represents a predicate of fluids. It can be any of the following options:

- A String, with the registry name of a single fluid.
- A JSON object, with a single `fluid` key, with the registry name of a single fluid.
- A JSON object, with a single `tag` key, with the name of a fluid tag to match.
- A JSon array, whose entries are [Fluid Ingredients](#fluid-ingredients), which are logically OR'd together.

<hr>

## Fluid Stack

A fluid stack is used to represent a combination of a single fluid with an amount. It is a JSON object which has the following fields:

- `fluid`: String. The registry name of a Fluid.
- `amount`: Integer. The amount of the fluid stack, in mB.

#### Example

```jsonc
// A fluid stack representing a bucket of water
{
"fluid": "minecraft:water",
"amount": 1000
}
```

<hr>

## Fluid Stack Ingredients

A fluid stack ingredient is a combination of a fluid ingredient with an amount. It is a JSON object which has the following fields:

- `ingredient`: A [Fluid Ingredient](#fluid-ingredients)
- `amount`: Integer. An amount in mB for this ingredient. Defaults to 1000 mB.

#### Example

```jsonc
// A fluid stack ingredient which matches a bucket of water
{
"ingredient": { "fluid": "minecraft:water" },
"amount": 1000
}
```

<hr>

## Food Traits

A food trait is a String, which must be one of the following options. Note addons may add other food traits not in this list:

- `tfc:salted`, `tfc:pickled`, `tfc:brined`, `tfc:preserved`, `tfc:vinegar`, `tfc:charcoal_grilled`, `tfc:wood_grilled`, `tfc:burnt_to_a_crisp`

## Item Stack Ingredients

An item stack ingredient is a combination of an ingredient, and a count. It is a JSON object with the following fields:

- `count`: An optional integer (Default: 1) The count of the item.
- `ingredient`: An [Ingredient](../ingredients/).

#### Example

```jsonc
// An item stack ingredient which requires 5 x minecraft:apple
{
"count": 5,
"ingredient": {
"item": "minecraft:apple"
}
}
```

<hr>

## Item Stack Providers

An item stack provider represents an output of a recipe, an item stack with any number of transformations applied to it at recipe completion. These transformations are applied sequentially, starting with the provided stack. It is a JSON object with the following fields:

- `stack`: An [Item Stack](#item-stacks) This represents the starting stack before transformations are applied.
- `modifiers`: An array of [Item Stack Modifiers](../item-stack-modifiers/). Each modifier is applied sequentially to the output stack, and at the end, the final result is used as the output of the item stack provider.

**Note:** Any [Item Stack](#item-stacks) will be accepted as a valid item stack provider with no modifiers, if neither the `stack` or `modifiers` keys are present.

#### Example

```jsonc
// An item stack provider which produces a minecraft:steak,
// but copies the food traits and expiration date from the input, and sets the temperature to 400 C
{
"stack": {
"item": "minecraft:steak",
"count": 1
},
"modifiers": [
{ "type": "tfc:copy_food" },
{
"type": "tfc:add_heat",
"temperature": 400
}
]
}
```

## Item Stacks

This represents a vanilla Minecraft item stack. It is a JSON object with the following fields:

- `item`: String. The registry name of the item in the stack.
- `count`: Integer. The count of the item stack.
- `nbt`: An optional object representing NBT data to be added to the item stack.

#### Example

```jsonc
// An item stack of 3 x minecraft:apple
{
"item": "minecraft:apple",
"count": 3
}
```

<hr>

<hr>

## Temperature

A temperature is a number, which corresponds to a value in degrees Celsius (&deg;C). In-game, the tooltip displays the color based on the internal temperature value:

Temperature Range (&deg;C) | Color
---|---
1 - 80 | <span style="color:#555555">**Warming**</span>
80 - 210 | <span style="color:#555555">**Hot**</span>
210 - 480 | <span style="color:#555555">**Very Hot**</span>
480 - 580 | <span style="color:#AA0000">**Faint Red**</span>
580 - 730 | <span style="color:#AA0000">**Dark Red**</span>
730 - 930 | <span style="color:#FF5555">**Bright Red**</span>
930 - 1100 | <span style="color:#FFAA00">**Orange**</span>
1100 - 1300 | <span style="color:#FFFF55">**Yellow**</span>
1300 - 1400 | <span style="color:#FFFF55">**Yellow-White**</span>
1400 - 1500 | <span style="color:#FFFFFF;text-shadow: 1px 0 0 #000, 0 -1px 0 #000, 0 1px 0 #000, -1px 0 0 #000;">**White**</span>
> 1500 | <span style="color:#FFFFFF;text-shadow: 1px 0 0 #000, 0 -1px 0 #000, 0 1px 0 #000, -1px 0 0 #000;">**Brilliant White**</span>
Loading

0 comments on commit 1ef6e33

Please sign in to comment.