Compare commits

...

2 commits

Author SHA1 Message Date
Flanks255
4d3ba552eb Fixed AIOT tilling and flattening. 2024-06-03 16:43:45 -05:00
Flanks255
a6f50e2f3a Fixed worm stuff. 2024-06-03 16:16:57 -05:00
2 changed files with 24 additions and 15 deletions

View file

@ -10,7 +10,9 @@
package de.ellpeck.actuallyadditions.mod.entity;
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import de.ellpeck.actuallyadditions.mod.config.CommonConfig;
import de.ellpeck.actuallyadditions.mod.misc.apiimpl.farmer.DefaultFarmerBehavior;
import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.server.level.ServerLevel;
@ -78,7 +80,9 @@ public class EntityWorm extends Entity {
if (waterTicket != null)
waterTicket.invalidate();
waterTicket = FarmlandWaterManager.addAABBTicket(this.level(), new AABB(getX() - 2, getY() - 1.5, getZ() - 2, getX() + 2, getY(), getZ() + 2));
AABB aabb = new AABB(getX() - 1.5, getY() - 1.5, getZ() - 1.0, getX() + 1.5, getY() + 0.5, getZ() + 1.5);
//ActuallyAdditions.LOGGER.info("Worm AABB: " + aabb);
waterTicket = FarmlandWaterManager.addAABBTicket(this.level(), aabb);
}
@Override
@ -101,21 +105,11 @@ public class EntityWorm extends Entity {
if (canWormify(this.level(), pos, state)) {
boolean isFarmland = block instanceof FarmBlock;
/* if (!isFarmland || state.getValue(FarmlandBlock.MOISTURE) < 7) {
if (isMiddlePose || this.level().random.nextFloat() >= 0.45F) {
if (!isFarmland) {
DefaultFarmerBehavior.useHoeAt(this.level, pos);
}
state = this.level().getBlockState(pos);
isFarmland = state.getBlock() instanceof FarmlandBlock;
if (isFarmland) {
this.level().setBlock(pos, state.setValue(FarmlandBlock.MOISTURE, 7), 2);
if (isMiddlePose || this.level().random.nextFloat() >= 0.45F) {
DefaultFarmerBehavior.useHoeAt(this.level(), pos);
}
}
}*/
if (isFarmland && this.level().random.nextFloat() >= 0.95F) {
BlockPos plant = pos.above();

View file

@ -1,6 +1,7 @@
package de.ellpeck.actuallyadditions.mod.items;
import de.ellpeck.actuallyadditions.api.ActuallyTags;
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.item.DiggerItem;
import net.minecraft.world.item.ItemStack;
@ -8,12 +9,24 @@ import net.minecraft.world.item.Items;
import net.minecraft.world.item.Tier;
import net.minecraft.world.item.context.UseOnContext;
import net.minecraft.world.item.enchantment.Enchantment;
import net.minecraft.world.level.block.state.BlockState;
import net.neoforged.neoforge.common.ToolAction;
import net.neoforged.neoforge.common.ToolActions;
import java.util.List;
public class AllInOneTool extends DiggerItem {
private final Tier tier;
private static List<ToolAction> ACTIONS = List.of(
ToolActions.AXE_DIG,
ToolActions.HOE_DIG,
ToolActions.PICKAXE_DIG,
ToolActions.SHOVEL_DIG,
ToolActions.HOE_TILL,
ToolActions.SHOVEL_FLATTEN
);
public AllInOneTool(Tier tier) {
super(
4.0f,
@ -30,7 +43,7 @@ public class AllInOneTool extends DiggerItem {
@Override
public boolean canPerformAction(ItemStack stack, ToolAction toolAction) {
if (toolAction == ToolActions.AXE_DIG || toolAction == ToolActions.HOE_DIG || toolAction == ToolActions.PICKAXE_DIG || toolAction == ToolActions.SHOVEL_DIG)
if (ACTIONS.contains(toolAction))
return true;
return super.canPerformAction(stack, toolAction);
}
@ -44,6 +57,8 @@ public class AllInOneTool extends DiggerItem {
// Player not sneaking? Act as a Hoe to the block, else, Act as a shovel
if (!context.getPlayer().isCrouching()) {
BlockState toolModifiedState = context.getLevel().getBlockState(context.getClickedPos()).getToolModifiedState(context, ToolActions.HOE_TILL, false);
ActuallyAdditions.LOGGER.info("Tool Modified State: " + toolModifiedState);
return Items.IRON_HOE.useOn(context);
}