mojira.dev
MC-164

Tile entities cannot be pushed by Pistons

Dispensers can't be pushed by pistons.

Related issues

MC-7776 Tile entities like furnaces can't be moved by pistons. MC-7870 Dropper is not moved by Piston MC-9729 Unable to push daylight sensor MC-12338 Pistons can't push blocks with tile entities attached to them MC-64752 Piston does not push chests or hoppers MC-141745 Barrel cannot be pushed by piston MC-143282 the new blocks MC-143816 Chests Are Not Move able by Piston's MC-156151 piston MC-163732 Honey blocks do not move certain blocks attached to them MC-164429 Piston don't affect campfires MC-181641 Chests Are Not Moveable by Pistons MC-208927 Sculk Sensors cannot be pushed by pistons MC-220084 The honey block does not stick to the sculk sensor MC-224530 Parity issue: piston and the sticky piston do not move the sculk sensor MC-226152 Droppers and any item with gui cant be moved with pistons MC-255064 Parity issue: Piston and Sticky Piston do not push the beehive in Java MC-256603 Chiseled Bookshelves cannot be moved by pistons MC-256728 Chiseled Bookshelf can't be moved by a piston MC-258662 why can't the barrel be moved by the piston MC-261775 Sculk sensors/shriekers not being pushed by pistons MC-263056 Chiseled Bookshelf cannot be moved by piston or sticky piston MC-263834 Pistons should Move Lecterns: parity issue MC-269906 Crafters cannot be pushed by pistons MC-271238 Crafter is not being moved by piston or sticky piston MC-271963 Brewing stands can't be moved by pistons MC-274079 Bee nest and hive can be pushed by pistons in bedrock edition but not java edition MC-274665 chiselled bookshelves are immovable via sticky pistons

Comments

migrated

This is not a bug - Dispensers are Tile Entities, and can't be pushed by pistons. That is the limitation of pistons. Will leave this open in case a Mojang employee wants to take a look at it.

Torabi

The question is why can't tile entities be pushed by pistons? I've never seen an answer to that, just the repeated statement that they can't. Yes, pistons use tile entities themselves for the block being moved, but the NBT format has a compound type that should allow the piston to package up the tile entity of the block being moved, then unpack and recreate the tile entity at the destination. Or just change the X, Y, and Z values of the tile entity to match the new position.

So was it a deliberate, game-balance sort of choice that blocks with tile entities cannot be moved by pistons, or something that just seemed like too much work to implement?

migrated

It would be somewhat difficult to retain parameters of the tile entities, such as contents of the object or the specified output (in the case of the note block).

Torabi

But why would it be difficult? I've only given the code a cursory look, but it seems as simple as changing the X, Y, and Z fields in the related tile entity. It's not clear if it's a mapping issue, a serialization issue, a transactional issue, etc. I'm not saying it's simple, just that it looks simple, so it would be nice to have an explanation why it's not, if that's the case.

migrated

This mod moves tile entities, vanilla and mod, so it's possible. Its source is available and its license is permissive.

http://forums.technicpack.net/threads/1-5-x-redstone-in-motion-redpower-frames-1-2-0-0-july-7.47048/

migrated

please reopen. just because the workaround works as intended, doesn’t mean the behavior is set in stone.

maybe it’s difficult, and the current implementation provided an easy way to implement pistons at the time, without spending too much time on a corner case like this. but it’s fact that the current behavior (with that workaround in place) isn’t a rule of nature or otherwise impossible to change, and neither has it any lore/logic demanding it. it’s possible to fix and minecraft would improve by fixing it.

so this is still a bug. maybe not one that’s intended to be fixed in the near future, but a bug nonetheless, and has to be open until it’s fixed.

Torabi

Only Mojang can determine what's a bug, and what's working as intended. It's unfortunate that they haven't elaborated on whether this particular decision is due to difficulty of implementation, performance, or gameplay balance, but there's no use arguing about it here. If would be better if someone articulated a case for this change on the suggestions forum or subreddit.

migrated

Only Mojang can determine what's a bug, and what's working as intended.

if it’s unclear, yes. but in this case, it’s clearly a workaround, which i will now logically derive.

  1. obsidian is intended to be a piston extension stopper. it had that property in the original piston mod and has it now, without being a tile entity

  2. the other blocks (as this bug title says) all have the property of being a tile entity. we know that moving the data isn’t trivial, but not impossible because

    1. pistons work by saving the block ids of the pushed block in their own tile entities during pushing, which makes dealing with the pushed block’s tile entities nontrivial, but

    2. notch doesn’t think it’s difficult, and it has been implemented in the original piston mod

⇒ it’s a workaround, no gameplay decision or performance issue.

furthermore, any workaround which is clearly only in place due to difficulties in implementation is a bug unless it ascended to a feature (e.g. if the workaround would have enabled something else). the case of an “ascended workaround” isn’t given, since obsidian is the only block clearly intended to inhibit piston extension. all other blocks have that property just because they have tile entities which are difficult to move.

⇒ it’s a bug, and no ascended bug which has become a feature.

so logic demands that this bug is marked as such. if you have an actual argument that i haven’t considered, please name it. but since your only argument was “we don’t know the reason for this behavior, only mojang can tell it to us”, and i have just inferred the exact reason from the information we have, there is no argument against reopening left.

in case all this sounds arrogant or otherwise inappropriate to you, please don’t interpret it as such: i’m no native english speaker and i often come over as rude if i just want to be direct.

Torabi

I don't think you quite understand the meaning of the words "intended" and "workaround". When I said that only Mojang can determine what's a bug, and what's intended, I didn't mean that they had special knowledge. I meant that by definition, it is their prerogative to call any behavior a bug or intended. If they wanted, they could call the game crashing intended behavior, and in some cases, they actually have done just that. The user's perspective as to whether a behavior is desirable or undesirable is irrelevant. If they want to say that pistons being unable to push tile entities is intended behavior, then they don't have to justify it.

I agree that all evidence (including notch's tweet, and that there are mods that already do it) suggests that this behavior would not be particularly difficult to change. I certainly would like it if pistons could push tile entities, both because it would be useful, and because it would be less confusing. The average player isn't going to even know what a tile entity is, let alone which blocks have tile entities, and that the reason they can't push some blocks is because they have tile entities. However, it's not me that has to be convinced, but Mojang. Someone is going to have to convince them that it would be good for the game, and worth doing. Arguing over whether or not it's a bug is futile.

It is frustrating that one mod says they would leave it open for Mojang to decide, and then another comes along and closes it. It's possible that a Mojang employee told them to, but that was not made clear. Regardless, there are other avenues to pursue this (the aforementioned suggestions forum and subreddit).

migrated

I meant that by definition, it is their prerogative to call any behavior a bug or intended.

so it has to be reopened anyway, because there was no reason for changing its status to “works as intended” in the first place. (default to open until we hear from mojang, since closed bugs are “off the charts” and don’t get looked at)

Erik Broes

WaI.

Torabi

Thanks for clarifying that, Grum. Any chance you could elaborate as to the reason why? Even an answer as simple as Difficulty/Performance/Game balance, or some combination of the tree (or whatever it may be) would be appreciated, and help people know whether or not to pursue this elsewhere.

migrated

This was implemented in bedrock edition, so it's not impossible to make pistons move tile entities

migrated

In Bbedrock Edition tile entities is writen by json file format In Java Edition tile entities is writen on ".minecraft/saves/[save name]/region/r.*.*.mca"

4ebugger

@unknown. Mojang on feedback site says: "Java and Bedrock will not have the exact same the same redstone systems", so we may never get movable tile entities in Java Edition.

migrated

(Unassigned)

Unconfirmed

Minecraft 1.4.2

Retrieved