Jump to content

Duendilandia

Members
  • Posts

    18
  • Joined

  • Last visited

Everything posted by Duendilandia

  1. I use head and the error still: public custom_model(float size) { super(size); texWidth = 32; texHeight = 32; head = new ModelRenderer(this); head.setPos(0.0F, 24.0F, 0.0F); head.texOffs(0, 0).addBox(-4.5F, -32.5F, -6.0F, 9.0F, 9.0F, 2.0F, 0.0F, false); head.texOffs(0, 11).addBox(-1.5F, -27.5F, -7.0F, 3.0F, 5.0F, 3.0F, 0.0F, false); } @Override public void renderToBuffer(MatrixStack matrixStack, IVertexBuilder buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha){ super.renderToBuffer(matrixStack, buffer, packedLight, packedOverlay, red, green, blue, alpha); } public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) { modelRenderer.xRot = x; modelRenderer.yRot = y; modelRenderer.zRot = z; }
  2. If I change the visibility like this it doesnt render anything: @Override public void renderToBuffer(MatrixStack matrixStack, IVertexBuilder buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha){ this.hat.visible = false; this.head.visible = false; this.bb_main.visible = true; super.renderToBuffer(matrixStack, buffer, packedLight, packedOverlay, red, green, blue, alpha); } But if I render like this it works: @Override public void renderToBuffer(MatrixStack matrixStack, IVertexBuilder buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha){ bb_main.render(matrixStack, buffer, packedLight, packedOverlay); } (bb_main is the name of my model) Why the second one works and the first one doesnt work?
  3. I try to change the visibility os the default head but it doesnt work: this.head = new ModelRenderer(this); head.visible = false;
  4. 1. How can I disable the default parts? I need to set them to empty renderers, but I dont know how I have to do it. 2. I read that the texture layout doesnt have to be in the same space as the texture of the model created, is this true?
  5. I have update my classes. ItemsRegister class: public static final RegistryObject<Item> ARMOR = ITEMS.register("armor", () -> new ArmorPiece(ArmorTiers.ARMOR01, EquipmentSlotType.HEAD, (new Item.Properties()))); Armor materials class: public enum ArmorTiers implements IArmorMaterial{ ARMOR01("armor01", 37, new int[]{3, 6, 8, 3}, 15, SoundEvents.ARMOR_EQUIP_NETHERITE, 3.0F, 0.1F, () -> { return Ingredient.of(Items.NETHERITE_INGOT); }); private static final int[] HEALTH_PER_SLOT = new int[]{13, 15, 16, 11}; private final String name; private final int durabilityMultiplier; private final int[] slotProtections; private final int enchantmentValue; private final SoundEvent sound; private final float toughness; private final float knockbackResistance; private final LazyValue<Ingredient> repairIngredient; ArmorTiers(String name, int durabilityMultiplier, int[] slotProtections, int enchantmentValue, SoundEvent sound, float toughness, float knockbackResistance, Supplier<Ingredient> repairIngredient) { this.name = name; this.durabilityMultiplier = durabilityMultiplier; this.slotProtections = slotProtections; this.enchantmentValue = enchantmentValue; this.sound = sound; this.toughness = toughness; this.knockbackResistance = knockbackResistance; this.repairIngredient = new LazyValue<>(repairIngredient); } public int getDurabilityForSlot(EquipmentSlotType slot) { return HEALTH_PER_SLOT[slot.getIndex()] * this.durabilityMultiplier; } public int getDefenseForSlot(EquipmentSlotType slot) { return this.slotProtections[slot.getIndex()]; } public int getEnchantmentValue() { return this.enchantmentValue; } public SoundEvent getEquipSound() { return this.sound; } public Ingredient getRepairIngredient() { return this.repairIngredient.get(); } @OnlyIn(Dist.CLIENT) public String getName() { return this.name; } public float getToughness() { return this.toughness; } public float getKnockbackResistance() { return this.knockbackResistance; } } ArmorItem class: public class ArmorPiece extends ArmorItem{ public ArmorPiece(IArmorMaterial p_i48534_1_, EquipmentSlotType p_i48534_2_, Properties p_i48534_3_) { super(p_i48534_1_, p_i48534_2_, p_i48534_3_); } @Override public BipedModel getArmorModel(LivingEntity entity, ItemStack stack, EquipmentSlotType slot, BipedModel defaultModel) { custom_model model = new custom_model(1.0F); return model; } @Override public String getArmorTexture(ItemStack stack, Entity entity, EquipmentSlotType slot, String type) { return "mymod:textures/entity/magic_hat.png"; } } Model class: public class custom_model extends BipedModel{ private ModelRenderer bb_main; public custom_model(float size) { super(size); texWidth = 64; texHeight = 64; bb_main = new ModelRenderer(this); bb_main.setPos(0.0F, 24.0F, 0.0F); bb_main.texOffs(0, 0).addBox(-8.0F, -16.0F, -8.0F, 16.0F, 16.0F, 16.0F, 0.0F, false); this.head.addChild(bb_main); } @Override public void renderToBuffer(MatrixStack matrixStack, IVertexBuilder buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha){ super.renderToBuffer(matrixStack, buffer, packedLight, packedOverlay, red, green, blue, alpha); } public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) { modelRenderer.xRot = x; modelRenderer.yRot = y; modelRenderer.zRot = z; } } I only want to render a 16x16x16 box, but the vanilla helmet renders too. I only want to render the cube which is on the ground, but it renders too the cube of the vanilla helmet. Can anyone help me??
  6. I am trying to understand custom armor models, I have create a simple model, but when I render it is very strange. https://pastebin.com/5dAwxneA As you can see the diamon helmet renders too, but I only want to render my custom model
  7. https://github.com/Duendilandia/TestMod
  8. I have change the register class: import net.minecraft.client.Minecraft; import net.minecraft.particles.BasicParticleType; import net.minecraft.particles.ParticleType; import net.minecraftforge.client.event.ParticleFactoryRegisterEvent; import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.RegistryObject; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @Mod.EventBusSubscriber(modid = Main.MODID, bus = Bus.MOD, value = Dist.CLIENT) public class ParticlesRegister { public static final DeferredRegister<ParticleType<?>> PARTICLE_TYPES = DeferredRegister.create(ForgeRegistries.PARTICLE_TYPES, Main.MODID); public static final RegistryObject<ParticleType<BasicParticleType>> FLY_PARTICLE = PARTICLE_TYPES.register("fly_particle", () -> new BasicParticleType(true)); @SubscribeEvent public void registerFactories(ParticleFactoryRegisterEvent evt) { Minecraft.getInstance().particleEngine.register(ParticlesRegister.FLY_PARTICLE.get(), FlyParticle.Factory::new); } } But I have the same error: Caused by: java.lang.IllegalStateException: Redundant texture list for particle mymod:fly_particle
  9. but is this necesary to solve my problem? Thanks, I will change it
  10. Here it is: https://github.com/Duendilandia/MyMod/tree/main/src/main
  11. I tried like this: Main class: public Main() { FMLJavaModLoadingContext.get().getModEventBus().addListener(this::registerFactories); } @SubscribeEvent public void registerFactories(ParticleFactoryRegisterEvent evt) { Minecraft.getInstance().particleEngine.register(ParticlesRegister.FLY_PARTICLE.get(), FlyParticle.Factory::new); } ParticlesRegister class: public class ParticlesRegister { public static final DeferredRegister<ParticleType<?>> PARTICLE_TYPES = DeferredRegister.create(ForgeRegistries.PARTICLE_TYPES, Main.MODID); public static final RegistryObject<ParticleType<BasicParticleType>> FLY_PARTICLE = PARTICLE_TYPES.register("fly_particle", () -> new BasicParticleType(true)); } Now the game run, but it crashe when I spawn the particle: Reported exception thrown! net.minecraft.crash.ReportedException: Rendering Particle at net.minecraft.client.particle.ParticleManager.renderParticles(ParticleManager.java:355) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.renderer.WorldRenderer.renderLevel(WorldRenderer.java:1149) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.renderer.GameRenderer.renderLevel(GameRenderer.java:608) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.renderer.GameRenderer.render(GameRenderer.java:425) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.runTick(Minecraft.java:976) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.run(Minecraft.java:607) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.main.Main.main(Main.java:184) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_241] {} at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_241] {} at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_241] {} at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:52) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.9.jar:?] {} at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:105) [forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {} Caused by: java.lang.NullPointerException at net.minecraft.client.particle.SpriteTexturedParticle.getU0(SpriteTexturedParticle.java:25) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.particle.TexturedParticle.render(TexturedParticle.java:51) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.particle.ParticleManager.renderParticles(ParticleManager.java:349) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} ... 17 more [12:03:51] [Render thread/INFO] [STDOUT/]: [net.minecraft.util.registry.Bootstrap:realStdoutPrintln:123]: ---- Minecraft Crash Report ---- // This doesn't make any sense! Time: 8/06/21 12:03 Description: Rendering Particle java.lang.NullPointerException: Rendering Particle at net.minecraft.client.particle.SpriteTexturedParticle.getU0(SpriteTexturedParticle.java:25) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.particle.TexturedParticle.render(TexturedParticle.java:51) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.particle.ParticleManager.renderParticles(ParticleManager.java:349) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.renderer.WorldRenderer.renderLevel(WorldRenderer.java:1149) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.renderer.GameRenderer.renderLevel(GameRenderer.java:608) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.renderer.GameRenderer.render(GameRenderer.java:425) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.runTick(Minecraft.java:976) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.run(Minecraft.java:607) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.main.Main.main(Main.java:184) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_241] {} at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_241] {} at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_241] {} at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:52) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.9.jar:?] {} at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:105) [forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {} Sorry for my ignorance
  12. I don´t undertand what you mean. I think I can delete this line: @EventBusSubscriber(modid = Main.MODID, bus = Bus.FORGE, value = {Dist.CLIENT}) if I add this one on the Main class: MinecraftForge.EVENT_BUS.register(new ParticlesRegister());
  13. @SubscribeEvent public static void registerFactories(ParticleFactoryRegisterEvent evt) { Minecraft.getInstance().particleEngine.register(ParticlesRegister.FLY_PARTICLE.get(), FlyParticle.Factory::new); } But I get the same error
  14. I have create some particles, but when I run the game I always get the same error: Reported exception thrown! net.minecraft.crash.ReportedException: Rendering overlay at net.minecraft.client.renderer.GameRenderer.render(GameRenderer.java:488) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.runTick(Minecraft.java:976) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.run(Minecraft.java:607) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.main.Main.main(Main.java:184) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_241] {} at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_241] {} at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_241] {} at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:52) ~[forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.9.jar:?] {} at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:105) [forge-1.16.5-36.1.0_mapped_official_1.16.5-recomp.jar:?] {} Caused by: java.lang.IllegalStateException: Redundant texture list for particle mymod:fly_particle at net.minecraft.client.particle.ParticleManager.loadParticleDescription(ParticleManager.java:217) ~[forge:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.particle.ParticleManager.lambda$null$0(ParticleManager.java:169) ~[forge:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at java.util.concurrent.CompletableFuture$AsyncRun.run(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.CompletableFuture$AsyncRun.exec(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) ~[?:1.8.0_241] {} [10:06:15] [Render thread/INFO] [STDOUT/]: [net.minecraft.util.registry.Bootstrap:realStdoutPrintln:123]: ---- Minecraft Crash Report ---- // Hi. I'm Minecraft, and I'm a crashaholic. Time: 8/06/21 10:06 Description: Rendering overlay java.lang.IllegalStateException: Redundant texture list for particle mymod:fly_particle at net.minecraft.client.particle.ParticleManager.loadParticleDescription(ParticleManager.java:217) ~[forge:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.particle.ParticleManager.lambda$null$0(ParticleManager.java:169) ~[forge:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at java.util.concurrent.CompletableFuture$AsyncRun.run(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.CompletableFuture$AsyncRun.exec(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) ~[?:1.8.0_241] {} Main class: ParticlesRegister.PARTICLE_TYPES.register(FMLJavaModLoadingContext.get().getModEventBus()); FlyParticle class: import net.minecraft.client.particle.IAnimatedSprite; import net.minecraft.client.particle.IParticleFactory; import net.minecraft.client.particle.IParticleRenderType; import net.minecraft.client.particle.Particle; import net.minecraft.client.particle.SpriteTexturedParticle; import net.minecraft.client.world.ClientWorld; import net.minecraft.particles.BasicParticleType; import net.minecraft.particles.ParticleTypes; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; public class FlyParticle extends SpriteTexturedParticle{ public FlyParticle(ClientWorld world, double xCoord, double yCoord, double zCoord, double xSpeed, double ySpeed, double zSpeed, IAnimatedSprite spriteWithAge) { super(world, xCoord, yCoord, zCoord, xSpeed, ySpeed, zSpeed); this.lifetime = (int)(16.0D / (Math.random() * 0.8D + 0.2D)); } @Override public void tick() { this.xo = this.x; this.yo = this.y; this.zo = this.z; } @Override public IParticleRenderType getRenderType() { return IParticleRenderType.PARTICLE_SHEET_OPAQUE; } public static class Factory implements IParticleFactory<BasicParticleType> { private final IAnimatedSprite sprite; public Factory(IAnimatedSprite spriteIn) { this.sprite = spriteIn; } @Override public Particle createParticle(BasicParticleType typeIn, ClientWorld worldIn, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { FlyParticle particle = new FlyParticle(worldIn, x, y, z, xSpeed, ySpeed, zSpeed, this.sprite); return particle; } } } ParticlesRegister class: import com.Duendilandia.myMod.Main; import com.Duendilandia.myMod.common.particles.FlyParticle; import net.minecraft.client.Minecraft; import net.minecraft.particles.BasicParticleType; import net.minecraft.particles.ParticleType; import net.minecraftforge.client.event.ParticleFactoryRegisterEvent; import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.RegistryObject; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @EventBusSubscriber(modid = Main.MODID, bus = Bus.FORGE, value = {Dist.CLIENT}) public class ParticlesRegister { public static final DeferredRegister<ParticleType<?>> PARTICLE_TYPES = DeferredRegister.create(ForgeRegistries.PARTICLE_TYPES, Main.MODID); public static final RegistryObject<ParticleType<BasicParticleType>> FLY_PARTICLE = PARTICLE_TYPES.register("fly_particle", () -> new BasicParticleType(true)); @SubscribeEvent public void registerFactories(ParticleFactoryRegisterEvent evt) { Minecraft.getInstance().particleEngine.register(ParticlesRegister.FLY_PARTICLE.get(), FlyParticle.Factory::new); } } fly_particle.json {"textures":["mymod:fly_particle"]} How can I solve it?
  15. Also the alpha is really transparent. I want the same alpha as water. In this photo my alpha is 192 and the RenderType is translucentNoCrumbling(). How can I get the same alpha?
  16. I have create a quad with TER, it has the texture of water_still from vanilla Minecraft. The problem is that the texture is grey and I want to add it some color. I know how to do it, but when I add some color (red for example, whis is rgb(255, 0, 0)) it looks really strange. I think the problem is with the alpha. This is the quad code: private void addVertex(Matrix4f matrix, Matrix3f matrixNormal, IVertexBuilder vertexBuilder, float red, float green, float blue, float alpha, int combinedOverlay, int combinedLight) { vertexBuilder.vertex(matrix, 0.8125F, 0.9375F, 0.1875F).color(red, green, blue, alpha).uv(0.1875F, 0.005859375F).overlayCoords(combinedOverlay).uv2(combinedLight).normal(matrixNormal, 0.0F, 1.0F, 0.0F).endVertex(); vertexBuilder.vertex(matrix, 0.1875F, 0.9375F, 0.1875F).color(red, green, blue, alpha).uv(0.8125F, 0.005859375F).overlayCoords(combinedOverlay).uv2(combinedLight).normal(matrixNormal, 0.0F, 1.0F, 0.0F).endVertex(); vertexBuilder.vertex(matrix, 0.1875F, 0.9375F, 0.8125F).color(red, green, blue, alpha).uv(0.8125F, 0.025390625F).overlayCoords(combinedOverlay).uv2(combinedLight).normal(matrixNormal, 0.0F, 1.0F, 0.0F).endVertex(); vertexBuilder.vertex(matrix, 0.8125F, 0.9375F, 0.8125F).color(red, green, blue, alpha).uv(0.1875F, 0.025390625F).overlayCoords(combinedOverlay).uv2(combinedLight).normal(matrixNormal, 0.0F, 1.0F, 0.0F).endVertex(); } and with this line I call it in the render function: this.addVertex(matrix4f, matrixNormal, vertexBuilder, 255, 0, 0, 1, combinedOverlay, combinedLight); With this code, I think, the quad must be red, but with an alpha, but as yo can see isn´t red, it is back If I change the alpha to 255, the error still: also is I change the alpha to 0 it looks like if it is 255. Thank you in advance
×
×
  • Create New...

Important Information

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