Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

littlemonge

Members
  • Joined

  • Last visited

  1. The entity i am trying to render it just an entity like ItemEntity, it is an entity that is created when player drops an item. There is not a way to do it easy?
  2. Can you bring me an example for method 1? Thanks a lot for answering
  3. Here is my render Class : package littlemonge.rpgcraft.render; import com.mojang.blaze3d.matrix.MatrixStack; import littlemonge.rpgcraft.entity.DiamoniteEntity; import littlemonge.rpgcraft.utils.ResourceLocationReference; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.Vector3f; import net.minecraft.client.renderer.entity.EntityRenderer; import net.minecraft.client.renderer.entity.EntityRendererManager; import net.minecraft.util.ResourceLocation; public class DiamoniteEntityRenderer extends EntityRenderer<DiamoniteEntity> { public DiamoniteEntityRenderer(EntityRendererManager renderManagerIn) { super(renderManagerIn); } @Override public ResourceLocation getEntityTexture(DiamoniteEntity entity) { return new ResourceLocation(ResourceLocationReference.DIAMONITE_MODEL); } @Override public void render(DiamoniteEntity entityIn, float entityYaw, float partialTicks, MatrixStack matrixStackIn, IRenderTypeBuffer bufferIn, int packedLightIn) { matrixStackIn.push(); matrixStackIn.scale(1f, 1f, 1f); matrixStackIn.translate(0.5d, 0.5D, 0.5D); matrixStackIn.rotate(Vector3f.YP.rotationDegrees(360)); matrixStackIn.pop(); super.render(entityIn, entityYaw, partialTicks, matrixStackIn, bufferIn, packedLightIn); } } where is the mistake¿?
  4. Im not having any exception.
  5. I did what you says but i can only see the hitboxes. Could it be a problem with the path to the "png" with the texture?
  6. ok no matter, I almost have it, the problem now is that the entity is invisible.
  7. have I to impl "IRenderFactory"?
  8. Here is the renderer : package littlemonge.rpgcraft.render; import littlemonge.rpgcraft.entity.DiamoniteEntity; import littlemonge.rpgcraft.utils.ResourceLocationReference; import net.minecraft.client.renderer.culling.ClippingHelperImpl; import net.minecraft.client.renderer.entity.EntityRenderer; import net.minecraft.client.renderer.entity.EntityRendererManager; import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; public class DiamoniteEntityRenderer<T extends Entity> extends EntityRenderer<DiamoniteEntity> { public DiamoniteEntityRenderer(EntityRendererManager renderManager) { super(renderManager); } @Override public ResourceLocation getEntityTexture(DiamoniteEntity entity) { return new ResourceLocation(ResourceLocationReference.DIAMONITE_MODEL); } @Override public boolean shouldRender(DiamoniteEntity livingEntityIn, ClippingHelperImpl camera, double camX, double camY, double camZ) { return false; } } And this line its not working for me.
  9. Could you send an example of a Renderer please?
  10. Yes, but I want to add some logic to ItemEntity, that's why I created the class. The class "DiamoniteEntity" its the custom ItemEntity for my custom DiamoniteItem
  11. Can't use minecraft basic renderer? The entity is very simple, it is just a custom entity for an object when you throw it on the ground.
  12. Hi , Im having some troubles working with entities... Here is my custom entity class : package littlemonge.rpgcraft.entity; import littlemonge.rpgcraft.entity.base.RpgCraftBaseEntity; import littlemonge.rpgcraft.item.DiamoniteItem; import littlemonge.rpgcraft.utils.Utils; import net.minecraft.block.Blocks; import net.minecraft.entity.EntityType; import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class DiamoniteEntity extends RpgCraftBaseEntity { public static EntityType<DiamoniteEntity> ENTITY_TYPE; private int driedProgress = 0; public DiamoniteEntity(EntityType<? extends DiamoniteEntity> type, World world) { super(type, world); } public DiamoniteEntity(final World w, final double x, final double y, final double z, final ItemStack is) { super(ENTITY_TYPE, w, x, y, z, is); this.setNoDespawn(); } @Override public void tick() { super.tick(); final ItemStack itemStack = this.getItem(); final DiamoniteItem diamonite = (DiamoniteItem) itemStack.getItem(); if(this.onGround && (Utils.findBlockUnderEntity(this).equals(Blocks.MAGMA_BLOCK))){ if(Utils.isClient()) { driedProgress++; }else { driedProgress += 0.5; } } if(driedProgress % 10 == 0 ) { ItemStack newItem = diamonite.triggerDry(itemStack.copy()); this.setItem(newItem); } } } Here is where I register the entity : package littlemonge.rpgcraft.init; import littlemonge.rpgcraft.entity.DiamoniteEntity; import littlemonge.rpgcraft.utils.Reference; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityClassification; import net.minecraft.entity.EntityType; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.registries.ObjectHolder; @Mod.EventBusSubscriber(modid = Reference.MODID, bus = Mod.EventBusSubscriber.Bus.MOD) @ObjectHolder(Reference.MODID) public final class ModEntities { @SubscribeEvent public static void registerEntitites(RegistryEvent.Register<EntityType<?>> event) { init(); event.getRegistry().registerAll(DiamoniteEntity.ENTITY_TYPE); } private static void init() { DiamoniteEntity.ENTITY_TYPE = createEntityType(EntityType.Builder .<DiamoniteEntity>create(DiamoniteEntity::new, EntityClassification.MISC).size(0.25F, 0.25F) .setTrackingRange(64).setUpdateInterval(20).setShouldReceiveVelocityUpdates(false), Reference.DIAMONITE_ENTITY); } @SuppressWarnings("rawtypes") public static <T extends Entity> EntityType<T> createEntityType(EntityType.Builder builder, String name) { EntityType<T> type = (EntityType<T>) builder.build(Reference.MODID + '.' + name).setRegistryName(name); return type; } } And here its the crash : java.lang.NullPointerException: null at net.minecraft.client.renderer.entity.EntityRendererManager.shouldRender(EntityRendererManager.java:232) ~[forge-1.15.2-31.0.14_mapped_snapshot_20200131-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.renderer.WorldRenderer.getViewVector(WorldRenderer.java:940) ~[forge-1.15.2-31.0.14_mapped_snapshot_20200131-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.renderer.GameRenderer.renderWorld(GameRenderer.java:612) ~[forge-1.15.2-31.0.14_mapped_snapshot_20200131-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.renderer.GameRenderer.updateCameraAndRender(GameRenderer.java:434) ~[forge-1.15.2-31.0.14_mapped_snapshot_20200131-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:957) ~[forge-1.15.2-31.0.14_mapped_snapshot_20200131-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.run(Minecraft.java:554) ~[forge-1.15.2-31.0.14_mapped_snapshot_20200131-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.main.Main.main(Main.java:177) ~[forge-1.15.2-31.0.14_mapped_snapshot_20200131-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_231] {} at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_231] {} at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_231] {} at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_231] {} at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:55) ~[forge-1.15.2-31.0.14_mapped_snapshot_20200131-1.15.1-recomp.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-5.0.0-milestone.4.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-5.0.0-milestone.4.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-5.0.0-milestone.4.jar:?] {} at cpw.mods.modlauncher.Launcher.run(Launcher.java:81) [modlauncher-5.0.0-milestone.4.jar:?] {} at cpw.mods.modlauncher.Launcher.main(Launcher.java:65) [modlauncher-5.0.0-milestone.4.jar:?] {} at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:102) [forge-1.15.2-31.0.14_mapped_snapshot_20200131-1.15.1-recomp.jar:?] Can somebody please help me to find why im having a nullpointer? Thanks in advance.
  13. Okey i change it thank you!
  14. My enchantment its a tool repairing enchantment like mending but instead of working with experience it works with time ,every 30 sec (1200 minecraft tick),it repairs a tool use enchanted with it. So i done this on my tool class : @Override public void inventoryTick(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) { if (EnchantmentHelper.getEnchantments(stack).get(ModEnchantments.evil_mending) != null) { if (this.ticks == REPAIR_TIME_IN_SECONDS * TICKS_PER_SECOND) { this.ticks = 0; if (stack.isDamaged()) { stack.setDamage(stack.getDamage() - 1); } } else { ticks++; } } super.inventoryTick(stack, worldIn, entityIn, itemSlot, isSelected); }
  15. Okey , so in my case I can made a method on Enchantment subclass and call it from tool class on every tick I want?

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.