aboutsummaryrefslogtreecommitdiff
path: root/main/java/gregtech/api/util
diff options
context:
space:
mode:
Diffstat (limited to 'main/java/gregtech/api/util')
-rw-r--r--main/java/gregtech/api/util/GT_ModHandler.java79
-rw-r--r--main/java/gregtech/api/util/GT_SpawnEventHandler.java46
2 files changed, 46 insertions, 79 deletions
diff --git a/main/java/gregtech/api/util/GT_ModHandler.java b/main/java/gregtech/api/util/GT_ModHandler.java
index 72ba214bc4..93aba7cfb7 100644
--- a/main/java/gregtech/api/util/GT_ModHandler.java
+++ b/main/java/gregtech/api/util/GT_ModHandler.java
@@ -1011,85 +1011,6 @@ public class GT_ModHandler {
return rReturn;
}
-// public static int replaceRecipe(ItemStack aOldItem, ItemStack aNewItem){
-// int replaced =0;
-// ArrayList<IRecipe> tList = (ArrayList<IRecipe>)CraftingManager.getInstance().getRecipeList();
-// System.out.println("tList.size "+tList.size());
-// for (int i = 0; i < tList.size(); i++){
-// System.out.println(tList.get(i).getClass());
-// if(tList.get(i) instanceof ShapedRecipes){
-// ShapedRecipes tRecipe = (ShapedRecipes)tList.get(i);
-// System.out.println("found recipe!");
-// for( int g =0 ; g < tRecipe.recipeItems.length;g++){
-// if(GT_Utility.areStacksEqual(aOldItem, tRecipe.recipeItems[g], true)){
-// ItemStack[] tItems = tRecipe.recipeItems;
-// for(int f = 0; f < tItems.length;f++){
-// if(GT_Utility.areStacksEqual(aOldItem, tItems[f], true)){
-// tItems[f]=aNewItem;
-// }
-// }
-// ShapedRecipes nRecipe = new ShapedRecipes(tRecipe.recipeWidth,tRecipe.recipeHeight,tItems,tRecipe.getRecipeOutput());
-// tList.set(i, nRecipe);
-// replaced++;
-// }
-// }
-// }
-//
-// if(tList.get(i) instanceof AdvRecipe){
-// AdvRecipe tRecipe = (AdvRecipe)tList.get(i);
-// System.out.println("found recipe!");
-// for( int g =0 ; g < tRecipe.input.length;g++){
-// if(GT_Utility.areStacksEqual(aOldItem, (ItemStack) tRecipe.input[g], true)){
-// ItemStack[] tItems = (ItemStack[]) tRecipe.input;
-// for(int f = 0; f < tItems.length;f++){
-// if(GT_Utility.areStacksEqual(aOldItem, tItems[f], true)){
-// tItems[f]=aNewItem;
-// }
-// }
-// System.out.println("converted Recipe");
-// AdvRecipe nRecipe = new AdvRecipe(tRecipe.getRecipeOutput(),tItems);
-// tList.set(i, nRecipe);
-// replaced++;
-// }
-// }
-// }
-//// if(tList.get(i) instanceof GT_Shaped_Recipe){
-//// GT_Shaped_Recipe tRecipe = (GT_Shaped_Recipe)tList.get(i);
-//// System.out.println("found recipe!");
-//// for( int g =0 ; g < tRecipe.getInput().length;g++){
-//// if(GT_Utility.areStacksEqual(aOldItem, (ItemStack)tRecipe.getInput()[g], true)){
-//// ItemStack[] tItems = (ItemStack[]) tRecipe.getInput();
-//// for(int f = 0; f < tItems.length;f++){
-//// if(GT_Utility.areStacksEqual(aOldItem, tItems[f], true)){
-//// tItems[f]=aNewItem;
-//// }
-//// }
-//// GT_Shaped_Recipe nRecipe = new GT_Shaped_Recipe(tItems,tRecipe.getRecipeOutput());
-//// tList.set(i, nRecipe);
-//// replaced++;
-//// }
-//// }
-//// }
-// if(tList.get(i) instanceof ShapelessRecipes){
-// ShapelessRecipes tRecipe = (ShapelessRecipes)tList.get(i);
-// System.out.println("found recipe!");
-// for( int g =0 ; g < tRecipe.recipeItems.size();g++){
-// if(GT_Utility.areStacksEqual(aOldItem, (ItemStack) tRecipe.recipeItems.get(g), true)){
-// List tItems = tRecipe.recipeItems;
-// for(int f = 0; f < tItems.size();f++){
-// if(GT_Utility.areStacksEqual(aOldItem, (ItemStack) tItems.get(f), true)){
-// tItems.set(f,aNewItem);
-// }
-// }
-// ShapelessRecipes nRecipe = new ShapelessRecipes(tRecipe.getRecipeOutput(),tItems);
-// tList.set(i, nRecipe);
-// replaced++;
-// }
-// }
-// }
-// }return replaced;
-// }
-
public static boolean removeRecipeByOutput(ItemStack aOutput) {
return removeRecipeByOutput(aOutput, T, F, F);
}
diff --git a/main/java/gregtech/api/util/GT_SpawnEventHandler.java b/main/java/gregtech/api/util/GT_SpawnEventHandler.java
new file mode 100644
index 0000000000..d4d4c65d6c
--- /dev/null
+++ b/main/java/gregtech/api/util/GT_SpawnEventHandler.java
@@ -0,0 +1,46 @@
+package gregtech.api.util;
+
+import gregtech.api.metatileentity.BaseMetaTileEntity;
+import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_MonsterRepellent;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cpw.mods.fml.common.eventhandler.Event;
+import cpw.mods.fml.common.eventhandler.SubscribeEvent;
+import net.minecraft.entity.EnumCreatureType;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.event.entity.living.LivingSpawnEvent.CheckSpawn;
+
+public class GT_SpawnEventHandler {
+
+ public static volatile List <int[]> mobReps = new ArrayList();
+
+ public GT_SpawnEventHandler(){
+ MinecraftForge.EVENT_BUS.register(this);
+ }
+
+ @SubscribeEvent
+ public void denyMobSpawn(CheckSpawn event)
+ {
+ if (event.getResult() == Event.Result.ALLOW) {return;}
+ if (event.entityLiving.isCreatureType(EnumCreatureType.monster, false))
+ {
+ for(int[] rep : mobReps){
+ if(rep[3] == event.entity.worldObj.provider.dimensionId){
+ TileEntity tTile = event.entity.worldObj.getTileEntity(rep[0], rep[1], rep[2]);
+ if(tTile instanceof BaseMetaTileEntity && ((BaseMetaTileEntity)tTile).getMetaTileEntity() instanceof GT_MetaTileEntity_MonsterRepellent){
+ int r = ((GT_MetaTileEntity_MonsterRepellent)((BaseMetaTileEntity)tTile).getMetaTileEntity()).mRange;
+ double dx = rep[0] + 0.5F - event.entity.posX;
+ double dy = rep[1] + 0.5F - event.entity.posY;
+ double dz = rep[2] + 0.5F - event.entity.posZ;
+ if ((dx * dx + dz * dz + dy * dy) <= Math.pow(r, 2)) {
+ event.setResult(Event.Result.DENY);
+ }
+ }
+ }
+ }
+ }
+ }
+}