Пример #1
0
 //Working. The vector passed here must be a mean of all avoidance vectors devided by number of vectors
 //to get this
 //Take the positions of each nearby object and subtract your position from that enemy position. this will give you a Vector pointing away from target
 // to avoid multipule targets at once, Add all vectors together and devide by number of vectors
 public void AvoidTarget(Vector3D direction)
 {
     _shipControls.MoveAndRotate((direction / 4 * 3 + (Ship.Physics.LinearVelocity / 4 * 1)), Vector2.Zero, 0);
     AlignTo(previousAlign);
 }
Пример #2
0
            private void UpdateBlacklist()
            {
                CurrentBlacklistMode = SeBlacklistModes.None;

                for (int n = 0; n < bindClients.Count; n++)
                {
                    if ((bindClients[n].RequestBlacklistMode & SeBlacklistModes.AllKeys) == SeBlacklistModes.AllKeys)
                    {
                        CurrentBlacklistMode |= SeBlacklistModes.AllKeys;
                    }

                    if ((bindClients[n].RequestBlacklistMode & SeBlacklistModes.Mouse) > 0)
                    {
                        CurrentBlacklistMode |= SeBlacklistModes.Mouse;
                    }

                    if ((bindClients[n].RequestBlacklistMode & SeBlacklistModes.CameraRot) > 0)
                    {
                        CurrentBlacklistMode |= SeBlacklistModes.CameraRot;
                    }
                }

                // Block/allow camera rotation due to user input
                if ((CurrentBlacklistMode & SeBlacklistModes.CameraRot) > 0)
                {
                    IMyControllableEntity conEnt = MyAPIGateway.Session.ControlledObject;

                    if (conEnt != null)
                    {
                        conEnt.MoveAndRotate(conEnt.LastMotionIndicator, Vector2.Zero, 0f);
                    }
                }

                // Set control blacklist according to flag configuration
                if ((CurrentBlacklistMode & SeBlacklistModes.AllKeys) == SeBlacklistModes.AllKeys)
                {
                    if (!areControlsBlacklisted)
                    {
                        areControlsBlacklisted      = true;
                        areMouseControlsBlacklisted = true;
                        SetBlacklist(seControlIDs, true); // Enable full blacklist
                    }
                }
                else
                {
                    if (areControlsBlacklisted)
                    {
                        SetBlacklist(seControlIDs, false); // Disable full blacklist
                        areControlsBlacklisted      = false;
                        areMouseControlsBlacklisted = false;
                    }

                    if ((CurrentBlacklistMode & SeBlacklistModes.Mouse) > 0)
                    {
                        if (!areMouseControlsBlacklisted)
                        {
                            areMouseControlsBlacklisted = true;
                            SetBlacklist(seMouseControlIDs, true); // Enable mouse button blacklist
                        }
                    }
                    else if (areMouseControlsBlacklisted)
                    {
                        SetBlacklist(seMouseControlIDs, false); // Disable mouse button blacklist
                        areMouseControlsBlacklisted = false;
                    }
                }
            }