|
@@ -14,6 +14,8 @@ import { FloatLineComponent } from '../../../lines/floatLineComponent';
|
|
|
import { SliderLineComponent } from '../../../lines/sliderLineComponent';
|
|
|
import { RenderingManager } from 'babylonjs/Rendering/renderingManager';
|
|
|
import { TextureLinkLineComponent } from '../../../lines/textureLinkLineComponent';
|
|
|
+import { ButtonLineComponent } from '../../../lines/buttonLineComponent';
|
|
|
+import { Sprite } from 'babylonjs/Sprites/sprite';
|
|
|
|
|
|
interface ISpriteManagerPropertyGridComponentProps {
|
|
|
globalState: GlobalState;
|
|
@@ -28,6 +30,30 @@ export class SpriteManagerPropertyGridComponent extends React.Component<ISpriteM
|
|
|
super(props);
|
|
|
}
|
|
|
|
|
|
+ addNewSprite() {
|
|
|
+ const spriteManager = this.props.spriteManager;
|
|
|
+ var newSprite = new Sprite("new sprite", spriteManager);
|
|
|
+
|
|
|
+ this.props.onSelectionChangedObservable?.notifyObservers(newSprite);
|
|
|
+
|
|
|
+ this.props.globalState.onCodeChangedObservable.notifyObservers({
|
|
|
+ object: spriteManager,
|
|
|
+ code: `new BABYLON.Sprite("new sprite", TARGET);`
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ disposeManager() {
|
|
|
+ const spriteManager = this.props.spriteManager;
|
|
|
+ spriteManager.dispose();
|
|
|
+
|
|
|
+ this.props.globalState.onCodeChangedObservable.notifyObservers({
|
|
|
+ object: spriteManager,
|
|
|
+ code: `TARGET.dispose();`
|
|
|
+ });
|
|
|
+
|
|
|
+ this.props.onSelectionChangedObservable?.notifyObservers(null);
|
|
|
+ }
|
|
|
+
|
|
|
render() {
|
|
|
const spriteManager = this.props.spriteManager;
|
|
|
|
|
@@ -36,8 +62,13 @@ export class SpriteManagerPropertyGridComponent extends React.Component<ISpriteM
|
|
|
<LineContainerComponent globalState={this.props.globalState} title="GENERAL">
|
|
|
<TextInputLineComponent lockObject={this.props.lockObject} label="Name" target={spriteManager} propertyName="name" onPropertyChangedObservable={this.props.onPropertyChangedObservable}/>
|
|
|
<TextLineComponent label="Unique ID" value={spriteManager.uniqueId.toString()} />
|
|
|
- <FloatLineComponent label="Capacity" isInteger={true} target={spriteManager} propertyName="capacity" />
|
|
|
+ <TextLineComponent label="Capacity" value={spriteManager.capacity.toString()} />
|
|
|
<TextureLinkLineComponent label="Texture" texture={spriteManager.texture} onSelectionChangedObservable={this.props.onSelectionChangedObservable}/>
|
|
|
+ {
|
|
|
+ spriteManager.sprites.length < spriteManager.capacity &&
|
|
|
+ <ButtonLineComponent label="Add new sprite" onClick={() => this.addNewSprite()} />
|
|
|
+ }
|
|
|
+ <ButtonLineComponent label="Dispose" onClick={() => this.disposeManager()} />
|
|
|
</LineContainerComponent>
|
|
|
<LineContainerComponent globalState={this.props.globalState} title="PROPERTIES">
|
|
|
<CheckBoxLineComponent label="Pickable" target={spriteManager} propertyName="isPickable" onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
|