mirror of
				https://github.com/SquidDev-CC/CC-Tweaked
				synced 2025-11-04 07:32:59 +00:00 
			
		
		
		
	Compare commits
	
		
			152 Commits
		
	
	
		
			v1.15.2-1.
			...
			v1.16.4-1.
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					23bf33c454 | ||
| 
						 | 
					0be030c497 | ||
| 
						 | 
					ee27d8f081 | ||
| 
						 | 
					a3a9684505 | ||
| 
						 | 
					1381325813 | ||
| 
						 | 
					52b112fae6 | ||
| 
						 | 
					c83eeb16a8 | ||
| 
						 | 
					9d1ee6f61d | ||
| 
						 | 
					b90611b4b4 | ||
| 
						 | 
					e1e7ef59c6 | ||
| 
						 | 
					9ae0f4a993 | ||
| 
						 | 
					fd262a7995 | ||
| 
						 | 
					58054ad2d1 | ||
| 
						 | 
					1255bd00fd | ||
| 
						 | 
					1f84480a80 | ||
| 
						 | 
					b838efedd2 | ||
| 
						 | 
					f78e24f9a0 | ||
| 
						 | 
					88f5b20353 | ||
| 
						 | 
					331031be45 | ||
| 
						 | 
					c5694ea966 | ||
| 
						 | 
					34b5ede326 | ||
| 
						 | 
					7b476cb24b | ||
| 
						 | 
					7ca261d763 | ||
| 
						 | 
					c864576619 | ||
| 
						 | 
					247c05305d | ||
| 
						 | 
					2232f025b8 | ||
| 
						 | 
					b2e5401486 | ||
| 
						 | 
					41226371f3 | ||
| 
						 | 
					1edb7288b9 | ||
| 
						 | 
					cc5e972cfc | ||
| 
						 | 
					92be0126df | ||
| 
						 | 
					dd6f97622e | ||
| 
						 | 
					2c9f51db89 | ||
| 
						 | 
					72340defe4 | ||
| 
						 | 
					542b66c79a | ||
| 
						 | 
					e4b0a5b3ce | ||
| 
						 | 
					f7e3e72a6e | ||
| 
						 | 
					8b17ec76a8 | ||
| 
						 | 
					b8d5a89446 | ||
| 
						 | 
					4af5bcc0b0 | ||
| 
						 | 
					96c577482d | ||
| 
						 | 
					7f9a707f75 | ||
| 
						 | 
					ed3913c1f4 | ||
| 
						 | 
					16d74dd2e8 | ||
| 
						 | 
					24bb92007a | ||
| 
						 | 
					2f0cae0bc1 | ||
| 
						 | 
					e3a672099c | ||
| 
						 | 
					abf425dfb5 | ||
| 
						 | 
					663859d2e5 | ||
| 
						 | 
					f5eb6ce03e | ||
| 
						 | 
					4ae370b9db | ||
| 
						 | 
					b97e950d86 | ||
| 
						 | 
					5865e9c41a | ||
| 
						 | 
					85cf2d5ff1 | ||
| 
						 | 
					61f8e97f6b | ||
| 
						 | 
					c92f06cfd9 | ||
| 
						 | 
					05c3c8ad32 | ||
| 
						 | 
					bb8f4c624b | ||
| 
						 | 
					ea3a160367 | ||
| 
						 | 
					737b3cb576 | ||
| 
						 | 
					d83a68f3ff | ||
| 
						 | 
					24d3777722 | ||
| 
						 | 
					826797cbd5 | ||
| 
						 | 
					511eea39a1 | ||
| 
						 | 
					24af36743d | ||
| 
						 | 
					e2761bb315 | ||
| 
						 | 
					6734a0e112 | ||
| 
						 | 
					d4199064ae | ||
| 
						 | 
					04f9644ae7 | ||
| 
						 | 
					486f41f082 | ||
| 
						 | 
					fff8353451 | ||
| 
						 | 
					9a749642d2 | ||
| 
						 | 
					c35707725f | ||
| 
						 | 
					b0651082f4 | ||
| 
						 | 
					aab0cd34cd | ||
| 
						 | 
					d2a1a00dc4 | ||
| 
						 | 
					f194f4fa3a | ||
| 
						 | 
					c9f3d315c0 | ||
| 
						 | 
					7f90f2f7ca | ||
| 
						 | 
					9f57e77ed3 | ||
| 
						 | 
					ab39cb849d | ||
| 
						 | 
					a4c9e89370 | ||
| 
						 | 
					c8aeddedd4 | ||
| 
						 | 
					83df64e520 | ||
| 
						 | 
					74ac5bb3d1 | ||
| 
						 | 
					d13bd2cce8 | ||
| 
						 | 
					ab232bd689 | ||
| 
						 | 
					cc96e41d3e | ||
| 
						 | 
					741adfa7bb | ||
| 
						 | 
					666e83cf4f | ||
| 
						 | 
					e2a635b6e5 | ||
| 
						 | 
					c58441b29c | ||
| 
						 | 
					a6fcfb6af2 | ||
| 
						 | 
					17a9329207 | ||
| 
						 | 
					f6160bdc57 | ||
| 
						 | 
					6aae4e5766 | ||
| 
						 | 
					84a6bb1cf3 | ||
| 
						 | 
					c334423d42 | ||
| 
						 | 
					113b560a20 | ||
| 
						 | 
					5bf367af9f | ||
| 
						 | 
					61fb4caaad | ||
| 
						 | 
					6734af6e4a | ||
| 
						 | 
					bf6053906d | ||
| 
						 | 
					4766833cf2 | ||
| 
						 | 
					01d81cb91d | ||
| 
						 | 
					93068402a2 | ||
| 
						 | 
					34a2c835d4 | ||
| 
						 | 
					30d35883b8 | ||
| 
						 | 
					71563a52ff | ||
| 
						 | 
					0c6e7b5db5 | ||
| 
						 | 
					334ca65482 | ||
| 
						 | 
					8472112fc1 | ||
| 
						 | 
					84036d97d9 | ||
| 
						 | 
					0832974725 | ||
| 
						 | 
					6cee4efcd3 | ||
| 
						 | 
					6f868849ab | ||
| 
						 | 
					275ca58a82 | ||
| 
						 | 
					87393e8aef | ||
| 
						 | 
					86bf57e3cd | ||
| 
						 | 
					72c1d451fe | ||
| 
						 | 
					8b4a01df27 | ||
| 
						 | 
					d0a973fa46 | ||
| 
						 | 
					748ebbe66b | ||
| 
						 | 
					59de21eae2 | ||
| 
						 | 
					50473afea8 | ||
| 
						 | 
					37f925de0a | ||
| 
						 | 
					cefde3f003 | ||
| 
						 | 
					ae6124d1f4 | ||
| 
						 | 
					7e121ff72f | ||
| 
						 | 
					5155e18de2 | ||
| 
						 | 
					7365741088 | ||
| 
						 | 
					d5368d0719 | ||
| 
						 | 
					26c12ac1a9 | ||
| 
						 | 
					2c67849b35 | ||
| 
						 | 
					04509cefec | ||
| 
						 | 
					74b9f5dcb0 | ||
| 
						 | 
					7809a2eddd | ||
| 
						 | 
					e8e9294fdf | ||
| 
						 | 
					99581e1f40 | ||
| 
						 | 
					29646a7f61 | ||
| 
						 | 
					50d2712581 | ||
| 
						 | 
					3093f882d8 | ||
| 
						 | 
					e5cf0d1c61 | ||
| 
						 | 
					6b102a8142 | ||
| 
						 | 
					c8a6888a2f | ||
| 
						 | 
					9ce33f8a3f | ||
| 
						 | 
					a1dcd59d95 | ||
| 
						 | 
					2a17585702 | ||
| 
						 | 
					087c305b0d | ||
| 
						 | 
					31764f6d65 | ||
| 
						 | 
					4efde2b294 | ||
| 
						 | 
					46595e73df | 
@@ -17,6 +17,5 @@ indent_size = 2
 | 
				
			|||||||
[*.yml]
 | 
					[*.yml]
 | 
				
			||||||
indent_size = 2
 | 
					indent_size = 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
[*.properties]
 | 
					[*.properties]
 | 
				
			||||||
insert_final_newline = false
 | 
					insert_final_newline = false
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							@@ -1,2 +1,3 @@
 | 
				
			|||||||
# Ignore changes in generated files
 | 
					# Ignore changes in generated files
 | 
				
			||||||
src/generated/resources/data/** linguist-generated
 | 
					src/generated/resources/data/** linguist-generated
 | 
				
			||||||
 | 
					src/test/server-files/structures linguist-generated
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								.github/workflows/main-ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.github/workflows/main-ci.yml
									
									
									
									
										vendored
									
									
								
							@@ -16,7 +16,7 @@ jobs:
 | 
				
			|||||||
        java-version: 8
 | 
					        java-version: 8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Cache gradle dependencies
 | 
					    - name: Cache gradle dependencies
 | 
				
			||||||
      uses: actions/cache@v1
 | 
					      uses: actions/cache@v2
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        path: ~/.gradle/caches
 | 
					        path: ~/.gradle/caches
 | 
				
			||||||
        key: ${{ runner.os }}-gradle-${{ hashFiles('gradle.properties') }}
 | 
					        key: ${{ runner.os }}-gradle-${{ hashFiles('gradle.properties') }}
 | 
				
			||||||
@@ -24,16 +24,20 @@ jobs:
 | 
				
			|||||||
          ${{ runner.os }}-gradle-
 | 
					          ${{ runner.os }}-gradle-
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Build with Gradle
 | 
					    - name: Build with Gradle
 | 
				
			||||||
      run: ./gradlew build --no-daemon || ./gradlew build --no-daemon
 | 
					      run: |
 | 
				
			||||||
 | 
					        ./gradlew assemble --no-daemon || ./gradlew assemble --no-daemon
 | 
				
			||||||
 | 
					        ./gradlew downloadAssets --no-daemon || ./gradlew downloadAssets --no-daemon
 | 
				
			||||||
 | 
					        ./gradlew build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Upload Jar
 | 
					    - name: Upload Jar
 | 
				
			||||||
      uses: actions/upload-artifact@v1
 | 
					      uses: actions/upload-artifact@v2
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        name: CC-Tweaked
 | 
					        name: CC-Tweaked
 | 
				
			||||||
        path: build/libs
 | 
					        path: build/libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Upload Coverage
 | 
					    - name: Upload Coverage
 | 
				
			||||||
      run: bash <(curl -s https://codecov.io/bash)
 | 
					      run: bash <(curl -s https://codecov.io/bash)
 | 
				
			||||||
 | 
					      continue-on-error: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Generate Java documentation stubs
 | 
					    - name: Generate Java documentation stubs
 | 
				
			||||||
      run: ./gradlew luaJavadoc --no-daemon
 | 
					      run: ./gradlew luaJavadoc --no-daemon
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										5
									
								
								.github/workflows/make-doc.sh
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.github/workflows/make-doc.sh
									
									
									
									
										vendored
									
									
								
							@@ -12,5 +12,8 @@ chmod 600 "$HOME/.ssh/key"
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# And upload
 | 
					# And upload
 | 
				
			||||||
rsync -avc -e "ssh -i $HOME/.ssh/key -o StrictHostKeyChecking=no -p $SSH_PORT" \
 | 
					rsync -avc -e "ssh -i $HOME/.ssh/key -o StrictHostKeyChecking=no -p $SSH_PORT" \
 | 
				
			||||||
      "$GITHUB_WORKSPACE/doc/" \
 | 
					      "$GITHUB_WORKSPACE/build/docs/lua/" \
 | 
				
			||||||
      "$SSH_USER@$SSH_HOST:/var/www/tweaked.cc/$DEST"
 | 
					      "$SSH_USER@$SSH_HOST:/var/www/tweaked.cc/$DEST"
 | 
				
			||||||
 | 
					rsync -avc -e "ssh -i $HOME/.ssh/key -o StrictHostKeyChecking=no -p $SSH_PORT" \
 | 
				
			||||||
 | 
					      "$GITHUB_WORKSPACE/build/docs/javadoc/" \
 | 
				
			||||||
 | 
					      "$SSH_USER@$SSH_HOST:/var/www/tweaked.cc/$DEST/javadoc"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										26
									
								
								.github/workflows/make-doc.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								.github/workflows/make-doc.yml
									
									
									
									
										vendored
									
									
								
							@@ -3,11 +3,7 @@ name: Build documentation
 | 
				
			|||||||
on:
 | 
					on:
 | 
				
			||||||
  push:
 | 
					  push:
 | 
				
			||||||
    branches:
 | 
					    branches:
 | 
				
			||||||
    - master
 | 
					 | 
				
			||||||
    - mc-1.15.x
 | 
					    - mc-1.15.x
 | 
				
			||||||
    tags:
 | 
					 | 
				
			||||||
  release:
 | 
					 | 
				
			||||||
    types: [ published ]
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  make_doc:
 | 
					  make_doc:
 | 
				
			||||||
@@ -15,7 +11,7 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - uses: actions/checkout@v1
 | 
					    - uses: actions/checkout@v2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Set up Java 8
 | 
					    - name: Set up Java 8
 | 
				
			||||||
      uses: actions/setup-java@v1
 | 
					      uses: actions/setup-java@v1
 | 
				
			||||||
@@ -23,25 +19,27 @@ jobs:
 | 
				
			|||||||
        java-version: 8
 | 
					        java-version: 8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Cache gradle dependencies
 | 
					    - name: Cache gradle dependencies
 | 
				
			||||||
      uses: actions/cache@v1
 | 
					      uses: actions/cache@v2
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        path: ~/.gradle/caches
 | 
					        path: ~/.gradle/caches
 | 
				
			||||||
        key: ${{ runner.os }}-gradle-${{ hashFiles('gradle.properties') }}
 | 
					        key: ${{ runner.os }}-gradle-${{ hashFiles('gradle.properties') }}
 | 
				
			||||||
        restore-keys: |
 | 
					        restore-keys: |
 | 
				
			||||||
          ${{ runner.os }}-gradle-
 | 
					          ${{ runner.os }}-gradle-
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Build with Gradle
 | 
					    - name: Setup illuaminate
 | 
				
			||||||
      run: ./gradlew compileJava --no-daemon || ./gradlew compileJava --no-daemon
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    - name: Generate Java documentation stubs
 | 
					 | 
				
			||||||
      run: ./gradlew luaJavadoc --no-daemon
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    - name: Build documentation
 | 
					 | 
				
			||||||
      run: |
 | 
					      run: |
 | 
				
			||||||
        test -d bin || mkdir bin
 | 
					        test -d bin || mkdir bin
 | 
				
			||||||
        test -f bin/illuaminate || wget -q -Obin/illuaminate https://squiddev.cc/illuaminate/linux-x86-64/illuaminate
 | 
					        test -f bin/illuaminate || wget -q -Obin/illuaminate https://squiddev.cc/illuaminate/linux-x86-64/illuaminate
 | 
				
			||||||
        chmod +x bin/illuaminate
 | 
					        chmod +x bin/illuaminate
 | 
				
			||||||
        bin/illuaminate doc-gen
 | 
					
 | 
				
			||||||
 | 
					    - name: Setup node
 | 
				
			||||||
 | 
					      run: npm ci
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Build with Gradle
 | 
				
			||||||
 | 
					      run: ./gradlew compileJava --no-daemon || ./gradlew compileJava --no-daemon
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Generate documentation
 | 
				
			||||||
 | 
					      run: ./gradlew docWebsite javadoc --no-daemon
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Upload documentation
 | 
					    - name: Upload documentation
 | 
				
			||||||
      run: .github/workflows/make-doc.sh 2> /dev/null
 | 
					      run: .github/workflows/make-doc.sh 2> /dev/null
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										13
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -3,9 +3,8 @@
 | 
				
			|||||||
/logs
 | 
					/logs
 | 
				
			||||||
/build
 | 
					/build
 | 
				
			||||||
/out
 | 
					/out
 | 
				
			||||||
/doc/**/*.html
 | 
					/doc/out/
 | 
				
			||||||
/doc/javadoc/
 | 
					/node_modules
 | 
				
			||||||
/doc/index.json
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Runtime directories
 | 
					# Runtime directories
 | 
				
			||||||
/run
 | 
					/run
 | 
				
			||||||
@@ -19,10 +18,12 @@
 | 
				
			|||||||
.gradle
 | 
					.gradle
 | 
				
			||||||
*.DS_Store
 | 
					*.DS_Store
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.classpath
 | 
					/.classpath
 | 
				
			||||||
.project
 | 
					/.project
 | 
				
			||||||
.settings/
 | 
					/.settings
 | 
				
			||||||
 | 
					/.vscode
 | 
				
			||||||
bin/
 | 
					bin/
 | 
				
			||||||
*.launch
 | 
					*.launch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/src/generated/resources/.cache
 | 
					/src/generated/resources/.cache
 | 
				
			||||||
 | 
					/src/web/mount/*.d.ts
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,10 @@ If you've any other questions, [just ask the community][community] or [open an i
 | 
				
			|||||||
If you have a bug, suggestion, or other feedback, the best thing to do is [file an issue][new-issue]. When doing so,
 | 
					If you have a bug, suggestion, or other feedback, the best thing to do is [file an issue][new-issue]. When doing so,
 | 
				
			||||||
do use the issue templates - they provide a useful hint on what information to provide.
 | 
					do use the issue templates - they provide a useful hint on what information to provide.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Translations
 | 
				
			||||||
 | 
					Translations are managed through [Weblate], an online interface for managing language strings. This is synced
 | 
				
			||||||
 | 
					automatically with GitHub, so please don't submit PRs adding/changing translations!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Developing
 | 
					## Developing
 | 
				
			||||||
In order to develop CC: Tweaked, you'll need to download the source code and then run it. This is a pretty simple
 | 
					In order to develop CC: Tweaked, you'll need to download the source code and then run it. This is a pretty simple
 | 
				
			||||||
process. When building on Windows, Use `gradlew.bat` instead of `./gradlew`.
 | 
					process. When building on Windows, Use `gradlew.bat` instead of `./gradlew`.
 | 
				
			||||||
@@ -20,6 +24,11 @@ If you want to run CC:T in a normal Minecraft instance, run `./gradlew build` an
 | 
				
			|||||||
These commands may take a few minutes to run the first time, as the environment is set up, but should be much faster
 | 
					These commands may take a few minutes to run the first time, as the environment is set up, but should be much faster
 | 
				
			||||||
afterwards.
 | 
					afterwards.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The following sections describe the more niche sections of CC: Tweaked's build system. Some bits of these are
 | 
				
			||||||
 | 
					quite-complex, and (dare I say) over-engineered, so you may wish to ignore them. Well tested/documented PRs are always
 | 
				
			||||||
 | 
					preferred (and I'd definitely recommend setting up the tooling if you're doing serious development work), but for
 | 
				
			||||||
 | 
					small changes it can be a lot.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Code linters
 | 
					### Code linters
 | 
				
			||||||
CC: Tweaked uses a couple of "linters" on its source code, to enforce a consistent style across the project. While these
 | 
					CC: Tweaked uses a couple of "linters" on its source code, to enforce a consistent style across the project. While these
 | 
				
			||||||
are run whenever you submit a PR, it's often useful to run this before committing.
 | 
					are run whenever you submit a PR, it's often useful to run this before committing.
 | 
				
			||||||
@@ -27,15 +36,83 @@ are run whenever you submit a PR, it's often useful to run this before committin
 | 
				
			|||||||
 - **[Checkstyle]:** Checks Java code to ensure it is consistently formatted. This can be run with `./gradlew build` or
 | 
					 - **[Checkstyle]:** Checks Java code to ensure it is consistently formatted. This can be run with `./gradlew build` or
 | 
				
			||||||
   `./gradle check`.
 | 
					   `./gradle check`.
 | 
				
			||||||
 - **[illuaminate]:** Checks Lua code for semantic and styleistic issues. See [the usage section][illuaminate-usage] for
 | 
					 - **[illuaminate]:** Checks Lua code for semantic and styleistic issues. See [the usage section][illuaminate-usage] for
 | 
				
			||||||
   how to download and run it.
 | 
					   how to download and run it. You may need to generate the Java documentation stubs (see "Documentation" below) for all
 | 
				
			||||||
 | 
					   lints to pass.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Translations
 | 
					### Documentation
 | 
				
			||||||
Translations are managed through [Weblate], an online interface for managing language strings. This is synced
 | 
					When writing documentation for [CC: Tweaked's documentation website][docs], it may be useful to build the documentation
 | 
				
			||||||
automatically with GitHub, so please don't submit PRs adding/changing translations!
 | 
					and preview it yourself before submitting a PR.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Building all documentation is, sadly, a multi-stage process (though this is largely hidden by Gradle). First we need to
 | 
				
			||||||
 | 
					convert Java doc-comments into Lua ones, we also generate some Javascript to embed. All of this is then finally fed into
 | 
				
			||||||
 | 
					illuaminate, which spits out our HTML.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Setting up the tooling
 | 
				
			||||||
 | 
					For various reasons, getting the environment set up to build documentation can be pretty complex. I'd quite like to
 | 
				
			||||||
 | 
					automate this via Docker and/or nix in the future, but this needs to be done manually for now.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					First, you will need JDK 9+ (in addition to JDK 8 which is required to build Minecraft itself). Sadly our version of
 | 
				
			||||||
 | 
					Gradle doesn't support multiple toolchains, and so you need to install this yourself.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Gradle needs to be told about this JDK via the `JAVA_HOME_11_X64` environment variable or adding `java11Home` to 
 | 
				
			||||||
 | 
					`~/.gradle/gradle.properties`. On my system this looks like:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```properties
 | 
				
			||||||
 | 
					java11Home=/usr/lib/jvm/java-11-openjdk/
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If you just want to build the documentation stubs for linting, this is enough. However, if you want to build the full
 | 
				
			||||||
 | 
					website, you will also need to install a few Node packages by running `npm ci`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Building documentation
 | 
				
			||||||
 | 
					Gradle should be your entrypoint to building most documentation. There's two tasks which are of interest:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 - `./gradlew luaJavadoc` - Generate documentation stubs for Java methods.
 | 
				
			||||||
 | 
					 - `./gradlew docWebsite` - Generate the whole website (including Javascript pages). The resulting HTML is stored at
 | 
				
			||||||
 | 
					   `./build/docs/lua/`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Writing documentation
 | 
				
			||||||
 | 
					illuaminate's documentation system is not currently documented (somewhat ironic), but is _largely_ the same as
 | 
				
			||||||
 | 
					[ldoc][ldoc]. Documentation comments are written in Markdown, 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Our markdown engine does _not_ support GitHub flavoured markdown, and so does not support all the features one might
 | 
				
			||||||
 | 
					expect (such as tables). It is very much recommended that you build and preview the docs locally first.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Testing
 | 
				
			||||||
 | 
					Thankfully running tests is much simpler than running the documentation generator! `./gradlew check` will run the
 | 
				
			||||||
 | 
					entire test suite (and some additional bits of verification).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Before we get into writing tests, it's worth mentioning the various test suites that CC: Tweaked has:
 | 
				
			||||||
 | 
					 - "Core" Java (`./src/test/java`): These test core bits of the mod which don't require any Minecraft interaction.
 | 
				
			||||||
 | 
					   This includes the `@LuaFunction` system, file system code, etc...
 | 
				
			||||||
 | 
					   
 | 
				
			||||||
 | 
					   These tests are run by `./gradlew test`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 - CraftOS (`./src/test/resources/test-rom/`): These tests are written in Lua, and ensure the Lua environment, libraries
 | 
				
			||||||
 | 
					   and programs work as expected. These are (generally) written to be able to be run on emulators too, to provide some
 | 
				
			||||||
 | 
					   sort of compliance test.
 | 
				
			||||||
 | 
					   
 | 
				
			||||||
 | 
					   These tests are run by the '"Core" Java' test suite, and so are also run with `./gradlew test`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 - In-game (`./src/test/java/dan200/computercraft/ingame/`): These tests are run on an actual Minecraft server, using
 | 
				
			||||||
 | 
					   [the same system Mojang do][mc-test]. The aim of these is to test in-game behaviour of blocks and peripherals.
 | 
				
			||||||
 | 
					   
 | 
				
			||||||
 | 
					   These are run by `./gradlew testInGame`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## CraftOS tests
 | 
				
			||||||
 | 
					CraftOS's tests are written using a test system called "mcfly", heavily inspired by [busted] (and thus RSpec). Groups of
 | 
				
			||||||
 | 
					tests go inside `describe` blocks, and a single test goes inside `it`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Assertions are generally written using `expect` (inspired by Hamcrest and the like). For instance, `expect(foo):eq("bar")`
 | 
				
			||||||
 | 
					asserts that your variable `foo` is equal to the expected value `"bar"`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[new-issue]: https://github.com/SquidDev-CC/CC-Tweaked/issues/new/choose "Create a new issue"
 | 
					[new-issue]: https://github.com/SquidDev-CC/CC-Tweaked/issues/new/choose "Create a new issue"
 | 
				
			||||||
[community]: README.md#Community "Get in touch with the community."
 | 
					[community]: README.md#Community "Get in touch with the community."
 | 
				
			||||||
[checkstyle]: https://checkstyle.org/
 | 
					[checkstyle]: https://checkstyle.org/
 | 
				
			||||||
[illuaminate]: https://github.com/SquidDev/illuaminate/
 | 
					[illuaminate]: https://github.com/SquidDev/illuaminate/ "Illuaminate on GitHub"
 | 
				
			||||||
[illuaminate-usage]: https://github.com/SquidDev/illuaminate/blob/master/README.md#usage
 | 
					[illuaminate-usage]: https://github.com/SquidDev/illuaminate/blob/master/README.md#usage "Installing Illuaminate"
 | 
				
			||||||
[weblate]: https://i18n.tweaked.cc/projects/cc-tweaked/minecraft/
 | 
					[weblate]: https://i18n.tweaked.cc/projects/cc-tweaked/minecraft/ "CC: Tweaked weblate instance"
 | 
				
			||||||
 | 
					[docs]: https://tweaked.cc/ "CC: Tweaked documentation"
 | 
				
			||||||
 | 
					[ldoc]: http://stevedonovan.github.io/ldoc/ "ldoc, a Lua documentation generator."
 | 
				
			||||||
 | 
					[mc-test]: https://www.youtube.com/watch?v=vXaWOJTCYNg
 | 
				
			||||||
 | 
					[busted]: https://github.com/Olivine-Labs/busted "busted: Elegant Lua unit testing."
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										11
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								README.md
									
									
									
									
									
								
							@@ -50,12 +50,12 @@ I'd generally recommend you don't contact me directly (email, DM, etc...) unless
 | 
				
			|||||||
report exploits). You'll get a far quicker response if you ask the whole community!
 | 
					report exploits). You'll get a far quicker response if you ask the whole community!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Using
 | 
					## Using
 | 
				
			||||||
If you want to depend on CC: Tweaked, we have a maven repo. However, you should be wary that some functionality is only
 | 
					CC: Tweaked is hosted on my maven repo, and so is relatively simple to depend on. You may wish to add a soft (or hard)
 | 
				
			||||||
exposed by CC:T's API and not vanilla ComputerCraft. If you wish to support all variations of ComputerCraft, I recommend
 | 
					dependency in your `mods.toml` file, with the appropriate version bounds, to ensure that API functionality you depend
 | 
				
			||||||
using [cc.crzd.me's maven](https://cc.crzd.me/maven/) instead.
 | 
					on is present.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```groovy
 | 
					```groovy
 | 
				
			||||||
dependencies {
 | 
					repositories {
 | 
				
			||||||
  maven { url 'https://squiddev.cc/maven/' }
 | 
					  maven { url 'https://squiddev.cc/maven/' }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -67,3 +67,6 @@ dependencies {
 | 
				
			|||||||
You should also be careful to only use classes within the `dan200.computercraft.api` package. Non-API classes are
 | 
					You should also be careful to only use classes within the `dan200.computercraft.api` package. Non-API classes are
 | 
				
			||||||
subject to change at any point. If you depend on functionality outside the API, file an issue, and we can look into
 | 
					subject to change at any point. If you depend on functionality outside the API, file an issue, and we can look into
 | 
				
			||||||
exposing more features.
 | 
					exposing more features.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					We bundle the API sources with the jar, so documentation should be easily viewable within your editor. Alternatively,
 | 
				
			||||||
 | 
					the generated documentation [can be browsed online](https://tweaked.cc/javadoc/).
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										181
									
								
								build.gradle
									
									
									
									
									
								
							
							
						
						
									
										181
									
								
								build.gradle
									
									
									
									
									
								
							@@ -6,12 +6,17 @@ buildscript {
 | 
				
			|||||||
            name = "forge"
 | 
					            name = "forge"
 | 
				
			||||||
            url = "https://files.minecraftforge.net/maven"
 | 
					            url = "https://files.minecraftforge.net/maven"
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        maven {
 | 
				
			||||||
 | 
					            name = "mixin"
 | 
				
			||||||
 | 
					            url = "https://dist.creeper.host/Sponge/maven"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    dependencies {
 | 
					    dependencies {
 | 
				
			||||||
        classpath 'com.google.code.gson:gson:2.8.1'
 | 
					        classpath 'com.google.code.gson:gson:2.8.1'
 | 
				
			||||||
        classpath 'net.minecraftforge.gradle:ForgeGradle:3.0.179'
 | 
					        classpath 'net.minecraftforge.gradle:ForgeGradle:3.0.190'
 | 
				
			||||||
        classpath 'net.sf.proguard:proguard-gradle:6.1.0beta2'
 | 
					        classpath 'net.sf.proguard:proguard-gradle:6.1.0beta2'
 | 
				
			||||||
        classpath 'org.ajoberstar.grgit:grgit-gradle:3.0.0'
 | 
					        classpath 'org.ajoberstar.grgit:grgit-gradle:3.0.0'
 | 
				
			||||||
 | 
					        classpath 'org.spongepowered:mixingradle:0.7-SNAPSHOT'
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -21,9 +26,11 @@ plugins {
 | 
				
			|||||||
    id "com.github.hierynomus.license" version "0.15.0"
 | 
					    id "com.github.hierynomus.license" version "0.15.0"
 | 
				
			||||||
    id "com.matthewprenger.cursegradle" version "1.3.0"
 | 
					    id "com.matthewprenger.cursegradle" version "1.3.0"
 | 
				
			||||||
    id "com.github.breadmoirai.github-release" version "2.2.4"
 | 
					    id "com.github.breadmoirai.github-release" version "2.2.4"
 | 
				
			||||||
 | 
					    id "org.jetbrains.kotlin.jvm" version "1.3.72"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
apply plugin: 'net.minecraftforge.gradle'
 | 
					apply plugin: 'net.minecraftforge.gradle'
 | 
				
			||||||
 | 
					apply plugin: 'org.spongepowered.mixin'
 | 
				
			||||||
apply plugin: 'org.ajoberstar.grgit'
 | 
					apply plugin: 'org.ajoberstar.grgit'
 | 
				
			||||||
apply plugin: 'maven-publish'
 | 
					apply plugin: 'maven-publish'
 | 
				
			||||||
apply plugin: 'maven'
 | 
					apply plugin: 'maven'
 | 
				
			||||||
@@ -50,9 +57,10 @@ minecraft {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        server {
 | 
					        server {
 | 
				
			||||||
            workingDirectory project.file("run/server-${mc_version}")
 | 
					            workingDirectory project.file("run/server")
 | 
				
			||||||
            property 'forge.logging.markers', 'REGISTRIES,REGISTRYDUMP'
 | 
					            property 'forge.logging.markers', 'REGISTRIES'
 | 
				
			||||||
            property 'forge.logging.console.level', 'debug'
 | 
					            property 'forge.logging.console.level', 'debug'
 | 
				
			||||||
 | 
					            arg "--nogui"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            mods {
 | 
					            mods {
 | 
				
			||||||
                computercraft {
 | 
					                computercraft {
 | 
				
			||||||
@@ -63,7 +71,7 @@ minecraft {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        data {
 | 
					        data {
 | 
				
			||||||
            workingDirectory project.file('run')
 | 
					            workingDirectory project.file('run')
 | 
				
			||||||
            property 'forge.logging.markers', 'REGISTRIES,REGISTRYDUMP'
 | 
					            property 'forge.logging.markers', 'REGISTRIES'
 | 
				
			||||||
            property 'forge.logging.console.level', 'debug'
 | 
					            property 'forge.logging.console.level', 'debug'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            args '--mod', 'computercraft', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
 | 
					            args '--mod', 'computercraft', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
 | 
				
			||||||
@@ -73,13 +81,32 @@ minecraft {
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        testServer {
 | 
				
			||||||
 | 
					            workingDirectory project.file('test-files/server')
 | 
				
			||||||
 | 
					            parent runs.server
 | 
				
			||||||
 | 
					            properties 'mixin.env.disableRefMap': 'true'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            arg "-mixin.config=cctest.mixin.json"
 | 
				
			||||||
 | 
					            arg "--nogui"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            mods {
 | 
				
			||||||
 | 
					                cctest {
 | 
				
			||||||
 | 
					                    source sourceSets.test
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    mappings channel: 'snapshot', version: "${mappings_version}".toString()
 | 
					    mappings channel: 'official', version: mc_version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    accessTransformer file('src/main/resources/META-INF/accesstransformer.cfg')
 | 
					    accessTransformer file('src/main/resources/META-INF/accesstransformer.cfg')
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mixin {
 | 
				
			||||||
 | 
					    add sourceSets.test, "cctest.refmap.json"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sourceSets {
 | 
					sourceSets {
 | 
				
			||||||
    main.resources {
 | 
					    main.resources {
 | 
				
			||||||
        srcDir 'src/generated/resources'
 | 
					        srcDir 'src/generated/resources'
 | 
				
			||||||
@@ -106,23 +133,27 @@ dependencies {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    minecraft "net.minecraftforge:forge:${mc_version}-${forge_version}"
 | 
					    minecraft "net.minecraftforge:forge:${mc_version}-${forge_version}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    compileOnly fg.deobf("mezz.jei:jei-1.15.2:6.0.0.3:api")
 | 
					    compileOnly fg.deobf("mezz.jei:jei-1.16.4:7.6.0.58:api")
 | 
				
			||||||
    compileOnly fg.deobf("com.blamejared.crafttweaker:CraftTweaker-1.15.2:6.0.0.9")
 | 
					    compileOnly fg.deobf("com.blamejared.crafttweaker:CraftTweaker-1.16.4:7.0.0.63")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    runtimeOnly fg.deobf("mezz.jei:jei-1.15.2:6.0.0.3")
 | 
					    runtimeOnly fg.deobf("mezz.jei:jei-1.16.4:7.6.0.58")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    compileOnly 'com.google.auto.service:auto-service:1.0-rc7'
 | 
					    compileOnly 'com.google.auto.service:auto-service:1.0-rc7'
 | 
				
			||||||
    annotationProcessor 'com.google.auto.service:auto-service:1.0-rc7'
 | 
					    annotationProcessor 'com.google.auto.service:auto-service:1.0-rc7'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    shade 'org.squiddev:Cobalt:0.5.1-SNAPSHOT'
 | 
					    shade 'org.squiddev:Cobalt:0.5.1-SNAPSHOT'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.4.2'
 | 
					    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
 | 
				
			||||||
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.4.2'
 | 
					    testImplementation 'org.junit.jupiter:junit-jupiter-params:5.7.0'
 | 
				
			||||||
 | 
					    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
 | 
				
			||||||
    testImplementation 'org.hamcrest:hamcrest:2.2'
 | 
					    testImplementation 'org.hamcrest:hamcrest:2.2'
 | 
				
			||||||
 | 
					    testImplementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72'
 | 
				
			||||||
 | 
					    testImplementation 'org.jetbrains.kotlin:kotlin-reflect:1.3.72'
 | 
				
			||||||
 | 
					    testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.8'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    deployerJars "org.apache.maven.wagon:wagon-ssh:3.0.0"
 | 
					    deployerJars "org.apache.maven.wagon:wagon-ssh:3.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    cctJavadoc 'cc.tweaked:cct-javadoc:1.1.0'
 | 
					    cctJavadoc 'cc.tweaked:cct-javadoc:1.3.0'
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Compile tasks
 | 
					// Compile tasks
 | 
				
			||||||
@@ -136,7 +167,7 @@ task luaJavadoc(type: Javadoc) {
 | 
				
			|||||||
    group "documentation"
 | 
					    group "documentation"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    source = sourceSets.main.allJava
 | 
					    source = sourceSets.main.allJava
 | 
				
			||||||
    destinationDir = file("doc/javadoc")
 | 
					    destinationDir = file("${project.docsDir}/luaJavadoc")
 | 
				
			||||||
    classpath = sourceSets.main.compileClasspath
 | 
					    classpath = sourceSets.main.compileClasspath
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    options.docletpath = configurations.cctJavadoc.files as List
 | 
					    options.docletpath = configurations.cctJavadoc.files as List
 | 
				
			||||||
@@ -306,6 +337,58 @@ task compressJson(dependsOn: jar) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
assemble.dependsOn compressJson
 | 
					assemble.dependsOn compressJson
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Web tasks
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.apache.tools.ant.taskdefs.condition.Os
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					List<String> mkCommand(String command) {
 | 
				
			||||||
 | 
					    return Os.isFamily(Os.FAMILY_WINDOWS) ? ["cmd", "/c", command] : ["sh", "-c", command]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					task rollup(type: Exec) {
 | 
				
			||||||
 | 
					    group = "build"
 | 
				
			||||||
 | 
					    description = "Bundles JS into rollup"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    inputs.files(fileTree("src/web")).withPropertyName("sources")
 | 
				
			||||||
 | 
					    inputs.file("package-lock.json").withPropertyName("package-lock.json")
 | 
				
			||||||
 | 
					    inputs.file("tsconfig.json").withPropertyName("Typescript config")
 | 
				
			||||||
 | 
					    inputs.file("rollup.config.js").withPropertyName("Rollup config")
 | 
				
			||||||
 | 
					    outputs.file("$buildDir/rollup/index.js").withPropertyName("output")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    commandLine mkCommand('"node_modules/.bin/rollup" --config rollup.config.js')
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					task minifyWeb(type: Exec, dependsOn: rollup) {
 | 
				
			||||||
 | 
					    group = "build"
 | 
				
			||||||
 | 
					    description = "Bundles JS into rollup"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    inputs.file("$buildDir/rollup/index.js").withPropertyName("sources")
 | 
				
			||||||
 | 
					    inputs.file("package-lock.json").withPropertyName("package-lock.json")
 | 
				
			||||||
 | 
					    outputs.file("$buildDir/rollup/index.min.js").withPropertyName("output")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    commandLine mkCommand('"node_modules/.bin/terser"' + " -o '$buildDir/rollup/index.min.js' '$buildDir/rollup/index.js'")
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					task illuaminateDocs(type: Exec, dependsOn: [minifyWeb, luaJavadoc]) {
 | 
				
			||||||
 | 
					    group = "build"
 | 
				
			||||||
 | 
					    description = "Bundles JS into rollup"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    inputs.files(fileTree("doc")).withPropertyName("docs")
 | 
				
			||||||
 | 
					    inputs.files(fileTree("src/main/resources/data/computercraft/lua/rom")).withPropertyName("lua rom")
 | 
				
			||||||
 | 
					    inputs.file("illuaminate.sexp").withPropertyName("illuaminate.sexp")
 | 
				
			||||||
 | 
					    inputs.dir("$buildDir/docs/luaJavadoc")
 | 
				
			||||||
 | 
					    inputs.file("$buildDir/rollup/index.min.js").withPropertyName("scripts")
 | 
				
			||||||
 | 
					    inputs.file("src/web/styles.css").withPropertyName("styles")
 | 
				
			||||||
 | 
					    outputs.dir("$buildDir/docs/lua")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    commandLine mkCommand('"bin/illuaminate" doc-gen')
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					task docWebsite(type: Copy, dependsOn: [illuaminateDocs]) {
 | 
				
			||||||
 | 
					    from 'doc/logo.png'
 | 
				
			||||||
 | 
					    into "${project.docsDir}/lua"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Check tasks
 | 
					// Check tasks
 | 
				
			||||||
 | 
					
 | 
				
			||||||
test {
 | 
					test {
 | 
				
			||||||
@@ -316,6 +399,7 @@ test {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
jacocoTestReport {
 | 
					jacocoTestReport {
 | 
				
			||||||
 | 
					    dependsOn('test')
 | 
				
			||||||
    reports {
 | 
					    reports {
 | 
				
			||||||
        xml.enabled true
 | 
					        xml.enabled true
 | 
				
			||||||
        html.enabled true
 | 
					        html.enabled true
 | 
				
			||||||
@@ -335,14 +419,14 @@ license {
 | 
				
			|||||||
    it.configure {
 | 
					    it.configure {
 | 
				
			||||||
        include("**/*.java")
 | 
					        include("**/*.java")
 | 
				
			||||||
        exclude("dan200/computercraft/api/**")
 | 
					        exclude("dan200/computercraft/api/**")
 | 
				
			||||||
        header rootProject.file('config/license/main.txt')
 | 
					        header file('config/license/main.txt')
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[licenseTest, licenseFormatTest].forEach {
 | 
					[licenseTest, licenseFormatTest].forEach {
 | 
				
			||||||
    it.configure {
 | 
					    it.configure {
 | 
				
			||||||
        include("**/*.java")
 | 
					        include("**/*.java")
 | 
				
			||||||
        header rootProject.file('config/license/main.txt')
 | 
					        header file('config/license/main.txt')
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -359,10 +443,71 @@ task licenseFormatAPI(type: LicenseFormat);
 | 
				
			|||||||
    it.configure {
 | 
					    it.configure {
 | 
				
			||||||
        source = sourceSets.main.java
 | 
					        source = sourceSets.main.java
 | 
				
			||||||
        include("dan200/computercraft/api/**")
 | 
					        include("dan200/computercraft/api/**")
 | 
				
			||||||
        header rootProject.file('config/license/api.txt')
 | 
					        header file('config/license/api.txt')
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					task setupServer(type: Copy) {
 | 
				
			||||||
 | 
					    group "test server"
 | 
				
			||||||
 | 
					    description "Sets up the environment for the test server."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    from("src/test/server-files") {
 | 
				
			||||||
 | 
					        include "eula.txt"
 | 
				
			||||||
 | 
					        include "server.properties"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    into "test-files/server"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					tasks.register('testInGame', JavaExec.class).configure {
 | 
				
			||||||
 | 
					    it.group('test server')
 | 
				
			||||||
 | 
					    it.description("Runs tests on a temporary Minecraft server.")
 | 
				
			||||||
 | 
					    it.dependsOn(setupServer, 'prepareRunTestServer')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Copy from runTestServer. We do it in this slightly odd way as runTestServer
 | 
				
			||||||
 | 
					    // isn't created until the task is configured (which is no good for us).
 | 
				
			||||||
 | 
					    JavaExec exec = tasks.getByName('runTestServer')
 | 
				
			||||||
 | 
					    it.setWorkingDir(exec.getWorkingDir())
 | 
				
			||||||
 | 
					    it.setSystemProperties(exec.getSystemProperties())
 | 
				
			||||||
 | 
					    it.setBootstrapClasspath(exec.getBootstrapClasspath())
 | 
				
			||||||
 | 
					    it.setClasspath(exec.getClasspath())
 | 
				
			||||||
 | 
					    it.setMain(exec.getMain())
 | 
				
			||||||
 | 
					    it.setEnvironment(exec.getEnvironment())
 | 
				
			||||||
 | 
					    it.setArgs(exec.getArgs())
 | 
				
			||||||
 | 
					    it.setJvmArgs(exec.getJvmArgs())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it.systemProperty('forge.logging.console.level', 'info')
 | 
				
			||||||
 | 
					    it.systemProperty('cctest.run', 'true')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Jacoco and modlauncher don't play well together as the classes loaded in-game don't
 | 
				
			||||||
 | 
					    // match up with those written to disk. We get Jacoco to dump all classes to disk, and
 | 
				
			||||||
 | 
					    // use that when generating the report.
 | 
				
			||||||
 | 
					    def coverageOut = new File(buildDir, 'jacocoClassDump/testInGame')
 | 
				
			||||||
 | 
					    jacoco.applyTo(it)
 | 
				
			||||||
 | 
					    it.jacoco.setIncludes(["dan200.computercraft.*"])
 | 
				
			||||||
 | 
					    it.jacoco.setClassDumpDir(coverageOut)
 | 
				
			||||||
 | 
					    it.outputs.dir(coverageOut)
 | 
				
			||||||
 | 
					    // Older versions of modlauncher don't include a protection domain (and thus no code
 | 
				
			||||||
 | 
					    // source). Jacoco skips such classes by default, so we need to explicitly include them.
 | 
				
			||||||
 | 
					    it.jacoco.setIncludeNoLocationClasses(true)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					tasks.register('jacocoTestInGameReport', JacocoReport.class).configure {
 | 
				
			||||||
 | 
					    it.group('test server')
 | 
				
			||||||
 | 
					    it.description('Generate coverage reports for in-game tests (testInGame)')
 | 
				
			||||||
 | 
					    it.dependsOn('testInGame')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it.executionData(new File(buildDir, 'jacoco/testInGame.exec'))
 | 
				
			||||||
 | 
					    it.setSourceDirectories(project.files(sourceSets.main.allJava.srcDirs))
 | 
				
			||||||
 | 
					    it.setClassDirectories(project.files(new File(buildDir, 'jacocoClassDump/testInGame')))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it.reports {
 | 
				
			||||||
 | 
					        xml.enabled true
 | 
				
			||||||
 | 
					        html.enabled true
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					check.dependsOn('jacocoTestInGameReport')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Upload tasks
 | 
					// Upload tasks
 | 
				
			||||||
 | 
					
 | 
				
			||||||
task checkRelease {
 | 
					task checkRelease {
 | 
				
			||||||
@@ -377,7 +522,7 @@ task checkRelease {
 | 
				
			|||||||
        def ok = true
 | 
					        def ok = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Check we're targetting the current version
 | 
					        // Check we're targetting the current version
 | 
				
			||||||
        def whatsnew = new File("src/main/resources/data/computercraft/lua/rom/help/whatsnew.txt").readLines()
 | 
					        def whatsnew = new File(projectDir, "src/main/resources/data/computercraft/lua/rom/help/whatsnew.txt").readLines()
 | 
				
			||||||
        if (whatsnew[0] != "New features in CC: Tweaked $mod_version") {
 | 
					        if (whatsnew[0] != "New features in CC: Tweaked $mod_version") {
 | 
				
			||||||
            ok = false
 | 
					            ok = false
 | 
				
			||||||
            project.logger.error("Expected `whatsnew.txt' to target $mod_version.")
 | 
					            project.logger.error("Expected `whatsnew.txt' to target $mod_version.")
 | 
				
			||||||
@@ -394,7 +539,7 @@ task checkRelease {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        // Check whatsnew and changelog match.
 | 
					        // Check whatsnew and changelog match.
 | 
				
			||||||
        def versionChangelog = "# " + whatsnew.join("\n")
 | 
					        def versionChangelog = "# " + whatsnew.join("\n")
 | 
				
			||||||
        def changelog = new File("src/main/resources/data/computercraft/lua/rom/help/changelog.txt").getText()
 | 
					        def changelog = new File(projectDir, "src/main/resources/data/computercraft/lua/rom/help/changelog.txt").getText()
 | 
				
			||||||
        if (!changelog.startsWith(versionChangelog)) {
 | 
					        if (!changelog.startsWith(versionChangelog)) {
 | 
				
			||||||
            ok = false
 | 
					            ok = false
 | 
				
			||||||
            project.logger.error("whatsnew and changelog are not in sync")
 | 
					            project.logger.error("whatsnew and changelog are not in sync")
 | 
				
			||||||
@@ -482,7 +627,7 @@ githubRelease {
 | 
				
			|||||||
    tagName "v${mc_version}-${mod_version}"
 | 
					    tagName "v${mc_version}-${mod_version}"
 | 
				
			||||||
    releaseName "[${mc_version}] ${mod_version}"
 | 
					    releaseName "[${mc_version}] ${mod_version}"
 | 
				
			||||||
    body {
 | 
					    body {
 | 
				
			||||||
        "## " + new File("src/main/resources/data/computercraft/lua/rom/help/whatsnew.txt")
 | 
					        "## " + new File(projectDir, "src/main/resources/data/computercraft/lua/rom/help/whatsnew.txt")
 | 
				
			||||||
            .readLines()
 | 
					            .readLines()
 | 
				
			||||||
            .takeWhile { it != 'Type "help changelog" to see the full version history.' }
 | 
					            .takeWhile { it != 'Type "help changelog" to see the full version history.' }
 | 
				
			||||||
            .join("\n").trim()
 | 
					            .join("\n").trim()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,7 +7,7 @@
 | 
				
			|||||||
    <property name="charset" value="UTF-8" />
 | 
					    <property name="charset" value="UTF-8" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <module name="SuppressionFilter">
 | 
					    <module name="SuppressionFilter">
 | 
				
			||||||
        <property name="file" value="config/checkstyle/suppressions.xml" />
 | 
						<property name="file" value="${config_loc}/suppressions.xml" />
 | 
				
			||||||
    </module>
 | 
					    </module>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <module name="BeforeExecutionExclusionFileFilter">
 | 
					    <module name="BeforeExecutionExclusionFileFilter">
 | 
				
			||||||
@@ -97,20 +97,11 @@
 | 
				
			|||||||
        <module name="LambdaParameterName" />
 | 
					        <module name="LambdaParameterName" />
 | 
				
			||||||
        <module name="LocalFinalVariableName" />
 | 
					        <module name="LocalFinalVariableName" />
 | 
				
			||||||
        <module name="LocalVariableName" />
 | 
					        <module name="LocalVariableName" />
 | 
				
			||||||
        <!-- Allow an optional m_ on private members -->
 | 
					        <module name="MemberName" />
 | 
				
			||||||
        <module name="MemberName">
 | 
					 | 
				
			||||||
            <property name="applyToPrivate" value="false" />
 | 
					 | 
				
			||||||
            <property name="applyToPackage" value="false" />
 | 
					 | 
				
			||||||
        </module>
 | 
					 | 
				
			||||||
        <module name="MemberName">
 | 
					 | 
				
			||||||
            <property name="format" value="^(m_)?[a-z][a-zA-Z0-9]*$" />
 | 
					 | 
				
			||||||
            <property name="applyToPrivate" value="true" />
 | 
					 | 
				
			||||||
            <property name="applyToPackage" value="true" />
 | 
					 | 
				
			||||||
        </module>
 | 
					 | 
				
			||||||
        <module name="MethodName" />
 | 
					        <module name="MethodName" />
 | 
				
			||||||
        <module name="MethodTypeParameterName" />
 | 
					        <module name="MethodTypeParameterName" />
 | 
				
			||||||
        <module name="PackageName">
 | 
					        <module name="PackageName">
 | 
				
			||||||
            <property name="format" value="^dan200\.computercraf(\.[a-z][a-z0-9]*)*" />
 | 
					            <property name="format" value="^dan200\.computercraft(\.[a-z][a-z0-9]*)*" />
 | 
				
			||||||
        </module>
 | 
					        </module>
 | 
				
			||||||
        <module name="ParameterName" />
 | 
					        <module name="ParameterName" />
 | 
				
			||||||
        <module name="StaticVariableName">
 | 
					        <module name="StaticVariableName">
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										24
									
								
								doc/events/char.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								doc/events/char.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					module: [kind=event] char
 | 
				
			||||||
 | 
					see: key To listen to any key press.
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The @{char} event is fired when a character is _typed_ on the keyboard.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The @{char} event is different to a key press. Sometimes multiple key presses may result in one character being
 | 
				
			||||||
 | 
					typed (for instance, on some European keyboards). Similarly, some keys (e.g. <kbd>Ctrl</kbd>) do not have any
 | 
				
			||||||
 | 
					corresponding character. The @{key} should be used if you want to listen to key presses themselves.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Return values
 | 
				
			||||||
 | 
					1. @{string}: The event name.
 | 
				
			||||||
 | 
					2. @{string}: The string representing the character that was pressed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Example
 | 
				
			||||||
 | 
					Prints each character the user presses:
 | 
				
			||||||
 | 
					```lua
 | 
				
			||||||
 | 
					while true do
 | 
				
			||||||
 | 
					  local event, character = os.pullEvent("char")
 | 
				
			||||||
 | 
					  print(character .. " was pressed.")
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
							
								
								
									
										26
									
								
								doc/events/key.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								doc/events/key.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					module: [kind=event] key
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This event is fired when any key is pressed while the terminal is focused.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This event returns a numerical "key code" (for instance, <kbd>F1</kbd> is 290). This value may vary between versions and
 | 
				
			||||||
 | 
					so it is recommended to use the constants in the @{keys} API rather than hard coding numeric values.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If the button pressed represented a printable character, then the @{key} event will be followed immediately by a @{char}
 | 
				
			||||||
 | 
					event. If you are consuming text input, use a @{char} event instead!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Return values
 | 
				
			||||||
 | 
					1. [`string`]: The event name.
 | 
				
			||||||
 | 
					2. [`number`]: The numerical key value of the key pressed.
 | 
				
			||||||
 | 
					3. [`boolean`]: Whether the key event was generated while holding the key (@{true}), rather than pressing it the first time (@{false}).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Example
 | 
				
			||||||
 | 
					Prints each key when the user presses it, and if the key is being held.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```lua
 | 
				
			||||||
 | 
					while true do
 | 
				
			||||||
 | 
					  local event, key, is_held = os.pullEvent("key")  
 | 
				
			||||||
 | 
					  print(("%s held=%s"):format(keys.getName(key), is_held))
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
							
								
								
									
										24
									
								
								doc/events/key_up.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								doc/events/key_up.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					module: [kind=event] key_up
 | 
				
			||||||
 | 
					see: keys For a lookup table of the given keys.
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fired whenever a key is released (or the terminal is closed while a key was being pressed).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This event returns a numerical "key code" (for instance, <kbd>F1</kbd> is 290). This value may vary between versions and
 | 
				
			||||||
 | 
					so it is recommended to use the constants in the @{keys} API rather than hard coding numeric values.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Return values
 | 
				
			||||||
 | 
					1. @{string}: The event name.
 | 
				
			||||||
 | 
					2. @{number}: The numerical key value of the key pressed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Example
 | 
				
			||||||
 | 
					Prints each key released on the keyboard whenever a @{key_up} event is fired.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```lua
 | 
				
			||||||
 | 
					while true do
 | 
				
			||||||
 | 
					  local event, key = os.pullEvent("key_up")
 | 
				
			||||||
 | 
					  local name = keys.getName(key) or "unknown key"
 | 
				
			||||||
 | 
					  print(name .. " was released.")
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
							
								
								
									
										34
									
								
								doc/events/mouse_click.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								doc/events/mouse_click.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					module: [kind=event] mouse_click
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This event is fired when the terminal is clicked with a mouse. This event is only fired on advanced computers (including
 | 
				
			||||||
 | 
					advanced turtles and pocket computers).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Return values
 | 
				
			||||||
 | 
					1. @{string}: The event name.
 | 
				
			||||||
 | 
					2. @{number}: The mouse button that was clicked.
 | 
				
			||||||
 | 
					3. @{number}: The X-coordinate of the click.
 | 
				
			||||||
 | 
					4. @{number}: The Y-coordinate of the click.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Mouse buttons
 | 
				
			||||||
 | 
					Several mouse events (@{mouse_click}, @{mouse_up}, @{mouse_scroll}) contain a "mouse button" code. This takes a
 | 
				
			||||||
 | 
					numerical value depending on which button on your mouse was last pressed when this event occurred.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<table class="pretty-table">
 | 
				
			||||||
 | 
					    <!-- Our markdown parser doesn't work on tables!? Guess I'll have to roll my own soonish :/. -->
 | 
				
			||||||
 | 
					    <tr><th>Button code</th><th>Mouse button</th></tr>
 | 
				
			||||||
 | 
					    <tr><td align="right">1</td><td>Left button</td></tr>
 | 
				
			||||||
 | 
					    <tr><td align="right">2</td><td>Middle button</td></tr>
 | 
				
			||||||
 | 
					    <tr><td align="right">3</td><td>Right button</td></tr>
 | 
				
			||||||
 | 
					</table>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Example
 | 
				
			||||||
 | 
					Print the button and the coordinates whenever the mouse is clicked.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```lua
 | 
				
			||||||
 | 
					while true do
 | 
				
			||||||
 | 
					  local event, button, x, y = os.pullEvent("mouse_click")
 | 
				
			||||||
 | 
					  print(("The mouse button %s was pressed at %d, %d"):format(button, x, y))
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
							
								
								
									
										24
									
								
								doc/events/mouse_drag.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								doc/events/mouse_drag.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					module: [kind=event] mouse_drag
 | 
				
			||||||
 | 
					see: mouse_click For when a mouse button is initially pressed.
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This event is fired every time the mouse is moved while a mouse button is being held.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Return values
 | 
				
			||||||
 | 
					1. @{string}: The event name.
 | 
				
			||||||
 | 
					2. @{number}: The [mouse button](mouse_click.html#Mouse_buttons) that is being pressed.
 | 
				
			||||||
 | 
					3. @{number}: The X-coordinate of the mouse.
 | 
				
			||||||
 | 
					4. @{number}: The Y-coordinate of the mouse.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Example
 | 
				
			||||||
 | 
					Print the button and the coordinates whenever the mouse is dragged.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```lua
 | 
				
			||||||
 | 
					while true do
 | 
				
			||||||
 | 
					  local event, button, x, y = os.pullEvent("mouse_drag")
 | 
				
			||||||
 | 
					  print(("The mouse button %s was dragged at %d, %d"):format(button, x, y))
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										21
									
								
								doc/events/mouse_scroll.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								doc/events/mouse_scroll.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					module: [kind=event] mouse_scroll
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This event is fired when a mouse wheel is scrolled in the terminal.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Return values
 | 
				
			||||||
 | 
					1. @{string}: The event name.
 | 
				
			||||||
 | 
					2. @{number}: The direction of the scroll. (-1 = up, 1 = down)
 | 
				
			||||||
 | 
					3. @{number}: The X-coordinate of the mouse when scrolling.
 | 
				
			||||||
 | 
					4. @{number}: The Y-coordinate of the mouse when scrolling.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Example
 | 
				
			||||||
 | 
					Prints the direction of each scroll, and the position of the mouse at the time.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```lua
 | 
				
			||||||
 | 
					while true do
 | 
				
			||||||
 | 
					  local event, dir, x, y = os.pullEvent("mouse_scroll")
 | 
				
			||||||
 | 
					  print(("The mouse was scrolled in direction %s at %d, %d"):format(dir, x, y))
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
							
								
								
									
										24
									
								
								doc/events/mouse_up.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								doc/events/mouse_up.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					module: [kind=event] mouse_up
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This event is fired when a mouse button is released or a held mouse leaves the computer's terminal.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Return values
 | 
				
			||||||
 | 
					1. @{string}: The event name.
 | 
				
			||||||
 | 
					2. @{number}: The [mouse button](mouse_click.html#Mouse_buttons) that was released.
 | 
				
			||||||
 | 
					3. @{number}: The X-coordinate of the mouse.
 | 
				
			||||||
 | 
					4. @{number}: The Y-coordinate of the mouse.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Example
 | 
				
			||||||
 | 
					Prints the coordinates and button number whenever the mouse is released.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```lua
 | 
				
			||||||
 | 
					while true do
 | 
				
			||||||
 | 
					  local event, button, x, y = os.pullEvent("mouse_up")
 | 
				
			||||||
 | 
					  print(("The mouse button %s was released at %d, %d"):format(button, x, y))
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[`string`]: string
 | 
				
			||||||
 | 
					[`number`]: number
 | 
				
			||||||
							
								
								
									
										1
									
								
								doc/head.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								doc/head.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					<meta name="theme-color" content="#c8d87c">
 | 
				
			||||||
@@ -15,7 +15,7 @@
 | 
				
			|||||||
function isDriveRoot(path) end
 | 
					function isDriveRoot(path) end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
--[[- Provides completion for a file or directory name, suitable for use with
 | 
					--[[- Provides completion for a file or directory name, suitable for use with
 | 
				
			||||||
@{read}.
 | 
					@{_G.read}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
When a directory is a possible candidate for completion, two entries are
 | 
					When a directory is a possible candidate for completion, two entries are
 | 
				
			||||||
included - one with a trailing slash (indicating that entries within this
 | 
					included - one with a trailing slash (indicating that entries within this
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										125
									
								
								doc/stub/global.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								doc/stub/global.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,125 @@
 | 
				
			|||||||
 | 
					--[[-
 | 
				
			||||||
 | 
					Functions in the global environment, defined in `bios.lua`. This does not
 | 
				
			||||||
 | 
					include standard Lua functions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@module _G
 | 
				
			||||||
 | 
					]]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--[[- Pauses execution for the specified number of seconds.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					As it waits for a fixed amount of world ticks, `time` will automatically be
 | 
				
			||||||
 | 
					rounded up to the nearest multiple of 0.05 seconds. If you are using coroutines
 | 
				
			||||||
 | 
					or the @{parallel|parallel API}, it will only pause execution of the current
 | 
				
			||||||
 | 
					thread, not the whole program.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Note** Because sleep internally uses timers, it is a function that yields.
 | 
				
			||||||
 | 
					This means that you can use it to prevent "Too long without yielding" errors,
 | 
				
			||||||
 | 
					however, as the minimum sleep time is 0.05 seconds, it will slow your program
 | 
				
			||||||
 | 
					down.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Warning** Internally, this function queues and waits for a timer event (using
 | 
				
			||||||
 | 
					@{os.startTimer}), however it does not listen for any other events. This means
 | 
				
			||||||
 | 
					that any event that occurs while sleeping will be entirely discarded. If you
 | 
				
			||||||
 | 
					need to receive events while sleeping, consider using @{os.startTimer|timers},
 | 
				
			||||||
 | 
					or the @{parallel|parallel API}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@tparam number time The number of seconds to sleep for, rounded up to the
 | 
				
			||||||
 | 
					nearest multiple of 0.05.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@see os.startTimer
 | 
				
			||||||
 | 
					@usage Sleep for three seconds.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    print("Sleeping for three seconds")
 | 
				
			||||||
 | 
					    sleep(3)
 | 
				
			||||||
 | 
					    print("Done!")
 | 
				
			||||||
 | 
					]]
 | 
				
			||||||
 | 
					function sleep(time) end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--- Writes a line of text to the screen without a newline at the end, wrapping
 | 
				
			||||||
 | 
					-- text if necessary.
 | 
				
			||||||
 | 
					--
 | 
				
			||||||
 | 
					-- @tparam string text The text to write to the string
 | 
				
			||||||
 | 
					-- @treturn number The number of lines written
 | 
				
			||||||
 | 
					-- @see print A wrapper around write that adds a newline and accepts multiple arguments
 | 
				
			||||||
 | 
					-- @usage write("Hello, world")
 | 
				
			||||||
 | 
					function write(text) end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--- Prints the specified values to the screen separated by spaces, wrapping if
 | 
				
			||||||
 | 
					-- necessary. After printing, the cursor is moved to the next line.
 | 
				
			||||||
 | 
					--
 | 
				
			||||||
 | 
					-- @param ... The values to print on the screen
 | 
				
			||||||
 | 
					-- @treturn number The number of lines written
 | 
				
			||||||
 | 
					-- @usage print("Hello, world!")
 | 
				
			||||||
 | 
					function print(...) end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--- Prints the specified values to the screen in red, separated by spaces,
 | 
				
			||||||
 | 
					-- wrapping if necessary. After printing, the cursor is moved to the next line.
 | 
				
			||||||
 | 
					--
 | 
				
			||||||
 | 
					-- @param ... The values to print on the screen
 | 
				
			||||||
 | 
					-- @usage printError("Something went wrong!")
 | 
				
			||||||
 | 
					function printError(...) end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--[[- Reads user input from the terminal, automatically handling arrow keys,
 | 
				
			||||||
 | 
					pasting, character replacement, history scrollback, auto-completion, and
 | 
				
			||||||
 | 
					default values.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@tparam[opt] string replaceChar A character to replace each typed character with.
 | 
				
			||||||
 | 
					This can be used for hiding passwords, for example.
 | 
				
			||||||
 | 
					@tparam[opt] table history A table holding history items that can be scrolled
 | 
				
			||||||
 | 
					back to with the up/down arrow keys. The oldest item is at index 1, while the
 | 
				
			||||||
 | 
					newest item is at the highest index.
 | 
				
			||||||
 | 
					@tparam[opt] function(partial: string):({ string... }|nil) completeFn A function
 | 
				
			||||||
 | 
					to be used for completion. This function should take the partial text typed so
 | 
				
			||||||
 | 
					far, and returns a list of possible completion options.
 | 
				
			||||||
 | 
					@tparam[opt] string default Default text which should already be entered into
 | 
				
			||||||
 | 
					the prompt.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@treturn string The text typed in.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@see cc.completion For functions to help with completion.
 | 
				
			||||||
 | 
					@usage Read an string and echo it back to the user
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    write("> ")
 | 
				
			||||||
 | 
					    local msg = read()
 | 
				
			||||||
 | 
					    print(msg)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@usage Prompt a user for a password.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    while true do
 | 
				
			||||||
 | 
					      write("Password> ")
 | 
				
			||||||
 | 
					      local pwd = read("*")
 | 
				
			||||||
 | 
					      if pwd == "let me in" then break end
 | 
				
			||||||
 | 
					      print("Incorrect password, try again.")
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					    print("Logged in!")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@usage A complete example with completion, history and a default value.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    local completion = require "cc.completion"
 | 
				
			||||||
 | 
					    local history = { "potato", "orange", "apple" }
 | 
				
			||||||
 | 
					    local choices = { "apple", "orange", "banana", "strawberry" }
 | 
				
			||||||
 | 
					    write("> ")
 | 
				
			||||||
 | 
					    local msg = read(nil, history, function(text) return completion.choice(text, choices) end, "app")
 | 
				
			||||||
 | 
					    print(msg)
 | 
				
			||||||
 | 
					]]
 | 
				
			||||||
 | 
					function read(replaceChar, history, completeFn, default) end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--- The ComputerCraft and Minecraft version of the current computer environment.
 | 
				
			||||||
 | 
					--
 | 
				
			||||||
 | 
					-- For example, `ComputerCraft 1.93.0 (Minecraft 1.15.2)`.
 | 
				
			||||||
 | 
					-- @usage _HOST
 | 
				
			||||||
 | 
					_HOST = _HOST
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--[[- The default computer settings as defined in the ComputerCraft
 | 
				
			||||||
 | 
					configuration.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This is a comma-separated list of settings pairs defined by the mod
 | 
				
			||||||
 | 
					configuration or server owner. By default, it is empty.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					An example value to disable autocompletion:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    shell.autocomplete=false,lua.autocomplete=false,edit.autocomplete=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@usage _CC_DEFAULT_SETTINGS
 | 
				
			||||||
 | 
					]]
 | 
				
			||||||
 | 
					_CC_DEFAULT_SETTINGS = _CC_DEFAULT_SETTINGS
 | 
				
			||||||
@@ -1,8 +1,6 @@
 | 
				
			|||||||
--- The http library allows communicating with web servers, sending and
 | 
					--- The http library allows communicating with web servers, sending and
 | 
				
			||||||
-- receiving data from them.
 | 
					-- receiving data from them.
 | 
				
			||||||
--
 | 
					--
 | 
				
			||||||
-- #### `http_check` event
 | 
					 | 
				
			||||||
--
 | 
					 | 
				
			||||||
-- @module http
 | 
					-- @module http
 | 
				
			||||||
 | 
					
 | 
				
			||||||
--- Asynchronously make a HTTP request to the given url.
 | 
					--- Asynchronously make a HTTP request to the given url.
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										119
									
								
								doc/stub/os.lua
									
									
									
									
									
								
							
							
						
						
									
										119
									
								
								doc/stub/os.lua
									
									
									
									
									
								
							@@ -1,6 +1,125 @@
 | 
				
			|||||||
-- Defined in bios.lua
 | 
					-- Defined in bios.lua
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--[[- Loads the given API into the global environment.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Warning** This function is deprecated. Use of this function will pollute the
 | 
				
			||||||
 | 
					global table, use @{require} instead.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This function loads and executes the file at the given path, and all global
 | 
				
			||||||
 | 
					variables and functions exported by it will by available through the use of
 | 
				
			||||||
 | 
					`myAPI.<function name>`, where `myAPI` is the base name of the API file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@tparam string path The path of the API to load.
 | 
				
			||||||
 | 
					@treturn boolean Whether or not the API was successfully loaded.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@deprecated Use @{require}.
 | 
				
			||||||
 | 
					]]
 | 
				
			||||||
function loadAPI(path) end
 | 
					function loadAPI(path) end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--- Unloads an API which was loaded by @{os.loadAPI}.
 | 
				
			||||||
 | 
					--
 | 
				
			||||||
 | 
					-- This effectively removes the specified table from `_G`.
 | 
				
			||||||
 | 
					--
 | 
				
			||||||
 | 
					-- @tparam string name The name of the API to unload.
 | 
				
			||||||
 | 
					-- @deprecated Use @{require}.
 | 
				
			||||||
 | 
					function unloadAPI(name) end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--[[- Pause execution of the current thread and waits for any events matching
 | 
				
			||||||
 | 
					`filter`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This function @{coroutine.yield|yields} the current process and waits for it
 | 
				
			||||||
 | 
					to be resumed with a vararg list where the first element matches `filter`.
 | 
				
			||||||
 | 
					If no `filter` is supplied, this will match all events.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Unlike @{os.pullEventRaw}, it will stop the application upon a "terminate"
 | 
				
			||||||
 | 
					event, printing the error "Terminated".
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@tparam[opt] string filter Event to filter for.
 | 
				
			||||||
 | 
					@treturn string event The name of the event that fired.
 | 
				
			||||||
 | 
					@treturn any param... Optional additional parameters of the event.
 | 
				
			||||||
 | 
					@usage Listen for `mouse_click` events.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    while true do
 | 
				
			||||||
 | 
					        local event, button, x, y = os.pullEvent("mouse_click")
 | 
				
			||||||
 | 
					        print("Button", button, "was clicked at", x, ",", y)
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@usage Listen for multiple events.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    while true do
 | 
				
			||||||
 | 
					        local eventData = {os.pullEvent()}
 | 
				
			||||||
 | 
					        local event = eventData[1]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if event == "mouse_click" then
 | 
				
			||||||
 | 
					            print("Button", eventData[2], "was clicked at", eventData[3], ",", eventData[4])
 | 
				
			||||||
 | 
					        elseif event == "key" then
 | 
				
			||||||
 | 
					            print("Key code", eventData[2], "was pressed")
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@see os.pullEventRaw To pull the terminate event.
 | 
				
			||||||
 | 
					]]
 | 
				
			||||||
function pullEvent(filter) end
 | 
					function pullEvent(filter) end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--[[- Pause execution of the current thread and waits for events, including the
 | 
				
			||||||
 | 
					`terminate` event.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This behaves almost the same as @{os.pullEvent}, except it allows you to handle
 | 
				
			||||||
 | 
					the `terminate` event yourself - the program will not stop execution when
 | 
				
			||||||
 | 
					<kbd>Ctrl+T</kbd> is pressed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@tparam[opt] string filter Event to filter for.
 | 
				
			||||||
 | 
					@treturn string event The name of the event that fired.
 | 
				
			||||||
 | 
					@treturn any param... Optional additional parameters of the event.
 | 
				
			||||||
 | 
					@usage Listen for `terminate` events.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    while true do
 | 
				
			||||||
 | 
					        local event = os.pullEventRaw()
 | 
				
			||||||
 | 
					        if event == "terminate" then
 | 
				
			||||||
 | 
					            print("Caught terminate event!")
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@see os.pullEvent To pull events normally.
 | 
				
			||||||
 | 
					]]
 | 
				
			||||||
function pullEventRaw(filter) end
 | 
					function pullEventRaw(filter) end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--- Pauses execution for the specified number of seconds, alias of @{_G.sleep}.
 | 
				
			||||||
 | 
					--
 | 
				
			||||||
 | 
					-- @tparam number time The number of seconds to sleep for, rounded up to the
 | 
				
			||||||
 | 
					-- nearest multiple of 0.05.
 | 
				
			||||||
 | 
					function sleep(time) end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--- Get the current CraftOS version (for example, `CraftOS 1.8`).
 | 
				
			||||||
 | 
					--
 | 
				
			||||||
 | 
					-- This is defined by `bios.lua`. For the current version of CC:Tweaked, this
 | 
				
			||||||
 | 
					-- should return `CraftOS 1.8`.
 | 
				
			||||||
 | 
					--
 | 
				
			||||||
 | 
					-- @treturn string The current CraftOS version.
 | 
				
			||||||
 | 
					-- @usage os.version()
 | 
				
			||||||
function version() end
 | 
					function version() end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--[[- Run the program at the given path with the specified environment and
 | 
				
			||||||
 | 
					arguments.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This function does not resolve program names like the shell does. This means
 | 
				
			||||||
 | 
					that, for example, `os.run("edit")` will not work. As well as this, it does not
 | 
				
			||||||
 | 
					provide access to the @{shell} API in the environment. For this behaviour, use
 | 
				
			||||||
 | 
					@{shell.run} instead.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If the program cannot be found, or failed to run, it will print the error and
 | 
				
			||||||
 | 
					return `false`. If you want to handle this more gracefully, use an alternative
 | 
				
			||||||
 | 
					such as @{loadfile}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@tparam table env The environment to run the program with.
 | 
				
			||||||
 | 
					@tparam string path The exact path of the program to run.
 | 
				
			||||||
 | 
					@param ... The arguments to pass to the program.
 | 
				
			||||||
 | 
					@treturn boolean Whether or not the program ran successfully.
 | 
				
			||||||
 | 
					@usage Run the default shell from within your program:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    os.run({}, "/rom/programs/shell.lua")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@see shell.run
 | 
				
			||||||
 | 
					@see loadfile
 | 
				
			||||||
 | 
					]]
 | 
				
			||||||
function run(env, path, ...) end
 | 
					function run(env, path, ...) end
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										191
									
								
								doc/styles.css
									
									
									
									
									
								
							
							
						
						
									
										191
									
								
								doc/styles.css
									
									
									
									
									
								
							@@ -1,191 +0,0 @@
 | 
				
			|||||||
/* Basic reset on elements */
 | 
					 | 
				
			||||||
h1, h2, h3, h4, p, table, div, body {
 | 
					 | 
				
			||||||
    margin: 0;
 | 
					 | 
				
			||||||
    padding: 0;
 | 
					 | 
				
			||||||
    border: 0;
 | 
					 | 
				
			||||||
    font-size: 100%;
 | 
					 | 
				
			||||||
    font: inherit;
 | 
					 | 
				
			||||||
    vertical-align: baseline;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
/* Make the page a little more airy */
 | 
					 | 
				
			||||||
body {
 | 
					 | 
				
			||||||
    margin: 20px auto;
 | 
					 | 
				
			||||||
    max-width: 1200px;
 | 
					 | 
				
			||||||
    padding: 0 10px;
 | 
					 | 
				
			||||||
    line-height: 1.6;
 | 
					 | 
				
			||||||
    color: #222;
 | 
					 | 
				
			||||||
    background: #fff;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Try to use system default fonts. */
 | 
					 | 
				
			||||||
body {
 | 
					 | 
				
			||||||
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans",
 | 
					 | 
				
			||||||
                 "Droid Sans", "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
code, pre, .parameter, .type, .definition-name, .reference-code {
 | 
					 | 
				
			||||||
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Some definitions of basic tags */
 | 
					 | 
				
			||||||
code {
 | 
					 | 
				
			||||||
    color: #c7254e;
 | 
					 | 
				
			||||||
    background-color: #f9f2f4;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
p {
 | 
					 | 
				
			||||||
    margin: 0.9em 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
h1 {
 | 
					 | 
				
			||||||
    font-size: 1.5em;
 | 
					 | 
				
			||||||
    font-weight: lighter;
 | 
					 | 
				
			||||||
    border-bottom: solid 1px #aaa;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
h2, h3, h4 { margin: 1.4em 0 0.3em;}
 | 
					 | 
				
			||||||
h2 { font-size: 1.25em; }
 | 
					 | 
				
			||||||
h3 { font-size: 1.15em; font-weight: bold; }
 | 
					 | 
				
			||||||
h4 { font-size: 1.06em; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
a, a:visited, a:active { font-weight: bold; color: #004080; text-decoration: none; }
 | 
					 | 
				
			||||||
a:hover { text-decoration: underline; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
blockquote {
 | 
					 | 
				
			||||||
    padding: 0.3em;
 | 
					 | 
				
			||||||
    margin: 1em 0;
 | 
					 | 
				
			||||||
    background: #f0f0f0;
 | 
					 | 
				
			||||||
    border-left: solid 0.5em #ccc;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Stop sublists from having initial vertical space */
 | 
					 | 
				
			||||||
ul ul { margin-top: 0px; }
 | 
					 | 
				
			||||||
ol ul { margin-top: 0px; }
 | 
					 | 
				
			||||||
ol ol { margin-top: 0px; }
 | 
					 | 
				
			||||||
ul ol { margin-top: 0px; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Make the target distinct; helps when we're navigating to a function */
 | 
					 | 
				
			||||||
a:target + * { background-color: #FFFF99; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Allow linking to any subsection */
 | 
					 | 
				
			||||||
a[name]::before { content: "#"; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Layout */
 | 
					 | 
				
			||||||
#main {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    flex-wrap: nowrap;
 | 
					 | 
				
			||||||
    justify-content: space-between;
 | 
					 | 
				
			||||||
    min-height: calc(100vh - 100px);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#main > nav {
 | 
					 | 
				
			||||||
    flex-basis: 30%;
 | 
					 | 
				
			||||||
    min-width: 150px;
 | 
					 | 
				
			||||||
    max-width: 250px;
 | 
					 | 
				
			||||||
    background-color: #f0f0f0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
nav h1, nav ul { padding: 0em 10px; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
nav h2 {
 | 
					 | 
				
			||||||
    background-color:#e7e7e7;
 | 
					 | 
				
			||||||
    font-size: 1.1em;
 | 
					 | 
				
			||||||
    color:#000000;
 | 
					 | 
				
			||||||
    padding: 5px 10px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
nav ul {
 | 
					 | 
				
			||||||
    list-style-type: none;
 | 
					 | 
				
			||||||
    margin: 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#content {
 | 
					 | 
				
			||||||
    flex-shrink: 1;
 | 
					 | 
				
			||||||
    flex-basis: 80%;
 | 
					 | 
				
			||||||
    padding: 0px 10px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
footer {
 | 
					 | 
				
			||||||
    text-align: right;
 | 
					 | 
				
			||||||
    font-size: 0.8em;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* The definition lists at the top of each page */
 | 
					 | 
				
			||||||
table.definition-list {
 | 
					 | 
				
			||||||
    border-collapse: collapse;
 | 
					 | 
				
			||||||
    width: 100%;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
table.definition-list td, table.definition-list th {
 | 
					 | 
				
			||||||
    border: 1px solid #cccccc;
 | 
					 | 
				
			||||||
    padding: 5px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
table.definition-list th {
 | 
					 | 
				
			||||||
    background-color: #f0f0f0;
 | 
					 | 
				
			||||||
    min-width: 200px;
 | 
					 | 
				
			||||||
    white-space: nowrap;
 | 
					 | 
				
			||||||
    text-align: right;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
table.definition-list td { width: 100%; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
dl.definition dt {
 | 
					 | 
				
			||||||
    border-top: 1px solid #ccc;
 | 
					 | 
				
			||||||
    padding-top: 1em;
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
dl.definition dt .definition-name {
 | 
					 | 
				
			||||||
    padding: 0 0.1em;
 | 
					 | 
				
			||||||
    margin: 0 0.1em;
 | 
					 | 
				
			||||||
    flex-grow: 1;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
dl.definition dd {
 | 
					 | 
				
			||||||
    padding-bottom: 1em;
 | 
					 | 
				
			||||||
    margin: 10px 0 0 20px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
dl.definition h3 {
 | 
					 | 
				
			||||||
    font-size: .95em;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Links to source-code */
 | 
					 | 
				
			||||||
.source-link { font-size: 0.8em; }
 | 
					 | 
				
			||||||
.source-link::before { content: '[' }
 | 
					 | 
				
			||||||
.source-link::after  { content: ']' }
 | 
					 | 
				
			||||||
a.source-link, a.source-link:visited, a.source-link:active { color: #505050; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Method definitions */
 | 
					 | 
				
			||||||
span.parameter:after { content:":"; padding-left: 0.3em; }
 | 
					 | 
				
			||||||
.optional { text-decoration: underline dotted; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/** Fancy colour display. */
 | 
					 | 
				
			||||||
.colour-ref {
 | 
					 | 
				
			||||||
    display: inline-block;
 | 
					 | 
				
			||||||
    width: 0.8em;
 | 
					 | 
				
			||||||
    height: 0.8em;
 | 
					 | 
				
			||||||
    margin: 0.1em 0.1em 0.3em 0.1em; /* Terrrible hack to force vertical alignment. */
 | 
					 | 
				
			||||||
    border: solid 1px black;
 | 
					 | 
				
			||||||
    box-sizing: border-box;
 | 
					 | 
				
			||||||
    vertical-align: middle;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* styles for prettification of source */
 | 
					 | 
				
			||||||
.highlight .comment { color: #558817; }
 | 
					 | 
				
			||||||
.highlight .constant { color: #a8660d; }
 | 
					 | 
				
			||||||
.highlight .escape { color: #844631; }
 | 
					 | 
				
			||||||
.highlight .keyword { color: #aa5050; font-weight: bold; }
 | 
					 | 
				
			||||||
.highlight .library { color: #0e7c6b; }
 | 
					 | 
				
			||||||
.highlight .marker { color: #512b1e; background: #fedc56; font-weight: bold; }
 | 
					 | 
				
			||||||
.highlight .string { color: #8080ff; }
 | 
					 | 
				
			||||||
.highlight .literal-kw { color: #8080ff; }
 | 
					 | 
				
			||||||
.highlight .number { color: #f8660d; }
 | 
					 | 
				
			||||||
.highlight .operator { color: #2239a8; font-weight: bold; }
 | 
					 | 
				
			||||||
.highlight .preprocessor, pre .prepro { color: #a33243; }
 | 
					 | 
				
			||||||
.highlight .global { color: #800080; }
 | 
					 | 
				
			||||||
.highlight .user-keyword { color: #800080; }
 | 
					 | 
				
			||||||
.highlight .prompt { color: #558817; }
 | 
					 | 
				
			||||||
.highlight .url { color: #272fc2; text-decoration: underline; }
 | 
					 | 
				
			||||||
@@ -1,7 +1,6 @@
 | 
				
			|||||||
# Mod properties
 | 
					# Mod properties
 | 
				
			||||||
mod_version=1.91.0
 | 
					mod_version=1.95.2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Minecraft properties (update mods.toml when changing)
 | 
					# Minecraft properties (update mods.toml when changing)
 | 
				
			||||||
mc_version=1.15.2
 | 
					mc_version=1.16.4
 | 
				
			||||||
forge_version=31.1.41
 | 
					forge_version=35.1.16
 | 
				
			||||||
mappings_version=20200429-1.15.1
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,31 +2,44 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
(sources
 | 
					(sources
 | 
				
			||||||
  /doc/stub/
 | 
					  /doc/stub/
 | 
				
			||||||
  /doc/javadoc/
 | 
					  /doc/events/
 | 
				
			||||||
 | 
					  /build/docs/luaJavadoc/
 | 
				
			||||||
  /src/main/resources/*/computercraft/lua/bios.lua
 | 
					  /src/main/resources/*/computercraft/lua/bios.lua
 | 
				
			||||||
  /src/main/resources/*/computercraft/lua/rom/
 | 
					  /src/main/resources/*/computercraft/lua/rom/
 | 
				
			||||||
  /src/test/resources/test-rom)
 | 
					  /src/test/resources/test-rom
 | 
				
			||||||
 | 
					  /src/web/mount)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(doc
 | 
					(doc
 | 
				
			||||||
  (title "CC: Tweaked")
 | 
					  (destination build/docs/lua)
 | 
				
			||||||
  (index doc/index.md)
 | 
					  (index doc/index.md)
 | 
				
			||||||
  (source-link https://github.com/SquidDev-CC/CC-Tweaked/blob/${commit}/${path}#L${line})
 | 
					
 | 
				
			||||||
 | 
					  (site
 | 
				
			||||||
 | 
					    (title "CC: Tweaked")
 | 
				
			||||||
 | 
					    (logo src/main/resources/pack.png)
 | 
				
			||||||
 | 
					    (url https://tweaked.cc/)
 | 
				
			||||||
 | 
					    (source-link https://github.com/SquidDev-CC/CC-Tweaked/blob/${commit}/${path}#L${line})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    (styles src/web/styles.css)
 | 
				
			||||||
 | 
					    (scripts build/rollup/index.js)
 | 
				
			||||||
 | 
					    (head doc/head.html))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  (module-kinds
 | 
					  (module-kinds
 | 
				
			||||||
    (peripheral Peripherals))
 | 
					    (peripheral Peripherals)
 | 
				
			||||||
 | 
					    (generic_peripheral "Generic Peripherals")
 | 
				
			||||||
 | 
					    (event Events))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  (library-path
 | 
					  (library-path
 | 
				
			||||||
    /doc/stub/
 | 
					    /doc/stub/
 | 
				
			||||||
    /doc/javadoc/
 | 
					    /build/docs/luaJavadoc/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /src/main/resources/*/computercraft/lua/rom/apis
 | 
					    /src/main/resources/*/computercraft/lua/rom/apis/
 | 
				
			||||||
    /src/main/resources/*/computercraft/lua/rom/apis/command
 | 
					    /src/main/resources/*/computercraft/lua/rom/apis/command/
 | 
				
			||||||
    /src/main/resources/*/computercraft/lua/rom/apis/turtle
 | 
					    /src/main/resources/*/computercraft/lua/rom/apis/turtle/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /src/main/resources/*/computercraft/lua/rom/modules/main
 | 
					    /src/main/resources/*/computercraft/lua/rom/modules/main/
 | 
				
			||||||
    /src/main/resources/*/computercraft/lua/rom/modules/command
 | 
					    /src/main/resources/*/computercraft/lua/rom/modules/command/
 | 
				
			||||||
    /src/main/resources/*/computercraft/lua/rom/modules/turtle))
 | 
					    /src/main/resources/*/computercraft/lua/rom/modules/turtle/))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(at /
 | 
					(at /
 | 
				
			||||||
  (linters
 | 
					  (linters
 | 
				
			||||||
@@ -50,7 +63,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    ;; colours imports from colors, and we don't handle that right now.
 | 
					    ;; colours imports from colors, and we don't handle that right now.
 | 
				
			||||||
    ;; keys is entirely dynamic, so we skip it.
 | 
					    ;; keys is entirely dynamic, so we skip it.
 | 
				
			||||||
    (dynamic-modules colours keys)
 | 
					    (dynamic-modules colours keys _G)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    (globals
 | 
					    (globals
 | 
				
			||||||
      :max
 | 
					      :max
 | 
				
			||||||
@@ -69,7 +82,7 @@
 | 
				
			|||||||
  (lint (allow-toplevel-global true)))
 | 
					  (lint (allow-toplevel-global true)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; Silence some variable warnings in documentation stubs.
 | 
					;; Silence some variable warnings in documentation stubs.
 | 
				
			||||||
(at (/doc/stub/ /doc/javadoc/)
 | 
					(at (/doc/stub/ /build/docs/luaJavadoc/)
 | 
				
			||||||
  (linters -var:unused-global)
 | 
					  (linters -var:unused-global)
 | 
				
			||||||
  (lint (allow-toplevel-global true)))
 | 
					  (lint (allow-toplevel-global true)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -79,26 +92,24 @@
 | 
				
			|||||||
   /doc/stub/http.lua
 | 
					   /doc/stub/http.lua
 | 
				
			||||||
   /doc/stub/os.lua
 | 
					   /doc/stub/os.lua
 | 
				
			||||||
   /doc/stub/turtle.lua
 | 
					   /doc/stub/turtle.lua
 | 
				
			||||||
 | 
					   /doc/stub/global.lua
 | 
				
			||||||
   ; Java generated APIs
 | 
					   ; Java generated APIs
 | 
				
			||||||
   /doc/javadoc/turtle.lua
 | 
					   /build/docs/luaJavadoc/turtle.lua
 | 
				
			||||||
   ; Peripherals
 | 
					   ; Peripherals
 | 
				
			||||||
   /doc/javadoc/drive.lua
 | 
					   /build/docs/luaJavadoc/drive.lua
 | 
				
			||||||
   /doc/javadoc/speaker.lua
 | 
					   /build/docs/luaJavadoc/speaker.lua
 | 
				
			||||||
   /doc/javadoc/printer.lua
 | 
					   /build/docs/luaJavadoc/printer.lua
 | 
				
			||||||
 | 
					   ; Generic peripherals
 | 
				
			||||||
 | 
					   /build/docs/luaJavadoc/fluid_storage.lua
 | 
				
			||||||
   ; Lua APIs
 | 
					   ; Lua APIs
 | 
				
			||||||
   /src/main/resources/*/computercraft/lua/rom/apis/io.lua
 | 
					   /src/main/resources/*/computercraft/lua/rom/apis/io.lua
 | 
				
			||||||
   /src/main/resources/*/computercraft/lua/rom/apis/window.lua)
 | 
					   /src/main/resources/*/computercraft/lua/rom/apis/window.lua)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  (linters -doc:undocumented -doc:undocumented-arg -doc:undocumented-return))
 | 
					  (linters -doc:undocumented -doc:undocumented-arg -doc:undocumented-return))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; These currently rely on unknown references.
 | 
					;; Suppress warnings for the BIOS using its own deprecated members for now.
 | 
				
			||||||
(at
 | 
					(at /src/main/resources/*/computercraft/lua/bios.lua
 | 
				
			||||||
  (/src/main/resources/*/computercraft/lua/rom/apis/textutils.lua
 | 
					  (linters -var:deprecated))
 | 
				
			||||||
   /src/main/resources/*/computercraft/lua/rom/modules/main/cc/completion.lua
 | 
					 | 
				
			||||||
   /src/main/resources/*/computercraft/lua/rom/modules/main/cc/shell/completion.lua
 | 
					 | 
				
			||||||
   /src/main/resources/*/computercraft/lua/rom/programs/shell.lua
 | 
					 | 
				
			||||||
   /doc/stub/fs.lua)
 | 
					 | 
				
			||||||
  (linters -doc:unresolved-reference))
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
(at /src/test/resources/test-rom
 | 
					(at /src/test/resources/test-rom
 | 
				
			||||||
  ; We should still be able to test deprecated members.
 | 
					  ; We should still be able to test deprecated members.
 | 
				
			||||||
@@ -108,3 +119,5 @@
 | 
				
			|||||||
    (globals
 | 
					    (globals
 | 
				
			||||||
      :max sleep write
 | 
					      :max sleep write
 | 
				
			||||||
      cct_test describe expect howlci fail it pending stub)))
 | 
					      cct_test describe expect howlci fail it pending stub)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(at /src/web/mount/expr_template.lua (lint (globals :max __expr__)))
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										172
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										172
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,172 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "name": "tweaked.cc",
 | 
				
			||||||
 | 
					  "version": "1.0.0",
 | 
				
			||||||
 | 
					  "lockfileVersion": 1,
 | 
				
			||||||
 | 
					  "requires": true,
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@rollup/plugin-typescript": {
 | 
				
			||||||
 | 
					      "version": "6.1.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-6.1.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-hJxaiE6WyNOsK+fZpbFh9CUijZYqPQuAOWO5khaGTUkM8DYNNyA2TDlgamecE+qLOG1G1+CwbWMAx3rbqpp6xQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "@rollup/pluginutils": "^3.1.0",
 | 
				
			||||||
 | 
					        "resolve": "^1.17.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "@rollup/pluginutils": {
 | 
				
			||||||
 | 
					      "version": "3.1.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "@types/estree": "0.0.39",
 | 
				
			||||||
 | 
					        "estree-walker": "^1.0.1",
 | 
				
			||||||
 | 
					        "picomatch": "^2.2.2"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "@types/estree": {
 | 
				
			||||||
 | 
					      "version": "0.0.39",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "buffer-from": {
 | 
				
			||||||
 | 
					      "version": "1.1.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "commander": {
 | 
				
			||||||
 | 
					      "version": "2.20.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "estree-walker": {
 | 
				
			||||||
 | 
					      "version": "1.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "fsevents": {
 | 
				
			||||||
 | 
					      "version": "2.1.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "function-bind": {
 | 
				
			||||||
 | 
					      "version": "1.1.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "has": {
 | 
				
			||||||
 | 
					      "version": "1.0.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "function-bind": "^1.1.1"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "is-core-module": {
 | 
				
			||||||
 | 
					      "version": "2.1.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "has": "^1.0.3"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "path-parse": {
 | 
				
			||||||
 | 
					      "version": "1.0.6",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "picomatch": {
 | 
				
			||||||
 | 
					      "version": "2.2.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "preact": {
 | 
				
			||||||
 | 
					      "version": "10.5.5",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/preact/-/preact-10.5.5.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-5ONLNH1SXMzzbQoExZX4TELemNt+TEDb622xXFNfZngjjM9qtrzseJt+EfiUu4TZ6EJ95X5sE1ES4yqHFSIdhg=="
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "requirejs": {
 | 
				
			||||||
 | 
					      "version": "2.3.6",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "resolve": {
 | 
				
			||||||
 | 
					      "version": "1.18.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "is-core-module": "^2.0.0",
 | 
				
			||||||
 | 
					        "path-parse": "^1.0.6"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "rollup": {
 | 
				
			||||||
 | 
					      "version": "2.33.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.33.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-uY4O/IoL9oNW8MMcbA5hcOaz6tZTMIh7qJHx/tzIJm+n1wLoY38BLn6fuy7DhR57oNFLMbDQtDeJoFURt5933w==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "fsevents": "~2.1.2"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "source-map": {
 | 
				
			||||||
 | 
					      "version": "0.7.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "source-map-support": {
 | 
				
			||||||
 | 
					      "version": "0.5.19",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "buffer-from": "^1.0.0",
 | 
				
			||||||
 | 
					        "source-map": "^0.6.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "source-map": {
 | 
				
			||||||
 | 
					          "version": "0.6.1",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
 | 
				
			||||||
 | 
					          "dev": true
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "terser": {
 | 
				
			||||||
 | 
					      "version": "5.3.8",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.8.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-zVotuHoIfnYjtlurOouTazciEfL7V38QMAOhGqpXDEg6yT13cF4+fEP9b0rrCEQTn+tT46uxgFsTZzhygk+CzQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "commander": "^2.20.0",
 | 
				
			||||||
 | 
					        "source-map": "~0.7.2",
 | 
				
			||||||
 | 
					        "source-map-support": "~0.5.19"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "tslib": {
 | 
				
			||||||
 | 
					      "version": "2.0.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ=="
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "typescript": {
 | 
				
			||||||
 | 
					      "version": "4.0.5",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										18
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "name": "tweaked.cc",
 | 
				
			||||||
 | 
					  "version": "1.0.0",
 | 
				
			||||||
 | 
					  "description": "Website additions for tweaked.cc",
 | 
				
			||||||
 | 
					  "author": "SquidDev",
 | 
				
			||||||
 | 
					  "license": "BSD-3-Clause",
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "preact": "^10.5.5",
 | 
				
			||||||
 | 
					    "tslib": "^2.0.3"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "devDependencies": {
 | 
				
			||||||
 | 
					    "@rollup/plugin-typescript": "^6.1.0",
 | 
				
			||||||
 | 
					    "requirejs": "^2.3.6",
 | 
				
			||||||
 | 
					    "rollup": "^2.33.1",
 | 
				
			||||||
 | 
					    "terser": "^5.3.8",
 | 
				
			||||||
 | 
					    "typescript": "^4.0.5"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										55
									
								
								rollup.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								rollup.config.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,55 @@
 | 
				
			|||||||
 | 
					import { readFileSync, promises as fs } from "fs";
 | 
				
			||||||
 | 
					import path from "path";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import typescript from "@rollup/plugin-typescript";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const input = "src/web";
 | 
				
			||||||
 | 
					const requirejs = readFileSync("node_modules/requirejs/require.js");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					    input: [`${input}/index.tsx`],
 | 
				
			||||||
 | 
					    output: {
 | 
				
			||||||
 | 
					        file: "build/rollup/index.js",
 | 
				
			||||||
 | 
					        // We bundle requirejs (and config) into the header. It's rather gross
 | 
				
			||||||
 | 
					        // but also works reasonably well.
 | 
				
			||||||
 | 
					        banner: `${requirejs}\nrequire.config({ paths: { copycat: "https://copy-cat.squiddev.cc" } });`,
 | 
				
			||||||
 | 
					        format: "amd",
 | 
				
			||||||
 | 
					        preferConst: true,
 | 
				
			||||||
 | 
					        amd: {
 | 
				
			||||||
 | 
					            define: "require",
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    context: "window",
 | 
				
			||||||
 | 
					    external: ["copycat/embed"],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    plugins: [
 | 
				
			||||||
 | 
					        typescript(),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            name: "cc-tweaked",
 | 
				
			||||||
 | 
					            async options(options) {
 | 
				
			||||||
 | 
					                // Generate .d.ts files for all /mount files. This is the worst way to do it,
 | 
				
			||||||
 | 
					                // but we need to run before the TS pass.
 | 
				
			||||||
 | 
					                const template = "declare const contents : string;\nexport default contents;\n";
 | 
				
			||||||
 | 
					                const files = await fs.readdir(`${input}/mount`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                await Promise.all(files
 | 
				
			||||||
 | 
					                    .filter(x => path.extname(x) !== ".ts")
 | 
				
			||||||
 | 
					                    .map(async file => {
 | 
				
			||||||
 | 
					                        const path = `${input}/mount/${file}.d.ts`;
 | 
				
			||||||
 | 
					                        const contents = await fs.readFile(path, { encoding: "utf-8" }).catch(() => "");
 | 
				
			||||||
 | 
					                        if (contents !== template) await fs.writeFile(path, template);
 | 
				
			||||||
 | 
					                    })
 | 
				
			||||||
 | 
					                );
 | 
				
			||||||
 | 
					                return options;
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            async transform(code, file) {
 | 
				
			||||||
 | 
					                // Allow loading files in /mount.
 | 
				
			||||||
 | 
					                const ext = path.extname(file);
 | 
				
			||||||
 | 
					                return ext != '.tsx' && ext != '.ts' && path.dirname(file) === path.resolve(`${input}/mount`)
 | 
				
			||||||
 | 
					                    ? `export default ${JSON.stringify(code)};\n`
 | 
				
			||||||
 | 
					                    : null;
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -0,0 +1,49 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "variants": {
 | 
				
			||||||
 | 
					    "facing=north,state=off": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_advanced_off"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,state=off": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_advanced_off",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,state=off": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_advanced_off",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,state=off": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_advanced_off",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,state=on": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_advanced_on"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,state=on": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_advanced_on",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,state=on": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_advanced_on",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,state=on": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_advanced_on",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,state=blinking": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_advanced_blinking"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,state=blinking": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_advanced_blinking",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,state=blinking": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_advanced_blinking",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,state=blinking": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_advanced_blinking",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,49 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "variants": {
 | 
				
			||||||
 | 
					    "facing=north,state=off": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_command_off"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,state=off": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_command_off",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,state=off": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_command_off",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,state=off": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_command_off",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,state=on": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_command_on"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,state=on": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_command_on",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,state=on": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_command_on",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,state=on": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_command_on",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,state=blinking": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_command_blinking"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,state=blinking": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_command_blinking",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,state=blinking": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_command_blinking",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,state=blinking": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_command_blinking",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,49 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "variants": {
 | 
				
			||||||
 | 
					    "facing=north,state=off": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_normal_off"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,state=off": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_normal_off",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,state=off": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_normal_off",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,state=off": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_normal_off",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,state=on": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_normal_on"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,state=on": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_normal_on",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,state=on": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_normal_on",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,state=on": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_normal_on",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,state=blinking": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_normal_blinking"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,state=blinking": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_normal_blinking",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,state=blinking": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_normal_blinking",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,state=blinking": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/computer_normal_blinking",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,852 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "variants": {
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_l",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_l",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_l",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_l",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_l",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_l",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_l",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_l",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_l"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_l",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_l",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_l",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_r",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_r",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_r",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_r",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_r",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_r",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_r",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_r",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_r"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_r",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_r",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_r",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lr",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lr",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lr",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lr",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lr",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lr",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lr",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lr",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lr"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lr",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lr",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lr",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_u",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_u",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_u",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_u",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_u",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_u",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_u",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_u",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_u"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_u",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_u",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_u",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_d",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_d",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_d",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_d",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_d",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_d",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_d",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_d",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_d"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_d",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_d",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_d",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ud",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ud",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ud"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ud",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ud",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ud",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rd",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rd",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rd",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rd",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rd",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rd",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rd",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rd",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rd"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rd",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rd",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rd",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ld",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ld",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ld",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ld",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ld",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ld",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ld",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ld",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ld"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ld",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ld",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ld",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ru",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ru",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ru",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ru",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ru",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ru",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ru",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ru",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ru"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ru",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ru",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_ru",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lu",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lu",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lu",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lu",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lu",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lu",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lu",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lu",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lu"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lu",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lu",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lu",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrd",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrd",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrd",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrd",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrd",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrd",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrd",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrd",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrd"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrd",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrd",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrd",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rud",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rud",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rud"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rud",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rud",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_rud",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lud",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lud",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lud"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lud",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lud",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lud",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lru",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lru",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lru",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lru",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lru",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lru",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lru",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lru",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lru"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lru",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lru",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lru",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrud",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrud",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrud"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrud",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrud",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_advanced_lrud",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,852 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "variants": {
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=none": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_l",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_l",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_l",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_l",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_l",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_l",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_l",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_l",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_l"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_l",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_l",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=l": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_l",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_r",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_r",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_r",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_r",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_r",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_r",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_r",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_r",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_r"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_r",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_r",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=r": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_r",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lr",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lr",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lr",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lr",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lr",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lr",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lr",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lr",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lr"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lr",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lr",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=lr": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lr",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_u",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_u",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_u",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_u",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_u",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_u",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_u",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_u",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_u"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_u",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_u",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=u": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_u",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_d",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_d",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_d",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_d",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_d",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_d",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_d",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_d",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_d"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_d",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_d",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=d": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_d",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ud",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ud",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ud"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ud",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ud",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=ud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ud",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rd",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rd",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rd",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rd",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rd",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rd",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rd",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rd",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rd"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rd",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rd",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=rd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rd",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ld",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ld",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ld",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ld",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ld",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ld",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ld",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ld",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ld"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ld",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ld",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=ld": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ld",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ru",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ru",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ru",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ru",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ru",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ru",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ru",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ru",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ru"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ru",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ru",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=ru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_ru",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lu",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lu",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lu",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lu",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lu",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lu",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lu",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lu",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lu"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lu",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lu",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=lu": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lu",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrd",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrd",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrd",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrd",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrd",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrd",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrd",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrd",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrd"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrd",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrd",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=lrd": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrd",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rud",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rud",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rud"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rud",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rud",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=rud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_rud",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lud",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lud",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lud"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lud",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lud",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=lud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lud",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lru",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lru",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lru",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lru",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lru",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lru",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lru",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lru",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lru"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lru",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lru",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=lru": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lru",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=down,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrud",
 | 
				
			||||||
 | 
					      "x": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=down,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=down,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=down,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrud",
 | 
				
			||||||
 | 
					      "x": 90,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=up,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrud",
 | 
				
			||||||
 | 
					      "x": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=up,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=up,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=up,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrud",
 | 
				
			||||||
 | 
					      "x": 270,
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=north,orientation=north,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrud"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=south,orientation=north,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrud",
 | 
				
			||||||
 | 
					      "y": 180
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=west,orientation=north,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrud",
 | 
				
			||||||
 | 
					      "y": 270
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "facing=east,orientation=north,state=lrud": {
 | 
				
			||||||
 | 
					      "model": "computercraft:block/monitor_normal_lrud",
 | 
				
			||||||
 | 
					      "y": 90
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "block/orientable",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "top": "computercraft:block/computer_advanced_top",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/computer_advanced_side",
 | 
				
			||||||
 | 
					    "front": "computercraft:block/computer_advanced_front_blink"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "block/orientable",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "top": "computercraft:block/computer_advanced_top",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/computer_advanced_side",
 | 
				
			||||||
 | 
					    "front": "computercraft:block/computer_advanced_front"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "block/orientable",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "top": "computercraft:block/computer_advanced_top",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/computer_advanced_side",
 | 
				
			||||||
 | 
					    "front": "computercraft:block/computer_advanced_front_on"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "block/orientable",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "top": "computercraft:block/computer_command_top",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/computer_command_side",
 | 
				
			||||||
 | 
					    "front": "computercraft:block/computer_command_front_blink"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "block/orientable",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "top": "computercraft:block/computer_command_top",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/computer_command_side",
 | 
				
			||||||
 | 
					    "front": "computercraft:block/computer_command_front"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "block/orientable",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "top": "computercraft:block/computer_command_top",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/computer_command_side",
 | 
				
			||||||
 | 
					    "front": "computercraft:block/computer_command_front_on"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "block/orientable",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "top": "computercraft:block/computer_normal_top",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/computer_normal_side",
 | 
				
			||||||
 | 
					    "front": "computercraft:block/computer_normal_front_blink"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "block/orientable",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "top": "computercraft:block/computer_normal_top",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/computer_normal_side",
 | 
				
			||||||
 | 
					    "front": "computercraft:block/computer_normal_front"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "block/orientable",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "top": "computercraft:block/computer_normal_top",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/computer_normal_side",
 | 
				
			||||||
 | 
					    "front": "computercraft:block/computer_normal_front_on"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_advanced_16",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_advanced_4",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_advanced_0",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_advanced_32"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_advanced_20",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_advanced_7",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_advanced_0",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_advanced_36"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_advanced_19",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_advanced_4",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_advanced_1",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_advanced_33"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_advanced_31",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_advanced_7",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_advanced_1",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_advanced_45"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_advanced_18",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_advanced_4",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_advanced_2",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_advanced_34"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_advanced_30",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_advanced_7",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_advanced_2",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_advanced_46"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_advanced_24",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_advanced_5",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_advanced_2",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_advanced_40"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_advanced_27",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_advanced_6",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_advanced_2",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_advanced_43"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_advanced_25",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_advanced_5",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_advanced_1",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_advanced_39"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_advanced_28",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_advanced_6",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_advanced_1",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_advanced_42"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_advanced_17",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_advanced_4",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_advanced_3",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_advanced_35"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_advanced_29",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_advanced_7",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_advanced_3",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_advanced_47"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_advanced_23",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_advanced_5",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_advanced_3",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_advanced_41"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_advanced_26",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_advanced_6",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_advanced_3",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_advanced_44"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_advanced_22",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_advanced_5",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_advanced_0",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_advanced_38"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_advanced_21",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_advanced_6",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_advanced_0",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_advanced_37"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_normal_16",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_normal_4",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_normal_0",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_normal_32"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_normal_20",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_normal_7",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_normal_0",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_normal_36"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_normal_19",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_normal_4",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_normal_1",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_normal_33"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_normal_31",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_normal_7",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_normal_1",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_normal_45"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_normal_18",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_normal_4",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_normal_2",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_normal_34"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_normal_30",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_normal_7",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_normal_2",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_normal_46"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_normal_24",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_normal_5",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_normal_2",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_normal_40"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_normal_27",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_normal_6",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_normal_2",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_normal_43"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_normal_25",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_normal_5",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_normal_1",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_normal_39"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_normal_28",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_normal_6",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_normal_1",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_normal_42"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_normal_17",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_normal_4",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_normal_3",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_normal_35"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_normal_29",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_normal_7",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_normal_3",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_normal_47"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_normal_23",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_normal_5",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_normal_3",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_normal_41"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_normal_26",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_normal_6",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_normal_3",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_normal_44"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_normal_22",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_normal_5",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_normal_0",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_normal_38"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "parent": "computercraft:block/monitor_base",
 | 
				
			||||||
 | 
					  "textures": {
 | 
				
			||||||
 | 
					    "front": "computercraft:block/monitor_normal_21",
 | 
				
			||||||
 | 
					    "side": "computercraft:block/monitor_normal_6",
 | 
				
			||||||
 | 
					    "top": "computercraft:block/monitor_normal_0",
 | 
				
			||||||
 | 
					    "back": "computercraft:block/monitor_normal_37"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -1,35 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "parent": "minecraft:recipes/root",
 | 
					 | 
				
			||||||
  "rewards": {
 | 
					 | 
				
			||||||
    "recipes": [
 | 
					 | 
				
			||||||
      "computercraft:pocket_advanced/minecraft/crafting_table"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "criteria": {
 | 
					 | 
				
			||||||
    "has_items": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:inventory_changed",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "items": [
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "computercraft:pocket_computer_advanced"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "minecraft:crafting_table"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        ]
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "has_the_recipe": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:recipe_unlocked",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "recipe": "computercraft:pocket_advanced/minecraft/crafting_table"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "requirements": [
 | 
					 | 
				
			||||||
    [
 | 
					 | 
				
			||||||
      "has_items",
 | 
					 | 
				
			||||||
      "has_the_recipe"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,35 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "parent": "minecraft:recipes/root",
 | 
					 | 
				
			||||||
  "rewards": {
 | 
					 | 
				
			||||||
    "recipes": [
 | 
					 | 
				
			||||||
      "computercraft:pocket_advanced/minecraft/diamond_axe"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "criteria": {
 | 
					 | 
				
			||||||
    "has_items": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:inventory_changed",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "items": [
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "computercraft:pocket_computer_advanced"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "minecraft:diamond_axe"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        ]
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "has_the_recipe": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:recipe_unlocked",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "recipe": "computercraft:pocket_advanced/minecraft/diamond_axe"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "requirements": [
 | 
					 | 
				
			||||||
    [
 | 
					 | 
				
			||||||
      "has_items",
 | 
					 | 
				
			||||||
      "has_the_recipe"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,35 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "parent": "minecraft:recipes/root",
 | 
					 | 
				
			||||||
  "rewards": {
 | 
					 | 
				
			||||||
    "recipes": [
 | 
					 | 
				
			||||||
      "computercraft:pocket_advanced/minecraft/diamond_hoe"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "criteria": {
 | 
					 | 
				
			||||||
    "has_items": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:inventory_changed",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "items": [
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "computercraft:pocket_computer_advanced"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "minecraft:diamond_hoe"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        ]
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "has_the_recipe": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:recipe_unlocked",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "recipe": "computercraft:pocket_advanced/minecraft/diamond_hoe"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "requirements": [
 | 
					 | 
				
			||||||
    [
 | 
					 | 
				
			||||||
      "has_items",
 | 
					 | 
				
			||||||
      "has_the_recipe"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,35 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "parent": "minecraft:recipes/root",
 | 
					 | 
				
			||||||
  "rewards": {
 | 
					 | 
				
			||||||
    "recipes": [
 | 
					 | 
				
			||||||
      "computercraft:pocket_advanced/minecraft/diamond_pickaxe"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "criteria": {
 | 
					 | 
				
			||||||
    "has_items": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:inventory_changed",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "items": [
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "computercraft:pocket_computer_advanced"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "minecraft:diamond_pickaxe"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        ]
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "has_the_recipe": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:recipe_unlocked",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "recipe": "computercraft:pocket_advanced/minecraft/diamond_pickaxe"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "requirements": [
 | 
					 | 
				
			||||||
    [
 | 
					 | 
				
			||||||
      "has_items",
 | 
					 | 
				
			||||||
      "has_the_recipe"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,35 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "parent": "minecraft:recipes/root",
 | 
					 | 
				
			||||||
  "rewards": {
 | 
					 | 
				
			||||||
    "recipes": [
 | 
					 | 
				
			||||||
      "computercraft:pocket_advanced/minecraft/diamond_shovel"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "criteria": {
 | 
					 | 
				
			||||||
    "has_items": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:inventory_changed",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "items": [
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "computercraft:pocket_computer_advanced"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "minecraft:diamond_shovel"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        ]
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "has_the_recipe": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:recipe_unlocked",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "recipe": "computercraft:pocket_advanced/minecraft/diamond_shovel"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "requirements": [
 | 
					 | 
				
			||||||
    [
 | 
					 | 
				
			||||||
      "has_items",
 | 
					 | 
				
			||||||
      "has_the_recipe"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,35 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "parent": "minecraft:recipes/root",
 | 
					 | 
				
			||||||
  "rewards": {
 | 
					 | 
				
			||||||
    "recipes": [
 | 
					 | 
				
			||||||
      "computercraft:pocket_advanced/minecraft/diamond_sword"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "criteria": {
 | 
					 | 
				
			||||||
    "has_items": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:inventory_changed",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "items": [
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "computercraft:pocket_computer_advanced"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "minecraft:diamond_sword"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        ]
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "has_the_recipe": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:recipe_unlocked",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "recipe": "computercraft:pocket_advanced/minecraft/diamond_sword"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "requirements": [
 | 
					 | 
				
			||||||
    [
 | 
					 | 
				
			||||||
      "has_items",
 | 
					 | 
				
			||||||
      "has_the_recipe"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,35 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "parent": "minecraft:recipes/root",
 | 
					 | 
				
			||||||
  "rewards": {
 | 
					 | 
				
			||||||
    "recipes": [
 | 
					 | 
				
			||||||
      "computercraft:pocket_normal/minecraft/crafting_table"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "criteria": {
 | 
					 | 
				
			||||||
    "has_items": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:inventory_changed",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "items": [
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "computercraft:pocket_computer_normal"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "minecraft:crafting_table"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        ]
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "has_the_recipe": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:recipe_unlocked",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "recipe": "computercraft:pocket_normal/minecraft/crafting_table"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "requirements": [
 | 
					 | 
				
			||||||
    [
 | 
					 | 
				
			||||||
      "has_items",
 | 
					 | 
				
			||||||
      "has_the_recipe"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,35 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "parent": "minecraft:recipes/root",
 | 
					 | 
				
			||||||
  "rewards": {
 | 
					 | 
				
			||||||
    "recipes": [
 | 
					 | 
				
			||||||
      "computercraft:pocket_normal/minecraft/diamond_axe"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "criteria": {
 | 
					 | 
				
			||||||
    "has_items": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:inventory_changed",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "items": [
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "computercraft:pocket_computer_normal"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "minecraft:diamond_axe"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        ]
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "has_the_recipe": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:recipe_unlocked",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "recipe": "computercraft:pocket_normal/minecraft/diamond_axe"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "requirements": [
 | 
					 | 
				
			||||||
    [
 | 
					 | 
				
			||||||
      "has_items",
 | 
					 | 
				
			||||||
      "has_the_recipe"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,35 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "parent": "minecraft:recipes/root",
 | 
					 | 
				
			||||||
  "rewards": {
 | 
					 | 
				
			||||||
    "recipes": [
 | 
					 | 
				
			||||||
      "computercraft:pocket_normal/minecraft/diamond_hoe"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "criteria": {
 | 
					 | 
				
			||||||
    "has_items": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:inventory_changed",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "items": [
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "computercraft:pocket_computer_normal"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "minecraft:diamond_hoe"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        ]
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "has_the_recipe": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:recipe_unlocked",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "recipe": "computercraft:pocket_normal/minecraft/diamond_hoe"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "requirements": [
 | 
					 | 
				
			||||||
    [
 | 
					 | 
				
			||||||
      "has_items",
 | 
					 | 
				
			||||||
      "has_the_recipe"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,35 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "parent": "minecraft:recipes/root",
 | 
					 | 
				
			||||||
  "rewards": {
 | 
					 | 
				
			||||||
    "recipes": [
 | 
					 | 
				
			||||||
      "computercraft:pocket_normal/minecraft/diamond_pickaxe"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "criteria": {
 | 
					 | 
				
			||||||
    "has_items": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:inventory_changed",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "items": [
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "computercraft:pocket_computer_normal"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "minecraft:diamond_pickaxe"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        ]
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "has_the_recipe": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:recipe_unlocked",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "recipe": "computercraft:pocket_normal/minecraft/diamond_pickaxe"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "requirements": [
 | 
					 | 
				
			||||||
    [
 | 
					 | 
				
			||||||
      "has_items",
 | 
					 | 
				
			||||||
      "has_the_recipe"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,35 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "parent": "minecraft:recipes/root",
 | 
					 | 
				
			||||||
  "rewards": {
 | 
					 | 
				
			||||||
    "recipes": [
 | 
					 | 
				
			||||||
      "computercraft:pocket_normal/minecraft/diamond_shovel"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "criteria": {
 | 
					 | 
				
			||||||
    "has_items": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:inventory_changed",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "items": [
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "computercraft:pocket_computer_normal"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "minecraft:diamond_shovel"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        ]
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "has_the_recipe": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:recipe_unlocked",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "recipe": "computercraft:pocket_normal/minecraft/diamond_shovel"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "requirements": [
 | 
					 | 
				
			||||||
    [
 | 
					 | 
				
			||||||
      "has_items",
 | 
					 | 
				
			||||||
      "has_the_recipe"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,35 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "parent": "minecraft:recipes/root",
 | 
					 | 
				
			||||||
  "rewards": {
 | 
					 | 
				
			||||||
    "recipes": [
 | 
					 | 
				
			||||||
      "computercraft:pocket_normal/minecraft/diamond_sword"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "criteria": {
 | 
					 | 
				
			||||||
    "has_items": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:inventory_changed",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "items": [
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "computercraft:pocket_computer_normal"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "item": "minecraft:diamond_sword"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        ]
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "has_the_recipe": {
 | 
					 | 
				
			||||||
      "trigger": "minecraft:recipe_unlocked",
 | 
					 | 
				
			||||||
      "conditions": {
 | 
					 | 
				
			||||||
        "recipe": "computercraft:pocket_normal/minecraft/diamond_sword"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "requirements": [
 | 
					 | 
				
			||||||
    [
 | 
					 | 
				
			||||||
      "has_items",
 | 
					 | 
				
			||||||
      "has_the_recipe"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										34
									
								
								src/generated/resources/data/computercraft/loot_tables/blocks/computer_command.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								src/generated/resources/data/computercraft/loot_tables/blocks/computer_command.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "type": "minecraft:block",
 | 
				
			||||||
 | 
					  "pools": [
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "name": "main",
 | 
				
			||||||
 | 
					      "rolls": 1,
 | 
				
			||||||
 | 
					      "entries": [
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "type": "minecraft:dynamic",
 | 
				
			||||||
 | 
					          "name": "computercraft:computer"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "conditions": [
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "condition": "minecraft:alternative",
 | 
				
			||||||
 | 
					          "terms": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					              "condition": "computercraft:block_named"
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					              "condition": "computercraft:has_id"
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					              "condition": "minecraft:inverted",
 | 
				
			||||||
 | 
					              "term": {
 | 
				
			||||||
 | 
					                "condition": "computercraft:player_creative"
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          ]
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      ]
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -14,6 +14,6 @@
 | 
				
			|||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "result": {
 | 
					  "result": {
 | 
				
			||||||
    "item": "computercraft:disk",
 | 
					    "item": "computercraft:disk",
 | 
				
			||||||
    "nbt": "{color:1118481}"
 | 
					    "nbt": "{Color:1118481}"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -14,6 +14,6 @@
 | 
				
			|||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "result": {
 | 
					  "result": {
 | 
				
			||||||
    "item": "computercraft:disk",
 | 
					    "item": "computercraft:disk",
 | 
				
			||||||
    "nbt": "{color:15905484}"
 | 
					    "nbt": "{Color:15905484}"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -14,6 +14,6 @@
 | 
				
			|||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "result": {
 | 
					  "result": {
 | 
				
			||||||
    "item": "computercraft:disk",
 | 
					    "item": "computercraft:disk",
 | 
				
			||||||
    "nbt": "{color:8375321}"
 | 
					    "nbt": "{Color:8375321}"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -14,6 +14,6 @@
 | 
				
			|||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "result": {
 | 
					  "result": {
 | 
				
			||||||
    "item": "computercraft:disk",
 | 
					    "item": "computercraft:disk",
 | 
				
			||||||
    "nbt": "{color:14605932}"
 | 
					    "nbt": "{Color:14605932}"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -14,6 +14,6 @@
 | 
				
			|||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "result": {
 | 
					  "result": {
 | 
				
			||||||
    "item": "computercraft:disk",
 | 
					    "item": "computercraft:disk",
 | 
				
			||||||
    "nbt": "{color:10072818}"
 | 
					    "nbt": "{Color:10072818}"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -14,6 +14,6 @@
 | 
				
			|||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "result": {
 | 
					  "result": {
 | 
				
			||||||
    "item": "computercraft:disk",
 | 
					    "item": "computercraft:disk",
 | 
				
			||||||
    "nbt": "{color:15040472}"
 | 
					    "nbt": "{Color:15040472}"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -14,6 +14,6 @@
 | 
				
			|||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "result": {
 | 
					  "result": {
 | 
				
			||||||
    "item": "computercraft:disk",
 | 
					    "item": "computercraft:disk",
 | 
				
			||||||
    "nbt": "{color:15905331}"
 | 
					    "nbt": "{Color:15905331}"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -14,6 +14,6 @@
 | 
				
			|||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "result": {
 | 
					  "result": {
 | 
				
			||||||
    "item": "computercraft:disk",
 | 
					    "item": "computercraft:disk",
 | 
				
			||||||
    "nbt": "{color:15790320}"
 | 
					    "nbt": "{Color:15790320}"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -14,6 +14,6 @@
 | 
				
			|||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "result": {
 | 
					  "result": {
 | 
				
			||||||
    "item": "computercraft:disk",
 | 
					    "item": "computercraft:disk",
 | 
				
			||||||
    "nbt": "{color:13388876}"
 | 
					    "nbt": "{Color:13388876}"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -14,6 +14,6 @@
 | 
				
			|||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "result": {
 | 
					  "result": {
 | 
				
			||||||
    "item": "computercraft:disk",
 | 
					    "item": "computercraft:disk",
 | 
				
			||||||
    "nbt": "{color:5744206}"
 | 
					    "nbt": "{Color:5744206}"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -14,6 +14,6 @@
 | 
				
			|||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "result": {
 | 
					  "result": {
 | 
				
			||||||
    "item": "computercraft:disk",
 | 
					    "item": "computercraft:disk",
 | 
				
			||||||
    "nbt": "{color:8349260}"
 | 
					    "nbt": "{Color:8349260}"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -14,6 +14,6 @@
 | 
				
			|||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "result": {
 | 
					  "result": {
 | 
				
			||||||
    "item": "computercraft:disk",
 | 
					    "item": "computercraft:disk",
 | 
				
			||||||
    "nbt": "{color:3368652}"
 | 
					    "nbt": "{Color:3368652}"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -14,6 +14,6 @@
 | 
				
			|||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "result": {
 | 
					  "result": {
 | 
				
			||||||
    "item": "computercraft:disk",
 | 
					    "item": "computercraft:disk",
 | 
				
			||||||
    "nbt": "{color:11691749}"
 | 
					    "nbt": "{Color:11691749}"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user