From 94f092015a05d0179e307468c717ad391e455742 Mon Sep 17 00:00:00 2001 From: Merrg1n <22628584+Merrg1n@users.noreply.github.com> Date: Sat, 13 Aug 2022 22:36:35 +0800 Subject: carpet ext --- .../SchoolingFishEntityMixin.java | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/main/java/com/keuin/ohmyvanillamc/mixins/rule/disableFishSchooling/SchoolingFishEntityMixin.java (limited to 'src/main/java/com/keuin/ohmyvanillamc/mixins/rule/disableFishSchooling') diff --git a/src/main/java/com/keuin/ohmyvanillamc/mixins/rule/disableFishSchooling/SchoolingFishEntityMixin.java b/src/main/java/com/keuin/ohmyvanillamc/mixins/rule/disableFishSchooling/SchoolingFishEntityMixin.java new file mode 100644 index 0000000..9e82f09 --- /dev/null +++ b/src/main/java/com/keuin/ohmyvanillamc/mixins/rule/disableFishSchooling/SchoolingFishEntityMixin.java @@ -0,0 +1,50 @@ +package com.keuin.ohmyvanillamc.mixins.rule.disableFishSchooling; + +import com.keuin.ohmyvanillamc.OmvmSettings; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.ai.goal.FollowGroupLeaderGoal; +import net.minecraft.entity.passive.FishEntity; +import net.minecraft.entity.passive.SchoolingFishEntity; +import net.minecraft.world.World; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; + +@Mixin(SchoolingFishEntity.class) +public abstract class SchoolingFishEntityMixin extends FishEntity { + + public SchoolingFishEntityMixin(EntityType type, World world) { + super(type, world); + } + + @Shadow + public abstract boolean hasLeader(); + + @Shadow + private SchoolingFishEntity leader; + + /** + * @reason To disable SchoolingFish schooling. + * @author trueKeuin + */ + @Overwrite + public void moveTowardLeader() { + if (!OmvmSettings.disableFishSchooling) { + if (this.hasLeader()) { + this.getNavigation().startMovingTo(this.leader, 1.0D); + } + } + } + + /** + * @reason To disable SchoolingFish schooling. + * @author trueKeuin + */ + @Overwrite + public void initGoals() { + super.initGoals(); + if (!OmvmSettings.disableFishSchooling) { + this.goalSelector.add(5, new FollowGroupLeaderGoal((SchoolingFishEntity) (Object) this)); + } + } +} -- cgit v1.2.3