-
Notifications
You must be signed in to change notification settings - Fork 214
Expand file tree
/
Copy pathICleanroomProvider.java
More file actions
61 lines (51 loc) · 1.52 KB
/
ICleanroomProvider.java
File metadata and controls
61 lines (51 loc) · 1.52 KB
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
package gregtech.api.metatileentity.multiblock;
import org.jetbrains.annotations.NotNull;
/**
* Implement this interface in order to make a TileEntity into a block that provides a Cleanroom to other blocks
*/
public interface ICleanroomProvider {
/**
* @param type the type to check
* @return if the type is fulfilled
*/
boolean checkCleanroomType(@NotNull CleanroomType type);
/**
* Sets the cleanroom's clean amount
*
* @param amount the amount of cleanliness
*/
void setCleanAmount(int amount);
/**
* Adjust the cleanroom's clean amount
*
* @param amount the amount of cleanliness to increase/decrease by
*/
void adjustCleanAmount(int amount);
/**
* @return whether the cleanroom is currently clean
*/
boolean isClean();
/**
* Consumes energy from the cleanroom
*
* @param simulate whether to actually apply change values or not
* @return whether the draining succeeded
*/
boolean drainEnergy(boolean simulate);
/**
* @return the amount of energy input per second
*/
long getEnergyInputPerSecond();
/**
* @return the tier {@link gregtech.api.GTValues#V} of energy the cleanroom uses at minimum
*/
int getEnergyTier();
/**
* Get the priority of this cleanroom provider to determine which should be used.
*
* @return the priority this cleanroom provider should have over other cleanrooms.
*/
default int getPriority() {
return 0;
}
}