Yet somehow a vine was triggered in the swamp ... how?!?
Gotta see if I can make this error happen on demand.
EDIT: GRR #2: Explicitly placing vines, and letting water flow through ... works as expected; block turns into air, vine is dropped, water flows through air. How did it die on me then?
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
I cannot get the crash case to repeat. Same world, same area.
Alright, let me see what I can do. On the list:
(before release) Debug spam.
1. At least detect, and report without dying, when a block that should be broken already at water flow turns out not to be broken. Like that strange vine that somehow was not air. (DONE; cannot test, code "should" work.)
2. Rainfall is slow.
3. Config file: Save the state of flow across server stop/start (EDIT: Current!)
4. Config file: Record what we think is "sea level" in each dimension seen; permit user overrides.
5. Prevent diagonal flow through walls (if both direct flows are solid)
5b. Just stop the diagonal flow completely (Easy; I think vanilla water will flow diagonal? EDIT: Vanilla gives the appearance of diagonal flow. About 4 blocks or so diagonally)
6. Record actual fluid level across chunk save/reload.
... That's actually the priority list as well as the todo list :-).
Features, in some order:
1. Absorption / seepage / rainfall cycle. Right now you won't get puddles in the mountains, for example; you'll have a little bit of water on a ledge forever.
2. Figure out something for the nether and restoring lava as it is consumed. (Still looking for a good answer)
3. When no players are logged on, get a list of all loaded chunks, and process flowing water in all of them.
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
Aaannd, I found out how it can happen. In some cases, a block change task is delayed until later.
This mean that a vine can grow into a space that once was air, _THEN_ water attempts to flow into a space that is no longer air.
Argh. Asynch code.
EDIT: Or not? All of the calls to this routine say "do it now"; the delay for later flag is never "false". The "delay for later" code should never happen.
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
** KNOWN INCOMPATIBILITY: ChromaticCraft. This will flood the ocean temples, and ruin them. Let Reika know you'd like to see a change in the ocean temple entrances to block the flow.
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
Grumble grumble grumble tabs vs spaces grumble tab stop 4 grumble grumble ECLIPSE IS SET TO USE SPACES WHY ARE THERE TABS grumble grumble fixing this will make tons of stupid changes grumble grumble
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
Config file update to store the current state of enable flow setting: Working.
Usefulness, as soon as I want to extend that to store sea level on a per-dimension basis: Worthless.
This needs to be saved per-save/per-world, not in the config file. You might have one dimension with a sea level of 62 in one save, and 50 in another save (island world vs standard world).
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
Most of my mods use game rules instead of config files, since that lets you have different settings on a per-world basis. Here's the basic sequence.
if (!world.getGameRules().hasRule(someString)){
world.getGameRules().setOrCreateGameRule(someString, "1");
int gr = 1;
}
else {
int gr = world.getGameRules().getGameRuleBooleanValue(someString);
}
This also has the advantage that it can be changed while the server is running, to allow playing with settings without a long cycle time. Of course, the sea level is probably not something that needs to be changeable, so the world saved data is probably a better choice for it in particular.
Narrgh! Either this profiling tool (visualVM) is lying, or the rainfall code isn't taking up any significant time -- which means it is generating a state that is causing problems for the fluid flow on the next loop.
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
uggh ... well, at least I found a bug. Fluid levels are wrong during rainfall placement of water. Now, lets see if I can figure out what this bug would wind up doing.
Looks like at least some rainfalls are resulting in lost tracking of the block for some reason. Odd, because I see two places where it should trigger neighbor updates. EIDT: Yep, confirmed -- rainfall loses some updates. GRR.
... Ok, it's definitely a bug, but as far as I can tell, it's still calculating and doing what it should be. Still, it's a one-line fix.
... and at least got a first attempt at adjusting sea level based on world/dimension...
(Well, at least it's now in one spot, it's own routine, and it clearly inputs gAGL and outputs seaLevel.)
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
Well, I have confirmed: Lists of blocks that need to be updated are lost across chunk unload.
That -- plus detailed per-block fluid levels -- needs to be saved.
Keep in mind: This can be several hundred blocks per chunk, easily. Trivially in ocean-connected caves/ravines.
Rain bugs squashed, fluid level mismatch fixed, other problems continue to be found and ...
Putting rain the air (instead of on the ground) for debugging was interesting. I actually thought I'd want to keep it in the air, that it falls down from the clouds or something. But with lost updates happening ...
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
4Head: How is Lava supposed to flow? One lava block in the overworld will cover 4 to 8 spaces, maybe getting 2 blocks away from where it was placed, and that's all. It's also thick -- I thought the code would try to put half of the liquid into an empty air block, but it clearly is not.
In the nether: Updates are SLOW. Lava flow in the nether is painful. I can do R=6 (13x13) in the overworld, even in the ocean, but r=3 (7x7) in the nether is slow. I can't understand your visocity code, and I don't see anything obvious for causing lava slowness.
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
You should check the output when doing division in your IDE, and then compare it to the output of the same code running on a website like this (which works as expected for me, i.e -8 / 256 = 0); http://www.tutorialspoint.com/compile_java_online.php
Re Lava, umm, the viscosity code determines the minimum content of a block before that block can flow. The lava flow rate is slowed down, basically by using modulus to skip block updates (aka, update the block only once every Nth sweep). I don't know why it would be eating performance though... I wonder if lava is spamming lighting updates or something?
Rollback Post to RevisionRollBack
I believe in the Invisible Pink Unicorn, bless her Invisible Pinkness.
... grr ...
I have a copy of mojang code (they marked their private ... why?) for testing where water can flow.
My code is doing
Yet somehow a vine was triggered in the swamp ... how?!?
Gotta see if I can make this error happen on demand.
EDIT: GRR #2: Explicitly placing vines, and letting water flow through ... works as expected; block turns into air, vine is dropped, water flows through air. How did it die on me then?
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
Wow Keybounce awesome work trying to figure this out! Sorry I can't help you I can't mod to figure my way out of a bag! lol
Is there anyway to keep hte enableflow on even after a serer restart?
Come over and check out Wulf Hollow Server!
http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/mod-packs/2723091-wulf-hollow-v1-0-1-custom-recipes-friendly-players
At the moment, no.
Soon, yes.
===
I cannot get the crash case to repeat. Same world, same area.
Alright, let me see what I can do. On the list:
(before release) Debug spam.
1. At least detect, and report without dying, when a block that should be broken already at water flow turns out not to be broken. Like that strange vine that somehow was not air. (DONE; cannot test, code "should" work.)
2. Rainfall is slow.
3. Config file: Save the state of flow across server stop/start (EDIT: Current!)
4. Config file: Record what we think is "sea level" in each dimension seen; permit user overrides.
5. Prevent diagonal flow through walls (if both direct flows are solid)
5b. Just stop the diagonal flow completely (Easy; I think vanilla water will flow diagonal? EDIT: Vanilla gives the appearance of diagonal flow. About 4 blocks or so diagonally)
6. Record actual fluid level across chunk save/reload.
... That's actually the priority list as well as the todo list :-).
Features, in some order:
1. Absorption / seepage / rainfall cycle. Right now you won't get puddles in the mountains, for example; you'll have a little bit of water on a ledge forever.
2. Figure out something for the nether and restoring lava as it is consumed. (Still looking for a good answer)
3. When no players are logged on, get a list of all loaded chunks, and process flowing water in all of them.
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
Aaannd, I found out how it can happen. In some cases, a block change task is delayed until later.
This mean that a vine can grow into a space that once was air, _THEN_ water attempts to flow into a space that is no longer air.
Argh. Asynch code.
EDIT: Or not? All of the calls to this routine say "do it now"; the delay for later flag is never "false". The "delay for later" code should never happen.
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
Hows your sanity Keybounce? I hope you have something hard to drink! Awesome work!
Come over and check out Wulf Hollow Server!
http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/mod-packs/2723091-wulf-hollow-v1-0-1-custom-recipes-friendly-players
Drink? Yes.
Coffee, and a water flood :-)
New tool: gitflow. No, not water flow, but workflow/branching control.
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
Ok, alpha 5.0 is now ready.
Primary feature: Faster. It logs messages at 30,000 blocks per update; it aborts at 45,000 blocks per update. I can manage 30K+ without any slowdowns.
NEAR can, and should be, -1 (to disable). FAR can be 6 chunks (that's what I use).
NB: Rainfall is slow; it is not optimized.
This release should not have too much spam in it.
http://minecraft.curseforge.com/projects/realistic-fluids-overhaul-compatibility-and/files
** KNOWN INCOMPATIBILITY: ChromaticCraft. This will flood the ocean temples, and ruin them. Let Reika know you'd like to see a change in the ocean temple entrances to block the flow.
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
thanks for the update. me and the wife are trying it now. i assume you meant UpdateRangeNear=-1 thats wha t i set it to.
Correct. I'm so used to looking at the code.
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
Awesome!!! Slow rain is better than no rain at all. I'm gonna try it soon. Upgrading from 4.3
Grumble grumble grumble tabs vs spaces grumble tab stop 4 grumble grumble ECLIPSE IS SET TO USE SPACES WHY ARE THERE TABS grumble grumble fixing this will make tons of stupid changes grumble grumble
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
Config file update to store the current state of enable flow setting: Working.
Usefulness, as soon as I want to extend that to store sea level on a per-dimension basis: Worthless.
This needs to be saved per-save/per-world, not in the config file. You might have one dimension with a sea level of 62 in one save, and 50 in another save (island world vs standard world).
Need to read up on "WorldSavedData". Not tonight.
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
Most of my mods use game rules instead of config files, since that lets you have different settings on a per-world basis. Here's the basic sequence.
This also has the advantage that it can be changed while the server is running, to allow playing with settings without a long cycle time. Of course, the sea level is probably not something that needs to be changeable, so the world saved data is probably a better choice for it in particular.
Narrgh! Either this profiling tool (visualVM) is lying, or the rainfall code isn't taking up any significant time -- which means it is generating a state that is causing problems for the fluid flow on the next loop.
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
uggh ... well, at least I found a bug. Fluid levels are wrong during rainfall placement of water. Now, lets see if I can figure out what this bug would wind up doing.
Looks like at least some rainfalls are resulting in lost tracking of the block for some reason. Odd, because I see two places where it should trigger neighbor updates. EIDT: Yep, confirmed -- rainfall loses some updates. GRR.
... Ok, it's definitely a bug, but as far as I can tell, it's still calculating and doing what it should be. Still, it's a one-line fix.
... and at least got a first attempt at adjusting sea level based on world/dimension...
(Well, at least it's now in one spot, it's own routine, and it clearly inputs gAGL and outputs seaLevel.)
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
I hate java.
Quick question: In integer math, what is (-8 / n), where n is much bigger than -8?
Well, up to n=256, it's -1.
At n=512, it's 0.
I have code expecting the rounding to actually *work* at n=(1<<20).
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
Argh.
Well, I have confirmed: Lists of blocks that need to be updated are lost across chunk unload.
That -- plus detailed per-block fluid levels -- needs to be saved.
Keep in mind: This can be several hundred blocks per chunk, easily. Trivially in ocean-connected caves/ravines.
Rain bugs squashed, fluid level mismatch fixed, other problems continue to be found and ...
Putting rain the air (instead of on the ground) for debugging was interesting. I actually thought I'd want to keep it in the air, that it falls down from the clouds or something. But with lost updates happening ...
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
Great Job! ....don't keep a sledge hammer or anything that can smash things to bits near by....might be bad!
Awesome job keep up the great work!
Come over and check out Wulf Hollow Server!
http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/mod-packs/2723091-wulf-hollow-v1-0-1-custom-recipes-friendly-players
thank you.
===
4Head: How is Lava supposed to flow? One lava block in the overworld will cover 4 to 8 spaces, maybe getting 2 blocks away from where it was placed, and that's all. It's also thick -- I thought the code would try to put half of the liquid into an empty air block, but it clearly is not.
In the nether: Updates are SLOW. Lava flow in the nether is painful. I can do R=6 (13x13) in the overworld, even in the ocean, but r=3 (7x7) in the nether is slow. I can't understand your visocity code, and I don't see anything obvious for causing lava slowness.
* Promoting this week: Captive Minecraft 4, Winter Realm. Aka: Vertical Vanilla Viewing. Clicky!
* My channel with Mystcraft, and general Minecraft Let's Plays: http://www.youtube.com/user/Keybounce.
* See all my video series: http://www.minecraftforum.net/forums/minecraft-editions/minecraft-editions-show-your/2865421-keybounces-list-of-creation-threads
(In regard to a mod that gives realistic animal genetics):
Would you really rather have bees that make diamonds and oil with magical genetic blocks?
... did I really ask that?
That definitely shouldn't be happening. According to the Java specification, Integer division rounds towards 0.
Therefore (-8 / n ) should be equal to 0 for any |n| > 8.
https://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.17.2
You should check the output when doing division in your IDE, and then compare it to the output of the same code running on a website like this (which works as expected for me, i.e -8 / 256 = 0);
http://www.tutorialspoint.com/compile_java_online.php
Re Lava, umm, the viscosity code determines the minimum content of a block before that block can flow. The lava flow rate is slowed down, basically by using modulus to skip block updates (aka, update the block only once every Nth sweep). I don't know why it would be eating performance though... I wonder if lava is spamming lighting updates or something?
I believe in the Invisible Pink Unicorn, bless her Invisible Pinkness.