-
Notifications
You must be signed in to change notification settings - Fork 211
Expand file tree
/
Copy pathMetaTileEntityAutoMaintenanceHatch.java
More file actions
113 lines (91 loc) · 3.47 KB
/
Copy pathMetaTileEntityAutoMaintenanceHatch.java
File metadata and controls
113 lines (91 loc) · 3.47 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
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package gregtech.common.metatileentities.multi.multiblockpart;
import gregtech.api.capability.IMaintenanceHatch;
import gregtech.api.metatileentity.MetaTileEntity;
import gregtech.api.metatileentity.interfaces.IGregTechTileEntity;
import gregtech.api.metatileentity.multiblock.AbilityInstances;
import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart;
import gregtech.api.metatileentity.multiblock.MultiblockAbility;
import gregtech.client.renderer.texture.Textures;
import net.minecraft.client.resources.I18n;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.Tuple;
import net.minecraft.world.World;
import codechicken.lib.render.CCRenderState;
import codechicken.lib.render.pipeline.IVertexOperation;
import codechicken.lib.vec.Matrix4;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List;
public class MetaTileEntityAutoMaintenanceHatch extends MetaTileEntityMultiblockPart implements
IMultiblockAbilityPart<IMaintenanceHatch>, IMaintenanceHatch {
public MetaTileEntityAutoMaintenanceHatch(ResourceLocation metaTileEntityId) {
super(metaTileEntityId, 3);
}
@Override
public MetaTileEntity createMetaTileEntity(IGregTechTileEntity metaTileEntityHolder) {
return new MetaTileEntityAutoMaintenanceHatch(metaTileEntityId);
}
@Override
public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation, IVertexOperation[] pipeline) {
super.renderMetaTileEntity(renderState, translation, pipeline);
if (shouldRenderOverlay()) {
Textures.MAINTENANCE_OVERLAY_FULL_AUTO.renderSided(getFrontFacing(), renderState, translation, pipeline);
}
}
@Override
public void addInformation(ItemStack stack, @Nullable World world, List<String> tooltip, boolean advanced) {
super.addInformation(stack, world, tooltip, advanced);
tooltip.add(I18n.format("gregtech.universal.disabled"));
}
@Override
public void addToolUsages(ItemStack stack, @Nullable World world, List<String> tooltip, boolean advanced) {
tooltip.add(I18n.format("gregtech.tool_action.screwdriver.access_covers"));
tooltip.add(I18n.format("gregtech.tool_action.wrench.set_facing"));
super.addToolUsages(stack, world, tooltip, advanced);
}
@Override
public void setTaped(boolean ignored) {}
@Override
public void storeMaintenanceData(byte ignored1, int ignored2) {}
@Override
public boolean hasMaintenanceData() {
return true;
}
@Override
public Tuple<Byte, Integer> readMaintenanceData() {
return new Tuple<>((byte) 0b111111, 0);
}
@Override
public boolean isFullAuto() {
return true;
}
@Override
public double getDurationMultiplier() {
return 1.0;
}
@Override
public double getTimeMultiplier() {
return 1.0;
}
@Override
public boolean startWithoutProblems() {
return true;
}
@Override
protected boolean openGUIOnRightClick() {
return false;
}
@Override
public MultiblockAbility<IMaintenanceHatch> getAbility() {
return MultiblockAbility.MAINTENANCE_HATCH;
}
@Override
public void registerAbilities(@NotNull AbilityInstances abilityInstances) {
abilityInstances.add(this);
}
@Override
public boolean canPartShare() {
return false;
}
}