添加实体中键选取物品

This commit is contained in:
17146 2025-07-14 01:10:53 +08:00 committed by Light_Quanta
parent f163ce1e5a
commit 85ea6f3077
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
5 changed files with 32 additions and 1 deletions

View file

@ -34,6 +34,7 @@ import net.neoforged.neoforge.capabilities.Capabilities;
import net.neoforged.neoforge.energy.IEnergyStorage;
import net.neoforged.neoforge.event.entity.living.LivingDeathEvent;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import software.bernie.geckolib.animatable.GeoEntity;
import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.animation.*;
@ -359,4 +360,10 @@ public class DPSGeneratorEntity extends LivingEntity implements GeoEntity {
storage.setEnergy(this.getMaxEnergy());
}
}
@Override
@Nullable
public ItemStack getPickResult() {
return new ItemStack(ModItems.DPS_GENERATOR_DEPLOYER.get());
}
}

View file

@ -30,6 +30,7 @@ import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.neoforge.event.entity.living.LivingDeathEvent;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import software.bernie.geckolib.animatable.GeoEntity;
import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.animation.*;
@ -240,4 +241,9 @@ public class TargetEntity extends LivingEntity implements GeoEntity {
return this.cache;
}
@Override
@Nullable
public ItemStack getPickResult() {
return new ItemStack(ModItems.TARGET_DEPLOYER.get());
}
}

View file

@ -600,6 +600,12 @@ public class DroneEntity extends MobileVehicleEntity implements GeoEntity {
return stack.getItem().toString();
}
@Override
@Nullable
public ItemStack getPickResult() {
return new ItemStack(ModItems.DRONE.get());
}
@Override
public void destroy() {
Player controller = EntityFindUtil.findPlayer(this.level(), this.entityData.get(CONTROLLER));

View file

@ -406,6 +406,12 @@ public class MortarEntity extends VehicleEntity implements GeoEntity, RemoteCont
}
}
@Override
@Nullable
public ItemStack getPickResult() {
return new ItemStack(ModItems.MORTAR_DEPLOYER.get());
}
@Override
public boolean canPlaceItem(int slot, @NotNull ItemStack stack) {
return super.canPlaceItem(slot, stack) && this.entityData.get(FIRE_TIME) == 0 && stack.getItem() instanceof MortarShell;

View file

@ -1556,9 +1556,15 @@ public abstract class VehicleEntity extends Entity implements Container {
return false;
}
@Override
@Nullable
public ItemStack getPickResult() {
return ContainerBlockItem.createInstance(this.getType());
}
/**
* 渲染载具的第一人称UI
* 务必标记 @OnlyIn(Dist.CLIENT) !
* 务必标记 @OnlyIn(Dist.CLIENT)
*/
@OnlyIn(Dist.CLIENT)
public void renderFirstPersonOverlay(GuiGraphics guiGraphics, Font font, Player player, int screenWidth, int screenHeight, float scale) {