Test Failed
Push — master ( bbdbb0...ecc533 )
by Nico
16:37 queued 10:47
created

__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 0

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 0
nc 1
nop 2
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Stu\Module\Spacecraft\View\ShowSystemSettings;
6
7
8
use Stu\Component\Spacecraft\System\SpacecraftSystemTypeEnum;
9
use Stu\Module\Control\GameControllerInterface;
10
use Stu\Module\Spacecraft\Lib\SpacecraftWrapperInterface;
11
use Stu\Module\Spacecraft\Lib\SpacecraftWrapperFactoryInterface;
12
use Stu\Orm\Repository\SpacecraftRepositoryInterface;
13
14
final class WarpcoreChargeTransferSystemSettings implements SystemSettingsProviderInterface
15
{
16
    public function __construct(
17
        private SpacecraftRepositoryInterface $spacecraftRepository,
18
        private SpacecraftWrapperFactoryInterface $spacecraftWrapperFactory
19
    ) {}
20
    #[\Override]
21
    public function setTemplateVariables(
22
        SpacecraftSystemTypeEnum $systemType,
23
        SpacecraftWrapperInterface $wrapper,
24
        GameControllerInterface $game
25
    ): void {
26
        $spacecraft = $wrapper->get();
27
28
        if (!$spacecraft->hasSpacecraftSystem(SpacecraftSystemTypeEnum::WARPCORE_CHARGE_TRANSFER)) {
29
            return;
30
        }
31
32
        if (
33
            $spacecraft->getSystemState(SpacecraftSystemTypeEnum::WARPDRIVE) ||
34
            $spacecraft->getSystemState(SpacecraftSystemTypeEnum::SHIELDS)
35
        ) {
36
            $game->setTemplateVar('SYSTEMWARNING', true);
37
            $game->setTemplateVar('WARNING_MESSAGE', 'Warpantrieb und Schilde müssen deaktiviert sein');
38
        } else {
39
            $nearbySpacecrafts = $this->spacecraftRepository->getNearbySpacecraftsForWarpcoreTransfer($spacecraft);
40
            $groups = $this->spacecraftWrapperFactory->wrapSpacecraftsAsGroups($nearbySpacecrafts);
41
            $game->setTemplateVar('SPACECRAFT_GROUPS', $groups);
42
        }
43
44
        $game->setMacroInAjaxWindow('html/spacecraft/warpcoreChargeTransfer.twig');
45
        $game->setTemplateVar('SPACECRAFT', $spacecraft);
46
    }
47
}
48