mirror of
https://github.com/GeyserMC/Geyser.git
synced 2025-01-17 06:48:14 +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.EntityDefinition;
|
||||||
import org.geysermc.geyser.entity.EntityDefinitions;
|
import org.geysermc.geyser.entity.EntityDefinitions;
|
||||||
import org.geysermc.geyser.entity.type.Tickable;
|
import org.geysermc.geyser.entity.type.Tickable;
|
||||||
|
import org.geysermc.geyser.item.type.Item;
|
||||||
import org.geysermc.geyser.session.GeyserSession;
|
import org.geysermc.geyser.session.GeyserSession;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
@ -61,7 +62,7 @@ public class SnifferEntity extends AnimalEntity implements Tickable {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void setDimensions(Pose pose) {
|
protected void setDimensions(Pose pose) {
|
||||||
if (this.flags.contains(EntityFlag.DIGGING)) {
|
if (getFlag(EntityFlag.DIGGING)) {
|
||||||
setBoundingBoxHeight(DIGGING_HEIGHT);
|
setBoundingBoxHeight(DIGGING_HEIGHT);
|
||||||
setBoundingBoxWidth(definition.width());
|
setBoundingBoxWidth(definition.width());
|
||||||
} else {
|
} 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) {
|
public void setSnifferState(ObjectEntityMetadata<SnifferState> entityMetadata) {
|
||||||
SnifferState snifferState = entityMetadata.getValue();
|
SnifferState snifferState = entityMetadata.getValue();
|
||||||
|
|
||||||
|
@ -82,7 +88,7 @@ public class SnifferEntity extends AnimalEntity implements Tickable {
|
||||||
|
|
||||||
setDimensions(pose);
|
setDimensions(pose);
|
||||||
|
|
||||||
if (this.flags.contains(EntityFlag.DIGGING)) {
|
if (getFlag(EntityFlag.DIGGING)) {
|
||||||
digTicks = DIG_END;
|
digTicks = DIG_END;
|
||||||
} else {
|
} else {
|
||||||
// Handles situations where the DIGGING state is exited earlier than expected,
|
// Handles situations where the DIGGING state is exited earlier than expected,
|
||||||
|
|
|
@ -64,6 +64,7 @@ public class TagCache {
|
||||||
private IntList foxFood;
|
private IntList foxFood;
|
||||||
private IntList piglinLoved;
|
private IntList piglinLoved;
|
||||||
private IntList smallFlowers;
|
private IntList smallFlowers;
|
||||||
|
private IntList snifferFood;
|
||||||
|
|
||||||
public TagCache() {
|
public TagCache() {
|
||||||
// Ensure all lists are non-null
|
// Ensure all lists are non-null
|
||||||
|
@ -101,6 +102,7 @@ public class TagCache {
|
||||||
this.foxFood = IntList.of(itemTags.get("minecraft:fox_food"));
|
this.foxFood = IntList.of(itemTags.get("minecraft:fox_food"));
|
||||||
this.piglinLoved = IntList.of(itemTags.get("minecraft:piglin_loved"));
|
this.piglinLoved = IntList.of(itemTags.get("minecraft:piglin_loved"));
|
||||||
this.smallFlowers = IntList.of(itemTags.get("minecraft:small_flowers"));
|
this.smallFlowers = IntList.of(itemTags.get("minecraft:small_flowers"));
|
||||||
|
this.snifferFood = IntList.of(itemTags.get("minecraft:sniffer_food"));
|
||||||
|
|
||||||
// Hack btw
|
// Hack btw
|
||||||
boolean emulatePost1_13Logic = itemTags.get("minecraft:signs").length > 1;
|
boolean emulatePost1_13Logic = itemTags.get("minecraft:signs").length > 1;
|
||||||
|
@ -137,6 +139,7 @@ public class TagCache {
|
||||||
this.foxFood = IntLists.emptyList();
|
this.foxFood = IntLists.emptyList();
|
||||||
this.piglinLoved = IntLists.emptyList();
|
this.piglinLoved = IntLists.emptyList();
|
||||||
this.smallFlowers = IntLists.emptyList();
|
this.smallFlowers = IntLists.emptyList();
|
||||||
|
this.snifferFood = IntLists.emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isAxolotlTemptItem(Item item) {
|
public boolean isAxolotlTemptItem(Item item) {
|
||||||
|
@ -167,6 +170,10 @@ public class TagCache {
|
||||||
return smallFlowers.contains(itemStack.getJavaId());
|
return smallFlowers.contains(itemStack.getJavaId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isSnifferFood(Item item) {
|
||||||
|
return snifferFood.contains(item.javaId());
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isAxeEffective(BlockMapping blockMapping) {
|
public boolean isAxeEffective(BlockMapping blockMapping) {
|
||||||
return axeEffective.contains(blockMapping.getJavaBlockId());
|
return axeEffective.contains(blockMapping.getJavaBlockId());
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue