mirror of
https://thingvellir.net/git/overte
synced 2025-03-27 23:52:03 +01:00
Fix jitter when start moving camera in edit mode focused on entity
This commit is contained in:
parent
2abbdfbfe9
commit
316abaeedc
2 changed files with 25 additions and 0 deletions
|
@ -61,6 +61,20 @@ var mode = noMode;
|
|||
|
||||
var isAwayEnabled = true;
|
||||
|
||||
var EDIT_CAMERA_MANAGER_CHANNEL = "Edit-Camera-Manager-Channel";
|
||||
var isEditUsingCamera = false;
|
||||
Messages.messageReceived.connect(function (channel, data, senderID, localOnly) {
|
||||
if (channel === EDIT_CAMERA_MANAGER_CHANNEL && senderID === MyAvatar.sessionUUID && localOnly) {
|
||||
var message;
|
||||
try {
|
||||
message = JSON.parse(data);
|
||||
isEditUsingCamera = message.enabled;
|
||||
} catch (e) {
|
||||
// Ignore.
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var pick = Picks.createPick(PickType.Ray, {
|
||||
filter: Picks.PICK_DOMAIN_ENTITIES | Picks.PICK_AVATAR_ENTITIES | Picks.PICK_AVATARS | Picks.INCLUDE_VISIBLE
|
||||
| Picks.PICK_INCLUDE_COLLIDABLE | Picks.PICK_INCLUDE_NONCOLLIDABLE | Picks.PICK_PRECISE,
|
||||
|
@ -183,6 +197,10 @@ function restoreCameraState() {
|
|||
}
|
||||
|
||||
function handleModes() {
|
||||
if (isEditUsingCamera) {
|
||||
return;
|
||||
}
|
||||
|
||||
var newMode = (mode === noMode) ? noMode : detachedMode;
|
||||
if (alt) {
|
||||
if (control) {
|
||||
|
@ -231,6 +249,9 @@ function keyPressEvent(event) {
|
|||
var changed = false;
|
||||
|
||||
if (event.text === "ALT") {
|
||||
if (isEditUsingCamera) {
|
||||
return;
|
||||
}
|
||||
alt = true;
|
||||
changed = true;
|
||||
Picks.enablePick(pick);
|
||||
|
|
|
@ -68,6 +68,8 @@ CameraManager = function() {
|
|||
|
||||
that.enabled = false;
|
||||
that.mode = MODE_INACTIVE;
|
||||
var EDIT_CAMERA_MANAGER_CHANNEL = "Edit-Camera-Manager-Channel";
|
||||
Messages.sendLocalMessage(EDIT_CAMERA_MANAGER_CHANNEL, JSON.stringify({ enabled: false }));
|
||||
|
||||
var actions = {
|
||||
orbitLeft: 0,
|
||||
|
@ -153,6 +155,7 @@ CameraManager = function() {
|
|||
|
||||
that.enabled = true;
|
||||
that.mode = MODE_INACTIVE;
|
||||
Messages.sendLocalMessage(EDIT_CAMERA_MANAGER_CHANNEL, JSON.stringify({ enabled: true }));
|
||||
|
||||
// Pick a point INITIAL_ZOOM_DISTANCE in front of the camera to use as a focal point
|
||||
that.zoomDistance = INITIAL_ZOOM_DISTANCE;
|
||||
|
@ -193,6 +196,7 @@ CameraManager = function() {
|
|||
|
||||
that.enabled = false;
|
||||
that.mode = MODE_INACTIVE;
|
||||
Messages.sendLocalMessage(EDIT_CAMERA_MANAGER_CHANNEL, JSON.stringify({ enabled: false }));
|
||||
|
||||
if (!ignoreCamera) {
|
||||
Camera.mode = that.previousCameraMode;
|
||||
|
|
Loading…
Reference in a new issue