Skip to content

Commit

Permalink
The return of achievements
Browse files Browse the repository at this point in the history
- Re-added achievements
- Organised all imports (seemed all over the place)
- Formatted all code (seemed very combined, used the TinkerStyle)
  • Loading branch information
fuj1n committed Sep 9, 2014
1 parent ae2d8d6 commit 80efde6
Show file tree
Hide file tree
Showing 419 changed files with 2,408 additions and 4,146 deletions.
64 changes: 28 additions & 36 deletions src/main/java/tconstruct/TConstruct.java
@@ -1,56 +1,38 @@
package tconstruct;

import java.util.Map;
import java.util.Random;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import net.minecraft.world.gen.structure.MapGenStructureIO;
import net.minecraftforge.common.MinecraftForge;

import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.*;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkCheckHandler;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.VillagerRegistry;
import cpw.mods.fml.common.event.*;
import cpw.mods.fml.common.network.*;
import cpw.mods.fml.common.registry.*;
import cpw.mods.fml.relauncher.Side;
import java.util.*;
import mantle.pulsar.config.ForgeCFG;
import mantle.pulsar.control.PulseManager;
import net.minecraft.world.gen.structure.MapGenStructureIO;
import net.minecraftforge.common.MinecraftForge;
import org.apache.logging.log4j.*;
import tconstruct.achievements.*;
import tconstruct.api.TConstructAPI;
import tconstruct.armor.TinkerArmor;
import tconstruct.armor.player.TPlayerHandler;
import tconstruct.armor.player.TPlayerStats;
import tconstruct.library.TConstructCreativeTab;
import tconstruct.armor.player.*;
import tconstruct.common.TProxyCommon;
import tconstruct.library.TConstructRegistry;
import tconstruct.library.crafting.Detailing;
import tconstruct.library.crafting.LiquidCasting;
import tconstruct.library.*;
import tconstruct.library.crafting.*;
import tconstruct.mechworks.TinkerMechworks;
import tconstruct.mechworks.landmine.behavior.Behavior;
import tconstruct.mechworks.landmine.behavior.stackCombo.SpecialStackHandler;
import tconstruct.plugins.ic2.TinkerIC2;
import tconstruct.plugins.imc.TinkerAE2;
import tconstruct.plugins.imc.TinkerBuildCraft;
import tconstruct.plugins.imc.TinkerMystcraft;
import tconstruct.plugins.imc.TinkerThaumcraft;
import tconstruct.plugins.imc.*;
import tconstruct.plugins.mfr.TinkerMFR;
import tconstruct.plugins.nei.TinkerNEI;
import tconstruct.plugins.te4.TinkerTE4;
import tconstruct.plugins.waila.TinkerWaila;
import tconstruct.smeltery.TinkerSmeltery;
import tconstruct.tools.TinkerTools;
import tconstruct.util.EnvironmentChecks;
import tconstruct.util.config.DimensionBlacklist;
import tconstruct.util.config.PHConstruct;
import tconstruct.util.config.*;
import tconstruct.util.network.PacketPipeline;
import tconstruct.world.TinkerWorld;
import tconstruct.world.gen.SlimeIslandGen;
Expand All @@ -63,8 +45,7 @@
* @author mDiyo
*/

@Mod(modid = "TConstruct", name = "TConstruct", version = "${version}",
dependencies = "required-after:Forge@[10.13,);required-after:Mantle;after:MineFactoryReloaded;after:NotEnoughItems;after:Waila;after:ThermalExpansion")
@Mod(modid = "TConstruct", name = "TConstruct", version = "${version}", dependencies = "required-after:Forge@[10.13,);required-after:Mantle;after:MineFactoryReloaded;after:NotEnoughItems;after:Waila;after:ThermalExpansion")
public class TConstruct
{
public static final String modVersion = "${version}";
Expand Down Expand Up @@ -155,6 +136,11 @@ public void preInit (FMLPreInitializationEvent event)

pulsar.preInit(event);

if (PHConstruct.achievementsEnabled)
{
TAchievements.addDefaultAchievements();
}

if (PHConstruct.addToVillages)
{
// adds to the villager spawner egg
Expand All @@ -166,8 +152,8 @@ public void preInit (FMLPreInitializationEvent event)
MapGenStructureIO.func_143031_a(ComponentToolWorkshop.class, "TConstruct:ToolWorkshopStructure");
MapGenStructureIO.func_143031_a(ComponentSmeltery.class, "TConstruct:SmelteryStructure");
}
TConstructAPI.PROP_NAME=TPlayerStats.PROP_NAME;

TConstructAPI.PROP_NAME = TPlayerStats.PROP_NAME;
}

@EventHandler
Expand All @@ -194,6 +180,12 @@ public void postInit (FMLPostInitializationEvent event)

proxy.initialize();
pulsar.postInit(event);

if (PHConstruct.achievementsEnabled)
{
TAchievements.registerAchievementPane();
MinecraftForge.EVENT_BUS.register(new AchievementEvents());
}
}

public static LiquidCasting getTableCasting ()
Expand Down
76 changes: 76 additions & 0 deletions src/main/java/tconstruct/achievements/AchievementEvents.java
@@ -0,0 +1,76 @@
package tconstruct.achievements;

import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.*;
import net.minecraft.item.crafting.FurnaceRecipes;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.event.entity.living.*;
import tconstruct.items.tools.FryingPan;
import tconstruct.library.event.ToolCraftedEvent;
import tconstruct.library.tools.*;
import tconstruct.tools.logic.ToolForgeLogic;

public class AchievementEvents
{
@SubscribeEvent
public void toolCreate (ToolCraftedEvent event)
{
if (event.player != null)
{
TAchievements.triggerAchievement(event.player, "tconstruct.tinkerer");

if (event.tool != null && event.tool.getItem() instanceof Weapon)
{
TAchievements.triggerAchievement(event.player, "tconstruct.preparedFight");
}

if (event.inventory != null && event.inventory instanceof ToolForgeLogic && event.tool.getItem() instanceof ToolCore && ((ToolCore) event.tool.getItem()).durabilityTypeExtra() != 0)
{
TAchievements.triggerAchievement(event.player, "tconstruct.proTinkerer");
}
}
}

@SubscribeEvent
public void entitySlain (LivingDeathEvent event)
{
if (event.source != null && event.source.getEntity() instanceof EntityPlayer)
{
EntityPlayer murderer = (EntityPlayer) event.source.getEntity();

if (murderer.getHeldItem() != null && murderer.getHeldItem().getItem() instanceof Weapon)
{
TAchievements.triggerAchievement(murderer, "tconstruct.enemySlayer");
}
}
}

@SubscribeEvent
public void entityDrops (LivingDropsEvent event)
{
if (event.source.getEntity() instanceof EntityPlayer)
{
EntityPlayer player = (EntityPlayer) event.source.getEntity();

if (player.getHeldItem() != null && player.getHeldItem().getItem() instanceof FryingPan)
{
for (int i = 0; i < event.drops.size(); i++)
{
ItemStack is = event.drops.get(i).getEntityItem();
if (FurnaceRecipes.smelting().getSmeltingResult(is) != null && FurnaceRecipes.smelting().getSmeltingResult(is).getItem() instanceof ItemFood)
{
NBTTagCompound stackCompound = is.getTagCompound();
if (stackCompound == null)
{
stackCompound = new NBTTagCompound();
}

stackCompound.setBoolean("frypanKill", true);
is.setTagCompound(stackCompound);
}
}
}
}
}
}
101 changes: 101 additions & 0 deletions src/main/java/tconstruct/achievements/TAchievements.java
@@ -0,0 +1,101 @@
package tconstruct.achievements;

import java.util.HashMap;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.stats.Achievement;
import net.minecraft.util.StatCollector;
import net.minecraftforge.common.AchievementPage;
import tconstruct.smeltery.TinkerSmeltery;
import tconstruct.tools.TinkerTools;
import tconstruct.util.config.PHConstruct;

public class TAchievements
{

private static AchievementPage achievementsPage;
private static HashMap<String, Achievement> achievementsList = new HashMap<String, Achievement>();

/**
* Adds an achievement and registers it, so there is no need to call .registerStat
* @param name The name of the achievement
* @param achievement The achievement
*/
public static void addAchievement (String name, Achievement achievement)
{
if (!PHConstruct.achievementsEnabled)
{
return;
}

achievementsList.put(name, achievement.registerStat());
}

/**
* Returns a registered achievement
* @param name The name of the achievement
* @return The achievement
*/
public static Achievement getAchievement (String name)
{
return achievementsList.get(name);
}

/**
* Grants the achievement
* @param player The player that earned the achievement
* @param name The name of the achievement
*/
public static void triggerAchievement (EntityPlayer player, String name)
{
if (!PHConstruct.achievementsEnabled)
{
return;
}

Achievement ach = getAchievement(name);

if (ach != null)
{
player.triggerAchievement(ach);
}
}

/**
* Adds all the achievements included in TConstruct, call before registerAchievementPane is called
*/
public static void addDefaultAchievements ()
{
if (!PHConstruct.achievementsEnabled)
{
return;
}

addAchievement("tconstruct.beginner", new Achievement("tconstruct.beginner", "tconstruct.beginner", 0, 0, TinkerTools.manualBook, null).initIndependentStat());
addAchievement("tconstruct.pattern", new Achievement("tconstruct.pattern", "tconstruct.pattern", 2, 1, TinkerTools.blankPattern, getAchievement("tconstruct.beginner")));
addAchievement("tconstruct.tinkerer", new Achievement("tconstruct.tinkerer", "tconstruct.tinkerer", 2, 2, new ItemStack(TinkerTools.titleIcon, 1, 4096), getAchievement("tconstruct.pattern")));
addAchievement("tconstruct.preparedFight", new Achievement("tconstruct.preparedFight", "tconstruct.preparedFight", 1, 3, new ItemStack(TinkerTools.titleIcon, 1, 4097), getAchievement("tconstruct.tinkerer")));
addAchievement("tconstruct.proTinkerer", new Achievement("tconstruct.proTinkerer", "tconstruct.proTinkerer", 4, 3, new ItemStack(TinkerTools.titleIcon, 1, 4098), getAchievement("tconstruct.tinkerer")));
addAchievement("tconstruct.smelteryMaker", new Achievement("tconstruct.smelteryMaker", "tconstruct.smelteryMaker", -2, -1, TinkerSmeltery.smeltery, getAchievement("tconstruct.beginner")));
addAchievement("tconstruct.enemySlayer", new Achievement("tconstruct.enemySlayer", "tconstruct.enemySlayer", 0, 5, new ItemStack(TinkerTools.titleIcon, 1, 4099), getAchievement("tconstruct.preparedFight")));
addAchievement("tconstruct.dualConvenience", new Achievement("tconstruct.dualConvenience", "tconstruct.dualConvenience", 0, 7, new ItemStack(TinkerTools.titleIcon, 1, 4100), getAchievement("tconstruct.enemySlayer")).setSpecial());
}

/**
* Should be called after all the achievements are loaded (PostInit would be good)
*/
public static void registerAchievementPane ()
{
if (!PHConstruct.achievementsEnabled)
{
return;
}

Achievement[] achievements = new Achievement[achievementsList.size()];

achievements = achievementsList.values().toArray(achievements);
achievementsPage = new AchievementPage(StatCollector.translateToLocal("tconstruct.achievementPage.name"), achievements);
AchievementPage.registerAchievementPage(achievementsPage);
}

}
@@ -0,0 +1,29 @@
package tconstruct.achievements.items;

import mantle.items.abstracts.CraftingItem;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import tconstruct.achievements.TAchievements;

public class CraftAchievementItem extends CraftingItem
{
public String grantedAchievement = "";

public CraftAchievementItem(String[] names, String[] tex, String folder, String modTexturePrefix, CreativeTabs tab, String tachievement)
{
super(names, tex, folder, modTexturePrefix, tab);

grantedAchievement = tachievement;
}

@Override
public void onCreated (ItemStack item, World world, EntityPlayer player)
{
if (grantedAchievement != null && !grantedAchievement.equals(""))
{
TAchievements.triggerAchievement(player, grantedAchievement);
}
}
}
Expand Up @@ -5,6 +5,7 @@

public interface IPlayerExtendedInventoryWrapper
{
public IInventory getKnapsackInventory(EntityPlayer player);
public IInventory getAccessoryInventory(EntityPlayer player);
public IInventory getKnapsackInventory (EntityPlayer player);

public IInventory getAccessoryInventory (EntityPlayer player);
}
4 changes: 2 additions & 2 deletions src/main/java/tconstruct/api/TConstructAPI.java
Expand Up @@ -6,8 +6,8 @@ public class TConstructAPI
{
public static String PROP_NAME;

public static IPlayerExtendedInventoryWrapper getInventoryWrapper(EntityPlayer player)
public static IPlayerExtendedInventoryWrapper getInventoryWrapper (EntityPlayer player)
{
return (IPlayerExtendedInventoryWrapper) player.getExtendedProperties(PROP_NAME);
return (IPlayerExtendedInventoryWrapper) player.getExtendedProperties(PROP_NAME);
}
}
10 changes: 4 additions & 6 deletions src/main/java/tconstruct/armor/ArmorAbilities.java
@@ -1,17 +1,15 @@
package tconstruct.armor;

import java.util.ArrayList;
import java.util.List;

import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent;
import java.util.*;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import tconstruct.armor.items.TravelGear;
import tconstruct.armor.player.TPlayerStats;
import tconstruct.library.modifier.IModifyable;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent;

public class ArmorAbilities
{
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/tconstruct/armor/ArmorAbilitiesClient.java
@@ -1,15 +1,15 @@
package tconstruct.armor;

import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import tconstruct.armor.player.TPlayerStats;
import tconstruct.client.ArmorControls;
import tconstruct.library.modifier.IModifyable;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent;

public class ArmorAbilitiesClient
{
Expand Down

0 comments on commit 80efde6

Please sign in to comment.