diff --git a/api/buildcraft/api/robots/EntityRobotBase.java b/api/buildcraft/api/robots/EntityRobotBase.java index 4c4edef6..efc0ef0f 100755 --- a/api/buildcraft/api/robots/EntityRobotBase.java +++ b/api/buildcraft/api/robots/EntityRobotBase.java @@ -25,7 +25,7 @@ import buildcraft.api.core.IZone; public abstract class EntityRobotBase extends EntityLiving implements IInventory, IFluidHandler { public static final int MAX_ENERGY = 100000; - public static final int SAFETY_ENERGY = MAX_ENERGY / 4; + public static final int SAFETY_ENERGY = MAX_ENERGY / 5; public static final long NULL_ROBOT_ID = Long.MAX_VALUE; public EntityRobotBase(World par1World) { diff --git a/common/buildcraft/core/lib/AchievementManager.java b/common/buildcraft/core/lib/AchievementManager.java new file mode 100644 index 00000000..757567e7 --- /dev/null +++ b/common/buildcraft/core/lib/AchievementManager.java @@ -0,0 +1,36 @@ +package buildcraft.core.lib; + +import net.minecraft.item.Item; +import net.minecraft.stats.Achievement; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.PlayerEvent; +import net.minecraftforge.common.AchievementPage; + +public class AchievementManager { + public AchievementPage page; + + public AchievementManager(String name) { + page = new AchievementPage(name); + AchievementPage.registerAchievementPage(page); + + FMLCommonHandler.instance().bus().register(this); + } + + public Achievement registerAchievement(Achievement a) { + page.getAchievements().add(a.registerStat()); + return a; + } + + @SubscribeEvent + public void onCrafting(PlayerEvent.ItemCraftedEvent event) { + Item item = event.crafting.getItem(); + int damage = event.crafting.getItemDamage(); + + for (Achievement a : page.getAchievements()) { + if (item.equals(a.theItemStack.getItem()) && damage == a.theItemStack.getItemDamage()) { + event.player.addStat(a, 1); + } + } + } +} diff --git a/common/buildcraft/robotics/ai/AIRobotAttack.java b/common/buildcraft/robotics/ai/AIRobotAttack.java index 78ccdd3e..b2a579ab 100755 --- a/common/buildcraft/robotics/ai/AIRobotAttack.java +++ b/common/buildcraft/robotics/ai/AIRobotAttack.java @@ -10,6 +10,7 @@ package buildcraft.robotics.ai; import net.minecraft.entity.Entity; +import buildcraft.api.blueprints.BuilderAPI; import buildcraft.api.robots.AIRobot; import buildcraft.api.robots.EntityRobotBase; import buildcraft.robotics.EntityRobot; @@ -87,6 +88,6 @@ public class AIRobotAttack extends AIRobot { @Override public int getEnergyCost() { - return 50; + return (BuilderAPI.BREAK_ENERGY * 2 / 20); } } diff --git a/common/buildcraft/robotics/ai/AIRobotBreak.java b/common/buildcraft/robotics/ai/AIRobotBreak.java index 2daafb15..b9e3f76a 100644 --- a/common/buildcraft/robotics/ai/AIRobotBreak.java +++ b/common/buildcraft/robotics/ai/AIRobotBreak.java @@ -16,6 +16,7 @@ import net.minecraft.world.WorldServer; import net.minecraftforge.common.ForgeHooks; +import buildcraft.api.blueprints.BuilderAPI; import buildcraft.api.core.BlockIndex; import buildcraft.api.robots.AIRobot; import buildcraft.api.robots.EntityRobotBase; @@ -129,7 +130,7 @@ public class AIRobotBreak extends AIRobot { @Override public int getEnergyCost() { - return 30; + return (int) Math.ceil((float) BuilderAPI.BREAK_ENERGY * 2 / 30.0F); } @Override diff --git a/common/buildcraft/robotics/ai/AIRobotCraftGeneric.java b/common/buildcraft/robotics/ai/AIRobotCraftGeneric.java index 4ef1d2af..dc1a283f 100755 --- a/common/buildcraft/robotics/ai/AIRobotCraftGeneric.java +++ b/common/buildcraft/robotics/ai/AIRobotCraftGeneric.java @@ -35,7 +35,7 @@ public abstract class AIRobotCraftGeneric extends AIRobot { @Override public int getEnergyCost() { - return 10; + return 1; } } diff --git a/common/buildcraft/robotics/ai/AIRobotFetchItem.java b/common/buildcraft/robotics/ai/AIRobotFetchItem.java index 9f196955..082bbf27 100755 --- a/common/buildcraft/robotics/ai/AIRobotFetchItem.java +++ b/common/buildcraft/robotics/ai/AIRobotFetchItem.java @@ -158,6 +158,6 @@ public class AIRobotFetchItem extends AIRobot { @Override public int getEnergyCost() { - return 20; + return 15; } } diff --git a/common/buildcraft/robotics/ai/AIRobotGoto.java b/common/buildcraft/robotics/ai/AIRobotGoto.java index 7f2c21a3..e0c8d628 100755 --- a/common/buildcraft/robotics/ai/AIRobotGoto.java +++ b/common/buildcraft/robotics/ai/AIRobotGoto.java @@ -48,6 +48,6 @@ public abstract class AIRobotGoto extends AIRobot { @Override public int getEnergyCost() { - return 10; + return 3; } } diff --git a/common/buildcraft/robotics/ai/AIRobotLoad.java b/common/buildcraft/robotics/ai/AIRobotLoad.java index 1236b420..f7b36cab 100755 --- a/common/buildcraft/robotics/ai/AIRobotLoad.java +++ b/common/buildcraft/robotics/ai/AIRobotLoad.java @@ -112,6 +112,6 @@ public class AIRobotLoad extends AIRobot { @Override public int getEnergyCost() { - return 20; + return 8; } } diff --git a/common/buildcraft/robotics/ai/AIRobotLoadFluids.java b/common/buildcraft/robotics/ai/AIRobotLoadFluids.java index 20495b7e..f1fda4ba 100755 --- a/common/buildcraft/robotics/ai/AIRobotLoadFluids.java +++ b/common/buildcraft/robotics/ai/AIRobotLoadFluids.java @@ -92,7 +92,7 @@ public class AIRobotLoadFluids extends AIRobot { @Override public int getEnergyCost() { - return 20; + return 8; } @Override diff --git a/common/buildcraft/robotics/ai/AIRobotPumpBlock.java b/common/buildcraft/robotics/ai/AIRobotPumpBlock.java index 0de63adc..20c092c4 100644 --- a/common/buildcraft/robotics/ai/AIRobotPumpBlock.java +++ b/common/buildcraft/robotics/ai/AIRobotPumpBlock.java @@ -68,7 +68,7 @@ public class AIRobotPumpBlock extends AIRobot { @Override public int getEnergyCost() { - return 30; + return 5; } @Override diff --git a/common/buildcraft/robotics/ai/AIRobotStripesHandler.java b/common/buildcraft/robotics/ai/AIRobotStripesHandler.java index 1d0b8a7e..5aaa2f5c 100644 --- a/common/buildcraft/robotics/ai/AIRobotStripesHandler.java +++ b/common/buildcraft/robotics/ai/AIRobotStripesHandler.java @@ -88,7 +88,7 @@ public class AIRobotStripesHandler extends AIRobot implements IStripesActivator @Override public int getEnergyCost() { - return 70; + return 15; } @Override diff --git a/common/buildcraft/robotics/ai/AIRobotUnload.java b/common/buildcraft/robotics/ai/AIRobotUnload.java index b5153b9d..0d9a5992 100755 --- a/common/buildcraft/robotics/ai/AIRobotUnload.java +++ b/common/buildcraft/robotics/ai/AIRobotUnload.java @@ -75,7 +75,7 @@ public class AIRobotUnload extends AIRobot { @Override public int getEnergyCost() { - return 20; + return 10; } @Override diff --git a/common/buildcraft/robotics/ai/AIRobotUnloadFluids.java b/common/buildcraft/robotics/ai/AIRobotUnloadFluids.java index daecb8ba..6ed621ee 100755 --- a/common/buildcraft/robotics/ai/AIRobotUnloadFluids.java +++ b/common/buildcraft/robotics/ai/AIRobotUnloadFluids.java @@ -87,7 +87,7 @@ public class AIRobotUnloadFluids extends AIRobot { @Override public int getEnergyCost() { - return 20; + return 10; } @Override diff --git a/common/buildcraft/robotics/ai/AIRobotUseToolOnBlock.java b/common/buildcraft/robotics/ai/AIRobotUseToolOnBlock.java index d5b49393..1762a65b 100755 --- a/common/buildcraft/robotics/ai/AIRobotUseToolOnBlock.java +++ b/common/buildcraft/robotics/ai/AIRobotUseToolOnBlock.java @@ -70,6 +70,6 @@ public class AIRobotUseToolOnBlock extends AIRobot { @Override public int getEnergyCost() { - return 30; + return 8; } }