poopoodice Posted October 11, 2019 Share Posted October 11, 2019 49 minutes ago, Differentiation said: No, the arrow doesn't do anything if the hit entity is the shooter. I didn't find anything with flown ticks affecting hit entities. Is it possible to post your code? Quote Link to comment Share on other sites More sharing options...
Differentiation Posted October 11, 2019 Author Share Posted October 11, 2019 17 minutes ago, poopoodice said: Is it possible to post your code? public class EntityRayBullet extends EntityThrowable { private static final DataParameter<Float> GRAVITY = EntityDataManager.createKey(EntityRayBullet.class, DataSerializers.FLOAT); public ResourceLocation getTexture() { return DinocraftEntities.RAY_BULLET_TEXTURE; } public EntityRayBullet(World world) { super(world); } public EntityRayBullet(World world, EntityLivingBase shooter) { super(world, shooter); } public EntityRayBullet(EntityLivingBase shooter, float gravity) { super(shooter.world, shooter); this.dataManager.set(GRAVITY, gravity); } @Override protected void entityInit() { super.entityInit(); this.dataManager.register(GRAVITY, 0.0F); } private void kill() { if (this.thrower != null && this.thrower instanceof EntityLiving) { DinocraftEntity.getEntity(this.thrower).setShootingTick(0); } this.setDead(); } @SideOnly(Side.CLIENT) @Override public void handleStatusUpdate(byte id) { if (id == 3) { this.world.playSound(this.posX, this.posY, this.posZ, DinocraftSoundEvents.CRACK, SoundCategory.NEUTRAL, 1.0F, rand.nextFloat() + 1.0F, false); for (int i = 0; i < 16; ++i) { this.world.spawnParticle(EnumParticleTypes.ITEM_CRACK, this.posX, this.posY, this.posZ, Math.random() * 0.2 - 0.1, Math.random() * 0.25, Math.random() * 0.2 - 0.1, Item.getIdFromItem(DinocraftItems.RAY_BULLET)); } } } @Override protected void onImpact(RayTraceResult result) { switch (result.typeOfHit) { case BLOCK: { Block block = this.world.getBlockState(result.getBlockPos()).getBlock(); if (block instanceof BlockBush || block instanceof BlockReed || block instanceof BlockVine) { return; } else { if (!this.world.isRemote) { this.kill(); } this.world.spawnParticle(EnumParticleTypes.ITEM_CRACK, result.getBlockPos().getX(), result.getBlockPos().getY(), result.getBlockPos().getZ(), Math.random() * 0.2 - 0.1, Math.random() * 0.25, Math.random() * 0.2 - 0.1, Item.getIdFromItem(DinocraftItems.RAY_BULLET)); } break; } case ENTITY: { if (!this.world.isRemote && result.entityHit != null && result.entityHit instanceof EntityLivingBase && result.entityHit != this.getThrower()) { EntityLivingBase thrower = this.getThrower(); result.entityHit.attackEntityFrom(thrower != null ? thrower instanceof EntityPlayer ? DamageSource.causeThrownDamage(this, thrower) : DamageSource.causeMobDamage(thrower) : DamageSource.GENERIC, result.entityHit.isNonBoss() ? this.rand.nextFloat() + 4.5F : this.rand.nextFloat() + 0.5F); this.world.playSound(null, result.entityHit.getPosition(), DinocraftSoundEvents.HIT, SoundCategory.NEUTRAL, 1.0F, rand.nextFloat() + 1.0F); this.kill(); } else { return; } this.world.spawnParticle(EnumParticleTypes.ITEM_CRACK, result.entityHit.posX, result.entityHit.posY, result.entityHit.posZ, Math.random() * 0.2 - 0.1, Math.random() * 0.25, Math.random() * 0.2 - 0.1, Item.getIdFromItem(DinocraftItems.RAY_BULLET)); break; } default: break; } if (!this.world.isRemote) { this.world.setEntityState(this, (byte) 3); this.kill(); } } @Override public void onUpdate() { if (this.ticksExisted > 200) { this.setDead(); } if (this.isInWater()) { this.motionY -= 0.005D; this.motionX *= 0.95D; this.motionZ *= 0.95D; } super.onUpdate(); } @Override protected float getGravityVelocity() { return this.dataManager.get(GRAVITY); } } Quote Link to comment Share on other sites More sharing options...
poopoodice Posted October 11, 2019 Share Posted October 11, 2019 (edited) 8 hours ago, poopoodice said: No, I don't think so, because those variables were declared in the onUpdate method. Yeah that's what I was trying to say. Rewrite the onUpdate() and remove those things shouldn't be too hard, and there must be something you don't want in it as well. Edited October 11, 2019 by poopoodice Quote Link to comment Share on other sites More sharing options...
Differentiation Posted October 11, 2019 Author Share Posted October 11, 2019 6 hours ago, diesieben07 said: EntityThrowable does the same thing, but with 2 ticks. So I'm just not gonna call the parent method in onUpdate and copy from EntityThrowable excluding the part with the tick delay and then I'll update the thread status. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.