Skip to content

Commit c837a4e

Browse files
committed
fix(compatibility): actually fix optional iface stripping | fixes #49
1 parent 0f4c313 commit c837a4e

14 files changed

+221
-315
lines changed

src/main/java/micdoodle8/mods/galacticraft/core/GalacticraftCore.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,6 @@ public class GalacticraftCore
232232
public static Planet planetSaturn;
233233
public static Planet planetUranus;
234234
public static Planet planetNeptune;
235-
public static Planet curse;
236235
public static Moon moonMoon;
237236
public static Satellite satelliteSpaceStation;
238237

@@ -510,7 +509,6 @@ public void postInit(FMLPostInitializationEvent event)
510509
}
511510

512511
GCDimensions.MOON = WorldUtil.getDimensionTypeById(ConfigManagerCore.idDimensionMoon);
513-
GCDimensions.CURSE = WorldUtil.getDimensionTypeById(666);
514512

515513
CompatibilityManager.checkForCompatibleMods();
516514
RecipeManagerGC.loadCompatibilityRecipes();

src/main/java/micdoodle8/mods/galacticraft/core/dimension/GCDimensions.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,4 @@ public class GCDimensions
88
public static DimensionType MOON;
99
public static DimensionType ORBIT;
1010
public static DimensionType ORBIT_KEEPLOADED;
11-
public static DimensionType CURSE;
1211
}

src/main/java/micdoodle8/mods/galacticraft/core/dimension/WorldProviderCurse.java

Lines changed: 0 additions & 174 deletions
This file was deleted.

src/main/java/micdoodle8/mods/galacticraft/core/energy/item/ItemElectricBase.java

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
package micdoodle8.mods.galacticraft.core.energy.item;
22

3+
import ic2.api.item.IElectricItem;
34
import ic2.api.item.IElectricItemManager;
5+
import ic2.api.item.ISpecialElectricItem;
46
import java.util.List;
57
import javax.annotation.Nullable;
8+
import mekanism.api.energy.IEnergizedItem;
69
import micdoodle8.mods.galacticraft.api.item.ElectricItemHelper;
710
import micdoodle8.mods.galacticraft.api.item.IItemElectricBase;
811
import micdoodle8.mods.galacticraft.core.GalacticraftCore;
912
import micdoodle8.mods.galacticraft.core.energy.EnergyConfigHandler;
1013
import micdoodle8.mods.galacticraft.core.energy.EnergyDisplayHelper;
1114
import micdoodle8.mods.galacticraft.core.items.ItemBatteryInfinite;
15+
import micdoodle8.mods.galacticraft.core.util.CompatibilityManager;
1216
import net.minecraft.client.util.ITooltipFlag;
1317
import net.minecraft.creativetab.CreativeTabs;
1418
import net.minecraft.entity.player.EntityPlayer;
@@ -20,11 +24,19 @@
2024
import net.minecraft.nbt.NBTTagFloat;
2125
import net.minecraft.util.NonNullList;
2226
import net.minecraft.world.World;
23-
import net.minecraftforge.fml.common.Optional;
27+
import net.minecraftforge.fml.common.Optional.Interface;
28+
import net.minecraftforge.fml.common.Optional.InterfaceList;
29+
import net.minecraftforge.fml.common.Optional.Method;
2430
import net.minecraftforge.fml.common.versioning.DefaultArtifactVersion;
2531
import net.minecraftforge.fml.relauncher.FMLInjectionData;
2632

27-
public abstract class ItemElectricBase extends Item implements IItemElectricBase
33+
//@noformat
34+
@InterfaceList(value = {
35+
@Interface(iface = "ic2.api.item.ISpecialElectricItem", modid = CompatibilityManager.modidIC2),
36+
@Interface(iface = "ic2.api.item.IElectricItem", modid = CompatibilityManager.modidIC2),
37+
@Interface(iface = "mekanism.api.energy.IEnergizedItem", modid = CompatibilityManager.modidMekanism)
38+
})
39+
public abstract class ItemElectricBase extends Item implements IItemElectricBase, ISpecialElectricItem, IElectricItem, IEnergizedItem
2840
{
2941

3042
private static Object itemManagerIC2;
@@ -271,57 +283,53 @@ public static boolean isElectricItemCharged(ItemStack itemstack)
271283

272284
// For RF compatibility
273285

274-
@Optional.Method(modid = "redstoneflux")
275286
public int receiveEnergy(ItemStack container, int maxReceive, boolean simulate)
276287
{
277288
return (int) (this.recharge(container, maxReceive * EnergyConfigHandler.RF_RATIO, !simulate) / EnergyConfigHandler.RF_RATIO);
278289
}
279290

280-
@Optional.Method(modid = "redstoneflux")
281291
public int extractEnergy(ItemStack container, int maxExtract, boolean simulate)
282292
{
283293
return (int) (this.discharge(container, maxExtract / EnergyConfigHandler.TO_RF_RATIO, !simulate) * EnergyConfigHandler.TO_RF_RATIO);
284294
}
285295

286-
@Optional.Method(modid = "redstoneflux")
287296
public int getEnergyStored(ItemStack container)
288297
{
289298
return (int) (this.getElectricityStored(container) * EnergyConfigHandler.TO_RF_RATIO);
290299
}
291300

292-
@Optional.Method(modid = "redstoneflux")
293301
public int getMaxEnergyStored(ItemStack container)
294302
{
295303
return (int) (this.getMaxElectricityStored(container) * EnergyConfigHandler.TO_RF_RATIO);
296304
}
297305

298306
// The following seven methods are for Mekanism compatibility
299307

300-
@Optional.Method(modid = "mekanism")
308+
@Method(modid = CompatibilityManager.modidMekanism)
301309
public double getEnergy(ItemStack itemStack)
302310
{
303311
return this.getElectricityStored(itemStack) * EnergyConfigHandler.TO_MEKANISM_RATIO;
304312
}
305313

306-
@Optional.Method(modid = "mekanism")
314+
@Method(modid = CompatibilityManager.modidMekanism)
307315
public void setEnergy(ItemStack itemStack, double amount)
308316
{
309317
this.setElectricity(itemStack, (float) amount * EnergyConfigHandler.MEKANISM_RATIO);
310318
}
311319

312-
@Optional.Method(modid = "mekanism")
320+
@Method(modid = CompatibilityManager.modidMekanism)
313321
public double getMaxEnergy(ItemStack itemStack)
314322
{
315323
return this.getMaxElectricityStored(itemStack) * EnergyConfigHandler.TO_MEKANISM_RATIO;
316324
}
317325

318-
@Optional.Method(modid = "mekanism")
326+
@Method(modid = CompatibilityManager.modidMekanism)
319327
public double getMaxTransfer(ItemStack itemStack)
320328
{
321329
return this.transferMax * EnergyConfigHandler.TO_MEKANISM_RATIO;
322330
}
323331

324-
@Optional.Method(modid = "mekanism")
332+
@Method(modid = CompatibilityManager.modidMekanism)
325333
public boolean canReceive(ItemStack itemStack)
326334
{
327335
return (itemStack != null && !(itemStack.getItem() instanceof ItemBatteryInfinite));
@@ -334,31 +342,31 @@ public boolean canSend(ItemStack itemStack)
334342

335343
// All the following methods are for IC2 compatibility
336344

337-
@Optional.Method(modid = "ic2")
345+
@Method(modid = CompatibilityManager.modidIC2)
338346
public IElectricItemManager getManager(ItemStack itemstack)
339347
{
340348
return (IElectricItemManager) ItemElectricBase.itemManagerIC2;
341349
}
342350

343-
@Optional.Method(modid = "ic2")
351+
@Method(modid = CompatibilityManager.modidIC2)
344352
public boolean canProvideEnergy(ItemStack itemStack)
345353
{
346354
return true;
347355
}
348356

349-
@Optional.Method(modid = "ic2")
357+
@Method(modid = CompatibilityManager.modidIC2)
350358
public int getTier(ItemStack itemStack)
351359
{
352360
return 1;
353361
}
354362

355-
@Optional.Method(modid = "ic2")
363+
@Method(modid = CompatibilityManager.modidIC2)
356364
public double getMaxCharge(ItemStack itemStack)
357365
{
358366
return this.getMaxElectricityStored(itemStack) / EnergyConfigHandler.IC2_RATIO;
359367
}
360368

361-
@Optional.Method(modid = "ic2")
369+
@Method(modid = CompatibilityManager.modidIC2)
362370
public double getTransferLimit(ItemStack itemStack)
363371
{
364372
return this.transferMax * EnergyConfigHandler.TO_IC2_RATIO;

0 commit comments

Comments
 (0)