-
Bonjour ou bonsoir.
Je me posais une question en développant un système pour mon projet, est il possible de créer une ligne de particule (particules de flamme) car j’ai essayé beaucoup de chose et seul soucis c’est que ça ne marche pas,
package mysteriousdevs.spellp.spells; import com.sun.jndi.toolkit.ctx.Continuation; import mysteriousdevs.spellp.References; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.EntityDamageSource; import net.minecraft.util.EnumParticleTypes; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.AxisAlignedBB; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.List; import java.util.Timer; import java.util.TimerTask; public class DivinSwordSpell extends GeneralSpell { public static final DivinSwordSpell INSTANCE = new DivinSwordSpell(); public DivinSwordSpell() { super("spell.divin_sword.name", 20, 10, new ResourceLocation(References.MODID, "textures/gui/icons/divine_sword_spell_icon.png")); } @Override public void launchSpell(EntityPlayer player) { List<Entity> EntityOne = player.world.getEntitiesWithinAABBExcludingEntity(player, new AxisAlignedBB(player.posX + 3, player.posY + 1, player.posZ, player.posX - 3, player.posY + 1, player.posZ)); List<Entity> EntityTwo = player.world.getEntitiesWithinAABBExcludingEntity(player, new AxisAlignedBB(player.posX, player.posY + 1, player.posZ + 3, player.posX, player.posY + 1, player.posZ - 3)); for ( int i = 0; i < EntityOne.size(); i++ ) { if( EntityOne.get(i) instanceof EntityLiving ) { EntityOne.get(i).attackEntityFrom(EntityDamageSource.MAGIC, 4); } } for ( int i = 0; i < EntityTwo.size(); i++ ) { if( EntityTwo.get(i) instanceof EntityLiving ) { EntityTwo.get(i).attackEntityFrom(EntityDamageSource.MAGIC, 4); } } spawnParticle(player); } public void spawnParticle(EntityPlayer player) { for ( int i = 0; i < 8; i++ ) { player.world.spawnParticle(EnumParticleTypes.REDSTONE, player.posX - 0.05, player.posY + 1, player.posZ, 0.05, 0, 0, 1, 2); player.world.spawnParticle(EnumParticleTypes.FLAME, player.posX, player.posY + 1, player.posZ + 0.05, 0, 0, 0.05, 1, 2); player.world.spawnParticle(EnumParticleTypes.FLAME, player.posX + 0.05, player.posY + 1, player.posZ, -0.05, 0, 0, 1, 2); player.world.spawnParticle(EnumParticleTypes.FLAME, player.posX, player.posY + 1, player.posZ + 0.05, 0, 0, -0.05, 1, 2); } //System.out.println("X: " + x); //System.out.println("Y: " + y); //System.out.println("Z: " + z); } }j’ai voulu au début répéter un spawn de particules 8 fois avec une latence de 0.5 seconde(un équivalent de la coroutine en C# pour le Java), seul soucis c’est que j’ai l’impression qu’un équivalent de la coroutine en Java ça n’existe pas, est ce qu’il existe une autre façon d’arriver au résultat attendu ?
Merci d’avance
Mysterious Devs
-
Salut,
Pour effectuer une action régulièrement il faut passer par des fonctions de tick.
Dans les entités, il y a la fonctononUpdatequi permet cela. -
@robin4002 C’est bon j’ai trouvé un moyen en utilisant les timer, mais merci quand même de ta réponse

Bonjour ! Vous semblez intéressé par cette conversation, mais vous n’avez pas encore de compte.
Marre de refaire défiler les mêmes messages ? Créez un compte pour retrouver votre position, recevoir des notifications des nouvelles réponses, sauvegarder vos favoris et voter pour les messages que vous appréciez.
Grâce à votre participation, ce message peut devenir encore meilleur 💗
S'inscrire Se connecter