Skip to content

Conversation

@ashbillzw
Copy link

Treat blocks with tag create:fake_seats as seat blocks at contraption assembly. This allows for chair-like blocks from other furniture mods to be used on trains or other contraptions (see attached video).

I’m not sure if fake_seats is a bad tag name, if so, maybe custom_contraption_seats would be better.

out.mp4

rest of moveSeat() logic should safely skip since !seatsEntities.isEmpty() check exists
@adaliszk
Copy link
Collaborator

Hmm, I like the "contraption_seat" a lot, tags are custom by nature, or not?

@VoidLeech
Copy link
Collaborator

How does this interact with seated entities during (dis)assembly or when saving/loading the world?

@VoidLeech VoidLeech added the pr type: feature PR adds a new feature or changes an existing feature label Oct 20, 2025
@TropheusJ
Copy link
Collaborator

Please rename the tag to create:seats.
Remove the instanceof SeatBlock, create's own seats should use the tag too.
There's also multiple other places where SeatBlock is checked for directly. Please switch them to the tag.

@ashbillzw
Copy link
Author

How does this interact with seated entities during (dis)assembly or when saving/loading the world?

Seated entities will be ejected at the block where the "fake" seat was.

In my testing this did not cause errors. I have a server running the 'mixin equivalent' of this, and assemble/disassemble or save/load did not lead to errors or crash.

Since addPassengersToWorld() in Contraption.java still has an instanceof SeatBlock check, that part should no-op and skip gracefully when the block holding that passenger isn't actually a create mod's seat.

Please rename the tag to create:seats. Remove the instanceof SeatBlock, create's own seats should use the tag too.

Understood. Will change the condition to match the existing #create:seats tag. I originally opted to add a new tag since I wasn't sure if future functionalities would want to differentiate between "create mod's seats" and "other seat-like blocks that should be considered seats when assembled onto a contraption."

There's also multiple other places where SeatBlock is checked for directly. Please switch them to the tag.

Since the intention is to use other seat-like blocks that are not originally create mod's seat blocks on contraptions and have them behave as usable seats, I believe that the other instanceof SeatBlock check during disassembly in addPassengersToWorld() should remain unchanged to keep the no-op & eject as-is behavior stated above. The instanceof SeatBlock check in SeatEntity.java also do not appear related.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr type: feature PR adds a new feature or changes an existing feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants