Alpha version 0.7 has been uploaded and is available via Dropbox from the opening post. It includes moss growth, vine growth, and burnt-out torches, among other alterations to the overall code.
Alpha version 0.7 has been uploaded and is available via Dropbox from the opening post. It includes moss growth, vine growth, and burnt-out torches, among other alterations to the overall code.
A reminder: This still erodes the entire world, though you can now disable it in the Options menu. I'm in the process of streamlining the canDecay function that determines if given blocks should decay, but the PlacedByPlayer functionality still eludes me at this time.
If you want to experience decay in higher FPS, I recommend importing small sections of the world into a separate map and deleting everything else. My testing platform is a layer of obsidian in midair in a vast Skyblock-esque void for example.
I have rewritten the canDecay method today, resulting in much easier alterations of decay speed so that the Decay Rate setting now actually matters beyond just Off. The Normal setting has been renamed Years and the Days setting seems to reflect rather well the actual decay progressions one would expect in real life.
There is still a lag issue however. It decreases significantly if the decaying block(s) is unobservable by the player, so the distance qualifier should help to cut back on lag significantly in the full release, but nonetheless running the code on every single block in the world is still a performance hit.
I've also begun shuffling code out of Block.java and into nature_reclaims.java, this will eventually make it a lot more compatible as a whole with other mods.
Hi. Do you need more ideas for decay lines? If you do, I have a few.
Colored wool next to water could be eventually stripped of their color, and changed to white wool, which would eventually disappear.
Bricks (the clay ones) could turn into a 'cracked' brick.
Jack o' lanterns could burn out, similar to how a torch burns out.
Food and mob drops in chests could decay and rot, if they don't already do so. (Slime balls could be used here)
Stone should decay slightly faster when next to or in water, representing erosion.
Organic blocks (logs, pumpkins, melons, etc.) could turn into rotting versions of themselves.
Furnaces could turn into a stone/cobblestone brick, but if possible, should drop what was in the furnace at the time of decay.
Workbenches could decay into simple wood planks.
Trapdoors could turn into a type of falling trapdoor.
Doors themselves could sort of erode away, leaving a slightly worn half door.
Well, those are my ideas/input. I like the mod as it stands, and can't wait for updates. You don't have to listen to me, if you happen to have more ideas.
Rollback Post to RevisionRollBack
I'm actually KillaVanilla, but I lost the password to that account, as well as the email address for it.
Certainly some intriguing ideas, the rotting pumpkins certainly have merit, perhaps they'd drop seeds.
Meanwhile, I've added greater restrictions to which blocks can decay by declaring in the code decay is only possible when there is air or water on at least one side of a given block. This means decay of solid structures happens from the outside inward in most cases, and also prevents a lot of the world damage this mod is currently prone to (though caves can still gradually turn into gravel-filled ravines underground at the moment).
Cobwebs used here because they're a transparent block that currently does not decay, unlike both forms of glass. Left on the Millennia setting for several minutes, only the exposed centre block decayed.
EDIT: Expanded the same method as exposure to incorporate the decay-reduction effect of Obsidian.
The way it works is that if a block is in contact with Obsidian (on the 6 cardinal faces of the cube), there is a 50/50 chance that any given decay attempt will actually go through.
Two blocks of Obsidian = a 1 in 3 chance, three blocks = 1 in 4, so on and so forth up to the maximum of 6 cardinal blocks (though this also results in encasing the block, eliminating the exposure element and thereby all decay anyway).
Obsidian therefore isn't a perfect solution to preventing decay (cheaper to bury your belongings in sand, albeit less accessible), but you can definitely see the benefits of it here compared to the other solutions. The obsidian palette experienced 42% of the decay rate of both forms of exposure with each block in contact with 2 blocks of Obsidian.
I've modified the Obsidian behaviour to substantially increase the decay-reduction effects, it protects blocks a lot more reliably now.
My main success for the day however was getting the coding integrated to allow for things like this:
With the new decayByMeta functionality, I can have blocks that use metadata to create different variations (slabs, stairs, stone bricks, etc.) decay into different blocks (with their own metadata!) depending on the metadata of the block decaying.
Alpha release 0.8 has now been uploaded to Dropbox and added to the first post under the Downloads heading.
It includes variable decay speeds, obsidian decay-dampening, spreading moss & vines, burnt-out torches, a revise decay method, and the decay of single slabs to their associated material block (this may change with later versions, it is currently largely for demonstration purposes).
Lag is still an issue, the skyblock-esque environment is still advised so long as decay is enabled. Mod compatibility is still unknown but any mod that alters Block.java is expected to cause problems with Nature Reclaims, code is being shifted out of the default class files at the moment to reduce these incompatibilities but this process is not yet complete.
I'm currently working on getting the player-placed only functionality working. I'm not sure when to declare a new release but once this function works lag should be reduced substantially.
Currently I have managed to get chests and such to decay with dropping of their items when such an occurence transpires and I'm continuing to migrate code out of Block.java.
Had some spare time today between working on tile entities and university work, so I added particle and sound effects to the rotten wood blocks.
Rotten wood now has a % chance of falling when walked on (rather than every time), and gives off "dust" particles from its surface when walked on as well. This means you can take a risk running across a rotten floor but it won't necessarily collapse underneath you. When it finally does collapse, it gives a quiet TNT explosion sound and still causes sequential collapses throughout rotten structures as before.
Fallen rotten wood now also has a 1 in 10 chance to further collapse when a neighbour block changes (including blocks landing on it from above), rather than simply to fall or decay, disappearing entirely from the world, similarly complete with sound and particle effect. This means that falling wooden floors don't just leave themselves matted across surfaces in vertical structures, but uneven layering as portions entirely collapse.
This also has the side effect of making collapsed structures slightly easier to navigate if you should choose to go exploring in them, or are gone for an extremely long period of time (such as the test tower in the opening post).
Had some spare time today between working on tile entities and university work, so I added particle and sound effects to the rotten wood blocks.
Rotten wood now has a % chance of falling when walked on (rather than every time), and gives off "dust" particles from its surface when walked on as well. This means you can take a risk running across a rotten floor but it won't necessarily collapse underneath you. When it finally does collapse, it gives a quiet TNT explosion sound and still causes sequential collapses throughout rotten structures as before.
Fallen rotten wood now also has a 1 in 10 chance to further collapse when a neighbour block changes (including blocks landing on it from above), rather than simply to fall or decay, disappearing entirely from the world, similarly complete with sound and particle effect. This means that falling wooden floors don't just leave themselves matted across surfaces in vertical structures, but uneven layering as portions entirely collapse.
This also has the side effect of making collapsed structures slightly easier to navigate if you should choose to go exploring in them, or are gone for an extremely long period of time (such as the test tower in the opening post).
I found a Wasteland mod on this very same forum. Maybe they could borrow some of your decay code when you're done to make the ruined houses look better. Would make their mod look a lot more authentic, and in Rainbow Dash's words, 20% cooler. (\ Brohoof to any who are willing.
Rollback Post to RevisionRollBack
I just took the Minecraft Noob test! Check out what I scored. Think you can beat me?!
To take the test, check out https://minecraftnoobtest.com/test.php
Making headway and getting a lot of advice on how to work PlayerPlaced functionality which will massively reduce lag in "normal" worlds, also added rotten pumpkins which only drop pumpkin seeds.
Awesome! Some don't like that their buildings will fall apart but I love the idea! Just like real life you have to keep up and maintenance it. Very time consuming, maybe add reinforced metals you can combine with building blocks to make them last longer. Maybe a machine like a furnace but instead of coal you use metal. Good job!
The decay process is meant to be very slow, though users can alter the speed in the Options menu, and rather than force people to constantly maintain their houses I've opted for a presumptive system which basically says "If the player is X blocks or less from this block, he must be doing proper maintenance on it".
That said, should you feel the need to use the higher rates of decay, you can install helpers around your house to help keep things ship-shape.
Good lord, it's been far too long without an update here.
So I've mostly been working on the player-block functionality, which will allow me to massively reduce lag from decay in-game. To do so, I've had to modify a fair few things, but the functionality is pretty invaluable for modders I think and doesn't seem to have impacted performance much at all.
Whenever a player plonks a block down, a tile entity is created for it which manages the block's addition and removal from a separate list of player block locations. That list allows me to either check if a given block belongs to a player OR, as I've been recently working towards, loop through all player-owned blocks to enact decay.
I've been slowed down by the recent updates and the watcher list functionality, but I'm hoping to get some more coding done soon and see about pushing out a new update.
I did recently manage to get everything more or less updated to 1.2.4, and then 1.2.5 got released. It should be an easier update now at least, and I've got a 4-day weekend coming up in the next couple of days.
I've rebuilt my previous progress to the 1.2.5 status, my test world is now full of redstone lamps (which occupy the position previously used for rotten wood). My focus now is on getting a proper decay manager working so I can get player-placed blocks decaying in proper time and shifting mod data out of Block.java.
This means Nature Reclaims won't lag like hell in normal maps, be more compatible with other mods, and that decay won't be nearly as random as it currently is. Newer portions of buildings will fall apart sooner than older portions, floors will decay reasonably all at the same time, etc. Age will be a much more obvious characteristic of a structure regardless of building size or composition.
May I suggest that rather than stopping at gravel you turn gravel to saplings so that structures will become even more overgrown than with vines alone.
I had several recipes that I prefered when using a now defunct Bukkit plugin called iGrow. If you are interested in what was done using that plugin you can find info here. Lots of possibilites. Love the concept and will have to try it out.
Could you perhaps include a changelog so that new users can determine which version works with which Minecraft release?
Rollback Post to RevisionRollBack
Don't fear the creeper, yeah he's in your mine
Don't fear the creeper, happens all the time, don't fear the creeper
Remember the 90s?
If you want to experience decay in higher FPS, I recommend importing small sections of the world into a separate map and deleting everything else. My testing platform is a layer of obsidian in midair in a vast Skyblock-esque void for example.
There is still a lag issue however. It decreases significantly if the decaying block(s) is unobservable by the player, so the distance qualifier should help to cut back on lag significantly in the full release, but nonetheless running the code on every single block in the world is still a performance hit.
I've also begun shuffling code out of Block.java and into nature_reclaims.java, this will eventually make it a lot more compatible as a whole with other mods.
Well, those are my ideas/input. I like the mod as it stands, and can't wait for updates. You don't have to listen to me, if you happen to have more ideas.
Meanwhile, I've added greater restrictions to which blocks can decay by declaring in the code decay is only possible when there is air or water on at least one side of a given block. This means decay of solid structures happens from the outside inward in most cases, and also prevents a lot of the world damage this mod is currently prone to (though caves can still gradually turn into gravel-filled ravines underground at the moment).
Cobwebs used here because they're a transparent block that currently does not decay, unlike both forms of glass. Left on the Millennia setting for several minutes, only the exposed centre block decayed.
EDIT: Expanded the same method as exposure to incorporate the decay-reduction effect of Obsidian.
The way it works is that if a block is in contact with Obsidian (on the 6 cardinal faces of the cube), there is a 50/50 chance that any given decay attempt will actually go through.
Two blocks of Obsidian = a 1 in 3 chance, three blocks = 1 in 4, so on and so forth up to the maximum of 6 cardinal blocks (though this also results in encasing the block, eliminating the exposure element and thereby all decay anyway).
Obsidian therefore isn't a perfect solution to preventing decay (cheaper to bury your belongings in sand, albeit less accessible), but you can definitely see the benefits of it here compared to the other solutions. The obsidian palette experienced 42% of the decay rate of both forms of exposure with each block in contact with 2 blocks of Obsidian.
My main success for the day however was getting the coding integrated to allow for things like this:
With the new decayByMeta functionality, I can have blocks that use metadata to create different variations (slabs, stairs, stone bricks, etc.) decay into different blocks (with their own metadata!) depending on the metadata of the block decaying.
It includes variable decay speeds, obsidian decay-dampening, spreading moss & vines, burnt-out torches, a revise decay method, and the decay of single slabs to their associated material block (this may change with later versions, it is currently largely for demonstration purposes).
Lag is still an issue, the skyblock-esque environment is still advised so long as decay is enabled. Mod compatibility is still unknown but any mod that alters Block.java is expected to cause problems with Nature Reclaims, code is being shifted out of the default class files at the moment to reduce these incompatibilities but this process is not yet complete.
Currently I have managed to get chests and such to decay with dropping of their items when such an occurence transpires and I'm continuing to migrate code out of Block.java.
Rotten wood now has a % chance of falling when walked on (rather than every time), and gives off "dust" particles from its surface when walked on as well. This means you can take a risk running across a rotten floor but it won't necessarily collapse underneath you. When it finally does collapse, it gives a quiet TNT explosion sound and still causes sequential collapses throughout rotten structures as before.
Fallen rotten wood now also has a 1 in 10 chance to further collapse when a neighbour block changes (including blocks landing on it from above), rather than simply to fall or decay, disappearing entirely from the world, similarly complete with sound and particle effect. This means that falling wooden floors don't just leave themselves matted across surfaces in vertical structures, but uneven layering as portions entirely collapse.
This also has the side effect of making collapsed structures slightly easier to navigate if you should choose to go exploring in them, or are gone for an extremely long period of time (such as the test tower in the opening post).
This sounds like your best update yet!
I just took the Minecraft Noob test! Check out what I scored. Think you can beat me?!


To take the test, check out
https://minecraftnoobtest.com/test.php
Don't click this link, HE is haunting it...
That said, should you feel the need to use the higher rates of decay, you can install helpers around your house to help keep things ship-shape.
So I've mostly been working on the player-block functionality, which will allow me to massively reduce lag from decay in-game. To do so, I've had to modify a fair few things, but the functionality is pretty invaluable for modders I think and doesn't seem to have impacted performance much at all.
Whenever a player plonks a block down, a tile entity is created for it which manages the block's addition and removal from a separate list of player block locations. That list allows me to either check if a given block belongs to a player OR, as I've been recently working towards, loop through all player-owned blocks to enact decay.
I've been slowed down by the recent updates and the watcher list functionality, but I'm hoping to get some more coding done soon and see about pushing out a new update.
I did recently manage to get everything more or less updated to 1.2.4, and then 1.2.5 got released. It should be an easier update now at least, and I've got a 4-day weekend coming up in the next couple of days.
This means Nature Reclaims won't lag like hell in normal maps, be more compatible with other mods, and that decay won't be nearly as random as it currently is. Newer portions of buildings will fall apart sooner than older portions, floors will decay reasonably all at the same time, etc. Age will be a much more obvious characteristic of a structure regardless of building size or composition.
I had several recipes that I prefered when using a now defunct Bukkit plugin called iGrow. If you are interested in what was done using that plugin you can find info here. Lots of possibilites. Love the concept and will have to try it out.
Could you perhaps include a changelog so that new users can determine which version works with which Minecraft release?
Don't fear the creeper, happens all the time, don't fear the creeper