Skip to content

Commit e4e880f

Browse files
committed
feat: add ModifyGeneRequirementsEvent and update gene requirements handling
1 parent 0718a29 commit e4e880f

File tree

3 files changed

+21
-13
lines changed

3 files changed

+21
-13
lines changed

CHANGELOG.md

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# 1.12.0
22

3+
### Added
4+
5+
- ModifyGeneRequirementsEvent
6+
- Can be accessed via KubeJS
7+
- Has the
8+
39
### Changed
410

511
- Improved the message when you get a Gene you're missing the requirements for
@@ -10,19 +16,6 @@
1016
- A regular Cell will craft 8
1117
- A GMO Cell will craft 4
1218
- Gene Requirements are now a datapack registry
13-
- The json is still in `/data/_____/geneticsresequenced/gene_requirements/`, but the file name has to be the gene id
14-
- That is, `geneticsresequenced:flight` has to go in `/data/geneticsresequenced/geneticsresequenced/gene_requirements/flight.json`
15-
- Inside the json is a list of required Gene IDs, like so:
16-
17-
```json
18-
{
19-
"requirements": [
20-
"geneticsresequenced:teleport",
21-
"geneticsresequenced:step_assist",
22-
"geneticsresequenced:no_fall_damage"
23-
]
24-
}
25-
```
2619

2720
### Fixed
2821

src/main/kotlin/dev/aaronhowser/mods/geneticsresequenced/data/GeneRequirements.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package dev.aaronhowser.mods.geneticsresequenced.data
33
import com.mojang.serialization.Codec
44
import com.mojang.serialization.codecs.RecordCodecBuilder
55
import dev.aaronhowser.mods.geneticsresequenced.GeneticsResequenced
6+
import dev.aaronhowser.mods.geneticsresequenced.event.custom.ModifyGeneRequirementsEvent
67
import dev.aaronhowser.mods.geneticsresequenced.gene.Gene
78
import dev.aaronhowser.mods.geneticsresequenced.gene.Gene.Companion.isGene
89
import dev.aaronhowser.mods.geneticsresequenced.registry.ModGenes
@@ -11,6 +12,7 @@ import net.minecraft.core.HolderLookup
1112
import net.minecraft.core.Registry
1213
import net.minecraft.resources.ResourceKey
1314
import net.minecraft.resources.ResourceLocation
15+
import thedarkcolour.kotlinforforge.neoforge.forge.FORGE_BUS
1416
import kotlin.jvm.optionals.getOrNull
1517

1618
class GeneRequirements(
@@ -55,6 +57,9 @@ class GeneRequirements(
5557
}
5658
}
5759

60+
val event = ModifyGeneRequirementsEvent(gene.key!!, resultRks)
61+
FORGE_BUS.post(event)
62+
5863
val geneRegistry = registries.lookupOrThrow(ModGenes.GENE_REGISTRY_KEY)
5964
return resultRks.mapNotNull { geneRegistry.get(it).getOrNull() }.toSet()
6065
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package dev.aaronhowser.mods.geneticsresequenced.event.custom
2+
3+
import dev.aaronhowser.mods.geneticsresequenced.gene.Gene
4+
import net.minecraft.resources.ResourceKey
5+
import net.neoforged.bus.api.Event
6+
7+
data class ModifyGeneRequirementsEvent(
8+
val gene: ResourceKey<Gene>,
9+
val requirements: MutableSet<ResourceKey<Gene>>
10+
) : Event()

0 commit comments

Comments
 (0)