mirror of
https://github.com/GeyserMC/Geyser.git
synced 2024-12-29 15:49:09 +01:00
canEat for Sniffer
This commit is contained in:
parent
5fdc4d72b5
commit
5cf5225c0c
2 changed files with 15 additions and 2 deletions
|
@ -37,6 +37,7 @@ import org.cloudburstmc.protocol.bedrock.packet.LevelSoundEventPacket;
|
|||
import org.geysermc.geyser.entity.EntityDefinition;
|
||||
import org.geysermc.geyser.entity.EntityDefinitions;
|
||||
import org.geysermc.geyser.entity.type.Tickable;
|
||||
import org.geysermc.geyser.item.type.Item;
|
||||
import org.geysermc.geyser.session.GeyserSession;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -61,7 +62,7 @@ public class SnifferEntity extends AnimalEntity implements Tickable {
|
|||
|
||||
@Override
|
||||
protected void setDimensions(Pose pose) {
|
||||
if (this.flags.contains(EntityFlag.DIGGING)) {
|
||||
if (getFlag(EntityFlag.DIGGING)) {
|
||||
setBoundingBoxHeight(DIGGING_HEIGHT);
|
||||
setBoundingBoxWidth(definition.width());
|
||||
} else {
|
||||
|
@ -69,6 +70,11 @@ public class SnifferEntity extends AnimalEntity implements Tickable {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canEat(Item item) {
|
||||
return session.getTagCache().isSnifferFood(item);
|
||||
}
|
||||
|
||||
public void setSnifferState(ObjectEntityMetadata<SnifferState> entityMetadata) {
|
||||
SnifferState snifferState = entityMetadata.getValue();
|
||||
|
||||
|
@ -82,7 +88,7 @@ public class SnifferEntity extends AnimalEntity implements Tickable {
|
|||
|
||||
setDimensions(pose);
|
||||
|
||||
if (this.flags.contains(EntityFlag.DIGGING)) {
|
||||
if (getFlag(EntityFlag.DIGGING)) {
|
||||
digTicks = DIG_END;
|
||||
} else {
|
||||
// Handles situations where the DIGGING state is exited earlier than expected,
|
||||
|
|
|
@ -64,6 +64,7 @@ public class TagCache {
|
|||
private IntList foxFood;
|
||||
private IntList piglinLoved;
|
||||
private IntList smallFlowers;
|
||||
private IntList snifferFood;
|
||||
|
||||
public TagCache() {
|
||||
// Ensure all lists are non-null
|
||||
|
@ -101,6 +102,7 @@ public class TagCache {
|
|||
this.foxFood = IntList.of(itemTags.get("minecraft:fox_food"));
|
||||
this.piglinLoved = IntList.of(itemTags.get("minecraft:piglin_loved"));
|
||||
this.smallFlowers = IntList.of(itemTags.get("minecraft:small_flowers"));
|
||||
this.snifferFood = IntList.of(itemTags.get("minecraft:sniffer_food"));
|
||||
|
||||
// Hack btw
|
||||
boolean emulatePost1_13Logic = itemTags.get("minecraft:signs").length > 1;
|
||||
|
@ -137,6 +139,7 @@ public class TagCache {
|
|||
this.foxFood = IntLists.emptyList();
|
||||
this.piglinLoved = IntLists.emptyList();
|
||||
this.smallFlowers = IntLists.emptyList();
|
||||
this.snifferFood = IntLists.emptyList();
|
||||
}
|
||||
|
||||
public boolean isAxolotlTemptItem(Item item) {
|
||||
|
@ -167,6 +170,10 @@ public class TagCache {
|
|||
return smallFlowers.contains(itemStack.getJavaId());
|
||||
}
|
||||
|
||||
public boolean isSnifferFood(Item item) {
|
||||
return snifferFood.contains(item.javaId());
|
||||
}
|
||||
|
||||
public boolean isAxeEffective(BlockMapping blockMapping) {
|
||||
return axeEffective.contains(blockMapping.getJavaBlockId());
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue