Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.minecraft.src;
- import java.util.Random;
- import net.minecraft.src.Block;
- import net.minecraft.src.BlockFluid;
- import net.minecraft.src.Material;
- import net.minecraft.src.World;
- import java.awt.Color;
- public class BlockBlood extends BlockFluid {
- protected BlockBlood(int var1, Material var2) {
- super(var1, var2);
- //this.setTickOnLoad(false);
- //if(var2 == Material.lava) {
- this.setTickOnLoad(true);
- //}
- }
- public int colorMultiplier(IBlockAccess var1, int var2, int var3, int var4) {
- int meta = var1.getBlockMetadata(var2, var3, var4);
- float intensity = (8F+(8F-((float)meta)))/7F;
- int temp = 255-(int)(255F*intensity);
- if (temp > 255) { temp = 255; }
- if (temp < 0) { temp = 0; }
- Color c = new Color(255, temp, temp);
- return c.getRGB();
- }
- public int tickRate() {
- return 30;
- }
- /*public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
- //System.out.println(blockIndexInTexture);
- //return 2;
- //return var2 > 8 ?2:getBlockTextureFromSide(var1);
- return mod_Blood.bloodwaterCoord;
- }*/
- public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
- super.onNeighborBlockChange(var1, var2, var3, var4, var5);
- if(var1.getBlockId(var2, var3, var4) == this.blockID) {
- this.func_30004_j(var1, var2, var3, var4);
- }
- }
- private void func_30004_j(World var1, int var2, int var3, int var4) {
- if (true) return;
- int var5 = var1.getBlockMetadata(var2, var3, var4);
- var1.editingBlocks = true;
- var1.setBlockAndMetadata(var2, var3, var4, 8, var5);
- var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
- var1.scheduleBlockUpdate(var2, var3, var4, 8, this.tickRate());
- var1.editingBlocks = false;
- }
- /*public void randomDisplayTick(World var1, int var2, int var3, int var4, Random var5) {
- updateTick(var1, var2, var3, var4, var5);
- }*/
- public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
- if(this.blockMaterial == Material.water) {
- //System.out.println("????????????");
- //if (true) return;
- //int chance = var1.rand.nextInt(1);
- int meta = var1.getBlockMetadata(var2, var3, var4);
- if (meta >= 8 && meta < 16) {
- //System.out.println("scheduled" + meta);
- }
- if (meta >= 8 && meta < 16/* && chance == 0*/) {
- meta+=2;
- if (meta >= 15) {
- meta = 0;
- var1.setBlockAndMetadataWithNotify(var2, var3, var4, Block.waterStill.blockID, meta);
- var1.scheduleBlockUpdate(var2,var3,var4,Block.waterStill.blockID,tickRate());
- var1.notifyBlocksOfNeighborChange(var2,var3,var4,Block.waterStill.blockID);
- //return;
- //var1.setBlockMetadataWithNotify(var2, var3, var4, meta);
- var1.markBlocksDirty(var2,var3,var4,var2,var3,var4);
- } else {
- var1.setBlockMetadataWithNotify(var2, var3, var4, meta);
- var1.scheduleBlockUpdate(var2,var3,var4,blockID,tickRate());
- var1.notifyBlocksOfNeighborChange(var2,var3,var4,blockID);
- var1.markBlocksDirty(var2,var3,var4,var2,var3,var4);
- }
- //System.out.println("inc - " + meta);
- }
- boolean foundWater = false;
- if (meta >= 8 && meta < 14) {
- int tryID = var1.getBlockId(var2, var3, var4 - 1);
- if(tryID == Block.waterStill.blockID || tryID == mod_Blood.blockBlood.blockID) {
- trySpread(var1, var2, var3, var4 - 1, meta);
- foundWater = true;
- }
- tryID = var1.getBlockId(var2, var3, var4 + 1);
- if(tryID == Block.waterStill.blockID || tryID == mod_Blood.blockBlood.blockID) {
- trySpread(var1, var2, var3, var4+1, meta);
- foundWater = true;
- }
- tryID = var1.getBlockId(var2 - 1, var3, var4);
- if(tryID == Block.waterStill.blockID || tryID == mod_Blood.blockBlood.blockID) {
- trySpread(var1, var2-1, var3, var4, meta);
- foundWater = true;
- }
- tryID = var1.getBlockId(var2 + 1, var3, var4);
- if(tryID == Block.waterStill.blockID || tryID == mod_Blood.blockBlood.blockID) {
- trySpread(var1, var2+1, var3, var4, meta);
- foundWater = true;
- }
- /*if(var1.getBlockId(var2, var3 + 1, var4) == Block.waterStill.blockID) {
- trySpread(var1, var2, var3+1, var4, meta);
- foundWater = true;
- }*/
- }
- //bleh
- if(foundWater) {
- int var6 = var1.getBlockMetadata(var2, var3, var4);
- if(var6 == 0) {
- //var1.setBlockWithNotify(var2, var3, var4, Block.obsidian.blockID);
- //var1.setBlockMetadata(var2, var3, var4, 8);
- } else if(var6 <= 4) {
- //var1.setBlockWithNotify(var2, var3, var4, Block.cobblestone.blockID);
- }
- //this.triggerLavaMixEffects(var1, var2, var3, var4);
- }
- }
- }
- public boolean trySpread(World world, int x, int y, int z, int bloodmeta) {
- int chance = world.rand.nextInt(3);
- //int bloodmeta = world.getBlockMetadata(x, y, z);
- int meta = world.getBlockMetadata(x, y, z);
- if(meta == 0 || meta > bloodmeta/* && chance == 0*/) {
- System.out.println("spread!");
- world.setBlockAndMetadataWithNotify(x, y, z, 190, bloodmeta);
- world.notifyBlocksOfNeighborChange(x, y, z, this.blockID);
- world.markBlocksDirty(x, y, z, x, y, z);
- //world.scheduleBlockUpdate(x, y, z, 190, tickRate());
- return true;
- }
- return false;
- }
- private boolean func_301_k(World var1, int var2, int var3, int var4) {
- return var1.getBlockMaterial(var2, var3, var4).getBurning();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment