# Geolosys Changelog (1.21.1)
## 8.0.0
It's finally here! After way too long, I finally got around to getting the 1.21.1 port said and done. With it are a few
changes and known limitations that feel worth bringing up :)
The changes it took to get here were also really big, so I may have forgotten something. Apologies in advance if I did -
I'm only human (no really, AI had nothing to do with my code)
### Added:
- New `geolosys:ignored_by_propick` Block Tag
- Blocks in this tag are entirely ignored by the Prospector's Pick. By default this tag is ignored, but if you want
a certain block to never be picked up by the propick, this tag is for you!
- New `geolosys:plant_placeable` Block Tag
- Defines what blocks a given plant block (just Rhododendron in Geolosys) can be placed
- New `default_deposit_matchers` Block Tag
- This replaces the old `DEFAULT_REPLACEMENT_MATS` config option, but is a valid tag
- This is used when `replacerTag` isn't defined for a given deposit (see changes below for more on `replacerTag`)
### Removed:
- Patchouli support and optional dependency
- With the rise of KubeJS, pack makers are more and more frequently making modifications to the default deposit-set,
and since Patchouli _still_ doesn't support dynamic pages in a given chapter, I went ahead and removed the support
for it entirely.
- This, of course, means that the `Field Manual` has been removed
- Other mod compatability
- Again, with datapacks or KubeJS, you can add Certus/Black quartz drops to Quartz, Yellorium drops to Autunite, and
Osmium drops to Platinum, so it felt useless to continue to support the loot modifier system for a feature folks
could use on their own :)
### Changed:
- **The Deposit format has changed a _teeny_ bit**
- One new, **required** field has been added: `averageSamplesPerChunk`
- This controls how many samples will try to be placed in a given chunk for a deposit
- The math behind how this is used is:
```python
range = averageSamplesPerChunk / 2
min = averageSamplesPerChunk - range
max = averageSamplesPerChunk + range
samples_to_place = random(min, max)
```
- One new, optional field has been added: `replacerTag`
- This is a string field which points to a tag you define. As such, it should start with `#`, for example
`#geolosys:autunite_ore_can_replace`
- If you'll recall, your deposit ore blocks look something like
`"default": [{chance, block}...], "minecraft:deepslate": [{chance, block}...]`
This tag is now used to check if an ore block can be placed - if block to be replaced (target) has the
`replacerTag` block tag, then the ore can replace this target. Of course, if you specify a key (like
`"minecraft:deepslate"` in the example above) then the ore can replace _that_ target too.
- This is mostly just another option for you to be able to further customize how ores generate.
- The Prospector's Pick now has a fixed 250 durability (same as Iron Tools)
- This is due to the nature of the new NeoForge config loading order
- There are ways around this using just datapacks - you can set the result for the Prospector's Pick recipe to yield
a `geolosys:prospectors_pick` with the component `Unbreakable: 1`
### Known Bugs:
- The in-game NeoForge config is not set up
- This will be set up in a future release, but I figured _no_ in-game config was better than one with broken text
and missing Internationalization.
### API Changes:
- The static `GeolosysAPI.plutonRegistry` instance has been renamed `GeolosysAPI.DEPOSIT_REGISTRY`
- `IDeposit` is gone - it has been replaced with an abstract parent `Deposit` class
- You'll need to initialize the superclass in your constructor.
- In exchange, you get a _ton_ of methods pre-implemented for you, like `onGenerationComplete`, `canPlaceInBiome`,
`getOre` and more!
- `Deposit::afterGen` has been renamed `Deposit::onGenerationComplete`
- `CommonDepositData` has been added to help with serializing and deserializing common attributes across all deposits,
like Y Min and Max, Ore and Sample Blocks, Generation Weight, etc.
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }