Suggestions for more Components
snafets opened this issue ยท 3 comments
control panel
- colored switch (red switch)
- 4/8bit dip switch (2x1/4x1 => easy bin input)
- bigger buttons (2x2 but more spacing => allows more text)
- bigger status lamp (or combination with text module)
- controllable label (input to change color/background or activate/change lines => show status "online"/"offline" or "Mode A"/"Mode B"/"Mode C")
- smaller 7seg display (2x1 3 digits or 4x1 6 digits)
- LED bar graph (2x4, maybe also binary display)
- analog/digital clock (analog 4x4, digital "###:##:##" 4x1, "##:##" 4x2)
- oscilloscope ("classic" and roll mode => most people expect old data to move out)
- speaker (beep, alarm, siren, options: single or continues)
- front I/O socket (connect back to front => nicer cabling, accessible plug)
plugs and I/O
- clock input configuration (modes on rising edge, on falling, on chance => easier to use with buttons and switches)
- block reference plug (use relative coordinates, 16 block radius => for dors or bridges)
- constant plug config (a binary mode, writable on outputs)
- support direct conection to vanilla redstone components (I/O sockets on button, switch, comperator, BUD, ...)
other
- item user (description has missing E in the last 8bit block)
- block covers has z fighting on some blocks
The clock-system is actually my biggest trouble maker, I didn't found a satisfying way to control the machines, a button trigger it twice, a lever just feels bad/wrong, a t-flip-flop works but is "expensive". I expected a pule mode at first and needed some trouble shooting to figure it out. But to trigger every tick the change mode is best. If you can make it work in both (or even three) modes it would be great.
I guess mode switching is the most complicated solution, the easiest might be "magic", short pulses trigger on change and long pulses only once but that might be hard to "sell"/explain. Or a toggle plug/module might do the trick.
Most of your proposed control panel components could be implemented as you described. I'm putting it here as a todo checklist (they might get implemented some time soon or far in future):
- 4/8-bit dip switch of size 2x1/4x1 (basically multiple switches with binary signal combiner as a single integrated module with one output signal). Big Endian encoding: least significant right, most significant left. Maybe 1s / 0s written on the bottom/top side of the individual switch texture, so remaining space can be used entirely for custom description label.
- symmetric lamp counterpart for above as binary display.
- buttons & switch of size 2x2. One or two label lines? one above, one below for big switch?
- lamp of size 2x2 like above
- analog clock, basically an analog display with circular scale and two (or even three) pointers with configurable translation factor (so it could be not just used as clock but also as higher precision general analog display). Maybe make this just an additional mode of the existing Analog Display.
- Oscilloscope modes: I already thought of adding an X-Y mode (draw 2D line graph from value pairs). And a non scrolling X-t mode (I think that's what you meant). Maybe with a special numbers in the clock channel that would be interpreted as
clear screen
andcarriage return
(automatically when graph reaches end of screen) commands. - Formatted dynamic text label (size 1x4): Has one one input signal than can be embedded into text via regular
%d
formatting and/or custom conditional formatting (%=n
,%<n
,%>n
) which could look like%<5{text when signal less than 5}{else text}
or as multi-case switch%#{text 0}{text 1}{text 2}{else text}
. By putting minecraft text formatting codes in there you could also make the text have different color depending on signal. - Signal pass through sockets for both directions (size 1x1).
- Some kind of bar graph as counterpart for the slider (size 2x4). Also fix the scale displayed on sliders to actually resemble the configured range (with numbers).
- 3 (or 4) state switches (2x2 ?)
A speaker is an interesting idea that I would probably rather put in its own block rather than as control panel component. Not sure how I would implement it when I come to it, the simple way would be just playing an alarm sound selected from a small list of available sounds. The more advanced way would be to make it effectively a signal controlled Note-block.
Clock System
Yes the reason I chose trigger on change is indeed to allow full speed 20 tps ticking of devices.
And I admit that it's not always convenient to use so I think I will make handling clock signals easier by adding:
- a clock converter that turns rising/falling edge pulses into a changing clock signal.
- a pulse generator that emits a short pulse of configurable length on a changing input signal.
- a clock output node for compact Redstone Processors that emits a changing clock signal on the port during processing cycles where it receives a logical
true
value.
Other things
- Binary and hex editing modes for the constant plug value is a good idea. (maybe also for the indicator lamp)
- Wireless Block Reference Plug (with limited range). Not sure about this, it should probably be quite expensive to craft (more expensive than equivalent wire + socket).
About adding ports to vanilla redstone components. It's generally not good modding practice (and also painful to implement) to manipulate vanilla blocks themselves. Rather create equivalent replacement blocks that use ports instead, which basically already exist:
vanilla Comparator -> clocked Comparator
vanilla Repeater -> Signal Delay Line (which could be extended to have adjustable delay times)
Buttons and Levers can be directly placed on Redstone Sockets embedded into a wall (you need a solid block to place them against anyway). Or use Control Panel switches.
That's a lot on the todo list, my modding skills are a bit rusty but I could help with the easy stuff if you want.
I didn't tested the Oscilloscope at the time and assumed it would work like the Automated Redstone version. The current version is actually what I meant with roll mode and it is totally fine, maybe separate the clock from the signal this would make measuring things much easier and the clock (history over time) more consistent.
Formatted dynamic text label are going further then I expected, I just thought of 4bit for show/hide the 4 labels and 4-8bit to change the color.
One more idea for the clock, maybe a "weak" signal (vanilla strength >16) could tricker only on rise not on fall to 0. (but toggle between 15 and 14 would still trigger on change) And Ideas keep coming while I'm writing ;) The mode could be encoded in the signal like 0b10 for rising edge, 0b01 for falling and 0b11 for on change. Some details have to be defined then like should it be excursive (other set bits make it invalid and fall back to change), should the config stay or return to 0, should it be in "vanilla" range. My first impression is 0b##?? a good place while it has to return to 0 and "invalid" (0b00??) default to toggle. This should be a good setup for vanilla I think.
I you want to discus it further and also in German, I added the email to my profil.