Project Red - Fabrication

Project Red - Fabrication

19M Downloads

cells unavailable within IC workbench

JodiSnepvangers opened this issue ยท 7 comments

commented

Describe the bug
very simple. every other catagory opens up a menu with multiple gates. Cells have their own catagory but clicking on it does not open such a menu and only allows the placements of null cells

To Reproduce
Steps to reproduce the behavior:
1: place a IC workbench, and prepare it with a blueprint
2: click on the Cells catagory, and watch as nothing opens

Expected behavior
a menu should pop up, giving the options for AND, INVERTED, and BUFFER cells.

Versions

  • CCL Version: 1.12.2-3.2.3.358
  • FMP Version: 1.12.2-2.6.2.83
  • MrTJPCore Version: 1.12.2-2.1.4.43
  • ProjectRed Version: 1.12.2-4.9.4.120
commented

looking at the source code, as far as I can tell this is currently intentional, though I don't know why... the other cells have been commented out of the code in the gui renderer.

commented

looking at the source code, as far as I can tell this is currently intentional, though I don't know why... the other cells have been commented out of the code in the gui renderer.

Hello there. I hope you see this. Could you point out where in the codebase that line is? I just began digging in but it'd be nice to find a starting point so I can check which commit changed this and perhaps why. I assume that there must be a bug with cells on IC's if they're disabled but I can not see anything in the issue tracker that mentions such a thing. I hope you still remember where it was, thank you! :3

commented

looking at the source code, as far as I can tell this is currently intentional, though I don't know why... the other cells have been commented out of the code in the gui renderer.

Hello there. I hope you see this. Could you point out where in the codebase that line is? I just began digging in but it'd be nice to find a starting point so I can check which commit changed this and perhaps why. I assume that there must be a bug with cells on IC's if they're disabled but I can not see anything in the issue tracker that mentions such a thing. I hope you still remember where it was, thank you! :3

Indeed a quick look brought me back to it, you will find GUI portion here
https://github.com/MrTJP/ProjectRed/blob/master/src/mrtjp/projectred/fabrication/guiicworkbench.scala
at lines 718 - 728 you will find the code that sets up the menu tree, in which a few tools are commented out. Unfortunately, I think if this is due to a bug with them the problem code is most likely located in a separate file.

commented

Unfortunately, I think if this is due to a bug with them the problem code is most likely located in a separate file.

True true, however, I can now check which commit d70c0f0 is responsible for the change and either install a version prior to that to restore old functionality or dig deeper into the code and come up with a patch for it myself since the maintainer is not around anymore.
As you can see, this change happened 2 years ago so it almost looks like option B will be what I'll have to go with as this seems to have happened 2 days before the update to 1.12

From what I could gather is that the two other cells are not implemented with their new logic system. GateICs appear to be compiled when you make them in game (which would make sense)
And the definitions for the invert and buffer cell are simply missing. I'm sure this can be implemented and then patched in. It's 2 class definitions as well as some commented out lines to make them register within the system. i wonder if someone actually already did this in a fork or other branch.

commented

Just quickly went over the ticket, so here's a few things:

  1. This is not a bug, they were intentionally disabled because they don't work yet.
  2. The IC backend rework changes the way cells need to be handled. While they were gates before, they are actually defined as wires now (just like any of the other wires you can place in the IC), with single-direction propagation.
  3. The other types of cells require a mixture of wire and gate functionality, where in one axis it is just a wire, and on the other it acts as a gate, or some combination of the two. It will require more changes to implement.
commented

Omg you are alive! I lost all hope when I wrote those comments. I began to attempt to try myself but frankly, I might could've done it if it were in Java but Scala is so far away from anything I've learned and used regularly, or I think I'm just getting old. Also, it's not easy to understand the underlying API all alone and I can't even run it in debug mode to test things for some reason.

I've noticed that in the code, the null cell is just a forward wire in 2 independent directions from what I understood. Is there a chance you might pick this back up? Most of the major mods are still on 1.12.2 it seems. I understand that after years some projects may be shelved to make room for others, it's the natural progression so I don't want to pressure you too much. It would mean a lot though, I used cells on IC's constantly and it makes so much sense to have them especially on an IC for decode units, so on. Arrays are the holy grail of real world ICs after all.

commented

This is now outdated. Refer to the Fabrication v2 discussion: #1616