TeamPorcupine / ProjectPorcupine

Project Porcupine: A Base-Building Game...in Space!
GNU General Public License v3.0
484 stars 279 forks source link

Ice? Solid, Liquid, Gas or Plasma? #619

Open fre-ber opened 8 years ago

fre-ber commented 8 years ago

When seeing the ice raw material in game, I immediately asked myself "Is it water ice or ammonia ice?" I assume that the answer, in this case, is water ice, but then it struck me - maybe it would be cool to let our raw materials have different states. As in water can be used for cooling things when frozen but it can't be consumed by characters to replenish them, unless hacked into cubes and dropped into margaritas. ;-)

Do we want a mechanic for this? We don't necessarily need to stick to the physiological states, perhaps we could add various other states like "refined". But then again, maybe we want to liquify our refined iron ore...

I don't know, just thowing it out there.

GamerGeeked commented 8 years ago

I like that. Maybe a heating/cooling furniture for changing states, and if ice left out too long, it will melt. TL;DR - We need to involve a temperature system

Sommerbo commented 8 years ago

States and temperature sound fun. Issues #295 and #298 are discussing temperature modelling.

koosemose commented 8 years ago

Would this even need a separate system? It mostly just seems like a way to draw a relation between similar items. Assuming a Gas class and a Liquid class (and all plus maybe inventory can have Lua scripts attached), then a Lua OnUpdate could check the temperature and start destroying its current type and creating the other (so if Ice Inventory is sitting in a warm space, every update it will destroy, or damage some of the inventory, and spawn the liquid version, and so on). Or they could have some kind of "StateChange" tag, which contains what it changes states to under certain conditions, and let a master script handle them all together... I'm not sure if one way or the other would be more efficient though.

fre-ber commented 8 years ago

@koosemose Sounds like a good solution.