diff options
author | Raven Szewczyk <git@eigenraven.me> | 2024-05-24 19:50:35 +0100 |
---|---|---|
committer | Raven Szewczyk <git@eigenraven.me> | 2024-05-24 19:50:35 +0100 |
commit | 6d1b2216464d4dad449ac6fcfec476832224a55e (patch) | |
tree | 526a0c15f7056313c80e6c0386e025e9b3f61781 /src/main/java/gtPlusPlus/core/common | |
parent | b5d35f40afa606ed1b07061dad82e0521a59c186 (diff) | |
download | GT5-Unofficial-6d1b2216464d4dad449ac6fcfec476832224a55e.tar.gz GT5-Unofficial-6d1b2216464d4dad449ac6fcfec476832224a55e.tar.bz2 GT5-Unofficial-6d1b2216464d4dad449ac6fcfec476832224a55e.zip |
Merge addon sources
Diffstat (limited to 'src/main/java/gtPlusPlus/core/common')
7 files changed, 433 insertions, 0 deletions
diff --git a/src/main/java/gtPlusPlus/core/common/CommonProxy.java b/src/main/java/gtPlusPlus/core/common/CommonProxy.java new file mode 100644 index 0000000000..d52b3aa112 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/common/CommonProxy.java @@ -0,0 +1,210 @@ +package gtPlusPlus.core.common; + +import net.minecraft.entity.monster.EntityBlaze; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.client.IItemRenderer; + +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLLoadCompleteEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import cpw.mods.fml.common.event.FMLServerStartingEvent; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import cpw.mods.fml.common.registry.GameRegistry; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.api.objects.data.AutoMap; +import gtPlusPlus.api.objects.data.Pair; +import gtPlusPlus.core.block.ModBlocks; +import gtPlusPlus.core.creative.AddToCreativeTab; +import gtPlusPlus.core.entity.InternalEntityRegistry; +import gtPlusPlus.core.handler.BookHandler; +import gtPlusPlus.core.handler.BurnableFuelHandler; +import gtPlusPlus.core.handler.COMPAT_HANDLER; +import gtPlusPlus.core.handler.COMPAT_IntermodStaging; +import gtPlusPlus.core.handler.GuiHandler; +import gtPlusPlus.core.handler.events.EnderDragonDeathHandler; +import gtPlusPlus.core.handler.events.EntityDeathHandler; +import gtPlusPlus.core.handler.events.GeneralTooltipEventHandler; +import gtPlusPlus.core.handler.events.PlayerSleepEventHandler; +import gtPlusPlus.core.item.ModItems; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.recipe.common.CI; +import gtPlusPlus.core.tileentities.ModTileEntities; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.minecraft.EntityUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.reflect.ReflectionUtils; +import gtPlusPlus.preloader.CORE_Preloader; +import gtPlusPlus.xmod.gregtech.api.util.SpecialBehaviourTooltipHandler; +import gtPlusPlus.xmod.gregtech.recipes.GregtechRecipeAdder; +import gtPlusPlus.xmod.ic2.CustomInternalName; + +public class CommonProxy { + + public CommonProxy() { + // Should Register Gregtech Materials I've Made + Utils.registerEvent(this); + } + + public void preInit(final FMLPreInitializationEvent e) { + Logger.INFO("Doing some house cleaning."); + CORE.RA = new GregtechRecipeAdder(); + Logger.INFO("Created Gregtech recipe handler."); + if (!CORE_Preloader.DEBUG_MODE) { + Logger.WARNING("Development mode not enabled."); + } else if (CORE_Preloader.DEBUG_MODE) { + Logger.INFO("Development mode enabled."); + } else { + Logger.WARNING("Development mode not set."); + } + + AddToCreativeTab.initialiseTabs(); + CustomInternalName.init(); + + ModItems.init(); + ModBlocks.init(); + CI.preInit(); + COMPAT_IntermodStaging.preInit(e); + BookHandler.run(); + // Registration of entities and renderers + Logger.INFO("[Proxy] Calling Entity registration."); + registerEntities(); + Logger.INFO("[Proxy] Calling Tile Entity registration."); + registerTileEntities(); + + Logger.INFO("[Proxy] Calling Render registration."); + registerRenderThings(); + } + + public void init(final FMLInitializationEvent e) { + CI.init(); + + Utils.registerEvent(new GeneralTooltipEventHandler()); + // Handles Tooltips for items giving custom multiblock behaviour + Utils.registerEvent(new SpecialBehaviourTooltipHandler()); + // Handles Sleep Benefits + PlayerSleepEventHandler.init(); + // Handles Magic Feather + Utils.registerEvent(ModItems.itemMagicFeather); + + Utils.registerEvent(new EnderDragonDeathHandler()); + Utils.registerEvent(new EntityDeathHandler()); + + // Compat Handling + COMPAT_HANDLER.registerMyModsOreDictEntries(); + COMPAT_HANDLER.intermodOreDictionarySupport(); + COMPAT_IntermodStaging.init(e); + } + + public void postInit(final FMLPostInitializationEvent e) { + + // Make Burnables burnable + if (!CORE.burnables.isEmpty()) { + BurnableFuelHandler fuelHandler = new BurnableFuelHandler(); + GameRegistry.registerFuelHandler(fuelHandler); + Logger.INFO( + "[Fuel Handler] Registering " + fuelHandler.getClass() + .getName()); + } + + // Compat Handling + Logger.INFO("Removing recipes from other mods."); + COMPAT_HANDLER.RemoveRecipesFromOtherMods(); + Logger.INFO("Initialising Handler, Then Adding Recipes"); + COMPAT_HANDLER.InitialiseHandlerThenAddRecipes(); + Logger.INFO("Loading Intermod staging."); + COMPAT_IntermodStaging.postInit(e); + Logger.INFO("Loading queued recipes."); + COMPAT_HANDLER.runQueuedRecipes(); + Logger.INFO("Registering custom mob drops."); + registerCustomMobDrops(); + + // Moved last, to prevent recipes being generated post initialisation. + Logger.INFO("Loading Gregtech API recipes."); + COMPAT_HANDLER.startLoadingGregAPIBasedRecipes(); + } + + public void serverStarting(final FMLServerStartingEvent e) { + COMPAT_HANDLER.InitialiseLateHandlerThenAddRecipes(); + } + + public void onLoadComplete(FMLLoadCompleteEvent event) { + COMPAT_IntermodStaging.onLoadComplete(event); + COMPAT_HANDLER.onLoadComplete(event); + } + + public void registerNetworkStuff() { + GuiHandler.init(); + } + + public void registerEntities() { + InternalEntityRegistry.registerEntities(); + } + + public void registerTileEntities() { + ModTileEntities.init(); + } + + public void registerRenderThings() {} + + public int addArmor(final String armor) { + return 0; + } + + public void registerCustomMobDrops() { + + // Blazes + if (ItemUtils.doesOreDictHaveEntryFor("dustPyrotheum")) { + EntityUtils.registerDropsForMob( + EntityBlaze.class, + ItemUtils.getItemStackOfAmountFromOreDict("dustPyrotheum", 1), + 1, + 10); + EntityUtils.registerDropsForMob( + EntityBlaze.class, + ItemUtils.getItemStackOfAmountFromOreDict("dustPyrotheum", 1), + 1, + 10); + } + + // GalaxySpace Support + if (ReflectionUtils.doesClassExist("galaxyspace.core.entity.mob.EntityEvolvedColdBlaze")) { + Class<?> aColdBlaze = ReflectionUtils.getClass("galaxyspace.core.entity.mob.EntityEvolvedColdBlaze"); + ItemStack aSmallBlizz, aTinyBlizz, aSmallCryo, aTinyCryo; + aSmallBlizz = ItemUtils.getItemStackOfAmountFromOreDict("dustSmallBlizz", 1); + aTinyBlizz = ItemUtils.getItemStackOfAmountFromOreDict("dustTinyBlizz", 1); + aSmallCryo = ItemUtils.getItemStackOfAmountFromOreDict("dustSmallCryotheum", 1); + aTinyCryo = ItemUtils.getItemStackOfAmountFromOreDict("dustTinyCryotheum", 1); + EntityUtils + .registerDropsForMob(aColdBlaze, ItemUtils.getItemStackOfAmountFromOreDict("stickBlizz", 1), 2, 500); + if (aSmallBlizz != null) { + EntityUtils.registerDropsForMob(aColdBlaze, aSmallBlizz, 2, 750); + } + if (aTinyBlizz != null) { + EntityUtils.registerDropsForMob(aColdBlaze, aTinyBlizz, 4, 1500); + } + if (aSmallCryo != null) { + EntityUtils.registerDropsForMob(aColdBlaze, aSmallCryo, 1, 50); + } + if (aTinyCryo != null) { + EntityUtils.registerDropsForMob(aColdBlaze, aTinyCryo, 2, 100); + } + } + } + + protected final AutoMap<Pair<Item, IItemRenderer>> mItemRenderMappings = new AutoMap<>(); + + public World getClientWorld() { + return null; + } + + /** + * Returns a side-appropriate EntityPlayer for use during message handling + */ + public EntityPlayer getPlayerEntity(MessageContext ctx) { + return ctx.getServerHandler().playerEntity; + } +} diff --git a/src/main/java/gtPlusPlus/core/common/compat/COMPAT_Baubles.java b/src/main/java/gtPlusPlus/core/common/compat/COMPAT_Baubles.java new file mode 100644 index 0000000000..e90596c876 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/common/compat/COMPAT_Baubles.java @@ -0,0 +1,58 @@ +package gtPlusPlus.core.common.compat; + +import static gregtech.api.enums.Mods.Baubles; +import static gregtech.client.GT_TooltipHandler.Tier.EV; +import static gregtech.client.GT_TooltipHandler.Tier.HV; +import static gregtech.client.GT_TooltipHandler.Tier.IV; +import static gregtech.client.GT_TooltipHandler.Tier.LV; +import static gregtech.client.GT_TooltipHandler.Tier.LuV; +import static gregtech.client.GT_TooltipHandler.Tier.MV; +import static gregtech.client.GT_TooltipHandler.Tier.UHV; +import static gregtech.client.GT_TooltipHandler.Tier.UV; +import static gregtech.client.GT_TooltipHandler.Tier.ZPM; +import static gregtech.client.GT_TooltipHandler.registerTieredTooltip; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; + +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.item.ModItems; +import gtPlusPlus.core.item.bauble.BatteryPackBaseBauble; +import gtPlusPlus.core.item.bauble.FireProtectionBauble; +import gtPlusPlus.core.item.general.ItemCloakingDevice; +import gtPlusPlus.core.item.general.ItemHealingDevice; + +public class COMPAT_Baubles { + + public static void run() { + if (Baubles.isModLoaded()) { + baublesLoaded(); + } + } + + public static void baublesLoaded() { + Logger.INFO("Baubles Found - Loading Wearables."); + ModItems.itemPersonalCloakingDevice = new ItemCloakingDevice(0); + ModItems.itemPersonalHealingDevice = new ItemHealingDevice(); + ModItems.itemSupremePizzaGloves = new FireProtectionBauble(); + + ModItems.itemChargePack_Low_1 = new BatteryPackBaseBauble(1); + registerTieredTooltip(new ItemStack(ModItems.itemChargePack_Low_1, 1, OreDictionary.WILDCARD_VALUE), LV); + ModItems.itemChargePack_Low_2 = new BatteryPackBaseBauble(2); + registerTieredTooltip(new ItemStack(ModItems.itemChargePack_Low_2, 1, OreDictionary.WILDCARD_VALUE), MV); + ModItems.itemChargePack_Low_3 = new BatteryPackBaseBauble(3); + registerTieredTooltip(new ItemStack(ModItems.itemChargePack_Low_3, 1, OreDictionary.WILDCARD_VALUE), HV); + ModItems.itemChargePack_Low_4 = new BatteryPackBaseBauble(4); + registerTieredTooltip(new ItemStack(ModItems.itemChargePack_Low_4, 1, OreDictionary.WILDCARD_VALUE), EV); + ModItems.itemChargePack_Low_5 = new BatteryPackBaseBauble(5); + registerTieredTooltip(new ItemStack(ModItems.itemChargePack_Low_5, 1, OreDictionary.WILDCARD_VALUE), IV); + ModItems.itemChargePack_High_1 = new BatteryPackBaseBauble(6); + registerTieredTooltip(new ItemStack(ModItems.itemChargePack_High_1, 1, OreDictionary.WILDCARD_VALUE), LuV); + ModItems.itemChargePack_High_2 = new BatteryPackBaseBauble(7); + registerTieredTooltip(new ItemStack(ModItems.itemChargePack_High_2, 1, OreDictionary.WILDCARD_VALUE), ZPM); + ModItems.itemChargePack_High_3 = new BatteryPackBaseBauble(8); + registerTieredTooltip(new ItemStack(ModItems.itemChargePack_High_3, 1, OreDictionary.WILDCARD_VALUE), UV); + ModItems.itemChargePack_High_4 = new BatteryPackBaseBauble(9); + registerTieredTooltip(new ItemStack(ModItems.itemChargePack_High_4, 1, OreDictionary.WILDCARD_VALUE), UHV); + } +} diff --git a/src/main/java/gtPlusPlus/core/common/compat/COMPAT_ExtraUtils.java b/src/main/java/gtPlusPlus/core/common/compat/COMPAT_ExtraUtils.java new file mode 100644 index 0000000000..f61c70ab5b --- /dev/null +++ b/src/main/java/gtPlusPlus/core/common/compat/COMPAT_ExtraUtils.java @@ -0,0 +1,18 @@ +package gtPlusPlus.core.common.compat; + +import net.minecraft.item.ItemStack; + +import gtPlusPlus.core.recipe.RECIPES_Tools; +import gtPlusPlus.core.util.minecraft.ItemUtils; + +public class COMPAT_ExtraUtils { + + public static void OreDict() { + RECIPES_Tools.RECIPE_DivisionSigil = new ItemStack(ItemUtils.getItemFromFQRN("ExtraUtilities:divisionSigil")); + run(); + } + + private static void run() { + ItemUtils.getItemForOreDict("ExtraUtilities:bedrockiumIngot", "ingotBedrockium", "Bedrockium Ingot", 0); + } +} diff --git a/src/main/java/gtPlusPlus/core/common/compat/COMPAT_HarvestCraft.java b/src/main/java/gtPlusPlus/core/common/compat/COMPAT_HarvestCraft.java new file mode 100644 index 0000000000..9a9557e418 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/common/compat/COMPAT_HarvestCraft.java @@ -0,0 +1,14 @@ +package gtPlusPlus.core.common.compat; + +import gtPlusPlus.xmod.pamsharvest.fishtrap.FishTrapHandler; + +public class COMPAT_HarvestCraft { + + public static void OreDict() { + run(); + } + + private static void run() { + FishTrapHandler.pamsHarvestCraftCompat(); + } +} diff --git a/src/main/java/gtPlusPlus/core/common/compat/COMPAT_IC2.java b/src/main/java/gtPlusPlus/core/common/compat/COMPAT_IC2.java new file mode 100644 index 0000000000..c442251a0e --- /dev/null +++ b/src/main/java/gtPlusPlus/core/common/compat/COMPAT_IC2.java @@ -0,0 +1,58 @@ +package gtPlusPlus.core.common.compat; + +import static gtPlusPlus.core.handler.COMPAT_HANDLER.RemoveRecipeQueue; + +import net.minecraft.item.ItemStack; + +import gtPlusPlus.core.lib.CORE.ConfigSwitches; +import gtPlusPlus.core.recipe.ShapedRecipeObject; +import gtPlusPlus.core.util.minecraft.ItemUtils; + +public class COMPAT_IC2 { + + private static ItemStack itemCropnalyzer = ItemUtils.simpleMetaStack("IC2:itemCropnalyzer", 0, 1); + private static ItemStack itemSolarHelmet = ItemUtils.simpleMetaStack("IC2:itemSolarHelmet", 0, 1); + + public static ShapedRecipeObject Cropnalyzer = new ShapedRecipeObject( + "ore:cableGt02Copper", + "ore:cableGt02Copper", + null, + "minecraft:redstone", + "ore:blockGlass", + "minecraft:redstone", + "minecraft:redstone", + "ore:circuitBasic", + "minecraft:redstone", + itemCropnalyzer); + public static ShapedRecipeObject SolarHelmet = new ShapedRecipeObject( + "ore:plateIron", + "ore:plateIron", + "ore:plateIron", + "ore:plateIron", + "gregtech:gt.metaitem.01:32750", + "ore:plateIron", + "ore:craftingWireCopper", + "ore:craftingWireCopper", + "ore:craftingWireCopper", + itemSolarHelmet); + + public static void OreDict() { + run(); + } + + private static void run() { + + if (ConfigSwitches.disableIC2Recipes) { + + // Remove these. + RemoveRecipeQueue.add("IC2:itemCable"); + RemoveRecipeQueue.add("IC2:itemCable:1"); + RemoveRecipeQueue.add("IC2:itemCable:2"); + RemoveRecipeQueue.add("IC2:itemCable:3"); + RemoveRecipeQueue.add("IC2:itemCable:5"); + RemoveRecipeQueue.add("IC2:itemCable:6"); + RemoveRecipeQueue.add("IC2:itemCable:10"); + RemoveRecipeQueue.add("IC2:itemCable:13"); + } + } +} diff --git a/src/main/java/gtPlusPlus/core/common/compat/COMPAT_Thaumcraft.java b/src/main/java/gtPlusPlus/core/common/compat/COMPAT_Thaumcraft.java new file mode 100644 index 0000000000..d9c9fec08e --- /dev/null +++ b/src/main/java/gtPlusPlus/core/common/compat/COMPAT_Thaumcraft.java @@ -0,0 +1,47 @@ +package gtPlusPlus.core.common.compat; + +import static gregtech.api.enums.Mods.ForbiddenMagic; + +import gregtech.api.util.GT_OreDictUnificator; +import gtPlusPlus.core.lib.CORE.ConfigSwitches; +import gtPlusPlus.core.util.minecraft.ItemUtils; + +public class COMPAT_Thaumcraft { + + public static void OreDict() { + + if (ConfigSwitches.enableThaumcraftShardUnification) { + run(); + } + } + + private static void run() { + + for (int i = 0; i <= 6; i++) { + ItemUtils.getItemForOreDict("Thaumcraft:ItemShard", "shardAny", "TC Shard " + i, i); + GT_OreDictUnificator + .registerOre("shardAny", ItemUtils.getItemStackFromFQRN("Thaumcraft:ItemShard:" + i, 1)); + ItemUtils.getItemForOreDict("Thaumcraft:ItemShard", "gemInfusedAnything", "TC Shard " + i, i); + GT_OreDictUnificator + .registerOre("gemInfusedAnything", ItemUtils.getItemStackFromFQRN("Thaumcraft:ItemShard:" + i, 1)); + } + + if (ForbiddenMagic.isModLoaded()) { + for (int i = 0; i <= 6; i++) { + ItemUtils.getItemForOreDict("ForbiddenMagic:NetherShard", "shardAny", "FM Shard " + i, i); + GT_OreDictUnificator + .registerOre("shardAny", ItemUtils.getItemStackFromFQRN("ForbiddenMagic:NetherShard:" + i, 1)); + ItemUtils.getItemForOreDict("ForbiddenMagic:NetherShard", "gemInfusedAnything", "FM Shard " + i, i); + GT_OreDictUnificator.registerOre( + "gemInfusedAnything", + ItemUtils.getItemStackFromFQRN("ForbiddenMagic:NetherShard:" + i, 1)); + } + ItemUtils.getItemForOreDict("ForbiddenMagic:GluttonyShard", "shardAny", "FM Gluttony Shard", 0); + GT_OreDictUnificator + .registerOre("shardAny", ItemUtils.getItemStackFromFQRN("ForbiddenMagic:GluttonyShard", 1)); + ItemUtils.getItemForOreDict("ForbiddenMagic:GluttonyShard", "gemInfusedAnything", "FM Gluttony Shard", 0); + GT_OreDictUnificator + .registerOre("gemInfusedAnything", ItemUtils.getItemStackFromFQRN("ForbiddenMagic:GluttonyShard", 1)); + } + } +} diff --git a/src/main/java/gtPlusPlus/core/common/compat/COMPAT_Witchery.java b/src/main/java/gtPlusPlus/core/common/compat/COMPAT_Witchery.java new file mode 100644 index 0000000000..f6fdd87eec --- /dev/null +++ b/src/main/java/gtPlusPlus/core/common/compat/COMPAT_Witchery.java @@ -0,0 +1,28 @@ +package gtPlusPlus.core.common.compat; + +import static gregtech.api.enums.Mods.Witchery; + +import net.minecraft.item.ItemStack; + +import gregtech.api.util.GT_OreDictUnificator; +import gtPlusPlus.core.util.minecraft.ItemUtils; + +public class COMPAT_Witchery { + + public static void OreDict() { + run(); + } + + private static void run() { + // Koboldite + ItemStack aKobolditeDust = ItemUtils + .getItemStackWithMeta(Witchery.isModLoaded(), "witchery:ingredient", "Koboldite Dust", 148, 1); + ItemStack aKobolditeNugget = ItemUtils + .getItemStackWithMeta(Witchery.isModLoaded(), "witchery:ingredient", "Koboldite Nugget", 149, 1); + ItemStack aKobolditeIngot = ItemUtils + .getItemStackWithMeta(Witchery.isModLoaded(), "witchery:ingredient", "Koboldite Ingot", 150, 1); + if (aKobolditeDust != null) GT_OreDictUnificator.registerOre("dust" + "Koboldite", aKobolditeDust); + if (aKobolditeNugget != null) GT_OreDictUnificator.registerOre("nugget" + "Koboldite", aKobolditeNugget); + if (aKobolditeIngot != null) GT_OreDictUnificator.registerOre("ingot" + "Koboldite", aKobolditeIngot); + } +} |