添加了新的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.item.component.MapDecorations;
|
||||||
import net.minecraft.world.level.saveddata.maps.MapDecorationTypes;
|
import net.minecraft.world.level.saveddata.maps.MapDecorationTypes;
|
||||||
import net.minecraft.world.level.saveddata.maps.MapItemSavedData;
|
import net.minecraft.world.level.saveddata.maps.MapItemSavedData;
|
||||||
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import studio.fantasyit.maid_useful_task.Config;
|
import studio.fantasyit.maid_useful_task.Config;
|
||||||
import studio.fantasyit.maid_useful_task.MaidUsefulTask;
|
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.FindTargetMoveBehavior;
|
||||||
import studio.fantasyit.maid_useful_task.behavior.common.FindTargetWaitBehavior;
|
import studio.fantasyit.maid_useful_task.behavior.common.FindTargetWaitBehavior;
|
||||||
import studio.fantasyit.maid_useful_task.compat.CompatEntry;
|
import studio.fantasyit.maid_useful_task.compat.CompatEntry;
|
||||||
@@ -79,7 +81,10 @@ public class MaidLocateTask implements IMaidTask, IMaidFindTargetTask {
|
|||||||
MemoryUtil.setLocateItem(maid, itemStack);
|
MemoryUtil.setLocateItem(maid, itemStack);
|
||||||
MemoryUtil.clearCommonBlockCache(maid);
|
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);
|
target = MemoryUtil.getCommonBlockCache(maid);
|
||||||
if (target == null) {
|
if (target == null) {
|
||||||
BlockPos blockpos = level.findNearestMapStructure(StructureTags.EYE_OF_ENDER_LOCATED, maid.blockPosition(), 100, false);
|
BlockPos blockpos = level.findNearestMapStructure(StructureTags.EYE_OF_ENDER_LOCATED, maid.blockPosition(), 100, false);
|
||||||
|
|||||||
Reference in New Issue
Block a user