Skip to content

Commit 3a5d7d1

Browse files
[CHANGE] -fix #63 -fixed ocelots being attacked by creepers
1 parent 1927e63 commit 3a5d7d1

File tree

5 files changed

+21
-8
lines changed

5 files changed

+21
-8
lines changed

src/main/java/tallestegg/bigbrain/BigBrainConfig.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,12 +104,14 @@ public static class CommonConfig {
104104
public final ModConfigSpec.BooleanValue huskBurrowing;
105105
public final ModConfigSpec.BooleanValue babyNerf;
106106
public final ModConfigSpec.BooleanValue jumpAi;
107+
public final ModConfigSpec.BooleanValue jumpOnlyIfTargeting;
107108
public final ModConfigSpec.BooleanValue armadilloShell;
108109
public final ModConfigSpec.DoubleValue pillagerSpyGlass;
109110
public final ModConfigSpec.IntValue minPigBabiesBred;
110111
public final ModConfigSpec.IntValue maxPigBabiesBred;
111112
public final ModConfigSpec.IntValue snowBallFreezingTime;
112113
public final ModConfigSpec.DoubleValue mobBlindnessVision;
114+
public final ModConfigSpec.DoubleValue huskBurrowSpeed;
113115
public final ModConfigSpec.ConfigValue<List<? extends String>> MobBlackList;
114116
public final ModConfigSpec.ConfigValue<List<? extends String>> AnimalCoverWhiteList;
115117
public final ModConfigSpec.ConfigValue<List<? extends String>> NightCoverBlackList;
@@ -133,13 +135,15 @@ public CommonConfig(ModConfigSpec.Builder builder) {
133135
bowAiCloseRange = builder.define("Enable bow attacking mobs to shoot faster if the attacker is closer (deals less damage)", true);
134136
bowAiBlackList = builder.defineListAllowEmpty("Mobs that don't have the new bow ai", Lists.newArrayList(), () -> "", obj -> true);
135137
jumpAi = builder.define("Enable jumping ai", true);
138+
jumpOnlyIfTargeting = builder.define("Jump only if a mob is actively targeting another mob", false);
136139
jumpWhiteList = builder.defineListAllowEmpty("List additional mobs that can also utilize jumping", Lists.newArrayList("guardvillagers:guard"), () -> "", obj -> true);
137140
jumpBlackList = builder.defineListAllowEmpty("Mobs that don't have the jumping ai", Lists.newArrayList("minecraft:villager"), () -> "", obj -> true);
138141
babyNerf = builder.define("Halve all health of baby mobs?", true);
139-
babiesExemptFromNerf = builder.defineListAllowEmpty("Baby mobs exempt from above nerf if enabled", Lists.newArrayList("minecraft:villager", "minecraft:horse", "minecraft:donkey", "minecraft:bee", "minecraft:mule", "minecraft:cow", "minecraft:goat", "minecraft:mooshroom","minecraft:sheep","minecraft:pig","minecraft:chicken","minecraft:wolf","minecraft:cat","minecraft:ocelot","minecraft:axolotl","minecraft:llama","minecraft:rabbit","minecraft:turtle","minecraft:strider","minecraft:armadillo","minecraft:camel","minecraft:squid"), () -> "", obj -> true);
142+
babiesExemptFromNerf = builder.defineListAllowEmpty("Baby mobs exempt from above nerf if enabled", Lists.newArrayList("minecraft:villager", "minecraft:horse", "minecraft:donkey", "minecraft:bee", "minecraft:mule", "minecraft:cow", "minecraft:goat", "minecraft:mooshroom", "minecraft:sheep", "minecraft:pig", "minecraft:chicken", "minecraft:wolf", "minecraft:cat", "minecraft:ocelot", "minecraft:axolotl", "minecraft:llama", "minecraft:rabbit", "minecraft:turtle", "minecraft:strider", "minecraft:armadillo", "minecraft:camel", "minecraft:squid"), () -> "", obj -> true);
140143
builder.pop();
141144
builder.push("husk");
142145
huskBurrowing = builder.define("Enable burrowing attack for husk?", true);
146+
huskBurrowSpeed = builder.defineInRange("How fast the husk is able to burrow", 1.8D, -10000.0D, 10000.0D);
143147
builder.pop();
144148
builder.push("pillager");
145149
PillagerCover = builder.translation(BigBrain.MODID + ".config.pillagerCover").define("Have pillagers run while reloading?", true);
@@ -181,7 +185,7 @@ public CommonConfig(ModConfigSpec.Builder builder) {
181185
public static class ClientConfig {
182186
public final ModConfigSpec.BooleanValue bedrockBeeAnim;
183187
public final ModConfigSpec.BooleanValue drownedGlow;
184-
188+
185189

186190
public ClientConfig(ModConfigSpec.Builder builder) {
187191
builder.push("bedrock animations");

src/main/java/tallestegg/bigbrain/BigBrainEvents.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -307,8 +307,8 @@ public static void onTargetSet(LivingChangeTargetEvent event) {
307307
if (event.getOriginalAboutToBeSetTarget() != null)
308308
piglin.getBrain().setMemory(MemoryModuleType.ANGRY_AT, event.getOriginalAboutToBeSetTarget().getUUID());
309309
}
310-
if (event.getEntity() instanceof Creeper creeper && event.getOriginalAboutToBeSetTarget() instanceof Ocelot && event.getOriginalAboutToBeSetTarget() != null)
311-
creeper.setTarget(null);
310+
if (event.getEntity() instanceof Creeper && event.getOriginalAboutToBeSetTarget() != null && event.getOriginalAboutToBeSetTarget() instanceof Ocelot)
311+
event.setNewAboutToBeSetTarget(null);
312312
if (event.getEntity() instanceof Pillager pillager) {
313313
if (pillager.getUseItem().getItem() instanceof SpyglassItem && pillager.isPatrolling() && event.getOriginalAboutToBeSetTarget() != null) {
314314
pillager.setAggressive(true); // This needs to be done as pillagers patrolling stare at the player from

src/main/java/tallestegg/bigbrain/common/entity/ai/goals/HuskBurrowGoal.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import net.minecraft.world.phys.AABB;
1616
import net.minecraft.world.phys.shapes.BooleanOp;
1717
import net.minecraft.world.phys.shapes.Shapes;
18+
import tallestegg.bigbrain.BigBrainConfig;
1819
import tallestegg.bigbrain.common.capabilities.BigBrainCapabilities;
1920

2021
import java.util.EnumSet;
@@ -95,7 +96,7 @@ public void tick() {
9596
this.husk.setData(BigBrainCapabilities.BURROWING.get(), true);
9697
this.phase = BurrowPhases.BURROW;
9798
} else if (this.phase == BurrowPhases.BURROW) {
98-
this.husk.getNavigation().moveTo(target, 1.8D);
99+
this.husk.getNavigation().moveTo(target, BigBrainConfig.COMMON.huskBurrowSpeed.get());
99100
if (this.husk.isWithinMeleeAttackRange(target)) {
100101
this.husk.getNavigation().stop();
101102
this.husk.setPose(Pose.STANDING);

src/main/java/tallestegg/bigbrain/common/entity/ai/goals/ParkourGoal.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import net.minecraft.world.entity.ai.util.GoalUtils;
1212
import net.minecraft.world.level.pathfinder.Path;
1313
import net.minecraft.world.phys.Vec3;
14+
import tallestegg.bigbrain.BigBrainConfig;
1415

1516
import javax.annotation.Nullable;
1617
import java.util.Collections;
@@ -45,11 +46,15 @@ public static <E extends Mob> boolean defaultAcceptableLandingSpot(E mob, BlockP
4546
return mob instanceof PathfinderMob && GoalUtils.isSolid((PathfinderMob) mob, blockpos);
4647
}
4748

49+
public boolean canJump() {
50+
Path path = this.mob.getNavigation().getPath();
51+
return this.mob.getNavigation().isInProgress() && path != null && !path.canReach() && (this.mob.level().getGameTime() - tryAgainTime > 100L);
52+
}
53+
4854
@Override
4955
public boolean canUse() {
5056
if (this.mob.getNavigation() != null && this.mob.onGround()) {
51-
Path path = this.mob.getNavigation().getPath();
52-
return this.mob.getNavigation().isInProgress() && path != null && !path.canReach() && (this.mob.level().getGameTime() - tryAgainTime > 100L);
57+
return this.canJump() || (BigBrainConfig.COMMON.jumpOnlyIfTargeting.get() && mob.getTarget() != null && this.canJump());
5358
} else {
5459
return false;
5560
}

src/main/resources/assets/bigbrain/lang/en_us.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,8 @@
4646
"bigbrain.configuration.armadillos": "Armadillos",
4747
"bigbrain.configuration.Enable bow attacking mobs to shoot faster if the attacker is closer (deals less damage)": "Enable bow attacking mobs to shoot faster if the attacker is closer (deals less damage)",
4848
"bigbrain.configuration.Halve all health of baby mobs?": "Halve all health of baby mobs",
49-
"bigbrain.configuration.Baby mobs exempt from above nerf if enabled": "Baby mobs exempt from above nerf if enabled"
49+
"bigbrain.configuration.Baby mobs exempt from above nerf if enabled": "Baby mobs exempt from above nerf if enabled",
50+
"bigbrain.configuration.Jump only if a mob is actively targeting another mob": "Jump only if a mob is actively targeting another mob",
51+
"bigbrain.configuration.How fast the husk is able to burrow": "How fast the husk is able to burrow",
52+
"bigbrain.configuration.Each snowball will add up this amount of freezing time": "Each snowball will add up this amount of freezing tim"
5053
}

0 commit comments

Comments
 (0)