Пример #1
0
        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);
        }
Пример #2
0
        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);
        }