- 9
- 1
- 1
Привет всем. Да-да это снова я.
На этот раз вопрос таков-Есть мод который выдаёт абсолютно рандомные предметы. Хочу запретить выдачу микроблоков. Пробовал через ParentMod,но происходит краш... Хелпуйте плиз!
На этот раз вопрос таков-Есть мод который выдаёт абсолютно рандомные предметы. Хочу запретить выдачу микроблоков. Пробовал через ParentMod,но происходит краш... Хелпуйте плиз!
package com.endie.grs.items;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Set;
import codechicken.microblock.FaceMicroblock;
import codechicken.microblock.Microblock;
import codechicken.microblock.MicroblockClass;
import codechicken.microblock.MicroblockGenerator;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.ModContainer;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary;
public class ItemRandomGiver extends Item {
public IIcon icon;
public ItemRandomGiver() {
this.setUnlocalizedName("grs:random_giver");
this.setTextureName("grs:random_giver");
this.setCreativeTab(CreativeTabs.tabMisc);
}
public void registerIcons(IIconRegister ir) {
this.icon = ir.registerIcon(this.getUnlocalizedName().substring(5));
}
public IIcon getIcon(ItemStack stack, int pass) {
return this.icon;
}
public IIcon getIconFromDamageForRenderPass(int p_77618_1_, int p_77618_2_) {
return this.icon;
}
public IIcon getIconIndex(ItemStack p_77650_1_) {
return this.icon;
}
public IIcon getIconFromDamage(int p_77617_1_) {
return this.icon;
}
public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) {
return this.icon;
}
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
if(!world.isRemote) {
EntityItem ei = new EntityItem(world, player.posX, player.posY, player.posZ, select(world, 1));
ei.delayBeforeCanPickup = 0;
world.spawnEntityInWorld(ei);
}
return stack;
}
public static ModContainer getParentMod(Item item) {
GameRegistry.UniqueIdentifier id = GameRegistry
.findUniqueIdentifierFor(item);
return Loader.instance().getIndexedModList().get(id.modId);
}
public static ItemStack select(World world, int count) {
Set data = Item.itemRegistry.getKeys();
ArrayList items = new ArrayList();
Iterator st = data.iterator();
while(st.hasNext()) {
Object st1 = st.next();
Item it = (Item)Item.itemRegistry.getObject(st1);
ModContainer ParentMod = getParentMod(it);
if(!(it instanceof ItemRandomGiver)) {
if (ParentMod.getModId()!="ForgeMicroblock") {
new ArrayList();
it.getSubItems(it, it.getCreativeTab(), items);
}
}}
ItemStack st11 = ((ItemStack)items.get(world.rand.nextInt(items.size()))).copy();
st11.stackSize = count;
return st11;
}}
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Set;
import codechicken.microblock.FaceMicroblock;
import codechicken.microblock.Microblock;
import codechicken.microblock.MicroblockClass;
import codechicken.microblock.MicroblockGenerator;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.ModContainer;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary;
public class ItemRandomGiver extends Item {
public IIcon icon;
public ItemRandomGiver() {
this.setUnlocalizedName("grs:random_giver");
this.setTextureName("grs:random_giver");
this.setCreativeTab(CreativeTabs.tabMisc);
}
public void registerIcons(IIconRegister ir) {
this.icon = ir.registerIcon(this.getUnlocalizedName().substring(5));
}
public IIcon getIcon(ItemStack stack, int pass) {
return this.icon;
}
public IIcon getIconFromDamageForRenderPass(int p_77618_1_, int p_77618_2_) {
return this.icon;
}
public IIcon getIconIndex(ItemStack p_77650_1_) {
return this.icon;
}
public IIcon getIconFromDamage(int p_77617_1_) {
return this.icon;
}
public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) {
return this.icon;
}
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
if(!world.isRemote) {
EntityItem ei = new EntityItem(world, player.posX, player.posY, player.posZ, select(world, 1));
ei.delayBeforeCanPickup = 0;
world.spawnEntityInWorld(ei);
}
return stack;
}
public static ModContainer getParentMod(Item item) {
GameRegistry.UniqueIdentifier id = GameRegistry
.findUniqueIdentifierFor(item);
return Loader.instance().getIndexedModList().get(id.modId);
}
public static ItemStack select(World world, int count) {
Set data = Item.itemRegistry.getKeys();
ArrayList items = new ArrayList();
Iterator st = data.iterator();
while(st.hasNext()) {
Object st1 = st.next();
Item it = (Item)Item.itemRegistry.getObject(st1);
ModContainer ParentMod = getParentMod(it);
if(!(it instanceof ItemRandomGiver)) {
if (ParentMod.getModId()!="ForgeMicroblock") {
new ArrayList();
it.getSubItems(it, it.getCreativeTab(), items);
}
}}
ItemStack st11 = ((ItemStack)items.get(world.rand.nextInt(items.size()))).copy();
st11.stackSize = count;
return st11;
}}