Skip to content

Releases: TerraformersMC/Terraform

Terraform v13.0.0 alpha 2 for 1.21.4

06 Jan 22:05
Compare
Choose a tag to compare
Pre-release

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 and item/small_log
  • Added com.terraformersmc.terraform.wood.api.data.WoodModels

Terraform v13.0.0 alpha 1 for 1.21.4-pre1

21 Nov 20:57
Compare
Choose a tag to compare
  • 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

20 Nov 18:20
Compare
Choose a tag to compare
  • 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

10 Nov 04:06
Compare
Choose a tag to compare

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

08 Nov 18:55
74c77f1
Compare
Choose a tag to compare

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

09 Oct 20:17
Compare
Choose a tag to compare
  • 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

31 May 21:57
Compare
Choose a tag to compare
Pre-release

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 extends HoeItem

Terraform v10.0.0 for 1.20.5 and 1.20.6

10 May 20:04
Compare
Choose a tag to compare
  • 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

18 Apr 20:27
Compare
Choose a tag to compare
Pre-release
  • 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

28 Mar 02:24
Compare
Choose a tag to compare
Pre-release
  • Add a DecoratorTypes accessor similar to PlacerTypes