Releases: TerraformersMC/Terraform
Terraform v13.0.0 alpha 2 for 1.21.4
This release moves some helper models for QuarterLogBlocks
and SmallLogBlocks
from Terrestria into Terraform. Convenience identifiers for the new and old helper models are now available in WoodModels
.
- This release was built with 1.21.4 (no changes)
- Added models
block/quarter_log
anditem/small_log
- Added
com.terraformersmc.terraform.wood.api.data.WoodModels
Terraform v13.0.0 alpha 1 for 1.21.4-pre1
- Update to 1.21.4-pre1
No API changes yet for 1.21.4 (but some internal refactoring for vanilla sign changes). If upgrading from pre-1.21.2, see also the v12 release notes for breaking changes in that version.
Terraform v12.0.0 beta 1 for 1.21.2 and 1.21.3
- Add DataVersions for 1.21.3 and 1.21.4
- Release as beta for 1.21.2/3
See the release notes for 12.0.0-alpha.2 for details on breaking changes in v12.
Terraform v12.0.0 alpha 2 for 1.21.2 and 1.21.3
This release adds another breaking change and some block settings factories for the API's custom log blocks.
- Bump version to 12.0.0-alpha.2
- Reordered args of TerraformDesertSaplingBlock constructor to place block settings last
- Added block settings factories for custom log blocks to PillarLogHelper
- Deprecated now-useless instance factories of BareSmallLogBlock, SmallLogBlock, and QuarterLogBlock
We are no longer maintaining a separate registry; it's not needed since vanilla split up their boats. Instead, Terraform API is now just an easy way to use the vanilla registries. For the basic use case of a boat and chest boat, all you need to do is call the item helper to register both items and entities, and then call the client helper to register all textures, model layers, and entity renderers for the boat type.
F.e. common code:
public class TraverseBoats {
public static final Identifier FIR = Identifier.of(Traverse.MOD_ID, "fir");
public static final Item FIR_BOAT = TerraformBoatItemHelper.registerBoatItem(FIR, false);
public static final Item FIR_CHEST_BOAT = TerraformBoatItemHelper.registerBoatItem(FIR, true);
public static void register() {
}
}
and client side:
public class TraverseClient implements ClientModInitializer {
@Override
public void onInitializeClient() {
TerraformBoatClientHelper.registerModelLayers(TraverseBoats.FIR);
}
}
Assuming your boat Identifiers were similar to vanilla (f.e. mahogany_chest_boat and chest_boat/mahogany), you don't need to move your textures around, either.
Note that the Identifier you give the new API methods identifies the boat type as a whole, f.e. traverse:fir
not traverse:fir_chest_boat
. The API will prepend/append the right things for individual Identifiers. This also means it is now possible to register both boat and raft for the same wood type in Terraform boat API.
Terraform v12.0.0 alpha 1 for 1.21.2 and 1.21.3
This release supports Minecraft 1.21.2 and 1.21.3, and contains breaking changes following a major revision in vanilla boat and registration code.
- Make it build against 1.21.2
- Fix broken things
- Replace basically all of the boat API
- PillarLogHelper.of methods removed
- PillarLogHelper.settings methods added
They provide AbstractBlock.Settings instead of PillarBlock - Improvements to the testmod
- Provide a hook for mods to give us their boat IDs (so datafixer retains the boat type instead of using oak)
In addition, the DataVersions.V_1_21_2
and DataVersions.V_1_21_3
fields have been added to enable biome remapping when updating Minecraft.
Terraform v11.0.0 for 1.21 and 1.21.1
- Add data version for 1.21.1
- Release stable version for 1.21/1.21.1
Several breaking changes have been made; you can read about them in the previous release notes.
Terraform v11.0.0-alpha.1 for 1.21-pre
This release supports Minecraft 1.21 pre-release 2 and contains breaking changes following deprecations in earlier releases.
In addition, the DataVersions.V_1_21
field has been added to enable support biome remapping when updating to Minecraft 1.21.
Breaking: API package migration
Many classes have been repackaged for consistency and to better mark the boundaries between API and implementation classes. The class names themselves have not been changed.
Some classes are now packaged as implementation classes. If you previously depended on these classes, please let us know by opening an issue, so that we can determine whether the current API needs to be expanded.
The full list of classes with changed classes is as follows:
Old Class | New Class |
---|---|
com.terraformersmc.terraform.dirt.DirtBlocks |
com.terraformersmc.terraform.dirt.api.DirtBlocks |
com.terraformersmc.terraform.dirt.TerraformDirtBlockTags |
com.terraformersmc.terraform.dirt.api.TerraformDirtBlockTags |
com.terraformersmc.terraform.dirt.block.TerraformDirtPathBlock |
com.terraformersmc.terraform.dirt.api.block.TerraformDirtPathBlock |
com.terraformersmc.terraform.dirt.block.TerraformFarmlandBlock |
com.terraformersmc.terraform.dirt.api.block.TerraformFarmlandBlock |
com.terraformersmc.terraform.dirt.block.TerraformGrassBlock |
com.terraformersmc.terraform.dirt.api.block.TerraformGrassBlock |
com.terraformersmc.terraform.dirt.block.TerraformSnowyBlock |
com.terraformersmc.terraform.dirt.api.block.TerraformSnowyBlock |
com.terraformersmc.terraform.dirt.TerraformDirtRegistry |
com.terraformersmc.terraform.dirt.api.registry.TerraformDirtRegistry |
com.terraformersmc.terraform.dirt.TillableBlockRegistry |
com.terraformersmc.terraform.dirt.api.registry.TillableBlockRegistry |
com.terraformersmc.terraform.tree.block.TerraformDesertSaplingBlock |
com.terraformersmc.terraform.tree.api.block.TerraformDesertSaplingBlock |
com.terraformersmc.terraform.tree.decorator.DecoratorTypes |
com.terraformersmc.terraform.tree.api.decorator.DecoratorTypes |
com.terraformersmc.terraform.tree.merchant.TerraformSaplingTradeHelper |
com.terraformersmc.terraform.tree.api.merchant.TerraformSaplingTradeHelper |
com.terraformersmc.terraform.tree.placer.PlacerTypes |
com.terraformersmc.terraform.tree.api.placer.PlacerTypes |
com.terraformersmc.terraform.leaves.block.ExtendedLeavesBlock |
com.terraformersmc.terraform.leaves.api.block.ExtendedLeavesBlock |
com.terraformersmc.terraform.leaves.block.LeafPileBlock |
com.terraformersmc.terraform.leaves.api.block.LeafPileBlock |
com.terraformersmc.terraform.leaves.block.TransparentLeavesBlock |
com.terraformersmc.terraform.leaves.api.block.TransparentLeavesBlock |
com.terraformersmc.terraform.sign.SpriteIdentifierRegistry |
com.terraformersmc.terraform.sign.api.SpriteIdentifierRegistry |
com.terraformersmc.terraform.sign.TerraformHangingSign |
com.terraformersmc.terraform.sign.api.TerraformHangingSign |
com.terraformersmc.terraform.sign.TerraformSign |
com.terraformersmc.terraform.sign.api.TerraformSign |
com.terraformersmc.terraform.sign.block.TerraformHangingSignBlock |
com.terraformersmc.terraform.sign.api.block.TerraformHangingSignBlock |
com.terraformersmc.terraform.sign.block.TerraformSignBlock |
com.terraformersmc.terraform.sign.api.block.TerraformSignBlock |
com.terraformersmc.terraform.sign.block.TerraformWallHangingSignBlock |
com.terraformersmc.terraform.sign.api.block.TerraformWallHangingSignBlock |
com.terraformersmc.terraform.sign.block.TerraformWallSignBlock |
com.terraformersmc.terraform.sign.api.block.TerraformWallSignBlock |
com.terraformersmc.terraform.wood.block.BareSmallLogBlock |
com.terraformersmc.terraform.wood.api.block.BareSmallLogBlock |
com.terraformersmc.terraform.wood.block.PillarLogHelper |
com.terraformersmc.terraform.wood.api.block.PillarLogHelper |
com.terraformersmc.terraform.wood.block.QuarterLogBlock |
com.terraformersmc.terraform.wood.api.block.QuarterLogBlock |
com.terraformersmc.terraform.wood.block.SmallLogBlock |
com.terraformersmc.terraform.wood.api.block.SmallLogBlock |
Breaking: Removal of ComposterRecipes
The ComposterRecipes
class, which was deprecated in version 9.0.0, has been removed. Instead, mods can use Fabric API's CompostingChanceRegistry
. For example:
LeavesBlock leavesBlock = new LeavesBlock(/* ... */);
BlockItem leavesItem = new BlockItem(leavesBlock, new Item.Settings());
CompostingChanceRegistry.INSTANCE.add(leavesItem, chance);
The method that did not accept a chance parameter chose values based on vanilla blocks. These values are as follows, and must be manually passed to Fabric API:
Blocks and Classes | Composting Chance |
---|---|
LeavesBlock , LeafPileBlock , SaplingBlock , SeagrassBlock |
0.3 |
Fern, large fern, FlowerBlock |
0.65 |
Consult the vanilla ComposterBlock.registerDefaultCompostableItems
method for other examples of composting chances.
Breaking: Removal of log block constructors
The deprecated constructors in the following classes, which have been replaced by factory methods and Fabric API's StrippableBlockRegistry
, have been removed:
BareSmallLogBlock(Supplier<Block>, AbstractBlock.Settings)
QuarterLogBlock(Supplier<Block>, MapColor, AbstractBlock.Settings settings)
SmallLogBlock(Block, Supplier<Block>, AbstractBlock.Settings settings)
Breaking: Miscellaneous changes
Other smaller changes have been made to reduce unintentional implementation details being exposed as part of the API. They are as follows:
- The following classes are now final:
TerraformDirtBlockTags
TillableBlockRegistry
PlacerTypes
PillarLogHelper
- The following classes now longer publicly expose a useless constructor:
PlacerTypes
PillarLogHelper
- The
TillableBlockRegistry
class no longer extendsHoeItem
Terraform v10.0.0 for 1.20.5 and 1.20.6
- Add data version for 1.20.6
- Release 10.0.0 stable for 1.20.5
Terraform v10.0.0 beta 1 for 1.20.5
- Building Terraform API now requires Java 21
- Add data version for 1.20.5 to the biome remapper
Terraform v10.0.0 alpha 9 for 1.20.5
- Add a DecoratorTypes accessor similar to PlacerTypes