1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2024-06-26 07:03:22 +00:00
Modernized/improved/actually updated version of ComputerCraft: https://tweaked.cc
Go to file
Jonathan Coates 9d8c933a14
Remove several usages of ComputerFamily
While ComputerFamily is still useful, there's definitely some places
where it adds an extra layer of indirection. This commit attempts to
clean up some places where we no longer need it.

 - Remove ComputerFamily from AbstractComputerBlock. The only place this
   was needed is in TurtleBlock, and that can be replaced with normal
   Minecraft explosion resistence!

 - Pass in the fuel limit to the turtle block entity, rather than
   deriving it from current family.

 - The turtle BERs now derive their model from the turtle's item, rather
   than the turtle's family.

 - When creating upgrade/overlay recipes, use the item's name, rather
   than {pocket,turtle}_family. This means we can drop getFamily() from
   IComputerItem (it is still needed on to handle the UI).

 - We replace IComputerItem.withFamily with a method to change to a
   different item of the same type. ComputerUpgradeRecipe no longer
   takes a family, and instead just uses the result's item.

 - Computer blocks now use the normal Block.asItem() to find their
   corresponding item, rather than looking it up via family.

The above means we can remove all the family-based XyzItem.create(...)
methods, which have always felt a little ugly.

We still need ComputerFamily for a couple of things:
 - Permission checks for command computers.
 - Checks for mouse/colour support in ServerComputer.
 - UI textures.
2023-12-20 14:17:38 +00:00
.github Bump FG and Loom 2023-07-05 20:58:15 +01:00
.reuse Add a standalone CC:T UI 2023-10-28 17:58:11 +01:00
buildSrc Improve our version tooling 2023-12-19 18:12:21 +00:00
config Split ComputerThread/ComputerExecutor up a little 2023-10-19 22:50:11 +01:00
doc Update Cobalt to 0.8.1 2023-12-16 22:39:48 +00:00
gradle Improve our version tooling 2023-12-19 18:12:21 +00:00
LICENSES License CC:T according to the REUSE specification (#1351) 2023-03-15 21:52:13 +00:00
projects Remove several usages of ComputerFamily 2023-12-20 14:17:38 +00:00
tools Generic dependency update 2023-08-31 19:14:37 +01:00
.editorconfig License CC:T according to the REUSE specification (#1351) 2023-03-15 21:52:13 +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 Turtle flags 2023-03-31 18:14:44 +01:00
.gitpod.yml Further licensing work 2023-03-29 23:00:18 +01:00
.pre-commit-config.yaml Run checkstyle on all source sets 2023-10-03 09:06:17 +01:00
build.gradle.kts Improve our version tooling 2023-12-19 18:12:21 +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 Run checkstyle on all source sets 2023-10-03 09:06:17 +01:00
gradle.properties Bump CC:T to 1.109.2 2023-12-16 22:46:30 +00:00
gradlew Update to Gradle 8.x 2023-06-29 20:10:17 +01:00
gradlew.bat Update to Gradle 8.x 2023-06-29 20:10:17 +01:00
illuaminate.sexp Add abstract classes for our generic peripherals 2023-11-22 18:20:15 +00:00
package-lock.json Small cleanup to our web build scripts 2023-10-08 13:14:02 +01:00
package.json Small cleanup to our web build scripts 2023-10-08 13:14:02 +01:00
README.md Fix several issues with the web emulator 2023-11-15 13:12:31 +00:00
settings.gradle.kts Add a standalone CC:T UI 2023-10-28 17:58:11 +01:00

CC: Tweaked

Current build status Download CC: Tweaked on CurseForge 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 CurseForge or 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 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")
    }
  }
}

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")
}

When using ForgeGradle, you may also need to add the following:

minecraft {
    runs {
        configureEach {
            property 'mixin.env.remapRefMap', 'true'
            property 'mixin.env.refMapRemappingFile', "${buildDir}/createSrgToMcp/output.srg"
        }
    }
}

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.