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
2.4.10 update:
Fixes:
- fixed crash when launching the game related to TOML
- fixed config getting reset.
extended Surface rules will come when ewc 3.0.0 is released
2.4.10 update:
Fixes:
- fixed config getting reset when multiple categories are present
2.4.9 update:
Addition:
- added two new custom surface rules (
ExtendedSurfaceRules
) - added Tag util class (
TagUtil
)
2.4.8 update:
fixed crash when launching client
2.4.7 update:
forgot to remove incompatibility with mushrooomsmod 😑
2.4.6 update:
fixed Client config not being used
2.4.5 update:
update to 1.21.1.
Addition:
- added possibility of giving more information on the config screen
- added
BackgroundScreen
- added
InfoScreen
- added
ChunkPosMananger
, new class to manage multi-chunk placement - multi-chunk features placement now takes placementRadius in count. This will result in features having a more little offset. The placement is then more precise
- added description to multi-chunk features
- added client only config
Modification :
- multi-chunk feature placement is now done taking account placementRadius
- file verification when using multi-chunk features is now done twice instead of every feature step greatly improving world-gen performance (3x faster)
- various performance improvements.
- modified scroll bar to be more powerful and more intelligent to avoid doing scroll calculations every time it is used
- scroll bar can also be dragged
- used modified scroll bar in config screen
- rewrite of multi-chunk features file generation. It is now 70%-80% faster and takes up 60% less space
- multi-chunk features generation is now ~50% faster
Fixes:
- fixed restart config not working with
IntegerConfigObject
andEnumConfigObject
- fixed crash on dedicatedServers related to config screens
- fixed huge performance issue related to the config (the config wasn't using the cached values)
TextButtonWidget
not resting the shader color- fixed shape being placed when deactivating multi-chunk features resulting in log spam
- benchmark config not being used.
2.4.5 update:
Fixes:
- readded the multi-chunk features info screen
2.4.4 update:
Fixes:
- fixed crash when no info screen is set
2.4.3 update:
- added client side only config
Fixes:
- fixed client config screen not working at all
- fixed mod not launching on dedicated servers due to bad client/server separation
2.4.2 update:
1.20.4 support is dropped. This is the last release of 1.20.1 unless some critical bugs are found.
Addition:
- added possibility of giving more information on the config screen
- added
BackgroundScreen
- added
InfoScreen
- added
ChunkPosMananger
, new class to manage multi-chunk placement - multi-chunk features placement now takes placementRadius in count. This will result in features having a more little offset. The placement is then more precise
- added config to modify placementRadius. It Allows avoiding multi-chunk features when the size of it is inferior to the defined size, allowing for perfect placement.
- added description to multi-chunk features
Modification :
- multi-chunk feature placement is now done taking account placementRadius
- file verification when using multi-chunk features is now done twice instead of every feature step greatly improving world-gen performance (3x faster)
- various performance improvements.
- modified scroll bar to be more powerful and more intelligent to avoid doing scroll calculations every time it is used
- scroll bar can also be dragged
- used modified scroll bar in config screen
- rewrite of multi-chunk features file generation. It is now 70%-80% faster and takes up 60% less space
- multi-chunk features generation is now ~50% faster
Fixes:
- fixed restart config not working with
IntegerConfigObject
andEnumConfigObject
- fixed crash on dedicatedServers related to config screens
- fixed huge performance issue related to the config (the config wasn't using the cached values)
TextButtonWidget
not resting the shader color- fixed shape being placed when deactivating multi-chunk features resulting in log spam
- benchmark config not being used.
2.4.1 update:
Addition:
- "hole" in the config screen to see better what line you're reading
- buttons for ewc config screen
- added possibility to combine blockList
- added possibility to combine orderedBlockList