1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2024-12-14 04:00:30 +00:00
Modernized/improved/actually updated version of ComputerCraft: https://tweaked.cc
Go to file
Jonathan Coates 2c59b9122b
Set location when creating a pocket modem
We now call getLevel() when attaching the peripheral, so need the
position to be available immediately. Fixes #1274.

I /think/ the entity should always be present, as peripherals are
only created on startup or when calling pocket.equipBack, both of which
require a player.[^1]

I suspect this was a little broken before (the level wouldn't be
available if a modem received a message before the position had
been set), but that would be much rarer.

I'm not 100% convinced about the thread-safety of this code (the writes
to level may not be immediately visible on other threads), so may need
to think about that.

[^1]: Note that when peripherals come to be /attached/ they may no
longer have a player (as there's a gap between turning a computer on and
it actually starting). However, the level/position will have been
initialised by then, so this isn't a problem.
2022-12-29 08:52:28 +00:00
.github Support renaming files directly without copying/deleting 2022-12-04 21:59:30 +00:00
buildSrc Fix crash on Fabric when attempting to use a non-fuel item as fuel. (#1275) 2022-12-29 08:22:09 +00:00
config Add a couple of errorprone plugins 2022-11-10 08:54:09 +00:00
doc Move some functions out of bios into their own APIs 2022-11-21 22:47:07 +00:00
gradle Prepare for 1.102.0 2022-12-24 10:51:54 +00:00
projects Set location when creating a pocket modem 2022-12-29 08:52:28 +00:00
tools Some refactoring of mounts 2022-12-09 22:02:31 +00:00
.editorconfig Reformat everything 2022-11-04 13:41:38 +00:00
.git-blame-ignore-revs Exclude the previous commit from git blame 2022-11-04 13:42:00 +00:00
.gitattributes Update project paths in our utility build scripts 2022-11-10 09:12:28 +00:00
.gitignore Split CC:T into common and forge projects 2022-11-10 08:54:09 +00:00
.gitpod.yml Use a Gradle plugin to download illuaminate 2022-09-11 14:11:33 +01:00
.pre-commit-config.yaml Split CC:T into common and forge projects 2022-11-10 08:54:09 +00:00
build.gradle.kts Various improvements to packaging 2022-11-17 09:26:57 +00:00
CODE_OF_CONDUCT.md Add a code of conduct 2022-07-08 22:08:50 +01:00
CONTRIBUTING.md Generate en_us.json via datagen 2022-11-20 13:00:43 +00:00
gradle.properties Prepare for 1.102.0 2022-12-24 10:51:54 +00:00
gradlew Bump Gradle and Kotlin versions 2021-11-26 21:12:20 +00:00
gradlew.bat Bump Gradle/ForgeGradle version 2021-02-13 12:39:52 +00:00
illuaminate.sexp Support renaming files directly without copying/deleting 2022-12-04 21:59:30 +00:00
LICENSE Add a pre commit hook to lint code 2021-04-28 21:24:27 +01:00
package-lock.json Update npm packages 2022-07-21 20:38:44 +01:00
package.json Update npm packages 2022-07-21 20:38:44 +01:00
README.md Prepare for 1.102.0 2022-12-24 10:51:54 +00:00
settings.gradle.kts Initial pass of the API breaking changes for 1.19.3 (#1232) 2022-12-03 15:02:00 +00:00

CC: Tweaked

Current build status Download CC: Tweaked on CurseForge

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 better performance, stability, and a wealth of new features.

CC: Tweaked can be installed from CurseForge or Modrinth. It requires the Minecraft Forge mod loader, but versions are available for 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 forum and GitHub discussions page! There's also a fairly populated, albeit quiet IRC channel, if that's more your cup of tea.

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://squiddev.cc/maven/"
    content {
      includeGroup("cc.tweaked")
      includeModule("org.squiddev", "Cobalt")
      includeModule("fuzs.forgeconfigapiport", "forgeconfigapiport-fabric")
    }
  }
}

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

  // Forge Gradle
  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, file an issue, and we can look into exposing more features.

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.