import java.util.List;
import net.minecraft.block.Block;
+import net.minecraft.block.BlockDispenser;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import pcc.chemicraft.ChemiCraftRegister;
import pcc.chemicraft.EnumLoggingType;
import pcc.chemicraft.base.creativetab.CreativeTabAtomOres;
+import pcc.chemicraft.base.dispenser.DispenserBehaviorAtomsGrenade;
import pcc.chemicraft.base.system.CommonProxy;
import pcc.chemicraft.base.system.PacketHandler;
import pcc.chemicraft.core.ChemiCraftCore;
this.registerChemicalRecipe.start();
this.registerRecipe.start();
this.registerEntitys.start();
+
+ BlockDispenser.dispenseBehaviorRegistry.putObject(this.itemAtomGrenade, new DispenserBehaviorAtomsGrenade());
+
}
private void apiProcessing(final FMLPostInitializationEvent event) {
ingotsName.get(i)
);
*/
+
}
}
this.mod.api.addPyrolysisDecompositionRecipe(new ItemStack(Block.oreCoal),
new Formula("C"));
- this.mod.api.addPyrolysisDecompositionRecipe(new ItemStack(Item.coal),
+ this.mod.api.addReversibleOfPyrolysis(new ItemStack(Item.coal),
new Formula("C"));
this.mod.api.addPyrolysisDecompositionRecipe(new ItemStack(Block.oreIron),
this.mod.api.addPyrolysisDecompositionRecipe(new ItemStack(Item.ingotIron),
new Formula("Fe"));
- this.mod.api.addPyrolysisDecompositionRecipe(new ItemStack(Block.blockSteel),
+ this.mod.api.addReversibleOfPyrolysis(new ItemStack(Block.blockSteel),
new Formula("9Fe"));
this.mod.api.addPyrolysisDecompositionRecipe(new ItemStack(Block.oreGold),
--- /dev/null
+package pcc.chemicraft.base.dispenser;
+
+import net.minecraft.dispenser.BehaviorProjectileDispense;
+import net.minecraft.dispenser.IPosition;
+import net.minecraft.entity.IProjectile;
+import net.minecraft.world.World;
+import pcc.chemicraft.base.entity.EntityAtomsGrenade;
+
+public class DispenserBehaviorAtomsGrenade extends BehaviorProjectileDispense {
+
+ @Override
+ protected IProjectile getProjectileEntity(World par1World, IPosition par2IPosition) {
+ return new EntityAtomsGrenade(par1World, par2IPosition.getX(), par2IPosition.getY(), par2IPosition.getZ(), true, true, true);
+ }
+
+}
this.isNuke = par5;
}
+ public EntityAtomsGrenade(World par1World, double par2, double par3, double par4, boolean par5, boolean par6, boolean par7) {
+ super(par1World, par2, par3, par4);
+ this.isExplode = par5;
+ this.onFire = par6;
+ this.isNuke = par7;
+ }
+
@Override
public void onUpdate() {
super.onUpdate();
@SideOnly(Side.CLIENT)
@Override
public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List){
- for(int type = 0; type < ChemiCraftBaseAPI.instance().getAtomOresAtomName().size(); type++)
+ for(int i = 0; i < ChemiCraftBaseAPI.instance().getAtomOresAtomName().size(); i++)
{
- par3List.add(new ItemStack(par1, 1, type));
+ par3List.add(new ItemStack(par1, 1, i));
}
}
public class ItemAtoms extends Item {
+ @SideOnly(Side.CLIENT)
private Icon[] icons;
public ItemAtoms(int par1){
+/*
package pcc.chemicraft.testcase;
import static org.junit.Assert.*;
}
}
+*/
for (int i = 0; i < var2.length; i++) {
if (var2[i] == '・') {
if (this.lastSpell != null) {
- setAtom(this.lastSpell, this.magnification);
+ setAtom(this.lastSpell, 1);
}
setAtoms(new Formula(new String(var2, ++i, var2.length - i)));
return;
// 括弧対応はまだ未完成です。 --WIP--
} else if (Character.isDigit(var2[i])) {
if (this.lastIndex > 0) {
- this.amonts.set(this.amonts.size() - 1, this.magnification
- * (this.lastIndex = this.lastIndex * 10 + Integer.valueOf(Character.toString(var2[i]))));
+ this.amonts.set(this.amonts.size() - 1,
+ this.lastIndex = this.lastIndex * 10 + Integer.valueOf(Character.toString(var2[i])));
} else if (this.lastSpell != null) {
setAtom(this.lastSpell, this.lastIndex = Integer.valueOf(Character.toString(var2[i])));
} else {
} else if (Character.isLetter(var2[i])) {
if (Character.isUpperCase(var2[i])) {
if (this.lastSpell != null) {
- setAtom(this.lastSpell, this.magnification);
+ setAtom(this.lastSpell, 1);
}
this.lastSpell = Character.toString(var2[i]);
} else if (Character.isLowerCase(var2[i])) {
throw new IllegalArgumentException();
}
this.lastSpell = this.lastSpell.concat(Character.toString(var2[i]));
-
- if (var2.length <= i + 1) {
- setAtom(this.lastSpell, this.magnification);
- }
}
this.lastIndex = 0;
} else {
throw new IllegalArgumentException();
}
}
+ if (this.lastSpell != null) {
+ setAtom(this.lastSpell, 1);
+ }
}
public boolean isAtom(String par1) {
public void setAtom(String par1, int par2) {
if (isAtom(par1)) {
+ par2 *= this.magnification;
int var3 = this.atoms.indexOf(par1);
if (var3 == -1) {
this.atoms.add(par1);