Redstone (Java) Zählsystem?

1 Antwort

Vom Beitragsersteller als hilfreich ausgezeichnet

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:

Bild zum Beitrag

Bild zum Beitrag

Bild zum Beitrag

Bild zum Beitrag

Woher ich das weiß:Hobby – Spiele seit 9 Jahren Minecraft
 - (PC, Minecraft, Minecraft Server)  - (PC, Minecraft, Minecraft Server)  - (PC, Minecraft, Minecraft Server)  - (PC, Minecraft, Minecraft Server)

DrKarpador 
Beitragsersteller
 19.10.2024, 18:27

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

DrKarpador 
Beitragsersteller
 19.10.2024, 18:30
@DrKarpador

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

Maggiapfel3000  19.10.2024, 18:44
@DrKarpador

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?

DrKarpador 
Beitragsersteller
 19.10.2024, 18:46
@Maggiapfel3000

ja genau

bei den Signalen von 2 4 6 8 9 wäre es: unten unten unten unten oben

Maggiapfel3000  19.10.2024, 18:52
@DrKarpador

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?

DrKarpador 
Beitragsersteller
 19.10.2024, 18:56
@Maggiapfel3000

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

Maggiapfel3000  19.10.2024, 20:14
@DrKarpador

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.

DrKarpador 
Beitragsersteller
 19.10.2024, 21:18
@Maggiapfel3000

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