Skip to content

Commit

Permalink
Fix shiba's trying to pickup infinity arrows (#4469) and make them ea…
Browse files Browse the repository at this point in the history
…t arrows
  • Loading branch information
IThundxr committed Dec 15, 2023
1 parent 8c7ddbd commit 0936b87
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 8 deletions.
Original file line number Diff line number Diff line change
@@ -1,25 +1,24 @@
package org.violetmoon.quark.base.handler;

import com.google.common.collect.Lists;

import net.minecraft.core.Registry;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvent;

import java.util.List;

import org.violetmoon.quark.base.Quark;
import org.violetmoon.zeta.event.bus.LoadEvent;
import org.violetmoon.zeta.event.load.ZRegister;

import java.util.List;

/**
* @author WireSegal
* Created at 12:40 PM on 9/9/19.
*/
public class QuarkSounds {
private static final List<SoundEvent> REGISTRY_DEFERENCE = Lists.newArrayList();

public static final SoundEvent ENTITY_SHIBA_EAT_ARROW = register("entity.shiba.eat_arrow");

public static final SoundEvent ENTITY_STONELING_MEEP = register("entity.stoneling.meep");
public static final SoundEvent ENTITY_STONELING_PURR = register("entity.stoneling.purr");
public static final SoundEvent ENTITY_STONELING_GIVE = register("entity.stoneling.give");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package org.violetmoon.quark.content.mobs.ai;

import net.minecraft.sounds.SoundSource;
import net.minecraft.world.entity.ai.goal.Goal;
import net.minecraft.world.entity.ai.navigation.PathNavigation;
import net.minecraft.world.entity.projectile.AbstractArrow;
import net.minecraft.world.entity.projectile.AbstractArrow.Pickup;
import org.violetmoon.quark.base.handler.QuarkSounds;
import org.violetmoon.quark.content.mobs.entity.Shiba;
import org.violetmoon.quark.mixin.accessor.AccessorAbstractArrow;

Expand Down Expand Up @@ -38,9 +40,17 @@ public void tick() {
}

double dist = shiba.distanceTo(fetching);
if(dist < 3 && fetching.isAlive() && fetching.pickup == Pickup.ALLOWED) {
shiba.setMouthItem(((AccessorAbstractArrow) fetching).quark$getPickupItem());
fetching.discard();
if(dist < 3 && fetching.isAlive()) {
// Eat infinity arrows
if (fetching.pickup == Pickup.DISALLOWED || fetching.pickup == Pickup.CREATIVE_ONLY) {
shiba.level().playSound(null, shiba.blockPosition(), QuarkSounds.ENTITY_SHIBA_EAT_ARROW, SoundSource.NEUTRAL);
fetching.discard();

// Fetch normal arrow
} else if (fetching.pickup == Pickup.ALLOWED) {
shiba.setMouthItem(((AccessorAbstractArrow) fetching).quark$getPickupItem());
fetching.discard();
}
}

timeTilNextJump--;
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/quark/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -332,6 +332,7 @@
"quark.readout.sign_says": ". Sign Says ",
"quark.readout.no_item": "No item",

"quark.subtitles.shiba_eat_arrow": "Shiba… eats arrow?",
"quark.subtitles.meep": "Stoneling runs away",
"quark.subtitles.give_stoneling": "Stoneling gives item",
"quark.subtitles.take_stoneling": "Stoneling takes item",
Expand Down
8 changes: 8 additions & 0 deletions src/main/resources/assets/quark/sounds.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
{
"entity.shiba.eat_arrow": {
"subtitle": "quark.subtitles.shiba_eat_arrow",
"sounds": [
"minecraft:random/eat1",
"minecraft:random/eat2",
"minecraft:random/eat3"
]
},
"entity.stoneling.meep": {
"subtitle": "quark.subtitles.meep",
"sounds": [
Expand Down

0 comments on commit 0936b87

Please sign in to comment.