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

Method processTick

Engine/source/T3D/shapeBase.cpp:1215–1338  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1213//----------------------------------------------------------------------------
1214
1215void ShapeBase::processTick(const Move* move)
1216{
1217 PROFILE_SCOPE( ShapeBase_ProcessTick );
1218
1219 // Energy management
1220 if (mDamageState == Enabled && mDataBlock->inheritEnergyFromMount == false) {
1221 F32 store = mEnergy;
1222 mEnergy += mRechargeRate;
1223 if (mEnergy > mDataBlock->maxEnergy)
1224 mEnergy = mDataBlock->maxEnergy;
1225 else
1226 if (mEnergy < 0)
1227 mEnergy = 0;
1228
1229 // Virtual setEnergyLevel is used here by some derived classes to
1230 // decide whether they really want to set the energy mask bit.
1231 if (mEnergy != store)
1232 setEnergyLevel(mEnergy);
1233 }
1234
1235 // Repair management
1236 if (mDataBlock->isInvincible == false)
1237 {
1238 F32 store = mDamage;
1239 mDamage -= mRepairRate;
1240 mDamage = mClampF(mDamage, 0.f, mDataBlock->maxDamage);
1241
1242 if (mRepairReserve > mDamage)
1243 mRepairReserve = mDamage;
1244 if (mRepairReserve > 0.0)
1245 {
1246 F32 rate = getMin(mDataBlock->repairRate, mRepairReserve);
1247 mDamage -= rate;
1248 mRepairReserve -= rate;
1249 }
1250
1251 if (store != mDamage)
1252 {
1253 updateDamageLevel();
1254 if (isServerObject()) {
1255 setMaskBits(DamageMask);
1256 mDataBlock->onDamage_callback( this, mDamage - store );
1257 }
1258 }
1259 }
1260
1261 if (isServerObject()) {
1262 // Server only...
1263 advanceThreads(TickSec);
1264 updateServerAudio();
1265
1266 // update wet state
1267 setImageWetState(0, mWaterCoverage > 0.4); // more than 40 percent covered
1268
1269 // update motion state
1270 mMoveMotion = false;
1271 if (move && (move->x || move->y || move->z))
1272 {

Callers

nothing calls this directly

Calls 2

mClampFFunction · 0.85
getMountTransformMethod · 0.45

Tested by

no test coverage detected