MineYoshi wrote:I think that justly a computer can do all the math, but try to emulate a "reality" is something out of the range...
That idea of the plants is good, i should admit...
It may be possible to implement a plant growth system like that already. However, the plant node would have to check the "tier" and "nutrient level" of the soil it is planted on, before it can decide what is the chance to grow if at all.
In order to prevent nutrient "dupe" farming (where someone picks up all of their soil when it gets depleted enough but doesn't downgrade to a lower tier, and crafts it several times with some other mod to produce the same soil node with a reset nutrient value), the "tier" will be considered as having the sum of the maximum nutrient levels (or upgrade-point nutrient levels) of all previous tiers, and when it is created by crafting it has 0 "extra" nutrient level (it degrades to the previous tier of soil giving it an almost full nutrient level, as soon as something grows on it).
So "depleted dirt" or just "sand" is tier 0, has 0 nutrient value and never turns into the next tier without being crafted with something; "Dusty Dirt" is tier 1, upgrades when it gets to 16 orso nutrient value and has 0 by default when it is crafted or created by upgrading; "Dirt" is tier 2, upgrades when it gets 64 orso nutrient value, and has a defualt of 0; "Rich Dirt" is tier 3 and upgrades when it gets 256 orso nutrient value, has a default of 0; and so on.
If for example, crafting "dirt" from a "compressed dirt" storage-block gives it a full "extra" nutrient value, you could grow crops on it until it is nearly 0 nutrient value, then craft it back into a compressed dirt and back (or just dig it up, since node metadata isn't preserved into the itemstack when it is broken and turned into said itemstack), it will have full nutrient value again and the process can start again, giving the farmer an excess of crop products without consuming any total nutrient value between "cycles" of breaking/placing the dirt. So we would set it up the other way.
It may also be interesting if the chance for a crop growing every so often is determined by the "total nutrient value" of the soil node, which is the sum of the maximum/upgrade-point nutrient levels of all previous tiers plus the current "extra" nutrient level - the chance would be much lower in regular dirt, than it is in richer dirt.
Having said all of that, it may become obvious that this system alone would create a problem - the total "nutrients" available in the world is always decreasing, since food is destroyed when it is eaten (let's not bother in this department) and the only way to get nutrients would be to get it from soil that is already generated in the world. To prevent this being an issue, we can implement a system by which the farmer can produce more new nutrients to go in the soil, and a way for the nutrients to be distributed into the soil. But this will be somewhat more complicated, and requires some very skillful Lua-fu in order to implement.
Currently I am thinking that you would use stuff like crop leftover stalks/stems/leaves and any wood/tree material (or any organic matter, for that matter) in a composting system, wherein all of that stuff is gradually (and passively) processed into a "raw" nutrient material, that is then placed on or nearby soil nodes - these "nutrient blocks" start with a full nutrient value, which is slowly transferred to nearby soil nodes (that can accept it), and gets slightly slower as the nutrient value decreases - until it is 0, when the node is removed (unless it is made by mixing the finished compost with a "binder" material, in which case the binder is left behind. But the important part, where nutrients actually "come in" to the process, is some system similar to making finished compost, except it takes stone/gravel instead of organic matter, and produces lichens and moss, which are then composted as organic matter. That way, you can use all of that extra cobblestone from your mines as a source for nutrients for your farm, instead of just destroying it by whatever means or leaving it sitting around.
Again, there is that problem where the node metadata is not preserved in the itemstack which a node becomes when it is broken, so there are two possible options to prevent the nutrient dupe there: cause the nutrient nodes to crop nothing or an "empty" form when broken and their nutrient level is less than what they start with when placed, or create several node definitions for every possible nutrient level, and don't store the node's nutrient level as metadata. Both of these are not preferable, but the latter would preserve the nutrient level. It may be possible to save the metadata when the node becomes an itemstack and transfer it back when it is placed, but that may end up being hacky and could act unpredictably when you attempt to put two of the same node-item with different metadata into the same stack (since they are both the same item registry entry, they should stack together - however I'm not sure if the item metadata is checked before the stacks are combined. If item metadata is handled properly, then this is not an issue and we can make all nodes with nutrient metadata drop an item with the corresponding metadata when broken, and restore said metadata when they are placed)
We could also add minerals such as "Niter", "Lignite/Bituminous Peat" and others, as well as items like "Ashes", which can be used to "amplify" the process of converting stone to organic matter.
But, what does this have to do with removing Torches?Well, some of the concepts from this could be used to design a "lantern" or other "burning node" which produces light and consumes fuel - you could have the lantern or whatever be given a "fuel" value, which is decremented by one every so often to keep the light going, and incremented when you input a fuel item such as coal (the increment would be related to the burn time of the fuel in a regular furnace, except the fuel would burn significantly longer in the lantern). Its GUI would consist of a single input slot and a "fire meter" like the furnace, and maybe an output slot for ashes if those are to be added as well.
This would replace torches in a sensible manner, and prevents you having to make a fire that lasts for some random time - you would be able to discern how long the lantern is lit, based on how much fuel you put in it. This could be complicated to implement in some areas, such as the conversion of fuel to the internal "burn time" value (properly handle someone putting in a whole stack of coal blocks, possibly by limiting the fuel value to some maximum number, and if the next fuel item would push the fuel value past that number, it is not consumed and added to the fuel value until there is enough "room" for the value to be at or below the limit when that happens).
It may also be a good idea to limit the maximum stack size for the fuel slot, since lanterns are small, and for balance - but this may be impossible. Again, I am not sure - if this is possible, that would be great, and so many other things would be possible by limiting a slot's maximum stack size (machine upgrade items which overclock the machines, increase energy storage or voltage/potential level - they may be quite OP or break the game, if for example the overclocker decreases the working time by half for each one and you put in a stack of 99, or if the "transformer" upgrade doubles the voltage/potential level of a power storage node and you put in a stack of 99, or the storage upgrade adds some static value to the energy storage, and you put in a stack of 99. Sure, we could just set the maximum stack size of the upgrades to 4 or something, but that would also make it difficult to carry enough upgrades for all 36 of your factory machines, which is not preferable)