mirror of
				https://github.com/SquidDev-CC/CC-Tweaked
				synced 2025-11-03 23:22:59 +00:00 
			
		
		
		
	Compare commits
	
		
			98 Commits
		
	
	
		
			v1.16.5-1.
			...
			mc-1.18.x
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					edf372a695 | ||
| 
						 | 
					1f3b781a1d | ||
| 
						 | 
					0db32bd0fe | ||
| 
						 | 
					11ac865877 | ||
| 
						 | 
					5d4c34fbac | ||
| 
						 | 
					c4184a33bc | ||
| 
						 | 
					b3702fed78 | ||
| 
						 | 
					38b2c944f3 | ||
| 
						 | 
					158850be09 | ||
| 
						 | 
					be827a21db | ||
| 
						 | 
					9ed5ebb868 | ||
| 
						 | 
					08895cdecc | ||
| 
						 | 
					feb7681c9c | ||
| 
						 | 
					ad4a2aa68d | ||
| 
						 | 
					4228011b84 | ||
| 
						 | 
					bd19fdf350 | ||
| 
						 | 
					69b211b4fb | ||
| 
						 | 
					48147fa61c | ||
| 
						 | 
					f25a73b8f2 | ||
| 
						 | 
					d2f94f2653 | ||
| 
						 | 
					bb0e449560 | ||
| 
						 | 
					ee495b3359 | ||
| 
						 | 
					557765d8f0 | ||
| 
						 | 
					a07bba4ece | ||
| 
						 | 
					83a1af6526 | ||
| 
						 | 
					5052718428 | ||
| 
						 | 
					caa412b7d2 | ||
| 
						 | 
					159f90896e | ||
| 
						 | 
					2a4f75ba15 | ||
| 
						 | 
					42b98bce28 | ||
| 
						 | 
					59e3608d2a | ||
| 
						 | 
					41fa95bce4 | ||
| 
						 | 
					ba7598c689 | ||
| 
						 | 
					70c5cbafec | ||
| 
						 | 
					7731759c77 | ||
| 
						 | 
					e6339b2847 | ||
| 
						 | 
					6353e8d930 | ||
| 
						 | 
					78cce4981a | ||
| 
						 | 
					97c953a9be | ||
| 
						 | 
					52df7cb8a4 | ||
| 
						 | 
					6735cfd12e | ||
| 
						 | 
					f994696161 | ||
| 
						 | 
					4a4e8bb4b6 | ||
| 
						 | 
					9edce36efd | ||
| 
						 | 
					e05588c662 | ||
| 
						 | 
					79366bf2f5 | ||
| 
						 | 
					413fa5bcc8 | ||
| 
						 | 
					2b901f2d5e | ||
| 
						 | 
					62f2cd5cb2 | ||
| 
						 | 
					901d8d4c3b | ||
| 
						 | 
					f794ce42ab | ||
| 
						 | 
					2562642664 | ||
| 
						 | 
					632db1cfa5 | ||
| 
						 | 
					aa0d544bba | ||
| 
						 | 
					2f6ad00764 | ||
| 
						 | 
					05da4dd362 | ||
| 
						 | 
					fe3c42ce22 | ||
| 
						 | 
					f6fcba7a39 | ||
| 
						 | 
					82a7edee12 | ||
| 
						 | 
					7c373c6e06 | ||
| 
						 | 
					6196aae488 | ||
| 
						 | 
					57c5d19f95 | ||
| 
						 | 
					23c17075be | ||
| 
						 | 
					87988a705b | ||
| 
						 | 
					179da1d8cf | ||
| 
						 | 
					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 | 
							
								
								
									
										2
									
								
								.github/workflows/main-ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/main-ci.yml
									
									
									
									
										vendored
									
									
								
							@@ -14,7 +14,7 @@ jobs:
 | 
			
		||||
    - name: Set up Java
 | 
			
		||||
      uses: actions/setup-java@v3
 | 
			
		||||
      with:
 | 
			
		||||
        java-version: 8
 | 
			
		||||
        java-version: 17
 | 
			
		||||
        distribution: 'temurin'
 | 
			
		||||
 | 
			
		||||
    - name: Setup Gradle
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/make-doc.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/make-doc.yml
									
									
									
									
										vendored
									
									
								
							@@ -17,7 +17,7 @@ jobs:
 | 
			
		||||
    - name: Set up Java
 | 
			
		||||
      uses: actions/setup-java@v1
 | 
			
		||||
      with:
 | 
			
		||||
        java-version: 8
 | 
			
		||||
        java-version: 17
 | 
			
		||||
        distribution: 'temurin'
 | 
			
		||||
 | 
			
		||||
    - name: Setup Gradle
 | 
			
		||||
 
 | 
			
		||||
@@ -43,6 +43,10 @@ minecraft {
 | 
			
		||||
        // configureEach would be better, but we need to eagerly configure configs or otherwise the run task doesn't
 | 
			
		||||
        // get set up properly.
 | 
			
		||||
        all {
 | 
			
		||||
            lazyToken("minecraft_classpath") {
 | 
			
		||||
                configurations["shade"].copyRecursive().resolve().joinToString(File.pathSeparator) { it.absolutePath }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            property("forge.logging.markers", "REGISTRIES")
 | 
			
		||||
            property("forge.logging.console.level", "debug")
 | 
			
		||||
 | 
			
		||||
@@ -75,6 +79,24 @@ minecraft {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        fun RunConfig.configureForGameTest() {
 | 
			
		||||
            val old = lazyTokens.get("minecraft_classpath")
 | 
			
		||||
            lazyToken("minecraft_classpath") {
 | 
			
		||||
                // We do some terrible hacks here to basically find all things not already on the runtime classpath
 | 
			
		||||
                // and add them. /Except/ for our source sets, as those need to load inside the Minecraft classpath.
 | 
			
		||||
                val testMod = configurations["testModRuntimeClasspath"].resolve()
 | 
			
		||||
                val implementation = configurations.runtimeClasspath.get().resolve()
 | 
			
		||||
                val new = (testMod - implementation)
 | 
			
		||||
                    .asSequence()
 | 
			
		||||
                    .filter { it.isFile && !it.name.endsWith("-test-fixtures.jar") }
 | 
			
		||||
                    .map { it.absolutePath }
 | 
			
		||||
                    .joinToString(File.pathSeparator)
 | 
			
		||||
                if (old == null) new else old.get() + File.pathSeparator + new
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            property("cctest.sources", file("src/testMod/resources/data/cctest").absolutePath)
 | 
			
		||||
 | 
			
		||||
            arg("--mixin.config=computercraft-gametest.mixins.json")
 | 
			
		||||
 | 
			
		||||
            mods.register("cctest") {
 | 
			
		||||
                source(sourceSets["testMod"])
 | 
			
		||||
                source(sourceSets["testFixtures"])
 | 
			
		||||
@@ -87,12 +109,10 @@ minecraft {
 | 
			
		||||
            configureForGameTest()
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        val testServer by registering {
 | 
			
		||||
        val gameTestServer by registering {
 | 
			
		||||
            workingDirectory(file("run/testServer"))
 | 
			
		||||
            parent(server.get())
 | 
			
		||||
            configureForGameTest()
 | 
			
		||||
 | 
			
		||||
            property("cctest.run", "true")
 | 
			
		||||
            property("forge.logging.console.level", "info")
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@@ -100,7 +120,6 @@ minecraft {
 | 
			
		||||
    mappings("parchment", "${libs.versions.parchmentMc.get()}-${libs.versions.parchment.get()}-$mcVersion")
 | 
			
		||||
 | 
			
		||||
    accessTransformer(file("src/main/resources/META-INF/accesstransformer.cfg"))
 | 
			
		||||
    accessTransformer(file("src/testMod/resources/META-INF/accesstransformer.cfg"))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
mixin {
 | 
			
		||||
@@ -120,16 +139,14 @@ configurations {
 | 
			
		||||
 | 
			
		||||
dependencies {
 | 
			
		||||
    minecraft("net.minecraftforge:forge:$mcVersion-${libs.versions.forge.get()}")
 | 
			
		||||
    annotationProcessor("org.spongepowered:mixin:0.8.4:processor")
 | 
			
		||||
    annotationProcessor("org.spongepowered:mixin:0.8.5:processor")
 | 
			
		||||
 | 
			
		||||
    compileOnly(libs.jetbrainsAnnotations)
 | 
			
		||||
    annotationProcessorEverywhere(libs.autoService)
 | 
			
		||||
 | 
			
		||||
    "extraModsCompileOnly"(fg.deobf("mezz.jei:jei-1.16.5:7.7.0.104:api"))
 | 
			
		||||
    "extraModsRuntimeOnly"(fg.deobf("mezz.jei:jei-1.16.5:7.7.0.104"))
 | 
			
		||||
 | 
			
		||||
    "extraModsCompileOnly"(fg.deobf("com.blamejared.crafttweaker:CraftTweaker-1.16.5:7.1.0.313"))
 | 
			
		||||
    "extraModsCompileOnly"(fg.deobf("commoble.morered:morered-1.16.5:2.1.1.0"))
 | 
			
		||||
    "extraModsCompileOnly"(fg.deobf("mezz.jei:jei-1.18.2:9.4.1.116:api"))
 | 
			
		||||
    "extraModsRuntimeOnly"(fg.deobf("mezz.jei:jei-1.18.2:9.4.1.116"))
 | 
			
		||||
    "extraModsCompileOnly"(fg.deobf("maven.modrinth:oculus:1.18.2-1.2.5"))
 | 
			
		||||
 | 
			
		||||
    "shade"(libs.cobalt)
 | 
			
		||||
 | 
			
		||||
@@ -151,7 +168,7 @@ illuaminate {
 | 
			
		||||
 | 
			
		||||
tasks.javadoc {
 | 
			
		||||
    include("dan200/computercraft/api/**/*.java")
 | 
			
		||||
    (options as StandardJavadocDocletOptions).links("https://docs.oracle.com/javase/8/docs/api/")
 | 
			
		||||
    (options as StandardJavadocDocletOptions).links("https://docs.oracle.com/en/java/javase/17/docs/api/")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
val apiJar by tasks.registering(Jar::class) {
 | 
			
		||||
@@ -177,7 +194,7 @@ val luaJavadoc by tasks.registering(Javadoc::class) {
 | 
			
		||||
 | 
			
		||||
    javadocTool.set(
 | 
			
		||||
        javaToolchains.javadocToolFor {
 | 
			
		||||
            languageVersion.set(JavaLanguageVersion.of(11))
 | 
			
		||||
            languageVersion.set(cc.tweaked.gradle.CCTweakedPlugin.JAVA_VERSION)
 | 
			
		||||
        },
 | 
			
		||||
    )
 | 
			
		||||
}
 | 
			
		||||
@@ -320,25 +337,14 @@ val lintLua by tasks.registering(IlluaminateExec::class) {
 | 
			
		||||
    doLast { if (System.getenv("GITHUB_ACTIONS") != null) println("::remove-matcher owner=illuaminate::") }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
val setupRunGametest by tasks.registering(Copy::class) {
 | 
			
		||||
    group = LifecycleBasePlugin.VERIFICATION_GROUP
 | 
			
		||||
    description = "Sets up the environment for the test server."
 | 
			
		||||
 | 
			
		||||
    from("src/testMod/server-files") {
 | 
			
		||||
        include("eula.txt")
 | 
			
		||||
        include("server.properties")
 | 
			
		||||
    }
 | 
			
		||||
    into("run/testServer")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
val runGametest by tasks.registering(JavaExec::class) {
 | 
			
		||||
    group = LifecycleBasePlugin.VERIFICATION_GROUP
 | 
			
		||||
    description = "Runs tests on a temporary Minecraft instance."
 | 
			
		||||
    dependsOn(setupRunGametest, "cleanRunGametest")
 | 
			
		||||
    dependsOn("cleanRunGametest")
 | 
			
		||||
 | 
			
		||||
    // Copy from runTestServer. We do it in this slightly odd way as runTestServer
 | 
			
		||||
    // Copy from runGameTestServer. We do it in this slightly odd way as runGameTestServer
 | 
			
		||||
    // isn't created until the task is configured (which is no good for us).
 | 
			
		||||
    val exec = tasks.getByName<JavaExec>("runTestServer")
 | 
			
		||||
    val exec = tasks.getByName<JavaExec>("runGameTestServer")
 | 
			
		||||
    dependsOn(exec.dependsOn)
 | 
			
		||||
    exec.copyToFull(this)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -13,6 +13,6 @@ class CCTweakedPlugin : Plugin<Project> {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    companion object {
 | 
			
		||||
        val JAVA_VERSION = JavaLanguageVersion.of(8)
 | 
			
		||||
        val JAVA_VERSION = JavaLanguageVersion.of(17)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -58,20 +58,29 @@
 | 
			
		||||
        <module name="SimplifyBooleanExpression" />
 | 
			
		||||
        <module name="SimplifyBooleanReturn" />
 | 
			
		||||
        <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="UnnecessarySemicolonInTryWithResources" />
 | 
			
		||||
        <module name="UnnecessarySemicolonInEnumeration" />
 | 
			
		||||
 | 
			
		||||
        <!-- Imports -->
 | 
			
		||||
        <module name="CustomImportOrder" />
 | 
			
		||||
        <module name="CustomImportOrder">
 | 
			
		||||
            <property name="customImportOrderRules"
 | 
			
		||||
                value="THIRD_PARTY_PACKAGE###STANDARD_JAVA_PACKAGE###STATIC"
 | 
			
		||||
            />
 | 
			
		||||
        </module>
 | 
			
		||||
        <module name="IllegalImport" />
 | 
			
		||||
        <module name="RedundantImport" />
 | 
			
		||||
        <module name="UnusedImports" />
 | 
			
		||||
 | 
			
		||||
        <!-- Javadoc -->
 | 
			
		||||
        <!-- TODO: Missing* checks for the dan200.computercraft.api package? -->
 | 
			
		||||
        <module name="AtclauseOrder" />
 | 
			
		||||
        <module name="AtclauseOrder">
 | 
			
		||||
            <property name="tagOrder" value="@param, @return, @throws, @deprecated"/>
 | 
			
		||||
        </module>
 | 
			
		||||
        <module name="InvalidJavadocPosition" />
 | 
			
		||||
        <module name="JavadocBlockTagLocation" />
 | 
			
		||||
        <module name="JavadocMethod"/>
 | 
			
		||||
@@ -100,7 +109,9 @@
 | 
			
		||||
        <module name="LocalFinalVariableName" />
 | 
			
		||||
        <module name="LocalVariableName" />
 | 
			
		||||
        <module name="MemberName" />
 | 
			
		||||
        <module name="MethodName" />
 | 
			
		||||
        <module name="MethodName">
 | 
			
		||||
            <property name="format" value="^(computercraft\$)?[a-z][a-zA-Z0-9]*$" />
 | 
			
		||||
        </module>
 | 
			
		||||
        <module name="MethodTypeParameterName" />
 | 
			
		||||
        <module name="PackageName">
 | 
			
		||||
            <property name="format" value="^dan200\.computercraft(\.[a-z][a-z0-9]*)*" />
 | 
			
		||||
@@ -108,11 +119,6 @@
 | 
			
		||||
        <module name="ParameterName" />
 | 
			
		||||
        <module name="StaticVariableName">
 | 
			
		||||
            <property name="format" value="^[a-z][a-zA-Z0-9]*|CAPABILITY(_[A-Z_]+)?$" />
 | 
			
		||||
            <property name="applyToPrivate" value="false" />
 | 
			
		||||
        </module>
 | 
			
		||||
        <module name="StaticVariableName">
 | 
			
		||||
            <property name="format" value="^(s_)?[a-z][a-zA-Z0-9]*|CAPABILITY(_[A-Z_]+)?$" />
 | 
			
		||||
            <property name="applyToPrivate" value="true" />
 | 
			
		||||
        </module>
 | 
			
		||||
        <module name="TypeName" />
 | 
			
		||||
 | 
			
		||||
@@ -156,6 +162,7 @@
 | 
			
		||||
            <property name="allowEmptyLambdas" value="true" />
 | 
			
		||||
            <property name="allowEmptyMethods" 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" />
 | 
			
		||||
        </module>
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,6 @@ FROM gitpod/workspace-base
 | 
			
		||||
USER gitpod
 | 
			
		||||
 | 
			
		||||
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 update-java-alternatives --set java-1.8.0-openjdk-amd64
 | 
			
		||||
 && sudo update-java-alternatives --set java-1.16.0-openjdk-amd64
 | 
			
		||||
 
 | 
			
		||||
@@ -8,4 +8,4 @@ kotlin.jvm.target.validation.mode=error
 | 
			
		||||
modVersion=1.101.3
 | 
			
		||||
 | 
			
		||||
# Minecraft properties: We want to configure this here so we can read it in settings.gradle
 | 
			
		||||
mcVersion=1.16.5
 | 
			
		||||
mcVersion=1.18.2
 | 
			
		||||
 
 | 
			
		||||
@@ -2,9 +2,9 @@
 | 
			
		||||
 | 
			
		||||
# Minecraft
 | 
			
		||||
# MC version is specified in gradle.properties, as we need that in settings.gradle.
 | 
			
		||||
forge = "36.2.34"
 | 
			
		||||
parchment = "2021.08.08"
 | 
			
		||||
parchmentMc = "1.16.5"
 | 
			
		||||
forge = "40.1.0"
 | 
			
		||||
parchment = "2022.03.13"
 | 
			
		||||
parchmentMc = "1.18.2"
 | 
			
		||||
 | 
			
		||||
autoService = "1.0.1"
 | 
			
		||||
cobalt = "0.6.0"
 | 
			
		||||
@@ -19,7 +19,7 @@ junit = "5.9.1"
 | 
			
		||||
 | 
			
		||||
# Build tools
 | 
			
		||||
cctJavadoc = "1.5.2"
 | 
			
		||||
checkstyle = "8.25" # There's a reason we're pinned on an ancient version, but I can't remember what it is.
 | 
			
		||||
checkstyle = "10.3.4"
 | 
			
		||||
curseForgeGradle = "1.0.11"
 | 
			
		||||
forgeGradle = "5.1.+"
 | 
			
		||||
githubRelease = "2.2.12"
 | 
			
		||||
 
 | 
			
		||||
@@ -3,8 +3,8 @@
 | 
			
		||||
    {
 | 
			
		||||
      "when": {
 | 
			
		||||
        "OR": [
 | 
			
		||||
          {"east": "false", "north": "false", "south": "false", "cable": "true", "up": "true", "west": "false"},
 | 
			
		||||
          {"down": "true", "east": "false", "north": "false", "south": "false", "cable": "true", "west": "false"}
 | 
			
		||||
          {"up": "true", "north": "false", "west": "false", "south": "false", "east": "false", "cable": "true"},
 | 
			
		||||
          {"north": "false", "west": "false", "south": "false", "east": "false", "down": "true", "cable": "true"}
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "apply": {"model": "computercraft:block/cable_core_facing", "x": 90}
 | 
			
		||||
@@ -13,16 +13,16 @@
 | 
			
		||||
      "when": {
 | 
			
		||||
        "OR": [
 | 
			
		||||
          {
 | 
			
		||||
            "down": "false",
 | 
			
		||||
            "east": "false",
 | 
			
		||||
            "north": "false",
 | 
			
		||||
            "south": "false",
 | 
			
		||||
            "cable": "true",
 | 
			
		||||
            "up": "false",
 | 
			
		||||
            "west": "false"
 | 
			
		||||
            "north": "false",
 | 
			
		||||
            "west": "false",
 | 
			
		||||
            "south": "false",
 | 
			
		||||
            "east": "false",
 | 
			
		||||
            "down": "false",
 | 
			
		||||
            "cable": "true"
 | 
			
		||||
          },
 | 
			
		||||
          {"down": "false", "east": "false", "north": "true", "cable": "true", "up": "false", "west": "false"},
 | 
			
		||||
          {"down": "false", "east": "false", "south": "true", "cable": "true", "up": "false", "west": "false"}
 | 
			
		||||
          {"up": "false", "west": "false", "north": "true", "east": "false", "down": "false", "cable": "true"},
 | 
			
		||||
          {"up": "false", "west": "false", "south": "true", "east": "false", "down": "false", "cable": "true"}
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "apply": {"model": "computercraft:block/cable_core_facing", "y": 0}
 | 
			
		||||
@@ -30,8 +30,8 @@
 | 
			
		||||
    {
 | 
			
		||||
      "when": {
 | 
			
		||||
        "OR": [
 | 
			
		||||
          {"down": "false", "east": "true", "north": "false", "south": "false", "cable": "true", "up": "false"},
 | 
			
		||||
          {"down": "false", "north": "false", "south": "false", "cable": "true", "up": "false", "west": "true"}
 | 
			
		||||
          {"up": "false", "north": "false", "south": "false", "east": "true", "down": "false", "cable": "true"},
 | 
			
		||||
          {"up": "false", "north": "false", "west": "true", "south": "false", "down": "false", "cable": "true"}
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "apply": {"model": "computercraft:block/cable_core_facing", "y": 90}
 | 
			
		||||
@@ -39,18 +39,18 @@
 | 
			
		||||
    {
 | 
			
		||||
      "when": {
 | 
			
		||||
        "OR": [
 | 
			
		||||
          {"down": "true", "north": "true", "cable": "true"},
 | 
			
		||||
          {"down": "true", "south": "true", "cable": "true"},
 | 
			
		||||
          {"down": "true", "cable": "true", "west": "true"},
 | 
			
		||||
          {"down": "true", "east": "true", "cable": "true"},
 | 
			
		||||
          {"north": "true", "cable": "true", "up": "true"},
 | 
			
		||||
          {"south": "true", "cable": "true", "up": "true"},
 | 
			
		||||
          {"cable": "true", "up": "true", "west": "true"},
 | 
			
		||||
          {"east": "true", "cable": "true", "up": "true"},
 | 
			
		||||
          {"north": "true", "cable": "true", "west": "true"},
 | 
			
		||||
          {"east": "true", "north": "true", "cable": "true"},
 | 
			
		||||
          {"south": "true", "cable": "true", "west": "true"},
 | 
			
		||||
          {"east": "true", "south": "true", "cable": "true"}
 | 
			
		||||
          {"north": "true", "down": "true", "cable": "true"},
 | 
			
		||||
          {"south": "true", "down": "true", "cable": "true"},
 | 
			
		||||
          {"west": "true", "down": "true", "cable": "true"},
 | 
			
		||||
          {"east": "true", "down": "true", "cable": "true"},
 | 
			
		||||
          {"up": "true", "north": "true", "cable": "true"},
 | 
			
		||||
          {"up": "true", "south": "true", "cable": "true"},
 | 
			
		||||
          {"up": "true", "west": "true", "cable": "true"},
 | 
			
		||||
          {"up": "true", "east": "true", "cable": "true"},
 | 
			
		||||
          {"north": "true", "west": "true", "cable": "true"},
 | 
			
		||||
          {"north": "true", "east": "true", "cable": "true"},
 | 
			
		||||
          {"west": "true", "south": "true", "cable": "true"},
 | 
			
		||||
          {"south": "true", "east": "true", "cable": "true"}
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "apply": {"model": "computercraft:block/cable_core_any"}
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "minecraft:redstone"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "minecraft:redstone"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "item": "minecraft:gold_ingot"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "minecraft:gold_ingot"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:computer_normal"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:computer_normal"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "tag": "forge:ingots/gold"
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "minecraft:command_block"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "minecraft:command_block"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:disk_drive"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:disk_drive"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:disk_drive"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:disk_drive"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:disk_drive"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:disk_drive"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:disk_drive"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:disk_drive"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:disk_drive"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:disk_drive"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:disk_drive"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:disk_drive"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:disk_drive"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:disk_drive"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:disk_drive"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:disk_drive"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:disk_drive"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:disk_drive"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:disk_drive"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:disk_drive"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:disk_drive"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:disk_drive"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:disk_drive"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:disk_drive"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:disk_drive"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:disk_drive"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:disk_drive"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:disk_drive"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:disk_drive"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:disk_drive"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:disk_drive"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:disk_drive"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:pocket_computer_advanced"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:pocket_computer_advanced"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:speaker"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:speaker"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "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": {
 | 
			
		||||
        "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": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "minecraft:golden_apple"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "minecraft:golden_apple"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:pocket_computer_normal"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:pocket_computer_normal"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "tag": "forge:ingots/gold"
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "minecraft:golden_apple"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "minecraft:golden_apple"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:pocket_computer_normal"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:pocket_computer_normal"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:speaker"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:speaker"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "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": {
 | 
			
		||||
        "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": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:printer"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:printer"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:printer"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:printer"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:computer_normal"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:computer_normal"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:turtle_advanced"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:turtle_advanced"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:speaker"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:speaker"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:turtle_advanced"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:turtle_advanced"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:wireless_modem_advanced"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:wireless_modem_advanced"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:turtle_advanced"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:turtle_advanced"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:wireless_modem_normal"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:wireless_modem_normal"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:turtle_advanced"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:turtle_advanced"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "item": "minecraft:crafting_table"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "minecraft:crafting_table"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:turtle_advanced"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:turtle_advanced"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "item": "minecraft:diamond_axe"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "minecraft:diamond_axe"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:turtle_advanced"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:turtle_advanced"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "item": "minecraft:diamond_hoe"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "minecraft:diamond_hoe"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:turtle_advanced"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:turtle_advanced"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "item": "minecraft:diamond_pickaxe"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "minecraft:diamond_pickaxe"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:turtle_advanced"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:turtle_advanced"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "item": "minecraft:diamond_shovel"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "minecraft:diamond_shovel"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:turtle_advanced"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:turtle_advanced"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "item": "minecraft:diamond_sword"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "minecraft:diamond_sword"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:turtle_normal"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:turtle_normal"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "tag": "forge:ingots/gold"
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:computer_normal"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:computer_normal"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:turtle_normal"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:turtle_normal"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:speaker"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:speaker"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:turtle_normal"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:turtle_normal"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:wireless_modem_advanced"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:wireless_modem_advanced"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:turtle_normal"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:turtle_normal"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:wireless_modem_normal"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:wireless_modem_normal"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:turtle_normal"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:turtle_normal"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "item": "minecraft:crafting_table"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "minecraft:crafting_table"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:turtle_normal"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:turtle_normal"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "item": "minecraft:diamond_axe"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "minecraft:diamond_axe"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:turtle_normal"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:turtle_normal"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "item": "minecraft:diamond_hoe"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "minecraft:diamond_hoe"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:turtle_normal"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:turtle_normal"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "item": "minecraft:diamond_pickaxe"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "minecraft:diamond_pickaxe"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:turtle_normal"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:turtle_normal"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "item": "minecraft:diamond_shovel"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "minecraft:diamond_shovel"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,14 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:turtle_normal"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:turtle_normal"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "item": "minecraft:diamond_sword"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "minecraft:diamond_sword"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:cable"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:cable"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:wireless_modem_normal"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:wireless_modem_normal"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "item": "computercraft:monitor_normal"
 | 
			
		||||
            "items": [
 | 
			
		||||
              "computercraft:monitor_normal"
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,9 @@
 | 
			
		||||
      "conditions": {
 | 
			
		||||
        "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"
 | 
			
		||||
}
 | 
			
		||||
@@ -2,7 +2,8 @@
 | 
			
		||||
  "type": "minecraft:block",
 | 
			
		||||
  "pools": [
 | 
			
		||||
    {
 | 
			
		||||
      "rolls": 1,
 | 
			
		||||
      "rolls": 1.0,
 | 
			
		||||
      "bonus_rolls": 0.0,
 | 
			
		||||
      "entries": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "minecraft:item",
 | 
			
		||||
@@ -23,7 +24,8 @@
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "rolls": 1,
 | 
			
		||||
      "rolls": 1.0,
 | 
			
		||||
      "bonus_rolls": 0.0,
 | 
			
		||||
      "entries": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "minecraft:item",
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,8 @@
 | 
			
		||||
  "type": "minecraft:block",
 | 
			
		||||
  "pools": [
 | 
			
		||||
    {
 | 
			
		||||
      "rolls": 1,
 | 
			
		||||
      "rolls": 1.0,
 | 
			
		||||
      "bonus_rolls": 0.0,
 | 
			
		||||
      "entries": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "minecraft:dynamic",
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,8 @@
 | 
			
		||||
  "type": "minecraft:block",
 | 
			
		||||
  "pools": [
 | 
			
		||||
    {
 | 
			
		||||
      "rolls": 1,
 | 
			
		||||
      "rolls": 1.0,
 | 
			
		||||
      "bonus_rolls": 0.0,
 | 
			
		||||
      "entries": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "minecraft:dynamic",
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,8 @@
 | 
			
		||||
  "type": "minecraft:block",
 | 
			
		||||
  "pools": [
 | 
			
		||||
    {
 | 
			
		||||
      "rolls": 1,
 | 
			
		||||
      "rolls": 1.0,
 | 
			
		||||
      "bonus_rolls": 0.0,
 | 
			
		||||
      "entries": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "minecraft:dynamic",
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,8 @@
 | 
			
		||||
  "type": "minecraft:block",
 | 
			
		||||
  "pools": [
 | 
			
		||||
    {
 | 
			
		||||
      "rolls": 1,
 | 
			
		||||
      "rolls": 1.0,
 | 
			
		||||
      "bonus_rolls": 0.0,
 | 
			
		||||
      "entries": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "minecraft:item",
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,8 @@
 | 
			
		||||
  "type": "minecraft:block",
 | 
			
		||||
  "pools": [
 | 
			
		||||
    {
 | 
			
		||||
      "rolls": 1,
 | 
			
		||||
      "rolls": 1.0,
 | 
			
		||||
      "bonus_rolls": 0.0,
 | 
			
		||||
      "entries": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "minecraft:item",
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,8 @@
 | 
			
		||||
  "type": "minecraft:block",
 | 
			
		||||
  "pools": [
 | 
			
		||||
    {
 | 
			
		||||
      "rolls": 1,
 | 
			
		||||
      "rolls": 1.0,
 | 
			
		||||
      "bonus_rolls": 0.0,
 | 
			
		||||
      "entries": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "minecraft:item",
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,8 @@
 | 
			
		||||
  "type": "minecraft:block",
 | 
			
		||||
  "pools": [
 | 
			
		||||
    {
 | 
			
		||||
      "rolls": 1,
 | 
			
		||||
      "rolls": 1.0,
 | 
			
		||||
      "bonus_rolls": 0.0,
 | 
			
		||||
      "entries": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "minecraft:item",
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,8 @@
 | 
			
		||||
  "type": "minecraft:block",
 | 
			
		||||
  "pools": [
 | 
			
		||||
    {
 | 
			
		||||
      "rolls": 1,
 | 
			
		||||
      "rolls": 1.0,
 | 
			
		||||
      "bonus_rolls": 0.0,
 | 
			
		||||
      "entries": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "minecraft:item",
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,8 @@
 | 
			
		||||
  "type": "minecraft:block",
 | 
			
		||||
  "pools": [
 | 
			
		||||
    {
 | 
			
		||||
      "rolls": 1,
 | 
			
		||||
      "rolls": 1.0,
 | 
			
		||||
      "bonus_rolls": 0.0,
 | 
			
		||||
      "entries": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "minecraft:dynamic",
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,8 @@
 | 
			
		||||
  "type": "minecraft:block",
 | 
			
		||||
  "pools": [
 | 
			
		||||
    {
 | 
			
		||||
      "rolls": 1,
 | 
			
		||||
      "rolls": 1.0,
 | 
			
		||||
      "bonus_rolls": 0.0,
 | 
			
		||||
      "entries": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "minecraft:dynamic",
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,8 @@
 | 
			
		||||
  "type": "minecraft:block",
 | 
			
		||||
  "pools": [
 | 
			
		||||
    {
 | 
			
		||||
      "rolls": 1,
 | 
			
		||||
      "rolls": 1.0,
 | 
			
		||||
      "bonus_rolls": 0.0,
 | 
			
		||||
      "entries": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "minecraft:item",
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,8 @@
 | 
			
		||||
  "type": "minecraft:block",
 | 
			
		||||
  "pools": [
 | 
			
		||||
    {
 | 
			
		||||
      "rolls": 1,
 | 
			
		||||
      "rolls": 1.0,
 | 
			
		||||
      "bonus_rolls": 0.0,
 | 
			
		||||
      "entries": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "minecraft:item",
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,8 @@
 | 
			
		||||
  "type": "minecraft:block",
 | 
			
		||||
  "pools": [
 | 
			
		||||
    {
 | 
			
		||||
      "rolls": 1,
 | 
			
		||||
      "rolls": 1.0,
 | 
			
		||||
      "bonus_rolls": 0.0,
 | 
			
		||||
      "entries": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "minecraft:item",
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,7 @@
 | 
			
		||||
  "replace": false,
 | 
			
		||||
  "values": [
 | 
			
		||||
    "#minecraft:crops",
 | 
			
		||||
    "#minecraft:mineable/hoe",
 | 
			
		||||
    "minecraft:cactus",
 | 
			
		||||
    "minecraft:melon",
 | 
			
		||||
    "minecraft:pumpkin",
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
{
 | 
			
		||||
  "replace": false,
 | 
			
		||||
  "values": [
 | 
			
		||||
    "#minecraft:mineable/shovel",
 | 
			
		||||
    "minecraft:melon",
 | 
			
		||||
    "minecraft: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"
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
@@ -5,20 +5,17 @@
 | 
			
		||||
 */
 | 
			
		||||
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.AddressRule;
 | 
			
		||||
import dan200.computercraft.shared.Config;
 | 
			
		||||
import dan200.computercraft.shared.Registry;
 | 
			
		||||
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 org.apache.logging.log4j.LogManager;
 | 
			
		||||
import org.apache.logging.log4j.Logger;
 | 
			
		||||
import org.slf4j.Logger;
 | 
			
		||||
import org.slf4j.LoggerFactory;
 | 
			
		||||
 | 
			
		||||
import java.util.*;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.OptionalInt;
 | 
			
		||||
import java.util.concurrent.TimeUnit;
 | 
			
		||||
 | 
			
		||||
@Mod( ComputerCraft.MOD_ID )
 | 
			
		||||
@@ -40,10 +37,10 @@ public final class ComputerCraft
 | 
			
		||||
 | 
			
		||||
    public static boolean httpEnabled = 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", OptionalInt.empty(), Action.DENY.toPartial() ),
 | 
			
		||||
        AddressRule.parse( "*", OptionalInt.empty(), Action.ALLOW.toPartial() )
 | 
			
		||||
    ) );
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    public static int httpMaxRequests = 16;
 | 
			
		||||
    public static int httpMaxWebsockets = 4;
 | 
			
		||||
@@ -57,7 +54,7 @@ public final class ComputerCraft
 | 
			
		||||
    public static int modemHighAltitudeRangeDuringStorm = 384;
 | 
			
		||||
    public static int maxNotesPerTick = 8;
 | 
			
		||||
    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 boolean turtlesNeedFuel = true;
 | 
			
		||||
@@ -65,7 +62,6 @@ public final class ComputerCraft
 | 
			
		||||
    public static int advancedTurtleFuelLimit = 100000;
 | 
			
		||||
    public static boolean turtlesObeyBlockProtection = true;
 | 
			
		||||
    public static boolean turtlesCanPush = true;
 | 
			
		||||
    public static EnumSet<TurtleAction> turtleDisabledActions = EnumSet.noneOf( TurtleAction.class );
 | 
			
		||||
 | 
			
		||||
    public static int computerTermWidth = 51;
 | 
			
		||||
    public static int computerTermHeight = 19;
 | 
			
		||||
@@ -81,28 +77,7 @@ public final class ComputerCraft
 | 
			
		||||
 | 
			
		||||
    public static int uploadNagDelay = 5;
 | 
			
		||||
 | 
			
		||||
    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;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static final Logger log = LogManager.getLogger( MOD_ID );
 | 
			
		||||
    public static final Logger log = LoggerFactory.getLogger( MOD_ID );
 | 
			
		||||
 | 
			
		||||
    public ComputerCraft()
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -18,16 +18,16 @@ import dan200.computercraft.api.network.IPacketNetwork;
 | 
			
		||||
import dan200.computercraft.api.network.wired.IWiredElement;
 | 
			
		||||
import dan200.computercraft.api.network.wired.IWiredNode;
 | 
			
		||||
import dan200.computercraft.api.peripheral.IPeripheralProvider;
 | 
			
		||||
import dan200.computercraft.api.pocket.IPocketUpgrade;
 | 
			
		||||
import dan200.computercraft.api.redstone.IBundledRedstoneProvider;
 | 
			
		||||
import dan200.computercraft.api.turtle.ITurtleUpgrade;
 | 
			
		||||
import dan200.computercraft.core.apis.ApiFactories;
 | 
			
		||||
import dan200.computercraft.core.asm.GenericMethod;
 | 
			
		||||
import dan200.computercraft.core.filesystem.FileMount;
 | 
			
		||||
import dan200.computercraft.core.filesystem.ResourceMount;
 | 
			
		||||
import dan200.computercraft.shared.computer.core.ResourceMount;
 | 
			
		||||
import dan200.computercraft.impl.ComputerCraftAPIService;
 | 
			
		||||
import dan200.computercraft.impl.detail.DetailRegistryImpl;
 | 
			
		||||
import dan200.computercraft.shared.*;
 | 
			
		||||
import dan200.computercraft.shared.BundledRedstone;
 | 
			
		||||
import dan200.computercraft.shared.MediaProviders;
 | 
			
		||||
import dan200.computercraft.shared.Peripherals;
 | 
			
		||||
import dan200.computercraft.shared.computer.core.ServerContext;
 | 
			
		||||
import dan200.computercraft.shared.peripheral.generic.GenericPeripheralProvider;
 | 
			
		||||
import dan200.computercraft.shared.peripheral.generic.data.BlockData;
 | 
			
		||||
@@ -35,20 +35,20 @@ import dan200.computercraft.shared.peripheral.generic.data.FluidData;
 | 
			
		||||
import dan200.computercraft.shared.peripheral.generic.data.ItemData;
 | 
			
		||||
import dan200.computercraft.shared.peripheral.modem.wireless.WirelessNetwork;
 | 
			
		||||
import dan200.computercraft.shared.wired.WiredNode;
 | 
			
		||||
import net.minecraft.item.ItemStack;
 | 
			
		||||
import net.minecraft.resources.IResourceManager;
 | 
			
		||||
import net.minecraft.core.BlockPos;
 | 
			
		||||
import net.minecraft.core.Direction;
 | 
			
		||||
import net.minecraft.resources.ResourceLocation;
 | 
			
		||||
import net.minecraft.server.MinecraftServer;
 | 
			
		||||
import net.minecraft.tileentity.TileEntity;
 | 
			
		||||
import net.minecraft.util.Direction;
 | 
			
		||||
import net.minecraft.util.ResourceLocation;
 | 
			
		||||
import net.minecraft.util.math.BlockPos;
 | 
			
		||||
import net.minecraft.world.IBlockReader;
 | 
			
		||||
import net.minecraft.world.World;
 | 
			
		||||
import net.minecraft.server.packs.resources.ResourceManager;
 | 
			
		||||
import net.minecraft.world.item.ItemStack;
 | 
			
		||||
import net.minecraft.world.level.BlockGetter;
 | 
			
		||||
import net.minecraft.world.level.Level;
 | 
			
		||||
import net.minecraft.world.level.block.entity.BlockEntity;
 | 
			
		||||
import net.minecraftforge.common.capabilities.Capability;
 | 
			
		||||
import net.minecraftforge.common.util.LazyOptional;
 | 
			
		||||
import net.minecraftforge.fluids.FluidStack;
 | 
			
		||||
import net.minecraftforge.fml.ModList;
 | 
			
		||||
import net.minecraftforge.fml.server.ServerLifecycleHooks;
 | 
			
		||||
import net.minecraftforge.server.ServerLifecycleHooks;
 | 
			
		||||
 | 
			
		||||
import javax.annotation.Nonnull;
 | 
			
		||||
import java.io.File;
 | 
			
		||||
@@ -68,7 +68,7 @@ public final class ComputerCraftAPIImpl implements ComputerCraftAPIService
 | 
			
		||||
 | 
			
		||||
    public static InputStream getResourceFile( MinecraftServer server, String domain, String subPath )
 | 
			
		||||
    {
 | 
			
		||||
        IResourceManager manager = server.getDataPackRegistries().getResourceManager();
 | 
			
		||||
        ResourceManager manager = server.getResourceManager();
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
            return manager.getResource( new ResourceLocation( domain, subPath ) ).getInputStream();
 | 
			
		||||
@@ -90,13 +90,13 @@ public final class ComputerCraftAPIImpl implements ComputerCraftAPIService
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public int createUniqueNumberedSaveDir( @Nonnull World world, @Nonnull String parentSubPath )
 | 
			
		||||
    public int createUniqueNumberedSaveDir( @Nonnull Level world, @Nonnull String parentSubPath )
 | 
			
		||||
    {
 | 
			
		||||
        return ServerContext.get( world.getServer() ).getNextId( parentSubPath );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public IWritableMount createSaveDirMount( @Nonnull World world, @Nonnull String subPath, long capacity )
 | 
			
		||||
    public IWritableMount createSaveDirMount( @Nonnull Level world, @Nonnull String subPath, long capacity )
 | 
			
		||||
    {
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
@@ -111,7 +111,7 @@ public final class ComputerCraftAPIImpl implements ComputerCraftAPIService
 | 
			
		||||
    @Override
 | 
			
		||||
    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 );
 | 
			
		||||
        return mount.exists( "" ) ? mount : null;
 | 
			
		||||
    }
 | 
			
		||||
@@ -134,12 +134,6 @@ public final class ComputerCraftAPIImpl implements ComputerCraftAPIService
 | 
			
		||||
        GenericPeripheralProvider.addCapability( capability );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void registerTurtleUpgrade( @Nonnull ITurtleUpgrade upgrade )
 | 
			
		||||
    {
 | 
			
		||||
        TurtleUpgrades.register( upgrade );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void registerBundledRedstoneProvider( @Nonnull IBundledRedstoneProvider provider )
 | 
			
		||||
    {
 | 
			
		||||
@@ -147,7 +141,7 @@ public final class ComputerCraftAPIImpl implements ComputerCraftAPIService
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @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 );
 | 
			
		||||
    }
 | 
			
		||||
@@ -158,12 +152,6 @@ public final class ComputerCraftAPIImpl implements ComputerCraftAPIService
 | 
			
		||||
        MediaProviders.register( provider );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void registerPocketUpgrade( @Nonnull IPocketUpgrade upgrade )
 | 
			
		||||
    {
 | 
			
		||||
        PocketUpgrades.register( upgrade );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Nonnull
 | 
			
		||||
    @Override
 | 
			
		||||
    public IPacketNetwork getWirelessNetwork()
 | 
			
		||||
@@ -209,9 +197,9 @@ public final class ComputerCraftAPIImpl implements ComputerCraftAPIService
 | 
			
		||||
 | 
			
		||||
    @Nonnull
 | 
			
		||||
    @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 );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -20,15 +20,13 @@ import dan200.computercraft.api.network.wired.IWiredNode;
 | 
			
		||||
import dan200.computercraft.api.peripheral.IComputerAccess;
 | 
			
		||||
import dan200.computercraft.api.peripheral.IPeripheral;
 | 
			
		||||
import dan200.computercraft.api.peripheral.IPeripheralProvider;
 | 
			
		||||
import dan200.computercraft.api.pocket.IPocketUpgrade;
 | 
			
		||||
import dan200.computercraft.api.redstone.IBundledRedstoneProvider;
 | 
			
		||||
import dan200.computercraft.api.turtle.ITurtleUpgrade;
 | 
			
		||||
import dan200.computercraft.impl.ComputerCraftAPIService;
 | 
			
		||||
import net.minecraft.item.ItemStack;
 | 
			
		||||
import net.minecraft.util.Direction;
 | 
			
		||||
import net.minecraft.util.math.BlockPos;
 | 
			
		||||
import net.minecraft.world.IBlockReader;
 | 
			
		||||
import net.minecraft.world.World;
 | 
			
		||||
import net.minecraft.core.BlockPos;
 | 
			
		||||
import net.minecraft.core.Direction;
 | 
			
		||||
import net.minecraft.world.item.ItemStack;
 | 
			
		||||
import net.minecraft.world.level.BlockGetter;
 | 
			
		||||
import net.minecraft.world.level.Level;
 | 
			
		||||
import net.minecraftforge.common.capabilities.Capability;
 | 
			
		||||
import net.minecraftforge.common.util.LazyOptional;
 | 
			
		||||
import net.minecraftforge.fluids.FluidStack;
 | 
			
		||||
@@ -44,19 +42,14 @@ import javax.annotation.Nullable;
 | 
			
		||||
 */
 | 
			
		||||
public final class ComputerCraftAPI
 | 
			
		||||
{
 | 
			
		||||
    public static final String MOD_ID = "computercraft";
 | 
			
		||||
 | 
			
		||||
    @Nonnull
 | 
			
		||||
    public static String 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.
 | 
			
		||||
     * <p>
 | 
			
		||||
@@ -68,9 +61,9 @@ public final class ComputerCraftAPI
 | 
			
		||||
     * <p>
 | 
			
		||||
     * eg: if createUniqueNumberedSaveDir( world, "computer/disk" ) was called returns 42, then "computer/disk/42" is now
 | 
			
		||||
     * 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 );
 | 
			
		||||
    }
 | 
			
		||||
@@ -87,14 +80,14 @@ public final class ComputerCraftAPI
 | 
			
		||||
     * @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()
 | 
			
		||||
     * to mount this on a Computers' file system.
 | 
			
		||||
     * @see #createUniqueNumberedSaveDir(World, String)
 | 
			
		||||
     * @see #createUniqueNumberedSaveDir(Level, String)
 | 
			
		||||
     * @see IComputerAccess#mount(String, IMount)
 | 
			
		||||
     * @see IComputerAccess#mountWritable(String, IWritableMount)
 | 
			
		||||
     * @see IMount
 | 
			
		||||
     * @see IWritableMount
 | 
			
		||||
     */
 | 
			
		||||
    @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 );
 | 
			
		||||
    }
 | 
			
		||||
@@ -157,19 +150,6 @@ public final class ComputerCraftAPI
 | 
			
		||||
        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.
 | 
			
		||||
     *
 | 
			
		||||
@@ -191,7 +171,7 @@ public final class ComputerCraftAPI
 | 
			
		||||
     * If there is no block capable of emitting bundled redstone at the location, -1 will be returned.
 | 
			
		||||
     * @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 );
 | 
			
		||||
    }
 | 
			
		||||
@@ -207,11 +187,6 @@ public final class ComputerCraftAPI
 | 
			
		||||
        getInstance().registerMediaProvider( provider );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static void registerPocketUpgrade( @Nonnull IPocketUpgrade upgrade )
 | 
			
		||||
    {
 | 
			
		||||
        getInstance().registerPocketUpgrade( upgrade );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Attempt to get the game-wide wireless network.
 | 
			
		||||
     *
 | 
			
		||||
@@ -266,7 +241,7 @@ public final class ComputerCraftAPI
 | 
			
		||||
     * @see IWiredElement#getNode()
 | 
			
		||||
     */
 | 
			
		||||
    @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 );
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -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.TagKey;
 | 
			
		||||
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 TagKey<Item> COMPUTER = make( "computer" );
 | 
			
		||||
        public static final TagKey<Item> TURTLE = make( "turtle" );
 | 
			
		||||
        public static final TagKey<Item> WIRED_MODEM = make( "wired_modem" );
 | 
			
		||||
        public static final TagKey<Item> MONITOR = make( "monitor" );
 | 
			
		||||
 | 
			
		||||
        private static TagKey<Item> make( String name )
 | 
			
		||||
        {
 | 
			
		||||
            return ItemTags.create( new ResourceLocation( ComputerCraft.MOD_ID, name ) );
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static class Blocks
 | 
			
		||||
    {
 | 
			
		||||
        public static final TagKey<Block> COMPUTER = make( "computer" );
 | 
			
		||||
        public static final TagKey<Block> TURTLE = make( "turtle" );
 | 
			
		||||
        public static final TagKey<Block> WIRED_MODEM = make( "wired_modem" );
 | 
			
		||||
        public static final TagKey<Block> MONITOR = make( "monitor" );
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * Blocks which can be broken by any turtle tool.
 | 
			
		||||
         */
 | 
			
		||||
        public static final TagKey<Block> TURTLE_ALWAYS_BREAKABLE = make( "turtle_always_breakable" );
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * Blocks which can be broken by the default shovel tool.
 | 
			
		||||
         */
 | 
			
		||||
        public static final TagKey<Block> TURTLE_SHOVEL_BREAKABLE = make( "turtle_shovel_harvestable" );
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * Blocks which can be broken with the default sword tool.
 | 
			
		||||
         */
 | 
			
		||||
        public static final TagKey<Block> TURTLE_SWORD_BREAKABLE = make( "turtle_sword_harvestable" );
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * Blocks which can be broken with the default hoe tool.
 | 
			
		||||
         */
 | 
			
		||||
        public static final TagKey<Block> TURTLE_HOE_BREAKABLE = make( "turtle_hoe_harvestable" );
 | 
			
		||||
 | 
			
		||||
        private static TagKey<Block> make( String name )
 | 
			
		||||
        {
 | 
			
		||||
            return BlockTags.create( new ResourceLocation( ComputerCraft.MOD_ID, name ) );
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -5,13 +5,13 @@
 | 
			
		||||
 */
 | 
			
		||||
package dan200.computercraft.api.client;
 | 
			
		||||
 | 
			
		||||
import com.mojang.math.Transformation;
 | 
			
		||||
import net.minecraft.client.Minecraft;
 | 
			
		||||
import net.minecraft.client.renderer.model.IBakedModel;
 | 
			
		||||
import net.minecraft.client.renderer.model.ModelManager;
 | 
			
		||||
import net.minecraft.client.renderer.model.ModelResourceLocation;
 | 
			
		||||
import net.minecraft.item.ItemStack;
 | 
			
		||||
import net.minecraft.util.ResourceLocation;
 | 
			
		||||
import net.minecraft.util.math.vector.TransformationMatrix;
 | 
			
		||||
import net.minecraft.client.resources.model.BakedModel;
 | 
			
		||||
import net.minecraft.client.resources.model.ModelManager;
 | 
			
		||||
import net.minecraft.client.resources.model.ModelResourceLocation;
 | 
			
		||||
import net.minecraft.resources.ResourceLocation;
 | 
			
		||||
import net.minecraft.world.item.ItemStack;
 | 
			
		||||
 | 
			
		||||
import javax.annotation.Nonnull;
 | 
			
		||||
import java.util.Objects;
 | 
			
		||||
@@ -21,19 +21,19 @@ import java.util.Objects;
 | 
			
		||||
 */
 | 
			
		||||
public final class TransformedModel
 | 
			
		||||
{
 | 
			
		||||
    private final IBakedModel model;
 | 
			
		||||
    private final TransformationMatrix matrix;
 | 
			
		||||
    private final BakedModel model;
 | 
			
		||||
    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.matrix = Objects.requireNonNull( matrix );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public TransformedModel( @Nonnull IBakedModel model )
 | 
			
		||||
    public TransformedModel( @Nonnull BakedModel model )
 | 
			
		||||
    {
 | 
			
		||||
        this.model = Objects.requireNonNull( model );
 | 
			
		||||
        matrix = TransformationMatrix.identity();
 | 
			
		||||
        matrix = Transformation.identity();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static TransformedModel of( @Nonnull ModelResourceLocation location )
 | 
			
		||||
@@ -48,20 +48,20 @@ public final class TransformedModel
 | 
			
		||||
        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 );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Nonnull
 | 
			
		||||
    public IBakedModel getModel()
 | 
			
		||||
    public BakedModel getModel()
 | 
			
		||||
    {
 | 
			
		||||
        return model;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Nonnull
 | 
			
		||||
    public TransformationMatrix getMatrix()
 | 
			
		||||
    public Transformation getMatrix()
 | 
			
		||||
    {
 | 
			
		||||
        return matrix;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -5,8 +5,8 @@
 | 
			
		||||
 */
 | 
			
		||||
package dan200.computercraft.api.detail;
 | 
			
		||||
 | 
			
		||||
import net.minecraft.item.Item;
 | 
			
		||||
import net.minecraft.item.ItemStack;
 | 
			
		||||
import net.minecraft.world.item.Item;
 | 
			
		||||
import net.minecraft.world.item.ItemStack;
 | 
			
		||||
 | 
			
		||||
import javax.annotation.Nonnull;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
 
 | 
			
		||||
@@ -5,61 +5,31 @@
 | 
			
		||||
 */
 | 
			
		||||
package dan200.computercraft.api.detail;
 | 
			
		||||
 | 
			
		||||
import net.minecraft.block.BlockState;
 | 
			
		||||
import net.minecraft.tileentity.TileEntity;
 | 
			
		||||
import net.minecraft.util.math.BlockPos;
 | 
			
		||||
import net.minecraft.world.World;
 | 
			
		||||
import net.minecraft.core.BlockPos;
 | 
			
		||||
import net.minecraft.world.level.Level;
 | 
			
		||||
import net.minecraft.world.level.block.entity.BlockEntity;
 | 
			
		||||
import net.minecraft.world.level.block.state.BlockState;
 | 
			
		||||
 | 
			
		||||
import javax.annotation.Nonnull;
 | 
			
		||||
import javax.annotation.Nullable;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * A reference to a block in the world, used by block detail providers.
 | 
			
		||||
 *
 | 
			
		||||
 * @param level       The level the block exists in.
 | 
			
		||||
 * @param pos         The position of the block.
 | 
			
		||||
 * @param state       The block state at this position.
 | 
			
		||||
 * @param blockEntity The block entity at this position, if it exists.
 | 
			
		||||
 */
 | 
			
		||||
public class BlockReference
 | 
			
		||||
public record BlockReference(
 | 
			
		||||
    @Nonnull Level level,
 | 
			
		||||
    @Nonnull BlockPos pos,
 | 
			
		||||
    @Nonnull BlockState state,
 | 
			
		||||
    @Nullable BlockEntity blockEntity
 | 
			
		||||
)
 | 
			
		||||
{
 | 
			
		||||
    private final World world;
 | 
			
		||||
    private final BlockPos pos;
 | 
			
		||||
    private final BlockState state;
 | 
			
		||||
    private final TileEntity blockEntity;
 | 
			
		||||
 | 
			
		||||
    public BlockReference( World world, BlockPos pos )
 | 
			
		||||
    public BlockReference( Level level, BlockPos pos )
 | 
			
		||||
    {
 | 
			
		||||
        this.world = world;
 | 
			
		||||
        this.pos = pos;
 | 
			
		||||
        this.state = world.getBlockState( pos );
 | 
			
		||||
        this.blockEntity = world.getBlockEntity( pos );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public BlockReference( World world, BlockPos pos, BlockState state, TileEntity blockEntity )
 | 
			
		||||
    {
 | 
			
		||||
        this.world = world;
 | 
			
		||||
        this.pos = pos;
 | 
			
		||||
        this.state = state;
 | 
			
		||||
        this.blockEntity = blockEntity;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Nonnull
 | 
			
		||||
    public World getWorld()
 | 
			
		||||
    {
 | 
			
		||||
        return world;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Nonnull
 | 
			
		||||
    public BlockPos getPos()
 | 
			
		||||
    {
 | 
			
		||||
        return pos;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Nonnull
 | 
			
		||||
    public BlockState getState()
 | 
			
		||||
    {
 | 
			
		||||
        return state;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Nullable
 | 
			
		||||
    public TileEntity getBlockEntity()
 | 
			
		||||
    {
 | 
			
		||||
        return blockEntity;
 | 
			
		||||
        this( level, pos, level.getBlockState( pos ), level.getBlockEntity( pos ) );
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user