const { ccclass, property } = cc._decorator;

@ccclass
export default class PhysicsManager extends cc.Component {
    @property({  tooltip: "是否启动物理引擎" })
    active: boolean = true;
    @property({  tooltip: "是否显示包围盒" })
    aabb: boolean = true;
    @property({  tooltip: "是否显示关节链接线" })
    joint: boolean = true;
    @property({  tooltip: "是否填充形状" })
    shape: boolean = true;
    @property({  tooltip: "是否开启鼠标关节,可以拖动动态刚体" })
    mouseJoint: boolean = false;
    @property({tooltip: "重力" })
    gravity: cc.Vec2 = cc.v2(0, -960);
    onEnable() {
        /**开启或关闭物理系统 */
        let physicsManager = cc.director.getPhysicsManager();
        physicsManager.enabled = this.active;
        if (!this.active) return;
        /**设置物理系统重力系统 */
        physicsManager.gravity = this.gravity;
        /**设置调试标志 */
        let drawBits = cc.PhysicsManager.DrawBits;
        if (CC_PREVIEW) {
            physicsManager.debugDrawFlags =
                (this.aabb && drawBits.e_aabbBit) |
                (this.shape && drawBits.e_shapeBit) |
                (this.joint && drawBits.e_jointBit);
        } else {
            physicsManager.debugDrawFlags = 0;
        }

    }
    onDisable() {
        let physicsManager = cc.director.getPhysicsManager();
        physicsManager.debugDrawFlags = 0;
        physicsManager.enabled = false;
    }
    // update (dt) {}
}