I can't seem to make forName() work at all for me, so let's just
use an old API thing and catch that, which reliably works for me.
Tested with 1.7.x
- Factions 1.6.9.5
- mcore 7.0.1 + Factions 2.3.0
When fixing water, we'd chop holes into lake water surfaces
if they were above sealevel. By checking the data value, we
can skip fixing up the water if the water level is max (data
== 0) and leave the lake surfaces in order.
This is possible with e.g. multiverse - worlds can be
entirely unloaded including spawn, which make the
chunklist array empty and Chunklist[0] fail with a
stacktrace on every block attempt.
- found a missing break causing stone never to decay
- a thick snow cover will break down everything down to gravel, but
not to dirt. Grass will still become dirt. This makes mountains
that are covered with snow become gravel producers
- under snow degradation goes faster, but displacement stays behind
a bit as it did before.
- lots of minor adjustments
No longer recursive, and tweaked all the parameters to be
a bit simpler and easier to check. The end result is a lot
better than before, since I broke quite a few aspects as
I was going through this code.
Pretty smooth snowy hilltops, growth is smooth as well.
Thawing is done right at the start which simplifies and
makes things a bit faster.
This isn't ideal yet - the max stack code isn't yet
entirely right as stacks seem to grow too high. I should
also try to limit snow edges to 1-2 snow layer thickness
max as right now things look a bit unbalanced.
This code will create growing and thawing snow. The snow will grow
if it's storming and temperatures are low, and snow will melt if
the sun is out or some other light source is near. The algorithm
makes very pleasing rounded mountain tops.
From here on, we need to pile snow higher to produce ice blocks, the
next step needed to create glacier-like effects.
With the old code, waterfalls would only ever grow and
the amount of water blocks would never decrease. This
leads to huge pillars of water that are unrealistic and
create enormously large water fans, which is ugly at
best.
This code removes the water column entirely above blocks
that are moved. By doing so, we cause a waterfall block
update which will likely put the water back again, but
most of the time do so one block lower. This causes the
water depth to be adjusted continuously lower, and leads
to a more realistic flow.
Ultimately, this code will also remove the waterfall
itself since it will remove the water origin block as
well if it is no longer protected. Since the landscape
generator usually put waterfalls *under* another stone
block, this will take a long time. All water will disappear
and you're left with a "dry" valley and alluvial fan below,
which bears resemblance to dry valleys in nature.
I created a protected region, and ran several thousand
erosion cycles over gravel under water inside, and outside
the worldguard region. Only the area outside the worldguard
was modified. Also tested everything works without WG
installed, and adjusted the README.
- stripping data byte prevents us from randomly degrading into
podzol or colored clay.
- degrade into mossy cobblestone in taiga's.
- consider mossy cobblestone a naturally degrading material as it
occurs in nature.
- the "protect" option is now a config file only setting
- "ticks" config file option allows you to change the interval
at which the plugin runs, so it can be slowed down further
This seems to be the better way of finding locked in blocks. This
will prevent awkward holes and change slopes to look a bit more
usual during erosion.
To test this I wrote a test function that allows me to quickly
do a lot of erosion attempts on a small section of the map, which
will be handy since I've been having a hard time testing the
validity of the algorithms due to the math scale of things (even
blocks of sand were resisting 1000+ attempts to move down 1 spot!).
Having a hammer to whack at it hard will reduce my testing time
and will make for an easier time tuning the parameters.
Since erosion already does more work at mountain tops since they
are generally more exposed, don't have vegetation and the dirt
cover on them washes away fast, there's no real reason to add an
elevation factor at this point.
- Red sand equals sand. In most biome's, it's not going
to get degraded further, but if deposited into an ocean or
other wet biome, it'll turn into clay as normal.
- hardened clay and stained clay are considered as hard as
stone (e.g. sandstone) in minecraft (see wiki). For that
reason, we'll consider these equivalend to sandstone and
cobblestone, so they degrade into gravel and are not
very movable.