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 usingadd()
compared toList<BLockPos>
and takes up to 30% less memory. BlockPos
are now represented usinglong
. 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 convertlong
toBlockPos
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.
- PosList are now represented using
-
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 ofMap<ChunkPos, Set<BlockPos>
to match the BlockPos Changes. - coordinates rotation now takes a dedicated object (
AbstractBlockShapeRotation
->ShapeRotator
)
- Shape is now used to only generate coordinates of a structure. Removed all related placing parameters like
-
reworked placement classes:
- BlockLayer now takes a
LayerPlacer
class. It allow to decide how are theBlockState
placed inside the layer. - Layer attribution, done previously under the
place()
method ofShape
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 aLayerManager
to place your struture, or you can use your custom structures usingBlockListManager
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 useforce
andblockToForce
. It is now replaced by a dedicated object and that allow you to define which blocks should not be replaced whenforce = true
. It is now used inBlockList
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.
- BlockLayer now takes a
-
reworked shape block storage :
- Ancient variations of
BlockList
are now fused inside ofBlockList
. 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 ofBlockLayerManager
for the same reasons as previously. - Added
DividedBlockListManager
allowing to store comparators depending on aChunkPos
. 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.
- Ancient variations of
-
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
90% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Metadata
Release channel
ReleaseVersion number
3.0.0+1.21.1Loaders
FabricQuilt
Game versions
1.21.1Downloads
8Publication date
February 26, 2025 at 8:23 PMPublisher

RodoFire
Member