Example #1
0
        public Ship(long _uniqueId, Vector3 _position, Quaternion _rotation, Team _team)
            : base(_uniqueId, _position, _rotation, "Models/box")
        {
            Damage = 1.0f; // Instant destroy
            team = _team;

            int hudScale = 2;
            hudUnit = new HUDUnit(this, 10*hudScale,4*hudScale,1*hudScale);

            if (!groupsSet)
            {
                CollisionGroupPair pairEE = new CollisionGroupPair(esxolusMeshShipGroup, esxolusMeshShipGroup);
                CollisionRules.CollisionGroupRules.Add(pairEE, CollisionRule.NoBroadPhase);

                CollisionGroupPair pairHH = new CollisionGroupPair(halkMeshShipGroup, halkMeshShipGroup);
                CollisionRules.CollisionGroupRules.Add(pairHH, CollisionRule.NoBroadPhase);

                CollisionGroupPair pairEH = new CollisionGroupPair(esxolusMeshShipGroup, halkMeshShipGroup);
                CollisionRules.CollisionGroupRules.Add(pairEH, CollisionRule.NoBroadPhase);
                groupsSet = true;
            }
        }
        public SpawnShipPiece(long _uniqueId, Vector3 _position, Quaternion _rotation, Team _team, 
            Model _part, Model _destroyed, Model _collisionMesh, float _health, List<Turret> _turrets, SpawnShip _parent)
            : base(_uniqueId, _position, _rotation, _team)
        {
            MAX_HEALTH = _health;
            Health = MaxHealth;
            destroyedModel = _destroyed;
            collisionMesh = _collisionMesh;
            // collisionMesh = ContentLoadManager.loadModel("Models/box");
            part = _part;
            Model = part;
            parent = _parent;
            turrets = _turrets;
            CollisionBase = new CollisionMesh(collisionMesh, Position, Rotation);
            CollisionBase.Active = true;
            CollisionBase.addCollisionEvent(collisionEvent);
            CollisionBase.Parent = this;

            if (team == Team.Esxolus)
            {
                ((MobileMesh)CollisionBase.getPhysicsCollider()).CollisionInformation.CollisionRules.Group = EsxolusMeshShipGroup;
            }
            else
            {
                ((MobileMesh)CollisionBase.getPhysicsCollider()).CollisionInformation.CollisionRules.Group = HalkMeshShipGroup;
            }

            pieceRotation = Rotation;
            piecePosition = Position;

            int hudScale = 2;
            pieceHUDUnit = new HUDUnit(this, 10 * hudScale, 4 * hudScale, 1 * hudScale);

            foreach (Turret turret in turrets)
            {
                turret.Parent = this;
            }
        }