Advertisement
Corosus

BlockBlood

Sep 23rd, 2011
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.10 KB | None | 0 0
  1. package net.minecraft.src;
  2.  
  3. import java.util.Random;
  4. import net.minecraft.src.Block;
  5. import net.minecraft.src.BlockFluid;
  6. import net.minecraft.src.Material;
  7. import net.minecraft.src.World;
  8. import java.awt.Color;
  9.  
  10. public class BlockBlood extends BlockFluid {
  11.  
  12.    protected BlockBlood(int var1, Material var2) {
  13.       super(var1, var2);
  14.       //this.setTickOnLoad(false);
  15.       //if(var2 == Material.lava) {
  16.          this.setTickOnLoad(true);
  17.       //}
  18.  
  19.    }
  20.    
  21.    public int colorMultiplier(IBlockAccess var1, int var2, int var3, int var4) {
  22.        int meta = var1.getBlockMetadata(var2, var3, var4);
  23.        
  24.        float intensity = (8F+(8F-((float)meta)))/7F;
  25.        
  26.        int temp = 255-(int)(255F*intensity);
  27.        if (temp > 255) { temp = 255; }
  28.        if (temp < 0) { temp = 0; }
  29.        
  30.        Color c = new Color(255, temp, temp);
  31.        
  32.        return c.getRGB();
  33.    }
  34.    
  35.    public int tickRate() {
  36.       return 30;
  37.    }
  38.    
  39.    /*public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
  40.        //System.out.println(blockIndexInTexture);
  41.        //return 2;
  42.        //return var2 > 8 ?2:getBlockTextureFromSide(var1);
  43.        return mod_Blood.bloodwaterCoord;
  44.    }*/
  45.  
  46.    public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
  47.       super.onNeighborBlockChange(var1, var2, var3, var4, var5);
  48.       if(var1.getBlockId(var2, var3, var4) == this.blockID) {
  49.          this.func_30004_j(var1, var2, var3, var4);
  50.       }
  51.  
  52.    }
  53.  
  54.    private void func_30004_j(World var1, int var2, int var3, int var4) {
  55.        if (true) return;
  56.       int var5 = var1.getBlockMetadata(var2, var3, var4);
  57.       var1.editingBlocks = true;
  58.       var1.setBlockAndMetadata(var2, var3, var4, 8, var5);
  59.       var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
  60.       var1.scheduleBlockUpdate(var2, var3, var4, 8, this.tickRate());
  61.       var1.editingBlocks = false;
  62.    }
  63.    
  64.    /*public void randomDisplayTick(World var1, int var2, int var3, int var4, Random var5) {
  65.        updateTick(var1, var2, var3, var4, var5);
  66.    }*/
  67.  
  68.    public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
  69.           if(this.blockMaterial == Material.water) {
  70.               //System.out.println("????????????");
  71.               //if (true) return;
  72.               //int chance = var1.rand.nextInt(1);
  73.               int meta = var1.getBlockMetadata(var2, var3, var4);
  74.               if (meta >= 8 && meta < 16) {
  75.                   //System.out.println("scheduled" + meta);
  76.                  
  77.               }
  78.               if (meta >= 8 && meta < 16/* && chance == 0*/) {
  79.                   meta+=2;
  80.                   if (meta >= 15) {
  81.                       meta = 0;
  82.                       var1.setBlockAndMetadataWithNotify(var2, var3, var4, Block.waterStill.blockID, meta);
  83.                       var1.scheduleBlockUpdate(var2,var3,var4,Block.waterStill.blockID,tickRate());
  84.                       var1.notifyBlocksOfNeighborChange(var2,var3,var4,Block.waterStill.blockID);
  85.                       //return;
  86.                       //var1.setBlockMetadataWithNotify(var2, var3, var4, meta);
  87.                       var1.markBlocksDirty(var2,var3,var4,var2,var3,var4);
  88.                   } else {
  89.                       var1.setBlockMetadataWithNotify(var2, var3, var4, meta);
  90.                       var1.scheduleBlockUpdate(var2,var3,var4,blockID,tickRate());
  91.                       var1.notifyBlocksOfNeighborChange(var2,var3,var4,blockID);
  92.                      
  93.                       var1.markBlocksDirty(var2,var3,var4,var2,var3,var4);
  94.                   }
  95.                  
  96.                   //System.out.println("inc - " + meta);
  97.               }
  98.               boolean foundWater = false;
  99.               if (meta >= 8 && meta < 14) {
  100.                   int tryID = var1.getBlockId(var2, var3, var4 - 1);
  101.                   if(tryID == Block.waterStill.blockID || tryID == mod_Blood.blockBlood.blockID) {
  102.                       trySpread(var1, var2, var3, var4 - 1, meta);
  103.                       foundWater = true;
  104.                   }
  105.    
  106.                   tryID = var1.getBlockId(var2, var3, var4 + 1);
  107.                   if(tryID == Block.waterStill.blockID || tryID == mod_Blood.blockBlood.blockID) {
  108.                       trySpread(var1, var2, var3, var4+1, meta);
  109.                       foundWater = true;
  110.                   }
  111.    
  112.                   tryID = var1.getBlockId(var2 - 1, var3, var4);
  113.                   if(tryID == Block.waterStill.blockID || tryID == mod_Blood.blockBlood.blockID) {
  114.                       trySpread(var1, var2-1, var3, var4, meta);
  115.                       foundWater = true;
  116.                   }
  117.    
  118.                   tryID = var1.getBlockId(var2 + 1, var3, var4);
  119.                   if(tryID == Block.waterStill.blockID || tryID == mod_Blood.blockBlood.blockID) {
  120.                       trySpread(var1, var2+1, var3, var4, meta);
  121.                       foundWater = true;
  122.                   }
  123.    
  124.                   /*if(var1.getBlockId(var2, var3 + 1, var4) == Block.waterStill.blockID) {
  125.                       trySpread(var1, var2, var3+1, var4, meta);
  126.                       foundWater = true;
  127.                   }*/
  128.               }
  129.  
  130.               //bleh
  131.               if(foundWater) {
  132.                  int var6 = var1.getBlockMetadata(var2, var3, var4);
  133.                  if(var6 == 0) {
  134.                     //var1.setBlockWithNotify(var2, var3, var4, Block.obsidian.blockID);
  135.                     //var1.setBlockMetadata(var2, var3, var4, 8);
  136.                  } else if(var6 <= 4) {
  137.                     //var1.setBlockWithNotify(var2, var3, var4, Block.cobblestone.blockID);
  138.                  }
  139.  
  140.                  //this.triggerLavaMixEffects(var1, var2, var3, var4);
  141.               }
  142.           }
  143.      
  144.    }
  145.    
  146.    public boolean trySpread(World world, int x, int y, int z, int bloodmeta) {
  147.        int chance = world.rand.nextInt(3);
  148.        //int bloodmeta = world.getBlockMetadata(x, y, z);
  149.        int meta = world.getBlockMetadata(x, y, z);
  150.        if(meta == 0 || meta > bloodmeta/* && chance == 0*/) {
  151.            System.out.println("spread!");
  152.            world.setBlockAndMetadataWithNotify(x, y, z, 190, bloodmeta);
  153.            world.notifyBlocksOfNeighborChange(x, y, z, this.blockID);
  154.            world.markBlocksDirty(x, y, z, x, y, z);
  155.            //world.scheduleBlockUpdate(x, y, z, 190, tickRate());
  156.            return true;
  157.        }
  158.        return false;
  159.    }
  160.  
  161.    private boolean func_301_k(World var1, int var2, int var3, int var4) {
  162.       return var1.getBlockMaterial(var2, var3, var4).getBurning();
  163.    }
  164. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement