mirror of
https://github.com/Armored-Dragon/overte.git
synced 2025-03-11 16:13:16 +01:00
maximum 'tmp' entity lifetime is now a domain-server setting, defaults to 1 hour
This commit is contained in:
parent
203ea5ddc7
commit
bade215907
4 changed files with 27 additions and 3 deletions
|
@ -268,6 +268,14 @@ void EntityServer::readAdditionalConfiguration(const QJsonObject& settingsSectio
|
|||
qDebug("wantTerseEditLogging=%s", debug::valueOf(wantTerseEditLogging));
|
||||
|
||||
EntityTreePointer tree = std::static_pointer_cast<EntityTree>(_tree);
|
||||
|
||||
int maxTmpEntityLifetime;
|
||||
if (readOptionInt("maxTmpLifetime", settingsSectionObject, maxTmpEntityLifetime)) {
|
||||
tree->setEntityMaxTmpLifetime(maxTmpEntityLifetime);
|
||||
} else {
|
||||
tree->setEntityMaxTmpLifetime(EntityTree::DEFAULT_MAX_TMP_ENTITY_LIFETIME);
|
||||
}
|
||||
|
||||
tree->setWantEditLogging(wantEditLogging);
|
||||
tree->setWantTerseEditLogging(wantTerseEditLogging);
|
||||
}
|
||||
|
|
|
@ -513,6 +513,14 @@
|
|||
"label": "Entity Server Settings",
|
||||
"assignment-types": [6],
|
||||
"settings": [
|
||||
{
|
||||
"name": "maxTmpLifetime",
|
||||
"label": "Maximum Lifetime of Temporary Entities",
|
||||
"help": "The maximum number of seconds for the lifetime of an entity which will be considered \"temporary\".",
|
||||
"placeholder": "3600",
|
||||
"default": "3600",
|
||||
"advanced": true
|
||||
},
|
||||
{
|
||||
"name": "persistFilePath",
|
||||
"label": "Entities File Path",
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#include "LogHandler.h"
|
||||
|
||||
static const quint64 DELETED_ENTITIES_EXTRA_USECS_TO_CONSIDER = USECS_PER_MSEC * 50;
|
||||
static const float MAX_TMP_ENTITY_LIFETIME = 10 * 60; // 10 minutes
|
||||
const float EntityTree::DEFAULT_MAX_TMP_ENTITY_LIFETIME = 60 * 60; // 1 hour
|
||||
|
||||
|
||||
EntityTree::EntityTree(bool shouldReaverage) :
|
||||
|
@ -319,10 +319,10 @@ bool EntityTree::updateEntityWithElement(EntityItemPointer entity, const EntityI
|
|||
return true;
|
||||
}
|
||||
|
||||
bool permissionsAllowRez(const EntityItemProperties& properties, bool canRez, bool canRezTmp) {
|
||||
bool EntityTree::permissionsAllowRez(const EntityItemProperties& properties, bool canRez, bool canRezTmp) {
|
||||
float lifeTime = properties.getLifetime();
|
||||
|
||||
if (lifeTime == 0.0f || lifeTime > MAX_TMP_ENTITY_LIFETIME) {
|
||||
if (lifeTime == 0.0f || lifeTime > _maxTmpEntityLifetime) {
|
||||
// this is an attempt to rez a permanent entity.
|
||||
if (!canRez) {
|
||||
return false;
|
||||
|
|
|
@ -62,6 +62,10 @@ public:
|
|||
|
||||
void createRootElement();
|
||||
|
||||
|
||||
void setEntityMaxTmpLifetime(float maxTmpEntityLifetime) { _maxTmpEntityLifetime = maxTmpEntityLifetime; }
|
||||
bool permissionsAllowRez(const EntityItemProperties& properties, bool canRez, bool canRezTmp);
|
||||
|
||||
/// Implements our type specific root element factory
|
||||
virtual OctreeElementPointer createNewElement(unsigned char* octalCode = NULL) override;
|
||||
|
||||
|
@ -252,6 +256,8 @@ public:
|
|||
|
||||
void notifyNewCollisionSoundURL(const QString& newCollisionSoundURL, const EntityItemID& entityID);
|
||||
|
||||
static const float DEFAULT_MAX_TMP_ENTITY_LIFETIME;
|
||||
|
||||
public slots:
|
||||
void callLoader(EntityItemID entityID);
|
||||
|
||||
|
@ -331,6 +337,8 @@ protected:
|
|||
// we maintain a list of avatarIDs to notice when an entity is a child of one.
|
||||
QSet<QUuid> _avatarIDs; // IDs of avatars connected to entity server
|
||||
QHash<QUuid, QSet<EntityItemID>> _childrenOfAvatars; // which entities are children of which avatars
|
||||
|
||||
float _maxTmpEntityLifetime { DEFAULT_MAX_TMP_ENTITY_LIFETIME };
|
||||
};
|
||||
|
||||
#endif // hifi_EntityTree_h
|
||||
|
|
Loading…
Reference in a new issue