Closed benloh closed 1 year ago
In GitLab by @daveseah on Apr 14, 2022, 12:39
added 4 commits
In GitLab by @daveseah on Apr 21, 2022, 13:49
added 7 commits
In GitLab by @daveseah on Apr 21, 2022, 16:12
added 3 commits
In GitLab by @daveseah on Apr 22, 2022, 12:06
added 1 commit
In GitLab by @daveseah on Apr 22, 2022, 15:03
added 1 commit
In GitLab by @daveseah on Apr 29, 2022, 12:21
added 38 commits
dev-next
added 9 commits
added 8 commits
In GitLab by @daveseah on May 4, 2022, 11:55
added 18 commits
dev-next
In GitLab by @daveseah on May 6, 2022, 09:01
added 5 commits
In GitLab by @daveseah on May 6, 2022, 09:14
added 4 commits
added 2 commits
added 24 commits
added 18 commits
In GitLab by @daveseah on May 20, 2022, 19:58
added 1 commit
added 11 commits
added 27 commits
added 47 commits
added 15 commits
added 12 commits
In GitLab by @daveseah on Jun 4, 2022, 13:20
added 21 commits
added 27 commits
In GitLab by @daveseah on Jun 11, 2022, 18:01
added 7 commits
In GitLab by @daveseah on Jun 11, 2022, 18:02
added 2 commits
In GitLab by @daveseah on Jun 11, 2022, 18:41
added 3 commits
In GitLab by @daveseah on Jun 13, 2022, 15:20
added 5 commits
In GitLab by @daveseah on Jun 13, 2022, 15:31
added 1 commit
added 2 commits
added 19 commits
In GitLab by @daveseah on Jun 18, 2022, 07:41
added 1 commit
In GitLab by @daveseah on Jun 18, 2022, 13:38
added 6 commits
In GitLab by @daveseah on Jun 18, 2022, 13:58
added 1 commit
In GitLab by @daveseah on Jun 18, 2022, 14:01
added 1 commit
added 21 commits
added 3 commits
added 2 commits
In GitLab by @daveseah on Jun 20, 2022, 12:20
added 1 commit
added 1 commit
In GitLab by @daveseah on Jun 20, 2022, 16:38
added 1 commit
added 1 commit
added 1 commit
In GitLab by @daveseah on Jun 21, 2022, 11:40
added 1 commit
In GitLab by @daveseah on Jun 21, 2022, 12:38
added 1 commit
In GitLab by @daveseah on Jun 21, 2022, 15:02
added 3 commits
added 1 commit
In GitLab by @daveseah on Jun 22, 2022, 10:27
added 1 commit
In GitLab by @daveseah on Jun 22, 2022, 11:03
added 1 commit
In GitLab by @daveseah on Jun 22, 2022, 11:07
added 1 commit
In GitLab by @daveseah on Apr 12, 2022, 07:30
Merges dev-next-gui -> dev-next
Branch:
dev-next-gui
At long last! The much anticipated Script Wizard UI is here!
This is still a little rough around the edges, so we expect it'll take a few rounds to iron things out.
TLDR;
Reporting Issues
A poorly reported issue can sometimes take us an hour to reproduce and figure out what's going on. Given that we are already running on fumes, please please please take care in reporting any issues. The more time we spend trying to figure out what a problem is, the less time we have to work on the system.
Ideally you would:
art-assets
(and if it's not inart-assets
, include a copy of the gemproj file)Significant Changes
Even though on the surface things look pretty much the same, there have been VERY significant changes to all aspects of the system, so a very thorough QA test is needed.
If you read nothing else, make sure you read this list!
agent
Blueprint references -- All object references now require explicit reference to the character type. e.g.prop energyLevel setTo 5
should now beprop agent.energyLevel setTo 5
orprop Bee.energyLevel setTo 5
. This is so object references are consistent acrosswhen
and non-when
clauses. In most cases you can just useagent
to refer to the current agent context. Forwhen
scripts, you need to explicitly refer to a particular type of agent (e.g.Moth
vsTree
). You'll notice in most scripts, theprop
lines will have errors: this is because the property name needs to haveagent
added to them in order to be valid. You'll need to fix this in most existing projects: just addagent
to the property and feature selectors outside ofwhen
conditions. Inside ofwhen
make sure you select the appropriate agent type (e.g.Bee
,Algae
, etc.) See !243.#
directives -- For the most part, students should not be adding or editing directives. These are now inserted automatically by the system. If your project is missing directives, the system will automatically insert them when you next open the project. See !242.useFeature
is nowaddFeature
-- We renamed it so it is more consistent with other keywords.useFeature
still works, but please useaddFeature
in the future.Existing Project Errors
While most older projects should run, you may encounter issues with them as you open them in the wizard and re-save them.
This is why in the testing, we recommend first that you confirm that the project will run without errors before trying to edit them with the wizard. This will help us track down the problem to see if it's a project conversion issue or an actual wizard editing issue.
There is a known issue with nested blocks that will cause errors if you try to open in them in the wizard. There are a couple of projects that we know will have problems with this:
See "Nested Blocks" in Known Issues below for a workround.
TIPS
*.gemprj
files directly, you need to restartnpm run gem
for the project to re-load the gemproj file. Otherwise it will continue to use the version initially loaded when you first rannpm run gem
.npm run gem
again to clear it. We're working on making this less painful for the future...Monitor the Web Dev Console
Given that we are in the early part of a significant QA cycle, we strongly recommend that you always have the web developer console open and watch for red javascript errors. Sometimes, in spite of errors, the app will continue to run, but do so with strange behaviors. Generally if you see a javscript error, write it down and try to reproduce it, then report it. If you need to continue working, reload first to clear the error. Continuing to work and ignoring the error can have unexpected unintended effects and you may end up wasting both your time and our time on a non-issue.
Known Issues
HELP: xxx
-- The help system has not been built yet, so you'll see placeholder help throughout the UI. This includes the staticUse the "prop" keyword to set properties to specific values and do simple arithmetic.
help at the bottom of the editor.Comments -- Comments are not editable yet.
Moving Lines -- Right now it is not possible to move a script line. You can go into the CODE view to copy and paste lines if you need to move them.
Nested Blocks -- Nested blocks that will cause errors if you try to open in them in the wizard. Generally, the error will happen after you eidt and save a script line. You'll see this in the console:
ac-wizcore.ts:146 wizcore_interceptState tokens: Error: multiple declarations of UPDATE
The workaround is to add a comment at the end of each block. e.g.
This will cause an error:
Fix it by adding a comment:
Adding Lines at the end of a Nested Block -- Normally if you select the last line in a block and then click "+" to add a line below it, the line should be added to the end of the block (i.e. INSIDE the block), not AFTER the block. Currently inserting a line below will insert it after the block.
when
context checking -- Currently, you can select any blueprint with any keyword even if that blueprint is not currently available in the current context. For example, if you're editing theTree
blueprint, and in the script you add aprop
keyword, prop will blithely let you selectMoth
,Predator
, orGraph
blueprint propnames because they exist in the project. Ideally the wizard would know which agent contexts are currently active and only provide the active blueprints as options. For example, continuing the example above, onlyagent
should be available to prop keywords, unless you add awhen Moth touches Tree
block. Inside that block, you should have access toMoth
as well asTree
andagent
(the current agent). While we intend to eventually provide this contextual information, it is a significant undertaking so we are not yet supporting it.Context Checking -- In general, the system isn't very smart yet about knowing the context that is available to a particular keyword. This means that it is easy to add references inappropriately. For example, you might try to set a featProp on a feature that you have not added to the blueprint. Or you might refer to the wrong blueprint in code for a different blueprint. The rule of thumb is to use
agent
whenever possible, and to only use the blueprint name inwhen
clauses when you've explicitly set a test condition that includes the blueprint.Costumes -- All agents MUST use the Costume feature and set a skin. Otherwise you'll get errors like
class-visual.ts:179 Uncaught (in promise) Error: arg1 must be texture asset name
Key Features
To Test
git fetch && git checkout dev-next-gui
npm run bootstrap
npm run gem
http://localhost/app/login
Run the Project
Edit a Script
featCall Costume setCostume 'algae.json'
so that any changes are immediately obvious. e.g. change thealgae.json
tofish.json
Use the Code Editor
Add a Line at the End of the script
Add a Line in the middle of the script
Delete a Line
#
directives cannot be deleted.Insert a Nested Block
# PROGRAM UPDATE
block.// insert code here
.