blockbench-types 3.8.0 → 4.2.0
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/package.json +4 -4
- package/types/animation.d.ts +63 -1
- package/types/canvas.d.ts +49 -4
- package/types/format.d.ts +5 -0
- package/types/index.d.ts +26 -19
- package/types/interface.d.ts +102 -13
- package/types/menu.d.ts +19 -1
- package/types/outliner.d.ts +1 -1
- package/types/panel.d.ts +54 -0
- package/types/plugin.d.ts +30 -5
- package/types/project.d.ts +118 -0
- package/types/undo.d.ts +60 -0
- package/types/util.d.ts +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "blockbench-types",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.2.0",
|
|
4
4
|
"description": "Blockbench typescript types",
|
|
5
5
|
"main": "",
|
|
6
6
|
"types": "types/index.d.ts",
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"homepage": "https://github.com/JannisX11/blockbench-types#readme",
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@types/jquery": "^3.5.4",
|
|
22
|
-
"three": "^0.
|
|
23
|
-
"vue": "^2.6.
|
|
24
|
-
"wintersky": "^
|
|
22
|
+
"three": "^0.129.0",
|
|
23
|
+
"vue": "^2.6.14",
|
|
24
|
+
"wintersky": "^1.1.0"
|
|
25
25
|
}
|
|
26
26
|
}
|
package/types/animation.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ interface AnimationOptions {
|
|
|
8
8
|
snapping?: number
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
class Animation {
|
|
11
|
+
declare class Animation {
|
|
12
12
|
constructor(data: AnimationOptions);
|
|
13
13
|
extend(data: AnimationOptions): this;
|
|
14
14
|
getUndoCopy(options: any, save: any): {
|
|
@@ -62,3 +62,65 @@ namespace Animator {
|
|
|
62
62
|
|
|
63
63
|
|
|
64
64
|
}
|
|
65
|
+
|
|
66
|
+
interface AddChannelOptions {
|
|
67
|
+
name?: string
|
|
68
|
+
transform?: boolean
|
|
69
|
+
mutable?: boolean
|
|
70
|
+
max_data_points?: number
|
|
71
|
+
}
|
|
72
|
+
declare class GeneralAnimator {
|
|
73
|
+
constructor(uuid: string, animation: Animation)
|
|
74
|
+
keyframes: Keyframe[]
|
|
75
|
+
select(): this
|
|
76
|
+
addToTimeline(): this
|
|
77
|
+
addKeyframe(data: KeyframeOptions, uuid: string): Keyframe
|
|
78
|
+
createKeyframe(): Keyframe
|
|
79
|
+
getOrMakeKeyframe(): {before: Keyframe, result: Keyframe}
|
|
80
|
+
toggleMuted(channel: string): this
|
|
81
|
+
scrollTo(): this
|
|
82
|
+
|
|
83
|
+
static addChannel(channel: string, options: AddChannelOptions)
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
declare class BoneAnimator extends GeneralAnimator {
|
|
87
|
+
name: string
|
|
88
|
+
uuid: string
|
|
89
|
+
rotations: Keyframe[]
|
|
90
|
+
position: Keyframe[]
|
|
91
|
+
scale: Keyframe[]
|
|
92
|
+
getGroup(): Group
|
|
93
|
+
select
|
|
94
|
+
fillValues
|
|
95
|
+
pushKeyframe
|
|
96
|
+
doRender
|
|
97
|
+
displayRotation
|
|
98
|
+
displayPosition
|
|
99
|
+
displayScale
|
|
100
|
+
interpolate
|
|
101
|
+
displayFrame
|
|
102
|
+
}
|
|
103
|
+
declare class NullObjectAnimator extends GeneralAnimator {
|
|
104
|
+
name: string
|
|
105
|
+
uuid: string
|
|
106
|
+
rotations: Keyframe[]
|
|
107
|
+
position: Keyframe[]
|
|
108
|
+
scale: Keyframe[]
|
|
109
|
+
getElement(): NullObject
|
|
110
|
+
select
|
|
111
|
+
doRender
|
|
112
|
+
displayPosition
|
|
113
|
+
displayIK
|
|
114
|
+
displayFrame
|
|
115
|
+
}
|
|
116
|
+
declare class EffectAnimator extends GeneralAnimator {
|
|
117
|
+
name: string
|
|
118
|
+
uuid: string
|
|
119
|
+
rotations: Keyframe[]
|
|
120
|
+
position: Keyframe[]
|
|
121
|
+
scale: Keyframe[]
|
|
122
|
+
pushKeyframe(keyframe): this
|
|
123
|
+
displayFrame(in_loop): this
|
|
124
|
+
startPreviousSounds
|
|
125
|
+
}
|
|
126
|
+
|
package/types/canvas.d.ts
CHANGED
|
@@ -1,12 +1,52 @@
|
|
|
1
|
+
interface UpdateViewOptions {
|
|
2
|
+
/**
|
|
3
|
+
* List of elements to update
|
|
4
|
+
*/
|
|
5
|
+
elements?: OutlinerElement[]
|
|
6
|
+
/**
|
|
7
|
+
* Which aspects of the elements to update
|
|
8
|
+
*/
|
|
9
|
+
element_aspects?: {
|
|
10
|
+
/**
|
|
11
|
+
* Update visibility of elements
|
|
12
|
+
*/
|
|
13
|
+
visibility?: boolean
|
|
14
|
+
/**
|
|
15
|
+
* Update the position and geometry
|
|
16
|
+
*/
|
|
17
|
+
geometry?: boolean
|
|
18
|
+
/**
|
|
19
|
+
* Update the mesh faces
|
|
20
|
+
*/
|
|
21
|
+
faces?: boolean
|
|
22
|
+
/**
|
|
23
|
+
* Update the UV mapping
|
|
24
|
+
*/
|
|
25
|
+
uv?: boolean
|
|
26
|
+
/**
|
|
27
|
+
* Update the painting grid
|
|
28
|
+
*/
|
|
29
|
+
painting_grid?: boolean
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Groups to update
|
|
33
|
+
*/
|
|
34
|
+
groups?: Group[]
|
|
35
|
+
/**
|
|
36
|
+
* Whether to update the selection (updates the selection outlines and interface)
|
|
37
|
+
*/
|
|
38
|
+
selection?: boolean
|
|
39
|
+
}
|
|
40
|
+
|
|
1
41
|
declare const Canvas: {
|
|
2
42
|
materials: {
|
|
3
|
-
[uuid:
|
|
43
|
+
[uuid: UUID]: THREE.Material
|
|
4
44
|
};
|
|
5
45
|
meshes: {
|
|
6
|
-
[uuid:
|
|
46
|
+
[uuid: UUID]: THREE.Mesh
|
|
7
47
|
};
|
|
8
48
|
bones: {
|
|
9
|
-
[uuid:
|
|
49
|
+
[uuid: UUID]: THREE.Object3D
|
|
10
50
|
};
|
|
11
51
|
/**
|
|
12
52
|
* The material used for all selection outlines
|
|
@@ -34,6 +74,11 @@ declare const Canvas: {
|
|
|
34
74
|
* Clear all elements from the scene
|
|
35
75
|
*/
|
|
36
76
|
clear(): void;
|
|
77
|
+
/**
|
|
78
|
+
* Updates selected aspects of the preview
|
|
79
|
+
* @param options
|
|
80
|
+
*/
|
|
81
|
+
updateView(options: UpdateViewOptions): void;
|
|
37
82
|
/**
|
|
38
83
|
* Regenerate all elements in the scene. Very unoptimized, use with care
|
|
39
84
|
*/
|
|
@@ -138,4 +183,4 @@ declare const TickUpdates: {
|
|
|
138
183
|
keyframes: undefined | true
|
|
139
184
|
keyframe_selection: undefined | true
|
|
140
185
|
keybind_conflicts: undefined | true
|
|
141
|
-
}
|
|
186
|
+
}
|
package/types/format.d.ts
CHANGED
|
@@ -13,12 +13,17 @@ interface FormatOptions {
|
|
|
13
13
|
centered_grid?: boolean
|
|
14
14
|
rotate_cubes?: boolean
|
|
15
15
|
integer_size?: boolean
|
|
16
|
+
meshes?: boolean
|
|
17
|
+
texture_meshes?: boolean
|
|
16
18
|
locators?: boolean
|
|
17
19
|
canvas_limit?: boolean
|
|
18
20
|
rotation_limit?: boolean
|
|
19
21
|
uv_rotation?: boolean
|
|
20
22
|
display_mode?: boolean
|
|
21
23
|
animation_mode?: boolean
|
|
24
|
+
animation_files?: boolean
|
|
25
|
+
pose_mode?: boolean
|
|
26
|
+
texture_folder?: boolean
|
|
22
27
|
|
|
23
28
|
codec?: Codec
|
|
24
29
|
onActivation?(): void
|
package/types/index.d.ts
CHANGED
|
@@ -7,22 +7,29 @@
|
|
|
7
7
|
/// <reference types="./animation" />
|
|
8
8
|
/// <reference types="./canvas" />
|
|
9
9
|
/// <reference types="./codec" />
|
|
10
|
+
/// <reference types="./file_system" />
|
|
10
11
|
/// <reference types="./format" />
|
|
12
|
+
/// <reference types="./global" />
|
|
11
13
|
/// <reference types="./interface" />
|
|
14
|
+
/// <reference types="./panel" />
|
|
12
15
|
/// <reference types="./keyframe" />
|
|
13
16
|
/// <reference types="./legacy" />
|
|
14
17
|
/// <reference types="./menu" />
|
|
15
18
|
/// <reference types="./outliner" />
|
|
19
|
+
/// <reference types="./plugin" />
|
|
16
20
|
/// <reference types="./preview" />
|
|
21
|
+
/// <reference types="./project" />
|
|
17
22
|
/// <reference types="./settings" />
|
|
18
23
|
/// <reference types="./textures" />
|
|
19
24
|
/// <reference types="./timeline" />
|
|
25
|
+
/// <reference types="./undo" />
|
|
20
26
|
/// <reference types="./util" />
|
|
21
27
|
|
|
22
28
|
|
|
23
29
|
declare class Deletable {
|
|
24
30
|
delete: () => void
|
|
25
31
|
}
|
|
32
|
+
type UUID = string
|
|
26
33
|
|
|
27
34
|
/**
|
|
28
35
|
* True if Blockbench runs as a native app
|
|
@@ -199,25 +206,6 @@ declare class Plugin {
|
|
|
199
206
|
|
|
200
207
|
type Condition = any
|
|
201
208
|
|
|
202
|
-
interface PanelOptions {
|
|
203
|
-
id: string
|
|
204
|
-
icon: string
|
|
205
|
-
menu?: any
|
|
206
|
-
growable?: boolean
|
|
207
|
-
name: string
|
|
208
|
-
selection_only?: boolean
|
|
209
|
-
condition?: Condition
|
|
210
|
-
onResize: () => void
|
|
211
|
-
toolbars: object
|
|
212
|
-
component: Vue.Component
|
|
213
|
-
default_side: any
|
|
214
|
-
insert_before: any
|
|
215
|
-
insert_after: any
|
|
216
|
-
}
|
|
217
|
-
declare class Panel {
|
|
218
|
-
constructor (options: PanelOptions)
|
|
219
|
-
}
|
|
220
|
-
|
|
221
209
|
|
|
222
210
|
interface PropertyOptions {
|
|
223
211
|
default?: any
|
|
@@ -268,3 +256,22 @@ declare function updateSelection(): void
|
|
|
268
256
|
* @param arguments Array of arguments that replace anchors (%0, etc.) in the translation. Items can be strings or anything that can be converted to strings
|
|
269
257
|
*/
|
|
270
258
|
declare function tl(key: string, arguments?: any[]): string
|
|
259
|
+
|
|
260
|
+
declare namespace Language {
|
|
261
|
+
/**
|
|
262
|
+
* Translation data for the current language
|
|
263
|
+
*/
|
|
264
|
+
const data: {
|
|
265
|
+
[key: string]: string
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Two letter code indicating the currently selected language
|
|
269
|
+
*/
|
|
270
|
+
const code: string
|
|
271
|
+
/**
|
|
272
|
+
* Add translations for custom translation strings
|
|
273
|
+
* @param language Two letter language code, e. G. 'en'
|
|
274
|
+
* @param strings Object listing the translation keys and values
|
|
275
|
+
*/
|
|
276
|
+
function addTranslations(language: string, strings: {[key: string]: string})
|
|
277
|
+
}
|
package/types/interface.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
interface DialogFormElement {
|
|
2
2
|
label: string
|
|
3
3
|
description?: string
|
|
4
|
-
type: 'text' | 'number' | 'checkbox' | 'select' | 'radio' | 'textarea' | 'vector' | 'color' | 'file' | 'folder' | 'save' | 'info'
|
|
4
|
+
type: 'text' | 'number' | 'checkbox' | 'select' | 'radio' | 'textarea' | 'vector' | 'color' | 'file' | 'folder' | 'save' | 'info'
|
|
5
5
|
nocolon?: boolean
|
|
6
6
|
readonly?: boolean
|
|
7
7
|
value?: any
|
|
@@ -14,29 +14,47 @@ interface DialogFormElement {
|
|
|
14
14
|
height?: number
|
|
15
15
|
options?: object
|
|
16
16
|
}
|
|
17
|
+
|
|
18
|
+
type FormResultValue = string|number|boolean|[]
|
|
19
|
+
|
|
20
|
+
interface ActionInterface {
|
|
21
|
+
name: string
|
|
22
|
+
description?: string
|
|
23
|
+
icon: string,
|
|
24
|
+
click: (event: Event) => void
|
|
25
|
+
condition: Condition
|
|
26
|
+
}
|
|
17
27
|
interface DialogOptions {
|
|
18
28
|
title: string
|
|
19
29
|
id: string
|
|
20
30
|
/**
|
|
21
|
-
*
|
|
22
|
-
*/
|
|
23
|
-
lines: string[]
|
|
24
|
-
/**
|
|
25
|
-
* If false, the confirm button of the dialog is disabled
|
|
31
|
+
* Default button to press to confirm the dialog. Defaults to the first button.
|
|
26
32
|
*/
|
|
27
|
-
|
|
33
|
+
confirmIndex?: number
|
|
28
34
|
/**
|
|
29
|
-
*
|
|
35
|
+
* Default button to press to cancel the dialog. Defaults to the last button.
|
|
30
36
|
*/
|
|
31
|
-
|
|
37
|
+
cancelIndex?: number
|
|
32
38
|
/**
|
|
33
39
|
* Function to execute when the user confirms the dialog
|
|
34
40
|
*/
|
|
35
41
|
onConfirm?: (formResult: object) => void
|
|
36
42
|
/**
|
|
37
|
-
*
|
|
43
|
+
* Function to execute when the user cancels the dialog
|
|
38
44
|
*/
|
|
39
45
|
onCancel?: () => void
|
|
46
|
+
/**
|
|
47
|
+
* Triggered when the user presses a specific button
|
|
48
|
+
*/
|
|
49
|
+
onButton?: (button_index: number, event?: Event) => void
|
|
50
|
+
/**
|
|
51
|
+
* Function to run when anything in the form is changed
|
|
52
|
+
*/
|
|
53
|
+
onFormChange?: (form_result: {[key: string]: FormResultValue}) => void
|
|
54
|
+
/**
|
|
55
|
+
* Array of HTML object strings for each line of content in the dialog.
|
|
56
|
+
*/
|
|
57
|
+
lines?: (string|HTMLElement)[]
|
|
40
58
|
/**
|
|
41
59
|
* Creates a form in the dialog
|
|
42
60
|
*/
|
|
@@ -46,20 +64,91 @@ interface DialogOptions {
|
|
|
46
64
|
/**
|
|
47
65
|
* Vue component
|
|
48
66
|
*/
|
|
49
|
-
component
|
|
67
|
+
component?: Vue.Component
|
|
68
|
+
/**
|
|
69
|
+
* Order that the different interface types appear in the dialog. Default is 'form', 'lines', 'component'.
|
|
70
|
+
*/
|
|
71
|
+
part_order?: string[]
|
|
72
|
+
form_first?: boolean
|
|
73
|
+
/**
|
|
74
|
+
* Creates a dialog sidebar
|
|
75
|
+
*/
|
|
76
|
+
sidebar?: DialogSidebarOptions
|
|
77
|
+
/**
|
|
78
|
+
* Menu in the handle bar
|
|
79
|
+
*/
|
|
80
|
+
title_menu?: Menu
|
|
81
|
+
/**
|
|
82
|
+
* If true, the dialog will only have one button to close it
|
|
83
|
+
*/
|
|
84
|
+
singleButton?: boolean
|
|
85
|
+
/**
|
|
86
|
+
* List of buttons
|
|
87
|
+
*/
|
|
88
|
+
buttons?: string[]
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
interface DialogSidebarOptions {
|
|
92
|
+
pages?: {
|
|
93
|
+
[key: string]: string | {label: string, icon: IconString, color?: string}
|
|
94
|
+
}
|
|
95
|
+
page?: string
|
|
96
|
+
actions?: (Action|ActionInterface|string)[],
|
|
97
|
+
onPageSwitch?: (page: string) => void
|
|
98
|
+
}
|
|
99
|
+
declare class DialogSidebar {
|
|
100
|
+
constructor(options: DialogSidebarOptions)
|
|
101
|
+
|
|
102
|
+
pages: {
|
|
103
|
+
[key: string]: string
|
|
104
|
+
}
|
|
105
|
+
page: string
|
|
106
|
+
actions: (Action|string)[]
|
|
107
|
+
onPageSwitch(page: string): void
|
|
108
|
+
build(): void
|
|
109
|
+
toggle(state?: boolean): void
|
|
110
|
+
setPage(page: string): void
|
|
50
111
|
}
|
|
51
112
|
|
|
52
113
|
declare class Dialog {
|
|
53
114
|
constructor (options: DialogOptions)
|
|
115
|
+
|
|
116
|
+
id: string
|
|
117
|
+
component: Vue.Component
|
|
118
|
+
sidebar: DialogSidebar | null
|
|
119
|
+
|
|
120
|
+
|
|
54
121
|
show: () => Dialog
|
|
55
122
|
hide: () => Dialog
|
|
56
123
|
/**
|
|
57
124
|
* Triggers the confirm event of the dialog.
|
|
58
125
|
*/
|
|
59
|
-
confirm: () => void
|
|
126
|
+
confirm: (event?: Event) => void
|
|
60
127
|
/**
|
|
61
128
|
* Triggers the cancel event of the dialog.
|
|
62
129
|
*/
|
|
63
|
-
cancel: () => void
|
|
130
|
+
cancel: (event?: Event) => void
|
|
131
|
+
/**
|
|
132
|
+
* Closes the dialog using the index of the pressed button
|
|
133
|
+
*/
|
|
134
|
+
close: (button: number, event?: Event) => void
|
|
135
|
+
/**
|
|
136
|
+
* If the dialog contains a form, return the current values of the form
|
|
137
|
+
*/
|
|
138
|
+
getFormResult(): {
|
|
139
|
+
[key: string]: FormResultValue
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Set the values of the dialog form inputs
|
|
143
|
+
*/
|
|
144
|
+
setFormValues(values: {[key: string]: FormResultValue}): void
|
|
145
|
+
/**
|
|
146
|
+
* Delete the dialog object, causing it to be re-build from scratch on next open
|
|
147
|
+
*/
|
|
148
|
+
delete(): void
|
|
64
149
|
|
|
150
|
+
/**
|
|
151
|
+
* Currently opened dialog
|
|
152
|
+
*/
|
|
153
|
+
static open: Dialog | null
|
|
65
154
|
}
|
package/types/menu.d.ts
CHANGED
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
interface CustomMenuItem {
|
|
2
2
|
name: string
|
|
3
|
+
id: string
|
|
4
|
+
icon: IconString
|
|
5
|
+
color?: string
|
|
6
|
+
description?: string
|
|
7
|
+
/**
|
|
8
|
+
* Keybind or string to display in the menu, won't work as an actual keybinding by default
|
|
9
|
+
*/
|
|
10
|
+
keybind?: Keybind | string
|
|
11
|
+
/**
|
|
12
|
+
* Adds a search bar to the menu or submenu
|
|
13
|
+
*/
|
|
14
|
+
searchable?: boolean
|
|
15
|
+
children?: MenuItem[] | (() => MenuItem[])
|
|
16
|
+
click?: (context?: any, event: Event)
|
|
3
17
|
}
|
|
4
|
-
type MenuItem = CustomMenuItem | Action | string;
|
|
18
|
+
type MenuItem = CustomMenuItem | Action | BarSelect | string;
|
|
5
19
|
|
|
6
20
|
/**
|
|
7
21
|
* Creates a new context menu
|
|
@@ -37,6 +51,10 @@ declare class Menu extends Deletable {
|
|
|
37
51
|
*/
|
|
38
52
|
declare class BarMenu extends Menu {
|
|
39
53
|
constructor(id: string, structure: MenuItem[], condition?: any)
|
|
54
|
+
/**
|
|
55
|
+
* Visually highlights an action within the menu, until the user opens the menu
|
|
56
|
+
*/
|
|
57
|
+
highlight(action: Action): void
|
|
40
58
|
}
|
|
41
59
|
|
|
42
60
|
declare namespace MenuBar {
|
package/types/outliner.d.ts
CHANGED
package/types/panel.d.ts
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
interface PanelOptions {
|
|
2
|
+
id: string
|
|
3
|
+
name: string
|
|
4
|
+
icon: string
|
|
5
|
+
menu?: any
|
|
6
|
+
growable?: boolean
|
|
7
|
+
selection_only?: boolean
|
|
8
|
+
condition?: Condition
|
|
9
|
+
display_condition?: Condition
|
|
10
|
+
expand_button: boolean
|
|
11
|
+
toolbars: {
|
|
12
|
+
[id: string]: Toolbar
|
|
13
|
+
}
|
|
14
|
+
default_position: {
|
|
15
|
+
slot: string
|
|
16
|
+
float_position: [number, number]
|
|
17
|
+
float_size: [number, number]
|
|
18
|
+
height: number
|
|
19
|
+
folded: boolean
|
|
20
|
+
}
|
|
21
|
+
component: Vue.Component
|
|
22
|
+
default_side: 'right' | 'left'
|
|
23
|
+
insert_before: string
|
|
24
|
+
insert_after: string
|
|
25
|
+
onResize: () => void
|
|
26
|
+
onFold: () => void
|
|
27
|
+
}
|
|
28
|
+
type PanelEvent = 'drag' | 'fold' | 'change_zindex' | 'move_to' | 'moved_to' | 'update'
|
|
29
|
+
|
|
30
|
+
declare class Panel {
|
|
31
|
+
constructor (id: string, options: PanelOptions)
|
|
32
|
+
constructor (options: PanelOptions)
|
|
33
|
+
isVisible(): boolean
|
|
34
|
+
isInSidebar(): boolean
|
|
35
|
+
slot: string
|
|
36
|
+
folded: boolean
|
|
37
|
+
fold(state?: boolean): this
|
|
38
|
+
/**
|
|
39
|
+
* If the panel is floating, move it up to the front
|
|
40
|
+
*/
|
|
41
|
+
moveToFront(): this
|
|
42
|
+
moveTo(slot: string, ref_panel?: Panel, before?: boolean): this
|
|
43
|
+
update(dragging?: boolean): this
|
|
44
|
+
dispatchEvent(event_name: PanelEvent, data?: any): void
|
|
45
|
+
/**
|
|
46
|
+
* Add an event listener
|
|
47
|
+
*/
|
|
48
|
+
on(event_name: PanelEvent, callback: (data?) => void): void
|
|
49
|
+
removeListener(event_name: PanelEvent, callback: (data?) => void): void
|
|
50
|
+
delete(): void
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
declare function updateInterfacePanels(): void
|
|
54
|
+
declare function setActivePanel(panel_id: string): void
|
package/types/plugin.d.ts
CHANGED
|
@@ -10,19 +10,43 @@ interface PluginOptions {
|
|
|
10
10
|
*/
|
|
11
11
|
about?: string
|
|
12
12
|
icon: string
|
|
13
|
+
/**
|
|
14
|
+
* Plugin tags that will show up in the plugin store. You can provide up to 3 tags.
|
|
15
|
+
*/
|
|
16
|
+
tags?: [string, string?, string?]
|
|
17
|
+
/**
|
|
18
|
+
* Where the plugin can be installed. Desktop refers to the electron app, web refers to the web app and PWA
|
|
19
|
+
*/
|
|
13
20
|
variant: 'both' | 'desktop' | 'web'
|
|
21
|
+
/**
|
|
22
|
+
* Minimum Blockbench version in which the plugin can be installed
|
|
23
|
+
*/
|
|
14
24
|
min_version?: string
|
|
25
|
+
/**
|
|
26
|
+
* Maximum Blockbench version in which the plugin can be installed
|
|
27
|
+
*/
|
|
15
28
|
max_version?: string
|
|
29
|
+
/**
|
|
30
|
+
* Set to true if the plugin must finish loading before a project is opened, i. e. because it adds a format
|
|
31
|
+
*/
|
|
32
|
+
await_loading?: string
|
|
33
|
+
/**
|
|
34
|
+
* Runs when the plugin loads
|
|
35
|
+
*/
|
|
16
36
|
onload?(): void
|
|
37
|
+
/**
|
|
38
|
+
* Runs when the plugin unloads
|
|
39
|
+
*/
|
|
17
40
|
onunload?(): void
|
|
41
|
+
/**
|
|
42
|
+
* Runs when the user manually installs the plugin
|
|
43
|
+
*/
|
|
18
44
|
oninstall?(): void
|
|
45
|
+
/**
|
|
46
|
+
* Runs when the user manually uninstalls the plugin
|
|
47
|
+
*/
|
|
19
48
|
onuninstall?(): void
|
|
20
49
|
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Blockbench Plugin
|
|
24
|
-
* @deprecated This won't work in 3.8.4 or earlier
|
|
25
|
-
*/
|
|
26
50
|
declare class BBPlugin {
|
|
27
51
|
constructor(id: string, options: PluginOptions)
|
|
28
52
|
|
|
@@ -44,6 +68,7 @@ declare class BBPlugin {
|
|
|
44
68
|
variant: 'both' | 'desktop' | 'web'
|
|
45
69
|
min_version: string
|
|
46
70
|
max_version: string
|
|
71
|
+
tags: string[]
|
|
47
72
|
onload(): void
|
|
48
73
|
onunload(): void
|
|
49
74
|
oninstall(): void
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
interface ModelProjectOptions {
|
|
2
|
+
format: ModelFormat
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
declare class ModelProject {
|
|
6
|
+
constructor(options: ModelProjectOptions)
|
|
7
|
+
|
|
8
|
+
box_uv: boolean
|
|
9
|
+
texture_width: number
|
|
10
|
+
texture_height: number
|
|
11
|
+
name: string
|
|
12
|
+
uuid: UUID
|
|
13
|
+
selected: boolean
|
|
14
|
+
/**
|
|
15
|
+
* When set to true, the project tab can no longer be selected or unselected
|
|
16
|
+
*/
|
|
17
|
+
locked: boolean
|
|
18
|
+
thumbnail: string
|
|
19
|
+
saved: boolean
|
|
20
|
+
/**
|
|
21
|
+
* The path under which a project file is saved, if available
|
|
22
|
+
*/
|
|
23
|
+
save_path: string
|
|
24
|
+
/**
|
|
25
|
+
* The path under which an exported file is saved, if available
|
|
26
|
+
*/
|
|
27
|
+
export_path: string
|
|
28
|
+
added_models: number
|
|
29
|
+
undo: UndoSystem
|
|
30
|
+
BedrockEntityManager?: {}
|
|
31
|
+
format: ModelFormat
|
|
32
|
+
mode: string
|
|
33
|
+
view_mode: string
|
|
34
|
+
display_uv: string
|
|
35
|
+
previews: {
|
|
36
|
+
[key: string]: {}
|
|
37
|
+
}
|
|
38
|
+
EditSession: EditSession
|
|
39
|
+
|
|
40
|
+
elements: OutlinerElement[]
|
|
41
|
+
groups: Group[]
|
|
42
|
+
selected_elements: OutlinerElement[]
|
|
43
|
+
selected_group: Group | null;
|
|
44
|
+
selected_vertices: {
|
|
45
|
+
[element_key: string]: string[]
|
|
46
|
+
};
|
|
47
|
+
selected_faces: []
|
|
48
|
+
textures: Texture[]
|
|
49
|
+
selected_texture: Texture | null;
|
|
50
|
+
outliner: OutlinerNode[]
|
|
51
|
+
animations: Animation[]
|
|
52
|
+
timeline_animators: []
|
|
53
|
+
display_settings: {
|
|
54
|
+
[slot: string]: {
|
|
55
|
+
translation: [number, number, number]
|
|
56
|
+
rotation: [number, number, number]
|
|
57
|
+
scale: [number, number, number]
|
|
58
|
+
mirror: [boolean, boolean, boolean]
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
get model_3d(): THREE.Object3D;
|
|
63
|
+
get materials(): {
|
|
64
|
+
[uuid: UUID]: THREE.ShaderMaterial
|
|
65
|
+
};
|
|
66
|
+
get nodes_3d(): {
|
|
67
|
+
[uuid: UUID]: THREE.Object3D
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
getDisplayName(): string;
|
|
71
|
+
openSettings(): void;
|
|
72
|
+
whenNextOpen(callback: () => void): void;
|
|
73
|
+
select(): boolean;
|
|
74
|
+
unselect(): void;
|
|
75
|
+
close(force: any): Promise<boolean>;
|
|
76
|
+
|
|
77
|
+
static all: ModelProject[]
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
declare const Project: ModelProject | null
|
|
81
|
+
|
|
82
|
+
declare function setupProject(format: ModelFormat | string): boolean;
|
|
83
|
+
declare function newProject(format: ModelFormat | string): boolean;
|
|
84
|
+
declare function setProjectResolution(width: number, height: number, modify_uv?: boolean): void;
|
|
85
|
+
declare function updateProjectResolution(): void;
|
|
86
|
+
|
|
87
|
+
declare class EditSession {
|
|
88
|
+
constructor()
|
|
89
|
+
|
|
90
|
+
active: boolean
|
|
91
|
+
hosting: boolean
|
|
92
|
+
clients: {}
|
|
93
|
+
client_count: number
|
|
94
|
+
data_queue: []
|
|
95
|
+
chat_history: []
|
|
96
|
+
Project: ModelProject | null
|
|
97
|
+
|
|
98
|
+
updateClientCound(): void
|
|
99
|
+
start(username?: string): void
|
|
100
|
+
join(username: string, token: string)
|
|
101
|
+
quit(): void
|
|
102
|
+
setState(active: boolean): void
|
|
103
|
+
copyToken(): void;
|
|
104
|
+
initNewModel(force?: boolean): void;
|
|
105
|
+
initConnection(conn: any): void;
|
|
106
|
+
sendAll(type: string, data: any): void;
|
|
107
|
+
sendEdit(entry: UndoEntry): void;
|
|
108
|
+
receiveData(tag: object): void;
|
|
109
|
+
processData(tag: object): void;
|
|
110
|
+
catchUp(): void;
|
|
111
|
+
/**
|
|
112
|
+
* Send a chat message
|
|
113
|
+
* @param text Text to send. If omitted, the current text in the chat panel input is sent
|
|
114
|
+
*/
|
|
115
|
+
sendChat(text?: string): void;
|
|
116
|
+
addChatMessage(message: any): any;
|
|
117
|
+
processChatMessage(data: any): void;
|
|
118
|
+
}
|
package/types/undo.d.ts
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
interface UndoAspects {
|
|
2
|
+
selection?: boolean
|
|
3
|
+
elements?: OutlinerElement[]
|
|
4
|
+
outliner?: boolean
|
|
5
|
+
group?: Group
|
|
6
|
+
textures?: Texture[]
|
|
7
|
+
texture_order?: boolean
|
|
8
|
+
selected_texture?: boolean
|
|
9
|
+
settings?: {}
|
|
10
|
+
uv_mode?: boolean
|
|
11
|
+
animations?: Animation[]
|
|
12
|
+
keyframes?: Keyframe[]
|
|
13
|
+
display_slots?: string[]
|
|
14
|
+
exploded_view?: boolean
|
|
15
|
+
}
|
|
16
|
+
type UndoSave = {
|
|
17
|
+
aspects: UndoAspects
|
|
18
|
+
selection?: []
|
|
19
|
+
selection_group?: UUID
|
|
20
|
+
elements?: {}
|
|
21
|
+
outliner?: []
|
|
22
|
+
group?: {}
|
|
23
|
+
textures?: {}
|
|
24
|
+
texture_order?: UUID[]
|
|
25
|
+
selected_texture?: UUID | null
|
|
26
|
+
settings?: {}
|
|
27
|
+
uv_mode?: {
|
|
28
|
+
box_uv: boolean
|
|
29
|
+
width: number
|
|
30
|
+
height: number
|
|
31
|
+
}
|
|
32
|
+
animations?: {}
|
|
33
|
+
keyframes?: {}
|
|
34
|
+
display_slots?: {}
|
|
35
|
+
exploded_views?: boolean
|
|
36
|
+
}
|
|
37
|
+
type UndoEntry = {
|
|
38
|
+
before: UndoSave
|
|
39
|
+
post: UndoSave
|
|
40
|
+
action: string
|
|
41
|
+
time: number
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
declare class UndoSystem {
|
|
45
|
+
constructor();
|
|
46
|
+
initEdit(aspects: UndoAspects): any;
|
|
47
|
+
finishEdit(action: string, aspects?: UndoAspects): {
|
|
48
|
+
before: any;
|
|
49
|
+
post: any;
|
|
50
|
+
action: any;
|
|
51
|
+
time: number;
|
|
52
|
+
};
|
|
53
|
+
cancelEdit(): void;
|
|
54
|
+
addKeyframeCasualties(keyframes: Keyframe[]): void;
|
|
55
|
+
undo(remote?: boolean): void;
|
|
56
|
+
redo(remote?: boolean): void;
|
|
57
|
+
remoteEdit(entry: UndoEntry): void;
|
|
58
|
+
loadSave(save: UndoSave, reference: UndoSave, mode?: string): void;
|
|
59
|
+
}
|
|
60
|
+
declare let Undo: UndoSystem;
|