1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2025-11-07 00:42:59 +00:00

Compare commits

..

11 Commits

Author SHA1 Message Date
Jonathan Coates
bbf3e48763 Increase timeout of some more tests 2021-08-22 18:01:06 +01:00
Jonathan Coates
92fe1d4bc2 Merge branch 'mc-1.16.x' into mc-1.17.x 2021-08-22 17:50:33 +01:00
Jonathan Coates
4d591c600c Use clearRemoved rather than onLoad
Latter is broken on Forge right now.
2021-08-20 21:48:34 +01:00
Jonathan Coates
0a8e427c61 Merge branch 'mc-1.16.x' into mc-1.17.x 2021-08-20 21:47:55 +01:00
Jonathan Coates
0a537eaeee Rewrite some in-hand rendering code
- Fix missing shader for printout render type
 - Use current buffer provider for pocket computers rather than the
   tesselator. This requires us to use a non-depth-writing terminal +
   depth blocker, as otherwise one gets z-fighting.
 - Thus refactor some of the shaders to be terminal wide, not just for
   monitors.

Fixes #894
2021-08-17 13:00:52 +01:00
Jonathan Coates
aa857c1be3 Start using Java's instanceof pattern matching
Well, not really pattern matching, but it's still an improvement!
2021-08-08 12:45:30 +01:00
Jonathan Coates
e4ced551eb Remove most of the turtle events
I don't think anybody actually used these, and I'm not convinced they
had much value anyway.

It might be worth switching the refueling code to work as a registry
instead, though events are kinda nice.
2021-08-08 12:43:03 +01:00
Jonathan Coates
6eec9ba1a3 Merge branch 'mc-1.16.x' into mc-1.17.x 2021-08-08 12:40:00 +01:00
Jonathan Coates
a8f675c59d Make current branch detection more robust 2021-08-06 18:04:05 +01:00
Jonathan Coates
bb1ebaee4f Bump Forge and prepare for a release
I've been shown up[1]. Unacceptable!

[1]: https://twitter.com/SangarWasTaken/status/1423676992336060417
2021-08-06 17:25:34 +01:00
Jonathan Coates
bb1183d274 Update to Minecraft 1.17.1
- Remap everything to use MojMap class names too. This is what Forge
   uses, so \o/.

   This does NOT currently rename any classes to use suffix notation or
   BlockEntity. That will come in a later change. We do however rename
   references of "World" to "Level".

 - Move the test mod into a separate "cctest" source set. As Forge now
   works using Jigsaw we cannot have multiple mods defining the same
   package, which causes problems with our JUnit test classes.

 - Remove our custom test framework and replace it with vanilla's (this
   is no longer stripped from the jar). RIP kotlin coroutines.

   It's still worth using Kotlin here though, just for extension
   methods.

 - Other 1.17-related changes:
    - Use separate tile/block entity tick methods for server and client
      side, often avoiding ticking at all on the client.

    - Switch much of the monitor rendering code to use vanilla's
      built-in shader system. It's still an incredibly ugly hack, so not
      really expecting this to work with any rendering mods, but we'll
      cross that bridge when we come to it.
2021-08-06 17:18:09 +01:00
578 changed files with 7882 additions and 20782 deletions

View File

@@ -8,9 +8,9 @@ body:
label: Minecraft Version label: Minecraft Version
description: What version of Minecraft are you using? description: What version of Minecraft are you using?
options: options:
- 1.15.x
- 1.16.x - 1.16.x
- 1.17.x - 1.17.x
- 1.18.x
validations: validations:
required: true required: true
- type: input - type: input

View File

@@ -4,5 +4,5 @@ contact_links:
url: https://discord.computercraft.cc url: https://discord.computercraft.cc
about: Get help on the ComputerCraft Discord. about: Get help on the ComputerCraft Discord.
- name: GitHub Discussions - name: GitHub Discussions
url: https://github.com/cc-tweaked/CC-Tweaked/discussions url: https://github.com/SquidDev-CC/CC-Tweaked/discussions
about: Or ask questions on GitHub Discussions. about: Or ask questions on GitHub Discussions.

View File

@@ -13,7 +13,7 @@ chmod 600 "$HOME/.ssh/key"
# And upload # And upload
rsync -avc -e "ssh -i $HOME/.ssh/key -o StrictHostKeyChecking=no -p $SSH_PORT" \ rsync -avc -e "ssh -i $HOME/.ssh/key -o StrictHostKeyChecking=no -p $SSH_PORT" \
"$GITHUB_WORKSPACE/build/docs/lua/" \ "$GITHUB_WORKSPACE/build/docs/lua/" \
"$SSH_USER@$SSH_HOST:/$DEST" "$SSH_USER@$SSH_HOST:/var/www/tweaked.cc/$DEST"
rsync -avc -e "ssh -i $HOME/.ssh/key -o StrictHostKeyChecking=no -p $SSH_PORT" \ rsync -avc -e "ssh -i $HOME/.ssh/key -o StrictHostKeyChecking=no -p $SSH_PORT" \
"$GITHUB_WORKSPACE/build/docs/javadoc/" \ "$GITHUB_WORKSPACE/build/docs/javadoc/" \
"$SSH_USER@$SSH_HOST:/$DEST/javadoc" "$SSH_USER@$SSH_HOST:/var/www/tweaked.cc/$DEST/javadoc"

View File

@@ -16,11 +16,11 @@ automatically with GitHub, so please don't submit PRs adding/changing translatio
In order to develop CC: Tweaked, you'll need to download the source code and then run it. This is a pretty simple In order to develop CC: Tweaked, you'll need to download the source code and then run it. This is a pretty simple
process. When building on Windows, Use `gradlew.bat` instead of `./gradlew`. process. When building on Windows, Use `gradlew.bat` instead of `./gradlew`.
- **Clone the repository:** `git clone https://github.com/cc-tweaked/CC-Tweaked.git && cd CC-Tweaked` - **Clone the repository:** `git clone https://github.com/SquidDev-CC/CC-Tweaked.git && cd CC-Tweaked`
- **Setup Forge:** `./gradlew build` - **Setup Forge:** `./gradlew build`
- **Run Minecraft:** `./gradlew runClient` (or run the `GradleStart` class from your IDE). - **Run Minecraft:** `./gradlew runClient` (or run the `GradleStart` class from your IDE).
- **Optionally:** For small PRs (especially those only touching Lua code), it may be easier to use GitPod, which - **Optionally:** For small PRs (especially those only touching Lua code), it may be easier to use GitPod, which
provides a pre-configured environment: [![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-2b2b2b?logo=gitpod)](https://gitpod.io/#https://github.com/cc-tweaked/CC-Tweaked/) provides a pre-configured environment: [![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-2b2b2b?logo=gitpod)](https://gitpod.io/#https://github.com/SquidDev-CC/CC-Tweaked/)
Do note you will need to download the mod after compiling to test. Do note you will need to download the mod after compiling to test.
@@ -103,7 +103,7 @@ tests go inside `describe` blocks, and a single test goes inside `it`.
Assertions are generally written using `expect` (inspired by Hamcrest and the like). For instance, `expect(foo):eq("bar")` Assertions are generally written using `expect` (inspired by Hamcrest and the like). For instance, `expect(foo):eq("bar")`
asserts that your variable `foo` is equal to the expected value `"bar"`. asserts that your variable `foo` is equal to the expected value `"bar"`.
[new-issue]: https://github.com/cc-tweaked/CC-Tweaked/issues/new/choose "Create a new issue" [new-issue]: https://github.com/SquidDev-CC/CC-Tweaked/issues/new/choose "Create a new issue"
[community]: README.md#Community "Get in touch with the community." [community]: README.md#Community "Get in touch with the community."
[checkstyle]: https://checkstyle.org/ [checkstyle]: https://checkstyle.org/
[illuaminate]: https://github.com/SquidDev/illuaminate/ "Illuaminate on GitHub" [illuaminate]: https://github.com/SquidDev/illuaminate/ "Illuaminate on GitHub"

View File

@@ -1,5 +1,5 @@
# ![CC: Tweaked](doc/logo.png) # ![CC: Tweaked](doc/logo.png)
[![Current build status](https://github.com/cc-tweaked/CC-Tweaked/workflows/Build/badge.svg)](https://github.com/cc-tweaked/CC-Tweaked/actions "Current build status") [![Download CC: Tweaked on CurseForge](http://cf.way2muchnoise.eu/title/cc-tweaked.svg)][CurseForge] [![Current build status](https://github.com/SquidDev-CC/CC-Tweaked/workflows/Build/badge.svg)](https://github.com/SquidDev-CC/CC-Tweaked/actions "Current build status") [![Download CC: Tweaked on CurseForge](http://cf.way2muchnoise.eu/title/cc-tweaked.svg)][CurseForge]
CC: Tweaked is a mod for Minecraft which adds programmable computers, turtles and more to the game. A fork of the 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. much-beloved [ComputerCraft], it continues its legacy with better performance, stability, and a wealth of new features.
@@ -26,12 +26,7 @@ on is present.
```groovy ```groovy
repositories { repositories {
maven { maven { url 'https://squiddev.cc/maven/' }
url 'https://squiddev.cc/maven/'
content {
includeGroup 'org.squiddev'
}
}
} }
dependencies { dependencies {

View File

@@ -17,7 +17,7 @@ plugins {
id "com.github.hierynomus.license" version "0.16.1" id "com.github.hierynomus.license" version "0.16.1"
id "com.matthewprenger.cursegradle" version "1.4.0" id "com.matthewprenger.cursegradle" version "1.4.0"
id "com.github.breadmoirai.github-release" version "2.2.12" id "com.github.breadmoirai.github-release" version "2.2.12"
id "org.jetbrains.kotlin.jvm" version "1.6.0" id "org.jetbrains.kotlin.jvm" version "1.5.21"
id "com.modrinth.minotaur" version "1.2.1" id "com.modrinth.minotaur" version "1.2.1"
} }
@@ -29,7 +29,7 @@ version = mod_version
group = "org.squiddev" group = "org.squiddev"
archivesBaseName = "cc-tweaked-${mc_version}" archivesBaseName = "cc-tweaked-${mc_version}"
def javaVersion = JavaLanguageVersion.of(8) def javaVersion = JavaLanguageVersion.of(16)
java { java {
toolchain { toolchain {
languageVersion = javaVersion languageVersion = javaVersion
@@ -46,6 +46,9 @@ tasks.withType(JavaExec).configureEach {
} }
sourceSets { sourceSets {
main.java {
exclude 'dan200/computercraft/shared/integration/**'
}
main.resources { main.resources {
srcDir 'src/generated/resources' srcDir 'src/generated/resources'
} }
@@ -56,6 +59,10 @@ sourceSets {
minecraft { minecraft {
runs { runs {
all { all {
lazyToken('minecraft_classpath') {
configurations.shade.copyRecursive().resolve().collect { it.absolutePath }.join(File.pathSeparator)
}
property 'forge.logging.markers', 'REGISTRIES' property 'forge.logging.markers', 'REGISTRIES'
property 'forge.logging.console.level', 'debug' property 'forge.logging.console.level', 'debug'
@@ -89,6 +96,12 @@ minecraft {
source sourceSets.testMod source sourceSets.testMod
} }
} }
lazyToken('minecraft_classpath') {
(configurations.shade.copyRecursive().resolve() + configurations.testModExtra.copyRecursive().resolve())
.collect { it.absolutePath }
.join(File.pathSeparator)
}
} }
testServer { testServer {
@@ -100,6 +113,12 @@ minecraft {
source sourceSets.testMod source sourceSets.testMod
} }
} }
lazyToken('minecraft_classpath') {
(configurations.shade.copyRecursive().resolve() + configurations.testModExtra.copyRecursive().resolve())
.collect { it.absolutePath }
.join(File.pathSeparator)
}
} }
} }
@@ -108,7 +127,6 @@ minecraft {
accessTransformer file('src/main/resources/META-INF/accesstransformer.cfg') accessTransformer file('src/main/resources/META-INF/accesstransformer.cfg')
accessTransformer file('src/testMod/resources/META-INF/accesstransformer.cfg') accessTransformer file('src/testMod/resources/META-INF/accesstransformer.cfg')
} }
repositories { repositories {
mavenCentral() mavenCentral()
maven { maven {
@@ -120,22 +138,24 @@ repositories {
configurations { configurations {
shade shade
implementation.extendsFrom shade implementation.extendsFrom shade
cctJavadoc cctJavadoc
testModExtra
testModImplementation.extendsFrom(testModExtra)
testModImplementation.extendsFrom(implementation) testModImplementation.extendsFrom(implementation)
testModImplementation.extendsFrom(testImplementation)
} }
dependencies { dependencies {
checkstyle "com.puppycrawl.tools:checkstyle:8.25" checkstyle "com.puppycrawl.tools:checkstyle:8.45"
minecraft "net.minecraftforge:forge:${mc_version}-${forge_version}" minecraft "net.minecraftforge:forge:${mc_version}-${forge_version}"
compileOnly fg.deobf("mezz.jei:jei-1.16.5:7.7.0.104:api") compileOnly fg.deobf("mezz.jei:jei-1.16.5:7.7.0.104:api")
compileOnly fg.deobf("com.blamejared.crafttweaker:CraftTweaker-1.16.5:7.1.0.313") // compileOnly fg.deobf("com.blamejared.crafttweaker:CraftTweaker-1.16.5:7.1.0.313")
compileOnly fg.deobf("commoble.morered:morered-1.16.5:2.1.1.0") // compileOnly fg.deobf("commoble.morered:morered-1.16.5:2.1.1.0")
runtimeOnly fg.deobf("mezz.jei:jei-1.16.5:7.7.0.104") // runtimeOnly fg.deobf("mezz.jei:jei-1.16.5:7.7.0.104")
shade 'org.squiddev:Cobalt:0.5.2-SNAPSHOT' shade 'org.squiddev:Cobalt:0.5.2-SNAPSHOT'
@@ -143,13 +163,13 @@ dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.7.0' testImplementation 'org.junit.jupiter:junit-jupiter-params:5.7.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
testImplementation 'org.hamcrest:hamcrest:2.2' testImplementation 'org.hamcrest:hamcrest:2.2'
testImplementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0' testImplementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.21'
testImplementation 'org.jetbrains.kotlin:kotlin-reflect:1.6.0' testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.1'
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2'
testModImplementation sourceSets.main.output testModImplementation sourceSets.main.output
testModExtra 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.21'
cctJavadoc 'cc.tweaked:cct-javadoc:1.4.2' cctJavadoc 'cc.tweaked:cct-javadoc:1.4.1'
} }
// Compile tasks // Compile tasks
@@ -175,24 +195,28 @@ task luaJavadoc(type: Javadoc) {
options.noTimestamp = false options.noTimestamp = false
javadocTool = javaToolchains.javadocToolFor { javadocTool = javaToolchains.javadocToolFor {
languageVersion = JavaLanguageVersion.of(11) languageVersion = javaVersion
} }
} }
jar { jar {
manifest { manifest {
attributes(["Specification-Title" : "computercraft", attributes([
"Specification-Vendor" : "SquidDev", "Specification-Title" : "computercraft",
"Specification-Version" : "1", "Specification-Vendor" : "SquidDev",
"Implementation-Title" : "CC: Tweaked", "Specification-Version" : "1",
"Implementation-Version" : "${mod_version}", "Implementation-Title" : "CC: Tweaked",
"Implementation-Vendor" : "SquidDev", "Implementation-Version" : "${mod_version}",
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")]) "Implementation-Vendor" : "SquidDev",
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
])
} }
from configurations.shade.collect { it.isDirectory() ? it : zipTree(it) } from configurations.shade.collect { it.isDirectory() ? it : zipTree(it) }
} }
jar.finalizedBy('reobfJar')
[compileJava, compileTestJava, compileTestModJava].forEach { [compileJava, compileTestJava, compileTestModJava].forEach {
it.configure { it.configure {
options.compilerArgs << "-Xlint" << "-Xlint:-processing" options.compilerArgs << "-Xlint" << "-Xlint:-processing"
@@ -222,9 +246,11 @@ processResources {
include 'META-INF/mods.toml' include 'META-INF/mods.toml'
include 'data/computercraft/lua/rom/help/credits.txt' include 'data/computercraft/lua/rom/help/credits.txt'
expand 'version': mod_version, expand(
'mcversion': mc_version, 'version': mod_version,
'gitcontributors': contributors.sort(false, String.CASE_INSENSITIVE_ORDER).join('\n') 'mcversion': mc_version,
'gitcontributors': contributors.sort(false, String.CASE_INSENSITIVE_ORDER).join('\n')
)
} }
from(sourceSets.main.resources.srcDirs) { from(sourceSets.main.resources.srcDirs) {
@@ -242,6 +268,7 @@ sourcesJar {
import com.hierynomus.gradle.license.tasks.LicenseCheck import com.hierynomus.gradle.license.tasks.LicenseCheck
import com.hierynomus.gradle.license.tasks.LicenseFormat import com.hierynomus.gradle.license.tasks.LicenseFormat
import com.modrinth.minotaur.TaskModrinthUpload
import org.apache.tools.ant.taskdefs.condition.Os import org.apache.tools.ant.taskdefs.condition.Os
List<String> mkCommand(String command) { List<String> mkCommand(String command) {
@@ -408,11 +435,7 @@ task setupServer(type: Copy) {
} }
} }
if (name != "Client" || project.findProperty('cc.tweaked.clientTests') == 'true') { check.dependsOn("jacocoTest${name}Report")
// Don't run client tests unless explicitly opted into them. They're a bit of a faff
// to run and pretty flakey.
check.dependsOn("jacocoTest${name}Report")
}
} }
@@ -458,18 +481,19 @@ task checkRelease {
} }
check.dependsOn checkRelease check.dependsOn checkRelease
def isStable = false
curseforge { curseforge {
apiKey = project.hasProperty('curseForgeApiKey') ? project.curseForgeApiKey : '' apiKey = project.hasProperty('curseForgeApiKey') ? project.curseForgeApiKey : ''
project { project {
id = '282001' id = '282001'
releaseType = 'release' releaseType = isStable ? 'release' : 'alpha'
changelog = "Release notes can be found on the GitHub repository (https://github.com/cc-tweaked/CC-Tweaked/releases/tag/v${mc_version}-${mod_version})." changelog = "Release notes can be found on the GitHub repository (https://github.com/SquidDev-CC/CC-Tweaked/releases/tag/v${mc_version}-${mod_version})."
addGameVersion "${mc_version}" addGameVersion "${mc_version}"
} }
} }
import com.modrinth.minotaur.TaskModrinthUpload
tasks.register('publishModrinth', TaskModrinthUpload.class).configure { tasks.register('publishModrinth', TaskModrinthUpload.class).configure {
dependsOn('assemble', 'reobfJar') dependsOn('assemble', 'reobfJar')
onlyIf { onlyIf {
@@ -480,8 +504,9 @@ tasks.register('publishModrinth', TaskModrinthUpload.class).configure {
projectId = 'gu7yAYhd' projectId = 'gu7yAYhd'
versionNumber = "${project.mc_version}-${project.mod_version}" versionNumber = "${project.mc_version}-${project.mod_version}"
uploadFile = jar uploadFile = jar
versionType = isStable ? 'RELEASE' : 'ALPHA'
addGameVersion(project.mc_version) addGameVersion(project.mc_version)
changelog = "Release notes can be found on the [GitHub repository](https://github.com/cc-tweaked/CC-Tweaked/releases/tag/v${mc_version}-${mod_version})." changelog = "Release notes can be found on the [GitHub repository](https://github.com/SquidDev-CC/CC-Tweaked/releases/tag/v${mc_version}-${mod_version})."
addLoader('forge') addLoader('forge')
} }
@@ -498,21 +523,21 @@ publishing {
pom { pom {
name = 'CC: Tweaked' name = 'CC: Tweaked'
description = 'CC: Tweaked is a fork of ComputerCraft, adding programmable computers, turtles and more to Minecraft.' description = 'CC: Tweaked is a fork of ComputerCraft, adding programmable computers, turtles and more to Minecraft.'
url = 'https://github.com/cc-tweaked/CC-Tweaked' url = 'https://github.com/SquidDev-CC/CC-Tweaked'
scm { scm {
url = 'https://github.com/cc-tweaked/CC-Tweaked.git' url = 'https://github.com/SquidDev-CC/CC-Tweaked.git'
} }
issueManagement { issueManagement {
system = 'github' system = 'github'
url = 'https://github.com/cc-tweaked/CC-Tweaked/issues' url = 'https://github.com/SquidDev-CC/CC-Tweaked/issues'
} }
licenses { licenses {
license { license {
name = 'ComputerCraft Public License, Version 1.0' name = 'ComputerCraft Public License, Version 1.0'
url = 'https://github.com/cc-tweaked/CC-Tweaked/blob/mc-1.15.x/LICENSE' url = 'https://github.com/SquidDev-CC/CC-Tweaked/blob/mc-1.15.x/LICENSE'
} }
} }
@@ -537,15 +562,20 @@ publishing {
githubRelease { githubRelease {
token project.hasProperty('githubApiKey') ? project.githubApiKey : '' token project.hasProperty('githubApiKey') ? project.githubApiKey : ''
owner 'cc-tweaked' owner 'SquidDev-CC'
repo 'CC-Tweaked' repo 'CC-Tweaked'
targetCommitish.set(project.provider({ targetCommitish.set(project.provider({
try { def cmd = ["git", "rev-parse", "--abbrev-ref", "HEAD"]
return ["git", "-C", projectDir, "rev-parse", "--abbrev-ref", "HEAD"].execute().text.trim() println(cmd)
} catch (Exception e) { def proc = cmd.execute([], projectDir)
e.printStackTrace() if (proc.waitFor() != 0) {
println(proc.err.text.trim())
throw new IllegalStateException("Executed with a non-0 exit code (${proc.exitValue()}).")
} }
return "master"
def branch = proc.text.trim()
if (branch == "") throw new IllegalStateException("Cannot determine branch")
return branch
})) }))
tagName "v${mc_version}-${mod_version}" tagName "v${mc_version}-${mod_version}"
@@ -556,7 +586,7 @@ githubRelease {
.takeWhile { it != 'Type "help changelog" to see the full version history.' } .takeWhile { it != 'Type "help changelog" to see the full version history.' }
.join("\n").trim() .join("\n").trim()
})) }))
prerelease false prerelease isStable
} }
def uploadTasks = ["publish", "curseforge", "publishModrinth", "githubRelease"] def uploadTasks = ["publish", "curseforge", "publishModrinth", "githubRelease"]

View File

@@ -58,13 +58,20 @@
<module name="SimplifyBooleanExpression" /> <module name="SimplifyBooleanExpression" />
<module name="SimplifyBooleanReturn" /> <module name="SimplifyBooleanReturn" />
<module name="StringLiteralEquality" /> <module name="StringLiteralEquality" />
<module name="UnnecessaryParentheses" /> <module name="UnnecessaryParentheses">
<!-- Default minus LAND. -->
<property name="tokens" value="EXPR,IDENT,NUM_DOUBLE,NUM_FLOAT,NUM_INT,NUM_LONG,STRING_LITERAL,LITERAL_NULL,LITERAL_FALSE,LITERAL_TRUE,ASSIGN,BAND_ASSIGN,BOR_ASSIGN,BSR_ASSIGN,BXOR_ASSIGN,DIV_ASSIGN,MINUS_ASSIGN,MOD_ASSIGN,PLUS_ASSIGN,SL_ASSIGN,SR_ASSIGN,STAR_ASSIGN,LAMBDA,TEXT_BLOCK_LITERAL_BEGIN,LITERAL_INSTANCEOF,GT,LT,GE,LE,EQUAL,NOT_EQUAL,UNARY_MINUS,UNARY_PLUS,INC,DEC,LNOT,BNOT,POST_INC,POST_DEC" />
</module>
<module name="UnnecessarySemicolonAfterTypeMemberDeclaration" /> <module name="UnnecessarySemicolonAfterTypeMemberDeclaration" />
<module name="UnnecessarySemicolonInTryWithResources" /> <module name="UnnecessarySemicolonInTryWithResources" />
<module name="UnnecessarySemicolonInEnumeration" /> <module name="UnnecessarySemicolonInEnumeration" />
<!-- Imports --> <!-- Imports -->
<module name="CustomImportOrder" /> <module name="CustomImportOrder">
<property name="customImportOrderRules"
value="THIRD_PARTY_PACKAGE###STANDARD_JAVA_PACKAGE###STATIC"
/>
</module>
<module name="IllegalImport" /> <module name="IllegalImport" />
<module name="RedundantImport" /> <module name="RedundantImport" />
<module name="UnusedImports" /> <module name="UnusedImports" />
@@ -149,12 +156,8 @@
<property name="tokens" value="COMMA" /> <property name="tokens" value="COMMA" />
</module> </module>
<module name="WhitespaceAround"> <module name="WhitespaceAround">
<property name="ignoreEnhancedForColon" value="false" />
<!-- Allow empty functions -->
<property name="allowEmptyLambdas" value="true" />
<property name="allowEmptyMethods" value="true" />
<property name="allowEmptyConstructors" value="true" /> <property name="allowEmptyConstructors" value="true" />
<property name="ignoreEnhancedForColon" value="false" />
<property name="tokens" value="ASSIGN,BAND,BAND_ASSIGN,BOR,BOR_ASSIGN,BSR,BSR_ASSIGN,BXOR,BXOR_ASSIGN,COLON,DIV,DIV_ASSIGN,EQUAL,GE,GT,LAMBDA,LAND,LCURLY,LE,LITERAL_RETURN,LOR,LT,MINUS,MINUS_ASSIGN,MOD,MOD_ASSIGN,NOT_EQUAL,PLUS,PLUS_ASSIGN,QUESTION,RCURLY,SL,SLIST,SL_ASSIGN,SR,SR_ASSIGN,STAR,STAR_ASSIGN,LITERAL_ASSERT,TYPE_EXTENSION_AND" /> <property name="tokens" value="ASSIGN,BAND,BAND_ASSIGN,BOR,BOR_ASSIGN,BSR,BSR_ASSIGN,BXOR,BXOR_ASSIGN,COLON,DIV,DIV_ASSIGN,EQUAL,GE,GT,LAMBDA,LAND,LCURLY,LE,LITERAL_RETURN,LOR,LT,MINUS,MINUS_ASSIGN,MOD,MOD_ASSIGN,NOT_EQUAL,PLUS,PLUS_ASSIGN,QUESTION,RCURLY,SL,SLIST,SL_ASSIGN,SR,SR_ASSIGN,STAR,STAR_ASSIGN,LITERAL_ASSERT,TYPE_EXTENSION_AND" />
</module> </module>
</module> </module>

View File

@@ -2,7 +2,7 @@
# See https://pre-commit.com/hooks.html for more hooks # See https://pre-commit.com/hooks.html for more hooks
repos: repos:
- repo: https://github.com/pre-commit/pre-commit-hooks - repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.0.1 rev: v3.2.0
hooks: hooks:
- id: trailing-whitespace - id: trailing-whitespace
- id: end-of-file-fixer - id: end-of-file-fixer
@@ -16,7 +16,7 @@ repos:
exclude: "tsconfig\\.json$" exclude: "tsconfig\\.json$"
- repo: https://github.com/editorconfig-checker/editorconfig-checker.python - repo: https://github.com/editorconfig-checker/editorconfig-checker.python
rev: 2.3.54 rev: 2.3.5
hooks: hooks:
- id: editorconfig-checker - id: editorconfig-checker
args: ['-disable-indentation'] args: ['-disable-indentation']

View File

@@ -2,7 +2,7 @@
module: [kind=event] redstone module: [kind=event] redstone
--- ---
The @{event!redstone} event is fired whenever any redstone inputs on the computer change. The @{redstone} event is fired whenever any redstone inputs on the computer change.
## Example ## Example
Prints a message when a redstone input changes: Prints a message when a redstone input changes:

View File

@@ -10,7 +10,6 @@ This event is normally handled by @{http.Websocket.receive}, but it can also be
1. @{string}: The event name. 1. @{string}: The event name.
2. @{string}: The URL of the WebSocket. 2. @{string}: The URL of the WebSocket.
3. @{string}: The contents of the message. 3. @{string}: The contents of the message.
4. @{boolean}: Whether this is a binary message.
## Example ## Example
Prints a message sent by a WebSocket: Prints a message sent by a WebSocket:

View File

@@ -43,8 +43,8 @@ If you get stuck, do pop in to the [Minecraft Computer Mod Discord guild][discor
## Get Involved ## Get Involved
CC: Tweaked lives on [GitHub]. If you've got any ideas, feedback or bugs please do [create an issue][bug]. CC: Tweaked lives on [GitHub]. If you've got any ideas, feedback or bugs please do [create an issue][bug].
[github]: https://github.com/cc-tweaked/CC-Tweaked/ "CC: Tweaked on GitHub" [github]: https://github.com/SquidDev-CC/CC-Tweaked/ "CC: Tweaked on GitHub"
[bug]: https://github.com/cc-tweaked/CC-Tweaked/issues/new/choose [bug]: https://github.com/SquidDev-CC/CC-Tweaked/issues/new/choose
[computercraft]: https://github.com/dan200/ComputerCraft "ComputerCraft on GitHub" [computercraft]: https://github.com/dan200/ComputerCraft "ComputerCraft on GitHub"
[curseforge]: https://minecraft.curseforge.com/projects/cc-tweaked "Download CC: Tweaked from CurseForge" [curseforge]: https://minecraft.curseforge.com/projects/cc-tweaked "Download CC: Tweaked from CurseForge"
[modrinth]: https://modrinth.com/mod/gu7yAYhd "Download CC: Tweaked from Modrinth" [modrinth]: https://modrinth.com/mod/gu7yAYhd "Download CC: Tweaked from Modrinth"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -12,7 +12,6 @@
-- @treturn boolean If the path is mounted, rather than a normal file/folder. -- @treturn boolean If the path is mounted, rather than a normal file/folder.
-- @throws If the path does not exist. -- @throws If the path does not exist.
-- @see getDrive -- @see getDrive
-- @since 1.87.0
function isDriveRoot(path) end function isDriveRoot(path) end
--[[- Provides completion for a file or directory name, suitable for use with --[[- Provides completion for a file or directory name, suitable for use with
@@ -31,6 +30,5 @@ included in the returned list.
@tparam[opt] boolean include_dirs When @{false}, "raw" directories will not be @tparam[opt] boolean include_dirs When @{false}, "raw" directories will not be
included in the returned list. included in the returned list.
@treturn { string... } A list of possible completion candidates. @treturn { string... } A list of possible completion candidates.
@since 1.74
]] ]]
function complete(path, location, include_files, include_dirs) end function complete(path, location, include_files, include_dirs) end

View File

@@ -2,7 +2,6 @@
-- receiving data from them. -- receiving data from them.
-- --
-- @module http -- @module http
-- @since 1.1
--- Asynchronously make a HTTP request to the given url. --- Asynchronously make a HTTP request to the given url.
-- --
@@ -36,11 +35,6 @@
-- --
-- @see http.get For a synchronous way to make GET requests. -- @see http.get For a synchronous way to make GET requests.
-- @see http.post For a synchronous way to make POST requests. -- @see http.post For a synchronous way to make POST requests.
--
-- @changed 1.63 Added argument for headers.
-- @changed 1.80pr1 Added argument for binary handles.
-- @changed 1.80pr1.6 Added support for table argument.
-- @changed 1.86.0 Added PATCH and TRACE methods.
function request(...) end function request(...) end
--- Make a HTTP GET request to the given url. --- Make a HTTP GET request to the given url.
@@ -64,12 +58,6 @@ function request(...) end
-- @treturn string A message detailing why the request failed. -- @treturn string A message detailing why the request failed.
-- @treturn Response|nil The failing http response, if available. -- @treturn Response|nil The failing http response, if available.
-- --
-- @changed 1.63 Added argument for headers.
-- @changed 1.80pr1 Response handles are now returned on error if available.
-- @changed 1.80pr1 Added argument for binary handles.
-- @changed 1.80pr1.6 Added support for table argument.
-- @changed 1.86.0 Added PATCH and TRACE methods.
--
-- @usage Make a request to [example.tweaked.cc](https://example.tweaked.cc), -- @usage Make a request to [example.tweaked.cc](https://example.tweaked.cc),
-- and print the returned page. -- and print the returned page.
-- ```lua -- ```lua
@@ -101,13 +89,6 @@ function get(...) end
-- error or connection timeout. -- error or connection timeout.
-- @treturn string A message detailing why the request failed. -- @treturn string A message detailing why the request failed.
-- @treturn Response|nil The failing http response, if available. -- @treturn Response|nil The failing http response, if available.
--
-- @since 1.31
-- @changed 1.63 Added argument for headers.
-- @changed 1.80pr1 Response handles are now returned on error if available.
-- @changed 1.80pr1 Added argument for binary handles.
-- @changed 1.80pr1.6 Added support for table argument.
-- @changed 1.86.0 Added PATCH and TRACE methods.
function post(...) end function post(...) end
--- Asynchronously determine whether a URL can be requested. --- Asynchronously determine whether a URL can be requested.
@@ -161,9 +142,6 @@ function checkURL(url) end
-- @treturn Websocket The websocket connection. -- @treturn Websocket The websocket connection.
-- @treturn[2] false If the websocket connection failed. -- @treturn[2] false If the websocket connection failed.
-- @treturn string An error message describing why the connection failed. -- @treturn string An error message describing why the connection failed.
-- @since 1.80pr1.1
-- @changed 1.80pr1.3 No longer asynchronous.
-- @changed 1.95.3 Added User-Agent to default headers.
function websocket(url, headers) end function websocket(url, headers) end
--- Asynchronously open a websocket. --- Asynchronously open a websocket.
@@ -176,6 +154,4 @@ function websocket(url, headers) end
-- `ws://` or `wss://` protocol. -- `ws://` or `wss://` protocol.
-- @tparam[opt] { [string] = string } headers Additional headers to send as part -- @tparam[opt] { [string] = string } headers Additional headers to send as part
-- of the initial websocket connection. -- of the initial websocket connection.
-- @since 1.80pr1.3
-- @changed 1.95.3 Added User-Agent to default headers.
function websocketAsync(url, headers) end function websocketAsync(url, headers) end

View File

@@ -8,7 +8,6 @@ variables and functions exported by it will by available through the use of
@tparam string path The path of the API to load. @tparam string path The path of the API to load.
@treturn boolean Whether or not the API was successfully loaded. @treturn boolean Whether or not the API was successfully loaded.
@since 1.2
@deprecated When possible it's best to avoid using this function. It pollutes @deprecated When possible it's best to avoid using this function. It pollutes
the global table and can mask errors. the global table and can mask errors.
@@ -22,7 +21,6 @@ function loadAPI(path) end
-- This effectively removes the specified table from `_G`. -- This effectively removes the specified table from `_G`.
-- --
-- @tparam string name The name of the API to unload. -- @tparam string name The name of the API to unload.
-- @since 1.2
-- @deprecated See @{os.loadAPI} for why. -- @deprecated See @{os.loadAPI} for why.
function unloadAPI(name) end function unloadAPI(name) end
@@ -60,7 +58,6 @@ event, printing the error "Terminated".
end end
@see os.pullEventRaw To pull the terminate event. @see os.pullEventRaw To pull the terminate event.
@changed 1.3 Added filter argument.
]] ]]
function pullEvent(filter) end function pullEvent(filter) end

View File

@@ -9,6 +9,5 @@ empty, including those outside the crafting "grid".
@treturn[1] true If crafting succeeds. @treturn[1] true If crafting succeeds.
@treturn[2] false If crafting fails. @treturn[2] false If crafting fails.
@treturn string A string describing why crafting failed. @treturn string A string describing why crafting failed.
@since 1.4
]] ]]
function craft(limit) end function craft(limit) end

View File

@@ -1,8 +1,8 @@
# Mod properties # Mod properties
mod_version=1.99.1 mod_version=1.98.2
# Minecraft properties (update mods.toml when changing) # Minecraft properties (update mods.toml when changing)
mc_version=1.16.5 mc_version=1.17.1
mapping_version=2021.08.08 mapping_version=2021.08.15
forge_version=36.1.0 forge_version=37.0.34
# NO SERIOUSLY, UPDATE mods.toml WHEN CHANGING # NO SERIOUSLY, UPDATE mods.toml WHEN CHANGING

Binary file not shown.

View File

@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-7.1-bin.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists

257
gradlew vendored
View File

@@ -1,7 +1,7 @@
#!/bin/sh #!/usr/bin/env sh
# #
# Copyright © 2015-2021 the original authors. # Copyright 2015 the original author or authors.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@@ -17,101 +17,67 @@
# #
############################################################################## ##############################################################################
# ##
# Gradle start up script for POSIX generated by Gradle. ## Gradle start up script for UN*X
# ##
# Important for running:
#
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
# noncompliant, but you have some other compliant shell such as ksh or
# bash, then to run this script, type that shell name before the whole
# command line, like:
#
# ksh Gradle
#
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
# * functions;
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
# * compound commands having a testable exit status, especially «case»;
# * various built-in commands including «command», «set», and «ulimit».
#
# Important for patching:
#
# (2) This script targets any POSIX shell, so it avoids extensions provided
# by Bash, Ksh, etc; in particular arrays are avoided.
#
# The "traditional" practice of packing multiple parameters into a
# space-separated string is a well documented source of bugs and security
# problems, so this is (mostly) avoided, by progressively accumulating
# options in "$@", and eventually passing that to Java.
#
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
# see the in-line comments for details.
#
# There are tweaks for specific operating systems such as AIX, CygWin,
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
#
############################################################################## ##############################################################################
# Attempt to set APP_HOME # Attempt to set APP_HOME
# Resolve links: $0 may be a link # Resolve links: $0 may be a link
app_path=$0 PRG="$0"
# Need this for relative symlinks.
# Need this for daisy-chained symlinks. while [ -h "$PRG" ] ; do
while ls=`ls -ld "$PRG"`
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path link=`expr "$ls" : '.*-> \(.*\)$'`
[ -h "$app_path" ] if expr "$link" : '/.*' > /dev/null; then
do PRG="$link"
ls=$( ls -ld "$app_path" ) else
link=${ls#*' -> '} PRG=`dirname "$PRG"`"/$link"
case $link in #( fi
/*) app_path=$link ;; #(
*) app_path=$APP_HOME$link ;;
esac
done done
SAVED="`pwd`"
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle" APP_NAME="Gradle"
APP_BASE_NAME=${0##*/} APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value. # Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum MAX_FD="maximum"
warn () { warn () {
echo "$*" echo "$*"
} >&2 }
die () { die () {
echo echo
echo "$*" echo "$*"
echo echo
exit 1 exit 1
} >&2 }
# OS specific support (must be 'true' or 'false'). # OS specific support (must be 'true' or 'false').
cygwin=false cygwin=false
msys=false msys=false
darwin=false darwin=false
nonstop=false nonstop=false
case "$( uname )" in #( case "`uname`" in
CYGWIN* ) cygwin=true ;; #( CYGWIN* )
Darwin* ) darwin=true ;; #( cygwin=true
MSYS* | MINGW* ) msys=true ;; #( ;;
NONSTOP* ) nonstop=true ;; Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
@@ -121,9 +87,9 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
if [ -n "$JAVA_HOME" ] ; then if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables # IBM's JDK on AIX uses strange locations for the executables
JAVACMD=$JAVA_HOME/jre/sh/java JAVACMD="$JAVA_HOME/jre/sh/java"
else else
JAVACMD=$JAVA_HOME/bin/java JAVACMD="$JAVA_HOME/bin/java"
fi fi
if [ ! -x "$JAVACMD" ] ; then if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
@@ -132,7 +98,7 @@ Please set the JAVA_HOME variable in your environment to match the
location of your Java installation." location of your Java installation."
fi fi
else else
JAVACMD=java JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the Please set the JAVA_HOME variable in your environment to match the
@@ -140,95 +106,80 @@ location of your Java installation."
fi fi
# Increase the maximum file descriptors if we can. # Increase the maximum file descriptors if we can.
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
case $MAX_FD in #( MAX_FD_LIMIT=`ulimit -H -n`
max*) if [ $? -eq 0 ] ; then
MAX_FD=$( ulimit -H -n ) || if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
warn "Could not query maximum file descriptor limit" MAX_FD="$MAX_FD_LIMIT"
esac fi
case $MAX_FD in #( ulimit -n $MAX_FD
'' | soft) :;; #( if [ $? -ne 0 ] ; then
*) warn "Could not set maximum file descriptor limit: $MAX_FD"
ulimit -n "$MAX_FD" || fi
warn "Could not set maximum file descriptor limit to $MAX_FD" else
esac warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi fi
# Collect all arguments for the java command, stacking in reverse order: # For Darwin, add options to specify how the application appears in the dock
# * args from the command line if $darwin; then
# * the main class name GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
# * -classpath fi
# * -D...appname settings
# * --module-path (only if needed)
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
# For Cygwin or MSYS, switch paths to Windows format before running java # For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=$( cygpath --unix "$JAVACMD" ) JAVACMD=`cygpath --unix "$JAVACMD"`
# Now convert the arguments - kludge to limit ourselves to /bin/sh # We build the pattern for arguments to be converted via cygpath
for arg do ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
if SEP=""
case $arg in #( for dir in $ROOTDIRSRAW ; do
-*) false ;; # don't mess with options #( ROOTDIRS="$ROOTDIRS$SEP$dir"
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath SEP="|"
[ -e "$t" ] ;; #(
*) false ;;
esac
then
arg=$( cygpath --path --ignore --mixed "$arg" )
fi
# Roll the args list around exactly as many times as the number of
# args, so each arg winds up back in the position where it started, but
# possibly modified.
#
# NB: a `for` loop captures its iteration list before it begins, so
# changing the positional parameters here affects neither the number of
# iterations, nor the values presented in `arg`.
shift # remove old arg
set -- "$@" "$arg" # push replacement arg
done done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=`expr $i + 1`
done
case $i in
0) set -- ;;
1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi fi
# Collect all arguments for the java command; # Escape application args
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of save () {
# shell script including quotes and variable substitutions, so put them in for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
# double quotes to make sure that they get re-expanded; and echo " "
# * put everything else in single quotes, so that it's not re-expanded. }
APP_ARGS=`save "$@"`
set -- \ # Collect all arguments for the java command, following the shell quoting and substitution rules
"-Dorg.gradle.appname=$APP_BASE_NAME" \ eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
-classpath "$CLASSPATH" \
org.gradle.wrapper.GradleWrapperMain \
"$@"
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
#
# In Bash we could simply go:
#
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
# set -- "${ARGS[@]}" "$@"
#
# but POSIX shell has neither arrays nor command substitution, so instead we
# post-process each arg (as a line of input to sed) to backslash-escape any
# character that might be a shell metacharacter, then use eval to reverse
# that process (while maintaining the separation between arguments), and wrap
# the whole thing up as a single "set" statement.
#
# This will of course break if any of these variables contains a newline or
# an unmatched quote.
#
eval "set -- $(
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
xargs -n1 |
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
tr '\n' ' '
)" '"$@"'
exec "$JAVACMD" "$@" exec "$JAVACMD" "$@"

View File

@@ -18,7 +18,7 @@
(title "CC: Tweaked") (title "CC: Tweaked")
(logo src/main/resources/pack.png) (logo src/main/resources/pack.png)
(url https://tweaked.cc/) (url https://tweaked.cc/)
(source-link https://github.com/cc-tweaked/CC-Tweaked/blob/${commit}/${path}#L${line}) (source-link https://github.com/SquidDev-CC/CC-Tweaked/blob/${commit}/${path}#L${line})
(styles src/web/styles.css) (styles src/web/styles.css)
(scripts build/rollup/index.js) (scripts build/rollup/index.js)
@@ -61,8 +61,6 @@
(table space) (table space)
(index no-space)) (index no-space))
(allow-clarifying-parens true)
;; colours imports from colors, and we don't handle that right now. ;; colours imports from colors, and we don't handle that right now.
;; keys is entirely dynamic, so we skip it. ;; keys is entirely dynamic, so we skip it.
(dynamic-modules colours keys _G) (dynamic-modules colours keys _G)
@@ -71,7 +69,6 @@
:max :max
_CC_DEFAULT_SETTINGS _CC_DEFAULT_SETTINGS
_CC_DISABLE_LUA51_FEATURES _CC_DISABLE_LUA51_FEATURES
_HOST
;; Ideally we'd pick these up from bios.lua, but illuaminate currently ;; Ideally we'd pick these up from bios.lua, but illuaminate currently
;; isn't smart enough. ;; isn't smart enough.
sleep write printError read rs))) sleep write printError read rs)))

474
package-lock.json generated
View File

@@ -16,49 +16,14 @@
"@rollup/plugin-typescript": "^8.2.5", "@rollup/plugin-typescript": "^8.2.5",
"requirejs": "^2.3.6", "requirejs": "^2.3.6",
"rollup": "^2.33.1", "rollup": "^2.33.1",
"rollup-plugin-terser": "^7.0.2", "terser": "^5.3.8",
"typescript": "^4.0.5" "typescript": "^4.0.5"
} }
}, },
"node_modules/@babel/code-frame": {
"version": "7.16.0",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz",
"integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==",
"dev": true,
"dependencies": {
"@babel/highlight": "^7.16.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
"version": "7.15.7",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
"integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
"version": "7.16.0",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz",
"integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==",
"dev": true,
"dependencies": {
"@babel/helper-validator-identifier": "^7.15.7",
"chalk": "^2.0.0",
"js-tokens": "^4.0.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@rollup/plugin-typescript": { "node_modules/@rollup/plugin-typescript": {
"version": "8.3.0", "version": "8.2.5",
"resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.3.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.2.5.tgz",
"integrity": "sha512-I5FpSvLbtAdwJ+naznv+B4sjXZUcIvLLceYpITAn7wAP8W0wqc5noLdGIp9HGVntNhRWXctwPYrSSFQxtl0FPA==", "integrity": "sha512-QL/LvDol/PAGB2O0S7/+q2HpSUNodpw7z6nGn9BfoVCPOZ0r4EALrojFU29Bkoi2Hr2jgTocTejJ5GGWZfOxbQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@rollup/pluginutils": "^3.1.0", "@rollup/pluginutils": "^3.1.0",
@@ -96,74 +61,18 @@
"integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
"dev": true "dev": true
}, },
"node_modules/@types/node": {
"version": "16.11.10",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.10.tgz",
"integrity": "sha512-3aRnHa1KlOEEhJ6+CvyHKK5vE9BcLGjtUpwvqYLRvYNQKMfabu3BwfJaA/SLW8dxe28LsNDjtHwePTuzn3gmOA==",
"dev": true
},
"node_modules/ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"dependencies": {
"color-convert": "^1.9.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/buffer-from": { "node_modules/buffer-from": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
"dev": true "dev": true
}, },
"node_modules/chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
"dependencies": {
"color-name": "1.1.3"
}
},
"node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true
},
"node_modules/commander": { "node_modules/commander": {
"version": "2.20.3", "version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"dev": true "dev": true
}, },
"node_modules/escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true,
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/estree-walker": { "node_modules/estree-walker": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
@@ -202,19 +111,10 @@
"node": ">= 0.4.0" "node": ">= 0.4.0"
} }
}, },
"node_modules/has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true,
"engines": {
"node": ">=4"
}
},
"node_modules/is-core-module": { "node_modules/is-core-module": {
"version": "2.8.0", "version": "2.6.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz",
"integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"has": "^1.0.3" "has": "^1.0.3"
@@ -223,53 +123,6 @@
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/jest-worker": {
"version": "26.6.2",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
"integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==",
"dev": true,
"dependencies": {
"@types/node": "*",
"merge-stream": "^2.0.0",
"supports-color": "^7.0.0"
},
"engines": {
"node": ">= 10.13.0"
}
},
"node_modules/jest-worker/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/jest-worker/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true
},
"node_modules/merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
"dev": true
},
"node_modules/path-parse": { "node_modules/path-parse": {
"version": "1.0.7", "version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
@@ -289,23 +142,14 @@
} }
}, },
"node_modules/preact": { "node_modules/preact": {
"version": "10.6.1", "version": "10.5.14",
"resolved": "https://registry.npmjs.org/preact/-/preact-10.6.1.tgz", "resolved": "https://registry.npmjs.org/preact/-/preact-10.5.14.tgz",
"integrity": "sha512-ydCg+ISIq70vqiThvNWStZWLRjR9U2awP/JAmGdWUKm9+Tyuy+MqVdAIyEByeIspAVtD4GWC/SJtxO8XD4knVA==", "integrity": "sha512-KojoltCrshZ099ksUZ2OQKfbH66uquFoxHSbnwKbTJHeQNvx42EmC7wQVWNuDt6vC5s3nudRHFtKbpY4ijKlaQ==",
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
"url": "https://opencollective.com/preact" "url": "https://opencollective.com/preact"
} }
}, },
"node_modules/randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
"dev": true,
"dependencies": {
"safe-buffer": "^5.1.0"
}
},
"node_modules/requirejs": { "node_modules/requirejs": {
"version": "2.3.6", "version": "2.3.6",
"resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz",
@@ -333,9 +177,9 @@
} }
}, },
"node_modules/rollup": { "node_modules/rollup": {
"version": "2.60.1", "version": "2.56.2",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.60.1.tgz", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.56.2.tgz",
"integrity": "sha512-akwfnpjY0rXEDSn1UTVfKXJhPsEBu+imi1gqBA1ZkHGydUnkV/fWCC90P7rDaLEW8KTwBcS1G3N4893Ndz+jwg==", "integrity": "sha512-s8H00ZsRi29M2/lGdm1u8DJpJ9ML8SUOpVVBd33XNeEeL3NVaTiUcSBHzBdF3eAyR0l7VSpsuoVUGrRHq7aPwQ==",
"dev": true, "dev": true,
"bin": { "bin": {
"rollup": "dist/bin/rollup" "rollup": "dist/bin/rollup"
@@ -347,50 +191,6 @@
"fsevents": "~2.3.2" "fsevents": "~2.3.2"
} }
}, },
"node_modules/rollup-plugin-terser": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz",
"integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==",
"dev": true,
"dependencies": {
"@babel/code-frame": "^7.10.4",
"jest-worker": "^26.2.1",
"serialize-javascript": "^4.0.0",
"terser": "^5.0.0"
},
"peerDependencies": {
"rollup": "^2.0.0"
}
},
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/serialize-javascript": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
"integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
"dev": true,
"dependencies": {
"randombytes": "^2.1.0"
}
},
"node_modules/source-map": { "node_modules/source-map": {
"version": "0.7.3", "version": "0.7.3",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
@@ -401,9 +201,9 @@
} }
}, },
"node_modules/source-map-support": { "node_modules/source-map-support": {
"version": "0.5.21", "version": "0.5.19",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"buffer-from": "^1.0.0", "buffer-from": "^1.0.0",
@@ -419,41 +219,21 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"dependencies": {
"has-flag": "^3.0.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/terser": { "node_modules/terser": {
"version": "5.10.0", "version": "5.7.1",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz",
"integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", "integrity": "sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"commander": "^2.20.0", "commander": "^2.20.0",
"source-map": "~0.7.2", "source-map": "~0.7.2",
"source-map-support": "~0.5.20" "source-map-support": "~0.5.19"
}, },
"bin": { "bin": {
"terser": "bin/terser" "terser": "bin/terser"
}, },
"engines": { "engines": {
"node": ">=10" "node": ">=10"
},
"peerDependencies": {
"acorn": "^8.5.0"
},
"peerDependenciesMeta": {
"acorn": {
"optional": true
}
} }
}, },
"node_modules/tslib": { "node_modules/tslib": {
@@ -462,9 +242,9 @@
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
}, },
"node_modules/typescript": { "node_modules/typescript": {
"version": "4.5.2", "version": "4.3.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz",
"integrity": "sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==", "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==",
"dev": true, "dev": true,
"bin": { "bin": {
"tsc": "bin/tsc", "tsc": "bin/tsc",
@@ -476,36 +256,10 @@
} }
}, },
"dependencies": { "dependencies": {
"@babel/code-frame": {
"version": "7.16.0",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz",
"integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==",
"dev": true,
"requires": {
"@babel/highlight": "^7.16.0"
}
},
"@babel/helper-validator-identifier": {
"version": "7.15.7",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
"integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
"dev": true
},
"@babel/highlight": {
"version": "7.16.0",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz",
"integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==",
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.15.7",
"chalk": "^2.0.0",
"js-tokens": "^4.0.0"
}
},
"@rollup/plugin-typescript": { "@rollup/plugin-typescript": {
"version": "8.3.0", "version": "8.2.5",
"resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.3.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.2.5.tgz",
"integrity": "sha512-I5FpSvLbtAdwJ+naznv+B4sjXZUcIvLLceYpITAn7wAP8W0wqc5noLdGIp9HGVntNhRWXctwPYrSSFQxtl0FPA==", "integrity": "sha512-QL/LvDol/PAGB2O0S7/+q2HpSUNodpw7z6nGn9BfoVCPOZ0r4EALrojFU29Bkoi2Hr2jgTocTejJ5GGWZfOxbQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@rollup/pluginutils": "^3.1.0", "@rollup/pluginutils": "^3.1.0",
@@ -529,65 +283,18 @@
"integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
"dev": true "dev": true
}, },
"@types/node": {
"version": "16.11.10",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.10.tgz",
"integrity": "sha512-3aRnHa1KlOEEhJ6+CvyHKK5vE9BcLGjtUpwvqYLRvYNQKMfabu3BwfJaA/SLW8dxe28LsNDjtHwePTuzn3gmOA==",
"dev": true
},
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
"color-convert": "^1.9.0"
}
},
"buffer-from": { "buffer-from": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
"dev": true "dev": true
}, },
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
}
},
"color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
"requires": {
"color-name": "1.1.3"
}
},
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true
},
"commander": { "commander": {
"version": "2.20.3", "version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"dev": true "dev": true
}, },
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true
},
"estree-walker": { "estree-walker": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
@@ -616,61 +323,15 @@
"function-bind": "^1.1.1" "function-bind": "^1.1.1"
} }
}, },
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
"is-core-module": { "is-core-module": {
"version": "2.8.0", "version": "2.6.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz",
"integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"has": "^1.0.3" "has": "^1.0.3"
} }
}, },
"jest-worker": {
"version": "26.6.2",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
"integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==",
"dev": true,
"requires": {
"@types/node": "*",
"merge-stream": "^2.0.0",
"supports-color": "^7.0.0"
},
"dependencies": {
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"requires": {
"has-flag": "^4.0.0"
}
}
}
},
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true
},
"merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
"dev": true
},
"path-parse": { "path-parse": {
"version": "1.0.7", "version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
@@ -684,18 +345,9 @@
"dev": true "dev": true
}, },
"preact": { "preact": {
"version": "10.6.1", "version": "10.5.14",
"resolved": "https://registry.npmjs.org/preact/-/preact-10.6.1.tgz", "resolved": "https://registry.npmjs.org/preact/-/preact-10.5.14.tgz",
"integrity": "sha512-ydCg+ISIq70vqiThvNWStZWLRjR9U2awP/JAmGdWUKm9+Tyuy+MqVdAIyEByeIspAVtD4GWC/SJtxO8XD4knVA==" "integrity": "sha512-KojoltCrshZ099ksUZ2OQKfbH66uquFoxHSbnwKbTJHeQNvx42EmC7wQVWNuDt6vC5s3nudRHFtKbpY4ijKlaQ=="
},
"randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
"dev": true,
"requires": {
"safe-buffer": "^5.1.0"
}
}, },
"requirejs": { "requirejs": {
"version": "2.3.6", "version": "2.3.6",
@@ -714,41 +366,14 @@
} }
}, },
"rollup": { "rollup": {
"version": "2.60.1", "version": "2.56.2",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.60.1.tgz", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.56.2.tgz",
"integrity": "sha512-akwfnpjY0rXEDSn1UTVfKXJhPsEBu+imi1gqBA1ZkHGydUnkV/fWCC90P7rDaLEW8KTwBcS1G3N4893Ndz+jwg==", "integrity": "sha512-s8H00ZsRi29M2/lGdm1u8DJpJ9ML8SUOpVVBd33XNeEeL3NVaTiUcSBHzBdF3eAyR0l7VSpsuoVUGrRHq7aPwQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"fsevents": "~2.3.2" "fsevents": "~2.3.2"
} }
}, },
"rollup-plugin-terser": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz",
"integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.10.4",
"jest-worker": "^26.2.1",
"serialize-javascript": "^4.0.0",
"terser": "^5.0.0"
}
},
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"dev": true
},
"serialize-javascript": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
"integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
"dev": true,
"requires": {
"randombytes": "^2.1.0"
}
},
"source-map": { "source-map": {
"version": "0.7.3", "version": "0.7.3",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
@@ -756,9 +381,9 @@
"dev": true "dev": true
}, },
"source-map-support": { "source-map-support": {
"version": "0.5.21", "version": "0.5.19",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
"dev": true, "dev": true,
"requires": { "requires": {
"buffer-from": "^1.0.0", "buffer-from": "^1.0.0",
@@ -773,24 +398,15 @@
} }
} }
}, },
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": {
"has-flag": "^3.0.0"
}
},
"terser": { "terser": {
"version": "5.10.0", "version": "5.7.1",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz",
"integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", "integrity": "sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==",
"dev": true, "dev": true,
"requires": { "requires": {
"commander": "^2.20.0", "commander": "^2.20.0",
"source-map": "~0.7.2", "source-map": "~0.7.2",
"source-map-support": "~0.5.20" "source-map-support": "~0.5.19"
} }
}, },
"tslib": { "tslib": {
@@ -799,9 +415,9 @@
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
}, },
"typescript": { "typescript": {
"version": "4.5.2", "version": "4.3.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz",
"integrity": "sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==", "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==",
"dev": true "dev": true
} }
} }

View File

@@ -12,7 +12,7 @@
"@rollup/plugin-typescript": "^8.2.5", "@rollup/plugin-typescript": "^8.2.5",
"requirejs": "^2.3.6", "requirejs": "^2.3.6",
"rollup": "^2.33.1", "rollup": "^2.33.1",
"rollup-plugin-terser": "^7.0.2", "terser": "^5.3.8",
"typescript": "^4.0.5" "typescript": "^4.0.5"
} }
} }

View File

@@ -1,8 +1,7 @@
import { readFileSync } from "fs"; import { readFileSync, promises as fs } from "fs";
import path from "path"; import path from "path";
import typescript from "@rollup/plugin-typescript"; import typescript from "@rollup/plugin-typescript";
import { terser } from "rollup-plugin-terser";
const input = "src/web"; const input = "src/web";
const requirejs = readFileSync("node_modules/requirejs/require.js"); const requirejs = readFileSync("node_modules/requirejs/require.js");
@@ -13,14 +12,7 @@ export default {
file: "build/rollup/index.js", file: "build/rollup/index.js",
// We bundle requirejs (and config) into the header. It's rather gross // We bundle requirejs (and config) into the header. It's rather gross
// but also works reasonably well. // but also works reasonably well.
// Also suffix a ?v=${date} onto the end in the event we need to require a specific copy-cat version. banner: `${requirejs}\nrequire.config({ paths: { copycat: "https://copy-cat.squiddev.cc" } });`,
banner: `
${requirejs}
require.config({
paths: { copycat: "https://copy-cat.squiddev.cc" },
urlArgs: function(id) { return id == "copycat/embed" ? "?v=20211127" : ""; }
});
`,
format: "amd", format: "amd",
preferConst: true, preferConst: true,
amd: { amd: {
@@ -35,6 +27,22 @@ export default {
{ {
name: "cc-tweaked", name: "cc-tweaked",
async options(options) {
// Generate .d.ts files for all /mount files. This is the worst way to do it,
// but we need to run before the TS pass.
const template = "declare const contents : string;\nexport default contents;\n";
const files = await fs.readdir(`${input}/mount`);
await Promise.all(files
.filter(x => path.extname(x) !== ".ts")
.map(async file => {
const path = `${input}/mount/${file}.d.ts`;
const contents = await fs.readFile(path, { encoding: "utf-8" }).catch(() => "");
if (contents !== template) await fs.writeFile(path, template);
})
);
return options;
},
async transform(code, file) { async transform(code, file) {
// Allow loading files in /mount. // Allow loading files in /mount.
const ext = path.extname(file); const ext = path.extname(file);
@@ -42,8 +50,6 @@ export default {
? `export default ${JSON.stringify(code)};\n` ? `export default ${JSON.stringify(code)};\n`
: null; : null;
}, },
}, }
terser(),
], ],
}; };

View File

@@ -21,7 +21,7 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"tag": "computercraft:wired_modem" "tag": "computercraft:computer"
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "minecraft:redstone" "items": [
"minecraft:redstone"
]
}, },
{ {
"item": "minecraft:gold_ingot" "items": [
"minecraft:gold_ingot"
]
} }
] ]
} }

View File

@@ -11,7 +11,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "minecraft:command_block" "items": [
"minecraft:command_block"
]
} }
] ]
} }

View File

@@ -11,7 +11,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:disk_drive" "items": [
"computercraft:disk_drive"
]
} }
] ]
} }

View File

@@ -11,7 +11,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:disk_drive" "items": [
"computercraft:disk_drive"
]
} }
] ]
} }

View File

@@ -11,7 +11,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:disk_drive" "items": [
"computercraft:disk_drive"
]
} }
] ]
} }

View File

@@ -11,7 +11,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:disk_drive" "items": [
"computercraft:disk_drive"
]
} }
] ]
} }

View File

@@ -11,7 +11,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:disk_drive" "items": [
"computercraft:disk_drive"
]
} }
] ]
} }

View File

@@ -11,7 +11,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:disk_drive" "items": [
"computercraft:disk_drive"
]
} }
] ]
} }

View File

@@ -11,7 +11,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:disk_drive" "items": [
"computercraft:disk_drive"
]
} }
] ]
} }

View File

@@ -11,7 +11,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:disk_drive" "items": [
"computercraft:disk_drive"
]
} }
] ]
} }

View File

@@ -11,7 +11,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:disk_drive" "items": [
"computercraft:disk_drive"
]
} }
] ]
} }

View File

@@ -11,7 +11,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:disk_drive" "items": [
"computercraft:disk_drive"
]
} }
] ]
} }

View File

@@ -11,7 +11,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:disk_drive" "items": [
"computercraft:disk_drive"
]
} }
] ]
} }

View File

@@ -11,7 +11,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:disk_drive" "items": [
"computercraft:disk_drive"
]
} }
] ]
} }

View File

@@ -11,7 +11,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:disk_drive" "items": [
"computercraft:disk_drive"
]
} }
] ]
} }

View File

@@ -11,7 +11,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:disk_drive" "items": [
"computercraft:disk_drive"
]
} }
] ]
} }

View File

@@ -11,7 +11,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:disk_drive" "items": [
"computercraft:disk_drive"
]
} }
] ]
} }

View File

@@ -11,7 +11,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:disk_drive" "items": [
"computercraft:disk_drive"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:pocket_computer_advanced" "items": [
"computercraft:pocket_computer_advanced"
]
}, },
{ {
"item": "computercraft:speaker" "items": [
"computercraft:speaker"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:pocket_computer_advanced" "items": [
"computercraft:pocket_computer_advanced"
]
}, },
{ {
"item": "computercraft:wireless_modem_advanced" "items": [
"computercraft:wireless_modem_advanced"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:pocket_computer_advanced" "items": [
"computercraft:pocket_computer_advanced"
]
}, },
{ {
"item": "computercraft:wireless_modem_normal" "items": [
"computercraft:wireless_modem_normal"
]
} }
] ]
} }

View File

@@ -21,7 +21,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "minecraft:golden_apple" "items": [
"minecraft:golden_apple"
]
} }
] ]
} }

View File

@@ -21,7 +21,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "minecraft:golden_apple" "items": [
"minecraft:golden_apple"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:pocket_computer_normal" "items": [
"computercraft:pocket_computer_normal"
]
}, },
{ {
"item": "computercraft:speaker" "items": [
"computercraft:speaker"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:pocket_computer_normal" "items": [
"computercraft:pocket_computer_normal"
]
}, },
{ {
"item": "computercraft:wireless_modem_advanced" "items": [
"computercraft:wireless_modem_advanced"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:pocket_computer_normal" "items": [
"computercraft:pocket_computer_normal"
]
}, },
{ {
"item": "computercraft:wireless_modem_normal" "items": [
"computercraft:wireless_modem_normal"
]
} }
] ]
} }

View File

@@ -11,7 +11,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:printer" "items": [
"computercraft:printer"
]
} }
] ]
} }

View File

@@ -11,7 +11,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:printer" "items": [
"computercraft:printer"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:turtle_advanced" "items": [
"computercraft:turtle_advanced"
]
}, },
{ {
"item": "computercraft:speaker" "items": [
"computercraft:speaker"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:turtle_advanced" "items": [
"computercraft:turtle_advanced"
]
}, },
{ {
"item": "computercraft:wireless_modem_advanced" "items": [
"computercraft:wireless_modem_advanced"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:turtle_advanced" "items": [
"computercraft:turtle_advanced"
]
}, },
{ {
"item": "computercraft:wireless_modem_normal" "items": [
"computercraft:wireless_modem_normal"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:turtle_advanced" "items": [
"computercraft:turtle_advanced"
]
}, },
{ {
"item": "minecraft:crafting_table" "items": [
"minecraft:crafting_table"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:turtle_advanced" "items": [
"computercraft:turtle_advanced"
]
}, },
{ {
"item": "minecraft:diamond_axe" "items": [
"minecraft:diamond_axe"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:turtle_advanced" "items": [
"computercraft:turtle_advanced"
]
}, },
{ {
"item": "minecraft:diamond_hoe" "items": [
"minecraft:diamond_hoe"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:turtle_advanced" "items": [
"computercraft:turtle_advanced"
]
}, },
{ {
"item": "minecraft:diamond_pickaxe" "items": [
"minecraft:diamond_pickaxe"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:turtle_advanced" "items": [
"computercraft:turtle_advanced"
]
}, },
{ {
"item": "minecraft:diamond_shovel" "items": [
"minecraft:diamond_shovel"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:turtle_advanced" "items": [
"computercraft:turtle_advanced"
]
}, },
{ {
"item": "minecraft:diamond_sword" "items": [
"minecraft:diamond_sword"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:turtle_normal" "items": [
"computercraft:turtle_normal"
]
}, },
{ {
"item": "computercraft:speaker" "items": [
"computercraft:speaker"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:turtle_normal" "items": [
"computercraft:turtle_normal"
]
}, },
{ {
"item": "computercraft:wireless_modem_advanced" "items": [
"computercraft:wireless_modem_advanced"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:turtle_normal" "items": [
"computercraft:turtle_normal"
]
}, },
{ {
"item": "computercraft:wireless_modem_normal" "items": [
"computercraft:wireless_modem_normal"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:turtle_normal" "items": [
"computercraft:turtle_normal"
]
}, },
{ {
"item": "minecraft:crafting_table" "items": [
"minecraft:crafting_table"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:turtle_normal" "items": [
"computercraft:turtle_normal"
]
}, },
{ {
"item": "minecraft:diamond_axe" "items": [
"minecraft:diamond_axe"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:turtle_normal" "items": [
"computercraft:turtle_normal"
]
}, },
{ {
"item": "minecraft:diamond_hoe" "items": [
"minecraft:diamond_hoe"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:turtle_normal" "items": [
"computercraft:turtle_normal"
]
}, },
{ {
"item": "minecraft:diamond_pickaxe" "items": [
"minecraft:diamond_pickaxe"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:turtle_normal" "items": [
"computercraft:turtle_normal"
]
}, },
{ {
"item": "minecraft:diamond_shovel" "items": [
"minecraft:diamond_shovel"
]
} }
] ]
} }

View File

@@ -11,10 +11,14 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:turtle_normal" "items": [
"computercraft:turtle_normal"
]
}, },
{ {
"item": "minecraft:diamond_sword" "items": [
"minecraft:diamond_sword"
]
} }
] ]
} }

View File

@@ -21,7 +21,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:cable" "items": [
"computercraft:cable"
]
} }
] ]
} }

View File

@@ -21,7 +21,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:wireless_modem_normal" "items": [
"computercraft:wireless_modem_normal"
]
} }
] ]
} }

View File

@@ -11,7 +11,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:monitor_normal" "items": [
"computercraft:monitor_normal"
]
} }
] ]
} }

View File

@@ -11,7 +11,9 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "computercraft:computer_advanced" "items": [
"computercraft:computer_advanced"
]
} }
] ]
} }

View File

@@ -3,7 +3,8 @@
"pools": [ "pools": [
{ {
"name": "cable", "name": "cable",
"rolls": 1, "rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [ "entries": [
{ {
"type": "minecraft:item", "type": "minecraft:item",
@@ -21,11 +22,13 @@
"cable": "true" "cable": "true"
} }
} }
] ],
"functions": []
}, },
{ {
"name": "wired_modem", "name": "wired_modem",
"rolls": 1, "rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [ "entries": [
{ {
"type": "minecraft:item", "type": "minecraft:item",
@@ -46,7 +49,8 @@
} }
} }
} }
] ],
"functions": []
} }
] ]
} }

View File

@@ -3,7 +3,8 @@
"pools": [ "pools": [
{ {
"name": "main", "name": "main",
"rolls": 1, "rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [ "entries": [
{ {
"type": "minecraft:dynamic", "type": "minecraft:dynamic",
@@ -28,7 +29,8 @@
} }
] ]
} }
] ],
"functions": []
} }
] ]
} }

View File

@@ -3,7 +3,8 @@
"pools": [ "pools": [
{ {
"name": "main", "name": "main",
"rolls": 1, "rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [ "entries": [
{ {
"type": "minecraft:dynamic", "type": "minecraft:dynamic",
@@ -28,7 +29,8 @@
} }
] ]
} }
] ],
"functions": []
} }
] ]
} }

View File

@@ -3,7 +3,8 @@
"pools": [ "pools": [
{ {
"name": "main", "name": "main",
"rolls": 1, "rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [ "entries": [
{ {
"type": "minecraft:dynamic", "type": "minecraft:dynamic",
@@ -28,7 +29,8 @@
} }
] ]
} }
] ],
"functions": []
} }
] ]
} }

View File

@@ -3,7 +3,8 @@
"pools": [ "pools": [
{ {
"name": "main", "name": "main",
"rolls": 1, "rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [ "entries": [
{ {
"type": "minecraft:item", "type": "minecraft:item",
@@ -14,7 +15,8 @@
{ {
"condition": "minecraft:survives_explosion" "condition": "minecraft:survives_explosion"
} }
] ],
"functions": []
} }
] ]
} }

View File

@@ -3,7 +3,8 @@
"pools": [ "pools": [
{ {
"name": "main", "name": "main",
"rolls": 1, "rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [ "entries": [
{ {
"type": "minecraft:item", "type": "minecraft:item",
@@ -14,7 +15,8 @@
{ {
"condition": "minecraft:survives_explosion" "condition": "minecraft:survives_explosion"
} }
] ],
"functions": []
} }
] ]
} }

View File

@@ -3,7 +3,8 @@
"pools": [ "pools": [
{ {
"name": "main", "name": "main",
"rolls": 1, "rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [ "entries": [
{ {
"type": "minecraft:item", "type": "minecraft:item",
@@ -14,7 +15,8 @@
{ {
"condition": "minecraft:survives_explosion" "condition": "minecraft:survives_explosion"
} }
] ],
"functions": []
} }
] ]
} }

View File

@@ -3,7 +3,8 @@
"pools": [ "pools": [
{ {
"name": "main", "name": "main",
"rolls": 1, "rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [ "entries": [
{ {
"type": "minecraft:item", "type": "minecraft:item",
@@ -14,7 +15,8 @@
{ {
"condition": "minecraft:survives_explosion" "condition": "minecraft:survives_explosion"
} }
] ],
"functions": []
} }
] ]
} }

View File

@@ -3,7 +3,8 @@
"pools": [ "pools": [
{ {
"name": "main", "name": "main",
"rolls": 1, "rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [ "entries": [
{ {
"type": "minecraft:item", "type": "minecraft:item",
@@ -14,7 +15,8 @@
{ {
"condition": "minecraft:survives_explosion" "condition": "minecraft:survives_explosion"
} }
] ],
"functions": []
} }
] ]
} }

View File

@@ -3,7 +3,8 @@
"pools": [ "pools": [
{ {
"name": "main", "name": "main",
"rolls": 1, "rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [ "entries": [
{ {
"type": "minecraft:dynamic", "type": "minecraft:dynamic",
@@ -28,7 +29,8 @@
} }
] ]
} }
] ],
"functions": []
} }
] ]
} }

View File

@@ -3,7 +3,8 @@
"pools": [ "pools": [
{ {
"name": "main", "name": "main",
"rolls": 1, "rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [ "entries": [
{ {
"type": "minecraft:dynamic", "type": "minecraft:dynamic",
@@ -28,7 +29,8 @@
} }
] ]
} }
] ],
"functions": []
} }
] ]
} }

View File

@@ -3,7 +3,8 @@
"pools": [ "pools": [
{ {
"name": "main", "name": "main",
"rolls": 1, "rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [ "entries": [
{ {
"type": "minecraft:item", "type": "minecraft:item",
@@ -14,7 +15,8 @@
{ {
"condition": "minecraft:survives_explosion" "condition": "minecraft:survives_explosion"
} }
] ],
"functions": []
} }
] ]
} }

View File

@@ -3,7 +3,8 @@
"pools": [ "pools": [
{ {
"name": "main", "name": "main",
"rolls": 1, "rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [ "entries": [
{ {
"type": "minecraft:item", "type": "minecraft:item",
@@ -14,7 +15,8 @@
{ {
"condition": "minecraft:survives_explosion" "condition": "minecraft:survives_explosion"
} }
] ],
"functions": []
} }
] ]
} }

View File

@@ -3,7 +3,8 @@
"pools": [ "pools": [
{ {
"name": "main", "name": "main",
"rolls": 1, "rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [ "entries": [
{ {
"type": "minecraft:item", "type": "minecraft:item",
@@ -14,7 +15,8 @@
{ {
"condition": "minecraft:survives_explosion" "condition": "minecraft:survives_explosion"
} }
] ],
"functions": []
} }
] ]
} }

View File

@@ -6,15 +6,14 @@
"P" "P"
], ],
"key": { "key": {
"P": { "#": {
"item": "computercraft:pocket_computer_advanced" "item": "computercraft:pocket_computer_advanced"
}, },
"#": { "P": {
"item": "computercraft:speaker" "item": "computercraft:speaker"
} }
}, },
"result": { "result": {
"item": "computercraft:pocket_computer_advanced", "item": "computercraft:pocket_computer_advanced"
"nbt": "{Upgrade:\"computercraft:speaker\"}"
} }
} }

View File

@@ -6,15 +6,14 @@
"P" "P"
], ],
"key": { "key": {
"P": { "#": {
"item": "computercraft:pocket_computer_advanced" "item": "computercraft:pocket_computer_advanced"
}, },
"#": { "P": {
"item": "computercraft:wireless_modem_advanced" "item": "computercraft:wireless_modem_advanced"
} }
}, },
"result": { "result": {
"item": "computercraft:pocket_computer_advanced", "item": "computercraft:pocket_computer_advanced"
"nbt": "{Upgrade:\"computercraft:wireless_modem_advanced\"}"
} }
} }

View File

@@ -6,15 +6,14 @@
"P" "P"
], ],
"key": { "key": {
"P": { "#": {
"item": "computercraft:pocket_computer_advanced" "item": "computercraft:pocket_computer_advanced"
}, },
"#": { "P": {
"item": "computercraft:wireless_modem_normal" "item": "computercraft:wireless_modem_normal"
} }
}, },
"result": { "result": {
"item": "computercraft:pocket_computer_advanced", "item": "computercraft:pocket_computer_advanced"
"nbt": "{Upgrade:\"computercraft:wireless_modem_normal\"}"
} }
} }

View File

@@ -6,15 +6,14 @@
"P" "P"
], ],
"key": { "key": {
"P": { "#": {
"item": "computercraft:pocket_computer_normal" "item": "computercraft:pocket_computer_normal"
}, },
"#": { "P": {
"item": "computercraft:speaker" "item": "computercraft:speaker"
} }
}, },
"result": { "result": {
"item": "computercraft:pocket_computer_normal", "item": "computercraft:pocket_computer_normal"
"nbt": "{Upgrade:\"computercraft:speaker\"}"
} }
} }

View File

@@ -6,15 +6,14 @@
"P" "P"
], ],
"key": { "key": {
"P": { "#": {
"item": "computercraft:pocket_computer_normal" "item": "computercraft:pocket_computer_normal"
}, },
"#": { "P": {
"item": "computercraft:wireless_modem_advanced" "item": "computercraft:wireless_modem_advanced"
} }
}, },
"result": { "result": {
"item": "computercraft:pocket_computer_normal", "item": "computercraft:pocket_computer_normal"
"nbt": "{Upgrade:\"computercraft:wireless_modem_advanced\"}"
} }
} }

View File

@@ -6,15 +6,14 @@
"P" "P"
], ],
"key": { "key": {
"P": { "#": {
"item": "computercraft:pocket_computer_normal" "item": "computercraft:pocket_computer_normal"
}, },
"#": { "P": {
"item": "computercraft:wireless_modem_normal" "item": "computercraft:wireless_modem_normal"
} }
}, },
"result": { "result": {
"item": "computercraft:pocket_computer_normal", "item": "computercraft:pocket_computer_normal"
"nbt": "{Upgrade:\"computercraft:wireless_modem_normal\"}"
} }
} }

View File

@@ -5,10 +5,10 @@
"#T" "#T"
], ],
"key": { "key": {
"T": { "#": {
"item": "computercraft:turtle_advanced" "item": "computercraft:turtle_advanced"
}, },
"#": { "T": {
"item": "computercraft:speaker" "item": "computercraft:speaker"
} }
}, },

View File

@@ -5,10 +5,10 @@
"#T" "#T"
], ],
"key": { "key": {
"T": { "#": {
"item": "computercraft:turtle_advanced" "item": "computercraft:turtle_advanced"
}, },
"#": { "T": {
"item": "computercraft:wireless_modem_advanced" "item": "computercraft:wireless_modem_advanced"
} }
}, },

View File

@@ -5,10 +5,10 @@
"#T" "#T"
], ],
"key": { "key": {
"T": { "#": {
"item": "computercraft:turtle_advanced" "item": "computercraft:turtle_advanced"
}, },
"#": { "T": {
"item": "computercraft:wireless_modem_normal" "item": "computercraft:wireless_modem_normal"
} }
}, },

View File

@@ -5,10 +5,10 @@
"#T" "#T"
], ],
"key": { "key": {
"T": { "#": {
"item": "computercraft:turtle_advanced" "item": "computercraft:turtle_advanced"
}, },
"#": { "T": {
"item": "minecraft:crafting_table" "item": "minecraft:crafting_table"
} }
}, },

View File

@@ -5,10 +5,10 @@
"#T" "#T"
], ],
"key": { "key": {
"T": { "#": {
"item": "computercraft:turtle_advanced" "item": "computercraft:turtle_advanced"
}, },
"#": { "T": {
"item": "minecraft:diamond_axe" "item": "minecraft:diamond_axe"
} }
}, },

Some files were not shown because too many files have changed in this diff Show More