-
-
Notifications
You must be signed in to change notification settings - Fork 273
Vectors #2074
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Vectors #2074
Changes from all commits
e437ea9
f0f99b6
17680ea
af93815
5d4882b
b9ad34e
8cd2ad5
c8ba421
1425e97
bafa172
c83d9f4
080e790
957cc7f
293efd2
84784db
2bdeb70
fe8abcc
6c6085d
766784d
58b0eca
6587f1b
215bcf8
7f5daee
094a242
7dfa05a
db0edbd
86ddd01
fa0d902
abbdf2f
a481dcb
14cdecc
7e9c6fc
d422aff
2c7e9da
38f99bf
7fe7b1a
1d505e4
f374566
30b67f0
605495f
84a6583
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,175 @@ | ||
// Name: Vectors | ||
// ID: unknownvectors | ||
// Description: variables with a direction. | ||
// By: Unknown07724 <https://scratch.mit.edu/users/Unknown07724/> | ||
// License: MPL-2.0 | ||
|
||
(function (Scratch) { | ||
"use strict"; | ||
|
||
// Ensuring the extension is unsandboxed | ||
if (!Scratch.extensions.unsandboxed) { | ||
throw new Error("This extension must run unsandboxed"); | ||
} | ||
|
||
// Vectors storage | ||
const ids = []; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. why can't this be a set |
||
const directions = {}; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. these should be Object.create(null); or a Map |
||
const magnitudes = {}; | ||
|
||
class UnknownVectors { | ||
getInfo() { | ||
return { | ||
id: "unknownvectors", | ||
name: Scratch.translate("Vectors"), | ||
color1: "#3495eb", | ||
blocks: [ | ||
{ | ||
opcode: "vectorCreate", | ||
blockType: Scratch.BlockType.COMMAND, | ||
text: Scratch.translate( | ||
"create vector with ID [ID], direction [DIRECTION] and magnitude [MAGNITUDE]" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. you have inconsistent capitalization across the blocks, the blocks should be written starting with lowercase. they are NOT sentences. |
||
), | ||
arguments: { | ||
ID: { type: Scratch.ArgumentType.STRING, defaultValue: "vec1" }, | ||
DIRECTION: { | ||
type: Scratch.ArgumentType.NUMBER, | ||
defaultValue: 90, | ||
}, | ||
MAGNITUDE: { | ||
type: Scratch.ArgumentType.NUMBER, | ||
defaultValue: 10, | ||
}, | ||
}, | ||
}, | ||
{ | ||
opcode: "vectorChangeMag", | ||
blockType: Scratch.BlockType.COMMAND, | ||
text: Scratch.translate( | ||
"change vector [ID]'s magnitude to [MAGNITUDE]" | ||
), | ||
arguments: { | ||
ID: { type: Scratch.ArgumentType.STRING, defaultValue: "vec1" }, | ||
MAGNITUDE: { | ||
type: Scratch.ArgumentType.NUMBER, | ||
defaultValue: 10, | ||
}, | ||
}, | ||
}, | ||
{ | ||
opcode: "vectorChange", | ||
blockType: Scratch.BlockType.COMMAND, | ||
text: Scratch.translate( | ||
"change vector [ID] to direction [DIRECTION] and magnitude [MAGNITUDE]" | ||
), | ||
arguments: { | ||
ID: { type: Scratch.ArgumentType.STRING, defaultValue: "vec1" }, | ||
DIRECTION: { | ||
type: Scratch.ArgumentType.NUMBER, | ||
defaultValue: 90, | ||
}, | ||
MAGNITUDE: { | ||
type: Scratch.ArgumentType.NUMBER, | ||
defaultValue: 10, | ||
}, | ||
}, | ||
}, | ||
{ | ||
opcode: "vectorDelete", | ||
blockType: Scratch.BlockType.COMMAND, | ||
text: Scratch.translate("delete vector with [ID]"), | ||
arguments: { | ||
ID: { type: Scratch.ArgumentType.STRING, defaultValue: "vec1" }, | ||
}, | ||
}, | ||
{ | ||
opcode: "vectorChangedir", | ||
blockType: Scratch.BlockType.COMMAND, | ||
text: Scratch.translate( | ||
"change vector [ID]'s direction to [DIRECTION]" | ||
), | ||
arguments: { | ||
ID: { type: Scratch.ArgumentType.STRING, defaultValue: "vec1" }, | ||
DIRECTION: { | ||
type: Scratch.ArgumentType.NUMBER, | ||
defaultValue: 90, | ||
}, | ||
}, | ||
}, | ||
{ | ||
opcode: "vectorMag", | ||
blockType: Scratch.BlockType.REPORTER, | ||
text: Scratch.translate("magnitude of vector [ID]"), | ||
arguments: { | ||
ID: { type: Scratch.ArgumentType.STRING, defaultValue: "vec1" }, | ||
}, | ||
}, | ||
{ | ||
opcode: "listofIDs", | ||
blockType: Scratch.BlockType.REPORTER, | ||
text: Scratch.translate("List of IDs"), | ||
}, | ||
{ | ||
opcode: "vectorDir", | ||
blockType: Scratch.BlockType.REPORTER, | ||
text: Scratch.translate("direction of vector [ID]"), | ||
arguments: { | ||
ID: { type: Scratch.ArgumentType.STRING, defaultValue: "vec1" }, | ||
}, | ||
}, | ||
], | ||
}; | ||
} | ||
|
||
vectorCreate(args) { | ||
const id = args.ID; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. you don't cast anything, this is poor practice There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. aren't they numbers, you can not put strings in there, and if you could, who would? |
||
if (!ids.includes(id)) { | ||
ids.push(id); | ||
} | ||
directions[id] = args.DIRECTION; | ||
magnitudes[id] = args.MAGNITUDE; | ||
} | ||
|
||
vectorChange(args) { | ||
const id = args.ID; | ||
directions[id] = args.DIRECTION; | ||
magnitudes[id] = args.MAGNITUDE; | ||
} | ||
|
||
vectorChangedir(args) { | ||
const id = args.ID; | ||
directions[id] = args.DIRECTION; | ||
} | ||
|
||
vectorChangeMag(args) { | ||
const id = args.ID; | ||
magnitudes[id] = args.MAGNITUDE; | ||
} | ||
|
||
vectorMag(args) { | ||
const id = args.ID; | ||
return magnitudes[id] ?? Scratch.translate("vector not found"); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. you should return an empty string or 0 here There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. do I want people to wonder why their shit isn't working? if you said yes then you are wrong, the answer is no. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
@GarboMuffin said to chill the language |
||
} | ||
|
||
vectorDelete(args) { | ||
const id = args.ID; | ||
const index = ids.indexOf(id); | ||
if (index !== -1) { | ||
ids.splice(index, 1); | ||
delete directions[id]; | ||
delete magnitudes[id]; | ||
} | ||
} | ||
|
||
vectorDir(args) { | ||
const id = args.ID; | ||
return directions[id] ?? Scratch.translate("vector not found"); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. same here |
||
} | ||
|
||
listofIDs() { | ||
return ids.join(", "); | ||
} | ||
} | ||
|
||
Scratch.extensions.register(new UnknownVectors()); | ||
})(Scratch); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you're missing the header data
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
< >, Imma re-add that Ig