- 3
- 0
Как сделать чтобы отнималась прочность брони когда ты в блоке?
(нью фаг :C )
добился пока что чтобы каждый тик снималась прочность, но не ломается (а как будто восстанавливается)
Itemantigas.java
blockRadiation.java
TestMod.java
(нью фаг :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);
}
}
}
Код:
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);
}
}
}
}
Код:
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");
}
}