What is this mod about?
-
Create your world gen features easily with this library. It allow you to generate simple shapes (spherer, spirals, torus...) that combined together can create some beautiful features.
-
This mod also support multi-chunk features (placing features larger than 3x3 chunks).
-
You can also manipulate structure and placing them in the world
-
You can animate the placement of structure/ shape depending on many parameters
-
Implement a config API
-
One other functionnality that is not implemented for the moment is the support for custom particles shape
What Shapes can you create?
you can for the moment create :
- Circles
- Spheres
- Cylinders
- 2d and 3d ellipsoid
- Lines between 2 points
- Spirals and some variations
- Tores
Other features?
Yes there are a performance maths class as well as some utility world gen class that provide useful methods and a Class for perlin noise
Setup
if you are developping a mod and you want to use this library, you can put this in your build.gradle:
repositories {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
content {
includeGroup "maven.modrinth"
}
}
}
dependencies {
modImplementation "maven.modrinth:ewc:<version>"
}
you can find the version in the version tab (ex: 3.0.0+1.21.1)
Info
Wiki
I highly recommend you go to check the wiki to understand everything that is possible : Mod-Wiki
Performance
this mod use is own maths that you can use For example calculating 1 000 000 cosinus :
gives an avarage calculating time of 476 ms when using Math.cos(), using the custom maths, you get an average time of 7ms when using FatsMaths.getFastCos() and an average of 14ms when using FastMaths.getPreciseCos()
Using the library
the methods comes with common parameter :
StructureWorldAccess world that is used to put the structure in the world. StructureWorldAccess allow you to use the feature either during world gen or not
BlockPos pos the position of the center of the structure
List<BlockLayer> layers a list of BlockLayer, see the wiki for more info : Mod-Wiki
The different size required for the shape to place
Future?
I continue to develop actively this mod to support more and more possible things. You have any idea, suggestion on how to improve the mod? Let me know on the github.
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 |
### Changes:
- changed
TagUtilclass to accept all tags instead of only blocks and items
### Changes:
- changed
TagUtilclass to accept all tags instead of only blocks and items
### Additions:
- fix server crash on startup
### Additions:
- fix server crash on startup
### Additions:
- added support for neoforge. Every mod using this library is broken. Updating should be pretty fast since that changes are mostly package naming change
### Additions:
- added support for neoforge. Every mod using this library is broken. Updating should be pretty fast since that changes are mostly package naming change
### Additions:
- support of structure generator config for `
MultiChunkFeaturePiece
### Fixes:
- fixed error when encoding null
NbtCompound`
### Additions:
- added codec for `
BlockList,BlockListManager,DividedBlockListManagerandStructurePlacementRuleManager`
### Additions:
- added some methods under ``
DividedBlockListManager`
### Fixes:
- fixed rare crash when creating json file from
DividedBlockListManager`
### Additions:
- Added codec for Shapes and Rotator
### Changes:
- Removed unused method in MultiChunkFeaturePiece
### Changes:
- change the save delay of multichunk feature file from 1 min to 2 mins
- `
ShapePlacerdoes not add the multichunk feature by default
### Fixes:
- fixed file not being locked in
MultiChunkFeatureHandler#init()` - fixed multichunk feature file not being initialized
- fixed multichunk feature file being saved right after the initialiazon
- fixed structure piece being generated multiple times
### Changes:
- `
MultiChunkFeaturesHandlernow cache multi chunk features. This should fixisFeatureGeneratedreturn false while it should be true
### Fixes:
- fixed json not being parsed in
MultiChunkFeaturesHandler`
### Changes:
- changed slightly logging
### Fixes:
- fixed json not being parsed in `
MultiChunkFeaturesHandler`
### Additions:
- more factory methods for `
LayerPlacer - more debug informations for
EwcFolderData
### Changes:
- renamed hud to gui
### Fixes:
- fixed structure id not being referenced in MultiChunkFeaturePiece`
- fixed dead lock
### Additions:
- added debug log when initializing shape files
### Fixes:
- fixed
MultiChunkFeaturePiecenot having the good parameters
### Addition:
- Added
MultiChunkFeaturePieceto generate structure piece easily thanks to multichunk feature api
### Changes:
LayerPlacernow support already generated random- switch
LayerPlacerconstructor to factory. Constructors are now deprecated
### Fixes:
- fixes crash when using
LineGen#getCoveredChunksdue to bad cast
### Additions:
- added util methods
### Additions:
- added methods to know if a multi chunk feature got generated
### Changes:
- identifier in shape placer now take a random long to avoid duplicates
### Additions:
- added way to get covered chunks of a shape
### Fixes:
- fixed config getting reset
### Changes:
- updated ewc 3.0.9 to 1.21.4
### Additions:
- added method to parse block
- changed override block multi-chunk decoding
- fixed multi-chunk stackoverflow due to bad encoding
- fixed StructurePlacementRuleManager not being applied to BlockListManager if layermanager size == 1,
### Changes:
- there is now relation for StructurePlacementRuleManager between BlockListManager and BlockLayer
- multi-chunk features debug is now clearer
- fixed multi-chunk features being considered having PlaceMoment = OTHER due to bad conditions resulting in structure being placed with holes
### Fixes:
- fixed crash when getting precise cos in
FastMathswhile the angle was negative - fixed torus not generating correctly
- fixed
BlockLayerssometimes getting mixed resulting in a wrong layer order
### Changes:
- multi-chunks features now take account of the dimension and save
### Fixes:
- fixed crash when setting BlockState to BlockList after initializing with empty constructor
### Additions:
- added debug command to place all structures from one mod (
debugstructure)
### Changes:
- legacyPlaceAllMCFCommand removed. It is now passed as an argument of PlaceAllMCFCommand
- improved mod registration loggers
### Fixes:
- fixed crash related to illegal character when placing multi-chunk feature
### Additions:
- added some javadocs
### Changes:
- removed some methods from
NBTPlacerandStructureUtilfor better readability.
### Fixes:
- fixed de-sync between BlockStates and BlockPos under
OrderedBlockListManagerwhen fusing multipleOrderedBlockListManagertogether.
### Changes:
- improved
OrderedBlockListManagerperformance by ~80%, by removingLong2ShortOpenHashMap. PosList is nowList<LongShortImmutablePair>instead ofLongArrayList
### Fixes:
- fixed de-sync between BlockStates and BlockPos under
OrderedBlockListManager.
### Additions:
- many javadoc addition to various classes.
### Fixes:
- fixed
ForkJoinPoolunder layerManager - removed some debugging print statements
### Addition :
- various method additions and constructor additions, to simplify code.
- added
DividedBlockListManager#put(DividedBlockListManager)to fuse multiple dividedManagers