Skip to content

Commit 7912562

Browse files
committed
enhance kubejs documentation for GeneChangeEvent and improve event handling logic
1 parent f2beb97 commit 7912562

File tree

3 files changed

+21
-5
lines changed

3 files changed

+21
-5
lines changed

docs/geneticsresequenced/devs/kubejs.mdx

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,25 @@ While the mod doesn't explicitly have KubeJS support, it's relatively simple to
66

77
### [GeneChangeEvent](https://github.com/Berry-Club/Genetics-Resequenced/blob/NeoForge-1.21/src/main/kotlin/dev/aaronhowser/mods/geneticsresequenced/event/custom/GeneChangeEvent.kt)
88

9+
There are two GeneChangeEvents: Pre and Post.
10+
11+
Pre is fired before an entity's Genes are changed, and can be cancelled. Post is fired after, and cannot be cancelled.
12+
13+
Both of them have the following properties:
14+
- `entity` - The LivingEntity whose Genes are changing
15+
- `geneHolder` - The Holder\<Gene> of the Gene that's being added or removed
16+
- `geneId` - The ResourceKey\<Gene> of the Gene that's being added or removed
17+
- `isAddition()` - A Boolean representing whether the Gene is being added (true) or removed (false)
18+
919
```js
10-
NativeEvents.onEvent("dev.aaronhowser.mods.geneticsresequenced.event.custom.GeneChangeEvent$Pre", event => {
11-
event.cancel()
12-
})
20+
NativeEvents.onEvent("dev.aaronhowser.mods.geneticsresequenced.event.custom.GeneChangeEvent$Pre", (event) => {
21+
let entity = event.entity;
22+
if (entity.level.isClientSide()) return;
23+
24+
if (!event.isAddition() && entity.name.getString() == "1aaron5" && event.geneId == "geneticsresequenced:cringe") {
25+
event.canceled = true;
26+
}
27+
});
1328
```
1429
```js
1530
NativeEvents.onEvent("dev.aaronhowser.mods.geneticsresequenced.event.custom.GeneChangeEvent$Post", event => {

src/main/kotlin/dev/aaronhowser/mods/geneticsresequenced/event/custom/GeneChangeEvent.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package dev.aaronhowser.mods.geneticsresequenced.event.custom
22

33
import dev.aaronhowser.mods.geneticsresequenced.gene.Gene
44
import net.minecraft.core.Holder
5+
import net.minecraft.resources.ResourceKey
56
import net.minecraft.world.entity.LivingEntity
67
import net.neoforged.bus.api.Event
78
import net.neoforged.bus.api.ICancellableEvent
@@ -12,6 +13,8 @@ sealed class GeneChangeEvent : Event() {
1213
abstract val geneHolder: Holder<Gene>
1314
abstract val isAddition: Boolean
1415

16+
val geneId: ResourceKey<Gene>? get() = geneHolder.key
17+
1518
data class Pre(
1619
override val entity: LivingEntity,
1720
override val geneHolder: Holder<Gene>,

src/main/kotlin/dev/aaronhowser/mods/geneticsresequenced/event/custom/ModifyEntityGenesEvent.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package dev.aaronhowser.mods.geneticsresequenced.event.custom
22

33
import dev.aaronhowser.mods.geneticsresequenced.gene.Gene
4-
import dev.aaronhowser.mods.geneticsresequenced.registry.ModGenes
54
import net.minecraft.resources.ResourceKey
6-
import net.minecraft.resources.ResourceLocation
75
import net.minecraft.world.entity.EntityType
86
import net.neoforged.bus.api.Event
97

0 commit comments

Comments
 (0)