RealFluids

Discussion in 'WIP and Development Status' started by mindless728, Feb 22, 2011.

Thread Status:
Not open for further replies.
  1. Offline

    Vlyn91

    Thanks, is there a possibility to add a function for players to decide if they want to place normal or realfluid water? (For Monster traps, boat tracks, or just a fountain?)

    P.S.: Several Threads for RealFluids would be awesome, I got enough cores for that on my server :)
     
  2. Offline

    mindless728

    this tends to be a comprehensive plugin meaning its all or nothing, though i could throw in some permission stuff (when bukkit's is done ofc) so only people who were allowed to would be able to have water flow, or undo the action that would cause it to flow (like placing a bukkit, breaking a block, placing a block)

    yeah, would love to get a multi-threaded version out sometime, though as it stands i need to get the baseline polished first
    [MERGETIME="1300116719"][/MERGETIME]
    good news, may be able to release (soon):
    1. An update to RealFluids to lower the memory usage substantially
    2. Release BlockStorage plugin as the data backend (it is generic and can be used by anyone)
    3. FluidPumps to pump the fluid to different locations
    going to work on multi-threaded next
     
  3. Offline

    Shadus

    Awesome! Looking forward to it. Good luck with school as well.
     
  4. Offline

    mindless728

    yeah, i need luck at this point, its a little crazy
     
  5. Offline

    Shadus

    Been there done that, ;) It's worth the time though and you'll get some good knowledge doing an OS that you'd have been unlikely to learn otherwise. Looks like a fun project, just time consuming and thought intensive.
     
  6. Offline

    mindless728

    yeah especially since it is going to allow automatic process migration to remote hosts at the kernel level
     
  7. Offline

    TheDarkness73

    Okay, so when I use a bucket, it doesnt work, and the source block stays still, but source blocks work normally, and can you make it so lava doesnt flow so quickly. Also, the liquids seem to flow around the torch

    Itd also be realy nice for a single player mod of this, or a way to have multiplayer mods in single player

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 9, 2016
  8. Offline

    mindless728

    1) about buckets working, check my TODO list
    2) lava flow, also in TODO
    3) i have no interest in doing SP mods and don't have time for porting the system over to MP, if i had time i would be bringing bukkit to mineserver (C++ version of the server)
     
  9. yea... this causes some serious aggro if you're mining with some friends and someone breaks a hole with lava on the other side...

    Just saying that lava moves incredibly slowly... and you'd be really stupid to be killed actually by lava outrunning you (there are a few exceptions). They rarely go faster than a jog... and sometimes it only flows a few inches per day!

    If you change the lava speed could you also potentially add a config file for it (both water and lava). I understand if that's too hard because I have no idea how your code works... but it's a suggestion.
     
  10. Offline

    mindless728

    it is really dependent on how many other fluids are flowing in the whole server, if there is a lot then everything goes slow
     
  11. Offline

    Vlyn91

    Still waiting for an update :'(
     
  12. Offline

    mindless728

    update coming tomorrow if i can work out some bugs

    the update will contain:
    Fluid level persistence (via separate plugin)
    Fluid Pumps (via separate plugin)

    UPDATED!!!! YAY!!!!

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 9, 2016
  13. Offline

    Vlyn91

    Absolutely broken :-(

    You didn't update to the newest bukkit version?

    (First: Error, Servercrash -> restart, then it just stopped working, no error in the console or something else. Water ist working normal)
     
  14. Offline

    mindless728

    what version are you using, i am on build 633 and it is working fine, though try posting a output of the console of it breaking
     
  15. Offline

    Vlyn91

    Seriously, I don't know which build I have :-/ The "newest version" downloadlink doesn't tell me that.

    I'll update on my testserver and try it again (And no, there is absolutely no server console output, it broke one time and then it was just gone :confused:)

    I'll test it.
     
  16. Offline

    Tylerjd

    On 670 (my current version) the console gives this message when starting:
    Code:
    19:14:10 [INFO] BlockStorage not found, disabling...
    19:14:10 [INFO] RealFluids version demo-snapshot-0.5 disabled
    
    It shows you need the BlockStorage Pre-req
     
  17. Offline

    Vlyn91

    Ahhh got it! I'm on 670 now too.. and I forgot to add Blockstorage (Because it's new).

    Not it's working, but there is still one really stupid thing: PLEASE deactivate snow tile drops! It lags the whole server out when there are hundreds of items lying around! Till you get a config file out, please just deactivate that "feature" :-(
     
  18. Offline

    Tylerjd

    It might be just my server, but I'm getting some major errors when trying to place any sort of water...
    Code:
    java.lang.NullPointerException
        at mindless728.RealFluids.RealFluidsBlock.setLevel(RealFluidsBlock.java:75)
        at mindless728.RealFluids.RealFluidsBlockListener.onBlockPlace(RealFluidsBlockListener.java:34)
        at org.bukkit.plugin.java.JavaPluginLoader$24.execute(JavaPluginLoader.java:344)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:255)
        at org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(CraftEventFactory.java:84)
        at org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(CraftEventFactory.java:68)
        at net.minecraft.server.ItemBlock.a(ItemBlock.java:75)
        at net.minecraft.server.ItemStack.a(ItemStack.java:56)
        at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:218)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:447)
        at net.minecraft.server.Packet15Place.a(SourceFile:57)
        at net.minecraft.server.NetworkManager.a(NetworkManager.java:198)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:72)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:368)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:283)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:375)
    20:14:03 [SEVERE] java.lang.NullPointerException
    20:14:03 [SEVERE]     at mindless728.RealFluids.RealFluidsBlock.getLevel(RealFluidsBlock.java:59)
    20:14:03 [SEVERE]     at mindless728.RealFluids.RealFluids.blockCanFlowDown(RealFluids.java:229)
    20:14:03 [SEVERE]     at mindless728.RealFluids.RealFlowEvent.getFlow(RealFlowEvent.java:33)
    20:14:03 [SEVERE]     at mindless728.RealFluids.RealFluids.run(RealFluids.java:363)
    20:14:03 [SEVERE]     at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:122)
    20:14:03 [SEVERE]     at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:356)
    20:14:03 [SEVERE]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:283)
    20:14:03 [SEVERE]     at net.minecraft.server.ThreadServerApplication.run(SourceFile:375)
    20:14:03 [SEVERE] Unexpected exception
    java.lang.NullPointerException
        at mindless728.RealFluids.RealFluidsBlock.getLevel(RealFluidsBlock.java:59)
        at mindless728.RealFluids.RealFluids.blockCanFlowDown(RealFluids.java:229)
        at mindless728.RealFluids.RealFlowEvent.getFlow(RealFlowEvent.java:33)
        at mindless728.RealFluids.RealFluids.run(RealFluids.java:363)
        at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:122)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:356)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:283)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:375)
    20:14:51 [INFO] Read timed out
    
    I have both RealFluids Demo 5 and BlockStorage installed...
     
  19. Offline

    Vlyn91

    Works perfectly fine for me... the lava source is just a little... too dangerous?

    Built an evil machine... start it with lava source... next thing I can remember is a huge wall of lava..

    LAVA TSUNAMI, RUN FOR YOUR LIFES!

    Maybe too dangerous to give in the hands of a player (or Admin...) :eek:
     
  20. Offline

    mindless728

    @Tylerjd, thank you for the stack trace, that should be helpful in locating that bug, also i would like to say that there is a bug when the fluid is at the top of the map

    @Vlyn91 i plan on getting a config file for the next demo version so things can be changed, that code was in there to test some code i wrote for checking if a block is overwrittable and whether or not it should drop an item when it gets overwritten

    also i would like to point out that the code should run for 25ms per server tick (each one lasts 50ms), so you shouldn't get any annoying messages about the server being overloaded, just the fluids will really slow down
     
  21. Offline

    Vlyn91

    Oh, they slow really down and I get a server message every 2 seconds ;) (Blabla system time change? blabla)
     
  22. Offline

    Tylerjd

    Thanks for getting back to me, and I think that was the problem, that I was placing water blacks at the top of the map. I know this plugin is in pre-alpha stages so I can't complain, and I wouldn't anyway. This is a great project your working on, and the users of my server love it (when it works :D)
     
  23. Offline

    mindless728

    really you get the server can't keep up message....hmmmm, shouldn't really happen unless there are some other plugins causing a lot of compute time to be thrown in

    yeah, unfortunately its hard to find time between school, work, and play to do this work
     
  24. Offline

    Vlyn91

    Yeah, I get it quite often when there are lots of fluids running. I don't think slowing it down this much is a good idea :-/
    Or: It's a good idea now, but should be removed when we finally get multi-core support.. (2, 4, 6... 20? cores hehehehe)
     
  25. Offline

    mindless728

    the reason i am saying that it shouldn't happen too much is that i only allow the fluids to run for 25ms per server tick which is 50ms, unless there is another plugin eating a good amount of cpu time it shouldn't happen too much, unless the cpu or hdd is slow enough where one fluid event lasts longer than 25ms (if i had to take a guess, i would say the hdd might be limiting it), though i have no issues running this on my laptop (Core i7-720qm, 8GB ram, 640GB WD hdd)

    i plan on releasing a multi-threaded version at some point, just need to sit down and flesh out where the best places to put locks on the data is and how to get the completed data back to the server for updating. This is not a trivial task especially when the server code is singly threaded and i have to make my BlockStorage Plugin have the locks in place correctly
     
  26. Offline

    Zetorung

    I really like the idea of these plugins and I have some questions/suggestions.

    I tried out both realFluids and FluidPumps last night. I love the way the source block will fill whatever reasonable sized hole its in. But the pumps were, shall we say, overzealous. I was trying to will a series of troughs for my wheat farm and I had the end of the pipe 2 blocks below the ground level. I unblocked the beginning of the pipe and my enitre town proceeded to flood. While we all enjoyed this spectacle, it wasn't really what I had in mind. Is there a trick to filling small holes? Perhaps a way to dial back the pumpls a bit?

    For the pipes (which is what I am most excited about) I was wondering if there wasn't a better way to handle directions. I was thinking a tracing algorithm similar to what the boat and air ship plugins use. For instance, place a block of obsidian at the beginning of the pipe to mark where it starts and then build the pipe out of white wool, regardless of direction and the place an obsidian block at the end/s to signify where the water is supposed to come out. It might make sense to use different blocks on each end to signify flow direction. Then your plugin would trace between the beginning and end blocks to determine the pipe. Players would just have to be careful to not have any white wool touching the pipe, which shouldn't be too hard.

    I love the source block but it might be nice to be able to turn it on and off, maybe with redstone, or by hitting it with a certain item the way that the light sensors work in this mod: http://forums.bukkit.org/threads/mech-lightsensor-v0-7-light-dependant-levers-617-670.5975/

    The last question I have is about water flow. I like how you can use source blocks to fill areas and provide large amounts of water. But the water has no flow, making things like traps and conveyor belts not work. Do you plan on having water from buckets act normally? So that we can have the best of both worlds, flowing water from buckets and realfluids from pipes and water source blocks. Maybe there could be an option for this in a config file.

    Keep up the great work, and sorry if this was a bit wordy. I think these 2 plugins have great potential and these are just some ideas the folks on my server and I came up with.
     
  27. Offline

    mindless728

    well the pumps keep pumping no matter what, so if you have a pump that goes up it will fill in areas until there is no more fluids to pump, though i suppose i could make a pipe system like you described as a different plugin. Though there really is no trick other than watch it and block the pipe yourself when the area is filled to the level you need.

    as for redstone turning on/off the sources, i thought about doing that for all pumps in that plugin, and i have been thinking of dialing down the pumps, but not by a ton as i still want them to be decently fast

    as for water flows from buckets i was planning on the bucket keeping track of the amount of fluid that it has when it was picked up and that is how much the bucket has

    word of caution to everyone, don't dig under ground near lava, it meets with hilarious results (face full of lava in some cases)
     
  28. Offline

    Tylerjd

    mindless728, I have figured out why I am getting the error (from above). But I don't (think) I have a solution. So I am running my server on an Ubuntu Server x64 box. I don't know whether its Linux or 64 bit or a combination of both but I only get the error when running the server on that box. When I run it under Windows or Mac OS, it runs PERFECT, but on Ubuntu Server x64 it blows up with errors (well, doesn't really blow up, but you get the point). I'm next going to try running a VM with 32 bit and see if that solves the problem...
     
  29. Offline

    valdark

    I'm sorry if I missed it in the thread but how exactly are FluidPumps constructed? I am hesitant to install this plugin without knowing.

    Nevermind... sorry. I found it at the bottom of the first post after reading it again. Off to try out all of these new toys.

    boo... it breaks my server.

    Unfortunately I can't give you a list of the errors since it is hosted through servercraft.co and they do not give me access to the log.

    everytime I broke a block near water I was unable to break/collect or place blocks and the server would not allow me back in after disconnecting (still showed me logged in).

    running bukkit 677 and using MyMcAdmin interface... uncertain of the OS
     
  30. Offline

    Vlyn91

    Hey, still waiting for a "fix" for the snow tile "feature".

    Also got an idea: There are lava and water sources.. ok.. means unlimited fluids. BUT: Could you make a fluid"pump" that destroys fluids? Maybe the black block sucks fluids from all diretions up (same directions as a source) and just deletes it?

    Atm you can flood the whole word, but when you're not admin you can't get rid of the fluids (except you let them flow over a wide area...)
     
Thread Status:
Not open for further replies.

Share This Page