Advertisement
Guest User

Untitled

a guest
Oct 25th, 2016
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.78 KB | None | 0 0
  1. package gtPlusPlus.core.fluids;
  2.  
  3. import gtPlusPlus.core.item.base.itemblock.ItemBlockFluid;
  4. import gtPlusPlus.core.material.Material;
  5. import net.minecraft.block.Block;
  6. import net.minecraftforge.fluids.Fluid;
  7. import net.minecraftforge.fluids.FluidRegistry;
  8. import cpw.mods.fml.common.registry.GameRegistry;
  9.  
  10. public class GenericFluid extends Fluid{
  11.  
  12.     protected final String fluidName;
  13.     protected final Fluid fluidFactory;
  14.     protected final Block blockFactory;
  15.     protected final short[] rgba;
  16.        
  17.     public GenericFluid(Material fluidMaterial, int luminosity, int density, int temperature, int viscosity, boolean isGas) {
  18.        
  19.         super(fluidMaterial.getUnlocalizedName());
  20.         //IC2_ItemFluidCell fullFluidCell = emptyCell.fill(emptyCell, FluidUtils.getFluidStack(getUnlocalizedName(), 1), true);
  21.        
  22.         fluidFactory = this;
  23.         this.rgba = fluidMaterial.getRGBA();
  24.         this.fluidName = fluidMaterial.getUnlocalizedName();
  25.         fluidFactory.setLuminosity(luminosity);
  26.         fluidFactory.setDensity(density);
  27.         fluidFactory.setTemperature(temperature);
  28.         fluidFactory.setViscosity(viscosity);
  29.         fluidFactory.setGaseous(isGas);
  30.         fluidFactory.setUnlocalizedName("fluid"+fluidName);
  31.         FluidRegistry.registerFluid(fluidFactory);         
  32.         blockFactory = new BlockFluidBase(fluidFactory, fluidMaterial).setBlockName("fluidblock"+fluidName);
  33.         GameRegistry.registerBlock(blockFactory, ItemBlockFluid.class, blockFactory.getUnlocalizedName().substring(5));
  34.         fluidFactory.setBlock(blockFactory);
  35.         //IC2_ItemFluidCell emptyCell = new IC2_ItemFluidCell(fluidName);
  36.         /*if (aFullContainer != null && aEmptyContainer != null && !FluidContainerRegistry.registerFluidContainer(new FluidStack(rFluid, aFluidAmount), aFullContainer, aEmptyContainer)) {
  37.             GT_Values.RA.addFluidCannerRecipe(aFullContainer, container(aFullContainer, false), null, new FluidStack(rFluid, aFluidAmount));
  38.         }*/
  39.         //fluidFactory.setUnlocalizedName(blockFactory.getUnlocalizedName());
  40.        
  41.     }
  42.    
  43.     @Override
  44.     public int getColor() {
  45.         return Math.max(0, Math.min(255, this.rgba[0])) << 16 | Math.max(0, Math.min(255, this.rgba[1])) << 8 | Math.max(0, Math.min(255, this.rgba[2]));
  46.     }  
  47.  
  48. }
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59. package gtPlusPlus.core.fluids;
  60.  
  61. import gtPlusPlus.core.creative.AddToCreativeTab;
  62. import gtPlusPlus.core.lib.CORE;
  63. import gtPlusPlus.core.material.Material;
  64. import gtPlusPlus.core.util.Utils;
  65. import gtPlusPlus.core.util.math.MathUtils;
  66. import net.minecraft.client.renderer.texture.IIconRegister;
  67. import net.minecraft.util.IIcon;
  68. import net.minecraft.world.IBlockAccess;
  69. import net.minecraft.world.World;
  70. import net.minecraftforge.fluids.BlockFluidClassic;
  71. import net.minecraftforge.fluids.Fluid;
  72. import cpw.mods.fml.common.registry.LanguageRegistry;
  73. import cpw.mods.fml.relauncher.Side;
  74. import cpw.mods.fml.relauncher.SideOnly;
  75.  
  76. public class BlockFluidBase extends BlockFluidClassic {
  77.  
  78.     @SideOnly(Side.CLIENT)
  79.     protected IIcon stillIcon;
  80.     @SideOnly(Side.CLIENT)
  81.     protected IIcon flowingIcon;
  82.    
  83.     protected int colour;
  84.     protected Material fluidMaterial;
  85.     final String displayName;
  86.    
  87.     @SuppressWarnings("deprecation")
  88.     public BlockFluidBase(Fluid fluid, Material material) {
  89.             super(fluid, net.minecraft.block.material.Material.lava);
  90.             short[] tempColour = material.getRGBA();
  91.             this.colour = Utils.rgbtoHexValue(tempColour[0], tempColour[1], tempColour[2]);
  92.             this.fluidMaterial = material;
  93.             setCreativeTab(AddToCreativeTab.tabOther);
  94.             this.displayName = material.getLocalizedName();
  95.             LanguageRegistry.addName(this, "Molten "+displayName+" ["+MathUtils.celsiusToKelvin(fluidMaterial.getBoilingPoint_C())+"K]");
  96.             this.setBlockName(GetProperName());
  97.     }
  98.    
  99.     @SuppressWarnings("deprecation")
  100.     public BlockFluidBase(String fluidName, Fluid fluid, short[] colour) {
  101.             super(fluid, net.minecraft.block.material.Material.lava);
  102.             short[] tempColour = colour;
  103.             this.colour = Utils.rgbtoHexValue(tempColour[0], tempColour[1], tempColour[2]);
  104.             setCreativeTab(AddToCreativeTab.tabOther);
  105.             this.displayName = fluidName;
  106.             LanguageRegistry.addName(this, "Molten "+displayName);
  107.             this.setBlockName(GetProperName());
  108.     }
  109.    
  110.     @Override
  111.     public IIcon getIcon(int side, int meta) {
  112.             return (side == 0 || side == 1)? stillIcon : flowingIcon;
  113.     }
  114.    
  115.     @SideOnly(Side.CLIENT)
  116.     @Override
  117.     public void registerBlockIcons(IIconRegister register) {
  118.             stillIcon = register.registerIcon(CORE.MODID+":fluids/fluid.molten.autogenerated");
  119.             flowingIcon = register.registerIcon(CORE.MODID+":fluids/fluid.molten.autogenerated");
  120.     }
  121.    
  122.     @Override
  123.     public boolean canDisplace(IBlockAccess world, int x, int y, int z) {
  124.             if (world.getBlock(x,  y,  z).getMaterial().isLiquid()) return false;
  125.             return super.canDisplace(world, x, y, z);
  126.     }
  127.    
  128.     @Override
  129.     public boolean displaceIfPossible(World world, int x, int y, int z) {
  130.             if (world.getBlock(x,  y,  z).getMaterial().isLiquid()) return false;
  131.             return super.displaceIfPossible(world, x, y, z);
  132.     }
  133.  
  134.     @Override
  135.     public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4){       
  136.        
  137.         if (this.colour == 0){
  138.             return MathUtils.generateSingularRandomHexValue();
  139.         }
  140.        
  141.         return this.colour;
  142.     }
  143.    
  144.     @Override
  145.     public int getRenderColor(int aMeta) {
  146.         if (this.colour == 0){
  147.             return MathUtils.generateSingularRandomHexValue();
  148.         }
  149.        
  150.         return this.colour;
  151.     }
  152.    
  153.     public String GetProperName() {
  154.         String tempIngot;  
  155.  
  156.         tempIngot = "Molten "+displayName;
  157.  
  158.         return tempIngot;
  159.     }
  160.    
  161.     public Material getFluidMaterial(){
  162.         return fluidMaterial;
  163.     }
  164.    
  165. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement