Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Particles [1.15]


modders2
 Share

Recommended Posts

How do I create a custom particle in 1.15?

I am using deferred registries - and I have this

public static DeferredRegister<ParticleType<?>> PARTICLE = new DeferredRegister<>(ForgeRegistries.PARTICLE_TYPES, Main.MOD_ID);
	
public static RegistryObject<ParticleType<?>> CARBON = PARTICLE.register("carbon", () -> new BasicParticleType(false));

However, I'm not sure what to do from here, if this is all I need or I need to add a directory to the actual texture file

Link to comment
Share on other sites

For particles there are 4 things:

  • Particle
  • ParticleType
  • IParticleData
  • IParticleFactory

Having BasicParticleType covers the ParticleType and IParticleData

Next you need a class that extends Particle (or TexturedParticle or SpriteTexturedParticle), in it you implement what you need (motion, texture, rendering).

 

You finally need a class (I nest it in my Particle class) that extends IParticleFactory, it'll have a makeParticle function (i think that is the name) that will take as a parameter your registered ParticleType and return an instance of the particle you created above.

 

For a simple particle BasicParticleType is fine, about 90% or more of vanilla particle use it. For more complex particles, you need a proper ParticleType and IParticleData, you can look at how vanilla does it in its redstone particle.

Link to comment
Share on other sites

38 minutes ago, Cyborgmas said:

For particles there are 4 things:

  • Particle
  • ParticleType
  • IParticleData
  • IParticleFactory

Having BasicParticleType covers the ParticleType and IParticleData

Next you need a class that extends Particle (or TexturedParticle or SpriteTexturedParticle), in it you implement what you need (motion, texture, rendering).

 

You finally need a class (I nest it in my Particle class) that extends IParticleFactory, it'll have a makeParticle function (i think that is the name) that will take as a parameter your registered ParticleType and return an instance of the particle you created above.

 

For a simple particle BasicParticleType is fine, about 90% or more of vanilla particle use it. For more complex particles, you need a proper ParticleType and IParticleData, you can look at how vanilla does it in its redstone particle.

Do you have an example I could look at maybe?

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • They are private, and that explains why your IDE can't "find" it. If you navigate to the class you should see them, and in this case they probably made it visible (public) by using access transformers.
    • I created a new sticky piston made with honey, and after figuring out how to render it properly, I encountered another issue. It cannot be pushed, and the modded piston isn't sticky when pushing vanilla pistons. Where and how can I fix this? Thanks in advance.
    • I downloaded an older version of forge and it worked! I had tried downloading older versions before but they didnt work but finally 1.18.1-forge-39.0.48 worked! sorry for the post.
    • I just downloaded forge to get mods on minecraft but it crashes when launched. I have no mods downloaded. Vers. 1.18.1 of minecraft & vers. 1.18.1-forge-39.0.53 of forge. I believe this is my log file https://pastebin.com/SZ3YAu4K pls let me know if it's incorrect or if any other info is needed. thank you in advance.
    • Here i will list my full client log with the error. JVM info: Eclipse Foundation - 16.0.2 - 16.0.2+7 java.net.preferIPv4Stack=true Found java version 16.0.2 Extracting json Considering minecraft client jar Downloading libraries Found 0 additional library directories Considering library cpw.mods:securejarhandler:1.0.1   File exists: Checksum validated. Considering library org.ow2.asm:asm:9.2   File exists: Checksum validated. Considering library org.ow2.asm:asm-commons:9.2   File exists: Checksum validated. Considering library org.ow2.asm:asm-tree:9.2   File exists: Checksum validated. Considering library org.ow2.asm:asm-util:9.2   File exists: Checksum validated. Considering library org.ow2.asm:asm-analysis:9.2   File exists: Checksum validated. Considering library net.minecraftforge:accesstransformers:8.0.4   File exists: Checksum validated. Considering library org.antlr:antlr4-runtime:4.9.1   File exists: Checksum validated. Considering library net.minecraftforge:eventbus:5.0.3   File exists: Checksum validated. Considering library net.minecraftforge:forgespi:4.0.10   File exists: Checksum validated. Considering library net.minecraftforge:coremods:5.0.1   File exists: Checksum validated. Considering library cpw.mods:modlauncher:9.1.0   File exists: Checksum validated. Considering library net.minecraftforge:unsafe:0.2.0   File exists: Checksum validated. Considering library com.electronwill.night-config:core:3.6.4   File exists: Checksum validated. Considering library com.electronwill.night-config:toml:3.6.4   File exists: Checksum validated. Considering library org.apache.maven:maven-artifact:3.6.3   File exists: Checksum validated. Considering library org.apache.commons:commons-lang3:3.12.0   File exists: Checksum validated. Considering library net.jodah:typetools:0.8.3   File exists: Checksum validated. Considering library org.apache.logging.log4j:log4j-api:2.15.0   File exists: Checksum validated. Considering library org.apache.logging.log4j:log4j-core:2.15.0   File exists: Checksum validated. Considering library org.apache.logging.log4j:log4j-slf4j18-impl:2.15.0   File exists: Checksum validated. Considering library net.minecrell:terminalconsoleappender:1.2.0   File exists: Checksum validated. Considering library org.jline:jline-reader:3.12.1   File exists: Checksum validated. Considering library org.jline:jline-terminal:3.12.1   File exists: Checksum validated. Considering library net.sf.jopt-simple:jopt-simple:5.0.4   File exists: Checksum validated. Considering library org.spongepowered:mixin:0.8.5   File exists: Checksum validated. Considering library org.openjdk.nashorn:nashorn-core:15.3   File exists: Checksum validated. Considering library com.google.guava:guava:31.0.1-jre   File exists: Checksum validated. Considering library com.google.code.gson:gson:2.8.8   File exists: Checksum validated. Considering library cpw.mods:bootstraplauncher:1.0.0   File exists: Checksum validated. Considering library net.minecraftforge:fmlloader:1.18.1-39.0.51   File exists: Checksum validated. Considering library com.github.jponge:lzma-java:1.3   File exists: Checksum validated. Considering library com.google.code.findbugs:jsr305:3.0.2   File exists: Checksum validated. Considering library com.google.code.gson:gson:2.8.7   File exists: Checksum validated. Considering library com.google.errorprone:error_prone_annotations:2.1.3   File exists: Checksum validated. Considering library com.google.guava:guava:20.0   File exists: Checksum validated. Considering library com.google.guava:guava:25.1-jre   File exists: Checksum validated. Considering library com.google.j2objc:j2objc-annotations:1.1   File exists: Checksum validated. Considering library com.nothome:javaxdelta:2.0.1   File exists: Checksum validated. Considering library com.opencsv:opencsv:4.4   File exists: Checksum validated. Considering library commons-beanutils:commons-beanutils:1.9.3   File exists: Checksum validated. Considering library commons-collections:commons-collections:3.2.2   File exists: Checksum validated. Considering library commons-io:commons-io:2.4   File exists: Checksum validated. Considering library commons-logging:commons-logging:1.2   File exists: Checksum validated. Considering library de.oceanlabs.mcp:mcp_config:1.18.1-20211210.034407@zip   File exists: Checksum validated. Considering library de.siegmar:fastcsv:2.0.0   File exists: Checksum validated. Considering library net.md-5:SpecialSource:1.10.0   File exists: Checksum validated. Considering library net.minecraftforge:ForgeAutoRenamingTool:0.1.17:all   File exists: Checksum validated. Considering library net.minecraftforge:binarypatcher:1.0.12   File exists: Checksum validated. Considering library net.minecraftforge:fmlcore:1.18.1-39.0.51   File exists: Checksum validated. Considering library net.minecraftforge:fmlloader:1.18.1-39.0.51   File exists: Checksum validated. Considering library net.minecraftforge:forge:1.18.1-39.0.51:universal   File exists: Checksum validated. Considering library net.minecraftforge:installertools:1.2.10   File exists: Checksum validated. Considering library net.minecraftforge:jarsplitter:1.1.4   File exists: Checksum validated. Considering library net.minecraftforge:javafmllanguage:1.18.1-39.0.51   File exists: Checksum validated. Considering library net.minecraftforge:mclanguage:1.18.1-39.0.51   File exists: Checksum validated. Considering library net.minecraftforge:srgutils:0.4.3   File exists: Checksum validated. Considering library net.minecraftforge:srgutils:0.4.7   File exists: Checksum validated. Considering library net.sf.jopt-simple:jopt-simple:5.0.4   File exists: Checksum validated. Considering library net.sf.jopt-simple:jopt-simple:6.0-alpha-3   File exists: Checksum validated. Considering library org.apache.commons:commons-collections4:4.2   File exists: Checksum validated. Considering library org.apache.commons:commons-lang3:3.8.1   File exists: Checksum validated. Considering library org.apache.commons:commons-text:1.3   File exists: Checksum validated. Considering library org.checkerframework:checker-qual:2.0.0   File exists: Checksum validated. Considering library org.codehaus.mojo:animal-sniffer-annotations:1.14   File exists: Checksum validated. Considering library org.ow2.asm:asm-analysis:9.1   File exists: Checksum validated. Considering library org.ow2.asm:asm-analysis:9.2   File exists: Checksum validated. Considering library org.ow2.asm:asm-commons:9.1   File exists: Checksum validated. Considering library org.ow2.asm:asm-commons:9.2   File exists: Checksum validated. Considering library org.ow2.asm:asm-tree:9.1   File exists: Checksum validated. Considering library org.ow2.asm:asm-tree:9.2   File exists: Checksum validated. Considering library org.ow2.asm:asm:9.1   File exists: Checksum validated. Considering library org.ow2.asm:asm:9.2   File exists: Checksum validated. Considering library trove:trove:1.0.2   File exists: Checksum validated. Created Temporary Directory: C:\Users\Connor\AppData\Local\Temp\forge_installer17439075072338868733   Extracting: /data/client.lzma Building Processors ===============================================================================   MainClass: net.minecraftforge.installertools.ConsoleTool   Classpath:     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\net\minecraftforge\installertools\1.2.10\installertools-1.2.10.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\net\md-5\SpecialSource\1.10.0\SpecialSource-1.10.0.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\net\sf\jopt-simple\jopt-simple\5.0.4\jopt-simple-5.0.4.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\com\google\code\gson\gson\2.8.7\gson-2.8.7.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\de\siegmar\fastcsv\2.0.0\fastcsv-2.0.0.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\net\minecraftforge\srgutils\0.4.3\srgutils-0.4.3.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-commons\9.1\asm-commons-9.1.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\com\google\guava\guava\20.0\guava-20.0.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\com\opencsv\opencsv\4.4\opencsv-4.4.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-analysis\9.1\asm-analysis-9.1.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-tree\9.1\asm-tree-9.1.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm\9.1\asm-9.1.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-text\1.3\commons-text-1.3.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-lang3\3.8.1\commons-lang3-3.8.1.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\commons-beanutils\commons-beanutils\1.9.3\commons-beanutils-1.9.3.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-collections4\4.2\commons-collections4-4.2.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\commons-logging\commons-logging\1.2\commons-logging-1.2.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar   Args: --task, MCP_DATA, --input, C:\Users\Connor\AppData\Roaming\.minecraft\libraries\de\oceanlabs\mcp\mcp_config\1.18.1-20211210.034407\mcp_config-1.18.1-20211210.034407.zip, --output, C:\Users\Connor\AppData\Roaming\.minecraft\libraries\de\oceanlabs\mcp\mcp_config\1.18.1-20211210.034407\mcp_config-1.18.1-20211210.034407-mappings.txt, --key, mappings Task: MCP_DATA Input:  C:\Users\Connor\AppData\Roaming\.minecraft\libraries\de\oceanlabs\mcp\mcp_config\1.18.1-20211210.034407\mcp_config-1.18.1-20211210.034407.zip Output: C:\Users\Connor\AppData\Roaming\.minecraft\libraries\de\oceanlabs\mcp\mcp_config\1.18.1-20211210.034407\mcp_config-1.18.1-20211210.034407-mappings.txt Key:    mappings Extracting: config/joined.tsrg ===============================================================================   MainClass: net.minecraftforge.installertools.ConsoleTool   Classpath:     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\net\minecraftforge\installertools\1.2.10\installertools-1.2.10.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\net\md-5\SpecialSource\1.10.0\SpecialSource-1.10.0.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\net\sf\jopt-simple\jopt-simple\5.0.4\jopt-simple-5.0.4.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\com\google\code\gson\gson\2.8.7\gson-2.8.7.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\de\siegmar\fastcsv\2.0.0\fastcsv-2.0.0.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\net\minecraftforge\srgutils\0.4.3\srgutils-0.4.3.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-commons\9.1\asm-commons-9.1.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\com\google\guava\guava\20.0\guava-20.0.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\com\opencsv\opencsv\4.4\opencsv-4.4.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-analysis\9.1\asm-analysis-9.1.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-tree\9.1\asm-tree-9.1.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm\9.1\asm-9.1.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-text\1.3\commons-text-1.3.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-lang3\3.8.1\commons-lang3-3.8.1.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\commons-beanutils\commons-beanutils\1.9.3\commons-beanutils-1.9.3.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-collections4\4.2\commons-collections4-4.2.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\commons-logging\commons-logging\1.2\commons-logging-1.2.jar     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar   Args: --task, DOWNLOAD_MOJMAPS, --version, 1.18.1, --side, client, --output, C:\Users\Connor\AppData\Roaming\.minecraft\libraries\net\minecraft\client\1.18.1-20211210.034407\client-1.18.1-20211210.034407-mappings.txt Task: DOWNLOAD_MOJMAPS MC Version: 1.18.1 Side:       client Output:     C:\Users\Connor\AppData\Roaming\.minecraft\libraries\net\minecraft\client\1.18.1-20211210.034407\client-1.18.1-20211210.034407-mappings.txt javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target     at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)     at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:369)     at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:312)     at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:307)     at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:654)     at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:473)     at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:369)     at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396)     at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:480)     at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:458)     at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:199)     at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)     at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1506)     at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1416)     at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:451)     at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:422)     at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:574)     at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:183)     at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1653)     at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1577)     at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224)     at java.base/java.net.URL.openStream(URL.java:1192)     at net.minecraftforge.installertools.DownloadMojmaps.process(DownloadMojmaps.java:65)     at net.minecraftforge.installertools.ConsoleTool.main(ConsoleTool.java:55)     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.base/java.lang.reflect.Method.invoke(Method.java:567)     at net.minecraftforge.installer.actions.PostProcessors.process(PostProcessors.java:226)     at net.minecraftforge.installer.actions.ClientInstall.run(ClientInstall.java:144)     at net.minecraftforge.installer.InstallerPanel.run(InstallerPanel.java:423)     at net.minecraftforge.installer.SimpleInstaller.launchGui(SimpleInstaller.java:175)     at net.minecraftforge.installer.SimpleInstaller.main(SimpleInstaller.java:147) Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target     at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:439)     at java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:306)     at java.base/sun.security.validator.Validator.validate(Validator.java:264)     at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)     at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132)     at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:638)     ... 28 more Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target     at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)     at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)     at java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297)     at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:434)     ... 33 more Failed to run processor: javax.net.ssl.SSLHandshakeException:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target See log for more details.  
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.