Biome Squisher
Biome Squisher
is a small utility mod for injection biomes into existing (noise-based) dimensions. it does so by ‘squishing’ existing biomes out of the way in biome space and placing the new biome into the created hole1
WorldJS adds the ability to define Biome Squisher’s injectors through scripts
Series
Registry Type: biomesquisher:series
A series defines which squishers to apply to levels
: The squishers to apply to the levels.squishers(squishers: List<ResourceKey<Squisher>>)
: Creates and adds a squisher to the series.withSquisher(id: ResourceKey<Squisher>, builder: Consumer<SquisherBuilder>)id: ResourceKey<Squisher: The id of the squisher to createbuilder: Consumer<SquisherBuilder>: A callback for editing the properties of the squisher, properties can be found on the dedicated section
: The levels to apply the squishers to.levels(levels: List<ResourceKey<LevelStem>>)
Series applied to a level are applied in alphabetical order
Series applied to a level are applied in alphabetical order
Example
ServerEvents.registry('biomesquisher:series', event => {
event.create('series')
.squishers([ 'kubejs:squisher' ])
.withSquisher('kubejs:evil', builder => {
builder.biome('kubejs:evil')
builder.injection({}, 0.15)
})
.levels([ 'minecraft:overworld ])
})
Squisher
Registry Type: biomesquisher:squisher
A squisher defines how and where a biome is injected
: The injection behavior of the squisher.injection(biomeSpace: BiomeSpace, radius: number)biomeSpace: BiomeSpace: The region in biome space to inject at, can be made as a map of parameters to valuestemperature?: Squish: The position on the temperature axis to inject the biome at, can be made as a map of parameters to valuesposition?: number: The positon on the temperature axis to inject at- Defaults to
0
- Defaults to
degree?: number: The ‘shape factor’ of the temperature injection, allows for non-square injections- Defaults to
1
- Defaults to
- Optional, defaults to the above mentioned defaults
humidity?: Squish: The position on the humidity axis to inject the biome at, can be made as a map of parameters to valuesposition?: number: The positon on the humidity axis to inject at- Defaults to
0
- Defaults to
degree?: number: The ‘shape factor’ of the humidity injection, allows for non-square injections- Defaults to
1
- Defaults to
- Optional, defaults to the above mentioned defaults
continentalness?: Range: The range of continentalness values the biome will be injected at, can be made as a map of parameters to valuesmin?: number: The minimum value along the continentalness axis- Defaults to
-0.1
- Defaults to
max?: number: The maximum value along the continentalness axis- Defaults to
0.1
- Defaults to
- Optional, defaults to the above mentioned defaults
erosion?: Range: The range of erosion values the biome will be injected at, can be made as a map of parameters to valuesmin?: number: The minimum value along the erosion axis- Defaults to
-0.1
- Defaults to
max?: number: The maximum value along the erosion axis- Defaults to
0.1
- Defaults to
- Optional, defaults to the above mentioned defaults
depth?: Range: The range of depth values the biome will be injected at, can be made as a map of parameters to valuesmin?: number: The minimum value along the depth axis- Defaults to
-0.1
- Defaults to
max?: number: The maximum value along the depth axis- Defaults to
0.1
- Defaults to
- Optional, defaults to the above mentioned defaults
weirdness?: Range: The range of weirdness values the biome will be injected at, can be made as a map of parameters to valuesmin?: number: The minimum value along the weirdness axis- Defaults to
-0.1
- Defaults to
max?: number: The maximum value along the weirdness axis- Defaults to
0.1
- Defaults to
- Optional, defaults to the above mentioned defaults
radius: number: How large the injection should be, where1is the entire biome space- Must be in the range
[0, 1]
- Must be in the range
: The biome to inject.biome(biome: Holder$Reference<Biome>)
: The relative positioning of the squsiher.relative(temperature: @Nullable Position, humidity: @Nullable Position)- Used to determine which squsiher to use when multiple injectat the same point
- At least one of the values must be non-
nulland non-center
: If the injection should snap to a biome edge/corner within its bounds, if one is present.noSnap()
Example
ServerEvents.registry('biomesquisher:squisher', event => {
event.create('squisher')
.injection(
{
temperature: {
position: 0.4
},
erosion: {
min: -0.3,
max: 0.8
}
},
0.2
)
.biome('kubejs:juice')
.noSnap()
})
-
A much more complete and in-depth explanation is available on Biome Squisher’s GitHub ↩