Note that's just what I (and Direwolf20; apparently Padfoote as well) call it. It might not be accurate code-wise but it certainly works well enough for us non-modders
I actually got it from Way's MCF description of the Sigil of the Green Grove.
Note that's just what I (and Direwolf20; apparently Padfoote as well) call it. It might not be accurate code-wise but it certainly works well enough for us non-modders
Behind the scenes, all blocks receive - on average, every 180 seconds - a "random tick". Most blocks do nothing, but it is what triggers things like grass growth/death, ice freezing/melting, crop/plant growth, leaf decay, and redstone ore deactivation. Bonemeal is literally a direct "set the growth state" type operation. For obvious reasons, accelerating the former will have the effect of accelerating crop growth whether the crop is specifically coded for or not.Keep in mind that I'm not a modder, so I have no idea how this works behind the scenes. Pretty much the entire idea I have of this I got from watching Direwolf20's Lets Play series, and he's getting this from the Forgecraft Devs (and messes it up from time to time, he isn't a programmer either ).
From what I understand, there are two ways to accelerate plant growth in mods: bonemeal application and growth ticks. A large portion of the "old guard" mods use bonemeal, or check bonemeal, or something with their growth acceleration mechanics, which usually means they only work on saplings, wheat, carrots, and potatoes (and any mod plant that extends those vanilla classes). Other mods directly trigger growth updates (and here's where my understanding REALLY breaks down). What the second set of growth acceleration mechanics do is allow virtually assured universal compatibility with mod plants. The first set tend to be limited to the plants the mod author was conversant with (vanilla + their mod), which severely limits their potential for use in farming in a heavily modded environment.
My standard test is to grab a cactus or reed and see if that works, then an ender lily. If the mechanic works on both, I'm pretty certain it "uses growth ticks". If it works on only the vanilla plants then it usually "uses bonemeal" and the author stuck an exception in for cactus/reeds. Note that's just what I (and Direwolf20; apparently Padfoote as well) call it. It might not be accurate code-wise but it certainly works well enough for us non-modders
Do the blocks that resist bonemealing do so because they detect bonemeal (or its constituent effect) being used on it, or simply a change in their growth level tag? That's always been a point of curiosity for me, mostly because I like the idea of having a machine that has a small chance of instantly growing (orhterwise, another roll to see if any growth at all is added) any and all plants to full maturity without having to bother with growth ticks. Tick-based systems just...rub me the wrong way.Behind the scenes, all blocks receive - on average, every 180 seconds - a "random tick". Most blocks do nothing, but it is what triggers things like grass growth/death, ice freezing/melting, crop/plant growth, leaf decay, and redstone ore deactivation. Bonemeal is literally a direct "set the growth state" type operation. For obvious reasons, accelerating the former will have the effect of accelerating crop growth whether the crop is specifically coded for or not.
You'd best start believing in tick-based systems... yer' in one!Do the blocks that resist bonemealing do so because they detect bonemeal (or its constituent effect) being used on it, or simply a change in their growth level tag? That's always been a point of curiosity for me, mostly because I like the idea of having a machine that has a small chance of instantly growing (orhterwise, another roll to see if any growth at all is added) any and all plants to full maturity without having to bother with growth ticks. Tick-based systems just...rub me the wrong way.
(Most) blocks have two parameters, their ID and their metadata. Metadata is used in many blocks for "subtypes", be it wool color, wood color, stone type (1.7+), redstone wire strength, fluid flow state or crop growth. Normally this is slowly incremented for crops. Bonemeal is literally "setBlockMetadata(7)" in pseudocode. This is coded into the ItemDye class, where it explicitly checks for every bonemealable plant in vanilla. The only way to make bonemeal grow mod crops is to either add a "on block right clicked" function to the block class (and check player's currently held item) or to watch Forge's BonemealEvent. So, put another way, bonemeal is by default not supported, and its support must be explicitly added by the crop or someone watching the event, as LegacyCraft does.Do the blocks that resist bonemealing do so because they detect bonemeal (or its constituent effect) being used on it, or simply a change in their growth level tag? That's always been a point of curiosity for me, mostly because I like the idea of having a machine that has a small chance of instantly growing (orhterwise, another roll to see if any growth at all is added) any and all plants to full maturity without having to bother with growth ticks. Tick-based systems just...rub me the wrong way.
Philosophical discussions about whether the universe is event-based or tick-based, alas, aren't on-topic, and would make the mods yell at us.You'd best start believing in tick-based systems... yer' in one!
That is, Minecraft is a purely tick-bases system when it comes down to machines, aka anything that isn't either you, food waiting to be killed, or that thinks you're food.
Fascinating, thank you!(Most) blocks have two parameters, their ID and their metadata. Metadata is used in many blocks for "subtypes", be it wool color, wood color, stone type (1.7+), redstone wire strength, fluid flow state or crop growth. Normally this is slowly incremented for crops. Bonemeal is literally "setBlockMetadata(7)" in pseudocode. This is coded into the ItemDye class, where it explicitly checks for every bonemealable plant in vanilla. The only way to make bonemeal grow mod crops is to either add a "on block right clicked" function to the block class (and check player's currently held item) or to watch Forge's BonemealEvent. So, put another way, bonemeal is by default not supported, and its support must be explicitly added by the crop or someone watching the event, as LegacyCraft does.
And for anyone curious, here's the non-pseudocode version (at least for the moment; I'll probably delete that javadoc eventually, so don't rely on it). For completeness, don't forget to look at BlockSapling.markOrGrowMarked() and BlockCrops.fertilize().[...]Bonemeal is literally "setBlockMetadata(7)" in pseudocode.[...]
Philosophical discussions about whether the universe is event-based or tick-based, alas, aren't on-topic, and would make the mods yell at us.
so the Planck TimePre-big bang, it was event based as time did not yet exist. Currently, it's tick based. There's a maximum possible speed (light in a vacuum - m/s), and a minimum possible distance (Planck length - m). Therefore, the maximum possible speed divided by the minimum possible distance is the smallest discrete unit of time allowable - the "tick" for reality.
Though, the speed limit of the universe is all relative. Warp spacetime enough, and you can, to an outside observer, move faster than the speed of light while, from your perspective, you're moving only a tiny fraction of that speed.Pre-big bang, it was event based as time did not yet exist. Currently, it's tick based. There's a maximum possible speed (light in a vacuum - m/s), and a minimum possible distance (Planck length - m). Therefore, the maximum possible speed divided by the minimum possible distance is the smallest discrete unit of time allowable - the "tick" for reality.
Though, the speed limit of the universe is all relative. Warp spacetime enough, and you can, to an outside observer, move faster than the speed of light while, from your perspective, you're moving only a tiny fraction of that speed.
Also, is it a known hard limit to the smallest amount of time allowable, or an arbitrary unit created because handling anything smaller would require precision the likes of which we can't yet achieve?
And I rather doubt we can.It's as hard a limit as we can conceive of. We actually can't measure things at the Plank scale yet, or even close.
Also, is it a known hard limit to the smallest amount of time allowable, or an arbitrary unit created because handling anything smaller would require precision the likes of which we can't yet achieve?
http://xkcd.com/1352/Pre-big bang, it was event based as time did not yet exist. Currently, it's tick based. There's a maximum possible speed (light in a vacuum - m/s), and a minimum possible distance (Planck length - m). Therefore, the maximum possible speed divided by the minimum possible distance is the smallest discrete unit of time allowable - the "tick" for reality.
It gets better! Scientifically speaking, Time is a non-issue. Nothing changes in the universe if the concept of time vanishes, except history. And thus, time really only matters for "Human" sciences, as we are firmly rooted in the concept of time.As confusing as science gets after the big bang, the philosophy that gets bandied around when you talk about "before"? Yikes.
This thread is basically the general science thread as it turns out. Kinda like how over on the KSP Forums they have a whole board for science, but since the FTB Forums are on topic for about 5 minutes a day, this is now a science thread.I just want you guys to know I love ya. It ain't often I can have an intelligent discussion with people. *brohugs everyone*