
This restructures monitor in order to make it thread-safe: namely removing any world interaction from the computer thread. Instead of each monitor having their own terminal, resize flag, etc... we use a monitor "multiblock" object. This is constructed on the origin monitor and propagated to other monitors when required. We attempt to construct the multiblock object (and so the corresponding terminal) as lazily as posible. Consequently, we only create the terminal when fetching the peripheral (not when attaching, as that is done on the computer thread). If a monitor is resized (say due to placing/breaking a monitor) then we will invalidate all references to the multiblock object, construct a new one if required, and propagate it to all component monitors. This commit also fixes several instances of glLists not being deleted after use. It is not a comprehensive fix, but that is outside the scope of this commit.
CC: Tweaked is a fork of ComputerCraft which aims to provide earlier access to the more experimental and in-development features of the mod. For a more stable experience, I recommend checking out the original mod.
What?
CC: Tweaked does not aim to create a competing fork of ComputerCraft, nor am I planning to take it in in a vastly different direction to the original mod. In fact, CC: Tweaked aims to be a nurturing ground for various features, with a pull request against the original mod being the end goal.
CC: Tweaked also includes many pull requests from the community which have not yet been merged, offering a large number of additional bug fixes and features over the original mod.
Relation to CCTweaks?
This mod has nothing to do with CCTweaks, though there is no denying the name is a throwback to it. However, I do plan to migrate some features of CCTweaks into CC: Tweaked.
Contributing
Any contribution is welcome, be that using the mod, reporting bugs or contributing code. If you do wish to contribute code, do consider submitting it to the ComputerCraft repository instead.
That being said, in order to start helping develop CC: Tweaked, you'll need to follow these steps:
- Clone the repository:
git clone https://github.com/SquidDev-CC/CC-Tweaked.git && cd CC-Tweaked
- Setup Forge:
./gradlew setupDecompWorkspace
- Test your changes:
./gradlew runClient
(or run theGradleStart
class from your IDE).
If you want to run CC: Tweaked in a normal Minecraft instance, run ./gradlew build
and copy the .jar
from
build/libs
.