@@ -171,6 +171,49 @@ Sidebar.Project = function ( editor ) {
171171
172172 createRenderer ( config . getKey ( 'project/renderer' ) , config . getKey ( 'project/renderer/antialias' ) , config . getKey ( 'project/renderer/shadows' ) ) ;
173173
174+ var materialbrowserpanel = new UI . Panel ( ) ;
175+
176+ var headerRow = new UI . Row ( ) ;
177+ headerRow . add ( new UI . Text ( strings . getKey ( 'sidebar/project/materialbrowser' ) ) ) ;
178+
179+ materialbrowserpanel . add ( headerRow ) ;
180+
181+ var listbox = new UI . Listbox ( ) ;
182+ signals . materialAdded . add ( function ( ) {
183+
184+ var materials = Object . values ( editor . materials ) ;
185+ listbox . setItems ( materials ) ;
186+
187+ } ) ;
188+ materialbrowserpanel . add ( listbox ) ;
189+
190+ var buttonsRow = new UI . Row ( ) ;
191+ buttonsRow . setPadding ( '10px 0px' ) ;
192+ materialbrowserpanel . add ( buttonsRow ) ;
193+
194+ var addButton = new UI . Button ( ) . setLabel ( 'Add' ) . setMarginRight ( '5px' ) ;
195+ addButton . onClick ( function ( ) {
196+
197+ editor . addMaterial ( new THREE . MeshStandardMaterial ( { color : 0xffffff } ) ) ;
198+
199+ } ) ;
200+ buttonsRow . add ( addButton ) ;
201+
202+ var assignMaterial = new UI . Button ( ) . setLabel ( 'Assign' ) . setMargin ( '0px 5px' ) ;
203+ assignMaterial . onClick ( function ( ) {
204+
205+ if ( typeof editor . selected !== 'undefined' ) {
206+ var material = editor . getMaterialById ( parseInt ( listbox . getValue ( ) ) ) ;
207+ if ( typeof material !== 'undefined' ) {
208+ editor . execute ( new SetMaterialCommand ( editor , editor . selected , material ) ) ;
209+ }
210+ }
211+
212+ } ) ;
213+ buttonsRow . add ( assignMaterial ) ;
214+
215+ container . add ( materialbrowserpanel ) ;
216+
174217 return container ;
175218
176219} ;
0 commit comments