aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/interfaces/IGlobalWirelessEnergy.java
blob: b931549a07a2f94d53c3a34785402fd0e35a362e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package gregtech.api.interfaces;

import java.math.BigInteger;
import java.util.UUID;

import net.minecraft.entity.player.EntityPlayer;

import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.common.misc.WirelessNetworkManager;
import gregtech.common.misc.spaceprojects.SpaceProjectManager;

// If you are adding very late-game content feel free to tap into this interface.
// The eventual goal is to bypass laser/dynamo stuff and have energy deposited directly from ultra-endgame
// multi-blocks directly into the users network.
/**
 * Use WirelessNetworkManager instead
 */
@Deprecated
public interface IGlobalWirelessEnergy {

    // Adds a user to the energy map if they do not already exist. Otherwise, do
    // nothing. Will also check if the user
    // has changed their username and adjust the maps accordingly. This should be
    // called infrequently. Ideally on first
    // tick of a machine being placed only.

    default void strongCheckOrAddUser(EntityPlayer user) {
        WirelessNetworkManager.strongCheckOrAddUser(user.getUniqueID());
    }

    default void strongCheckOrAddUser(UUID user_uuid, String user_name) {
        WirelessNetworkManager.strongCheckOrAddUser(user_uuid);
    }

    default void strongCheckOrAddUser(String user_uuid, String user_name) {
        WirelessNetworkManager.strongCheckOrAddUser(UUID.fromString(user_uuid));
    }

    // ------------------------------------------------------------------------------------
    // Add EU to the users global energy. You can enter a negative number to
    // subtract it.
    // If the value goes below 0 it will return false and not perform the operation.
    // BigIntegers have much slower operations than longs/ints. You should call
    // these methods
    // as infrequently as possible and bulk store values to add to the global map.
    default boolean addEUToGlobalEnergyMap(String userUUID, BigInteger EU) {
        return WirelessNetworkManager.addEUToGlobalEnergyMap(UUID.fromString(userUUID), EU);
    }

    default boolean addEUToGlobalEnergyMap(UUID user_uuid, BigInteger EU) {
        return addEUToGlobalEnergyMap(user_uuid.toString(), EU);
    }

    default boolean addEUToGlobalEnergyMap(UUID user_uuid, long EU) {
        return addEUToGlobalEnergyMap(user_uuid.toString(), BigInteger.valueOf(EU));
    }

    default boolean addEUToGlobalEnergyMap(UUID user_uuid, int EU) {
        return addEUToGlobalEnergyMap(user_uuid.toString(), BigInteger.valueOf(EU));
    }

    default boolean addEUToGlobalEnergyMap(String user_uuid, long EU) {
        return addEUToGlobalEnergyMap(user_uuid, BigInteger.valueOf(EU));
    }

    default boolean addEUToGlobalEnergyMap(String user_uuid, int EU) {
        return addEUToGlobalEnergyMap(user_uuid, BigInteger.valueOf(EU));
    }

    // ------------------------------------------------------------------------------------

    default BigInteger getUserEU(String user_uuid) {
        return WirelessNetworkManager.getUserEU(UUID.fromString(user_uuid));
    }

    // This overwrites the EU in the network. Only use this if you are absolutely
    // sure you know what you are doing.
    default void setUserEU(String user_uuid, BigInteger EU) {
        WirelessNetworkManager.setUserEU(UUID.fromString(user_uuid), EU);
    }

    default String GetUsernameFromUUID(String uuid) {
        return SpaceProjectManager.getPlayerNameFromUUID(UUID.fromString(uuid));
    }

    default String getUUIDFromUsername(String username) {
        return SpaceProjectManager.getPlayerUUIDFromName(username)
            .toString();
    }

    static void clearGlobalEnergyInformationMaps() {
        WirelessNetworkManager.clearGlobalEnergyInformationMaps();
    }

    default UUID processInitialSettings(final IGregTechTileEntity machine) {
        return WirelessNetworkManager.processInitialSettings(machine);
    }
}