1
+ /*
2
+ * Copyright (c) 2022 Team Galacticraft
3
+ *
4
+ * Licensed under the MIT license.
5
+ * See LICENSE file in the project root for details.
6
+ */
7
+
1
8
package micdoodle8 .mods .galacticraft .core .energy .tile ;
2
9
3
10
import buildcraft .api .mj .IMjConnector ;
11
+ import buildcraft .api .mj .IMjReceiver ;
4
12
import buildcraft .api .mj .MjAPI ;
5
13
import ic2 .api .energy .tile .IEnergyAcceptor ;
6
14
import ic2 .api .energy .tile .IEnergyEmitter ;
15
+ import ic2 .api .energy .tile .IEnergySink ;
7
16
import ic2 .api .energy .tile .IEnergySource ;
8
17
import ic2 .api .energy .tile .IEnergyTile ;
9
18
import javax .annotation .Nonnull ;
19
+ import mekanism .api .energy .IStrictEnergyAcceptor ;
10
20
import micdoodle8 .mods .galacticraft .api .transmission .tile .IConductor ;
11
21
import micdoodle8 .mods .galacticraft .api .transmission .tile .IElectrical ;
12
22
import micdoodle8 .mods .galacticraft .api .vector .BlockVec3 ;
15
25
import micdoodle8 .mods .galacticraft .core .util .CompatibilityManager ;
16
26
import net .minecraft .tileentity .TileEntity ;
17
27
import net .minecraft .util .EnumFacing ;
28
+ import net .minecraft .util .ITickable ;
18
29
import net .minecraft .util .math .MathHelper ;
19
30
import net .minecraftforge .common .MinecraftForge ;
20
31
import net .minecraftforge .common .capabilities .Capability ;
21
32
import net .minecraftforge .energy .CapabilityEnergy ;
22
33
import net .minecraftforge .energy .IEnergyStorage ;
34
+ import net .minecraftforge .fml .common .Optional .Interface ;
35
+ import net .minecraftforge .fml .common .Optional .InterfaceList ;
23
36
import net .minecraftforge .fml .common .Optional .Method ;
24
37
import net .minecraftforge .fml .common .eventhandler .Event ;
25
38
26
- public abstract class TileBaseUniversalConductor extends TileBaseConductor implements IEnergyStorage
39
+ @ InterfaceList (value = {
40
+ @ Interface (iface = "net.minecraft.util.ITickable" , modid = CompatibilityManager .modidIC2 ),
41
+ @ Interface (iface = "ic2.api.energy.tile.IEnergyAcceptor" , modid = CompatibilityManager .modidIC2 ),
42
+ @ Interface (iface = "ic2.api.energy.tile.IEnergyEmitter" , modid = CompatibilityManager .modidIC2 ),
43
+ @ Interface (iface = "ic2.api.energy.tile.IEnergySink" , modid = CompatibilityManager .modidIC2 ),
44
+ @ Interface (iface = "mekanism.api.energy.IStrictEnergyAcceptor" , modid = CompatibilityManager .modidMekanism ),
45
+ @ Interface (iface = "buildcraft.api.mj.IMjReceiver" , modid = CompatibilityManager .modBCraftEnergy )
46
+ })
47
+ public abstract class TileBaseUniversalConductor extends TileBaseConductor implements IEnergyStorage , ITickable , IMjReceiver , IEnergyAcceptor , IEnergyEmitter , IEnergySink , IStrictEnergyAcceptor
27
48
{
28
49
29
50
protected boolean isAddedToEnergyNet ;
@@ -40,6 +61,7 @@ public TileEntity[] getAdjacentConnections()
40
61
return EnergyUtil .getAdjacentPowerConnections (this );
41
62
}
42
63
64
+ @ Override
43
65
@ Method (modid = CompatibilityManager .modidIC2 )
44
66
public void update ()
45
67
{
@@ -112,6 +134,7 @@ private void unloadTileIC2()
112
134
}
113
135
}
114
136
137
+ @ Override
115
138
@ Method (modid = CompatibilityManager .modidIC2 )
116
139
public double getDemandedEnergy ()
117
140
{
@@ -135,6 +158,7 @@ public double getDemandedEnergy()
135
158
return 0D ;
136
159
}
137
160
161
+ @ Override
138
162
@ Method (modid = CompatibilityManager .modidIC2 )
139
163
public double injectEnergy (EnumFacing directionFrom , double amount , double voltage )
140
164
{
@@ -159,12 +183,14 @@ public double injectEnergy(EnumFacing directionFrom, double amount, double volta
159
183
return 0D ;
160
184
}
161
185
186
+ @ Override
162
187
@ Method (modid = CompatibilityManager .modidIC2 )
163
188
public int getSinkTier ()
164
189
{
165
190
return 3 ;
166
191
}
167
192
193
+ @ Override
168
194
@ Method (modid = CompatibilityManager .modidIC2 )
169
195
public boolean acceptsEnergyFrom (IEnergyEmitter emitter , EnumFacing side )
170
196
{
@@ -190,6 +216,7 @@ public boolean acceptsEnergyFrom(IEnergyEmitter emitter, EnumFacing side)
190
216
return true ;
191
217
}
192
218
219
+ @ Override
193
220
@ Method (modid = CompatibilityManager .modidIC2 )
194
221
public boolean emitsEnergyTo (IEnergyAcceptor receiver , EnumFacing side )
195
222
{
@@ -270,6 +297,7 @@ public boolean canExtract()
270
297
}
271
298
272
299
// Buildcraft 7
300
+ @ Override
273
301
@ Method (modid = CompatibilityManager .modBCraftEnergy )
274
302
public long getPowerRequested ()
275
303
{
@@ -282,6 +310,7 @@ public long getPowerRequested()
282
310
}
283
311
284
312
// Buildcraft 7
313
+ @ Override
285
314
@ Method (modid = CompatibilityManager .modBCraftEnergy )
286
315
public long receivePower (long microJoules , boolean simulate )
287
316
{
@@ -295,6 +324,7 @@ public long receivePower(long microJoules, boolean simulate)
295
324
}
296
325
297
326
// Buildcraft 7
327
+ @ Override
298
328
@ Method (modid = CompatibilityManager .modBCraftEnergy )
299
329
public boolean canConnect (@ Nonnull IMjConnector other )
300
330
{
@@ -364,6 +394,7 @@ public double transferEnergyToAcceptor(EnumFacing side, double amount)
364
394
return amount - this .getNetwork ().produce ((float ) amount * EnergyConfigHandler .MEKANISM_RATIO , true , 1 , this ) / EnergyConfigHandler .MEKANISM_RATIO ;
365
395
}
366
396
397
+ @ Override
367
398
@ Method (modid = CompatibilityManager .modidMekanism )
368
399
public double acceptEnergy (EnumFacing side , double amount , boolean simulate )
369
400
{
@@ -380,6 +411,7 @@ public double acceptEnergy(EnumFacing side, double amount, boolean simulate)
380
411
return amount - this .getNetwork ().produce ((float ) amount * EnergyConfigHandler .MEKANISM_RATIO , !simulate , 1 , this ) / EnergyConfigHandler .MEKANISM_RATIO ;
381
412
}
382
413
414
+ @ Override
383
415
@ Method (modid = CompatibilityManager .modidMekanism )
384
416
public boolean canReceiveEnergy (EnumFacing side )
385
417
{
0 commit comments