mirror of
https://github.com/overte-org/overte.git
synced 2025-04-22 17:53:32 +02:00
return ScriptAvatarData raw pointer from getAvatar
This commit is contained in:
parent
54ca8bd89e
commit
84a5807ff1
9 changed files with 22 additions and 39 deletions
assignment-client/src
interface/src
libraries
|
@ -28,7 +28,6 @@
|
|||
#include <NodeList.h>
|
||||
#include <udt/PacketHeaders.h>
|
||||
#include <ResourceCache.h>
|
||||
#include <ScriptAvatarData.h>
|
||||
#include <ScriptCache.h>
|
||||
#include <ScriptEngines.h>
|
||||
#include <SoundCache.h>
|
||||
|
@ -344,9 +343,6 @@ void Agent::executeScript() {
|
|||
// give this AvatarData object to the script engine
|
||||
_scriptEngine->registerGlobalObject("Avatar", scriptedAvatar.data());
|
||||
|
||||
// register meta types for retrieval of ScriptAvatarData objects
|
||||
qScriptRegisterMetaType(_scriptEngine.get(), avatarDataToScriptValue, avatarDataFromScriptValue);
|
||||
|
||||
auto player = DependencyManager::get<recording::Deck>();
|
||||
connect(player.data(), &recording::Deck::playbackStateChanged, [=] {
|
||||
if (player->isPlaying()) {
|
||||
|
|
|
@ -5438,9 +5438,6 @@ void Application::registerScriptEngineWithApplicationServices(ScriptEngine* scri
|
|||
// AvatarManager has some custom types
|
||||
AvatarManager::registerMetaTypes(scriptEngine);
|
||||
|
||||
// register meta types for retrieval of Avatar objects
|
||||
qScriptRegisterMetaType(scriptEngine, avatarToScriptValue, avatarFromScriptValue);
|
||||
|
||||
if (property(hifi::properties::TEST).isValid()) {
|
||||
scriptEngine->registerGlobalObject("Test", TestScriptingInterface::getInstance());
|
||||
}
|
||||
|
|
|
@ -41,6 +41,10 @@ public:
|
|||
void init();
|
||||
|
||||
std::shared_ptr<MyAvatar> getMyAvatar() { return _myAvatar; }
|
||||
|
||||
// Null/Default-constructed QUuids will return MyAvatar
|
||||
virtual ScriptAvatar* getAvatar(QUuid avatarID) override { return new ScriptAvatarData(getAvatarBySessionID(avatarID)); }
|
||||
|
||||
AvatarSharedPointer getAvatarBySessionID(const QUuid& sessionID) const override;
|
||||
|
||||
int getNumAvatarsUpdated() const { return _numAvatarsUpdated; }
|
||||
|
|
|
@ -11,16 +11,6 @@
|
|||
|
||||
#include "ScriptAvatar.h"
|
||||
|
||||
QScriptValue avatarToScriptValue(QScriptEngine* engine, const AvatarSharedPointer& in) {
|
||||
return engine->newQObject(new ScriptAvatar(in), QScriptEngine::ScriptOwnership);
|
||||
}
|
||||
|
||||
void avatarFromScriptValue(const QScriptValue& object, AvatarSharedPointer& out) {
|
||||
// This is not implemented because there are no slots/properties that take an std::shared_ptr<Avatar> from a script
|
||||
assert(false);
|
||||
out = std::shared_ptr<Avatar>();
|
||||
}
|
||||
|
||||
ScriptAvatar::ScriptAvatar(AvatarSharedPointer avatarData) :
|
||||
ScriptAvatarData(avatarData)
|
||||
{
|
||||
|
|
|
@ -55,7 +55,4 @@ private:
|
|||
std::weak_ptr<AvatarData> _avatarData;
|
||||
};
|
||||
|
||||
QScriptValue avatarToScriptValue(QScriptEngine* engine, const AvatarSharedPointer& in);
|
||||
void avatarFromScriptValue(const QScriptValue& object, AvatarSharedPointer& out);
|
||||
|
||||
#endif // hifi_ScriptAvatar_h
|
||||
|
|
|
@ -25,6 +25,8 @@
|
|||
#include <NLPacket.h>
|
||||
#include <Node.h>
|
||||
|
||||
#include "ScriptAvatarData.h"
|
||||
|
||||
#include "AvatarData.h"
|
||||
|
||||
class AvatarHashMap : public QObject, public Dependency {
|
||||
|
@ -37,8 +39,9 @@ public:
|
|||
|
||||
// Currently, your own avatar will be included as the null avatar id.
|
||||
Q_INVOKABLE QVector<QUuid> getAvatarIdentifiers();
|
||||
|
||||
// Null/Default-constructed QUuids will return MyAvatar
|
||||
Q_INVOKABLE AvatarSharedPointer getAvatar(QUuid avatarID) { return getAvatarBySessionID(avatarID); }
|
||||
virtual ScriptAvatarData* getAvatar(QUuid avatarID) { return new ScriptAvatarData(getAvatarBySessionID(avatarID)); }
|
||||
|
||||
virtual AvatarSharedPointer getAvatarBySessionID(const QUuid& sessionID) const { return findAvatar(sessionID); }
|
||||
int numberOfAvatarsInRange(const glm::vec3& position, float rangeMeters);
|
||||
|
|
|
@ -9,26 +9,14 @@
|
|||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
|
||||
#include "ScriptEngineLogging.h"
|
||||
#include "ScriptAvatarData.h"
|
||||
|
||||
QScriptValue avatarDataToScriptValue(QScriptEngine* engine, const AvatarSharedPointer& in) {
|
||||
return engine->newQObject(new ScriptAvatarData(in), QScriptEngine::ScriptOwnership);
|
||||
}
|
||||
|
||||
void avatarDataFromScriptValue(const QScriptValue& object, AvatarSharedPointer& out) {
|
||||
// This is not implemented because there are no slots/properties that take an AvatarSharedPointer from a script
|
||||
assert(false);
|
||||
out = AvatarSharedPointer(nullptr);
|
||||
}
|
||||
|
||||
ScriptAvatarData::ScriptAvatarData(AvatarSharedPointer avatarData) :
|
||||
_avatarData(avatarData)
|
||||
{
|
||||
QObject::connect(avatarData.get(), &AvatarData::displayNameChanged, this, &ScriptAvatarData::displayNameChanged);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// PHYSICAL PROPERTIES: POSITION AND ORIENTATION
|
||||
// START
|
|
@ -13,7 +13,8 @@
|
|||
#define hifi_ScriptAvatarData_h
|
||||
|
||||
#include <QtCore/QObject>
|
||||
#include <AvatarData.h>
|
||||
|
||||
#include "AvatarData.h"
|
||||
|
||||
class ScriptAvatarData : public QObject {
|
||||
Q_OBJECT
|
||||
|
@ -134,9 +135,4 @@ private:
|
|||
std::weak_ptr<AvatarData> _avatarData;
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(AvatarSharedPointer)
|
||||
|
||||
QScriptValue avatarDataToScriptValue(QScriptEngine* engine, const AvatarSharedPointer& in);
|
||||
void avatarDataFromScriptValue(const QScriptValue& object, AvatarSharedPointer& out);
|
||||
|
||||
#endif // hifi_ScriptAvatarData_h
|
|
@ -44,6 +44,7 @@
|
|||
#include <PathUtils.h>
|
||||
#include <ResourceScriptingInterface.h>
|
||||
#include <NodeList.h>
|
||||
#include <ScriptAvatarData.h>
|
||||
#include <udt/PacketHeaders.h>
|
||||
#include <UUID.h>
|
||||
#include <ui/Menu.h>
|
||||
|
@ -535,6 +536,16 @@ static QScriptValue createScriptableResourcePrototype(QScriptEngine* engine) {
|
|||
return prototype;
|
||||
}
|
||||
|
||||
QScriptValue avatarDataToScriptValue(QScriptEngine* engine, ScriptAvatarData* const& in) {
|
||||
return engine->newQObject(in, QScriptEngine::ScriptOwnership, DEFAULT_QOBJECT_WRAP_OPTIONS);
|
||||
}
|
||||
|
||||
void avatarDataFromScriptValue(const QScriptValue& object, ScriptAvatarData*& out) {
|
||||
// This is not implemented because there are no slots/properties that take an AvatarSharedPointer from a script
|
||||
assert(false);
|
||||
out = nullptr;
|
||||
}
|
||||
|
||||
void ScriptEngine::resetModuleCache(bool deleteScriptCache) {
|
||||
if (QThread::currentThread() != thread()) {
|
||||
executeOnScriptThread([=]() { resetModuleCache(deleteScriptCache); });
|
||||
|
@ -614,6 +625,7 @@ void ScriptEngine::init() {
|
|||
|
||||
qScriptRegisterMetaType(this, injectorToScriptValue, injectorFromScriptValue);
|
||||
qScriptRegisterMetaType(this, inputControllerToScriptValue, inputControllerFromScriptValue);
|
||||
qScriptRegisterMetaType(this, avatarDataToScriptValue, avatarDataFromScriptValue);
|
||||
qScriptRegisterMetaType(this, animationDetailsToScriptValue, animationDetailsFromScriptValue);
|
||||
qScriptRegisterMetaType(this, webSocketToScriptValue, webSocketFromScriptValue);
|
||||
qScriptRegisterMetaType(this, qWSCloseCodeToScriptValue, qWSCloseCodeFromScriptValue);
|
||||
|
|
Loading…
Reference in a new issue