mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-07-23 21:44:00 +02:00
Merge remote-tracking branch 'hifi/master'
This commit is contained in:
commit
883bb5aa68
6 changed files with 25 additions and 9 deletions
|
@ -64,7 +64,6 @@ function activateWarp() {
|
||||||
|
|
||||||
var TRIGGER_PULLBACK_DISTANCE = 0.04;
|
var TRIGGER_PULLBACK_DISTANCE = 0.04;
|
||||||
var WATCH_AVATAR_DISTANCE = 1.5;
|
var WATCH_AVATAR_DISTANCE = 1.5;
|
||||||
var MAX_WARP_YAW = 40.0;
|
|
||||||
var MAX_PULLBACK_YAW = 5.0;
|
var MAX_PULLBACK_YAW = 5.0;
|
||||||
|
|
||||||
var sound = new Sound("http://public.highfidelity.io/sounds/Footsteps/FootstepW2Right-12db.wav");
|
var sound = new Sound("http://public.highfidelity.io/sounds/Footsteps/FootstepW2Right-12db.wav");
|
||||||
|
@ -72,7 +71,7 @@ function playSound() {
|
||||||
var options = new AudioInjectionOptions();
|
var options = new AudioInjectionOptions();
|
||||||
var position = MyAvatar.position;
|
var position = MyAvatar.position;
|
||||||
options.position = position;
|
options.position = position;
|
||||||
options.volume = 0.5;
|
options.volume = 1.0;
|
||||||
Audio.playSound(sound, options);
|
Audio.playSound(sound, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,7 +88,7 @@ function updateWarp() {
|
||||||
var deltaPitch = MyAvatar.getHeadFinalPitch() - headStartFinalPitch;
|
var deltaPitch = MyAvatar.getHeadFinalPitch() - headStartFinalPitch;
|
||||||
deltaYaw = MyAvatar.getHeadFinalYaw() - headStartYaw;
|
deltaYaw = MyAvatar.getHeadFinalYaw() - headStartYaw;
|
||||||
|
|
||||||
willMove = (!watchAvatar && (Math.abs(deltaYaw) < MAX_WARP_YAW) && (keyDownTime > WARP_START_TIME));
|
willMove = (!watchAvatar && (keyDownTime > WARP_START_TIME));
|
||||||
|
|
||||||
if (willMove) {
|
if (willMove) {
|
||||||
//var distance = Math.pow((deltaPitch - WARP_PITCH_DEAD_ZONE) * WARP_SENSITIVITY, 2.0);
|
//var distance = Math.pow((deltaPitch - WARP_PITCH_DEAD_ZONE) * WARP_SENSITIVITY, 2.0);
|
||||||
|
|
|
@ -3766,8 +3766,9 @@ ScriptEngine* Application::loadScript(const QString& scriptFilename, bool isUser
|
||||||
// AvatarManager has some custom types
|
// AvatarManager has some custom types
|
||||||
AvatarManager::registerMetaTypes(scriptEngine);
|
AvatarManager::registerMetaTypes(scriptEngine);
|
||||||
|
|
||||||
// hook our avatar object into this script engine
|
// hook our avatar and avatar hash map object into this script engine
|
||||||
scriptEngine->setAvatarData(_myAvatar, "MyAvatar"); // leave it as a MyAvatar class to expose thrust features
|
scriptEngine->setAvatarData(_myAvatar, "MyAvatar"); // leave it as a MyAvatar class to expose thrust features
|
||||||
|
scriptEngine->setAvatarHashMap(&_avatarManager, "AvatarList");
|
||||||
|
|
||||||
CameraScriptableObject* cameraScriptable = new CameraScriptableObject(&_myCamera, &_viewFrustum);
|
CameraScriptableObject* cameraScriptable = new CameraScriptableObject(&_myCamera, &_viewFrustum);
|
||||||
scriptEngine->registerGlobalObject("Camera", cameraScriptable);
|
scriptEngine->registerGlobalObject("Camera", cameraScriptable);
|
||||||
|
|
|
@ -381,6 +381,8 @@ private:
|
||||||
AvatarData& operator= (const AvatarData&);
|
AvatarData& operator= (const AvatarData&);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Q_DECLARE_METATYPE(AvatarData*)
|
||||||
|
|
||||||
class JointData {
|
class JointData {
|
||||||
public:
|
public:
|
||||||
bool valid;
|
bool valid;
|
||||||
|
|
|
@ -21,6 +21,7 @@ AvatarHashMap::AvatarHashMap() :
|
||||||
connect(NodeList::getInstance(), &NodeList::uuidChanged, this, &AvatarHashMap::sessionUUIDChanged);
|
connect(NodeList::getInstance(), &NodeList::uuidChanged, this, &AvatarHashMap::sessionUUIDChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
AvatarHash::iterator AvatarHashMap::erase(const AvatarHash::iterator& iterator) {
|
AvatarHash::iterator AvatarHashMap::erase(const AvatarHash::iterator& iterator) {
|
||||||
qDebug() << "Removing Avatar with UUID" << iterator.key() << "from AvatarHashMap.";
|
qDebug() << "Removing Avatar with UUID" << iterator.key() << "from AvatarHashMap.";
|
||||||
return _avatarHash.erase(iterator);
|
return _avatarHash.erase(iterator);
|
||||||
|
@ -53,7 +54,10 @@ void AvatarHashMap::processAvatarMixerDatagram(const QByteArray& datagram, const
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AvatarHashMap::containsAvatarWithDisplayName(const QString& displayName) {
|
bool AvatarHashMap::containsAvatarWithDisplayName(const QString& displayName) {
|
||||||
|
return avatarWithDisplayName(displayName) == NULL ? false : true;
|
||||||
|
}
|
||||||
|
|
||||||
|
AvatarData* AvatarHashMap::avatarWithDisplayName(const QString& displayName) {
|
||||||
AvatarHash::iterator avatarIterator = _avatarHash.begin();
|
AvatarHash::iterator avatarIterator = _avatarHash.begin();
|
||||||
while (avatarIterator != _avatarHash.end()) {
|
while (avatarIterator != _avatarHash.end()) {
|
||||||
AvatarSharedPointer sharedAvatar = avatarIterator.value();
|
AvatarSharedPointer sharedAvatar = avatarIterator.value();
|
||||||
|
@ -62,7 +66,7 @@ bool AvatarHashMap::containsAvatarWithDisplayName(const QString& displayName) {
|
||||||
// check if this avatar should still be around
|
// check if this avatar should still be around
|
||||||
if (!shouldKillAvatar(sharedAvatar)) {
|
if (!shouldKillAvatar(sharedAvatar)) {
|
||||||
// we have a match, return true
|
// we have a match, return true
|
||||||
return true;
|
return sharedAvatar.data();
|
||||||
} else {
|
} else {
|
||||||
// we should remove this avatar, do that now
|
// we should remove this avatar, do that now
|
||||||
erase(avatarIterator);
|
erase(avatarIterator);
|
||||||
|
@ -75,7 +79,7 @@ bool AvatarHashMap::containsAvatarWithDisplayName(const QString& displayName) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// return false, no match
|
// return false, no match
|
||||||
return false;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
AvatarSharedPointer AvatarHashMap::newSharedAvatar() {
|
AvatarSharedPointer AvatarHashMap::newSharedAvatar() {
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#include "AvatarData.h"
|
#include "AvatarData.h"
|
||||||
|
|
||||||
typedef QSharedPointer<AvatarData> AvatarSharedPointer;
|
typedef QSharedPointer<AvatarData> AvatarSharedPointer;
|
||||||
|
typedef QWeakPointer<AvatarData> AvatarWeakPointer;
|
||||||
typedef QHash<QUuid, AvatarSharedPointer> AvatarHash;
|
typedef QHash<QUuid, AvatarSharedPointer> AvatarHash;
|
||||||
|
|
||||||
class AvatarHashMap : public QObject {
|
class AvatarHashMap : public QObject {
|
||||||
|
@ -34,6 +35,7 @@ public:
|
||||||
public slots:
|
public slots:
|
||||||
void processAvatarMixerDatagram(const QByteArray& datagram, const QWeakPointer<Node>& mixerWeakPointer);
|
void processAvatarMixerDatagram(const QByteArray& datagram, const QWeakPointer<Node>& mixerWeakPointer);
|
||||||
bool containsAvatarWithDisplayName(const QString& displayName);
|
bool containsAvatarWithDisplayName(const QString& displayName);
|
||||||
|
AvatarData* avatarWithDisplayName(const QString& displayname);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void sessionUUIDChanged(const QUuid& sessionUUID, const QUuid& oldUUID);
|
void sessionUUIDChanged(const QUuid& sessionUUID, const QUuid& oldUUID);
|
||||||
|
|
|
@ -63,6 +63,14 @@ static QScriptValue debugPrint(QScriptContext* context, QScriptEngine* engine){
|
||||||
return QScriptValue();
|
return QScriptValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QScriptValue avatarDataToScriptValue(QScriptEngine* engine, AvatarData* const &in) {
|
||||||
|
return engine->newQObject(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
void avatarDataFromScriptValue(const QScriptValue &object, AvatarData* &out) {
|
||||||
|
out = qobject_cast<AvatarData*>(object.toQObject());
|
||||||
|
}
|
||||||
|
|
||||||
QScriptValue injectorToScriptValue(QScriptEngine* engine, AudioInjector* const &in) {
|
QScriptValue injectorToScriptValue(QScriptEngine* engine, AudioInjector* const &in) {
|
||||||
return engine->newQObject(in);
|
return engine->newQObject(in);
|
||||||
}
|
}
|
||||||
|
@ -272,7 +280,7 @@ void ScriptEngine::init() {
|
||||||
|
|
||||||
qScriptRegisterMetaType(this, injectorToScriptValue, injectorFromScriptValue);
|
qScriptRegisterMetaType(this, injectorToScriptValue, injectorFromScriptValue);
|
||||||
qScriptRegisterMetaType(this, inputControllerToScriptValue, inputControllerFromScriptValue);
|
qScriptRegisterMetaType(this, inputControllerToScriptValue, inputControllerFromScriptValue);
|
||||||
|
qScriptRegisterMetaType(this, avatarDataToScriptValue, avatarDataFromScriptValue);
|
||||||
qScriptRegisterMetaType(this, animationDetailsToScriptValue, animationDetailsFromScriptValue);
|
qScriptRegisterMetaType(this, animationDetailsToScriptValue, animationDetailsFromScriptValue);
|
||||||
|
|
||||||
registerGlobalObject("Script", this);
|
registerGlobalObject("Script", this);
|
||||||
|
|
Loading…
Reference in a new issue