12345678910111213141516171819202122232425262728293031323334 |
- import * as RE from 'rogue-engine';
- import * as CANNON from 'cannon-es';
- import CannonBody from '../CannonBody.re';
- import * as RogueCannon from '../../Lib/RogueCannon';
- export default class SetCannonMaterial extends RE.Component {
- material: CANNON.Material;
- @RE.props.text() materialName: string;
- start() {
- this.setMaterial();
- }
- private getMaterial() {
- return RogueCannon.getWorld().materials.find(material => material.name === this.materialName)
- }
- private setMaterial() {
- const material = this.getMaterial();
- if (!material) return;
- this.material = material;
- const cannonBody = RE.getComponent(CannonBody, this.object3d);
- if (cannonBody) {
- cannonBody.body.shapes.forEach(shape => (shape.material = this.material));
- }
- }
- }
- RE.registerComponent(SetCannonMaterial);
|