| 29 | |
| 30 | const float WorldClient::DropDist = 6.0f; |
| 31 | WorldClient::WorldClient(PlayerPtr mainPlayer, LuaRootPtr luaRoot) { |
| 32 | auto& root = Root::singleton(); |
| 33 | auto assets = root.assets(); |
| 34 | |
| 35 | m_clientConfig = assets->json("/client.config"); |
| 36 | |
| 37 | m_currentStep = 0; |
| 38 | m_currentTime = 0; |
| 39 | m_fullBright = false; |
| 40 | m_asyncLighting = false; |
| 41 | m_worldDimTimer = GameTimer(m_clientConfig.getFloat("worldDimTime")); |
| 42 | m_worldDimTimer.setDone(); |
| 43 | m_worldDimLevel = 0.0f; |
| 44 | |
| 45 | m_parallaxFadeTimer = GameTimer(m_clientConfig.getFloat("parallaxFadeTime")); |
| 46 | m_parallaxFadeTimer.setDone(); |
| 47 | |
| 48 | m_collisionDebug = false; |
| 49 | m_inWorld = false; |
| 50 | |
| 51 | m_luaRoot = luaRoot; |
| 52 | |
| 53 | m_mainPlayer = mainPlayer; |
| 54 | |
| 55 | centerClientWindowOnPlayer(Vec2U(100, 100)); |
| 56 | |
| 57 | m_collisionGenerator.init([this](int x, int y) { |
| 58 | if (!m_predictedTiles.empty()) { |
| 59 | if (auto p = m_predictedTiles.ptr({x, y})) { |
| 60 | if (p->collision) |
| 61 | return *p->collision; |
| 62 | } |
| 63 | } |
| 64 | return m_tileArray->tile({x, y}).collision; |
| 65 | }); |
| 66 | |
| 67 | m_modifiedTilePredictionTimeout = (int)round(m_clientConfig.getFloat("modifiedTilePredictionTimeout") / GlobalTimestep); |
| 68 | |
| 69 | m_latency = 0.0; |
| 70 | |
| 71 | m_blockDamageParticle = Particle(m_clientConfig.getObject("blockDamageParticle")); |
| 72 | m_blockDamageParticleVariance = Particle(m_clientConfig.getObject("blockDamageParticleVariance")); |
| 73 | m_blockDamageParticleProbability = m_clientConfig.getFloat("blockDamageParticleProbability"); |
| 74 | |
| 75 | m_blockDingParticle = Particle(m_clientConfig.getObject("blockDingParticle")); |
| 76 | m_blockDingParticleVariance = Particle(m_clientConfig.getObject("blockDingParticleVariance")); |
| 77 | m_blockDingParticleProbability = m_clientConfig.getFloat("blockDingParticleProbability"); |
| 78 | |
| 79 | m_damageNotificationBatchDuration = m_clientConfig.getFloat("damageNotificationBatchDuration"); |
| 80 | |
| 81 | m_ambientSounds.setTrackFadeInTime(assets->json("/interface.config:ambientTrackFadeInTime").toFloat()); |
| 82 | m_ambientSounds.setTrackSwitchGrace(assets->json("/interface.config:ambientTrackSwitchGrace").toFloat()); |
| 83 | |
| 84 | m_musicTrack.setTrackSwitchGrace(assets->json("/interface.config:musicTrackSwitchGrace").toFloat()); |
| 85 | m_musicTrack.setTrackFadeInTime(assets->json("/interface.config:musicTrackFadeInTime").toFloat()); |
| 86 | |
| 87 | m_altMusicTrack.setTrackFadeInTime(assets->json("/interface.config:musicTrackFadeInTime").toFloat()); |
| 88 | m_altMusicTrack.setTrackSwitchGrace(assets->json("/interface.config:musicTrackFadeInTime").toFloat()); |
nothing calls this directly
no test coverage detected