Posted January 7, 20169 yr So i am updating from 1.8.to 1.8.8 and for some reason my spawn particle isn't working and i cant see why. I don't see anything that's changed that could be the cause of this. Just for reference im spawning particles around my entity. this.worldObj.spawnParticle(EnumParticleTypes.EXPLOSION_NORMAL, this.posX + x, this.posY + y, this.posZ + z, 0, 0, 0, 0); this.worldObj.spawnParticle(EnumParticleTypes.REDSTONE, this.posX + x - 0.5, this.posY + y - 0.5, this.posZ + z - 0.5, 0, 255, 0, 0); For some reason when this is called it just doesn't spawn the particles. BioWarfare Mod: http://goo.gl/BYWQty
January 7, 20169 yr Author So I switched to the spawnparticle method that runs on the client but its still not working? BioWarfare Mod: http://goo.gl/BYWQty
January 7, 20169 yr Author this.worldObj.spawnParticle(EnumParticleTypes.EXPLOSION_NORMAL,false, this.posX + x, this.posY + y, this.posZ + z, 0, 0, 0, 0); this.worldObj.spawnParticle(EnumParticleTypes.REDSTONE,false, this.posX + x - 0.5, this.posY + y - 0.5, this.posZ + z - 0.5, 0, 255, 0, 0); I also tried isremote and sideonly. BioWarfare Mod: http://goo.gl/BYWQty
January 7, 20169 yr Author I did i changed the method I was using but I get your point il just give you the whole class. package com.looke81.biowarfare.entity; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import com.looke81.biowarfare.init.BioWarfarePotionRegistry; import net.minecraft.client.renderer.entity.Render; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.PotionEffect; import net.minecraft.util.EnumParticleTypes; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; public class EntityGrenadeEffectToxic extends Entity { public EntityGrenadeEffectToxic(World p_i1738_1_) { super(p_i1738_1_); } public static int counter; public void onUpdate() { counter++; if (counter == 5) { for (int x = 0; x < 11; x++) { for (int y = 0; y < 11; y++) { for (int z = 0; z < 11; z++) { this.worldObj.spawnParticle(EnumParticleTypes.EXPLOSION_NORMAL,false, this.posX + x, this.posY + y, this.posZ + z, 0, 0, 0, 0); this.worldObj.spawnParticle(EnumParticleTypes.REDSTONE,false, this.posX + x - 0.5, this.posY + y - 0.5, this.posZ + z - 0.5, 0, 255, 0, 0); counter = 0; } } } } World entityWorld = getEntityWorld(); List nearEntities = entityWorld.getEntitiesWithinAABBExcludingEntity(this, getEntityBoundingBox().expand(10.0D, 10.0D, 10.0D)); List<Entity> outerEntities = new ArrayList<Entity>(); outerEntities.addAll(nearEntities); for (Entity outerEntity : outerEntities) { if (outerEntity instanceof EntityLivingBase) { ((EntityLivingBase) outerEntity).addPotionEffect(new PotionEffect(BioWarfarePotionRegistry.Toxic.id, 20, 30)); } } if (this.ticksExisted == 500) { this.setDead(); } } @Override protected void entityInit() { } @Override protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { } @Override protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { } } BioWarfare Mod: http://goo.gl/BYWQty
January 7, 20169 yr Author Is that better now? (still not working) Also my getEntitiesWithinAABBExcludingEntity is not related to the particles and works fine for me, would you suggest I do it differently? package com.looke81.biowarfare.entity; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import com.looke81.biowarfare.init.BioWarfarePotionRegistry; import net.minecraft.client.renderer.entity.Render; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.PotionEffect; import net.minecraft.util.EnumParticleTypes; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; public class EntityGrenadeEffectToxic extends Entity { public EntityGrenadeEffectToxic(World p_i1738_1_) { super(p_i1738_1_); } public int counter; @SideOnly(Side.CLIENT) @Override public void onUpdate() { super.onUpdate(); counter++; if (counter == 5) { for (int x = 0; x < 11; x++) { for (int y = 0; y < 11; y++) { for (int z = 0; z < 11; z++) { this.worldObj.spawnParticle(EnumParticleTypes.EXPLOSION_NORMAL, this.posX + x, this.posY + y, this.posZ + z, 0, 0, 0, 0); this.worldObj.spawnParticle(EnumParticleTypes.REDSTONE, this.posX + x - 0.5, this.posY + y - 0.5, this.posZ + z - 0.5, 0, 255, 0, 0); counter = 0; } } } } World entityWorld = getEntityWorld(); List nearEntities = entityWorld.getEntitiesWithinAABBExcludingEntity(this, getEntityBoundingBox().expand(10.0D, 10.0D, 10.0D)); List<Entity> outerEntities = new ArrayList<Entity>(); outerEntities.addAll(nearEntities); for (Entity outerEntity : outerEntities) { if (outerEntity instanceof EntityLivingBase) { ((EntityLivingBase) outerEntity).addPotionEffect(new PotionEffect(BioWarfarePotionRegistry.Toxic.id, 20, 30)); } } if (this.ticksExisted == 500) { this.setDead(); } } @Override protected void entityInit() { } @Override protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { } @Override protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { } } BioWarfare Mod: http://goo.gl/BYWQty
January 7, 20169 yr Author -Okay thanks I am now using isremote -Is using isremote like this fixing that now? @Override public void onUpdate() { super.onUpdate(); counter++; if (counter == 5) { for (int x = 0; x < 11; x++) { for (int y = 0; y < 11; y++) { for (int z = 0; z < 11; z++) { if(this.worldObj.isRemote){ this.worldObj.spawnParticle(EnumParticleTypes.EXPLOSION_NORMAL, this.posX + x, this.posY + y, this.posZ + z, 0, 0, 0, 0); this.worldObj.spawnParticle(EnumParticleTypes.REDSTONE, this.posX + x - 0.5, this.posY + y - 0.5, this.posZ + z - 0.5, 0, 255, 0, 0); counter = 0; } } } } } -I see what you mean but will that be that big of an issue and obviously i ignore half of it because you can apply a potion effect to a non entitylivingbase. -Because this doesn't work for some reason... World entityWorld = getEntityWorld(); List<Entity> nearEntities = entityWorld.getEntitiesWithinAABBExcludingEntity(this, getEntityBoundingBox().expand(10.0D, 10.0D, 10.0D)); for (Entity nearEntitie : nearEntities) { if (nearEntities instanceof EntityLivingBase) { ((EntityLivingBase) nearEntities).addPotionEffect(new PotionEffect(BioWarfarePotionRegistry.Toxic.id, 20, 30)); } } BioWarfare Mod: http://goo.gl/BYWQty
January 7, 20169 yr Author -ok isremote is now enclosing the counter and for-loop -guess so -umm doesn't work means that it doesn't apply the effect to the entitys. Particles are still not spawning tho so idk BioWarfare Mod: http://goo.gl/BYWQty
January 7, 20169 yr Author -which is why I add it to a list of entitys that can be entitylivingbase -well i thought that was the first thing I did but apparently not yeah its not being called but why? @Override public void onUpdate() { super.onUpdate(); counter++; if(this.worldObj.isRemote){ if (counter == 5) { for (int x = 0; x < 11; x++) { for (int y = 0; y < 11; y++) { for (int z = 0; z < 11; z++) { this.worldObj.spawnParticle(EnumParticleTypes.EXPLOSION_NORMAL, this.posX + x, this.posY + y, this.posZ + z, 0, 0, 0, 0); this.worldObj.spawnParticle(EnumParticleTypes.REDSTONE, this.posX + x - 0.5, this.posY + y - 0.5, this.posZ + z - 0.5, 0, 255, 0, 0); System.out.println("being called?"); counter = 0; } } } } } World entityWorld = getEntityWorld(); List nearEntities = entityWorld.getEntitiesWithinAABBExcludingEntity(this, getEntityBoundingBox().expand(10.0D, 10.0D, 10.0D)); List<Entity> outerEntities = new ArrayList<Entity>(); outerEntities.addAll(nearEntities); for (Entity outerEntity : outerEntities) { if (outerEntity instanceof EntityLivingBase) { ((EntityLivingBase) outerEntity).addPotionEffect(new PotionEffect(BioWarfarePotionRegistry.Toxic.id, 20, 30)); } } if (this.ticksExisted == 500) { this.setDead(); } } BioWarfare Mod: http://goo.gl/BYWQty
January 7, 20169 yr Author Show where you register your entity and where you spawn it. So I actually spawn it on impact of another entity and it is registered in my init method. Entity that spawns the entity: package com.looke81.biowarfare.entity; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.monster.EntityBlaze; import net.minecraft.entity.passive.EntityChicken; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityThrowable; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; public class EntityGrenadeToxic extends EntityThrowable { public EntityGrenadeToxic(World p_i1776_1_) { super(p_i1776_1_); } public EntityGrenadeToxic(World world, EntityLivingBase entity) { super(world, entity); } @Override protected void onImpact(MovingObjectPosition movingobjectposition) { for(int i = 0; i < 10;i++){} if(!this.worldObj.isRemote){ EntityGrenadeEffectToxic entitygrenadeeffecttoxic = new EntityGrenadeEffectToxic(this.worldObj); entitygrenadeeffecttoxic.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, 0.0F); this.worldObj.spawnEntityInWorld(entitygrenadeeffecttoxic); this.setDead(); } } } Entity registration: @Mod.EventHandler public void init(FMLInitializationEvent event) { BioWarfareEntity.registerEntity(); } Entity registration class: package com.looke81.biowarfare.entity; import java.util.Random; import net.minecraftforge.fml.common.registry.EntityRegistry; import com.looke81.biowarfare.Reference; public class BioWarfareEntity { public static void mainRegistry() { registerEntity(); } public static void registerEntity() { createEntity(EntityGrenadeToxic.class, "GrenadeToxic"); createEntity(EntityGrenadeInvertedVision.class, "GrenadeInvertedVision"); createEntity(EntityGrenadeBlurredVision.class, "GrenadeBlurredVision"); createEntity(EntityGrenadeXPDrain.class, "GrenadeXPDrain"); createEntity(EntityGrenadeRooted.class, "GrenadeRooted"); createEntity(EntityGrenadeBlurredVision.class, "GrenadeBlurredVision"); createEntity(EntityGrenadeEffectToxic.class, "GrenadeEffectToxic"); createEntity(EntityGrenadeEffectInvertedVision.class, "GrenadeEffectInvertedVision"); createEntity(EntityGrenadeEffectBlurredVision.class, "GrenadeEffectBlurredVision"); createEntity(EntityGrenadeEffectXPDrain.class, "GrenadeEffectXPDrain"); createEntity(EntityGrenadeEffectRooted.class, "GrenadeEffectRooted"); createEntity(EntityGrenadeEffectDiarrhea.class, "GrenadeEffectDiarrhea"); createEntity(EntityStaff.class, "Staff"); createEntity(EntityMissile.class, "Missile"); } public static void createEntity(Class entityClass, String entityName) { Random randomGenerator = new Random(); int randomId = EntityRegistry.findGlobalUniqueEntityId(); EntityRegistry.registerGlobalEntityID(entityClass, entityName, randomId ); EntityRegistry.registerModEntity(entityClass, entityName, randomId, Reference.MOD_ID, 64, 1, true); } } Also yes I did just realize that two of the methods im using have become depreciated I will fix that now. BioWarfare Mod: http://goo.gl/BYWQty
January 7, 20169 yr Author AND THAT FIXED IT NO NEED TO REPLY. I feel dumb now. BioWarfare Mod: http://goo.gl/BYWQty
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.