Create

Create

86M Downloads

Sequenced Gearshift "Piston" behavior may not function as expected

trunksbomb opened this issue ยท 5 comments

commented

When using the Sequenced Gearshift to extend a mechanical piston that is pushing a Mechanical Drill, the "Piston" instruction is completed when the shaft has spun the distance required to extend an attached piston by the specified number of blocks, not when an attached piston has actually moved that number of blocks.

I suppose that this may be intentional, as the logic seems to be that the piston is providing rotational force to the Mechanical Drill so the drill can mine the block, therefore the shaft continuously spins until it would have extended the piston by N blocks. It also makes sense in its current behavior that the Gearshift can't guarantee that it has extended all pistons attached to its shaft N blocks (one piston may be blocked while another isn't).

Either way, I wanted to bring it up as an issue -- if it's not intended, so it can be fixed; if it is intended, for others who thought like I did.

Create version: mc1.15.2_v0.2.4e+custom

commented

This issue has been marked as stale because it has been inactive for 3 weeks. It will be closed if it remains inactive for another 3 weeks.

commented

This issue has been closed since it has been inactive for 3 weeks since it was marked as stale.

commented

Sounds intended, the sequenced gearshift can't tell what it's actually powering. You could be using it anywhere, not just on pistons or bearings, or on multiple contraptions at once, or attached to speed changers to adjust the actual results of the instructions.

If you need to know whether something has completed a full rotation/extension try using redstone contacts.
Alternatively, if you don't need the instructions to be precise, you could instead extend the lengths of your instructions so they account for possible stoppages on the pistons.

commented

Right, that's what I had assumed but I wasn't sure. My workaround was to do what you mentioned -- make the piston instruction "longer" to give attached mechanical drills enough time to break the blocks.

The problem with relying on the redstone contact in conjunction with the sequenced gearshift is that the sequenced gearshift doesn't have a "rotate continuously until another redstone pulse is received" instruction, meaning there's no way to have it continue an instruction indefinitely until, in this example, two redstone contacts touch. That would be the domain of the regular Gearshift, but then I lose the "sequenced" bit. Setting the piston instruction to 10m seems to be sufficient time to break most blocks, except obsidian. Making my contraption push for the 30 something meters to break obsidian every time (I forget the exact number) slows the whole thing down pretty dramatically.

That said, I understand that it's most likely intentional. So, perhaps, this would be better stated as a feature request: one of the following:

  • A new instruction on the Sequenced Gearshift to "rotate continuously until another redstone pulse is received", or a new gearshift with this behavior
  • A vanilla-like mechanical piston that will always extend the full length of its shaft on redstone pulse, and retract the same length on another pulse
commented

Have you tried using Powered Latches? They act as an easy way to hold state, which would achieve this functionality with a regular gearshift. The Powered Latch can be turned on with one signal and turned off with another, while the Powered Toggle Latch toggles being powered each time it receives a pulse. Don't forget that the Clutch can be used to control whether to output rotational power at all.

That said, having the ability for an instruction to be "canceled" with an additional redstone pulse isn't a bad idea.