mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-11-12 11:24:34 +00:00
Almost definitely too late (and not sure if anyone will read them anyway), but we can but try.
129 lines
5.3 KiB
HTML
129 lines
5.3 KiB
HTML
<!--
|
|
SPDX-FileCopyrightText: 2025 The CC: Tweaked Developers
|
|
|
|
SPDX-License-Identifier: MPL-2.0
|
|
-->
|
|
|
|
<!DOCTYPE HTML>
|
|
<html lang="en">
|
|
<body>
|
|
<p>
|
|
This is the documentation for CC: Tweaked $modVersion for Minecraft $mcVersion. Documentation for other versions of
|
|
Minecraft are available on the CC: Tweaked website:
|
|
|
|
<ul>
|
|
<li><a href="/mc-1.20.x/javadoc/">Minecraft 1.20.1</a>
|
|
<li><a href="/mc-1.21.x/javadoc/">Minecraft 1.21.1</a>
|
|
</ul>
|
|
|
|
<h1>Quick links</h1>
|
|
<p>
|
|
You probably want to start in the following places:
|
|
|
|
<ul>
|
|
<li>{@linkplain dan200.computercraft.api.peripheral Registering new peripherals}</li>
|
|
<li>
|
|
{@link dan200.computercraft.api.lua.LuaFunction} and {@link dan200.computercraft.api.lua.IArguments} for
|
|
adding methods to your peripheral or Lua objects.
|
|
</li>
|
|
<li>{@linkplain dan200.computercraft.api.turtle.ITurtleUpgrade Turtle upgrades}</li>
|
|
<li>{@linkplain dan200.computercraft.api.pocket.IPocketUpgrade Pocket upgrades}</li>
|
|
</ul>
|
|
|
|
<h1>Using</h1>
|
|
<p>
|
|
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 <code>mods.toml</code> file, with the appropriate version bounds, to ensure that API
|
|
functionality you depend on is present.
|
|
|
|
<pre class="language language-groovy"><code>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:$modVersion")
|
|
|
|
// Forge Gradle
|
|
compileOnly("cc.tweaked:cc-tweaked-$mcVersion-core-api:$modVersion")
|
|
compileOnly(fg.deobf("cc.tweaked:cc-tweaked-$mcVersion-forge-api:$modVersion"))
|
|
runtimeOnly(fg.deobf("cc.tweaked:cc-tweaked-$mcVersion-forge:$modVersion"))
|
|
|
|
// Fabric Loom
|
|
modCompileOnly("cc.tweaked:cc-tweaked-$mcVersion-fabric-api:$modVersion")
|
|
modRuntimeOnly("cc.tweaked:cc-tweaked-$mcVersion-fabric:$modVersion")
|
|
}
|
|
</code></pre>
|
|
|
|
<p>
|
|
You should also be careful to only use classes within the <code>dan200.computercraft.api</code> 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 <a href="https://github.com/cc-tweaked/CC-Tweaked/discussions/new/choose">start a discussion</a> to
|
|
let me know!
|
|
|
|
|
|
<h1>Updating from Minecraft 1.20.1 to 1.21.1</h1>
|
|
|
|
<h2>Peripherals</h2>
|
|
<ul>
|
|
<li>
|
|
<p>
|
|
On NeoForge, the peripheral capability has migrated to NeoForge's new capability system.
|
|
<code>dan200.computercraft.api.peripheral.PeripheralCapability</code> can be used to register a peripheral.
|
|
<code>IPeripheralProvider</code> has also been removed, as capabilities can now be used for arbitrary
|
|
blocks.
|
|
</ul>
|
|
|
|
<p>
|
|
{@linkplain dan200.computercraft.api.peripheral Read more on registering peripherals}.
|
|
|
|
<h2>Turtle and pocket upgrades</h2>
|
|
Turtle and pocket upgrades have been migrated to use Minecraft's dynamic registries. While upgrades themselves have not
|
|
changed much, the interface for registering them is dramatically different.
|
|
|
|
<ul>
|
|
<li>
|
|
<p>
|
|
<code>TurtleUpgradeSerialiser</code> and <code>PocketUpgradeSerialiser</code> have been unified into a
|
|
single {@link dan200.computercraft.api.upgrades.UpgradeType} class
|
|
<ul>
|
|
<li>
|
|
Replace <code>TurtleUpgradeSerialiser.registryId()</code> with
|
|
{@link dan200.computercraft.api.turtle.ITurtleUpgrade#typeRegistry()} and <code>PocketUpgradeSerialiser.registryId()</code>
|
|
with {@link dan200.computercraft.api.pocket.IPocketUpgrade#typeRegistry()}.
|
|
<li>
|
|
Replace all other usages of <code>TurtleUpgradeSerialiser</code> and <code>PocketUpgradeSerialiser</code>
|
|
with {@link dan200.computercraft.api.upgrades.UpgradeType}.
|
|
</ul>
|
|
|
|
<li>
|
|
Upgrades are now (de)serialised using codecs, rather than manually reading from JSON and encoding/decoding
|
|
network packets. Instead of subclassing {@link dan200.computercraft.api.upgrades.UpgradeType}, it is recommended
|
|
you use {@link dan200.computercraft.api.upgrades.UpgradeType#create} to create a new type from a
|
|
<code>MapCodec</code>.
|
|
|
|
<li>
|
|
Upgrades are no longer aware of their ID, and so cannot compute their adjective. The adjective must now either
|
|
be hard-coded, or read as part of the codec.
|
|
|
|
<li>
|
|
The upgrade data providers have been removed, in favour of mod-loaders built-in support for dynamic registries.
|
|
I'm afraid it's probably easier if you delete your existing upgrade datagen code and start from scratch. See
|
|
<a href="./dan200/computercraft/api/turtle/ITurtleUpgrade.html#datagen">the <code>ITurtleUpgrade</code>
|
|
documentation for an example</a>.
|
|
|
|
<li>
|
|
Upgrades now store their additional data ({@link dan200.computercraft.api.turtle.ITurtleAccess#getUpgradeData},
|
|
{@link dan200.computercraft.api.pocket.IPocketAccess#getUpgradeData()}) as an immutable component map, rather
|
|
than a compound tag.
|
|
</ul>
|
|
|
|
<p>
|
|
{@linkplain dan200.computercraft.api.turtle.ITurtleUpgrade Read more on registering turtle upgrades}.
|
|
|
|
</body>
|
|
</html>
|