下面列出了net.minecraft.util.WeightedRandom#Item ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void prepare() {
laserOres = MFRRegistry.getLaserOres();
for (WeightedRandom.Item ore : laserOres) {
totalWeight += ore.itemWeight;
}
laserPreferredOres = new HashMap<Integer, List<ItemStack>>();
for (int i = 0; i <= 15; i++) {
List<ItemStack> preferredOres = MFRRegistry.getLaserPreferredOres(i);
laserPreferredOres.put(i, preferredOres);
}
TileEntityLaserDrillPrecharger dummyPrecharger = new TileEntityLaserDrillPrecharger();
TileEntityLaserDrill dummyDrill = new TileEntityLaserDrill();
energyPerOperation = dummyPrecharger.getActivationEnergy() * dummyDrill.getWorkMax();
dummyPrecharger = null;
dummyDrill = null;
laserFocus = GameRegistry.findItem("MineFactoryReloaded", "laserfocus");
if (laserFocus == null) {
laserFocus = GameRegistry.findItem("MineFactoryReloaded", "item.mfr.laserfocus");
}
}
@Override
public void loadAllRecipes() {
for (WeightedRandom.Item drop : laserOres) {
if (drop instanceof WeightedRandomItemStack) {
ItemStack dropStack = ((WeightedRandomItemStack) drop).getStack();
for (int i : laserPreferredOres.keySet()) {
List<ItemStack> preferredStacks = laserPreferredOres.get(i);
if (preferredStacks != null) {
for (ItemStack preferredStack : preferredStacks) {
if (Utils.areStacksSameTypeCraftingSafe(preferredStack, dropStack)) {
this.arecipes.add(new CachedLaserDrillRecipe(dropStack, drop.itemWeight, i));
}
}
}
}
}
}
}
@Override
public void loadCraftingRecipes(ItemStack result) {
for (WeightedRandom.Item drop : laserOres) {
if (drop instanceof WeightedRandomItemStack) {
if (Utils.areStacksSameTypeCraftingSafe(((WeightedRandomItemStack) drop).getStack(), result)) {
ItemStack dropStack = ((WeightedRandomItemStack) drop).getStack();
for (int i : laserPreferredOres.keySet()) {
List<ItemStack> preferredStacks = laserPreferredOres.get(i);
if (preferredStacks != null) {
for (ItemStack preferredStack : preferredStacks) {
if (Utils.areStacksSameTypeCraftingSafe(preferredStack, dropStack)) {
this.arecipes.add(new CachedLaserDrillRecipe(dropStack, drop.itemWeight, i));
}
}
}
}
}
}
}
}
@Override
public void loadUsageRecipes(ItemStack ingred) {
int dmg = ingred.getItemDamage();
if (ingred.getItem() == laserFocus && dmg <= 15) {
for (WeightedRandom.Item drop : laserOres) {
if (drop instanceof WeightedRandomItemStack) {
ItemStack dropStack = ((WeightedRandomItemStack) drop).getStack();
List<ItemStack> preferredStacks = laserPreferredOres.get(dmg);
if (preferredStacks != null) {
for (ItemStack preferredStack : preferredStacks) {
if (Utils.areStacksSameTypeCraftingSafe(preferredStack, dropStack)) {
this.arecipes.add(new CachedLaserDrillRecipe(dropStack, drop.itemWeight, dmg));
}
}
}
}
}
}
}