Как сделать чтобы отнималась прочность брони.

Как сделать чтобы отнималась прочность брони когда ты в блоке?
(нью фаг :C )
добился пока что чтобы каждый тик снималась прочность, но не ломается (а как будто восстанавливается) 
Itemantigas.java
Код:
package assets.BinMineModRadiation.src;

import net.minecraft.client.renderer.texture.IconRegister;
import assets.BinMineModRadiation.src.*;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumArmorMaterial;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
import net.minecraft.util.DamageSource;
import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class Itemantigas extends ItemArmor 
{
    public Itemantigas(int par1, EnumArmorMaterial par2EnumArmorMaterial, int par3,int par4)
    {
        super(par1, par2EnumArmorMaterial, par3, par4);
        this.setCreativeTab(CreativeTabs.tabCombat);
    }
        @SideOnly(Side.CLIENT)
            public void registerIcons(IconRegister par1IconRegister)
            {
                this.itemIcon = par1IconRegister.registerIcon(ModInfo.MODID + ":gasmask");
            }
            public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5)
            {
                TestMod.Antigas = false;
            }
            public void onArmorTickUpdate(World world, EntityPlayer player, ItemStack ItemStack)
            {
                if(ItemStack.itemID == TestMod.Itemantigas.itemID)
                TestMod.Antigas = true;
                if (TestMod.Antigas == true) 
                {
                    ItemStack.damageItem(100, player);
                }    
            }
}
blockRadiation.java
Код:
package assets.BinMineModRadiation.src;

import java.util.Random;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.DamageSource;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;

public class blockRadiation extends Block 
    {

    public blockRadiation(int par1) 
    {
        super(par1, Material.iron);
        this.setCreativeTab(CreativeTabs.tabBlock);
    }

    public AxisAlignedBB getCollisionBoundingsu_boxFromPool(World par1World, int par2, int par3, int par4)
    {
        return null;
    }
 
    public boolean isOpaqueCube()
    {
        return false;
    }
 
    public boolean renderAsNormalBlock()
    {
        return false;
    }

    public int getRenderType()
    {
        return 8;
    }
    

    public void setBlockBoundsBasedOnState(IBlockAccess par1IBlockAccess, int par2, int par3, int par4)
    {
        float f = 0.0000F;
        this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.0F, f, 0.0F);
    }

    public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity)
     {
        if (TestMod.Antigas == false) 
        {
            par5Entity.attackEntityFrom(DamageSource.cactus, 1.0F);
        }    
     }
    

    
    
    public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random)
    {
        Random random = par1World.rand;
        double d0 = 0.0625D;

        for (int l = 0; l < 6; ++l)
        {
            double d1 = (double)((float)par2 + random.nextFloat());
            double d2 = (double)((float)par3 + random.nextFloat());
            double d3 = (double)((float)par4 + random.nextFloat());

            if (l == 0 && !par1World.isBlockOpaqueCube(par2, par3 + 1, par4))
            {
                d2 = (double)(par3 + 1) + d0;
            }

            if (l == 1 && !par1World.isBlockOpaqueCube(par2, par3 - 1, par4))
            {
                d2 = (double)(par3 + 0) - d0;
            }

            if (l == 2 && !par1World.isBlockOpaqueCube(par2, par3, par4 + 1))
            {
                d3 = (double)(par4 + 1) + d0;
            }

            if (l == 3 && !par1World.isBlockOpaqueCube(par2, par3, par4 - 1))
            {
                d3 = (double)(par4 + 0) - d0;
            }

            if (l == 4 && !par1World.isBlockOpaqueCube(par2 + 1, par3, par4))
            {
                d1 = (double)(par2 + 1) + d0;
            }

            if (l == 5 && !par1World.isBlockOpaqueCube(par2 - 1, par3, par4))
            {
                d1 = (double)(par2 + 0) - d0;
            }

            if (d1 < (double)par2 || d1 > (double)(par2 + 1) || d2 < 0.0D || d2 > (double)(par3 + 1) || d3 < (double)par4 || d3 > (double)(par4 + 1))
            {
                par1World.spawnParticle("reddust", d1, d2, d3, 0.0D, 0.0D, 0.0D);
            }
        }
    }
}
TestMod.java
Код:
package assets.BinMineModRadiation.src;

import net.minecraft.block.Block;
import net.minecraft.item.EnumArmorMaterial;
import net.minecraft.item.ItemArmor;
import net.minecraftforge.common.EnumHelper;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;

@Mod(modid=ModInfo.MODID, name=ModInfo.MODNAME, version=ModInfo.MODVERSION)
@NetworkMod(clientSideRequired = true, serverSideRequired = false)


public class TestMod {
    @Mod.Instance(ModInfo.MODID)
    public static TestMod testmod;
    public static boolean Antigas = false;
    public static EnumArmorMaterial ANTIGASARMOR = EnumHelper.addArmorMaterial("ANTIGASARMOR", 100, new int[] {1000, 1000, 1000, 0}, 1000);
    public static final Block blockRadiation = new blockRadiation(3000).setUnlocalizedName("Radiation");
    public static ItemArmor Itemantigas = new Itemantigas(3001, testmod.ANTIGASARMOR, 0,0);
    @EventHandler
    public void init(FMLInitializationEvent event)
    {
        GameRegistry.registerBlock(blockRadiation);
        LanguageRegistry.addName(blockRadiation, "Block Test");
        LanguageRegistry.addName(Itemantigas, "ANTIGAS");
    }
}
 
Тебя компилятор убить не пытался?
uhrtgKO.png
 
Мда,рефакторинг всяким сталкопрожектам не помешает. TestMod.Antigas == false на !TestMod.Antigas
 
Назад
Сверху