MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / processTick

Method processTick

Engine/source/T3D/shapeBase.cpp:1354–1477  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1352//----------------------------------------------------------------------------
1353
1354void ShapeBase::processTick(const Move* move)
1355{
1356 PROFILE_SCOPE( ShapeBase_ProcessTick );
1357
1358 // Energy management
1359 if (mDamageState == Enabled && mDataBlock->inheritEnergyFromMount == false) {
1360 F32 store = mEnergy;
1361 mEnergy += mRechargeRate;
1362 if (mEnergy > mDataBlock->maxEnergy)
1363 mEnergy = mDataBlock->maxEnergy;
1364 else
1365 if (mEnergy < 0)
1366 mEnergy = 0;
1367
1368 // Virtual setEnergyLevel is used here by some derived classes to
1369 // decide whether they really want to set the energy mask bit.
1370 if (mEnergy != store)
1371 setEnergyLevel(mEnergy);
1372 }
1373
1374 // Repair management
1375 if (mDataBlock->isInvincible == false)
1376 {
1377 F32 store = mDamage;
1378 mDamage -= mRepairRate;
1379 mDamage = mClampF(mDamage, 0.f, mDataBlock->maxDamage);
1380
1381 if (mRepairReserve > mDamage)
1382 mRepairReserve = mDamage;
1383 if (mRepairReserve > 0.0)
1384 {
1385 F32 rate = getMin(mDataBlock->repairRate, mRepairReserve);
1386 mDamage -= rate;
1387 mRepairReserve -= rate;
1388 }
1389
1390 if (store != mDamage)
1391 {
1392 updateDamageLevel();
1393 if (isServerObject()) {
1394 setMaskBits(DamageMask);
1395 mDataBlock->onDamage_callback( this, mDamage - store );
1396 }
1397 }
1398 }
1399
1400 if (isServerObject()) {
1401 // Server only...
1402 advanceThreads(TickSec);
1403 updateServerAudio();
1404
1405 // update wet state
1406 setImageWetState(0, mWaterCoverage > 0.4); // more than 40 percent covered
1407
1408 // update motion state
1409 mMoveMotion = false;
1410 if (move && (move->x || move->y || move->z))
1411 {

Callers

nothing calls this directly

Calls 2

mClampFFunction · 0.85
getMountTransformMethod · 0.45

Tested by

no test coverage detected