Skip to content

Commit b0d395f

Browse files
committed
fix: re-add InterfaceList's
1 parent e10fe7b commit b0d395f

File tree

6 files changed

+155
-46
lines changed

6 files changed

+155
-46
lines changed

src/main/java/micdoodle8/mods/galacticraft/core/energy/tile/TileBaseElectricBlock.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
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+
18
package micdoodle8.mods.galacticraft.core.energy.tile;
29

310
import com.google.common.collect.Lists;
@@ -24,7 +31,8 @@
2431
import net.minecraftforge.fml.common.Optional.Method;
2532
import net.minecraftforge.fml.relauncher.Side;
2633

27-
public abstract class TileBaseElectricBlock extends TileBaseUniversalElectrical implements IDisableableMachine, IConnector
34+
@Interface(iface = "ic2.api.tile.IWrenchable", modid = CompatibilityManager.modidIC2, striprefs = true)
35+
public abstract class TileBaseElectricBlock extends TileBaseUniversalElectrical implements IDisableableMachine, IConnector, IWrenchable
2836
{
2937

3038
@NetworkedField(targetSide = Side.CLIENT)
@@ -147,24 +155,28 @@ public boolean getDisabled(int index)
147155
return this.disabled;
148156
}
149157

158+
@Override
150159
@Method(modid = CompatibilityManager.modidIC2)
151160
public EnumFacing getFacing(World world, BlockPos pos)
152161
{
153162
return this.getFront();
154163
}
155164

165+
@Override
156166
@Method(modid = CompatibilityManager.modidIC2)
157167
public boolean setFacing(World world, BlockPos pos, EnumFacing newDirection, EntityPlayer player)
158168
{
159169
return false;
160170
}
161171

172+
@Override
162173
@Method(modid = CompatibilityManager.modidIC2)
163174
public boolean wrenchCanRemove(World world, BlockPos pos, EntityPlayer player)
164175
{
165176
return false;
166177
}
167178

179+
@Override
168180
@Method(modid = CompatibilityManager.modidIC2)
169181
public List<ItemStack> getWrenchDrops(World world, BlockPos pos, IBlockState state, TileEntity te, EntityPlayer player, int fortune)
170182
{

src/main/java/micdoodle8/mods/galacticraft/core/energy/tile/TileBaseUniversalConductor.java

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,22 @@
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+
18
package micdoodle8.mods.galacticraft.core.energy.tile;
29

310
import buildcraft.api.mj.IMjConnector;
11+
import buildcraft.api.mj.IMjReceiver;
412
import buildcraft.api.mj.MjAPI;
513
import ic2.api.energy.tile.IEnergyAcceptor;
614
import ic2.api.energy.tile.IEnergyEmitter;
15+
import ic2.api.energy.tile.IEnergySink;
716
import ic2.api.energy.tile.IEnergySource;
817
import ic2.api.energy.tile.IEnergyTile;
918
import javax.annotation.Nonnull;
19+
import mekanism.api.energy.IStrictEnergyAcceptor;
1020
import micdoodle8.mods.galacticraft.api.transmission.tile.IConductor;
1121
import micdoodle8.mods.galacticraft.api.transmission.tile.IElectrical;
1222
import micdoodle8.mods.galacticraft.api.vector.BlockVec3;
@@ -15,15 +25,26 @@
1525
import micdoodle8.mods.galacticraft.core.util.CompatibilityManager;
1626
import net.minecraft.tileentity.TileEntity;
1727
import net.minecraft.util.EnumFacing;
28+
import net.minecraft.util.ITickable;
1829
import net.minecraft.util.math.MathHelper;
1930
import net.minecraftforge.common.MinecraftForge;
2031
import net.minecraftforge.common.capabilities.Capability;
2132
import net.minecraftforge.energy.CapabilityEnergy;
2233
import net.minecraftforge.energy.IEnergyStorage;
34+
import net.minecraftforge.fml.common.Optional.Interface;
35+
import net.minecraftforge.fml.common.Optional.InterfaceList;
2336
import net.minecraftforge.fml.common.Optional.Method;
2437
import net.minecraftforge.fml.common.eventhandler.Event;
2538

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
2748
{
2849

2950
protected boolean isAddedToEnergyNet;
@@ -40,6 +61,7 @@ public TileEntity[] getAdjacentConnections()
4061
return EnergyUtil.getAdjacentPowerConnections(this);
4162
}
4263

64+
@Override
4365
@Method(modid = CompatibilityManager.modidIC2)
4466
public void update()
4567
{
@@ -112,6 +134,7 @@ private void unloadTileIC2()
112134
}
113135
}
114136

137+
@Override
115138
@Method(modid = CompatibilityManager.modidIC2)
116139
public double getDemandedEnergy()
117140
{
@@ -135,6 +158,7 @@ public double getDemandedEnergy()
135158
return 0D;
136159
}
137160

161+
@Override
138162
@Method(modid = CompatibilityManager.modidIC2)
139163
public double injectEnergy(EnumFacing directionFrom, double amount, double voltage)
140164
{
@@ -159,12 +183,14 @@ public double injectEnergy(EnumFacing directionFrom, double amount, double volta
159183
return 0D;
160184
}
161185

186+
@Override
162187
@Method(modid = CompatibilityManager.modidIC2)
163188
public int getSinkTier()
164189
{
165190
return 3;
166191
}
167192

193+
@Override
168194
@Method(modid = CompatibilityManager.modidIC2)
169195
public boolean acceptsEnergyFrom(IEnergyEmitter emitter, EnumFacing side)
170196
{
@@ -190,6 +216,7 @@ public boolean acceptsEnergyFrom(IEnergyEmitter emitter, EnumFacing side)
190216
return true;
191217
}
192218

219+
@Override
193220
@Method(modid = CompatibilityManager.modidIC2)
194221
public boolean emitsEnergyTo(IEnergyAcceptor receiver, EnumFacing side)
195222
{
@@ -270,6 +297,7 @@ public boolean canExtract()
270297
}
271298

272299
// Buildcraft 7
300+
@Override
273301
@Method(modid = CompatibilityManager.modBCraftEnergy)
274302
public long getPowerRequested()
275303
{
@@ -282,6 +310,7 @@ public long getPowerRequested()
282310
}
283311

284312
// Buildcraft 7
313+
@Override
285314
@Method(modid = CompatibilityManager.modBCraftEnergy)
286315
public long receivePower(long microJoules, boolean simulate)
287316
{
@@ -295,6 +324,7 @@ public long receivePower(long microJoules, boolean simulate)
295324
}
296325

297326
// Buildcraft 7
327+
@Override
298328
@Method(modid = CompatibilityManager.modBCraftEnergy)
299329
public boolean canConnect(@Nonnull IMjConnector other)
300330
{
@@ -364,6 +394,7 @@ public double transferEnergyToAcceptor(EnumFacing side, double amount)
364394
return amount - this.getNetwork().produce((float) amount * EnergyConfigHandler.MEKANISM_RATIO, true, 1, this) / EnergyConfigHandler.MEKANISM_RATIO;
365395
}
366396

397+
@Override
367398
@Method(modid = CompatibilityManager.modidMekanism)
368399
public double acceptEnergy(EnumFacing side, double amount, boolean simulate)
369400
{
@@ -380,6 +411,7 @@ public double acceptEnergy(EnumFacing side, double amount, boolean simulate)
380411
return amount - this.getNetwork().produce((float) amount * EnergyConfigHandler.MEKANISM_RATIO, !simulate, 1, this) / EnergyConfigHandler.MEKANISM_RATIO;
381412
}
382413

414+
@Override
383415
@Method(modid = CompatibilityManager.modidMekanism)
384416
public boolean canReceiveEnergy(EnumFacing side)
385417
{

src/main/java/micdoodle8/mods/galacticraft/core/energy/tile/TileBaseUniversalElectrical.java

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
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+
18
package micdoodle8.mods.galacticraft.core.energy.tile;
29

310
import buildcraft.api.mj.IMjConnector;
411
import buildcraft.api.mj.IMjReceiver;
512
import buildcraft.api.mj.MjAPI;
13+
import ic2.api.energy.tile.IEnergyAcceptor;
614
import ic2.api.energy.tile.IEnergyEmitter;
15+
import ic2.api.energy.tile.IEnergySink;
716
import ic2.api.energy.tile.IEnergyTile;
817
import ic2.api.item.ElectricItem;
918
import ic2.api.item.IElectricItem;
@@ -12,6 +21,8 @@
1221
import javax.annotation.Nonnull;
1322
import mekanism.api.energy.EnergizedItemManager;
1423
import mekanism.api.energy.IEnergizedItem;
24+
import mekanism.api.energy.IStrictEnergyAcceptor;
25+
import mekanism.api.energy.IStrictEnergyOutputter;
1526
import micdoodle8.mods.galacticraft.api.item.ElectricItemHelper;
1627
import micdoodle8.mods.galacticraft.api.item.IItemElectric;
1728
import micdoodle8.mods.galacticraft.api.transmission.tile.IConductor;
@@ -28,11 +39,19 @@
2839
import net.minecraftforge.common.capabilities.Capability;
2940
import net.minecraftforge.energy.CapabilityEnergy;
3041
import net.minecraftforge.fml.common.Optional.Interface;
42+
import net.minecraftforge.fml.common.Optional.InterfaceList;
3143
import net.minecraftforge.fml.common.Optional.Method;
3244
import net.minecraftforge.fml.common.eventhandler.Event;
3345
import net.minecraftforge.items.CapabilityItemHandler;
3446

35-
public abstract class TileBaseUniversalElectrical extends EnergyStorageTile
47+
@InterfaceList(value = {
48+
@Interface(iface = "ic2.api.energy.tile.IEnergySink", modid = CompatibilityManager.modidIC2),
49+
@Interface(iface = "ic2.api.energy.tile.IEnergyAcceptor", modid = CompatibilityManager.modidIC2),
50+
@Interface(iface = "buildcraft.api.mj.IMjReceiver", modid = CompatibilityManager.modBCraftEnergy),
51+
@Interface(iface = "mekanism.api.energy.IStrictEnergyOutputter", modid = CompatibilityManager.modidMekanism),
52+
@Interface(iface = "mekanism.api.energy.IStrictEnergyAcceptor", modid = CompatibilityManager.modidMekanism)
53+
})
54+
public abstract class TileBaseUniversalElectrical extends EnergyStorageTile implements IEnergySink, IEnergyAcceptor, IMjReceiver, IStrictEnergyOutputter, IStrictEnergyAcceptor
3655
{
3756

3857
protected boolean isAddedToEnergyNet;
@@ -244,6 +263,7 @@ private void unloadTileIC2()
244263
}
245264
}
246265

266+
@Override
247267
@Method(modid = CompatibilityManager.modidIC2)
248268
public double getDemandedEnergy()
249269
{
@@ -272,6 +292,7 @@ public double getDemandedEnergy()
272292
return 0D;
273293
}
274294

295+
@Override
275296
@Method(modid = CompatibilityManager.modidIC2)
276297
public double injectEnergy(EnumFacing direction, double amount, double voltage)
277298
{
@@ -299,12 +320,14 @@ public double injectEnergy(EnumFacing direction, double amount, double voltage)
299320
return amount;
300321
}
301322

323+
@Override
302324
@Method(modid = CompatibilityManager.modidIC2)
303325
public int getSinkTier()
304326
{
305327
return 3;
306328
}
307329

330+
@Override
308331
@Method(modid = CompatibilityManager.modidIC2)
309332
public boolean acceptsEnergyFrom(IEnergyEmitter emitter, EnumFacing direction)
310333
{
@@ -320,12 +343,14 @@ public boolean acceptsEnergyFrom(IEnergyEmitter emitter, EnumFacing direction)
320343
}
321344

322345
// BuildCraft
346+
@Override
323347
public boolean canReceive()
324348
{
325349
return !EnergyConfigHandler.disableBuildCraftInput;
326350
}
327351

328352
// Buildcraft 7
353+
@Override
329354
@Method(modid = CompatibilityManager.modBCraftEnergy)
330355
public long getPowerRequested()
331356
{
@@ -340,6 +365,7 @@ public long getPowerRequested()
340365
}
341366

342367
// Buildcraft 7
368+
@Override
343369
@Method(modid = CompatibilityManager.modBCraftEnergy)
344370
public long receivePower(long microJoules, boolean simulate)
345371
{
@@ -353,6 +379,7 @@ public long receivePower(long microJoules, boolean simulate)
353379
}
354380

355381
// Buildcraft 7
382+
@Override
356383
@Method(modid = CompatibilityManager.modBCraftEnergy)
357384
public boolean canConnect(@Nonnull IMjConnector other)
358385
{
@@ -405,12 +432,14 @@ public double transferEnergyToAcceptor(EnumFacing from, double amount)
405432
return this.receiveElectricity(from, (float) amount * EnergyConfigHandler.MEKANISM_RATIO, 1, true) / EnergyConfigHandler.MEKANISM_RATIO;
406433
}
407434

435+
@Override
408436
@Method(modid = CompatibilityManager.modidMekanism)
409437
public boolean canReceiveEnergy(EnumFacing side)
410438
{
411439
return this.getElectricalInputDirections().contains(side);
412440
}
413441

442+
@Override
414443
@Method(modid = CompatibilityManager.modidMekanism)
415444
public double acceptEnergy(EnumFacing side, double amount, boolean simulate)
416445
{
@@ -449,12 +478,14 @@ public double getMaxEnergy()
449478
return this.getMaxEnergyStoredGC() / EnergyConfigHandler.MEKANISM_RATIO;
450479
}
451480

481+
@Override
452482
@Method(modid = CompatibilityManager.modidMekanism)
453483
public boolean canOutputEnergy(EnumFacing side)
454484
{
455485
return this.getElectricalOutputDirections().contains(side);
456486
}
457487

488+
@Override
458489
@Method(modid = CompatibilityManager.modidMekanism)
459490
public double pullEnergy(EnumFacing side, double amount, boolean simulate)
460491
{

0 commit comments

Comments
 (0)