Immersiveengineering: Some quality of life suggestions based on my current playthrough

Created on 19 Nov 2017  路  8Comments  路  Source: BluSunrize/ImmersiveEngineering

So I've been playing for a few weeks in a world with Immersive Engineering v0.12-74. Noticed a few issues, checked the issue tracker, and found that all but one were already reported. Reported that one, it was fixed, happy camper. =)

Now comes the part where I'd like to make some suggestions based on my gameplay experience. I'd like to start by underlining that I love the mod, and if I criticize something, that is just one small criticsm among a thousand silent approvals.

1.) The very first thing I did with IE in this world was build a windmill and use it to power an external heater. This immediately turned into a very awkward affair, because both of these blocks accept connections in exactly the opposite manner that I needed them. I wanted a power conenctor on the side of the kinetic generator to get the power down from the tall tower I had placed it on, but it would only accept a connector on the top. On the other hand, with the power coming from above, I wanted my external heater to have a power connector on the top, but it would only accept connectors on the side. To this day, weeks later, the connector still sticks super awkwardly into the middle of my room, and I had to place a post with an extra capacitor to make it taller on the edge of the roof of my house to be able to connect my windmill to anything at all.

Therefore I'd like to request more freedom in regards to the ability to place power connectors on these two blocks.

2.) I am aware that barrels can act as valves. However, they are greatly limited in that regard by working only vertically. In all my playtime in this world, I have not built a single thing that required a vertical valve. I have however built several things that required horizontal valves. In fact, IE machines in general seem designed with horizontal connections in mind (for example Mixer -> Bottling Machine). So using barrels as valves is in many cases not even a suitable option - unless perhaps you're in the strange habit of stacking your machines on top of one another.

I'd like to suggest a valve pipe that can act in any direction. It could simply by crafted by combining a regular pipe piece with a lever. This kind of approach has existed nearly since the dawn of Minecraft modding, in various different mods, and is very intuitive. This valve pipe, when placed in the world, functions exactly the same as any normal pipe, with the difference that it can accept a redstone signal, and stops letting any fluid pass through in any direction when it does. I suppose the redstone behavior could be inverted using the Engineer's Hammer. The model texture could simply be a clone of the regular pipe with some red highlights to denote redstone components. Of course, if you want to be fancy, it could have its own model.

3.) Returning to the Mixer -> Bottling Machine scenario mentioned above: I'm using this setup to brew potions instead of the vanilla brewing stand. However, there's a pretty big issue with this: the bottling machine doesn't empty its internal tank in the process of dividing one bucket of potion fluid into three potion bottles. That means that everytime I want to brew a different potion, I have to break the Bottling Machine and rebuild it. Clearly this isn't ever an issue with a Bottling Machine bottling only one thing, but the Mixer makes this a major problem because it can supply pretty much arbitrary combinations of fluids.

This got me thinking: what if, instead of trying to fix the fluid consumption, the Bottling Machine could have some sort of "purge tank" functionality? Maybe if shift-rightclicked with the Engineer's Hammer? Doing so would destroy whatever liquid is currently in the internal tank, and allow new liquid to flow in. Having this automatable by redstone input would be even better, but that would require some careful design work to not interfere with the normal redstone response of the machine.

4.) From what I read on the 'net before trying it out for myself, the Garden Cloche seems to be a point of contention for many people. After trying it out myself, I'd have to agree - if it was up to me, I'd set it up differently. For example, I would turn the speed without additives way down, but make the additives much more impactful in turn. This is not only more consistent with vanilla behavior (no bonemeal = slow growth, bonemeal = instant growth), but also encourages the player to build a supply line for additives. And engaging the player is always a good design strategy.

However, I'm pretty sure it's impossible for you to please everyone with this block. How about more config options then? You could expose the base growth speed for configuration, as well as the multiplier for additives. Together with the config options that already exist, this should at least allow the players to please themselves.

I hope you'll find these suggestions reasonable and not not too difficult to implement. =)

suggestion

Most helpful comment

^ this may be more what you want.

Seperate modifiers for Fluid and Solid fertilizers, and a general modifier for growth speed.
That way you can set the general modifier to 0.2 and the solid fertilized one to 5.0, giving you normal speed with fertilizers and 80% reduction without.

All 8 comments

1)
Kinetic Generators can output to any side, not just the top.
External Heaters can be placed in different directions and/or rotated allowing you to connect from the top.

2)
Valve pipes would interfere with the way pipes work, which is keeping a cache of places they can output to. Havign a valve inbetween would mean resetting tha tcache literally every time and having to recalculate all paths over and over again. Changing this behaviour would mean a full rewrite of pipes, which I'm unfortuantely too lazy to do.

3)
I have plans for this, by making bottles no longer 333mB but 250mB, allowing you to get 4 of them out of single bucket and avoidign residue in the bottling machine.

4)
The cloche currently has its powerusage, fertilizer time and fluid consumption exposed to the config.
I'll see if I can figure out a decent way to expose the fertilizer modifiers, but I generally prefer to keep compatability things (like Thermal's PhytoGrow or Forestry Fertilizer) out of my config, to keep it compat-independent.

1.) Ummm... what... how... I spent literally 20 minutes on this, trying to rotate these blocks or place them in different ways. It stubbornly refused to work. Now you tell me this, and I go try again, and it works on the first try in both cases! What the heck? This is like telling your mother you can't find something and she spots it in the exact place you've been searching all along!

The only explanation I can come up with would be Optifine interfering somehow. I used that at the beginning until I learned about the incompatibility with IE, then I disabled it. Super weird.

2.) I see, I wasn't aware that your pipes work that way. I still maintain though that a way to break fluid flow in a horizontal pipe would be very useful. Maybe the fluid router could perform this function? Or does it need to be a part with an internal tank, like the barrel is, to avoid this issue?

3.) I won't say no to getting more stuff =)

4.) What if the config value for the additive multiplier was a global value that gets applied to all possible additives? That would not allow you to configure individual additives, but you could scale them as a whole. Like, setting a multiplier of 2.0 in the config would double the impact of every additive (Bonemeal from +25% to +50% and so on). Then setting 0.8 for a base growth speed value would result in roughly the same speed with Bonemeal than before, but it would run slower without.

Okay, I just got around to trying the new build! The global modifier for the cloche is unfortunately not what I had in mind, for two reasons.

One, it modifies the operation without additives - i.e. running on plain water - too. The idea I had was that there would be two config modifiers: one that only modifies when running on water, and one that modifies all the additives. I wanted to be able to configure the cloche in a way that heavily incentivized using additives - turning down speed on plain water, but turning up everything else. Of course, I'm not sure how the cloche works under the hood. The way you implemented this makes me wonder if it simply considers plain water a kind of fertilizer too, which would make it difficult to separate it from the others...

Two, the math behind the multiplier is kind of not working correctly. For example, the cloche has a default setting of 1.00 on water, and 1.25 on water + bonemeal. If I increase the multiplier in the config to 2.0, then the growth speed with water correctly doubles to 2.00 ingame (even if I wish it didn't), but the growth speed on water + bonemeal jumps to 5.00. That's actually a 4x multiplier, not a 2x! On the other hand, if I set the config multiplier to 0.5, then water correctly reduces to 0.50 ingame... but water + bonemeal suddenly sits at 0.31. Meaning it actually grows slower than without bonemeal. This is consistent with also applying the modifier twice (1.25 * 0.5 * 0.5 = 0.3125), just like in the 2.0 test case.

I've tried looking at your code to figure out where that happens, but I must confess I don't understand what it does well enough to hazard more than a guess. It seems that, at the bottom in line 418 in BelljarHandler.java, bonemeal gets registered as a fertilizer with a value of fertilizerModifier*1.25. But then the multiplier also gets applied globally again in line 109? Assuming that's what happens in that line, I'm not sure. Still, I think line 418 should probably just return 1.25.

Thinking about it, if I understand this right, maybe my idea can work after all. If you make a new value called noFertilizerModifier, which is exposed in the config file, and then register water in line 404 with "return noFertilizerModifier", then that hopefully does exactly what I would want it to do. Water gets that modifier by default, bonemeal just gets its normal 1.25 value without any modifier, and later line 109 multiplies in the global fertilizerModifier. No cross-mod compatibility is adversely affected. Is my thought process correct here?

Addendum: To fix the negative scaling issue, Line 109 probably needs to become something like -

return 1 + fertilizerModifier * (growthMultiplier - 1);

This should make fertilizerModifier only apply to the actual bonus, not to the entire base rate.

Current implementation works like this (assuming the double modifier bug is fixed):

  • config value 0.5, Bonemeal ingame 0.625
  • config value 1.0, Bonemeal ingame 1.25 (default)
  • config value 2.0, Bonemeal ingame 2.50

With this suggestion, it would instead look like this:

  • config value 0.5, Bonemeal ingame 1.125
  • config value 1.0, Bonemeal ingame 1.25 (default)
  • config value 2.0, Bonemeal ingame 1.50

It could never become less than 1.0, which is default for water, thus making sure that no fertilizer can ever be worse than "no fertilizer".

And if you do

return noFertilizerModifier + fertilizerModifier * (growthMultiplier - 1);

instead, then it will even scale with the configured value for water, should you decide to implement that config value. =)

DISCLAIMER: All dependant on whether or not I correctly understand what the code is actually doing, of course.

^ this may be more what you want.

Seperate modifiers for Fluid and Solid fertilizers, and a general modifier for growth speed.
That way you can set the general modifier to 0.2 and the solid fertilized one to 5.0, giving you normal speed with fertilizers and 80% reduction without.

Awesome. I'll wait with bated breath for the next release =] (Don't have the means or knowledge to build one myself)

Small update - made some more potions today and can confirm that the Bottling Machine empties cleanly now. =)

Since this issue is still open, I鈥檇 like to add a further suggestion for the Garden Cloche: allow fertilizer input on the same side as auto-output. It doesn鈥檛 necessarily have to be auto-input, and it would allow Garden Cloches to be against a wall.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Darcoon picture Darcoon  路  4Comments

Timmmy001 picture Timmmy001  路  3Comments

jbengtson picture jbengtson  路  4Comments

sosenka1 picture sosenka1  路  5Comments

HappyPineapple picture HappyPineapple  路  5Comments