1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2025-02-02 20:29:13 +00:00
Modernized/improved/actually updated version of ComputerCraft: https://tweaked.cc
Go to file
Jonathan Coates 94ad6dab0e
Map Unicode to CC's charset for char/paste events
We now convert uncode characters from "char" and "paste" events to CC's
charset[^1], rather than just leaving them unconverted. This means you
can paste in special characters like "♠" or "🮙" and they will be
converted correctly. Characters outside that range will be replaced with
"?", as before.

It would be nice to make this a bi-directional mapping, and do this for
Lua methods too (e.g. os.setComputerLabel). However, that has much wider
ramifications (and more likelyhood of breaking something), so avoiding
that for now.

 - Remove the generic "queue event" client->server message, and replace
   it with separate char/terminate/paste messages. This allows us to
   delete a chunk of code (all the NBT<->Object conversion), and makes
   server-side validation of events possible.

 - Fix os.setComputerLabel accepting the section sign — this is treated
   as special by Minecraft's formatting code. Sorry, no fun allowed.

 - Convert paste/char codepoints to CC's charset. Sadly MC's char hook
   splits the codepoint into surrogate pairs, which we *don't* attempt
   to reconstruct, so you can't currently use unicode input for block
   characters — you can paste them though!

[^1]: I'm referring this to the "terminal charset" within the code. I've
flip-flopped between "CraftOS", "terminal", "ComputerCraft", but feel
especially great.
2025-01-19 11:07:29 +00:00
.github Set issue type in the templates 2025-01-17 17:25:39 +00:00
buildSrc Wait for computers to run each tick in gametests 2025-01-17 18:43:19 +00:00
config/checkstyle Clean up Javadocs a little 2025-01-09 20:47:51 +00:00
doc Link to monitor events from the main monitor page 2024-11-28 10:31:36 +00:00
gradle More Gradle cleanup 2025-01-14 08:48:48 +00:00
LICENSES License CC:T according to the REUSE specification (#1351) 2023-03-15 21:52:13 +00:00
projects Map Unicode to CC's charset for char/paste events 2025-01-19 11:07:29 +00:00
tools Fix/update language checker script 2024-07-24 19:40:09 +01:00
.editorconfig More Gradle cleanup 2025-01-14 08:48:48 +00:00
.git-blame-ignore-revs License CC:T according to the REUSE specification (#1351) 2023-03-15 21:52:13 +00:00
.gitattributes Force LF for .kts files too 2023-05-17 13:28:03 +01:00
.gitignore More Gradle cleanup 2025-01-14 08:48:48 +00:00
.pre-commit-config.yaml Move Fabric datagen mixins to datagen module 2025-01-12 12:44:57 +00:00
build.gradle.kts A few more gametests, update to Gradle 8.12 2025-01-12 18:26:51 +00:00
CODE_OF_CONDUCT.md License CC:T according to the REUSE specification (#1351) 2023-03-15 21:52:13 +00:00
CONTRIBUTING.md Remove mention of submitting translations via PRs 2025-01-05 23:25:29 +00:00
crowdin.yml Fix Czech language mapping 2024-10-31 08:31:21 +00:00
gradle.properties Bump CC:T to 1.114.3 2025-01-14 10:24:23 +00:00
gradlew A few more gametests, update to Gradle 8.12 2025-01-12 18:26:51 +00:00
gradlew.bat Update to Gradle 8.10 2024-08-15 08:49:46 +01:00
illuaminate.sexp Update our parse errors to match latest illuaminate 2024-02-08 19:22:14 +00:00
package-lock.json Update npm packages and illuaminate 2024-10-27 10:01:29 +00:00
package.json Update npm packages and illuaminate 2024-10-27 10:01:29 +00:00
README.md Clean up Javadocs a little 2025-01-09 20:47:51 +00:00
REUSE.toml Move Fabric datagen mixins to datagen module 2025-01-12 12:44:57 +00:00
settings.gradle.kts Clean up Javadocs a little 2025-01-09 20:47:51 +00:00

CC: Tweaked

Current build status Download CC: Tweaked on Modrinth

CC: Tweaked is a mod for Minecraft which adds programmable computers, turtles and more to the game. A fork of the much-beloved ComputerCraft, it continues its legacy with improved performance and stability, along with a wealth of new features.

CC: Tweaked can be installed from Modrinth. It runs on both Minecraft Forge and Fabric.

Contributing

Any contribution is welcome, be that using the mod, reporting bugs or contributing code. If you want to get started developing the mod, check out the instructions here.

Community

If you need help getting started with CC: Tweaked, want to show off your latest project, or just want to chat about ComputerCraft, do check out our GitHub discussions page! There's also a fairly populated, albeit quiet IRC channel on EsperNet, if that's more your cup of tea. You can join #computercraft through your desktop client, or online using KiwiIRC.

We also host fairly comprehensive documentation at tweaked.cc.

Using

CC: Tweaked is hosted on my maven repo, and so is relatively simple to depend on. You may wish to add a soft (or hard) dependency in your mods.toml file, with the appropriate version bounds, to ensure that API functionality you depend on is present.

repositories {
  maven {
    url "https://maven.squiddev.cc"
    content {
      includeGroup("cc.tweaked")
    }
  }
}

dependencies {
  // Vanilla (i.e. for multi-loader systems)
  compileOnly("cc.tweaked:cc-tweaked-$mcVersion-common-api:$cctVersion")

  // Forge Gradle
  compileOnly("cc.tweaked:cc-tweaked-$mcVersion-core-api:$cctVersion")
  compileOnly(fg.deobf("cc.tweaked:cc-tweaked-$mcVersion-forge-api:$cctVersion"))
  runtimeOnly(fg.deobf("cc.tweaked:cc-tweaked-$mcVersion-forge:$cctVersion"))

  // Fabric Loom
  modCompileOnly("cc.tweaked:cc-tweaked-$mcVersion-fabric-api:$cctVersion")
  modRuntimeOnly("cc.tweaked:cc-tweaked-$mcVersion-fabric:$cctVersion")
}

You should also be careful to only use classes within the dan200.computercraft.api package. Non-API classes are subject to change at any point. If you depend on functionality outside the API (or need to mixin to CC:T), please file an issue to let me know!

We bundle the API sources with the jar, so documentation should be easily viewable within your editor. Alternatively, the generated documentation can be browsed online.