//Textureをpreloadします\r
proxy.registerTextures();\r
\r
- ChemiCraftAPI.instance.addMaterialRecipe(new ItemStack[]{new ItemStack(Block.dirt)}, new ItemStack(this.itemAtomGrenade), new NBTRecipeGrenade());\r
+ //化合台のレシピを追加します\r
+ //GameRegistry.addRecipe(new ItemStack(this.blockDecompositionTable), new Object[]{new ItemStack()});\r
+ ChemiCraftAPI.instance.addMaterialRecipe(new ItemStack[]{new ItemStack(Block.dirt)}, new ItemStack(this.itemAtomGrenade, 16, 0), new NBTRecipeGrenade());\r
\r
}\r
\r
ArrayList<Integer> materialDamage = new ArrayList<Integer>();
ArrayList<Integer> recipeID = new ArrayList<Integer>();
ArrayList<Integer> recipeDamage = new ArrayList<Integer>();
- ArrayList<ItemStack> effectMaterial = new ArrayList<ItemStack>();
+ ItemStack[] var1 = new ItemStack[3];
//Just loop of recipe size of recipe index i.
for(int j = 0;j < ChemiCraftAPI.instance.getMaterialMaterials().get(i).length;j++){
}
for(int j = 0;j < 3;j++){
- if(par1IInventory.getStackInSlot(j) != null){
- effectMaterial.add(par1IInventory.getStackInSlot(j));
- }
+ var1[j] = par1IInventory.getStackInSlot(j);
}
//trimToSize & sorting.
materialDamage.trimToSize();
recipeID.trimToSize();
recipeDamage.trimToSize();
- effectMaterial.trimToSize();
Collections.sort(materialID);
Collections.sort(materialDamage);
Collections.sort(recipeID);
);
if(ChemiCraftAPI.instance.getMaterialNBTRecipe().get(i) != null){
- ItemStack[] useItems = ChemiCraftAPI.instance.getMaterialNBTRecipe().get(i).setNBT(effectMaterial.toArray(new ItemStack[3]), result);
+ ItemStack[] useItems = ChemiCraftAPI.instance.getMaterialNBTRecipe().get(i).setNBT(var1, result);
((InventoryMaterialCrafting) par1IInventory).subtractStack(0, 3, useItems);
}
this.onCraftMatrixChanged(this.inv);
for(int i = 0;i < 9;i++){
if(this.inv.getStackInSlot(i+3) != null){
- if(this.inv.getStackInSlot(i+3).stackSize >= 1){
+ if(this.inv.getStackInSlot(i+3).stackSize > 1){
this.putStackInSlot(i+3, new ItemStack(this.inv.getStackInSlot(i+3).itemID, --this.inv.getStackInSlot(i+3).stackSize, this.inv.getStackInSlot(i+3).getItemDamage()));
}else{
this.putStackInSlot(i+3, null);
if (par1MovingObjectPosition.entityHit != null) {
par1MovingObjectPosition.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.thrower), 2);
+ par1MovingObjectPosition.entityHit.setFire(5);
}
if (!this.worldObj.isRemote && !isNuke) {
public void subtractStack(int par1, int par2, ItemStack[] par3ItemStack){
if(flag2){
- for(int i = 0;i < par2;i++){
+ for(int i = par1;i < par1+par2;i++){
if(par3ItemStack[i] != null){
if(par3ItemStack[i].stackSize > 1){
this.setInventorySlotContents(i, new ItemStack(par3ItemStack[i].itemID, --par3ItemStack[i].stackSize, par3ItemStack[i].getItemDamage()));
@Override
public void addInformation(ItemStack par1ItemStack, List par2List) {
- NBTTagList var1 = par1ItemStack.getTagCompound().getTagList("Effect");
+ if(par1ItemStack.getTagCompound() != null){
+ NBTTagList var1 = par1ItemStack.getTagCompound().getTagList("Effect");
- for(int i = 0;i < 3;i++){
- if(!((NBTTagCompound)var1.tagAt(0)).getString("GrenadeEffect" + i).equals("")){
- par2List.add(
- ((NBTTagCompound)var1.tagAt(0)).getString("GrenadeEffect" + i)
- );
+ for(int i = 0;i < 3;i++){
+ if(!((NBTTagCompound)var1.tagAt(0)).getString("GrenadeEffect" + i).equals("")){
+ par2List.add(
+ ((NBTTagCompound)var1.tagAt(0)).getString("GrenadeEffect" + i)
+ );
+ }
}
}
}
NBTTagList tagList = (NBTTagList) result.getTagCompound().getTag("Effect");
NBTTagCompound tag = new NBTTagCompound();
+ boolean isAssignment = false;
+ boolean var1 = false;
for(int i = 0;i < materials.length;i++){
+ System.out.println(materials[i]);
if(materials[i] != null){
if(materials[i].itemID-256 == ChemiCraft.instance.atomsID && materials[i].getItemDamage() == ChemiCraft.HYDROGEN){
tag.setString("GrenadeEffect" + i, "Hydrogen");
useItems[i] = materials[i];
+ isAssignment = true;
+ var1 = true;
}
if(materials[i].itemID-256 == ChemiCraft.instance.atomsID && materials[i].getItemDamage() == ChemiCraft.CARBON){
tag.setString("GrenadeEffect" + i, "Carbon");
useItems[i] = materials[i];
+ isAssignment = true;
+ var1 = true;
}
if(materials[i].itemID-256 == ChemiCraft.instance.atomsID && materials[i].getItemDamage() == ChemiCraft.URANIUM){
tag.setString("GrenadeEffect" + i, "Uranium");
useItems[i] = materials[i];
+ isAssignment = true;
+ var1 = true;
}
}
+ if(!var1) materials[i] = null;
+ var1 = false;
}
tagList.appendTag(tag);
+ if(!isAssignment) result.stackTagCompound = null;
return useItems;
}