SquidDev-CC / CCTweaks

Random additions to ComputerCraft (somewhat deprecated, use CC-Tweaked if you're on Minecraft 1.12).
MIT License
12 stars 2 forks source link

[Feedback wanted] Splitting CCTweaks up #142

Open SquidDev opened 7 years ago

SquidDev commented 7 years ago

Firstly a disclaimer: these aren't concrete plans at all, just me putting some thoughts out there. Some of the things here are strictly programming related, some are more user oriented. Any requests, suggestions or other feedback is much appreciated.


CCTweaks is about to (or just did) reach its 2nd anniversary. It has grown immensely over the years, with both new gameplay elements and a lot of changes to ComputerCraft's internals. This does mean there are features of CCTweaks which could be run exclusively on the server without the mod being required on the client. To enable this, CCTweaks would have to be split up into at least two mods. Before progressing any further I want to gauge public interest, especially from server owners within the community.

There are a couple of things to consider here: CCTweaks could be split up into two mods: "Core" and "Gameplay". This could enable me to develop "Core" across a much larger version range (like CCTweaks-Lua, due to the stable nature of CC). However there are no guarantees about that and it does complicate distribution as people would have to install two mods.

An alternative would be to keep CCTweaks under one mod but split it into separate "modules" which can be selectively disabled and enabled. Some modules wouldn't require a client, others would. This does then lead to its own complications with syncing configs between client and server and ensuring various patches do not conflict.

Things which can be moved server-side only

Selim042 commented 7 years ago

I like the idea of splitting it into modules..

Alaberti commented 7 years ago

A lot of devs seem to be making it a best practice to have a core library, so I'd assume there's a good reason for it. I'd recommend it, especially if it frees you up to focus on other aspects/mod ideas. I think it's more on us modpack authors/players to ensure files are synced correctly for server/client provided your config documentation labels what's what, so I wouldn't worry too much about that. Anything else you do with the mod is all you and what makes your life easiest.

SquidDev commented 7 years ago

Right, I've been meaning to comment here for a couple of days now, and now is as good a time as any:

ComputerCraft has gone open source, and seems relatively welcome to changes. Dan himself has said there is potential to merge some of CCTweaks's features into the main codebase. And a lot of progress has been made.

As many features will be gone from CCTweaks, I don't know how relevant this will be. If everything I want merged, gets merged then the only thing left will be a couple of items and the /cctweaks command. Then splitting things up will be a lot easier 😄. However, I can't really make any further comments on this until it is clear what direction CC is going in.

SquidDev commented 7 years ago

So, more updates on this. As of 1.12, core mods should be separated from the main mod. Whilst it isn't currently enforced, it would probably be good practice to follow. We've got a couple of possible routes we can follow:

To avoid referencing the main jar, we also need to ensure that no tweak is conditionally applied. Currently the only two are multi-threading and MCMultipart compat. I think we are safe always using the new threading engine, and it should be possible to rewrite the latter to work without MCMultipart.

SquidDev commented 6 years ago

On a related note, it might be worth moving the turtle tool host and manipulator to Plethora. I feel it fits into that mod much better.