diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFeeder.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFeeder.java index 63a9bbcfa..433e22c5f 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFeeder.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFeeder.java @@ -24,6 +24,7 @@ import net.neoforged.api.distmarker.Dist; import net.neoforged.api.distmarker.OnlyIn; import javax.annotation.Nonnull; +import java.util.List; @OnlyIn(Dist.CLIENT) public class GuiFeeder extends AAScreen { @@ -42,12 +43,15 @@ public class GuiFeeder extends AAScreen { public void render(@Nonnull GuiGraphics guiGraphics, int x, int y, float f) { super.render(guiGraphics, x, y, f); if (x >= this.leftPos + 69 && y >= this.topPos + 30 && x <= this.leftPos + 69 + 10 && y <= this.topPos + 30 + 10) { - String[] array = new String[]{this.tileFeeder.currentAnimalAmount + " " + I18n.get("info." + ActuallyAdditions.MODID + ".gui.animals"), this.tileFeeder.currentAnimalAmount >= 2 && this.tileFeeder.currentAnimalAmount < TileEntityFeeder.THRESHOLD - ? I18n.get("info." + ActuallyAdditions.MODID + ".gui.enoughToBreed") + List array = List.of( + Component.literal(this.tileFeeder.currentAnimalAmount + " ").append(Component.translatable("info." + ActuallyAdditions.MODID + ".gui.animals")), + this.tileFeeder.currentAnimalAmount >= 2 && this.tileFeeder.currentAnimalAmount < TileEntityFeeder.THRESHOLD + ? Component.translatable("info." + ActuallyAdditions.MODID + ".gui.enoughToBreed") : this.tileFeeder.currentAnimalAmount >= TileEntityFeeder.THRESHOLD - ? I18n.get("info." + ActuallyAdditions.MODID + ".gui.tooMany") - : I18n.get("info." + ActuallyAdditions.MODID + ".gui.notEnough")}; - //this.drawHoveringText(Arrays.asList(array), x, y); + ? Component.translatable("info." + ActuallyAdditions.MODID + ".gui.tooMany") + : Component.translatable("info." + ActuallyAdditions.MODID + ".gui.notEnough") + ); + guiGraphics.renderComponentTooltip(this.font, array, x, y); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFeeder.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFeeder.java index 1fd9c29ed..d45c18085 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFeeder.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFeeder.java @@ -86,12 +86,12 @@ public class TileEntityFeeder extends TileEntityInventoryBase implements MenuPro int range = 5; ItemStack stack = tile.inv.getStackInSlot(0); if (!stack.isEmpty() && tile.currentTimer >= TIME) { - List animals = level.getEntitiesOfClass(Animal.class, new AABB(tile.worldPosition.getX() - range, tile.worldPosition.getY() - range, tile.worldPosition.getZ() - range, tile.worldPosition.getX() + range, tile.worldPosition.getY() + range, tile.worldPosition.getZ() + range)); + List animals = level.getEntitiesOfClass(Animal.class, new AABB(pos).inflate(range)); tile.currentAnimalAmount = animals.size(); if (tile.currentAnimalAmount >= 2 && tile.currentAnimalAmount < THRESHOLD) { - Optional opt = animals.stream().filter((e) -> canBeFed(stack, e)).findAny(); + Optional opt = animals.stream().filter((e) -> tile.canBeFed(stack, e)).findAny(); if (opt.isPresent()) { - feedAnimal(opt.get()); + tile.feedAnimal(opt.get()); stack.shrink(1); tile.currentTimer = 0; tile.setChanged(); @@ -110,7 +110,7 @@ public class TileEntityFeeder extends TileEntityInventoryBase implements MenuPro return (slot, automation) -> !automation; } - private static void feedAnimal(Animal animal) { + private void feedAnimal(Animal animal) { animal.setInLove(null); for (int i = 0; i < 7; i++) { double d = animal.level().random.nextGaussian() * 0.02D; @@ -120,7 +120,7 @@ public class TileEntityFeeder extends TileEntityInventoryBase implements MenuPro } } - private static boolean canBeFed(ItemStack stack, Animal animal) { + private boolean canBeFed(ItemStack stack, Animal animal) { if (animal instanceof Horse && ((Horse) animal).isTamed()) { Item item = stack.getItem(); return animal.getAge() == 0 && !animal.isInLove() && (item == Items.GOLDEN_APPLE || item == Items.GOLDEN_CARROT); diff --git a/src/main/resources/assets/actuallyadditions/lang/en_us.json b/src/main/resources/assets/actuallyadditions/lang/en_us.json index 515ac0437..24fdafc04 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_us.json +++ b/src/main/resources/assets/actuallyadditions/lang/en_us.json @@ -105,7 +105,7 @@ "block.actuallyadditions.black_quartz_pillar_block": "Pillar of Black Quartz", "block.actuallyadditions.smooth_black_quartz_block": "Smooth Black Quartz", "block.actuallyadditions.black_quartz_brick_block": "Black Quartz Bricks", - "block.actuallyadditions.feeder": "Automatic Feeder (wip)", + "block.actuallyadditions.feeder": "Automatic Feeder", "block.actuallyadditions.crusher": "Crusher", "block.actuallyadditions.crusher_double": "Double Crusher", "block.actuallyadditions.powered_furnace": "Powered Furnace",