From 4fe1131e55cc5bef1e33afbb55cd8ac9bac33d43 Mon Sep 17 00:00:00 2001
From: garnet420 <795869+garnet420@users.noreply.github.com>
Date: Sat, 29 Jun 2019 23:04:57 -0400
Subject: [PATCH] G420 automator work (#616)
* WIP automator backend
* backend is now capable of running a really tiny test program
* Automator WIP
* Make nested things in AutomatorBackend lower case
* For now, translate strings to Decimals in stored scripts as possible
* change "currency" to "comparable" in automator backend
* rebase razen's automator work onto current master, fix rebase errors
* block automator code that doesn't even work
* update vue-draggable version
* update index.html for new vue draggable
* trying to get draggable to work
* update sortable.min.js
* more block automator work
* plenty of more functionality like nesting and deleting rows
* add while
* text parse from blocks
* parse blocks into automator and delete nested commands
* scratch file with grammar
* scratch file with grammar
* Automator grammar with CST visitor that reports some semantic errors
* add in codemirror css and js
* checkpoint of automator work so far
* automator state of affairs
* refactor big crunch code a bit
* automator work checkpoint
* small fixes to non-automato stuff
* script storage in player sketched out
* update to loading scripts from save
* Nuke old code
* include font awesome stylesheet
* Add GAME_LOAD event
* automato can now run a simple script (triggered from console at the moment)
* Added automato controls
* add repeat support to automato
* a little more work on automato buttons
* refactor code for getting current EC completions a bit to support automato
* automato working well enough to run an automated reality script
* Beautify automator UI
* fix issue with numeric vars in automato; remove some console logs
* fix auto eternity and script looping logic in automato
* fix pause with variable-defined time and plain pause command
* add support for black hole and stored time on/off in automato
* crude support for renaming scripts
* hide rename icon when renaming
* support creating and opening scripts in automato
* new tomato tutorials
* add store time use to automator
* add more automato command docs
* add working tooltips for automato buttons
* indicate which script is running in dropdown menu
* remove more old automator cruft
* remove console printouts
* fix active button colors in automato
* indicate active automato line in gutter
---
.eslintrc.json | 1 +
index.html | 251 +-
javascripts/components/automator-buttons.js | 10 +-
.../header/game-header-big-crunch-button.js | 2 +-
.../header/game-header-eternity-button.js | 36 +-
javascripts/components/new-ui.js | 2 +-
.../new-ui/sidebar-resources/sidebar-ip.js | 2 +-
.../automator/automator-block-editor.js | 69 +
.../reality/automator/automator-block-tab.js | 25 +
.../reality/automator/automator-blocks.js | 89 +
.../reality/automator/automator-button.js | 7 +
.../reality/automator/automator-editor.js | 256 +
.../automator/automator-single-block.js | 53 +
.../reality/automator/automator-tab.js | 23 +
.../docs/automator-docs-main-page.js | 17 +
.../reality/automator/docs/automator-docs.js | 49 +
.../automator/docs/automator-man-page.js | 32 +
javascripts/core/app/ui.init.js | 6 +
javascripts/core/autobuyer.js | 4 +-
javascripts/core/automator.js | 409 -
.../core/automator/automator-backend.js | 374 +
.../core/automator/automator-codemirror.js | 97 +
.../core/automator/automator-commands.js | 545 +
javascripts/core/automator/compiler.js | 378 +
javascripts/core/automator/lexer.js | 287 +
javascripts/core/automator/parser.js | 140 +
javascripts/core/big_crunch.js | 64 +-
javascripts/core/canvases.js | 70 -
javascripts/core/challenge.js | 1 +
javascripts/core/constants.js | 16 +-
javascripts/core/eternity_challenge.js | 63 +-
javascripts/core/event-hub.js | 3 +-
javascripts/core/extensions.js | 4 +
javascripts/core/hotkeys.js | 2 +-
javascripts/core/perks.js | 1 -
javascripts/core/player.js | 16 +-
javascripts/core/reality.js | 1 -
.../core/secret-formula/reality/automator.js | 261 +
javascripts/core/storage/storage.js | 19 +-
javascripts/core/timestudies.js | 12 -
javascripts/game.js | 14 +-
javascripts/lib/Sortable.min.js | 4 +-
javascripts/lib/active-line.js | 72 +
javascripts/lib/chevrotain.min.js | 2 +
javascripts/lib/codemirror.js | 9755 +++++++++++++++++
javascripts/lib/lint.js | 252 +
javascripts/lib/show-hint.js | 460 +
javascripts/lib/simple.js | 216 +
javascripts/lib/vue-split-pane.min.js | 1 +
javascripts/lib/vuedraggable.min.js | 1 -
javascripts/lib/vuedraggable.umd.min.js | 2 +
stylesheets/automator.css | 171 +
stylesheets/codemirror/codemirror.css | 346 +
stylesheets/codemirror/lint.css | 73 +
stylesheets/codemirror/liquibyte.css | 95 +
stylesheets/codemirror/panda-syntax.css | 85 +
stylesheets/codemirror/show-hint.css | 36 +
stylesheets/styles.css | 219 +-
stylesheets/theme-Dark.css | 36 -
stylesheets/theme-S6.css | 32 -
60 files changed, 14536 insertions(+), 1033 deletions(-)
create mode 100644 javascripts/components/reality/automator/automator-block-editor.js
create mode 100644 javascripts/components/reality/automator/automator-block-tab.js
create mode 100644 javascripts/components/reality/automator/automator-blocks.js
create mode 100644 javascripts/components/reality/automator/automator-button.js
create mode 100644 javascripts/components/reality/automator/automator-editor.js
create mode 100644 javascripts/components/reality/automator/automator-single-block.js
create mode 100644 javascripts/components/reality/automator/automator-tab.js
create mode 100644 javascripts/components/reality/automator/docs/automator-docs-main-page.js
create mode 100644 javascripts/components/reality/automator/docs/automator-docs.js
create mode 100644 javascripts/components/reality/automator/docs/automator-man-page.js
delete mode 100644 javascripts/core/automator.js
create mode 100644 javascripts/core/automator/automator-backend.js
create mode 100644 javascripts/core/automator/automator-codemirror.js
create mode 100644 javascripts/core/automator/automator-commands.js
create mode 100644 javascripts/core/automator/compiler.js
create mode 100644 javascripts/core/automator/lexer.js
create mode 100644 javascripts/core/automator/parser.js
create mode 100644 javascripts/core/secret-formula/reality/automator.js
create mode 100644 javascripts/lib/active-line.js
create mode 100644 javascripts/lib/chevrotain.min.js
create mode 100644 javascripts/lib/codemirror.js
create mode 100644 javascripts/lib/lint.js
create mode 100644 javascripts/lib/show-hint.js
create mode 100644 javascripts/lib/simple.js
create mode 100644 javascripts/lib/vue-split-pane.min.js
delete mode 100644 javascripts/lib/vuedraggable.min.js
create mode 100644 javascripts/lib/vuedraggable.umd.min.js
create mode 100644 stylesheets/automator.css
create mode 100644 stylesheets/codemirror/codemirror.css
create mode 100644 stylesheets/codemirror/lint.css
create mode 100644 stylesheets/codemirror/liquibyte.css
create mode 100644 stylesheets/codemirror/panda-syntax.css
create mode 100644 stylesheets/codemirror/show-hint.css
diff --git a/.eslintrc.json b/.eslintrc.json
index 9653a5f9f..918c9d79d 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -108,6 +108,7 @@
"computed-property-spacing": "error",
"consistent-this": "error",
"func-call-spacing": "error",
+ "guard-for-in": "warn",
"id-blacklist": [
"error",
"ret",
diff --git a/index.html b/index.html
index 996a91fac..53a660770 100644
--- a/index.html
+++ b/index.html
@@ -8,14 +8,20 @@
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
-
@@ -383,6 +183,7 @@
+
@@ -439,6 +240,7 @@
+
@@ -597,6 +399,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -622,6 +435,11 @@
+
+
+
+
+
@@ -651,7 +469,6 @@
-
diff --git a/javascripts/components/automator-buttons.js b/javascripts/components/automator-buttons.js
index 5c5169745..a314e40b5 100644
--- a/javascripts/components/automator-buttons.js
+++ b/javascripts/components/automator-buttons.js
@@ -74,21 +74,21 @@ Vue.component("automator-shop-button", {
"automatorinstruction": this.available,
"automatorinstructionlocked": !this.available
};
- classObject[Automator.Instructions[this.name].type] = true;
+ classObject[AutomatorInstructions.Instructions[this.name].type] = true;
return classObject;
},
// This assumes prices are constant
cost() {
- return Automator.Instructions[this.name].price;
+ return AutomatorInstructions.Instructions[this.name].price;
},
instructionID() {
- return Automator.Instructions[this.name].id;
+ return AutomatorInstructions.Instructions[this.name].id;
},
domID() {
- return "automator" + Automator.Instructions[this.name].id;
+ return "automator" + AutomatorInstructions.Instructions[this.name].id;
},
displayName() {
- return Automator.Instructions[this.name].displayName;
+ return AutomatorInstructions.Instructions[this.name].displayName;
},
popoverTrigger() {
// If the html did not specify a tooltip, we set the trigger to
diff --git a/javascripts/components/header/game-header-big-crunch-button.js b/javascripts/components/header/game-header-big-crunch-button.js
index a521c24ca..98f980bc8 100644
--- a/javascripts/components/header/game-header-big-crunch-button.js
+++ b/javascripts/components/header/game-header-big-crunch-button.js
@@ -34,7 +34,7 @@ Vue.component("game-header-big-crunch-button", {
`