Posts by UberWaffe

    Zjarek:
    I'm not particularly attached to my current proposal for chemical engineering. :P
    The idea as is (Multiblock reactors, Heat/pH/Water/Concentration, reactions, etc.) was born out of a combnation of:

    • My ignorance of chemistry
    • K.I.S.S. (Keep it simple stupid) approach
    • CPU-load considerations
    • Personal plebtasity


    Again, I'd love to hear other suggestions on how to do this.



    @I don't know:
    I like the idea to use scrap in reactions. The random concentration (and by extention, the idea to make other/more reagents have random properties 8| ) is pretty neat.
    My suggested method for concentration would make no distinction between different materials, rather the concentration is tied to what reaction you are currently using.
    (I.e. a reactor can only run one reaction at a time, so you can only add the stuff related to that reaction.)
    (I'll try to draw up some picture mock-ups of what the system could look like, in the next few days.)
    In terms of balance then, you can simply limit what reactions scrap can be added to. (I.e. the really good-stuff reactions don't allow scrap.)



    [EDIT]
    Reading through the old posts again, and giving it a second runthrough in my brain, I came to realise that not all reactors have to be equal in terms of what they need.
    To be more specific and clear, I realise that not all reactors have to have pH/Heat/Concentration/Water.
    In fact, one could simply define that all reactors have a ReactionVariable 1 to 4.
    What text is displayed to the user (Heat, pH, Concentration, Water) can be defined per reactor.


    For example, a pressure vessel could have "Pressure", "Mass", "Heat" (does not always require 4, can have less)
    A mixer could have "pH", "Water", "Mass", "Density"
    A magic cauldron could have "Chicken Guts", "Chakra", "Manna", "Cake"


    It would provide more flexibility in terms of naming and realism, though introduce more complexity with defining reagent effects.
    I.e. reagents would define Param1 to Param4 changes, though Param1 for a pressure vessel is pressure and Param1 for a mixer is pH, so making the reagent usable in both could complicate things.
    Though, it places the added complexity in the hands of the modder, not the user, so that should be possible to manage.


    [/EDIT]

    3Davideo:
    Why not? As long as it is balanced properly I see no reason why not.


    Zjarek:
    Well, no particular reason for pH. As stated with the bakery example, it probably does not make the world of sense.
    The basic idea here is simply a gameplay element with three to four variables that you have to keep within their respective ranges to get it to succeed.
    The closer you maintain the values to optimal, the more you get out. Arguably you could use the same basic idea to do potion mixing, or cauldron brewed spells, or anything really.


    As for water, I purely suggested it given my experience in mining.
    Water is often used as a transport medium (slurry = solid particles suspended in a liquid, typically water). And even when not directly used in the reaction, often used in other ways.
    For instance, cooling for furnaces (transporting heat away), heating for distillation columns (bringing heat by means of steam), even dust supression.
    Industry uses 22% of water consumption


    Overall, I figured that a simplified version of chemistry would make it more accessable to the average player, given the sheer complexity that chemistry can entail.


    So in short, I'd love to hear your suggestion for a replacement system, just don't make it unfathomable for the rest of us. :P

    CrazyCrafter:
    Well, that entirely depends on how you program them.
    For example, why don't the dirt/sand/cobblestone/stone/etc. blocks create lag? There are thousands upon thousands of them! Why doesn't a large cobblestone house cause lag?
    Simple answer? No iterative code running on each block.


    Similarly, even if you made multiple chemical reactors, each a multi-block 'object', if you write it in such a manner than only one block does the processing, then no real issue.
    Similarly, if you want to check for the reactor being 'broken' by a player mining a block from it, you can simply have a new block type, that has no "Execute on tick" code, but triggers some response upon the event of being 'broken'. This new block would make up the majority of the shell of the reactors.
    On a multi-block reactor, typically only a few blocks would be executing code per tick. Likely these would be: Reagents input, Product output, Water input, Heat Regulation, Animation block (if any). So say between 4 and 8 blocks, depending on how many heat regulation (heat-sink) blocks you want a reactor to have. (Maybe even 3 only? If you define a reactor that you cannot control the heat of, except through reagents added.)



    3Davideo:
    A Massive bio-fuel refinery would be awesome.



    BillJoehobo:
    I doubt that the code will classify as 'difficult' (if you are talking in terms of technical complexity). It isn't much different than a recipe, or a furnace 'what-is-smeltable-into-what' table.
    But if you are referring to the amount of effort and work, then yes, I have no misconceptions that it will be a lot of work to implement.



    NuclearStudent:
    Sure. Why don't you draw up some mock reactions? We can work from there.



    MagusUnion:
    I also hope someone will give this a bash. I certainly will once I have time again.
    In the mean time I'll try and drive the design through the phases, so at least what it is we are aiming for is well defined.

    Quote from Sebra

    Should nearby reactors exchange heat?


    Yes, definitely. Ever since you suggested it on page 1 I thougt that would be a neat mechanism.
    I would make it so that you need heat-exchangers though (special blocks) that simply try to balance the heat of all adjacent blocks.
    (Specific goals #1: Heat-Exchanger given quick mention.)


    Quote from Sebra

    Should they exchange heat with Nuclear Reactor, Metal blocks?
    Should they gain/lose heat contacting with Lava/Water? With working processor, furnace, other mods furnaces?


    Heat could be made a standard like EU, but you would still have to code it in.
    I suspect given that one would have to code all such interactions it would take time to get total integration.


    I'll assign in detail what mechanics/items/blocks/ideas have to do with what goal, once all goals are defined.
    A shortened explanation of how a project works:

    • Decide what you want (Goals)
    • Decide how you are going to get what you want (How to)
    • Decide who does what, when and exactly how (Detail plan)
    • Do it (Work, work, work...)
    • Celebrate (This step typically performed by management that had nothing to do with the project, but take all the praise. :P )


    We are now in step 1.
    (I'll avoid the whole 'Must', 'Should' and 'May' approach for goals, unless nobody can agree on order of implementation and importance.
    What the bleep is Must, Should, May goals? )
    So once we get to step 2, I'll consolidate all the ideas under each goal. That way we can easily see what goals we have no ideas for yet.


    Note: Flying to Madagascar tomorrow, so may not be able to drive this until I get back. Hopefully I'll still get time.
    If anyone else wants to give this a go (like trying to code it) in the meantime, feel free.


    I thought of perhaps using the Minechem as a base for this, but the mechanic of not having to mine for raw materials irks me a bit.
    This is still meant as a suggestion for IC² though, so I'm not sure what the policy of introducing other mod dependencies are.


    ejkozan:
    Good suggestions. Thanks.


    @Everyone:
    I realised yesterday that the proposed idea (chemical engineering) lacks vision and goals at the moment.
    As in. why should it be implemented at all? Why would a user spend effort in pursuing it?
    Other than stating "Add some chemical reactions to IC²", it has no real goals, either general or specific.
    (Kind of like we said that we want to go on a roadtrip, but haven't figured out where we want to go yet.)


    To that end, I'm going to try and slap together a mission statement (I.e. what we want out of this mechanic/addon).


    Chemical Engineering Addon Mission Statement
    General Goals:

    • Add simplified chemical reactions as a new mechanic to Minecraft (New Mechanic is essentially a balancing act of several values)
    • Provide players with a means to supplement mining, throughout game.
    • Provide players new content to game, throughout game.
    • Provide players means of increasing output from mined/farmed blocks/items.
    • Allow integration with redstone and other control mechanics (Reactors have redstone signals for high/low pH, Water, Heat, etc.)
    • Allow integration with EU system (Heaters, coolers, agitators, etc.)
    • Allow affecting of environment (Exploding tanks, poisoning entities, dissolving blocks, etc.)
    • Supplement existing mechanics in IC² (In reactions make use of centrifuges, furnaces, etc.)
    • {Uncertain} Redo existing ways of obtaining certain items to include some chemical engineering
    • {Uncertain} Expand mining methods to include chemicals (like using super-acids to break blocks, etc.)
    • -- Insert your idea for a goal here --


    Specific Goals:

    • Create mechanics to control heat (Heaters for EU to Heat+, Coolers for EU to Heat-,Heat Exchangers for Heat.average, etc.)
    • Create items for manipulating pH (Bonemeal, Milk, items produced via reactions, etc.)
    • Create food and beverage processes. (Automated baking, automated food-in-a-can, etc.)
    • Create metal ores from large quantities of 'junk' blocks. (Copper/Tin/Iron/etc. from Dirt/Sand/Gravel/Cobble/etc.)
    • Create fuel from plant matter (Bio-fuel from sugarcane, etc.)
    • -- Insert your idea for a goal here --

    Nice ideas. Never even though about how modern chemical plants condense gases out of the atmosphere using pressure and temperature.


    Once enough brainstorming has taken place, I'll try and make a consolidated list of all proposed reactions/reactors/reagents/etc.

    Maybe add yellow dye to the uranium process when you make the cake so it's yellowcake uranium?


    Clever, I didn't even think of that. :D


    I also like the other reactions. All brainstorming welcome...
    ...
    ...
    I'm going to regret that, aren't I? :P



    Acids and alkalines for changing pH will probably need to fall into 'Strong', and 'Weak' at least, for rough and finer control.
    I figured that one would use something renewable for the 'Weak' category at least, to allow for renewable reactions, or at least the means to control more accurately.


    To this end, I considered Milk and sugar.
    Sugar, it turns out after a Googles-of-revealing (<- See what I did there? It's so funny. Everyone should laugh... ... ... No? Not even a chuckle?) that sugar is neither acid or alkaline, so scrap that idea.
    Milk (the unpasturised kind that still has lactic acid producing bacteria) can be argued to be 'refineable' to a weak acid. Similarly, milk contains calcium, which is an Alkaline (I think, definitely when in Calcium Hydroxide form).
    So with a really cheap and small reactor could run a reaction that produces both calcium and lactic acid from milk.
    Voila, renewable weak acid and base. Maybe -0.1 and +0.1 pH. But numbers unimportant for now. :P
    (And yes, I understand that It is likely that in real life neither of those are 'weak', but in response I argue MinecraftCreeper )

    Since there seems to be interest in this, I figured starting to define some reactions/uses is perhaps a good idea.


    For now exact numbers (balance) and how (what reactors used, user actions required, etc.) are irrelevant, but rather we should just aim to brainstorm some reactions we want.
    Again, they need not be specifically 'chemical' in nature (Food and beverage reactions, or ore smelting reactions, or even WMD is all fine).


    So, for round 1 (Brainstorming) of the design process, I'll start off with some reactions.

    [OT]
    kevindude:


    [/OT]


    @Everyone:
    Thanks for the praise. I don't deserve it, but thanks anyway. :P


    If Alblaka does not want to or does not have the time, I'll give it my best (but still pitiful) attempt as an addon. :P
    I'm sure the core IC² mod team has more than enough vision to code into reality, to spend time on this tangent but I still hope they will. :D
    Trying to get mod forge and MCP set up before heading off on the trip, then perhaps I can use my time off to slap together some noob java code.



    Edit:
    I was thinking about 'catastrophic failures' earlier on. Would probably define some generic 'Kaboom' situations, such as poisonous gas, explosions, and such.
    A reaction could then be defined to call such an action, as opposed to just making something.
    Example:
    Reaction.Kaboomy:
    Ranges { Heat: 1000, 9999; pH: 0, 14; Concentration: 0, 100 } //I.e. any really high heat.
    Cause { Concentration: 0, 0; Heat: 0, 0; pH: 0, 0 }
    Produces Action { Reactor.Action.Kaboom }
    Time { Ticks: 1 }
    Accepts { } //Blank means accepts nothing. No need, just blowing up, who cares what is inside?

    Excuse my ignorance in this regard (compact solars), I've not yet played IC² SMP.
    I see this discussion about compact solars a lot, and understand the two sides to be 'CPU load' vs. 'Space used'


    But I remember that while lurking Alblaka once mentioning that a possible way to do large solar arrays without slowdown would be to use a central 'hub' that does the processing, while the arrays themselves become fluff that boost the central 'hub'.


    That way the 'hub' only has to scan around itself (say within 7x7x1 block) every 2 minutes (give or take a small random interval) or so to count the fluff solar panels (that have clear sight to sky) and update an internal value.
    The hub would then act as a compact solar panel does now (checking for day/night, outputting EU/t, save CPU load, etc.) but still use the normal amount of space (due to fluff).
    Fluff blocks would literally have no 'OnTick' script running on them at all, like a dirt block, and could be made to look like a flat solar panel + wire in one block (maybe crafted from a solar panel + insulated copper wire, so that resource cost is also covered).


    Has anyone tried to make an addon like this?
    I took a glimpse at the source for compact solars, but have not had time to really pull it apart to understand it and try this.



    Also, where is Alblaka's IC² Todo List? Haven't found it on the wiki or forums.

    [OT]

    Reading all of this a few times, I could swear that you're a chemical engineer yourself;


    Close. Control System Engineer. So I'm just a pleb, not a genius. Chemistry and I don't actually get along all that well.
    [/OT]


    Quote from Mister_Omega

    ...Add-on, maybe? If not implemented into core IC2.


    I'm starting to look into MineCraft modding, and have taken a quick glance at the IC² API, so maybe given time I could try.
    Heading to Madagascar for a small project though, so probably will not even get to start until I am back in 3 weeks.



    Quote from Mister_Omega

    this is a spectacularly well-thought out idea


    Thanks. :thumbup: But I think it is more a case of new avenue gives lots of possibilities, rather than well conceived idea. There is probably a better way of doing this.
    (For example, in the bakery example I use below, pH does not make the world of sense.)


    Quote from Mister_Omega

    and an excellent end game time eater


    Well, it need not be just endgame.
    A single reactor early on, running simple reactions that don't need much heating and pH management could be viable to boost mining income a bit.
    I.e. early game you probably can't automate, but you can manually watch over the reaction.


    I would probably define three tiers of reactors, scaling up in cost and reactions they can do. (I.e. cheap-and-limited to expensive-and-versatile).
    Tier 3 reactors doing complex reactions would probably need the outputs from tier two reactors as inputs, and similarly tier 2 from tier 1.
    For example, let us consider a three tier bakery.


    Tier 1 { Mill } -> Tier 2 { Dough Mixer } -> Tier 3 { Continuous Oven }
    (Note, the Mill, Mixer and Oven are all 'reactors')
    Wheat -> { Mill } -> Flour
    Flour + Water -> { Dough Mixer } -> Dough
    Dough -> { Continuous Oven } + Heat (Added to oven) -> Bread


    And from this example, I can already see it would make sense to have water as a parameter of all reactors/reactions.
    Water is, afterall, the most versatile and precious substance on the planet. It just isn't that expensive given its abundance.
    Heck, I mean even large industrial furnaces use water (Not inside, that makes it go 'Kaboom!'. But for cooling of the outer shell).

    Quote from &quot;Sebra&quot;

    Recipes would be hardest. You need to describe how each material reacts with each in each condition. For example Iron with Coal in right temperature and proportions produce Steel with some rate. You need quite skilled Chemist to describe it all with a slightest sign of realism.


    Yes, to some degree. You don't have to describe each material with every other material, in each condition, just how each material usable (I.e. limit the subset) affects the three (or four) parameters [pH, Heat, Concentration, (and Pressure)]. Reactions would likely be defined seperately.
    Well, at least that is how I would do it for the sake of simplicity. Realism doesn't always equal fun.


    I.e. If I was to code it, I would define a reaction (similar to a recipe).
    A reaction would state:

    • What its reaction ranges are (Ex. Heat: 100 , 200; pH: 6, 8; Concentration: 50, 80) (Thinking about it I'd probably just define a range, and make the average of the two numbers, i.e. the centre, the optimal value)
    • What it causes at optimal and worst (Ex. Concentration: -3, -4; Heat: -10, -10; pH: 0.1, 0.1) and similarly what it produces (Ex. Copper: 1; Waste: 20)
    • How long the reaction takes (i.e. how many ticks before it again applies it cause, and produces something, if possible). (Ex. TimeTicks:100)
    • What reagents it accepts. (Ex. Sand) (For the sake of simplicity, I would not define the effect of a reagent per reaction, but let a reagent always have the same effect.)
    • Other information such as reaction ID, name, description, whatnot.


    I would then define a reagent (Which describes a block or item, so that the blocks or items themselves do not need editing).
    An reagent would define:

    • The Item/Block ID. (Ex. Block.sand)
    • Effect when added to a reaction (Ex. Concentration: 0.1; Heat: 0; pH: 0)


    A block (single block machine)/blockgroup (choke furnace equivalent) would simply define what reactions it can run. (Ex. for chemical reactor: Reaction.SandToCopper; Reaction.DirtToTin; Reaction.CobbleToGold;)
    And how much water it initially takes to fill up. (Maybe water should also be a variable in all reactions, so that you can consume it over time?)


    You could then even define something like a...
    Reactor.BakingLine:
    Reactions { Reaction.DoughToBread; Reaction.MakeCharcoal }


    Reaction.DoughToBread:
    Ranges { Heat: 280, 320; pH: 7, 7; Concentration: 90, 100 }
    Cause { Concentration: -8, -10; Heat: -10, -10; pH: 0, 0 }
    Produces { Bread: 1}
    Time { Ticks: 40 }
    Accepts { Reagent.Dough }


    Reaction.MakeCharcoal:
    Ranges { Heat: 321, 999; pH: 0, 14; Concentration: 40, 100 }
    Cause { Concentration: -40, -40; Heat: -20, -20; pH: 0, 0 }
    Produces { Charcoal: 1}
    Time { Ticks: 40 }
    Accepts { Reagent.Dough; Reagent.Log }


    Reagent.Dough:
    ID { Item.Dough }
    Effects { Concentration: 20; Heat: 0; pH: 0 }


    Where Item.Dough would be made from things like wheat and water, etc.


    Haven't yet thought about how to do heater/coolers (EU to Heat+ or Heat-) or heat exchangers (Balances heat between two reactors), etc. (Nice idea though with Nuclear Reactor. Using a nuclear reactor to provide heat for chemical reactions is even being considered in real life, with the new research into liquid salt thorium reactors).


    Disclaimer: I've only recently gotten Minecraft, and only just started looking at Java and minecraft modding, so examples above might be wrong approach entirely.


    [OT]

    Quote from &quot;Warlord Mike&quot;

    Also, completely random and off-topic, but is that a Corgi as your avatar?


    Toypom actually. He is hyperactive and heck-of-a-fun dog. Also naughty, but that is part of his charm.
    Also not very well house broken. But you can't stay mad at him.
    [/OT]

    First off, great mod. I enjoy it a lot.


    Did a search for "chemical" and checked the already suggested suggestions thread, and turned up nothing. So apologies if it is in planning, or has been suggested and I missed it.
    A Google search for "minecraft chemical mod" and "minecraft chemistry mod" turned up MineChem as the most relevant mod. Appeared to have a full periodic table but no real purpose other than possibly serving as a base for other mods.


    Also, this is a bit more of a general category suggestion (and in fact more of a 'is-this-planned?' question than anything else), so no specific recipies or such mentioned.


    Name:
    Chemical Engineering and Chemical Process Plants


    Describtion:
    I believe an untapped avenue for Industrial Craft is that of chemical reactions and chemical engineering. In most modern process plants (even large furnaces) large chemical process sections exist. These are typically geared towards concentrating ores (sorting the desired from the unwanted), before other processes such as electrical smelting (gold, iron, etc.) or electroplating (copper).


    Your typical chemical reaction (if oversimplified) has some standard parameters that IC² can use to simulate a simplified (and more generic) chemical process with:


    1. Heat in reaction (in degrees Centigrade), changing based on reaction (Exothermic [heat-making] or Endothermic [heat-eating]). Some reaction may require player to remove heat (cooling fans, coolers, etc.) or add heat (Heaters, etc.), in essence keeping it within a specific margin.


    2. pH level (Again, pH levels are typically important for both getting a reaction to work, and nasty side effects at both extremes.)


    3. Concentrations (A simple use for this would be to indicate how much slurry (solid-in-liquids, or gunk) you have).


    4. Efficiency (Not directly manipulated. Essentially reports back how well you are maintaining the reaction).


    Recipe:
    N/A. Would personally like to see more 'build-it' recipes (like railcraft choke furnace) for chemical tanks/reactors/mixers/etc.



    Starting point:
    Since this would be a rather new avenue, I would suggest to first start with a simple chemical reactor (I.e. big tank for stuff to happen in). Adding sufficient water to the tank, along with reagents (chemicals that fizzle and make stuff happen), along with sand or dirt or cobblestone (i.e. common blocks), and getting the heat, pH and concentration right, it starts leeching some useful ores from the reaction, along with producing waste (useless except perhaps for recycling).


    As a poor 'no-thinking' example: The reactor can leach copper from sand when setup for it, and kept at pH (3.1 to 4.1, best 3.5), and Heat (140°C to 240°C, best 155°C).
    Each sand block added ups the concentration by 0.1%.
    Each copper ore leached out drops concentration by 4% (one copper ore per 40 sand or less if closer to optimum reaction values), drops heat by 10°C, increases pH by 0.1, and produces twenty waste.
    Some other items can lower or raise pH (like clay lowering pH or... or... not sure really).
    EU can be converted into heat added (heaters) or heat removed (coolers).
    Reactor chamber may require way to monitor Heat/pH/Concentration and output signals at user defined levels (Hi level and Lo level for each of the three).


    Essentially the same as heap leach processes in real life. I'd keep recovered ores ratio low, as not to discourage mining.
    (Starting point idea probably overlaps in function with EE, but that is another mod and does not require maintaining some form of reaction to obtain results).