Jump to content

Recommended Posts

Posted

I've run into a problem creating a custom fluid, and since there are no 1.8.9 tutorials (that I know of... if there are, please point me there) for doing that, I have no recourse but to post here. I followed the 1.7.2 tutorial for it (this one), but the log says that there should be model files for my fluid. I have no point of reference in doing this because vanilla apparently has no model jsons for lava or water (at least, that I can find).

 

Anyway, what's happening is that the fluid flows just fine, it just doesn't have the proper texture in either the inventory or in the world. If I should post code, I'll be glad to, but I'm not sure it's necessary since I followed the aforementioned 1.7.2 tutorial as closely as I could.

 

Any assistance would be greatly appreciated.

Posted

I don't know of any tutorials, but I do have working example code. You can see my fluid creation code here, my model registration code here and my blockstates file here.

 

ModFluids.registerFluids

is called in preInit from

TestMod3

(the class with the

@Mod

annotation),

ModModelManager.registerAllModels

is called in preInit from the client proxy (after everything else has been registered).

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Posted

That mostly worked, but I can't get the bucket to work. It also broke the vanilla buckets when I added my bucket. FluidRegistry.addBucketForFluid() didn't work(as in, it doesn't exist in FluidRegistry). I had to use FluidContainerRegistry.registerFluidContainer().

 

For some reason it (adding a fluid the way you did it) also conflicts with another mod I'm using, the xray mod by AmbientOcclusion. I really have no clue why it would conflict, but I guess that's because I can't see the source for that mod.

 

EDIT: The liquid also flows weirdly with water. I wanted it to make cobblestone when it hits water in any way (like lava hitting water) and another block when it hits lava (in any way).

Posted

If the method doesn't exist, update Forge.

 

If adding fluids using Forge's API conflicts with a mod, that mod is probably doing some weird stuff to the Minecraft code that's breaking Forge. I can't really provide support for closed-source JAR mods/coremods like OptiFine or this Xray mod.

 

I haven't tried to add mixing effects with Water/Lava, but you can probably do it in a similar fashion to

BlockLiquid#checkForMixing

(called from

Block#onNeighborBlockChange

).

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Posted

Updating Forge fixed that method not existing. It did not, however, fix the bucket problem. When I right click the bucket I registered as an item on the ground, nothing except it 'bouncing' happens (the thing that happens when you would normally place a block, but happens with them if you're occupying the location of the block you're trying to place).

 

I tried putting the mixing methods in ModFluids and making that class extend BlockLiquid, but that didn't work. Should those methods go somewhere other than in ModFluids?

Posted

Updating Forge fixed that method not existing. It did not, however, fix the bucket problem. When I right click the bucket I registered as an item on the ground, nothing except it 'bouncing' happens (the thing that happens when you would normally place a block, but happens with them if you're occupying the location of the block you're trying to place).

 

My code works, so I'm not sure what you've done wrong.

 

Upload your fluid-related code on Gist/Pastebin (with syntax highlighting) or your whole mod on GitHub/BitBucket and link it here.

 

I tried putting the mixing methods in ModFluids and making that class extend BlockLiquid, but that didn't work. Should those methods go somewhere other than in ModFluids?

 

ModFluids

is only for the initialisation and registration of fluids. Any in-world behaviour of the fluid needs to be handled by the fluid's

IFluidBlock

class.

 

BlockLiquid

is only for vanilla liquids. Mod fluids need to use Forge's fluid classes.

 

Create a class that extends an existing implementation of

IFluidBlock

(e.g.

BlockFluidClassic

,

BlockFluidFinite

) and override

Block#onNeighborBlockChange

to check for mixing. Create an instance of this class instead of an existing one when registering your fluid.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Posted

*snip*

 

My code works, so I'm not sure what you've done wrong.

 

Upload your fluid-related code on Gist/Pastebin (with syntax highlighting) or your whole mod on GitHub/BitBucket and link it here.

 

Here's the whole mod on GitHub:  https://github.com/blahblahbal/Blah-s-Minecraft-Mod

 

Fluid code is in the main directory and ModBlockFluid is in blahmod.blocks.

 

 

I've run into a small problem that I think I've fixed; it's related to checking if the fluid is the right one for the mixing code. I haven't tested yet, though, so I don't know if I've fixed it. Wait... since vanilla liquids don't run the code I've added, they would 'ignore' it, and as such not be futzed with even if I don't check for a block type, right?

Posted

Nevermind about the xray mod incompatibility, it was that I had updated the config file for that mod (to work with the 1.9 version) and the 1.8.9 version of the xray mod couldn't read it.

 

Anyway, I'm still stumped about the liquid... it doesn't have a 'current' and I can't jump out of it if I can't touch the bottom of a pool of it.

Posted

it doesn't have a 'current' and I can't jump out of it if I can't touch the bottom of a pool of it.

 

That's because both of those factors are handled by EntityBase#onEntityUpdate

 

They check the current block that the entity is in, and if that block's material is water, you get pushed (and get a drown meter).  If it's lava, you get set on fire.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

  • 9 months later...
Posted

it doesn't have a 'current' and I can't jump out of it if I can't touch the bottom of a pool of it.

 

That's because both of those factors are handled by EntityBase#onEntityUpdate

 

They check the current block that the entity is in, and if that block's material is water, you get pushed (and get a drown meter).  If it's lava, you get set on fire.

 

Sorry it took me so long to reply. I got bored of Minecraft xD.

 

Anyway, this does not help. I have no clue how to override those methods, or where to put said overrides. There are no tutorials for fluids that work to slow the player and mobs.

 

And the reason I'm posting from another account is because I forgot my password, and the reset password thing isn't sending me an email -_-.

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
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Reach Out To Rapid Digital: What sapp Info: +1 41 4 80 7 14 85 Email INFO: rap iddi gita lrecov ery @ exe cs. com Hello, my name is Jayson, and I’m 35 years old from the United Kingdom. My family and I recently endured an incredibly challenging experience that I wouldn’t wish on anyone. We became victims of a cryptocurrency investment fraud scheme that saw us lose a staggering $807,000 in USDT and Bitcoins. The fraudsters had created a convincing facade, and we were lured into investing, only to discover later that the platform was a complete scam. We were left devastated, not just financially, but emotionally, as we had trusted these people and believed in the legitimacy of the investment. After the initial shock wore off, we desperately searched for ways to recover the lost funds. It seemed like an impossible task, and we felt as though there was no hope. That’s when, by sheer luck, we stumbled across a post about Rapid Digital Recovery, a cryptocurrency and funds recovery organization with a proven track record in cybersecurity and fraud recovery. We decided to reach out to them, and from the first interaction, we were impressed with their professionalism and transparency. They explained the recovery process in detail and reassured us that they had the skills and expertise to track down the perpetrators and recover our funds. This gave us a renewed sense of hope, something we hadn’t felt in months. What truly stood out during our experience with Rapid Digital Recovery was their dedication to the recovery process. The team went above and beyond, using sophisticated tracking tools and cyber forensics to gather critical information. Within a matter of weeks, they had successfully located the funds and traced the scam back to the fraudsters responsible. They worked with the authorities to ensure the criminals were held accountable for their actions. To our relief, the team at Rapid Digital Recovery was able to recover every single penny we had lost. The funds were returned in full, and the sense of closure we felt was invaluable. We couldn’t have imagined such a positive outcome in the early stages of our recovery journey, and we are deeply grateful for the work they did. If you ever find yourself in a similar situation, I highly recommend contacting Rapid Digital Recovery. Their expertise, transparency, and dedication to their clients make them the go-to choice for anyone seeking to recover lost cryptocurrency or funds. They truly gave us back our financial future.  
    • This is my first time modding anything, so maybe just skill issue. I'm using Forge 54.0.12 and Temurin 21.0.5+11-LTS I wanted to create a custom keybind and to check whether it works I'd like to send a chat message. I tried using Minecraft.getInstance().player.sendSystemMessage(Component.literal("test")); but IntelliJ couldnt resolve sendSystemMessage(...). Since I saw people using it in earlier versions, I tried the same thing with 1.20.6(- 50.1.0), where it works fine, now I can't figure out if this is intentional and whether there are other options for sending chat messages. On that note, is there more documentation than https://docs.minecraftforge.net/en/1.21.x/? It seems very incomplete compared to something like the Oracle Java docs
    • Hi, i'm having this error and I wanna fix it. we try: -Reload drivers -Eliminate .minecraft -Eliminate Java -Restart launcher -Verify if minecraft is using gpu -Mods  in .minecraft is empty -Install the latest and recomended version of forge idk what i have to do, help me pls. the lastest log is: https://mclo.gs/WAMao8x  
    • Read the FAQ, Rule #2. (https://forums.minecraftforge.net/topic/125488-rules-and-frequently-asked-questions-faq/)  
  • Topics

×
×
  • Create New...

Important Information

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