添加了新的API
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
package studio.fantasyit.maid_useful_task.api;
|
||||
|
||||
import com.github.tartaricacid.touhoulittlemaid.entity.passive.EntityMaid;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraftforge.eventbus.api.Cancelable;
|
||||
import net.minecraftforge.eventbus.api.Event;
|
||||
|
||||
@Cancelable
|
||||
public class ItemLocateEvent extends Event {
|
||||
public final ItemStack itemStack;
|
||||
public final EntityMaid maid;
|
||||
public final BlockPos cache;
|
||||
public BlockPos target = null;
|
||||
|
||||
public ItemLocateEvent(ItemStack itemStack, EntityMaid maid, BlockPos cache) {
|
||||
this.itemStack = itemStack;
|
||||
this.maid = maid;
|
||||
this.cache = cache;
|
||||
}
|
||||
|
||||
public BlockPos getTarget() {
|
||||
return target;
|
||||
}
|
||||
|
||||
public void setTarget(BlockPos target) {
|
||||
this.target = target;
|
||||
}
|
||||
}
|
||||
@@ -22,9 +22,11 @@ import net.minecraft.world.item.component.LodestoneTracker;
|
||||
import net.minecraft.world.item.component.MapDecorations;
|
||||
import net.minecraft.world.level.saveddata.maps.MapDecorationTypes;
|
||||
import net.minecraft.world.level.saveddata.maps.MapItemSavedData;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import studio.fantasyit.maid_useful_task.Config;
|
||||
import studio.fantasyit.maid_useful_task.MaidUsefulTask;
|
||||
import studio.fantasyit.maid_useful_task.api.ItemLocateEvent;
|
||||
import studio.fantasyit.maid_useful_task.behavior.common.FindTargetMoveBehavior;
|
||||
import studio.fantasyit.maid_useful_task.behavior.common.FindTargetWaitBehavior;
|
||||
import studio.fantasyit.maid_useful_task.compat.CompatEntry;
|
||||
@@ -79,7 +81,10 @@ public class MaidLocateTask implements IMaidTask, IMaidFindTargetTask {
|
||||
MemoryUtil.setLocateItem(maid, itemStack);
|
||||
MemoryUtil.clearCommonBlockCache(maid);
|
||||
}
|
||||
if (maid.getMainHandItem().is(Items.ENDER_EYE)) {
|
||||
ItemLocateEvent event = new ItemLocateEvent(itemStack, maid, MemoryUtil.getCommonBlockCache(maid));
|
||||
if (MinecraftForge.EVENT_BUS.post(event)) {
|
||||
target = event.getTarget();
|
||||
} else if (maid.getMainHandItem().is(Items.ENDER_EYE)) {
|
||||
target = MemoryUtil.getCommonBlockCache(maid);
|
||||
if (target == null) {
|
||||
BlockPos blockpos = level.findNearestMapStructure(StructureTags.EYE_OF_ENDER_LOCATED, maid.blockPosition(), 100, false);
|
||||
|
||||
Reference in New Issue
Block a user