Changes to connectors
T3sT3ro opened this issue ยท 3 comments
I've already created several issues with suggestions, and will create some more in a few seconds, but because I didn't write it earlier - great job! This is a very good and climatic mod that fits right into the create style! Keep it up!
So here are my propositions to connectors:
- When looking at connector with goggles show FE flow on this connector as
+FE/t
and-FE/t
if connector produces/consumes FE. Machines should only display "Maximum +-FE/t production/consumption". - Change connectors blockmodel when it is successfully connected to a device - because sometimes you can connect connector in a wrong way and wonder why things don't work. My recommendation would be a stud that is completely insulated when it didn't connect properly, and the current model if it's connected.
- Make bronze and golden wires connect to the connector in different places - for example bronze more to the base of connector while golden more to the tip.
- Remove or increase limit for connected wires and change blockmodels when the limit is reached - for example like that:
left is connected correctly and max wires per connector is not reached, middle is connector that didn't connect to block, right is connector connected properly and all copper and gold wires are connected i.e. can't connect more wires. - Make connectors an exclusive interface for passing FE - so for example accumulators could only transmit FE through connector and not through sides
- Change block model of connectors in blocks that have separate input/output connectors to something like below, because current white texture way is hard to remember and unintuitive:
This way remembering that input is left and output is right would be easier.
I've improved the visuals of Connectors and added more information to the goggles when looking at Connectors in 20210625a. Thanks a lot for the thorough suggestion!
Regarding block models - Wouldn't it still be possible and easy when using multipart blockmodels? I'm not sure how is the block state represented internally, but considering that 256 states is exactly 1 byte of data, it should be as performant as 16 states. I imagine only 4 states of connectors:
- invalid - when on face that doesn't interface with FE
- nothing connected - current blockmodel
- any bronze wire connected - a tilted ring on lower part
- any gold wire connected - a tilted box/ring on upper part
- Why connect wires to different parts of connector?
- It would help to quickly glance at a connector and know that for example only golden wires are used or only bronze wires are used. I don't mean giving player the ability to connect to different parts of connector, but just rendering wire endpoint in a different place, because right now it's pretty hard to see if the wire is copper or gold due to small difference in color.
- Some players may want to color code different parts of network by using gold for consumption and copper for production or something similar - that wold make it cleaner and easier to look at
My inspiration to this comes from red, green and copper networks from Factorio, because it looks neat when a bunch of wires are not lumped together:
- Why make connector an exclusive interface for FE with machines?
- Sometimes players may want to build FE transmitting network next to a device (for example place some FE pipe from other mod directly next to an accumulator or engine) but don't connect to the device, so using connector would be a direct way to say "hey, this device here is connected to network on purpose". It would be a clear representation of player's intent: "I want to connect this device to FE network and it's not an accident"
- It feels a little weird when I can connect another mods duct to an alternator/accumulator/engine/heater. That's also why I suggested in the other issue that those elements should have built in connectors - It would look cleaner and remove ambiguity.
- Using connectors makes it visually clear which parts are connected where and probably should significantly reduce the complexity and spaghettiness of code - only connector would have to implement the transmission logic, other parts would be only passive containers holding FE, and in terms of code logic representing a set of wired connectors as a graph node would be super easy and convenient. I didn't check the code yet, so I don't know how it's currently implemented, but in my opinion this way would have significant advantages in the future.
Thanks!
Here are some of my thoughts on this:
1 Would require additional networking syncing with the client. If I figure out a performant way to do this I will.
2, 3, 6 The relay has 16 states, adding 4 states for each connector would mean there are 256 states, that is too many states.
3 why?
5 why?