mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-10-15 22:17:39 +00:00
Compare commits
249 Commits
v1.97.2
...
v1.14.4-1.
Author | SHA1 | Date | |
---|---|---|---|
![]() |
9134f243c1 | ||
![]() |
c0f3ca81fb | ||
![]() |
b9b8121be9 | ||
![]() |
014bf55cd4 | ||
![]() |
085ae2e74a | ||
![]() |
4ff33f165d | ||
![]() |
d929c02d2a | ||
![]() |
d50a08a549 | ||
![]() |
13de2c4dd0 | ||
![]() |
906280225e | ||
![]() |
161a5b4707 | ||
![]() |
c6b6b4479c | ||
![]() |
96e7b60285 | ||
![]() |
086fccd997 | ||
![]() |
e251dd066c | ||
![]() |
c60dcb4f5a | ||
![]() |
4be0b15afa | ||
![]() |
a4ae36b6b3 | ||
![]() |
ac075d9f53 | ||
![]() |
05d7be0362 | ||
![]() |
9a71dc1a26 | ||
![]() |
156023b154 | ||
![]() |
6b3773a862 | ||
![]() |
376d628cf0 | ||
![]() |
44062ebd52 | ||
![]() |
5739285fc2 | ||
![]() |
70b457ed18 | ||
![]() |
6816931659 | ||
![]() |
1547ecbeb3 | ||
![]() |
c28b468844 | ||
![]() |
052cf8ee7d | ||
![]() |
550ada2f9e | ||
![]() |
17b7727262 | ||
![]() |
4553e404b2 | ||
![]() |
a565a571f9 | ||
![]() |
fb64b6017b | ||
![]() |
ed4229ab70 | ||
![]() |
3fb906ef6c | ||
![]() |
e1663f3df0 | ||
![]() |
358289b5f9 | ||
![]() |
5eec24676f | ||
![]() |
447c3ab125 | ||
![]() |
8fac68386e | ||
![]() |
b7c61f9c6d | ||
![]() |
08a0342618 | ||
![]() |
48cb032ddf | ||
![]() |
a049502d12 | ||
![]() |
ae7ef66dfa | ||
![]() |
9748679484 | ||
![]() |
da419b24e7 | ||
![]() |
7f57a977a1 | ||
![]() |
2f42a4e85b | ||
![]() |
ee391ae9ea | ||
![]() |
4ed4a6409b | ||
![]() |
e5cc345f49 | ||
![]() |
d847a4d9e0 | ||
![]() |
f3de97d67f | ||
![]() |
544f276ff0 | ||
![]() |
463635a459 | ||
![]() |
3b7b845930 | ||
![]() |
1fc0214857 | ||
![]() |
11bf601db9 | ||
![]() |
7c1154ddfc | ||
![]() |
df557e03fa | ||
![]() |
524b6f1d8a | ||
![]() |
cea8be7efa | ||
![]() |
c5f918ad95 | ||
![]() |
b14c7842fc | ||
![]() |
eead8b5755 | ||
![]() |
10a27a7a25 | ||
![]() |
865fc239a0 | ||
![]() |
f9f94b8304 | ||
![]() |
cb8135a0d1 | ||
![]() |
ef4b0a5632 | ||
![]() |
6a6a87489c | ||
![]() |
062977336a | ||
![]() |
e52d98ad8b | ||
![]() |
ef8da8054f | ||
![]() |
1ccd687c00 | ||
![]() |
a8ce5a5b20 | ||
![]() |
68e6bc464b | ||
![]() |
68762fe84c | ||
![]() |
419f29321a | ||
![]() |
00b41d29c1 | ||
![]() |
0ffd5fcf85 | ||
![]() |
95fee95006 | ||
![]() |
239bd769df | ||
![]() |
b4e0e9984f | ||
![]() |
79f42e35ce | ||
![]() |
be89fc25f9 | ||
![]() |
8eae02c037 | ||
![]() |
930fd59298 | ||
![]() |
bf13bac152 | ||
![]() |
03caf9d805 | ||
![]() |
d6ea3aab1c | ||
![]() |
0de5969ec1 | ||
![]() |
3f98b2785e | ||
![]() |
798868427e | ||
![]() |
c79f643ba7 | ||
![]() |
1db3a14c54 | ||
![]() |
bf6d017ad1 | ||
![]() |
8b1773dd60 | ||
![]() |
a706300598 | ||
![]() |
2541c3c5e6 | ||
![]() |
41a1b99f7d | ||
![]() |
1862a439e2 | ||
![]() |
018ecfbaa0 | ||
![]() |
4c8fd4fc35 | ||
![]() |
35c1b10224 | ||
![]() |
c1c01bef7c | ||
![]() |
a48c3d0ba8 | ||
![]() |
93a9ebc4f6 | ||
![]() |
7cc2bd43c6 | ||
![]() |
393e628721 | ||
![]() |
0bcd28e58c | ||
![]() |
42f5389fb8 | ||
![]() |
041cfe91b4 | ||
![]() |
0f82a4589b | ||
![]() |
4320a4f851 | ||
![]() |
037cbabb32 | ||
![]() |
0dde859582 | ||
![]() |
e59c043fb6 | ||
![]() |
ae928c4397 | ||
![]() |
da41c65128 | ||
![]() |
4d18234714 | ||
![]() |
d254c6464b | ||
![]() |
3a5d50e572 | ||
![]() |
03b6d2f1ab | ||
![]() |
b0397ed3c5 | ||
![]() |
fa70ebcac2 | ||
![]() |
86e0330100 | ||
![]() |
92567b4d7e | ||
![]() |
0ae70fed13 | ||
![]() |
3b7300543a | ||
![]() |
642351af1a | ||
![]() |
121802a683 | ||
![]() |
08cf55e55f | ||
![]() |
3c8c0d78ef | ||
![]() |
c4d18aa9ca | ||
![]() |
2d4a87adc9 | ||
![]() |
bedac71e3d | ||
![]() |
ee4e42e730 | ||
![]() |
0de75f05dd | ||
![]() |
be6dd21e54 | ||
![]() |
927ddb0bde | ||
![]() |
a8fadabaf1 | ||
![]() |
44d0f78c1b | ||
![]() |
38f9a015ca | ||
![]() |
c311cdc6f5 | ||
![]() |
a93e0f3284 | ||
![]() |
14b3065ba4 | ||
![]() |
3ea2d6a0a8 | ||
![]() |
c802290437 | ||
![]() |
f7781defe5 | ||
![]() |
418420523a | ||
![]() |
d342a1f368 | ||
![]() |
81f85361d5 | ||
![]() |
f1621b30ec | ||
![]() |
d4f6a594b6 | ||
![]() |
ff5ba5c131 | ||
![]() |
4243f30308 | ||
![]() |
813e91073d | ||
![]() |
7250f22ff6 | ||
![]() |
db31a53bba | ||
![]() |
3023f235a4 | ||
![]() |
79cd8b4da5 | ||
![]() |
8e4d311cd9 | ||
![]() |
9bd8c86a94 | ||
![]() |
cbc0c1d0b6 | ||
![]() |
49c37857d4 | ||
![]() |
b1139a4bf6 | ||
![]() |
7e8559278e | ||
![]() |
1e7f1c98fc | ||
![]() |
a802f25dd6 | ||
![]() |
f1d6d21d6d | ||
![]() |
a80302c513 | ||
![]() |
1c46949da7 | ||
![]() |
07a56454a0 | ||
![]() |
a0e72d02c8 | ||
![]() |
455a59ca85 | ||
![]() |
46d78af068 | ||
![]() |
08d22fd3df | ||
![]() |
e6c691a8f8 | ||
![]() |
4b0e5c445c | ||
![]() |
eb5cff1045 | ||
![]() |
35c7792aa2 | ||
![]() |
521688d630 | ||
![]() |
75e2845c01 | ||
![]() |
2f96283286 | ||
![]() |
cbe6e9b5f5 | ||
![]() |
2ab79cf474 | ||
![]() |
6ce34aba79 | ||
![]() |
5eeb320b60 | ||
![]() |
93310850d2 | ||
![]() |
a2880b12ca | ||
![]() |
cef2657048 | ||
![]() |
ccd85eb055 | ||
![]() |
303b57779a | ||
![]() |
6279816ecc | ||
![]() |
4ae77261fa | ||
![]() |
4b7d843b78 | ||
![]() |
1c28df65c3 | ||
![]() |
85b740f484 | ||
![]() |
f9929cb27d | ||
![]() |
bafab1ac07 | ||
![]() |
e05c262468 | ||
![]() |
acfb72246c | ||
![]() |
9d51c4c340 | ||
![]() |
18068effec | ||
![]() |
7a3f7d3bba | ||
![]() |
95aa48c456 | ||
![]() |
6ea8ca991b | ||
![]() |
f1e551b960 | ||
![]() |
772c54ec74 | ||
![]() |
13cb789c18 | ||
![]() |
42220c4268 | ||
![]() |
3052506e2e | ||
![]() |
0741daa7eb | ||
![]() |
b4aa554279 | ||
![]() |
8fe2abe0ae | ||
![]() |
5af789ae11 | ||
![]() |
904a168d5c | ||
![]() |
724441eddc | ||
![]() |
f68ab3edd1 | ||
![]() |
68542aca3a | ||
![]() |
594bc4203c | ||
![]() |
57318b022d | ||
![]() |
761159aa93 | ||
![]() |
29dce26bf6 | ||
![]() |
717ab69093 | ||
![]() |
138a2cf08f | ||
![]() |
81daf82647 | ||
![]() |
f3798bfb63 | ||
![]() |
bc07dfad2e | ||
![]() |
8dd1c2a6cc | ||
![]() |
d10b657a54 | ||
![]() |
f90da739eb | ||
![]() |
d9cadf64e8 | ||
![]() |
15d4a55cd8 | ||
![]() |
309cbdb8be | ||
![]() |
39a9ad0ce7 | ||
![]() |
0f3c44c926 | ||
![]() |
a0e7c4a74c | ||
![]() |
7d428030df | ||
![]() |
00c395f689 | ||
![]() |
d8e1c73d26 | ||
![]() |
ffa4cc241b | ||
![]() |
6f1b740c8f | ||
![]() |
3406ba3ebf |
@@ -10,3 +10,13 @@ insert_final_newline = true
|
|||||||
|
|
||||||
[*.md]
|
[*.md]
|
||||||
trim_trailing_whitespace = false
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
|
[*.sexp]
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
[*.yml]
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
|
||||||
|
[*.properties]
|
||||||
|
insert_final_newline = false
|
||||||
|
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# Ignore changes in generated files
|
||||||
|
src/generated/resources/data/** linguist-generated
|
3
.github/ISSUE_TEMPLATE/bug_report.md
vendored
3
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -11,6 +11,5 @@ labels: bug
|
|||||||
|
|
||||||
## Useful information to include:
|
## Useful information to include:
|
||||||
- Minecraft version
|
- Minecraft version
|
||||||
- CC: Restitched version
|
- CC: Tweaked version
|
||||||
- Logs: These will be located in the `logs/` directory of your Minecraft instance. Please upload them as a gist or directly into this editor.
|
|
||||||
- Detailed reproduction steps: sometimes I can spot a bug pretty easily, but often it's much more obscure. The more information I have to help reproduce it, the quicker it'll get fixed.
|
- Detailed reproduction steps: sometimes I can spot a bug pretty easily, but often it's much more obscure. The more information I have to help reproduce it, the quicker it'll get fixed.
|
||||||
|
12
.github/ISSUE_TEMPLATE/peripheral_shoutout.md
vendored
12
.github/ISSUE_TEMPLATE/peripheral_shoutout.md
vendored
@@ -1,12 +0,0 @@
|
|||||||
---
|
|
||||||
name: Peripheral Shoutout
|
|
||||||
about: Made a Peripheral mod for CC:R? Let us know so we can give it a shoutout
|
|
||||||
labels: peripheralShoutout
|
|
||||||
---
|
|
||||||
|
|
||||||
## What to include?
|
|
||||||
- Link to the mod's Icon
|
|
||||||
- Link to the mod
|
|
||||||
- Mod Name
|
|
||||||
- Basic description of the mod
|
|
||||||
- Link to CC:R Peripheral Documentation for the mod
|
|
17
.github/matchers/checkstyle.json
vendored
17
.github/matchers/checkstyle.json
vendored
@@ -1,17 +0,0 @@
|
|||||||
{
|
|
||||||
"problemMatcher": [
|
|
||||||
{
|
|
||||||
"owner": "checkstyle",
|
|
||||||
"pattern": [
|
|
||||||
{
|
|
||||||
"regexp": "^([a-z]+) ([\\w./-]+):(\\d+):(\\d+): (.*)$",
|
|
||||||
"severity": 1,
|
|
||||||
"file": 2,
|
|
||||||
"line": 3,
|
|
||||||
"column": 4,
|
|
||||||
"message": 5
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
18
.github/matchers/illuaminate.json
vendored
18
.github/matchers/illuaminate.json
vendored
@@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
"problemMatcher": [
|
|
||||||
{
|
|
||||||
"owner": "illuaminate",
|
|
||||||
"severity": "warning",
|
|
||||||
"pattern": [
|
|
||||||
{
|
|
||||||
"regexp": "^([\\w./-]+):\\[(\\d+):(\\d+)\\-(?:\\d+):(?:\\d+)\\]: (.*) \\[([a-z:-]+)\\]$",
|
|
||||||
"file": 1,
|
|
||||||
"line": 2,
|
|
||||||
"column": 3,
|
|
||||||
"message": 4,
|
|
||||||
"code": 5
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
15
.github/matchers/junit.json
vendored
15
.github/matchers/junit.json
vendored
@@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"problemMatcher": [
|
|
||||||
{
|
|
||||||
"owner": "junit",
|
|
||||||
"pattern": [
|
|
||||||
{
|
|
||||||
"regexp": "^## ([\\w./-]+):(\\d+): (.*)$",
|
|
||||||
"file": 1,
|
|
||||||
"line": 2,
|
|
||||||
"message": 3
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
50
.github/workflows/main-ci.yml
vendored
50
.github/workflows/main-ci.yml
vendored
@@ -9,51 +9,45 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Checkout submodules
|
|
||||||
run: git submodule update --init --recursive
|
|
||||||
|
|
||||||
- name: Set up Java 16
|
- name: Set up JDK 1.8
|
||||||
uses: actions/setup-java@v1
|
uses: actions/setup-java@v1
|
||||||
with:
|
with:
|
||||||
java-version: 16
|
java-version: 1.8
|
||||||
|
|
||||||
- name: Cache gradle dependencies
|
- name: Cache gradle dependencies
|
||||||
uses: actions/cache@v2
|
uses: actions/cache@v1
|
||||||
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: Disable Gradle daemon
|
|
||||||
run: |
|
|
||||||
mkdir -p ~/.gradle
|
|
||||||
echo "org.gradle.daemon=false" >> ~/.gradle/gradle.properties
|
|
||||||
|
|
||||||
- name: Build with Gradle
|
- name: Build with Gradle
|
||||||
run: |
|
run: ./gradlew build --no-daemon || ./gradlew build --no-daemon
|
||||||
./gradlew assemble || ./gradlew assemble
|
|
||||||
./gradlew build
|
|
||||||
|
|
||||||
- name: Upload Jar
|
- name: Upload Jar
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v1
|
||||||
with:
|
with:
|
||||||
name: cc-restitched
|
name: CC-Tweaked
|
||||||
path: build/libs
|
path: build/libs
|
||||||
|
|
||||||
- name: Parse test reports
|
- name: Upload Coverage
|
||||||
run: ./tools/parse-reports.py
|
run: bash <(curl -s https://codecov.io/bash)
|
||||||
if: ${{ failure() }}
|
|
||||||
|
|
||||||
- name: Cache pre-commit
|
lint-lua:
|
||||||
uses: actions/cache@v2
|
name: Lint Lua
|
||||||
with:
|
runs-on: ubuntu-latest
|
||||||
path: ~/.cache/pre-commit
|
|
||||||
key: ${{ runner.os }}-pre-commit-${{ hashFiles('config/pre-commit/config.yml') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-pre-commit-
|
|
||||||
|
|
||||||
- name: Run linters
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
|
||||||
|
- name: Lint Lua code
|
||||||
run: |
|
run: |
|
||||||
pip install pre-commit
|
test -d bin || mkdir bin
|
||||||
pre-commit run --config config/pre-commit/config.yml --show-diff-on-failure --all --color=always
|
test -f bin/illuaminate || wget -q -Obin/illuaminate https://squiddev.cc/illuaminate/linux-x86-64/illuaminate
|
||||||
|
chmod +x bin/illuaminate
|
||||||
|
bin/illuaminate lint
|
||||||
|
|
||||||
|
- name: Check whitespace
|
||||||
|
run: python3 tools/check-lines.py
|
||||||
|
16
.github/workflows/make-doc.sh
vendored
Executable file
16
.github/workflows/make-doc.sh
vendored
Executable file
@@ -0,0 +1,16 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
DEST="${GITHUB_REF#refs/*/}"
|
||||||
|
echo "Uploading docs to https://tweaked.cc/$DEST"
|
||||||
|
|
||||||
|
# Setup ssh key
|
||||||
|
mkdir -p "$HOME/.ssh/"
|
||||||
|
echo "$SSH_KEY" > "$HOME/.ssh/key"
|
||||||
|
chmod 600 "$HOME/.ssh/key"
|
||||||
|
|
||||||
|
# And upload
|
||||||
|
rsync -avc -e "ssh -i $HOME/.ssh/key -o StrictHostKeyChecking=no -p $SSH_PORT" \
|
||||||
|
"$GITHUB_WORKSPACE/doc/" \
|
||||||
|
"$SSH_USER@$SSH_HOST:/var/www/tweaked.cc/$DEST"
|
31
.github/workflows/make-doc.yml
vendored
Normal file
31
.github/workflows/make-doc.yml
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
name: Build documentation
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
tags:
|
||||||
|
release:
|
||||||
|
types: [ published ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
make_doc:
|
||||||
|
name: Build
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
|
||||||
|
- name: Build documentation
|
||||||
|
run: |
|
||||||
|
test -d bin || mkdir bin
|
||||||
|
test -f bin/illuaminate || wget -q -Obin/illuaminate https://squiddev.cc/illuaminate/linux-x86-64/illuaminate
|
||||||
|
chmod +x bin/illuaminate
|
||||||
|
bin/illuaminate doc-gen
|
||||||
|
|
||||||
|
- name: Upload documentation
|
||||||
|
run: .github/workflows/make-doc.sh 2> /dev/null
|
||||||
|
env:
|
||||||
|
SSH_KEY: ${{ secrets.SSH_KEY }}
|
||||||
|
SSH_USER: ${{ secrets.SSH_USER }}
|
||||||
|
SSH_HOST: ${{ secrets.SSH_HOST }}
|
||||||
|
SSH_PORT: ${{ secrets.SSH_PORT }}
|
13
.gitignore
vendored
13
.gitignore
vendored
@@ -3,22 +3,25 @@
|
|||||||
/logs
|
/logs
|
||||||
/build
|
/build
|
||||||
/out
|
/out
|
||||||
|
/doc/**/*.html
|
||||||
|
/doc/index.json
|
||||||
|
|
||||||
# Runtime directories
|
# Runtime directories
|
||||||
/run
|
/run
|
||||||
/run-*
|
/run-*
|
||||||
/test-files
|
/test-files
|
||||||
|
|
||||||
# Autogenerated by IDE
|
|
||||||
/bin
|
|
||||||
/.settings
|
|
||||||
.classpath
|
|
||||||
|
|
||||||
*.ipr
|
*.ipr
|
||||||
*.iws
|
*.iws
|
||||||
*.iml
|
*.iml
|
||||||
.idea
|
.idea
|
||||||
.gradle
|
.gradle
|
||||||
*.DS_Store
|
*.DS_Store
|
||||||
|
|
||||||
|
.classpath
|
||||||
.project
|
.project
|
||||||
|
.settings/
|
||||||
|
bin/
|
||||||
*.launch
|
*.launch
|
||||||
|
|
||||||
|
/src/generated/resources/.cache
|
||||||
|
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -1,3 +0,0 @@
|
|||||||
[submodule "src/main/resources/resourcepacks/overhaul"]
|
|
||||||
path = src/main/resources/resourcepacks/overhaul
|
|
||||||
url = https://github.com/3prm3/cc-pack
|
|
19
.gitpod.Dockerfile
vendored
19
.gitpod.Dockerfile
vendored
@@ -1,19 +0,0 @@
|
|||||||
FROM gitpod/workspace-base
|
|
||||||
|
|
||||||
USER gitpod
|
|
||||||
|
|
||||||
# Install custom tools, runtime, etc. using apt-get
|
|
||||||
# For example, the command below would install "bastet" - a command line tetris clone:
|
|
||||||
#
|
|
||||||
# RUN sudo apt-get -q update && \
|
|
||||||
# sudo apt-get install -yq bastet && \
|
|
||||||
# sudo rm -rf /var/lib/apt/lists/*
|
|
||||||
#
|
|
||||||
# More information: https://www.gitpod.io/docs/config-docker/
|
|
||||||
|
|
||||||
# Install Java 8 and 16
|
|
||||||
RUN sudo apt-get -q update && \
|
|
||||||
sudo apt install -yq openjdk-8-jdk openjdk-16-jdk
|
|
||||||
|
|
||||||
# This is so that you can use java 8 until such a time as you switch to java 16
|
|
||||||
RUN sudo update-java-alternatives --set java-1.16.0-openjdk-amd64
|
|
18
.gitpod.yml
18
.gitpod.yml
@@ -1,18 +0,0 @@
|
|||||||
image:
|
|
||||||
file: .gitpod.Dockerfile
|
|
||||||
|
|
||||||
ports:
|
|
||||||
- port: 25565
|
|
||||||
onOpen: notify
|
|
||||||
|
|
||||||
vscode:
|
|
||||||
extensions:
|
|
||||||
- ms-azuretools.vscode-docker
|
|
||||||
- redhat.java
|
|
||||||
- richardwillis.vscode-gradle
|
|
||||||
- vscjava.vscode-java-debug
|
|
||||||
- vscode.github
|
|
||||||
|
|
||||||
|
|
||||||
tasks:
|
|
||||||
- init: ./gradlew
|
|
34
.luacheckrc
34
.luacheckrc
@@ -1,34 +0,0 @@
|
|||||||
std = "max"
|
|
||||||
|
|
||||||
ignore = {
|
|
||||||
-- Allow access to undefined globals or their fields. In the future we'll
|
|
||||||
-- define all of CC's globals within this file
|
|
||||||
'113', '143',
|
|
||||||
|
|
||||||
-- FIXME: Ignore unused arguments and loop variables
|
|
||||||
'212', '213',
|
|
||||||
|
|
||||||
-- Disable line is too long for now. It would be possible to clean
|
|
||||||
-- this up in the future.
|
|
||||||
'631',
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Only run the linter on ROM and bios for now, as the treasure disks
|
|
||||||
-- are largely unsupported.
|
|
||||||
include_files = {
|
|
||||||
'src/main/resources/assets/computercraft/lua/rom',
|
|
||||||
'src/main/resources/assets/computercraft/lua/bios.lua'
|
|
||||||
}
|
|
||||||
|
|
||||||
files['src/main/resources/assets/computercraft/lua/bios.lua'] = {
|
|
||||||
-- Allow declaring and mutating globals
|
|
||||||
allow_defined_top = true,
|
|
||||||
ignore = { '112', '121', '122', '131', '142' },
|
|
||||||
}
|
|
||||||
|
|
||||||
files['src/main/resources/assets/computercraft/lua/rom/apis'] = {
|
|
||||||
-- APIs may define globals on the top level. We'll ignore unused globals,
|
|
||||||
-- as obviously they may be used outside that API.
|
|
||||||
allow_defined_top = true,
|
|
||||||
ignore = { '131' },
|
|
||||||
}
|
|
15
.vscode/settings.json
vendored
15
.vscode/settings.json
vendored
@@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"files.exclude": {
|
|
||||||
// Default Java Dev
|
|
||||||
"**/.classpath": true,
|
|
||||||
"**/.project": true,
|
|
||||||
"**/.settings": true,
|
|
||||||
"**/.factorypath": true,
|
|
||||||
|
|
||||||
// Custom Hidden Files
|
|
||||||
"**/.bin": true,
|
|
||||||
"**/.editorconfig": true,
|
|
||||||
},
|
|
||||||
|
|
||||||
"java.configuration.updateBuildConfiguration": "automatic"
|
|
||||||
}
|
|
36
CONTRIBUTING.md
Normal file
36
CONTRIBUTING.md
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
# Contributing to CC: Tweaked
|
||||||
|
As with many open source projects, CC: Tweaked thrives on contributions from other people! This document (hopefully)
|
||||||
|
provides an introduction as to how to get started in helping out.
|
||||||
|
|
||||||
|
If you've any other questions, [just ask the community][community] or [open an issue][new-issue].
|
||||||
|
|
||||||
|
## Reporting issues
|
||||||
|
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.
|
||||||
|
|
||||||
|
## Developing
|
||||||
|
In order to develop CC: Tweaked, you'll need to download the source code and then run it. This is a pretty simple
|
||||||
|
process.
|
||||||
|
|
||||||
|
- **Clone the repository:** `git clone https://github.com/SquidDev-CC/CC-Tweaked.git && cd CC-Tweaked`
|
||||||
|
- **Setup Forge:** `./gradlew build`
|
||||||
|
- **Run Minecraft:** `./gradlew runClient` (or run the `GradleStart` class from your IDE).
|
||||||
|
|
||||||
|
If you want to run CC:T in a normal Minecraft instance, run `./gradlew build` and copy the `.jar` from `build/libs`.
|
||||||
|
These commands may take a few minutes to run the first time, as the environment is set up, but should be much faster
|
||||||
|
afterwards.
|
||||||
|
|
||||||
|
### Code linters
|
||||||
|
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.
|
||||||
|
|
||||||
|
- **[Checkstyle]:** Checks Java code to ensure it is consistently formatted. This can be run with `./gradlew build` or
|
||||||
|
`./gradle check`.
|
||||||
|
- **[illuaminate]:** Checks Lua code for semantic and styleistic issues. See [the usage section][illuaminate-usage] for
|
||||||
|
how to download and run it.
|
||||||
|
|
||||||
|
[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."
|
||||||
|
[checkstyle]: https://checkstyle.org/
|
||||||
|
[illuaminate]: https://github.com/SquidDev/illuaminate/
|
||||||
|
[illuaminate-usage]: https://github.com/SquidDev/illuaminate/blob/master/README.md#usage
|
14
LICENSE
14
LICENSE
@@ -19,14 +19,14 @@ Mod: The mod code designated by the present license, in source form, binary
|
|||||||
form, as obtained standalone, as part of a wider distribution or resulting from
|
form, as obtained standalone, as part of a wider distribution or resulting from
|
||||||
the compilation of the original or modified sources.
|
the compilation of the original or modified sources.
|
||||||
|
|
||||||
Dependency: Code required for the mod to work properly. This includes
|
Dependency: Code required for the mod to work properly. This includes
|
||||||
dependencies required to compile the code as well as any file or modification
|
dependencies required to compile the code as well as any file or modification
|
||||||
that is explicitly or implicitly required for the mod to be working.
|
that is explicitly or implicitly required for the mod to be working.
|
||||||
|
|
||||||
1. Scope
|
1. Scope
|
||||||
--------
|
--------
|
||||||
|
|
||||||
The present license is granted to any user of the mod. As a prerequisite,
|
The present license is granted to any user of the mod. As a prerequisite,
|
||||||
a user must own a legally acquired copy of Minecraft
|
a user must own a legally acquired copy of Minecraft
|
||||||
|
|
||||||
2. Liability
|
2. Liability
|
||||||
@@ -41,13 +41,13 @@ or misuse of this mod fall on the user.
|
|||||||
3. Play rights
|
3. Play rights
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
The user is allowed to install this mod on a Minecraft client or server and to play
|
The user is allowed to install this mod on a Minecraft client or server and to play
|
||||||
without restriction.
|
without restriction.
|
||||||
|
|
||||||
4. Modification rights
|
4. Modification rights
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
The user has the right to decompile the source code, look at either the
|
The user has the right to decompile the source code, look at either the
|
||||||
decompiled version or the original source code, and to modify it.
|
decompiled version or the original source code, and to modify it.
|
||||||
|
|
||||||
5. Distribution of original or modified copy rights
|
5. Distribution of original or modified copy rights
|
||||||
@@ -61,10 +61,10 @@ include:
|
|||||||
- patch to its source or binary files
|
- patch to its source or binary files
|
||||||
- any copy of a portion of its binary source files
|
- any copy of a portion of its binary source files
|
||||||
|
|
||||||
The user is allowed to redistribute this mod partially, in totality, or
|
The user is allowed to redistribute this mod partially, in totality, or
|
||||||
included in a distribution.
|
included in a distribution.
|
||||||
|
|
||||||
When distributing binary files, the user must provide means to obtain its
|
When distributing binary files, the user must provide means to obtain its
|
||||||
entire set of sources or modified sources at no cost.
|
entire set of sources or modified sources at no cost.
|
||||||
|
|
||||||
All distributions of this mod must remain licensed under the CCPL.
|
All distributions of this mod must remain licensed under the CCPL.
|
||||||
@@ -92,7 +92,7 @@ must be made available at no cost and remain licensed under the CCPL.
|
|||||||
---------------
|
---------------
|
||||||
|
|
||||||
If you choose to contribute code or assets to be included in this mod, you
|
If you choose to contribute code or assets to be included in this mod, you
|
||||||
agree that, if added to to the main repository at
|
agree that, if added to to the main repository at
|
||||||
https://github.com/dan200/ComputerCraft, your contributions will be covered by
|
https://github.com/dan200/ComputerCraft, your contributions will be covered by
|
||||||
this license, and that Daniel Ratcliffe will retain the right to re-license the
|
this license, and that Daniel Ratcliffe will retain the right to re-license the
|
||||||
mod, including your contributions, in part or in whole, under other licenses.
|
mod, including your contributions, in part or in whole, under other licenses.
|
||||||
|
115
README.md
115
README.md
@@ -1,74 +1,69 @@
|
|||||||
<img src="logo.png" alt="CC: Restitched" width="100%"/>
|
# 
|
||||||
|
[](https://github.com/SquidDev-CC/CC-Tweaked/actions "Current build status") [](https://minecraft.curseforge.com/projects/cc-tweaked "Download CC: Tweaked on CurseForge")
|
||||||
|
|
||||||
[](https://github.com/cc-tweaked/cc-restitched/actions "Current build status")
|
CC: Tweaked is a fork of [ComputerCraft](https://github.com/dan200/ComputerCraft), adding programmable computers,
|
||||||
[](https://www.curseforge.com/minecraft/mc-mods/cc-restitched "Download CC: Restitched on CurseForge")
|
turtles and more to Minecraft.
|
||||||
[](https://gitpod.io/#https://github.com/cc-tweaked/cc-restitched/tree/1.17-alpha)
|
|
||||||
|
|
||||||
# CC: R Version VS CC: T Version
|
## What?
|
||||||
CC: R Strives to maintain perfect pairity with CC: T, however in some cases this is not possible, so CC: R might have a "newer" version than what CC: T has, these newer versions will be primarily bugfixes and the like because [Fabric](https://fabricmc.net/) is "weird" when porting a Forge mod.
|
ComputerCraft has always held a fond place in my heart: it's the mod which really got me into Minecraft, and it's the
|
||||||
|
mod which has kept me playing it for many years. However, development of the original mod has slowed, as the original
|
||||||
|
developers have had less time to work on the mod, and moved onto other projects and commitments.
|
||||||
|
|
||||||
## What is CC: Restiched
|
CC: Tweaked (or CC:T for short) is an attempt to continue ComputerCraft's legacy. It's not intended to be a competitor
|
||||||
This is an fork of [Zundrel/cc-tweaked-fabric](https://github.com/Zundrel/cc-tweaked-fabric) who's goal was to port [SquidDev-CC/CC-Tweaked](https://github.com/SquidDev-CC/CC-Tweaked) to the [Fabric](https://fabricmc.net/) modloader. I picked up maintaining the mod because the team working on Zundrel's fork can no longer mantain it so, I picked it up to make it as equal as possible with CC: T.
|
to CC, nor do I want to take it in a vastly different direction to the original mod. Instead, CC:T focuses on making the
|
||||||
|
ComputerCraft experience as _solid_ as possible, ironing out any wrinkles that may have developed over time.
|
||||||
|
|
||||||
## Resource Packs
|
## Features
|
||||||
This mod includes textures that are more in-line with the style of Mojang's new texture-artist, Jappa. If you prefer the original textures, enable the "Classic" resource pack.
|
CC: Tweaked contains all the features of the latest version of ComputerCraft, as well as numerous fixes, performance
|
||||||
|
improvements and several nifty additions. I'd recommend checking out [the releases page](https://github.com/SquidDev-CC/CC-Tweaked/releases)
|
||||||
|
to see the full set of changes, but here's a couple of the more interesting additions:
|
||||||
|
|
||||||
<img src="https://raw.githubusercontent.com/3prm3/cc-pack/main/pack.png" alt="CC: Restitched" width="16" height="16"/> [3prm3/cc-pack](https://github.com/3prm3/cc-pack/)
|
- Improvements to the `http` library, including websockets, support for other HTTP methods (`PUT`, `DELETE`, etc...)
|
||||||
We also have a second resourcepack made by [3prm3](https://github.com/3prm3), it features a complete overhaul and can be enabled by enabling the `overhaul` resource pack, go check out his resource pack over here!
|
and configurable limits on HTTP usage.
|
||||||
|
- Full-block wired modems, allowing one to wrap non-solid peripherals (such as turtles, or chests if Plethora is
|
||||||
|
installed).
|
||||||
|
- Pocket computers can be held like maps, allowing you to view the screen without entering a GUI.
|
||||||
|
- Printed pages and books can be placed in item frames and held like maps.
|
||||||
|
- Several profiling and administration tools for server owners, via the `/computercraft` command. This allows operators
|
||||||
|
to track which computers are hogging resources, turn on and shutdown multiple computers at once and interact with
|
||||||
|
computers remotely.
|
||||||
|
- Closer emulation of standard Lua, adding the `debug` and `io` libraries. This also enables seeking within binary
|
||||||
|
files, meaning you don't need to read large files into memory.
|
||||||
|
- Allow running multiple computers on multiple threads, reducing latency on worlds with many computers.
|
||||||
|
|
||||||
# Does this work with shaders/[Sodium?](https://github.com/CaffeineMC/sodium-fabric)
|
## Relation to CCTweaks?
|
||||||
* [ YES ] Sodium
|
This mod has nothing to do with CCTweaks, though there is no denying the name is a throwback to it. That being said,
|
||||||
* [ YES ] Optifine
|
several features have been included, such as full block modems, the Cobalt runtime and map-like rendering for pocket
|
||||||
* Works with VBO Rendering (automatically set)
|
computers.
|
||||||
* No issues
|
|
||||||
* [ EHH ] Iris Shaders
|
|
||||||
* "Works" with TBO Rendering (Default)
|
|
||||||
* Crashes with VBO Rendering
|
|
||||||
* <details>
|
|
||||||
<summary>Shaders are broken</summary>
|
|
||||||
|
|
||||||
* Shaders will cause varrying results ranging from monitors being invisible, to straight up crashing.
|
|
||||||
* Not using shaders will result in odd Z-Fighting of the monitor display and the transparent texture
|
|
||||||
- 
|
|
||||||
- 
|
|
||||||
</details>
|
|
||||||
* [ YES ] Canvas
|
|
||||||
* Works with TBO Rendering (Default)
|
|
||||||
* Scuffed with VBO Rendering
|
|
||||||
* <details>
|
|
||||||
<summary>VBO is broken</summary>
|
|
||||||
|
|
||||||
Monitors are just... scuffed beyond belief.
|
|
||||||
- 
|
|
||||||
- 
|
|
||||||
* The content to the left is supposed to be on the monitors to the right, also the bottom one is supposed to `black/white` not colored.
|
|
||||||
* Turtle Texture for some reason?
|
|
||||||
- 
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
Any contribution is welcome, be that using the mod, reporting bugs or contributing code. In order to start helping develop CC: R there are a few rules;
|
Any contribution is welcome, be that using the mod, reporting bugs or contributing code. If you want to get started
|
||||||
1) Follow the [Fabric](https://fabricmc.net/) programming guidelines as close as possible. This means you have to use [`loom`](https://fabricmc.net/wiki/tutorial:mappings) mappings, if you use anything else, your code will be rejected.
|
developing the mod, [check out the instructions here](CONTRIBUTING.md#developing).
|
||||||
2) You cannot intentionally implement bugs and security vulnerabilities.
|
|
||||||
3) Unless the code is taken directly from CC: Tweaked, `lua` code is offlimits from alteration.
|
|
||||||
|
|
||||||
## Bleeding Edge Builds
|
|
||||||
Bleeding edge builds can be found [here](https://github.com/cc-tweaked/cc-restitched/actions) at Github Actions.
|
|
||||||
|
|
||||||
## Community
|
## Community
|
||||||
If you need help getting started with CC: Restitched, want to show off your latest project, or just want to chat about ComputerCraft, here is the [Forum](https://forums.computercraft.cc/) and the [Discord](https://discord.gg/H2UyJXe).
|
If you need help getting started with CC: Tweaked, want to show off your latest project, or just want to chat about
|
||||||
|
ComputerCraft we have a [forum](https://forums.computercraft.cc/) and [Discord guild](https://discord.computercraft.cc)!
|
||||||
|
There's also a fairly populated, albeit quiet [IRC channel](http://webchat.esper.net/?channels=computercraft), if that's
|
||||||
|
more your cup of tea.
|
||||||
|
|
||||||
## Known Bugs/Issues
|
I'd generally recommend you don't contact me directly (email, DM, etc...) unless absolutely necessary (i.e. in order to
|
||||||
Main Known issue
|
report exploits). You'll get a far quicker response if you ask the whole community!
|
||||||
* Mods that add blocks that can be used as peripherals for CC: T on Forge, don't work with CC: R.
|
|
||||||
* This is because of the differences between Forge and [Fabric](https://fabricmc.net/), and that mod devs, to my knowledge have not agreed upon a standard method in which to implement cross compatibility between mods,
|
|
||||||
* Occasionally a computer will say "File not found" when running a built in program, this is normal just hold `crtl+r` to reboot it.
|
|
||||||
* We do not know what causes it directly, however it happens when the world is `/reload`ed, and currently running programs are not affected so nothing *should break*
|
|
||||||
|
|
||||||
## Perpherals
|
## Using
|
||||||
Unfortunately, unlike the original CC: Tweaked project, CC: Restitched, does not have any actual peripheral mods, currently the only one we have is an example for mod devs to get started with making/adding the peripheral API to their mods!
|
If you want to depend on CC: Tweaked, we have a maven repo. However, you should be wary that some functionality is only
|
||||||
|
exposed by CC:T's API and not vanilla ComputerCraft. If you wish to support all variations of ComputerCraft, I recommend
|
||||||
|
using [cc.crzd.me's maven](https://cc.crzd.me/maven/) instead.
|
||||||
|
|
||||||
If you're a mod dev, made a mod with CC: R peripheral support OR if you're a player who found a mod with CC: R support, please open an [issue here](https://github.com/cc-tweaked/cc-restitched/issues/new?assignees=&labels=peripheralShoutout&template=peripheral_shoutout.md) to let us know so we can add it to the list!
|
```groovy
|
||||||
|
dependencies {
|
||||||
|
maven { url 'https://squiddev.cc/maven/' }
|
||||||
|
}
|
||||||
|
|
||||||
*  [CC Peripheral Test [1.16.5]](https://github.com/Toad-Dev/cc-peripheral-test)
|
dependencies {
|
||||||
* This is an example mod for how to make peripherals that work as a block, or as a turtle upgrade!
|
implementation fg.deobf("org.squiddev:cc-tweaked-${mc_version}:${cct_version}")
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
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
|
||||||
|
exposing more features.
|
||||||
|
472
build.gradle
472
build.gradle
@@ -1,102 +1,302 @@
|
|||||||
plugins {
|
buildscript {
|
||||||
id 'fabric-loom' version '0.9-SNAPSHOT'
|
repositories {
|
||||||
id 'maven-publish'
|
jcenter()
|
||||||
id "checkstyle"
|
mavenCentral()
|
||||||
id "com.github.hierynomus.license" version "0.16.1"
|
maven {
|
||||||
}
|
name = "forge"
|
||||||
|
url = "https://files.minecraftforge.net/maven"
|
||||||
java {
|
}
|
||||||
toolchain {
|
}
|
||||||
languageVersion = JavaLanguageVersion.of(16)
|
dependencies {
|
||||||
vendor = JvmVendorSpec.ADOPTOPENJDK
|
classpath 'com.google.code.gson:gson:2.8.1'
|
||||||
|
classpath 'net.minecraftforge.gradle:ForgeGradle:3.0.154'
|
||||||
|
classpath 'net.sf.proguard:proguard-gradle:6.1.0beta2'
|
||||||
|
classpath 'org.ajoberstar.grgit:grgit-gradle:3.0.0'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id "checkstyle"
|
||||||
|
id "jacoco"
|
||||||
|
id "com.github.hierynomus.license" version "0.15.0"
|
||||||
|
id "com.matthewprenger.cursegradle" version "1.3.0"
|
||||||
|
id "com.github.breadmoirai.github-release" version "2.2.4"
|
||||||
|
}
|
||||||
|
|
||||||
|
apply plugin: 'net.minecraftforge.gradle'
|
||||||
|
apply plugin: 'org.ajoberstar.grgit'
|
||||||
|
apply plugin: 'maven-publish'
|
||||||
|
apply plugin: 'maven'
|
||||||
|
|
||||||
version = mod_version
|
version = mod_version
|
||||||
|
|
||||||
group = "dan200.computercraft"
|
group = "org.squiddev"
|
||||||
archivesBaseName = "cc-restiched"
|
archivesBaseName = "cc-tweaked-${mc_version}"
|
||||||
|
|
||||||
|
minecraft {
|
||||||
|
runs {
|
||||||
|
client {
|
||||||
|
workingDirectory project.file('run')
|
||||||
|
property 'forge.logging.markers', 'REGISTRIES'
|
||||||
|
property 'forge.logging.console.level', 'debug'
|
||||||
|
|
||||||
|
mods {
|
||||||
|
computercraft {
|
||||||
|
source sourceSets.main
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
workingDirectory project.file('run')
|
||||||
|
property 'forge.logging.markers', 'REGISTRIES,REGISTRYDUMP'
|
||||||
|
property 'forge.logging.console.level', 'debug'
|
||||||
|
|
||||||
|
mods {
|
||||||
|
computercraft {
|
||||||
|
source sourceSets.main
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
data {
|
||||||
|
workingDirectory project.file('run')
|
||||||
|
property 'forge.logging.markers', 'REGISTRIES,REGISTRYDUMP'
|
||||||
|
property 'forge.logging.console.level', 'debug'
|
||||||
|
|
||||||
|
args '--mod', 'computercraft', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
|
||||||
|
mods {
|
||||||
|
computercraft {
|
||||||
|
source sourceSets.main
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mappings channel: 'snapshot', version: "${mappings_version}".toString()
|
||||||
|
|
||||||
|
accessTransformer file('src/main/resources/META-INF/accesstransformer.cfg')
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceSets.main.resources {
|
||||||
|
srcDir 'src/generated/resources'
|
||||||
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
|
||||||
maven { url 'https://jitpack.io' }
|
|
||||||
maven { url 'https://api.modrinth.com/maven'}
|
|
||||||
maven { url "https://maven.shedaniel.me/" }
|
|
||||||
maven { url "https://maven.terraformersmc.com/" }
|
|
||||||
maven {
|
maven {
|
||||||
name "SquidDev"
|
name "SquidDev"
|
||||||
url "https://squiddev.cc/maven"
|
url "https://squiddev.cc/maven"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
loom {
|
|
||||||
accessWidenerPath = file("src/main/resources/cc.accesswidener")
|
|
||||||
}
|
|
||||||
|
|
||||||
configurations {
|
configurations {
|
||||||
implementation.extendsFrom shade
|
shade
|
||||||
|
compile.extendsFrom shade
|
||||||
|
deployerJars
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
checkstyle 'com.puppycrawl.tools:checkstyle:8.45.1'
|
checkstyle "com.puppycrawl.tools:checkstyle:8.25"
|
||||||
|
|
||||||
minecraft "com.mojang:minecraft:${mc_version}"
|
minecraft "net.minecraftforge:forge:${mc_version}-${forge_version}"
|
||||||
mappings "net.fabricmc:yarn:${mc_version}+build.${mappings_version}:v2"
|
|
||||||
modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}"
|
|
||||||
modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_api_version}"
|
|
||||||
|
|
||||||
modApi("me.shedaniel.cloth:cloth-config-fabric:${cloth_config_version}") {
|
compileOnly fg.deobf("mezz.jei:jei-1.14.4:6.0.0.27:api")
|
||||||
exclude(group: "net.fabricmc.fabric-api")
|
compileOnly fg.deobf("com.blamejared.crafttweaker:CraftTweaker-1.14.4:5.0.1.162")
|
||||||
}
|
|
||||||
modImplementation "com.terraformersmc:modmenu:${modmenu_version}"
|
|
||||||
modImplementation "me.shedaniel.cloth.api:cloth-utils-v1:${cloth_api_version}"
|
|
||||||
|
|
||||||
implementation 'com.electronwill.night-config:toml:3.6.3'
|
runtimeOnly fg.deobf("mezz.jei:jei-1.14.4:6.0.0.27")
|
||||||
implementation 'com.google.code.findbugs:jsr305:3.0.2'
|
|
||||||
|
|
||||||
shade 'org.squiddev:Cobalt:0.5.2-SNAPSHOT'
|
shade 'org.squiddev:Cobalt:0.5.1-SNAPSHOT'
|
||||||
|
|
||||||
include "me.shedaniel.cloth.api:cloth-utils-v1:${cloth_api_version}"
|
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.4.2'
|
||||||
include 'com.electronwill.night-config:core:3.6.3'
|
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.4.2'
|
||||||
include 'com.electronwill.night-config:toml:3.6.3'
|
|
||||||
include "me.shedaniel.cloth:cloth-config-fabric:${cloth_config_version}"
|
|
||||||
|
|
||||||
modRuntime "me.shedaniel:RoughlyEnoughItems-api-fabric:6.0.254-alpha"
|
deployerJars "org.apache.maven.wagon:wagon-ssh:3.0.0"
|
||||||
modRuntime "me.shedaniel:RoughlyEnoughItems-fabric:6.0.254-alpha"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
processResources {
|
// Compile tasks
|
||||||
inputs.property "version", project.version
|
|
||||||
|
|
||||||
filesMatching("fabric.mod.json") {
|
javadoc {
|
||||||
expand "version": project.version
|
include "dan200/computercraft/api/**/*.java"
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ensure that the encoding is set to UTF-8, no matter what the system default is
|
|
||||||
// this fixes some edge cases with special characters not displaying correctly
|
|
||||||
// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
|
|
||||||
tasks.withType(JavaCompile) {
|
|
||||||
options.encoding = "UTF-8"
|
|
||||||
}
|
|
||||||
|
|
||||||
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
|
|
||||||
// if it is present.
|
|
||||||
// If you remove this task, sources will not be generated.
|
|
||||||
task sourcesJar(type: Jar, dependsOn: classes) {
|
|
||||||
classifier = "sources"
|
|
||||||
from sourceSets.main.allSource
|
|
||||||
}
|
}
|
||||||
|
|
||||||
jar {
|
jar {
|
||||||
from "LICENSE"
|
dependsOn javadoc
|
||||||
|
|
||||||
|
manifest {
|
||||||
|
attributes(["Specification-Title": "computercraft",
|
||||||
|
"Specification-Vendor": "SquidDev",
|
||||||
|
"Specification-Version": "1",
|
||||||
|
"Implementation-Title": "CC: Tweaked",
|
||||||
|
"Implementation-Version": "${mod_version}",
|
||||||
|
"Implementation-Vendor" :"SquidDev",
|
||||||
|
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")])
|
||||||
|
}
|
||||||
|
|
||||||
|
from (sourceSets.main.allSource) {
|
||||||
|
include "dan200/computercraft/api/**/*.java"
|
||||||
|
}
|
||||||
|
|
||||||
from configurations.shade.collect { it.isDirectory() ? it : zipTree(it) }
|
from configurations.shade.collect { it.isDirectory() ? it : zipTree(it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[compileJava, compileTestJava].forEach {
|
||||||
|
it.configure {
|
||||||
|
options.compilerArgs << "-Xlint" << "-Xlint:-processing"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import java.nio.charset.StandardCharsets
|
||||||
|
import java.nio.file.*
|
||||||
|
import java.util.zip.*
|
||||||
|
|
||||||
|
import com.google.gson.GsonBuilder
|
||||||
|
import com.google.gson.JsonElement
|
||||||
import com.hierynomus.gradle.license.tasks.LicenseCheck
|
import com.hierynomus.gradle.license.tasks.LicenseCheck
|
||||||
import com.hierynomus.gradle.license.tasks.LicenseFormat
|
import com.hierynomus.gradle.license.tasks.LicenseFormat
|
||||||
|
import org.ajoberstar.grgit.Grgit
|
||||||
|
import proguard.gradle.ProGuardTask
|
||||||
|
|
||||||
|
task proguard(type: ProGuardTask, dependsOn: jar) {
|
||||||
|
description "Removes unused shadowed classes from the jar"
|
||||||
|
group "compact"
|
||||||
|
|
||||||
|
injars jar.archivePath
|
||||||
|
outjars "${jar.archivePath.absolutePath.replace(".jar", "")}-min.jar"
|
||||||
|
|
||||||
|
// Add the main runtime jar and all non-shadowed dependencies
|
||||||
|
libraryjars "${System.getProperty('java.home')}/lib/rt.jar"
|
||||||
|
libraryjars "${System.getProperty('java.home')}/lib/jce.jar"
|
||||||
|
doFirst {
|
||||||
|
sourceSets.main.compileClasspath
|
||||||
|
.filter { !it.name.contains("Cobalt") }
|
||||||
|
.each { libraryjars it }
|
||||||
|
}
|
||||||
|
|
||||||
|
// We want to avoid as much obfuscation as possible. We're only doing this to shrink code size.
|
||||||
|
dontobfuscate; dontoptimize; keepattributes; keepparameternames
|
||||||
|
|
||||||
|
// Proguard will remove directories by default, but that breaks JarMount.
|
||||||
|
keepdirectories 'data/computercraft/lua**'
|
||||||
|
|
||||||
|
// Preserve ComputerCraft classes - we only want to strip shadowed files.
|
||||||
|
keep 'class dan200.computercraft.** { *; }'
|
||||||
|
|
||||||
|
// LWJGL and Apache bundle Java 9 versions, which is great, but rather breaks Proguard
|
||||||
|
dontwarn 'module-info'
|
||||||
|
dontwarn 'org.apache.**,org.lwjgl.**'
|
||||||
|
}
|
||||||
|
|
||||||
|
task proguardMove(dependsOn: proguard) {
|
||||||
|
description "Replace the original jar with the minified version"
|
||||||
|
group "compact"
|
||||||
|
|
||||||
|
doLast {
|
||||||
|
Files.move(
|
||||||
|
file("${jar.archivePath.absolutePath.replace(".jar", "")}-min.jar").toPath(),
|
||||||
|
file(jar.archivePath).toPath(),
|
||||||
|
StandardCopyOption.REPLACE_EXISTING
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
processResources {
|
||||||
|
inputs.property "version", mod_version
|
||||||
|
inputs.property "mcversion", mc_version
|
||||||
|
|
||||||
|
def hash = 'none'
|
||||||
|
Set<String> contributors = []
|
||||||
|
try {
|
||||||
|
def grgit = Grgit.open(dir: '.')
|
||||||
|
hash = grgit.head().id
|
||||||
|
|
||||||
|
def blacklist = ['GitHub', 'dan200', 'Daniel Ratcliffe']
|
||||||
|
grgit.log().each {
|
||||||
|
if (!blacklist.contains(it.author.name)) contributors.add(it.author.name)
|
||||||
|
if (!blacklist.contains(it.committer.name)) contributors.add(it.committer.name)
|
||||||
|
}
|
||||||
|
} catch(Exception ignored) { }
|
||||||
|
|
||||||
|
inputs.property "commithash", hash
|
||||||
|
|
||||||
|
from(sourceSets.main.resources.srcDirs) {
|
||||||
|
include 'META-INF/mods.toml'
|
||||||
|
include 'data/computercraft/lua/rom/help/credits.txt'
|
||||||
|
|
||||||
|
expand 'version': mod_version,
|
||||||
|
'mcversion': mc_version,
|
||||||
|
'gitcontributors': contributors.sort(false, String.CASE_INSENSITIVE_ORDER).join('\n')
|
||||||
|
}
|
||||||
|
|
||||||
|
from(sourceSets.main.resources.srcDirs) {
|
||||||
|
exclude 'META-INF/mods.toml'
|
||||||
|
exclude 'data/computercraft/lua/rom/help/credits.txt'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
task compressJson(dependsOn: jar) {
|
||||||
|
group "compact"
|
||||||
|
description "Minifies all JSON files, stripping whitespace"
|
||||||
|
|
||||||
|
def jarPath = file(jar.archivePath)
|
||||||
|
|
||||||
|
def tempPath = File.createTempFile("input", ".jar", temporaryDir)
|
||||||
|
tempPath.deleteOnExit()
|
||||||
|
|
||||||
|
def gson = new GsonBuilder().create()
|
||||||
|
|
||||||
|
doLast {
|
||||||
|
// Copy over all files in the current jar to the new one, running json files from GSON. As pretty printing
|
||||||
|
// is turned off, they should be minified.
|
||||||
|
new ZipFile(jarPath).withCloseable { inJar ->
|
||||||
|
tempPath.getParentFile().mkdirs()
|
||||||
|
new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(tempPath))).withCloseable { outJar ->
|
||||||
|
inJar.entries().each { entry ->
|
||||||
|
if(entry.directory) {
|
||||||
|
outJar.putNextEntry(entry)
|
||||||
|
} else if(!entry.name.endsWith(".json")) {
|
||||||
|
outJar.putNextEntry(entry)
|
||||||
|
inJar.getInputStream(entry).withCloseable { outJar << it }
|
||||||
|
} else {
|
||||||
|
ZipEntry newEntry = new ZipEntry(entry.name)
|
||||||
|
newEntry.setTime(entry.time)
|
||||||
|
outJar.putNextEntry(newEntry)
|
||||||
|
|
||||||
|
def element = inJar.getInputStream(entry).withCloseable { gson.fromJson(it.newReader("UTF8"), JsonElement.class) }
|
||||||
|
outJar.write(gson.toJson(element).getBytes(StandardCharsets.UTF_8))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// And replace the original jar again
|
||||||
|
Files.move(tempPath.toPath(), jarPath.toPath(), StandardCopyOption.REPLACE_EXISTING)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assemble.dependsOn compressJson
|
||||||
|
|
||||||
|
// Check tasks
|
||||||
|
|
||||||
|
test {
|
||||||
|
useJUnitPlatform()
|
||||||
|
testLogging {
|
||||||
|
events "skipped", "failed"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
jacocoTestReport {
|
||||||
|
reports {
|
||||||
|
xml.enabled true
|
||||||
|
html.enabled true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
check.dependsOn jacocoTestReport
|
||||||
|
|
||||||
license {
|
license {
|
||||||
mapping("java", "SLASHSTAR_STYLE")
|
mapping("java", "SLASHSTAR_STYLE")
|
||||||
@@ -109,14 +309,14 @@ license {
|
|||||||
it.configure {
|
it.configure {
|
||||||
include("**/*.java")
|
include("**/*.java")
|
||||||
exclude("dan200/computercraft/api/**")
|
exclude("dan200/computercraft/api/**")
|
||||||
header file('config/license/main.txt')
|
header rootProject.file('config/license/main.txt')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[licenseTest, licenseFormatTest].forEach {
|
[licenseTest, licenseFormatTest].forEach {
|
||||||
it.configure {
|
it.configure {
|
||||||
include("**/*.java")
|
include("**/*.java")
|
||||||
header file('config/license/main.txt')
|
header rootProject.file('config/license/main.txt')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,27 +333,141 @@ 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 file('config/license/api.txt')
|
header rootProject.file('config/license/api.txt')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Upload tasks
|
||||||
|
|
||||||
|
task checkRelease {
|
||||||
|
group "upload"
|
||||||
|
description "Verifies that everything is ready for a release"
|
||||||
|
|
||||||
|
inputs.property "version", mod_version
|
||||||
|
inputs.file("src/main/resources/data/computercraft/lua/rom/help/changelog.txt")
|
||||||
|
inputs.file("src/main/resources/data/computercraft/lua/rom/help/whatsnew.txt")
|
||||||
|
|
||||||
|
doLast {
|
||||||
|
def ok = true
|
||||||
|
|
||||||
|
// Check we're targetting the current version
|
||||||
|
def whatsnew = new File("src/main/resources/data/computercraft/lua/rom/help/whatsnew.txt").readLines()
|
||||||
|
if (whatsnew[0] != "New features in CC: Tweaked $mod_version") {
|
||||||
|
ok = false
|
||||||
|
project.logger.error("Expected `whatsnew.txt' to target $mod_version.")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check "read more" exists and trim it
|
||||||
|
def idx = whatsnew.findIndexOf { it == 'Type "help changelog" to see the full version history.' }
|
||||||
|
if (idx == -1) {
|
||||||
|
ok = false
|
||||||
|
project.logger.error("Must mention the changelog in whatsnew.txt")
|
||||||
|
} else {
|
||||||
|
whatsnew = whatsnew.getAt(0 ..< idx)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check whatsnew and changelog match.
|
||||||
|
def versionChangelog = "# " + whatsnew.join("\n")
|
||||||
|
def changelog = new File("src/main/resources/data/computercraft/lua/rom/help/changelog.txt").getText()
|
||||||
|
if (!changelog.startsWith(versionChangelog)) {
|
||||||
|
ok = false
|
||||||
|
project.logger.error("whatsnew and changelog are not in sync")
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!ok) throw new IllegalStateException("Could not check release")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
check.dependsOn checkRelease
|
||||||
|
|
||||||
|
curseforge {
|
||||||
|
apiKey = project.hasProperty('curseForgeApiKey') ? project.curseForgeApiKey : ''
|
||||||
|
project {
|
||||||
|
id = '282001'
|
||||||
|
releaseType = 'release'
|
||||||
|
changelog = "Release notes can be found on the GitHub repository (https://github.com/SquidDev-CC/CC-Tweaked/releases/tag/v${mc_version}-${mod_version})."
|
||||||
|
|
||||||
|
relations {
|
||||||
|
incompatible "computercraft"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// configure the maven publication
|
|
||||||
publishing {
|
publishing {
|
||||||
publications {
|
publications {
|
||||||
mavenJava(MavenPublication) {
|
mavenJava(MavenPublication) {
|
||||||
// add all the jars that should be included when publishing to maven
|
from components.java
|
||||||
artifact(remapJar) {
|
// artifact sourceJar
|
||||||
builtBy remapJar
|
}
|
||||||
}
|
}
|
||||||
artifact(sourcesJar) {
|
}
|
||||||
builtBy remapSourcesJar
|
|
||||||
|
uploadArchives {
|
||||||
|
repositories {
|
||||||
|
if(project.hasProperty('mavenUploadUrl')) {
|
||||||
|
mavenDeployer {
|
||||||
|
configuration = configurations.deployerJars
|
||||||
|
|
||||||
|
repository(url: project.property('mavenUploadUrl')) {
|
||||||
|
authentication(
|
||||||
|
userName: project.property('mavenUploadUser'),
|
||||||
|
privateKey: project.property('mavenUploadKey'))
|
||||||
|
}
|
||||||
|
|
||||||
|
pom.project {
|
||||||
|
name 'CC: Tweaked'
|
||||||
|
packaging 'jar'
|
||||||
|
description 'CC: Tweaked is a fork of ComputerCraft, adding programmable computers, turtles and more to Minecraft.'
|
||||||
|
url 'https://github.com/SquidDev-CC/CC-Tweaked'
|
||||||
|
|
||||||
|
scm {
|
||||||
|
url 'https://github.com/SquidDev-CC/CC-Tweaked.git'
|
||||||
|
}
|
||||||
|
|
||||||
|
issueManagement {
|
||||||
|
system 'github'
|
||||||
|
url 'https://github.com/SquidDev-CC/CC-Tweaked/issues'
|
||||||
|
}
|
||||||
|
|
||||||
|
licenses {
|
||||||
|
license {
|
||||||
|
name 'ComputerCraft Public License, Version 1.0'
|
||||||
|
url 'https://github.com/SquidDev-CC/CC-Tweaked/blob/master/LICENSE'
|
||||||
|
distribution 'repo'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pom.whenConfigured { pom ->
|
||||||
|
pom.dependencies.clear()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// select the repositories you want to publish to
|
|
||||||
repositories {
|
githubRelease {
|
||||||
// uncomment to publish to the local maven
|
token project.hasProperty('githubApiKey') ? project.githubApiKey : ''
|
||||||
// mavenLocal()
|
owner 'SquidDev-CC'
|
||||||
}
|
repo 'CC-Tweaked'
|
||||||
|
try {
|
||||||
|
targetCommitish = Grgit.open(dir: '.').branch.current().name
|
||||||
|
} catch(Exception ignored) { }
|
||||||
|
|
||||||
|
tagName "v${mc_version}-${mod_version}"
|
||||||
|
releaseName "[${mc_version}] ${mod_version}"
|
||||||
|
body {
|
||||||
|
"## " + new File("src/main/resources/data/computercraft/lua/rom/help/whatsnew.txt")
|
||||||
|
.readLines()
|
||||||
|
.takeWhile { it != 'Type "help changelog" to see the full version history.' }
|
||||||
|
.join("\n").trim()
|
||||||
|
}
|
||||||
|
prerelease false
|
||||||
|
}
|
||||||
|
|
||||||
|
def uploadTasks = ["uploadArchives", "curseforge", "githubRelease"]
|
||||||
|
uploadTasks.forEach { tasks.getByName(it).dependsOn checkRelease }
|
||||||
|
|
||||||
|
task uploadAll(dependsOn: uploadTasks) {
|
||||||
|
group "upload"
|
||||||
|
description "Uploads to all repositories (Maven, Curse, GitHub release)"
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,61 +0,0 @@
|
|||||||
<code_scheme name="Project" version="173">
|
|
||||||
<JSON>
|
|
||||||
<option name="OBJECT_WRAPPING" value="1" />
|
|
||||||
<option name="ARRAY_WRAPPING" value="1" />
|
|
||||||
</JSON>
|
|
||||||
<JavaCodeStyleSettings>
|
|
||||||
<option name="PACKAGES_TO_USE_IMPORT_ON_DEMAND">
|
|
||||||
<value />
|
|
||||||
</option>
|
|
||||||
<option name="JD_P_AT_EMPTY_LINES" value="false" />
|
|
||||||
<option name="JD_PRESERVE_LINE_FEEDS" value="true" />
|
|
||||||
</JavaCodeStyleSettings>
|
|
||||||
<codeStyleSettings language="JAVA">
|
|
||||||
<option name="KEEP_FIRST_COLUMN_COMMENT" value="false" />
|
|
||||||
<option name="BRACE_STYLE" value="2" />
|
|
||||||
<option name="CLASS_BRACE_STYLE" value="2" />
|
|
||||||
<option name="METHOD_BRACE_STYLE" value="2" />
|
|
||||||
<option name="LAMBDA_BRACE_STYLE" value="5" />
|
|
||||||
<option name="ELSE_ON_NEW_LINE" value="true" />
|
|
||||||
<option name="CATCH_ON_NEW_LINE" value="true" />
|
|
||||||
<option name="FINALLY_ON_NEW_LINE" value="true" />
|
|
||||||
<option name="SPACE_WITHIN_METHOD_CALL_PARENTHESES" value="true" />
|
|
||||||
<option name="SPACE_WITHIN_METHOD_PARENTHESES" value="true" />
|
|
||||||
<option name="SPACE_WITHIN_IF_PARENTHESES" value="true" />
|
|
||||||
<option name="SPACE_WITHIN_WHILE_PARENTHESES" value="true" />
|
|
||||||
<option name="SPACE_WITHIN_FOR_PARENTHESES" value="true" />
|
|
||||||
<option name="SPACE_WITHIN_TRY_PARENTHESES" value="true" />
|
|
||||||
<option name="SPACE_WITHIN_CATCH_PARENTHESES" value="true" />
|
|
||||||
<option name="SPACE_WITHIN_SWITCH_PARENTHESES" value="true" />
|
|
||||||
<option name="SPACE_WITHIN_SYNCHRONIZED_PARENTHESES" value="true" />
|
|
||||||
<option name="SPACE_WITHIN_ARRAY_INITIALIZER_BRACES" value="true" />
|
|
||||||
<option name="SPACE_BEFORE_IF_PARENTHESES" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_WHILE_PARENTHESES" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_FOR_PARENTHESES" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_TRY_PARENTHESES" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_CATCH_PARENTHESES" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_SWITCH_PARENTHESES" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_SYNCHRONIZED_PARENTHESES" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_ARRAY_INITIALIZER_LBRACE" value="true" />
|
|
||||||
<option name="KEEP_SIMPLE_METHODS_IN_ONE_LINE" value="true" />
|
|
||||||
<option name="KEEP_SIMPLE_LAMBDAS_IN_ONE_LINE" value="true" />
|
|
||||||
<option name="KEEP_SIMPLE_CLASSES_IN_ONE_LINE" value="true" />
|
|
||||||
<option name="IF_BRACE_FORCE" value="1" />
|
|
||||||
<option name="DOWHILE_BRACE_FORCE" value="1" />
|
|
||||||
<option name="WHILE_BRACE_FORCE" value="1" />
|
|
||||||
<option name="FOR_BRACE_FORCE" value="1" />
|
|
||||||
<option name="SPACE_WITHIN_ANNOTATION_PARENTHESES" value="true" />
|
|
||||||
<indentOptions>
|
|
||||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="JSON">
|
|
||||||
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
|
|
||||||
<option name="SPACE_WITHIN_BRACKETS" value="true" />
|
|
||||||
<option name="SPACE_WITHIN_BRACES" value="true" />
|
|
||||||
<indentOptions>
|
|
||||||
<option name="INDENT_SIZE" value="4" />
|
|
||||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
</code_scheme>
|
|
@@ -7,11 +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_loc}/suppressions.xml" />
|
<property name="file" value="config/checkstyle/suppressions.xml" />
|
||||||
</module>
|
|
||||||
|
|
||||||
<module name="BeforeExecutionExclusionFileFilter">
|
|
||||||
<property name="fileNamePattern" value="render_old"/>
|
|
||||||
</module>
|
</module>
|
||||||
|
|
||||||
<module name="TreeWalker">
|
<module name="TreeWalker">
|
||||||
@@ -58,13 +54,13 @@
|
|||||||
<module name="SimplifyBooleanExpression" />
|
<module name="SimplifyBooleanExpression" />
|
||||||
<module name="SimplifyBooleanReturn" />
|
<module name="SimplifyBooleanReturn" />
|
||||||
<module name="StringLiteralEquality" />
|
<module name="StringLiteralEquality" />
|
||||||
<!-- <module name="UnnecessaryParentheses" /> -->
|
<module name="UnnecessaryParentheses" />
|
||||||
<module name="UnnecessarySemicolonAfterTypeMemberDeclaration" />
|
<module name="UnnecessarySemicolonAfterTypeMemberDeclaration" />
|
||||||
<module name="UnnecessarySemicolonInTryWithResources" />
|
<module name="UnnecessarySemicolonInTryWithResources" />
|
||||||
<module name="UnnecessarySemicolonInEnumeration" />
|
<module name="UnnecessarySemicolonInEnumeration" />
|
||||||
|
|
||||||
<!-- Imports -->
|
<!-- Imports -->
|
||||||
<!--<module name="CustomImportOrder" />-->
|
<module name="CustomImportOrder" />
|
||||||
<module name="IllegalImport" />
|
<module name="IllegalImport" />
|
||||||
<module name="RedundantImport" />
|
<module name="RedundantImport" />
|
||||||
<module name="UnusedImports" />
|
<module name="UnusedImports" />
|
||||||
@@ -97,19 +93,28 @@
|
|||||||
<module name="LambdaParameterName" />
|
<module name="LambdaParameterName" />
|
||||||
<module name="LocalFinalVariableName" />
|
<module name="LocalFinalVariableName" />
|
||||||
<module name="LocalVariableName" />
|
<module name="LocalVariableName" />
|
||||||
<module name="MemberName" />
|
<!-- Allow an optional m_ on private members -->
|
||||||
|
<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\.computercraft(\.[a-z][a-z0-9]*)*" />
|
<property name="format" value="^dan200\.computercraf(\.[a-z][a-z0-9]*)*" />
|
||||||
</module>
|
</module>
|
||||||
<module name="ParameterName" />
|
<module name="ParameterName" />
|
||||||
<module name="StaticVariableName">
|
<module name="StaticVariableName">
|
||||||
<property name="format" value="^[a-z][a-zA-Z0-9]*|CAPABILITY(_[A-Z_]+)?$" />
|
<property name="format" value="^[a-z][a-zA-Z0-9]*|CAPABILITY(_[A-Z]+)?$" />
|
||||||
<property name="applyToPrivate" value="false" />
|
<property name="applyToPrivate" value="false" />
|
||||||
</module>
|
</module>
|
||||||
<module name="StaticVariableName">
|
<module name="StaticVariableName">
|
||||||
<property name="format" value="^(s_)?[a-z][a-zA-Z0-9]*|CAPABILITY(_[A-Z_]+)?$" />
|
<property name="format" value="^(s_)?[a-z][a-zA-Z0-9]*|CAPABILITY(_[A-Z]+)?$" />
|
||||||
<property name="applyToPrivate" value="true" />
|
<property name="applyToPrivate" value="true" />
|
||||||
</module>
|
</module>
|
||||||
<module name="TypeName" />
|
<module name="TypeName" />
|
||||||
|
@@ -7,9 +7,6 @@
|
|||||||
<suppress checks="StaticVariableName" files=".*[\\/]ComputerCraft.java" />
|
<suppress checks="StaticVariableName" files=".*[\\/]ComputerCraft.java" />
|
||||||
<suppress checks="StaticVariableName" files=".*[\\/]ComputerCraftAPI.java" />
|
<suppress checks="StaticVariableName" files=".*[\\/]ComputerCraftAPI.java" />
|
||||||
|
|
||||||
<!-- Some shadowed fields in mixins can't be renamed -->
|
<!-- Do not check for missing package Javadoc. -->
|
||||||
<suppress checks="StaticVariableName" files=".*[\\/]mixin[\\/].*" />
|
<suppress checks="JavadocStyle" files=".*[\\/]package-info.java" />
|
||||||
|
|
||||||
<!-- The commands API is documented in Lua. -->
|
|
||||||
<suppress checks="SummaryJavadocCheck" files=".*[\\/]CommandAPI.java" />
|
|
||||||
</suppressions>
|
</suppressions>
|
||||||
|
@@ -2488,4 +2488,4 @@
|
|||||||
</option>
|
</option>
|
||||||
</inspection_tool>
|
</inspection_tool>
|
||||||
</profile>
|
</profile>
|
||||||
</component>
|
</component>
|
@@ -58,4 +58,4 @@
|
|||||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
||||||
</indentOptions>
|
</indentOptions>
|
||||||
</codeStyleSettings>
|
</codeStyleSettings>
|
||||||
</code_scheme>
|
</code_scheme>
|
@@ -1,49 +0,0 @@
|
|||||||
# See https://pre-commit.com for more information
|
|
||||||
# See https://pre-commit.com/hooks.html for more hooks
|
|
||||||
repos:
|
|
||||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
||||||
rev: v3.2.0
|
|
||||||
hooks:
|
|
||||||
- id: trailing-whitespace
|
|
||||||
- id: end-of-file-fixer
|
|
||||||
- id: check-merge-conflict
|
|
||||||
|
|
||||||
# Quick syntax checkers
|
|
||||||
- id: check-xml
|
|
||||||
- id: check-yaml
|
|
||||||
- id: check-toml
|
|
||||||
- id: check-json
|
|
||||||
exclude: "tsconfig\\.json$"
|
|
||||||
|
|
||||||
- repo: https://github.com/editorconfig-checker/editorconfig-checker.python
|
|
||||||
rev: 2.3.5
|
|
||||||
hooks:
|
|
||||||
- id: editorconfig-checker
|
|
||||||
args: ['-disable-indentation']
|
|
||||||
exclude: "^(.*\\.(bat)|LICENSE)$"
|
|
||||||
|
|
||||||
- repo: local
|
|
||||||
hooks:
|
|
||||||
- id: checkstyle
|
|
||||||
name: Check Java codestyle
|
|
||||||
files: ".*\\.java$"
|
|
||||||
language: system
|
|
||||||
entry: ./gradlew checkstyleMain checkstyleTest
|
|
||||||
pass_filenames: false
|
|
||||||
require_serial: true
|
|
||||||
- id: license
|
|
||||||
name: Check Java license headers
|
|
||||||
files: ".*\\.java$"
|
|
||||||
language: system
|
|
||||||
entry: ./gradlew licenseFormat
|
|
||||||
pass_filenames: false
|
|
||||||
require_serial: true
|
|
||||||
|
|
||||||
exclude: |
|
|
||||||
(?x)^(
|
|
||||||
src/generated|
|
|
||||||
src/test/resources/test-rom/data/json-parsing/|
|
|
||||||
src/test/server-files/|
|
|
||||||
config/idea/|
|
|
||||||
.vscode/
|
|
||||||
)
|
|
@@ -1,16 +0,0 @@
|
|||||||
#!/usr/bin/env sh
|
|
||||||
set -e
|
|
||||||
|
|
||||||
test -d bin || mkdir bin
|
|
||||||
test -f bin/illuaminate || curl -s -obin/illuaminate https://squiddev.cc/illuaminate/linux-x86-64/illuaminate
|
|
||||||
chmod +x bin/illuaminate
|
|
||||||
|
|
||||||
if [ -n ${GITHUB_ACTIONS+x} ]; then
|
|
||||||
# Register a problem matcher (see https://github.com/actions/toolkit/blob/master/docs/problem-matchers.md)
|
|
||||||
# for illuaminate.
|
|
||||||
echo "::add-matcher::.github/matchers/illuaminate.json"
|
|
||||||
trap 'echo "::remove-matcher owner=illuaminate::"' EXIT
|
|
||||||
fi
|
|
||||||
|
|
||||||
./gradlew luaJavadoc
|
|
||||||
bin/illuaminate lint
|
|
11
doc/index.md
Normal file
11
doc/index.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#  [](https://minecraft.curseforge.com/projects/cc-tweaked "Download CC: Tweaked on CurseForge")
|
||||||
|
|
||||||
|
CC: Tweaked is a fork of [ComputerCraft], adding programmable computers, turtles and more to Minecraft.
|
||||||
|
|
||||||
|
This website contains documentation for all Lua libraries and APIs from the latest version of CC: Tweaked. This
|
||||||
|
documentation is still in development, so will most likely be incomplete. If you've found something you think is wrong,
|
||||||
|
or would like to help out [please get in touch on GitHub][gh].
|
||||||
|
|
||||||
|
[bug]: https://github.com/SquidDev-CC/CC-Tweaked/issues/new/choose
|
||||||
|
[computercraft]: https://github.com/dan200/ComputerCraft "ComputerCraft on GitHub"
|
||||||
|
[gh]: https://github.com/SquidDev-CC/CC-Tweaked "CC:Tweaked on GitHub"
|
BIN
doc/logo.png
Normal file
BIN
doc/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.2 KiB |
77
doc/stub/commands.lua
Normal file
77
doc/stub/commands.lua
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
--- Execute a specific command.
|
||||||
|
--
|
||||||
|
-- @tparam string command The command to execute.
|
||||||
|
-- @treturn boolean Whether the command executed successfully.
|
||||||
|
-- @treturn { string... } The output of this command, as a list of lines.
|
||||||
|
-- @treturn number|nil The number of "affected" objects, or `nil` if the command
|
||||||
|
-- failed. The definition of this varies from command to command.
|
||||||
|
-- @usage Set the block above the command computer to stone.
|
||||||
|
--
|
||||||
|
-- commands.exec("setblock ~ ~1 ~ minecraft:stone")
|
||||||
|
function exec(command) end
|
||||||
|
|
||||||
|
--- Asynchronously execute a command.
|
||||||
|
--
|
||||||
|
-- Unlike @{exec}, this will immediately return, instead of waiting for the
|
||||||
|
-- command to execute. This allows you to run multiple commands at the same
|
||||||
|
-- time.
|
||||||
|
--
|
||||||
|
-- When this command has finished executing, it will queue a `task_complete`
|
||||||
|
-- event containing the result of executing this command (what @{exec} would
|
||||||
|
-- return).
|
||||||
|
--
|
||||||
|
-- @tparam string command The command to execute.
|
||||||
|
-- @treturn number The "task id". When this command has been executed, it will
|
||||||
|
-- queue a `task_complete` event with a matching id.
|
||||||
|
-- @usage Asynchronously sets the block above the computer to stone.
|
||||||
|
--
|
||||||
|
-- commands.execAsync("~ ~1 ~ minecraft:stone")
|
||||||
|
-- @see parallel One may also use the parallel API to run multiple commands at
|
||||||
|
-- once.
|
||||||
|
function execAsync(commad) end
|
||||||
|
|
||||||
|
--- List all available commands which the computer has permission to execute.
|
||||||
|
--
|
||||||
|
-- @treturn { string... } A list of all available commands
|
||||||
|
function list() end
|
||||||
|
|
||||||
|
--- Get the position of the current command computer.
|
||||||
|
--
|
||||||
|
-- @treturn number This computer's x position.
|
||||||
|
-- @treturn number This computer's y position.
|
||||||
|
-- @treturn number This computer's z position.
|
||||||
|
-- @see gps.locate To get the position of a non-command computer.
|
||||||
|
function getBlockPosition() end
|
||||||
|
|
||||||
|
--- Get some basic information about a block.
|
||||||
|
--
|
||||||
|
-- The returned table contains the current name, metadata and block state (as
|
||||||
|
-- with @{turtle.inspect}). If there is a tile entity for that block, its NBT
|
||||||
|
-- will also be returned.
|
||||||
|
--
|
||||||
|
-- @tparam number x The x position of the block to query.
|
||||||
|
-- @tparam number y The y position of the block to query.
|
||||||
|
-- @tparam number z The z position of the block to query.
|
||||||
|
-- @treturn table The given block's information.
|
||||||
|
-- @throws If the coordinates are not within the world, or are not currently
|
||||||
|
-- loaded.
|
||||||
|
function getBlockInfo(x, y, z) end
|
||||||
|
|
||||||
|
--- Get information about a range of blocks.
|
||||||
|
--
|
||||||
|
-- This returns the same information as @{getBlockInfo}, just for multiple
|
||||||
|
-- blocks at once.
|
||||||
|
--
|
||||||
|
-- Blocks are traversed by ascending y level, followed by z and x - the returned
|
||||||
|
-- table may be indexed using `x + z*width + y*depth*depth`.
|
||||||
|
--
|
||||||
|
-- @tparam number min_x The start x coordinate of the range to query.
|
||||||
|
-- @tparam number min_y The start y coordinate of the range to query.
|
||||||
|
-- @tparam number min_z The start z coordinate of the range to query.
|
||||||
|
-- @tparam number max_x The end x coordinate of the range to query.
|
||||||
|
-- @tparam number max_y The end y coordinate of the range to query.
|
||||||
|
-- @tparam number max_z The end z coordinate of the range to query.
|
||||||
|
-- @treturn { table... } A list of information about each block.
|
||||||
|
-- @throws If the coordinates are not within the world.
|
||||||
|
-- @throws If trying to get information about more than 4096 blocks.
|
||||||
|
function getBlockInfos(min_x, min_y, min_z, max_x, max_y, max_z) end
|
84
doc/stub/fs.lua
Normal file
84
doc/stub/fs.lua
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
--- The FS API allows you to manipulate files and the filesystem.
|
||||||
|
--
|
||||||
|
-- @module fs
|
||||||
|
|
||||||
|
function list(path) end
|
||||||
|
function combine(base, child) end
|
||||||
|
function getName(path) end
|
||||||
|
function getSize(path) end
|
||||||
|
function exists(path) end
|
||||||
|
function isDir(path) end
|
||||||
|
function isReadOnly(path) end
|
||||||
|
function makeDir(path) end
|
||||||
|
function move(from, to) end
|
||||||
|
function copy(from, to) end
|
||||||
|
function delete(path) end
|
||||||
|
function open(path, mode) end
|
||||||
|
function getDrive(path) end
|
||||||
|
function getFreeSpace(path) end
|
||||||
|
function find(pattern) end
|
||||||
|
function getDir(path) end
|
||||||
|
|
||||||
|
--- Returns true if a path is mounted to the parent filesystem.
|
||||||
|
--
|
||||||
|
-- The root filesystem "/" is considered a mount, along with disk folders and
|
||||||
|
-- the rom folder. Other programs (such as network shares) can exstend this to
|
||||||
|
-- make other mount types by correctly assigning their return value for getDrive.
|
||||||
|
--
|
||||||
|
-- @tparam string path The path to check.
|
||||||
|
-- @treturn boolean If the path is mounted, rather than a normal file/folder.
|
||||||
|
-- @throws If the path does not exist.
|
||||||
|
-- @see getDrive
|
||||||
|
function isDriveRoot(path) end
|
||||||
|
|
||||||
|
--- Get the capacity of the drive at the given path.
|
||||||
|
--
|
||||||
|
-- This may be used in conjunction with @{getFreeSpace} to determine what
|
||||||
|
-- percentage of this drive has been used.
|
||||||
|
--
|
||||||
|
-- @tparam string path The path of the drive to get.
|
||||||
|
-- @treturn number This drive's capacity. This will be 0 for "read-only" drives,
|
||||||
|
-- such as the ROM or treasure disks.
|
||||||
|
function getCapacity(path) end
|
||||||
|
|
||||||
|
--- Get attributes about a specific file or folder.
|
||||||
|
--
|
||||||
|
-- The returned attributes table contains information about the size of the
|
||||||
|
-- file, whether it is a directory, and when it was created and last modified.
|
||||||
|
--
|
||||||
|
-- The creation and modification times are given as the number of milliseconds
|
||||||
|
-- since the UNIX epoch. This may be given to @{os.date} in order to convert it
|
||||||
|
-- to more usable form.
|
||||||
|
--
|
||||||
|
-- @tparam string path The path to get attributes for.
|
||||||
|
-- @treturn { size = number, isDir = boolean, created = number, modified = number }
|
||||||
|
-- The resulting attributes.
|
||||||
|
-- @throws If the path does not exist.
|
||||||
|
-- @see getSize If you only care about the file's size.
|
||||||
|
-- @see isDir If you only care whether a path is a directory or not.
|
||||||
|
function attributes(path) end
|
||||||
|
|
||||||
|
-- Defined in bios.lua
|
||||||
|
function complete(sPath, sLocation, bIncludeFiles, bIncludeDirs) end
|
||||||
|
|
||||||
|
--- A file handle which can be read from.
|
||||||
|
--
|
||||||
|
-- @type ReadHandle
|
||||||
|
-- @see fs.open
|
||||||
|
local ReadHandle = {}
|
||||||
|
function ReadHandle.read(count) end
|
||||||
|
function ReadHandle.readAll() end
|
||||||
|
function ReadHandle.readLine(with_trailing) end
|
||||||
|
function ReadHandle.seek(whence, offset) end
|
||||||
|
function ReadHandle.close() end
|
||||||
|
|
||||||
|
--- A file handle which can be written to.
|
||||||
|
--
|
||||||
|
-- @type WriteHandle
|
||||||
|
-- @see fs.open
|
||||||
|
local WriteHandle = {}
|
||||||
|
function WriteHandle.write(text) end
|
||||||
|
function WriteHandle.writeLine(text) end
|
||||||
|
function WriteHandle.flush(text) end
|
||||||
|
function WriteHandle.seek(whence, offset) end
|
||||||
|
function WriteHandle.close() end
|
229
doc/stub/http.lua
Normal file
229
doc/stub/http.lua
Normal file
@@ -0,0 +1,229 @@
|
|||||||
|
--- The http library allows communicating with web servers, sending and
|
||||||
|
-- receiving data from them.
|
||||||
|
--
|
||||||
|
-- #### `http_check` event
|
||||||
|
--
|
||||||
|
-- @module http
|
||||||
|
|
||||||
|
--- Asynchronously make a HTTP request to the given url.
|
||||||
|
--
|
||||||
|
-- This returns immediately, a [`http_success`](#http-success-event) or
|
||||||
|
-- [`http_failure`](#http-failure-event) will be queued once the request has
|
||||||
|
-- completed.
|
||||||
|
--
|
||||||
|
-- @tparam string url The url to request
|
||||||
|
-- @tparam[opt] string body An optional string containing the body of the
|
||||||
|
-- request. If specified, a `POST` request will be made instead.
|
||||||
|
-- @tparam[opt] { [string] = string } headers Additional headers to send as part
|
||||||
|
-- of this request.
|
||||||
|
-- @tparam[opt] boolean binary Whether to make a binary HTTP request. If true,
|
||||||
|
-- the body will not be UTF-8 encoded, and the received response will not be
|
||||||
|
-- decoded.
|
||||||
|
--
|
||||||
|
-- @tparam[2] {
|
||||||
|
-- url = string, body? = string, headers? = { [string] = string },
|
||||||
|
-- binary? = boolean, method? = string, redirect? = boolean,
|
||||||
|
-- } request Options for the request.
|
||||||
|
--
|
||||||
|
-- This table form is an expanded version of the previous syntax. All arguments
|
||||||
|
-- from above are passed in as fields instead (for instance,
|
||||||
|
-- `http.request("https://example.com")` becomes `http.request { url =
|
||||||
|
-- "https://example.com" }`).
|
||||||
|
--
|
||||||
|
-- This table also accepts several additional options:
|
||||||
|
--
|
||||||
|
-- - `method`: Which HTTP method to use, for instance `"PATCH"` or `"DELETE"`.
|
||||||
|
-- - `redirect`: Whether to follow HTTP redirects. Defaults to true.
|
||||||
|
--
|
||||||
|
-- @see http.get For a synchronous way to make GET requests.
|
||||||
|
-- @see http.post For a synchronous way to make POST requests.
|
||||||
|
function request(...) end
|
||||||
|
|
||||||
|
--- Make a HTTP GET request to the given url.
|
||||||
|
--
|
||||||
|
-- @tparam string url The url to request
|
||||||
|
-- @tparam[opt] { [string] = string } headers Additional headers to send as part
|
||||||
|
-- of this request.
|
||||||
|
-- @tparam[opt] boolean binary Whether to make a binary HTTP request. If true,
|
||||||
|
-- the body will not be UTF-8 encoded, and the received response will not be
|
||||||
|
-- decoded.
|
||||||
|
--
|
||||||
|
-- @tparam[2] {
|
||||||
|
-- url = string, headers? = { [string] = string },
|
||||||
|
-- binary? = boolean, method? = string, redirect? = boolean,
|
||||||
|
-- } request Options for the request. See @{http.request} for details on how
|
||||||
|
-- these options behave.
|
||||||
|
--
|
||||||
|
-- @treturn Response The resulting http response, which can be read from.
|
||||||
|
-- @treturn[2] nil When the http request failed, such as in the event of a 404
|
||||||
|
-- error or connection timeout.
|
||||||
|
-- @treturn string A message detailing why the request failed.
|
||||||
|
-- @treturn Response|nil The failing http response, if available.
|
||||||
|
--
|
||||||
|
-- @usage Make a request to [example.computercraft.cc](https://example.computercraft.cc),
|
||||||
|
-- and print the returned page.
|
||||||
|
-- ```lua
|
||||||
|
-- local request = http.get("https://example.computercraft.cc")
|
||||||
|
-- print(request.readAll())
|
||||||
|
-- -- => HTTP is working!
|
||||||
|
-- request.close()
|
||||||
|
-- ```
|
||||||
|
function get(...) end
|
||||||
|
|
||||||
|
--- Make a HTTP POST request to the given url.
|
||||||
|
--
|
||||||
|
-- @tparam string url The url to request
|
||||||
|
-- @tparam string body The body of the POST request.
|
||||||
|
-- @tparam[opt] { [string] = string } headers Additional headers to send as part
|
||||||
|
-- of this request.
|
||||||
|
-- @tparam[opt] boolean binary Whether to make a binary HTTP request. If true,
|
||||||
|
-- the body will not be UTF-8 encoded, and the received response will not be
|
||||||
|
-- decoded.
|
||||||
|
--
|
||||||
|
-- @tparam[2] {
|
||||||
|
-- url = string, body? = string, headers? = { [string] = string },
|
||||||
|
-- binary? = boolean, method? = string, redirect? = boolean,
|
||||||
|
-- } request Options for the request. See @{http.request} for details on how
|
||||||
|
-- these options behave.
|
||||||
|
--
|
||||||
|
-- @treturn Response The resulting http response, which can be read from.
|
||||||
|
-- @treturn[2] nil When the http request failed, such as in the event of a 404
|
||||||
|
-- error or connection timeout.
|
||||||
|
-- @treturn string A message detailing why the request failed.
|
||||||
|
-- @treturn Response|nil The failing http response, if available.
|
||||||
|
function post(...) end
|
||||||
|
|
||||||
|
--- A http response. This acts very much like a @{fs.ReadHandle|file}, though
|
||||||
|
-- provides some http specific methods.
|
||||||
|
--
|
||||||
|
-- #### `http_success` event
|
||||||
|
-- #### `http_failure` event
|
||||||
|
--
|
||||||
|
-- @type Response
|
||||||
|
-- @see http.request On how to make a http request.
|
||||||
|
local Response = {}
|
||||||
|
|
||||||
|
--- Returns the response code and response message returned by the server
|
||||||
|
--
|
||||||
|
-- @treturn number The response code (i.e. 200)
|
||||||
|
-- @treturn string The response message (i.e. "OK")
|
||||||
|
function Response.getResponseCode() end
|
||||||
|
|
||||||
|
--- Get a table containing the response's headers, in a format similar to that
|
||||||
|
-- required by @{http.request}. If multiple headers are sent with the same
|
||||||
|
-- name, they will be combined with a comma.
|
||||||
|
--
|
||||||
|
-- @treturn { [string]=string } The response's headers.
|
||||||
|
-- Make a request to [example.computercraft.cc](https://example.computercraft.cc),
|
||||||
|
-- and print the returned headers.
|
||||||
|
-- ```lua
|
||||||
|
-- local request = http.get("https://example.computercraft.cc")
|
||||||
|
-- print(textutils.serialize(request.getResponseHeaders()))
|
||||||
|
-- -- => {
|
||||||
|
-- -- [ "Content-Type" ] = "text/plain; charset=utf8",
|
||||||
|
-- -- [ "content-length" ] = 17,
|
||||||
|
-- -- ...
|
||||||
|
-- -- }
|
||||||
|
-- request.close()
|
||||||
|
-- ```
|
||||||
|
function Response.getResponseHeaders() end
|
||||||
|
|
||||||
|
function Response.read(count) end
|
||||||
|
function Response.readAll() end
|
||||||
|
function Response.readLine(with_trailing) end
|
||||||
|
function Response.seek(whence, offset) end
|
||||||
|
function Response.close() end
|
||||||
|
|
||||||
|
--- Asynchronously determine whether a URL can be requested.
|
||||||
|
--
|
||||||
|
-- If this returns `true`, one should also listen for [`http_check`
|
||||||
|
-- events](#http-check-event) which will container further information about
|
||||||
|
-- whether the URL is allowed or not.
|
||||||
|
--
|
||||||
|
-- @tparam string url The URL to check.
|
||||||
|
-- @treturn true When this url is not invalid. This does not imply that it is
|
||||||
|
-- allowed - see the comment above.
|
||||||
|
-- @treturn[2] false When this url is invalid.
|
||||||
|
-- @treturn string A reason why this URL is not valid (for instance, if it is
|
||||||
|
-- malformed, or blocked).
|
||||||
|
--
|
||||||
|
-- @see http.checkURL For a synchronous version.
|
||||||
|
function checkURLAsync(url) end
|
||||||
|
|
||||||
|
--- Determine whether a URL can be requested.
|
||||||
|
--
|
||||||
|
-- If this returns `true`, one should also listen for [`http_check`
|
||||||
|
-- events](#http-check-event) which will container further information about
|
||||||
|
-- whether the URL is allowed or not.
|
||||||
|
--
|
||||||
|
-- @tparam string url The URL to check.
|
||||||
|
-- @treturn true When this url is valid and can be requested via @{http.request}.
|
||||||
|
-- @treturn[2] false When this url is invalid.
|
||||||
|
-- @treturn string A reason why this URL is not valid (for instance, if it is
|
||||||
|
-- malformed, or blocked).
|
||||||
|
--
|
||||||
|
-- @see http.checkURLAsync For an asynchronous version.
|
||||||
|
--
|
||||||
|
-- @usage
|
||||||
|
-- ```lua
|
||||||
|
-- print(http.checkURL("https://example.computercraft.cc/"))
|
||||||
|
-- -- => true
|
||||||
|
-- print(http.checkURL("http://localhost/"))
|
||||||
|
-- -- => false Domain not permitted
|
||||||
|
-- print(http.checkURL("not a url"))
|
||||||
|
-- -- => false URL malformed
|
||||||
|
-- ```
|
||||||
|
function checkURL(url) end
|
||||||
|
|
||||||
|
--- Open a websocket.
|
||||||
|
--
|
||||||
|
-- @tparam string url The websocket url to connect to. This should have the
|
||||||
|
-- `ws://` or `wss://` protocol.
|
||||||
|
-- @tparam[opt] { [string] = string } headers Additional headers to send as part
|
||||||
|
-- of the initial websocket connection.
|
||||||
|
--
|
||||||
|
-- @treturn Websocket The websocket connection.
|
||||||
|
-- @treturn[2] false If the websocket connection failed.
|
||||||
|
-- @treturn string An error message describing why the connection failed.
|
||||||
|
function websocket(url, headers) end
|
||||||
|
|
||||||
|
--- Asynchronously open a websocket.
|
||||||
|
--
|
||||||
|
-- This returns immediately, a [`websocket_success`](#websocket-success-event)
|
||||||
|
-- or [`websocket_failure`](#websocket-failure-event) will be queued once the
|
||||||
|
-- request has completed.
|
||||||
|
--
|
||||||
|
-- @tparam string url The websocket url to connect to. This should have the
|
||||||
|
-- `ws://` or `wss://` protocol.
|
||||||
|
-- @tparam[opt] { [string] = string } headers Additional headers to send as part
|
||||||
|
-- of the initial websocket connection.
|
||||||
|
function websocketAsync(url, headers) end
|
||||||
|
|
||||||
|
--- A websocket, which can be used to send an receive messages with a web
|
||||||
|
-- server.
|
||||||
|
--
|
||||||
|
-- @type Websocket
|
||||||
|
-- @see http.websocket On how to open a websocket.
|
||||||
|
local Websocket = {}
|
||||||
|
|
||||||
|
--- Send a websocket message to the connected server.
|
||||||
|
--
|
||||||
|
-- @tparam string message The message to send.
|
||||||
|
-- @tparam[opt] boolean binary Whether this message should be treated as a
|
||||||
|
-- binary string, rather than encoded text.
|
||||||
|
-- @throws If the websocket has been closed.
|
||||||
|
function Websocket.send(message, binary) end
|
||||||
|
|
||||||
|
--- Wait for a message from the server.
|
||||||
|
--
|
||||||
|
-- @tparam[opt] number timeout The number of seconds to wait if no message is
|
||||||
|
-- received.
|
||||||
|
-- @treturn[1] string The received message.
|
||||||
|
-- @treturn boolean If this was a binary message.
|
||||||
|
-- @treturn[2] nil If the websocket was closed while waiting, or if we timed out.
|
||||||
|
-- @throws If the websocket has been closed.
|
||||||
|
function Websocket.receive(timeout) end
|
||||||
|
|
||||||
|
--- Close this websocket. This will terminate the connection, meaning messages
|
||||||
|
-- can no longer be sent or received along it.
|
||||||
|
function Websocket.close() end
|
24
doc/stub/os.lua
Normal file
24
doc/stub/os.lua
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
function queueEvent(event, ...) end
|
||||||
|
function startTimer(delay) end
|
||||||
|
function setAlarm(time) end
|
||||||
|
function shutdown() end
|
||||||
|
function reboot() end
|
||||||
|
function getComputerID() end
|
||||||
|
computerID = getComputerID
|
||||||
|
function setComputerLabel(label) end
|
||||||
|
function getComputerLabel() end
|
||||||
|
computerLabel = getComputerLabel
|
||||||
|
function clock() end
|
||||||
|
function time(timezone) end
|
||||||
|
function day(timezone) end
|
||||||
|
function cancelTimer(id) end
|
||||||
|
function cancelAlarm(id) end
|
||||||
|
function epoch(timezone) end
|
||||||
|
function date(format, time) end
|
||||||
|
|
||||||
|
-- Defined in bios.lua
|
||||||
|
function loadAPI(path) end
|
||||||
|
function pullEvent(filter) end
|
||||||
|
function pullEventRaw(filter) end
|
||||||
|
function version() end
|
||||||
|
function run(env, path, ...) end
|
28
doc/stub/pocket.lua
Normal file
28
doc/stub/pocket.lua
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
--[[-
|
||||||
|
Control the current pocket computer, adding or removing upgrades.
|
||||||
|
|
||||||
|
This API is only available on pocket computers. As such, you may use its
|
||||||
|
presence to determine what kind of computer you are using:
|
||||||
|
|
||||||
|
```lua
|
||||||
|
if pocket then
|
||||||
|
print("On a pocket computer")
|
||||||
|
else
|
||||||
|
print("On something else")
|
||||||
|
end
|
||||||
|
```
|
||||||
|
]]
|
||||||
|
|
||||||
|
--- Search the player's inventory for another upgrade, replacing the existing
|
||||||
|
-- one with that item if found.
|
||||||
|
--
|
||||||
|
-- This inventory search starts from the player's currently selected slot,
|
||||||
|
-- allowing you to prioritise upgrades.
|
||||||
|
--
|
||||||
|
-- @throws If an upgrade cannot be found.
|
||||||
|
function equipBack() end
|
||||||
|
|
||||||
|
--- Remove the pocket computer's current upgrade.
|
||||||
|
--
|
||||||
|
-- @throws If this pocket computer does not currently have an upgrade.
|
||||||
|
function unequipBack() end
|
120
doc/stub/redstone.lua
Normal file
120
doc/stub/redstone.lua
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
--[[- Interact with redstone attached to this computer.
|
||||||
|
|
||||||
|
The @{redstone} library exposes three "types" of redstone control:
|
||||||
|
- Binary input/output (@{setOutput}/@{getInput}): These simply check if a
|
||||||
|
redstone wire has any input or output. A signal strength of 1 and 15 are
|
||||||
|
treated the same.
|
||||||
|
- Analogue input/output (@{setAnalogueOutput}/@{getAnalogueInput}): These
|
||||||
|
work with the actual signal strength of the redstone wired, from 0 to 15.
|
||||||
|
- Bundled cables (@{setBundledOutput}/@{getBundledInput}): These interact with
|
||||||
|
"bundled" cables, such as those from Project:Red. These allow you to send
|
||||||
|
16 separate on/off signals. Each channel corresponds to a colour, with the
|
||||||
|
first being @{colors.white} and the last @{colors.black}.
|
||||||
|
|
||||||
|
Whenever a redstone input changes, a `redstone` event will be fired. This may
|
||||||
|
be used in or
|
||||||
|
|
||||||
|
This module may also be referred to as `rs`. For example, one may call
|
||||||
|
`rs.getSides()` instead of @{redstone.getSides}.
|
||||||
|
|
||||||
|
@module redstone
|
||||||
|
@usage Toggle the redstone signal above the computer every 0.5 seconds.
|
||||||
|
|
||||||
|
while true do
|
||||||
|
redstone.setOutput("top", not redstone.getOutput("top"))
|
||||||
|
sleep(0.5)
|
||||||
|
end
|
||||||
|
@usage Mimic a redstone comparator in [subtraction mode][comparator].
|
||||||
|
|
||||||
|
while true do
|
||||||
|
local rear = rs.getAnalogueInput("back")
|
||||||
|
local sides = math.max(rs.getAnalogueInput("left"), rs.getAnalogueInput("right"))
|
||||||
|
rs.setAnalogueOutput("front", math.max(rear - sides, 0))
|
||||||
|
|
||||||
|
os.pullEvent("redstone") -- Wait for a change to inputs.
|
||||||
|
end
|
||||||
|
|
||||||
|
[comparator]: https://minecraft.gamepedia.com/Redstone_Comparator#Subtract_signal_strength "Redstone Comparator on the Minecraft wiki."
|
||||||
|
]]
|
||||||
|
|
||||||
|
--- Returns a table containing the six sides of the computer. Namely, "top",
|
||||||
|
-- "bottom", "left", "right", "front" and "back".
|
||||||
|
--
|
||||||
|
-- @treturn { string... } A table of valid sides.
|
||||||
|
function getSides() end
|
||||||
|
|
||||||
|
--- Turn the redstone signal of a specific side on or off.
|
||||||
|
--
|
||||||
|
-- @tparam string side The side to set.
|
||||||
|
-- @tparam boolean on Whether the redstone signal should be on or off. When on,
|
||||||
|
-- a signal strength of 15 is emitted.
|
||||||
|
function setOutput(side, on) end
|
||||||
|
|
||||||
|
--- Get the current redstone output of a specific side.
|
||||||
|
--
|
||||||
|
-- @tparam string side The side to get.
|
||||||
|
-- @treturn boolean Whether the redstone output is on or off.
|
||||||
|
-- @see setOutput
|
||||||
|
function getOutput(side) end
|
||||||
|
|
||||||
|
--- Get the current redstone input of a specific side.
|
||||||
|
--
|
||||||
|
-- @tparam string side The side to get.
|
||||||
|
-- @treturn boolean Whether the redstone input is on or off.
|
||||||
|
function getInput(side) end
|
||||||
|
|
||||||
|
--- Set the redstone signal strength for a specific side.
|
||||||
|
--
|
||||||
|
-- @tparam string side The side to set.
|
||||||
|
-- @tparam number value The signal strength, between 0 and 15.
|
||||||
|
-- @throws If `value` is not between 0 and 15.
|
||||||
|
function setAnalogOutput(side, value) end
|
||||||
|
setAnalogueOutput = setAnalogOutput
|
||||||
|
|
||||||
|
--- Get the redstone output signal strength for a specific side.
|
||||||
|
--
|
||||||
|
-- @tparam string side The side to get.
|
||||||
|
-- @treturn number The output signal strength, between 0 and 15.
|
||||||
|
-- @see setAnalogueOutput
|
||||||
|
function getAnalogOutput(sid) end
|
||||||
|
getAnalogueOutput = getAnalogOutput
|
||||||
|
|
||||||
|
--- Get the redstone input signal strength for a specific side.
|
||||||
|
--
|
||||||
|
-- @tparam string side The side to get.
|
||||||
|
-- @treturn number The input signal strength, between 0 and 15.
|
||||||
|
function getAnalogInput(side) end
|
||||||
|
getAnalogueInput = getAnalogInput
|
||||||
|
|
||||||
|
--- Set the bundled cable output for a specific side.
|
||||||
|
--
|
||||||
|
-- @tparam string side The side to set.
|
||||||
|
-- @tparam number The colour bitmask to set.
|
||||||
|
-- @see colors.subtract For removing a colour from the bitmask.
|
||||||
|
-- @see colors.combine For adding a colour to the bitmask.
|
||||||
|
function setBundledOutput(side, output) end
|
||||||
|
|
||||||
|
--- Get the bundled cable output for a specific side.
|
||||||
|
--
|
||||||
|
-- @tparam string side The side to get.
|
||||||
|
-- @treturn number The bundled cable's output.
|
||||||
|
function getBundledOutput(side) end
|
||||||
|
|
||||||
|
--- Get the bundled cable input for a specific side.
|
||||||
|
--
|
||||||
|
-- @tparam string side The side to get.
|
||||||
|
-- @treturn number The bundled cable's input.
|
||||||
|
-- @see testBundledInput To determine if a specific colour is set.
|
||||||
|
function getBundledInput(side) end
|
||||||
|
|
||||||
|
--- Determine if a specific combination of colours are on for the given side.
|
||||||
|
--
|
||||||
|
-- @tparam string side The side to test.
|
||||||
|
-- @tparam number mask The mask to test.
|
||||||
|
-- @see getBundledInput
|
||||||
|
-- @see colors.combine For adding a colour to the bitmask.
|
||||||
|
-- @usage Check if @{colors.white} and @{colors.black} are on for above the
|
||||||
|
-- computer.
|
||||||
|
--
|
||||||
|
-- print(redstone.testBundledInput("top", colors.combine(colors.white, colors.black)))
|
||||||
|
function testBundledInput(side, mask) end
|
52
doc/stub/term.lua
Normal file
52
doc/stub/term.lua
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
function write(text) end
|
||||||
|
function scroll(lines) end
|
||||||
|
function setCursorPos(x, y) end
|
||||||
|
function setCursorBlink(blink) end
|
||||||
|
function getCursorPos() end
|
||||||
|
function getSize() end
|
||||||
|
function clear() end
|
||||||
|
function clearLine() end
|
||||||
|
function setTextColour(colour) end
|
||||||
|
setTextColor = setTextColour
|
||||||
|
function setBackgroundColour(colour) end
|
||||||
|
setBackgroundColor = setBackgroundColour
|
||||||
|
function isColour() end
|
||||||
|
isColor = isColour
|
||||||
|
function getTextColour() end
|
||||||
|
getTextColor = getTextColor
|
||||||
|
function getBackgroundColour() end
|
||||||
|
getBackgroundColor = getBackgroundColour
|
||||||
|
function blit(text, text_colours, background_colours) end
|
||||||
|
function setPaletteColour(colour, ...) end
|
||||||
|
setPaletteColor = setPaletteColour
|
||||||
|
function getPaletteColour(colour, ...) end
|
||||||
|
getPaletteColor = getPaletteColour
|
||||||
|
function nativePaletteColour(colour) end
|
||||||
|
nativePaletteColor = nativePaletteColour
|
||||||
|
|
||||||
|
--- @type Redirect
|
||||||
|
local Redirect = {}
|
||||||
|
|
||||||
|
Redirect.write = write
|
||||||
|
Redirect.scroll = scroll
|
||||||
|
Redirect.setCursorPos = setCursorPos
|
||||||
|
Redirect.setCursorBlink = setCursorBlink
|
||||||
|
Redirect.getCursorPos = getCursorPos
|
||||||
|
Redirect.getSize = getSize
|
||||||
|
Redirect.clear = clear
|
||||||
|
Redirect.clearLine = clearLine
|
||||||
|
Redirect.setTextColour = setTextColour
|
||||||
|
Redirect.setTextColor = setTextColor
|
||||||
|
Redirect.setBackgroundColour = setBackgroundColour
|
||||||
|
Redirect.setBackgroundColor = setBackgroundColor
|
||||||
|
Redirect.isColour = isColour
|
||||||
|
Redirect.isColor = isColor
|
||||||
|
Redirect.getTextColour = getTextColour
|
||||||
|
Redirect.getTextColor = getTextColor
|
||||||
|
Redirect.getBackgroundColour = getBackgroundColour
|
||||||
|
Redirect.getBackgroundColor = getBackgroundColor
|
||||||
|
Redirect.blit = blit
|
||||||
|
Redirect.setPaletteColour = setPaletteColour
|
||||||
|
Redirect.setPaletteColor = setPaletteColor
|
||||||
|
Redirect.getPaletteColour = getPaletteColour
|
||||||
|
Redirect.getPaletteColor = getPaletteColor
|
230
doc/stub/turtle.lua
Normal file
230
doc/stub/turtle.lua
Normal file
@@ -0,0 +1,230 @@
|
|||||||
|
--- Move the turtle forward one block.
|
||||||
|
-- @treturn boolean Whether the turtle could successfully move.
|
||||||
|
-- @treturn string|nil The reason the turtle could not move.
|
||||||
|
function forward() end
|
||||||
|
|
||||||
|
--- Move the turtle backwards one block.
|
||||||
|
-- @treturn boolean Whether the turtle could successfully move.
|
||||||
|
-- @treturn string|nil The reason the turtle could not move.
|
||||||
|
function back() end
|
||||||
|
|
||||||
|
--- Move the turtle up one block.
|
||||||
|
-- @treturn boolean Whether the turtle could successfully move.
|
||||||
|
-- @treturn string|nil The reason the turtle could not move.
|
||||||
|
function up() end
|
||||||
|
|
||||||
|
--- Move the turtle down one block.
|
||||||
|
-- @treturn boolean Whether the turtle could successfully move.
|
||||||
|
-- @treturn string|nil The reason the turtle could not move.
|
||||||
|
function down() end
|
||||||
|
|
||||||
|
--- Rotate the turtle 90 degress to the left.
|
||||||
|
function turnLeft() end
|
||||||
|
|
||||||
|
--- Rotate the turtle 90 degress to the right.
|
||||||
|
function turnRight() end
|
||||||
|
|
||||||
|
--- Attempt to break the block in front of the turtle.
|
||||||
|
--
|
||||||
|
-- This requires a turtle tool capable of breaking the block. Diamond pickaxes
|
||||||
|
-- (mining turtles) can break any vanilla block, but other tools (such as axes)
|
||||||
|
-- are more limited.
|
||||||
|
--
|
||||||
|
-- @tparam[opt] "left"|"right" side The specific tool to use.
|
||||||
|
-- @treturn boolean Whether a block was broken.
|
||||||
|
-- @treturn string|nil The reason no block was broken.
|
||||||
|
function dig(side) end
|
||||||
|
|
||||||
|
--- Attempt to break the block above the turtle. See @{dig} for full details.
|
||||||
|
--
|
||||||
|
-- @tparam[opt] "left"|"right" side The specific tool to use.
|
||||||
|
-- @treturn boolean Whether a block was broken.
|
||||||
|
-- @treturn string|nil The reason no block was broken.
|
||||||
|
function digUp(side) end
|
||||||
|
|
||||||
|
--- Attempt to break the block below the turtle. See @{dig} for full details.
|
||||||
|
--
|
||||||
|
-- @tparam[opt] "left"|"right" side The specific tool to use.
|
||||||
|
-- @treturn boolean Whether a block was broken.
|
||||||
|
-- @treturn string|nil The reason no block was broken.
|
||||||
|
function digDown(side) end
|
||||||
|
|
||||||
|
--- Attack the entity in front of the turtle.
|
||||||
|
--
|
||||||
|
-- @tparam[opt] "left"|"right" side The specific tool to use.
|
||||||
|
-- @treturn boolean Whether an entity was attacked.
|
||||||
|
-- @treturn string|nil The reason nothing was attacked.
|
||||||
|
function attack(side) end
|
||||||
|
|
||||||
|
--- Attack the entity above the turtle.
|
||||||
|
--
|
||||||
|
-- @tparam[opt] "left"|"right" side The specific tool to use.
|
||||||
|
-- @treturn boolean Whether an entity was attacked.
|
||||||
|
-- @treturn string|nil The reason nothing was attacked.
|
||||||
|
function attackUp(side) end
|
||||||
|
|
||||||
|
--- Attack the entity below the turtle.
|
||||||
|
--
|
||||||
|
-- @tparam[opt] "left"|"right" side The specific tool to use.
|
||||||
|
-- @treturn boolean Whether an entity was attacked.
|
||||||
|
-- @treturn string|nil The reason nothing was attacked.
|
||||||
|
function attackDown(side) end
|
||||||
|
|
||||||
|
--- Place a block or item into the world in front of the turtle.
|
||||||
|
--
|
||||||
|
-- @treturn boolean Whether the block could be placed.
|
||||||
|
-- @treturn string|nil The reason the block was not placed.
|
||||||
|
function place() end
|
||||||
|
|
||||||
|
--- Place a block or item into the world above the turtle.
|
||||||
|
--
|
||||||
|
-- @treturn boolean Whether the block could be placed.
|
||||||
|
-- @treturn string|nil The reason the block was not placed.
|
||||||
|
function placeUp() end
|
||||||
|
|
||||||
|
--- Place a block or item into the world below the turtle.
|
||||||
|
--
|
||||||
|
-- @treturn boolean Whether the block could be placed.
|
||||||
|
-- @treturn string|nil The reason the block was not placed.
|
||||||
|
function placeDown() end
|
||||||
|
|
||||||
|
--- Drop the currently selected stack into the inventory in front of the turtle,
|
||||||
|
-- or as an item into the world if there is no inventory.
|
||||||
|
--
|
||||||
|
-- @tparam[opt] number count The number of items to drop. If not given, the
|
||||||
|
-- entire stack will be dropped.
|
||||||
|
-- @treturn boolean Whether items were dropped.
|
||||||
|
-- @treturn string|nil The reason the no items were dropped.
|
||||||
|
-- @see select
|
||||||
|
function drop(count) end
|
||||||
|
|
||||||
|
--- Drop the currently selected stack into the inventory above the turtle, or as
|
||||||
|
-- an item into the world if there is no inventory.
|
||||||
|
--
|
||||||
|
-- @tparam[opt] number count The number of items to drop. If not given, the
|
||||||
|
-- entire stack will be dropped.
|
||||||
|
-- @treturn boolean Whether items were dropped.
|
||||||
|
-- @treturn string|nil The reason the no items were dropped.
|
||||||
|
-- @see select
|
||||||
|
function dropUp(count) end
|
||||||
|
|
||||||
|
--- Drop the currently selected stack into the inventory below the turtle, or as
|
||||||
|
-- an item into the world if there is no inventory.
|
||||||
|
--
|
||||||
|
-- @tparam[opt] number count The number of items to drop. If not given, the
|
||||||
|
-- entire stack will be dropped.
|
||||||
|
-- @treturn boolean Whether items were dropped.
|
||||||
|
-- @treturn string|nil The reason the no items were dropped.
|
||||||
|
-- @see select
|
||||||
|
function dropDown(count) end
|
||||||
|
|
||||||
|
--- Suck an item from the inventory in front of the turtle, or from an item
|
||||||
|
-- floating in the world.
|
||||||
|
--
|
||||||
|
-- This will pull items into the first acceptable slot, starting at the
|
||||||
|
-- @{select|currently selected} one.
|
||||||
|
--
|
||||||
|
-- @tparam[opt] number count The number of items to suck. If not given, up to a
|
||||||
|
-- stack of items will be picked up.
|
||||||
|
-- @treturn boolean Whether items were picked up.
|
||||||
|
-- @treturn string|nil The reason the no items were picked up.
|
||||||
|
function suck(count) end
|
||||||
|
|
||||||
|
--- Suck an item from the inventory above the turtle, or from an item floating
|
||||||
|
-- in the world.
|
||||||
|
--
|
||||||
|
-- @tparam[opt] number count The number of items to suck. If not given, up to a
|
||||||
|
-- stack of items will be picked up.
|
||||||
|
-- @treturn boolean Whether items were picked up.
|
||||||
|
-- @treturn string|nil The reason the no items were picked up.
|
||||||
|
function suckUp(count) end
|
||||||
|
|
||||||
|
--- Suck an item from the inventory below the turtle, or from an item floating
|
||||||
|
-- in the world.
|
||||||
|
--
|
||||||
|
-- @tparam[opt] number count The number of items to suck. If not given, up to a
|
||||||
|
-- stack of items will be picked up.
|
||||||
|
-- @treturn boolean Whether items were picked up.
|
||||||
|
-- @treturn string|nil The reason the no items were picked up.
|
||||||
|
function suckDown(count) end
|
||||||
|
|
||||||
|
--- Check if there is a solid block in front of the turtle. In this case, solid
|
||||||
|
-- refers to any non-air or liquid block.
|
||||||
|
--
|
||||||
|
-- @treturn boolean If there is a solid block in front.
|
||||||
|
function detect() end
|
||||||
|
|
||||||
|
--- Check if there is a solid block above the turtle.
|
||||||
|
--
|
||||||
|
-- @treturn boolean If there is a solid block above.
|
||||||
|
function detectUp() end
|
||||||
|
|
||||||
|
--- Check if there is a solid block below the turtle.
|
||||||
|
--
|
||||||
|
-- @treturn boolean If there is a solid block below.
|
||||||
|
function detectDown() end
|
||||||
|
|
||||||
|
function compare() end
|
||||||
|
function compareUp() end
|
||||||
|
function compareDown() end
|
||||||
|
|
||||||
|
function inspect() end
|
||||||
|
function inspectUp() end
|
||||||
|
function inspectDown() end
|
||||||
|
|
||||||
|
|
||||||
|
--- Change the currently selected slot.
|
||||||
|
--
|
||||||
|
-- The selected slot is determines what slot actions like @{drop} or
|
||||||
|
-- @{getItemCount} act on.
|
||||||
|
--
|
||||||
|
-- @tparam number slot The slot to select.
|
||||||
|
-- @see getSelectedSlot
|
||||||
|
function select(slot) end
|
||||||
|
|
||||||
|
--- Get the currently selected slot.
|
||||||
|
--
|
||||||
|
-- @treturn number The current slot.
|
||||||
|
-- @see select
|
||||||
|
function getSelectedSlot() end
|
||||||
|
|
||||||
|
--- Get the number of items in the given slot.
|
||||||
|
--
|
||||||
|
-- @tparam[opt] number slot The slot we wish to check. Defaults to the @{turtle.select|selected slot}.
|
||||||
|
-- @treturn number The number of items in this slot.
|
||||||
|
function getItemCount(slot) end
|
||||||
|
|
||||||
|
--- Get the remaining number of items which may be stored in this stack.
|
||||||
|
--
|
||||||
|
-- For instance, if a slot contains 13 blocks of dirt, it has room for another 51.
|
||||||
|
--
|
||||||
|
-- @tparam[opt] number slot The slot we wish to check. Defaults to the @{turtle.select|selected slot}.
|
||||||
|
-- @treturn number The space left in this slot.
|
||||||
|
function getItemSpace(slot) end
|
||||||
|
|
||||||
|
|
||||||
|
--- Get detailed information about the items in the given slot.
|
||||||
|
--
|
||||||
|
-- @tparam[opt] number slot The slot to get information about. Defaults to the @{turtle.select|selected slot}.
|
||||||
|
-- @treturn nil|table Information about the given slot, or @{nil} if it is empty.
|
||||||
|
-- @usage Print the current slot, assuming it contains 13 dirt.
|
||||||
|
--
|
||||||
|
-- print(textutils.serialize(turtle.getItemDetail()))
|
||||||
|
-- -- => {
|
||||||
|
-- -- name = "minecraft:dirt",
|
||||||
|
-- -- damage = 0,
|
||||||
|
-- -- count = 13,
|
||||||
|
-- -- }
|
||||||
|
function getItemDetail(slot) end
|
||||||
|
|
||||||
|
function getFuelLevel() end
|
||||||
|
|
||||||
|
function refuel(count) end
|
||||||
|
function compareTo(slot) end
|
||||||
|
function transferTo(slot, count) end
|
||||||
|
|
||||||
|
function getFuelLimit() end
|
||||||
|
function equipLeft() end
|
||||||
|
function equipRight() end
|
||||||
|
|
||||||
|
function craft(limit) end
|
186
doc/styles.css
Normal file
186
doc/styles.css
Normal file
@@ -0,0 +1,186 @@
|
|||||||
|
/* 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 { margin-left: 3em; }
|
||||||
|
|
||||||
|
/* 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,17 +1,7 @@
|
|||||||
# Done to increase the memory available to gradle.
|
|
||||||
org.gradle.jvmargs=-Xmx1G
|
|
||||||
|
|
||||||
# Mod properties
|
# Mod properties
|
||||||
mod_version=1.97.2
|
mod_version=1.89.0
|
||||||
|
|
||||||
# Minecraft properties
|
# Minecraft properties (update mods.toml when changing)
|
||||||
mc_version=1.17.1
|
mc_version=1.14.4
|
||||||
mappings_version=61
|
forge_version=28.1.71
|
||||||
|
mappings_version=20191123-1.14.3
|
||||||
# Dependencies
|
|
||||||
cloth_config_version=5.0.34
|
|
||||||
fabric_loader_version=0.11.7
|
|
||||||
fabric_api_version=0.40.1+1.17
|
|
||||||
jankson_version=1.2.0
|
|
||||||
modmenu_version=2.0.2
|
|
||||||
cloth_api_version=2.0.54
|
|
||||||
|
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,5 +1,5 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-bin.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
53
gradlew
vendored
53
gradlew
vendored
@@ -1,21 +1,5 @@
|
|||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
#
|
|
||||||
# Copyright 2015 the original author or authors.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
#
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
##
|
##
|
||||||
## Gradle start up script for UN*X
|
## Gradle start up script for UN*X
|
||||||
@@ -44,7 +28,7 @@ APP_NAME="Gradle"
|
|||||||
APP_BASE_NAME=`basename "$0"`
|
APP_BASE_NAME=`basename "$0"`
|
||||||
|
|
||||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
DEFAULT_JVM_OPTS=""
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||||
MAX_FD="maximum"
|
MAX_FD="maximum"
|
||||||
@@ -82,7 +66,6 @@ esac
|
|||||||
|
|
||||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||||
|
|
||||||
|
|
||||||
# Determine the Java command to use to start the JVM.
|
# Determine the Java command to use to start the JVM.
|
||||||
if [ -n "$JAVA_HOME" ] ; then
|
if [ -n "$JAVA_HOME" ] ; then
|
||||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||||
@@ -126,11 +109,10 @@ if $darwin; then
|
|||||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
# For Cygwin, switch paths to Windows format before running java
|
||||||
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
|
if $cygwin ; then
|
||||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||||
|
|
||||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||||
|
|
||||||
# We build the pattern for arguments to be converted via cygpath
|
# We build the pattern for arguments to be converted via cygpath
|
||||||
@@ -156,19 +138,19 @@ if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
|
|||||||
else
|
else
|
||||||
eval `echo args$i`="\"$arg\""
|
eval `echo args$i`="\"$arg\""
|
||||||
fi
|
fi
|
||||||
i=`expr $i + 1`
|
i=$((i+1))
|
||||||
done
|
done
|
||||||
case $i in
|
case $i in
|
||||||
0) set -- ;;
|
(0) set -- ;;
|
||||||
1) set -- "$args0" ;;
|
(1) set -- "$args0" ;;
|
||||||
2) set -- "$args0" "$args1" ;;
|
(2) set -- "$args0" "$args1" ;;
|
||||||
3) set -- "$args0" "$args1" "$args2" ;;
|
(3) set -- "$args0" "$args1" "$args2" ;;
|
||||||
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
||||||
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
||||||
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
||||||
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
||||||
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
||||||
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -177,9 +159,14 @@ save () {
|
|||||||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
||||||
echo " "
|
echo " "
|
||||||
}
|
}
|
||||||
APP_ARGS=`save "$@"`
|
APP_ARGS=$(save "$@")
|
||||||
|
|
||||||
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
||||||
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
||||||
|
|
||||||
|
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
|
||||||
|
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
|
||||||
|
cd "$(dirname "$0")"
|
||||||
|
fi
|
||||||
|
|
||||||
exec "$JAVACMD" "$@"
|
exec "$JAVACMD" "$@"
|
||||||
|
173
gradlew.bat
vendored
173
gradlew.bat
vendored
@@ -1,89 +1,84 @@
|
|||||||
@rem
|
@if "%DEBUG%" == "" @echo off
|
||||||
@rem Copyright 2015 the original author or authors.
|
@rem ##########################################################################
|
||||||
@rem
|
@rem
|
||||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
@rem Gradle startup script for Windows
|
||||||
@rem you may not use this file except in compliance with the License.
|
@rem
|
||||||
@rem You may obtain a copy of the License at
|
@rem ##########################################################################
|
||||||
@rem
|
|
||||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
@rem Set local scope for the variables with windows NT shell
|
||||||
@rem
|
if "%OS%"=="Windows_NT" setlocal
|
||||||
@rem Unless required by applicable law or agreed to in writing, software
|
|
||||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
set DIRNAME=%~dp0
|
||||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
if "%DIRNAME%" == "" set DIRNAME=.
|
||||||
@rem See the License for the specific language governing permissions and
|
set APP_BASE_NAME=%~n0
|
||||||
@rem limitations under the License.
|
set APP_HOME=%DIRNAME%
|
||||||
@rem
|
|
||||||
|
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||||
@if "%DEBUG%" == "" @echo off
|
set DEFAULT_JVM_OPTS=
|
||||||
@rem ##########################################################################
|
|
||||||
@rem
|
@rem Find java.exe
|
||||||
@rem Gradle startup script for Windows
|
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||||
@rem
|
|
||||||
@rem ##########################################################################
|
set JAVA_EXE=java.exe
|
||||||
|
%JAVA_EXE% -version >NUL 2>&1
|
||||||
@rem Set local scope for the variables with windows NT shell
|
if "%ERRORLEVEL%" == "0" goto init
|
||||||
if "%OS%"=="Windows_NT" setlocal
|
|
||||||
|
echo.
|
||||||
set DIRNAME=%~dp0
|
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||||
if "%DIRNAME%" == "" set DIRNAME=.
|
echo.
|
||||||
set APP_BASE_NAME=%~n0
|
echo Please set the JAVA_HOME variable in your environment to match the
|
||||||
set APP_HOME=%DIRNAME%
|
echo location of your Java installation.
|
||||||
|
|
||||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
goto fail
|
||||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
|
||||||
|
:findJavaFromJavaHome
|
||||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
set JAVA_HOME=%JAVA_HOME:"=%
|
||||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||||
|
|
||||||
@rem Find java.exe
|
if exist "%JAVA_EXE%" goto init
|
||||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
|
||||||
|
echo.
|
||||||
set JAVA_EXE=java.exe
|
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||||
%JAVA_EXE% -version >NUL 2>&1
|
echo.
|
||||||
if "%ERRORLEVEL%" == "0" goto execute
|
echo Please set the JAVA_HOME variable in your environment to match the
|
||||||
|
echo location of your Java installation.
|
||||||
echo.
|
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
goto fail
|
||||||
echo.
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
:init
|
||||||
echo location of your Java installation.
|
@rem Get command-line arguments, handling Windows variants
|
||||||
|
|
||||||
goto fail
|
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||||
|
|
||||||
:findJavaFromJavaHome
|
:win9xME_args
|
||||||
set JAVA_HOME=%JAVA_HOME:"=%
|
@rem Slurp the command line arguments.
|
||||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
set CMD_LINE_ARGS=
|
||||||
|
set _SKIP=2
|
||||||
if exist "%JAVA_EXE%" goto execute
|
|
||||||
|
:win9xME_args_slurp
|
||||||
echo.
|
if "x%~1" == "x" goto execute
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
|
||||||
echo.
|
set CMD_LINE_ARGS=%*
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
echo location of your Java installation.
|
:execute
|
||||||
|
@rem Setup the command line
|
||||||
goto fail
|
|
||||||
|
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||||
:execute
|
|
||||||
@rem Setup the command line
|
@rem Execute Gradle
|
||||||
|
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
||||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
|
||||||
|
:end
|
||||||
|
@rem End local scope for the variables with windows NT shell
|
||||||
@rem Execute Gradle
|
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
|
||||||
|
:fail
|
||||||
:end
|
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||||
@rem End local scope for the variables with windows NT shell
|
rem the _cmd.exe /c_ return code!
|
||||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||||
|
exit /b 1
|
||||||
:fail
|
|
||||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
:mainEnd
|
||||||
rem the _cmd.exe /c_ return code!
|
if "%OS%"=="Windows_NT" endlocal
|
||||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
|
||||||
exit /b 1
|
:omega
|
||||||
|
|
||||||
:mainEnd
|
|
||||||
if "%OS%"=="Windows_NT" endlocal
|
|
||||||
|
|
||||||
:omega
|
|
||||||
|
95
illuaminate.sexp
Normal file
95
illuaminate.sexp
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
; -*- mode: Lisp;-*-
|
||||||
|
|
||||||
|
(sources
|
||||||
|
/doc/stub/
|
||||||
|
/src/main/resources/*/computercraft/lua/bios.lua
|
||||||
|
/src/main/resources/*/computercraft/lua/rom/
|
||||||
|
/src/test/resources/test-rom)
|
||||||
|
|
||||||
|
|
||||||
|
(doc
|
||||||
|
(title "CC: Tweaked")
|
||||||
|
(index doc/index.md)
|
||||||
|
(source-link https://github.com/SquidDev-CC/CC-Tweaked/blob/${commit}/${path}#L${line})
|
||||||
|
|
||||||
|
(library-path
|
||||||
|
/doc/stub/
|
||||||
|
|
||||||
|
/src/main/resources/*/computercraft/lua/rom/apis
|
||||||
|
/src/main/resources/*/computercraft/lua/rom/apis/command
|
||||||
|
/src/main/resources/*/computercraft/lua/rom/apis/turtle
|
||||||
|
|
||||||
|
/src/main/resources/*/computercraft/lua/rom/modules/main
|
||||||
|
/src/main/resources/*/computercraft/lua/rom/modules/command
|
||||||
|
/src/main/resources/*/computercraft/lua/rom/modules/turtle))
|
||||||
|
|
||||||
|
(at /
|
||||||
|
(linters
|
||||||
|
syntax:string-index
|
||||||
|
|
||||||
|
;; It'd be nice to avoid this, but right now there's a lot of instances of
|
||||||
|
;; it.
|
||||||
|
-var:set-loop
|
||||||
|
|
||||||
|
;; It's useful to name arguments for documentation, so we allow this. It'd
|
||||||
|
;; be good to find a compromise in the future, but this works for now.
|
||||||
|
-var:unused-arg)
|
||||||
|
|
||||||
|
(lint
|
||||||
|
(bracket-spaces
|
||||||
|
(call no-space)
|
||||||
|
(function-args no-space)
|
||||||
|
(parens no-space)
|
||||||
|
(table space)
|
||||||
|
(index no-space))
|
||||||
|
|
||||||
|
;; colours imports from colors, and we don't handle that right now.
|
||||||
|
;; keys is entirely dynamic, so we skip it.
|
||||||
|
(dynamic-modules colours keys)
|
||||||
|
|
||||||
|
(globals
|
||||||
|
:max
|
||||||
|
_CC_DEFAULT_SETTINGS
|
||||||
|
_CC_DISABLE_LUA51_FEATURES
|
||||||
|
;; Ideally we'd pick these up from bios.lua, but illuaminate currently
|
||||||
|
;; isn't smart enough.
|
||||||
|
sleep write printError read rs)))
|
||||||
|
|
||||||
|
;; We disable the unused global linter in bios.lua and the APIs. In the future
|
||||||
|
;; hopefully we'll get illuaminate to handle this.
|
||||||
|
(at
|
||||||
|
(/src/main/resources/*/computercraft/lua/bios.lua
|
||||||
|
/src/main/resources/*/computercraft/lua/rom/apis/)
|
||||||
|
(linters -var:unused-global)
|
||||||
|
(lint (allow-toplevel-global true)))
|
||||||
|
|
||||||
|
;; Silence some variable warnings in documentation stubs.
|
||||||
|
(at /doc/stub
|
||||||
|
(linters -var:unused-global)
|
||||||
|
(lint (allow-toplevel-global true)))
|
||||||
|
|
||||||
|
;; Suppress warnings for currently undocumented modules.
|
||||||
|
(at
|
||||||
|
(/doc/stub/fs.lua
|
||||||
|
/doc/stub/http.lua
|
||||||
|
/doc/stub/os.lua
|
||||||
|
/doc/stub/term.lua
|
||||||
|
/doc/stub/turtle.lua
|
||||||
|
/src/main/resources/*/computercraft/lua/rom/apis/io.lua
|
||||||
|
/src/main/resources/*/computercraft/lua/rom/apis/window.lua)
|
||||||
|
|
||||||
|
(linters -doc:undocumented -doc:undocumented-arg))
|
||||||
|
|
||||||
|
;; These currently rely on unknown references.
|
||||||
|
(at
|
||||||
|
(/src/main/resources/*/computercraft/lua/rom/apis/textutils.lua
|
||||||
|
/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)
|
||||||
|
(linters -doc:unresolved-reference))
|
||||||
|
|
||||||
|
(at /src/test/resources/test-rom
|
||||||
|
(lint
|
||||||
|
(globals
|
||||||
|
:max sleep write
|
||||||
|
cct_test describe expect howlci fail it pending stub)))
|
@@ -1,5 +0,0 @@
|
|||||||
before_install:
|
|
||||||
- wget https://github.com/sormuras/bach/raw/master/install-jdk.sh
|
|
||||||
- source ./install-jdk.sh --feature 16 --license GPL
|
|
||||||
jdk:
|
|
||||||
- openjdk16
|
|
627
patchwork.md
627
patchwork.md
@@ -1,627 +0,0 @@
|
|||||||
# Just my list of things I have ported over
|
|
||||||
|
|
||||||
Format for the changelog of ported stuff
|
|
||||||
```
|
|
||||||
commit // Shows commit from CC:T
|
|
||||||
commit2 // Shows a commit that is the same thing, just a clean up, only if right after
|
|
||||||
Title // Commit Title
|
|
||||||
SubScript // Desc of commit
|
|
||||||
```
|
|
||||||
|
|
||||||
If a edit that is present in CC:T is not needed, I will skip over it.
|
|
||||||
Any and all references to an issue number, are to be found on CC:T's repo.
|
|
||||||
|
|
||||||
Any commit that starts with `[Patchwork]` are purely edits made by my hand, and not based on other commits from CC:T, this is to help differentiate my changes from the official changes
|
|
||||||
|
|
||||||
Lines that are found above a commit in this log like this one, (excluding this one) are comments about how i had to implement things that are not a simple 1:1 (excluding fabric/forge differences) conversion
|
|
||||||
|
|
||||||
```md
|
|
||||||
5155e18de279a193c558aa029963486fd1294769
|
|
||||||
Added translation for Vietnamese
|
|
||||||
Co-authored-by: Boom <boom@flyingpackets.net>
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
7e121ff72f2b1504cd6af47b57500876682bac45
|
|
||||||
ae6124d1f477487abab1858abde8c4ec49dfee3c
|
|
||||||
Translations for Vienamese
|
|
||||||
Co-authored-by: Boom <boom@flyingpackets.net>
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
59de21eae29849988e77fad6bc335f5ce78dfec7
|
|
||||||
Handle tabs when parsing JSON
|
|
||||||
Fixes #539
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
748ebbe66bf0a4239bde34f557e4b4b75d61d990
|
|
||||||
Bump to 1.92.0
|
|
||||||
A tiny release, but there's new features so it's technically a minor
|
|
||||||
bump.
|
|
||||||
```
|
|
||||||
|
|
||||||
Cherry Picked because this update was partially related to forge updates rather than mod updates
|
|
||||||
```
|
|
||||||
8b4a01df27ff7f6fa9ffd9c2188c6e3166edd515
|
|
||||||
Update to Minecraft 1.16.3
|
|
||||||
|
|
||||||
I hope the Fabric folks now realise this is gonna be a race of who can
|
|
||||||
update first :p. Either way, this was a very easy update - only changes
|
|
||||||
were due to unrelated Forge changes.
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
87393e8aef9ddfaca465d626ee7cff5ff499a7e8
|
|
||||||
Fix additional `-` in docs
|
|
||||||
|
|
||||||
Why isn't this automatically stripped! Bad squid.
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
275ca58a82c627128a145a8754cbe32568536bd9
|
|
||||||
HTTP rules now allow filtering by port
|
|
||||||
|
|
||||||
The HTTP filtering system becomes even more complex! Though in this
|
|
||||||
case, it's pretty minimal, and definitely worth doing.
|
|
||||||
|
|
||||||
For instance, the following rule will allow connecting to localhost on
|
|
||||||
port :8080.
|
|
||||||
|
|
||||||
[[http.rules]]
|
|
||||||
host = "127.0.0.1"
|
|
||||||
port = 8080
|
|
||||||
action = "allow"
|
|
||||||
|
|
||||||
# Other rules as before.
|
|
||||||
|
|
||||||
Closes #540
|
|
||||||
```
|
|
||||||
|
|
||||||
The alterations in ColourUtils.java were not needed so they were not ported over
|
|
||||||
```
|
|
||||||
6f868849ab2f264508e12c184cc56f2632aaf5bc
|
|
||||||
Use tags to check if something is a dye
|
|
||||||
|
|
||||||
We half did this already, just needed to change a couple of checks.
|
|
||||||
Closes #541.
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
6cee4efcd3610536ee74330cd728f7371011e5a8
|
|
||||||
Fix incorrect open container check
|
|
||||||
|
|
||||||
Was this always broken, or did it happen in a Minecraft update? Don't
|
|
||||||
know, but it's a very silly mistake either way. Fixes #544
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
0832974725b2478c5227b81f82c35bbf03cf6aba
|
|
||||||
Translations for Swedish
|
|
||||||
|
|
||||||
Co-authored-by: David Isaksson <davidisaksson93@gmail.com>
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
84036d97d99efd8762e0170002060ae3471508bf
|
|
||||||
Fix io.open documentation
|
|
||||||
|
|
||||||
Well, that was silly.
|
|
||||||
```
|
|
||||||
|
|
||||||
I set the default properties for computers as `Block.GLASS` and then set their strength to `2F` and their soundgroup to stone
|
|
||||||
```
|
|
||||||
8472112fc1eaad18ed6ed2c6c62b040fe421e81a
|
|
||||||
Don't propagate adjacent redstone signals for computers (#549)
|
|
||||||
|
|
||||||
Minecraft propagates "strong" redstone signals (such as those directly
|
|
||||||
from comparators or repeaters) through solid blocks. This includes
|
|
||||||
computers, which is a little annoying as it means one cannot feed
|
|
||||||
redstone wire from one side and a repeater from another.
|
|
||||||
|
|
||||||
This changes computers to not propagate strong redstone signals, in the
|
|
||||||
same way transparent blocks like glass do.
|
|
||||||
|
|
||||||
Closes #548.
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
30d35883b83831900b34040f0131c7e06f5c3e52
|
|
||||||
Fix my docs
|
|
||||||
|
|
||||||
Thanks @plt-hokusai. Kinda embarrassing this slipped through - I
|
|
||||||
evidently need to lint examples too.
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
34a2c835d412c0d9e1fb20a42b7f2cd2738289c7
|
|
||||||
Add color table to docs (#553)
|
|
||||||
```
|
|
||||||
|
|
||||||
All API Documentation updates,
|
|
||||||
`Not Needed` for this repo.
|
|
||||||
```
|
|
||||||
93068402a2ffec00eedb8fe2d859ebdc005a1989
|
|
||||||
Document remaining OS functions (#554)
|
|
||||||
|
|
||||||
01d81cb91da938836f953b290ad6b8fc87cb7e35
|
|
||||||
Update illuaminate CSS for deprecation (#556)
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
Not Needed
|
|
||||||
4766833cf2d041ed179529eecb9402ad09b2b79b
|
|
||||||
Bump JEI/crafttweaker versions
|
|
||||||
|
|
||||||
In my defence, they weren't out when I started the 1.15 update.
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
bf6053906dc6a3c7b0d40d5b097e745dce1f33bc
|
|
||||||
Fix TBO norm issues on old GPUs
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
Not Needed
|
|
||||||
113b560a201dbdea9de2a2ef536bcce1d6e51978
|
|
||||||
Update configuration to match latest illuaminate
|
|
||||||
|
|
||||||
Ooooooh, it's all fancy now. Well, that or horrifically broken.
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
c334423d42ba3b653ac3a8c27bce7970457f8f96
|
|
||||||
Add function to get window visibility
|
|
||||||
|
|
||||||
Closes #562
|
|
||||||
|
|
||||||
Co-authored-by: devomaa <lmao@distruzione.org>
|
|
||||||
```
|
|
||||||
|
|
||||||
[WARN] Could not implement changes to the following files
|
|
||||||
* `src/main/java/dan200/computercraft/ComputerCraft.java` < Structure too different, cannot find equivalent to alter
|
|
||||||
* `src/main/java/dan200/computercraft/shared/Config.java` < Files Does not exist in this repo
|
|
||||||
```
|
|
||||||
84a6bb1cf3b0668ddc7d8c409a2477a42390e3f7
|
|
||||||
Make generic peripherals on by default
|
|
||||||
|
|
||||||
This is a long way away from "feature complete" as it were. However,
|
|
||||||
it's definitely at a point where it's suitable for general usage - I'm
|
|
||||||
happy with the API, and don't think I'm going to be breaking things any
|
|
||||||
time soon.
|
|
||||||
|
|
||||||
That said, things aren't exposed yet for Java-side public consumption. I
|
|
||||||
was kinda waiting until working on Plethora to actually do that, but not
|
|
||||||
sure if/when that'll happen.
|
|
||||||
|
|
||||||
If someone else wants to work on an integration mod (or just adding
|
|
||||||
integrations for their own mod), do get in touch and I can work out how
|
|
||||||
to expose this.
|
|
||||||
|
|
||||||
Closes #452
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
Not Needed
|
|
||||||
6aae4e576621090840724e094aa25e51696530fc
|
|
||||||
Remove superfluous imports
|
|
||||||
|
|
||||||
Hah, this is embarassing
|
|
||||||
```
|
|
||||||
|
|
||||||
[TODO] [M3R1-01] Code has been applied, players still dont get achievments
|
|
||||||
```
|
|
||||||
f6160bdc57b3d9850607c2c7c2ce9734b4963478
|
|
||||||
Fix players not getting advancements when they own turtles
|
|
||||||
|
|
||||||
When we construct a new ServerPlayerEntity (and thus TurtlePlayer), we
|
|
||||||
get the current (global) advancement state and call .setPlayer() on it.
|
|
||||||
|
|
||||||
As grantCriterion blocks FakePlayers from getting advancements, this
|
|
||||||
means a player will no longer receive any advancements, as the "wrong"
|
|
||||||
player object is being consulted.
|
|
||||||
|
|
||||||
As a temporary work around, we attempt to restore the previous player to
|
|
||||||
the advancement store. I'll try to upstream something into Forge to
|
|
||||||
resolve this properly.
|
|
||||||
|
|
||||||
Fixes #564
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
17a932920711a5c0361a5048c9e0a5e7a58e6364
|
|
||||||
Bump cct-javadoc version
|
|
||||||
|
|
||||||
Documentation will now be sorted (somewhat) correctly!
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
a6fcfb6af2fc1bef8ca3a19122c9267549202424
|
|
||||||
Draw in-hand pocket computers with blending
|
|
||||||
|
|
||||||
It might be worth switching to RenderTypes here, rather than a pure
|
|
||||||
Tesselator, but this'll do for now.
|
|
||||||
|
|
||||||
Fixes Zundrel/cc-tweaked-fabric#20.
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
c58441b29c3715f092e7f3747bb3ec65ae5a3d29
|
|
||||||
Various SNBT parsing improvements
|
|
||||||
|
|
||||||
Correctly handle:
|
|
||||||
- Typed arrays ([I; 1, 2, 3])
|
|
||||||
- All suffixed numbers (1.2d)
|
|
||||||
- Single-quoted strings
|
|
||||||
|
|
||||||
Fixes #559
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
e2a635b6e5f5942f999213434054e06833c5cb06
|
|
||||||
Dont fail when codecov is being finicky
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
666e83cf4fd0eb327f465d5b919a708790f99b00
|
|
||||||
Fix JSON objects failing to pass
|
|
||||||
|
|
||||||
Maybe I should run the whole test suite, not just the things I think
|
|
||||||
matter? Nah....
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
741adfa7bb2b950d2851c3f0072d6a4769f22773
|
|
||||||
|
|
||||||
Use blit to draw boxes, add colors.toBlit (#570)
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
d13bd2cce8d102ad7f61f557e707d6fe3731bc37
|
|
||||||
|
|
||||||
use arg[0] in all usage printouts (#571)
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
74ac5bb3d17e5bee30643a5d6702696600c06229
|
|
||||||
|
|
||||||
Bump to 1.94.0
|
|
||||||
```
|
|
||||||
|
|
||||||
[TODO] [M3R1-02] Zero Clue how to reimplement this in fabric.
|
|
||||||
```
|
|
||||||
c8aeddedd4ed430f9cb6428676ebb4fa39834182
|
|
||||||
|
|
||||||
Auto-generate monitor models
|
|
||||||
|
|
||||||
I didn't think it was worth it, and then I found myself needing to
|
|
||||||
update a dozen of them. The code isn't especially pretty, but it works,
|
|
||||||
so that's fine.
|
|
||||||
|
|
||||||
Also fixes several issues with us using the wrong texture (closes #572).
|
|
||||||
I've put together a wiki page[1] which describes each texture in a
|
|
||||||
little more detail.
|
|
||||||
|
|
||||||
[1] https://github.com/SquidDev-CC/CC-Tweaked/wiki/Monitor-texture-reference
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
7f90f2f7cadce0d5b9177b16626979591bce8137
|
|
||||||
|
|
||||||
Clean up some examples a little bit
|
|
||||||
|
|
||||||
Would be good if they didn't crash and burn on entry :).
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
f194f4fa3a17c48ff1a9088d50063f4a675a23b6
|
|
||||||
|
|
||||||
Fix epoch documentation to use milliseconds (#580)
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
d2a1a00dc43e5b65f6b64111ce76dd3db16c919f
|
|
||||||
|
|
||||||
Clear gets an option to reset the palette (#582)
|
|
||||||
|
|
||||||
Fixes #555.
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
aab0cd34cd64fdf837ff1c3b91a957a25c2cf7f9
|
|
||||||
|
|
||||||
Use term.blit on original paint render
|
|
||||||
|
|
||||||
This makes it super speedy, meaning an initial refresh doesn't take ages
|
|
||||||
to load.
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
b0651082f472baee8f0fa8ec7ba95f433e2637bb
|
|
||||||
|
|
||||||
Cleanup examples for the various modules
|
|
||||||
```
|
|
||||||
|
|
||||||
Ignored Documentation Changes, these are locate
|
|
||||||
|
|
||||||
```
|
|
||||||
9a749642d294506095e697a3a4345dfe260bd68c
|
|
||||||
|
|
||||||
Strict Globals (#583)
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
fff8353451451be5ae31e0f63d8e529b127fd186
|
|
||||||
|
|
||||||
Remove extra space (#586)
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
486f41f08286ddcfad91d72b83a9361bd9c215cb
|
|
||||||
|
|
||||||
Fixed length check on function name in `expect` (#589)
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
04f9644ae75dafc72da4c4790f334d2e90b03e6f
|
|
||||||
|
|
||||||
Allow strings or numbers in textutils.*tabulate
|
|
||||||
|
|
||||||
A little dubious, but apparently CC used to support it. This means we're
|
|
||||||
consistent with methods like io.write or string.len which accept strings
|
|
||||||
or numbers.
|
|
||||||
|
|
||||||
Fixes #591
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
d4199064ae5ae8023c589f80f12d94e1c6bbc2b5
|
|
||||||
|
|
||||||
Make fs.combine accept multiple arguments
|
|
||||||
|
|
||||||
Means we can now do fs.combine("a", "b", "c"). Of course, one may just
|
|
||||||
write "a/b/c" in this case, but it's definitely useful elsewhere.
|
|
||||||
|
|
||||||
This is /technically/ a breaking change as fs.combine(a, b:gsub(...))
|
|
||||||
will no longer function (as gsub returns multiple arguments). However,
|
|
||||||
I've done a quick search through GH and my Pastebin archives and can't
|
|
||||||
find any programs which would break. Fingers crossed.
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
24af36743d08fcdb58439c52bf587b33ed828263
|
|
||||||
|
|
||||||
Try to handle a turtle being broken while ticked
|
|
||||||
|
|
||||||
Hopefully fixes #585. Hopefully.
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
511eea39a11956c82e2c11a47b2e7cad27f9887e
|
|
||||||
|
|
||||||
Remove <!-- -->s in usages
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
826797cbd579e867f0f35f0be44b6a28c8c094a9
|
|
||||||
|
|
||||||
Added documentation for global functions (#592)
|
|
||||||
```
|
|
||||||
Didn't port the docs over.
|
|
||||||
|
|
||||||
```
|
|
||||||
d83a68f3ff6e3833278a38798d06215293656e85
|
|
||||||
|
|
||||||
Allow $private HTTP rule to block any private IP
|
|
||||||
```
|
|
||||||
The config still uses a `blacklist` and `whitelist` array.
|
|
||||||
|
|
||||||
```
|
|
||||||
24d3777722812f975d2bc4594437fbbb0431d910
|
|
||||||
|
|
||||||
Added improved help viewer (#595)
|
|
||||||
```
|
|
||||||
Didn't port the lua tests over.
|
|
||||||
|
|
||||||
```
|
|
||||||
737b3cb57696fb5517252e7db38bc88ce960b4d8
|
|
||||||
|
|
||||||
Don't use capabilities for generic peripherals
|
|
||||||
```
|
|
||||||
Not ported, related to forges capability system which is not used in the port.
|
|
||||||
|
|
||||||
```
|
|
||||||
ea3a16036794357c3a44edffc90fdb652e03881e
|
|
||||||
|
|
||||||
Remove a couple of todos
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
bb8f4c624bf87169b73fb631d8250cfc38181e15
|
|
||||||
|
|
||||||
Some sanity checks for get{Direction,Orientation}
|
|
||||||
```
|
|
||||||
Use `getCachedState` instead of forge's `getBlockState` and `contains` instead of `has`.
|
|
||||||
|
|
||||||
```
|
|
||||||
05c3c8ad3269c9025757f9261e7f609889fb6bdc
|
|
||||||
|
|
||||||
Generate docs for generic peripherals
|
|
||||||
```
|
|
||||||
Skipped everything except some removed whitespace.
|
|
||||||
|
|
||||||
```
|
|
||||||
85cf2d5ff1b63010de4661301801aa504e5b9015
|
|
||||||
|
|
||||||
Docs for energy and inventory methods
|
|
||||||
```
|
|
||||||
and
|
|
||||||
```
|
|
||||||
5865e9c41a0140b9f1acdd2fb095353c467fbb45
|
|
||||||
|
|
||||||
Not sure what irritates me more
|
|
||||||
```
|
|
||||||
both skipped because the changes where already ported.
|
|
||||||
|
|
||||||
```
|
|
||||||
4ae370b9dbaf1de0ed32a5f32340b1448136c9cc
|
|
||||||
|
|
||||||
Merge pull request #606 from TheWireLord/numpadenter-support
|
|
||||||
```
|
|
||||||
Just lua changes.
|
|
||||||
|
|
||||||
```
|
|
||||||
f5eb6ce03e0d9bbbf77130452afd4b49e758f7bd
|
|
||||||
|
|
||||||
Fix copy-paste error in inventory docs
|
|
||||||
```
|
|
||||||
Skipped because it was already ported.
|
|
||||||
|
|
||||||
```
|
|
||||||
663859d2e5a97edefebf9ac36206903d7dd33a3e
|
|
||||||
Fix double URL decode
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
abf425dfb5553483cdc51c50a6b7d8b5e44814f4
|
|
||||||
|
|
||||||
Fix overflow in os.epoch
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
e3a672099c1b5d2c06f9fe4d8ccd024fef0873a2
|
|
||||||
|
|
||||||
Fix JEI integration with turtle/pocket upgrades
|
|
||||||
```
|
|
||||||
Skipped because there seems to be no REI integration.
|
|
||||||
|
|
||||||
```
|
|
||||||
2f0cae0bc1b038ac092bafa7f65a317537203cd8
|
|
||||||
|
|
||||||
Make upgrade recipe requirements a little more lax
|
|
||||||
```
|
|
||||||
[TODO] [JUMT-01] Crafting is still messed up, but this port didn't change the behavior.
|
|
||||||
[TODO] [JUMT-02] Tag comparison code doesn't need to be that verbose, a simple `isEqual` check would suffice.
|
|
||||||
|
|
||||||
```
|
|
||||||
7f9a707f75636d5816f752dc93d7b6b998c61a03
|
|
||||||
|
|
||||||
Bump version to 1.95.0
|
|
||||||
```
|
|
||||||
Changed the name from CC: Tweaked to CC: Restitched in the changelog and whatsnew files. New version is 1.95.0-beta.
|
|
||||||
|
|
||||||
```
|
|
||||||
4af5bcc0b0ff464e7e7428c389d47140580ea7a7
|
|
||||||
|
|
||||||
Fix serveral 1.15 -> 1.16 issues
|
|
||||||
```
|
|
||||||
Skipped, changes where already made.
|
|
||||||
|
|
||||||
```
|
|
||||||
b8d5a89446ac02fc5b38cc5c0b4805de9d11a7d5
|
|
||||||
|
|
||||||
Add explicit @module annotation
|
|
||||||
```
|
|
||||||
Tiny lua change.
|
|
||||||
|
|
||||||
```
|
|
||||||
8b17ec76a8e94251803e6f4ba4e65970c6a70b7f
|
|
||||||
|
|
||||||
Fixed missing argument names in file handle docs (#632)
|
|
||||||
```
|
|
||||||
A java doc change.
|
|
||||||
|
|
||||||
```
|
|
||||||
e4b0a5b3ce035eb23feb4191432fc49af5772c5b
|
|
||||||
|
|
||||||
2020 -> 2021
|
|
||||||
```
|
|
||||||
A huge amount of changes.
|
|
||||||
|
|
||||||
```
|
|
||||||
542b66c79a9b08e080c39c9a73d74ffe71c0106a
|
|
||||||
|
|
||||||
Add back command computer block drops
|
|
||||||
```
|
|
||||||
Didn't port some forge-related changes, but it works.
|
|
||||||
|
|
||||||
```
|
|
||||||
dd6f97622e6c18ce0d8988da6a5bede45c94ca5d
|
|
||||||
|
|
||||||
Prevent reflection errors crashing the game
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
92be0126df63927d07fc695945f8b98e328f945a
|
|
||||||
|
|
||||||
Fix disk recipes
|
|
||||||
```
|
|
||||||
Dye recipes actually work now.
|
|
||||||
|
|
||||||
```
|
|
||||||
1edb7288b974aec3764b0a820edce7e9eee38e66
|
|
||||||
|
|
||||||
Merge branch 'mc-1.15.x' into mc-1.16.x
|
|
||||||
```
|
|
||||||
New version: 1.95.1.
|
|
||||||
|
|
||||||
```
|
|
||||||
41226371f3b5fd35f48b6d39c2e8e0c277125b21
|
|
||||||
|
|
||||||
Add isReadOnly to fs.attributes (#639)
|
|
||||||
```
|
|
||||||
Also changed some lua test files, but made the changes anyway.
|
|
||||||
|
|
||||||
```
|
|
||||||
b2e54014869fac4b819b01b6c24e550ca113ce8a
|
|
||||||
|
|
||||||
Added Numpad Enter Support in rom lua programs. (#657)
|
|
||||||
```
|
|
||||||
Just lua changes.
|
|
||||||
|
|
||||||
```
|
|
||||||
247c05305d106af430fcdaee41371a152bf7c38c
|
|
||||||
|
|
||||||
Fix problem with RepeatArgumentType
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
c864576619751077a0d8ac1a18123e14b095ec03
|
|
||||||
|
|
||||||
Fix impostor recipes for disks
|
|
||||||
```
|
|
||||||
[TODO] [JUMT-03] REI still shows white disks, probably because it doesn' show nbt items.
|
|
||||||
|
|
||||||
```
|
|
||||||
c5694ea9661c7a40021ebd280c378bd7bdc56988
|
|
||||||
|
|
||||||
Merge branch 'mc-1.15.x' into mc-1.16.x
|
|
||||||
```
|
|
||||||
Update to 1.16.4.
|
|
||||||
|
|
||||||
```
|
|
||||||
1f84480a80677cfaaf19d319290f5b44635eba47
|
|
||||||
|
|
||||||
Make rightAlt only close menu, never open it. (#672)
|
|
||||||
```
|
|
||||||
Lua changes.
|
|
||||||
|
|
||||||
```
|
|
||||||
1255bd00fd21247a50046020d7d9a396f66bc6bd
|
|
||||||
|
|
||||||
Fix mounts being usable after a disk is ejected
|
|
||||||
```
|
|
||||||
Reverted a lot of code style changes made by Zundrel, so the diffs are huge.
|
|
||||||
|
|
||||||
```
|
|
||||||
b90611b4b4c176ec1c80df002cc4ac36aa0c4dc8
|
|
||||||
|
|
||||||
Preserve registration order of upgrades
|
|
||||||
```
|
|
||||||
Again, a huge diff because of code style changes.
|
|
||||||
|
|
||||||
```
|
|
||||||
8494ba8ce29cd8d7b9105eef497fe3fe3f89d350
|
|
||||||
|
|
||||||
Improve UX when a resource mount cannot be found
|
|
||||||
```
|
|
@@ -1,11 +1 @@
|
|||||||
pluginManagement {
|
rootProject.name = "cc-tweaked-${mc_version}"
|
||||||
repositories {
|
|
||||||
maven {
|
|
||||||
name = 'Fabric'
|
|
||||||
url = 'https://maven.fabricmc.net/'
|
|
||||||
}
|
|
||||||
gradlePluginPortal()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
rootProject.name = "cc-restiched"
|
|
||||||
|
@@ -40,4 +40,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -11,7 +11,7 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"tag": "c:redstone_dusts"
|
"tag": "forge:dusts/redstone"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -40,4 +40,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -40,4 +40,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -29,4 +29,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -32,4 +32,4 @@
|
|||||||
"has_the_recipe"
|
"has_the_recipe"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user