Redstone (Java) Zählsystem?
ich brauche eine Art Dualzähler (glaube ich) für ein speziellen fall zu den ich nichts finde
ich habe 2 Outputs, einmal true und einmal false, der Zähler soll die Signale, welche nacheinander ankommen, festhalten bis er zurückgesetzt wird
- es können maximal 5 Signale ankommen, dann ist der Code zu ende
wie könnte man sowas bauen? gerne mit Bilder oder Tutorial
1 Antwort
Ich weiß nicht genau, ob es passt, aber vielleicht funktioniert ein Shift Register mit Repeatern. Ein Tutorial/eine Erklärung gibt es in diesem Video:
https://m.youtube.com/watch?v=XCug8h5oEGE
Wenn das nicht das richtige ist, wäre eine genauere Beschreibung deines Problems hilfreich. Vielleicht habe ich eine passende Lösung.
Ergänzung:




Praktisch wäre ein Zähler der nach jedem Signal um 1 weiter zählt und dann entweder 1 oder 0 speichert, abhängig davon welches Signal eingeht
Das heißt, die Minecarts sollen in der Reihenfolge auf die beiden Schienen aufgeteilt werden, in der die Signale dort eingehen. Also zum Beispiel Oben Unten Oben, falls Signale von 1 4 5 kommen. Habe ich das richtig verstanden?
Ist sichergestellt, dass die Signale in der richtigen Reihenfolge (also in der Reihenfolge der Minecarts) ankommen oder ist das auch ein Problem? Wenn die "sortiert" ankommen, wie groß ist der Zeitabstand zwischen den Signalen ungefähr?
die Signale kommen in der richtigen reinfolge an. Zu den Abstand der Signalen gibt es keine eindeutigen Angaben, da die einzelnen Zellen unterschiedlich weit von einander entfernt sein können, je nachdem welche Items bestellt werden
aber der Zeitliche Abstand zwischen Zelle eins und zwei beträgt ein Tick Verzögerung
Ich glaube, ich habe was. Hier eine Erklärung, Bilder habe ich in meiner Antwort ergänzt (geht in Kommentaren nicht):
Orange und Gelb
Die Leitungen stehen für gerade/ungerade Nummern. So wie ich das verstanden habe, kannst du die Signale von geraden Nummern einfach zusammenführen, bei ungeraden genauso.
Weiß
Die weiße Leitung führt zum einen in den Speicher (ein Schieberegister), zum anderen löst sie den Schiebevorgang aus. Wenn ein Signal ankommt, werden für einen kurzen Moment die Repeater entlockt, sodass die ihre gespeicherten Signale einen Repeater weitergeben. In der Bedrock habe ich dieses Signal nicht kurz genug bekommen, aber in der Java geht das ziemlich einfach.
Von den beiden Eingangssignalen geht nur eins in den Speicher. Dieses Signal ist true und wird eingelesen, wenn es an ist. Das andere ist false, muss also gar nicht eingelesen werden. Es entlockt nur den Speicher, der dann die ausgeschaltete andere Leitung einliest.
Grau
Ein Schieberegister/Shift Register, wie im Video erklärt. Speichert bis zu fünf Signale. Auf der einen Seite wird eingelesen, auf der anderen ausgegeben. Die Ausgabe steuert die Weiche an. Die Werte (true/false) der geraden und ungeraden Nummern musst du entsprechend wählen.
Grün
Wenn ein Minecart sich der Weiche nähert, fährt es über eine Aktivierungsschiene (vielleicht falscher Name). Die bepowert die grüne Leitung, die den Speicher kurz entblockiert. Dadurch wird ein Signal ausgegeben, das die Weiche entsprechend stellt.
Blau
Ein Mechanismus, der sinnlos ist, wie mir gerade auffällt. Eigentlich dazu gedacht, den Speicher komplett zu leeren, aber das ist überflüssig. Es werden schließlich genauso viele Signale gelesen wie eingegeben werden. Danach ist der Speicher "leer".
Dafür ist mir gerade aufgefallen, dass etwas anderes problematisch ist: meine Idee funktioniert nur, wenn immer fünf Signale eingelesen werden. Man bräuchte also noch einen Zähler, der die Anzahl ausgewählter Items (x) zählt und entsprechend viele false-Signale (5-x) anhängt. Das könnte man machen, indem man die vom Nutzer abgeschickten Items in einer Zwischenstation kurz entnimmt, zählt und wieder ins Minecart legt. Oder mit einer zusätzlichen Nutzereingabe. Oder was auch immer bei deinem Design am besten passt.
Ich hoffe, du kannst damit was anfangen.
perfekt danke ich konnte bei weiß nicht alles erkennen aber konnte das was mir fehlte ergänzen, wie ich die fehlenden Signale ergänze weiß ich schon denke ich (kann eventuell sogar sein dass das gar nicht mehr nötig ist weil jeder false zustand so oder so zutrifft wenn kein Signal ankommt
sowas ist leider nicht das was ich brauche, aber gut zu wissen
ich versuche mal meine Technik besser zu beschreiben:
ich will ein intelligentes Shulker Massenlager bauen (so kompakt und sicher wie möglich) ich bin derzeit so weit, dass ich abrufen kann welche Items verfügbar sind (diese werden dann in einem Kisten-Interface abgelegt, der Nutzer kann dann bis zu 5 items auswählen und abschicken über eine Minecart)
das minecart sagt dann welche Items geholt werden sollen und es wird in der jeweiligen Lagerzelle gespeichert, dass Items losgeschickt wurden (ebenfalls per Trichterminecart) da ich die übrigen Items aber nicht wieder durch das Sortier-System jagen will, sollen die Restlichen Items wieder zurick geschickt werden wo sie her gekommen sind (dafür speichert die jeweilige Zelle wo die Items entnommen wurden)
Aufgrund des Platzmangels muss ich die Items über 2 Schienen zurück schicken, also vorher bestimmen welchen minecart auf schiene 1 und welches auf schiene 2 zurück muss, dafür will ich das über zwei Leitungen an ein weichen System weitergeben (ab hier bezieht sich die Technik auf meine Frage) da nur 5 verschiedene Item arten entnommen werden können gibt es auch nur 5 Signale, die aber in der richtigen Reinfolge gespeichert werden müssen (alle Signale der Lagerzellen mit ungerader Nummer sollen angenommen das Minecart nach oben und alle Signale der Speicherzellen mit gerader Nummer sollen das Minecart nach unten schicken)
die Abfrage ob nach oben oder nach unten erfolgt erst nachdem die Minecarts wieder weiter geschickt wurden, nachdem in einem kleinen bahnhof die Items herausgenommen wurden