Posted February 3, 20178 yr A few days ago I asked on this forum how to make a custom particle. Now I am have trouble with it. Am I supposed to register the particle somehow? How do I spawn my custom particle in the world? Here is my code thus far: Particle code: public class ParticleSteam extends Particle { protected ParticleSteam(World world, double posX, double posY, double posZ, double speedX, double speedY, double speedZ) { super(world, posX, posY, posZ, speedX, speedY, speedZ); } @SideOnly(Side.CLIENT) public static class Factory implements IParticleFactory { public Particle createParticle(int particleID, World world, double xCoord, double yCoord, double zCoord, double xSpeed, double ySpeed, double zSpeed, int... p_178902_15_) { return new ParticleSteam(world, xCoord, yCoord, zCoord, xSpeed, ySpeed, zSpeed); } } } Edited February 3, 20178 yr by Awesome_Spider
February 3, 20178 yr Never worked with Particles, but I have seen the ParticleManager and it has a registry function. VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
February 3, 20178 yr I'm getting a crash because of a nullpointer. I've seen so many crash reports today, lol. Main class where I register the particle: public class RobotiCraft { public static final String ModId = "roboticraft"; public static final String Name = "RobotiCraft"; public static final String Version = "1.11R1.0.0"; // static final String Dependencies = "required-after:" + "owlcore" + "@[" + Version + ");"; public static Logger log = LogManager.getLogger(ModId); @Mod.Instance public static RobotiCraft instance = new RobotiCraft(); @SidedProxy(clientSide="wiseowl5.roboticraft.Proxies.ClientProxy", serverSide="wiseowl5.roboticraft.Proxies.CommonProxy") public static CommonProxy proxy; public static CreativeTabs creativeTab = new ModCreativeTab(); public static int steamParticleID = 49; @EventHandler public void preInit(FMLPreInitializationEvent e) { //Read config file, create blocks/items and register them Minecraft.getMinecraft().effectRenderer.registerParticle(steamParticleID, new ParticleSteam.Factory()); //Crash report points here ModFluids.initFluids(); ModItems.initItems(); ModBlocks.initBlocks(); GameRegistry.registerWorldGenerator(new ModWorldGen(), 3); } @EventHandler public void init(FMLInitializationEvent e) { //build data structures, add new handlers ModRecipes.initRecipes(); proxy.registerGuiHandler(); } @EventHandler public void postInit(FMLPostInitializationEvent e) { //Communicate with other mods } } Crash Report: ---- Minecraft Crash Report ---- // I blame Dinnerbone. Time: 2/2/17 6:55 PM Description: There was a severe problem during mod loading that has caused the game to fail net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from RobotiCraft (roboticraft) Caused by: java.lang.NullPointerException at wiseowl5.roboticraft.Main.RobotiCraft.preInit(RobotiCraft.java:55) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:621) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) at com.google.common.eventbus.EventBus.post(EventBus.java:275) at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:243) at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:221) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) at com.google.common.eventbus.EventBus.post(EventBus.java:275) at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:145) at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:615) at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:264) at net.minecraft.client.Minecraft.init(Minecraft.java:476) at net.minecraft.client.Minecraft.run(Minecraft.java:385) at net.minecraft.client.main.Main.main(Main.java:118) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) at GradleStart.main(GradleStart.java:26) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details: Minecraft Version: 1.11 Operating System: Windows 10 (amd64) version 10.0 Java Version: 1.8.0_60, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 254323632 bytes (242 MB) / 644874240 bytes (615 MB) up to 1415053312 bytes (1349 MB) JVM Flags: 0 total; IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0 FML: MCP 9.35 Powered by Forge 13.19.1.2189 4 mods loaded, 4 mods active States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored UCH mcp{9.19} [Minecraft Coder Pack] (minecraft.jar) UCH FML{8.0.99.99} [Forge Mod Loader] (forgeSrc-1.11-13.19.1.2189.jar) UCH forge{13.19.1.2189} [Minecraft Forge] (forgeSrc-1.11-13.19.1.2189.jar) UCE roboticraft{1.11R1.0.0} [RobotiCraft] (1.11) Loaded coremods (and transformers): GL info: ' Vendor: 'ATI Technologies Inc.' Version: '4.5.13399 Compatibility Profile Context 15.201.1151.1008' Renderer: 'AMD Radeon HD 5450' Edited February 3, 20178 yr by Awesome_Spider
February 3, 20178 yr I'm going to say that Minecraft#effectRenderer is not initialized when you are calling the registerParticle method. Try some other ones like init or postInit. VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
February 3, 20178 yr Ok, will do. On another topic, does the edit button for editing your posts show up for you anymore? I think they are changing stuff again.
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.