mrh0 / createaddition

Create Crafts & Additions, Addon to the Create mod by the Create Team.
Other
84 stars 111 forks source link

A handful of connector issues, Goggles show incorrect values and a couple other bugs, questions and suggestions #126

Closed McFow1er closed 2 years ago

McFow1er commented 3 years ago

Hey man, I would like to say before any of this that love the work you've done with this mod, I've been playing around with it for a good two weeks now and have a couple installations using the alternators in place with a few other ideas planned but I was a bit disappointed and confused by a few settings that didn't really hold and figured I'd come by and ask about them. I'm running this in a large mod pack on a server so this may provide some additional insight for why some things are wonky?? But I did do my research into why certain things were happening as they seemed as though they should have been just fine but I've identified that all of these stem from the code itself in one way or another, or at least I believe so as these are the only culprits I see being the reasons for these.

Also tell me if I should actually separate these into individual posts or not cause, yeah that's a lot down there.

Okay, onto the actual info:

Additional context

mrh0 commented 3 years ago

Thanks for the thorough report.

  1. Will be addressed in the next update.
  2. This is just the same as raising the main buffer, you would just have another "output" buffer.
  3. Know issue, for now just make sure to sync server and client configs.
  4. Will be addressed in the next update.
  5. It's this way because separating them would make it very easy to accidentally create an infinite energy loop unless you are careful. (many people reported inf energy loops before I merged it into one value)
  6. Yes this would be great however as you say this requires some sort of new type of interface and this also adds complexity for new users.
McFow1er commented 3 years ago

Hey dude thanks for the heads up, looking forward to the update! However I realised over time I didn't exactly explain some points you brought up because, well I just suck at explaining things usually, that post took me the better half of a day to compose, but also I'm a spontaneous thinker so some details are lost at the time or realised well after I actually have sent and written stuff down.

Also as I'm not sure if you'll see this otherwise given the way notifications seem to work on gihtub, @mrh0

  1. Super hyped
  2. My explanation of this was honestly garbage for the intent I had in mind, though it very well may still be the exact same case as you described. In the most basic sense I was wondering and hoping it would be possible to have say 20kFE in/out transfer on a connector while it can only hold, lets say 2.5kFE internally. The way I see it working potentially is that it remains a single buffer except that instead of it being "The input feeds the internal capacity which feeds the output" it's instead "The input feeds the internal capacity and the output with the internal capacity being drawn from upon a tick that the input fails to deliver the demanded amount of energy, otherwise it just charges using the remaining free energy" which, in my mind basically provides a bypass method. A lot more complex than just each stage drawing from the previous but I feel that would give a more intuitive in game feel, plus using a network of connectors, needing each to have an internal buffer that matches the 25kFE/t in/out rate would basically turn it into a passive battery which I want to avoid. It's also kinda closer to mechanism but also not, it's power conduits are weird, some how the transfer rate of each pipe used adds up...
  3. That is handy to know, glad for the heads up
  4. Super duper hyped
  5. That's actually why I specified using the highest RPM for balance reasons. The only change I see being required is to turn the current MOTOR_RPM config defined variable into an internal PEAK_RPM variable defined by a bit of simple "larger than" math to determine which of the two variables NEW_MOTOR_RPM and NEW_ALTERNATOR_RPM is higher and use that value returned for all the already in place math in both the alternator and motor and use the individual new variables as the RPM limits. For example imagine the max RPM to work from is the motor at 256 RPM while the alternator is at 96 RPM or, the alternator at 4096 RPM while the motor is at 32 RPM, the math in both would be based off the higher RPM of the two, aside from that setting the max RPM limits of the blocks would only limit their max possible RPM in game. Thus leading to the already current state of the mod as essentially it's an enforced version of for example; you, myself and group of other people all just agree that we don't exceed a certain speed either coming out of the motor or going into the alternator. The power and stress generated from an alternator running at 50% max speed would still be the same if we set the alternators max RPM to half that or the motor and vice versa.
  6. I was honestly unhelpfully vague with a proper implementation of this one, though I will concede that it would probably be complex to new users. That said I myself am still a relatively new user to create in general but with what I've played with in the main mod, I'm quite certain the following would actually be intuitive. For the "secondary menu means" I initially thought something like a GUI but really disliked the idea then thought of a new RPM tweaker gauge on the sides of the block or similar, however I remembered that there are already items that do this sort of visual behaviour in Create, the remote redstone switch plates with their channels, having two tweak gauges on the back next to each other horizontally or vertically would expose both values to players in a clean intuitive sense, alternatively you could make it something for more advanced players, requiring that you crouch or even be crouched while wearing the goggles to swap the gauge from RPM to SU. This would require a ponder update for the new info explaining the mechanic but it would be a good way to add and make this feature fully accessible without computercraft. Along side this to actually make this feature understood without ponder, I would recommend making it say something like this on the gauge: [TWEAKED_VALUE] SU @ [CONFIG_MOTOR_MAX_RPM_VALUE] RPM so for example of default values with both the motor and alternator having the same values in context of my response to 5 above 4096 SU @ 128 RPM or using the second example of my response to 5 with the same stress value 32 SU @ 32 RPM
mrh0 commented 3 years ago
  1. Fixed in 20210902a.
  2. How it currently works is that the buffer in the connector is only for input into the network, output works like you describe, the reason it is this way is for compatibility with other Forge Energy blocks. Essentially: the connector actively pushes energy from the network (not the buffer) at max-out but passively receives energy from blocks that actively output to the connector, thereby limited by the max-in and capacity. Having the connector actively pull energy could depending on how other people have implemented the block's logic either not work or pull twice every tick.
  3. Fixed in 20210902a.
  4. Sounds unnecessarily complicated, I still think the one variable is best.
  5. My previous stance remains.
mrh0 commented 2 years ago

I think everything in here (except config sync issue) has been adressed by now