superb-warfare/src/main/java/com/atsuishio/superbwarfare/item/Rocket70.java
2025-05-23 02:21:41 +08:00

51 lines
No EOL
1.8 KiB
Java

package com.atsuishio.superbwarfare.item;
import com.atsuishio.superbwarfare.entity.projectile.HeliRocketEntity;
import com.atsuishio.superbwarfare.init.ModEntities;
import com.atsuishio.superbwarfare.init.ModItems;
import com.atsuishio.superbwarfare.init.ModSounds;
import net.minecraft.core.Direction;
import net.minecraft.core.Position;
import net.minecraft.core.dispenser.BlockSource;
import net.minecraft.core.dispenser.ProjectileDispenseBehavior;
import net.minecraft.sounds.SoundSource;
import net.minecraft.world.entity.projectile.Projectile;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.ProjectileItem;
import net.minecraft.world.level.Level;
import org.jetbrains.annotations.NotNull;
import javax.annotation.ParametersAreNonnullByDefault;
public class Rocket70 extends Item implements ProjectileItem {
public Rocket70() {
super(new Properties());
}
public static class Rocket70DispenseBehavior extends ProjectileDispenseBehavior {
public Rocket70DispenseBehavior() {
super(ModItems.ROCKET_70.get());
}
@Override
protected void playSound(BlockSource blockSource) {
blockSource.level().playSound(null, blockSource.pos(), ModSounds.HELICOPTER_ROCKET_FIRE_3P.get(), SoundSource.BLOCKS, 2.0F, 1.0F);
}
}
@Override
@ParametersAreNonnullByDefault
public @NotNull Projectile asProjectile(Level level, Position pos, ItemStack stack, Direction direction) {
return new HeliRocketEntity(ModEntities.HELI_ROCKET.get(), pos.x(), pos.y(), pos.z(), level);
}
@Override
public @NotNull DispenseConfig createDispenseConfig() {
return DispenseConfig.builder()
.uncertainty(1)
.power(4)
.build();
}
}