profile
viewpoint
Guillaume Jenkins guillaumejenkins Microsoft

dkiang/pxt-microbit 0

A Blocks / JavaScript code editor for the micro:bit built on Microsoft MakeCode

dlebu/taco-simulate 0

Module to support Cordova plugin simulation in TACO CLI.

dlebu/taco-simulate-server 0

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

guillaumejenkins/pxt-arcade 0

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

Show tile assets if editing a tile

fixes https://github.com/microsoft/pxt-arcade/issues/2922

also don't always filter for tags because user assets don't have tags

+4 -3

0 comment

1 changed file

pr created time in 3 hours

create barnchmicrosoft/pxt

branch : personal/vivl/nested-editor

created branch time in 3 hours

push eventmicrosoft/pxt

Vivian Li

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

view details

push time in 3 hours

delete branch microsoft/pxt

delete branch : personal/vivl/filter-gallery

delete time in 3 hours

PR merged microsoft/pxt

Reviewers
Filter assets by tag in gallery

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

+36 -0

0 comment

2 changed files

livcheerful

pr closed time in 3 hours

push eventmicrosoft/pxt

shakao

commit sha 56f339cd4ffe1c3ab20b35de450be6476cf03f71

Align sprite gallery rows to start of container (#7806)

view details

push time in 4 hours

delete branch microsoft/pxt

delete branch : shakao/align-content

delete time in 4 hours

PR merged microsoft/pxt

Reviewers
Align sprite gallery rows to start of container

Fix row stretching:

MicrosoftTeams-image (1)

+1 -0

0 comment

1 changed file

shakao

pr closed time in 4 hours

PR opened microsoft/pxt

Reviewers
Default animation interval, copy duplicated tile display name, disable resize fix

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)
+6 -4

0 comment

4 changed files

pr created time in 4 hours

push eventmicrosoft/pxt

Shannon Kao

commit sha 25c5e00eaf6e6c989d0c2385efc754ac1927b3cd

Disable resize for tiles only

view details

push time in 4 hours

create barnchmicrosoft/pxt

branch : shakao/small-fixes

created branch 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));
riknoll

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

riknoll

comment created time in 4 hours

PR opened microsoft/pxt

Reviewers
Add flipping and rotating to the image/tilemap/animation editor

What....? Could it be....?? IT IS!!! Flip and rotate are finally in the image editor!!!!!

2021-01-20 16 33 18

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:

  1. If you are in the tilemap editor, walls are also rotated (just like how we handle them in the marquee tool)
  2. 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
  3. 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.

+181 -3

0 comment

9 changed files

pr created time in 5 hours

create barnchmicrosoft/pxt

branch : flip-rotate2

created branch time in 5 hours

push eventmicrosoft/pxt

shakao

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

view details

push time in 6 hours

delete branch microsoft/pxt

delete branch : shakao/flip-rotate

delete time in 6 hours

PR merged microsoft/pxt

Add flip/rotate icons, hook up to commands

image

Build: https://arcade.makecode.com/app/e64ff34643aed2337370deb79f57c136aec76d9e-7c22f78580

+35 -0

0 comment

6 changed files

shakao

pr closed time in 6 hours

push eventmicrosoft/pxt

Vivian Li

commit sha e069ec8e00715a6488848fba2161f6b1bd110bb3

Check state for filter string

view details

push time in 6 hours

push eventmicrosoft/pxt

Shannon Kao

commit sha 40d7855ba3e254d52742a454958c8db6d6d753a3

Generalize button titles for tilemaps

view details

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

shakao

comment created time in 6 hours

PR opened microsoft/pxt

Reviewers
Add flip/rotate icons, hook up to commands

image

Build: https://arcade.makecode.com/app/e64ff34643aed2337370deb79f57c136aec76d9e-7c22f78580

+35 -0

0 comment

6 changed files

pr created time in 6 hours

create barnchmicrosoft/pxt

branch : shakao/flip-rotate

created branch time in 7 hours

create barnchmicrosoft/pxt

branch : flip-rotate

created branch time in 7 hours

push eventmicrosoft/pxt

Vivian Li

commit sha 5447ce0ec8f85f0a194fc0d2ce9bdd874c0348be

Add comment to keep track of copied code, cleanup

view details

push time in 7 hours

push eventmicrosoft/pxt

Shannon Kao

commit sha 20199d0a08aa232392f9a4e05bc124996383409b

6.8.26

view details

push time in 8 hours

created tagmicrosoft/pxt

tagv6.8.26

Microsoft MakeCode (PXT - Programming eXperience Toolkit)

created time in 8 hours

push eventmicrosoft/pxt

shakao

commit sha 6d486dd16637689d3308a7fe692ddc6fb32c6be0

Set blocksinfo in asset editor for tilemap/image editor (#7808)

view details

push time in 8 hours

delete branch microsoft/pxt

delete branch : shakao/blocksinfo

delete time in 8 hours

more