Posted January 26, 20205 yr I am making a custom fireball projectile entity. Everything seems to be working except I don't see the projectile in flight - it is not being rendered. It seems to be following the correct flight path and the explosion occurs at the correct time and place, but I don't see the projectile. @EventBusSubscriber(modid = GearProgression.MOD_ID, bus = EventBusSubscriber.Bus.MOD) public class ClientModEventSubscriber { // Directly reference a log4j logger. private static final Logger LOGGER = LogManager.getLogger(); @SubscribeEvent public static void onFMLClientSetupEvent(final FMLClientSetupEvent event) { RenderingRegistry.registerEntityRenderingHandler(RubyFireballEntity.class, new IRenderFactory<RubyFireballEntity>() { @Override public EntityRenderer<? super RubyFireballEntity> createRenderFor(EntityRendererManager manager) { return new SpriteRenderer<RubyFireballEntity>(manager, Minecraft.getInstance().getItemRenderer()); } }); LOGGER.debug("Registered Renderers"); } } public class GearEntityTypes { public static final DeferredRegister<EntityType<?>> ENTITIES = new DeferredRegister<>(ForgeRegistries.ENTITIES, GearProgression.MOD_ID); public static final RegistryObject<EntityType<RubyFireballEntity>> RUBY_FIREBALL = ENTITIES.register("ruby_fireball", () -> EntityType.Builder.create(RubyFireballEntity::new, EntityClassification.MISC).size(0.6F, 0.6F).build("ruby_fireball")); } public class RubyFireballEntity extends AbstractFireballEntity { public RubyFireballEntity(EntityType<? extends RubyFireballEntity> type, World worldIn) { super(type, worldIn); } public void shoot(LivingEntity shooter, double accelX, double accelY, double accelZ) { this.shootingEntity = shooter; this.setLocationAndAngles(shooter.posX, shooter.posY, shooter.posZ, shooter.rotationYaw, shooter.rotationPitch); this.setPosition(this.posX, this.posY, this.posZ); this.setMotion(Vec3d.ZERO); double d0 = (double)MathHelper.sqrt(accelX * accelX + accelY * accelY + accelZ * accelZ); this.accelerationX = accelX / d0 * 0.1D; this.accelerationY = accelY / d0 * 0.1D; this.accelerationZ = accelZ / d0 * 0.1D; } protected void onImpact(RayTraceResult result) { if (!this.world.isRemote) { if (result.getType() == RayTraceResult.Type.ENTITY) { Entity entity = ((EntityRayTraceResult)result).getEntity(); if (!entity.isImmuneToFire()) { int i = entity.func_223314_ad(); entity.setFire(5); boolean flag = entity.attackEntityFrom(DamageSource.causeFireballDamage(this, this.shootingEntity), 6.0F); if (flag) { this.applyEnchantments(this.shootingEntity, entity); } else { entity.func_223308_g(i); } } } this.world.createExplosion((Entity)null, this.posX, this.posY, this.posZ, 1.0F, false, Explosion.Mode.NONE); this.remove(); } } public boolean canBeCollidedWith() { return false; } public boolean attackEntityFrom(DamageSource source, float amount) { return false; } }
January 27, 20205 yr 9 hours ago, rcrosbyti said: RenderingRegistry.registerEntityRenderingHandler(RubyFireballEntity.class, new IRenderFactory<RubyFireballEntity>() { @Override public EntityRenderer<? super RubyFireballEntity> createRenderFor(EntityRendererManager manager) { return new SpriteRenderer<RubyFireballEntity>(manager, Minecraft.getInstance().getItemRenderer()); } }); You can use a lambda for this Also, use @Override https://stackoverflow.com/questions/94361/when-do-you-use-javas-override-annotation-and-why Your subscription looks right, place a breakpoint to make sure it gets called though. About Me Spoiler My Discord - Cadiboo#8887 My Website - Cadiboo.github.io My Mods - Cadiboo.github.io/projects My Tutorials - Cadiboo.github.io/tutorials Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support. When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible. Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)
January 27, 20205 yr Author I was not handling the spawn correctly by communicating with the client side. This fixed it for me: https://www.minecraftforge.net/forum/topic/72657-solved-1143-entity-renderer-not-rendering/page/2/
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.