de.pewpewproject.lasertag.mixin.ClientWorldMixin   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 40
dl 0
loc 49
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A init(CallbackInfo) 0 39 1
A getClientLasertagManager() 0 3 1
1
package de.pewpewproject.lasertag.mixin;
2
3
import de.pewpewproject.lasertag.lasertaggame.state.management.client.IClientLasertagManager;
4
import de.pewpewproject.lasertag.lasertaggame.state.management.client.IClientLasertagManagerAccessor;
5
import de.pewpewproject.lasertag.lasertaggame.state.management.client.implementation.*;
6
import de.pewpewproject.lasertag.lasertaggame.state.synced.implementation.SyncedState;
7
import net.minecraft.client.world.ClientWorld;
8
import org.spongepowered.asm.mixin.Mixin;
9
import org.spongepowered.asm.mixin.injection.At;
10
import org.spongepowered.asm.mixin.injection.Inject;
11
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
12
13
/**
14
 * Mixin into the ClientWorld.class to save the client lasertag manager
15
 *
16
 * @author Étienne Muser
17
 */
18
@Mixin(ClientWorld.class)
19
public abstract class ClientWorldMixin implements IClientLasertagManagerAccessor {
20
21
    private IClientLasertagManager clientLasertagManager;
22
23
    @Inject(method = "<init>", at = @At("TAIL"))
24
    private void init(CallbackInfo ci) {
25
26
        var syncedState = new SyncedState();
27
28
        var activationManager = new ActivationManager();
29
        var captureTheFlagManager = new CaptureTheFlagManager();
30
        var gameModeManager = new GameModeManager();
31
        var scoreManager = new ScoreManager();
32
        var settingsManager = new SettingsManager(gameModeManager);
33
        var settingsPresetsNameManager = new SettingsPresetsNameManager();
34
        var teamsManager = new TeamsManager();
35
        var uiManager = new UIStateManager(gameModeManager, settingsManager);
36
        var eliminationManager = new EliminationManager();
37
        var lasertargetsManager = new LasertargetsManager();
38
39
        clientLasertagManager = new ClientLasertagManager(syncedState,
40
                activationManager,
41
                captureTheFlagManager,
42
                gameModeManager,
43
                scoreManager,
44
                settingsManager,
45
                settingsPresetsNameManager,
46
                teamsManager,
47
                uiManager,
48
                eliminationManager,
49
                lasertargetsManager);
50
51
        // Set the client manager in the sub managers
52
        activationManager.setClientManager(clientLasertagManager);
53
        captureTheFlagManager.setClientManager(clientLasertagManager);
54
        gameModeManager.setClientManager(clientLasertagManager);
55
        scoreManager.setClientManager(clientLasertagManager);
56
        settingsManager.setClientManager(clientLasertagManager);
57
        settingsPresetsNameManager.setClientManager(clientLasertagManager);
58
        teamsManager.setClientManager(clientLasertagManager);
59
        uiManager.setClientManager(clientLasertagManager);
60
        eliminationManager.setClientManager(clientLasertagManager);
61
        lasertargetsManager.setClientManager(clientLasertagManager);
62
    }
63
64
    @Override
65
    public IClientLasertagManager getClientLasertagManager() {
66
        return clientLasertagManager;
67
    }
68
}
69