Fabricators-of-Create / Create

[Fabric Mod] Building Tools and Aesthetic Technology
MIT License
894 stars 200 forks source link

Filtered Content/Smart Observer #996

Closed Damdrara closed 3 days ago

Damdrara commented 1 year ago

Describe the Bug

A Content/Smart Observer with an Filter with multiple items, set to Allow, and a Display Link set to "List matching items" does not, in fact, list matching items. The output is blank, even if the items are actually in the vault.

Setting the filter to deny seems to work. ~Filtering just one item directly works as well.~

Reproduction Steps

  1. Make a vault with a content/smart observer attached
  2. Make a filter for various items, set it to "allow"
  3. Put a bunch of items into the vault, including some of those on the filter
  4. Make a Display board, and set a display link to put the observer data on the display link.
  5. Set the display link to "List matching items" ...

Expected Result

The Display Board should list the matching items instead of staying blank.

Screenshots and Videos

image

Crash Report or Log

No response

Operating System

Windows 11

Mod Version

0.5.1b

Minecraft Version

1.19.2

Other Mods

No response

Additional Context

Also happen s on 0.5.0i

Damdrara commented 1 year ago

The bug is also mentioned in this Video, though in a more complex scenario: https://www.youtube.com/watch?v=nzomuRvDgfI&t=123s

Damdrara commented 1 year ago

Also, the bug does NOT happen on the Forge version. It's specific to Fabric.

electricsteve commented 1 year ago

maybe you pushed the wrong button in the gui, there is also a button to add it but inverted

Damdrara commented 1 year ago

I think you're thinking off Attribute Filters. I'm talking about regular filters.

I tested this with the exact same world on both Forge and Fabric - on Forge it simply works as expected, on Fabric it does not. This is not user error.

electricsteve commented 1 year ago

but did you use the same version on forge, in the screenshot you're using the old texture

Damdrara commented 1 year ago

I tested it on Forge 0.5.0i and 0.5.1b as well as Fabric 0.5.0i (Patch 6) and 0.5.1b (Patch 2), this bug does not occur on Forge, it does occur on Fabric.

FireFragment commented 1 year ago

I can confirm this happens, but only in some cases. Here is a more detailed report also with a video:


When using display link alongside with smart observer with filter to list items in chest on display board, it ignores some of the items, that the filter actually matches. According to my observation, it ignores everything after the first item in the inventory, that isn't matched by the filter.

Example:

If the filter on the smart observer is set to match only cobblestone, the display board should say 2 COBBLESTONE with the following chest inventory:

image

However, the display board says 1 COBBLESTONE, because the second one is ignored after the iron. You can see this on the video.

More detailed reproduction steps can be seen below

Reproduction Steps

Here are the exact steps I followed when reproducing the bug.

  1. Create a new creative world
  2. Move following items to your inventory - you will need them:
    • Chest
    • Smart observer
    • Display board
    • Small cogwheel
    • Creative motor
    • Display link
    • List filter
    • Cobblestone
    • Iron ingot

Building the contraption

  1. Place down a chest and a smart observer looking at it
  2. Near, create 2 block high and 4 blocks wide display board
  3. To the bottom-right corner of the board, add small cogwheel and connect it to creative motor
  4. Set the speed on the creative motor, so that it's at least 32RPM (to make the display board working)
  5. With display link in hand right-click the display board to make it its target. Then, place it on top of the smart observer
  6. Right-click the display link and set it to the "List matching Items" mode

The contraption

Setting it up

  1. With filter in hand, right click. This opens the filter GUI
  2. Move cobblestone to the filter GUI

Filter GUI

  1. Close the filter GUI
  2. Apply the filter to the smart observer
  3. Add the following items to the chest:
    • To the first slot of the chest, add 1 cobblestone.
    • To the second slot, add 1 iron
    • To the third slot, add 1 cobblestone again
    • Leave other slots empty

image

Observed result

You can now see, that the display board wrongly showed 1 COBBLESTONE

Expected Result

The display board should display all contents of the chest matching the filter, in this case, 2 COBBLESTONE

Screenshots and Videos

Here is a video summarizing the entire problem in a quick and clear manner:

https://github.com/Creators-of-Create/Create/assets/55660550/a5bb5bb1-7ab5-4be0-92a0-f3d384337984

nicolas-rabault commented 2 months ago

I experience the same bug on v0.5.1f patch1