Interact and Attack

This commit is contained in:
skippyall
2025-01-21 19:21:18 +01:00
parent fc70b2fe5a
commit 8007778c39
52 changed files with 249 additions and 234 deletions
@@ -2,7 +2,7 @@ package io.github.skippyall.minions.minion;
import eu.pb4.polymer.core.api.item.PolymerItem;
import eu.pb4.polymer.core.api.item.PolymerItemUtils;
import io.github.skippyall.minions.fakeplayer.MinionFakePlayer;
import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer;
import net.minecraft.component.DataComponentTypes;
import net.minecraft.component.type.NbtComponent;
import net.minecraft.item.Item;
@@ -12,11 +12,14 @@ import net.minecraft.item.Items;
import net.minecraft.item.tooltip.TooltipType;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.text.Text;
import net.minecraft.util.ActionResult;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.Vec2f;
import org.jetbrains.annotations.Nullable;
import xyz.nucleoid.packettweaker.PacketContext;
import java.util.List;
import java.util.Optional;
public class MinionItem extends Item implements PolymerItem {
@@ -27,6 +30,11 @@ public class MinionItem extends Item implements PolymerItem {
this.canProgram = canProgram;
}
@Override
public @Nullable Identifier getPolymerItemModel(ItemStack stack, PacketContext context) {
return null;
}
@Override
public Item getPolymerItem(ItemStack itemStack, PacketContext player) {
return Items.ARMOR_STAND;
@@ -39,6 +47,14 @@ public class MinionItem extends Item implements PolymerItem {
return out;
}
@Override
public void appendTooltip(ItemStack stack, TooltipContext context, List<Text> tooltip, TooltipType type) {
MinionData data = stack.get(MinionData.COMPONENT);
if(data != null) {
tooltip.add(Text.translatable("minions.minion_item.tooltip", data.name()));
}
}
@Override
public ActionResult useOnBlock(ItemUsageContext context) {
String contents = context.getStack().getName().getLiteralString();
@@ -56,7 +72,7 @@ public class MinionItem extends Item implements PolymerItem {
}
if (data.uuid() == null) {
MinionFakePlayer.createMinion(data, (ServerWorld) context.getWorld(), (ServerPlayerEntity) context.getPlayer(), canProgram, context.getBlockPos().toCenterPos().add(0,0.5,0), 0, 0);
MinionFakePlayer.createMinion(data, (ServerWorld) context.getWorld(), (ServerPlayerEntity) context.getPlayer(), canProgram, context.getBlockPos().toCenterPos().add(0,0.5,0), new Vec2f(0, 0));
}else {
data = data.withName(name);
MinionFakePlayer.spawnMinionAt(data, (ServerWorld) context.getWorld(), context.getBlockPos().toCenterPos().add(0,0.5,0), new Vec2f(0, 0));