ExtrabiomesXL / ExtrabiomesXL

The ExtrabiomesXL Minecraft Mod
http://www.minecraftforum.net/topic/1090288-
155 stars 73 forks source link

Idea for Cracked Sand growth #50

Closed keybounce closed 11 years ago

keybounce commented 12 years ago

I love the idea of it spreading.

I like the idea of having to deal with it spreading.

I don't like the idea of it destroying a world.

Ahh ... I know. Edging.

The core of the wasteland contains CS. It spreads. But it spreads at different rates in different areas.

In the core, it will spread quickly if not completely removed. In the outer region of wastelands, it spreads slower. Outside of wastelands ...

Well, here's a problem. I would just say force rivers, beaches, or oceans around the wastelands, just like the current biome borders are done. But that doesn't work in Myst.

So what you need is for CS to move slowly outside of wasteland. Perhaps a function of distance from the wasteland. Enough that you can play "fight the CS" if you want, and don't have to worry about losing your world if you do not.

Decay is nice in Myst. But there are times that I want to play with landscapes, and I don't want decay. I have TF because I like the landscape as well as the new creatures and things; I don't want myst decay in it.

I made some unusual lands with Myst; I think much of the 1.7+ terrain fan-boys wants (not all) are satisfied with the unusual landscapes you can make there. But if I'm going for landscape, I don't want decay.

I can get lands with the EB biomes in Myst. I'm discovering that the generation in Myst is significantly different than normal overworld, and I may turn EB on in the overworld -- at least a test world -- to see what things look like there.

In other words: I don't want to have to disable wasteland for my world to be safe. And I want to, when I want to fight the wasteland, have it actually do something.

So it has to be that in the core of the wasteland, it grows quickly; in the outer regions it does not start but will grow, and outside it grows slower; the farther from the wasteland, the slower the growth until it is significantly slower than grass's regrowth rate (as you pointed out, dirt can't have any status stored, so the growth has to be slow enough for grass to dominate.)

ScottKillen commented 12 years ago

Thanks for all of your help with this, @keybounce

keybounce commented 12 years ago

Hmm ...

I'm beginning to think that the filler blocks in wasteland need to go back to CS instead of dirt.

I suspect that I can clean up a wasteland completely in just a couple of minutes, and never deal with CS again. And that's probably not a good idea.

So, another idea: In wasteland, or perhaps only in wasteland core, random surface grass/dirt/sand/sandstone will decay for no apparent reason.

In fact, that might be the defining point of wasteland core -- not that it starts with CS and wasteland does not, but that wasteland core cannot be made safe -- you have to make a two-wide or two-tall barrier around it.

ScottKillen commented 12 years ago

What if fill were CS and top block was dirt? (And cs could cause decay even with buried beneath dirt.)

keybounce commented 12 years ago

Ohh ...

And it fits nicely with the whole "spread under farmland", it spreads under farmland, dirt, grass, or mycelium.

Nice.

Ok, lets see about some rules:

  1. It spreads underground faster in wastelands, slower in non-wastelands.
  2. It will only spread from underground to a destination spot that is either exposed to sky on one of the sides or top, or is directly under a block that is exposed to sky.
  3. In the wasteland, it will spread to sandstone/sand/dirt/grass underneath any block exposed to sky.
  4. In non-wasteland, it will only spread to blocks underneath sandstone/sand/dirt/grass, not to underneath other blocks.
  5. The whole "I can spread to a block that has sun exposure on any side", or underneath such a block, permits it to dry out a dirt/grass wall and pass through it. Two-wide water will still stop it. (Since it can jump 2 spaces, one-wide water will not.)
ScottKillen commented 12 years ago

Faster spreading in Wasteland?

keybounce commented 12 years ago

Sorry for the two week delay.

Yes, I think that CS should be nastier in wastelands. You want it to be hard to remove from wastelands, but able to protect other lands.

I do like the idea of a wasteland starting with dirt on top, and turning into CS. I do like the idea that wastelands have CS all the way down to stone, while other lands next to wasteland will only get two meters of CS (and you can dig out some dirt to recover the land ... now if only there was a way to regrow grass without using torches and many game days.)

AnonTheMouse commented 12 years ago

I'd like to suggest that rain have an effect here, too. Or, more specifically, varying effects.

First, in the "core" area, it does nothing. In outlying areas of the wasteland, it can, slowly, convert CS to sand. Further out, rain may cause CS to turn to sand, or infrequently, to dirt.

(Other thoughts: Possibly CS should not spread to biomes below a set temperature, due to it being too cold to dry out? Should there be a "Frozen Wasteland" variation, with Permafrost in place of Cracked Sand, that spreads opposite [in darkness and snow] and cannot go into warm areas? Maybe there could be a climate "sweet spot" that gets neither dried nor frozen?...unless it risks getting overgrown [kudzu?].)

ScottKillen commented 12 years ago

Wow. @AnonTheMouse bring some interesting complexity. I can't wait to hear @keybounce thoughts...! ;)

Thank you!

keybounce commented 12 years ago

On Sat, Aug 18, 2012 at 9:29 AM, Scott Killen notifications@github.comwrote:

Wow. @AnonTheMouse https://github.com/AnonTheMouse bring some interesting complexity. I can't wait to hear @keybouncehttps://github.com/keybouncethoughts...! ;)

Thank you!

— Reply to this email directly or view it on GitHubhttps://github.com/ScottKillen/ExtrabiomesXL/issues/50#issuecomment-7845887.

Rain rehydrating cracked sand? I love it!

So what would the result be? Do we want rain to turn sandstone into sand? Just imagine what would happen if it fell, and how many blocks should fall.

I think that rather than "it can't spread to cold areas", the rule should be about the dryness of the biome and space. I like the idea that it spreads faster in drier areas, and slower in wetter areas. But I also like the idea that what it turns into when raining should depend on wetness.

Wetter areas, it is more likely to turn to dirt. Combined with slower dehydration in wet areas, and you have a natural repellant to cracked sand. Suddenly it can no longer destroy a server -- it is now safe for 24/7 systems.

Equally, when raining, CS cannot spread or dehydrate -- rain is "grass grows, cracked goes".

I do like the idea of frozen wasteland. I like the idea that the block in frozen wasteland spreads based on temperature, while the block in normal wasteland spreads based on humidity. Right now neither is used normally.

So what biomes are "hot, wet"? Is that Jungle? It would be "immune" to both ...

Political and economic blog of a strict constitutionalist http://StrictConstitution.BlogSpot.com

This message may have been spell checked by a laptop kitten.

AnonTheMouse commented 12 years ago

I'm not sure I would have rain effect normal sandstone. There's not really a precedent for that changing back, while the hydration recipe for CS does make a logical consistency for it to do so. Also, the fact that natural sandstone mainly occurs at the lowest levels of sand suggests it is formed under a great deal of pressure, which again reduces the likelihood of it being permeable to rainwater. Plus, I personally think that the creatable building blocks, like Sandstone and the hypothetical Cracked Sand brick, should be left safe to work with.

keybounce commented 12 years ago

So we have CS drying out the land, and the land not getting wetter until it is fully CS'd?

Hmm ...

The real issue is, "is this sand/sandstone because of CS?". If it is, we'd want rain to hydrate.

Right now, I can take a CS block, place it in the desert, let it dry out, and then with this idea let it get rained back to dirt. That will allow us to turn the desert into glass -- err, grass :-).

I think the best answer is:

  1. Rain will rehydrate CS.
  2. Rain will rehydrate "dryable" lands that are next to CS, on the assumption that they dried out because of CS. 2b: This will have a biome dependent limit -- won't get wetter than sand in the desert, won't get wetter than dirt in lands that don't have grass normally. This can be determined by the biome's surface block -- if it's grass, you go to grass. If it's sand, you go to sand. If it's something else (such as dirt or mycelium), you go to dirt. And if it's CS, ... well, actually if the idea is that wasteland has CS filler and dirt surface, that works. 3: The rate of this depends on the biome/block temperature (Or humidity?)

So, the questions: Does biome humidity affect rate of CS spread? Should biome temperature affect the rate of rain rehydration?

keybounce commented 12 years ago

In fact, let me add the idea of "hydration level" to cracked sand. This is exactly the same concept as farmland.

Rain increases hydration levels. If (as I understand) rain is an on/off flag for the whole world, then the rate should depend on the local humidity level -- high humidity levels go up faster, and dry areas (desert) does not go up from rain at all.

Water on the ground, at the same level or above it, increases hydration very fast. I think that unlike farmland, this should be a shorter range -- perhaps 2, perhaps 3. Or, perhaps it can be 4, but will not go through CS -- so if you have a CS block between you and the water source, you ignore that water source. (Might be computationally impossible.)

When the hydration level is high enough, CS has a chance to hydrate. The destination block -- Sandstone, Sand, or dirt -- depends on what the hydration level is when it decides to rehydrate.

So: On block tick:

  1. CS determines if it is raining, and if so, adjusts hydration.
  2. CS determines if there is water nearby, and if so, adjusts hydration.
  3. CS determines if the hydration level is high enough, and if it wants to "wait" (wait is more likely to happen if both not up to the "dirt" level AND either raining or water nearby). If not waiting, transform.
  4. If you did not hydrate, and did not transform, then you need to dry out (no water, and you are still CS).

Result: You can re-hydrate CS with water on the ground or rain. It is more likely to wind up with dirt in this case (water on ground) because it will likely take longer (and absorb more water) before it changes.

keybounce commented 12 years ago

Ack, and of course, I re-read the earlier comments.

As I understand it, none of the other blocks in the sequence -- sandstone, sand, dirt -- have any concept of hydration levels. So while you could say that rain will update CS, SS, S into D based on proximity to CS, that isn't the same as storing hydration in the CS and using that to update what it turns into.

I think there's an answer somewhere between these two, but I don't know it/can't see it.

Solaria-zz commented 12 years ago

I think that too many factors are being involved here. You have:

They need to be addressed separately. And I also think that if you are going to include a 'spreading' and 'conversion', it should be optional - but separate options. Hydration is a neat idea. I could see complaints at a later date addressing these if people are playing casual or building something and not wanting to have to deal with the spreading or worry about blocks turning into different things. Having these two things 'optional' is key.

+Hydration <-----> CS conversion

+Spreading <-----> CS converstion

+Spreading <-----> Hydration

</br/>


Hydration <-----> CS conversion Don't make this too complicated. You do not want to deal with a lot of questions on 'why' and 'what ifs' after it has been implemented. It needs to be exactly systematic so it is easy to understand or figure out on an adventure if people do not want to know ahead of time. This is a new thing that will draw a lot of attention because I have yet to see it in any other mods. So just be prepared for this.

Instead of relying on SS, you are going to have to make a 'new' block as to not interfere with SS. Sure, give it the same characteristics and a skin close to SS. But you are not going to want to mess with SS. It is too big in the game, and you are not going to want to confuse people - especially if they are going to involve other mods that tamper with the 'main' blocks of MC.

I like the idea of having a conversion from CS to a 'SS'. What about 'mud'? And it turns to 'mud' for 10-15min RL time and then back to CS during/after it rains? Maybe some spots turn to 'quicksand' and then stay that way?

If you go with the 'mud' - which is really neat imho - one could have the potential to farm in the CS wasteland. Add a water cube - like farming wheat - and it would 'hydrate' aka turn all blocks in a 3 block radius to 'mud' so you could plant on it. If you remove the water, the mud dries up and crops get destroyed.

Also, it would give people a reason to fine a wasteland and take CS with them. They could use to for decorative purposes in swamps, along rivers, or mob traps - referring to the 'mud' part of course.

I like this idea. A lot. It just needs a little more direction. I think using SS would be a mistake and too complicated because then you would tampering well-into other biomes and 'what-ifs'. It is used too often to be 'changed' easily by hydration variables involving water, humidity, and rain.



Spreading <-----> Conversion I think this is a neat idea. However, I would have it 'spread' after an X amount of dry days have passed. Perhaps it hasn't rained for 5 MC days. On day 6 is when the CS starts to spread at a decent pace. Blocks that have been placed by a player are unaffected by this spreading as to no interfere with any previous builds or creations. For every day after the 5 days, it spreads 10/20/30/40 blocks. As the days pass, it increases the 'chance' for rain. When it rains, it turns the blocks back to their original state. It's nothing complicated with turning blocks from one thing, to another, to another and back again. It is super simple and easy to understand.

When it rains: The blocks that have 'spread' just simply turn back to the original state of the block. For the main part of the wasteland, it turns to mud.



Spreading <-----> Hydration Rain: Any CS that has 'spread'/replaced any other would simply return to the previous state. (You can always make this more in-dept after this has been perfected and implemented).

Rain: Any CS that has be placed would turn to mud and then turn back into CS after a determined period of time.

Next to water: Any CS that has 'spread'/replaced any other block would simply ignore any standing/running water.

Next to water: Any CS that has been placed and is next to water or withing X blocks would recognize water and thus turn into mud until moved away from the water or the water has been removed.



EDIT: Question - when you are going to have it 'spread', are you going to have it go ON TOP of other biomes that it spreads to? Or is it going to replace the blocks? Would you have it replace the surface blocks and like 5 blocks deep? Or just the surface blocks?

AnonTheMouse commented 12 years ago

My main problem with involving Sandstone in the conversion range remains that it is too commonly used as a building material. I don't think that anyone wants to spend a whole lot of time importing tonnes of Sandstone (or worse, raw Sand to make Sandstone) just to have their epic fortress turn into a glorified dirt hut. While there is the "carved" Sandstone, it has a fundamentally different look, and may not always be suitable for the same design elements. The other alternative is working exclusively with slabs, which might work, but would make designing Sandstone structures unnecessarily tedious.

Solaria-zz commented 12 years ago

Thus why I suggested making a whole 'new' block. :)

keybounce commented 12 years ago

Hmm ...

So after sand comes "Hardened Sand"? Behaves like Sandstone, but has a different block id. Sandstone does not decay, but hardened sand does.

So it goes (farm, grass, mycelium) -> dirt -> sand -> hardened sand -> cracked sand

Then, cracked sand and hardened sand can have a hydration concept to turn back into dirt or sand. And, ...

That still leaves the question: Should sand that is next to HS or CS turn into dirt?

A different idea: I'm agreeing that sand shouldn't be in the sequence either.

Grass dries to dirt, fine. Dirt dries to ... hard sand directly?

Dirt dries to hard dirt. Hard dirt dries to hard sand. Hard sand dries to cracked sand.

That would turn every block involved into new blocks. It would mean that people won't see their desert landscapes ruined. (Good? Bad?). It would mean that wasteland can spread everywhere but deserts ...

Hmm...

I don't know that I like that. I kinda like the idea of a "wasteland world" of wastelands and dry, sand-bottom oceans, where the CS is spreading everywhere and cannot be stopped, only slowed / limited areas protected.

I don't know the answer. It looks like two different issues/ideas.

More later.

Solaria-zz commented 12 years ago

Keybounce,

What you are proposing is the entire world be affect by wastelands. If so, this would have to be an 'expansion' of EB. Or an option. But having the entire world be converted would be a big task and would change the game-play for a lot of people. I know you are talking about 'surface' blocks - dirt, sand, grass ect... I would consider this a different mod then EB IMHO.

What I suggested in my post above, would allow this affect in EB, but on a more minute scale. =)

So, essentially as you mentioned, it IS two different issues.

ScottKillen commented 12 years ago

OK...so lets focus on the gameplay and rules of how it should behave...not the implementation behind the growth. We have several competing algorithms here. I also like @AnonTheMouse idea of Permafrost and find symmetry in it. I will be rewriting this soon.

This thread is getting a bit cluttered with competing ideas, so, each of you please give it some thought and sum up your ideas in a design doc (nothing formal guys). I will read them and pick the best doc, or merge the best ideas from them all. If more than one of you want to collaborate on one DD, so much the better!

The DD can be ideas from this thread, all summed up. Formatting doesn't matter as long as it is organized enough to be understandable. The DD should relate a system for both CrackedSand and Permafrost. Symmetry is valuable. A DD that considers usage of the blocks relative to the growth system will tie everything together.

The main drive behind this is that I am having trouble separating everything on this particular thread.

Please keep it highlevel, with as few specific implementation details as possible.

The best ideas will get credit. The final design will appear on our DD git: oneone-whakaaro where others can offer comments.

ScottKillen commented 12 years ago

Cracked Sand currently has the capability to completely take over the entire world.

ScottKillen commented 12 years ago

For those submitting specs, please PM them to me on MCF. Thanks!

keybounce commented 12 years ago

I suspect that we may find the best thing to do is to open multiple idea / issue threads here -- it's like this one thread is now covering 4 or 5 different ideas.

I should have something written up in ... this is tuesday, wednesday is all booked, so I should have something up by friday night.

keybounce commented 12 years ago

Oh, one more idea to toss out: Should cracked sand devour quicksand? Right now it does not.

ScottKillen commented 12 years ago

@keybounce I'm looking forward to it!

Another thought...is QuickSand just overhydrated Cracked Sand? Can't wait to see the DD.

keybounce commented 12 years ago

And I'm letting you know that I'll be monday at the earliest.

Two most-of-the-day trips with my mother to the doctors. And finishing up a lets play episode editing for YouTube.

Quicksand as nothing more than over hydrated cracked sand? Then what happens to overly heated permafrost?

... No, I don't like it. Dirt -> intermediate -> CS -> hydration -> quick sand, instead of dirt? No thanks.

ScottKillen commented 12 years ago

No problem...I'll wait @keybounce @AnonTheMouse is also having some delays and I am not yet near the feature adding stage.

Shavahi commented 12 years ago

Might I toss in my two cents? I've been thinking about it and this is what I ended up with:

Saturated, XAverage HydrationDry, -XBone Dry, -2X
Stupid Hot
Bubbling Mud

Steaming Dirt
Dry DirtCracked Sand
Avg. TempMudDirtDry DirtCracked Sand
Below Freezing, -YPermafrostPermafrostPermafrostCracked Sand

Spreading of Cracked Sand would be solely dependent on the soil drying out. Each tick without rain or a nearby Water block reduces hydration, below -X hydration Grass/Mycelium/Dirt decays to Dry Dirt, below -2X hydration Dry Dirt decays to Cracked Sand. Permafrost decays to Cracked Sand below -2X hydration. Any Dirt placed in the Desert outside of an Oasis would eventually become Cracked Sand without irrigation.

Pretty much everywhere that is too dry on Earth ends up looking a lot like Cracked Sand. Even on Mars the surface looks like this; it's cold & dry.

Cracked Sand decays to Dry Dirt above -2X hydration, Dry Dirt decays to Dirt above -X hydration. So rainfall and/or irrigating with Water restores Cracked Sand to Dirt.

Permafrost is what happens when soil does not rise above freezing for 2 years or more. Below -Y temperature Dirt/Grass/Mud would convert to Permafrost IF hydration is above -X. Permafrost Decays to Mud above -Y Temp and above X hydration. Permafrost decays to Dirt above -Y temperature, between X & -X hydration. Permafrost decays to Dry Dirt above -Y temperature & below -X hydration.

Dirt Decays to Mud above X hydration. Walking on Mud is dangerous, if the player stops moving they will sink at similar rate to Quicksand, however the player CAN rise. Tall Grass, Cattails & Sugar Cane can grow on Mud, but nothing else. Clicking on Mud with a Hoe will convert it to Farmland at appropriate saturation without the need for a nearby Water block. Mud would make up beaches, river banks & ocean/river beds where Dirt would be. This could incorporate MRDNRA's Mudflats suggestion, just have a biome climate of high humidity & average to hot temperatures. This would also effect the dirt of Swamps & Marshes.

Bubbling Mud & Steaming Earth could be what happens when a lava block is within X blocks of Mud & Dirt blocks.

Er, okay that was not so much two cents... um... TL;DR? Hopefully the table helps.

edited to alter the progression of PF to CS added textures to table

AnonTheMouse commented 12 years ago

One thing to mention, permafrost is actually any ground that remains below freezing for two years, according to Wikipedia. That would make all of Mars, and the Moon, Pluto, etc...giant balls of permaforst. This is one thing that makes permafrost such a good contrast to Cracked Sand. It is essentially an opposite condition which creates the same results.

Shavahi commented 12 years ago

Hm... true, I was thinking of it more as the substrate in Siberia where Mammoths are often found, which is pretty saturated. I think I'll adjust the chart so that Permafrost skips the Dry Dirt stage & goes directly to Cracked Sand. I'd like for for CS to be as least as likely to occur as PF, so this model give 3 conditions which result in CS & 3 conditions which result in PF.

ScottKillen commented 12 years ago

Thanks @Shavahi

Shavahi commented 12 years ago

Oh, I just remembered that Red Cobblestone + 3 Buckets or Water = 4 Clay Balls. So perhaps the hydration would work for Clay/Redrock too?

Saturated, more than 2XNeither Saturated nor Bone DryBone Dry, less than -2X
Redrock decays to ClayNo ChangeClay decays to Redrock
keybounce commented 12 years ago

An important question:

What's my light level shows temperature and humidity for each square separately.

So it is influenced by biome, but not rigid by biome.

Are you able to have landscape alter the temp/humidity? Can it be restored afterwards if the land scape is restored?

What I'm thinking of: Permafrost is basically frozen land that doesn't thaw. It reflects more light, so the infected area is colder. At the same time that CS causes nearby lands to dry out, PF would make nearby lands colder until they "Freeze" and PF expands.

Equally, if you remove the PF, would it be able to restore the old temperature? Or is that information lost?

keybounce commented 12 years ago

Ok, I think I'll go with this basic idea: (There is a lot more being written up; this is just a quick intro if someone wants to run with this idea in a different direction).

Permafrost is deep cold plus some wetness. Cracked sand is deep dry plus some heat.

Permafrost spreads by reducing the heat of nearby areas (reflecting more sunlight); it is curtailed by heat (torchlight). It cannot spread into dry areas no matter how cold. It is further stopped by the presence of sun (spreads at night).

Cracked sand spreads by reducing the water (drying out); it is curtailed by water. It cannot spread into cold areas no matter how dry. It is further stopped by the lack of sun (spreads in the day)

As a special case, CS can dry out sand [s]and sandstone[/s]. As a special case, PF can "deep freeze" ice blocks.

ScottKillen commented 12 years ago

Temp/Humid s a biome functionality, unlike light level...there fore it cannot be altered by the landscape (or rather, it cannot do so effectively unless other temperature sensitive mods adapt compatibility...we should not rely on this)

I'm looking forward to your design doc, @keybounce

Please PM the design doc to me on MCF when you finish. Once I read it, I will have some questions and a proposal or two. I understand your time constraints and outside commitments (I deal with the same) so please take the time you need. The above was a good whetting of my appetite!

keybounce commented 12 years ago

I need feedback from anyone on this.

I'm doing a re-write of Permafrost from the view that it is nothing more than coldness, spreading by freezing, and lowering nearby temperatures.

Please comment

So, if Permafrost is nothing but coldness, independent of moisture, what is it like?

Well, the first thing is: Water is harder to freeze. Water actually takes more effort to freeze because of the water-ice transition.

So PF spreads differently when the temperature is over 32.

What is the spread of PF? I'm still going to go with the idea of "It's making it colder next to it". Somehow, it has to be making the regions that were warm enough to thaw into conditions where it can go into deep freeze.

So, I'm going to go with a strange idea: "Ice Layer".

I don't have a good idea on how they would form. But the presence of an Ice Layer on top of a block acts to reduce the heat level for the purpose of spreading PF. In sufficiently warm areas, the ice layer cannot stay around long enough for PF to spread. PF exposed to heat (including the sun) will thaw; PF covered by Ice will not. But the ice itself might.

So the basic ideas here:

  1. PF can spread into cold areas.
  2. PF somehow causes ice layers to form on neighboring blocks.
  3. A block covered with ice (layer or block) is treated as colder for the purpose of PF spread.
  4. Sunlight plus ambient temperature can melt ice layers. This requires a non-ice neighbor. A large patch of ice acts as a reflector, preventing melt. The more non-ice neighbors, the faster. The hotter those non-ice neighbors, the faster. The wetter (and above 40 degrees) of those neighbors, the faster -- warm water is the best anti-ice we know of.

So we have the following operation:

  1. On the surface, ice spreads out as a layer. It acts as a heat reflector. PF forms in the ground underneath the ice, and spreads out.
  2. In warm areas, in day light, ice will melt. In doing so, it melts from the outer edge inwards, acting as a natural barrier to the spread of PF -- just like night plus torches lets grass recover and delay the spread of CS.
  3. If enough ice melts, it will reveal PF, and expose it to the sun -- letting the PF thaw into the original block.
  4. Water can be covered with ice as a result of PF. If that water stays covered long enough, it can freeze into an ice block. This in turn lets the PF spread downward; this should be slow.
  5. Directly opposite this (# 4), the rest of the water will be warm enough to restrict ice.

What I see as the balance between 4 and 5 (ice on water): right now, I think ice blocks forms on water below 12 degrees. As PF invades, the existing ice blocks would become spreading PF ice, and ice layers would form on top of the ice blocks (deeper freeze), until it reaches the outer layer. Now we're into warmer waters, that will get ice layers, be considered colder, and then get ice below it; this will spread out until it reaches water warm enough to prevent spread.

Alright, this is very preliminary. Consider this a "not quite draft 0" stage.

ScottKillen commented 12 years ago

I like the ideas here...but in reality , ice often insulates and it can be relatively warm below the ice and out of the elements.

keybounce commented 12 years ago

Ice insulates? What will you say next, make a small hut out of ice? Make a giant hotel out of ice? Insulates? Baah.

Alright, need some other mechanic for reducing the effective temp of neighboring blocks to let them freeze ... grr.

(Yea, you're right. I forgot about it, but there is an Ice Hotel that gets rebuilt every year.)

Shavahi commented 12 years ago

What about cloud cover inhibiting ambient temperature & sunlight level? Smog (from fires, torches & mods which heavily rely on burning fuels), fog, volcanic ash clouds & nuclear winter? (I'm sure there's at least one mod that has uranium & nuclear reactors)

So it wouldn't be the permafrost itself that would cause the spreading, it would be the environment. So any dirt block anywhere can become Permafrost if the temp stays low enough for long enough. The permafrost would just require a lot of energy/effort to covert it back to dirt/whatever.

AnonTheMouse commented 12 years ago

I think that's basically what we're all shooting for, Shavahi. In practical terms, though, there's not much influence of player actions on the environment, besides moving blocks around. Temperature is considered relatively fixed. So the infectious nature of Permafrost becomes more of an abstraction, representing an area of cold that literally drains the heat out of its surroundings. There's a limit to how much heat it can suppress, hence why it would be unable to spread into certain environments, but otherwise effects a lasting change on the local climate that can be difficult to artificially reverse.

In my mind, Cracked Sand is harder to stop the spread of, but easier to get rid of once it's there, while Permafrost would be the reverse...not able as easily to get into an area, but hard to remove once present.

keybounce commented 12 years ago

OK, I need something clarified here. Scott, you've said that there is no concept of Temperature and Humidity outside of the biome itself. What's My Light Level is able to display a T and H value per block that does not purely depend on the biome.

I see ocean and extreme hills, mostly at 50/50, sometimes at 40/80.

I see a beach, mostly at 50/50, sometimes at 80/90 next to a jungle.

I see river that is 50/50 or 80/90

I see forest that can be 80/90 or 50/50

Then I see 200/0 in a forest!

Then, a foresthills at 200/0

Then a foresthills at 80/90

Then a forest at 120/90 Then 50/50 Then river at 50/50

Then river at 120/90 Then swamland at 120/90 Then swapland at 50/50 Later, swapland at 20/30 Then ocean at 20/30

I see beach at 20/30 and beach at 50/50

Desert at 20/30 ... and it's a good sized desert at 20/30 everywhere.

Elsewhere, a desert that is 50/50 over a large portion, and 200/0 in the area by the village.

In ice regions, there's an even bigger variation.

A taiga that can be 80/40, or 200/0 (both with ice in the water -- so much for thinking it was temperature based), or 50/50,

Etc.

So What's My Light Level is reporting large variations based on nearby biomes.

So: Is there a per-block concept, or is WMLL going crazy?

keybounce commented 12 years ago

Scott, would you be able to store a complete "subblock", and restore it later? If Permafrost could infect stone/cobblestone/stairs/slabs/anything, and later restore them to their normal state ...

Equally, are you able to "blue tint" an existing block in drawing? So for example, if a stone block were to freeze, could you draw it with a blue tint? If a lever were to freeze, could you draw it with a blue tint, make it non-switchable (since it's now a permafrost block that just looks like a lever), and later restore it to a lever if broken or thawed?

Shavahi commented 12 years ago

Oh! I love that idea @keybounce, if possible you could use a similar mechanism with CS, turning blocks dull grey-brown & having them unusable.

AnonTheMouse commented 12 years ago

Funny you should mention that, Key. I actually was working on almost exactly that (though to a lesser extent) with my concept. I figured that for most blocks, damage values should be able to give the appearance of a "frozen" block, the same way as each damage value of wool uses a different texture. Similarly, the engine should be able to recognize the DV on a frozen block, and convert it back to the associated block type when it "thaws". It's also definitely possible to have a block drop as something else when broken, as several standard blocks exhibit this behaviour. Going into things like levers might be tricky, though, since that would take something with a specific model, as I understand it.

ScottKillen commented 12 years ago

@keybounce Regarding WMLL...I've not used the mod, but maybe it is reporting biome coloring information? Obviously, as you said, whatever it is doing, it is not reliable...it makes sense that it is coloring, as when biomes border one another, minecraft extrapolates in between color values...You can see this in the leaves of a tree that that straddles the border of two biomes, or grass that does the same. (Each uses a different color map)

Regarding subblocks...I think I could make the permafrost effect destroy vanilla blocks in ways that are recoverable and mod blocks in nonrecoverable ways, providing that the mod author has not adopted support for the permafrost feature in their mod. If they do use the API and adopt permafrost compatibility, Extrabiomes would call their hook when it needs to affect the block...the othe mod would then handle what happens...this allows lots of opportunity for modders here. The "blue tint" may not be done...but if it can, I can hear the first request..."Open it up for texture pack authors to change the color."

@AnonTheMouse Yes...this would require a lot of work...but it might be doable...more practically, if blocks recovers to a similar block type, of which there were only a few types, it would be much easier. In this scenario, things like levers and redstone (and maybe even pistons and lamps) would just be destroyed outright by the permafrost...never to recover.

keybounce commented 12 years ago

Well, I found out from iPeer: WMLL's temp and humidity are based on stuff that is now out of date, has not been updated/maintained as minecraft updates (not his code being out of date; Mojang's stuff hasn't kept up. They apparently stopped doing anything with it themselves). It wasn't smooth enough to be the leaf/grass color information. WMLL is no longer even reporting them as of the most recent update.

Ok, so blocks with sufficiently complicated subtypes -- levels, dust, etc -- can't be stored and just get destroyed. What about stairs? They have all their meta data in use to store orientation and upside down, so they are as complicated as they get -- and it's reasonable to have them freeze without being destroyed.

(Not to mention the whole rotatable wood logs that will freeze in place).

So is freezing arbitrary complicated blocks DOA?

keybounce commented 12 years ago

Alright, a different idea. We know that blocks can have "containers" -- chests, furnaces, etc, that can store arbitrary blocks.

Can a "permafrost" block have a container, that stores the original block -- and then when the client needs to display it, use that original block information for the display?

That's not as silly as it sounds. Risugami wrote "Shelfs" for single player. It basically does this -- and it alters the appearance based on what is contained in it. But it fails in multiplayer and 132 because it has no extra data until you interact with it.

Do you have a way to solve that -- to get a block whose appearance depends on sub-information -- to display correctly without player interaction first?

If so, you solve this AND shelfs multiplayer.

If not, well, we need to know what can be done with freezing blocks.

keybounce commented 12 years ago

ATM, what about only freezing "basic" blocks -- smooth stone, gravel, sand, dirt, farm, grass, mycelium? Should we freeze ore blocks? I envision that a frozen ore block -- if we could do it -- would mine with a stone pick or better, and drop a frozen ore block. Smelt a frozen ore block, and recover a normal ore block. This is both a silk touch work-around, and a way to mine stuff out of stone that normally would require iron.

I'm assuming that frozen stone requires stone to mine, not wood.

What else would make sense to freeze? Cobblestone? Mossy stone? Silverfish blocks -- would they freeze as ordinary blocks with the silverfish dead? Wood logs? Wood planks? I'm assuming leafs would die. Slabs? We've got a huge number of slab types now ...

keybounce commented 12 years ago

Scott, if there is no ability to do any sort of sub-block, if all we can do is have a single "Permafrost" block ID, how many different subblocks/subtypes can be distinguised? How many different images can we have? (Implies how many block types can be defrosted out)

... wondering if frozen pistons would just break ...

ScottKillen commented 12 years ago

The container idea has potential...

Simple metadata allows variations. Tile entities can contain whatever data we want...tile entities are used for containers, but also things like Redpower microblocks that have many many subtypes in a few block ids. Containers and redpower microblocks use the same extended storage technology...which is necessarily a resource hog.

So, potentially we could store the information needed to recover the orgianal block. All we need to store is blockID and metadata. The tricky part is what to do about blocks that have tile entities already associated with them...placed chest have an inventory, but a chest itm in your inventory does not. If we only store blockID & metadata, then the recovered chest is empty.

All of this, you can imagine, gets exceedingly complicated the more mods interact...and longer to code, and harder to program...In such a case, CS & PF threaten to take over the mod itself... ;)

ScottKillen commented 12 years ago

Would it be prudent to use thaumcraft decay as a precedent?