Showing the changes to libraries/entities/src/EntityScriptingInterface.cpp (1 of 2 files). Show all
Unified · Split
| @@ -258,12 +258,6 @@ QUuid EntityScriptingInterface::addEntity(const EntityItemProperties& properties · 257 unmodified lines | ||
| 258 | 258 | float volume = dimensions.x * dimensions.y * dimensions.z; |
| 259 | 259 | auto density = propertiesWithSimID.getDensity(); |
| 260 | 260 | auto newVelocity = propertiesWithSimID.getVelocity().length(); |
| 261 | − float cost = calculateCost(density * volume, 0, newVelocity); | |
| 262 | − cost *= costMultiplier; | |
| 263 | − | |
| 264 | − if (cost > _currentAvatarEnergy) { | |
| 265 | − return QUuid(); | |
| 266 | − } | |
| 267 | 261 | |
| 268 | 262 | EntityItemID id = EntityItemID(QUuid::createUuid()); |
| 269 | 263 | |
| @@ -295,9 +289,7 @@ QUuid EntityScriptingInterface::addEntity(const EntityItemProperties& properties · 25 unmodified lines | ||
| 295 | 289 | |
| 296 | 290 | // queue the packet |
| 297 | 291 | if (success) { |
| 298 | − emit debitEnergySource(cost); | |
| 299 | 292 | queueEntityMessage(PacketType::EntityAdd, id, propertiesWithSimID); |
| 300 | − | |
| 301 | 293 | return id; |
| 302 | 294 | } else { |
| 303 | 295 | return QUuid(); |
| @@ -387,18 +379,6 @@ QUuid EntityScriptingInterface::editEntity(QUuid id, const EntityItemProperties& · 83 unmodified lines | ||
| 387 | 379 | EntityItemID entityID(id); |
| 388 | 380 | if (!_entityTree) { |
| 389 | 381 | queueEntityMessage(PacketType::EntityEdit, entityID, properties); |
| 390 | − | |
| 391 | − //if there is no local entity entity tree, no existing velocity, use 0. | |
| 392 | − float cost = calculateCost(density * volume, oldVelocity, newVelocity); | |
| 393 | − cost *= costMultiplier; | |
| 394 | − | |
| 395 | − if (cost > _currentAvatarEnergy) { | |
| 396 | − return QUuid(); | |
| 397 | − } else { | |
| 398 | − //debit the avatar energy and continue | |
| 399 | − emit debitEnergySource(cost); | |
| 400 | − } | |
| 401 | − | |
| 402 | 382 | return id; |
| 403 | 383 | } |
| 404 | 384 | // If we have a local entity tree set, then also update it. |
| @@ -442,23 +422,11 @@ QUuid EntityScriptingInterface::editEntity(QUuid id, const EntityItemProperties& · 37 unmodified lines | ||
| 442 | 422 | properties.setClientOnly(entity->getClientOnly()); |
| 443 | 423 | properties.setOwningAvatarID(entity->getOwningAvatarID()); |
| 444 | 424 | properties = convertPropertiesFromScriptSemantics(properties, properties.getScalesWithParent()); |
| 445 | − | |
| 446 | − float cost = calculateCost(density * volume, oldVelocity, newVelocity); | |
| 447 | − cost *= costMultiplier; | |
| 448 | − | |
| 449 | − if (cost > _currentAvatarEnergy) { | |
| 450 | − updatedEntity = false; | |
| 451 | − } else { | |
| 452 | − //debit the avatar energy and continue | |
| 453 | − updatedEntity = _entityTree->updateEntity(entityID, properties); | |
| 454 | − if (updatedEntity) { | |
| 455 | − emit debitEnergySource(cost); | |
| 456 | − } | |
| 457 | − } | |
| 425 | + updatedEntity = _entityTree->updateEntity(entityID, properties); | |
| 458 | 426 | }); |
| 459 | 427 | |
| 460 | 428 | // FIXME: We need to figure out a better way to handle this. Allowing these edits to go through potentially |
| 461 | − // breaks avatar energy and entities that are parented. | |
| 429 | + // breaks entities that are parented. | |
| 462 | 430 | // |
| 463 | 431 | // To handle cases where a script needs to edit an entity with a _known_ entity id but doesn't exist |
| 464 | 432 | // in the local entity tree, we need to allow those edits to go through to the server. |
| @@ -581,16 +549,6 @@ void EntityScriptingInterface::deleteEntity(QUuid id) { · 116 unmodified lines | ||
| 581 | 549 | float volume = dimensions.x * dimensions.y * dimensions.z; |
| 582 | 550 | auto density = entity->getDensity(); |
| 583 | 551 | auto velocity = entity->getWorldVelocity().length(); |
| 584 | − float cost = calculateCost(density * volume, velocity, 0); | |
| 585 | − cost *= costMultiplier; | |
| 586 | − | |
| 587 | − if (cost > _currentAvatarEnergy) { | |
| 588 | − shouldDelete = false; | |
| 589 | − return; | |
| 590 | − } else { | |
| 591 | − //debit the avatar energy and continue | |
| 592 | − emit debitEnergySource(cost); | |
| 593 | − } | |
| 594 | 552 | |
| 595 | 553 | if (entity->getLocked()) { |
| 596 | 554 | shouldDelete = false; |
| @@ -1816,19 +1774,6 @@ float EntityScriptingInterface::calculateCost(float mass, float oldVelocity, flo · 1219 unmodified lines | ||
| 1816 | 1774 | return std::abs(mass * (newVelocity - oldVelocity)); |
| 1817 | 1775 | } |
| 1818 | 1776 | |
| 1819 | −void EntityScriptingInterface::setCurrentAvatarEnergy(float energy) { | |
| 1820 | − // qCDebug(entities) << "NEW AVATAR ENERGY IN ENTITY SCRIPTING INTERFACE: " << energy; | |
| 1821 | − _currentAvatarEnergy = energy; | |
| 1822 | −} | |
| 1823 | − | |
| 1824 | −float EntityScriptingInterface::getCostMultiplier() { | |
| 1825 | − return costMultiplier; | |
| 1826 | −} | |
| 1827 | − | |
| 1828 | −void EntityScriptingInterface::setCostMultiplier(float value) { | |
| 1829 | − costMultiplier = value; | |
| 1830 | −} | |
| 1831 | − | |
| 1832 | 1777 | // TODO move this someplace that makes more sense... |
| 1833 | 1778 | bool EntityScriptingInterface::AABoxIntersectsCapsule(const glm::vec3& low, const glm::vec3& dimensions, |
| 1834 | 1779 | const glm::vec3& start, const glm::vec3& end, float radius) { |