Forgot the forge hooks.
This commit is contained in:
parent
12b64fa287
commit
1d19069203
1 changed files with 118 additions and 0 deletions
118
forge/forge_common/net/minecraft/src/forge/ForgeHooks.java
Normal file
118
forge/forge_common/net/minecraft/src/forge/ForgeHooks.java
Normal file
|
@ -0,0 +1,118 @@
|
|||
/**
|
||||
* This software is provided under the terms of the Minecraft Forge Public
|
||||
* License v1.0.
|
||||
*/
|
||||
|
||||
package net.minecraft.src.forge;
|
||||
import net.minecraft.src.Block;
|
||||
import net.minecraft.src.World;
|
||||
import net.minecraft.src.EntityPlayer;
|
||||
import net.minecraft.src.ItemStack;
|
||||
import net.minecraft.src.Item;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class ForgeHooks {
|
||||
// TODO: move all app-side hooks from MinecraftForge
|
||||
//
|
||||
|
||||
public static boolean canHarvestBlock(Block bl,
|
||||
EntityPlayer player, int md) {
|
||||
if(bl.blockMaterial.getIsHarvestable())
|
||||
return true;
|
||||
ItemStack itemstack = player.inventory.getCurrentItem();
|
||||
if(itemstack == null) return false;
|
||||
|
||||
List tc=(List)toolClasses.get(itemstack.itemID);
|
||||
if(tc==null) return itemstack.canHarvestBlock(bl);
|
||||
Object[] ta=tc.toArray();
|
||||
String cls=(String)ta[0]; int hvl=(Integer)ta[1];
|
||||
|
||||
Integer bhl=(Integer)toolHarvestLevels.get(Arrays.asList(
|
||||
bl.blockID,md,cls));
|
||||
if(bhl==null) return itemstack.canHarvestBlock(bl);
|
||||
if(bhl>hvl) return false;
|
||||
return itemstack.canHarvestBlock(bl);
|
||||
}
|
||||
|
||||
public static float blockStrength(Block bl,
|
||||
EntityPlayer player, int md) {
|
||||
float bh=bl.getHardness(md);
|
||||
if(bh < 0.0F) return 0.0F;
|
||||
|
||||
if(!canHarvestBlock(bl,player,md)) {
|
||||
return 1.0F / bh / 100F;
|
||||
} else {
|
||||
return player.getCurrentPlayerStrVsBlock(bl,md) /
|
||||
bh / 30F;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isToolEffective(ItemStack ist, Block bl, int md) {
|
||||
List tc=(List)toolClasses.get(ist.itemID);
|
||||
if(tc==null) return false;
|
||||
Object[] ta=tc.toArray();
|
||||
String cls=(String)ta[0];
|
||||
|
||||
return toolEffectiveness.contains(Arrays.asList(
|
||||
bl.blockID,md,cls));
|
||||
}
|
||||
|
||||
static void initTools() {
|
||||
if(toolInit) return;
|
||||
toolInit=true;
|
||||
|
||||
MinecraftForge.setToolClass(Item.pickaxeWood,"pickaxe",0);
|
||||
MinecraftForge.setToolClass(Item.pickaxeStone,"pickaxe",1);
|
||||
MinecraftForge.setToolClass(Item.pickaxeSteel,"pickaxe",2);
|
||||
MinecraftForge.setToolClass(Item.pickaxeGold,"pickaxe",0);
|
||||
MinecraftForge.setToolClass(Item.pickaxeDiamond,"pickaxe",3);
|
||||
|
||||
MinecraftForge.setToolClass(Item.axeWood,"axe",0);
|
||||
MinecraftForge.setToolClass(Item.axeStone,"axe",1);
|
||||
MinecraftForge.setToolClass(Item.axeSteel,"axe",2);
|
||||
MinecraftForge.setToolClass(Item.axeGold,"axe",0);
|
||||
MinecraftForge.setToolClass(Item.axeDiamond,"axe",3);
|
||||
|
||||
MinecraftForge.setToolClass(Item.shovelWood,"shovel",0);
|
||||
MinecraftForge.setToolClass(Item.shovelStone,"shovel",1);
|
||||
MinecraftForge.setToolClass(Item.shovelSteel,"shovel",2);
|
||||
MinecraftForge.setToolClass(Item.shovelGold,"shovel",0);
|
||||
MinecraftForge.setToolClass(Item.shovelDiamond,"shovel",3);
|
||||
|
||||
MinecraftForge.setBlockHarvestLevel(Block.obsidian,"pickaxe",3);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.oreDiamond,"pickaxe",2);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.blockDiamond,"pickaxe",2);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.oreGold,"pickaxe",2);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.blockGold,"pickaxe",2);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.oreIron,"pickaxe",1);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.blockSteel,"pickaxe",1);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.oreLapis,"pickaxe",1);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.blockLapis,"pickaxe",1);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.oreRedstone,"pickaxe",2);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.oreRedstoneGlowing,"pickaxe",2);
|
||||
MinecraftForge.removeBlockEffectiveness(Block.oreRedstone,"pickaxe");
|
||||
MinecraftForge.removeBlockEffectiveness(Block.oreRedstoneGlowing,"pickaxe");
|
||||
|
||||
Block[] pickeff ={
|
||||
Block.cobblestone, Block.stairDouble,
|
||||
Block.stairSingle, Block.stone, Block.sandStone,
|
||||
Block.cobblestoneMossy, Block.oreIron,
|
||||
Block.blockSteel, Block.oreCoal, Block.blockGold,
|
||||
Block.oreGold, Block.oreDiamond, Block.blockDiamond,
|
||||
Block.ice, Block.netherrack, Block.oreLapis,
|
||||
Block.blockLapis
|
||||
};
|
||||
for(Block bl : pickeff) {
|
||||
MinecraftForge.setBlockHarvestLevel(bl,"pickaxe",0);
|
||||
}
|
||||
|
||||
// TODO: add other tool tables.
|
||||
}
|
||||
|
||||
static boolean toolInit=false;
|
||||
static HashMap toolClasses=new HashMap();
|
||||
static HashMap toolHarvestLevels=new HashMap();
|
||||
static HashSet toolEffectiveness=new HashSet();
|
||||
}
|
||||
|
Loading…
Reference in a new issue