//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); }
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; } } }