Код:
package assets.testmod.src;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import cpw.mods.fml.client.registry.ClientRegistry;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.EnumArmorMaterial;
import net.minecraft.item.EnumToolMaterial;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.IRecipe;
import net.minecraftforge.common.EnumHelper;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidRegistry;
@Mod(modid = ModInfo.MODID, name = ModInfo.NAME, version = ModInfo.VERSION)
@NetworkMod(clientSideRequired = true, serverSideRequired = false)
public class TestMod
{
public static Block WaterK = new WaterK(2095).setUnlocalizedName("Kisla");
public static Fluid testFluid = new Fluid("testFluid");
public static Block fluidBlock;
@Mod.Instance(ModInfo.MODID)
public static TestMod mod;
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
GameRegistry.registerBlock(WaterK, "WaterK");
LanguageRegistry.addName(WaterK, "WaterK");
FluidRegistry.registerFluid(testFluid);
fluidBlock = new BlockTEstFluid(2096, testFluid, Material.water);
GameRegistry.registerBlock(fluidBlock, "testfluid");
LanguageRegistry.addName(fluidBlock, "Test fluid");
}
Код:
package assets.testmod.src;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
public class WaterK extends Block {
public WaterK(int par1) {
super(par1,Material.water);
this.setHardness(1000.0F);
this.setResistance(1000.0F);
this.setCreativeTab(CreativeTabs.tabBlock);
this.setTextureName(":Kisla");
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4)
{
return null;
}
public boolean isOpaqueCube()
{
return false;
}
public boolean renderAsNormalBlock()
{
return false;
}
public int getRenderType()
{
return 4;
}
}
Код:
package assets.testmod.src;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.util.Icon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fluids.BlockFluidClassic;
import net.minecraftforge.fluids.Fluid;
public class BlockTEstFluid extends BlockFluidClassic {
@SideOnly(Side.CLIENT)
public Icon stillIcon;
@SideOnly(Side.CLIENT)
public Icon flowingIcon;
public BlockTEstFluid(int id, Fluid fluid, Material material) {
super(id, fluid, material);
setCreativeTab(CreativeTabs.tabBlock);
}
@Override
public Icon getIcon(int side, int meta) {
return (side == 0 || side == 1)? stillIcon : flowingIcon;
}
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IconRegister register) {
stillIcon= register.registerIcon("testMod:TestFluidStill");
flowingIcon=register.registerIcon("testMod:TestFluidFlowing");
}
@Override
public boolean canDisplace(IBlockAccess world, int x, int y, int z) {
if(Block.blocksList[world.getBlockId(x,y,z)].blockMaterial.isLiquid()) return false;
return super.canDisplace(world, x, y, z);
}
@Override
public boolean displaceIfPossible(World world, int x, int y, int z) {
if(Block.blocksList[world.getBlockId(x,y,z)].blockMaterial.isLiquid()) return false;
return super.displaceIfPossible(world, x, y, z);
}
}