mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-11-04 15:43:00 +00:00
Compare commits
56 Commits
v1.16.5-1.
...
v1.17.1-1.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e05588c662 | ||
|
|
9cf70b10ef | ||
|
|
9ac8f3aeea | ||
|
|
e191b08eb5 | ||
|
|
a1221b99e1 | ||
|
|
85bced6b1d | ||
|
|
fc4569e0cc | ||
|
|
e7f08313d9 | ||
|
|
413fa5bcc8 | ||
|
|
79fc8237b6 | ||
|
|
9d50d6414c | ||
|
|
16df86224b | ||
|
|
a9519f68a1 | ||
|
|
f1a08a3362 | ||
|
|
802949d888 | ||
|
|
62f2cd5cb2 | ||
|
|
f794ce42ab | ||
|
|
aa0d544bba | ||
|
|
2f6ad00764 | ||
|
|
05da4dd362 | ||
|
|
fe3c42ce22 | ||
|
|
82a7edee12 | ||
|
|
6196aae488 | ||
|
|
92fd93c0e0 | ||
|
|
af966179ce | ||
|
|
2418cfb87b | ||
|
|
095101831c | ||
|
|
7b7527ec80 | ||
|
|
a4c5ecf8df | ||
|
|
99de00e16e | ||
|
|
600227e481 | ||
|
|
cf3f1d3d48 | ||
|
|
bca964629a | ||
|
|
0e94355a85 | ||
|
|
0d35331b82 | ||
|
|
076b454c8f | ||
|
|
36e0dcbad0 | ||
|
|
0b5fe990e5 | ||
|
|
29ece2a6e3 | ||
|
|
eba26dedab | ||
|
|
3eb601e554 | ||
|
|
d0e79f310e | ||
|
|
0d6528aaf0 | ||
|
|
b447b0e308 | ||
|
|
b2273c9b29 | ||
|
|
bbf3e48763 | ||
|
|
92fe1d4bc2 | ||
|
|
4d591c600c | ||
|
|
0a8e427c61 | ||
|
|
0a537eaeee | ||
|
|
aa857c1be3 | ||
|
|
e4ced551eb | ||
|
|
6eec9ba1a3 | ||
|
|
a8f675c59d | ||
|
|
bb1ebaee4f | ||
|
|
bb1183d274 |
74
build.gradle
74
build.gradle
@@ -5,7 +5,7 @@ buildscript {
|
|||||||
maven { url = 'https://maven.parchmentmc.org' }
|
maven { url = 'https://maven.parchmentmc.org' }
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'net.minecraftforge.gradle:ForgeGradle:5.1.+'
|
classpath 'net.minecraftforge.gradle:ForgeGradle:5.1.24'
|
||||||
classpath "org.spongepowered:mixingradle:0.7.+"
|
classpath "org.spongepowered:mixingradle:0.7.+"
|
||||||
classpath 'org.parchmentmc:librarian:1.+'
|
classpath 'org.parchmentmc:librarian:1.+'
|
||||||
}
|
}
|
||||||
@@ -31,7 +31,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
|
||||||
@@ -58,6 +58,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'
|
||||||
|
|
||||||
@@ -93,6 +97,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 {
|
||||||
@@ -104,6 +114,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)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -128,23 +144,23 @@ 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}"
|
||||||
annotationProcessor 'org.spongepowered:mixin:0.8.4:processor'
|
annotationProcessor 'org.spongepowered:mixin:0.8.4:processor'
|
||||||
|
|
||||||
compileOnly fg.deobf("mezz.jei:jei-1.16.5:7.7.0.104:api")
|
compileOnly fg.deobf("mezz.jei:jei-1.17.1:8.0.0.14:api")
|
||||||
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")
|
|
||||||
|
|
||||||
runtimeOnly fg.deobf("mezz.jei:jei-1.16.5:7.7.0.104")
|
runtimeOnly fg.deobf("mezz.jei:jei-1.17.1:8.0.0.14")
|
||||||
|
|
||||||
shade 'org.squiddev:Cobalt:0.5.2-SNAPSHOT'
|
shade 'org.squiddev:Cobalt:0.5.2-SNAPSHOT'
|
||||||
|
|
||||||
@@ -153,10 +169,10 @@ dependencies {
|
|||||||
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.6.0'
|
||||||
testImplementation 'org.jetbrains.kotlin:kotlin-reflect:1.6.0'
|
|
||||||
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2'
|
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.5'
|
cctJavadoc 'cc.tweaked:cct-javadoc:1.4.5'
|
||||||
}
|
}
|
||||||
@@ -184,7 +200,7 @@ task luaJavadoc(type: Javadoc) {
|
|||||||
options.noTimestamp = false
|
options.noTimestamp = false
|
||||||
|
|
||||||
javadocTool = javaToolchains.javadocToolFor {
|
javadocTool = javaToolchains.javadocToolFor {
|
||||||
languageVersion = JavaLanguageVersion.of(11)
|
languageVersion = javaVersion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -197,7 +213,8 @@ jar {
|
|||||||
"Implementation-Title" : "CC: Tweaked",
|
"Implementation-Title" : "CC: Tweaked",
|
||||||
"Implementation-Version" : "${mod_version}",
|
"Implementation-Version" : "${mod_version}",
|
||||||
"Implementation-Vendor" : "SquidDev",
|
"Implementation-Vendor" : "SquidDev",
|
||||||
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"),
|
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
|
||||||
|
,
|
||||||
"MixinConfigs" : "computercraft.mixins.json",
|
"MixinConfigs" : "computercraft.mixins.json",
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
@@ -205,6 +222,8 @@ jar {
|
|||||||
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"
|
||||||
@@ -212,9 +231,6 @@ jar {
|
|||||||
}
|
}
|
||||||
|
|
||||||
processResources {
|
processResources {
|
||||||
inputs.property "version", mod_version
|
|
||||||
inputs.property "mcversion", mc_version
|
|
||||||
|
|
||||||
def hash = 'none'
|
def hash = 'none'
|
||||||
Set<String> contributors = []
|
Set<String> contributors = []
|
||||||
try {
|
try {
|
||||||
@@ -231,16 +247,14 @@ processResources {
|
|||||||
duplicatesStrategy = DuplicatesStrategy.INCLUDE
|
duplicatesStrategy = DuplicatesStrategy.INCLUDE
|
||||||
|
|
||||||
from(sourceSets.main.resources.srcDirs) {
|
from(sourceSets.main.resources.srcDirs) {
|
||||||
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,
|
|
||||||
'gitcontributors': contributors.sort(false, String.CASE_INSENSITIVE_ORDER).join('\n')
|
'gitcontributors': contributors.sort(false, String.CASE_INSENSITIVE_ORDER).join('\n')
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
from(sourceSets.main.resources.srcDirs) {
|
from(sourceSets.main.resources.srcDirs) {
|
||||||
exclude 'META-INF/mods.toml'
|
|
||||||
exclude 'data/computercraft/lua/rom/help/credits.txt'
|
exclude 'data/computercraft/lua/rom/help/credits.txt'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -254,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) {
|
||||||
@@ -463,18 +478,19 @@ task checkRelease {
|
|||||||
}
|
}
|
||||||
check.dependsOn checkRelease
|
check.dependsOn checkRelease
|
||||||
|
|
||||||
|
def isStable = true
|
||||||
|
|
||||||
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/cc-tweaked/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 {
|
||||||
@@ -485,6 +501,7 @@ 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/cc-tweaked/CC-Tweaked/releases/tag/v${mc_version}-${mod_version})."
|
||||||
addLoader('forge')
|
addLoader('forge')
|
||||||
@@ -545,12 +562,17 @@ githubRelease {
|
|||||||
owner 'cc-tweaked'
|
owner 'cc-tweaked'
|
||||||
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}"
|
||||||
@@ -561,7 +583,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"]
|
||||||
|
|||||||
@@ -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" />
|
||||||
@@ -154,6 +161,7 @@
|
|||||||
<property name="allowEmptyLambdas" value="true" />
|
<property name="allowEmptyLambdas" value="true" />
|
||||||
<property name="allowEmptyMethods" value="true" />
|
<property name="allowEmptyMethods" value="true" />
|
||||||
<property name="allowEmptyConstructors" value="true" />
|
<property name="allowEmptyConstructors" value="true" />
|
||||||
|
<property name="allowEmptyTypes" value="true" />
|
||||||
|
|
||||||
<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>
|
||||||
|
|||||||
@@ -3,6 +3,6 @@ FROM gitpod/workspace-base
|
|||||||
USER gitpod
|
USER gitpod
|
||||||
|
|
||||||
RUN sudo apt-get -q update \
|
RUN sudo apt-get -q update \
|
||||||
&& sudo apt-get install -yq openjdk-8-jdk openjdk-16-jdk python3-pip npm \
|
&& sudo apt-get install -yq openjdk-16-jdk python3-pip npm \
|
||||||
&& sudo pip3 install pre-commit \
|
&& sudo pip3 install pre-commit \
|
||||||
&& sudo update-java-alternatives --set java-1.8.0-openjdk-amd64
|
&& sudo update-java-alternatives --set java-1.16.0-openjdk-amd64
|
||||||
|
|||||||
@@ -2,7 +2,12 @@
|
|||||||
module: [kind=event] term_resize
|
module: [kind=event] term_resize
|
||||||
---
|
---
|
||||||
|
|
||||||
The @{term_resize} event is fired when the main terminal is resized, mainly when a new tab is opened or closed in @{multishell}.
|
The @{term_resize} event is fired when the main terminal is resized. For instance:
|
||||||
|
- When a the tab bar is shown or hidden in @{multishell}.
|
||||||
|
- When the terminal is redirected to a monitor via the "monitor" program and the monitor is resized.
|
||||||
|
|
||||||
|
When this event fires, some parts of the terminal may have been moved or deleted. Simple terminal programs (those
|
||||||
|
not using @{term.setCursorPos}) can ignore this event, but more complex GUI programs should redraw the entire screen.
|
||||||
|
|
||||||
## Example
|
## Example
|
||||||
Prints :
|
Prints :
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ representable value.
|
|||||||
|
|
||||||
This representation of sound - a long, uniformally sampled list of amplitudes is referred to as [Pulse-code
|
This representation of sound - a long, uniformally sampled list of amplitudes is referred to as [Pulse-code
|
||||||
Modulation][PCM] (PCM). PCM can be thought of as the "standard" audio format, as it's incredibly easy to work with. For
|
Modulation][PCM] (PCM). PCM can be thought of as the "standard" audio format, as it's incredibly easy to work with. For
|
||||||
instance, to mix two pieces of audio together, you can just samples from the two tracks together and take the average.
|
instance, to mix two pieces of audio together, you can just add samples from the two tracks together and take the average.
|
||||||
|
|
||||||
CC: Tweaked's speakers also work with PCM audio. It plays back 48,000 samples a second, where each sample is an integer
|
CC: Tweaked's speakers also work with PCM audio. It plays back 48,000 samples a second, where each sample is an integer
|
||||||
between -128 and 127. This is more commonly referred to as 48kHz and an 8-bit resolution.
|
between -128 and 127. This is more commonly referred to as 48kHz and an 8-bit resolution.
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
|
org.gradle.jvmargs=-Xmx3G
|
||||||
|
|
||||||
# Mod properties
|
# Mod properties
|
||||||
mod_version=1.100.0
|
mod_version=1.100.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.09.05
|
||||||
forge_version=36.2.20
|
forge_version=37.0.85
|
||||||
# NO SERIOUSLY, UPDATE mods.toml WHEN CHANGING
|
# NO SERIOUSLY, UPDATE mods.toml WHEN CHANGING
|
||||||
|
|||||||
@@ -11,10 +11,14 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "minecraft:redstone"
|
"items": [
|
||||||
|
"minecraft:redstone"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"item": "minecraft:gold_ingot"
|
"items": [
|
||||||
|
"minecraft:gold_ingot"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "minecraft:command_block"
|
"items": [
|
||||||
|
"minecraft:command_block"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:disk_drive"
|
"items": [
|
||||||
|
"computercraft:disk_drive"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:disk_drive"
|
"items": [
|
||||||
|
"computercraft:disk_drive"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:disk_drive"
|
"items": [
|
||||||
|
"computercraft:disk_drive"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:disk_drive"
|
"items": [
|
||||||
|
"computercraft:disk_drive"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:disk_drive"
|
"items": [
|
||||||
|
"computercraft:disk_drive"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:disk_drive"
|
"items": [
|
||||||
|
"computercraft:disk_drive"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:disk_drive"
|
"items": [
|
||||||
|
"computercraft:disk_drive"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:disk_drive"
|
"items": [
|
||||||
|
"computercraft:disk_drive"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:disk_drive"
|
"items": [
|
||||||
|
"computercraft:disk_drive"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:disk_drive"
|
"items": [
|
||||||
|
"computercraft:disk_drive"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:disk_drive"
|
"items": [
|
||||||
|
"computercraft:disk_drive"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:disk_drive"
|
"items": [
|
||||||
|
"computercraft:disk_drive"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:disk_drive"
|
"items": [
|
||||||
|
"computercraft:disk_drive"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:disk_drive"
|
"items": [
|
||||||
|
"computercraft:disk_drive"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:disk_drive"
|
"items": [
|
||||||
|
"computercraft:disk_drive"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:disk_drive"
|
"items": [
|
||||||
|
"computercraft:disk_drive"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,10 +11,14 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:pocket_computer_advanced"
|
"items": [
|
||||||
|
"computercraft:pocket_computer_advanced"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"item": "computercraft:speaker"
|
"items": [
|
||||||
|
"computercraft:speaker"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "minecraft:golden_apple"
|
"items": [
|
||||||
|
"minecraft:golden_apple"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "minecraft:golden_apple"
|
"items": [
|
||||||
|
"minecraft:golden_apple"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,10 +11,14 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:pocket_computer_normal"
|
"items": [
|
||||||
|
"computercraft:pocket_computer_normal"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"item": "computercraft:speaker"
|
"items": [
|
||||||
|
"computercraft:speaker"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:printer"
|
"items": [
|
||||||
|
"computercraft:printer"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:printer"
|
"items": [
|
||||||
|
"computercraft:printer"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,10 +11,14 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:turtle_advanced"
|
"items": [
|
||||||
|
"computercraft:turtle_advanced"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"item": "computercraft:speaker"
|
"items": [
|
||||||
|
"computercraft:speaker"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,10 +11,14 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:turtle_advanced"
|
"items": [
|
||||||
|
"computercraft:turtle_advanced"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"item": "minecraft:crafting_table"
|
"items": [
|
||||||
|
"minecraft:crafting_table"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,10 +11,14 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:turtle_advanced"
|
"items": [
|
||||||
|
"computercraft:turtle_advanced"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"item": "minecraft:diamond_axe"
|
"items": [
|
||||||
|
"minecraft:diamond_axe"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,10 +11,14 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:turtle_advanced"
|
"items": [
|
||||||
|
"computercraft:turtle_advanced"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"item": "minecraft:diamond_hoe"
|
"items": [
|
||||||
|
"minecraft:diamond_hoe"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,10 +11,14 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:turtle_advanced"
|
"items": [
|
||||||
|
"computercraft:turtle_advanced"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"item": "minecraft:diamond_pickaxe"
|
"items": [
|
||||||
|
"minecraft:diamond_pickaxe"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,10 +11,14 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:turtle_advanced"
|
"items": [
|
||||||
|
"computercraft:turtle_advanced"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"item": "minecraft:diamond_shovel"
|
"items": [
|
||||||
|
"minecraft:diamond_shovel"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,10 +11,14 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:turtle_advanced"
|
"items": [
|
||||||
|
"computercraft:turtle_advanced"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"item": "minecraft:diamond_sword"
|
"items": [
|
||||||
|
"minecraft:diamond_sword"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,10 +11,14 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:turtle_normal"
|
"items": [
|
||||||
|
"computercraft:turtle_normal"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"item": "computercraft:speaker"
|
"items": [
|
||||||
|
"computercraft:speaker"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,10 +11,14 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:turtle_normal"
|
"items": [
|
||||||
|
"computercraft:turtle_normal"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"item": "minecraft:crafting_table"
|
"items": [
|
||||||
|
"minecraft:crafting_table"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,10 +11,14 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:turtle_normal"
|
"items": [
|
||||||
|
"computercraft:turtle_normal"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"item": "minecraft:diamond_axe"
|
"items": [
|
||||||
|
"minecraft:diamond_axe"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,10 +11,14 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:turtle_normal"
|
"items": [
|
||||||
|
"computercraft:turtle_normal"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"item": "minecraft:diamond_hoe"
|
"items": [
|
||||||
|
"minecraft:diamond_hoe"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,10 +11,14 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:turtle_normal"
|
"items": [
|
||||||
|
"computercraft:turtle_normal"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"item": "minecraft:diamond_pickaxe"
|
"items": [
|
||||||
|
"minecraft:diamond_pickaxe"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,10 +11,14 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:turtle_normal"
|
"items": [
|
||||||
|
"computercraft:turtle_normal"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"item": "minecraft:diamond_shovel"
|
"items": [
|
||||||
|
"minecraft:diamond_shovel"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,10 +11,14 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:turtle_normal"
|
"items": [
|
||||||
|
"computercraft:turtle_normal"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"item": "minecraft:diamond_sword"
|
"items": [
|
||||||
|
"minecraft:diamond_sword"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:cable"
|
"items": [
|
||||||
|
"computercraft:cable"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:wireless_modem_normal"
|
"items": [
|
||||||
|
"computercraft:wireless_modem_normal"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:monitor_normal"
|
"items": [
|
||||||
|
"computercraft:monitor_normal"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"item": "computercraft:computer_advanced"
|
"items": [
|
||||||
|
"computercraft:computer_advanced"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
4
src/generated/resources/data/computercraft/computercraft/pocket_upgrades/speaker.json
generated
Normal file
4
src/generated/resources/data/computercraft/computercraft/pocket_upgrades/speaker.json
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"type": "computercraft:speaker",
|
||||||
|
"item": "computercraft:speaker"
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"type": "computercraft:wireless_modem_advanced",
|
||||||
|
"item": "computercraft:wireless_modem_advanced"
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"type": "computercraft:wireless_modem_normal",
|
||||||
|
"item": "computercraft:wireless_modem_normal"
|
||||||
|
}
|
||||||
4
src/generated/resources/data/computercraft/computercraft/turtle_upgrades/speaker.json
generated
Normal file
4
src/generated/resources/data/computercraft/computercraft/turtle_upgrades/speaker.json
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"type": "computercraft:speaker",
|
||||||
|
"item": "computercraft:speaker"
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"type": "computercraft:wireless_modem_advanced",
|
||||||
|
"item": "computercraft:wireless_modem_advanced"
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"type": "computercraft:wireless_modem_normal",
|
||||||
|
"item": "computercraft:wireless_modem_normal"
|
||||||
|
}
|
||||||
@@ -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": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -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": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -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": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -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": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -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": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -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": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -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": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -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": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -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": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -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": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -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": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -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": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -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": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -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": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
"replace": false,
|
"replace": false,
|
||||||
"values": [
|
"values": [
|
||||||
"#minecraft:crops",
|
"#minecraft:crops",
|
||||||
|
"#minecraft:mineable/hoe",
|
||||||
"minecraft:cactus",
|
"minecraft:cactus",
|
||||||
"minecraft:melon",
|
"minecraft:melon",
|
||||||
"minecraft:pumpkin",
|
"minecraft:pumpkin",
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"replace": false,
|
"replace": false,
|
||||||
"values": [
|
"values": [
|
||||||
|
"#minecraft:mineable/shovel",
|
||||||
"minecraft:melon",
|
"minecraft:melon",
|
||||||
"minecraft:pumpkin",
|
"minecraft:pumpkin",
|
||||||
"minecraft:carved_pumpkin",
|
"minecraft:carved_pumpkin",
|
||||||
|
|||||||
4
src/generated/resources/data/minecraft/computercraft/turtle_upgrades/crafting_table.json
generated
Normal file
4
src/generated/resources/data/minecraft/computercraft/turtle_upgrades/crafting_table.json
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"type": "computercraft:workbench",
|
||||||
|
"item": "minecraft:crafting_table"
|
||||||
|
}
|
||||||
5
src/generated/resources/data/minecraft/computercraft/turtle_upgrades/diamond_axe.json
generated
Normal file
5
src/generated/resources/data/minecraft/computercraft/turtle_upgrades/diamond_axe.json
generated
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"type": "computercraft:tool",
|
||||||
|
"item": "minecraft:diamond_axe",
|
||||||
|
"damageMultiplier": 6.0
|
||||||
|
}
|
||||||
5
src/generated/resources/data/minecraft/computercraft/turtle_upgrades/diamond_hoe.json
generated
Normal file
5
src/generated/resources/data/minecraft/computercraft/turtle_upgrades/diamond_hoe.json
generated
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"type": "computercraft:tool",
|
||||||
|
"item": "minecraft:diamond_hoe",
|
||||||
|
"breakable": "computercraft:turtle_hoe_harvestable"
|
||||||
|
}
|
||||||
4
src/generated/resources/data/minecraft/computercraft/turtle_upgrades/diamond_pickaxe.json
generated
Normal file
4
src/generated/resources/data/minecraft/computercraft/turtle_upgrades/diamond_pickaxe.json
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"type": "computercraft:tool",
|
||||||
|
"item": "minecraft:diamond_pickaxe"
|
||||||
|
}
|
||||||
5
src/generated/resources/data/minecraft/computercraft/turtle_upgrades/diamond_shovel.json
generated
Normal file
5
src/generated/resources/data/minecraft/computercraft/turtle_upgrades/diamond_shovel.json
generated
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"type": "computercraft:tool",
|
||||||
|
"item": "minecraft:diamond_shovel",
|
||||||
|
"breakable": "computercraft:turtle_shovel_harvestable"
|
||||||
|
}
|
||||||
6
src/generated/resources/data/minecraft/computercraft/turtle_upgrades/diamond_sword.json
generated
Normal file
6
src/generated/resources/data/minecraft/computercraft/turtle_upgrades/diamond_sword.json
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"type": "computercraft:tool",
|
||||||
|
"item": "minecraft:diamond_sword",
|
||||||
|
"damageMultiplier": 9.0,
|
||||||
|
"breakable": "computercraft:turtle_sword_harvestable"
|
||||||
|
}
|
||||||
18
src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json
generated
Normal file
18
src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json
generated
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"computercraft:computer_normal",
|
||||||
|
"computercraft:computer_advanced",
|
||||||
|
"computercraft:turtle_normal",
|
||||||
|
"computercraft:turtle_advanced",
|
||||||
|
"computercraft:speaker",
|
||||||
|
"computercraft:disk_drive",
|
||||||
|
"computercraft:printer",
|
||||||
|
"computercraft:monitor_normal",
|
||||||
|
"computercraft:monitor_advanced",
|
||||||
|
"computercraft:wireless_modem_normal",
|
||||||
|
"computercraft:wireless_modem_advanced",
|
||||||
|
"computercraft:wired_modem_full",
|
||||||
|
"computercraft:cable"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,11 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* This file is part of ComputerCraft - http://www.computercraft.info
|
* This file is part of ComputerCraft - http://www.computercraft.info
|
||||||
* Copyright Daniel Ratcliffe, 2011-2021. Do not distribute without permission.
|
* Copyright Daniel Ratcliffe, 2011-2022. Do not distribute without permission.
|
||||||
* Send enquiries to dratcliffe@gmail.com
|
* Send enquiries to dratcliffe@gmail.com
|
||||||
*/
|
*/
|
||||||
package dan200.computercraft;
|
package dan200.computercraft;
|
||||||
|
|
||||||
import dan200.computercraft.api.turtle.event.TurtleAction;
|
|
||||||
import dan200.computercraft.core.apis.http.options.Action;
|
import dan200.computercraft.core.apis.http.options.Action;
|
||||||
import dan200.computercraft.core.apis.http.options.AddressRule;
|
import dan200.computercraft.core.apis.http.options.AddressRule;
|
||||||
import dan200.computercraft.shared.Config;
|
import dan200.computercraft.shared.Config;
|
||||||
@@ -13,16 +12,10 @@ import dan200.computercraft.shared.Registry;
|
|||||||
import dan200.computercraft.shared.computer.core.ClientComputerRegistry;
|
import dan200.computercraft.shared.computer.core.ClientComputerRegistry;
|
||||||
import dan200.computercraft.shared.computer.core.ServerComputerRegistry;
|
import dan200.computercraft.shared.computer.core.ServerComputerRegistry;
|
||||||
import dan200.computercraft.shared.peripheral.monitor.MonitorRenderer;
|
import dan200.computercraft.shared.peripheral.monitor.MonitorRenderer;
|
||||||
import dan200.computercraft.shared.pocket.peripherals.PocketModem;
|
|
||||||
import dan200.computercraft.shared.pocket.peripherals.PocketSpeaker;
|
|
||||||
import dan200.computercraft.shared.turtle.upgrades.*;
|
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.EnumSet;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
@@ -45,10 +38,10 @@ public final class ComputerCraft
|
|||||||
|
|
||||||
public static boolean httpEnabled = true;
|
public static boolean httpEnabled = true;
|
||||||
public static boolean httpWebsocketEnabled = true;
|
public static boolean httpWebsocketEnabled = true;
|
||||||
public static List<AddressRule> httpRules = Collections.unmodifiableList( Arrays.asList(
|
public static List<AddressRule> httpRules = List.of(
|
||||||
AddressRule.parse( "$private", null, Action.DENY.toPartial() ),
|
AddressRule.parse( "$private", null, Action.DENY.toPartial() ),
|
||||||
AddressRule.parse( "*", null, Action.ALLOW.toPartial() )
|
AddressRule.parse( "*", null, Action.ALLOW.toPartial() )
|
||||||
) );
|
);
|
||||||
|
|
||||||
public static int httpMaxRequests = 16;
|
public static int httpMaxRequests = 16;
|
||||||
public static int httpMaxWebsockets = 4;
|
public static int httpMaxWebsockets = 4;
|
||||||
@@ -62,7 +55,7 @@ public final class ComputerCraft
|
|||||||
public static int modemHighAltitudeRangeDuringStorm = 384;
|
public static int modemHighAltitudeRangeDuringStorm = 384;
|
||||||
public static int maxNotesPerTick = 8;
|
public static int maxNotesPerTick = 8;
|
||||||
public static MonitorRenderer monitorRenderer = MonitorRenderer.BEST;
|
public static MonitorRenderer monitorRenderer = MonitorRenderer.BEST;
|
||||||
public static double monitorDistanceSq = 4096;
|
public static int monitorDistance = 65;
|
||||||
public static long monitorBandwidth = 1_000_000;
|
public static long monitorBandwidth = 1_000_000;
|
||||||
|
|
||||||
public static boolean turtlesNeedFuel = true;
|
public static boolean turtlesNeedFuel = true;
|
||||||
@@ -70,7 +63,6 @@ public final class ComputerCraft
|
|||||||
public static int advancedTurtleFuelLimit = 100000;
|
public static int advancedTurtleFuelLimit = 100000;
|
||||||
public static boolean turtlesObeyBlockProtection = true;
|
public static boolean turtlesObeyBlockProtection = true;
|
||||||
public static boolean turtlesCanPush = true;
|
public static boolean turtlesCanPush = true;
|
||||||
public static EnumSet<TurtleAction> turtleDisabledActions = EnumSet.noneOf( TurtleAction.class );
|
|
||||||
|
|
||||||
public static int computerTermWidth = 51;
|
public static int computerTermWidth = 51;
|
||||||
public static int computerTermHeight = 19;
|
public static int computerTermHeight = 19;
|
||||||
@@ -84,27 +76,6 @@ public final class ComputerCraft
|
|||||||
public static int monitorWidth = 8;
|
public static int monitorWidth = 8;
|
||||||
public static int monitorHeight = 6;
|
public static int monitorHeight = 6;
|
||||||
|
|
||||||
public static final class TurtleUpgrades
|
|
||||||
{
|
|
||||||
public static TurtleModem wirelessModemNormal;
|
|
||||||
public static TurtleModem wirelessModemAdvanced;
|
|
||||||
public static TurtleSpeaker speaker;
|
|
||||||
|
|
||||||
public static TurtleCraftingTable craftingTable;
|
|
||||||
public static TurtleSword diamondSword;
|
|
||||||
public static TurtleShovel diamondShovel;
|
|
||||||
public static TurtleTool diamondPickaxe;
|
|
||||||
public static TurtleAxe diamondAxe;
|
|
||||||
public static TurtleHoe diamondHoe;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final class PocketUpgrades
|
|
||||||
{
|
|
||||||
public static PocketModem wirelessModemNormal;
|
|
||||||
public static PocketModem wirelessModemAdvanced;
|
|
||||||
public static PocketSpeaker speaker;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Registries
|
// Registries
|
||||||
public static final ClientComputerRegistry clientComputerRegistry = new ClientComputerRegistry();
|
public static final ClientComputerRegistry clientComputerRegistry = new ClientComputerRegistry();
|
||||||
public static final ServerComputerRegistry serverComputerRegistry = new ServerComputerRegistry();
|
public static final ServerComputerRegistry serverComputerRegistry = new ServerComputerRegistry();
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* This file is part of ComputerCraft - http://www.computercraft.info
|
* This file is part of ComputerCraft - http://www.computercraft.info
|
||||||
* Copyright Daniel Ratcliffe, 2011-2021. Do not distribute without permission.
|
* Copyright Daniel Ratcliffe, 2011-2022. Do not distribute without permission.
|
||||||
* Send enquiries to dratcliffe@gmail.com
|
* Send enquiries to dratcliffe@gmail.com
|
||||||
*/
|
*/
|
||||||
package dan200.computercraft;
|
package dan200.computercraft;
|
||||||
@@ -15,30 +15,30 @@ import dan200.computercraft.api.network.IPacketNetwork;
|
|||||||
import dan200.computercraft.api.network.wired.IWiredElement;
|
import dan200.computercraft.api.network.wired.IWiredElement;
|
||||||
import dan200.computercraft.api.network.wired.IWiredNode;
|
import dan200.computercraft.api.network.wired.IWiredNode;
|
||||||
import dan200.computercraft.api.peripheral.IPeripheralProvider;
|
import dan200.computercraft.api.peripheral.IPeripheralProvider;
|
||||||
import dan200.computercraft.api.pocket.IPocketUpgrade;
|
|
||||||
import dan200.computercraft.api.redstone.IBundledRedstoneProvider;
|
import dan200.computercraft.api.redstone.IBundledRedstoneProvider;
|
||||||
import dan200.computercraft.api.turtle.ITurtleUpgrade;
|
|
||||||
import dan200.computercraft.core.apis.ApiFactories;
|
import dan200.computercraft.core.apis.ApiFactories;
|
||||||
import dan200.computercraft.core.asm.GenericMethod;
|
import dan200.computercraft.core.asm.GenericMethod;
|
||||||
import dan200.computercraft.core.filesystem.FileMount;
|
import dan200.computercraft.core.filesystem.FileMount;
|
||||||
import dan200.computercraft.core.filesystem.ResourceMount;
|
import dan200.computercraft.core.filesystem.ResourceMount;
|
||||||
import dan200.computercraft.shared.*;
|
import dan200.computercraft.shared.BundledRedstone;
|
||||||
|
import dan200.computercraft.shared.MediaProviders;
|
||||||
|
import dan200.computercraft.shared.Peripherals;
|
||||||
import dan200.computercraft.shared.peripheral.generic.GenericPeripheralProvider;
|
import dan200.computercraft.shared.peripheral.generic.GenericPeripheralProvider;
|
||||||
import dan200.computercraft.shared.peripheral.modem.wireless.WirelessNetwork;
|
import dan200.computercraft.shared.peripheral.modem.wireless.WirelessNetwork;
|
||||||
import dan200.computercraft.shared.util.IDAssigner;
|
import dan200.computercraft.shared.util.IDAssigner;
|
||||||
import dan200.computercraft.shared.wired.WiredNode;
|
import dan200.computercraft.shared.wired.WiredNode;
|
||||||
import net.minecraft.resources.IReloadableResourceManager;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.resources.IResourceManager;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.util.Direction;
|
import net.minecraft.server.packs.resources.ReloadableResourceManager;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.server.packs.resources.ResourceManager;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.world.level.BlockGetter;
|
||||||
import net.minecraft.world.IBlockReader;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||||
import net.minecraftforge.common.capabilities.Capability;
|
import net.minecraftforge.common.capabilities.Capability;
|
||||||
import net.minecraftforge.common.util.LazyOptional;
|
import net.minecraftforge.common.util.LazyOptional;
|
||||||
import net.minecraftforge.fml.ModList;
|
import net.minecraftforge.fml.ModList;
|
||||||
import net.minecraftforge.fml.server.ServerLifecycleHooks;
|
import net.minecraftforge.fmllegacy.server.ServerLifecycleHooks;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -59,7 +59,7 @@ public final class ComputerCraftAPIImpl implements IComputerCraftAPI
|
|||||||
|
|
||||||
public static InputStream getResourceFile( String domain, String subPath )
|
public static InputStream getResourceFile( String domain, String subPath )
|
||||||
{
|
{
|
||||||
IReloadableResourceManager manager = (IReloadableResourceManager) ServerLifecycleHooks.getCurrentServer().getDataPackRegistries().getResourceManager();
|
ReloadableResourceManager manager = (ReloadableResourceManager) ServerLifecycleHooks.getCurrentServer().getResourceManager();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return manager.getResource( new ResourceLocation( domain, subPath ) ).getInputStream();
|
return manager.getResource( new ResourceLocation( domain, subPath ) ).getInputStream();
|
||||||
@@ -81,13 +81,13 @@ public final class ComputerCraftAPIImpl implements IComputerCraftAPI
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int createUniqueNumberedSaveDir( @Nonnull World world, @Nonnull String parentSubPath )
|
public int createUniqueNumberedSaveDir( @Nonnull Level world, @Nonnull String parentSubPath )
|
||||||
{
|
{
|
||||||
return IDAssigner.getNextId( parentSubPath );
|
return IDAssigner.getNextId( parentSubPath );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IWritableMount createSaveDirMount( @Nonnull World world, @Nonnull String subPath, long capacity )
|
public IWritableMount createSaveDirMount( @Nonnull Level world, @Nonnull String subPath, long capacity )
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -102,7 +102,7 @@ public final class ComputerCraftAPIImpl implements IComputerCraftAPI
|
|||||||
@Override
|
@Override
|
||||||
public IMount createResourceMount( @Nonnull String domain, @Nonnull String subPath )
|
public IMount createResourceMount( @Nonnull String domain, @Nonnull String subPath )
|
||||||
{
|
{
|
||||||
IResourceManager manager = ServerLifecycleHooks.getCurrentServer().getDataPackRegistries().getResourceManager();
|
ResourceManager manager = ServerLifecycleHooks.getCurrentServer().getResourceManager();
|
||||||
ResourceMount mount = ResourceMount.get( domain, subPath, manager );
|
ResourceMount mount = ResourceMount.get( domain, subPath, manager );
|
||||||
return mount.exists( "" ) ? mount : null;
|
return mount.exists( "" ) ? mount : null;
|
||||||
}
|
}
|
||||||
@@ -125,12 +125,6 @@ public final class ComputerCraftAPIImpl implements IComputerCraftAPI
|
|||||||
GenericPeripheralProvider.addCapability( capability );
|
GenericPeripheralProvider.addCapability( capability );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void registerTurtleUpgrade( @Nonnull ITurtleUpgrade upgrade )
|
|
||||||
{
|
|
||||||
TurtleUpgrades.register( upgrade );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void registerBundledRedstoneProvider( @Nonnull IBundledRedstoneProvider provider )
|
public void registerBundledRedstoneProvider( @Nonnull IBundledRedstoneProvider provider )
|
||||||
{
|
{
|
||||||
@@ -138,7 +132,7 @@ public final class ComputerCraftAPIImpl implements IComputerCraftAPI
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getBundledRedstoneOutput( @Nonnull World world, @Nonnull BlockPos pos, @Nonnull Direction side )
|
public int getBundledRedstoneOutput( @Nonnull Level world, @Nonnull BlockPos pos, @Nonnull Direction side )
|
||||||
{
|
{
|
||||||
return BundledRedstone.getDefaultOutput( world, pos, side );
|
return BundledRedstone.getDefaultOutput( world, pos, side );
|
||||||
}
|
}
|
||||||
@@ -149,12 +143,6 @@ public final class ComputerCraftAPIImpl implements IComputerCraftAPI
|
|||||||
MediaProviders.register( provider );
|
MediaProviders.register( provider );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void registerPocketUpgrade( @Nonnull IPocketUpgrade upgrade )
|
|
||||||
{
|
|
||||||
PocketUpgrades.register( upgrade );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public IPacketNetwork getWirelessNetwork()
|
public IPacketNetwork getWirelessNetwork()
|
||||||
@@ -177,9 +165,9 @@ public final class ComputerCraftAPIImpl implements IComputerCraftAPI
|
|||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public LazyOptional<IWiredElement> getWiredElementAt( @Nonnull IBlockReader world, @Nonnull BlockPos pos, @Nonnull Direction side )
|
public LazyOptional<IWiredElement> getWiredElementAt( @Nonnull BlockGetter world, @Nonnull BlockPos pos, @Nonnull Direction side )
|
||||||
{
|
{
|
||||||
TileEntity tile = world.getBlockEntity( pos );
|
BlockEntity tile = world.getBlockEntity( pos );
|
||||||
return tile == null ? LazyOptional.empty() : tile.getCapability( CAPABILITY_WIRED_ELEMENT, side );
|
return tile == null ? LazyOptional.empty() : tile.getCapability( CAPABILITY_WIRED_ELEMENT, side );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
||||||
* Copyright Daniel Ratcliffe, 2011-2021. This API may be redistributed unmodified and in full only.
|
* Copyright Daniel Ratcliffe, 2011-2022. This API may be redistributed unmodified and in full only.
|
||||||
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
||||||
*/
|
*/
|
||||||
package dan200.computercraft.api;
|
package dan200.computercraft.api;
|
||||||
@@ -17,13 +17,11 @@ import dan200.computercraft.api.network.wired.IWiredNode;
|
|||||||
import dan200.computercraft.api.peripheral.IComputerAccess;
|
import dan200.computercraft.api.peripheral.IComputerAccess;
|
||||||
import dan200.computercraft.api.peripheral.IPeripheral;
|
import dan200.computercraft.api.peripheral.IPeripheral;
|
||||||
import dan200.computercraft.api.peripheral.IPeripheralProvider;
|
import dan200.computercraft.api.peripheral.IPeripheralProvider;
|
||||||
import dan200.computercraft.api.pocket.IPocketUpgrade;
|
|
||||||
import dan200.computercraft.api.redstone.IBundledRedstoneProvider;
|
import dan200.computercraft.api.redstone.IBundledRedstoneProvider;
|
||||||
import dan200.computercraft.api.turtle.ITurtleUpgrade;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.util.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.world.level.BlockGetter;
|
||||||
import net.minecraft.world.IBlockReader;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.World;
|
|
||||||
import net.minecraftforge.common.capabilities.Capability;
|
import net.minecraftforge.common.capabilities.Capability;
|
||||||
import net.minecraftforge.common.util.LazyOptional;
|
import net.minecraftforge.common.util.LazyOptional;
|
||||||
|
|
||||||
@@ -38,19 +36,14 @@ import javax.annotation.Nullable;
|
|||||||
*/
|
*/
|
||||||
public final class ComputerCraftAPI
|
public final class ComputerCraftAPI
|
||||||
{
|
{
|
||||||
|
public static final String MOD_ID = "computercraft";
|
||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
public static String getInstalledVersion()
|
public static String getInstalledVersion()
|
||||||
{
|
{
|
||||||
return getInstance().getInstalledVersion();
|
return getInstance().getInstalledVersion();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
@Deprecated
|
|
||||||
public static String getAPIVersion()
|
|
||||||
{
|
|
||||||
return getInstalledVersion();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a numbered directory in a subfolder of the save directory for a given world, and returns that number.
|
* Creates a numbered directory in a subfolder of the save directory for a given world, and returns that number.
|
||||||
*
|
*
|
||||||
@@ -62,9 +55,9 @@ public final class ComputerCraftAPI
|
|||||||
*
|
*
|
||||||
* eg: if createUniqueNumberedSaveDir( world, "computer/disk" ) was called returns 42, then "computer/disk/42" is now
|
* eg: if createUniqueNumberedSaveDir( world, "computer/disk" ) was called returns 42, then "computer/disk/42" is now
|
||||||
* available for writing.
|
* available for writing.
|
||||||
* @see #createSaveDirMount(World, String, long)
|
* @see #createSaveDirMount(Level, String, long)
|
||||||
*/
|
*/
|
||||||
public static int createUniqueNumberedSaveDir( @Nonnull World world, @Nonnull String parentSubPath )
|
public static int createUniqueNumberedSaveDir( @Nonnull Level world, @Nonnull String parentSubPath )
|
||||||
{
|
{
|
||||||
return getInstance().createUniqueNumberedSaveDir( world, parentSubPath );
|
return getInstance().createUniqueNumberedSaveDir( world, parentSubPath );
|
||||||
}
|
}
|
||||||
@@ -81,14 +74,14 @@ public final class ComputerCraftAPI
|
|||||||
* @param capacity The amount of data that can be stored in the directory before it fills up, in bytes.
|
* @param capacity The amount of data that can be stored in the directory before it fills up, in bytes.
|
||||||
* @return The mount, or null if it could be created for some reason. Use IComputerAccess.mount() or IComputerAccess.mountWritable()
|
* @return The mount, or null if it could be created for some reason. Use IComputerAccess.mount() or IComputerAccess.mountWritable()
|
||||||
* to mount this on a Computers' file system.
|
* to mount this on a Computers' file system.
|
||||||
* @see #createUniqueNumberedSaveDir(World, String)
|
* @see #createUniqueNumberedSaveDir(Level, String)
|
||||||
* @see IComputerAccess#mount(String, IMount)
|
* @see IComputerAccess#mount(String, IMount)
|
||||||
* @see IComputerAccess#mountWritable(String, IWritableMount)
|
* @see IComputerAccess#mountWritable(String, IWritableMount)
|
||||||
* @see IMount
|
* @see IMount
|
||||||
* @see IWritableMount
|
* @see IWritableMount
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
public static IWritableMount createSaveDirMount( @Nonnull World world, @Nonnull String subPath, long capacity )
|
public static IWritableMount createSaveDirMount( @Nonnull Level world, @Nonnull String subPath, long capacity )
|
||||||
{
|
{
|
||||||
return getInstance().createSaveDirMount( world, subPath, capacity );
|
return getInstance().createSaveDirMount( world, subPath, capacity );
|
||||||
}
|
}
|
||||||
@@ -151,19 +144,6 @@ public final class ComputerCraftAPI
|
|||||||
getInstance().registerGenericCapability( capability );
|
getInstance().registerGenericCapability( capability );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers a new turtle turtle for use in ComputerCraft. After calling this,
|
|
||||||
* users should be able to craft Turtles with your new turtle. It is recommended to call
|
|
||||||
* this during the load() method of your mod.
|
|
||||||
*
|
|
||||||
* @param upgrade The turtle upgrade to register.
|
|
||||||
* @see ITurtleUpgrade
|
|
||||||
*/
|
|
||||||
public static void registerTurtleUpgrade( @Nonnull ITurtleUpgrade upgrade )
|
|
||||||
{
|
|
||||||
getInstance().registerTurtleUpgrade( upgrade );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Registers a bundled redstone provider to provide bundled redstone output for blocks.
|
* Registers a bundled redstone provider to provide bundled redstone output for blocks.
|
||||||
*
|
*
|
||||||
@@ -185,7 +165,7 @@ public final class ComputerCraftAPI
|
|||||||
* If there is no block capable of emitting bundled redstone at the location, -1 will be returned.
|
* If there is no block capable of emitting bundled redstone at the location, -1 will be returned.
|
||||||
* @see IBundledRedstoneProvider
|
* @see IBundledRedstoneProvider
|
||||||
*/
|
*/
|
||||||
public static int getBundledRedstoneOutput( @Nonnull World world, @Nonnull BlockPos pos, @Nonnull Direction side )
|
public static int getBundledRedstoneOutput( @Nonnull Level world, @Nonnull BlockPos pos, @Nonnull Direction side )
|
||||||
{
|
{
|
||||||
return getInstance().getBundledRedstoneOutput( world, pos, side );
|
return getInstance().getBundledRedstoneOutput( world, pos, side );
|
||||||
}
|
}
|
||||||
@@ -201,11 +181,6 @@ public final class ComputerCraftAPI
|
|||||||
getInstance().registerMediaProvider( provider );
|
getInstance().registerMediaProvider( provider );
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void registerPocketUpgrade( @Nonnull IPocketUpgrade upgrade )
|
|
||||||
{
|
|
||||||
getInstance().registerPocketUpgrade( upgrade );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Attempt to get the game-wide wireless network.
|
* Attempt to get the game-wide wireless network.
|
||||||
*
|
*
|
||||||
@@ -244,7 +219,7 @@ public final class ComputerCraftAPI
|
|||||||
* @see IWiredElement#getNode()
|
* @see IWiredElement#getNode()
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
@Nonnull
|
||||||
public static LazyOptional<IWiredElement> getWiredElementAt( @Nonnull IBlockReader world, @Nonnull BlockPos pos, @Nonnull Direction side )
|
public static LazyOptional<IWiredElement> getWiredElementAt( @Nonnull BlockGetter world, @Nonnull BlockPos pos, @Nonnull Direction side )
|
||||||
{
|
{
|
||||||
return getInstance().getWiredElementAt( world, pos, side );
|
return getInstance().getWiredElementAt( world, pos, side );
|
||||||
}
|
}
|
||||||
@@ -272,10 +247,10 @@ public final class ComputerCraftAPI
|
|||||||
@Nonnull
|
@Nonnull
|
||||||
String getInstalledVersion();
|
String getInstalledVersion();
|
||||||
|
|
||||||
int createUniqueNumberedSaveDir( @Nonnull World world, @Nonnull String parentSubPath );
|
int createUniqueNumberedSaveDir( @Nonnull Level world, @Nonnull String parentSubPath );
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
IWritableMount createSaveDirMount( @Nonnull World world, @Nonnull String subPath, long capacity );
|
IWritableMount createSaveDirMount( @Nonnull Level world, @Nonnull String subPath, long capacity );
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
IMount createResourceMount( @Nonnull String domain, @Nonnull String subPath );
|
IMount createResourceMount( @Nonnull String domain, @Nonnull String subPath );
|
||||||
@@ -286,16 +261,12 @@ public final class ComputerCraftAPI
|
|||||||
|
|
||||||
void registerGenericCapability( @Nonnull Capability<?> capability );
|
void registerGenericCapability( @Nonnull Capability<?> capability );
|
||||||
|
|
||||||
void registerTurtleUpgrade( @Nonnull ITurtleUpgrade upgrade );
|
|
||||||
|
|
||||||
void registerBundledRedstoneProvider( @Nonnull IBundledRedstoneProvider provider );
|
void registerBundledRedstoneProvider( @Nonnull IBundledRedstoneProvider provider );
|
||||||
|
|
||||||
int getBundledRedstoneOutput( @Nonnull World world, @Nonnull BlockPos pos, @Nonnull Direction side );
|
int getBundledRedstoneOutput( @Nonnull Level world, @Nonnull BlockPos pos, @Nonnull Direction side );
|
||||||
|
|
||||||
void registerMediaProvider( @Nonnull IMediaProvider provider );
|
void registerMediaProvider( @Nonnull IMediaProvider provider );
|
||||||
|
|
||||||
void registerPocketUpgrade( @Nonnull IPocketUpgrade upgrade );
|
|
||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
IPacketNetwork getWirelessNetwork();
|
IPacketNetwork getWirelessNetwork();
|
||||||
|
|
||||||
@@ -305,6 +276,6 @@ public final class ComputerCraftAPI
|
|||||||
IWiredNode createWiredNodeForElement( @Nonnull IWiredElement element );
|
IWiredNode createWiredNodeForElement( @Nonnull IWiredElement element );
|
||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
LazyOptional<IWiredElement> getWiredElementAt( @Nonnull IBlockReader world, @Nonnull BlockPos pos, @Nonnull Direction side );
|
LazyOptional<IWiredElement> getWiredElementAt( @Nonnull BlockGetter world, @Nonnull BlockPos pos, @Nonnull Direction side );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,66 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
||||||
|
* Copyright Daniel Ratcliffe, 2011-2022. This API may be redistributed unmodified and in full only.
|
||||||
|
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
||||||
|
*/
|
||||||
|
package dan200.computercraft.api;
|
||||||
|
|
||||||
|
import dan200.computercraft.ComputerCraft;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.tags.BlockTags;
|
||||||
|
import net.minecraft.tags.ItemTags;
|
||||||
|
import net.minecraft.tags.Tag;
|
||||||
|
import net.minecraft.world.item.Item;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tags provided by ComputerCraft.
|
||||||
|
*/
|
||||||
|
public class ComputerCraftTags
|
||||||
|
{
|
||||||
|
public static class Items
|
||||||
|
{
|
||||||
|
public static final Tag.Named<Item> COMPUTER = make( "computer" );
|
||||||
|
public static final Tag.Named<Item> TURTLE = make( "turtle" );
|
||||||
|
public static final Tag.Named<Item> WIRED_MODEM = make( "wired_modem" );
|
||||||
|
public static final Tag.Named<Item> MONITOR = make( "monitor" );
|
||||||
|
|
||||||
|
private static Tag.Named<Item> make( String name )
|
||||||
|
{
|
||||||
|
return ItemTags.bind( new ResourceLocation( ComputerCraft.MOD_ID, name ).toString() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Blocks
|
||||||
|
{
|
||||||
|
public static final Tag.Named<Block> COMPUTER = make( "computer" );
|
||||||
|
public static final Tag.Named<Block> TURTLE = make( "turtle" );
|
||||||
|
public static final Tag.Named<Block> WIRED_MODEM = make( "wired_modem" );
|
||||||
|
public static final Tag.Named<Block> MONITOR = make( "monitor" );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Blocks which can be broken by any turtle tool.
|
||||||
|
*/
|
||||||
|
public static final Tag.Named<Block> TURTLE_ALWAYS_BREAKABLE = make( "turtle_always_breakable" );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Blocks which can be broken by the default shovel tool.
|
||||||
|
*/
|
||||||
|
public static final Tag.Named<Block> TURTLE_SHOVEL_BREAKABLE = make( "turtle_shovel_harvestable" );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Blocks which can be broken with the default sword tool.
|
||||||
|
*/
|
||||||
|
public static final Tag.Named<Block> TURTLE_SWORD_BREAKABLE = make( "turtle_sword_harvestable" );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Blocks which can be broken with the default hoe tool.
|
||||||
|
*/
|
||||||
|
public static final Tag.Named<Block> TURTLE_HOE_BREAKABLE = make( "turtle_hoe_harvestable" );
|
||||||
|
|
||||||
|
private static Tag.Named<Block> make( String name )
|
||||||
|
{
|
||||||
|
return BlockTags.bind( new ResourceLocation( ComputerCraft.MOD_ID, name ).toString() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,16 +1,16 @@
|
|||||||
/*
|
/*
|
||||||
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
||||||
* Copyright Daniel Ratcliffe, 2011-2021. This API may be redistributed unmodified and in full only.
|
* Copyright Daniel Ratcliffe, 2011-2022. This API may be redistributed unmodified and in full only.
|
||||||
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
||||||
*/
|
*/
|
||||||
package dan200.computercraft.api.client;
|
package dan200.computercraft.api.client;
|
||||||
|
|
||||||
|
import com.mojang.math.Transformation;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.renderer.model.IBakedModel;
|
import net.minecraft.client.resources.model.BakedModel;
|
||||||
import net.minecraft.client.renderer.model.ModelManager;
|
import net.minecraft.client.resources.model.ModelManager;
|
||||||
import net.minecraft.client.renderer.model.ModelResourceLocation;
|
import net.minecraft.client.resources.model.ModelResourceLocation;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.util.math.vector.TransformationMatrix;
|
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@@ -20,19 +20,19 @@ import java.util.Objects;
|
|||||||
*/
|
*/
|
||||||
public final class TransformedModel
|
public final class TransformedModel
|
||||||
{
|
{
|
||||||
private final IBakedModel model;
|
private final BakedModel model;
|
||||||
private final TransformationMatrix matrix;
|
private final Transformation matrix;
|
||||||
|
|
||||||
public TransformedModel( @Nonnull IBakedModel model, @Nonnull TransformationMatrix matrix )
|
public TransformedModel( @Nonnull BakedModel model, @Nonnull Transformation matrix )
|
||||||
{
|
{
|
||||||
this.model = Objects.requireNonNull( model );
|
this.model = Objects.requireNonNull( model );
|
||||||
this.matrix = Objects.requireNonNull( matrix );
|
this.matrix = Objects.requireNonNull( matrix );
|
||||||
}
|
}
|
||||||
|
|
||||||
public TransformedModel( @Nonnull IBakedModel model )
|
public TransformedModel( @Nonnull BakedModel model )
|
||||||
{
|
{
|
||||||
this.model = Objects.requireNonNull( model );
|
this.model = Objects.requireNonNull( model );
|
||||||
matrix = TransformationMatrix.identity();
|
matrix = Transformation.identity();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TransformedModel of( @Nonnull ModelResourceLocation location )
|
public static TransformedModel of( @Nonnull ModelResourceLocation location )
|
||||||
@@ -41,20 +41,20 @@ public final class TransformedModel
|
|||||||
return new TransformedModel( modelManager.getModel( location ) );
|
return new TransformedModel( modelManager.getModel( location ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TransformedModel of( @Nonnull ItemStack item, @Nonnull TransformationMatrix transform )
|
public static TransformedModel of( @Nonnull ItemStack item, @Nonnull Transformation transform )
|
||||||
{
|
{
|
||||||
IBakedModel model = Minecraft.getInstance().getItemRenderer().getItemModelShaper().getItemModel( item );
|
BakedModel model = Minecraft.getInstance().getItemRenderer().getItemModelShaper().getItemModel( item );
|
||||||
return new TransformedModel( model, transform );
|
return new TransformedModel( model, transform );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
public IBakedModel getModel()
|
public BakedModel getModel()
|
||||||
{
|
{
|
||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
public TransformationMatrix getMatrix()
|
public Transformation getMatrix()
|
||||||
{
|
{
|
||||||
return matrix;
|
return matrix;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
||||||
* Copyright Daniel Ratcliffe, 2011-2021. This API may be redistributed unmodified and in full only.
|
* Copyright Daniel Ratcliffe, 2011-2022. This API may be redistributed unmodified and in full only.
|
||||||
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
||||||
*/
|
*/
|
||||||
package dan200.computercraft.api.filesystem;
|
package dan200.computercraft.api.filesystem;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
||||||
* Copyright Daniel Ratcliffe, 2011-2021. This API may be redistributed unmodified and in full only.
|
* Copyright Daniel Ratcliffe, 2011-2022. This API may be redistributed unmodified and in full only.
|
||||||
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
||||||
*/
|
*/
|
||||||
package dan200.computercraft.api.filesystem;
|
package dan200.computercraft.api.filesystem;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
||||||
* Copyright Daniel Ratcliffe, 2011-2021. This API may be redistributed unmodified and in full only.
|
* Copyright Daniel Ratcliffe, 2011-2022. This API may be redistributed unmodified and in full only.
|
||||||
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
||||||
*/
|
*/
|
||||||
package dan200.computercraft.api.filesystem;
|
package dan200.computercraft.api.filesystem;
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
/*
|
/*
|
||||||
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
||||||
* Copyright Daniel Ratcliffe, 2011-2021. This API may be redistributed unmodified and in full only.
|
* Copyright Daniel Ratcliffe, 2011-2022. This API may be redistributed unmodified and in full only.
|
||||||
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
||||||
*/
|
*/
|
||||||
package dan200.computercraft.api.filesystem;
|
package dan200.computercraft.api.filesystem;
|
||||||
|
|
||||||
import dan200.computercraft.api.ComputerCraftAPI;
|
import dan200.computercraft.api.ComputerCraftAPI;
|
||||||
import dan200.computercraft.api.peripheral.IComputerAccess;
|
import dan200.computercraft.api.peripheral.IComputerAccess;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.level.Level;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -20,10 +20,10 @@ import java.util.List;
|
|||||||
* {@link IComputerAccess#mount(String, IMount)}.
|
* {@link IComputerAccess#mount(String, IMount)}.
|
||||||
*
|
*
|
||||||
* Ready made implementations of this interface can be created using
|
* Ready made implementations of this interface can be created using
|
||||||
* {@link ComputerCraftAPI#createSaveDirMount(World, String, long)} or
|
* {@link ComputerCraftAPI#createSaveDirMount(Level, String, long)} or
|
||||||
* {@link ComputerCraftAPI#createResourceMount(String, String)}, or you're free to implement it yourselves!
|
* {@link ComputerCraftAPI#createResourceMount(String, String)}, or you're free to implement it yourselves!
|
||||||
*
|
*
|
||||||
* @see ComputerCraftAPI#createSaveDirMount(World, String, long)
|
* @see ComputerCraftAPI#createSaveDirMount(Level, String, long)
|
||||||
* @see ComputerCraftAPI#createResourceMount(String, String)
|
* @see ComputerCraftAPI#createResourceMount(String, String)
|
||||||
* @see IComputerAccess#mount(String, IMount)
|
* @see IComputerAccess#mount(String, IMount)
|
||||||
* @see IWritableMount
|
* @see IWritableMount
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
/*
|
/*
|
||||||
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
||||||
* Copyright Daniel Ratcliffe, 2011-2021. This API may be redistributed unmodified and in full only.
|
* Copyright Daniel Ratcliffe, 2011-2022. This API may be redistributed unmodified and in full only.
|
||||||
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
||||||
*/
|
*/
|
||||||
package dan200.computercraft.api.filesystem;
|
package dan200.computercraft.api.filesystem;
|
||||||
|
|
||||||
import dan200.computercraft.api.ComputerCraftAPI;
|
import dan200.computercraft.api.ComputerCraftAPI;
|
||||||
import dan200.computercraft.api.peripheral.IComputerAccess;
|
import dan200.computercraft.api.peripheral.IComputerAccess;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.level.Level;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -20,9 +20,9 @@ import java.util.OptionalLong;
|
|||||||
* or {@link IComputerAccess#mountWritable(String, IWritableMount)}, that can also be written to.
|
* or {@link IComputerAccess#mountWritable(String, IWritableMount)}, that can also be written to.
|
||||||
*
|
*
|
||||||
* Ready made implementations of this interface can be created using
|
* Ready made implementations of this interface can be created using
|
||||||
* {@link ComputerCraftAPI#createSaveDirMount(World, String, long)}, or you're free to implement it yourselves!
|
* {@link ComputerCraftAPI#createSaveDirMount(Level, String, long)}, or you're free to implement it yourselves!
|
||||||
*
|
*
|
||||||
* @see ComputerCraftAPI#createSaveDirMount(World, String, long)
|
* @see ComputerCraftAPI#createSaveDirMount(Level, String, long)
|
||||||
* @see IComputerAccess#mount(String, IMount)
|
* @see IComputerAccess#mount(String, IMount)
|
||||||
* @see IComputerAccess#mountWritable(String, IWritableMount)
|
* @see IComputerAccess#mountWritable(String, IWritableMount)
|
||||||
* @see IMount
|
* @see IMount
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
||||||
* Copyright Daniel Ratcliffe, 2011-2021. This API may be redistributed unmodified and in full only.
|
* Copyright Daniel Ratcliffe, 2011-2022. This API may be redistributed unmodified and in full only.
|
||||||
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
||||||
*/
|
*/
|
||||||
package dan200.computercraft.api.lua;
|
package dan200.computercraft.api.lua;
|
||||||
@@ -9,7 +9,7 @@ import dan200.computercraft.api.ComputerCraftAPI;
|
|||||||
import dan200.computercraft.api.peripheral.IPeripheral;
|
import dan200.computercraft.api.peripheral.IPeripheral;
|
||||||
import dan200.computercraft.api.peripheral.IPeripheralProvider;
|
import dan200.computercraft.api.peripheral.IPeripheralProvider;
|
||||||
import dan200.computercraft.core.asm.LuaMethod;
|
import dan200.computercraft.core.asm.LuaMethod;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraftforge.common.capabilities.Capability;
|
import net.minecraftforge.common.capabilities.Capability;
|
||||||
import net.minecraftforge.items.IItemHandler;
|
import net.minecraftforge.items.IItemHandler;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
||||||
* Copyright Daniel Ratcliffe, 2011-2021. This API may be redistributed unmodified and in full only.
|
* Copyright Daniel Ratcliffe, 2011-2022. This API may be redistributed unmodified and in full only.
|
||||||
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
||||||
*/
|
*/
|
||||||
package dan200.computercraft.api.lua;
|
package dan200.computercraft.api.lua;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
||||||
* Copyright Daniel Ratcliffe, 2011-2021. This API may be redistributed unmodified and in full only.
|
* Copyright Daniel Ratcliffe, 2011-2022. This API may be redistributed unmodified and in full only.
|
||||||
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
||||||
*/
|
*/
|
||||||
package dan200.computercraft.api.lua;
|
package dan200.computercraft.api.lua;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
||||||
* Copyright Daniel Ratcliffe, 2011-2021. This API may be redistributed unmodified and in full only.
|
* Copyright Daniel Ratcliffe, 2011-2022. This API may be redistributed unmodified and in full only.
|
||||||
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
||||||
*/
|
*/
|
||||||
package dan200.computercraft.api.lua;
|
package dan200.computercraft.api.lua;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
* This file is part of the public ComputerCraft API - http://www.computercraft.info
|
||||||
* Copyright Daniel Ratcliffe, 2011-2021. This API may be redistributed unmodified and in full only.
|
* Copyright Daniel Ratcliffe, 2011-2022. This API may be redistributed unmodified and in full only.
|
||||||
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
* For help using the API, and posting your mods, visit the forums at computercraft.info.
|
||||||
*/
|
*/
|
||||||
package dan200.computercraft.api.lua;
|
package dan200.computercraft.api.lua;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user