A Blocks / JavaScript code editor for the micro:bit built on Microsoft MakeCode
Module to support Cordova plugin simulation in TACO CLI.
Server module for Cordova plugin simulation in TACO CLI.
guillaumejenkins/electron-packager-plugin-non-proprietary-codecs-ffmpeg 0
Electron packager plugin that can be registered with the afterExtract hook that changes out the dynamically linked ffmpeg binaries that ship with electron with the prebuilt ffmpeg binaries that do not include proprietary codecs.
guillaumejenkins/ltc-npm-modulate 0
Node package for modulating audio signals for LtC
Casual game editor based on Microsoft MakeCode
guillaumejenkins/pxt-motorbit 0
ElecFreaks MakeCode motor:bit package for micro:bit. Works with motor driver boards too.
guillaumejenkins/pxt-neopixel 0
A Neo-Pixel package for pxt-microbit
guillaumejenkins/Squirrel.Windows 0
An installation and update framework for Windows desktop apps
PR opened microsoft/pxt
fixes https://github.com/microsoft/pxt-arcade/issues/2922
also don't always filter for tags because user assets don't have tags
pr created time in 3 hours
push eventmicrosoft/pxt
commit sha 4f955982ba1fedf6572b55df780d957f838b0354
Filter assets by tag in gallery (#7805) * Fetch tags for assets and filter them * Add comment to keep track of copied code, cleanup * Check state for filter string
push time in 3 hours
PR merged microsoft/pxt
fixes https://github.com/microsoft/pxt-arcade/issues/2901
- Added fetching tags for assets
- Added filtering by tags
I copied the tag filtering from https://github.com/microsoft/pxt/blob/9e24403a17e2df8aa2261572b653662dbc9cbf5d/pxtlib/spriteutils.ts#L414
Also the dialogs gallery looks like this now, I can't remember if that's how it was before or if this is what we want?
pr closed time in 3 hours
push eventmicrosoft/pxt
commit sha 56f339cd4ffe1c3ab20b35de450be6476cf03f71
Align sprite gallery rows to start of container (#7806)
push time in 4 hours
PR opened microsoft/pxt
fixes:
- set default interval when creating animation (bug: second animation created in the editor has empty interval)
- copy display name when duplicating a tile INSIDE the tilemap (bug: duplicated tiles in tilemap have no display names and are listed as "temporary asset")
- disable resize for tiles only (bug: editing a tile in the asset editor then opening a tilemap will disable resize for that tilemap)
pr created time in 4 hours
push eventmicrosoft/pxt
commit sha 25c5e00eaf6e6c989d0c2385efc754ac1927b3cd
Disable resize for tiles only
push time in 4 hours
Pull request review commentmicrosoft/pxt
Add flipping and rotating to the image/tilemap/animation editor
export class MarqueeEdit extends SelectionEdit { } } }++export function rotateEdit(image: EditState, clockwise: boolean, isTilemap: boolean, toFloatingLayer: boolean) {+ const hasFloatingLayer = !!image.floating?.image;+ const source = hasFloatingLayer ? image.floating : image;++ const newImage = isTilemap ? new pxt.sprite.Tilemap(source.image.height, source.image.width) :+ new pxt.sprite.Bitmap(source.image.height, source.image.width);+ const newOverlayLayers = source.overlayLayers ? source.overlayLayers.map(layer => new pxt.sprite.Bitmap(layer.height, layer.width)) : undefined;++ for (let x = 0; x < source.image.width; x++) {+ for (let y = 0; y < source.image.height; y++) {+ rotatePixel(source.image, newImage, x, y);+ if (newOverlayLayers) {+ newOverlayLayers.forEach((layer, i) => rotatePixel(source.overlayLayers[i], layer, x, y));+ }+ }+ }++ if ((toFloatingLayer || hasFloatingLayer) && (newImage.width !== newImage.height)) {+ if (!hasFloatingLayer) {+ for (let x = 0; x < image.width; x++) {+ for (let y = 0; y < image.height; y++) {+ image.image.set(x, y, 0);+ if (image.overlayLayers) image.overlayLayers.forEach(layer => layer?.set(x, y, 0))+ }+ }+ }++ // If this is a full sized image, center it on the canvas+ if (newImage.width === image.image.height && newImage.height === image.image.width || newImage.width === image.image.width && newImage.height === image.image.height) {+ image.layerOffsetX = (image.width >> 1) - (newImage.width >> 1);+ image.layerOffsetY = (image.height >> 1) - (newImage.height >> 1);+ }++ image.floating = {+ image: newImage,+ overlayLayers: newOverlayLayers+ };+ }+ else {+ const rotated = new EditState(newImage);+ rotated.overlayLayers = newOverlayLayers;+ return rotated;+ }+++ return image;+++ function rotatePixel(src: pxt.sprite.Bitmap, dest: pxt.sprite.Bitmap, x: number, y: number) {+ if (clockwise) {+ dest.set(y, x, src.get(x, src.height - y - 1))+ }+ else {+ dest.set(y, x, src.get(src.width - x - 1, y))+ }+ }+}++export function flipEdit(image: EditState, vertical: boolean, isTilemap: boolean) {+ const source = image.floating || image;++ const newImage = isTilemap ? new pxt.sprite.Tilemap(source.image.width, source.image.height) :+ new pxt.sprite.Bitmap(source.image.width, source.image.height);+ const newOverlayLayers = source.overlayLayers ? source.overlayLayers.map(layer => new pxt.sprite.Bitmap(layer.width, layer.height)) : undefined;
const newOverlayLayers = source.overlayLayers?.map(layer => new pxt.sprite.Bitmap(layer.width, layer.height));
comment created time in 4 hours
Pull request review commentmicrosoft/pxt
Add flipping and rotating to the image/tilemap/animation editor
export class MarqueeEdit extends SelectionEdit { } } }++export function rotateEdit(image: EditState, clockwise: boolean, isTilemap: boolean, toFloatingLayer: boolean) {+ const hasFloatingLayer = !!image.floating?.image;+ const source = hasFloatingLayer ? image.floating : image;++ const newImage = isTilemap ? new pxt.sprite.Tilemap(source.image.height, source.image.width) :+ new pxt.sprite.Bitmap(source.image.height, source.image.width);+ const newOverlayLayers = source.overlayLayers ? source.overlayLayers.map(layer => new pxt.sprite.Bitmap(layer.height, layer.width)) : undefined;
const newOverlayLayers = source.overlayLayers?.map(layer => new pxt.sprite.Bitmap(layer.height, layer.width));
optional nit
comment created time in 4 hours
pull request commentmicrosoft/pxt
Add flipping and rotating to the image/tilemap/animation editor
comment created time in 5 hours
PR opened microsoft/pxt
What....? Could it be....?? IT IS!!! Flip and rotate are finally in the image editor!!!!!
They both work basically like you would expect. If you select something with the marquee tool, then only that part of the image is flipped/rotated. Other random things:
- If you are in the tilemap editor, walls are also rotated (just like how we handle them in the marquee tool)
- In the animation editor, will only rotate the current frame and will not resize the image. If anything would be cut off (e.g. width != height), then the image gets converted into the floating layer so nothing is lost
- You can also now click outside the canvas to clear the marquee selection (this always bothered me)
And the new keyboard shortcuts:
- SHIFT + V is flip vertical
- SHIFT + H is flip horizontal
- [ is rotate counterclockwise
- ] is rotate clockwise
All of this is pretty self contained, so should be safe to merge. Thanks to @soniakandah for the icons and @shakao for putting the buttons in the editor.
pr created time in 5 hours
push eventmicrosoft/pxt
commit sha 13414ccfd806c1b622faea58b07dfd3ebb400864
Add flip/rotate icons, hook up to commands (#7809) * Add flip/rotate icons, hook up to commands * Generalize button titles for tilemaps
push time in 6 hours
PR merged microsoft/pxt
Build: https://arcade.makecode.com/app/e64ff34643aed2337370deb79f57c136aec76d9e-7c22f78580
pr closed time in 6 hours
push eventmicrosoft/pxt
commit sha e069ec8e00715a6488848fba2161f6b1bd110bb3
Check state for filter string
push time in 6 hours
push eventmicrosoft/pxt
commit sha 40d7855ba3e254d52742a454958c8db6d6d753a3
Generalize button titles for tilemaps
push time in 6 hours
Pull request review commentmicrosoft/pxt
Add flip/rotate icons, hook up to commands
export class TopBarImpl extends React.Component<TopBarProps, TopBarState> { <div className="cursor-group"> <CursorSizes /> </div>+ <div className="image-editor-seperator"/>+ <div className="image-transform-group">+ <IconButton key="flipv" iconClass="xicon flipvertical" title={lf("Flip image vertical")} onClick={this.flipVertical} />
Maybe remove "image" from these titles, since it also applies to tilemaps
comment created time in 6 hours
PR opened microsoft/pxt
Build: https://arcade.makecode.com/app/e64ff34643aed2337370deb79f57c136aec76d9e-7c22f78580
pr created time in 6 hours
push eventmicrosoft/pxt
commit sha 5447ce0ec8f85f0a194fc0d2ce9bdd874c0348be
Add comment to keep track of copied code, cleanup
push time in 7 hours
push eventmicrosoft/pxt
commit sha 20199d0a08aa232392f9a4e05bc124996383409b
6.8.26
push time in 8 hours
created tagmicrosoft/pxt
Microsoft MakeCode (PXT - Programming eXperience Toolkit)
created time in 8 hours
push eventmicrosoft/pxt
commit sha 6d486dd16637689d3308a7fe692ddc6fb32c6be0
Set blocksinfo in asset editor for tilemap/image editor (#7808)
push time in 8 hours