Mods
Resource Packs
Data Packs
Modpacks
Shaders
Plugins
Mods Resource Packs Data Packs Plugins Shaders Modpacks
Get Modrinth App Upgrade to Modrinth+
Sign in
ModsPluginsData PacksShadersResource PacksModpacks
Sign in
Settings
Easier World Creator (ewc)

Easier World Creator (ewc)

library mod mostly designed for world-gen

11.0k
12
Library
Utility
World Generation
AboutGalleryChangelogVersions
All versionsewc-main 3.0.0+1.21.1

ewc-main 3.0.0+1.21.1

Download
Report

Changelog

3.0.0 update:

files related to structure placement got their directory changed(generated/easierworldcreator/structures -> ewc_data/structures).

This means that structures not entirely placed will not be automatically placed. To avoid this issue, move content to new directory or use new command /placeallmultichunkfeatureslegacy

User information

  • reworked shape gen. It allows for more possible usage and big performance improvements
  • added commands to place multi-chunk features : /placeallmultichunkfeatures and /placeallmultichunkfeatureslegacy
  • huge performance improvements(you can hope up to ~90% faster shape generation)

Developper informations

let's hope that this is the last mod breaking update

Changes:

  • rework how blockPos are stored:

    • PosList are now represented using LongOpenHashSet / LongArrayList. It allows for more performance ~70% faster when using add() compared to List<BLockPos> and takes up to 30% less memory.
    • BlockPos are now represented using long. 26 bits of the long are used to store x and z coordinates. 12 bits for the y coordinates. It allows x and z to span from -33 000 000 blocks to 33 000 000 blocks. Y span from -2048 to 2048.
    • LongPosHelper class allow you to convert long to BlockPos and vice versa and have some useful methods.
    • BlockSorter now take account of the changes. You can still sort BlockPos list or you can sort the blockPos thanks to the new system.
  • reworked Shape generation:

    • Shape is now used to only generate coordinates of a structure. Removed all related placing parameters like World, PlaceMoment, LayerManager
    • Shape now returns a Map<ChunkPos, LongOpenHashSet> instead of Map<ChunkPos, Set<BlockPos> to match the BlockPos Changes.
    • coordinates rotation now takes a dedicated object (AbstractBlockShapeRotation -> ShapeRotator)
  • reworked placement classes:

    • BlockLayer now takes a LayerPlacer class. It allow to decide how are the BlockState placed inside the layer.
    • Layer attribution, done previously under the place() method of Shape are now managed in a specific class : LayerManager.
    • shape placement now uses a new class : ShapePlacer. Previously you had to create a shape to place your structure even if you did not used one. It is now solved in the update. You can pass a shape coordinates and a LayerManager to place your struture, or you can use your custom structures using BlockListManager and their derivatives, see down for more details.
    • you can now repeat layers in BlockLayerManager
    • Added StructurePlacementRuleManager. Previously to define how should your shape / structure be placed, you had to use force and blockToForce. It is now replaced by a dedicated object and that allow you to define which blocks should not be replaced when force = true. It is now used in BlockList and replace the force variation.
    • You can now define when should your multi-chunk structure can be placed using WGShapeData. This will create a config json file that store related informations to shape placement.
  • reworked shape block storage :

    • Ancient variations of BlockList are now fused inside of BlockList. It was too hard to maintain and the gains were too tiny to justify continuing with this.
    • Ancient variations of BlockLayerComparator are now fused inside of BlockLayerManager for the same reasons as previously.
    • Added DividedBlockListManager allowing to store comparators depending on a ChunkPos. It is needed for world gen.
    • reworked methods to return and accept BlockListManager / DividedBlockListManager, making the mod more consistent.
    • to allow ~80% faster shape placement, block updates are not triggered by default. You can still change placement flags.
    • OrderedBlockListComparator reworked. It is now faster and should take less memory. However, you are not able to get a BlockPos list from a blockState.
    • added WorldStateCollector to get BlockStates based on a pos list.
  • util classes :

    • added some math util methods
    • moved all util classes to util package which was not the case before
    • various methods aditions

Update comes with major method changes for more consistency between classes and that would be too long to list. If you have any question, you can join discord server : discord-server

Dependencies

dependency-iconFabric APIrequired

Files

ewc-3.0.0+1.21.1.jar(5.41 MiB) Primary
Download
ewc-3.0.0+1.21.1-javadoc.jar(752.29 KiB)
Download
ewc-3.0.0+1.21.1-sources.jar(5.19 MiB)
Download

90% of ad revenue goes to creators

Support creators and Modrinth ad-free with Modrinth+

Metadata

Release channel

Release

Version number

3.0.0+1.21.1

Loaders

Fabric Quilt

Game versions

1.21.1

Downloads

66

Publication date

February 26, 2025 at 8:23 PM

Publisher

RodoFire

RodoFire

Member

Version ID

Modrinth is open source.

main@a0bd011

© Rinth, Inc.

Company

TermsPrivacyRulesCareers

Resources

SupportBlogDocsStatus

Interact

Discord X (Twitter) Mastodon Crowdin
Get Modrinth App Settings
NOT AN OFFICIAL MINECRAFT SERVICE. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.