OSDN Git Service

減算バグ修正
authormozipi <mozipi@users.sourceforge.jp>
Sun, 23 Dec 2012 11:45:21 +0000 (20:45 +0900)
committermozipi <mozipi@users.sourceforge.jp>
Sun, 23 Dec 2012 11:45:21 +0000 (20:45 +0900)
common/chemicraft/ChemiCraft.java
common/chemicraft/ChemiCraftCraftingManager.java
common/chemicraft/ContainerMaterialCraftingTable.java
common/chemicraft/EntityAtomGrenade.java
common/chemicraft/InventoryMaterialCrafting.java
common/chemicraft/ItemAtomGrenade.java
common/chemicraft/NBTRecipeGrenade.java

index debd499..8108003 100644 (file)
@@ -216,7 +216,9 @@ public class ChemiCraft {
                //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
index 22913d0..c46e44b 100644 (file)
@@ -141,7 +141,7 @@ public class ChemiCraftCraftingManager {
                        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++){
@@ -160,9 +160,7 @@ public class ChemiCraftCraftingManager {
                        }
 
                        for(int j = 0;j < 3;j++){
-                               if(par1IInventory.getStackInSlot(j) != null){
-                                       effectMaterial.add(par1IInventory.getStackInSlot(j));
-                               }
+                               var1[j] = par1IInventory.getStackInSlot(j);
                        }
 
                        //trimToSize & sorting.
@@ -170,7 +168,6 @@ public class ChemiCraftCraftingManager {
                        materialDamage.trimToSize();
                        recipeID.trimToSize();
                        recipeDamage.trimToSize();
-                       effectMaterial.trimToSize();
                        Collections.sort(materialID);
                        Collections.sort(materialDamage);
                        Collections.sort(recipeID);
@@ -197,7 +194,7 @@ public class ChemiCraftCraftingManager {
                                                                );
 
                                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);
                                }
 
index ecee6f7..619b332 100644 (file)
@@ -83,7 +83,7 @@ public class ContainerMaterialCraftingTable extends Container {
                        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);
index 9663502..7d6d030 100644 (file)
@@ -44,6 +44,7 @@ public class EntityAtomGrenade extends EntityThrowable
 
                if (par1MovingObjectPosition.entityHit != null) {
                        par1MovingObjectPosition.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.thrower), 2);
+                       par1MovingObjectPosition.entityHit.setFire(5);
                }
 
                if (!this.worldObj.isRemote && !isNuke) {
index cab8232..800d65d 100644 (file)
@@ -92,7 +92,7 @@ public class InventoryMaterialCrafting implements IInventory {
 
        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()));
index 509c0f3..f837ce8 100644 (file)
@@ -48,13 +48,15 @@ public class ItemAtomGrenade extends Item {
 
        @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)
+                                                       );
+                               }
                        }
                }
        }
index a458cd9..3f6ca3c 100644 (file)
@@ -24,24 +24,36 @@ public class NBTRecipeGrenade extends NBTRecipe {
 
                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;
        }