blob: 65bc3231aabdb01c56c3130b224edbf86b0da104 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
package gtPlusPlus.xmod.forestry.trees;
import gregtech.api.enums.OrePrefixes;
import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.util.item.ItemUtils;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
import net.minecraft.block.Block;
import net.minecraft.block.BlockAir;
import net.minecraft.block.material.Material;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import cpw.mods.fml.common.Optional;
public class TreefarmManager {
public static boolean isHumusLoaded = false;
public static boolean isForestryLogsLoaded = false;
public static boolean isForestryFenceLoaded = false;
public static boolean isForestrySaplingsLoaded = false;
public static boolean isForestryLeavesLoaded = false;
public static Block blockHumus;
public static boolean isForestryValid(){
if (!LoadedMods.Forestry){
return false;
}
if (ReflectionUtils.doesClassExist("forestry.core.blocks.BlockSoil")){
isHumusLoaded = true;
}
if (ReflectionUtils.doesClassExist("forestry.arboriculture.blocks.BlockLog")){
isForestryLogsLoaded = true;
}
if (ReflectionUtils.doesClassExist("forestry.arboriculture.blocks.BlockArbFence")){
isForestryFenceLoaded = true;
}
if (ReflectionUtils.doesClassExist("forestry.arboriculture.blocks.BlockSapling")){
isForestrySaplingsLoaded = true;
}
if (ReflectionUtils.doesClassExist("forestry.arboriculture.blocks.BlockForestryLeaves")){
isForestryLeavesLoaded = true;
}
return true;
}
@Optional.Method(modid = "Forestry")
public static Block getHumus(){
if(blockHumus != null){
return blockHumus;
}
else if (ReflectionUtils.doesClassExist("forestry.core.blocks.BlockSoil")){
try {
Class<?> humusClass = Class.forName("forestry.core.blocks.BlockSoil");
ItemStack humusStack = ItemUtils.getCorrectStacktype("Forestry:soil", 1);
if (humusClass != null){
blockHumus = Block.getBlockFromItem(humusStack.getItem());
return Block.getBlockFromItem(humusStack.getItem());
}
} catch (ClassNotFoundException e) {}
}
return null;
}
public static boolean isWoodLog(Block log){
String tTool = log.getHarvestTool(0);
return OrePrefixes.log.contains(new ItemStack(log, 1))&& ((tTool != null) && (tTool.equals("axe"))) || (log.getMaterial() == Material.wood);
}
public static boolean isLeaves(Block log){
String tTool = log.getHarvestTool(0);
return OrePrefixes.leaves.contains(new ItemStack(log, 1)) || (log.getMaterial() == Material.leaves);
}
public static boolean isDirtBlock(Block dirt){
return (dirt == Blocks.dirt ? true : (dirt == Blocks.grass ? true : (getHumus() == null ? false : (dirt == blockHumus ? true : false))));
}
public static boolean isFenceBlock(Block fence){
return (fence == Blocks.fence ? true : (fence == Blocks.fence_gate ? true : (fence == Blocks.nether_brick_fence ? true : false)));
}
public static boolean isAirBlock(Block air){
if (air.getLocalizedName().toLowerCase().contains("air")){
return true;
}
return (air == Blocks.air ? true : (air instanceof BlockAir ? true : false));
}
/*public static boolean isSaplingBlock(Block sapling){
return (sapling == Blocks.sapling ? true : (sapling == Blocks.))
}*/
}
|