Skip to content
This repository was archived by the owner on Jul 1, 2018. It is now read-only.
This repository was archived by the owner on Jul 1, 2018. It is now read-only.

[Feedback wanted] Splitting CCTweaks up #142

@SquidDev

Description

@SquidDev

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

  • All of CCTweaks-Lua
  • Packet optimisations/security fixes
  • Turtle blacklisting
  • Turtle refuel sources
  • Turtle place rotation
  • /cctweaks command
  • Multi-threading fixes
  • Computer TE saving and Sponge suspending
  • IExtendedTurtleUpgrade's upgrade change events.
  • Possibly a couple of API methods.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions