pxt-common-packages 9.5.3 → 9.5.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/built/common-sim.d.ts +5 -0
- package/built/common-sim.js +52 -22
- package/libs/controller/built/debug/binary.js +39 -39
- package/libs/controller---none/built/debug/binary.js +39 -39
- package/libs/game/built/debug/binary.js +39 -39
- package/libs/game/docs/reference/sprites/sprite/follow.md +66 -0
- package/libs/game/docs/reference/sprites/sprite/set-bounce-on-wall.md +2 -2
- package/libs/game/docs/reference/sprites/sprite-kind.md +70 -0
- package/libs/game/docs/reference/tiles/get-neighboring-location.md +123 -0
- package/libs/game/docs/reference/tiles/get-tile-location.md +71 -30
- package/libs/game/docs/reference/tiles/get-tiles-by-type.md +66 -32
- package/libs/game/docs/reference/tiles/location.md +246 -0
- package/libs/game/docs/reference/tiles/place-on-random-tile.md +54 -21
- package/libs/game/docs/reference/tiles/place-on-tile.md +88 -0
- package/libs/game/docs/reference/tiles/set-current-tilemap.md +90 -0
- package/libs/game/docs/reference/tiles/set-tile-at.md +47 -30
- package/libs/game/docs/reference/tiles/set-tilemap.md +90 -0
- package/libs/game/docs/reference/tiles/set-wall-at.md +67 -68
- package/libs/game/docs/reference/tiles/tile-at-location-equals.md +97 -0
- package/libs/game/docs/reference/tiles/tile-at-location-is-wall.md +98 -0
- package/libs/game/docs/reference/tiles/tilemap.md +145 -0
- package/libs/game/sprite.ts +2 -1
- package/libs/game/spritekind.ts +1 -0
- package/libs/game/tilemap.ts +12 -11
- package/libs/matrix-keypad/built/debug/binary.js +8 -8
- package/libs/net-game/built/debug/binary.js +39 -39
- package/libs/palette/built/debug/binary.js +39 -39
- package/libs/radio/_locales/radio-jsdoc-strings.json +2 -0
- package/libs/radio/_locales/radio-strings.json +4 -1
- package/libs/radio/radio.cpp +56 -3
- package/libs/radio/radio.ts +13 -2
- package/libs/radio/shims.d.ts +16 -1
- package/libs/radio/sim/radio.ts +18 -5
- package/libs/radio/sim/state.ts +37 -17
- package/libs/radio-broadcast/_locales/radio-broadcast-strings.json +2 -1
- package/libs/radio-broadcast/built/debug/binary.js +8 -8
- package/libs/radio-broadcast/radio-broadcast.ts +2 -0
- package/libs/sprite-scaling/built/debug/binary.js +6782 -6782
- package/libs/storyboard/built/debug/binary.js +39 -39
- package/package.json +2 -2
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# tile At Location Is Wall
|
|
2
|
+
|
|
3
|
+
Check if a tile at a location in the tilemap is also a wall tile.
|
|
4
|
+
|
|
5
|
+
```sig
|
|
6
|
+
tiles.tileAtLocationIsWall(null)
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
The tile in the tilemap at the location selected is checked to see if it is set as a wall. After they are placed in the tilemap with the Tilemap Editor, tiles can be set as _wall_ tiles.
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
* **location**: the [location](/reference/tiles/location) object for the tile to check if it's a wall.
|
|
14
|
+
|
|
15
|
+
## Returns
|
|
16
|
+
|
|
17
|
+
* a [boolean](/types/boolean) value that is `true` if the tile at **location** is a wall. The value is `false` if the tile is not a wall.
|
|
18
|
+
|
|
19
|
+
## Example #example
|
|
20
|
+
|
|
21
|
+
Set a tilemap with two columns of the same tile. Make one of the columns be all wall tiles. Send a ghost sprite across both colunms so it can detect which one is the wall.
|
|
22
|
+
|
|
23
|
+
```blocks
|
|
24
|
+
scene.onOverlapTile(SpriteKind.Player, assets.tile`myTile0`, function (sprite, location) {
|
|
25
|
+
if (tiles.tileAtLocationIsWall(location)) {
|
|
26
|
+
mySprite.sayText("That's a wall!")
|
|
27
|
+
} else {
|
|
28
|
+
mySprite.sayText("Not a wall.")
|
|
29
|
+
}
|
|
30
|
+
})
|
|
31
|
+
let mySprite: Sprite = null
|
|
32
|
+
scene.setBackgroundColor(11)
|
|
33
|
+
tiles.setCurrentTilemap(tilemap`level1`)
|
|
34
|
+
mySprite = sprites.create(img`
|
|
35
|
+
........................
|
|
36
|
+
........................
|
|
37
|
+
........................
|
|
38
|
+
........................
|
|
39
|
+
..........ffff..........
|
|
40
|
+
........ff1111ff........
|
|
41
|
+
.......fb111111bf.......
|
|
42
|
+
.......f11111111f.......
|
|
43
|
+
......fd11111111df......
|
|
44
|
+
......fd11111111df......
|
|
45
|
+
......fddd1111dddf......
|
|
46
|
+
......fbdbfddfbdbf......
|
|
47
|
+
......fcdcf11fcdcf......
|
|
48
|
+
.......fb111111bf.......
|
|
49
|
+
......fffcdb1bdffff.....
|
|
50
|
+
....fc111cbfbfc111cf....
|
|
51
|
+
....f1b1b1ffff1b1b1f....
|
|
52
|
+
....fbfbffffffbfbfbf....
|
|
53
|
+
.........ffffff.........
|
|
54
|
+
...........fff..........
|
|
55
|
+
........................
|
|
56
|
+
........................
|
|
57
|
+
........................
|
|
58
|
+
........................
|
|
59
|
+
`, SpriteKind.Player)
|
|
60
|
+
mySprite.left = 0
|
|
61
|
+
mySprite.setFlag(SpriteFlag.GhostThroughWalls, true)
|
|
62
|
+
mySprite.vx = 30
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## See also #seealso
|
|
66
|
+
|
|
67
|
+
[get tile location](/reference/tiles/get-tile-location)
|
|
68
|
+
|
|
69
|
+
```jres
|
|
70
|
+
{
|
|
71
|
+
"transparency16": {
|
|
72
|
+
"data": "hwQQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
|
73
|
+
"mimeType": "image/x-mkcd-f4",
|
|
74
|
+
"tilemapTile": true
|
|
75
|
+
},
|
|
76
|
+
"tile1": {
|
|
77
|
+
"data": "hwQQABAAAABmZmZmZmZmZmZvZmZmb2ZmZmZm9mZm9mZmZm9mb2ZmZvZmZmZmZm9mZmZmZmZmZmZmZmZmZmZmZmb2ZvZmb2Zm9mZmZmZm9mZmZmZmZmZmZmb2b2b2ZmZmZmZmZmZmZm9mZmb2ZmZmZmb2ZmZm9mZvZmZmZvZmZvZmZmZmZmZmZg==",
|
|
78
|
+
"mimeType": "image/x-mkcd-f4",
|
|
79
|
+
"tilemapTile": true,
|
|
80
|
+
"displayName": "myTile0"
|
|
81
|
+
},
|
|
82
|
+
"level1": {
|
|
83
|
+
"id": "level1",
|
|
84
|
+
"mimeType": "application/mkcd-tilemap",
|
|
85
|
+
"data": "MTAwYTAwMDgwMDAwMDAwMDAxMDAwMDAxMDAwMDAwMDAwMDAwMDEwMDAwMDEwMDAwMDAwMDAwMDAwMTAwMDAwMTAwMDAwMDAwMDAwMDAxMDAwMDAxMDAwMDAwMDAwMDAwMDEwMDAwMDEwMDAwMDAwMDAwMDAwMTAwMDAwMTAwMDAwMDAwMDAwMDAxMDAwMDAxMDAwMDAwMDAwMDAwMDEwMDAwMDEwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDIwMDAwMDAwMDAyMDAwMDAwMDAwMjAwMDAwMDAwMDIwMDAwMDAwMDAyMDAwMDAwMDAwMjAwMDAwMDAwMDIwMA==",
|
|
86
|
+
"tileset": [
|
|
87
|
+
"myTiles.transparency16",
|
|
88
|
+
"myTiles.tile1"
|
|
89
|
+
],
|
|
90
|
+
"displayName": "level1"
|
|
91
|
+
},
|
|
92
|
+
"*": {
|
|
93
|
+
"mimeType": "image/x-mkcd-f4",
|
|
94
|
+
"dataEncoding": "base64",
|
|
95
|
+
"namespace": "myTiles"
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
```
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# tilemap
|
|
2
|
+
|
|
3
|
+
A tilemap object that defines a player level for the game scene.
|
|
4
|
+
|
|
5
|
+
```sig
|
|
6
|
+
tiles._tilemapEditor(null)
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
A **tilemap** is a data object that contains the dimensions, layers, and tiles for a tile mapping used to set the scene of a game.
|
|
10
|
+
|
|
11
|
+
## Creating and using tilemaps
|
|
12
|
+
|
|
13
|
+
Tilemaps aren't coded by the user but are created using a tilemap editor. When you add a tilemap to your project, it contains a default layout having all of it rows and columns filled with transparent tiles.
|
|
14
|
+
|
|
15
|
+
```block
|
|
16
|
+
tiles.setCurrentTilemap(tilemap`level2`)
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
You modify the tilemap using the Tilemap Editor. When coding with blocks, the Tilemap Editor will open when you click on the map image in the tilemap block. If you're editing code, the Tilemap Editor opens by clicking the map symbol in the line of code where you use the tilemap.
|
|
20
|
+
|
|
21
|
+
You design your game scene, or _level_, using the tiles your create or by chosing some from the tile library. You also can set the tilemap size and tile attributes. The example here shows a tilemap created for a maze game:
|
|
22
|
+
|
|
23
|
+
```block
|
|
24
|
+
tiles.setCurrentTilemap(tilemap`level1`)
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
After editing, a tilemap is saved as a project asset. The tilemap is defined as a level and assigned an identifier like `level1`. In code, you use the tilemap with its identifier like this:
|
|
28
|
+
|
|
29
|
+
```typescript-ignore
|
|
30
|
+
tiles.setCurrentTilemap(tilemap`level1`)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
You can use a tilemap directly in scene and tile operations, or as an assigned variable:
|
|
34
|
+
|
|
35
|
+
```block
|
|
36
|
+
let myTilemap = tilemap`level1`
|
|
37
|
+
tiles.setCurrentTilemap(myTilemap)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## The tilemap object
|
|
41
|
+
|
|
42
|
+
Tilemaps are complex data objects and are defined as levels which contain tiles at various row and column locations. When a tilemap is added to a project, the project assets will include both the tilemap and its tiles. A tilemap's asset data might look like the following:
|
|
43
|
+
|
|
44
|
+
```typescript-ignore
|
|
45
|
+
{
|
|
46
|
+
"transparency16": {
|
|
47
|
+
"data": "hwQQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
|
48
|
+
"mimeType": "image/x-mkcd-f4",
|
|
49
|
+
"tilemapTile": true
|
|
50
|
+
},
|
|
51
|
+
"tile1": {
|
|
52
|
+
"data": "hwQQABAAAABERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERA==",
|
|
53
|
+
"mimeType": "image/x-mkcd-f4",
|
|
54
|
+
"tilemapTile": true,
|
|
55
|
+
"displayName": "myTile"
|
|
56
|
+
},
|
|
57
|
+
"tile2": {
|
|
58
|
+
"data": "hwQQABAAAAB3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dw==",
|
|
59
|
+
"mimeType": "image/x-mkcd-f4",
|
|
60
|
+
"tilemapTile": true,
|
|
61
|
+
"displayName": "myTile0"
|
|
62
|
+
},
|
|
63
|
+
"tile3": {
|
|
64
|
+
"data": "hwQQABAAAACqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqg==",
|
|
65
|
+
"mimeType": "image/x-mkcd-f4",
|
|
66
|
+
"tilemapTile": true,
|
|
67
|
+
"displayName": "myTile1"
|
|
68
|
+
},
|
|
69
|
+
"level1": {
|
|
70
|
+
"id": "level1",
|
|
71
|
+
"mimeType": "application/mkcd-tilemap",
|
|
72
|
+
"data": "MTAwYTAwMDgwMDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMDAwMDAwMDAyMDAwMDAwMDEwMTAwMDMwMzAwMDIwMjAwMDAwMDAxMDAwMDAzMDAwMDAwMDAwMDAxMDEwMDAwMDAwMDAzMDAwMDAwMDEwMDAwMDIwMDAwMDMwMDAzMDAwMTAxMDAwMjAyMDAwMDAwMDMwMDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMA==",
|
|
73
|
+
"tileset": [
|
|
74
|
+
"myTiles.transparency16",
|
|
75
|
+
"myTiles.tile1",
|
|
76
|
+
"myTiles.tile2",
|
|
77
|
+
"myTiles.tile3"
|
|
78
|
+
],
|
|
79
|
+
"displayName": "level1"
|
|
80
|
+
},
|
|
81
|
+
"*": {
|
|
82
|
+
"mimeType": "image/x-mkcd-f4",
|
|
83
|
+
"dataEncoding": "base64",
|
|
84
|
+
"namespace": "myTiles"
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## See also
|
|
90
|
+
|
|
91
|
+
[set current tilemap](/reference/tiles/set-current-tilemap)
|
|
92
|
+
|
|
93
|
+
```jres
|
|
94
|
+
{
|
|
95
|
+
"transparency16": {
|
|
96
|
+
"data": "hwQQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
|
97
|
+
"mimeType": "image/x-mkcd-f4",
|
|
98
|
+
"tilemapTile": true
|
|
99
|
+
},
|
|
100
|
+
"tile1": {
|
|
101
|
+
"data": "hwQQABAAAABERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERA==",
|
|
102
|
+
"mimeType": "image/x-mkcd-f4",
|
|
103
|
+
"tilemapTile": true,
|
|
104
|
+
"displayName": "myTile"
|
|
105
|
+
},
|
|
106
|
+
"tile2": {
|
|
107
|
+
"data": "hwQQABAAAAB3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dw==",
|
|
108
|
+
"mimeType": "image/x-mkcd-f4",
|
|
109
|
+
"tilemapTile": true,
|
|
110
|
+
"displayName": "myTile0"
|
|
111
|
+
},
|
|
112
|
+
"tile3": {
|
|
113
|
+
"data": "hwQQABAAAACqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqg==",
|
|
114
|
+
"mimeType": "image/x-mkcd-f4",
|
|
115
|
+
"tilemapTile": true,
|
|
116
|
+
"displayName": "myTile1"
|
|
117
|
+
},
|
|
118
|
+
"level1": {
|
|
119
|
+
"id": "level1",
|
|
120
|
+
"mimeType": "application/mkcd-tilemap",
|
|
121
|
+
"data": "MTAwYTAwMDgwMDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMDAwMDAwMDAyMDAwMDAwMDEwMTAwMDMwMzAwMDIwMjAwMDAwMDAxMDAwMDAzMDAwMDAwMDAwMDAxMDEwMDAwMDAwMDAzMDAwMDAwMDEwMDAwMDIwMDAwMDMwMDAzMDAwMTAxMDAwMjAyMDAwMDAwMDMwMDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMA==",
|
|
122
|
+
"tileset": [
|
|
123
|
+
"myTiles.transparency16",
|
|
124
|
+
"myTiles.tile1",
|
|
125
|
+
"myTiles.tile2",
|
|
126
|
+
"myTiles.tile3"
|
|
127
|
+
],
|
|
128
|
+
"displayName": "level1"
|
|
129
|
+
},
|
|
130
|
+
"level2": {
|
|
131
|
+
"id": "level2",
|
|
132
|
+
"mimeType": "application/mkcd-tilemap",
|
|
133
|
+
"data": "MTAwYTAwMDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMA==",
|
|
134
|
+
"tileset": [
|
|
135
|
+
"myTiles.transparency16"
|
|
136
|
+
],
|
|
137
|
+
"displayName": "level4"
|
|
138
|
+
},
|
|
139
|
+
"*": {
|
|
140
|
+
"mimeType": "image/x-mkcd-f4",
|
|
141
|
+
"dataEncoding": "base64",
|
|
142
|
+
"namespace": "myTiles"
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
```
|
package/libs/game/sprite.ts
CHANGED
|
@@ -319,7 +319,7 @@ class Sprite extends sprites.BaseSprite {
|
|
|
319
319
|
*/
|
|
320
320
|
//% group="Image"
|
|
321
321
|
//% blockId=spriteimage block="%sprite(mySprite) image"
|
|
322
|
-
//% weight=8
|
|
322
|
+
//% weight=8 help=sprites/sprite/image
|
|
323
323
|
get image(): Image {
|
|
324
324
|
return this._image;
|
|
325
325
|
}
|
|
@@ -998,6 +998,7 @@ class Sprite extends sprites.BaseSprite {
|
|
|
998
998
|
//% group="Physics" weight=10
|
|
999
999
|
//% blockId=spriteFollowOtherSprite
|
|
1000
1000
|
//% block="set %sprite(myEnemy) follow %target=variables_get(mySprite) || with speed %speed"
|
|
1001
|
+
//% help=sprites/sprite/follow
|
|
1001
1002
|
follow(target: Sprite, speed = 100, turnRate = 400) {
|
|
1002
1003
|
if (target === this) return;
|
|
1003
1004
|
|
package/libs/game/spritekind.ts
CHANGED
|
@@ -5,6 +5,7 @@ namespace sprites {
|
|
|
5
5
|
//% shim=KIND_GET
|
|
6
6
|
//% blockId=spritekind block="$kind"
|
|
7
7
|
//% kindNamespace=SpriteKind kindMemberName=kind kindPromptHint="e.g. Coin, Fireball, Asteroid..."
|
|
8
|
+
//% help=sprites/sprite-kind
|
|
8
9
|
export function _spriteKind(kind: number): number {
|
|
9
10
|
return kind;
|
|
10
11
|
}
|
package/libs/game/tilemap.ts
CHANGED
|
@@ -596,7 +596,7 @@ namespace tiles {
|
|
|
596
596
|
//% tilemap.fieldOptions.filter="tile"
|
|
597
597
|
//% tilemap.fieldOptions.taggedTemplate="tilemap"
|
|
598
598
|
//% blockNamespace="scene" duplicateShadowOnDrag
|
|
599
|
-
//% help=
|
|
599
|
+
//% help=tiles/set-tilemap
|
|
600
600
|
//% deprecated=1
|
|
601
601
|
export function setTilemap(tilemap: TileMapData) {
|
|
602
602
|
setCurrentTilemap(tilemap);
|
|
@@ -611,7 +611,7 @@ namespace tiles {
|
|
|
611
611
|
//% weight=201 blockGap=8
|
|
612
612
|
//% tilemap.shadow=tiles_tilemap_editor
|
|
613
613
|
//% blockNamespace="scene" group="Tilemaps" duplicateShadowOnDrag
|
|
614
|
-
//% help=tiles/set-
|
|
614
|
+
//% help=tiles/set-current-tilemap
|
|
615
615
|
export function setCurrentTilemap(tilemap: TileMapData) {
|
|
616
616
|
scene.setTileMapLevel(tilemap);
|
|
617
617
|
}
|
|
@@ -625,7 +625,7 @@ namespace tiles {
|
|
|
625
625
|
//% tile.shadow=tileset_tile_picker
|
|
626
626
|
//% tile.decompileIndirectFixedInstances=true
|
|
627
627
|
//% blockNamespace="scene" group="Tilemap Operations" blockGap=8
|
|
628
|
-
//% help=
|
|
628
|
+
//% help=tiles/set-tile-at
|
|
629
629
|
//% weight=70
|
|
630
630
|
export function setTileAt(loc: Location, tile: Image): void {
|
|
631
631
|
const scene = game.currentScene();
|
|
@@ -643,7 +643,7 @@ namespace tiles {
|
|
|
643
643
|
//% blockId=mapsetwallat block="set wall $on at $loc"
|
|
644
644
|
//% on.shadow=toggleOnOff loc.shadow=mapgettile
|
|
645
645
|
//% blockNamespace="scene" group="Tilemap Operations"
|
|
646
|
-
//% help=
|
|
646
|
+
//% help=tiles/set-wall-at
|
|
647
647
|
//% weight=60
|
|
648
648
|
export function setWallAt(loc: Location, on: boolean): void {
|
|
649
649
|
const scene = game.currentScene();
|
|
@@ -660,7 +660,7 @@ namespace tiles {
|
|
|
660
660
|
//% blockId=mapgettile block="tilemap col $col row $row"
|
|
661
661
|
//% blockNamespace="scene" group="Locations"
|
|
662
662
|
//% weight=100 blockGap=8
|
|
663
|
-
//% help=
|
|
663
|
+
//% help=tiles/get-tile-location
|
|
664
664
|
export function getTileLocation(col: number, row: number): Location {
|
|
665
665
|
const scene = game.currentScene();
|
|
666
666
|
if (col == undefined || row == undefined || !scene.tileMap) return null;
|
|
@@ -697,7 +697,7 @@ namespace tiles {
|
|
|
697
697
|
//% location.shadow=mapgettile
|
|
698
698
|
//% tile.shadow=tileset_tile_picker tile.decompileIndirectFixedInstances=true
|
|
699
699
|
//% blockNamespace="scene" group="Locations" blockGap=8
|
|
700
|
-
//% weight=40 help=
|
|
700
|
+
//% weight=40 help=tiles/tile-at-location-equals
|
|
701
701
|
export function tileAtLocationEquals(location: Location, tile: Image): boolean {
|
|
702
702
|
const scene = game.currentScene();
|
|
703
703
|
if (!location || !tile || !scene.tileMap) return false;
|
|
@@ -713,7 +713,7 @@ namespace tiles {
|
|
|
713
713
|
//% block="tile at $location is wall"
|
|
714
714
|
//% location.shadow=mapgettile
|
|
715
715
|
//% blockNamespace="scene" group="Locations" blockGap=8
|
|
716
|
-
//% weight=30 help=
|
|
716
|
+
//% weight=30 help=tiles/tile-at-location-is-wall
|
|
717
717
|
export function tileAtLocationIsWall(location: Location): boolean {
|
|
718
718
|
if (!location || !location.tileMap) return false;
|
|
719
719
|
return location.isWall();
|
|
@@ -727,7 +727,7 @@ namespace tiles {
|
|
|
727
727
|
//% blockId=tiles_image_at_location
|
|
728
728
|
//% block="tile image at $location"
|
|
729
729
|
//% location.shadow=mapgettile
|
|
730
|
-
//% weight=0 help=
|
|
730
|
+
//% weight=0 help=tiles/tile-image-at-location
|
|
731
731
|
//% blockNamespace="scene" group="Locations"
|
|
732
732
|
export function tileImageAtLocation(location: Location): Image {
|
|
733
733
|
const scene = game.currentScene();
|
|
@@ -743,7 +743,7 @@ namespace tiles {
|
|
|
743
743
|
//% blockId=mapplaceontile block="place $sprite=variables_get(mySprite) on top of $loc"
|
|
744
744
|
//% loc.shadow=mapgettile
|
|
745
745
|
//% blockNamespace="scene" group="Tilemap Operations" blockGap=8
|
|
746
|
-
//% help=
|
|
746
|
+
//% help=tiles/place-on-tile
|
|
747
747
|
//% weight=100
|
|
748
748
|
export function placeOnTile(sprite: Sprite, loc: Location): void {
|
|
749
749
|
if (!sprite || !loc || !loc.tileMap) return;
|
|
@@ -759,7 +759,7 @@ namespace tiles {
|
|
|
759
759
|
//% tile.shadow=tileset_tile_picker
|
|
760
760
|
//% tile.decompileIndirectFixedInstances=true
|
|
761
761
|
//% blockNamespace="scene" group="Tilemap Operations"
|
|
762
|
-
//% help=
|
|
762
|
+
//% help=tiles/place-on-random-tile
|
|
763
763
|
//% weight=90
|
|
764
764
|
export function placeOnRandomTile(sprite: Sprite, tile: Image): void {
|
|
765
765
|
if (!sprite || !game.currentScene().tileMap) return;
|
|
@@ -776,7 +776,7 @@ namespace tiles {
|
|
|
776
776
|
//% tile.shadow=tileset_tile_picker
|
|
777
777
|
//% tile.decompileIndirectFixedInstances=true
|
|
778
778
|
//% blockNamespace="scene" group="Locations" blockGap=8
|
|
779
|
-
//% help=
|
|
779
|
+
//% help=tiles/get-tiles-by-type
|
|
780
780
|
//% weight=10
|
|
781
781
|
export function getTilesByType(tile: Image): Location[] {
|
|
782
782
|
const scene = game.currentScene();
|
|
@@ -809,6 +809,7 @@ namespace tiles {
|
|
|
809
809
|
//% tilemap.fieldOptions.filter="tile"
|
|
810
810
|
//% tilemap.fieldOptions.taggedTemplate="tilemap"
|
|
811
811
|
//% blockNamespace="scene" group="Tilemaps" duplicateShadowOnDrag
|
|
812
|
+
//% help=tiles/tilemap
|
|
812
813
|
export function _tilemapEditor(tilemap: TileMapData): TileMapData {
|
|
813
814
|
return tilemap;
|
|
814
815
|
}
|
|
@@ -56,7 +56,7 @@ const pxsim_pxtrt = pxsim.pxtrt;
|
|
|
56
56
|
const pxsim_numops = pxsim.numops;
|
|
57
57
|
|
|
58
58
|
|
|
59
|
-
function
|
|
59
|
+
function _main___P188726(s) {
|
|
60
60
|
let r0 = s.r0, step = s.pc;
|
|
61
61
|
s.pc = -1;
|
|
62
62
|
|
|
@@ -66,19 +66,19 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re
|
|
|
66
66
|
switch (step) {
|
|
67
67
|
case 0:
|
|
68
68
|
|
|
69
|
-
globals.
|
|
70
|
-
globals.
|
|
69
|
+
globals._intervals___188969 = (undefined);
|
|
70
|
+
globals._pollEventQueue___188982 = (undefined);
|
|
71
71
|
r0 = undefined;
|
|
72
72
|
return leave(s, r0)
|
|
73
73
|
default: oops()
|
|
74
74
|
} } }
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
_main___P188726.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"keypad.ts","functionName":"<main>","argumentNames":[]}
|
|
76
|
+
_main___P188726.continuations = [ ]
|
|
77
77
|
|
|
78
|
-
function
|
|
78
|
+
function _main___P188726_mk(s) {
|
|
79
79
|
checkStack(s.depth);
|
|
80
80
|
return {
|
|
81
|
-
parent: s, fn:
|
|
81
|
+
parent: s, fn: _main___P188726, depth: s.depth + 1,
|
|
82
82
|
pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null,
|
|
83
83
|
} }
|
|
84
84
|
|
|
@@ -88,5 +88,5 @@ function _main___P188722_mk(s) {
|
|
|
88
88
|
|
|
89
89
|
const breakpoints = setupDebugger(1, [])
|
|
90
90
|
|
|
91
|
-
return
|
|
91
|
+
return _main___P188726
|
|
92
92
|
})
|