public override void Init(StringBuilder hudLabelText, MySmallShip parentObject, Vector3 position, Vector3 forwardVector, Vector3 upVector, MyMwcObjectBuilder_SmallShip_Weapon objectBuilder) { m_model = MyModelsEnum.Drill_Base; m_movingCueEnum = MySoundCuesEnum.VehToolCrusherDrillLoop3d; m_movingCueReleaseEnum = MySoundCuesEnum.VehToolCrusherDrillRelease3d; m_drillCueEnum = MySoundCuesEnum.VehToolCrusherDrillColliding3d; m_drillOtherCueEnum = MySoundCuesEnum.VehToolCrusherDrillCollidingOther3d; m_drillOtherCueReleaseEnum = MySoundCuesEnum.VehToolCrusherDrillCollidingOtherRelease3d; m_drillCueReleaseEnum = MySoundCuesEnum.VehToolCrusherDrillCollidingRelease3d; m_idleCueEnum = MySoundCuesEnum.VehToolCrusherDrillIdle3d; base.Init(hudLabelText, parentObject, position, forwardVector, upVector, objectBuilder); m_minDrillingDuration = MyCrusherDrillDeviceConstants.MIN_DRILLING_DURATION; m_range = MyCrusherDrillDeviceConstants.RANGE; m_radius = MyCrusherDrillDeviceConstants.RADIUS; m_damage = MyCrusherDrillDeviceConstants.DAMAGE_PER_SECOND; m_maxRotatingSpeedDrilling = MyCrusherDrillDeviceConstants.MAX_ROTATING_SPEED_DRILLING; m_maxRotatingSpeedIdle = MyCrusherDrillDeviceConstants.MAX_ROTATING_SPEED_IDLE; //Create Drill Bits m_drillBits = new MyDrillBit[DRILL_BIT_COUNT]; for (int i = 0; i < DRILL_BIT_COUNT; i++) { m_drillBits[i] = new MyDrillBit(); } //Init Drill Bits Vector3 gear1Offset = new Vector3(0, 0, 0.05f); Vector3 gear2Offset = new Vector3(0, 0, 0.15f); Vector3 gear3Offset = new Vector3(0, 0, 0.30f); const float FIRST_ROTATE_SPEED = 0.2f * MathHelper.TwoPi * MyConstants.PHYSICS_STEP_SIZE_IN_SECONDS; const float SECOND_ROTATE_SPEED = 0.5f * -FIRST_ROTATE_SPEED; const float THIRD_ROTATE_SPEED = 1.25f * FIRST_ROTATE_SPEED; Matrix bit01 = MyMath.NormalizeMatrix(ModelLod0.Dummies["BIT01"].Matrix); Matrix bit02 = MyMath.NormalizeMatrix(ModelLod0.Dummies["BIT02"].Matrix); Matrix bit03 = MyMath.NormalizeMatrix(ModelLod0.Dummies["BIT03"].Matrix); m_drillBits[0].Init(null, bit01, gear1Offset, FIRST_ROTATE_SPEED, this, MyModelsEnum.Drill_Gear1); m_drillBits[1].Init(null, bit01, gear2Offset, SECOND_ROTATE_SPEED, this, MyModelsEnum.Drill_Gear2); m_drillBits[2].Init(null, bit01, gear3Offset, THIRD_ROTATE_SPEED, this, MyModelsEnum.Drill_Gear3); m_drillBits[3].Init(null, bit02, gear1Offset, FIRST_ROTATE_SPEED, this, MyModelsEnum.Drill_Gear1); m_drillBits[4].Init(null, bit02, gear2Offset, SECOND_ROTATE_SPEED, this, MyModelsEnum.Drill_Gear2); m_drillBits[5].Init(null, bit02, gear3Offset, THIRD_ROTATE_SPEED, this, MyModelsEnum.Drill_Gear3); m_drillBits[6].Init(null, bit03, gear1Offset, FIRST_ROTATE_SPEED, this, MyModelsEnum.Drill_Gear1); m_drillBits[7].Init(null, bit03, gear2Offset, SECOND_ROTATE_SPEED, this, MyModelsEnum.Drill_Gear2); m_drillBits[8].Init(null, bit03, gear3Offset, THIRD_ROTATE_SPEED, this, MyModelsEnum.Drill_Gear3); }
public override void Init(StringBuilder hudLabelText, MySmallShip parentObject, Vector3 position, Vector3 forwardVector, Vector3 upVector, MyMwcObjectBuilder_SmallShip_Weapon objectBuilder) { m_model = MyModelsEnum.Drill_Base; m_movingCueEnum = MySoundCuesEnum.VehToolCrusherDrillLoop3d; m_movingCueReleaseEnum = MySoundCuesEnum.VehToolCrusherDrillRelease3d; m_drillCueEnum = MySoundCuesEnum.VehToolCrusherDrillColliding3d; m_drillOtherCueEnum = MySoundCuesEnum.VehToolCrusherDrillCollidingOther3d; m_drillOtherCueReleaseEnum = MySoundCuesEnum.VehToolCrusherDrillCollidingOtherRelease3d; m_drillCueReleaseEnum = MySoundCuesEnum.VehToolCrusherDrillCollidingRelease3d; m_idleCueEnum = MySoundCuesEnum.VehToolCrusherDrillIdle3d; base.Init(hudLabelText, parentObject, position, forwardVector, upVector, objectBuilder); m_minDrillingDuration = MyCrusherDrillDeviceConstants.MIN_DRILLING_DURATION; m_range = MyCrusherDrillDeviceConstants.RANGE; m_radius = MyCrusherDrillDeviceConstants.RADIUS; m_damage = MyCrusherDrillDeviceConstants.DAMAGE_PER_SECOND; m_maxRotatingSpeedDrilling = MyCrusherDrillDeviceConstants.MAX_ROTATING_SPEED_DRILLING; m_maxRotatingSpeedIdle = MyCrusherDrillDeviceConstants.MAX_ROTATING_SPEED_IDLE; //Create Drill Bits m_drillBits = new MyDrillBit[DRILL_BIT_COUNT]; for (int i = 0; i < DRILL_BIT_COUNT; i++) { m_drillBits[i] = new MyDrillBit(); } //Init Drill Bits Vector3 gear1Offset = new Vector3(0, 0, 0.05f); Vector3 gear2Offset = new Vector3(0, 0, 0.15f); Vector3 gear3Offset = new Vector3(0, 0, 0.30f); const float FIRST_ROTATE_SPEED = 0.2f * MathHelper.TwoPi * MyConstants.PHYSICS_STEP_SIZE_IN_SECONDS; const float SECOND_ROTATE_SPEED = 0.5f * -FIRST_ROTATE_SPEED; const float THIRD_ROTATE_SPEED = 1.25f * FIRST_ROTATE_SPEED; Matrix bit01 = MyMath.NormalizeMatrix(ModelLod0.Dummies["BIT01"].Matrix); Matrix bit02 = MyMath.NormalizeMatrix(ModelLod0.Dummies["BIT02"].Matrix); Matrix bit03 = MyMath.NormalizeMatrix(ModelLod0.Dummies["BIT03"].Matrix); m_drillBits[0].Init(null, bit01, gear1Offset, FIRST_ROTATE_SPEED, this, MyModelsEnum.Drill_Gear1); m_drillBits[1].Init(null, bit01, gear2Offset, SECOND_ROTATE_SPEED, this, MyModelsEnum.Drill_Gear2); m_drillBits[2].Init(null, bit01, gear3Offset, THIRD_ROTATE_SPEED, this, MyModelsEnum.Drill_Gear3); m_drillBits[3].Init(null, bit02, gear1Offset, FIRST_ROTATE_SPEED, this, MyModelsEnum.Drill_Gear1); m_drillBits[4].Init(null, bit02, gear2Offset, SECOND_ROTATE_SPEED, this, MyModelsEnum.Drill_Gear2); m_drillBits[5].Init(null, bit02, gear3Offset, THIRD_ROTATE_SPEED, this, MyModelsEnum.Drill_Gear3); m_drillBits[6].Init(null, bit03, gear1Offset, FIRST_ROTATE_SPEED, this, MyModelsEnum.Drill_Gear1); m_drillBits[7].Init(null, bit03, gear2Offset, SECOND_ROTATE_SPEED, this, MyModelsEnum.Drill_Gear2); m_drillBits[8].Init(null, bit03, gear3Offset, THIRD_ROTATE_SPEED, this, MyModelsEnum.Drill_Gear3); }