Ejemplo n.º 1
0
        private static void UpdateStartDummy(MyDummyPointFlags flags, Matrix position)
        {
            MyDummyPoint playerStartDummy = null;

            foreach (var entity in MyEntities.GetEntities())
            {
                MyDummyPoint dummy = entity as MyDummyPoint;
                if (dummy != null && (dummy.DummyFlags & flags) > 0)
                {
                    playerStartDummy = dummy;
                    break;
                }
            }

            if (playerStartDummy == null)
            {
                MyMwcObjectBuilder_DummyPoint dummyPointObjectBuilder =
                    MyMwcObjectBuilder_Base.CreateNewObject(MyMwcObjectBuilderTypeEnum.DummyPoint, null) as
                    MyMwcObjectBuilder_DummyPoint;
                playerStartDummy =
                    MyEntities.CreateFromObjectBuilderAndAdd(null, dummyPointObjectBuilder, Matrix.Identity) as MyDummyPoint;
                playerStartDummy.DummyFlags |= flags;
            }

            playerStartDummy.SetWorldMatrix(position);
        }
Ejemplo n.º 2
0
        public virtual void Init(string hudLabelText, MyMwcObjectBuilder_DummyPoint objectBuilder, Matrix matrix)
        {
            StringBuilder hudLabelTextSb = (hudLabelText == null) ? null : new StringBuilder(hudLabelText);

            base.Init(hudLabelTextSb, objectBuilder);

            Type = objectBuilder.Type;
            Size = objectBuilder.Size;

            Flags |= EntityFlags.EditableInEditor;

            DummyFlags  = objectBuilder.DummyFlags;
            CastShadows = false;

            if (Type == MyDummyPointType.Sphere)
            {
                Radius = Size.X / 2.0f;
            }

            SetWorldMatrix(matrix);

            Color    = objectBuilder.Color.ToVector4();
            Argument = objectBuilder.Argument;

            RespawnPointFaction = objectBuilder.RespawnPointFaction;

            RefreshParticleEffect();

            foreach (MyRenderObject ro in RenderObjects)
            {
                ro.SkipIfTooSmall = false;
            }

            StartEffect();
        }
Ejemplo n.º 3
0
        public void BeforeLoad(MyMwcObjectBuilder_Checkpoint checkpoint)
        {
            MyEntityIdentifier.AllocationSuspended = true;

            //if (MyMultiplayerGameplay.IsRunning && !MyMultiplayerGameplay.IsHost)
            //{
            //    MyMwcPositionAndOrientation position = MyMultiplayerGameplay.Static.GetSafeRespawnPositionNearPlayer(checkpoint.PlayerObjectBuilder.ShipObjectBuilder.ShipType);
            //    checkpoint.PlayerObjectBuilder.ShipObjectBuilder.PositionAndOrientation = position;
            //    return;
            //}

            // Try find player start location and set player location
            if (checkpoint.SectorObjectBuilder != null && checkpoint.SectorObjectBuilder.SectorObjects != null)
            {
                int playerStartsCount = 0;
                foreach (var builder in checkpoint.SectorObjectBuilder.SectorObjects)
                {
                    MyMwcObjectBuilder_DummyPoint dummyBuilder = builder as MyMwcObjectBuilder_DummyPoint;
                    if (dummyBuilder != null)
                    {
                        if ((dummyBuilder.DummyFlags & MyDummyPointFlags.PLAYER_START) > 0)
                        {
                            checkpoint.PlayerObjectBuilder.ShipObjectBuilder.PositionAndOrientation = dummyBuilder.PositionAndOrientation;
                            playerStartsCount++;
                        }
                    }
                }
            }

            MotherShipPosition.Load(checkpoint.Dictionary);
        }
Ejemplo n.º 4
0
        protected override MyMwcObjectBuilder_Base GetObjectBuilderInternal(bool getExactCopy)
        {
            MyMwcObjectBuilder_DummyPoint objectBuilder = (MyMwcObjectBuilder_DummyPoint)base.GetObjectBuilderInternal(getExactCopy);

            objectBuilder.Type = Type;
            if (Type == MyDummyPointType.Box)
            {
                objectBuilder.Size = Size;
            }
            else
            {
                objectBuilder.Size = new Vector3(Radius * 2, 1f, 1f);
            }
            objectBuilder.DummyFlags          = DummyFlags;
            objectBuilder.Color               = new Color(Color);
            objectBuilder.Argument            = Argument;
            objectBuilder.RespawnPointFaction = RespawnPointFaction;

            return(objectBuilder);
        }