Как призывать частицы на месте предмета(ItemEntity)

Версия Minecraft
1.20.1
API
Forge
31
2
2
Здравствуйте, подскажите пожалуйста как создавать частицы на месте предметов(в виде сущности)?

Я уже смог призывать частицы на месте моба(например овцы) с помощью ивентов, но не как не могу понять как сделать то же самое с предметами, поскольку у ItemEntity нет аналога LivingTickEvent (или я его не нашёл).

(код где я призываю частицы)
Java:
public static void onMixinItemTick(LivingEvent.LivingTickEvent event){
if(event.getEntity() instanceof Sheep){
if(!(event.getEntity().getServer() == null)){
event.getEntity().getServer().getLevel(event.getEntity().getCommandSenderWorld().dimension()).sendParticles(ParticleTypes.FALLING_LAVA, event.getEntity().getX(), event.getEntity().getY(), event.getEntity().getZ(),
10,0,0,0,0.3);
        }
 
Java:
@SubscribeEvent
public static void onEntityTick(EntityTickEvent.Post event) {
    if (event.getEntity() instanceof ItemEntity itemEntity) {
        // Получаем мир и время
        Level level = itemEntity.level();
        long gameTime = level.getGameTime();
        
        // Создаем частицы каждые 5 тиков
        if (gameTime % 5 == 0) {
            double x = itemEntity.getX();
            double y = itemEntity.getY() + 0.2; // Немного выше предмета
            double z = itemEntity.getZ();
            
            // Отправляем частицы
            if (level instanceof ServerLevel serverLevel) {
                serverLevel.sendParticles(
                    ParticleTypes.FALLING_LAVA,
                    x, y, z,
                    3, // количество
                    0.1, 0.1, 0.1, // разброс по осям
                    0.01 // скорость
                );
            }
        }
    }
}
 
Cannot resolve symbol 'EntityTickEvent'

Java:
package com.wwelol.corrupted_mod.events;

import com.wwelol.corrupted_mod.Corrupted_mod;
import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.entity.animal.Sheep;
import net.minecraft.world.entity.item.ItemEntity;
import net.minecraft.world.level.Level;
import net.minecraftforge.event.entity.living.LivingEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;

public class MixinItemParticleEvent {
@Mod.EventBusSubscriber(modid = Corrupted_mod.MODID)
public static class ForgeEvents{

@SubscribeEvent
        public static void onEntityTick(EntityTickEvent.Post event) {
if (event.getEntity() instanceof ItemEntity itemEntity) {
// Получаем мир и время
                Level level = itemEntity.level();
long gameTime = level.getGameTime();

// Создаем частицы каждые 5 тиков
                if (gameTime % 5 == 0) {
double x = itemEntity.getX();
double y = itemEntity.getY() + 0.2; // Немного выше предмета
                    double z = itemEntity.getZ();

// Отправляем частицы
                    if (level instanceof ServerLevel serverLevel) {
                        serverLevel.sendParticles(
ParticleTypes.FALLING_LAVA,
                                x, y, z,
3, // количество
                                0.1, 0.1, 0.1, // разброс по осям
                                0.01 // скорость
                        );
                    }
                }
            }
        }
    }
}
 
Последнее редактирование:
Спасибо за помощь, но, причина существования этого вопроса это отсутствие аналога LivingTickEvent для предметов, EntityTickEvent как я понимаю не существует, следовательно, ничего этот пример не даёт и использовать его нельзя :/

(спасибо за помощь, я выучил полезные знания из этого кода, но решить сам вопрос оно не помогает)
 
Последнее редактирование:
Назад
Сверху