Skip to content

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

Open
wants to merge 48 commits into
base: master
Choose a base branch
from
Open

Vectors #2074

wants to merge 48 commits into from

Conversation

unknown07724
Copy link

Vectors is a extension for Vectors
Blocks: Create vector with ID,direction and magnitude: creates a vector, vector direction, returns direction of the vector based on ID, vector magnitude, returns magnitude of the vector based on ID, Change Magnitude and direction, changes magnitude and direction of the vector based on ID, and List of IDs, lists all elements in IDs

@github-actions github-actions bot added the pr: new extension Pull requests that add a new extension label Apr 8, 2025
@fath11
Copy link
Contributor

fath11 commented Apr 9, 2025

there is no block for deleting vectors?

@fath11
Copy link
Contributor

fath11 commented Apr 9, 2025

also please run !format

@unknown07724
Copy link
Author

!format

@unknown07724
Copy link
Author

there is no block for deleting vectors?

Yes, just stop using a vector

@unknown07724
Copy link
Author

!format

@unknown07724
Copy link
Author

@fath11 there is now

Copy link
Member

@yuri-kiss yuri-kiss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this seems to literally just be a weird way of storing 2 dictionary's, what is the point of this extension, you can't even do any operations?

opcode: "vectorCreate",
blockType: Scratch.BlockType.COMMAND,
text: Scratch.translate(
"create vector with ID [ID], direction [DIRECTION] and magnitude [MAGNITUDE]"
Copy link
Member

Choose a reason for hiding this comment

The 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.

}

vectorCreate(args) {
const id = args.ID;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you don't cast anything, this is poor practice

Copy link
Author

Choose a reason for hiding this comment

The 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?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see now, attempted to fix, fucked up the code

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed the fuck up, now works better

}

// Vectors storage
const ids = [];
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why can't this be a set


// Vectors storage
const ids = [];
const directions = {};
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these should be Object.create(null); or a Map


vectorMag(args) {
const id = args.ID;
return magnitudes[id] ?? Scratch.translate("vector not found");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you should return an empty string or 0 here

Copy link
Author

Choose a reason for hiding this comment

The 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.

Copy link
Contributor

Choose a reason for hiding this comment

The 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.

@GarboMuffin said to chill the language

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

decided upon making it "null"


vectorDir(args) {
const id = args.ID;
return directions[id] ?? Scratch.translate("vector not found");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here

@unknown07724
Copy link
Author

unknown07724 commented Apr 20, 2025

Maps are < >, it does what it needs to do very well

@unknown07724
Copy link
Author

!format

@GarboMuffin
Copy link
Member

it would be wonderful if you would be more reasonable with your language on this issue tracker

@unknown07724
Copy link
Author

it already does what it needs to do, I don't want to spend multiple hours rewriting the entire extension

@unknown07724
Copy link
Author

!format

const id = Scratch.Cast.toString(args.ID);
return magnitudes[id] !== undefined
? magnitudes[id]
: Scratch.translate("null");
Copy link
Collaborator

@CST1229 CST1229 Jul 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

translating block return values is usually not a good idea; people may compare the result of this block to the string null (or whatever it is in their language) and then have it break in other languages that have a different string for it.
(null specifically is a fairly language-neutral word so it should be fine untranslated. or you could follow Scratch's precedent and return an empty string; this is what lists also do for example so I don't think it would be confusing)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr: new extension Pull requests that add a new extension
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants