Reformat code

This commit is contained in:
Dereku 2026-01-30 02:26:17 +07:00
parent ee3d133a31
commit 3b140b91c9
432 changed files with 33958 additions and 34058 deletions

View file

@ -7,59 +7,59 @@ import net.minecraft.statistics.StatBase;
import net.minecraft.statistics.StatCollector;
public class Achievement extends StatBase<Achievement> {
public final int field_25067_a;
public final int field_27991_b;
public final Achievement field_27992_c;
private final String field_27063_l;
public final ItemStack theItemStack;
private boolean field_27062_m;
public final int field_25067_a;
public final int field_27991_b;
public final Achievement field_27992_c;
private final String field_27063_l;
public final ItemStack theItemStack;
private boolean field_27062_m;
public Achievement(int var1, String var2, int var3, int var4, Item var5, Achievement var6) {
this(var1, var2, var3, var4, new ItemStack(var5), var6);
}
public Achievement(int var1, String var2, int var3, int var4, Item var5, Achievement var6) {
this(var1, var2, var3, var4, new ItemStack(var5), var6);
}
public Achievement(int var1, String var2, int var3, int var4, Block var5, Achievement var6) {
this(var1, var2, var3, var4, new ItemStack(var5), var6);
}
public Achievement(int var1, String var2, int var3, int var4, Block var5, Achievement var6) {
this(var1, var2, var3, var4, new ItemStack(var5), var6);
}
public Achievement(int var1, String var2, int var3, int var4, ItemStack var5, Achievement var6) {
super(5242880 + var1, StatCollector.translateToLocal("achievement." + var2));
this.theItemStack = var5;
this.field_27063_l = StatCollector.translateToLocal("achievement." + var2 + ".desc");
this.field_25067_a = var3;
this.field_27991_b = var4;
if(var3 < AchievementList.field_27114_a) {
AchievementList.field_27114_a = var3;
}
public Achievement(int var1, String var2, int var3, int var4, ItemStack var5, Achievement var6) {
super(5242880 + var1, StatCollector.translateToLocal("achievement." + var2));
this.theItemStack = var5;
this.field_27063_l = StatCollector.translateToLocal("achievement." + var2 + ".desc");
this.field_25067_a = var3;
this.field_27991_b = var4;
if (var3 < AchievementList.field_27114_a) {
AchievementList.field_27114_a = var3;
}
if(var4 < AchievementList.field_27113_b) {
AchievementList.field_27113_b = var4;
}
if (var4 < AchievementList.field_27113_b) {
AchievementList.field_27113_b = var4;
}
if(var3 > AchievementList.field_27112_c) {
AchievementList.field_27112_c = var3;
}
if (var3 > AchievementList.field_27112_c) {
AchievementList.field_27112_c = var3;
}
if(var4 > AchievementList.field_27111_d) {
AchievementList.field_27111_d = var4;
}
if (var4 > AchievementList.field_27111_d) {
AchievementList.field_27111_d = var4;
}
this.field_27992_c = var6;
}
this.field_27992_c = var6;
}
public Achievement func_27052_e() {
this.field_27058_g = true;
return this;
}
public Achievement func_27052_e() {
this.field_27058_g = true;
return this;
}
public Achievement func_27060_b() {
this.field_27062_m = true;
return this;
}
public Achievement func_27060_b() {
this.field_27062_m = true;
return this;
}
public Achievement func_27053_d() {
super.func_27053_d();
AchievementList.field_25129_a.add(this);
return this;
}
public Achievement func_27053_d() {
super.func_27053_d();
AchievementList.field_25129_a.add(this);
return this;
}
}

View file

@ -1,37 +1,38 @@
package net.minecraft.achievement;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import java.util.ArrayList;
import java.util.List;
public class AchievementList {
public static int field_27114_a;
public static int field_27113_b;
public static int field_27112_c;
public static int field_27111_d;
public static List field_25129_a = new ArrayList();
public static Achievement field_25128_b = (new Achievement(0, "openInventory", 0, 0, Item.book, (Achievement)null)).func_27052_e().func_27053_d();
public static Achievement field_25131_c = (new Achievement(1, "mineWood", 2, 1, Block.wood, field_25128_b)).func_27053_d();
public static Achievement field_25130_d = (new Achievement(2, "buildWorkBench", 4, -1, Block.workbench, field_25131_c)).func_27053_d();
public static Achievement field_27110_i = (new Achievement(3, "buildPickaxe", 4, 2, Item.pickaxeWood, field_25130_d)).func_27053_d();
public static Achievement field_27109_j = (new Achievement(4, "buildFurnace", 3, 4, Block.stoneOvenActive, field_27110_i)).func_27053_d();
public static Achievement field_27108_k = (new Achievement(5, "acquireIron", 1, 4, Item.ingotIron, field_27109_j)).func_27053_d();
public static Achievement field_27107_l = (new Achievement(6, "buildHoe", 2, -3, Item.hoeWood, field_25130_d)).func_27053_d();
public static Achievement field_27106_m = (new Achievement(7, "makeBread", -1, -3, Item.bread, field_27107_l)).func_27053_d();
public static Achievement field_27105_n = (new Achievement(8, "bakeCake", 0, -5, Item.cake, field_27107_l)).func_27053_d();
public static Achievement field_27104_o = (new Achievement(9, "buildBetterPickaxe", 6, 2, Item.pickaxeStone, field_27110_i)).func_27053_d();
public static Achievement field_27103_p = (new Achievement(10, "cookFish", 2, 6, Item.fishCooked, field_27109_j)).func_27053_d();
public static Achievement field_27102_q = (new Achievement(11, "onARail", 2, 3, Block.minecartTrack, field_27108_k)).func_27060_b().func_27053_d();
public static Achievement field_27101_r = (new Achievement(12, "buildSword", 6, -1, Item.swordWood, field_25130_d)).func_27053_d();
public static Achievement field_27100_s = (new Achievement(13, "killEnemy", 8, -1, Item.bone, field_27101_r)).func_27053_d();
public static Achievement field_27099_t = (new Achievement(14, "killCow", 7, -3, Item.leather, field_27101_r)).func_27053_d();
public static Achievement field_27098_u = (new Achievement(15, "flyPig", 8, -4, Item.saddle, field_27099_t)).func_27060_b().func_27053_d();
public static int field_27114_a;
public static int field_27113_b;
public static int field_27112_c;
public static int field_27111_d;
public static List field_25129_a = new ArrayList();
public static Achievement field_25128_b = (new Achievement(0, "openInventory", 0, 0, Item.book, (Achievement) null)).func_27052_e().func_27053_d();
public static Achievement field_25131_c = (new Achievement(1, "mineWood", 2, 1, Block.wood, field_25128_b)).func_27053_d();
public static Achievement field_25130_d = (new Achievement(2, "buildWorkBench", 4, -1, Block.workbench, field_25131_c)).func_27053_d();
public static Achievement field_27110_i = (new Achievement(3, "buildPickaxe", 4, 2, Item.pickaxeWood, field_25130_d)).func_27053_d();
public static Achievement field_27109_j = (new Achievement(4, "buildFurnace", 3, 4, Block.stoneOvenActive, field_27110_i)).func_27053_d();
public static Achievement field_27108_k = (new Achievement(5, "acquireIron", 1, 4, Item.ingotIron, field_27109_j)).func_27053_d();
public static Achievement field_27107_l = (new Achievement(6, "buildHoe", 2, -3, Item.hoeWood, field_25130_d)).func_27053_d();
public static Achievement field_27106_m = (new Achievement(7, "makeBread", -1, -3, Item.bread, field_27107_l)).func_27053_d();
public static Achievement field_27105_n = (new Achievement(8, "bakeCake", 0, -5, Item.cake, field_27107_l)).func_27053_d();
public static Achievement field_27104_o = (new Achievement(9, "buildBetterPickaxe", 6, 2, Item.pickaxeStone, field_27110_i)).func_27053_d();
public static Achievement field_27103_p = (new Achievement(10, "cookFish", 2, 6, Item.fishCooked, field_27109_j)).func_27053_d();
public static Achievement field_27102_q = (new Achievement(11, "onARail", 2, 3, Block.minecartTrack, field_27108_k)).func_27060_b().func_27053_d();
public static Achievement field_27101_r = (new Achievement(12, "buildSword", 6, -1, Item.swordWood, field_25130_d)).func_27053_d();
public static Achievement field_27100_s = (new Achievement(13, "killEnemy", 8, -1, Item.bone, field_27101_r)).func_27053_d();
public static Achievement field_27099_t = (new Achievement(14, "killCow", 7, -3, Item.leather, field_27101_r)).func_27053_d();
public static Achievement field_27098_u = (new Achievement(15, "flyPig", 8, -4, Item.saddle, field_27099_t)).func_27060_b().func_27053_d();
public static void func_27097_a() {
}
public static void func_27097_a() {
}
static {
System.out.println(field_25129_a.size() + " achievements");
}
static {
System.out.println(field_25129_a.size() + " achievements");
}
}

View file

@ -6,31 +6,31 @@ import java.util.HashMap;
import java.util.Map;
public class AchievementMap {
public static AchievementMap field_25134_a = new AchievementMap();
private Map field_25133_b = new HashMap();
public static AchievementMap field_25134_a = new AchievementMap();
private Map field_25133_b = new HashMap();
private AchievementMap() {
try {
BufferedReader var1 = new BufferedReader(new InputStreamReader(AchievementMap.class.getResourceAsStream("/achievement/map.txt")));
private AchievementMap() {
try {
BufferedReader var1 = new BufferedReader(new InputStreamReader(AchievementMap.class.getResourceAsStream("/achievement/map.txt")));
while(true) {
String var2 = var1.readLine();
if(var2 == null) {
var1.close();
break;
}
while (true) {
String var2 = var1.readLine();
if (var2 == null) {
var1.close();
break;
}
String[] var3 = var2.split(",");
int var4 = Integer.parseInt(var3[0]);
this.field_25133_b.put(Integer.valueOf(var4), var3[1]);
}
} catch (Exception var5) {
var5.printStackTrace();
}
String[] var3 = var2.split(",");
int var4 = Integer.parseInt(var3[0]);
this.field_25133_b.put(Integer.valueOf(var4), var3[1]);
}
} catch (Exception var5) {
var5.printStackTrace();
}
}
}
public static String func_25132_a(int var0) {
return (String)field_25134_a.field_25133_b.get(Integer.valueOf(var0));
}
public static String func_25132_a(int var0) {
return (String) field_25134_a.field_25133_b.get(Integer.valueOf(var0));
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,5 @@
package net.minecraft.block;
import java.util.Iterator;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityPlayer;
@ -12,188 +10,191 @@ import net.minecraft.world.EnumBedResult;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import java.util.Iterator;
import java.util.Random;
public class BlockBed extends Block {
public static final int[][] field_22023_a = new int[][]{{0, 1}, {-1, 0}, {0, -1}, {1, 0}};
public static final int[][] field_22023_a = new int[][]{{0, 1}, {-1, 0}, {0, -1}, {1, 0}};
public BlockBed(int var1) {
super(var1, 134, Material.cloth);
this.setBounds();
}
public BlockBed(int var1) {
super(var1, 134, Material.cloth);
this.setBounds();
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if(var1.singleplayerWorld) {
return true;
} else {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if(!func_22020_d(var6)) {
int var7 = func_22019_c(var6);
var2 += field_22023_a[var7][0];
var4 += field_22023_a[var7][1];
if(var1.getBlockId(var2, var3, var4) != this.blockID) {
return true;
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if (var1.singleplayerWorld) {
return true;
} else {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if (!func_22020_d(var6)) {
int var7 = func_22019_c(var6);
var2 += field_22023_a[var7][0];
var4 += field_22023_a[var7][1];
if (var1.getBlockId(var2, var3, var4) != this.blockID) {
return true;
}
var6 = var1.getBlockMetadata(var2, var3, var4);
}
var6 = var1.getBlockMetadata(var2, var3, var4);
}
if(!var1.worldProvider.func_28108_d()) {
double var16 = (double)var2 + 0.5D;
double var17 = (double)var3 + 0.5D;
double var11 = (double)var4 + 0.5D;
var1.setBlockWithNotify(var2, var3, var4, 0);
int var13 = func_22019_c(var6);
var2 += field_22023_a[var13][0];
var4 += field_22023_a[var13][1];
if(var1.getBlockId(var2, var3, var4) == this.blockID) {
var1.setBlockWithNotify(var2, var3, var4, 0);
var16 = (var16 + (double)var2 + 0.5D) / 2.0D;
var17 = (var17 + (double)var3 + 0.5D) / 2.0D;
var11 = (var11 + (double)var4 + 0.5D) / 2.0D;
}
if (!var1.worldProvider.func_28108_d()) {
double var16 = (double) var2 + 0.5D;
double var17 = (double) var3 + 0.5D;
double var11 = (double) var4 + 0.5D;
var1.setBlockWithNotify(var2, var3, var4, 0);
int var13 = func_22019_c(var6);
var2 += field_22023_a[var13][0];
var4 += field_22023_a[var13][1];
if (var1.getBlockId(var2, var3, var4) == this.blockID) {
var1.setBlockWithNotify(var2, var3, var4, 0);
var16 = (var16 + (double) var2 + 0.5D) / 2.0D;
var17 = (var17 + (double) var3 + 0.5D) / 2.0D;
var11 = (var11 + (double) var4 + 0.5D) / 2.0D;
}
var1.newExplosion((Entity)null, (double)((float)var2 + 0.5F), (double)((float)var3 + 0.5F), (double)((float)var4 + 0.5F), 5.0F, true);
return true;
} else {
if(func_22018_f(var6)) {
EntityPlayer var14 = null;
Iterator var8 = var1.playerEntities.iterator();
var1.newExplosion((Entity) null, (double) ((float) var2 + 0.5F), (double) ((float) var3 + 0.5F), (double) ((float) var4 + 0.5F), 5.0F, true);
return true;
} else {
if (func_22018_f(var6)) {
EntityPlayer var14 = null;
Iterator var8 = var1.playerEntities.iterator();
while(var8.hasNext()) {
EntityPlayer var9 = (EntityPlayer)var8.next();
if(var9.func_22057_E()) {
ChunkCoordinates var10 = var9.playerLocation;
if(var10.posX == var2 && var10.posY == var3 && var10.posZ == var4) {
var14 = var9;
}
}
}
while (var8.hasNext()) {
EntityPlayer var9 = (EntityPlayer) var8.next();
if (var9.func_22057_E()) {
ChunkCoordinates var10 = var9.playerLocation;
if (var10.posX == var2 && var10.posY == var3 && var10.posZ == var4) {
var14 = var9;
}
}
}
if(var14 != null) {
var5.func_22061_a("tile.bed.occupied");
return true;
}
if (var14 != null) {
var5.func_22061_a("tile.bed.occupied");
return true;
}
func_22022_a(var1, var2, var3, var4, false);
}
func_22022_a(var1, var2, var3, var4, false);
}
EnumBedResult var15 = var5.goToSleep(var2, var3, var4);
if(var15 == EnumBedResult.OK) {
func_22022_a(var1, var2, var3, var4, true);
return true;
} else {
if(var15 == EnumBedResult.NOT_POSSIBLE_NOW) {
var5.func_22061_a("tile.bed.noSleep");
}
EnumBedResult var15 = var5.goToSleep(var2, var3, var4);
if (var15 == EnumBedResult.OK) {
func_22022_a(var1, var2, var3, var4, true);
return true;
} else {
if (var15 == EnumBedResult.NOT_POSSIBLE_NOW) {
var5.func_22061_a("tile.bed.noSleep");
}
return true;
}
}
}
}
return true;
}
}
}
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
if(var1 == 0) {
return Block.planks.blockIndexInTexture;
} else {
int var3 = func_22019_c(var2);
int var4 = ModelBed.field_22155_c[var3][var1];
return func_22020_d(var2) ? (var4 == 2 ? this.blockIndexInTexture + 2 + 16 : (var4 != 5 && var4 != 4 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture + 1 + 16)) : (var4 == 3 ? this.blockIndexInTexture - 1 + 16 : (var4 != 5 && var4 != 4 ? this.blockIndexInTexture : this.blockIndexInTexture + 16));
}
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
if (var1 == 0) {
return Block.planks.blockIndexInTexture;
} else {
int var3 = func_22019_c(var2);
int var4 = ModelBed.field_22155_c[var3][var1];
return func_22020_d(var2) ? (var4 == 2 ? this.blockIndexInTexture + 2 + 16 : (var4 != 5 && var4 != 4 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture + 1 + 16)) : (var4 == 3 ? this.blockIndexInTexture - 1 + 16 : (var4 != 5 && var4 != 4 ? this.blockIndexInTexture : this.blockIndexInTexture + 16));
}
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
this.setBounds();
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
this.setBounds();
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
int var7 = func_22019_c(var6);
if(func_22020_d(var6)) {
if(var1.getBlockId(var2 - field_22023_a[var7][0], var3, var4 - field_22023_a[var7][1]) != this.blockID) {
var1.setBlockWithNotify(var2, var3, var4, 0);
}
} else if(var1.getBlockId(var2 + field_22023_a[var7][0], var3, var4 + field_22023_a[var7][1]) != this.blockID) {
var1.setBlockWithNotify(var2, var3, var4, 0);
if(!var1.singleplayerWorld) {
this.dropBlockAsItem(var1, var2, var3, var4, var6);
}
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
int var7 = func_22019_c(var6);
if (func_22020_d(var6)) {
if (var1.getBlockId(var2 - field_22023_a[var7][0], var3, var4 - field_22023_a[var7][1]) != this.blockID) {
var1.setBlockWithNotify(var2, var3, var4, 0);
}
} else if (var1.getBlockId(var2 + field_22023_a[var7][0], var3, var4 + field_22023_a[var7][1]) != this.blockID) {
var1.setBlockWithNotify(var2, var3, var4, 0);
if (!var1.singleplayerWorld) {
this.dropBlockAsItem(var1, var2, var3, var4, var6);
}
}
}
}
public int idDropped(int var1, Random var2) {
return func_22020_d(var1) ? 0 : Item.bed.shiftedIndex;
}
public int idDropped(int var1, Random var2) {
return func_22020_d(var1) ? 0 : Item.bed.shiftedIndex;
}
private void setBounds() {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 9.0F / 16.0F, 1.0F);
}
private void setBounds() {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 9.0F / 16.0F, 1.0F);
}
public static int func_22019_c(int var0) {
return var0 & 3;
}
public static int func_22019_c(int var0) {
return var0 & 3;
}
public static boolean func_22020_d(int var0) {
return (var0 & 8) != 0;
}
public static boolean func_22020_d(int var0) {
return (var0 & 8) != 0;
}
public static boolean func_22018_f(int var0) {
return (var0 & 4) != 0;
}
public static boolean func_22018_f(int var0) {
return (var0 & 4) != 0;
}
public static void func_22022_a(World var0, int var1, int var2, int var3, boolean var4) {
int var5 = var0.getBlockMetadata(var1, var2, var3);
if(var4) {
var5 |= 4;
} else {
var5 &= -5;
}
public static void func_22022_a(World var0, int var1, int var2, int var3, boolean var4) {
int var5 = var0.getBlockMetadata(var1, var2, var3);
if (var4) {
var5 |= 4;
} else {
var5 &= -5;
}
var0.setBlockMetadataWithNotify(var1, var2, var3, var5);
}
var0.setBlockMetadataWithNotify(var1, var2, var3, var5);
}
public static ChunkCoordinates func_22021_g(World var0, int var1, int var2, int var3, int var4) {
int var5 = var0.getBlockMetadata(var1, var2, var3);
int var6 = func_22019_c(var5);
public static ChunkCoordinates func_22021_g(World var0, int var1, int var2, int var3, int var4) {
int var5 = var0.getBlockMetadata(var1, var2, var3);
int var6 = func_22019_c(var5);
for(int var7 = 0; var7 <= 1; ++var7) {
int var8 = var1 - field_22023_a[var6][0] * var7 - 1;
int var9 = var3 - field_22023_a[var6][1] * var7 - 1;
int var10 = var8 + 2;
int var11 = var9 + 2;
for (int var7 = 0; var7 <= 1; ++var7) {
int var8 = var1 - field_22023_a[var6][0] * var7 - 1;
int var9 = var3 - field_22023_a[var6][1] * var7 - 1;
int var10 = var8 + 2;
int var11 = var9 + 2;
for(int var12 = var8; var12 <= var10; ++var12) {
for(int var13 = var9; var13 <= var11; ++var13) {
if(var0.isBlockNormalCube(var12, var2 - 1, var13) && var0.isAirBlock(var12, var2, var13) && var0.isAirBlock(var12, var2 + 1, var13)) {
if(var4 <= 0) {
return new ChunkCoordinates(var12, var2, var13);
}
for (int var12 = var8; var12 <= var10; ++var12) {
for (int var13 = var9; var13 <= var11; ++var13) {
if (var0.isBlockNormalCube(var12, var2 - 1, var13) && var0.isAirBlock(var12, var2, var13) && var0.isAirBlock(var12, var2 + 1, var13)) {
if (var4 <= 0) {
return new ChunkCoordinates(var12, var2, var13);
}
--var4;
}
}
}
}
--var4;
}
}
}
}
return null;
}
return null;
}
public void dropBlockAsItemWithChance(World var1, int var2, int var3, int var4, int var5, float var6) {
if(!func_22020_d(var5)) {
super.dropBlockAsItemWithChance(var1, var2, var3, var4, var5, var6);
}
public void dropBlockAsItemWithChance(World var1, int var2, int var3, int var4, int var5, float var6) {
if (!func_22020_d(var5)) {
super.dropBlockAsItemWithChance(var1, var2, var3, var4, var5, var6);
}
}
}
public int getMobilityFlag() {
return 1;
}
public int getMobilityFlag() {
return 1;
}
}

View file

@ -1,18 +1,19 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import java.util.Random;
public class BlockBookshelf extends Block {
public BlockBookshelf(int var1, int var2) {
super(var1, var2, Material.wood);
}
public BlockBookshelf(int var1, int var2) {
super(var1, var2, Material.wood);
}
public int getBlockTextureFromSide(int var1) {
return var1 <= 1 ? 4 : this.blockIndexInTexture;
}
public int getBlockTextureFromSide(int var1) {
return var1 <= 1 ? 4 : this.blockIndexInTexture;
}
public int quantityDropped(Random var1) {
return 0;
}
public int quantityDropped(Random var1) {
return 0;
}
}

View file

@ -3,14 +3,14 @@ package net.minecraft.block;
import net.minecraft.block.material.Material;
public class BlockBreakable extends Block {
private boolean field_6084_a;
private boolean field_6084_a;
protected BlockBreakable(int var1, int var2, Material var3, boolean var4) {
super(var1, var2, var3);
this.field_6084_a = var4;
}
protected BlockBreakable(int var1, int var2, Material var3, boolean var4) {
super(var1, var2, var3);
this.field_6084_a = var4;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
}

View file

@ -1,220 +1,221 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityPlayer;
import net.minecraft.math.AxisAlignedBB;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import java.util.Random;
public class BlockButton extends Block {
protected BlockButton(int var1, int var2) {
super(var1, var2, Material.circuits);
this.setTickOnLoad(true);
}
protected BlockButton(int var1, int var2) {
super(var1, var2, Material.circuits);
this.setTickOnLoad(true);
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public int tickRate() {
return 20;
}
public int tickRate() {
return 20;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean canPlaceBlockOnSide(World var1, int var2, int var3, int var4, int var5) {
return var5 == 2 && var1.isBlockNormalCube(var2, var3, var4 + 1) ? true : (var5 == 3 && var1.isBlockNormalCube(var2, var3, var4 - 1) ? true : (var5 == 4 && var1.isBlockNormalCube(var2 + 1, var3, var4) ? true : var5 == 5 && var1.isBlockNormalCube(var2 - 1, var3, var4)));
}
public boolean canPlaceBlockOnSide(World var1, int var2, int var3, int var4, int var5) {
return var5 == 2 && var1.isBlockNormalCube(var2, var3, var4 + 1) ? true : (var5 == 3 && var1.isBlockNormalCube(var2, var3, var4 - 1) ? true : (var5 == 4 && var1.isBlockNormalCube(var2 + 1, var3, var4) ? true : var5 == 5 && var1.isBlockNormalCube(var2 - 1, var3, var4)));
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return var1.isBlockNormalCube(var2 - 1, var3, var4) ? true : (var1.isBlockNormalCube(var2 + 1, var3, var4) ? true : (var1.isBlockNormalCube(var2, var3, var4 - 1) ? true : var1.isBlockNormalCube(var2, var3, var4 + 1)));
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return var1.isBlockNormalCube(var2 - 1, var3, var4) ? true : (var1.isBlockNormalCube(var2 + 1, var3, var4) ? true : (var1.isBlockNormalCube(var2, var3, var4 - 1) ? true : var1.isBlockNormalCube(var2, var3, var4 + 1)));
}
public void onBlockPlaced(World var1, int var2, int var3, int var4, int var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
int var7 = var6 & 8;
var6 &= 7;
if(var5 == 2 && var1.isBlockNormalCube(var2, var3, var4 + 1)) {
var6 = 4;
} else if(var5 == 3 && var1.isBlockNormalCube(var2, var3, var4 - 1)) {
var6 = 3;
} else if(var5 == 4 && var1.isBlockNormalCube(var2 + 1, var3, var4)) {
var6 = 2;
} else if(var5 == 5 && var1.isBlockNormalCube(var2 - 1, var3, var4)) {
var6 = 1;
} else {
var6 = this.getOrientation(var1, var2, var3, var4);
}
public void onBlockPlaced(World var1, int var2, int var3, int var4, int var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
int var7 = var6 & 8;
var6 &= 7;
if (var5 == 2 && var1.isBlockNormalCube(var2, var3, var4 + 1)) {
var6 = 4;
} else if (var5 == 3 && var1.isBlockNormalCube(var2, var3, var4 - 1)) {
var6 = 3;
} else if (var5 == 4 && var1.isBlockNormalCube(var2 + 1, var3, var4)) {
var6 = 2;
} else if (var5 == 5 && var1.isBlockNormalCube(var2 - 1, var3, var4)) {
var6 = 1;
} else {
var6 = this.getOrientation(var1, var2, var3, var4);
}
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 + var7);
}
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 + var7);
}
private int getOrientation(World var1, int var2, int var3, int var4) {
return var1.isBlockNormalCube(var2 - 1, var3, var4) ? 1 : (var1.isBlockNormalCube(var2 + 1, var3, var4) ? 2 : (var1.isBlockNormalCube(var2, var3, var4 - 1) ? 3 : (var1.isBlockNormalCube(var2, var3, var4 + 1) ? 4 : 1)));
}
private int getOrientation(World var1, int var2, int var3, int var4) {
return var1.isBlockNormalCube(var2 - 1, var3, var4) ? 1 : (var1.isBlockNormalCube(var2 + 1, var3, var4) ? 2 : (var1.isBlockNormalCube(var2, var3, var4 - 1) ? 3 : (var1.isBlockNormalCube(var2, var3, var4 + 1) ? 4 : 1)));
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if(this.func_322_g(var1, var2, var3, var4)) {
int var6 = var1.getBlockMetadata(var2, var3, var4) & 7;
boolean var7 = false;
if(!var1.isBlockNormalCube(var2 - 1, var3, var4) && var6 == 1) {
var7 = true;
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if (this.func_322_g(var1, var2, var3, var4)) {
int var6 = var1.getBlockMetadata(var2, var3, var4) & 7;
boolean var7 = false;
if (!var1.isBlockNormalCube(var2 - 1, var3, var4) && var6 == 1) {
var7 = true;
}
if(!var1.isBlockNormalCube(var2 + 1, var3, var4) && var6 == 2) {
var7 = true;
}
if (!var1.isBlockNormalCube(var2 + 1, var3, var4) && var6 == 2) {
var7 = true;
}
if(!var1.isBlockNormalCube(var2, var3, var4 - 1) && var6 == 3) {
var7 = true;
}
if (!var1.isBlockNormalCube(var2, var3, var4 - 1) && var6 == 3) {
var7 = true;
}
if(!var1.isBlockNormalCube(var2, var3, var4 + 1) && var6 == 4) {
var7 = true;
}
if (!var1.isBlockNormalCube(var2, var3, var4 + 1) && var6 == 4) {
var7 = true;
}
if(var7) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
if (var7) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
}
}
private boolean func_322_g(World var1, int var2, int var3, int var4) {
if(!this.canPlaceBlockAt(var1, var2, var3, var4)) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
return false;
} else {
return true;
}
}
private boolean func_322_g(World var1, int var2, int var3, int var4) {
if (!this.canPlaceBlockAt(var1, var2, var3, var4)) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
return false;
} else {
return true;
}
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
int var6 = var5 & 7;
boolean var7 = (var5 & 8) > 0;
float var8 = 6.0F / 16.0F;
float var9 = 10.0F / 16.0F;
float var10 = 3.0F / 16.0F;
float var11 = 2.0F / 16.0F;
if(var7) {
var11 = 1.0F / 16.0F;
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
int var6 = var5 & 7;
boolean var7 = (var5 & 8) > 0;
float var8 = 6.0F / 16.0F;
float var9 = 10.0F / 16.0F;
float var10 = 3.0F / 16.0F;
float var11 = 2.0F / 16.0F;
if (var7) {
var11 = 1.0F / 16.0F;
}
if(var6 == 1) {
this.setBlockBounds(0.0F, var8, 0.5F - var10, var11, var9, 0.5F + var10);
} else if(var6 == 2) {
this.setBlockBounds(1.0F - var11, var8, 0.5F - var10, 1.0F, var9, 0.5F + var10);
} else if(var6 == 3) {
this.setBlockBounds(0.5F - var10, var8, 0.0F, 0.5F + var10, var9, var11);
} else if(var6 == 4) {
this.setBlockBounds(0.5F - var10, var8, 1.0F - var11, 0.5F + var10, var9, 1.0F);
}
if (var6 == 1) {
this.setBlockBounds(0.0F, var8, 0.5F - var10, var11, var9, 0.5F + var10);
} else if (var6 == 2) {
this.setBlockBounds(1.0F - var11, var8, 0.5F - var10, 1.0F, var9, 0.5F + var10);
} else if (var6 == 3) {
this.setBlockBounds(0.5F - var10, var8, 0.0F, 0.5F + var10, var9, var11);
} else if (var6 == 4) {
this.setBlockBounds(0.5F - var10, var8, 1.0F - var11, 0.5F + var10, var9, 1.0F);
}
}
}
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
this.blockActivated(var1, var2, var3, var4, var5);
}
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
this.blockActivated(var1, var2, var3, var4, var5);
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
int var7 = var6 & 7;
int var8 = 8 - (var6 & 8);
if(var8 == 0) {
return true;
} else {
var1.setBlockMetadataWithNotify(var2, var3, var4, var7 + var8);
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
var1.playSoundEffect((double)var2 + 0.5D, (double)var3 + 0.5D, (double)var4 + 0.5D, "random.click", 0.3F, 0.6F);
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
if(var7 == 1) {
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
} else if(var7 == 2) {
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
} else if(var7 == 3) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
} else if(var7 == 4) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
} else {
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
int var7 = var6 & 7;
int var8 = 8 - (var6 & 8);
if (var8 == 0) {
return true;
} else {
var1.setBlockMetadataWithNotify(var2, var3, var4, var7 + var8);
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
var1.playSoundEffect((double) var2 + 0.5D, (double) var3 + 0.5D, (double) var4 + 0.5D, "random.click", 0.3F, 0.6F);
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
if (var7 == 1) {
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
} else if (var7 == 2) {
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
} else if (var7 == 3) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
} else if (var7 == 4) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
} else {
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
}
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
return true;
}
}
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
return true;
}
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
if((var5 & 8) > 0) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
int var6 = var5 & 7;
if(var6 == 1) {
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
} else if(var6 == 2) {
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
} else if(var6 == 3) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
} else if(var6 == 4) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
} else {
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
}
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
if ((var5 & 8) > 0) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
int var6 = var5 & 7;
if (var6 == 1) {
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
} else if (var6 == 2) {
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
} else if (var6 == 3) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
} else if (var6 == 4) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
} else {
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
}
}
super.onBlockRemoval(var1, var2, var3, var4);
}
super.onBlockRemoval(var1, var2, var3, var4);
}
public boolean isPoweringTo(IBlockAccess var1, int var2, int var3, int var4, int var5) {
return (var1.getBlockMetadata(var2, var3, var4) & 8) > 0;
}
public boolean isPoweringTo(IBlockAccess var1, int var2, int var3, int var4, int var5) {
return (var1.getBlockMetadata(var2, var3, var4) & 8) > 0;
}
public boolean isIndirectlyPoweringTo(World var1, int var2, int var3, int var4, int var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if((var6 & 8) == 0) {
return false;
} else {
int var7 = var6 & 7;
return var7 == 5 && var5 == 1 ? true : (var7 == 4 && var5 == 2 ? true : (var7 == 3 && var5 == 3 ? true : (var7 == 2 && var5 == 4 ? true : var7 == 1 && var5 == 5)));
}
}
public boolean isIndirectlyPoweringTo(World var1, int var2, int var3, int var4, int var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if ((var6 & 8) == 0) {
return false;
} else {
int var7 = var6 & 7;
return var7 == 5 && var5 == 1 ? true : (var7 == 4 && var5 == 2 ? true : (var7 == 3 && var5 == 3 ? true : (var7 == 2 && var5 == 4 ? true : var7 == 1 && var5 == 5)));
}
}
public boolean canProvidePower() {
return true;
}
public boolean canProvidePower() {
return true;
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if(!var1.singleplayerWorld) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if((var6 & 8) != 0) {
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 & 7);
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
int var7 = var6 & 7;
if(var7 == 1) {
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
} else if(var7 == 2) {
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
} else if(var7 == 3) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
} else if(var7 == 4) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
} else {
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if (!var1.singleplayerWorld) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if ((var6 & 8) != 0) {
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 & 7);
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
int var7 = var6 & 7;
if (var7 == 1) {
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
} else if (var7 == 2) {
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
} else if (var7 == 3) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
} else if (var7 == 4) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
} else {
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
}
var1.playSoundEffect((double)var2 + 0.5D, (double)var3 + 0.5D, (double)var4 + 0.5D, "random.click", 0.3F, 0.5F);
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
}
}
}
var1.playSoundEffect((double) var2 + 0.5D, (double) var3 + 0.5D, (double) var4 + 0.5D, "random.click", 0.3F, 0.5F);
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
}
}
}
}

View file

@ -1,81 +1,82 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.entity.Entity;
import net.minecraft.math.AxisAlignedBB;
import net.minecraft.world.World;
import java.util.Random;
public class BlockCactus extends Block {
protected BlockCactus(int var1, int var2) {
super(var1, var2, Material.cactus);
this.setTickOnLoad(true);
}
protected BlockCactus(int var1, int var2) {
super(var1, var2, Material.cactus);
this.setTickOnLoad(true);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if(var1.isAirBlock(var2, var3 + 1, var4)) {
int var6;
for(var6 = 1; var1.getBlockId(var2, var3 - var6, var4) == this.blockID; ++var6) {
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if (var1.isAirBlock(var2, var3 + 1, var4)) {
int var6;
for (var6 = 1; var1.getBlockId(var2, var3 - var6, var4) == this.blockID; ++var6) {
}
if(var6 < 3) {
int var7 = var1.getBlockMetadata(var2, var3, var4);
if(var7 == 15) {
var1.setBlockWithNotify(var2, var3 + 1, var4, this.blockID);
var1.setBlockMetadataWithNotify(var2, var3, var4, 0);
} else {
var1.setBlockMetadataWithNotify(var2, var3, var4, var7 + 1);
}
}
}
if (var6 < 3) {
int var7 = var1.getBlockMetadata(var2, var3, var4);
if (var7 == 15) {
var1.setBlockWithNotify(var2, var3 + 1, var4, this.blockID);
var1.setBlockMetadataWithNotify(var2, var3, var4, 0);
} else {
var1.setBlockMetadataWithNotify(var2, var3, var4, var7 + 1);
}
}
}
}
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
float var5 = 1.0F / 16.0F;
return AxisAlignedBB.getBoundingBoxFromPool((double)((float)var2 + var5), (double)var3, (double)((float)var4 + var5), (double)((float)(var2 + 1) - var5), (double)((float)(var3 + 1) - var5), (double)((float)(var4 + 1) - var5));
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
float var5 = 1.0F / 16.0F;
return AxisAlignedBB.getBoundingBoxFromPool((double) ((float) var2 + var5), (double) var3, (double) ((float) var4 + var5), (double) ((float) (var2 + 1) - var5), (double) ((float) (var3 + 1) - var5), (double) ((float) (var4 + 1) - var5));
}
public int getBlockTextureFromSide(int var1) {
return var1 == 1 ? this.blockIndexInTexture - 1 : (var1 == 0 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture);
}
public int getBlockTextureFromSide(int var1) {
return var1 == 1 ? this.blockIndexInTexture - 1 : (var1 == 0 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture);
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return !super.canPlaceBlockAt(var1, var2, var3, var4) ? false : this.canBlockStay(var1, var2, var3, var4);
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return !super.canPlaceBlockAt(var1, var2, var3, var4) ? false : this.canBlockStay(var1, var2, var3, var4);
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if(!this.canBlockStay(var1, var2, var3, var4)) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if (!this.canBlockStay(var1, var2, var3, var4)) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
}
public boolean canBlockStay(World var1, int var2, int var3, int var4) {
if(var1.getBlockMaterial(var2 - 1, var3, var4).isSolid()) {
return false;
} else if(var1.getBlockMaterial(var2 + 1, var3, var4).isSolid()) {
return false;
} else if(var1.getBlockMaterial(var2, var3, var4 - 1).isSolid()) {
return false;
} else if(var1.getBlockMaterial(var2, var3, var4 + 1).isSolid()) {
return false;
} else {
int var5 = var1.getBlockId(var2, var3 - 1, var4);
return var5 == Block.cactus.blockID || var5 == Block.sand.blockID;
}
}
public boolean canBlockStay(World var1, int var2, int var3, int var4) {
if (var1.getBlockMaterial(var2 - 1, var3, var4).isSolid()) {
return false;
} else if (var1.getBlockMaterial(var2 + 1, var3, var4).isSolid()) {
return false;
} else if (var1.getBlockMaterial(var2, var3, var4 - 1).isSolid()) {
return false;
} else if (var1.getBlockMaterial(var2, var3, var4 + 1).isSolid()) {
return false;
} else {
int var5 = var1.getBlockId(var2, var3 - 1, var4);
return var5 == Block.cactus.blockID || var5 == Block.sand.blockID;
}
}
public void onEntityCollidedWithBlock(World var1, int var2, int var3, int var4, Entity var5) {
var5.attackEntityFrom((Entity)null, 1);
}
public void onEntityCollidedWithBlock(World var1, int var2, int var3, int var4, Entity var5) {
var5.attackEntityFrom((Entity) null, 1);
}
}

View file

@ -1,94 +1,95 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityPlayer;
import net.minecraft.math.AxisAlignedBB;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import java.util.Random;
public class BlockCake extends Block {
protected BlockCake(int var1, int var2) {
super(var1, var2, Material.cakeMaterial);
this.setTickOnLoad(true);
}
protected BlockCake(int var1, int var2) {
super(var1, var2, Material.cakeMaterial);
this.setTickOnLoad(true);
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
float var6 = 1.0F / 16.0F;
float var7 = (float)(1 + var5 * 2) / 16.0F;
float var8 = 0.5F;
this.setBlockBounds(var7, 0.0F, var6, 1.0F - var6, var8, 1.0F - var6);
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
float var6 = 1.0F / 16.0F;
float var7 = (float) (1 + var5 * 2) / 16.0F;
float var8 = 0.5F;
this.setBlockBounds(var7, 0.0F, var6, 1.0F - var6, var8, 1.0F - var6);
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
float var6 = 1.0F / 16.0F;
float var7 = (float)(1 + var5 * 2) / 16.0F;
float var8 = 0.5F;
return AxisAlignedBB.getBoundingBoxFromPool((double)((float)var2 + var7), (double)var3, (double)((float)var4 + var6), (double)((float)(var2 + 1) - var6), (double)((float)var3 + var8 - var6), (double)((float)(var4 + 1) - var6));
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
float var6 = 1.0F / 16.0F;
float var7 = (float) (1 + var5 * 2) / 16.0F;
float var8 = 0.5F;
return AxisAlignedBB.getBoundingBoxFromPool((double) ((float) var2 + var7), (double) var3, (double) ((float) var4 + var6), (double) ((float) (var2 + 1) - var6), (double) ((float) var3 + var8 - var6), (double) ((float) (var4 + 1) - var6));
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
return var1 == 1 ? this.blockIndexInTexture : (var1 == 0 ? this.blockIndexInTexture + 3 : (var2 > 0 && var1 == 4 ? this.blockIndexInTexture + 2 : this.blockIndexInTexture + 1));
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
return var1 == 1 ? this.blockIndexInTexture : (var1 == 0 ? this.blockIndexInTexture + 3 : (var2 > 0 && var1 == 4 ? this.blockIndexInTexture + 2 : this.blockIndexInTexture + 1));
}
public int getBlockTextureFromSide(int var1) {
return var1 == 1 ? this.blockIndexInTexture : (var1 == 0 ? this.blockIndexInTexture + 3 : this.blockIndexInTexture + 1);
}
public int getBlockTextureFromSide(int var1) {
return var1 == 1 ? this.blockIndexInTexture : (var1 == 0 ? this.blockIndexInTexture + 3 : this.blockIndexInTexture + 1);
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
this.eatCakeSlice(var1, var2, var3, var4, var5);
return true;
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
this.eatCakeSlice(var1, var2, var3, var4, var5);
return true;
}
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
this.eatCakeSlice(var1, var2, var3, var4, var5);
}
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
this.eatCakeSlice(var1, var2, var3, var4, var5);
}
private void eatCakeSlice(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if(var5.health < 20) {
var5.heal(3);
int var6 = var1.getBlockMetadata(var2, var3, var4) + 1;
if(var6 >= 6) {
var1.setBlockWithNotify(var2, var3, var4, 0);
} else {
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
var1.markBlockAsNeedsUpdate(var2, var3, var4);
}
}
private void eatCakeSlice(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if (var5.health < 20) {
var5.heal(3);
int var6 = var1.getBlockMetadata(var2, var3, var4) + 1;
if (var6 >= 6) {
var1.setBlockWithNotify(var2, var3, var4, 0);
} else {
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
var1.markBlockAsNeedsUpdate(var2, var3, var4);
}
}
}
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return !super.canPlaceBlockAt(var1, var2, var3, var4) ? false : this.canBlockStay(var1, var2, var3, var4);
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return !super.canPlaceBlockAt(var1, var2, var3, var4) ? false : this.canBlockStay(var1, var2, var3, var4);
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if(!this.canBlockStay(var1, var2, var3, var4)) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if (!this.canBlockStay(var1, var2, var3, var4)) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
}
public boolean canBlockStay(World var1, int var2, int var3, int var4) {
return var1.getBlockMaterial(var2, var3 - 1, var4).isSolid();
}
public boolean canBlockStay(World var1, int var2, int var3, int var4) {
return var1.getBlockMaterial(var2, var3 - 1, var4).isSolid();
}
public int quantityDropped(Random var1) {
return 0;
}
public int quantityDropped(Random var1) {
return 0;
}
public int idDropped(int var1, Random var2) {
return 0;
}
public int idDropped(int var1, Random var2) {
return 0;
}
}

View file

@ -1,6 +1,5 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.block.tile.TileEntity;
import net.minecraft.block.tile.TileEntityChest;
@ -11,112 +10,114 @@ import net.minecraft.entity.EntityPlayer;
import net.minecraft.item.crafting.ItemStack;
import net.minecraft.world.World;
import java.util.Random;
public class BlockChest extends BlockContainer {
private Random random = new Random();
private Random random = new Random();
protected BlockChest(int var1) {
super(var1, Material.wood);
this.blockIndexInTexture = 26;
}
protected BlockChest(int var1) {
super(var1, Material.wood);
this.blockIndexInTexture = 26;
}
public int getBlockTextureFromSide(int var1) {
return var1 == 1 ? this.blockIndexInTexture - 1 : (var1 == 0 ? this.blockIndexInTexture - 1 : (var1 == 3 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture));
}
public int getBlockTextureFromSide(int var1) {
return var1 == 1 ? this.blockIndexInTexture - 1 : (var1 == 0 ? this.blockIndexInTexture - 1 : (var1 == 3 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture));
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
int var5 = 0;
if(var1.getBlockId(var2 - 1, var3, var4) == this.blockID) {
++var5;
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
int var5 = 0;
if (var1.getBlockId(var2 - 1, var3, var4) == this.blockID) {
++var5;
}
if(var1.getBlockId(var2 + 1, var3, var4) == this.blockID) {
++var5;
}
if (var1.getBlockId(var2 + 1, var3, var4) == this.blockID) {
++var5;
}
if(var1.getBlockId(var2, var3, var4 - 1) == this.blockID) {
++var5;
}
if (var1.getBlockId(var2, var3, var4 - 1) == this.blockID) {
++var5;
}
if(var1.getBlockId(var2, var3, var4 + 1) == this.blockID) {
++var5;
}
if (var1.getBlockId(var2, var3, var4 + 1) == this.blockID) {
++var5;
}
return var5 > 1 ? false : (this.isThereANeighborChest(var1, var2 - 1, var3, var4) ? false : (this.isThereANeighborChest(var1, var2 + 1, var3, var4) ? false : (this.isThereANeighborChest(var1, var2, var3, var4 - 1) ? false : !this.isThereANeighborChest(var1, var2, var3, var4 + 1))));
}
return var5 > 1 ? false : (this.isThereANeighborChest(var1, var2 - 1, var3, var4) ? false : (this.isThereANeighborChest(var1, var2 + 1, var3, var4) ? false : (this.isThereANeighborChest(var1, var2, var3, var4 - 1) ? false : !this.isThereANeighborChest(var1, var2, var3, var4 + 1))));
}
private boolean isThereANeighborChest(World var1, int var2, int var3, int var4) {
return var1.getBlockId(var2, var3, var4) != this.blockID ? false : (var1.getBlockId(var2 - 1, var3, var4) == this.blockID ? true : (var1.getBlockId(var2 + 1, var3, var4) == this.blockID ? true : (var1.getBlockId(var2, var3, var4 - 1) == this.blockID ? true : var1.getBlockId(var2, var3, var4 + 1) == this.blockID)));
}
private boolean isThereANeighborChest(World var1, int var2, int var3, int var4) {
return var1.getBlockId(var2, var3, var4) != this.blockID ? false : (var1.getBlockId(var2 - 1, var3, var4) == this.blockID ? true : (var1.getBlockId(var2 + 1, var3, var4) == this.blockID ? true : (var1.getBlockId(var2, var3, var4 - 1) == this.blockID ? true : var1.getBlockId(var2, var3, var4 + 1) == this.blockID)));
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
TileEntityChest var5 = (TileEntityChest)var1.getBlockTileEntity(var2, var3, var4);
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
TileEntityChest var5 = (TileEntityChest) var1.getBlockTileEntity(var2, var3, var4);
for(int var6 = 0; var6 < var5.getSizeInventory(); ++var6) {
ItemStack var7 = var5.getStackInSlot(var6);
if(var7 != null) {
float var8 = this.random.nextFloat() * 0.8F + 0.1F;
float var9 = this.random.nextFloat() * 0.8F + 0.1F;
float var10 = this.random.nextFloat() * 0.8F + 0.1F;
for (int var6 = 0; var6 < var5.getSizeInventory(); ++var6) {
ItemStack var7 = var5.getStackInSlot(var6);
if (var7 != null) {
float var8 = this.random.nextFloat() * 0.8F + 0.1F;
float var9 = this.random.nextFloat() * 0.8F + 0.1F;
float var10 = this.random.nextFloat() * 0.8F + 0.1F;
while(var7.stackSize > 0) {
int var11 = this.random.nextInt(21) + 10;
if(var11 > var7.stackSize) {
var11 = var7.stackSize;
}
while (var7.stackSize > 0) {
int var11 = this.random.nextInt(21) + 10;
if (var11 > var7.stackSize) {
var11 = var7.stackSize;
}
var7.stackSize -= var11;
EntityItem var12 = new EntityItem(var1, (double)((float)var2 + var8), (double)((float)var3 + var9), (double)((float)var4 + var10), new ItemStack(var7.itemID, var11, var7.getItemDamage()));
float var13 = 0.05F;
var12.motionX = (double)((float)this.random.nextGaussian() * var13);
var12.motionY = (double)((float)this.random.nextGaussian() * var13 + 0.2F);
var12.motionZ = (double)((float)this.random.nextGaussian() * var13);
var1.entityJoinedWorld(var12);
}
}
}
var7.stackSize -= var11;
EntityItem var12 = new EntityItem(var1, (double) ((float) var2 + var8), (double) ((float) var3 + var9), (double) ((float) var4 + var10), new ItemStack(var7.itemID, var11, var7.getItemDamage()));
float var13 = 0.05F;
var12.motionX = (double) ((float) this.random.nextGaussian() * var13);
var12.motionY = (double) ((float) this.random.nextGaussian() * var13 + 0.2F);
var12.motionZ = (double) ((float) this.random.nextGaussian() * var13);
var1.entityJoinedWorld(var12);
}
}
}
super.onBlockRemoval(var1, var2, var3, var4);
}
super.onBlockRemoval(var1, var2, var3, var4);
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
Object var6 = (TileEntityChest)var1.getBlockTileEntity(var2, var3, var4);
if(var1.isBlockNormalCube(var2, var3 + 1, var4)) {
return true;
} else if(var1.getBlockId(var2 - 1, var3, var4) == this.blockID && var1.isBlockNormalCube(var2 - 1, var3 + 1, var4)) {
return true;
} else if(var1.getBlockId(var2 + 1, var3, var4) == this.blockID && var1.isBlockNormalCube(var2 + 1, var3 + 1, var4)) {
return true;
} else if(var1.getBlockId(var2, var3, var4 - 1) == this.blockID && var1.isBlockNormalCube(var2, var3 + 1, var4 - 1)) {
return true;
} else if(var1.getBlockId(var2, var3, var4 + 1) == this.blockID && var1.isBlockNormalCube(var2, var3 + 1, var4 + 1)) {
return true;
} else {
if(var1.getBlockId(var2 - 1, var3, var4) == this.blockID) {
var6 = new InventoryLargeChest("Large chest", (TileEntityChest)var1.getBlockTileEntity(var2 - 1, var3, var4), (IInventory)var6);
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
Object var6 = (TileEntityChest) var1.getBlockTileEntity(var2, var3, var4);
if (var1.isBlockNormalCube(var2, var3 + 1, var4)) {
return true;
} else if (var1.getBlockId(var2 - 1, var3, var4) == this.blockID && var1.isBlockNormalCube(var2 - 1, var3 + 1, var4)) {
return true;
} else if (var1.getBlockId(var2 + 1, var3, var4) == this.blockID && var1.isBlockNormalCube(var2 + 1, var3 + 1, var4)) {
return true;
} else if (var1.getBlockId(var2, var3, var4 - 1) == this.blockID && var1.isBlockNormalCube(var2, var3 + 1, var4 - 1)) {
return true;
} else if (var1.getBlockId(var2, var3, var4 + 1) == this.blockID && var1.isBlockNormalCube(var2, var3 + 1, var4 + 1)) {
return true;
} else {
if (var1.getBlockId(var2 - 1, var3, var4) == this.blockID) {
var6 = new InventoryLargeChest("Large chest", (TileEntityChest) var1.getBlockTileEntity(var2 - 1, var3, var4), (IInventory) var6);
}
if(var1.getBlockId(var2 + 1, var3, var4) == this.blockID) {
var6 = new InventoryLargeChest("Large chest", (IInventory)var6, (TileEntityChest)var1.getBlockTileEntity(var2 + 1, var3, var4));
}
if (var1.getBlockId(var2 + 1, var3, var4) == this.blockID) {
var6 = new InventoryLargeChest("Large chest", (IInventory) var6, (TileEntityChest) var1.getBlockTileEntity(var2 + 1, var3, var4));
}
if(var1.getBlockId(var2, var3, var4 - 1) == this.blockID) {
var6 = new InventoryLargeChest("Large chest", (TileEntityChest)var1.getBlockTileEntity(var2, var3, var4 - 1), (IInventory)var6);
}
if (var1.getBlockId(var2, var3, var4 - 1) == this.blockID) {
var6 = new InventoryLargeChest("Large chest", (TileEntityChest) var1.getBlockTileEntity(var2, var3, var4 - 1), (IInventory) var6);
}
if(var1.getBlockId(var2, var3, var4 + 1) == this.blockID) {
var6 = new InventoryLargeChest("Large chest", (IInventory)var6, (TileEntityChest)var1.getBlockTileEntity(var2, var3, var4 + 1));
}
if (var1.getBlockId(var2, var3, var4 + 1) == this.blockID) {
var6 = new InventoryLargeChest("Large chest", (IInventory) var6, (TileEntityChest) var1.getBlockTileEntity(var2, var3, var4 + 1));
}
if(var1.singleplayerWorld) {
return true;
} else {
var5.displayGUIChest((IInventory)var6);
return true;
}
}
}
if (var1.singleplayerWorld) {
return true;
} else {
var5.displayGUIChest((IInventory) var6);
return true;
}
}
}
protected TileEntity getBlockEntity() {
return new TileEntityChest();
}
protected TileEntity getBlockEntity() {
return new TileEntityChest();
}
}

View file

@ -1,19 +1,20 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.item.Item;
import java.util.Random;
public class BlockClay extends Block {
public BlockClay(int var1, int var2) {
super(var1, var2, Material.clay);
}
public BlockClay(int var1, int var2) {
super(var1, var2, Material.clay);
}
public int idDropped(int var1, Random var2) {
return Item.clay.shiftedIndex;
}
public int idDropped(int var1, Random var2) {
return Item.clay.shiftedIndex;
}
public int quantityDropped(Random var1) {
return 4;
}
public int quantityDropped(Random var1) {
return 4;
}
}

View file

@ -3,28 +3,28 @@ package net.minecraft.block;
import net.minecraft.block.material.Material;
public class BlockCloth extends Block {
public BlockCloth() {
super(35, 64, Material.cloth);
}
public BlockCloth() {
super(35, 64, Material.cloth);
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
if(var2 == 0) {
return this.blockIndexInTexture;
} else {
var2 = ~(var2 & 15);
return 113 + ((var2 & 8) >> 3) + (var2 & 7) * 16;
}
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
if (var2 == 0) {
return this.blockIndexInTexture;
} else {
var2 = ~(var2 & 15);
return 113 + ((var2 & 8) >> 3) + (var2 & 7) * 16;
}
}
protected int damageDropped(int var1) {
return var1;
}
protected int damageDropped(int var1) {
return var1;
}
public static int func_21033_c(int var0) {
return ~var0 & 15;
}
public static int func_21033_c(int var0) {
return ~var0 & 15;
}
public static int func_21034_d(int var0) {
return ~var0 & 15;
}
public static int func_21034_d(int var0) {
return ~var0 & 15;
}
}

View file

@ -5,25 +5,25 @@ import net.minecraft.block.tile.TileEntity;
import net.minecraft.world.World;
public abstract class BlockContainer extends Block {
protected BlockContainer(int var1, Material var2) {
super(var1, var2);
isBlockContainer[var1] = true;
}
protected BlockContainer(int var1, Material var2) {
super(var1, var2);
isBlockContainer[var1] = true;
}
protected BlockContainer(int var1, int var2, Material var3) {
super(var1, var2, var3);
isBlockContainer[var1] = true;
}
protected BlockContainer(int var1, int var2, Material var3) {
super(var1, var2, var3);
isBlockContainer[var1] = true;
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
super.onBlockAdded(var1, var2, var3, var4);
var1.setBlockTileEntity(var2, var3, var4, this.getBlockEntity());
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
super.onBlockAdded(var1, var2, var3, var4);
var1.setBlockTileEntity(var2, var3, var4, this.getBlockEntity());
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
super.onBlockRemoval(var1, var2, var3, var4);
var1.removeBlockTileEntity(var2, var3, var4);
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
super.onBlockRemoval(var1, var2, var3, var4);
var1.removeBlockTileEntity(var2, var3, var4);
}
protected abstract TileEntity getBlockEntity();
protected abstract TileEntity getBlockEntity();
}

View file

@ -1,114 +1,115 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.entity.EntityItem;
import net.minecraft.item.Item;
import net.minecraft.item.crafting.ItemStack;
import net.minecraft.world.World;
import java.util.Random;
public class BlockCrops extends BlockFlower {
protected BlockCrops(int var1, int var2) {
super(var1, var2);
this.blockIndexInTexture = var2;
this.setTickOnLoad(true);
float var3 = 0.5F;
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 0.25F, 0.5F + var3);
}
protected BlockCrops(int var1, int var2) {
super(var1, var2);
this.blockIndexInTexture = var2;
this.setTickOnLoad(true);
float var3 = 0.5F;
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 0.25F, 0.5F + var3);
}
protected boolean canThisPlantGrowOnThisBlockID(int var1) {
return var1 == Block.tilledField.blockID;
}
protected boolean canThisPlantGrowOnThisBlockID(int var1) {
return var1 == Block.tilledField.blockID;
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
super.updateTick(var1, var2, var3, var4, var5);
if(var1.getBlockLightValue(var2, var3 + 1, var4) >= 9) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if(var6 < 7) {
float var7 = this.getGrowthRate(var1, var2, var3, var4);
if(var5.nextInt((int)(100.0F / var7)) == 0) {
++var6;
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
}
}
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
super.updateTick(var1, var2, var3, var4, var5);
if (var1.getBlockLightValue(var2, var3 + 1, var4) >= 9) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if (var6 < 7) {
float var7 = this.getGrowthRate(var1, var2, var3, var4);
if (var5.nextInt((int) (100.0F / var7)) == 0) {
++var6;
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
}
}
}
}
}
public void fertilize(World var1, int var2, int var3, int var4) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 7);
}
public void fertilize(World var1, int var2, int var3, int var4) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 7);
}
private float getGrowthRate(World var1, int var2, int var3, int var4) {
float var5 = 1.0F;
int var6 = var1.getBlockId(var2, var3, var4 - 1);
int var7 = var1.getBlockId(var2, var3, var4 + 1);
int var8 = var1.getBlockId(var2 - 1, var3, var4);
int var9 = var1.getBlockId(var2 + 1, var3, var4);
int var10 = var1.getBlockId(var2 - 1, var3, var4 - 1);
int var11 = var1.getBlockId(var2 + 1, var3, var4 - 1);
int var12 = var1.getBlockId(var2 + 1, var3, var4 + 1);
int var13 = var1.getBlockId(var2 - 1, var3, var4 + 1);
boolean var14 = var8 == this.blockID || var9 == this.blockID;
boolean var15 = var6 == this.blockID || var7 == this.blockID;
boolean var16 = var10 == this.blockID || var11 == this.blockID || var12 == this.blockID || var13 == this.blockID;
private float getGrowthRate(World var1, int var2, int var3, int var4) {
float var5 = 1.0F;
int var6 = var1.getBlockId(var2, var3, var4 - 1);
int var7 = var1.getBlockId(var2, var3, var4 + 1);
int var8 = var1.getBlockId(var2 - 1, var3, var4);
int var9 = var1.getBlockId(var2 + 1, var3, var4);
int var10 = var1.getBlockId(var2 - 1, var3, var4 - 1);
int var11 = var1.getBlockId(var2 + 1, var3, var4 - 1);
int var12 = var1.getBlockId(var2 + 1, var3, var4 + 1);
int var13 = var1.getBlockId(var2 - 1, var3, var4 + 1);
boolean var14 = var8 == this.blockID || var9 == this.blockID;
boolean var15 = var6 == this.blockID || var7 == this.blockID;
boolean var16 = var10 == this.blockID || var11 == this.blockID || var12 == this.blockID || var13 == this.blockID;
for(int var17 = var2 - 1; var17 <= var2 + 1; ++var17) {
for(int var18 = var4 - 1; var18 <= var4 + 1; ++var18) {
int var19 = var1.getBlockId(var17, var3 - 1, var18);
float var20 = 0.0F;
if(var19 == Block.tilledField.blockID) {
var20 = 1.0F;
if(var1.getBlockMetadata(var17, var3 - 1, var18) > 0) {
var20 = 3.0F;
}
}
for (int var17 = var2 - 1; var17 <= var2 + 1; ++var17) {
for (int var18 = var4 - 1; var18 <= var4 + 1; ++var18) {
int var19 = var1.getBlockId(var17, var3 - 1, var18);
float var20 = 0.0F;
if (var19 == Block.tilledField.blockID) {
var20 = 1.0F;
if (var1.getBlockMetadata(var17, var3 - 1, var18) > 0) {
var20 = 3.0F;
}
}
if(var17 != var2 || var18 != var4) {
var20 /= 4.0F;
}
if (var17 != var2 || var18 != var4) {
var20 /= 4.0F;
}
var5 += var20;
}
}
var5 += var20;
}
}
if(var16 || var14 && var15) {
var5 /= 2.0F;
}
if (var16 || var14 && var15) {
var5 /= 2.0F;
}
return var5;
}
return var5;
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
if(var2 < 0) {
var2 = 7;
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
if (var2 < 0) {
var2 = 7;
}
return this.blockIndexInTexture + var2;
}
return this.blockIndexInTexture + var2;
}
public void dropBlockAsItemWithChance(World var1, int var2, int var3, int var4, int var5, float var6) {
super.dropBlockAsItemWithChance(var1, var2, var3, var4, var5, var6);
if(!var1.singleplayerWorld) {
for(int var7 = 0; var7 < 3; ++var7) {
if(var1.rand.nextInt(15) <= var5) {
float var8 = 0.7F;
float var9 = var1.rand.nextFloat() * var8 + (1.0F - var8) * 0.5F;
float var10 = var1.rand.nextFloat() * var8 + (1.0F - var8) * 0.5F;
float var11 = var1.rand.nextFloat() * var8 + (1.0F - var8) * 0.5F;
EntityItem var12 = new EntityItem(var1, (double)((float)var2 + var9), (double)((float)var3 + var10), (double)((float)var4 + var11), new ItemStack(Item.seeds));
var12.delayBeforeCanPickup = 10;
var1.entityJoinedWorld(var12);
}
}
public void dropBlockAsItemWithChance(World var1, int var2, int var3, int var4, int var5, float var6) {
super.dropBlockAsItemWithChance(var1, var2, var3, var4, var5, var6);
if (!var1.singleplayerWorld) {
for (int var7 = 0; var7 < 3; ++var7) {
if (var1.rand.nextInt(15) <= var5) {
float var8 = 0.7F;
float var9 = var1.rand.nextFloat() * var8 + (1.0F - var8) * 0.5F;
float var10 = var1.rand.nextFloat() * var8 + (1.0F - var8) * 0.5F;
float var11 = var1.rand.nextFloat() * var8 + (1.0F - var8) * 0.5F;
EntityItem var12 = new EntityItem(var1, (double) ((float) var2 + var9), (double) ((float) var3 + var10), (double) ((float) var4 + var11), new ItemStack(Item.seeds));
var12.delayBeforeCanPickup = 10;
var1.entityJoinedWorld(var12);
}
}
}
}
}
}
public int idDropped(int var1, Random var2) {
return var1 == 7 ? Item.wheat.shiftedIndex : -1;
}
public int idDropped(int var1, Random var2) {
return var1 == 7 ? Item.wheat.shiftedIndex : -1;
}
public int quantityDropped(Random var1) {
return 1;
}
public int quantityDropped(Random var1) {
return 1;
}
}

View file

@ -3,21 +3,21 @@ package net.minecraft.block;
import java.util.Random;
public class BlockDeadBush extends BlockFlower {
protected BlockDeadBush(int var1, int var2) {
super(var1, var2);
float var3 = 0.4F;
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 0.8F, 0.5F + var3);
}
protected BlockDeadBush(int var1, int var2) {
super(var1, var2);
float var3 = 0.4F;
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 0.8F, 0.5F + var3);
}
protected boolean canThisPlantGrowOnThisBlockID(int var1) {
return var1 == Block.sand.blockID;
}
protected boolean canThisPlantGrowOnThisBlockID(int var1) {
return var1 == Block.sand.blockID;
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
return this.blockIndexInTexture;
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
return this.blockIndexInTexture;
}
public int idDropped(int var1, Random var2) {
return -1;
}
public int idDropped(int var1, Random var2) {
return -1;
}
}

View file

@ -1,79 +1,80 @@
package net.minecraft.block;
import java.util.List;
import java.util.Random;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityMinecart;
import net.minecraft.math.AxisAlignedBB;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import java.util.List;
import java.util.Random;
public class BlockDetectorRail extends BlockRail {
public BlockDetectorRail(int var1, int var2) {
super(var1, var2, true);
this.setTickOnLoad(true);
}
public BlockDetectorRail(int var1, int var2) {
super(var1, var2, true);
this.setTickOnLoad(true);
}
public int tickRate() {
return 20;
}
public int tickRate() {
return 20;
}
public boolean canProvidePower() {
return true;
}
public boolean canProvidePower() {
return true;
}
public void onEntityCollidedWithBlock(World var1, int var2, int var3, int var4, Entity var5) {
if(!var1.singleplayerWorld) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if((var6 & 8) == 0) {
this.func_27035_f(var1, var2, var3, var4, var6);
}
}
}
public void onEntityCollidedWithBlock(World var1, int var2, int var3, int var4, Entity var5) {
if (!var1.singleplayerWorld) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if ((var6 & 8) == 0) {
this.func_27035_f(var1, var2, var3, var4, var6);
}
}
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if(!var1.singleplayerWorld) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if((var6 & 8) != 0) {
this.func_27035_f(var1, var2, var3, var4, var6);
}
}
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if (!var1.singleplayerWorld) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if ((var6 & 8) != 0) {
this.func_27035_f(var1, var2, var3, var4, var6);
}
}
}
public boolean isPoweringTo(IBlockAccess var1, int var2, int var3, int var4, int var5) {
return (var1.getBlockMetadata(var2, var3, var4) & 8) != 0;
}
public boolean isPoweringTo(IBlockAccess var1, int var2, int var3, int var4, int var5) {
return (var1.getBlockMetadata(var2, var3, var4) & 8) != 0;
}
public boolean isIndirectlyPoweringTo(World var1, int var2, int var3, int var4, int var5) {
return (var1.getBlockMetadata(var2, var3, var4) & 8) == 0 ? false : var5 == 1;
}
public boolean isIndirectlyPoweringTo(World var1, int var2, int var3, int var4, int var5) {
return (var1.getBlockMetadata(var2, var3, var4) & 8) == 0 ? false : var5 == 1;
}
private void func_27035_f(World var1, int var2, int var3, int var4, int var5) {
boolean var6 = (var5 & 8) != 0;
boolean var7 = false;
float var8 = 2.0F / 16.0F;
List var9 = var1.getEntitiesWithinAABB(EntityMinecart.class, AxisAlignedBB.getBoundingBoxFromPool((double)((float)var2 + var8), (double)var3, (double)((float)var4 + var8), (double)((float)(var2 + 1) - var8), (double)var3 + 0.25D, (double)((float)(var4 + 1) - var8)));
if(var9.size() > 0) {
var7 = true;
}
private void func_27035_f(World var1, int var2, int var3, int var4, int var5) {
boolean var6 = (var5 & 8) != 0;
boolean var7 = false;
float var8 = 2.0F / 16.0F;
List var9 = var1.getEntitiesWithinAABB(EntityMinecart.class, AxisAlignedBB.getBoundingBoxFromPool((double) ((float) var2 + var8), (double) var3, (double) ((float) var4 + var8), (double) ((float) (var2 + 1) - var8), (double) var3 + 0.25D, (double) ((float) (var4 + 1) - var8)));
if (var9.size() > 0) {
var7 = true;
}
if(var7 && !var6) {
var1.setBlockMetadataWithNotify(var2, var3, var4, var5 | 8);
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
}
if (var7 && !var6) {
var1.setBlockMetadataWithNotify(var2, var3, var4, var5 | 8);
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
}
if(!var7 && var6) {
var1.setBlockMetadataWithNotify(var2, var3, var4, var5 & 7);
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
}
if (!var7 && var6) {
var1.setBlockMetadataWithNotify(var2, var3, var4, var5 & 7);
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
}
if(var7) {
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
}
if (var7) {
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
}
}
}
}

View file

@ -3,7 +3,7 @@ package net.minecraft.block;
import net.minecraft.block.material.Material;
public class BlockDirt extends Block {
protected BlockDirt(int var1, int var2) {
super(var1, var2, Material.ground);
}
protected BlockDirt(int var1, int var2) {
super(var1, var2, Material.ground);
}
}

View file

@ -1,206 +1,202 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.block.tile.TileEntity;
import net.minecraft.block.tile.TileEntityDispenser;
import net.minecraft.entity.EntityArrow;
import net.minecraft.entity.EntityEgg;
import net.minecraft.entity.EntityItem;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityPlayer;
import net.minecraft.entity.EntitySnowball;
import net.minecraft.entity.*;
import net.minecraft.item.Item;
import net.minecraft.item.crafting.ItemStack;
import net.minecraft.math.MathHelper;
import net.minecraft.world.World;
import java.util.Random;
public class BlockDispenser extends BlockContainer {
private Random field_28032_a = new Random();
private Random field_28032_a = new Random();
protected BlockDispenser(int var1) {
super(var1, Material.rock);
this.blockIndexInTexture = 45;
}
protected BlockDispenser(int var1) {
super(var1, Material.rock);
this.blockIndexInTexture = 45;
}
public int tickRate() {
return 4;
}
public int tickRate() {
return 4;
}
public int idDropped(int var1, Random var2) {
return Block.dispenser.blockID;
}
public int idDropped(int var1, Random var2) {
return Block.dispenser.blockID;
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
super.onBlockAdded(var1, var2, var3, var4);
this.setDispenserDefaultDirection(var1, var2, var3, var4);
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
super.onBlockAdded(var1, var2, var3, var4);
this.setDispenserDefaultDirection(var1, var2, var3, var4);
}
private void setDispenserDefaultDirection(World var1, int var2, int var3, int var4) {
if(!var1.singleplayerWorld) {
int var5 = var1.getBlockId(var2, var3, var4 - 1);
int var6 = var1.getBlockId(var2, var3, var4 + 1);
int var7 = var1.getBlockId(var2 - 1, var3, var4);
int var8 = var1.getBlockId(var2 + 1, var3, var4);
byte var9 = 3;
if(Block.opaqueCubeLookup[var5] && !Block.opaqueCubeLookup[var6]) {
var9 = 3;
}
private void setDispenserDefaultDirection(World var1, int var2, int var3, int var4) {
if (!var1.singleplayerWorld) {
int var5 = var1.getBlockId(var2, var3, var4 - 1);
int var6 = var1.getBlockId(var2, var3, var4 + 1);
int var7 = var1.getBlockId(var2 - 1, var3, var4);
int var8 = var1.getBlockId(var2 + 1, var3, var4);
byte var9 = 3;
if (Block.opaqueCubeLookup[var5] && !Block.opaqueCubeLookup[var6]) {
var9 = 3;
}
if(Block.opaqueCubeLookup[var6] && !Block.opaqueCubeLookup[var5]) {
var9 = 2;
}
if (Block.opaqueCubeLookup[var6] && !Block.opaqueCubeLookup[var5]) {
var9 = 2;
}
if(Block.opaqueCubeLookup[var7] && !Block.opaqueCubeLookup[var8]) {
var9 = 5;
}
if (Block.opaqueCubeLookup[var7] && !Block.opaqueCubeLookup[var8]) {
var9 = 5;
}
if(Block.opaqueCubeLookup[var8] && !Block.opaqueCubeLookup[var7]) {
var9 = 4;
}
if (Block.opaqueCubeLookup[var8] && !Block.opaqueCubeLookup[var7]) {
var9 = 4;
}
var1.setBlockMetadataWithNotify(var2, var3, var4, var9);
}
}
var1.setBlockMetadataWithNotify(var2, var3, var4, var9);
}
}
public int getBlockTextureFromSide(int var1) {
return var1 == 1 ? this.blockIndexInTexture + 17 : (var1 == 0 ? this.blockIndexInTexture + 17 : (var1 == 3 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture));
}
public int getBlockTextureFromSide(int var1) {
return var1 == 1 ? this.blockIndexInTexture + 17 : (var1 == 0 ? this.blockIndexInTexture + 17 : (var1 == 3 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture));
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if(var1.singleplayerWorld) {
return true;
} else {
TileEntityDispenser var6 = (TileEntityDispenser)var1.getBlockTileEntity(var2, var3, var4);
var5.displayGUIDispenser(var6);
return true;
}
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if (var1.singleplayerWorld) {
return true;
} else {
TileEntityDispenser var6 = (TileEntityDispenser) var1.getBlockTileEntity(var2, var3, var4);
var5.displayGUIDispenser(var6);
return true;
}
}
private void dispenseItem(World var1, int var2, int var3, int var4, Random var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
byte var9 = 0;
byte var10 = 0;
if(var6 == 3) {
var10 = 1;
} else if(var6 == 2) {
var10 = -1;
} else if(var6 == 5) {
var9 = 1;
} else {
var9 = -1;
}
private void dispenseItem(World var1, int var2, int var3, int var4, Random var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
byte var9 = 0;
byte var10 = 0;
if (var6 == 3) {
var10 = 1;
} else if (var6 == 2) {
var10 = -1;
} else if (var6 == 5) {
var9 = 1;
} else {
var9 = -1;
}
TileEntityDispenser var11 = (TileEntityDispenser)var1.getBlockTileEntity(var2, var3, var4);
ItemStack var12 = var11.getRandomStackFromInventory();
double var13 = (double)var2 + (double)var9 * 0.6D + 0.5D;
double var15 = (double)var3 + 0.5D;
double var17 = (double)var4 + (double)var10 * 0.6D + 0.5D;
if(var12 == null) {
var1.func_28097_e(1001, var2, var3, var4, 0);
} else {
if(var12.itemID == Item.arrow.shiftedIndex) {
EntityArrow var19 = new EntityArrow(var1, var13, var15, var17);
var19.setArrowHeading((double)var9, (double)0.1F, (double)var10, 1.1F, 6.0F);
var19.field_28012_a = true;
var1.entityJoinedWorld(var19);
var1.func_28097_e(1002, var2, var3, var4, 0);
} else if(var12.itemID == Item.egg.shiftedIndex) {
EntityEgg var22 = new EntityEgg(var1, var13, var15, var17);
var22.func_20078_a((double)var9, (double)0.1F, (double)var10, 1.1F, 6.0F);
var1.entityJoinedWorld(var22);
var1.func_28097_e(1002, var2, var3, var4, 0);
} else if(var12.itemID == Item.snowball.shiftedIndex) {
EntitySnowball var23 = new EntitySnowball(var1, var13, var15, var17);
var23.func_6141_a((double)var9, (double)0.1F, (double)var10, 1.1F, 6.0F);
var1.entityJoinedWorld(var23);
var1.func_28097_e(1002, var2, var3, var4, 0);
} else {
EntityItem var24 = new EntityItem(var1, var13, var15 - 0.3D, var17, var12);
double var20 = var5.nextDouble() * 0.1D + 0.2D;
var24.motionX = (double)var9 * var20;
var24.motionY = (double)0.2F;
var24.motionZ = (double)var10 * var20;
var24.motionX += var5.nextGaussian() * (double)0.0075F * 6.0D;
var24.motionY += var5.nextGaussian() * (double)0.0075F * 6.0D;
var24.motionZ += var5.nextGaussian() * (double)0.0075F * 6.0D;
var1.entityJoinedWorld(var24);
var1.func_28097_e(1000, var2, var3, var4, 0);
}
TileEntityDispenser var11 = (TileEntityDispenser) var1.getBlockTileEntity(var2, var3, var4);
ItemStack var12 = var11.getRandomStackFromInventory();
double var13 = (double) var2 + (double) var9 * 0.6D + 0.5D;
double var15 = (double) var3 + 0.5D;
double var17 = (double) var4 + (double) var10 * 0.6D + 0.5D;
if (var12 == null) {
var1.func_28097_e(1001, var2, var3, var4, 0);
} else {
if (var12.itemID == Item.arrow.shiftedIndex) {
EntityArrow var19 = new EntityArrow(var1, var13, var15, var17);
var19.setArrowHeading((double) var9, (double) 0.1F, (double) var10, 1.1F, 6.0F);
var19.field_28012_a = true;
var1.entityJoinedWorld(var19);
var1.func_28097_e(1002, var2, var3, var4, 0);
} else if (var12.itemID == Item.egg.shiftedIndex) {
EntityEgg var22 = new EntityEgg(var1, var13, var15, var17);
var22.func_20078_a((double) var9, (double) 0.1F, (double) var10, 1.1F, 6.0F);
var1.entityJoinedWorld(var22);
var1.func_28097_e(1002, var2, var3, var4, 0);
} else if (var12.itemID == Item.snowball.shiftedIndex) {
EntitySnowball var23 = new EntitySnowball(var1, var13, var15, var17);
var23.func_6141_a((double) var9, (double) 0.1F, (double) var10, 1.1F, 6.0F);
var1.entityJoinedWorld(var23);
var1.func_28097_e(1002, var2, var3, var4, 0);
} else {
EntityItem var24 = new EntityItem(var1, var13, var15 - 0.3D, var17, var12);
double var20 = var5.nextDouble() * 0.1D + 0.2D;
var24.motionX = (double) var9 * var20;
var24.motionY = (double) 0.2F;
var24.motionZ = (double) var10 * var20;
var24.motionX += var5.nextGaussian() * (double) 0.0075F * 6.0D;
var24.motionY += var5.nextGaussian() * (double) 0.0075F * 6.0D;
var24.motionZ += var5.nextGaussian() * (double) 0.0075F * 6.0D;
var1.entityJoinedWorld(var24);
var1.func_28097_e(1000, var2, var3, var4, 0);
}
var1.func_28097_e(2000, var2, var3, var4, var9 + 1 + (var10 + 1) * 3);
}
var1.func_28097_e(2000, var2, var3, var4, var9 + 1 + (var10 + 1) * 3);
}
}
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if(var5 > 0 && Block.blocksList[var5].canProvidePower()) {
boolean var6 = var1.isBlockIndirectlyGettingPowered(var2, var3, var4) || var1.isBlockIndirectlyGettingPowered(var2, var3 + 1, var4);
if(var6) {
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
}
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if (var5 > 0 && Block.blocksList[var5].canProvidePower()) {
boolean var6 = var1.isBlockIndirectlyGettingPowered(var2, var3, var4) || var1.isBlockIndirectlyGettingPowered(var2, var3 + 1, var4);
if (var6) {
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
}
}
}
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if(var1.isBlockIndirectlyGettingPowered(var2, var3, var4) || var1.isBlockIndirectlyGettingPowered(var2, var3 + 1, var4)) {
this.dispenseItem(var1, var2, var3, var4, var5);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if (var1.isBlockIndirectlyGettingPowered(var2, var3, var4) || var1.isBlockIndirectlyGettingPowered(var2, var3 + 1, var4)) {
this.dispenseItem(var1, var2, var3, var4, var5);
}
}
}
protected TileEntity getBlockEntity() {
return new TileEntityDispenser();
}
protected TileEntity getBlockEntity() {
return new TileEntityDispenser();
}
public void onBlockPlacedBy(World var1, int var2, int var3, int var4, EntityLiving var5) {
int var6 = MathHelper.floor_double((double)(var5.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
if(var6 == 0) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 2);
}
public void onBlockPlacedBy(World var1, int var2, int var3, int var4, EntityLiving var5) {
int var6 = MathHelper.floor_double((double) (var5.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
if (var6 == 0) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 2);
}
if(var6 == 1) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 5);
}
if (var6 == 1) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 5);
}
if(var6 == 2) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 3);
}
if (var6 == 2) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 3);
}
if(var6 == 3) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 4);
}
if (var6 == 3) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 4);
}
}
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
TileEntityDispenser var5 = (TileEntityDispenser)var1.getBlockTileEntity(var2, var3, var4);
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
TileEntityDispenser var5 = (TileEntityDispenser) var1.getBlockTileEntity(var2, var3, var4);
for(int var6 = 0; var6 < var5.getSizeInventory(); ++var6) {
ItemStack var7 = var5.getStackInSlot(var6);
if(var7 != null) {
float var8 = this.field_28032_a.nextFloat() * 0.8F + 0.1F;
float var9 = this.field_28032_a.nextFloat() * 0.8F + 0.1F;
float var10 = this.field_28032_a.nextFloat() * 0.8F + 0.1F;
for (int var6 = 0; var6 < var5.getSizeInventory(); ++var6) {
ItemStack var7 = var5.getStackInSlot(var6);
if (var7 != null) {
float var8 = this.field_28032_a.nextFloat() * 0.8F + 0.1F;
float var9 = this.field_28032_a.nextFloat() * 0.8F + 0.1F;
float var10 = this.field_28032_a.nextFloat() * 0.8F + 0.1F;
while(var7.stackSize > 0) {
int var11 = this.field_28032_a.nextInt(21) + 10;
if(var11 > var7.stackSize) {
var11 = var7.stackSize;
}
while (var7.stackSize > 0) {
int var11 = this.field_28032_a.nextInt(21) + 10;
if (var11 > var7.stackSize) {
var11 = var7.stackSize;
}
var7.stackSize -= var11;
EntityItem var12 = new EntityItem(var1, (double)((float)var2 + var8), (double)((float)var3 + var9), (double)((float)var4 + var10), new ItemStack(var7.itemID, var11, var7.getItemDamage()));
float var13 = 0.05F;
var12.motionX = (double)((float)this.field_28032_a.nextGaussian() * var13);
var12.motionY = (double)((float)this.field_28032_a.nextGaussian() * var13 + 0.2F);
var12.motionZ = (double)((float)this.field_28032_a.nextGaussian() * var13);
var1.entityJoinedWorld(var12);
}
}
}
var7.stackSize -= var11;
EntityItem var12 = new EntityItem(var1, (double) ((float) var2 + var8), (double) ((float) var3 + var9), (double) ((float) var4 + var10), new ItemStack(var7.itemID, var11, var7.getItemDamage()));
float var13 = 0.05F;
var12.motionX = (double) ((float) this.field_28032_a.nextGaussian() * var13);
var12.motionY = (double) ((float) this.field_28032_a.nextGaussian() * var13 + 0.2F);
var12.motionZ = (double) ((float) this.field_28032_a.nextGaussian() * var13);
var1.entityJoinedWorld(var12);
}
}
}
super.onBlockRemoval(var1, var2, var3, var4);
}
super.onBlockRemoval(var1, var2, var3, var4);
}
}

View file

@ -1,6 +1,5 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityPlayer;
import net.minecraft.item.Item;
@ -10,185 +9,187 @@ import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import java.util.Random;
public class BlockDoor extends Block {
protected BlockDoor(int var1, Material var2) {
super(var1, var2);
this.blockIndexInTexture = 97;
if(var2 == Material.iron) {
++this.blockIndexInTexture;
}
protected BlockDoor(int var1, Material var2) {
super(var1, var2);
this.blockIndexInTexture = 97;
if (var2 == Material.iron) {
++this.blockIndexInTexture;
}
float var3 = 0.5F;
float var4 = 1.0F;
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var4, 0.5F + var3);
}
float var3 = 0.5F;
float var4 = 1.0F;
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var4, 0.5F + var3);
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
if(var1 != 0 && var1 != 1) {
int var3 = this.func_271_d(var2);
if((var3 == 0 || var3 == 2) ^ var1 <= 3) {
return this.blockIndexInTexture;
} else {
int var4 = var3 / 2 + (var1 & 1 ^ var3);
var4 += (var2 & 4) / 4;
int var5 = this.blockIndexInTexture - (var2 & 8) * 2;
if((var4 & 1) != 0) {
var5 = -var5;
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
if (var1 != 0 && var1 != 1) {
int var3 = this.func_271_d(var2);
if ((var3 == 0 || var3 == 2) ^ var1 <= 3) {
return this.blockIndexInTexture;
} else {
int var4 = var3 / 2 + (var1 & 1 ^ var3);
var4 += (var2 & 4) / 4;
int var5 = this.blockIndexInTexture - (var2 & 8) * 2;
if ((var4 & 1) != 0) {
var5 = -var5;
}
return var5;
}
} else {
return this.blockIndexInTexture;
}
}
return var5;
}
} else {
return this.blockIndexInTexture;
}
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
this.setBlockBoundsBasedOnState(var1, var2, var3, var4);
return super.getCollisionBoundingBoxFromPool(var1, var2, var3, var4);
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
this.setBlockBoundsBasedOnState(var1, var2, var3, var4);
return super.getCollisionBoundingBoxFromPool(var1, var2, var3, var4);
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
this.func_273_b(this.func_271_d(var1.getBlockMetadata(var2, var3, var4)));
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
this.func_273_b(this.func_271_d(var1.getBlockMetadata(var2, var3, var4)));
}
public void func_273_b(int var1) {
float var2 = 3.0F / 16.0F;
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 2.0F, 1.0F);
if(var1 == 0) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, var2);
}
public void func_273_b(int var1) {
float var2 = 3.0F / 16.0F;
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 2.0F, 1.0F);
if (var1 == 0) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, var2);
}
if(var1 == 1) {
this.setBlockBounds(1.0F - var2, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
}
if (var1 == 1) {
this.setBlockBounds(1.0F - var2, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
}
if(var1 == 2) {
this.setBlockBounds(0.0F, 0.0F, 1.0F - var2, 1.0F, 1.0F, 1.0F);
}
if (var1 == 2) {
this.setBlockBounds(0.0F, 0.0F, 1.0F - var2, 1.0F, 1.0F, 1.0F);
}
if(var1 == 3) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, var2, 1.0F, 1.0F);
}
if (var1 == 3) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, var2, 1.0F, 1.0F);
}
}
}
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
this.blockActivated(var1, var2, var3, var4, var5);
}
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
this.blockActivated(var1, var2, var3, var4, var5);
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if(this.blockMaterial == Material.iron) {
return true;
} else {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if((var6 & 8) != 0) {
if(var1.getBlockId(var2, var3 - 1, var4) == this.blockID) {
this.blockActivated(var1, var2, var3 - 1, var4, var5);
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if (this.blockMaterial == Material.iron) {
return true;
} else {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if ((var6 & 8) != 0) {
if (var1.getBlockId(var2, var3 - 1, var4) == this.blockID) {
this.blockActivated(var1, var2, var3 - 1, var4, var5);
}
return true;
} else {
if(var1.getBlockId(var2, var3 + 1, var4) == this.blockID) {
var1.setBlockMetadataWithNotify(var2, var3 + 1, var4, (var6 ^ 4) + 8);
}
return true;
} else {
if (var1.getBlockId(var2, var3 + 1, var4) == this.blockID) {
var1.setBlockMetadataWithNotify(var2, var3 + 1, var4, (var6 ^ 4) + 8);
}
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 ^ 4);
var1.markBlocksDirty(var2, var3 - 1, var4, var2, var3, var4);
var1.func_28101_a(var5, 1003, var2, var3, var4, 0);
return true;
}
}
}
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 ^ 4);
var1.markBlocksDirty(var2, var3 - 1, var4, var2, var3, var4);
var1.func_28101_a(var5, 1003, var2, var3, var4, 0);
return true;
}
}
}
public void func_272_a(World var1, int var2, int var3, int var4, boolean var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if((var6 & 8) != 0) {
if(var1.getBlockId(var2, var3 - 1, var4) == this.blockID) {
this.func_272_a(var1, var2, var3 - 1, var4, var5);
}
public void func_272_a(World var1, int var2, int var3, int var4, boolean var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if ((var6 & 8) != 0) {
if (var1.getBlockId(var2, var3 - 1, var4) == this.blockID) {
this.func_272_a(var1, var2, var3 - 1, var4, var5);
}
} else {
boolean var7 = (var1.getBlockMetadata(var2, var3, var4) & 4) > 0;
if(var7 != var5) {
if(var1.getBlockId(var2, var3 + 1, var4) == this.blockID) {
var1.setBlockMetadataWithNotify(var2, var3 + 1, var4, (var6 ^ 4) + 8);
}
} else {
boolean var7 = (var1.getBlockMetadata(var2, var3, var4) & 4) > 0;
if (var7 != var5) {
if (var1.getBlockId(var2, var3 + 1, var4) == this.blockID) {
var1.setBlockMetadataWithNotify(var2, var3 + 1, var4, (var6 ^ 4) + 8);
}
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 ^ 4);
var1.markBlocksDirty(var2, var3 - 1, var4, var2, var3, var4);
var1.func_28101_a((EntityPlayer)null, 1003, var2, var3, var4, 0);
}
}
}
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 ^ 4);
var1.markBlocksDirty(var2, var3 - 1, var4, var2, var3, var4);
var1.func_28101_a((EntityPlayer) null, 1003, var2, var3, var4, 0);
}
}
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if((var6 & 8) != 0) {
if(var1.getBlockId(var2, var3 - 1, var4) != this.blockID) {
var1.setBlockWithNotify(var2, var3, var4, 0);
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if ((var6 & 8) != 0) {
if (var1.getBlockId(var2, var3 - 1, var4) != this.blockID) {
var1.setBlockWithNotify(var2, var3, var4, 0);
}
if(var5 > 0 && Block.blocksList[var5].canProvidePower()) {
this.onNeighborBlockChange(var1, var2, var3 - 1, var4, var5);
}
} else {
boolean var7 = false;
if(var1.getBlockId(var2, var3 + 1, var4) != this.blockID) {
var1.setBlockWithNotify(var2, var3, var4, 0);
var7 = true;
}
if (var5 > 0 && Block.blocksList[var5].canProvidePower()) {
this.onNeighborBlockChange(var1, var2, var3 - 1, var4, var5);
}
} else {
boolean var7 = false;
if (var1.getBlockId(var2, var3 + 1, var4) != this.blockID) {
var1.setBlockWithNotify(var2, var3, var4, 0);
var7 = true;
}
if(!var1.isBlockNormalCube(var2, var3 - 1, var4)) {
var1.setBlockWithNotify(var2, var3, var4, 0);
var7 = true;
if(var1.getBlockId(var2, var3 + 1, var4) == this.blockID) {
var1.setBlockWithNotify(var2, var3 + 1, var4, 0);
}
}
if (!var1.isBlockNormalCube(var2, var3 - 1, var4)) {
var1.setBlockWithNotify(var2, var3, var4, 0);
var7 = true;
if (var1.getBlockId(var2, var3 + 1, var4) == this.blockID) {
var1.setBlockWithNotify(var2, var3 + 1, var4, 0);
}
}
if(var7) {
if(!var1.singleplayerWorld) {
this.dropBlockAsItem(var1, var2, var3, var4, var6);
}
} else if(var5 > 0 && Block.blocksList[var5].canProvidePower()) {
boolean var8 = var1.isBlockIndirectlyGettingPowered(var2, var3, var4) || var1.isBlockIndirectlyGettingPowered(var2, var3 + 1, var4);
this.func_272_a(var1, var2, var3, var4, var8);
}
}
if (var7) {
if (!var1.singleplayerWorld) {
this.dropBlockAsItem(var1, var2, var3, var4, var6);
}
} else if (var5 > 0 && Block.blocksList[var5].canProvidePower()) {
boolean var8 = var1.isBlockIndirectlyGettingPowered(var2, var3, var4) || var1.isBlockIndirectlyGettingPowered(var2, var3 + 1, var4);
this.func_272_a(var1, var2, var3, var4, var8);
}
}
}
}
public int idDropped(int var1, Random var2) {
return (var1 & 8) != 0 ? 0 : (this.blockMaterial == Material.iron ? Item.doorSteel.shiftedIndex : Item.doorWood.shiftedIndex);
}
public int idDropped(int var1, Random var2) {
return (var1 & 8) != 0 ? 0 : (this.blockMaterial == Material.iron ? Item.doorSteel.shiftedIndex : Item.doorWood.shiftedIndex);
}
public MovingObjectPosition collisionRayTrace(World var1, int var2, int var3, int var4, Vec3D var5, Vec3D var6) {
this.setBlockBoundsBasedOnState(var1, var2, var3, var4);
return super.collisionRayTrace(var1, var2, var3, var4, var5, var6);
}
public MovingObjectPosition collisionRayTrace(World var1, int var2, int var3, int var4, Vec3D var5, Vec3D var6) {
this.setBlockBoundsBasedOnState(var1, var2, var3, var4);
return super.collisionRayTrace(var1, var2, var3, var4, var5, var6);
}
public int func_271_d(int var1) {
return (var1 & 4) == 0 ? var1 - 1 & 3 : var1 & 3;
}
public int func_271_d(int var1) {
return (var1 & 4) == 0 ? var1 - 1 & 3 : var1 & 3;
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return var3 >= 127 ? false : var1.isBlockNormalCube(var2, var3 - 1, var4) && super.canPlaceBlockAt(var1, var2, var3, var4) && super.canPlaceBlockAt(var1, var2, var3 + 1, var4);
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return var3 >= 127 ? false : var1.isBlockNormalCube(var2, var3 - 1, var4) && super.canPlaceBlockAt(var1, var2, var3, var4) && super.canPlaceBlockAt(var1, var2, var3 + 1, var4);
}
public static boolean func_27036_e(int var0) {
return (var0 & 4) != 0;
}
public static boolean func_27036_e(int var0) {
return (var0 & 4) != 0;
}
public int getMobilityFlag() {
return 1;
}
public int getMobilityFlag() {
return 1;
}
}

View file

@ -1,97 +1,98 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.entity.Entity;
import net.minecraft.math.AxisAlignedBB;
import net.minecraft.world.World;
import java.util.Random;
public class BlockFarmland extends Block {
protected BlockFarmland(int var1) {
super(var1, Material.ground);
this.blockIndexInTexture = 87;
this.setTickOnLoad(true);
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 15.0F / 16.0F, 1.0F);
this.setLightOpacity(255);
}
protected BlockFarmland(int var1) {
super(var1, Material.ground);
this.blockIndexInTexture = 87;
this.setTickOnLoad(true);
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 15.0F / 16.0F, 1.0F);
this.setLightOpacity(255);
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return AxisAlignedBB.getBoundingBoxFromPool((double)(var2 + 0), (double)(var3 + 0), (double)(var4 + 0), (double)(var2 + 1), (double)(var3 + 1), (double)(var4 + 1));
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return AxisAlignedBB.getBoundingBoxFromPool((double) (var2 + 0), (double) (var3 + 0), (double) (var4 + 0), (double) (var2 + 1), (double) (var3 + 1), (double) (var4 + 1));
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
return var1 == 1 && var2 > 0 ? this.blockIndexInTexture - 1 : (var1 == 1 ? this.blockIndexInTexture : 2);
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
return var1 == 1 && var2 > 0 ? this.blockIndexInTexture - 1 : (var1 == 1 ? this.blockIndexInTexture : 2);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if(var5.nextInt(5) == 0) {
if(!this.isWaterNearby(var1, var2, var3, var4) && !var1.canLightningStrikeAt(var2, var3 + 1, var4)) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if(var6 > 0) {
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 - 1);
} else if(!this.isCropsNearby(var1, var2, var3, var4)) {
var1.setBlockWithNotify(var2, var3, var4, Block.dirt.blockID);
}
} else {
var1.setBlockMetadataWithNotify(var2, var3, var4, 7);
}
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if (var5.nextInt(5) == 0) {
if (!this.isWaterNearby(var1, var2, var3, var4) && !var1.canLightningStrikeAt(var2, var3 + 1, var4)) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if (var6 > 0) {
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 - 1);
} else if (!this.isCropsNearby(var1, var2, var3, var4)) {
var1.setBlockWithNotify(var2, var3, var4, Block.dirt.blockID);
}
} else {
var1.setBlockMetadataWithNotify(var2, var3, var4, 7);
}
}
}
}
public void onEntityWalking(World var1, int var2, int var3, int var4, Entity var5) {
if(var1.rand.nextInt(4) == 0) {
var1.setBlockWithNotify(var2, var3, var4, Block.dirt.blockID);
}
public void onEntityWalking(World var1, int var2, int var3, int var4, Entity var5) {
if (var1.rand.nextInt(4) == 0) {
var1.setBlockWithNotify(var2, var3, var4, Block.dirt.blockID);
}
}
}
private boolean isCropsNearby(World var1, int var2, int var3, int var4) {
byte var5 = 0;
private boolean isCropsNearby(World var1, int var2, int var3, int var4) {
byte var5 = 0;
for(int var6 = var2 - var5; var6 <= var2 + var5; ++var6) {
for(int var7 = var4 - var5; var7 <= var4 + var5; ++var7) {
if(var1.getBlockId(var6, var3 + 1, var7) == Block.crops.blockID) {
return true;
}
}
}
for (int var6 = var2 - var5; var6 <= var2 + var5; ++var6) {
for (int var7 = var4 - var5; var7 <= var4 + var5; ++var7) {
if (var1.getBlockId(var6, var3 + 1, var7) == Block.crops.blockID) {
return true;
}
}
}
return false;
}
return false;
}
private boolean isWaterNearby(World var1, int var2, int var3, int var4) {
for(int var5 = var2 - 4; var5 <= var2 + 4; ++var5) {
for(int var6 = var3; var6 <= var3 + 1; ++var6) {
for(int var7 = var4 - 4; var7 <= var4 + 4; ++var7) {
if(var1.getBlockMaterial(var5, var6, var7) == Material.water) {
return true;
}
}
}
}
private boolean isWaterNearby(World var1, int var2, int var3, int var4) {
for (int var5 = var2 - 4; var5 <= var2 + 4; ++var5) {
for (int var6 = var3; var6 <= var3 + 1; ++var6) {
for (int var7 = var4 - 4; var7 <= var4 + 4; ++var7) {
if (var1.getBlockMaterial(var5, var6, var7) == Material.water) {
return true;
}
}
}
}
return false;
}
return false;
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
super.onNeighborBlockChange(var1, var2, var3, var4, var5);
Material var6 = var1.getBlockMaterial(var2, var3 + 1, var4);
if(var6.isSolid()) {
var1.setBlockWithNotify(var2, var3, var4, Block.dirt.blockID);
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
super.onNeighborBlockChange(var1, var2, var3, var4, var5);
Material var6 = var1.getBlockMaterial(var2, var3 + 1, var4);
if (var6.isSolid()) {
var1.setBlockWithNotify(var2, var3, var4, Block.dirt.blockID);
}
}
}
public int idDropped(int var1, Random var2) {
return Block.dirt.idDropped(0, var2);
}
public int idDropped(int var1, Random var2) {
return Block.dirt.idDropped(0, var2);
}
}

View file

@ -5,23 +5,23 @@ import net.minecraft.math.AxisAlignedBB;
import net.minecraft.world.World;
public class BlockFence extends Block {
public BlockFence(int var1, int var2) {
super(var1, var2, Material.wood);
}
public BlockFence(int var1, int var2) {
super(var1, var2, Material.wood);
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return var1.getBlockId(var2, var3 - 1, var4) == this.blockID ? true : (!var1.getBlockMaterial(var2, var3 - 1, var4).isSolid() ? false : super.canPlaceBlockAt(var1, var2, var3, var4));
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return var1.getBlockId(var2, var3 - 1, var4) == this.blockID ? true : (!var1.getBlockMaterial(var2, var3 - 1, var4).isSolid() ? false : super.canPlaceBlockAt(var1, var2, var3, var4));
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return AxisAlignedBB.getBoundingBoxFromPool((double)var2, (double)var3, (double)var4, (double)(var2 + 1), (double)((float)var3 + 1.5F), (double)(var4 + 1));
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return AxisAlignedBB.getBoundingBoxFromPool((double) var2, (double) var3, (double) var4, (double) (var2 + 1), (double) ((float) var3 + 1.5F), (double) (var4 + 1));
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
}

View file

@ -1,188 +1,189 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.math.AxisAlignedBB;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import java.util.Random;
public class BlockFire extends Block {
private int[] chanceToEncourageFire = new int[256];
private int[] abilityToCatchFire = new int[256];
private int[] chanceToEncourageFire = new int[256];
private int[] abilityToCatchFire = new int[256];
protected BlockFire(int var1, int var2) {
super(var1, var2, Material.fire);
this.setTickOnLoad(true);
}
protected BlockFire(int var1, int var2) {
super(var1, var2, Material.fire);
this.setTickOnLoad(true);
}
public void setFireBurnRates() {
this.setBurnRate(Block.planks.blockID, 5, 20);
this.setBurnRate(Block.fence.blockID, 5, 20);
this.setBurnRate(Block.stairCompactPlanks.blockID, 5, 20);
this.setBurnRate(Block.wood.blockID, 5, 5);
this.setBurnRate(Block.leaves.blockID, 30, 60);
this.setBurnRate(Block.bookShelf.blockID, 30, 20);
this.setBurnRate(Block.tnt.blockID, 15, 100);
this.setBurnRate(Block.tallGrass.blockID, 60, 100);
this.setBurnRate(Block.cloth.blockID, 30, 60);
}
public void setFireBurnRates() {
this.setBurnRate(Block.planks.blockID, 5, 20);
this.setBurnRate(Block.fence.blockID, 5, 20);
this.setBurnRate(Block.stairCompactPlanks.blockID, 5, 20);
this.setBurnRate(Block.wood.blockID, 5, 5);
this.setBurnRate(Block.leaves.blockID, 30, 60);
this.setBurnRate(Block.bookShelf.blockID, 30, 20);
this.setBurnRate(Block.tnt.blockID, 15, 100);
this.setBurnRate(Block.tallGrass.blockID, 60, 100);
this.setBurnRate(Block.cloth.blockID, 30, 60);
}
private void setBurnRate(int var1, int var2, int var3) {
this.chanceToEncourageFire[var1] = var2;
this.abilityToCatchFire[var1] = var3;
}
private void setBurnRate(int var1, int var2, int var3) {
this.chanceToEncourageFire[var1] = var2;
this.abilityToCatchFire[var1] = var3;
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public int quantityDropped(Random var1) {
return 0;
}
public int quantityDropped(Random var1) {
return 0;
}
public int tickRate() {
return 40;
}
public int tickRate() {
return 40;
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
boolean var6 = var1.getBlockId(var2, var3 - 1, var4) == Block.bloodStone.blockID;
if(!this.canPlaceBlockAt(var1, var2, var3, var4)) {
var1.setBlockWithNotify(var2, var3, var4, 0);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
boolean var6 = var1.getBlockId(var2, var3 - 1, var4) == Block.bloodStone.blockID;
if (!this.canPlaceBlockAt(var1, var2, var3, var4)) {
var1.setBlockWithNotify(var2, var3, var4, 0);
}
if(var6 || !var1.func_27068_v() || !var1.canLightningStrikeAt(var2, var3, var4) && !var1.canLightningStrikeAt(var2 - 1, var3, var4) && !var1.canLightningStrikeAt(var2 + 1, var3, var4) && !var1.canLightningStrikeAt(var2, var3, var4 - 1) && !var1.canLightningStrikeAt(var2, var3, var4 + 1)) {
int var7 = var1.getBlockMetadata(var2, var3, var4);
if(var7 < 15) {
var1.setBlockMetadata(var2, var3, var4, var7 + var5.nextInt(3) / 2);
}
if (var6 || !var1.func_27068_v() || !var1.canLightningStrikeAt(var2, var3, var4) && !var1.canLightningStrikeAt(var2 - 1, var3, var4) && !var1.canLightningStrikeAt(var2 + 1, var3, var4) && !var1.canLightningStrikeAt(var2, var3, var4 - 1) && !var1.canLightningStrikeAt(var2, var3, var4 + 1)) {
int var7 = var1.getBlockMetadata(var2, var3, var4);
if (var7 < 15) {
var1.setBlockMetadata(var2, var3, var4, var7 + var5.nextInt(3) / 2);
}
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
if(!var6 && !this.func_268_g(var1, var2, var3, var4)) {
if(!var1.isBlockNormalCube(var2, var3 - 1, var4) || var7 > 3) {
var1.setBlockWithNotify(var2, var3, var4, 0);
}
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
if (!var6 && !this.func_268_g(var1, var2, var3, var4)) {
if (!var1.isBlockNormalCube(var2, var3 - 1, var4) || var7 > 3) {
var1.setBlockWithNotify(var2, var3, var4, 0);
}
} else if(!var6 && !this.canBlockCatchFire(var1, var2, var3 - 1, var4) && var7 == 15 && var5.nextInt(4) == 0) {
var1.setBlockWithNotify(var2, var3, var4, 0);
} else {
this.tryToCatchBlockOnFire(var1, var2 + 1, var3, var4, 300, var5, var7);
this.tryToCatchBlockOnFire(var1, var2 - 1, var3, var4, 300, var5, var7);
this.tryToCatchBlockOnFire(var1, var2, var3 - 1, var4, 250, var5, var7);
this.tryToCatchBlockOnFire(var1, var2, var3 + 1, var4, 250, var5, var7);
this.tryToCatchBlockOnFire(var1, var2, var3, var4 - 1, 300, var5, var7);
this.tryToCatchBlockOnFire(var1, var2, var3, var4 + 1, 300, var5, var7);
} else if (!var6 && !this.canBlockCatchFire(var1, var2, var3 - 1, var4) && var7 == 15 && var5.nextInt(4) == 0) {
var1.setBlockWithNotify(var2, var3, var4, 0);
} else {
this.tryToCatchBlockOnFire(var1, var2 + 1, var3, var4, 300, var5, var7);
this.tryToCatchBlockOnFire(var1, var2 - 1, var3, var4, 300, var5, var7);
this.tryToCatchBlockOnFire(var1, var2, var3 - 1, var4, 250, var5, var7);
this.tryToCatchBlockOnFire(var1, var2, var3 + 1, var4, 250, var5, var7);
this.tryToCatchBlockOnFire(var1, var2, var3, var4 - 1, 300, var5, var7);
this.tryToCatchBlockOnFire(var1, var2, var3, var4 + 1, 300, var5, var7);
for(int var8 = var2 - 1; var8 <= var2 + 1; ++var8) {
for(int var9 = var4 - 1; var9 <= var4 + 1; ++var9) {
for(int var10 = var3 - 1; var10 <= var3 + 4; ++var10) {
if(var8 != var2 || var10 != var3 || var9 != var4) {
int var11 = 100;
if(var10 > var3 + 1) {
var11 += (var10 - (var3 + 1)) * 100;
}
for (int var8 = var2 - 1; var8 <= var2 + 1; ++var8) {
for (int var9 = var4 - 1; var9 <= var4 + 1; ++var9) {
for (int var10 = var3 - 1; var10 <= var3 + 4; ++var10) {
if (var8 != var2 || var10 != var3 || var9 != var4) {
int var11 = 100;
if (var10 > var3 + 1) {
var11 += (var10 - (var3 + 1)) * 100;
}
int var12 = this.getChanceOfNeighborsEncouragingFire(var1, var8, var10, var9);
if(var12 > 0) {
int var13 = (var12 + 40) / (var7 + 30);
if(var13 > 0 && var5.nextInt(var11) <= var13 && (!var1.func_27068_v() || !var1.canLightningStrikeAt(var8, var10, var9)) && !var1.canLightningStrikeAt(var8 - 1, var10, var4) && !var1.canLightningStrikeAt(var8 + 1, var10, var9) && !var1.canLightningStrikeAt(var8, var10, var9 - 1) && !var1.canLightningStrikeAt(var8, var10, var9 + 1)) {
int var14 = var7 + var5.nextInt(5) / 4;
if(var14 > 15) {
var14 = 15;
}
int var12 = this.getChanceOfNeighborsEncouragingFire(var1, var8, var10, var9);
if (var12 > 0) {
int var13 = (var12 + 40) / (var7 + 30);
if (var13 > 0 && var5.nextInt(var11) <= var13 && (!var1.func_27068_v() || !var1.canLightningStrikeAt(var8, var10, var9)) && !var1.canLightningStrikeAt(var8 - 1, var10, var4) && !var1.canLightningStrikeAt(var8 + 1, var10, var9) && !var1.canLightningStrikeAt(var8, var10, var9 - 1) && !var1.canLightningStrikeAt(var8, var10, var9 + 1)) {
int var14 = var7 + var5.nextInt(5) / 4;
if (var14 > 15) {
var14 = 15;
}
var1.setBlockAndMetadataWithNotify(var8, var10, var9, this.blockID, var14);
}
}
}
}
}
}
var1.setBlockAndMetadataWithNotify(var8, var10, var9, this.blockID, var14);
}
}
}
}
}
}
}
} else {
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
}
} else {
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
private void tryToCatchBlockOnFire(World var1, int var2, int var3, int var4, int var5, Random var6, int var7) {
int var8 = this.abilityToCatchFire[var1.getBlockId(var2, var3, var4)];
if(var6.nextInt(var5) < var8) {
boolean var9 = var1.getBlockId(var2, var3, var4) == Block.tnt.blockID;
if(var6.nextInt(var7 + 10) < 5 && !var1.canLightningStrikeAt(var2, var3, var4)) {
int var10 = var7 + var6.nextInt(5) / 4;
if(var10 > 15) {
var10 = 15;
}
private void tryToCatchBlockOnFire(World var1, int var2, int var3, int var4, int var5, Random var6, int var7) {
int var8 = this.abilityToCatchFire[var1.getBlockId(var2, var3, var4)];
if (var6.nextInt(var5) < var8) {
boolean var9 = var1.getBlockId(var2, var3, var4) == Block.tnt.blockID;
if (var6.nextInt(var7 + 10) < 5 && !var1.canLightningStrikeAt(var2, var3, var4)) {
int var10 = var7 + var6.nextInt(5) / 4;
if (var10 > 15) {
var10 = 15;
}
var1.setBlockAndMetadataWithNotify(var2, var3, var4, this.blockID, var10);
} else {
var1.setBlockWithNotify(var2, var3, var4, 0);
}
var1.setBlockAndMetadataWithNotify(var2, var3, var4, this.blockID, var10);
} else {
var1.setBlockWithNotify(var2, var3, var4, 0);
}
if(var9) {
Block.tnt.onBlockDestroyedByPlayer(var1, var2, var3, var4, 1);
}
}
if (var9) {
Block.tnt.onBlockDestroyedByPlayer(var1, var2, var3, var4, 1);
}
}
}
}
private boolean func_268_g(World var1, int var2, int var3, int var4) {
return this.canBlockCatchFire(var1, var2 + 1, var3, var4) ? true : (this.canBlockCatchFire(var1, var2 - 1, var3, var4) ? true : (this.canBlockCatchFire(var1, var2, var3 - 1, var4) ? true : (this.canBlockCatchFire(var1, var2, var3 + 1, var4) ? true : (this.canBlockCatchFire(var1, var2, var3, var4 - 1) ? true : this.canBlockCatchFire(var1, var2, var3, var4 + 1)))));
}
private boolean func_268_g(World var1, int var2, int var3, int var4) {
return this.canBlockCatchFire(var1, var2 + 1, var3, var4) ? true : (this.canBlockCatchFire(var1, var2 - 1, var3, var4) ? true : (this.canBlockCatchFire(var1, var2, var3 - 1, var4) ? true : (this.canBlockCatchFire(var1, var2, var3 + 1, var4) ? true : (this.canBlockCatchFire(var1, var2, var3, var4 - 1) ? true : this.canBlockCatchFire(var1, var2, var3, var4 + 1)))));
}
private int getChanceOfNeighborsEncouragingFire(World var1, int var2, int var3, int var4) {
byte var5 = 0;
if(!var1.isAirBlock(var2, var3, var4)) {
return 0;
} else {
int var6 = this.getChanceToEncourageFire(var1, var2 + 1, var3, var4, var5);
var6 = this.getChanceToEncourageFire(var1, var2 - 1, var3, var4, var6);
var6 = this.getChanceToEncourageFire(var1, var2, var3 - 1, var4, var6);
var6 = this.getChanceToEncourageFire(var1, var2, var3 + 1, var4, var6);
var6 = this.getChanceToEncourageFire(var1, var2, var3, var4 - 1, var6);
var6 = this.getChanceToEncourageFire(var1, var2, var3, var4 + 1, var6);
return var6;
}
}
private int getChanceOfNeighborsEncouragingFire(World var1, int var2, int var3, int var4) {
byte var5 = 0;
if (!var1.isAirBlock(var2, var3, var4)) {
return 0;
} else {
int var6 = this.getChanceToEncourageFire(var1, var2 + 1, var3, var4, var5);
var6 = this.getChanceToEncourageFire(var1, var2 - 1, var3, var4, var6);
var6 = this.getChanceToEncourageFire(var1, var2, var3 - 1, var4, var6);
var6 = this.getChanceToEncourageFire(var1, var2, var3 + 1, var4, var6);
var6 = this.getChanceToEncourageFire(var1, var2, var3, var4 - 1, var6);
var6 = this.getChanceToEncourageFire(var1, var2, var3, var4 + 1, var6);
return var6;
}
}
public boolean isCollidable() {
return false;
}
public boolean isCollidable() {
return false;
}
public boolean canBlockCatchFire(IBlockAccess var1, int var2, int var3, int var4) {
return this.chanceToEncourageFire[var1.getBlockId(var2, var3, var4)] > 0;
}
public boolean canBlockCatchFire(IBlockAccess var1, int var2, int var3, int var4) {
return this.chanceToEncourageFire[var1.getBlockId(var2, var3, var4)] > 0;
}
public int getChanceToEncourageFire(World var1, int var2, int var3, int var4, int var5) {
int var6 = this.chanceToEncourageFire[var1.getBlockId(var2, var3, var4)];
return var6 > var5 ? var6 : var5;
}
public int getChanceToEncourageFire(World var1, int var2, int var3, int var4, int var5) {
int var6 = this.chanceToEncourageFire[var1.getBlockId(var2, var3, var4)];
return var6 > var5 ? var6 : var5;
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return var1.isBlockNormalCube(var2, var3 - 1, var4) || this.func_268_g(var1, var2, var3, var4);
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return var1.isBlockNormalCube(var2, var3 - 1, var4) || this.func_268_g(var1, var2, var3, var4);
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if(!var1.isBlockNormalCube(var2, var3 - 1, var4) && !this.func_268_g(var1, var2, var3, var4)) {
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if (!var1.isBlockNormalCube(var2, var3 - 1, var4) && !this.func_268_g(var1, var2, var3, var4)) {
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
if(var1.getBlockId(var2, var3 - 1, var4) != Block.obsidian.blockID || !Block.portal.tryToCreatePortal(var1, var2, var3, var4)) {
if(!var1.isBlockNormalCube(var2, var3 - 1, var4) && !this.func_268_g(var1, var2, var3, var4)) {
var1.setBlockWithNotify(var2, var3, var4, 0);
} else {
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
}
}
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
if (var1.getBlockId(var2, var3 - 1, var4) != Block.obsidian.blockID || !Block.portal.tryToCreatePortal(var1, var2, var3, var4)) {
if (!var1.isBlockNormalCube(var2, var3 - 1, var4) && !this.func_268_g(var1, var2, var3, var4)) {
var1.setBlockWithNotify(var2, var3, var4, 0);
} else {
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
}
}
}
}

View file

@ -1,57 +1,58 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.math.AxisAlignedBB;
import net.minecraft.world.World;
import java.util.Random;
public class BlockFlower extends Block {
protected BlockFlower(int var1, int var2) {
super(var1, Material.plants);
this.blockIndexInTexture = var2;
this.setTickOnLoad(true);
float var3 = 0.2F;
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 3.0F, 0.5F + var3);
}
protected BlockFlower(int var1, int var2) {
super(var1, Material.plants);
this.blockIndexInTexture = var2;
this.setTickOnLoad(true);
float var3 = 0.2F;
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 3.0F, 0.5F + var3);
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return super.canPlaceBlockAt(var1, var2, var3, var4) && this.canThisPlantGrowOnThisBlockID(var1.getBlockId(var2, var3 - 1, var4));
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return super.canPlaceBlockAt(var1, var2, var3, var4) && this.canThisPlantGrowOnThisBlockID(var1.getBlockId(var2, var3 - 1, var4));
}
protected boolean canThisPlantGrowOnThisBlockID(int var1) {
return var1 == Block.grass.blockID || var1 == Block.dirt.blockID || var1 == Block.tilledField.blockID;
}
protected boolean canThisPlantGrowOnThisBlockID(int var1) {
return var1 == Block.grass.blockID || var1 == Block.dirt.blockID || var1 == Block.tilledField.blockID;
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
super.onNeighborBlockChange(var1, var2, var3, var4, var5);
this.func_276_g(var1, var2, var3, var4);
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
super.onNeighborBlockChange(var1, var2, var3, var4, var5);
this.func_276_g(var1, var2, var3, var4);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
this.func_276_g(var1, var2, var3, var4);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
this.func_276_g(var1, var2, var3, var4);
}
protected final void func_276_g(World var1, int var2, int var3, int var4) {
if(!this.canBlockStay(var1, var2, var3, var4)) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
protected final void func_276_g(World var1, int var2, int var3, int var4) {
if (!this.canBlockStay(var1, var2, var3, var4)) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
}
public boolean canBlockStay(World var1, int var2, int var3, int var4) {
return (var1.getBlockLightValueNoChecks(var2, var3, var4) >= 8 || var1.canBlockSeeTheSky(var2, var3, var4)) && this.canThisPlantGrowOnThisBlockID(var1.getBlockId(var2, var3 - 1, var4));
}
public boolean canBlockStay(World var1, int var2, int var3, int var4) {
return (var1.getBlockLightValueNoChecks(var2, var3, var4) >= 8 || var1.canBlockSeeTheSky(var2, var3, var4)) && this.canThisPlantGrowOnThisBlockID(var1.getBlockId(var2, var3 - 1, var4));
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
}

View file

@ -1,265 +1,266 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.world.World;
import java.util.Random;
public class BlockFlowing extends BlockFluid {
int field_659_a = 0;
boolean[] field_658_b = new boolean[4];
int[] field_660_c = new int[4];
int field_659_a = 0;
boolean[] field_658_b = new boolean[4];
int[] field_660_c = new int[4];
protected BlockFlowing(int var1, Material var2) {
super(var1, var2);
}
protected BlockFlowing(int var1, Material var2) {
super(var1, var2);
}
private void func_30004_i(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
var1.setBlockAndMetadata(var2, var3, var4, this.blockID + 1, var5);
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
var1.markBlockNeedsUpdate(var2, var3, var4);
}
private void func_30004_i(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
var1.setBlockAndMetadata(var2, var3, var4, this.blockID + 1, var5);
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
var1.markBlockNeedsUpdate(var2, var3, var4);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
int var6 = this.func_301_g(var1, var2, var3, var4);
byte var7 = 1;
if(this.blockMaterial == Material.lava && !var1.worldProvider.isHellWorld) {
var7 = 2;
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
int var6 = this.func_301_g(var1, var2, var3, var4);
byte var7 = 1;
if (this.blockMaterial == Material.lava && !var1.worldProvider.isHellWorld) {
var7 = 2;
}
boolean var8 = true;
int var10;
if(var6 > 0) {
byte var9 = -100;
this.field_659_a = 0;
int var12 = this.func_307_e(var1, var2 - 1, var3, var4, var9);
var12 = this.func_307_e(var1, var2 + 1, var3, var4, var12);
var12 = this.func_307_e(var1, var2, var3, var4 - 1, var12);
var12 = this.func_307_e(var1, var2, var3, var4 + 1, var12);
var10 = var12 + var7;
if(var10 >= 8 || var12 < 0) {
var10 = -1;
}
boolean var8 = true;
int var10;
if (var6 > 0) {
byte var9 = -100;
this.field_659_a = 0;
int var12 = this.func_307_e(var1, var2 - 1, var3, var4, var9);
var12 = this.func_307_e(var1, var2 + 1, var3, var4, var12);
var12 = this.func_307_e(var1, var2, var3, var4 - 1, var12);
var12 = this.func_307_e(var1, var2, var3, var4 + 1, var12);
var10 = var12 + var7;
if (var10 >= 8 || var12 < 0) {
var10 = -1;
}
if(this.func_301_g(var1, var2, var3 + 1, var4) >= 0) {
int var11 = this.func_301_g(var1, var2, var3 + 1, var4);
if(var11 >= 8) {
var10 = var11;
} else {
var10 = var11 + 8;
}
}
if (this.func_301_g(var1, var2, var3 + 1, var4) >= 0) {
int var11 = this.func_301_g(var1, var2, var3 + 1, var4);
if (var11 >= 8) {
var10 = var11;
} else {
var10 = var11 + 8;
}
}
if(this.field_659_a >= 2 && this.blockMaterial == Material.water) {
if(var1.getBlockMaterial(var2, var3 - 1, var4).isSolid()) {
var10 = 0;
} else if(var1.getBlockMaterial(var2, var3 - 1, var4) == this.blockMaterial && var1.getBlockMetadata(var2, var3, var4) == 0) {
var10 = 0;
}
}
if (this.field_659_a >= 2 && this.blockMaterial == Material.water) {
if (var1.getBlockMaterial(var2, var3 - 1, var4).isSolid()) {
var10 = 0;
} else if (var1.getBlockMaterial(var2, var3 - 1, var4) == this.blockMaterial && var1.getBlockMetadata(var2, var3, var4) == 0) {
var10 = 0;
}
}
if(this.blockMaterial == Material.lava && var6 < 8 && var10 < 8 && var10 > var6 && var5.nextInt(4) != 0) {
var10 = var6;
var8 = false;
}
if (this.blockMaterial == Material.lava && var6 < 8 && var10 < 8 && var10 > var6 && var5.nextInt(4) != 0) {
var10 = var6;
var8 = false;
}
if(var10 != var6) {
var6 = var10;
if(var10 < 0) {
var1.setBlockWithNotify(var2, var3, var4, 0);
} else {
var1.setBlockMetadataWithNotify(var2, var3, var4, var10);
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
}
} else if(var8) {
this.func_30004_i(var1, var2, var3, var4);
}
} else {
this.func_30004_i(var1, var2, var3, var4);
}
if (var10 != var6) {
var6 = var10;
if (var10 < 0) {
var1.setBlockWithNotify(var2, var3, var4, 0);
} else {
var1.setBlockMetadataWithNotify(var2, var3, var4, var10);
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
}
} else if (var8) {
this.func_30004_i(var1, var2, var3, var4);
}
} else {
this.func_30004_i(var1, var2, var3, var4);
}
if(this.func_312_l(var1, var2, var3 - 1, var4)) {
if(var6 >= 8) {
var1.setBlockAndMetadataWithNotify(var2, var3 - 1, var4, this.blockID, var6);
} else {
var1.setBlockAndMetadataWithNotify(var2, var3 - 1, var4, this.blockID, var6 + 8);
}
} else if(var6 >= 0 && (var6 == 0 || this.func_309_k(var1, var2, var3 - 1, var4))) {
boolean[] var13 = this.func_4035_j(var1, var2, var3, var4);
var10 = var6 + var7;
if(var6 >= 8) {
var10 = 1;
}
if (this.func_312_l(var1, var2, var3 - 1, var4)) {
if (var6 >= 8) {
var1.setBlockAndMetadataWithNotify(var2, var3 - 1, var4, this.blockID, var6);
} else {
var1.setBlockAndMetadataWithNotify(var2, var3 - 1, var4, this.blockID, var6 + 8);
}
} else if (var6 >= 0 && (var6 == 0 || this.func_309_k(var1, var2, var3 - 1, var4))) {
boolean[] var13 = this.func_4035_j(var1, var2, var3, var4);
var10 = var6 + var7;
if (var6 >= 8) {
var10 = 1;
}
if(var10 >= 8) {
return;
}
if (var10 >= 8) {
return;
}
if(var13[0]) {
this.func_311_f(var1, var2 - 1, var3, var4, var10);
}
if (var13[0]) {
this.func_311_f(var1, var2 - 1, var3, var4, var10);
}
if(var13[1]) {
this.func_311_f(var1, var2 + 1, var3, var4, var10);
}
if (var13[1]) {
this.func_311_f(var1, var2 + 1, var3, var4, var10);
}
if(var13[2]) {
this.func_311_f(var1, var2, var3, var4 - 1, var10);
}
if (var13[2]) {
this.func_311_f(var1, var2, var3, var4 - 1, var10);
}
if(var13[3]) {
this.func_311_f(var1, var2, var3, var4 + 1, var10);
}
}
if (var13[3]) {
this.func_311_f(var1, var2, var3, var4 + 1, var10);
}
}
}
}
private void func_311_f(World var1, int var2, int var3, int var4, int var5) {
if(this.func_312_l(var1, var2, var3, var4)) {
int var6 = var1.getBlockId(var2, var3, var4);
if(var6 > 0) {
if(this.blockMaterial == Material.lava) {
this.func_300_h(var1, var2, var3, var4);
} else {
Block.blocksList[var6].dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
}
}
private void func_311_f(World var1, int var2, int var3, int var4, int var5) {
if (this.func_312_l(var1, var2, var3, var4)) {
int var6 = var1.getBlockId(var2, var3, var4);
if (var6 > 0) {
if (this.blockMaterial == Material.lava) {
this.func_300_h(var1, var2, var3, var4);
} else {
Block.blocksList[var6].dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
}
}
var1.setBlockAndMetadataWithNotify(var2, var3, var4, this.blockID, var5);
}
var1.setBlockAndMetadataWithNotify(var2, var3, var4, this.blockID, var5);
}
}
}
private int func_4034_a(World var1, int var2, int var3, int var4, int var5, int var6) {
int var7 = 1000;
private int func_4034_a(World var1, int var2, int var3, int var4, int var5, int var6) {
int var7 = 1000;
for(int var8 = 0; var8 < 4; ++var8) {
if((var8 != 0 || var6 != 1) && (var8 != 1 || var6 != 0) && (var8 != 2 || var6 != 3) && (var8 != 3 || var6 != 2)) {
int var9 = var2;
int var11 = var4;
if(var8 == 0) {
var9 = var2 - 1;
}
for (int var8 = 0; var8 < 4; ++var8) {
if ((var8 != 0 || var6 != 1) && (var8 != 1 || var6 != 0) && (var8 != 2 || var6 != 3) && (var8 != 3 || var6 != 2)) {
int var9 = var2;
int var11 = var4;
if (var8 == 0) {
var9 = var2 - 1;
}
if(var8 == 1) {
++var9;
}
if (var8 == 1) {
++var9;
}
if(var8 == 2) {
var11 = var4 - 1;
}
if (var8 == 2) {
var11 = var4 - 1;
}
if(var8 == 3) {
++var11;
}
if (var8 == 3) {
++var11;
}
if(!this.func_309_k(var1, var9, var3, var11) && (var1.getBlockMaterial(var9, var3, var11) != this.blockMaterial || var1.getBlockMetadata(var9, var3, var11) != 0)) {
if(!this.func_309_k(var1, var9, var3 - 1, var11)) {
return var5;
}
if (!this.func_309_k(var1, var9, var3, var11) && (var1.getBlockMaterial(var9, var3, var11) != this.blockMaterial || var1.getBlockMetadata(var9, var3, var11) != 0)) {
if (!this.func_309_k(var1, var9, var3 - 1, var11)) {
return var5;
}
if(var5 < 4) {
int var12 = this.func_4034_a(var1, var9, var3, var11, var5 + 1, var8);
if(var12 < var7) {
var7 = var12;
}
}
}
}
}
if (var5 < 4) {
int var12 = this.func_4034_a(var1, var9, var3, var11, var5 + 1, var8);
if (var12 < var7) {
var7 = var12;
}
}
}
}
}
return var7;
}
return var7;
}
private boolean[] func_4035_j(World var1, int var2, int var3, int var4) {
int var5;
int var6;
for(var5 = 0; var5 < 4; ++var5) {
this.field_660_c[var5] = 1000;
var6 = var2;
int var8 = var4;
if(var5 == 0) {
var6 = var2 - 1;
}
private boolean[] func_4035_j(World var1, int var2, int var3, int var4) {
int var5;
int var6;
for (var5 = 0; var5 < 4; ++var5) {
this.field_660_c[var5] = 1000;
var6 = var2;
int var8 = var4;
if (var5 == 0) {
var6 = var2 - 1;
}
if(var5 == 1) {
++var6;
}
if (var5 == 1) {
++var6;
}
if(var5 == 2) {
var8 = var4 - 1;
}
if (var5 == 2) {
var8 = var4 - 1;
}
if(var5 == 3) {
++var8;
}
if (var5 == 3) {
++var8;
}
if(!this.func_309_k(var1, var6, var3, var8) && (var1.getBlockMaterial(var6, var3, var8) != this.blockMaterial || var1.getBlockMetadata(var6, var3, var8) != 0)) {
if(!this.func_309_k(var1, var6, var3 - 1, var8)) {
this.field_660_c[var5] = 0;
} else {
this.field_660_c[var5] = this.func_4034_a(var1, var6, var3, var8, 1, var5);
}
}
}
if (!this.func_309_k(var1, var6, var3, var8) && (var1.getBlockMaterial(var6, var3, var8) != this.blockMaterial || var1.getBlockMetadata(var6, var3, var8) != 0)) {
if (!this.func_309_k(var1, var6, var3 - 1, var8)) {
this.field_660_c[var5] = 0;
} else {
this.field_660_c[var5] = this.func_4034_a(var1, var6, var3, var8, 1, var5);
}
}
}
var5 = this.field_660_c[0];
var5 = this.field_660_c[0];
for(var6 = 1; var6 < 4; ++var6) {
if(this.field_660_c[var6] < var5) {
var5 = this.field_660_c[var6];
}
}
for (var6 = 1; var6 < 4; ++var6) {
if (this.field_660_c[var6] < var5) {
var5 = this.field_660_c[var6];
}
}
for(var6 = 0; var6 < 4; ++var6) {
this.field_658_b[var6] = this.field_660_c[var6] == var5;
}
for (var6 = 0; var6 < 4; ++var6) {
this.field_658_b[var6] = this.field_660_c[var6] == var5;
}
return this.field_658_b;
}
return this.field_658_b;
}
private boolean func_309_k(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockId(var2, var3, var4);
if(var5 != Block.doorWood.blockID && var5 != Block.doorSteel.blockID && var5 != Block.signPost.blockID && var5 != Block.ladder.blockID && var5 != Block.reed.blockID) {
if(var5 == 0) {
return false;
} else {
Material var6 = Block.blocksList[var5].blockMaterial;
return var6.getIsSolid();
}
} else {
return true;
}
}
private boolean func_309_k(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockId(var2, var3, var4);
if (var5 != Block.doorWood.blockID && var5 != Block.doorSteel.blockID && var5 != Block.signPost.blockID && var5 != Block.ladder.blockID && var5 != Block.reed.blockID) {
if (var5 == 0) {
return false;
} else {
Material var6 = Block.blocksList[var5].blockMaterial;
return var6.getIsSolid();
}
} else {
return true;
}
}
protected int func_307_e(World var1, int var2, int var3, int var4, int var5) {
int var6 = this.func_301_g(var1, var2, var3, var4);
if(var6 < 0) {
return var5;
} else {
if(var6 == 0) {
++this.field_659_a;
}
protected int func_307_e(World var1, int var2, int var3, int var4, int var5) {
int var6 = this.func_301_g(var1, var2, var3, var4);
if (var6 < 0) {
return var5;
} else {
if (var6 == 0) {
++this.field_659_a;
}
if(var6 >= 8) {
var6 = 0;
}
if (var6 >= 8) {
var6 = 0;
}
return var5 >= 0 && var6 >= var5 ? var5 : var6;
}
}
return var5 >= 0 && var6 >= var5 ? var5 : var6;
}
}
private boolean func_312_l(World var1, int var2, int var3, int var4) {
Material var5 = var1.getBlockMaterial(var2, var3, var4);
return var5 == this.blockMaterial ? false : (var5 == Material.lava ? false : !this.func_309_k(var1, var2, var3, var4));
}
private boolean func_312_l(World var1, int var2, int var3, int var4) {
Material var5 = var1.getBlockMaterial(var2, var3, var4);
return var5 == this.blockMaterial ? false : (var5 == Material.lava ? false : !this.func_309_k(var1, var2, var3, var4));
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
super.onBlockAdded(var1, var2, var3, var4);
if(var1.getBlockId(var2, var3, var4) == this.blockID) {
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
super.onBlockAdded(var1, var2, var3, var4);
if (var1.getBlockId(var2, var3, var4) == this.blockID) {
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
}
}
}
}

View file

@ -1,6 +1,5 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.entity.Entity;
import net.minecraft.math.AxisAlignedBB;
@ -8,224 +7,226 @@ import net.minecraft.math.Vec3D;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import java.util.Random;
public abstract class BlockFluid extends Block {
protected BlockFluid(int var1, Material var2) {
super(var1, (var2 == Material.lava ? 14 : 12) * 16 + 13, var2);
float var3 = 0.0F;
float var4 = 0.0F;
this.setBlockBounds(0.0F + var4, 0.0F + var3, 0.0F + var4, 1.0F + var4, 1.0F + var3, 1.0F + var4);
this.setTickOnLoad(true);
}
protected BlockFluid(int var1, Material var2) {
super(var1, (var2 == Material.lava ? 14 : 12) * 16 + 13, var2);
float var3 = 0.0F;
float var4 = 0.0F;
this.setBlockBounds(0.0F + var4, 0.0F + var3, 0.0F + var4, 1.0F + var4, 1.0F + var3, 1.0F + var4);
this.setTickOnLoad(true);
}
public static float setFluidHeight(int var0) {
if(var0 >= 8) {
var0 = 0;
}
public static float setFluidHeight(int var0) {
if (var0 >= 8) {
var0 = 0;
}
float var1 = (float)(var0 + 1) / 9.0F;
return var1;
}
float var1 = (float) (var0 + 1) / 9.0F;
return var1;
}
public int getBlockTextureFromSide(int var1) {
return var1 != 0 && var1 != 1 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture;
}
public int getBlockTextureFromSide(int var1) {
return var1 != 0 && var1 != 1 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture;
}
protected int func_301_g(World var1, int var2, int var3, int var4) {
return var1.getBlockMaterial(var2, var3, var4) != this.blockMaterial ? -1 : var1.getBlockMetadata(var2, var3, var4);
}
protected int func_301_g(World var1, int var2, int var3, int var4) {
return var1.getBlockMaterial(var2, var3, var4) != this.blockMaterial ? -1 : var1.getBlockMetadata(var2, var3, var4);
}
protected int func_303_b(IBlockAccess var1, int var2, int var3, int var4) {
if(var1.getBlockMaterial(var2, var3, var4) != this.blockMaterial) {
return -1;
} else {
int var5 = var1.getBlockMetadata(var2, var3, var4);
if(var5 >= 8) {
var5 = 0;
}
protected int func_303_b(IBlockAccess var1, int var2, int var3, int var4) {
if (var1.getBlockMaterial(var2, var3, var4) != this.blockMaterial) {
return -1;
} else {
int var5 = var1.getBlockMetadata(var2, var3, var4);
if (var5 >= 8) {
var5 = 0;
}
return var5;
}
}
return var5;
}
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean canCollideCheck(int var1, boolean var2) {
return var2 && var1 == 0;
}
public boolean canCollideCheck(int var1, boolean var2) {
return var2 && var1 == 0;
}
public boolean shouldSideBeRendered(IBlockAccess var1, int var2, int var3, int var4, int var5) {
Material var6 = var1.getBlockMaterial(var2, var3, var4);
return var6 == this.blockMaterial ? false : (var6 == Material.ice ? false : (var5 == 1 ? true : super.shouldSideBeRendered(var1, var2, var3, var4, var5)));
}
public boolean shouldSideBeRendered(IBlockAccess var1, int var2, int var3, int var4, int var5) {
Material var6 = var1.getBlockMaterial(var2, var3, var4);
return var6 == this.blockMaterial ? false : (var6 == Material.ice ? false : (var5 == 1 ? true : super.shouldSideBeRendered(var1, var2, var3, var4, var5)));
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public int idDropped(int var1, Random var2) {
return 0;
}
public int idDropped(int var1, Random var2) {
return 0;
}
public int quantityDropped(Random var1) {
return 0;
}
public int quantityDropped(Random var1) {
return 0;
}
private Vec3D func_298_c(IBlockAccess var1, int var2, int var3, int var4) {
Vec3D var5 = Vec3D.createVector(0.0D, 0.0D, 0.0D);
int var6 = this.func_303_b(var1, var2, var3, var4);
private Vec3D func_298_c(IBlockAccess var1, int var2, int var3, int var4) {
Vec3D var5 = Vec3D.createVector(0.0D, 0.0D, 0.0D);
int var6 = this.func_303_b(var1, var2, var3, var4);
for(int var7 = 0; var7 < 4; ++var7) {
int var8 = var2;
int var10 = var4;
if(var7 == 0) {
var8 = var2 - 1;
}
for (int var7 = 0; var7 < 4; ++var7) {
int var8 = var2;
int var10 = var4;
if (var7 == 0) {
var8 = var2 - 1;
}
if(var7 == 1) {
var10 = var4 - 1;
}
if (var7 == 1) {
var10 = var4 - 1;
}
if(var7 == 2) {
++var8;
}
if (var7 == 2) {
++var8;
}
if(var7 == 3) {
++var10;
}
if (var7 == 3) {
++var10;
}
int var11 = this.func_303_b(var1, var8, var3, var10);
int var12;
if(var11 < 0) {
if(!var1.getBlockMaterial(var8, var3, var10).getIsSolid()) {
var11 = this.func_303_b(var1, var8, var3 - 1, var10);
if(var11 >= 0) {
var12 = var11 - (var6 - 8);
var5 = var5.addVector((double)((var8 - var2) * var12), (double)((var3 - var3) * var12), (double)((var10 - var4) * var12));
}
}
} else if(var11 >= 0) {
var12 = var11 - var6;
var5 = var5.addVector((double)((var8 - var2) * var12), (double)((var3 - var3) * var12), (double)((var10 - var4) * var12));
}
}
int var11 = this.func_303_b(var1, var8, var3, var10);
int var12;
if (var11 < 0) {
if (!var1.getBlockMaterial(var8, var3, var10).getIsSolid()) {
var11 = this.func_303_b(var1, var8, var3 - 1, var10);
if (var11 >= 0) {
var12 = var11 - (var6 - 8);
var5 = var5.addVector((double) ((var8 - var2) * var12), (double) ((var3 - var3) * var12), (double) ((var10 - var4) * var12));
}
}
} else if (var11 >= 0) {
var12 = var11 - var6;
var5 = var5.addVector((double) ((var8 - var2) * var12), (double) ((var3 - var3) * var12), (double) ((var10 - var4) * var12));
}
}
if(var1.getBlockMetadata(var2, var3, var4) >= 8) {
boolean var13 = false;
if(var13 || this.shouldSideBeRendered(var1, var2, var3, var4 - 1, 2)) {
var13 = true;
}
if (var1.getBlockMetadata(var2, var3, var4) >= 8) {
boolean var13 = false;
if (var13 || this.shouldSideBeRendered(var1, var2, var3, var4 - 1, 2)) {
var13 = true;
}
if(var13 || this.shouldSideBeRendered(var1, var2, var3, var4 + 1, 3)) {
var13 = true;
}
if (var13 || this.shouldSideBeRendered(var1, var2, var3, var4 + 1, 3)) {
var13 = true;
}
if(var13 || this.shouldSideBeRendered(var1, var2 - 1, var3, var4, 4)) {
var13 = true;
}
if (var13 || this.shouldSideBeRendered(var1, var2 - 1, var3, var4, 4)) {
var13 = true;
}
if(var13 || this.shouldSideBeRendered(var1, var2 + 1, var3, var4, 5)) {
var13 = true;
}
if (var13 || this.shouldSideBeRendered(var1, var2 + 1, var3, var4, 5)) {
var13 = true;
}
if(var13 || this.shouldSideBeRendered(var1, var2, var3 + 1, var4 - 1, 2)) {
var13 = true;
}
if (var13 || this.shouldSideBeRendered(var1, var2, var3 + 1, var4 - 1, 2)) {
var13 = true;
}
if(var13 || this.shouldSideBeRendered(var1, var2, var3 + 1, var4 + 1, 3)) {
var13 = true;
}
if (var13 || this.shouldSideBeRendered(var1, var2, var3 + 1, var4 + 1, 3)) {
var13 = true;
}
if(var13 || this.shouldSideBeRendered(var1, var2 - 1, var3 + 1, var4, 4)) {
var13 = true;
}
if (var13 || this.shouldSideBeRendered(var1, var2 - 1, var3 + 1, var4, 4)) {
var13 = true;
}
if(var13 || this.shouldSideBeRendered(var1, var2 + 1, var3 + 1, var4, 5)) {
var13 = true;
}
if (var13 || this.shouldSideBeRendered(var1, var2 + 1, var3 + 1, var4, 5)) {
var13 = true;
}
if(var13) {
var5 = var5.normalize().addVector(0.0D, -6.0D, 0.0D);
}
}
if (var13) {
var5 = var5.normalize().addVector(0.0D, -6.0D, 0.0D);
}
}
var5 = var5.normalize();
return var5;
}
var5 = var5.normalize();
return var5;
}
public void velocityToAddToEntity(World var1, int var2, int var3, int var4, Entity var5, Vec3D var6) {
Vec3D var7 = this.func_298_c(var1, var2, var3, var4);
var6.xCoord += var7.xCoord;
var6.yCoord += var7.yCoord;
var6.zCoord += var7.zCoord;
}
public void velocityToAddToEntity(World var1, int var2, int var3, int var4, Entity var5, Vec3D var6) {
Vec3D var7 = this.func_298_c(var1, var2, var3, var4);
var6.xCoord += var7.xCoord;
var6.yCoord += var7.yCoord;
var6.zCoord += var7.zCoord;
}
public int tickRate() {
return this.blockMaterial == Material.water ? 5 : (this.blockMaterial == Material.lava ? 30 : 0);
}
public int tickRate() {
return this.blockMaterial == Material.water ? 5 : (this.blockMaterial == Material.lava ? 30 : 0);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
super.updateTick(var1, var2, var3, var4, var5);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
super.updateTick(var1, var2, var3, var4, var5);
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
this.checkForHarden(var1, var2, var3, var4);
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
this.checkForHarden(var1, var2, var3, var4);
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
this.checkForHarden(var1, var2, var3, var4);
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
this.checkForHarden(var1, var2, var3, var4);
}
private void checkForHarden(World var1, int var2, int var3, int var4) {
if(var1.getBlockId(var2, var3, var4) == this.blockID) {
if(this.blockMaterial == Material.lava) {
boolean var5 = false;
if(var5 || var1.getBlockMaterial(var2, var3, var4 - 1) == Material.water) {
var5 = true;
}
private void checkForHarden(World var1, int var2, int var3, int var4) {
if (var1.getBlockId(var2, var3, var4) == this.blockID) {
if (this.blockMaterial == Material.lava) {
boolean var5 = false;
if (var5 || var1.getBlockMaterial(var2, var3, var4 - 1) == Material.water) {
var5 = true;
}
if(var5 || var1.getBlockMaterial(var2, var3, var4 + 1) == Material.water) {
var5 = true;
}
if (var5 || var1.getBlockMaterial(var2, var3, var4 + 1) == Material.water) {
var5 = true;
}
if(var5 || var1.getBlockMaterial(var2 - 1, var3, var4) == Material.water) {
var5 = true;
}
if (var5 || var1.getBlockMaterial(var2 - 1, var3, var4) == Material.water) {
var5 = true;
}
if(var5 || var1.getBlockMaterial(var2 + 1, var3, var4) == Material.water) {
var5 = true;
}
if (var5 || var1.getBlockMaterial(var2 + 1, var3, var4) == Material.water) {
var5 = true;
}
if(var5 || var1.getBlockMaterial(var2, var3 + 1, var4) == Material.water) {
var5 = true;
}
if (var5 || var1.getBlockMaterial(var2, var3 + 1, var4) == Material.water) {
var5 = true;
}
if(var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if(var6 == 0) {
var1.setBlockWithNotify(var2, var3, var4, Block.obsidian.blockID);
} else if(var6 <= 4) {
var1.setBlockWithNotify(var2, var3, var4, Block.cobblestone.blockID);
}
if (var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if (var6 == 0) {
var1.setBlockWithNotify(var2, var3, var4, Block.obsidian.blockID);
} else if (var6 <= 4) {
var1.setBlockWithNotify(var2, var3, var4, Block.cobblestone.blockID);
}
this.func_300_h(var1, var2, var3, var4);
}
}
this.func_300_h(var1, var2, var3, var4);
}
}
}
}
}
}
protected void func_300_h(World var1, int var2, int var3, int var4) {
var1.playSoundEffect((double)((float)var2 + 0.5F), (double)((float)var3 + 0.5F), (double)((float)var4 + 0.5F), "random.fizz", 0.5F, 2.6F + (var1.rand.nextFloat() - var1.rand.nextFloat()) * 0.8F);
protected void func_300_h(World var1, int var2, int var3, int var4) {
var1.playSoundEffect((double) ((float) var2 + 0.5F), (double) ((float) var3 + 0.5F), (double) ((float) var4 + 0.5F), "random.fizz", 0.5F, 2.6F + (var1.rand.nextFloat() - var1.rand.nextFloat()) * 0.8F);
for(int var5 = 0; var5 < 8; ++var5) {
var1.spawnParticle("largesmoke", (double)var2 + Math.random(), (double)var3 + 1.2D, (double)var4 + Math.random(), 0.0D, 0.0D, 0.0D);
}
for (int var5 = 0; var5 < 8; ++var5) {
var1.spawnParticle("largesmoke", (double) var2 + Math.random(), (double) var3 + 1.2D, (double) var4 + Math.random(), 0.0D, 0.0D, 0.0D);
}
}
}
}

View file

@ -1,6 +1,5 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.block.tile.TileEntity;
import net.minecraft.block.tile.TileEntityFurnace;
@ -11,136 +10,138 @@ import net.minecraft.item.crafting.ItemStack;
import net.minecraft.math.MathHelper;
import net.minecraft.world.World;
import java.util.Random;
public class BlockFurnace extends BlockContainer {
private Random field_28033_a = new Random();
private final boolean isActive;
private static boolean field_28034_c = false;
private Random field_28033_a = new Random();
private final boolean isActive;
private static boolean field_28034_c = false;
protected BlockFurnace(int var1, boolean var2) {
super(var1, Material.rock);
this.isActive = var2;
this.blockIndexInTexture = 45;
}
protected BlockFurnace(int var1, boolean var2) {
super(var1, Material.rock);
this.isActive = var2;
this.blockIndexInTexture = 45;
}
public int idDropped(int var1, Random var2) {
return Block.stoneOvenIdle.blockID;
}
public int idDropped(int var1, Random var2) {
return Block.stoneOvenIdle.blockID;
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
super.onBlockAdded(var1, var2, var3, var4);
this.setDefaultDirection(var1, var2, var3, var4);
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
super.onBlockAdded(var1, var2, var3, var4);
this.setDefaultDirection(var1, var2, var3, var4);
}
private void setDefaultDirection(World var1, int var2, int var3, int var4) {
if(!var1.singleplayerWorld) {
int var5 = var1.getBlockId(var2, var3, var4 - 1);
int var6 = var1.getBlockId(var2, var3, var4 + 1);
int var7 = var1.getBlockId(var2 - 1, var3, var4);
int var8 = var1.getBlockId(var2 + 1, var3, var4);
byte var9 = 3;
if(Block.opaqueCubeLookup[var5] && !Block.opaqueCubeLookup[var6]) {
var9 = 3;
}
private void setDefaultDirection(World var1, int var2, int var3, int var4) {
if (!var1.singleplayerWorld) {
int var5 = var1.getBlockId(var2, var3, var4 - 1);
int var6 = var1.getBlockId(var2, var3, var4 + 1);
int var7 = var1.getBlockId(var2 - 1, var3, var4);
int var8 = var1.getBlockId(var2 + 1, var3, var4);
byte var9 = 3;
if (Block.opaqueCubeLookup[var5] && !Block.opaqueCubeLookup[var6]) {
var9 = 3;
}
if(Block.opaqueCubeLookup[var6] && !Block.opaqueCubeLookup[var5]) {
var9 = 2;
}
if (Block.opaqueCubeLookup[var6] && !Block.opaqueCubeLookup[var5]) {
var9 = 2;
}
if(Block.opaqueCubeLookup[var7] && !Block.opaqueCubeLookup[var8]) {
var9 = 5;
}
if (Block.opaqueCubeLookup[var7] && !Block.opaqueCubeLookup[var8]) {
var9 = 5;
}
if(Block.opaqueCubeLookup[var8] && !Block.opaqueCubeLookup[var7]) {
var9 = 4;
}
if (Block.opaqueCubeLookup[var8] && !Block.opaqueCubeLookup[var7]) {
var9 = 4;
}
var1.setBlockMetadataWithNotify(var2, var3, var4, var9);
}
}
var1.setBlockMetadataWithNotify(var2, var3, var4, var9);
}
}
public int getBlockTextureFromSide(int var1) {
return var1 == 1 ? this.blockIndexInTexture + 17 : (var1 == 0 ? this.blockIndexInTexture + 17 : (var1 == 3 ? this.blockIndexInTexture - 1 : this.blockIndexInTexture));
}
public int getBlockTextureFromSide(int var1) {
return var1 == 1 ? this.blockIndexInTexture + 17 : (var1 == 0 ? this.blockIndexInTexture + 17 : (var1 == 3 ? this.blockIndexInTexture - 1 : this.blockIndexInTexture));
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if(var1.singleplayerWorld) {
return true;
} else {
TileEntityFurnace var6 = (TileEntityFurnace)var1.getBlockTileEntity(var2, var3, var4);
var5.displayGUIFurnace(var6);
return true;
}
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if (var1.singleplayerWorld) {
return true;
} else {
TileEntityFurnace var6 = (TileEntityFurnace) var1.getBlockTileEntity(var2, var3, var4);
var5.displayGUIFurnace(var6);
return true;
}
}
public static void updateFurnaceBlockState(boolean var0, World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
TileEntity var6 = var1.getBlockTileEntity(var2, var3, var4);
field_28034_c = true;
if(var0) {
var1.setBlockWithNotify(var2, var3, var4, Block.stoneOvenActive.blockID);
} else {
var1.setBlockWithNotify(var2, var3, var4, Block.stoneOvenIdle.blockID);
}
public static void updateFurnaceBlockState(boolean var0, World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
TileEntity var6 = var1.getBlockTileEntity(var2, var3, var4);
field_28034_c = true;
if (var0) {
var1.setBlockWithNotify(var2, var3, var4, Block.stoneOvenActive.blockID);
} else {
var1.setBlockWithNotify(var2, var3, var4, Block.stoneOvenIdle.blockID);
}
field_28034_c = false;
var1.setBlockMetadataWithNotify(var2, var3, var4, var5);
var6.validate();
var1.setBlockTileEntity(var2, var3, var4, var6);
}
field_28034_c = false;
var1.setBlockMetadataWithNotify(var2, var3, var4, var5);
var6.validate();
var1.setBlockTileEntity(var2, var3, var4, var6);
}
protected TileEntity getBlockEntity() {
return new TileEntityFurnace();
}
protected TileEntity getBlockEntity() {
return new TileEntityFurnace();
}
public void onBlockPlacedBy(World var1, int var2, int var3, int var4, EntityLiving var5) {
int var6 = MathHelper.floor_double((double)(var5.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
if(var6 == 0) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 2);
}
public void onBlockPlacedBy(World var1, int var2, int var3, int var4, EntityLiving var5) {
int var6 = MathHelper.floor_double((double) (var5.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
if (var6 == 0) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 2);
}
if(var6 == 1) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 5);
}
if (var6 == 1) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 5);
}
if(var6 == 2) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 3);
}
if (var6 == 2) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 3);
}
if(var6 == 3) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 4);
}
if (var6 == 3) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 4);
}
}
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
if(!field_28034_c) {
TileEntityFurnace var5 = (TileEntityFurnace)var1.getBlockTileEntity(var2, var3, var4);
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
if (!field_28034_c) {
TileEntityFurnace var5 = (TileEntityFurnace) var1.getBlockTileEntity(var2, var3, var4);
for(int var6 = 0; var6 < var5.getSizeInventory(); ++var6) {
ItemStack var7 = var5.getStackInSlot(var6);
if(var7 != null) {
float var8 = this.field_28033_a.nextFloat() * 0.8F + 0.1F;
float var9 = this.field_28033_a.nextFloat() * 0.8F + 0.1F;
float var10 = this.field_28033_a.nextFloat() * 0.8F + 0.1F;
for (int var6 = 0; var6 < var5.getSizeInventory(); ++var6) {
ItemStack var7 = var5.getStackInSlot(var6);
if (var7 != null) {
float var8 = this.field_28033_a.nextFloat() * 0.8F + 0.1F;
float var9 = this.field_28033_a.nextFloat() * 0.8F + 0.1F;
float var10 = this.field_28033_a.nextFloat() * 0.8F + 0.1F;
while(var7.stackSize > 0) {
int var11 = this.field_28033_a.nextInt(21) + 10;
if(var11 > var7.stackSize) {
var11 = var7.stackSize;
}
while (var7.stackSize > 0) {
int var11 = this.field_28033_a.nextInt(21) + 10;
if (var11 > var7.stackSize) {
var11 = var7.stackSize;
}
var7.stackSize -= var11;
EntityItem var12 = new EntityItem(var1, (double)((float)var2 + var8), (double)((float)var3 + var9), (double)((float)var4 + var10), new ItemStack(var7.itemID, var11, var7.getItemDamage()));
float var13 = 0.05F;
var12.motionX = (double)((float)this.field_28033_a.nextGaussian() * var13);
var12.motionY = (double)((float)this.field_28033_a.nextGaussian() * var13 + 0.2F);
var12.motionZ = (double)((float)this.field_28033_a.nextGaussian() * var13);
var1.entityJoinedWorld(var12);
}
}
}
}
var7.stackSize -= var11;
EntityItem var12 = new EntityItem(var1, (double) ((float) var2 + var8), (double) ((float) var3 + var9), (double) ((float) var4 + var10), new ItemStack(var7.itemID, var11, var7.getItemDamage()));
float var13 = 0.05F;
var12.motionX = (double) ((float) this.field_28033_a.nextGaussian() * var13);
var12.motionY = (double) ((float) this.field_28033_a.nextGaussian() * var13 + 0.2F);
var12.motionZ = (double) ((float) this.field_28033_a.nextGaussian() * var13);
var1.entityJoinedWorld(var12);
}
}
}
}
super.onBlockRemoval(var1, var2, var3, var4);
}
super.onBlockRemoval(var1, var2, var3, var4);
}
}

View file

@ -1,14 +1,15 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
public class BlockGlass extends BlockBreakable {
public BlockGlass(int var1, int var2, Material var3, boolean var4) {
super(var1, var2, var3, var4);
}
import java.util.Random;
public int quantityDropped(Random var1) {
return 0;
}
public class BlockGlass extends BlockBreakable {
public BlockGlass(int var1, int var2, Material var3, boolean var4) {
super(var1, var2, var3, var4);
}
public int quantityDropped(Random var1) {
return 0;
}
}

View file

@ -1,19 +1,20 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.item.Item;
import java.util.Random;
public class BlockGlowStone extends Block {
public BlockGlowStone(int var1, int var2, Material var3) {
super(var1, var2, var3);
}
public BlockGlowStone(int var1, int var2, Material var3) {
super(var1, var2, var3);
}
public int quantityDropped(Random var1) {
return 2 + var1.nextInt(3);
}
public int quantityDropped(Random var1) {
return 2 + var1.nextInt(3);
}
public int idDropped(int var1, Random var2) {
return Item.lightStoneDust.shiftedIndex;
}
public int idDropped(int var1, Random var2) {
return Item.lightStoneDust.shiftedIndex;
}
}

View file

@ -1,38 +1,39 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.world.World;
import java.util.Random;
public class BlockGrass extends Block {
protected BlockGrass(int var1) {
super(var1, Material.grass);
this.blockIndexInTexture = 3;
this.setTickOnLoad(true);
}
protected BlockGrass(int var1) {
super(var1, Material.grass);
this.blockIndexInTexture = 3;
this.setTickOnLoad(true);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if(!var1.singleplayerWorld) {
if(var1.getBlockLightValue(var2, var3 + 1, var4) < 4 && Block.lightOpacity[var1.getBlockId(var2, var3 + 1, var4)] > 2) {
if(var5.nextInt(4) != 0) {
return;
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if (!var1.singleplayerWorld) {
if (var1.getBlockLightValue(var2, var3 + 1, var4) < 4 && Block.lightOpacity[var1.getBlockId(var2, var3 + 1, var4)] > 2) {
if (var5.nextInt(4) != 0) {
return;
}
var1.setBlockWithNotify(var2, var3, var4, Block.dirt.blockID);
} else if(var1.getBlockLightValue(var2, var3 + 1, var4) >= 9) {
int var6 = var2 + var5.nextInt(3) - 1;
int var7 = var3 + var5.nextInt(5) - 3;
int var8 = var4 + var5.nextInt(3) - 1;
int var9 = var1.getBlockId(var6, var7 + 1, var8);
if(var1.getBlockId(var6, var7, var8) == Block.dirt.blockID && var1.getBlockLightValue(var6, var7 + 1, var8) >= 4 && Block.lightOpacity[var9] <= 2) {
var1.setBlockWithNotify(var6, var7, var8, Block.grass.blockID);
}
}
var1.setBlockWithNotify(var2, var3, var4, Block.dirt.blockID);
} else if (var1.getBlockLightValue(var2, var3 + 1, var4) >= 9) {
int var6 = var2 + var5.nextInt(3) - 1;
int var7 = var3 + var5.nextInt(5) - 3;
int var8 = var4 + var5.nextInt(3) - 1;
int var9 = var1.getBlockId(var6, var7 + 1, var8);
if (var1.getBlockId(var6, var7, var8) == Block.dirt.blockID && var1.getBlockLightValue(var6, var7 + 1, var8) >= 4 && Block.lightOpacity[var9] <= 2) {
var1.setBlockWithNotify(var6, var7, var8, Block.grass.blockID);
}
}
}
}
}
}
public int idDropped(int var1, Random var2) {
return Block.dirt.idDropped(0, var2);
}
public int idDropped(int var1, Random var2) {
return Block.dirt.idDropped(0, var2);
}
}

View file

@ -1,14 +1,15 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.item.Item;
public class BlockGravel extends BlockSand {
public BlockGravel(int var1, int var2) {
super(var1, var2);
}
import java.util.Random;
public int idDropped(int var1, Random var2) {
return var2.nextInt(10) == 0 ? Item.flint.shiftedIndex : this.blockID;
}
public class BlockGravel extends BlockSand {
public BlockGravel(int var1, int var2) {
super(var1, var2);
}
public int idDropped(int var1, Random var2) {
return var2.nextInt(10) == 0 ? Item.flint.shiftedIndex : this.blockID;
}
}

View file

@ -1,40 +1,41 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityPlayer;
import net.minecraft.world.EnumLightSource;
import net.minecraft.world.World;
import java.util.Random;
public class BlockIce extends BlockBreakable {
public BlockIce(int var1, int var2) {
super(var1, var2, Material.ice, false);
this.slipperiness = 0.98F;
this.setTickOnLoad(true);
}
public BlockIce(int var1, int var2) {
super(var1, var2, Material.ice, false);
this.slipperiness = 0.98F;
this.setTickOnLoad(true);
}
public void harvestBlock(World var1, EntityPlayer var2, int var3, int var4, int var5, int var6) {
super.harvestBlock(var1, var2, var3, var4, var5, var6);
Material var7 = var1.getBlockMaterial(var3, var4 - 1, var5);
if(var7.getIsSolid() || var7.getIsLiquid()) {
var1.setBlockWithNotify(var3, var4, var5, Block.waterMoving.blockID);
}
public void harvestBlock(World var1, EntityPlayer var2, int var3, int var4, int var5, int var6) {
super.harvestBlock(var1, var2, var3, var4, var5, var6);
Material var7 = var1.getBlockMaterial(var3, var4 - 1, var5);
if (var7.getIsSolid() || var7.getIsLiquid()) {
var1.setBlockWithNotify(var3, var4, var5, Block.waterMoving.blockID);
}
}
}
public int quantityDropped(Random var1) {
return 0;
}
public int quantityDropped(Random var1) {
return 0;
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if(var1.getSavedLightValue(EnumLightSource.Block, var2, var3, var4) > 11 - Block.lightOpacity[this.blockID]) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, Block.waterStill.blockID);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if (var1.getSavedLightValue(EnumLightSource.Block, var2, var3, var4) > 11 - Block.lightOpacity[this.blockID]) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, Block.waterStill.blockID);
}
}
}
public int getMobilityFlag() {
return 0;
}
public int getMobilityFlag() {
return 0;
}
}

View file

@ -9,65 +9,65 @@ import net.minecraft.item.crafting.ItemStack;
import net.minecraft.world.World;
public class BlockJukeBox extends BlockContainer {
protected BlockJukeBox(int var1, int var2) {
super(var1, var2, Material.wood);
}
protected BlockJukeBox(int var1, int var2) {
super(var1, var2, Material.wood);
}
public int getBlockTextureFromSide(int var1) {
return this.blockIndexInTexture + (var1 == 1 ? 1 : 0);
}
public int getBlockTextureFromSide(int var1) {
return this.blockIndexInTexture + (var1 == 1 ? 1 : 0);
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if(var1.getBlockMetadata(var2, var3, var4) == 0) {
return false;
} else {
this.func_28035_b_(var1, var2, var3, var4);
return true;
}
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if (var1.getBlockMetadata(var2, var3, var4) == 0) {
return false;
} else {
this.func_28035_b_(var1, var2, var3, var4);
return true;
}
}
public void ejectRecord(World var1, int var2, int var3, int var4, int var5) {
if(!var1.singleplayerWorld) {
TileEntityRecordPlayer var6 = (TileEntityRecordPlayer)var1.getBlockTileEntity(var2, var3, var4);
var6.field_28009_a = var5;
var6.onInventoryChanged();
var1.setBlockMetadataWithNotify(var2, var3, var4, 1);
}
}
public void ejectRecord(World var1, int var2, int var3, int var4, int var5) {
if (!var1.singleplayerWorld) {
TileEntityRecordPlayer var6 = (TileEntityRecordPlayer) var1.getBlockTileEntity(var2, var3, var4);
var6.field_28009_a = var5;
var6.onInventoryChanged();
var1.setBlockMetadataWithNotify(var2, var3, var4, 1);
}
}
public void func_28035_b_(World var1, int var2, int var3, int var4) {
if(!var1.singleplayerWorld) {
TileEntityRecordPlayer var5 = (TileEntityRecordPlayer)var1.getBlockTileEntity(var2, var3, var4);
int var6 = var5.field_28009_a;
if(var6 != 0) {
var1.func_28097_e(1005, var2, var3, var4, 0);
var1.playRecord((String)null, var2, var3, var4);
var5.field_28009_a = 0;
var5.onInventoryChanged();
var1.setBlockMetadataWithNotify(var2, var3, var4, 0);
float var8 = 0.7F;
double var9 = (double)(var1.rand.nextFloat() * var8) + (double)(1.0F - var8) * 0.5D;
double var11 = (double)(var1.rand.nextFloat() * var8) + (double)(1.0F - var8) * 0.2D + 0.6D;
double var13 = (double)(var1.rand.nextFloat() * var8) + (double)(1.0F - var8) * 0.5D;
EntityItem var15 = new EntityItem(var1, (double)var2 + var9, (double)var3 + var11, (double)var4 + var13, new ItemStack(var6, 1, 0));
var15.delayBeforeCanPickup = 10;
var1.entityJoinedWorld(var15);
}
}
}
public void func_28035_b_(World var1, int var2, int var3, int var4) {
if (!var1.singleplayerWorld) {
TileEntityRecordPlayer var5 = (TileEntityRecordPlayer) var1.getBlockTileEntity(var2, var3, var4);
int var6 = var5.field_28009_a;
if (var6 != 0) {
var1.func_28097_e(1005, var2, var3, var4, 0);
var1.playRecord((String) null, var2, var3, var4);
var5.field_28009_a = 0;
var5.onInventoryChanged();
var1.setBlockMetadataWithNotify(var2, var3, var4, 0);
float var8 = 0.7F;
double var9 = (double) (var1.rand.nextFloat() * var8) + (double) (1.0F - var8) * 0.5D;
double var11 = (double) (var1.rand.nextFloat() * var8) + (double) (1.0F - var8) * 0.2D + 0.6D;
double var13 = (double) (var1.rand.nextFloat() * var8) + (double) (1.0F - var8) * 0.5D;
EntityItem var15 = new EntityItem(var1, (double) var2 + var9, (double) var3 + var11, (double) var4 + var13, new ItemStack(var6, 1, 0));
var15.delayBeforeCanPickup = 10;
var1.entityJoinedWorld(var15);
}
}
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
this.func_28035_b_(var1, var2, var3, var4);
super.onBlockRemoval(var1, var2, var3, var4);
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
this.func_28035_b_(var1, var2, var3, var4);
super.onBlockRemoval(var1, var2, var3, var4);
}
public void dropBlockAsItemWithChance(World var1, int var2, int var3, int var4, int var5, float var6) {
if(!var1.singleplayerWorld) {
super.dropBlockAsItemWithChance(var1, var2, var3, var4, var5, var6);
}
}
public void dropBlockAsItemWithChance(World var1, int var2, int var3, int var4, int var5, float var6) {
if (!var1.singleplayerWorld) {
super.dropBlockAsItemWithChance(var1, var2, var3, var4, var5, var6);
}
}
protected TileEntity getBlockEntity() {
return new TileEntityRecordPlayer();
}
protected TileEntity getBlockEntity() {
return new TileEntityRecordPlayer();
}
}

View file

@ -1,98 +1,99 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.math.AxisAlignedBB;
import net.minecraft.world.World;
import java.util.Random;
public class BlockLadder extends Block {
protected BlockLadder(int var1, int var2) {
super(var1, var2, Material.circuits);
}
protected BlockLadder(int var1, int var2) {
super(var1, var2, Material.circuits);
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
float var6 = 2.0F / 16.0F;
if(var5 == 2) {
this.setBlockBounds(0.0F, 0.0F, 1.0F - var6, 1.0F, 1.0F, 1.0F);
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
float var6 = 2.0F / 16.0F;
if (var5 == 2) {
this.setBlockBounds(0.0F, 0.0F, 1.0F - var6, 1.0F, 1.0F, 1.0F);
}
if(var5 == 3) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, var6);
}
if (var5 == 3) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, var6);
}
if(var5 == 4) {
this.setBlockBounds(1.0F - var6, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
}
if (var5 == 4) {
this.setBlockBounds(1.0F - var6, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
}
if(var5 == 5) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, var6, 1.0F, 1.0F);
}
if (var5 == 5) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, var6, 1.0F, 1.0F);
}
return super.getCollisionBoundingBoxFromPool(var1, var2, var3, var4);
}
return super.getCollisionBoundingBoxFromPool(var1, var2, var3, var4);
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return var1.isBlockNormalCube(var2 - 1, var3, var4) ? true : (var1.isBlockNormalCube(var2 + 1, var3, var4) ? true : (var1.isBlockNormalCube(var2, var3, var4 - 1) ? true : var1.isBlockNormalCube(var2, var3, var4 + 1)));
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return var1.isBlockNormalCube(var2 - 1, var3, var4) ? true : (var1.isBlockNormalCube(var2 + 1, var3, var4) ? true : (var1.isBlockNormalCube(var2, var3, var4 - 1) ? true : var1.isBlockNormalCube(var2, var3, var4 + 1)));
}
public void onBlockPlaced(World var1, int var2, int var3, int var4, int var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if((var6 == 0 || var5 == 2) && var1.isBlockNormalCube(var2, var3, var4 + 1)) {
var6 = 2;
}
public void onBlockPlaced(World var1, int var2, int var3, int var4, int var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if ((var6 == 0 || var5 == 2) && var1.isBlockNormalCube(var2, var3, var4 + 1)) {
var6 = 2;
}
if((var6 == 0 || var5 == 3) && var1.isBlockNormalCube(var2, var3, var4 - 1)) {
var6 = 3;
}
if ((var6 == 0 || var5 == 3) && var1.isBlockNormalCube(var2, var3, var4 - 1)) {
var6 = 3;
}
if((var6 == 0 || var5 == 4) && var1.isBlockNormalCube(var2 + 1, var3, var4)) {
var6 = 4;
}
if ((var6 == 0 || var5 == 4) && var1.isBlockNormalCube(var2 + 1, var3, var4)) {
var6 = 4;
}
if((var6 == 0 || var5 == 5) && var1.isBlockNormalCube(var2 - 1, var3, var4)) {
var6 = 5;
}
if ((var6 == 0 || var5 == 5) && var1.isBlockNormalCube(var2 - 1, var3, var4)) {
var6 = 5;
}
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
}
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
boolean var7 = false;
if(var6 == 2 && var1.isBlockNormalCube(var2, var3, var4 + 1)) {
var7 = true;
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
boolean var7 = false;
if (var6 == 2 && var1.isBlockNormalCube(var2, var3, var4 + 1)) {
var7 = true;
}
if(var6 == 3 && var1.isBlockNormalCube(var2, var3, var4 - 1)) {
var7 = true;
}
if (var6 == 3 && var1.isBlockNormalCube(var2, var3, var4 - 1)) {
var7 = true;
}
if(var6 == 4 && var1.isBlockNormalCube(var2 + 1, var3, var4)) {
var7 = true;
}
if (var6 == 4 && var1.isBlockNormalCube(var2 + 1, var3, var4)) {
var7 = true;
}
if(var6 == 5 && var1.isBlockNormalCube(var2 - 1, var3, var4)) {
var7 = true;
}
if (var6 == 5 && var1.isBlockNormalCube(var2 - 1, var3, var4)) {
var7 = true;
}
if(!var7) {
this.dropBlockAsItem(var1, var2, var3, var4, var6);
var1.setBlockWithNotify(var2, var3, var4, 0);
}
if (!var7) {
this.dropBlockAsItem(var1, var2, var3, var4, var6);
var1.setBlockWithNotify(var2, var3, var4, 0);
}
super.onNeighborBlockChange(var1, var2, var3, var4, var5);
}
super.onNeighborBlockChange(var1, var2, var3, var4, var5);
}
public int quantityDropped(Random var1) {
return 1;
}
public int quantityDropped(Random var1) {
return 1;
}
}

View file

@ -1,6 +1,5 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityPlayer;
@ -9,165 +8,167 @@ import net.minecraft.item.crafting.ItemStack;
import net.minecraft.statistics.StatList;
import net.minecraft.world.World;
import java.util.Random;
public class BlockLeaves extends BlockLeavesBase {
private int baseIndexInPNG;
int[] adjacentTreeBlocks;
private int baseIndexInPNG;
int[] adjacentTreeBlocks;
protected BlockLeaves(int var1, int var2) {
super(var1, var2, Material.leaves, false);
this.baseIndexInPNG = var2;
this.setTickOnLoad(true);
}
protected BlockLeaves(int var1, int var2) {
super(var1, var2, Material.leaves, false);
this.baseIndexInPNG = var2;
this.setTickOnLoad(true);
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
byte var5 = 1;
int var6 = var5 + 1;
if(var1.checkChunksExist(var2 - var6, var3 - var6, var4 - var6, var2 + var6, var3 + var6, var4 + var6)) {
for(int var7 = -var5; var7 <= var5; ++var7) {
for(int var8 = -var5; var8 <= var5; ++var8) {
for(int var9 = -var5; var9 <= var5; ++var9) {
int var10 = var1.getBlockId(var2 + var7, var3 + var8, var4 + var9);
if(var10 == Block.leaves.blockID) {
int var11 = var1.getBlockMetadata(var2 + var7, var3 + var8, var4 + var9);
var1.setBlockMetadata(var2 + var7, var3 + var8, var4 + var9, var11 | 8);
}
}
}
}
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
byte var5 = 1;
int var6 = var5 + 1;
if (var1.checkChunksExist(var2 - var6, var3 - var6, var4 - var6, var2 + var6, var3 + var6, var4 + var6)) {
for (int var7 = -var5; var7 <= var5; ++var7) {
for (int var8 = -var5; var8 <= var5; ++var8) {
for (int var9 = -var5; var9 <= var5; ++var9) {
int var10 = var1.getBlockId(var2 + var7, var3 + var8, var4 + var9);
if (var10 == Block.leaves.blockID) {
int var11 = var1.getBlockMetadata(var2 + var7, var3 + var8, var4 + var9);
var1.setBlockMetadata(var2 + var7, var3 + var8, var4 + var9, var11 | 8);
}
}
}
}
}
}
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if(!var1.singleplayerWorld) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if((var6 & 8) != 0) {
byte var7 = 4;
int var8 = var7 + 1;
byte var9 = 32;
int var10 = var9 * var9;
int var11 = var9 / 2;
if(this.adjacentTreeBlocks == null) {
this.adjacentTreeBlocks = new int[var9 * var9 * var9];
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if (!var1.singleplayerWorld) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if ((var6 & 8) != 0) {
byte var7 = 4;
int var8 = var7 + 1;
byte var9 = 32;
int var10 = var9 * var9;
int var11 = var9 / 2;
if (this.adjacentTreeBlocks == null) {
this.adjacentTreeBlocks = new int[var9 * var9 * var9];
}
int var12;
if(var1.checkChunksExist(var2 - var8, var3 - var8, var4 - var8, var2 + var8, var3 + var8, var4 + var8)) {
var12 = -var7;
int var12;
if (var1.checkChunksExist(var2 - var8, var3 - var8, var4 - var8, var2 + var8, var3 + var8, var4 + var8)) {
var12 = -var7;
label111:
while(true) {
int var13;
int var14;
int var15;
if(var12 > var7) {
var12 = 1;
label111:
while (true) {
int var13;
int var14;
int var15;
if (var12 > var7) {
var12 = 1;
while(true) {
if(var12 > 4) {
break label111;
}
while (true) {
if (var12 > 4) {
break label111;
}
for(var13 = -var7; var13 <= var7; ++var13) {
for(var14 = -var7; var14 <= var7; ++var14) {
for(var15 = -var7; var15 <= var7; ++var15) {
if(this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) {
if(this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) {
this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12;
}
for (var13 = -var7; var13 <= var7; ++var13) {
for (var14 = -var7; var14 <= var7; ++var14) {
for (var15 = -var7; var15 <= var7; ++var15) {
if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) {
if (this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) {
this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12;
}
if(this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) {
this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12;
}
if (this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) {
this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12;
}
if(this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) {
this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12;
}
if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) {
this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12;
}
if(this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) {
this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12;
}
if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) {
this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12;
}
if(this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) {
this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12;
}
if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) {
this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12;
}
if(this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) {
this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12;
}
}
}
}
}
if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) {
this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12;
}
}
}
}
}
++var12;
}
}
++var12;
}
}
for(var13 = -var7; var13 <= var7; ++var13) {
for(var14 = -var7; var14 <= var7; ++var14) {
var15 = var1.getBlockId(var2 + var12, var3 + var13, var4 + var14);
if(var15 == Block.wood.blockID) {
this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0;
} else if(var15 == Block.leaves.blockID) {
this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2;
} else {
this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1;
}
}
}
for (var13 = -var7; var13 <= var7; ++var13) {
for (var14 = -var7; var14 <= var7; ++var14) {
var15 = var1.getBlockId(var2 + var12, var3 + var13, var4 + var14);
if (var15 == Block.wood.blockID) {
this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0;
} else if (var15 == Block.leaves.blockID) {
this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2;
} else {
this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1;
}
}
}
++var12;
}
}
++var12;
}
}
var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11];
if(var12 >= 0) {
var1.setBlockMetadata(var2, var3, var4, var6 & -9);
} else {
this.removeLeaves(var1, var2, var3, var4);
}
}
var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11];
if (var12 >= 0) {
var1.setBlockMetadata(var2, var3, var4, var6 & -9);
} else {
this.removeLeaves(var1, var2, var3, var4);
}
}
}
}
}
}
private void removeLeaves(World var1, int var2, int var3, int var4) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
private void removeLeaves(World var1, int var2, int var3, int var4) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
public int quantityDropped(Random var1) {
return var1.nextInt(20) == 0 ? 1 : 0;
}
public int quantityDropped(Random var1) {
return var1.nextInt(20) == 0 ? 1 : 0;
}
public int idDropped(int var1, Random var2) {
return Block.sapling.blockID;
}
public int idDropped(int var1, Random var2) {
return Block.sapling.blockID;
}
public void harvestBlock(World var1, EntityPlayer var2, int var3, int var4, int var5, int var6) {
if(!var1.singleplayerWorld && var2.getCurrentEquippedItem() != null && var2.getCurrentEquippedItem().itemID == Item.field_31022_bc.shiftedIndex) {
var2.addStat(StatList.mineBlockStatArray[this.blockID], 1);
this.dropBlockAsItem_do(var1, var3, var4, var5, new ItemStack(Block.leaves.blockID, 1, var6 & 3));
} else {
super.harvestBlock(var1, var2, var3, var4, var5, var6);
}
public void harvestBlock(World var1, EntityPlayer var2, int var3, int var4, int var5, int var6) {
if (!var1.singleplayerWorld && var2.getCurrentEquippedItem() != null && var2.getCurrentEquippedItem().itemID == Item.field_31022_bc.shiftedIndex) {
var2.addStat(StatList.mineBlockStatArray[this.blockID], 1);
this.dropBlockAsItem_do(var1, var3, var4, var5, new ItemStack(Block.leaves.blockID, 1, var6 & 3));
} else {
super.harvestBlock(var1, var2, var3, var4, var5, var6);
}
}
}
protected int damageDropped(int var1) {
return var1 & 3;
}
protected int damageDropped(int var1) {
return var1 & 3;
}
public boolean isOpaqueCube() {
return !this.graphicsLevel;
}
public boolean isOpaqueCube() {
return !this.graphicsLevel;
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
return (var2 & 3) == 1 ? this.blockIndexInTexture + 80 : this.blockIndexInTexture;
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
return (var2 & 3) == 1 ? this.blockIndexInTexture + 80 : this.blockIndexInTexture;
}
public void onEntityWalking(World var1, int var2, int var3, int var4, Entity var5) {
super.onEntityWalking(var1, var2, var3, var4, var5);
}
public void onEntityWalking(World var1, int var2, int var3, int var4, Entity var5) {
super.onEntityWalking(var1, var2, var3, var4, var5);
}
}

View file

@ -3,14 +3,14 @@ package net.minecraft.block;
import net.minecraft.block.material.Material;
public class BlockLeavesBase extends Block {
protected boolean graphicsLevel;
protected boolean graphicsLevel;
protected BlockLeavesBase(int var1, int var2, Material var3, boolean var4) {
super(var1, var2, var3);
this.graphicsLevel = var4;
}
protected BlockLeavesBase(int var1, int var2, Material var3, boolean var4) {
super(var1, var2, var3);
this.graphicsLevel = var4;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
}

View file

@ -7,194 +7,194 @@ import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class BlockLever extends Block {
protected BlockLever(int var1, int var2) {
super(var1, var2, Material.circuits);
}
protected BlockLever(int var1, int var2) {
super(var1, var2, Material.circuits);
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean canPlaceBlockOnSide(World var1, int var2, int var3, int var4, int var5) {
return var5 == 1 && var1.isBlockNormalCube(var2, var3 - 1, var4) ? true : (var5 == 2 && var1.isBlockNormalCube(var2, var3, var4 + 1) ? true : (var5 == 3 && var1.isBlockNormalCube(var2, var3, var4 - 1) ? true : (var5 == 4 && var1.isBlockNormalCube(var2 + 1, var3, var4) ? true : var5 == 5 && var1.isBlockNormalCube(var2 - 1, var3, var4))));
}
public boolean canPlaceBlockOnSide(World var1, int var2, int var3, int var4, int var5) {
return var5 == 1 && var1.isBlockNormalCube(var2, var3 - 1, var4) ? true : (var5 == 2 && var1.isBlockNormalCube(var2, var3, var4 + 1) ? true : (var5 == 3 && var1.isBlockNormalCube(var2, var3, var4 - 1) ? true : (var5 == 4 && var1.isBlockNormalCube(var2 + 1, var3, var4) ? true : var5 == 5 && var1.isBlockNormalCube(var2 - 1, var3, var4))));
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return var1.isBlockNormalCube(var2 - 1, var3, var4) ? true : (var1.isBlockNormalCube(var2 + 1, var3, var4) ? true : (var1.isBlockNormalCube(var2, var3, var4 - 1) ? true : (var1.isBlockNormalCube(var2, var3, var4 + 1) ? true : var1.isBlockNormalCube(var2, var3 - 1, var4))));
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return var1.isBlockNormalCube(var2 - 1, var3, var4) ? true : (var1.isBlockNormalCube(var2 + 1, var3, var4) ? true : (var1.isBlockNormalCube(var2, var3, var4 - 1) ? true : (var1.isBlockNormalCube(var2, var3, var4 + 1) ? true : var1.isBlockNormalCube(var2, var3 - 1, var4))));
}
public void onBlockPlaced(World var1, int var2, int var3, int var4, int var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
int var7 = var6 & 8;
var6 &= 7;
var6 = -1;
if(var5 == 1 && var1.isBlockNormalCube(var2, var3 - 1, var4)) {
var6 = 5 + var1.rand.nextInt(2);
}
public void onBlockPlaced(World var1, int var2, int var3, int var4, int var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
int var7 = var6 & 8;
var6 &= 7;
var6 = -1;
if (var5 == 1 && var1.isBlockNormalCube(var2, var3 - 1, var4)) {
var6 = 5 + var1.rand.nextInt(2);
}
if(var5 == 2 && var1.isBlockNormalCube(var2, var3, var4 + 1)) {
var6 = 4;
}
if (var5 == 2 && var1.isBlockNormalCube(var2, var3, var4 + 1)) {
var6 = 4;
}
if(var5 == 3 && var1.isBlockNormalCube(var2, var3, var4 - 1)) {
var6 = 3;
}
if (var5 == 3 && var1.isBlockNormalCube(var2, var3, var4 - 1)) {
var6 = 3;
}
if(var5 == 4 && var1.isBlockNormalCube(var2 + 1, var3, var4)) {
var6 = 2;
}
if (var5 == 4 && var1.isBlockNormalCube(var2 + 1, var3, var4)) {
var6 = 2;
}
if(var5 == 5 && var1.isBlockNormalCube(var2 - 1, var3, var4)) {
var6 = 1;
}
if (var5 == 5 && var1.isBlockNormalCube(var2 - 1, var3, var4)) {
var6 = 1;
}
if(var6 == -1) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
} else {
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 + var7);
}
}
if (var6 == -1) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
} else {
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 + var7);
}
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if(this.checkIfAttachedToBlock(var1, var2, var3, var4)) {
int var6 = var1.getBlockMetadata(var2, var3, var4) & 7;
boolean var7 = false;
if(!var1.isBlockNormalCube(var2 - 1, var3, var4) && var6 == 1) {
var7 = true;
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if (this.checkIfAttachedToBlock(var1, var2, var3, var4)) {
int var6 = var1.getBlockMetadata(var2, var3, var4) & 7;
boolean var7 = false;
if (!var1.isBlockNormalCube(var2 - 1, var3, var4) && var6 == 1) {
var7 = true;
}
if(!var1.isBlockNormalCube(var2 + 1, var3, var4) && var6 == 2) {
var7 = true;
}
if (!var1.isBlockNormalCube(var2 + 1, var3, var4) && var6 == 2) {
var7 = true;
}
if(!var1.isBlockNormalCube(var2, var3, var4 - 1) && var6 == 3) {
var7 = true;
}
if (!var1.isBlockNormalCube(var2, var3, var4 - 1) && var6 == 3) {
var7 = true;
}
if(!var1.isBlockNormalCube(var2, var3, var4 + 1) && var6 == 4) {
var7 = true;
}
if (!var1.isBlockNormalCube(var2, var3, var4 + 1) && var6 == 4) {
var7 = true;
}
if(!var1.isBlockNormalCube(var2, var3 - 1, var4) && var6 == 5) {
var7 = true;
}
if (!var1.isBlockNormalCube(var2, var3 - 1, var4) && var6 == 5) {
var7 = true;
}
if(!var1.isBlockNormalCube(var2, var3 - 1, var4) && var6 == 6) {
var7 = true;
}
if (!var1.isBlockNormalCube(var2, var3 - 1, var4) && var6 == 6) {
var7 = true;
}
if(var7) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
if (var7) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
}
}
private boolean checkIfAttachedToBlock(World var1, int var2, int var3, int var4) {
if(!this.canPlaceBlockAt(var1, var2, var3, var4)) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
return false;
} else {
return true;
}
}
private boolean checkIfAttachedToBlock(World var1, int var2, int var3, int var4) {
if (!this.canPlaceBlockAt(var1, var2, var3, var4)) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
return false;
} else {
return true;
}
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4) & 7;
float var6 = 3.0F / 16.0F;
if(var5 == 1) {
this.setBlockBounds(0.0F, 0.2F, 0.5F - var6, var6 * 2.0F, 0.8F, 0.5F + var6);
} else if(var5 == 2) {
this.setBlockBounds(1.0F - var6 * 2.0F, 0.2F, 0.5F - var6, 1.0F, 0.8F, 0.5F + var6);
} else if(var5 == 3) {
this.setBlockBounds(0.5F - var6, 0.2F, 0.0F, 0.5F + var6, 0.8F, var6 * 2.0F);
} else if(var5 == 4) {
this.setBlockBounds(0.5F - var6, 0.2F, 1.0F - var6 * 2.0F, 0.5F + var6, 0.8F, 1.0F);
} else {
var6 = 0.25F;
this.setBlockBounds(0.5F - var6, 0.0F, 0.5F - var6, 0.5F + var6, 0.6F, 0.5F + var6);
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4) & 7;
float var6 = 3.0F / 16.0F;
if (var5 == 1) {
this.setBlockBounds(0.0F, 0.2F, 0.5F - var6, var6 * 2.0F, 0.8F, 0.5F + var6);
} else if (var5 == 2) {
this.setBlockBounds(1.0F - var6 * 2.0F, 0.2F, 0.5F - var6, 1.0F, 0.8F, 0.5F + var6);
} else if (var5 == 3) {
this.setBlockBounds(0.5F - var6, 0.2F, 0.0F, 0.5F + var6, 0.8F, var6 * 2.0F);
} else if (var5 == 4) {
this.setBlockBounds(0.5F - var6, 0.2F, 1.0F - var6 * 2.0F, 0.5F + var6, 0.8F, 1.0F);
} else {
var6 = 0.25F;
this.setBlockBounds(0.5F - var6, 0.0F, 0.5F - var6, 0.5F + var6, 0.6F, 0.5F + var6);
}
}
}
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
this.blockActivated(var1, var2, var3, var4, var5);
}
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
this.blockActivated(var1, var2, var3, var4, var5);
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if(var1.singleplayerWorld) {
return true;
} else {
int var6 = var1.getBlockMetadata(var2, var3, var4);
int var7 = var6 & 7;
int var8 = 8 - (var6 & 8);
var1.setBlockMetadataWithNotify(var2, var3, var4, var7 + var8);
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
var1.playSoundEffect((double)var2 + 0.5D, (double)var3 + 0.5D, (double)var4 + 0.5D, "random.click", 0.3F, var8 > 0 ? 0.6F : 0.5F);
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
if(var7 == 1) {
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
} else if(var7 == 2) {
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
} else if(var7 == 3) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
} else if(var7 == 4) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
} else {
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if (var1.singleplayerWorld) {
return true;
} else {
int var6 = var1.getBlockMetadata(var2, var3, var4);
int var7 = var6 & 7;
int var8 = 8 - (var6 & 8);
var1.setBlockMetadataWithNotify(var2, var3, var4, var7 + var8);
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
var1.playSoundEffect((double) var2 + 0.5D, (double) var3 + 0.5D, (double) var4 + 0.5D, "random.click", 0.3F, var8 > 0 ? 0.6F : 0.5F);
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
if (var7 == 1) {
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
} else if (var7 == 2) {
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
} else if (var7 == 3) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
} else if (var7 == 4) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
} else {
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
}
return true;
}
}
return true;
}
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
if((var5 & 8) > 0) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
int var6 = var5 & 7;
if(var6 == 1) {
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
} else if(var6 == 2) {
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
} else if(var6 == 3) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
} else if(var6 == 4) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
} else {
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
}
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
if ((var5 & 8) > 0) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
int var6 = var5 & 7;
if (var6 == 1) {
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
} else if (var6 == 2) {
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
} else if (var6 == 3) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
} else if (var6 == 4) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
} else {
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
}
}
super.onBlockRemoval(var1, var2, var3, var4);
}
super.onBlockRemoval(var1, var2, var3, var4);
}
public boolean isPoweringTo(IBlockAccess var1, int var2, int var3, int var4, int var5) {
return (var1.getBlockMetadata(var2, var3, var4) & 8) > 0;
}
public boolean isPoweringTo(IBlockAccess var1, int var2, int var3, int var4, int var5) {
return (var1.getBlockMetadata(var2, var3, var4) & 8) > 0;
}
public boolean isIndirectlyPoweringTo(World var1, int var2, int var3, int var4, int var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if((var6 & 8) == 0) {
return false;
} else {
int var7 = var6 & 7;
return var7 == 6 && var5 == 1 ? true : (var7 == 5 && var5 == 1 ? true : (var7 == 4 && var5 == 2 ? true : (var7 == 3 && var5 == 3 ? true : (var7 == 2 && var5 == 4 ? true : var7 == 1 && var5 == 5))));
}
}
public boolean isIndirectlyPoweringTo(World var1, int var2, int var3, int var4, int var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if ((var6 & 8) == 0) {
return false;
} else {
int var7 = var6 & 7;
return var7 == 6 && var5 == 1 ? true : (var7 == 5 && var5 == 1 ? true : (var7 == 4 && var5 == 2 ? true : (var7 == 3 && var5 == 3 ? true : (var7 == 2 && var5 == 4 ? true : var7 == 1 && var5 == 5))));
}
}
public boolean canProvidePower() {
return true;
}
public boolean canProvidePower() {
return true;
}
}

View file

@ -1,24 +1,25 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.world.World;
import java.util.Random;
public class BlockLockedChest extends Block {
protected BlockLockedChest(int var1) {
super(var1, Material.wood);
this.blockIndexInTexture = 26;
}
protected BlockLockedChest(int var1) {
super(var1, Material.wood);
this.blockIndexInTexture = 26;
}
public int getBlockTextureFromSide(int var1) {
return var1 == 1 ? this.blockIndexInTexture - 1 : (var1 == 0 ? this.blockIndexInTexture - 1 : (var1 == 3 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture));
}
public int getBlockTextureFromSide(int var1) {
return var1 == 1 ? this.blockIndexInTexture - 1 : (var1 == 0 ? this.blockIndexInTexture - 1 : (var1 == 3 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture));
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return true;
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return true;
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
var1.setBlockWithNotify(var2, var3, var4, 0);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}

View file

@ -1,54 +1,55 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityPlayer;
import net.minecraft.world.World;
import java.util.Random;
public class BlockLog extends Block {
protected BlockLog(int var1) {
super(var1, Material.wood);
this.blockIndexInTexture = 20;
}
protected BlockLog(int var1) {
super(var1, Material.wood);
this.blockIndexInTexture = 20;
}
public int quantityDropped(Random var1) {
return 1;
}
public int quantityDropped(Random var1) {
return 1;
}
public int idDropped(int var1, Random var2) {
return Block.wood.blockID;
}
public int idDropped(int var1, Random var2) {
return Block.wood.blockID;
}
public void harvestBlock(World var1, EntityPlayer var2, int var3, int var4, int var5, int var6) {
super.harvestBlock(var1, var2, var3, var4, var5, var6);
}
public void harvestBlock(World var1, EntityPlayer var2, int var3, int var4, int var5, int var6) {
super.harvestBlock(var1, var2, var3, var4, var5, var6);
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
byte var5 = 4;
int var6 = var5 + 1;
if(var1.checkChunksExist(var2 - var6, var3 - var6, var4 - var6, var2 + var6, var3 + var6, var4 + var6)) {
for(int var7 = -var5; var7 <= var5; ++var7) {
for(int var8 = -var5; var8 <= var5; ++var8) {
for(int var9 = -var5; var9 <= var5; ++var9) {
int var10 = var1.getBlockId(var2 + var7, var3 + var8, var4 + var9);
if(var10 == Block.leaves.blockID) {
int var11 = var1.getBlockMetadata(var2 + var7, var3 + var8, var4 + var9);
if((var11 & 8) == 0) {
var1.setBlockMetadata(var2 + var7, var3 + var8, var4 + var9, var11 | 8);
}
}
}
}
}
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
byte var5 = 4;
int var6 = var5 + 1;
if (var1.checkChunksExist(var2 - var6, var3 - var6, var4 - var6, var2 + var6, var3 + var6, var4 + var6)) {
for (int var7 = -var5; var7 <= var5; ++var7) {
for (int var8 = -var5; var8 <= var5; ++var8) {
for (int var9 = -var5; var9 <= var5; ++var9) {
int var10 = var1.getBlockId(var2 + var7, var3 + var8, var4 + var9);
if (var10 == Block.leaves.blockID) {
int var11 = var1.getBlockMetadata(var2 + var7, var3 + var8, var4 + var9);
if ((var11 & 8) == 0) {
var1.setBlockMetadata(var2 + var7, var3 + var8, var4 + var9, var11 | 8);
}
}
}
}
}
}
}
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
return var1 == 1 ? 21 : (var1 == 0 ? 21 : (var2 == 1 ? 116 : (var2 == 2 ? 117 : 20)));
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
return var1 == 1 ? 21 : (var1 == 0 ? 21 : (var2 == 1 ? 116 : (var2 == 2 ? 117 : 20)));
}
protected int damageDropped(int var1) {
return var1;
}
protected int damageDropped(int var1) {
return var1;
}
}

View file

@ -1,28 +1,29 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.block.tile.TileEntity;
import net.minecraft.block.tile.TileEntityMobSpawner;
import java.util.Random;
public class BlockMobSpawner extends BlockContainer {
protected BlockMobSpawner(int var1, int var2) {
super(var1, var2, Material.rock);
}
protected BlockMobSpawner(int var1, int var2) {
super(var1, var2, Material.rock);
}
protected TileEntity getBlockEntity() {
return new TileEntityMobSpawner();
}
protected TileEntity getBlockEntity() {
return new TileEntityMobSpawner();
}
public int idDropped(int var1, Random var2) {
return 0;
}
public int idDropped(int var1, Random var2) {
return 0;
}
public int quantityDropped(Random var1) {
return 0;
}
public int quantityDropped(Random var1) {
return 0;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
}

View file

@ -1,37 +1,38 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.world.World;
import java.util.Random;
public class BlockMushroom extends BlockFlower {
protected BlockMushroom(int var1, int var2) {
super(var1, var2);
float var3 = 0.2F;
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3);
this.setTickOnLoad(true);
}
protected BlockMushroom(int var1, int var2) {
super(var1, var2);
float var3 = 0.2F;
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3);
this.setTickOnLoad(true);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if(var5.nextInt(100) == 0) {
int var6 = var2 + var5.nextInt(3) - 1;
int var7 = var3 + var5.nextInt(2) - var5.nextInt(2);
int var8 = var4 + var5.nextInt(3) - 1;
if(var1.isAirBlock(var6, var7, var8) && this.canBlockStay(var1, var6, var7, var8)) {
int var10000 = var2 + (var5.nextInt(3) - 1);
var10000 = var4 + (var5.nextInt(3) - 1);
if(var1.isAirBlock(var6, var7, var8) && this.canBlockStay(var1, var6, var7, var8)) {
var1.setBlockWithNotify(var6, var7, var8, this.blockID);
}
}
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if (var5.nextInt(100) == 0) {
int var6 = var2 + var5.nextInt(3) - 1;
int var7 = var3 + var5.nextInt(2) - var5.nextInt(2);
int var8 = var4 + var5.nextInt(3) - 1;
if (var1.isAirBlock(var6, var7, var8) && this.canBlockStay(var1, var6, var7, var8)) {
int var10000 = var2 + (var5.nextInt(3) - 1);
var10000 = var4 + (var5.nextInt(3) - 1);
if (var1.isAirBlock(var6, var7, var8) && this.canBlockStay(var1, var6, var7, var8)) {
var1.setBlockWithNotify(var6, var7, var8, this.blockID);
}
}
}
}
}
protected boolean canThisPlantGrowOnThisBlockID(int var1) {
return Block.opaqueCubeLookup[var1];
}
protected boolean canThisPlantGrowOnThisBlockID(int var1) {
return Block.opaqueCubeLookup[var1];
}
public boolean canBlockStay(World var1, int var2, int var3, int var4) {
return var3 >= 0 && var3 < 128 ? var1.getBlockLightValueNoChecks(var2, var3, var4) < 13 && this.canThisPlantGrowOnThisBlockID(var1.getBlockId(var2, var3 - 1, var4)) : false;
}
public boolean canBlockStay(World var1, int var2, int var3, int var4) {
return var3 >= 0 && var3 < 128 ? var1.getBlockLightValueNoChecks(var2, var3, var4) < 13 && this.canThisPlantGrowOnThisBlockID(var1.getBlockId(var2, var3 - 1, var4)) : false;
}
}

View file

@ -3,7 +3,7 @@ package net.minecraft.block;
import net.minecraft.block.material.Material;
public class BlockNetherrack extends Block {
public BlockNetherrack(int var1, int var2) {
super(var1, var2, Material.rock);
}
public BlockNetherrack(int var1, int var2) {
super(var1, var2, Material.rock);
}
}

View file

@ -7,71 +7,71 @@ import net.minecraft.entity.EntityPlayer;
import net.minecraft.world.World;
public class BlockNote extends BlockContainer {
public BlockNote(int var1) {
super(var1, 74, Material.wood);
}
public BlockNote(int var1) {
super(var1, 74, Material.wood);
}
public int getBlockTextureFromSide(int var1) {
return this.blockIndexInTexture;
}
public int getBlockTextureFromSide(int var1) {
return this.blockIndexInTexture;
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if(var5 > 0 && Block.blocksList[var5].canProvidePower()) {
boolean var6 = var1.isBlockGettingPowered(var2, var3, var4);
TileEntityNote var7 = (TileEntityNote)var1.getBlockTileEntity(var2, var3, var4);
if(var7.previousRedstoneState != var6) {
if(var6) {
var7.triggerNote(var1, var2, var3, var4);
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if (var5 > 0 && Block.blocksList[var5].canProvidePower()) {
boolean var6 = var1.isBlockGettingPowered(var2, var3, var4);
TileEntityNote var7 = (TileEntityNote) var1.getBlockTileEntity(var2, var3, var4);
if (var7.previousRedstoneState != var6) {
if (var6) {
var7.triggerNote(var1, var2, var3, var4);
}
var7.previousRedstoneState = var6;
}
}
var7.previousRedstoneState = var6;
}
}
}
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if(var1.singleplayerWorld) {
return true;
} else {
TileEntityNote var6 = (TileEntityNote)var1.getBlockTileEntity(var2, var3, var4);
var6.changePitch();
var6.triggerNote(var1, var2, var3, var4);
return true;
}
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if (var1.singleplayerWorld) {
return true;
} else {
TileEntityNote var6 = (TileEntityNote) var1.getBlockTileEntity(var2, var3, var4);
var6.changePitch();
var6.triggerNote(var1, var2, var3, var4);
return true;
}
}
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if(!var1.singleplayerWorld) {
TileEntityNote var6 = (TileEntityNote)var1.getBlockTileEntity(var2, var3, var4);
var6.triggerNote(var1, var2, var3, var4);
}
}
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if (!var1.singleplayerWorld) {
TileEntityNote var6 = (TileEntityNote) var1.getBlockTileEntity(var2, var3, var4);
var6.triggerNote(var1, var2, var3, var4);
}
}
protected TileEntity getBlockEntity() {
return new TileEntityNote();
}
protected TileEntity getBlockEntity() {
return new TileEntityNote();
}
public void playBlock(World var1, int var2, int var3, int var4, int var5, int var6) {
float var7 = (float)Math.pow(2.0D, (double)(var6 - 12) / 12.0D);
String var8 = "harp";
if(var5 == 1) {
var8 = "bd";
}
public void playBlock(World var1, int var2, int var3, int var4, int var5, int var6) {
float var7 = (float) Math.pow(2.0D, (double) (var6 - 12) / 12.0D);
String var8 = "harp";
if (var5 == 1) {
var8 = "bd";
}
if(var5 == 2) {
var8 = "snare";
}
if (var5 == 2) {
var8 = "snare";
}
if(var5 == 3) {
var8 = "hat";
}
if (var5 == 3) {
var8 = "hat";
}
if(var5 == 4) {
var8 = "bassattack";
}
if (var5 == 4) {
var8 = "bassattack";
}
var1.playSoundEffect((double)var2 + 0.5D, (double)var3 + 0.5D, (double)var4 + 0.5D, "note." + var8, 3.0F, var7);
var1.spawnParticle("note", (double)var2 + 0.5D, (double)var3 + 1.2D, (double)var4 + 0.5D, (double)var6 / 24.0D, 0.0D, 0.0D);
}
var1.playSoundEffect((double) var2 + 0.5D, (double) var3 + 0.5D, (double) var4 + 0.5D, "note." + var8, 3.0F, var7);
var1.spawnParticle("note", (double) var2 + 0.5D, (double) var3 + 1.2D, (double) var4 + 0.5D, (double) var6 / 24.0D, 0.0D, 0.0D);
}
}

View file

@ -3,15 +3,15 @@ package net.minecraft.block;
import java.util.Random;
public class BlockObsidian extends BlockStone {
public BlockObsidian(int var1, int var2) {
super(var1, var2);
}
public BlockObsidian(int var1, int var2) {
super(var1, var2);
}
public int quantityDropped(Random var1) {
return 1;
}
public int quantityDropped(Random var1) {
return 1;
}
public int idDropped(int var1, Random var2) {
return Block.obsidian.blockID;
}
public int idDropped(int var1, Random var2) {
return Block.obsidian.blockID;
}
}

View file

@ -1,23 +1,24 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.item.Item;
import java.util.Random;
public class BlockOre extends Block {
public BlockOre(int var1, int var2) {
super(var1, var2, Material.rock);
}
public BlockOre(int var1, int var2) {
super(var1, var2, Material.rock);
}
public int idDropped(int var1, Random var2) {
return this.blockID == Block.oreCoal.blockID ? Item.coal.shiftedIndex : (this.blockID == Block.oreDiamond.blockID ? Item.diamond.shiftedIndex : (this.blockID == Block.oreLapis.blockID ? Item.dyePowder.shiftedIndex : this.blockID));
}
public int idDropped(int var1, Random var2) {
return this.blockID == Block.oreCoal.blockID ? Item.coal.shiftedIndex : (this.blockID == Block.oreDiamond.blockID ? Item.diamond.shiftedIndex : (this.blockID == Block.oreLapis.blockID ? Item.dyePowder.shiftedIndex : this.blockID));
}
public int quantityDropped(Random var1) {
return this.blockID == Block.oreLapis.blockID ? 4 + var1.nextInt(5) : 1;
}
public int quantityDropped(Random var1) {
return this.blockID == Block.oreLapis.blockID ? 4 + var1.nextInt(5) : 1;
}
protected int damageDropped(int var1) {
return this.blockID == Block.oreLapis.blockID ? 4 : 0;
}
protected int damageDropped(int var1) {
return this.blockID == Block.oreLapis.blockID ? 4 : 0;
}
}

View file

@ -3,12 +3,12 @@ package net.minecraft.block;
import net.minecraft.block.material.Material;
public class BlockOreStorage extends Block {
public BlockOreStorage(int var1, int var2) {
super(var1, Material.iron);
this.blockIndexInTexture = var2;
}
public BlockOreStorage(int var1, int var2) {
super(var1, Material.iron);
this.blockIndexInTexture = var2;
}
public int getBlockTextureFromSide(int var1) {
return this.blockIndexInTexture;
}
public int getBlockTextureFromSide(int var1) {
return this.blockIndexInTexture;
}
}

View file

@ -1,6 +1,5 @@
package net.minecraft.block;
import java.util.ArrayList;
import net.minecraft.block.material.Material;
import net.minecraft.block.tile.TileEntity;
import net.minecraft.block.tile.TileEntityPiston;
@ -12,316 +11,318 @@ import net.minecraft.util.PistonBlockTextures;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import java.util.ArrayList;
public class BlockPistonBase extends Block {
private boolean isSticky;
private boolean ignoreUpdates;
private boolean isSticky;
private boolean ignoreUpdates;
public BlockPistonBase(int var1, int var2, boolean var3) {
super(var1, var2, Material.piston);
this.isSticky = var3;
this.setStepSound(soundStoneFootstep);
this.setHardness(0.5F);
}
public BlockPistonBase(int var1, int var2, boolean var3) {
super(var1, var2, Material.piston);
this.isSticky = var3;
this.setStepSound(soundStoneFootstep);
this.setHardness(0.5F);
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
int var3 = getOrientation(var2);
return var3 > 5 ? this.blockIndexInTexture : (var1 == var3 ? (!isExtended(var2) && this.minX <= 0.0D && this.minY <= 0.0D && this.minZ <= 0.0D && this.maxX >= 1.0D && this.maxY >= 1.0D && this.maxZ >= 1.0D ? this.blockIndexInTexture : 110) : (var1 == PistonBlockTextures.field_31052_a[var3] ? 109 : 108));
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
int var3 = getOrientation(var2);
return var3 > 5 ? this.blockIndexInTexture : (var1 == var3 ? (!isExtended(var2) && this.minX <= 0.0D && this.minY <= 0.0D && this.minZ <= 0.0D && this.maxX >= 1.0D && this.maxY >= 1.0D && this.maxZ >= 1.0D ? this.blockIndexInTexture : 110) : (var1 == PistonBlockTextures.field_31052_a[var3] ? 109 : 108));
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
return false;
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
return false;
}
public void onBlockPlacedBy(World var1, int var2, int var3, int var4, EntityLiving var5) {
int var6 = determineOrientation(var1, var2, var3, var4, (EntityPlayer)var5);
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
if(!var1.singleplayerWorld) {
this.updatePistonState(var1, var2, var3, var4);
}
public void onBlockPlacedBy(World var1, int var2, int var3, int var4, EntityLiving var5) {
int var6 = determineOrientation(var1, var2, var3, var4, (EntityPlayer) var5);
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
if (!var1.singleplayerWorld) {
this.updatePistonState(var1, var2, var3, var4);
}
}
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if(!var1.singleplayerWorld && !this.ignoreUpdates) {
this.updatePistonState(var1, var2, var3, var4);
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if (!var1.singleplayerWorld && !this.ignoreUpdates) {
this.updatePistonState(var1, var2, var3, var4);
}
}
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
if(!var1.singleplayerWorld && var1.getBlockTileEntity(var2, var3, var4) == null) {
this.updatePistonState(var1, var2, var3, var4);
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
if (!var1.singleplayerWorld && var1.getBlockTileEntity(var2, var3, var4) == null) {
this.updatePistonState(var1, var2, var3, var4);
}
}
}
private void updatePistonState(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
int var6 = getOrientation(var5);
boolean var7 = this.isPowered(var1, var2, var3, var4, var6);
if(var5 != 7) {
if(var7 && !isExtended(var5)) {
if(canExtend(var1, var2, var3, var4, var6)) {
var1.setBlockMetadata(var2, var3, var4, var6 | 8);
var1.playNoteAt(var2, var3, var4, 0, var6);
}
} else if(!var7 && isExtended(var5)) {
var1.setBlockMetadata(var2, var3, var4, var6);
var1.playNoteAt(var2, var3, var4, 1, var6);
}
private void updatePistonState(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
int var6 = getOrientation(var5);
boolean var7 = this.isPowered(var1, var2, var3, var4, var6);
if (var5 != 7) {
if (var7 && !isExtended(var5)) {
if (canExtend(var1, var2, var3, var4, var6)) {
var1.setBlockMetadata(var2, var3, var4, var6 | 8);
var1.playNoteAt(var2, var3, var4, 0, var6);
}
} else if (!var7 && isExtended(var5)) {
var1.setBlockMetadata(var2, var3, var4, var6);
var1.playNoteAt(var2, var3, var4, 1, var6);
}
}
}
}
}
private boolean isPowered(World var1, int var2, int var3, int var4, int var5) {
return var5 != 0 && var1.isBlockIndirectlyProvidingPowerTo(var2, var3 - 1, var4, 0) ? true : (var5 != 1 && var1.isBlockIndirectlyProvidingPowerTo(var2, var3 + 1, var4, 1) ? true : (var5 != 2 && var1.isBlockIndirectlyProvidingPowerTo(var2, var3, var4 - 1, 2) ? true : (var5 != 3 && var1.isBlockIndirectlyProvidingPowerTo(var2, var3, var4 + 1, 3) ? true : (var5 != 5 && var1.isBlockIndirectlyProvidingPowerTo(var2 + 1, var3, var4, 5) ? true : (var5 != 4 && var1.isBlockIndirectlyProvidingPowerTo(var2 - 1, var3, var4, 4) ? true : (var1.isBlockIndirectlyProvidingPowerTo(var2, var3, var4, 0) ? true : (var1.isBlockIndirectlyProvidingPowerTo(var2, var3 + 2, var4, 1) ? true : (var1.isBlockIndirectlyProvidingPowerTo(var2, var3 + 1, var4 - 1, 2) ? true : (var1.isBlockIndirectlyProvidingPowerTo(var2, var3 + 1, var4 + 1, 3) ? true : (var1.isBlockIndirectlyProvidingPowerTo(var2 - 1, var3 + 1, var4, 4) ? true : var1.isBlockIndirectlyProvidingPowerTo(var2 + 1, var3 + 1, var4, 5)))))))))));
}
private boolean isPowered(World var1, int var2, int var3, int var4, int var5) {
return var5 != 0 && var1.isBlockIndirectlyProvidingPowerTo(var2, var3 - 1, var4, 0) ? true : (var5 != 1 && var1.isBlockIndirectlyProvidingPowerTo(var2, var3 + 1, var4, 1) ? true : (var5 != 2 && var1.isBlockIndirectlyProvidingPowerTo(var2, var3, var4 - 1, 2) ? true : (var5 != 3 && var1.isBlockIndirectlyProvidingPowerTo(var2, var3, var4 + 1, 3) ? true : (var5 != 5 && var1.isBlockIndirectlyProvidingPowerTo(var2 + 1, var3, var4, 5) ? true : (var5 != 4 && var1.isBlockIndirectlyProvidingPowerTo(var2 - 1, var3, var4, 4) ? true : (var1.isBlockIndirectlyProvidingPowerTo(var2, var3, var4, 0) ? true : (var1.isBlockIndirectlyProvidingPowerTo(var2, var3 + 2, var4, 1) ? true : (var1.isBlockIndirectlyProvidingPowerTo(var2, var3 + 1, var4 - 1, 2) ? true : (var1.isBlockIndirectlyProvidingPowerTo(var2, var3 + 1, var4 + 1, 3) ? true : (var1.isBlockIndirectlyProvidingPowerTo(var2 - 1, var3 + 1, var4, 4) ? true : var1.isBlockIndirectlyProvidingPowerTo(var2 + 1, var3 + 1, var4, 5)))))))))));
}
public void playBlock(World var1, int var2, int var3, int var4, int var5, int var6) {
this.ignoreUpdates = true;
if(var5 == 0) {
if(this.tryExtend(var1, var2, var3, var4, var6)) {
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 | 8);
var1.playSoundEffect((double)var2 + 0.5D, (double)var3 + 0.5D, (double)var4 + 0.5D, "tile.piston.out", 0.5F, var1.rand.nextFloat() * 0.25F + 0.6F);
}
} else if(var5 == 1) {
TileEntity var8 = var1.getBlockTileEntity(var2 + PistonBlockTextures.field_31051_b[var6], var3 + PistonBlockTextures.field_31054_c[var6], var4 + PistonBlockTextures.field_31053_d[var6]);
if(var8 != null && var8 instanceof TileEntityPiston) {
((TileEntityPiston)var8).clearPistonTileEntity();
}
public void playBlock(World var1, int var2, int var3, int var4, int var5, int var6) {
this.ignoreUpdates = true;
if (var5 == 0) {
if (this.tryExtend(var1, var2, var3, var4, var6)) {
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 | 8);
var1.playSoundEffect((double) var2 + 0.5D, (double) var3 + 0.5D, (double) var4 + 0.5D, "tile.piston.out", 0.5F, var1.rand.nextFloat() * 0.25F + 0.6F);
}
} else if (var5 == 1) {
TileEntity var8 = var1.getBlockTileEntity(var2 + PistonBlockTextures.field_31051_b[var6], var3 + PistonBlockTextures.field_31054_c[var6], var4 + PistonBlockTextures.field_31053_d[var6]);
if (var8 != null && var8 instanceof TileEntityPiston) {
((TileEntityPiston) var8).clearPistonTileEntity();
}
var1.setBlockAndMetadata(var2, var3, var4, Block.pistonMoving.blockID, var6);
var1.setBlockTileEntity(var2, var3, var4, BlockPistonMoving.getTileEntity(this.blockID, var6, var6, false, true));
if(this.isSticky) {
int var9 = var2 + PistonBlockTextures.field_31051_b[var6] * 2;
int var10 = var3 + PistonBlockTextures.field_31054_c[var6] * 2;
int var11 = var4 + PistonBlockTextures.field_31053_d[var6] * 2;
int var12 = var1.getBlockId(var9, var10, var11);
int var13 = var1.getBlockMetadata(var9, var10, var11);
boolean var14 = false;
if(var12 == Block.pistonMoving.blockID) {
TileEntity var15 = var1.getBlockTileEntity(var9, var10, var11);
if(var15 != null && var15 instanceof TileEntityPiston) {
TileEntityPiston var16 = (TileEntityPiston)var15;
if(var16.func_31008_d() == var6 && var16.func_31010_c()) {
var16.clearPistonTileEntity();
var12 = var16.getStoredBlockID();
var13 = var16.func_31005_e();
var14 = true;
}
}
}
var1.setBlockAndMetadata(var2, var3, var4, Block.pistonMoving.blockID, var6);
var1.setBlockTileEntity(var2, var3, var4, BlockPistonMoving.getTileEntity(this.blockID, var6, var6, false, true));
if (this.isSticky) {
int var9 = var2 + PistonBlockTextures.field_31051_b[var6] * 2;
int var10 = var3 + PistonBlockTextures.field_31054_c[var6] * 2;
int var11 = var4 + PistonBlockTextures.field_31053_d[var6] * 2;
int var12 = var1.getBlockId(var9, var10, var11);
int var13 = var1.getBlockMetadata(var9, var10, var11);
boolean var14 = false;
if (var12 == Block.pistonMoving.blockID) {
TileEntity var15 = var1.getBlockTileEntity(var9, var10, var11);
if (var15 != null && var15 instanceof TileEntityPiston) {
TileEntityPiston var16 = (TileEntityPiston) var15;
if (var16.func_31008_d() == var6 && var16.func_31010_c()) {
var16.clearPistonTileEntity();
var12 = var16.getStoredBlockID();
var13 = var16.func_31005_e();
var14 = true;
}
}
}
if(var14 || var12 <= 0 || !canPushBlock(var12, var1, var9, var10, var11, false) || Block.blocksList[var12].getMobilityFlag() != 0 && var12 != Block.pistonBase.blockID && var12 != Block.pistonStickyBase.blockID) {
if(!var14) {
this.ignoreUpdates = false;
var1.setBlockWithNotify(var2 + PistonBlockTextures.field_31051_b[var6], var3 + PistonBlockTextures.field_31054_c[var6], var4 + PistonBlockTextures.field_31053_d[var6], 0);
this.ignoreUpdates = true;
}
} else {
this.ignoreUpdates = false;
var1.setBlockWithNotify(var9, var10, var11, 0);
this.ignoreUpdates = true;
var2 += PistonBlockTextures.field_31051_b[var6];
var3 += PistonBlockTextures.field_31054_c[var6];
var4 += PistonBlockTextures.field_31053_d[var6];
var1.setBlockAndMetadata(var2, var3, var4, Block.pistonMoving.blockID, var13);
var1.setBlockTileEntity(var2, var3, var4, BlockPistonMoving.getTileEntity(var12, var13, var6, false, false));
}
} else {
this.ignoreUpdates = false;
var1.setBlockWithNotify(var2 + PistonBlockTextures.field_31051_b[var6], var3 + PistonBlockTextures.field_31054_c[var6], var4 + PistonBlockTextures.field_31053_d[var6], 0);
this.ignoreUpdates = true;
}
if (var14 || var12 <= 0 || !canPushBlock(var12, var1, var9, var10, var11, false) || Block.blocksList[var12].getMobilityFlag() != 0 && var12 != Block.pistonBase.blockID && var12 != Block.pistonStickyBase.blockID) {
if (!var14) {
this.ignoreUpdates = false;
var1.setBlockWithNotify(var2 + PistonBlockTextures.field_31051_b[var6], var3 + PistonBlockTextures.field_31054_c[var6], var4 + PistonBlockTextures.field_31053_d[var6], 0);
this.ignoreUpdates = true;
}
} else {
this.ignoreUpdates = false;
var1.setBlockWithNotify(var9, var10, var11, 0);
this.ignoreUpdates = true;
var2 += PistonBlockTextures.field_31051_b[var6];
var3 += PistonBlockTextures.field_31054_c[var6];
var4 += PistonBlockTextures.field_31053_d[var6];
var1.setBlockAndMetadata(var2, var3, var4, Block.pistonMoving.blockID, var13);
var1.setBlockTileEntity(var2, var3, var4, BlockPistonMoving.getTileEntity(var12, var13, var6, false, false));
}
} else {
this.ignoreUpdates = false;
var1.setBlockWithNotify(var2 + PistonBlockTextures.field_31051_b[var6], var3 + PistonBlockTextures.field_31054_c[var6], var4 + PistonBlockTextures.field_31053_d[var6], 0);
this.ignoreUpdates = true;
}
var1.playSoundEffect((double)var2 + 0.5D, (double)var3 + 0.5D, (double)var4 + 0.5D, "tile.piston.in", 0.5F, var1.rand.nextFloat() * 0.15F + 0.6F);
}
var1.playSoundEffect((double) var2 + 0.5D, (double) var3 + 0.5D, (double) var4 + 0.5D, "tile.piston.in", 0.5F, var1.rand.nextFloat() * 0.15F + 0.6F);
}
this.ignoreUpdates = false;
}
this.ignoreUpdates = false;
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
if(isExtended(var5)) {
switch(getOrientation(var5)) {
case 0:
this.setBlockBounds(0.0F, 0.25F, 0.0F, 1.0F, 1.0F, 1.0F);
break;
case 1:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 12.0F / 16.0F, 1.0F);
break;
case 2:
this.setBlockBounds(0.0F, 0.0F, 0.25F, 1.0F, 1.0F, 1.0F);
break;
case 3:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 12.0F / 16.0F);
break;
case 4:
this.setBlockBounds(0.25F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
break;
case 5:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 12.0F / 16.0F, 1.0F, 1.0F);
}
} else {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
if (isExtended(var5)) {
switch (getOrientation(var5)) {
case 0:
this.setBlockBounds(0.0F, 0.25F, 0.0F, 1.0F, 1.0F, 1.0F);
break;
case 1:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 12.0F / 16.0F, 1.0F);
break;
case 2:
this.setBlockBounds(0.0F, 0.0F, 0.25F, 1.0F, 1.0F, 1.0F);
break;
case 3:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 12.0F / 16.0F);
break;
case 4:
this.setBlockBounds(0.25F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
break;
case 5:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 12.0F / 16.0F, 1.0F, 1.0F);
}
} else {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
}
}
}
public void getCollidingBoundingBoxes(World var1, int var2, int var3, int var4, AxisAlignedBB var5, ArrayList var6) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
}
public void getCollidingBoundingBoxes(World var1, int var2, int var3, int var4, AxisAlignedBB var5, ArrayList var6) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public static int getOrientation(int var0) {
return var0 & 7;
}
public static int getOrientation(int var0) {
return var0 & 7;
}
public static boolean isExtended(int var0) {
return (var0 & 8) != 0;
}
public static boolean isExtended(int var0) {
return (var0 & 8) != 0;
}
private static int determineOrientation(World var0, int var1, int var2, int var3, EntityPlayer var4) {
if(MathHelper.abs((float)var4.posX - (float)var1) < 2.0F && MathHelper.abs((float)var4.posZ - (float)var3) < 2.0F) {
double var5 = var4.posY + 1.82D - (double)var4.yOffset;
if(var5 - (double)var2 > 2.0D) {
return 1;
}
private static int determineOrientation(World var0, int var1, int var2, int var3, EntityPlayer var4) {
if (MathHelper.abs((float) var4.posX - (float) var1) < 2.0F && MathHelper.abs((float) var4.posZ - (float) var3) < 2.0F) {
double var5 = var4.posY + 1.82D - (double) var4.yOffset;
if (var5 - (double) var2 > 2.0D) {
return 1;
}
if((double)var2 - var5 > 0.0D) {
return 0;
}
}
if ((double) var2 - var5 > 0.0D) {
return 0;
}
}
int var7 = MathHelper.floor_double((double)(var4.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
return var7 == 0 ? 2 : (var7 == 1 ? 5 : (var7 == 2 ? 3 : (var7 == 3 ? 4 : 0)));
}
int var7 = MathHelper.floor_double((double) (var4.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
return var7 == 0 ? 2 : (var7 == 1 ? 5 : (var7 == 2 ? 3 : (var7 == 3 ? 4 : 0)));
}
private static boolean canPushBlock(int var0, World var1, int var2, int var3, int var4, boolean var5) {
if(var0 == Block.obsidian.blockID) {
return false;
} else {
if(var0 != Block.pistonBase.blockID && var0 != Block.pistonStickyBase.blockID) {
if(Block.blocksList[var0].getHardness() == -1.0F) {
return false;
}
private static boolean canPushBlock(int var0, World var1, int var2, int var3, int var4, boolean var5) {
if (var0 == Block.obsidian.blockID) {
return false;
} else {
if (var0 != Block.pistonBase.blockID && var0 != Block.pistonStickyBase.blockID) {
if (Block.blocksList[var0].getHardness() == -1.0F) {
return false;
}
if(Block.blocksList[var0].getMobilityFlag() == 2) {
return false;
}
if (Block.blocksList[var0].getMobilityFlag() == 2) {
return false;
}
if(!var5 && Block.blocksList[var0].getMobilityFlag() == 1) {
return false;
}
} else if(isExtended(var1.getBlockMetadata(var2, var3, var4))) {
return false;
}
if (!var5 && Block.blocksList[var0].getMobilityFlag() == 1) {
return false;
}
} else if (isExtended(var1.getBlockMetadata(var2, var3, var4))) {
return false;
}
TileEntity var6 = var1.getBlockTileEntity(var2, var3, var4);
return var6 == null;
}
}
TileEntity var6 = var1.getBlockTileEntity(var2, var3, var4);
return var6 == null;
}
}
private static boolean canExtend(World var0, int var1, int var2, int var3, int var4) {
int var5 = var1 + PistonBlockTextures.field_31051_b[var4];
int var6 = var2 + PistonBlockTextures.field_31054_c[var4];
int var7 = var3 + PistonBlockTextures.field_31053_d[var4];
int var8 = 0;
private static boolean canExtend(World var0, int var1, int var2, int var3, int var4) {
int var5 = var1 + PistonBlockTextures.field_31051_b[var4];
int var6 = var2 + PistonBlockTextures.field_31054_c[var4];
int var7 = var3 + PistonBlockTextures.field_31053_d[var4];
int var8 = 0;
while(true) {
if(var8 < 13) {
if(var6 <= 0 || var6 >= 127) {
return false;
}
while (true) {
if (var8 < 13) {
if (var6 <= 0 || var6 >= 127) {
return false;
}
int var9 = var0.getBlockId(var5, var6, var7);
if(var9 != 0) {
if(!canPushBlock(var9, var0, var5, var6, var7, true)) {
return false;
}
int var9 = var0.getBlockId(var5, var6, var7);
if (var9 != 0) {
if (!canPushBlock(var9, var0, var5, var6, var7, true)) {
return false;
}
if(Block.blocksList[var9].getMobilityFlag() != 1) {
if(var8 == 12) {
return false;
}
if (Block.blocksList[var9].getMobilityFlag() != 1) {
if (var8 == 12) {
return false;
}
var5 += PistonBlockTextures.field_31051_b[var4];
var6 += PistonBlockTextures.field_31054_c[var4];
var7 += PistonBlockTextures.field_31053_d[var4];
++var8;
continue;
}
}
}
var5 += PistonBlockTextures.field_31051_b[var4];
var6 += PistonBlockTextures.field_31054_c[var4];
var7 += PistonBlockTextures.field_31053_d[var4];
++var8;
continue;
}
}
}
return true;
}
}
return true;
}
}
private boolean tryExtend(World var1, int var2, int var3, int var4, int var5) {
int var6 = var2 + PistonBlockTextures.field_31051_b[var5];
int var7 = var3 + PistonBlockTextures.field_31054_c[var5];
int var8 = var4 + PistonBlockTextures.field_31053_d[var5];
int var9 = 0;
private boolean tryExtend(World var1, int var2, int var3, int var4, int var5) {
int var6 = var2 + PistonBlockTextures.field_31051_b[var5];
int var7 = var3 + PistonBlockTextures.field_31054_c[var5];
int var8 = var4 + PistonBlockTextures.field_31053_d[var5];
int var9 = 0;
while(true) {
int var10;
if(var9 < 13) {
if(var7 <= 0 || var7 >= 127) {
return false;
}
while (true) {
int var10;
if (var9 < 13) {
if (var7 <= 0 || var7 >= 127) {
return false;
}
var10 = var1.getBlockId(var6, var7, var8);
if(var10 != 0) {
if(!canPushBlock(var10, var1, var6, var7, var8, true)) {
return false;
}
var10 = var1.getBlockId(var6, var7, var8);
if (var10 != 0) {
if (!canPushBlock(var10, var1, var6, var7, var8, true)) {
return false;
}
if(Block.blocksList[var10].getMobilityFlag() != 1) {
if(var9 == 12) {
return false;
}
if (Block.blocksList[var10].getMobilityFlag() != 1) {
if (var9 == 12) {
return false;
}
var6 += PistonBlockTextures.field_31051_b[var5];
var7 += PistonBlockTextures.field_31054_c[var5];
var8 += PistonBlockTextures.field_31053_d[var5];
++var9;
continue;
}
var6 += PistonBlockTextures.field_31051_b[var5];
var7 += PistonBlockTextures.field_31054_c[var5];
var8 += PistonBlockTextures.field_31053_d[var5];
++var9;
continue;
}
Block.blocksList[var10].dropBlockAsItem(var1, var6, var7, var8, var1.getBlockMetadata(var6, var7, var8));
var1.setBlockWithNotify(var6, var7, var8, 0);
}
}
Block.blocksList[var10].dropBlockAsItem(var1, var6, var7, var8, var1.getBlockMetadata(var6, var7, var8));
var1.setBlockWithNotify(var6, var7, var8, 0);
}
}
while(var6 != var2 || var7 != var3 || var8 != var4) {
var9 = var6 - PistonBlockTextures.field_31051_b[var5];
var10 = var7 - PistonBlockTextures.field_31054_c[var5];
int var11 = var8 - PistonBlockTextures.field_31053_d[var5];
int var12 = var1.getBlockId(var9, var10, var11);
int var13 = var1.getBlockMetadata(var9, var10, var11);
if(var12 == this.blockID && var9 == var2 && var10 == var3 && var11 == var4) {
var1.setBlockAndMetadata(var6, var7, var8, Block.pistonMoving.blockID, var5 | (this.isSticky ? 8 : 0));
var1.setBlockTileEntity(var6, var7, var8, BlockPistonMoving.getTileEntity(Block.pistonExtension.blockID, var5 | (this.isSticky ? 8 : 0), var5, true, false));
} else {
var1.setBlockAndMetadata(var6, var7, var8, Block.pistonMoving.blockID, var13);
var1.setBlockTileEntity(var6, var7, var8, BlockPistonMoving.getTileEntity(var12, var13, var5, true, false));
}
while (var6 != var2 || var7 != var3 || var8 != var4) {
var9 = var6 - PistonBlockTextures.field_31051_b[var5];
var10 = var7 - PistonBlockTextures.field_31054_c[var5];
int var11 = var8 - PistonBlockTextures.field_31053_d[var5];
int var12 = var1.getBlockId(var9, var10, var11);
int var13 = var1.getBlockMetadata(var9, var10, var11);
if (var12 == this.blockID && var9 == var2 && var10 == var3 && var11 == var4) {
var1.setBlockAndMetadata(var6, var7, var8, Block.pistonMoving.blockID, var5 | (this.isSticky ? 8 : 0));
var1.setBlockTileEntity(var6, var7, var8, BlockPistonMoving.getTileEntity(Block.pistonExtension.blockID, var5 | (this.isSticky ? 8 : 0), var5, true, false));
} else {
var1.setBlockAndMetadata(var6, var7, var8, Block.pistonMoving.blockID, var13);
var1.setBlockTileEntity(var6, var7, var8, BlockPistonMoving.getTileEntity(var12, var13, var5, true, false));
}
var6 = var9;
var7 = var10;
var8 = var11;
}
var6 = var9;
var7 = var10;
var8 = var11;
}
return true;
}
}
return true;
}
}
}

View file

@ -1,144 +1,145 @@
package net.minecraft.block;
import java.util.ArrayList;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.math.AxisAlignedBB;
import net.minecraft.util.PistonBlockTextures;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import java.util.ArrayList;
import java.util.Random;
public class BlockPistonExtension extends Block {
private int field_31046_a = -1;
private int field_31046_a = -1;
public BlockPistonExtension(int var1, int var2) {
super(var1, var2, Material.piston);
this.setStepSound(soundStoneFootstep);
this.setHardness(0.5F);
}
public BlockPistonExtension(int var1, int var2) {
super(var1, var2, Material.piston);
this.setStepSound(soundStoneFootstep);
this.setHardness(0.5F);
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
super.onBlockRemoval(var1, var2, var3, var4);
int var5 = var1.getBlockMetadata(var2, var3, var4);
int var6 = PistonBlockTextures.field_31052_a[func_31045_b(var5)];
var2 += PistonBlockTextures.field_31051_b[var6];
var3 += PistonBlockTextures.field_31054_c[var6];
var4 += PistonBlockTextures.field_31053_d[var6];
int var7 = var1.getBlockId(var2, var3, var4);
if(var7 == Block.pistonBase.blockID || var7 == Block.pistonStickyBase.blockID) {
var5 = var1.getBlockMetadata(var2, var3, var4);
if(BlockPistonBase.isExtended(var5)) {
Block.blocksList[var7].dropBlockAsItem(var1, var2, var3, var4, var5);
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
super.onBlockRemoval(var1, var2, var3, var4);
int var5 = var1.getBlockMetadata(var2, var3, var4);
int var6 = PistonBlockTextures.field_31052_a[func_31045_b(var5)];
var2 += PistonBlockTextures.field_31051_b[var6];
var3 += PistonBlockTextures.field_31054_c[var6];
var4 += PistonBlockTextures.field_31053_d[var6];
int var7 = var1.getBlockId(var2, var3, var4);
if (var7 == Block.pistonBase.blockID || var7 == Block.pistonStickyBase.blockID) {
var5 = var1.getBlockMetadata(var2, var3, var4);
if (BlockPistonBase.isExtended(var5)) {
Block.blocksList[var7].dropBlockAsItem(var1, var2, var3, var4, var5);
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
}
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
int var3 = func_31045_b(var2);
return var1 == var3 ? (this.field_31046_a >= 0 ? this.field_31046_a : ((var2 & 8) != 0 ? this.blockIndexInTexture - 1 : this.blockIndexInTexture)) : (var1 == PistonBlockTextures.field_31052_a[var3] ? 107 : 108);
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
int var3 = func_31045_b(var2);
return var1 == var3 ? (this.field_31046_a >= 0 ? this.field_31046_a : ((var2 & 8) != 0 ? this.blockIndexInTexture - 1 : this.blockIndexInTexture)) : (var1 == PistonBlockTextures.field_31052_a[var3] ? 107 : 108);
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return false;
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return false;
}
public boolean canPlaceBlockOnSide(World var1, int var2, int var3, int var4, int var5) {
return false;
}
public boolean canPlaceBlockOnSide(World var1, int var2, int var3, int var4, int var5) {
return false;
}
public int quantityDropped(Random var1) {
return 0;
}
public int quantityDropped(Random var1) {
return 0;
}
public void getCollidingBoundingBoxes(World var1, int var2, int var3, int var4, AxisAlignedBB var5, ArrayList var6) {
int var7 = var1.getBlockMetadata(var2, var3, var4);
switch(func_31045_b(var7)) {
case 0:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.25F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
this.setBlockBounds(6.0F / 16.0F, 0.25F, 6.0F / 16.0F, 10.0F / 16.0F, 1.0F, 10.0F / 16.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
break;
case 1:
this.setBlockBounds(0.0F, 12.0F / 16.0F, 0.0F, 1.0F, 1.0F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
this.setBlockBounds(6.0F / 16.0F, 0.0F, 6.0F / 16.0F, 10.0F / 16.0F, 12.0F / 16.0F, 10.0F / 16.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
break;
case 2:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.25F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
this.setBlockBounds(0.25F, 6.0F / 16.0F, 0.25F, 12.0F / 16.0F, 10.0F / 16.0F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
break;
case 3:
this.setBlockBounds(0.0F, 0.0F, 12.0F / 16.0F, 1.0F, 1.0F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
this.setBlockBounds(0.25F, 6.0F / 16.0F, 0.0F, 12.0F / 16.0F, 10.0F / 16.0F, 12.0F / 16.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
break;
case 4:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.25F, 1.0F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
this.setBlockBounds(6.0F / 16.0F, 0.25F, 0.25F, 10.0F / 16.0F, 12.0F / 16.0F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
break;
case 5:
this.setBlockBounds(12.0F / 16.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
this.setBlockBounds(0.0F, 6.0F / 16.0F, 0.25F, 12.0F / 16.0F, 10.0F / 16.0F, 12.0F / 16.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
}
public void getCollidingBoundingBoxes(World var1, int var2, int var3, int var4, AxisAlignedBB var5, ArrayList var6) {
int var7 = var1.getBlockMetadata(var2, var3, var4);
switch (func_31045_b(var7)) {
case 0:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.25F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
this.setBlockBounds(6.0F / 16.0F, 0.25F, 6.0F / 16.0F, 10.0F / 16.0F, 1.0F, 10.0F / 16.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
break;
case 1:
this.setBlockBounds(0.0F, 12.0F / 16.0F, 0.0F, 1.0F, 1.0F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
this.setBlockBounds(6.0F / 16.0F, 0.0F, 6.0F / 16.0F, 10.0F / 16.0F, 12.0F / 16.0F, 10.0F / 16.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
break;
case 2:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.25F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
this.setBlockBounds(0.25F, 6.0F / 16.0F, 0.25F, 12.0F / 16.0F, 10.0F / 16.0F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
break;
case 3:
this.setBlockBounds(0.0F, 0.0F, 12.0F / 16.0F, 1.0F, 1.0F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
this.setBlockBounds(0.25F, 6.0F / 16.0F, 0.0F, 12.0F / 16.0F, 10.0F / 16.0F, 12.0F / 16.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
break;
case 4:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.25F, 1.0F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
this.setBlockBounds(6.0F / 16.0F, 0.25F, 0.25F, 10.0F / 16.0F, 12.0F / 16.0F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
break;
case 5:
this.setBlockBounds(12.0F / 16.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
this.setBlockBounds(0.0F, 6.0F / 16.0F, 0.25F, 12.0F / 16.0F, 10.0F / 16.0F, 12.0F / 16.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
}
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
}
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
switch(func_31045_b(var5)) {
case 0:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.25F, 1.0F);
break;
case 1:
this.setBlockBounds(0.0F, 12.0F / 16.0F, 0.0F, 1.0F, 1.0F, 1.0F);
break;
case 2:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.25F);
break;
case 3:
this.setBlockBounds(0.0F, 0.0F, 12.0F / 16.0F, 1.0F, 1.0F, 1.0F);
break;
case 4:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.25F, 1.0F, 1.0F);
break;
case 5:
this.setBlockBounds(12.0F / 16.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
switch (func_31045_b(var5)) {
case 0:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.25F, 1.0F);
break;
case 1:
this.setBlockBounds(0.0F, 12.0F / 16.0F, 0.0F, 1.0F, 1.0F, 1.0F);
break;
case 2:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.25F);
break;
case 3:
this.setBlockBounds(0.0F, 0.0F, 12.0F / 16.0F, 1.0F, 1.0F, 1.0F);
break;
case 4:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.25F, 1.0F, 1.0F);
break;
case 5:
this.setBlockBounds(12.0F / 16.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
}
}
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
int var6 = func_31045_b(var1.getBlockMetadata(var2, var3, var4));
int var7 = var1.getBlockId(var2 - PistonBlockTextures.field_31051_b[var6], var3 - PistonBlockTextures.field_31054_c[var6], var4 - PistonBlockTextures.field_31053_d[var6]);
if(var7 != Block.pistonBase.blockID && var7 != Block.pistonStickyBase.blockID) {
var1.setBlockWithNotify(var2, var3, var4, 0);
} else {
Block.blocksList[var7].onNeighborBlockChange(var1, var2 - PistonBlockTextures.field_31051_b[var6], var3 - PistonBlockTextures.field_31054_c[var6], var4 - PistonBlockTextures.field_31053_d[var6], var5);
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
int var6 = func_31045_b(var1.getBlockMetadata(var2, var3, var4));
int var7 = var1.getBlockId(var2 - PistonBlockTextures.field_31051_b[var6], var3 - PistonBlockTextures.field_31054_c[var6], var4 - PistonBlockTextures.field_31053_d[var6]);
if (var7 != Block.pistonBase.blockID && var7 != Block.pistonStickyBase.blockID) {
var1.setBlockWithNotify(var2, var3, var4, 0);
} else {
Block.blocksList[var7].onNeighborBlockChange(var1, var2 - PistonBlockTextures.field_31051_b[var6], var3 - PistonBlockTextures.field_31054_c[var6], var4 - PistonBlockTextures.field_31053_d[var6], var5);
}
}
}
public static int func_31045_b(int var0) {
return var0 & 7;
}
public static int func_31045_b(int var0) {
return var0 & 7;
}
}

View file

@ -1,6 +1,5 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.block.tile.TileEntity;
import net.minecraft.block.tile.TileEntityPiston;
@ -10,137 +9,139 @@ import net.minecraft.util.PistonBlockTextures;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import java.util.Random;
public class BlockPistonMoving extends BlockContainer {
public BlockPistonMoving(int var1) {
super(var1, Material.piston);
this.setHardness(-1.0F);
}
public BlockPistonMoving(int var1) {
super(var1, Material.piston);
this.setHardness(-1.0F);
}
protected TileEntity getBlockEntity() {
return null;
}
protected TileEntity getBlockEntity() {
return null;
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
TileEntity var5 = var1.getBlockTileEntity(var2, var3, var4);
if(var5 != null && var5 instanceof TileEntityPiston) {
((TileEntityPiston)var5).clearPistonTileEntity();
} else {
super.onBlockRemoval(var1, var2, var3, var4);
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
TileEntity var5 = var1.getBlockTileEntity(var2, var3, var4);
if (var5 != null && var5 instanceof TileEntityPiston) {
((TileEntityPiston) var5).clearPistonTileEntity();
} else {
super.onBlockRemoval(var1, var2, var3, var4);
}
}
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return false;
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return false;
}
public boolean canPlaceBlockOnSide(World var1, int var2, int var3, int var4, int var5) {
return false;
}
public boolean canPlaceBlockOnSide(World var1, int var2, int var3, int var4, int var5) {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if(!var1.singleplayerWorld && var1.getBlockTileEntity(var2, var3, var4) == null) {
var1.setBlockWithNotify(var2, var3, var4, 0);
return true;
} else {
return false;
}
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if (!var1.singleplayerWorld && var1.getBlockTileEntity(var2, var3, var4) == null) {
var1.setBlockWithNotify(var2, var3, var4, 0);
return true;
} else {
return false;
}
}
public int idDropped(int var1, Random var2) {
return 0;
}
public int idDropped(int var1, Random var2) {
return 0;
}
public void dropBlockAsItemWithChance(World var1, int var2, int var3, int var4, int var5, float var6) {
if(!var1.singleplayerWorld) {
TileEntityPiston var7 = this.getTileEntityAtLocation(var1, var2, var3, var4);
if(var7 != null) {
Block.blocksList[var7.getStoredBlockID()].dropBlockAsItem(var1, var2, var3, var4, var7.func_31005_e());
}
}
}
public void dropBlockAsItemWithChance(World var1, int var2, int var3, int var4, int var5, float var6) {
if (!var1.singleplayerWorld) {
TileEntityPiston var7 = this.getTileEntityAtLocation(var1, var2, var3, var4);
if (var7 != null) {
Block.blocksList[var7.getStoredBlockID()].dropBlockAsItem(var1, var2, var3, var4, var7.func_31005_e());
}
}
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if(!var1.singleplayerWorld && var1.getBlockTileEntity(var2, var3, var4) == null) {
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if (!var1.singleplayerWorld && var1.getBlockTileEntity(var2, var3, var4) == null) {
}
}
}
public static TileEntity getTileEntity(int var0, int var1, int var2, boolean var3, boolean var4) {
return new TileEntityPiston(var0, var1, var2, var3, var4);
}
public static TileEntity getTileEntity(int var0, int var1, int var2, boolean var3, boolean var4) {
return new TileEntityPiston(var0, var1, var2, var3, var4);
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
TileEntityPiston var5 = this.getTileEntityAtLocation(var1, var2, var3, var4);
if(var5 == null) {
return null;
} else {
float var6 = var5.func_31007_a(0.0F);
if(var5.func_31010_c()) {
var6 = 1.0F - var6;
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
TileEntityPiston var5 = this.getTileEntityAtLocation(var1, var2, var3, var4);
if (var5 == null) {
return null;
} else {
float var6 = var5.func_31007_a(0.0F);
if (var5.func_31010_c()) {
var6 = 1.0F - var6;
}
return this.func_31032_a(var1, var2, var3, var4, var5.getStoredBlockID(), var6, var5.func_31008_d());
}
}
return this.func_31032_a(var1, var2, var3, var4, var5.getStoredBlockID(), var6, var5.func_31008_d());
}
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
TileEntityPiston var5 = this.getTileEntityAtLocation(var1, var2, var3, var4);
if(var5 != null) {
Block var6 = Block.blocksList[var5.getStoredBlockID()];
if(var6 == null || var6 == this) {
return;
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
TileEntityPiston var5 = this.getTileEntityAtLocation(var1, var2, var3, var4);
if (var5 != null) {
Block var6 = Block.blocksList[var5.getStoredBlockID()];
if (var6 == null || var6 == this) {
return;
}
var6.setBlockBoundsBasedOnState(var1, var2, var3, var4);
float var7 = var5.func_31007_a(0.0F);
if(var5.func_31010_c()) {
var7 = 1.0F - var7;
}
var6.setBlockBoundsBasedOnState(var1, var2, var3, var4);
float var7 = var5.func_31007_a(0.0F);
if (var5.func_31010_c()) {
var7 = 1.0F - var7;
}
int var8 = var5.func_31008_d();
this.minX = var6.minX - (double)((float)PistonBlockTextures.field_31051_b[var8] * var7);
this.minY = var6.minY - (double)((float)PistonBlockTextures.field_31054_c[var8] * var7);
this.minZ = var6.minZ - (double)((float)PistonBlockTextures.field_31053_d[var8] * var7);
this.maxX = var6.maxX - (double)((float)PistonBlockTextures.field_31051_b[var8] * var7);
this.maxY = var6.maxY - (double)((float)PistonBlockTextures.field_31054_c[var8] * var7);
this.maxZ = var6.maxZ - (double)((float)PistonBlockTextures.field_31053_d[var8] * var7);
}
int var8 = var5.func_31008_d();
this.minX = var6.minX - (double) ((float) PistonBlockTextures.field_31051_b[var8] * var7);
this.minY = var6.minY - (double) ((float) PistonBlockTextures.field_31054_c[var8] * var7);
this.minZ = var6.minZ - (double) ((float) PistonBlockTextures.field_31053_d[var8] * var7);
this.maxX = var6.maxX - (double) ((float) PistonBlockTextures.field_31051_b[var8] * var7);
this.maxY = var6.maxY - (double) ((float) PistonBlockTextures.field_31054_c[var8] * var7);
this.maxZ = var6.maxZ - (double) ((float) PistonBlockTextures.field_31053_d[var8] * var7);
}
}
}
public AxisAlignedBB func_31032_a(World var1, int var2, int var3, int var4, int var5, float var6, int var7) {
if(var5 != 0 && var5 != this.blockID) {
AxisAlignedBB var8 = Block.blocksList[var5].getCollisionBoundingBoxFromPool(var1, var2, var3, var4);
if(var8 == null) {
return null;
} else {
var8.minX -= (double)((float)PistonBlockTextures.field_31051_b[var7] * var6);
var8.maxX -= (double)((float)PistonBlockTextures.field_31051_b[var7] * var6);
var8.minY -= (double)((float)PistonBlockTextures.field_31054_c[var7] * var6);
var8.maxY -= (double)((float)PistonBlockTextures.field_31054_c[var7] * var6);
var8.minZ -= (double)((float)PistonBlockTextures.field_31053_d[var7] * var6);
var8.maxZ -= (double)((float)PistonBlockTextures.field_31053_d[var7] * var6);
return var8;
}
} else {
return null;
}
}
public AxisAlignedBB func_31032_a(World var1, int var2, int var3, int var4, int var5, float var6, int var7) {
if (var5 != 0 && var5 != this.blockID) {
AxisAlignedBB var8 = Block.blocksList[var5].getCollisionBoundingBoxFromPool(var1, var2, var3, var4);
if (var8 == null) {
return null;
} else {
var8.minX -= (double) ((float) PistonBlockTextures.field_31051_b[var7] * var6);
var8.maxX -= (double) ((float) PistonBlockTextures.field_31051_b[var7] * var6);
var8.minY -= (double) ((float) PistonBlockTextures.field_31054_c[var7] * var6);
var8.maxY -= (double) ((float) PistonBlockTextures.field_31054_c[var7] * var6);
var8.minZ -= (double) ((float) PistonBlockTextures.field_31053_d[var7] * var6);
var8.maxZ -= (double) ((float) PistonBlockTextures.field_31053_d[var7] * var6);
return var8;
}
} else {
return null;
}
}
private TileEntityPiston getTileEntityAtLocation(IBlockAccess var1, int var2, int var3, int var4) {
TileEntity var5 = var1.getBlockTileEntity(var2, var3, var4);
return var5 != null && var5 instanceof TileEntityPiston ? (TileEntityPiston)var5 : null;
}
private TileEntityPiston getTileEntityAtLocation(IBlockAccess var1, int var2, int var3, int var4) {
TileEntity var5 = var1.getBlockTileEntity(var2, var3, var4);
return var5 != null && var5 instanceof TileEntityPiston ? (TileEntityPiston) var5 : null;
}
}

View file

@ -1,135 +1,136 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.entity.Entity;
import net.minecraft.math.AxisAlignedBB;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import java.util.Random;
public class BlockPortal extends BlockBreakable {
public BlockPortal(int var1, int var2) {
super(var1, var2, Material.portal, false);
}
public BlockPortal(int var1, int var2) {
super(var1, var2, Material.portal, false);
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
float var5;
float var6;
if(var1.getBlockId(var2 - 1, var3, var4) != this.blockID && var1.getBlockId(var2 + 1, var3, var4) != this.blockID) {
var5 = 2.0F / 16.0F;
var6 = 0.5F;
this.setBlockBounds(0.5F - var5, 0.0F, 0.5F - var6, 0.5F + var5, 1.0F, 0.5F + var6);
} else {
var5 = 0.5F;
var6 = 2.0F / 16.0F;
this.setBlockBounds(0.5F - var5, 0.0F, 0.5F - var6, 0.5F + var5, 1.0F, 0.5F + var6);
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
float var5;
float var6;
if (var1.getBlockId(var2 - 1, var3, var4) != this.blockID && var1.getBlockId(var2 + 1, var3, var4) != this.blockID) {
var5 = 2.0F / 16.0F;
var6 = 0.5F;
this.setBlockBounds(0.5F - var5, 0.0F, 0.5F - var6, 0.5F + var5, 1.0F, 0.5F + var6);
} else {
var5 = 0.5F;
var6 = 2.0F / 16.0F;
this.setBlockBounds(0.5F - var5, 0.0F, 0.5F - var6, 0.5F + var5, 1.0F, 0.5F + var6);
}
}
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean tryToCreatePortal(World var1, int var2, int var3, int var4) {
byte var5 = 0;
byte var6 = 0;
if(var1.getBlockId(var2 - 1, var3, var4) == Block.obsidian.blockID || var1.getBlockId(var2 + 1, var3, var4) == Block.obsidian.blockID) {
var5 = 1;
}
public boolean tryToCreatePortal(World var1, int var2, int var3, int var4) {
byte var5 = 0;
byte var6 = 0;
if (var1.getBlockId(var2 - 1, var3, var4) == Block.obsidian.blockID || var1.getBlockId(var2 + 1, var3, var4) == Block.obsidian.blockID) {
var5 = 1;
}
if(var1.getBlockId(var2, var3, var4 - 1) == Block.obsidian.blockID || var1.getBlockId(var2, var3, var4 + 1) == Block.obsidian.blockID) {
var6 = 1;
}
if (var1.getBlockId(var2, var3, var4 - 1) == Block.obsidian.blockID || var1.getBlockId(var2, var3, var4 + 1) == Block.obsidian.blockID) {
var6 = 1;
}
if(var5 == var6) {
return false;
} else {
if(var1.getBlockId(var2 - var5, var3, var4 - var6) == 0) {
var2 -= var5;
var4 -= var6;
}
if (var5 == var6) {
return false;
} else {
if (var1.getBlockId(var2 - var5, var3, var4 - var6) == 0) {
var2 -= var5;
var4 -= var6;
}
int var7;
int var8;
for(var7 = -1; var7 <= 2; ++var7) {
for(var8 = -1; var8 <= 3; ++var8) {
boolean var9 = var7 == -1 || var7 == 2 || var8 == -1 || var8 == 3;
if(var7 != -1 && var7 != 2 || var8 != -1 && var8 != 3) {
int var10 = var1.getBlockId(var2 + var5 * var7, var3 + var8, var4 + var6 * var7);
if(var9) {
if(var10 != Block.obsidian.blockID) {
return false;
}
} else if(var10 != 0 && var10 != Block.fire.blockID) {
return false;
}
}
}
}
int var7;
int var8;
for (var7 = -1; var7 <= 2; ++var7) {
for (var8 = -1; var8 <= 3; ++var8) {
boolean var9 = var7 == -1 || var7 == 2 || var8 == -1 || var8 == 3;
if (var7 != -1 && var7 != 2 || var8 != -1 && var8 != 3) {
int var10 = var1.getBlockId(var2 + var5 * var7, var3 + var8, var4 + var6 * var7);
if (var9) {
if (var10 != Block.obsidian.blockID) {
return false;
}
} else if (var10 != 0 && var10 != Block.fire.blockID) {
return false;
}
}
}
}
var1.editingBlocks = true;
var1.editingBlocks = true;
for(var7 = 0; var7 < 2; ++var7) {
for(var8 = 0; var8 < 3; ++var8) {
var1.setBlockWithNotify(var2 + var5 * var7, var3 + var8, var4 + var6 * var7, Block.portal.blockID);
}
}
for (var7 = 0; var7 < 2; ++var7) {
for (var8 = 0; var8 < 3; ++var8) {
var1.setBlockWithNotify(var2 + var5 * var7, var3 + var8, var4 + var6 * var7, Block.portal.blockID);
}
}
var1.editingBlocks = false;
return true;
}
}
var1.editingBlocks = false;
return true;
}
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
byte var6 = 0;
byte var7 = 1;
if(var1.getBlockId(var2 - 1, var3, var4) == this.blockID || var1.getBlockId(var2 + 1, var3, var4) == this.blockID) {
var6 = 1;
var7 = 0;
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
byte var6 = 0;
byte var7 = 1;
if (var1.getBlockId(var2 - 1, var3, var4) == this.blockID || var1.getBlockId(var2 + 1, var3, var4) == this.blockID) {
var6 = 1;
var7 = 0;
}
int var8;
for(var8 = var3; var1.getBlockId(var2, var8 - 1, var4) == this.blockID; --var8) {
}
int var8;
for (var8 = var3; var1.getBlockId(var2, var8 - 1, var4) == this.blockID; --var8) {
}
if(var1.getBlockId(var2, var8 - 1, var4) != Block.obsidian.blockID) {
var1.setBlockWithNotify(var2, var3, var4, 0);
} else {
int var9;
for(var9 = 1; var9 < 4 && var1.getBlockId(var2, var8 + var9, var4) == this.blockID; ++var9) {
}
if (var1.getBlockId(var2, var8 - 1, var4) != Block.obsidian.blockID) {
var1.setBlockWithNotify(var2, var3, var4, 0);
} else {
int var9;
for (var9 = 1; var9 < 4 && var1.getBlockId(var2, var8 + var9, var4) == this.blockID; ++var9) {
}
if(var9 == 3 && var1.getBlockId(var2, var8 + var9, var4) == Block.obsidian.blockID) {
boolean var10 = var1.getBlockId(var2 - 1, var3, var4) == this.blockID || var1.getBlockId(var2 + 1, var3, var4) == this.blockID;
boolean var11 = var1.getBlockId(var2, var3, var4 - 1) == this.blockID || var1.getBlockId(var2, var3, var4 + 1) == this.blockID;
if(var10 && var11) {
var1.setBlockWithNotify(var2, var3, var4, 0);
} else if((var1.getBlockId(var2 + var6, var3, var4 + var7) != Block.obsidian.blockID || var1.getBlockId(var2 - var6, var3, var4 - var7) != this.blockID) && (var1.getBlockId(var2 - var6, var3, var4 - var7) != Block.obsidian.blockID || var1.getBlockId(var2 + var6, var3, var4 + var7) != this.blockID)) {
var1.setBlockWithNotify(var2, var3, var4, 0);
}
} else {
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
}
if (var9 == 3 && var1.getBlockId(var2, var8 + var9, var4) == Block.obsidian.blockID) {
boolean var10 = var1.getBlockId(var2 - 1, var3, var4) == this.blockID || var1.getBlockId(var2 + 1, var3, var4) == this.blockID;
boolean var11 = var1.getBlockId(var2, var3, var4 - 1) == this.blockID || var1.getBlockId(var2, var3, var4 + 1) == this.blockID;
if (var10 && var11) {
var1.setBlockWithNotify(var2, var3, var4, 0);
} else if ((var1.getBlockId(var2 + var6, var3, var4 + var7) != Block.obsidian.blockID || var1.getBlockId(var2 - var6, var3, var4 - var7) != this.blockID) && (var1.getBlockId(var2 - var6, var3, var4 - var7) != Block.obsidian.blockID || var1.getBlockId(var2 + var6, var3, var4 + var7) != this.blockID)) {
var1.setBlockWithNotify(var2, var3, var4, 0);
}
} else {
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
}
public int quantityDropped(Random var1) {
return 0;
}
public int quantityDropped(Random var1) {
return 0;
}
public void onEntityCollidedWithBlock(World var1, int var2, int var3, int var4, Entity var5) {
if(var5.ridingEntity == null && var5.riddenByEntity == null) {
var5.setInPortal();
}
public void onEntityCollidedWithBlock(World var1, int var2, int var3, int var4, Entity var5) {
if (var5.ridingEntity == null && var5.riddenByEntity == null) {
var5.setInPortal();
}
}
}
}

View file

@ -1,7 +1,5 @@
package net.minecraft.block;
import java.util.List;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
@ -11,146 +9,149 @@ import net.minecraft.math.AxisAlignedBB;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import java.util.List;
import java.util.Random;
public class BlockPressurePlate extends Block {
private EnumMobType triggerMobType;
private EnumMobType triggerMobType;
protected BlockPressurePlate(int var1, int var2, EnumMobType var3, Material var4) {
super(var1, var2, var4);
this.triggerMobType = var3;
this.setTickOnLoad(true);
float var5 = 1.0F / 16.0F;
this.setBlockBounds(var5, 0.0F, var5, 1.0F - var5, 0.03125F, 1.0F - var5);
}
protected BlockPressurePlate(int var1, int var2, EnumMobType var3, Material var4) {
super(var1, var2, var4);
this.triggerMobType = var3;
this.setTickOnLoad(true);
float var5 = 1.0F / 16.0F;
this.setBlockBounds(var5, 0.0F, var5, 1.0F - var5, 0.03125F, 1.0F - var5);
}
public int tickRate() {
return 20;
}
public int tickRate() {
return 20;
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return var1.isBlockNormalCube(var2, var3 - 1, var4);
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return var1.isBlockNormalCube(var2, var3 - 1, var4);
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
boolean var6 = false;
if(!var1.isBlockNormalCube(var2, var3 - 1, var4)) {
var6 = true;
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
boolean var6 = false;
if (!var1.isBlockNormalCube(var2, var3 - 1, var4)) {
var6 = true;
}
if(var6) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
if (var6) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if(!var1.singleplayerWorld) {
if(var1.getBlockMetadata(var2, var3, var4) != 0) {
this.setStateIfMobInteractsWithPlate(var1, var2, var3, var4);
}
}
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if (!var1.singleplayerWorld) {
if (var1.getBlockMetadata(var2, var3, var4) != 0) {
this.setStateIfMobInteractsWithPlate(var1, var2, var3, var4);
}
}
}
public void onEntityCollidedWithBlock(World var1, int var2, int var3, int var4, Entity var5) {
if(!var1.singleplayerWorld) {
if(var1.getBlockMetadata(var2, var3, var4) != 1) {
this.setStateIfMobInteractsWithPlate(var1, var2, var3, var4);
}
}
}
public void onEntityCollidedWithBlock(World var1, int var2, int var3, int var4, Entity var5) {
if (!var1.singleplayerWorld) {
if (var1.getBlockMetadata(var2, var3, var4) != 1) {
this.setStateIfMobInteractsWithPlate(var1, var2, var3, var4);
}
}
}
private void setStateIfMobInteractsWithPlate(World var1, int var2, int var3, int var4) {
boolean var5 = var1.getBlockMetadata(var2, var3, var4) == 1;
boolean var6 = false;
float var7 = 2.0F / 16.0F;
List var8 = null;
if(this.triggerMobType == EnumMobType.everything) {
var8 = var1.getEntitiesWithinAABBExcludingEntity((Entity)null, AxisAlignedBB.getBoundingBoxFromPool((double)((float)var2 + var7), (double)var3, (double)((float)var4 + var7), (double)((float)(var2 + 1) - var7), (double)var3 + 0.25D, (double)((float)(var4 + 1) - var7)));
}
private void setStateIfMobInteractsWithPlate(World var1, int var2, int var3, int var4) {
boolean var5 = var1.getBlockMetadata(var2, var3, var4) == 1;
boolean var6 = false;
float var7 = 2.0F / 16.0F;
List var8 = null;
if (this.triggerMobType == EnumMobType.everything) {
var8 = var1.getEntitiesWithinAABBExcludingEntity((Entity) null, AxisAlignedBB.getBoundingBoxFromPool((double) ((float) var2 + var7), (double) var3, (double) ((float) var4 + var7), (double) ((float) (var2 + 1) - var7), (double) var3 + 0.25D, (double) ((float) (var4 + 1) - var7)));
}
if(this.triggerMobType == EnumMobType.mobs) {
var8 = var1.getEntitiesWithinAABB(EntityLiving.class, AxisAlignedBB.getBoundingBoxFromPool((double)((float)var2 + var7), (double)var3, (double)((float)var4 + var7), (double)((float)(var2 + 1) - var7), (double)var3 + 0.25D, (double)((float)(var4 + 1) - var7)));
}
if (this.triggerMobType == EnumMobType.mobs) {
var8 = var1.getEntitiesWithinAABB(EntityLiving.class, AxisAlignedBB.getBoundingBoxFromPool((double) ((float) var2 + var7), (double) var3, (double) ((float) var4 + var7), (double) ((float) (var2 + 1) - var7), (double) var3 + 0.25D, (double) ((float) (var4 + 1) - var7)));
}
if(this.triggerMobType == EnumMobType.players) {
var8 = var1.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBoxFromPool((double)((float)var2 + var7), (double)var3, (double)((float)var4 + var7), (double)((float)(var2 + 1) - var7), (double)var3 + 0.25D, (double)((float)(var4 + 1) - var7)));
}
if (this.triggerMobType == EnumMobType.players) {
var8 = var1.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBoxFromPool((double) ((float) var2 + var7), (double) var3, (double) ((float) var4 + var7), (double) ((float) (var2 + 1) - var7), (double) var3 + 0.25D, (double) ((float) (var4 + 1) - var7)));
}
if(var8.size() > 0) {
var6 = true;
}
if (var8.size() > 0) {
var6 = true;
}
if(var6 && !var5) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 1);
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
var1.playSoundEffect((double)var2 + 0.5D, (double)var3 + 0.1D, (double)var4 + 0.5D, "random.click", 0.3F, 0.6F);
}
if (var6 && !var5) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 1);
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
var1.playSoundEffect((double) var2 + 0.5D, (double) var3 + 0.1D, (double) var4 + 0.5D, "random.click", 0.3F, 0.6F);
}
if(!var6 && var5) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 0);
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
var1.playSoundEffect((double)var2 + 0.5D, (double)var3 + 0.1D, (double)var4 + 0.5D, "random.click", 0.3F, 0.5F);
}
if (!var6 && var5) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 0);
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
var1.playSoundEffect((double) var2 + 0.5D, (double) var3 + 0.1D, (double) var4 + 0.5D, "random.click", 0.3F, 0.5F);
}
if(var6) {
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
}
if (var6) {
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
}
}
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
if(var5 > 0) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
if (var5 > 0) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
}
super.onBlockRemoval(var1, var2, var3, var4);
}
super.onBlockRemoval(var1, var2, var3, var4);
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
boolean var5 = var1.getBlockMetadata(var2, var3, var4) == 1;
float var6 = 1.0F / 16.0F;
if(var5) {
this.setBlockBounds(var6, 0.0F, var6, 1.0F - var6, 0.03125F, 1.0F - var6);
} else {
this.setBlockBounds(var6, 0.0F, var6, 1.0F - var6, 1.0F / 16.0F, 1.0F - var6);
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
boolean var5 = var1.getBlockMetadata(var2, var3, var4) == 1;
float var6 = 1.0F / 16.0F;
if (var5) {
this.setBlockBounds(var6, 0.0F, var6, 1.0F - var6, 0.03125F, 1.0F - var6);
} else {
this.setBlockBounds(var6, 0.0F, var6, 1.0F - var6, 1.0F / 16.0F, 1.0F - var6);
}
}
}
public boolean isPoweringTo(IBlockAccess var1, int var2, int var3, int var4, int var5) {
return var1.getBlockMetadata(var2, var3, var4) > 0;
}
public boolean isPoweringTo(IBlockAccess var1, int var2, int var3, int var4, int var5) {
return var1.getBlockMetadata(var2, var3, var4) > 0;
}
public boolean isIndirectlyPoweringTo(World var1, int var2, int var3, int var4, int var5) {
return var1.getBlockMetadata(var2, var3, var4) == 0 ? false : var5 == 1;
}
public boolean isIndirectlyPoweringTo(World var1, int var2, int var3, int var4, int var5) {
return var1.getBlockMetadata(var2, var3, var4) == 0 ? false : var5 == 1;
}
public boolean canProvidePower() {
return true;
}
public boolean canProvidePower() {
return true;
}
public int getMobilityFlag() {
return 1;
}
public int getMobilityFlag() {
return 1;
}
}

View file

@ -6,45 +6,45 @@ import net.minecraft.math.MathHelper;
import net.minecraft.world.World;
public class BlockPumpkin extends Block {
private boolean blockType;
private boolean blockType;
protected BlockPumpkin(int var1, int var2, boolean var3) {
super(var1, Material.pumpkin);
this.blockIndexInTexture = var2;
this.setTickOnLoad(true);
this.blockType = var3;
}
protected BlockPumpkin(int var1, int var2, boolean var3) {
super(var1, Material.pumpkin);
this.blockIndexInTexture = var2;
this.setTickOnLoad(true);
this.blockType = var3;
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
if(var1 == 1) {
return this.blockIndexInTexture;
} else if(var1 == 0) {
return this.blockIndexInTexture;
} else {
int var3 = this.blockIndexInTexture + 1 + 16;
if(this.blockType) {
++var3;
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
if (var1 == 1) {
return this.blockIndexInTexture;
} else if (var1 == 0) {
return this.blockIndexInTexture;
} else {
int var3 = this.blockIndexInTexture + 1 + 16;
if (this.blockType) {
++var3;
}
return var2 == 2 && var1 == 2 ? var3 : (var2 == 3 && var1 == 5 ? var3 : (var2 == 0 && var1 == 3 ? var3 : (var2 == 1 && var1 == 4 ? var3 : this.blockIndexInTexture + 16)));
}
}
return var2 == 2 && var1 == 2 ? var3 : (var2 == 3 && var1 == 5 ? var3 : (var2 == 0 && var1 == 3 ? var3 : (var2 == 1 && var1 == 4 ? var3 : this.blockIndexInTexture + 16)));
}
}
public int getBlockTextureFromSide(int var1) {
return var1 == 1 ? this.blockIndexInTexture : (var1 == 0 ? this.blockIndexInTexture : (var1 == 3 ? this.blockIndexInTexture + 1 + 16 : this.blockIndexInTexture + 16));
}
public int getBlockTextureFromSide(int var1) {
return var1 == 1 ? this.blockIndexInTexture : (var1 == 0 ? this.blockIndexInTexture : (var1 == 3 ? this.blockIndexInTexture + 1 + 16 : this.blockIndexInTexture + 16));
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
super.onBlockAdded(var1, var2, var3, var4);
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
super.onBlockAdded(var1, var2, var3, var4);
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockId(var2, var3, var4);
return (var5 == 0 || Block.blocksList[var5].blockMaterial.func_27090_g()) && var1.isBlockNormalCube(var2, var3 - 1, var4);
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockId(var2, var3, var4);
return (var5 == 0 || Block.blocksList[var5].blockMaterial.func_27090_g()) && var1.isBlockNormalCube(var2, var3 - 1, var4);
}
public void onBlockPlacedBy(World var1, int var2, int var3, int var4, EntityLiving var5) {
int var6 = MathHelper.floor_double((double)(var5.rotationYaw * 4.0F / 360.0F) + 2.5D) & 3;
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
}
public void onBlockPlacedBy(World var1, int var2, int var3, int var4, EntityLiving var5) {
int var6 = MathHelper.floor_double((double) (var5.rotationYaw * 4.0F / 360.0F) + 2.5D) & 3;
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
}
}

View file

@ -1,6 +1,5 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.math.AxisAlignedBB;
import net.minecraft.math.Vec3D;
@ -8,245 +7,247 @@ import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import java.util.Random;
public class BlockRail extends Block {
private final boolean field_27034_a;
private final boolean field_27034_a;
public static final boolean func_27029_g(World var0, int var1, int var2, int var3) {
int var4 = var0.getBlockId(var1, var2, var3);
return var4 == Block.minecartTrack.blockID || var4 == Block.railPowered.blockID || var4 == Block.railDetector.blockID;
}
public static final boolean func_27029_g(World var0, int var1, int var2, int var3) {
int var4 = var0.getBlockId(var1, var2, var3);
return var4 == Block.minecartTrack.blockID || var4 == Block.railPowered.blockID || var4 == Block.railDetector.blockID;
}
public static final boolean func_27030_c(int var0) {
return var0 == Block.minecartTrack.blockID || var0 == Block.railPowered.blockID || var0 == Block.railDetector.blockID;
}
public static final boolean func_27030_c(int var0) {
return var0 == Block.minecartTrack.blockID || var0 == Block.railPowered.blockID || var0 == Block.railDetector.blockID;
}
protected BlockRail(int var1, int var2, boolean var3) {
super(var1, var2, Material.circuits);
this.field_27034_a = var3;
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 2.0F / 16.0F, 1.0F);
}
protected BlockRail(int var1, int var2, boolean var3) {
super(var1, var2, Material.circuits);
this.field_27034_a = var3;
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 2.0F / 16.0F, 1.0F);
}
public boolean func_27028_d() {
return this.field_27034_a;
}
public boolean func_27028_d() {
return this.field_27034_a;
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public MovingObjectPosition collisionRayTrace(World var1, int var2, int var3, int var4, Vec3D var5, Vec3D var6) {
this.setBlockBoundsBasedOnState(var1, var2, var3, var4);
return super.collisionRayTrace(var1, var2, var3, var4, var5, var6);
}
public MovingObjectPosition collisionRayTrace(World var1, int var2, int var3, int var4, Vec3D var5, Vec3D var6) {
this.setBlockBoundsBasedOnState(var1, var2, var3, var4);
return super.collisionRayTrace(var1, var2, var3, var4, var5, var6);
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
if(var5 >= 2 && var5 <= 5) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 10.0F / 16.0F, 1.0F);
} else {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 2.0F / 16.0F, 1.0F);
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
if (var5 >= 2 && var5 <= 5) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 10.0F / 16.0F, 1.0F);
} else {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 2.0F / 16.0F, 1.0F);
}
}
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
if(this.field_27034_a) {
if(this.blockID == Block.railPowered.blockID && (var2 & 8) == 0) {
return this.blockIndexInTexture - 16;
}
} else if(var2 >= 6) {
return this.blockIndexInTexture - 16;
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
if (this.field_27034_a) {
if (this.blockID == Block.railPowered.blockID && (var2 & 8) == 0) {
return this.blockIndexInTexture - 16;
}
} else if (var2 >= 6) {
return this.blockIndexInTexture - 16;
}
return this.blockIndexInTexture;
}
return this.blockIndexInTexture;
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public int quantityDropped(Random var1) {
return 1;
}
public int quantityDropped(Random var1) {
return 1;
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return var1.isBlockNormalCube(var2, var3 - 1, var4);
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return var1.isBlockNormalCube(var2, var3 - 1, var4);
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
if(!var1.singleplayerWorld) {
this.func_4038_g(var1, var2, var3, var4, true);
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
if (!var1.singleplayerWorld) {
this.func_4038_g(var1, var2, var3, var4, true);
}
}
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if(!var1.singleplayerWorld) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
int var7 = var6;
if(this.field_27034_a) {
var7 = var6 & 7;
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if (!var1.singleplayerWorld) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
int var7 = var6;
if (this.field_27034_a) {
var7 = var6 & 7;
}
boolean var8 = false;
if(!var1.isBlockNormalCube(var2, var3 - 1, var4)) {
var8 = true;
}
boolean var8 = false;
if (!var1.isBlockNormalCube(var2, var3 - 1, var4)) {
var8 = true;
}
if(var7 == 2 && !var1.isBlockNormalCube(var2 + 1, var3, var4)) {
var8 = true;
}
if (var7 == 2 && !var1.isBlockNormalCube(var2 + 1, var3, var4)) {
var8 = true;
}
if(var7 == 3 && !var1.isBlockNormalCube(var2 - 1, var3, var4)) {
var8 = true;
}
if (var7 == 3 && !var1.isBlockNormalCube(var2 - 1, var3, var4)) {
var8 = true;
}
if(var7 == 4 && !var1.isBlockNormalCube(var2, var3, var4 - 1)) {
var8 = true;
}
if (var7 == 4 && !var1.isBlockNormalCube(var2, var3, var4 - 1)) {
var8 = true;
}
if(var7 == 5 && !var1.isBlockNormalCube(var2, var3, var4 + 1)) {
var8 = true;
}
if (var7 == 5 && !var1.isBlockNormalCube(var2, var3, var4 + 1)) {
var8 = true;
}
if(var8) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
} else if(this.blockID == Block.railPowered.blockID) {
boolean var9 = var1.isBlockIndirectlyGettingPowered(var2, var3, var4) || var1.isBlockIndirectlyGettingPowered(var2, var3 + 1, var4);
var9 = var9 || this.func_27032_a(var1, var2, var3, var4, var6, true, 0) || this.func_27032_a(var1, var2, var3, var4, var6, false, 0);
boolean var10 = false;
if(var9 && (var6 & 8) == 0) {
var1.setBlockMetadataWithNotify(var2, var3, var4, var7 | 8);
var10 = true;
} else if(!var9 && (var6 & 8) != 0) {
var1.setBlockMetadataWithNotify(var2, var3, var4, var7);
var10 = true;
}
if (var8) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
} else if (this.blockID == Block.railPowered.blockID) {
boolean var9 = var1.isBlockIndirectlyGettingPowered(var2, var3, var4) || var1.isBlockIndirectlyGettingPowered(var2, var3 + 1, var4);
var9 = var9 || this.func_27032_a(var1, var2, var3, var4, var6, true, 0) || this.func_27032_a(var1, var2, var3, var4, var6, false, 0);
boolean var10 = false;
if (var9 && (var6 & 8) == 0) {
var1.setBlockMetadataWithNotify(var2, var3, var4, var7 | 8);
var10 = true;
} else if (!var9 && (var6 & 8) != 0) {
var1.setBlockMetadataWithNotify(var2, var3, var4, var7);
var10 = true;
}
if(var10) {
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
if(var7 == 2 || var7 == 3 || var7 == 4 || var7 == 5) {
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
}
}
} else if(var5 > 0 && Block.blocksList[var5].canProvidePower() && !this.field_27034_a && RailLogic.getNAdjacentTracks(new RailLogic(this, var1, var2, var3, var4)) == 3) {
this.func_4038_g(var1, var2, var3, var4, false);
}
if (var10) {
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
if (var7 == 2 || var7 == 3 || var7 == 4 || var7 == 5) {
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
}
}
} else if (var5 > 0 && Block.blocksList[var5].canProvidePower() && !this.field_27034_a && RailLogic.getNAdjacentTracks(new RailLogic(this, var1, var2, var3, var4)) == 3) {
this.func_4038_g(var1, var2, var3, var4, false);
}
}
}
}
}
private void func_4038_g(World var1, int var2, int var3, int var4, boolean var5) {
if(!var1.singleplayerWorld) {
(new RailLogic(this, var1, var2, var3, var4)).func_596_a(var1.isBlockIndirectlyGettingPowered(var2, var3, var4), var5);
}
}
private void func_4038_g(World var1, int var2, int var3, int var4, boolean var5) {
if (!var1.singleplayerWorld) {
(new RailLogic(this, var1, var2, var3, var4)).func_596_a(var1.isBlockIndirectlyGettingPowered(var2, var3, var4), var5);
}
}
private boolean func_27032_a(World var1, int var2, int var3, int var4, int var5, boolean var6, int var7) {
if(var7 >= 8) {
return false;
} else {
int var8 = var5 & 7;
boolean var9 = true;
switch(var8) {
case 0:
if(var6) {
++var4;
} else {
--var4;
}
break;
case 1:
if(var6) {
--var2;
} else {
++var2;
}
break;
case 2:
if(var6) {
--var2;
} else {
++var2;
++var3;
var9 = false;
}
private boolean func_27032_a(World var1, int var2, int var3, int var4, int var5, boolean var6, int var7) {
if (var7 >= 8) {
return false;
} else {
int var8 = var5 & 7;
boolean var9 = true;
switch (var8) {
case 0:
if (var6) {
++var4;
} else {
--var4;
}
break;
case 1:
if (var6) {
--var2;
} else {
++var2;
}
break;
case 2:
if (var6) {
--var2;
} else {
++var2;
++var3;
var9 = false;
}
var8 = 1;
break;
case 3:
if(var6) {
--var2;
++var3;
var9 = false;
} else {
++var2;
}
var8 = 1;
break;
case 3:
if (var6) {
--var2;
++var3;
var9 = false;
} else {
++var2;
}
var8 = 1;
break;
case 4:
if(var6) {
++var4;
} else {
--var4;
++var3;
var9 = false;
}
var8 = 1;
break;
case 4:
if (var6) {
++var4;
} else {
--var4;
++var3;
var9 = false;
}
var8 = 0;
break;
case 5:
if(var6) {
++var4;
++var3;
var9 = false;
} else {
--var4;
}
var8 = 0;
break;
case 5:
if (var6) {
++var4;
++var3;
var9 = false;
} else {
--var4;
}
var8 = 0;
}
var8 = 0;
}
return this.func_27031_a(var1, var2, var3, var4, var6, var7, var8) ? true : var9 && this.func_27031_a(var1, var2, var3 - 1, var4, var6, var7, var8);
}
}
return this.func_27031_a(var1, var2, var3, var4, var6, var7, var8) ? true : var9 && this.func_27031_a(var1, var2, var3 - 1, var4, var6, var7, var8);
}
}
private boolean func_27031_a(World var1, int var2, int var3, int var4, boolean var5, int var6, int var7) {
int var8 = var1.getBlockId(var2, var3, var4);
if(var8 == Block.railPowered.blockID) {
int var9 = var1.getBlockMetadata(var2, var3, var4);
int var10 = var9 & 7;
if(var7 == 1 && (var10 == 0 || var10 == 4 || var10 == 5)) {
return false;
}
private boolean func_27031_a(World var1, int var2, int var3, int var4, boolean var5, int var6, int var7) {
int var8 = var1.getBlockId(var2, var3, var4);
if (var8 == Block.railPowered.blockID) {
int var9 = var1.getBlockMetadata(var2, var3, var4);
int var10 = var9 & 7;
if (var7 == 1 && (var10 == 0 || var10 == 4 || var10 == 5)) {
return false;
}
if(var7 == 0 && (var10 == 1 || var10 == 2 || var10 == 3)) {
return false;
}
if (var7 == 0 && (var10 == 1 || var10 == 2 || var10 == 3)) {
return false;
}
if((var9 & 8) != 0) {
if(!var1.isBlockIndirectlyGettingPowered(var2, var3, var4) && !var1.isBlockIndirectlyGettingPowered(var2, var3 + 1, var4)) {
return this.func_27032_a(var1, var2, var3, var4, var9, var5, var6 + 1);
}
if ((var9 & 8) != 0) {
if (!var1.isBlockIndirectlyGettingPowered(var2, var3, var4) && !var1.isBlockIndirectlyGettingPowered(var2, var3 + 1, var4)) {
return this.func_27032_a(var1, var2, var3, var4, var9, var5, var6 + 1);
}
return true;
}
}
return true;
}
}
return false;
}
return false;
}
public int getMobilityFlag() {
return 0;
}
public int getMobilityFlag() {
return 0;
}
static boolean func_27033_a(BlockRail var0) {
return var0.field_27034_a;
}
static boolean func_27033_a(BlockRail var0) {
return var0.field_27034_a;
}
}

View file

@ -1,102 +1,103 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.world.World;
import java.util.Random;
public class BlockRedstoneOre extends Block {
private boolean field_665_a;
private boolean field_665_a;
public BlockRedstoneOre(int var1, int var2, boolean var3) {
super(var1, var2, Material.rock);
if(var3) {
this.setTickOnLoad(true);
}
public BlockRedstoneOre(int var1, int var2, boolean var3) {
super(var1, var2, Material.rock);
if (var3) {
this.setTickOnLoad(true);
}
this.field_665_a = var3;
}
this.field_665_a = var3;
}
public int tickRate() {
return 30;
}
public int tickRate() {
return 30;
}
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
this.func_321_g(var1, var2, var3, var4);
super.onBlockClicked(var1, var2, var3, var4, var5);
}
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
this.func_321_g(var1, var2, var3, var4);
super.onBlockClicked(var1, var2, var3, var4, var5);
}
public void onEntityWalking(World var1, int var2, int var3, int var4, Entity var5) {
this.func_321_g(var1, var2, var3, var4);
super.onEntityWalking(var1, var2, var3, var4, var5);
}
public void onEntityWalking(World var1, int var2, int var3, int var4, Entity var5) {
this.func_321_g(var1, var2, var3, var4);
super.onEntityWalking(var1, var2, var3, var4, var5);
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
this.func_321_g(var1, var2, var3, var4);
return super.blockActivated(var1, var2, var3, var4, var5);
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
this.func_321_g(var1, var2, var3, var4);
return super.blockActivated(var1, var2, var3, var4, var5);
}
private void func_321_g(World var1, int var2, int var3, int var4) {
this.func_320_h(var1, var2, var3, var4);
if(this.blockID == Block.oreRedstone.blockID) {
var1.setBlockWithNotify(var2, var3, var4, Block.oreRedstoneGlowing.blockID);
}
private void func_321_g(World var1, int var2, int var3, int var4) {
this.func_320_h(var1, var2, var3, var4);
if (this.blockID == Block.oreRedstone.blockID) {
var1.setBlockWithNotify(var2, var3, var4, Block.oreRedstoneGlowing.blockID);
}
}
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if(this.blockID == Block.oreRedstoneGlowing.blockID) {
var1.setBlockWithNotify(var2, var3, var4, Block.oreRedstone.blockID);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if (this.blockID == Block.oreRedstoneGlowing.blockID) {
var1.setBlockWithNotify(var2, var3, var4, Block.oreRedstone.blockID);
}
}
}
public int idDropped(int var1, Random var2) {
return Item.redstone.shiftedIndex;
}
public int idDropped(int var1, Random var2) {
return Item.redstone.shiftedIndex;
}
public int quantityDropped(Random var1) {
return 4 + var1.nextInt(2);
}
public int quantityDropped(Random var1) {
return 4 + var1.nextInt(2);
}
private void func_320_h(World var1, int var2, int var3, int var4) {
Random var5 = var1.rand;
double var6 = 1.0D / 16.0D;
private void func_320_h(World var1, int var2, int var3, int var4) {
Random var5 = var1.rand;
double var6 = 1.0D / 16.0D;
for(int var8 = 0; var8 < 6; ++var8) {
double var9 = (double)((float)var2 + var5.nextFloat());
double var11 = (double)((float)var3 + var5.nextFloat());
double var13 = (double)((float)var4 + var5.nextFloat());
if(var8 == 0 && !var1.isBlockOpaqueCube(var2, var3 + 1, var4)) {
var11 = (double)(var3 + 1) + var6;
}
for (int var8 = 0; var8 < 6; ++var8) {
double var9 = (double) ((float) var2 + var5.nextFloat());
double var11 = (double) ((float) var3 + var5.nextFloat());
double var13 = (double) ((float) var4 + var5.nextFloat());
if (var8 == 0 && !var1.isBlockOpaqueCube(var2, var3 + 1, var4)) {
var11 = (double) (var3 + 1) + var6;
}
if(var8 == 1 && !var1.isBlockOpaqueCube(var2, var3 - 1, var4)) {
var11 = (double)(var3 + 0) - var6;
}
if (var8 == 1 && !var1.isBlockOpaqueCube(var2, var3 - 1, var4)) {
var11 = (double) (var3 + 0) - var6;
}
if(var8 == 2 && !var1.isBlockOpaqueCube(var2, var3, var4 + 1)) {
var13 = (double)(var4 + 1) + var6;
}
if (var8 == 2 && !var1.isBlockOpaqueCube(var2, var3, var4 + 1)) {
var13 = (double) (var4 + 1) + var6;
}
if(var8 == 3 && !var1.isBlockOpaqueCube(var2, var3, var4 - 1)) {
var13 = (double)(var4 + 0) - var6;
}
if (var8 == 3 && !var1.isBlockOpaqueCube(var2, var3, var4 - 1)) {
var13 = (double) (var4 + 0) - var6;
}
if(var8 == 4 && !var1.isBlockOpaqueCube(var2 + 1, var3, var4)) {
var9 = (double)(var2 + 1) + var6;
}
if (var8 == 4 && !var1.isBlockOpaqueCube(var2 + 1, var3, var4)) {
var9 = (double) (var2 + 1) + var6;
}
if(var8 == 5 && !var1.isBlockOpaqueCube(var2 - 1, var3, var4)) {
var9 = (double)(var2 + 0) - var6;
}
if (var8 == 5 && !var1.isBlockOpaqueCube(var2 - 1, var3, var4)) {
var9 = (double) (var2 + 0) - var6;
}
if(var9 < (double)var2 || var9 > (double)(var2 + 1) || var11 < 0.0D || var11 > (double)(var3 + 1) || var13 < (double)var4 || var13 > (double)(var4 + 1)) {
var1.spawnParticle("reddust", var9, var11, var13, 0.0D, 0.0D, 0.0D);
}
}
if (var9 < (double) var2 || var9 > (double) (var2 + 1) || var11 < 0.0D || var11 > (double) (var3 + 1) || var13 < (double) var4 || var13 > (double) (var4 + 1)) {
var1.spawnParticle("reddust", var9, var11, var13, 0.0D, 0.0D, 0.0D);
}
}
}
}
}

View file

@ -1,6 +1,5 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityPlayer;
@ -9,134 +8,136 @@ import net.minecraft.math.MathHelper;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import java.util.Random;
public class BlockRedstoneRepeater extends Block {
public static final double[] field_22014_a = new double[]{-0.0625D, 1.0D / 16.0D, 0.1875D, 0.3125D};
private static final int[] field_22013_b = new int[]{1, 2, 3, 4};
private final boolean field_22015_c;
public static final double[] field_22014_a = new double[]{-0.0625D, 1.0D / 16.0D, 0.1875D, 0.3125D};
private static final int[] field_22013_b = new int[]{1, 2, 3, 4};
private final boolean field_22015_c;
protected BlockRedstoneRepeater(int var1, boolean var2) {
super(var1, 6, Material.circuits);
this.field_22015_c = var2;
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 2.0F / 16.0F, 1.0F);
}
protected BlockRedstoneRepeater(int var1, boolean var2) {
super(var1, 6, Material.circuits);
this.field_22015_c = var2;
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 2.0F / 16.0F, 1.0F);
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return !var1.isBlockNormalCube(var2, var3 - 1, var4) ? false : super.canPlaceBlockAt(var1, var2, var3, var4);
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return !var1.isBlockNormalCube(var2, var3 - 1, var4) ? false : super.canPlaceBlockAt(var1, var2, var3, var4);
}
public boolean canBlockStay(World var1, int var2, int var3, int var4) {
return !var1.isBlockNormalCube(var2, var3 - 1, var4) ? false : super.canBlockStay(var1, var2, var3, var4);
}
public boolean canBlockStay(World var1, int var2, int var3, int var4) {
return !var1.isBlockNormalCube(var2, var3 - 1, var4) ? false : super.canBlockStay(var1, var2, var3, var4);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
boolean var7 = this.func_22012_g(var1, var2, var3, var4, var6);
if(this.field_22015_c && !var7) {
var1.setBlockAndMetadataWithNotify(var2, var3, var4, Block.redstoneRepeaterIdle.blockID, var6);
} else if(!this.field_22015_c) {
var1.setBlockAndMetadataWithNotify(var2, var3, var4, Block.redstoneRepeaterActive.blockID, var6);
if(!var7) {
int var8 = (var6 & 12) >> 2;
var1.scheduleUpdateTick(var2, var3, var4, Block.redstoneRepeaterActive.blockID, field_22013_b[var8] * 2);
}
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
boolean var7 = this.func_22012_g(var1, var2, var3, var4, var6);
if (this.field_22015_c && !var7) {
var1.setBlockAndMetadataWithNotify(var2, var3, var4, Block.redstoneRepeaterIdle.blockID, var6);
} else if (!this.field_22015_c) {
var1.setBlockAndMetadataWithNotify(var2, var3, var4, Block.redstoneRepeaterActive.blockID, var6);
if (!var7) {
int var8 = (var6 & 12) >> 2;
var1.scheduleUpdateTick(var2, var3, var4, Block.redstoneRepeaterActive.blockID, field_22013_b[var8] * 2);
}
}
}
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
return var1 == 0 ? (this.field_22015_c ? 99 : 115) : (var1 == 1 ? (this.field_22015_c ? 147 : 131) : 5);
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
return var1 == 0 ? (this.field_22015_c ? 99 : 115) : (var1 == 1 ? (this.field_22015_c ? 147 : 131) : 5);
}
public int getBlockTextureFromSide(int var1) {
return this.getBlockTextureFromSideAndMetadata(var1, 0);
}
public int getBlockTextureFromSide(int var1) {
return this.getBlockTextureFromSideAndMetadata(var1, 0);
}
public boolean isIndirectlyPoweringTo(World var1, int var2, int var3, int var4, int var5) {
return this.isPoweringTo(var1, var2, var3, var4, var5);
}
public boolean isIndirectlyPoweringTo(World var1, int var2, int var3, int var4, int var5) {
return this.isPoweringTo(var1, var2, var3, var4, var5);
}
public boolean isPoweringTo(IBlockAccess var1, int var2, int var3, int var4, int var5) {
if(!this.field_22015_c) {
return false;
} else {
int var6 = var1.getBlockMetadata(var2, var3, var4) & 3;
return var6 == 0 && var5 == 3 ? true : (var6 == 1 && var5 == 4 ? true : (var6 == 2 && var5 == 2 ? true : var6 == 3 && var5 == 5));
}
}
public boolean isPoweringTo(IBlockAccess var1, int var2, int var3, int var4, int var5) {
if (!this.field_22015_c) {
return false;
} else {
int var6 = var1.getBlockMetadata(var2, var3, var4) & 3;
return var6 == 0 && var5 == 3 ? true : (var6 == 1 && var5 == 4 ? true : (var6 == 2 && var5 == 2 ? true : var6 == 3 && var5 == 5));
}
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if(!this.canBlockStay(var1, var2, var3, var4)) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
} else {
int var6 = var1.getBlockMetadata(var2, var3, var4);
boolean var7 = this.func_22012_g(var1, var2, var3, var4, var6);
int var8 = (var6 & 12) >> 2;
if(this.field_22015_c && !var7) {
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, field_22013_b[var8] * 2);
} else if(!this.field_22015_c && var7) {
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, field_22013_b[var8] * 2);
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if (!this.canBlockStay(var1, var2, var3, var4)) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
} else {
int var6 = var1.getBlockMetadata(var2, var3, var4);
boolean var7 = this.func_22012_g(var1, var2, var3, var4, var6);
int var8 = (var6 & 12) >> 2;
if (this.field_22015_c && !var7) {
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, field_22013_b[var8] * 2);
} else if (!this.field_22015_c && var7) {
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, field_22013_b[var8] * 2);
}
}
}
}
}
private boolean func_22012_g(World var1, int var2, int var3, int var4, int var5) {
int var6 = var5 & 3;
switch(var6) {
case 0:
return var1.isBlockIndirectlyProvidingPowerTo(var2, var3, var4 + 1, 3) || var1.getBlockId(var2, var3, var4 + 1) == Block.redstoneWire.blockID && var1.getBlockMetadata(var2, var3, var4 + 1) > 0;
case 1:
return var1.isBlockIndirectlyProvidingPowerTo(var2 - 1, var3, var4, 4) || var1.getBlockId(var2 - 1, var3, var4) == Block.redstoneWire.blockID && var1.getBlockMetadata(var2 - 1, var3, var4) > 0;
case 2:
return var1.isBlockIndirectlyProvidingPowerTo(var2, var3, var4 - 1, 2) || var1.getBlockId(var2, var3, var4 - 1) == Block.redstoneWire.blockID && var1.getBlockMetadata(var2, var3, var4 - 1) > 0;
case 3:
return var1.isBlockIndirectlyProvidingPowerTo(var2 + 1, var3, var4, 5) || var1.getBlockId(var2 + 1, var3, var4) == Block.redstoneWire.blockID && var1.getBlockMetadata(var2 + 1, var3, var4) > 0;
default:
return false;
}
}
private boolean func_22012_g(World var1, int var2, int var3, int var4, int var5) {
int var6 = var5 & 3;
switch (var6) {
case 0:
return var1.isBlockIndirectlyProvidingPowerTo(var2, var3, var4 + 1, 3) || var1.getBlockId(var2, var3, var4 + 1) == Block.redstoneWire.blockID && var1.getBlockMetadata(var2, var3, var4 + 1) > 0;
case 1:
return var1.isBlockIndirectlyProvidingPowerTo(var2 - 1, var3, var4, 4) || var1.getBlockId(var2 - 1, var3, var4) == Block.redstoneWire.blockID && var1.getBlockMetadata(var2 - 1, var3, var4) > 0;
case 2:
return var1.isBlockIndirectlyProvidingPowerTo(var2, var3, var4 - 1, 2) || var1.getBlockId(var2, var3, var4 - 1) == Block.redstoneWire.blockID && var1.getBlockMetadata(var2, var3, var4 - 1) > 0;
case 3:
return var1.isBlockIndirectlyProvidingPowerTo(var2 + 1, var3, var4, 5) || var1.getBlockId(var2 + 1, var3, var4) == Block.redstoneWire.blockID && var1.getBlockMetadata(var2 + 1, var3, var4) > 0;
default:
return false;
}
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
int var7 = (var6 & 12) >> 2;
var7 = var7 + 1 << 2 & 12;
var1.setBlockMetadataWithNotify(var2, var3, var4, var7 | var6 & 3);
return true;
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
int var7 = (var6 & 12) >> 2;
var7 = var7 + 1 << 2 & 12;
var1.setBlockMetadataWithNotify(var2, var3, var4, var7 | var6 & 3);
return true;
}
public boolean canProvidePower() {
return false;
}
public boolean canProvidePower() {
return false;
}
public void onBlockPlacedBy(World var1, int var2, int var3, int var4, EntityLiving var5) {
int var6 = ((MathHelper.floor_double((double)(var5.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3) + 2) % 4;
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
boolean var7 = this.func_22012_g(var1, var2, var3, var4, var6);
if(var7) {
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, 1);
}
public void onBlockPlacedBy(World var1, int var2, int var3, int var4, EntityLiving var5) {
int var6 = ((MathHelper.floor_double((double) (var5.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3) + 2) % 4;
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
boolean var7 = this.func_22012_g(var1, var2, var3, var4, var6);
if (var7) {
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, 1);
}
}
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public int idDropped(int var1, Random var2) {
return Item.redstoneRepeater.shiftedIndex;
}
public int idDropped(int var1, Random var2) {
return Item.redstoneRepeater.shiftedIndex;
}
}

View file

@ -1,132 +1,133 @@
package net.minecraft.block;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class BlockRedstoneTorch extends BlockTorch {
private boolean torchActive = false;
private static List torchUpdates = new ArrayList();
private boolean torchActive = false;
private static List torchUpdates = new ArrayList();
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
return var1 == 1 ? Block.redstoneWire.getBlockTextureFromSideAndMetadata(var1, var2) : super.getBlockTextureFromSideAndMetadata(var1, var2);
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
return var1 == 1 ? Block.redstoneWire.getBlockTextureFromSideAndMetadata(var1, var2) : super.getBlockTextureFromSideAndMetadata(var1, var2);
}
private boolean checkForBurnout(World var1, int var2, int var3, int var4, boolean var5) {
if(var5) {
torchUpdates.add(new RedstoneUpdateInfo(var2, var3, var4, var1.getWorldTime()));
}
private boolean checkForBurnout(World var1, int var2, int var3, int var4, boolean var5) {
if (var5) {
torchUpdates.add(new RedstoneUpdateInfo(var2, var3, var4, var1.getWorldTime()));
}
int var6 = 0;
int var6 = 0;
for(int var7 = 0; var7 < torchUpdates.size(); ++var7) {
RedstoneUpdateInfo var8 = (RedstoneUpdateInfo)torchUpdates.get(var7);
if(var8.x == var2 && var8.y == var3 && var8.z == var4) {
++var6;
if(var6 >= 8) {
return true;
}
}
}
for (int var7 = 0; var7 < torchUpdates.size(); ++var7) {
RedstoneUpdateInfo var8 = (RedstoneUpdateInfo) torchUpdates.get(var7);
if (var8.x == var2 && var8.y == var3 && var8.z == var4) {
++var6;
if (var6 >= 8) {
return true;
}
}
}
return false;
}
return false;
}
protected BlockRedstoneTorch(int var1, int var2, boolean var3) {
super(var1, var2);
this.torchActive = var3;
this.setTickOnLoad(true);
}
protected BlockRedstoneTorch(int var1, int var2, boolean var3) {
super(var1, var2);
this.torchActive = var3;
this.setTickOnLoad(true);
}
public int tickRate() {
return 2;
}
public int tickRate() {
return 2;
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
if(var1.getBlockMetadata(var2, var3, var4) == 0) {
super.onBlockAdded(var1, var2, var3, var4);
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
if (var1.getBlockMetadata(var2, var3, var4) == 0) {
super.onBlockAdded(var1, var2, var3, var4);
}
if(this.torchActive) {
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
}
if (this.torchActive) {
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
}
}
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
if(this.torchActive) {
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
if (this.torchActive) {
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
}
}
}
public boolean isPoweringTo(IBlockAccess var1, int var2, int var3, int var4, int var5) {
if(!this.torchActive) {
return false;
} else {
int var6 = var1.getBlockMetadata(var2, var3, var4);
return var6 == 5 && var5 == 1 ? false : (var6 == 3 && var5 == 3 ? false : (var6 == 4 && var5 == 2 ? false : (var6 == 1 && var5 == 5 ? false : var6 != 2 || var5 != 4)));
}
}
public boolean isPoweringTo(IBlockAccess var1, int var2, int var3, int var4, int var5) {
if (!this.torchActive) {
return false;
} else {
int var6 = var1.getBlockMetadata(var2, var3, var4);
return var6 == 5 && var5 == 1 ? false : (var6 == 3 && var5 == 3 ? false : (var6 == 4 && var5 == 2 ? false : (var6 == 1 && var5 == 5 ? false : var6 != 2 || var5 != 4)));
}
}
private boolean func_30003_g(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
return var5 == 5 && var1.isBlockIndirectlyProvidingPowerTo(var2, var3 - 1, var4, 0) ? true : (var5 == 3 && var1.isBlockIndirectlyProvidingPowerTo(var2, var3, var4 - 1, 2) ? true : (var5 == 4 && var1.isBlockIndirectlyProvidingPowerTo(var2, var3, var4 + 1, 3) ? true : (var5 == 1 && var1.isBlockIndirectlyProvidingPowerTo(var2 - 1, var3, var4, 4) ? true : var5 == 2 && var1.isBlockIndirectlyProvidingPowerTo(var2 + 1, var3, var4, 5))));
}
private boolean func_30003_g(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
return var5 == 5 && var1.isBlockIndirectlyProvidingPowerTo(var2, var3 - 1, var4, 0) ? true : (var5 == 3 && var1.isBlockIndirectlyProvidingPowerTo(var2, var3, var4 - 1, 2) ? true : (var5 == 4 && var1.isBlockIndirectlyProvidingPowerTo(var2, var3, var4 + 1, 3) ? true : (var5 == 1 && var1.isBlockIndirectlyProvidingPowerTo(var2 - 1, var3, var4, 4) ? true : var5 == 2 && var1.isBlockIndirectlyProvidingPowerTo(var2 + 1, var3, var4, 5))));
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
boolean var6 = this.func_30003_g(var1, var2, var3, var4);
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
boolean var6 = this.func_30003_g(var1, var2, var3, var4);
while(torchUpdates.size() > 0 && var1.getWorldTime() - ((RedstoneUpdateInfo)torchUpdates.get(0)).updateTime > 100L) {
torchUpdates.remove(0);
}
while (torchUpdates.size() > 0 && var1.getWorldTime() - ((RedstoneUpdateInfo) torchUpdates.get(0)).updateTime > 100L) {
torchUpdates.remove(0);
}
if(this.torchActive) {
if(var6) {
var1.setBlockAndMetadataWithNotify(var2, var3, var4, Block.torchRedstoneIdle.blockID, var1.getBlockMetadata(var2, var3, var4));
if(this.checkForBurnout(var1, var2, var3, var4, true)) {
var1.playSoundEffect((double)((float)var2 + 0.5F), (double)((float)var3 + 0.5F), (double)((float)var4 + 0.5F), "random.fizz", 0.5F, 2.6F + (var1.rand.nextFloat() - var1.rand.nextFloat()) * 0.8F);
if (this.torchActive) {
if (var6) {
var1.setBlockAndMetadataWithNotify(var2, var3, var4, Block.torchRedstoneIdle.blockID, var1.getBlockMetadata(var2, var3, var4));
if (this.checkForBurnout(var1, var2, var3, var4, true)) {
var1.playSoundEffect((double) ((float) var2 + 0.5F), (double) ((float) var3 + 0.5F), (double) ((float) var4 + 0.5F), "random.fizz", 0.5F, 2.6F + (var1.rand.nextFloat() - var1.rand.nextFloat()) * 0.8F);
for(int var7 = 0; var7 < 5; ++var7) {
double var8 = (double)var2 + var5.nextDouble() * 0.6D + 0.2D;
double var10 = (double)var3 + var5.nextDouble() * 0.6D + 0.2D;
double var12 = (double)var4 + var5.nextDouble() * 0.6D + 0.2D;
var1.spawnParticle("smoke", var8, var10, var12, 0.0D, 0.0D, 0.0D);
}
}
}
} else if(!var6 && !this.checkForBurnout(var1, var2, var3, var4, false)) {
var1.setBlockAndMetadataWithNotify(var2, var3, var4, Block.torchRedstoneActive.blockID, var1.getBlockMetadata(var2, var3, var4));
}
for (int var7 = 0; var7 < 5; ++var7) {
double var8 = (double) var2 + var5.nextDouble() * 0.6D + 0.2D;
double var10 = (double) var3 + var5.nextDouble() * 0.6D + 0.2D;
double var12 = (double) var4 + var5.nextDouble() * 0.6D + 0.2D;
var1.spawnParticle("smoke", var8, var10, var12, 0.0D, 0.0D, 0.0D);
}
}
}
} else if (!var6 && !this.checkForBurnout(var1, var2, var3, var4, false)) {
var1.setBlockAndMetadataWithNotify(var2, var3, var4, Block.torchRedstoneActive.blockID, var1.getBlockMetadata(var2, var3, var4));
}
}
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
super.onNeighborBlockChange(var1, var2, var3, var4, var5);
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
super.onNeighborBlockChange(var1, var2, var3, var4, var5);
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
}
public boolean isIndirectlyPoweringTo(World var1, int var2, int var3, int var4, int var5) {
return var5 == 0 ? this.isPoweringTo(var1, var2, var3, var4, var5) : false;
}
public boolean isIndirectlyPoweringTo(World var1, int var2, int var3, int var4, int var5) {
return var5 == 0 ? this.isPoweringTo(var1, var2, var3, var4, var5) : false;
}
public int idDropped(int var1, Random var2) {
return Block.torchRedstoneActive.blockID;
}
public int idDropped(int var1, Random var2) {
return Block.torchRedstoneActive.blockID;
}
public boolean canProvidePower() {
return true;
}
public boolean canProvidePower() {
return true;
}
}

View file

@ -1,9 +1,5 @@
package net.minecraft.block;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
import net.minecraft.block.material.Material;
import net.minecraft.item.Item;
import net.minecraft.math.AxisAlignedBB;
@ -12,332 +8,337 @@ import net.minecraft.util.ModelBed;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class BlockRedstoneWire extends Block {
private boolean wiresProvidePower = true;
private Set field_21032_b = new HashSet();
private boolean wiresProvidePower = true;
private Set field_21032_b = new HashSet();
public BlockRedstoneWire(int var1, int var2) {
super(var1, var2, Material.circuits);
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F / 16.0F, 1.0F);
}
public BlockRedstoneWire(int var1, int var2) {
super(var1, var2, Material.circuits);
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F / 16.0F, 1.0F);
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
return this.blockIndexInTexture;
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
return this.blockIndexInTexture;
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return var1.isBlockNormalCube(var2, var3 - 1, var4);
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return var1.isBlockNormalCube(var2, var3 - 1, var4);
}
private void updateAndPropagateCurrentStrength(World var1, int var2, int var3, int var4) {
this.func_21031_a(var1, var2, var3, var4, var2, var3, var4);
ArrayList var5 = new ArrayList(this.field_21032_b);
this.field_21032_b.clear();
private void updateAndPropagateCurrentStrength(World var1, int var2, int var3, int var4) {
this.func_21031_a(var1, var2, var3, var4, var2, var3, var4);
ArrayList var5 = new ArrayList(this.field_21032_b);
this.field_21032_b.clear();
for(int var6 = 0; var6 < var5.size(); ++var6) {
ChunkPosition var7 = (ChunkPosition)var5.get(var6);
var1.notifyBlocksOfNeighborChange(var7.x, var7.y, var7.z, this.blockID);
}
for (int var6 = 0; var6 < var5.size(); ++var6) {
ChunkPosition var7 = (ChunkPosition) var5.get(var6);
var1.notifyBlocksOfNeighborChange(var7.x, var7.y, var7.z, this.blockID);
}
}
}
private void func_21031_a(World var1, int var2, int var3, int var4, int var5, int var6, int var7) {
int var8 = var1.getBlockMetadata(var2, var3, var4);
int var9 = 0;
this.wiresProvidePower = false;
boolean var10 = var1.isBlockIndirectlyGettingPowered(var2, var3, var4);
this.wiresProvidePower = true;
int var11;
int var12;
int var13;
if(var10) {
var9 = 15;
} else {
for(var11 = 0; var11 < 4; ++var11) {
var12 = var2;
var13 = var4;
if(var11 == 0) {
var12 = var2 - 1;
}
private void func_21031_a(World var1, int var2, int var3, int var4, int var5, int var6, int var7) {
int var8 = var1.getBlockMetadata(var2, var3, var4);
int var9 = 0;
this.wiresProvidePower = false;
boolean var10 = var1.isBlockIndirectlyGettingPowered(var2, var3, var4);
this.wiresProvidePower = true;
int var11;
int var12;
int var13;
if (var10) {
var9 = 15;
} else {
for (var11 = 0; var11 < 4; ++var11) {
var12 = var2;
var13 = var4;
if (var11 == 0) {
var12 = var2 - 1;
}
if(var11 == 1) {
++var12;
}
if (var11 == 1) {
++var12;
}
if(var11 == 2) {
var13 = var4 - 1;
}
if (var11 == 2) {
var13 = var4 - 1;
}
if(var11 == 3) {
++var13;
}
if (var11 == 3) {
++var13;
}
if(var12 != var5 || var3 != var6 || var13 != var7) {
var9 = this.getMaxCurrentStrength(var1, var12, var3, var13, var9);
}
if (var12 != var5 || var3 != var6 || var13 != var7) {
var9 = this.getMaxCurrentStrength(var1, var12, var3, var13, var9);
}
if(var1.isBlockNormalCube(var12, var3, var13) && !var1.isBlockNormalCube(var2, var3 + 1, var4)) {
if(var12 != var5 || var3 + 1 != var6 || var13 != var7) {
var9 = this.getMaxCurrentStrength(var1, var12, var3 + 1, var13, var9);
}
} else if(!var1.isBlockNormalCube(var12, var3, var13) && (var12 != var5 || var3 - 1 != var6 || var13 != var7)) {
var9 = this.getMaxCurrentStrength(var1, var12, var3 - 1, var13, var9);
}
}
if (var1.isBlockNormalCube(var12, var3, var13) && !var1.isBlockNormalCube(var2, var3 + 1, var4)) {
if (var12 != var5 || var3 + 1 != var6 || var13 != var7) {
var9 = this.getMaxCurrentStrength(var1, var12, var3 + 1, var13, var9);
}
} else if (!var1.isBlockNormalCube(var12, var3, var13) && (var12 != var5 || var3 - 1 != var6 || var13 != var7)) {
var9 = this.getMaxCurrentStrength(var1, var12, var3 - 1, var13, var9);
}
}
if(var9 > 0) {
--var9;
} else {
var9 = 0;
}
}
if (var9 > 0) {
--var9;
} else {
var9 = 0;
}
}
if(var8 != var9) {
var1.editingBlocks = true;
var1.setBlockMetadataWithNotify(var2, var3, var4, var9);
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
var1.editingBlocks = false;
if (var8 != var9) {
var1.editingBlocks = true;
var1.setBlockMetadataWithNotify(var2, var3, var4, var9);
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
var1.editingBlocks = false;
for(var11 = 0; var11 < 4; ++var11) {
var12 = var2;
var13 = var4;
int var14 = var3 - 1;
if(var11 == 0) {
var12 = var2 - 1;
}
for (var11 = 0; var11 < 4; ++var11) {
var12 = var2;
var13 = var4;
int var14 = var3 - 1;
if (var11 == 0) {
var12 = var2 - 1;
}
if(var11 == 1) {
++var12;
}
if (var11 == 1) {
++var12;
}
if(var11 == 2) {
var13 = var4 - 1;
}
if (var11 == 2) {
var13 = var4 - 1;
}
if(var11 == 3) {
++var13;
}
if (var11 == 3) {
++var13;
}
if(var1.isBlockNormalCube(var12, var3, var13)) {
var14 += 2;
}
if (var1.isBlockNormalCube(var12, var3, var13)) {
var14 += 2;
}
boolean var15 = false;
int var16 = this.getMaxCurrentStrength(var1, var12, var3, var13, -1);
var9 = var1.getBlockMetadata(var2, var3, var4);
if(var9 > 0) {
--var9;
}
boolean var15 = false;
int var16 = this.getMaxCurrentStrength(var1, var12, var3, var13, -1);
var9 = var1.getBlockMetadata(var2, var3, var4);
if (var9 > 0) {
--var9;
}
if(var16 >= 0 && var16 != var9) {
this.func_21031_a(var1, var12, var3, var13, var2, var3, var4);
}
if (var16 >= 0 && var16 != var9) {
this.func_21031_a(var1, var12, var3, var13, var2, var3, var4);
}
var16 = this.getMaxCurrentStrength(var1, var12, var14, var13, -1);
var9 = var1.getBlockMetadata(var2, var3, var4);
if(var9 > 0) {
--var9;
}
var16 = this.getMaxCurrentStrength(var1, var12, var14, var13, -1);
var9 = var1.getBlockMetadata(var2, var3, var4);
if (var9 > 0) {
--var9;
}
if(var16 >= 0 && var16 != var9) {
this.func_21031_a(var1, var12, var14, var13, var2, var3, var4);
}
}
if (var16 >= 0 && var16 != var9) {
this.func_21031_a(var1, var12, var14, var13, var2, var3, var4);
}
}
if(var8 == 0 || var9 == 0) {
this.field_21032_b.add(new ChunkPosition(var2, var3, var4));
this.field_21032_b.add(new ChunkPosition(var2 - 1, var3, var4));
this.field_21032_b.add(new ChunkPosition(var2 + 1, var3, var4));
this.field_21032_b.add(new ChunkPosition(var2, var3 - 1, var4));
this.field_21032_b.add(new ChunkPosition(var2, var3 + 1, var4));
this.field_21032_b.add(new ChunkPosition(var2, var3, var4 - 1));
this.field_21032_b.add(new ChunkPosition(var2, var3, var4 + 1));
}
}
if (var8 == 0 || var9 == 0) {
this.field_21032_b.add(new ChunkPosition(var2, var3, var4));
this.field_21032_b.add(new ChunkPosition(var2 - 1, var3, var4));
this.field_21032_b.add(new ChunkPosition(var2 + 1, var3, var4));
this.field_21032_b.add(new ChunkPosition(var2, var3 - 1, var4));
this.field_21032_b.add(new ChunkPosition(var2, var3 + 1, var4));
this.field_21032_b.add(new ChunkPosition(var2, var3, var4 - 1));
this.field_21032_b.add(new ChunkPosition(var2, var3, var4 + 1));
}
}
}
}
private void notifyWireNeighborsOfNeighborChange(World var1, int var2, int var3, int var4) {
if(var1.getBlockId(var2, var3, var4) == this.blockID) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
}
}
private void notifyWireNeighborsOfNeighborChange(World var1, int var2, int var3, int var4) {
if (var1.getBlockId(var2, var3, var4) == this.blockID) {
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
}
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
super.onBlockAdded(var1, var2, var3, var4);
if(!var1.singleplayerWorld) {
this.updateAndPropagateCurrentStrength(var1, var2, var3, var4);
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
this.notifyWireNeighborsOfNeighborChange(var1, var2 - 1, var3, var4);
this.notifyWireNeighborsOfNeighborChange(var1, var2 + 1, var3, var4);
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3, var4 - 1);
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3, var4 + 1);
if(var1.isBlockNormalCube(var2 - 1, var3, var4)) {
this.notifyWireNeighborsOfNeighborChange(var1, var2 - 1, var3 + 1, var4);
} else {
this.notifyWireNeighborsOfNeighborChange(var1, var2 - 1, var3 - 1, var4);
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
super.onBlockAdded(var1, var2, var3, var4);
if (!var1.singleplayerWorld) {
this.updateAndPropagateCurrentStrength(var1, var2, var3, var4);
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
this.notifyWireNeighborsOfNeighborChange(var1, var2 - 1, var3, var4);
this.notifyWireNeighborsOfNeighborChange(var1, var2 + 1, var3, var4);
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3, var4 - 1);
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3, var4 + 1);
if (var1.isBlockNormalCube(var2 - 1, var3, var4)) {
this.notifyWireNeighborsOfNeighborChange(var1, var2 - 1, var3 + 1, var4);
} else {
this.notifyWireNeighborsOfNeighborChange(var1, var2 - 1, var3 - 1, var4);
}
if(var1.isBlockNormalCube(var2 + 1, var3, var4)) {
this.notifyWireNeighborsOfNeighborChange(var1, var2 + 1, var3 + 1, var4);
} else {
this.notifyWireNeighborsOfNeighborChange(var1, var2 + 1, var3 - 1, var4);
}
if (var1.isBlockNormalCube(var2 + 1, var3, var4)) {
this.notifyWireNeighborsOfNeighborChange(var1, var2 + 1, var3 + 1, var4);
} else {
this.notifyWireNeighborsOfNeighborChange(var1, var2 + 1, var3 - 1, var4);
}
if(var1.isBlockNormalCube(var2, var3, var4 - 1)) {
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 + 1, var4 - 1);
} else {
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 - 1, var4 - 1);
}
if (var1.isBlockNormalCube(var2, var3, var4 - 1)) {
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 + 1, var4 - 1);
} else {
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 - 1, var4 - 1);
}
if(var1.isBlockNormalCube(var2, var3, var4 + 1)) {
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 + 1, var4 + 1);
} else {
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 - 1, var4 + 1);
}
if (var1.isBlockNormalCube(var2, var3, var4 + 1)) {
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 + 1, var4 + 1);
} else {
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 - 1, var4 + 1);
}
}
}
}
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
super.onBlockRemoval(var1, var2, var3, var4);
if(!var1.singleplayerWorld) {
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
this.updateAndPropagateCurrentStrength(var1, var2, var3, var4);
this.notifyWireNeighborsOfNeighborChange(var1, var2 - 1, var3, var4);
this.notifyWireNeighborsOfNeighborChange(var1, var2 + 1, var3, var4);
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3, var4 - 1);
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3, var4 + 1);
if(var1.isBlockNormalCube(var2 - 1, var3, var4)) {
this.notifyWireNeighborsOfNeighborChange(var1, var2 - 1, var3 + 1, var4);
} else {
this.notifyWireNeighborsOfNeighborChange(var1, var2 - 1, var3 - 1, var4);
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
super.onBlockRemoval(var1, var2, var3, var4);
if (!var1.singleplayerWorld) {
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
this.updateAndPropagateCurrentStrength(var1, var2, var3, var4);
this.notifyWireNeighborsOfNeighborChange(var1, var2 - 1, var3, var4);
this.notifyWireNeighborsOfNeighborChange(var1, var2 + 1, var3, var4);
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3, var4 - 1);
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3, var4 + 1);
if (var1.isBlockNormalCube(var2 - 1, var3, var4)) {
this.notifyWireNeighborsOfNeighborChange(var1, var2 - 1, var3 + 1, var4);
} else {
this.notifyWireNeighborsOfNeighborChange(var1, var2 - 1, var3 - 1, var4);
}
if(var1.isBlockNormalCube(var2 + 1, var3, var4)) {
this.notifyWireNeighborsOfNeighborChange(var1, var2 + 1, var3 + 1, var4);
} else {
this.notifyWireNeighborsOfNeighborChange(var1, var2 + 1, var3 - 1, var4);
}
if (var1.isBlockNormalCube(var2 + 1, var3, var4)) {
this.notifyWireNeighborsOfNeighborChange(var1, var2 + 1, var3 + 1, var4);
} else {
this.notifyWireNeighborsOfNeighborChange(var1, var2 + 1, var3 - 1, var4);
}
if(var1.isBlockNormalCube(var2, var3, var4 - 1)) {
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 + 1, var4 - 1);
} else {
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 - 1, var4 - 1);
}
if (var1.isBlockNormalCube(var2, var3, var4 - 1)) {
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 + 1, var4 - 1);
} else {
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 - 1, var4 - 1);
}
if(var1.isBlockNormalCube(var2, var3, var4 + 1)) {
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 + 1, var4 + 1);
} else {
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 - 1, var4 + 1);
}
if (var1.isBlockNormalCube(var2, var3, var4 + 1)) {
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 + 1, var4 + 1);
} else {
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 - 1, var4 + 1);
}
}
}
}
}
private int getMaxCurrentStrength(World var1, int var2, int var3, int var4, int var5) {
if(var1.getBlockId(var2, var3, var4) != this.blockID) {
return var5;
} else {
int var6 = var1.getBlockMetadata(var2, var3, var4);
return var6 > var5 ? var6 : var5;
}
}
private int getMaxCurrentStrength(World var1, int var2, int var3, int var4, int var5) {
if (var1.getBlockId(var2, var3, var4) != this.blockID) {
return var5;
} else {
int var6 = var1.getBlockMetadata(var2, var3, var4);
return var6 > var5 ? var6 : var5;
}
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if(!var1.singleplayerWorld) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
boolean var7 = this.canPlaceBlockAt(var1, var2, var3, var4);
if(!var7) {
this.dropBlockAsItem(var1, var2, var3, var4, var6);
var1.setBlockWithNotify(var2, var3, var4, 0);
} else {
this.updateAndPropagateCurrentStrength(var1, var2, var3, var4);
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if (!var1.singleplayerWorld) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
boolean var7 = this.canPlaceBlockAt(var1, var2, var3, var4);
if (!var7) {
this.dropBlockAsItem(var1, var2, var3, var4, var6);
var1.setBlockWithNotify(var2, var3, var4, 0);
} else {
this.updateAndPropagateCurrentStrength(var1, var2, var3, var4);
}
super.onNeighborBlockChange(var1, var2, var3, var4, var5);
}
}
super.onNeighborBlockChange(var1, var2, var3, var4, var5);
}
}
public int idDropped(int var1, Random var2) {
return Item.redstone.shiftedIndex;
}
public int idDropped(int var1, Random var2) {
return Item.redstone.shiftedIndex;
}
public boolean isIndirectlyPoweringTo(World var1, int var2, int var3, int var4, int var5) {
return !this.wiresProvidePower ? false : this.isPoweringTo(var1, var2, var3, var4, var5);
}
public boolean isIndirectlyPoweringTo(World var1, int var2, int var3, int var4, int var5) {
return !this.wiresProvidePower ? false : this.isPoweringTo(var1, var2, var3, var4, var5);
}
public boolean isPoweringTo(IBlockAccess var1, int var2, int var3, int var4, int var5) {
if(!this.wiresProvidePower) {
return false;
} else if(var1.getBlockMetadata(var2, var3, var4) == 0) {
return false;
} else if(var5 == 1) {
return true;
} else {
boolean var6 = isPowerProviderOrWire(var1, var2 - 1, var3, var4, 1) || !var1.isBlockNormalCube(var2 - 1, var3, var4) && isPowerProviderOrWire(var1, var2 - 1, var3 - 1, var4, -1);
boolean var7 = isPowerProviderOrWire(var1, var2 + 1, var3, var4, 3) || !var1.isBlockNormalCube(var2 + 1, var3, var4) && isPowerProviderOrWire(var1, var2 + 1, var3 - 1, var4, -1);
boolean var8 = isPowerProviderOrWire(var1, var2, var3, var4 - 1, 2) || !var1.isBlockNormalCube(var2, var3, var4 - 1) && isPowerProviderOrWire(var1, var2, var3 - 1, var4 - 1, -1);
boolean var9 = isPowerProviderOrWire(var1, var2, var3, var4 + 1, 0) || !var1.isBlockNormalCube(var2, var3, var4 + 1) && isPowerProviderOrWire(var1, var2, var3 - 1, var4 + 1, -1);
if(!var1.isBlockNormalCube(var2, var3 + 1, var4)) {
if(var1.isBlockNormalCube(var2 - 1, var3, var4) && isPowerProviderOrWire(var1, var2 - 1, var3 + 1, var4, -1)) {
var6 = true;
}
public boolean isPoweringTo(IBlockAccess var1, int var2, int var3, int var4, int var5) {
if (!this.wiresProvidePower) {
return false;
} else if (var1.getBlockMetadata(var2, var3, var4) == 0) {
return false;
} else if (var5 == 1) {
return true;
} else {
boolean var6 = isPowerProviderOrWire(var1, var2 - 1, var3, var4, 1) || !var1.isBlockNormalCube(var2 - 1, var3, var4) && isPowerProviderOrWire(var1, var2 - 1, var3 - 1, var4, -1);
boolean var7 = isPowerProviderOrWire(var1, var2 + 1, var3, var4, 3) || !var1.isBlockNormalCube(var2 + 1, var3, var4) && isPowerProviderOrWire(var1, var2 + 1, var3 - 1, var4, -1);
boolean var8 = isPowerProviderOrWire(var1, var2, var3, var4 - 1, 2) || !var1.isBlockNormalCube(var2, var3, var4 - 1) && isPowerProviderOrWire(var1, var2, var3 - 1, var4 - 1, -1);
boolean var9 = isPowerProviderOrWire(var1, var2, var3, var4 + 1, 0) || !var1.isBlockNormalCube(var2, var3, var4 + 1) && isPowerProviderOrWire(var1, var2, var3 - 1, var4 + 1, -1);
if (!var1.isBlockNormalCube(var2, var3 + 1, var4)) {
if (var1.isBlockNormalCube(var2 - 1, var3, var4) && isPowerProviderOrWire(var1, var2 - 1, var3 + 1, var4, -1)) {
var6 = true;
}
if(var1.isBlockNormalCube(var2 + 1, var3, var4) && isPowerProviderOrWire(var1, var2 + 1, var3 + 1, var4, -1)) {
var7 = true;
}
if (var1.isBlockNormalCube(var2 + 1, var3, var4) && isPowerProviderOrWire(var1, var2 + 1, var3 + 1, var4, -1)) {
var7 = true;
}
if(var1.isBlockNormalCube(var2, var3, var4 - 1) && isPowerProviderOrWire(var1, var2, var3 + 1, var4 - 1, -1)) {
var8 = true;
}
if (var1.isBlockNormalCube(var2, var3, var4 - 1) && isPowerProviderOrWire(var1, var2, var3 + 1, var4 - 1, -1)) {
var8 = true;
}
if(var1.isBlockNormalCube(var2, var3, var4 + 1) && isPowerProviderOrWire(var1, var2, var3 + 1, var4 + 1, -1)) {
var9 = true;
}
}
if (var1.isBlockNormalCube(var2, var3, var4 + 1) && isPowerProviderOrWire(var1, var2, var3 + 1, var4 + 1, -1)) {
var9 = true;
}
}
return !var8 && !var7 && !var6 && !var9 && var5 >= 2 && var5 <= 5 ? true : (var5 == 2 && var8 && !var6 && !var7 ? true : (var5 == 3 && var9 && !var6 && !var7 ? true : (var5 == 4 && var6 && !var8 && !var9 ? true : var5 == 5 && var7 && !var8 && !var9)));
}
}
return !var8 && !var7 && !var6 && !var9 && var5 >= 2 && var5 <= 5 ? true : (var5 == 2 && var8 && !var6 && !var7 ? true : (var5 == 3 && var9 && !var6 && !var7 ? true : (var5 == 4 && var6 && !var8 && !var9 ? true : var5 == 5 && var7 && !var8 && !var9)));
}
}
public boolean canProvidePower() {
return this.wiresProvidePower;
}
public boolean canProvidePower() {
return this.wiresProvidePower;
}
public static boolean isPowerProviderOrWire(IBlockAccess var0, int var1, int var2, int var3, int var4) {
int var5 = var0.getBlockId(var1, var2, var3);
if(var5 == Block.redstoneWire.blockID) {
return true;
} else if(var5 == 0) {
return false;
} else if(Block.blocksList[var5].canProvidePower()) {
return true;
} else if(var5 != Block.redstoneRepeaterIdle.blockID && var5 != Block.redstoneRepeaterActive.blockID) {
return false;
} else {
int var6 = var0.getBlockMetadata(var1, var2, var3);
return var4 == ModelBed.field_22153_b[var6 & 3];
}
}
public static boolean isPowerProviderOrWire(IBlockAccess var0, int var1, int var2, int var3, int var4) {
int var5 = var0.getBlockId(var1, var2, var3);
if (var5 == Block.redstoneWire.blockID) {
return true;
} else if (var5 == 0) {
return false;
} else if (Block.blocksList[var5].canProvidePower()) {
return true;
} else if (var5 != Block.redstoneRepeaterIdle.blockID && var5 != Block.redstoneRepeaterActive.blockID) {
return false;
} else {
int var6 = var0.getBlockMetadata(var1, var2, var3);
return var4 == ModelBed.field_22153_b[var6 & 3];
}
}
}

View file

@ -1,73 +1,74 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.item.Item;
import net.minecraft.math.AxisAlignedBB;
import net.minecraft.world.World;
import java.util.Random;
public class BlockReed extends Block {
protected BlockReed(int var1, int var2) {
super(var1, Material.plants);
this.blockIndexInTexture = var2;
float var3 = 6.0F / 16.0F;
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 1.0F, 0.5F + var3);
this.setTickOnLoad(true);
}
protected BlockReed(int var1, int var2) {
super(var1, Material.plants);
this.blockIndexInTexture = var2;
float var3 = 6.0F / 16.0F;
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 1.0F, 0.5F + var3);
this.setTickOnLoad(true);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if(var1.isAirBlock(var2, var3 + 1, var4)) {
int var6;
for(var6 = 1; var1.getBlockId(var2, var3 - var6, var4) == this.blockID; ++var6) {
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if (var1.isAirBlock(var2, var3 + 1, var4)) {
int var6;
for (var6 = 1; var1.getBlockId(var2, var3 - var6, var4) == this.blockID; ++var6) {
}
if(var6 < 3) {
int var7 = var1.getBlockMetadata(var2, var3, var4);
if(var7 == 15) {
var1.setBlockWithNotify(var2, var3 + 1, var4, this.blockID);
var1.setBlockMetadataWithNotify(var2, var3, var4, 0);
} else {
var1.setBlockMetadataWithNotify(var2, var3, var4, var7 + 1);
}
}
}
if (var6 < 3) {
int var7 = var1.getBlockMetadata(var2, var3, var4);
if (var7 == 15) {
var1.setBlockWithNotify(var2, var3 + 1, var4, this.blockID);
var1.setBlockMetadataWithNotify(var2, var3, var4, 0);
} else {
var1.setBlockMetadataWithNotify(var2, var3, var4, var7 + 1);
}
}
}
}
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockId(var2, var3 - 1, var4);
return var5 == this.blockID ? true : (var5 != Block.grass.blockID && var5 != Block.dirt.blockID ? false : (var1.getBlockMaterial(var2 - 1, var3 - 1, var4) == Material.water ? true : (var1.getBlockMaterial(var2 + 1, var3 - 1, var4) == Material.water ? true : (var1.getBlockMaterial(var2, var3 - 1, var4 - 1) == Material.water ? true : var1.getBlockMaterial(var2, var3 - 1, var4 + 1) == Material.water))));
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockId(var2, var3 - 1, var4);
return var5 == this.blockID ? true : (var5 != Block.grass.blockID && var5 != Block.dirt.blockID ? false : (var1.getBlockMaterial(var2 - 1, var3 - 1, var4) == Material.water ? true : (var1.getBlockMaterial(var2 + 1, var3 - 1, var4) == Material.water ? true : (var1.getBlockMaterial(var2, var3 - 1, var4 - 1) == Material.water ? true : var1.getBlockMaterial(var2, var3 - 1, var4 + 1) == Material.water))));
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
this.checkBlockCoordValid(var1, var2, var3, var4);
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
this.checkBlockCoordValid(var1, var2, var3, var4);
}
protected final void checkBlockCoordValid(World var1, int var2, int var3, int var4) {
if(!this.canBlockStay(var1, var2, var3, var4)) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
protected final void checkBlockCoordValid(World var1, int var2, int var3, int var4) {
if (!this.canBlockStay(var1, var2, var3, var4)) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
}
public boolean canBlockStay(World var1, int var2, int var3, int var4) {
return this.canPlaceBlockAt(var1, var2, var3, var4);
}
public boolean canBlockStay(World var1, int var2, int var3, int var4) {
return this.canPlaceBlockAt(var1, var2, var3, var4);
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public int idDropped(int var1, Random var2) {
return Item.reed.shiftedIndex;
}
public int idDropped(int var1, Random var2) {
return Item.reed.shiftedIndex;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
}

View file

@ -1,63 +1,64 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityFallingSand;
import net.minecraft.world.World;
import java.util.Random;
public class BlockSand extends Block {
public static boolean fallInstantly = false;
public static boolean fallInstantly = false;
public BlockSand(int var1, int var2) {
super(var1, var2, Material.sand);
}
public BlockSand(int var1, int var2) {
super(var1, var2, Material.sand);
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
this.tryToFall(var1, var2, var3, var4);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
this.tryToFall(var1, var2, var3, var4);
}
private void tryToFall(World var1, int var2, int var3, int var4) {
if(canFallBelow(var1, var2, var3 - 1, var4) && var3 >= 0) {
byte var8 = 32;
if(!fallInstantly && var1.checkChunksExist(var2 - var8, var3 - var8, var4 - var8, var2 + var8, var3 + var8, var4 + var8)) {
EntityFallingSand var9 = new EntityFallingSand(var1, (double)((float)var2 + 0.5F), (double)((float)var3 + 0.5F), (double)((float)var4 + 0.5F), this.blockID);
var1.entityJoinedWorld(var9);
} else {
var1.setBlockWithNotify(var2, var3, var4, 0);
private void tryToFall(World var1, int var2, int var3, int var4) {
if (canFallBelow(var1, var2, var3 - 1, var4) && var3 >= 0) {
byte var8 = 32;
if (!fallInstantly && var1.checkChunksExist(var2 - var8, var3 - var8, var4 - var8, var2 + var8, var3 + var8, var4 + var8)) {
EntityFallingSand var9 = new EntityFallingSand(var1, (double) ((float) var2 + 0.5F), (double) ((float) var3 + 0.5F), (double) ((float) var4 + 0.5F), this.blockID);
var1.entityJoinedWorld(var9);
} else {
var1.setBlockWithNotify(var2, var3, var4, 0);
while(canFallBelow(var1, var2, var3 - 1, var4) && var3 > 0) {
--var3;
}
while (canFallBelow(var1, var2, var3 - 1, var4) && var3 > 0) {
--var3;
}
if(var3 > 0) {
var1.setBlockWithNotify(var2, var3, var4, this.blockID);
}
}
}
if (var3 > 0) {
var1.setBlockWithNotify(var2, var3, var4, this.blockID);
}
}
}
}
}
public int tickRate() {
return 3;
}
public int tickRate() {
return 3;
}
public static boolean canFallBelow(World var0, int var1, int var2, int var3) {
int var4 = var0.getBlockId(var1, var2, var3);
if(var4 == 0) {
return true;
} else if(var4 == Block.fire.blockID) {
return true;
} else {
Material var5 = Block.blocksList[var4].blockMaterial;
return var5 == Material.water ? true : var5 == Material.lava;
}
}
public static boolean canFallBelow(World var0, int var1, int var2, int var3) {
int var4 = var0.getBlockId(var1, var2, var3);
if (var4 == 0) {
return true;
} else if (var4 == Block.fire.blockID) {
return true;
} else {
Material var5 = Block.blocksList[var4].blockMaterial;
return var5 == Material.water ? true : var5 == Material.lava;
}
}
}

View file

@ -3,11 +3,11 @@ package net.minecraft.block;
import net.minecraft.block.material.Material;
public class BlockSandStone extends Block {
public BlockSandStone(int var1) {
super(var1, 192, Material.rock);
}
public BlockSandStone(int var1) {
super(var1, 192, Material.rock);
}
public int getBlockTextureFromSide(int var1) {
return var1 == 1 ? this.blockIndexInTexture - 16 : (var1 == 0 ? this.blockIndexInTexture + 16 : this.blockIndexInTexture);
}
public int getBlockTextureFromSide(int var1) {
return var1 == 1 ? this.blockIndexInTexture - 16 : (var1 == 0 ? this.blockIndexInTexture + 16 : this.blockIndexInTexture);
}
}

View file

@ -1,62 +1,59 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.world.World;
import net.minecraft.world.generators.WorldGenBigTree;
import net.minecraft.world.generators.WorldGenForest;
import net.minecraft.world.generators.WorldGenTaiga2;
import net.minecraft.world.generators.WorldGenTrees;
import net.minecraft.world.generators.WorldGenerator;
import net.minecraft.world.generators.*;
import java.util.Random;
public class BlockSapling extends BlockFlower {
protected BlockSapling(int var1, int var2) {
super(var1, var2);
float var3 = 0.4F;
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3);
}
protected BlockSapling(int var1, int var2) {
super(var1, var2);
float var3 = 0.4F;
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if(!var1.singleplayerWorld) {
super.updateTick(var1, var2, var3, var4, var5);
if(var1.getBlockLightValue(var2, var3 + 1, var4) >= 9 && var5.nextInt(30) == 0) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if((var6 & 8) == 0) {
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 | 8);
} else {
this.growTree(var1, var2, var3, var4, var5);
}
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if (!var1.singleplayerWorld) {
super.updateTick(var1, var2, var3, var4, var5);
if (var1.getBlockLightValue(var2, var3 + 1, var4) >= 9 && var5.nextInt(30) == 0) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if ((var6 & 8) == 0) {
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 | 8);
} else {
this.growTree(var1, var2, var3, var4, var5);
}
}
}
}
}
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
var2 &= 3;
return var2 == 1 ? 63 : (var2 == 2 ? 79 : super.getBlockTextureFromSideAndMetadata(var1, var2));
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
var2 &= 3;
return var2 == 1 ? 63 : (var2 == 2 ? 79 : super.getBlockTextureFromSideAndMetadata(var1, var2));
}
public void growTree(World var1, int var2, int var3, int var4, Random var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4) & 3;
var1.setBlock(var2, var3, var4, 0);
Object var7 = null;
if(var6 == 1) {
var7 = new WorldGenTaiga2();
} else if(var6 == 2) {
var7 = new WorldGenForest();
} else {
var7 = new WorldGenTrees();
if(var5.nextInt(10) == 0) {
var7 = new WorldGenBigTree();
}
}
public void growTree(World var1, int var2, int var3, int var4, Random var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4) & 3;
var1.setBlock(var2, var3, var4, 0);
Object var7 = null;
if (var6 == 1) {
var7 = new WorldGenTaiga2();
} else if (var6 == 2) {
var7 = new WorldGenForest();
} else {
var7 = new WorldGenTrees();
if (var5.nextInt(10) == 0) {
var7 = new WorldGenBigTree();
}
}
if(!((WorldGenerator)var7).generate(var1, var5, var2, var3, var4)) {
var1.setBlockAndMetadata(var2, var3, var4, this.blockID, var6);
}
if (!((WorldGenerator) var7).generate(var1, var5, var2, var3, var4)) {
var1.setBlockAndMetadata(var2, var3, var4, this.blockID, var6);
}
}
}
protected int damageDropped(int var1) {
return var1 & 3;
}
protected int damageDropped(int var1) {
return var1 & 3;
}
}

View file

@ -1,6 +1,5 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.block.tile.TileEntity;
import net.minecraft.item.Item;
@ -8,103 +7,105 @@ import net.minecraft.math.AxisAlignedBB;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import java.util.Random;
public class BlockSign extends BlockContainer {
private Class signEntityClass;
private boolean isFreestanding;
private Class signEntityClass;
private boolean isFreestanding;
protected BlockSign(int var1, Class var2, boolean var3) {
super(var1, Material.wood);
this.isFreestanding = var3;
this.blockIndexInTexture = 4;
this.signEntityClass = var2;
float var4 = 0.25F;
float var5 = 1.0F;
this.setBlockBounds(0.5F - var4, 0.0F, 0.5F - var4, 0.5F + var4, var5, 0.5F + var4);
}
protected BlockSign(int var1, Class var2, boolean var3) {
super(var1, Material.wood);
this.isFreestanding = var3;
this.blockIndexInTexture = 4;
this.signEntityClass = var2;
float var4 = 0.25F;
float var5 = 1.0F;
this.setBlockBounds(0.5F - var4, 0.0F, 0.5F - var4, 0.5F + var4, var5, 0.5F + var4);
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
if(!this.isFreestanding) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
float var6 = 9.0F / 32.0F;
float var7 = 25.0F / 32.0F;
float var8 = 0.0F;
float var9 = 1.0F;
float var10 = 2.0F / 16.0F;
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
if(var5 == 2) {
this.setBlockBounds(var8, var6, 1.0F - var10, var9, var7, 1.0F);
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
if (!this.isFreestanding) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
float var6 = 9.0F / 32.0F;
float var7 = 25.0F / 32.0F;
float var8 = 0.0F;
float var9 = 1.0F;
float var10 = 2.0F / 16.0F;
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
if (var5 == 2) {
this.setBlockBounds(var8, var6, 1.0F - var10, var9, var7, 1.0F);
}
if(var5 == 3) {
this.setBlockBounds(var8, var6, 0.0F, var9, var7, var10);
}
if (var5 == 3) {
this.setBlockBounds(var8, var6, 0.0F, var9, var7, var10);
}
if(var5 == 4) {
this.setBlockBounds(1.0F - var10, var6, var8, 1.0F, var7, var9);
}
if (var5 == 4) {
this.setBlockBounds(1.0F - var10, var6, var8, 1.0F, var7, var9);
}
if(var5 == 5) {
this.setBlockBounds(0.0F, var6, var8, var10, var7, var9);
}
if (var5 == 5) {
this.setBlockBounds(0.0F, var6, var8, var10, var7, var9);
}
}
}
}
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
protected TileEntity getBlockEntity() {
try {
return (TileEntity)this.signEntityClass.newInstance();
} catch (Exception var2) {
throw new RuntimeException(var2);
}
}
protected TileEntity getBlockEntity() {
try {
return (TileEntity) this.signEntityClass.newInstance();
} catch (Exception var2) {
throw new RuntimeException(var2);
}
}
public int idDropped(int var1, Random var2) {
return Item.sign.shiftedIndex;
}
public int idDropped(int var1, Random var2) {
return Item.sign.shiftedIndex;
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
boolean var6 = false;
if(this.isFreestanding) {
if(!var1.getBlockMaterial(var2, var3 - 1, var4).isSolid()) {
var6 = true;
}
} else {
int var7 = var1.getBlockMetadata(var2, var3, var4);
var6 = true;
if(var7 == 2 && var1.getBlockMaterial(var2, var3, var4 + 1).isSolid()) {
var6 = false;
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
boolean var6 = false;
if (this.isFreestanding) {
if (!var1.getBlockMaterial(var2, var3 - 1, var4).isSolid()) {
var6 = true;
}
} else {
int var7 = var1.getBlockMetadata(var2, var3, var4);
var6 = true;
if (var7 == 2 && var1.getBlockMaterial(var2, var3, var4 + 1).isSolid()) {
var6 = false;
}
if(var7 == 3 && var1.getBlockMaterial(var2, var3, var4 - 1).isSolid()) {
var6 = false;
}
if (var7 == 3 && var1.getBlockMaterial(var2, var3, var4 - 1).isSolid()) {
var6 = false;
}
if(var7 == 4 && var1.getBlockMaterial(var2 + 1, var3, var4).isSolid()) {
var6 = false;
}
if (var7 == 4 && var1.getBlockMaterial(var2 + 1, var3, var4).isSolid()) {
var6 = false;
}
if(var7 == 5 && var1.getBlockMaterial(var2 - 1, var3, var4).isSolid()) {
var6 = false;
}
}
if (var7 == 5 && var1.getBlockMaterial(var2 - 1, var3, var4).isSolid()) {
var6 = false;
}
}
if(var6) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
if (var6) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
super.onNeighborBlockChange(var1, var2, var3, var4, var5);
}
super.onNeighborBlockChange(var1, var2, var3, var4, var5);
}
}

View file

@ -1,6 +1,5 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityItem;
import net.minecraft.entity.EntityPlayer;
@ -12,77 +11,79 @@ import net.minecraft.world.EnumLightSource;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import java.util.Random;
public class BlockSnow extends Block {
protected BlockSnow(int var1, int var2) {
super(var1, var2, Material.snow);
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 2.0F / 16.0F, 1.0F);
this.setTickOnLoad(true);
}
protected BlockSnow(int var1, int var2) {
super(var1, var2, Material.snow);
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 2.0F / 16.0F, 1.0F);
this.setTickOnLoad(true);
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4) & 7;
return var5 >= 3 ? AxisAlignedBB.getBoundingBoxFromPool((double)var2 + this.minX, (double)var3 + this.minY, (double)var4 + this.minZ, (double)var2 + this.maxX, (double)((float)var3 + 0.5F), (double)var4 + this.maxZ) : null;
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4) & 7;
return var5 >= 3 ? AxisAlignedBB.getBoundingBoxFromPool((double) var2 + this.minX, (double) var3 + this.minY, (double) var4 + this.minZ, (double) var2 + this.maxX, (double) ((float) var3 + 0.5F), (double) var4 + this.maxZ) : null;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4) & 7;
float var6 = (float)(2 * (1 + var5)) / 16.0F;
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, var6, 1.0F);
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4) & 7;
float var6 = (float) (2 * (1 + var5)) / 16.0F;
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, var6, 1.0F);
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockId(var2, var3 - 1, var4);
return var5 != 0 && Block.blocksList[var5].isOpaqueCube() ? var1.getBlockMaterial(var2, var3 - 1, var4).getIsSolid() : false;
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockId(var2, var3 - 1, var4);
return var5 != 0 && Block.blocksList[var5].isOpaqueCube() ? var1.getBlockMaterial(var2, var3 - 1, var4).getIsSolid() : false;
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
this.func_275_g(var1, var2, var3, var4);
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
this.func_275_g(var1, var2, var3, var4);
}
private boolean func_275_g(World var1, int var2, int var3, int var4) {
if(!this.canPlaceBlockAt(var1, var2, var3, var4)) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
return false;
} else {
return true;
}
}
private boolean func_275_g(World var1, int var2, int var3, int var4) {
if (!this.canPlaceBlockAt(var1, var2, var3, var4)) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
return false;
} else {
return true;
}
}
public void harvestBlock(World var1, EntityPlayer var2, int var3, int var4, int var5, int var6) {
int var7 = Item.snowball.shiftedIndex;
float var8 = 0.7F;
double var9 = (double)(var1.rand.nextFloat() * var8) + (double)(1.0F - var8) * 0.5D;
double var11 = (double)(var1.rand.nextFloat() * var8) + (double)(1.0F - var8) * 0.5D;
double var13 = (double)(var1.rand.nextFloat() * var8) + (double)(1.0F - var8) * 0.5D;
EntityItem var15 = new EntityItem(var1, (double)var3 + var9, (double)var4 + var11, (double)var5 + var13, new ItemStack(var7, 1, 0));
var15.delayBeforeCanPickup = 10;
var1.entityJoinedWorld(var15);
var1.setBlockWithNotify(var3, var4, var5, 0);
var2.addStat(StatList.mineBlockStatArray[this.blockID], 1);
}
public void harvestBlock(World var1, EntityPlayer var2, int var3, int var4, int var5, int var6) {
int var7 = Item.snowball.shiftedIndex;
float var8 = 0.7F;
double var9 = (double) (var1.rand.nextFloat() * var8) + (double) (1.0F - var8) * 0.5D;
double var11 = (double) (var1.rand.nextFloat() * var8) + (double) (1.0F - var8) * 0.5D;
double var13 = (double) (var1.rand.nextFloat() * var8) + (double) (1.0F - var8) * 0.5D;
EntityItem var15 = new EntityItem(var1, (double) var3 + var9, (double) var4 + var11, (double) var5 + var13, new ItemStack(var7, 1, 0));
var15.delayBeforeCanPickup = 10;
var1.entityJoinedWorld(var15);
var1.setBlockWithNotify(var3, var4, var5, 0);
var2.addStat(StatList.mineBlockStatArray[this.blockID], 1);
}
public int idDropped(int var1, Random var2) {
return Item.snowball.shiftedIndex;
}
public int idDropped(int var1, Random var2) {
return Item.snowball.shiftedIndex;
}
public int quantityDropped(Random var1) {
return 0;
}
public int quantityDropped(Random var1) {
return 0;
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if(var1.getSavedLightValue(EnumLightSource.Block, var2, var3, var4) > 11) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if (var1.getSavedLightValue(EnumLightSource.Block, var2, var3, var4) > 11) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
}
}

View file

@ -1,30 +1,31 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.item.Item;
import net.minecraft.world.EnumLightSource;
import net.minecraft.world.World;
import java.util.Random;
public class BlockSnowBlock extends Block {
protected BlockSnowBlock(int var1, int var2) {
super(var1, var2, Material.builtSnow);
this.setTickOnLoad(true);
}
protected BlockSnowBlock(int var1, int var2) {
super(var1, var2, Material.builtSnow);
this.setTickOnLoad(true);
}
public int idDropped(int var1, Random var2) {
return Item.snowball.shiftedIndex;
}
public int idDropped(int var1, Random var2) {
return Item.snowball.shiftedIndex;
}
public int quantityDropped(Random var1) {
return 4;
}
public int quantityDropped(Random var1) {
return 4;
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if(var1.getSavedLightValue(EnumLightSource.Block, var2, var3, var4) > 11) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if (var1.getSavedLightValue(EnumLightSource.Block, var2, var3, var4) > 11) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
}
}

View file

@ -6,17 +6,17 @@ import net.minecraft.math.AxisAlignedBB;
import net.minecraft.world.World;
public class BlockSoulSand extends Block {
public BlockSoulSand(int var1, int var2) {
super(var1, var2, Material.sand);
}
public BlockSoulSand(int var1, int var2) {
super(var1, var2, Material.sand);
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
float var5 = 2.0F / 16.0F;
return AxisAlignedBB.getBoundingBoxFromPool((double)var2, (double)var3, (double)var4, (double)(var2 + 1), (double)((float)(var3 + 1) - var5), (double)(var4 + 1));
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
float var5 = 2.0F / 16.0F;
return AxisAlignedBB.getBoundingBoxFromPool((double) var2, (double) var3, (double) var4, (double) (var2 + 1), (double) ((float) (var3 + 1) - var5), (double) (var4 + 1));
}
public void onEntityCollidedWithBlock(World var1, int var2, int var3, int var4, Entity var5) {
var5.motionX *= 0.4D;
var5.motionZ *= 0.4D;
}
public void onEntityCollidedWithBlock(World var1, int var2, int var3, int var4, Entity var5) {
var5.motionX *= 0.4D;
var5.motionZ *= 0.4D;
}
}

View file

@ -4,35 +4,35 @@ import net.minecraft.block.material.Material;
import net.minecraft.world.World;
public class BlockSponge extends Block {
protected BlockSponge(int var1) {
super(var1, Material.sponge);
this.blockIndexInTexture = 48;
}
protected BlockSponge(int var1) {
super(var1, Material.sponge);
this.blockIndexInTexture = 48;
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
byte var5 = 2;
public void onBlockAdded(World var1, int var2, int var3, int var4) {
byte var5 = 2;
for(int var6 = var2 - var5; var6 <= var2 + var5; ++var6) {
for(int var7 = var3 - var5; var7 <= var3 + var5; ++var7) {
for(int var8 = var4 - var5; var8 <= var4 + var5; ++var8) {
if(var1.getBlockMaterial(var6, var7, var8) == Material.water) {
}
}
}
}
for (int var6 = var2 - var5; var6 <= var2 + var5; ++var6) {
for (int var7 = var3 - var5; var7 <= var3 + var5; ++var7) {
for (int var8 = var4 - var5; var8 <= var4 + var5; ++var8) {
if (var1.getBlockMaterial(var6, var7, var8) == Material.water) {
}
}
}
}
}
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
byte var5 = 2;
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
byte var5 = 2;
for(int var6 = var2 - var5; var6 <= var2 + var5; ++var6) {
for(int var7 = var3 - var5; var7 <= var3 + var5; ++var7) {
for(int var8 = var4 - var5; var8 <= var4 + var5; ++var8) {
var1.notifyBlocksOfNeighborChange(var6, var7, var8, var1.getBlockId(var6, var7, var8));
}
}
}
for (int var6 = var2 - var5; var6 <= var2 + var5; ++var6) {
for (int var7 = var3 - var5; var7 <= var3 + var5; ++var7) {
for (int var8 = var4 - var5; var8 <= var4 + var5; ++var8) {
var1.notifyBlocksOfNeighborChange(var6, var7, var8, var1.getBlockId(var6, var7, var8));
}
}
}
}
}
}

View file

@ -1,7 +1,5 @@
package net.minecraft.block;
import java.util.ArrayList;
import java.util.Random;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityPlayer;
@ -11,155 +9,158 @@ import net.minecraft.math.Vec3D;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import java.util.ArrayList;
import java.util.Random;
public class BlockStairs extends Block {
private Block modelBlock;
private Block modelBlock;
protected BlockStairs(int var1, Block var2) {
super(var1, var2.blockIndexInTexture, var2.blockMaterial);
this.modelBlock = var2;
this.setHardness(var2.blockHardness);
this.setResistance(var2.blockResistance / 3.0F);
this.setStepSound(var2.stepSound);
this.setLightOpacity(255);
}
protected BlockStairs(int var1, Block var2) {
super(var1, var2.blockIndexInTexture, var2.blockMaterial);
this.modelBlock = var2;
this.setHardness(var2.blockHardness);
this.setResistance(var2.blockResistance / 3.0F);
this.setStepSound(var2.stepSound);
this.setLightOpacity(255);
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return super.getCollisionBoundingBoxFromPool(var1, var2, var3, var4);
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return super.getCollisionBoundingBoxFromPool(var1, var2, var3, var4);
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public void getCollidingBoundingBoxes(World var1, int var2, int var3, int var4, AxisAlignedBB var5, ArrayList var6) {
int var7 = var1.getBlockMetadata(var2, var3, var4);
if(var7 == 0) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.5F, 0.5F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
this.setBlockBounds(0.5F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
} else if(var7 == 1) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.5F, 1.0F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
this.setBlockBounds(0.5F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
} else if(var7 == 2) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 0.5F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
this.setBlockBounds(0.0F, 0.0F, 0.5F, 1.0F, 1.0F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
} else if(var7 == 3) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.5F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
this.setBlockBounds(0.0F, 0.0F, 0.5F, 1.0F, 0.5F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
}
public void getCollidingBoundingBoxes(World var1, int var2, int var3, int var4, AxisAlignedBB var5, ArrayList var6) {
int var7 = var1.getBlockMetadata(var2, var3, var4);
if (var7 == 0) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.5F, 0.5F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
this.setBlockBounds(0.5F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
} else if (var7 == 1) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.5F, 1.0F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
this.setBlockBounds(0.5F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
} else if (var7 == 2) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 0.5F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
this.setBlockBounds(0.0F, 0.0F, 0.5F, 1.0F, 1.0F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
} else if (var7 == 3) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.5F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
this.setBlockBounds(0.0F, 0.0F, 0.5F, 1.0F, 0.5F, 1.0F);
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
}
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
}
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
}
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
this.modelBlock.onBlockClicked(var1, var2, var3, var4, var5);
}
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
this.modelBlock.onBlockClicked(var1, var2, var3, var4, var5);
}
public void onBlockDestroyedByPlayer(World var1, int var2, int var3, int var4, int var5) {
this.modelBlock.onBlockDestroyedByPlayer(var1, var2, var3, var4, var5);
}
public void onBlockDestroyedByPlayer(World var1, int var2, int var3, int var4, int var5) {
this.modelBlock.onBlockDestroyedByPlayer(var1, var2, var3, var4, var5);
}
public float getExplosionResistance(Entity var1) {
return this.modelBlock.getExplosionResistance(var1);
}
public float getExplosionResistance(Entity var1) {
return this.modelBlock.getExplosionResistance(var1);
}
public int idDropped(int var1, Random var2) {
return this.modelBlock.idDropped(var1, var2);
}
public int idDropped(int var1, Random var2) {
return this.modelBlock.idDropped(var1, var2);
}
public int quantityDropped(Random var1) {
return this.modelBlock.quantityDropped(var1);
}
public int quantityDropped(Random var1) {
return this.modelBlock.quantityDropped(var1);
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
return this.modelBlock.getBlockTextureFromSideAndMetadata(var1, var2);
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
return this.modelBlock.getBlockTextureFromSideAndMetadata(var1, var2);
}
public int getBlockTextureFromSide(int var1) {
return this.modelBlock.getBlockTextureFromSide(var1);
}
public int getBlockTextureFromSide(int var1) {
return this.modelBlock.getBlockTextureFromSide(var1);
}
public int tickRate() {
return this.modelBlock.tickRate();
}
public int tickRate() {
return this.modelBlock.tickRate();
}
public void velocityToAddToEntity(World var1, int var2, int var3, int var4, Entity var5, Vec3D var6) {
this.modelBlock.velocityToAddToEntity(var1, var2, var3, var4, var5, var6);
}
public void velocityToAddToEntity(World var1, int var2, int var3, int var4, Entity var5, Vec3D var6) {
this.modelBlock.velocityToAddToEntity(var1, var2, var3, var4, var5, var6);
}
public boolean isCollidable() {
return this.modelBlock.isCollidable();
}
public boolean isCollidable() {
return this.modelBlock.isCollidable();
}
public boolean canCollideCheck(int var1, boolean var2) {
return this.modelBlock.canCollideCheck(var1, var2);
}
public boolean canCollideCheck(int var1, boolean var2) {
return this.modelBlock.canCollideCheck(var1, var2);
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return this.modelBlock.canPlaceBlockAt(var1, var2, var3, var4);
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return this.modelBlock.canPlaceBlockAt(var1, var2, var3, var4);
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
this.onNeighborBlockChange(var1, var2, var3, var4, 0);
this.modelBlock.onBlockAdded(var1, var2, var3, var4);
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
this.onNeighborBlockChange(var1, var2, var3, var4, 0);
this.modelBlock.onBlockAdded(var1, var2, var3, var4);
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
this.modelBlock.onBlockRemoval(var1, var2, var3, var4);
}
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
this.modelBlock.onBlockRemoval(var1, var2, var3, var4);
}
public void dropBlockAsItemWithChance(World var1, int var2, int var3, int var4, int var5, float var6) {
this.modelBlock.dropBlockAsItemWithChance(var1, var2, var3, var4, var5, var6);
}
public void dropBlockAsItemWithChance(World var1, int var2, int var3, int var4, int var5, float var6) {
this.modelBlock.dropBlockAsItemWithChance(var1, var2, var3, var4, var5, var6);
}
public void onEntityWalking(World var1, int var2, int var3, int var4, Entity var5) {
this.modelBlock.onEntityWalking(var1, var2, var3, var4, var5);
}
public void onEntityWalking(World var1, int var2, int var3, int var4, Entity var5) {
this.modelBlock.onEntityWalking(var1, var2, var3, var4, var5);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
this.modelBlock.updateTick(var1, var2, var3, var4, var5);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
this.modelBlock.updateTick(var1, var2, var3, var4, var5);
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
return this.modelBlock.blockActivated(var1, var2, var3, var4, var5);
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
return this.modelBlock.blockActivated(var1, var2, var3, var4, var5);
}
public void onBlockDestroyedByExplosion(World var1, int var2, int var3, int var4) {
this.modelBlock.onBlockDestroyedByExplosion(var1, var2, var3, var4);
}
public void onBlockDestroyedByExplosion(World var1, int var2, int var3, int var4) {
this.modelBlock.onBlockDestroyedByExplosion(var1, var2, var3, var4);
}
public void onBlockPlacedBy(World var1, int var2, int var3, int var4, EntityLiving var5) {
int var6 = MathHelper.floor_double((double)(var5.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
if(var6 == 0) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 2);
}
public void onBlockPlacedBy(World var1, int var2, int var3, int var4, EntityLiving var5) {
int var6 = MathHelper.floor_double((double) (var5.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
if (var6 == 0) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 2);
}
if(var6 == 1) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 1);
}
if (var6 == 1) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 1);
}
if(var6 == 2) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 3);
}
if (var6 == 2) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 3);
}
if(var6 == 3) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 0);
}
if (var6 == 3) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 0);
}
}
}
}

View file

@ -1,59 +1,60 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.world.World;
import java.util.Random;
public class BlockStationary extends BlockFluid {
protected BlockStationary(int var1, Material var2) {
super(var1, var2);
this.setTickOnLoad(false);
if(var2 == Material.lava) {
this.setTickOnLoad(true);
}
protected BlockStationary(int var1, Material var2) {
super(var1, var2);
this.setTickOnLoad(false);
if (var2 == Material.lava) {
this.setTickOnLoad(true);
}
}
}
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_30005_i(var1, var2, var3, var4);
}
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_30005_i(var1, var2, var3, var4);
}
}
}
private void func_30005_i(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
var1.editingBlocks = true;
var1.setBlockAndMetadata(var2, var3, var4, this.blockID - 1, var5);
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
var1.scheduleUpdateTick(var2, var3, var4, this.blockID - 1, this.tickRate());
var1.editingBlocks = false;
}
private void func_30005_i(World var1, int var2, int var3, int var4) {
int var5 = var1.getBlockMetadata(var2, var3, var4);
var1.editingBlocks = true;
var1.setBlockAndMetadata(var2, var3, var4, this.blockID - 1, var5);
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
var1.scheduleUpdateTick(var2, var3, var4, this.blockID - 1, this.tickRate());
var1.editingBlocks = false;
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if(this.blockMaterial == Material.lava) {
int var6 = var5.nextInt(3);
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
if (this.blockMaterial == Material.lava) {
int var6 = var5.nextInt(3);
for(int var7 = 0; var7 < var6; ++var7) {
var2 += var5.nextInt(3) - 1;
++var3;
var4 += var5.nextInt(3) - 1;
int var8 = var1.getBlockId(var2, var3, var4);
if(var8 == 0) {
if(this.func_4033_j(var1, var2 - 1, var3, var4) || this.func_4033_j(var1, var2 + 1, var3, var4) || this.func_4033_j(var1, var2, var3, var4 - 1) || this.func_4033_j(var1, var2, var3, var4 + 1) || this.func_4033_j(var1, var2, var3 - 1, var4) || this.func_4033_j(var1, var2, var3 + 1, var4)) {
var1.setBlockWithNotify(var2, var3, var4, Block.fire.blockID);
return;
}
} else if(Block.blocksList[var8].blockMaterial.getIsSolid()) {
return;
}
}
}
for (int var7 = 0; var7 < var6; ++var7) {
var2 += var5.nextInt(3) - 1;
++var3;
var4 += var5.nextInt(3) - 1;
int var8 = var1.getBlockId(var2, var3, var4);
if (var8 == 0) {
if (this.func_4033_j(var1, var2 - 1, var3, var4) || this.func_4033_j(var1, var2 + 1, var3, var4) || this.func_4033_j(var1, var2, var3, var4 - 1) || this.func_4033_j(var1, var2, var3, var4 + 1) || this.func_4033_j(var1, var2, var3 - 1, var4) || this.func_4033_j(var1, var2, var3 + 1, var4)) {
var1.setBlockWithNotify(var2, var3, var4, Block.fire.blockID);
return;
}
} else if (Block.blocksList[var8].blockMaterial.getIsSolid()) {
return;
}
}
}
}
}
private boolean func_4033_j(World var1, int var2, int var3, int var4) {
return var1.getBlockMaterial(var2, var3, var4).getBurning();
}
private boolean func_4033_j(World var1, int var2, int var3, int var4) {
return var1.getBlockMaterial(var2, var3, var4).getBurning();
}
}

View file

@ -1,65 +1,66 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.world.World;
import java.util.Random;
public class BlockStep extends Block {
public static final String[] field_22027_a = new String[]{"stone", "sand", "wood", "cobble"};
private boolean blockType;
public static final String[] field_22027_a = new String[]{"stone", "sand", "wood", "cobble"};
private boolean blockType;
public BlockStep(int var1, boolean var2) {
super(var1, 6, Material.rock);
this.blockType = var2;
if(!var2) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F);
}
public BlockStep(int var1, boolean var2) {
super(var1, 6, Material.rock);
this.blockType = var2;
if (!var2) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F);
}
this.setLightOpacity(255);
}
this.setLightOpacity(255);
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
return var2 == 0 ? (var1 <= 1 ? 6 : 5) : (var2 == 1 ? (var1 == 0 ? 208 : (var1 == 1 ? 176 : 192)) : (var2 == 2 ? 4 : (var2 == 3 ? 16 : 6)));
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
return var2 == 0 ? (var1 <= 1 ? 6 : 5) : (var2 == 1 ? (var1 == 0 ? 208 : (var1 == 1 ? 176 : 192)) : (var2 == 2 ? 4 : (var2 == 3 ? 16 : 6)));
}
public int getBlockTextureFromSide(int var1) {
return this.getBlockTextureFromSideAndMetadata(var1, 0);
}
public int getBlockTextureFromSide(int var1) {
return this.getBlockTextureFromSideAndMetadata(var1, 0);
}
public boolean isOpaqueCube() {
return this.blockType;
}
public boolean isOpaqueCube() {
return this.blockType;
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
if(this != Block.stairSingle) {
super.onBlockAdded(var1, var2, var3, var4);
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
if (this != Block.stairSingle) {
super.onBlockAdded(var1, var2, var3, var4);
}
int var5 = var1.getBlockId(var2, var3 - 1, var4);
int var6 = var1.getBlockMetadata(var2, var3, var4);
int var7 = var1.getBlockMetadata(var2, var3 - 1, var4);
if(var6 == var7) {
if(var5 == stairSingle.blockID) {
var1.setBlockWithNotify(var2, var3, var4, 0);
var1.setBlockAndMetadataWithNotify(var2, var3 - 1, var4, Block.stairDouble.blockID, var6);
}
int var5 = var1.getBlockId(var2, var3 - 1, var4);
int var6 = var1.getBlockMetadata(var2, var3, var4);
int var7 = var1.getBlockMetadata(var2, var3 - 1, var4);
if (var6 == var7) {
if (var5 == stairSingle.blockID) {
var1.setBlockWithNotify(var2, var3, var4, 0);
var1.setBlockAndMetadataWithNotify(var2, var3 - 1, var4, Block.stairDouble.blockID, var6);
}
}
}
}
}
public int idDropped(int var1, Random var2) {
return Block.stairSingle.blockID;
}
public int idDropped(int var1, Random var2) {
return Block.stairSingle.blockID;
}
public int quantityDropped(Random var1) {
return this.blockType ? 2 : 1;
}
public int quantityDropped(Random var1) {
return this.blockType ? 2 : 1;
}
protected int damageDropped(int var1) {
return var1;
}
protected int damageDropped(int var1) {
return var1;
}
public boolean isACube() {
return this.blockType;
}
public boolean isACube() {
return this.blockType;
}
}

View file

@ -1,14 +1,15 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
public class BlockStone extends Block {
public BlockStone(int var1, int var2) {
super(var1, var2, Material.rock);
}
import java.util.Random;
public int idDropped(int var1, Random var2) {
return Block.cobblestone.blockID;
}
public class BlockStone extends Block {
public BlockStone(int var1, int var2) {
super(var1, var2, Material.rock);
}
public int idDropped(int var1, Random var2) {
return Block.cobblestone.blockID;
}
}

View file

@ -1,6 +1,5 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityPlayer;
import net.minecraft.entity.EntityTNTPrimed;
@ -8,64 +7,66 @@ import net.minecraft.item.Item;
import net.minecraft.item.crafting.ItemStack;
import net.minecraft.world.World;
import java.util.Random;
public class BlockTNT extends Block {
public BlockTNT(int var1, int var2) {
super(var1, var2, Material.tnt);
}
public BlockTNT(int var1, int var2) {
super(var1, var2, Material.tnt);
}
public int getBlockTextureFromSide(int var1) {
return var1 == 0 ? this.blockIndexInTexture + 2 : (var1 == 1 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture);
}
public int getBlockTextureFromSide(int var1) {
return var1 == 0 ? this.blockIndexInTexture + 2 : (var1 == 1 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture);
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
super.onBlockAdded(var1, var2, var3, var4);
if(var1.isBlockIndirectlyGettingPowered(var2, var3, var4)) {
this.onBlockDestroyedByPlayer(var1, var2, var3, var4, 1);
var1.setBlockWithNotify(var2, var3, var4, 0);
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
super.onBlockAdded(var1, var2, var3, var4);
if (var1.isBlockIndirectlyGettingPowered(var2, var3, var4)) {
this.onBlockDestroyedByPlayer(var1, var2, var3, var4, 1);
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if(var5 > 0 && Block.blocksList[var5].canProvidePower() && var1.isBlockIndirectlyGettingPowered(var2, var3, var4)) {
this.onBlockDestroyedByPlayer(var1, var2, var3, var4, 1);
var1.setBlockWithNotify(var2, var3, var4, 0);
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if (var5 > 0 && Block.blocksList[var5].canProvidePower() && var1.isBlockIndirectlyGettingPowered(var2, var3, var4)) {
this.onBlockDestroyedByPlayer(var1, var2, var3, var4, 1);
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
}
public int quantityDropped(Random var1) {
return 0;
}
public int quantityDropped(Random var1) {
return 0;
}
public void onBlockDestroyedByExplosion(World var1, int var2, int var3, int var4) {
EntityTNTPrimed var5 = new EntityTNTPrimed(var1, (double)((float)var2 + 0.5F), (double)((float)var3 + 0.5F), (double)((float)var4 + 0.5F));
var5.fuse = var1.rand.nextInt(var5.fuse / 4) + var5.fuse / 8;
var1.entityJoinedWorld(var5);
}
public void onBlockDestroyedByExplosion(World var1, int var2, int var3, int var4) {
EntityTNTPrimed var5 = new EntityTNTPrimed(var1, (double) ((float) var2 + 0.5F), (double) ((float) var3 + 0.5F), (double) ((float) var4 + 0.5F));
var5.fuse = var1.rand.nextInt(var5.fuse / 4) + var5.fuse / 8;
var1.entityJoinedWorld(var5);
}
public void onBlockDestroyedByPlayer(World var1, int var2, int var3, int var4, int var5) {
if(!var1.singleplayerWorld) {
if((var5 & 1) == 0) {
this.dropBlockAsItem_do(var1, var2, var3, var4, new ItemStack(Block.tnt.blockID, 1, 0));
} else {
EntityTNTPrimed var6 = new EntityTNTPrimed(var1, (double)((float)var2 + 0.5F), (double)((float)var3 + 0.5F), (double)((float)var4 + 0.5F));
var1.entityJoinedWorld(var6);
var1.playSoundAtEntity(var6, "random.fuse", 1.0F, 1.0F);
}
public void onBlockDestroyedByPlayer(World var1, int var2, int var3, int var4, int var5) {
if (!var1.singleplayerWorld) {
if ((var5 & 1) == 0) {
this.dropBlockAsItem_do(var1, var2, var3, var4, new ItemStack(Block.tnt.blockID, 1, 0));
} else {
EntityTNTPrimed var6 = new EntityTNTPrimed(var1, (double) ((float) var2 + 0.5F), (double) ((float) var3 + 0.5F), (double) ((float) var4 + 0.5F));
var1.entityJoinedWorld(var6);
var1.playSoundAtEntity(var6, "random.fuse", 1.0F, 1.0F);
}
}
}
}
}
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if(var5.getCurrentEquippedItem() != null && var5.getCurrentEquippedItem().itemID == Item.flintAndSteel.shiftedIndex) {
var1.setBlockMetadata(var2, var3, var4, 1);
}
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if (var5.getCurrentEquippedItem() != null && var5.getCurrentEquippedItem().itemID == Item.flintAndSteel.shiftedIndex) {
var1.setBlockMetadata(var2, var3, var4, 1);
}
super.onBlockClicked(var1, var2, var3, var4, var5);
}
super.onBlockClicked(var1, var2, var3, var4, var5);
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
return super.blockActivated(var1, var2, var3, var4, var5);
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
return super.blockActivated(var1, var2, var3, var4, var5);
}
}

View file

@ -1,20 +1,21 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.item.Item;
import java.util.Random;
public class BlockTallGrass extends BlockFlower {
protected BlockTallGrass(int var1, int var2) {
super(var1, var2);
float var3 = 0.4F;
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 0.8F, 0.5F + var3);
}
protected BlockTallGrass(int var1, int var2) {
super(var1, var2);
float var3 = 0.4F;
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 0.8F, 0.5F + var3);
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
return var2 == 1 ? this.blockIndexInTexture : (var2 == 2 ? this.blockIndexInTexture + 16 + 1 : (var2 == 0 ? this.blockIndexInTexture + 16 : this.blockIndexInTexture));
}
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
return var2 == 1 ? this.blockIndexInTexture : (var2 == 2 ? this.blockIndexInTexture + 16 + 1 : (var2 == 0 ? this.blockIndexInTexture + 16 : this.blockIndexInTexture));
}
public int idDropped(int var1, Random var2) {
return var2.nextInt(8) == 0 ? Item.seeds.shiftedIndex : -1;
}
public int idDropped(int var1, Random var2) {
return var2.nextInt(8) == 0 ? Item.seeds.shiftedIndex : -1;
}
}

View file

@ -1,145 +1,146 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.math.AxisAlignedBB;
import net.minecraft.math.Vec3D;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
import java.util.Random;
public class BlockTorch extends Block {
protected BlockTorch(int var1, int var2) {
super(var1, var2, Material.circuits);
this.setTickOnLoad(true);
}
protected BlockTorch(int var1, int var2) {
super(var1, var2, Material.circuits);
this.setTickOnLoad(true);
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
private boolean func_31028_g(World var1, int var2, int var3, int var4) {
return var1.isBlockNormalCube(var2, var3, var4) || var1.getBlockId(var2, var3, var4) == Block.fence.blockID;
}
private boolean func_31028_g(World var1, int var2, int var3, int var4) {
return var1.isBlockNormalCube(var2, var3, var4) || var1.getBlockId(var2, var3, var4) == Block.fence.blockID;
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return var1.isBlockNormalCube(var2 - 1, var3, var4) ? true : (var1.isBlockNormalCube(var2 + 1, var3, var4) ? true : (var1.isBlockNormalCube(var2, var3, var4 - 1) ? true : (var1.isBlockNormalCube(var2, var3, var4 + 1) ? true : this.func_31028_g(var1, var2, var3 - 1, var4))));
}
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
return var1.isBlockNormalCube(var2 - 1, var3, var4) ? true : (var1.isBlockNormalCube(var2 + 1, var3, var4) ? true : (var1.isBlockNormalCube(var2, var3, var4 - 1) ? true : (var1.isBlockNormalCube(var2, var3, var4 + 1) ? true : this.func_31028_g(var1, var2, var3 - 1, var4))));
}
public void onBlockPlaced(World var1, int var2, int var3, int var4, int var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if(var5 == 1 && this.func_31028_g(var1, var2, var3 - 1, var4)) {
var6 = 5;
}
public void onBlockPlaced(World var1, int var2, int var3, int var4, int var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
if (var5 == 1 && this.func_31028_g(var1, var2, var3 - 1, var4)) {
var6 = 5;
}
if(var5 == 2 && var1.isBlockNormalCube(var2, var3, var4 + 1)) {
var6 = 4;
}
if (var5 == 2 && var1.isBlockNormalCube(var2, var3, var4 + 1)) {
var6 = 4;
}
if(var5 == 3 && var1.isBlockNormalCube(var2, var3, var4 - 1)) {
var6 = 3;
}
if (var5 == 3 && var1.isBlockNormalCube(var2, var3, var4 - 1)) {
var6 = 3;
}
if(var5 == 4 && var1.isBlockNormalCube(var2 + 1, var3, var4)) {
var6 = 2;
}
if (var5 == 4 && var1.isBlockNormalCube(var2 + 1, var3, var4)) {
var6 = 2;
}
if(var5 == 5 && var1.isBlockNormalCube(var2 - 1, var3, var4)) {
var6 = 1;
}
if (var5 == 5 && var1.isBlockNormalCube(var2 - 1, var3, var4)) {
var6 = 1;
}
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
}
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
super.updateTick(var1, var2, var3, var4, var5);
if(var1.getBlockMetadata(var2, var3, var4) == 0) {
this.onBlockAdded(var1, var2, var3, var4);
}
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
super.updateTick(var1, var2, var3, var4, var5);
if (var1.getBlockMetadata(var2, var3, var4) == 0) {
this.onBlockAdded(var1, var2, var3, var4);
}
}
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
if(var1.isBlockNormalCube(var2 - 1, var3, var4)) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 1);
} else if(var1.isBlockNormalCube(var2 + 1, var3, var4)) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 2);
} else if(var1.isBlockNormalCube(var2, var3, var4 - 1)) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 3);
} else if(var1.isBlockNormalCube(var2, var3, var4 + 1)) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 4);
} else if(this.func_31028_g(var1, var2, var3 - 1, var4)) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 5);
}
public void onBlockAdded(World var1, int var2, int var3, int var4) {
if (var1.isBlockNormalCube(var2 - 1, var3, var4)) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 1);
} else if (var1.isBlockNormalCube(var2 + 1, var3, var4)) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 2);
} else if (var1.isBlockNormalCube(var2, var3, var4 - 1)) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 3);
} else if (var1.isBlockNormalCube(var2, var3, var4 + 1)) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 4);
} else if (this.func_31028_g(var1, var2, var3 - 1, var4)) {
var1.setBlockMetadataWithNotify(var2, var3, var4, 5);
}
this.dropTorchIfCantStay(var1, var2, var3, var4);
}
this.dropTorchIfCantStay(var1, var2, var3, var4);
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if(this.dropTorchIfCantStay(var1, var2, var3, var4)) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
boolean var7 = false;
if(!var1.isBlockNormalCube(var2 - 1, var3, var4) && var6 == 1) {
var7 = true;
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if (this.dropTorchIfCantStay(var1, var2, var3, var4)) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
boolean var7 = false;
if (!var1.isBlockNormalCube(var2 - 1, var3, var4) && var6 == 1) {
var7 = true;
}
if(!var1.isBlockNormalCube(var2 + 1, var3, var4) && var6 == 2) {
var7 = true;
}
if (!var1.isBlockNormalCube(var2 + 1, var3, var4) && var6 == 2) {
var7 = true;
}
if(!var1.isBlockNormalCube(var2, var3, var4 - 1) && var6 == 3) {
var7 = true;
}
if (!var1.isBlockNormalCube(var2, var3, var4 - 1) && var6 == 3) {
var7 = true;
}
if(!var1.isBlockNormalCube(var2, var3, var4 + 1) && var6 == 4) {
var7 = true;
}
if (!var1.isBlockNormalCube(var2, var3, var4 + 1) && var6 == 4) {
var7 = true;
}
if(!this.func_31028_g(var1, var2, var3 - 1, var4) && var6 == 5) {
var7 = true;
}
if (!this.func_31028_g(var1, var2, var3 - 1, var4) && var6 == 5) {
var7 = true;
}
if(var7) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
if (var7) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
}
}
}
}
private boolean dropTorchIfCantStay(World var1, int var2, int var3, int var4) {
if(!this.canPlaceBlockAt(var1, var2, var3, var4)) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
return false;
} else {
return true;
}
}
private boolean dropTorchIfCantStay(World var1, int var2, int var3, int var4) {
if (!this.canPlaceBlockAt(var1, var2, var3, var4)) {
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
var1.setBlockWithNotify(var2, var3, var4, 0);
return false;
} else {
return true;
}
}
public MovingObjectPosition collisionRayTrace(World var1, int var2, int var3, int var4, Vec3D var5, Vec3D var6) {
int var7 = var1.getBlockMetadata(var2, var3, var4) & 7;
float var8 = 0.15F;
if(var7 == 1) {
this.setBlockBounds(0.0F, 0.2F, 0.5F - var8, var8 * 2.0F, 0.8F, 0.5F + var8);
} else if(var7 == 2) {
this.setBlockBounds(1.0F - var8 * 2.0F, 0.2F, 0.5F - var8, 1.0F, 0.8F, 0.5F + var8);
} else if(var7 == 3) {
this.setBlockBounds(0.5F - var8, 0.2F, 0.0F, 0.5F + var8, 0.8F, var8 * 2.0F);
} else if(var7 == 4) {
this.setBlockBounds(0.5F - var8, 0.2F, 1.0F - var8 * 2.0F, 0.5F + var8, 0.8F, 1.0F);
} else {
var8 = 0.1F;
this.setBlockBounds(0.5F - var8, 0.0F, 0.5F - var8, 0.5F + var8, 0.6F, 0.5F + var8);
}
public MovingObjectPosition collisionRayTrace(World var1, int var2, int var3, int var4, Vec3D var5, Vec3D var6) {
int var7 = var1.getBlockMetadata(var2, var3, var4) & 7;
float var8 = 0.15F;
if (var7 == 1) {
this.setBlockBounds(0.0F, 0.2F, 0.5F - var8, var8 * 2.0F, 0.8F, 0.5F + var8);
} else if (var7 == 2) {
this.setBlockBounds(1.0F - var8 * 2.0F, 0.2F, 0.5F - var8, 1.0F, 0.8F, 0.5F + var8);
} else if (var7 == 3) {
this.setBlockBounds(0.5F - var8, 0.2F, 0.0F, 0.5F + var8, 0.8F, var8 * 2.0F);
} else if (var7 == 4) {
this.setBlockBounds(0.5F - var8, 0.2F, 1.0F - var8 * 2.0F, 0.5F + var8, 0.8F, 1.0F);
} else {
var8 = 0.1F;
this.setBlockBounds(0.5F - var8, 0.0F, 0.5F - var8, 0.5F + var8, 0.6F, 0.5F + var8);
}
return super.collisionRayTrace(var1, var2, var3, var4, var5, var6);
}
return super.collisionRayTrace(var1, var2, var3, var4, var5, var6);
}
}

View file

@ -9,169 +9,169 @@ import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class BlockTrapDoor extends Block {
protected BlockTrapDoor(int var1, Material var2) {
super(var1, var2);
this.blockIndexInTexture = 84;
if(var2 == Material.iron) {
++this.blockIndexInTexture;
}
protected BlockTrapDoor(int var1, Material var2) {
super(var1, var2);
this.blockIndexInTexture = 84;
if (var2 == Material.iron) {
++this.blockIndexInTexture;
}
float var3 = 0.5F;
float var4 = 1.0F;
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var4, 0.5F + var3);
}
float var3 = 0.5F;
float var4 = 1.0F;
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var4, 0.5F + var3);
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
this.setBlockBoundsBasedOnState(var1, var2, var3, var4);
return super.getCollisionBoundingBoxFromPool(var1, var2, var3, var4);
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
this.setBlockBoundsBasedOnState(var1, var2, var3, var4);
return super.getCollisionBoundingBoxFromPool(var1, var2, var3, var4);
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
this.func_28039_c(var1.getBlockMetadata(var2, var3, var4));
}
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
this.func_28039_c(var1.getBlockMetadata(var2, var3, var4));
}
public void func_28039_c(int var1) {
float var2 = 3.0F / 16.0F;
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, var2, 1.0F);
if(func_28038_d(var1)) {
if((var1 & 3) == 0) {
this.setBlockBounds(0.0F, 0.0F, 1.0F - var2, 1.0F, 1.0F, 1.0F);
}
public void func_28039_c(int var1) {
float var2 = 3.0F / 16.0F;
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, var2, 1.0F);
if (func_28038_d(var1)) {
if ((var1 & 3) == 0) {
this.setBlockBounds(0.0F, 0.0F, 1.0F - var2, 1.0F, 1.0F, 1.0F);
}
if((var1 & 3) == 1) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, var2);
}
if ((var1 & 3) == 1) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, var2);
}
if((var1 & 3) == 2) {
this.setBlockBounds(1.0F - var2, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
}
if ((var1 & 3) == 2) {
this.setBlockBounds(1.0F - var2, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
}
if((var1 & 3) == 3) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, var2, 1.0F, 1.0F);
}
}
if ((var1 & 3) == 3) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, var2, 1.0F, 1.0F);
}
}
}
}
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
this.blockActivated(var1, var2, var3, var4, var5);
}
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
this.blockActivated(var1, var2, var3, var4, var5);
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if(this.blockMaterial == Material.iron) {
return true;
} else {
int var6 = var1.getBlockMetadata(var2, var3, var4);
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 ^ 4);
var1.func_28101_a(var5, 1003, var2, var3, var4, 0);
return true;
}
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if (this.blockMaterial == Material.iron) {
return true;
} else {
int var6 = var1.getBlockMetadata(var2, var3, var4);
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 ^ 4);
var1.func_28101_a(var5, 1003, var2, var3, var4, 0);
return true;
}
}
public void func_28040_a(World var1, int var2, int var3, int var4, boolean var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
boolean var7 = (var6 & 4) > 0;
if(var7 != var5) {
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 ^ 4);
var1.func_28101_a((EntityPlayer)null, 1003, var2, var3, var4, 0);
}
}
public void func_28040_a(World var1, int var2, int var3, int var4, boolean var5) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
boolean var7 = (var6 & 4) > 0;
if (var7 != var5) {
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 ^ 4);
var1.func_28101_a((EntityPlayer) null, 1003, var2, var3, var4, 0);
}
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if(!var1.singleplayerWorld) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
int var7 = var2;
int var8 = var4;
if((var6 & 3) == 0) {
var8 = var4 + 1;
}
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
if (!var1.singleplayerWorld) {
int var6 = var1.getBlockMetadata(var2, var3, var4);
int var7 = var2;
int var8 = var4;
if ((var6 & 3) == 0) {
var8 = var4 + 1;
}
if((var6 & 3) == 1) {
--var8;
}
if ((var6 & 3) == 1) {
--var8;
}
if((var6 & 3) == 2) {
var7 = var2 + 1;
}
if ((var6 & 3) == 2) {
var7 = var2 + 1;
}
if((var6 & 3) == 3) {
--var7;
}
if ((var6 & 3) == 3) {
--var7;
}
if(!var1.isBlockNormalCube(var7, var3, var8)) {
var1.setBlockWithNotify(var2, var3, var4, 0);
this.dropBlockAsItem(var1, var2, var3, var4, var6);
}
if (!var1.isBlockNormalCube(var7, var3, var8)) {
var1.setBlockWithNotify(var2, var3, var4, 0);
this.dropBlockAsItem(var1, var2, var3, var4, var6);
}
if(var5 > 0 && Block.blocksList[var5].canProvidePower()) {
boolean var9 = var1.isBlockIndirectlyGettingPowered(var2, var3, var4);
this.func_28040_a(var1, var2, var3, var4, var9);
}
if (var5 > 0 && Block.blocksList[var5].canProvidePower()) {
boolean var9 = var1.isBlockIndirectlyGettingPowered(var2, var3, var4);
this.func_28040_a(var1, var2, var3, var4, var9);
}
}
}
}
}
public MovingObjectPosition collisionRayTrace(World var1, int var2, int var3, int var4, Vec3D var5, Vec3D var6) {
this.setBlockBoundsBasedOnState(var1, var2, var3, var4);
return super.collisionRayTrace(var1, var2, var3, var4, var5, var6);
}
public MovingObjectPosition collisionRayTrace(World var1, int var2, int var3, int var4, Vec3D var5, Vec3D var6) {
this.setBlockBoundsBasedOnState(var1, var2, var3, var4);
return super.collisionRayTrace(var1, var2, var3, var4, var5, var6);
}
public void onBlockPlaced(World var1, int var2, int var3, int var4, int var5) {
byte var6 = 0;
if(var5 == 2) {
var6 = 0;
}
public void onBlockPlaced(World var1, int var2, int var3, int var4, int var5) {
byte var6 = 0;
if (var5 == 2) {
var6 = 0;
}
if(var5 == 3) {
var6 = 1;
}
if (var5 == 3) {
var6 = 1;
}
if(var5 == 4) {
var6 = 2;
}
if (var5 == 4) {
var6 = 2;
}
if(var5 == 5) {
var6 = 3;
}
if (var5 == 5) {
var6 = 3;
}
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
}
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
}
public boolean canPlaceBlockOnSide(World var1, int var2, int var3, int var4, int var5) {
if(var5 == 0) {
return false;
} else if(var5 == 1) {
return false;
} else {
if(var5 == 2) {
++var4;
}
public boolean canPlaceBlockOnSide(World var1, int var2, int var3, int var4, int var5) {
if (var5 == 0) {
return false;
} else if (var5 == 1) {
return false;
} else {
if (var5 == 2) {
++var4;
}
if(var5 == 3) {
--var4;
}
if (var5 == 3) {
--var4;
}
if(var5 == 4) {
++var2;
}
if (var5 == 4) {
++var2;
}
if(var5 == 5) {
--var2;
}
if (var5 == 5) {
--var2;
}
return var1.isBlockNormalCube(var2, var3, var4);
}
}
return var1.isBlockNormalCube(var2, var3, var4);
}
}
public static boolean func_28038_d(int var0) {
return (var0 & 4) != 0;
}
public static boolean func_28038_d(int var0) {
return (var0 & 4) != 0;
}
}

View file

@ -1,34 +1,35 @@
package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.entity.Entity;
import net.minecraft.item.Item;
import net.minecraft.math.AxisAlignedBB;
import net.minecraft.world.World;
import java.util.Random;
public class BlockWeb extends Block {
public BlockWeb(int var1, int var2) {
super(var1, var2, Material.web);
}
public BlockWeb(int var1, int var2) {
super(var1, var2, Material.web);
}
public void onEntityCollidedWithBlock(World var1, int var2, int var3, int var4, Entity var5) {
var5.field_27012_bb = true;
}
public void onEntityCollidedWithBlock(World var1, int var2, int var3, int var4, Entity var5) {
var5.field_27012_bb = true;
}
public boolean isOpaqueCube() {
return false;
}
public boolean isOpaqueCube() {
return false;
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
return null;
}
public boolean isACube() {
return false;
}
public boolean isACube() {
return false;
}
public int idDropped(int var1, Random var2) {
return Item.silk.shiftedIndex;
}
public int idDropped(int var1, Random var2) {
return Item.silk.shiftedIndex;
}
}

View file

@ -5,21 +5,21 @@ import net.minecraft.entity.EntityPlayer;
import net.minecraft.world.World;
public class BlockWorkbench extends Block {
protected BlockWorkbench(int var1) {
super(var1, Material.wood);
this.blockIndexInTexture = 59;
}
protected BlockWorkbench(int var1) {
super(var1, Material.wood);
this.blockIndexInTexture = 59;
}
public int getBlockTextureFromSide(int var1) {
return var1 == 1 ? this.blockIndexInTexture - 16 : (var1 == 0 ? Block.planks.getBlockTextureFromSide(0) : (var1 != 2 && var1 != 4 ? this.blockIndexInTexture : this.blockIndexInTexture + 1));
}
public int getBlockTextureFromSide(int var1) {
return var1 == 1 ? this.blockIndexInTexture - 16 : (var1 == 0 ? Block.planks.getBlockTextureFromSide(0) : (var1 != 2 && var1 != 4 ? this.blockIndexInTexture : this.blockIndexInTexture + 1));
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if(var1.singleplayerWorld) {
return true;
} else {
var5.displayWorkbenchGUI(var2, var3, var4);
return true;
}
}
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
if (var1.singleplayerWorld) {
return true;
} else {
var5.displayWorkbenchGUI(var2, var3, var4);
return true;
}
}
}

View file

@ -1,350 +1,351 @@
package net.minecraft.block;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.math.ChunkPosition;
import net.minecraft.world.World;
import java.util.ArrayList;
import java.util.List;
class RailLogic {
private World worldObj;
private int trackX;
private int trackY;
private int trackZ;
private final boolean field_27084_f;
private List connectedTracks;
final BlockRail minecartTrack;
private World worldObj;
private int trackX;
private int trackY;
private int trackZ;
private final boolean field_27084_f;
private List connectedTracks;
final BlockRail minecartTrack;
public RailLogic(BlockRail var1, World var2, int var3, int var4, int var5) {
this.minecartTrack = var1;
this.connectedTracks = new ArrayList();
this.worldObj = var2;
this.trackX = var3;
this.trackY = var4;
this.trackZ = var5;
int var6 = var2.getBlockId(var3, var4, var5);
int var7 = var2.getBlockMetadata(var3, var4, var5);
if(BlockRail.func_27033_a((BlockRail)Block.blocksList[var6])) {
this.field_27084_f = true;
var7 &= -9;
} else {
this.field_27084_f = false;
}
public RailLogic(BlockRail var1, World var2, int var3, int var4, int var5) {
this.minecartTrack = var1;
this.connectedTracks = new ArrayList();
this.worldObj = var2;
this.trackX = var3;
this.trackY = var4;
this.trackZ = var5;
int var6 = var2.getBlockId(var3, var4, var5);
int var7 = var2.getBlockMetadata(var3, var4, var5);
if (BlockRail.func_27033_a((BlockRail) Block.blocksList[var6])) {
this.field_27084_f = true;
var7 &= -9;
} else {
this.field_27084_f = false;
}
this.func_27083_a(var7);
}
this.func_27083_a(var7);
}
private void func_27083_a(int var1) {
this.connectedTracks.clear();
if(var1 == 0) {
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ - 1));
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ + 1));
} else if(var1 == 1) {
this.connectedTracks.add(new ChunkPosition(this.trackX - 1, this.trackY, this.trackZ));
this.connectedTracks.add(new ChunkPosition(this.trackX + 1, this.trackY, this.trackZ));
} else if(var1 == 2) {
this.connectedTracks.add(new ChunkPosition(this.trackX - 1, this.trackY, this.trackZ));
this.connectedTracks.add(new ChunkPosition(this.trackX + 1, this.trackY + 1, this.trackZ));
} else if(var1 == 3) {
this.connectedTracks.add(new ChunkPosition(this.trackX - 1, this.trackY + 1, this.trackZ));
this.connectedTracks.add(new ChunkPosition(this.trackX + 1, this.trackY, this.trackZ));
} else if(var1 == 4) {
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY + 1, this.trackZ - 1));
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ + 1));
} else if(var1 == 5) {
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ - 1));
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY + 1, this.trackZ + 1));
} else if(var1 == 6) {
this.connectedTracks.add(new ChunkPosition(this.trackX + 1, this.trackY, this.trackZ));
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ + 1));
} else if(var1 == 7) {
this.connectedTracks.add(new ChunkPosition(this.trackX - 1, this.trackY, this.trackZ));
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ + 1));
} else if(var1 == 8) {
this.connectedTracks.add(new ChunkPosition(this.trackX - 1, this.trackY, this.trackZ));
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ - 1));
} else if(var1 == 9) {
this.connectedTracks.add(new ChunkPosition(this.trackX + 1, this.trackY, this.trackZ));
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ - 1));
}
private void func_27083_a(int var1) {
this.connectedTracks.clear();
if (var1 == 0) {
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ - 1));
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ + 1));
} else if (var1 == 1) {
this.connectedTracks.add(new ChunkPosition(this.trackX - 1, this.trackY, this.trackZ));
this.connectedTracks.add(new ChunkPosition(this.trackX + 1, this.trackY, this.trackZ));
} else if (var1 == 2) {
this.connectedTracks.add(new ChunkPosition(this.trackX - 1, this.trackY, this.trackZ));
this.connectedTracks.add(new ChunkPosition(this.trackX + 1, this.trackY + 1, this.trackZ));
} else if (var1 == 3) {
this.connectedTracks.add(new ChunkPosition(this.trackX - 1, this.trackY + 1, this.trackZ));
this.connectedTracks.add(new ChunkPosition(this.trackX + 1, this.trackY, this.trackZ));
} else if (var1 == 4) {
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY + 1, this.trackZ - 1));
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ + 1));
} else if (var1 == 5) {
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ - 1));
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY + 1, this.trackZ + 1));
} else if (var1 == 6) {
this.connectedTracks.add(new ChunkPosition(this.trackX + 1, this.trackY, this.trackZ));
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ + 1));
} else if (var1 == 7) {
this.connectedTracks.add(new ChunkPosition(this.trackX - 1, this.trackY, this.trackZ));
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ + 1));
} else if (var1 == 8) {
this.connectedTracks.add(new ChunkPosition(this.trackX - 1, this.trackY, this.trackZ));
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ - 1));
} else if (var1 == 9) {
this.connectedTracks.add(new ChunkPosition(this.trackX + 1, this.trackY, this.trackZ));
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ - 1));
}
}
}
private void func_591_b() {
for(int var1 = 0; var1 < this.connectedTracks.size(); ++var1) {
RailLogic var2 = this.getMinecartTrackLogic((ChunkPosition)this.connectedTracks.get(var1));
if(var2 != null && var2.isConnectedTo(this)) {
this.connectedTracks.set(var1, new ChunkPosition(var2.trackX, var2.trackY, var2.trackZ));
} else {
this.connectedTracks.remove(var1--);
}
}
private void func_591_b() {
for (int var1 = 0; var1 < this.connectedTracks.size(); ++var1) {
RailLogic var2 = this.getMinecartTrackLogic((ChunkPosition) this.connectedTracks.get(var1));
if (var2 != null && var2.isConnectedTo(this)) {
this.connectedTracks.set(var1, new ChunkPosition(var2.trackX, var2.trackY, var2.trackZ));
} else {
this.connectedTracks.remove(var1--);
}
}
}
}
private boolean isMinecartTrack(int var1, int var2, int var3) {
return BlockRail.func_27029_g(this.worldObj, var1, var2, var3) ? true : (BlockRail.func_27029_g(this.worldObj, var1, var2 + 1, var3) ? true : BlockRail.func_27029_g(this.worldObj, var1, var2 - 1, var3));
}
private boolean isMinecartTrack(int var1, int var2, int var3) {
return BlockRail.func_27029_g(this.worldObj, var1, var2, var3) ? true : (BlockRail.func_27029_g(this.worldObj, var1, var2 + 1, var3) ? true : BlockRail.func_27029_g(this.worldObj, var1, var2 - 1, var3));
}
private RailLogic getMinecartTrackLogic(ChunkPosition var1) {
return BlockRail.func_27029_g(this.worldObj, var1.x, var1.y, var1.z) ? new RailLogic(this.minecartTrack, this.worldObj, var1.x, var1.y, var1.z) : (BlockRail.func_27029_g(this.worldObj, var1.x, var1.y + 1, var1.z) ? new RailLogic(this.minecartTrack, this.worldObj, var1.x, var1.y + 1, var1.z) : (BlockRail.func_27029_g(this.worldObj, var1.x, var1.y - 1, var1.z) ? new RailLogic(this.minecartTrack, this.worldObj, var1.x, var1.y - 1, var1.z) : null));
}
private RailLogic getMinecartTrackLogic(ChunkPosition var1) {
return BlockRail.func_27029_g(this.worldObj, var1.x, var1.y, var1.z) ? new RailLogic(this.minecartTrack, this.worldObj, var1.x, var1.y, var1.z) : (BlockRail.func_27029_g(this.worldObj, var1.x, var1.y + 1, var1.z) ? new RailLogic(this.minecartTrack, this.worldObj, var1.x, var1.y + 1, var1.z) : (BlockRail.func_27029_g(this.worldObj, var1.x, var1.y - 1, var1.z) ? new RailLogic(this.minecartTrack, this.worldObj, var1.x, var1.y - 1, var1.z) : null));
}
private boolean isConnectedTo(RailLogic var1) {
for(int var2 = 0; var2 < this.connectedTracks.size(); ++var2) {
ChunkPosition var3 = (ChunkPosition)this.connectedTracks.get(var2);
if(var3.x == var1.trackX && var3.z == var1.trackZ) {
return true;
}
}
private boolean isConnectedTo(RailLogic var1) {
for (int var2 = 0; var2 < this.connectedTracks.size(); ++var2) {
ChunkPosition var3 = (ChunkPosition) this.connectedTracks.get(var2);
if (var3.x == var1.trackX && var3.z == var1.trackZ) {
return true;
}
}
return false;
}
return false;
}
private boolean func_599_b(int var1, int var2, int var3) {
for(int var4 = 0; var4 < this.connectedTracks.size(); ++var4) {
ChunkPosition var5 = (ChunkPosition)this.connectedTracks.get(var4);
if(var5.x == var1 && var5.z == var3) {
return true;
}
}
private boolean func_599_b(int var1, int var2, int var3) {
for (int var4 = 0; var4 < this.connectedTracks.size(); ++var4) {
ChunkPosition var5 = (ChunkPosition) this.connectedTracks.get(var4);
if (var5.x == var1 && var5.z == var3) {
return true;
}
}
return false;
}
return false;
}
private int getAdjacentTracks() {
int var1 = 0;
if(this.isMinecartTrack(this.trackX, this.trackY, this.trackZ - 1)) {
++var1;
}
private int getAdjacentTracks() {
int var1 = 0;
if (this.isMinecartTrack(this.trackX, this.trackY, this.trackZ - 1)) {
++var1;
}
if(this.isMinecartTrack(this.trackX, this.trackY, this.trackZ + 1)) {
++var1;
}
if (this.isMinecartTrack(this.trackX, this.trackY, this.trackZ + 1)) {
++var1;
}
if(this.isMinecartTrack(this.trackX - 1, this.trackY, this.trackZ)) {
++var1;
}
if (this.isMinecartTrack(this.trackX - 1, this.trackY, this.trackZ)) {
++var1;
}
if(this.isMinecartTrack(this.trackX + 1, this.trackY, this.trackZ)) {
++var1;
}
if (this.isMinecartTrack(this.trackX + 1, this.trackY, this.trackZ)) {
++var1;
}
return var1;
}
return var1;
}
private boolean handleKeyPress(RailLogic var1) {
if(this.isConnectedTo(var1)) {
return true;
} else if(this.connectedTracks.size() == 2) {
return false;
} else if(this.connectedTracks.size() == 0) {
return true;
} else {
ChunkPosition var2 = (ChunkPosition)this.connectedTracks.get(0);
return var1.trackY == this.trackY && var2.y == this.trackY ? true : true;
}
}
private boolean handleKeyPress(RailLogic var1) {
if (this.isConnectedTo(var1)) {
return true;
} else if (this.connectedTracks.size() == 2) {
return false;
} else if (this.connectedTracks.size() == 0) {
return true;
} else {
ChunkPosition var2 = (ChunkPosition) this.connectedTracks.get(0);
return var1.trackY == this.trackY && var2.y == this.trackY ? true : true;
}
}
private void func_598_d(RailLogic var1) {
this.connectedTracks.add(new ChunkPosition(var1.trackX, var1.trackY, var1.trackZ));
boolean var2 = this.func_599_b(this.trackX, this.trackY, this.trackZ - 1);
boolean var3 = this.func_599_b(this.trackX, this.trackY, this.trackZ + 1);
boolean var4 = this.func_599_b(this.trackX - 1, this.trackY, this.trackZ);
boolean var5 = this.func_599_b(this.trackX + 1, this.trackY, this.trackZ);
byte var6 = -1;
if(var2 || var3) {
var6 = 0;
}
private void func_598_d(RailLogic var1) {
this.connectedTracks.add(new ChunkPosition(var1.trackX, var1.trackY, var1.trackZ));
boolean var2 = this.func_599_b(this.trackX, this.trackY, this.trackZ - 1);
boolean var3 = this.func_599_b(this.trackX, this.trackY, this.trackZ + 1);
boolean var4 = this.func_599_b(this.trackX - 1, this.trackY, this.trackZ);
boolean var5 = this.func_599_b(this.trackX + 1, this.trackY, this.trackZ);
byte var6 = -1;
if (var2 || var3) {
var6 = 0;
}
if(var4 || var5) {
var6 = 1;
}
if (var4 || var5) {
var6 = 1;
}
if(!this.field_27084_f) {
if(var3 && var5 && !var2 && !var4) {
var6 = 6;
}
if (!this.field_27084_f) {
if (var3 && var5 && !var2 && !var4) {
var6 = 6;
}
if(var3 && var4 && !var2 && !var5) {
var6 = 7;
}
if (var3 && var4 && !var2 && !var5) {
var6 = 7;
}
if(var2 && var4 && !var3 && !var5) {
var6 = 8;
}
if (var2 && var4 && !var3 && !var5) {
var6 = 8;
}
if(var2 && var5 && !var3 && !var4) {
var6 = 9;
}
}
if (var2 && var5 && !var3 && !var4) {
var6 = 9;
}
}
if(var6 == 0) {
if(BlockRail.func_27029_g(this.worldObj, this.trackX, this.trackY + 1, this.trackZ - 1)) {
var6 = 4;
}
if (var6 == 0) {
if (BlockRail.func_27029_g(this.worldObj, this.trackX, this.trackY + 1, this.trackZ - 1)) {
var6 = 4;
}
if(BlockRail.func_27029_g(this.worldObj, this.trackX, this.trackY + 1, this.trackZ + 1)) {
var6 = 5;
}
}
if (BlockRail.func_27029_g(this.worldObj, this.trackX, this.trackY + 1, this.trackZ + 1)) {
var6 = 5;
}
}
if(var6 == 1) {
if(BlockRail.func_27029_g(this.worldObj, this.trackX + 1, this.trackY + 1, this.trackZ)) {
var6 = 2;
}
if (var6 == 1) {
if (BlockRail.func_27029_g(this.worldObj, this.trackX + 1, this.trackY + 1, this.trackZ)) {
var6 = 2;
}
if(BlockRail.func_27029_g(this.worldObj, this.trackX - 1, this.trackY + 1, this.trackZ)) {
var6 = 3;
}
}
if (BlockRail.func_27029_g(this.worldObj, this.trackX - 1, this.trackY + 1, this.trackZ)) {
var6 = 3;
}
}
if(var6 < 0) {
var6 = 0;
}
if (var6 < 0) {
var6 = 0;
}
int var7 = var6;
if(this.field_27084_f) {
var7 = this.worldObj.getBlockMetadata(this.trackX, this.trackY, this.trackZ) & 8 | var6;
}
int var7 = var6;
if (this.field_27084_f) {
var7 = this.worldObj.getBlockMetadata(this.trackX, this.trackY, this.trackZ) & 8 | var6;
}
this.worldObj.setBlockMetadataWithNotify(this.trackX, this.trackY, this.trackZ, var7);
}
this.worldObj.setBlockMetadataWithNotify(this.trackX, this.trackY, this.trackZ, var7);
}
private boolean func_592_c(int var1, int var2, int var3) {
RailLogic var4 = this.getMinecartTrackLogic(new ChunkPosition(var1, var2, var3));
if(var4 == null) {
return false;
} else {
var4.func_591_b();
return var4.handleKeyPress(this);
}
}
private boolean func_592_c(int var1, int var2, int var3) {
RailLogic var4 = this.getMinecartTrackLogic(new ChunkPosition(var1, var2, var3));
if (var4 == null) {
return false;
} else {
var4.func_591_b();
return var4.handleKeyPress(this);
}
}
public void func_596_a(boolean var1, boolean var2) {
boolean var3 = this.func_592_c(this.trackX, this.trackY, this.trackZ - 1);
boolean var4 = this.func_592_c(this.trackX, this.trackY, this.trackZ + 1);
boolean var5 = this.func_592_c(this.trackX - 1, this.trackY, this.trackZ);
boolean var6 = this.func_592_c(this.trackX + 1, this.trackY, this.trackZ);
byte var7 = -1;
if((var3 || var4) && !var5 && !var6) {
var7 = 0;
}
public void func_596_a(boolean var1, boolean var2) {
boolean var3 = this.func_592_c(this.trackX, this.trackY, this.trackZ - 1);
boolean var4 = this.func_592_c(this.trackX, this.trackY, this.trackZ + 1);
boolean var5 = this.func_592_c(this.trackX - 1, this.trackY, this.trackZ);
boolean var6 = this.func_592_c(this.trackX + 1, this.trackY, this.trackZ);
byte var7 = -1;
if ((var3 || var4) && !var5 && !var6) {
var7 = 0;
}
if((var5 || var6) && !var3 && !var4) {
var7 = 1;
}
if ((var5 || var6) && !var3 && !var4) {
var7 = 1;
}
if(!this.field_27084_f) {
if(var4 && var6 && !var3 && !var5) {
var7 = 6;
}
if (!this.field_27084_f) {
if (var4 && var6 && !var3 && !var5) {
var7 = 6;
}
if(var4 && var5 && !var3 && !var6) {
var7 = 7;
}
if (var4 && var5 && !var3 && !var6) {
var7 = 7;
}
if(var3 && var5 && !var4 && !var6) {
var7 = 8;
}
if (var3 && var5 && !var4 && !var6) {
var7 = 8;
}
if(var3 && var6 && !var4 && !var5) {
var7 = 9;
}
}
if (var3 && var6 && !var4 && !var5) {
var7 = 9;
}
}
if(var7 == -1) {
if(var3 || var4) {
var7 = 0;
}
if (var7 == -1) {
if (var3 || var4) {
var7 = 0;
}
if(var5 || var6) {
var7 = 1;
}
if (var5 || var6) {
var7 = 1;
}
if(!this.field_27084_f) {
if(var1) {
if(var4 && var6) {
var7 = 6;
}
if (!this.field_27084_f) {
if (var1) {
if (var4 && var6) {
var7 = 6;
}
if(var5 && var4) {
var7 = 7;
}
if (var5 && var4) {
var7 = 7;
}
if(var6 && var3) {
var7 = 9;
}
if (var6 && var3) {
var7 = 9;
}
if(var3 && var5) {
var7 = 8;
}
} else {
if(var3 && var5) {
var7 = 8;
}
if (var3 && var5) {
var7 = 8;
}
} else {
if (var3 && var5) {
var7 = 8;
}
if(var6 && var3) {
var7 = 9;
}
if (var6 && var3) {
var7 = 9;
}
if(var5 && var4) {
var7 = 7;
}
if (var5 && var4) {
var7 = 7;
}
if(var4 && var6) {
var7 = 6;
}
}
}
}
if (var4 && var6) {
var7 = 6;
}
}
}
}
if(var7 == 0) {
if(BlockRail.func_27029_g(this.worldObj, this.trackX, this.trackY + 1, this.trackZ - 1)) {
var7 = 4;
}
if (var7 == 0) {
if (BlockRail.func_27029_g(this.worldObj, this.trackX, this.trackY + 1, this.trackZ - 1)) {
var7 = 4;
}
if(BlockRail.func_27029_g(this.worldObj, this.trackX, this.trackY + 1, this.trackZ + 1)) {
var7 = 5;
}
}
if (BlockRail.func_27029_g(this.worldObj, this.trackX, this.trackY + 1, this.trackZ + 1)) {
var7 = 5;
}
}
if(var7 == 1) {
if(BlockRail.func_27029_g(this.worldObj, this.trackX + 1, this.trackY + 1, this.trackZ)) {
var7 = 2;
}
if (var7 == 1) {
if (BlockRail.func_27029_g(this.worldObj, this.trackX + 1, this.trackY + 1, this.trackZ)) {
var7 = 2;
}
if(BlockRail.func_27029_g(this.worldObj, this.trackX - 1, this.trackY + 1, this.trackZ)) {
var7 = 3;
}
}
if (BlockRail.func_27029_g(this.worldObj, this.trackX - 1, this.trackY + 1, this.trackZ)) {
var7 = 3;
}
}
if(var7 < 0) {
var7 = 0;
}
if (var7 < 0) {
var7 = 0;
}
this.func_27083_a(var7);
int var8 = var7;
if(this.field_27084_f) {
var8 = this.worldObj.getBlockMetadata(this.trackX, this.trackY, this.trackZ) & 8 | var7;
}
this.func_27083_a(var7);
int var8 = var7;
if (this.field_27084_f) {
var8 = this.worldObj.getBlockMetadata(this.trackX, this.trackY, this.trackZ) & 8 | var7;
}
if(var2 || this.worldObj.getBlockMetadata(this.trackX, this.trackY, this.trackZ) != var8) {
this.worldObj.setBlockMetadataWithNotify(this.trackX, this.trackY, this.trackZ, var8);
if (var2 || this.worldObj.getBlockMetadata(this.trackX, this.trackY, this.trackZ) != var8) {
this.worldObj.setBlockMetadataWithNotify(this.trackX, this.trackY, this.trackZ, var8);
for(int var9 = 0; var9 < this.connectedTracks.size(); ++var9) {
RailLogic var10 = this.getMinecartTrackLogic((ChunkPosition)this.connectedTracks.get(var9));
if(var10 != null) {
var10.func_591_b();
if(var10.handleKeyPress(this)) {
var10.func_598_d(this);
}
}
}
}
for (int var9 = 0; var9 < this.connectedTracks.size(); ++var9) {
RailLogic var10 = this.getMinecartTrackLogic((ChunkPosition) this.connectedTracks.get(var9));
if (var10 != null) {
var10.func_591_b();
if (var10.handleKeyPress(this)) {
var10.func_598_d(this);
}
}
}
}
}
}
static int getNAdjacentTracks(RailLogic var0) {
return var0.getAdjacentTracks();
}
static int getNAdjacentTracks(RailLogic var0) {
return var0.getAdjacentTracks();
}
}

View file

@ -1,15 +1,15 @@
package net.minecraft.block;
class RedstoneUpdateInfo {
int x;
int y;
int z;
long updateTime;
int x;
int y;
int z;
long updateTime;
public RedstoneUpdateInfo(int var1, int var2, int var3, long var4) {
this.x = var1;
this.y = var2;
this.z = var3;
this.updateTime = var4;
}
public RedstoneUpdateInfo(int var1, int var2, int var3, long var4) {
this.x = var1;
this.y = var2;
this.z = var3;
this.updateTime = var4;
}
}

View file

@ -3,108 +3,108 @@ package net.minecraft.block.material;
import net.minecraft.item.map.MapColor;
public class Material {
public static final Material air = new MaterialTransparent(MapColor.airColor);
public static final Material grass = new Material(MapColor.grassColor);
public static final Material ground = new Material(MapColor.dirtColor);
public static final Material wood = (new Material(MapColor.woodColor)).setBurning();
public static final Material rock = (new Material(MapColor.stoneColor)).func_31058_n();
public static final Material iron = (new Material(MapColor.ironColor)).func_31058_n();
public static final Material water = (new MaterialLiquid(MapColor.waterColor)).setNoPushMobility();
public static final Material lava = (new MaterialLiquid(MapColor.tntColor)).setNoPushMobility();
public static final Material leaves = (new Material(MapColor.foliageColor)).setBurning().func_28129_i().setNoPushMobility();
public static final Material plants = (new MaterialLogic(MapColor.foliageColor)).setNoPushMobility();
public static final Material sponge = new Material(MapColor.clothColor);
public static final Material cloth = (new Material(MapColor.clothColor)).setBurning();
public static final Material fire = (new MaterialTransparent(MapColor.airColor)).setNoPushMobility();
public static final Material sand = new Material(MapColor.sandColor);
public static final Material circuits = (new MaterialLogic(MapColor.airColor)).setNoPushMobility();
public static final Material glass = (new Material(MapColor.airColor)).func_28129_i();
public static final Material tnt = (new Material(MapColor.tntColor)).setBurning().func_28129_i();
public static final Material wug = (new Material(MapColor.foliageColor)).setNoPushMobility();
public static final Material ice = (new Material(MapColor.iceColor)).func_28129_i();
public static final Material snow = (new MaterialLogic(MapColor.snowColor)).func_27089_f().func_28129_i().func_31058_n().setNoPushMobility();
public static final Material builtSnow = (new Material(MapColor.snowColor)).func_31058_n();
public static final Material cactus = (new Material(MapColor.foliageColor)).func_28129_i().setNoPushMobility();
public static final Material clay = new Material(MapColor.clayColor);
public static final Material pumpkin = (new Material(MapColor.foliageColor)).setNoPushMobility();
public static final Material portal = (new MaterialPortal(MapColor.airColor)).setImmovableMobility();
public static final Material cakeMaterial = (new Material(MapColor.airColor)).setNoPushMobility();
public static final Material web = (new Material(MapColor.clothColor)).func_31058_n().setNoPushMobility();
public static final Material piston = (new Material(MapColor.stoneColor)).setImmovableMobility();
private boolean canBurn;
private boolean field_27091_A;
private boolean isTranslucent;
public final MapColor field_28131_A;
private boolean field_31061_G = true;
private int mobilityFlag;
public static final Material air = new MaterialTransparent(MapColor.airColor);
public static final Material grass = new Material(MapColor.grassColor);
public static final Material ground = new Material(MapColor.dirtColor);
public static final Material wood = (new Material(MapColor.woodColor)).setBurning();
public static final Material rock = (new Material(MapColor.stoneColor)).func_31058_n();
public static final Material iron = (new Material(MapColor.ironColor)).func_31058_n();
public static final Material water = (new MaterialLiquid(MapColor.waterColor)).setNoPushMobility();
public static final Material lava = (new MaterialLiquid(MapColor.tntColor)).setNoPushMobility();
public static final Material leaves = (new Material(MapColor.foliageColor)).setBurning().func_28129_i().setNoPushMobility();
public static final Material plants = (new MaterialLogic(MapColor.foliageColor)).setNoPushMobility();
public static final Material sponge = new Material(MapColor.clothColor);
public static final Material cloth = (new Material(MapColor.clothColor)).setBurning();
public static final Material fire = (new MaterialTransparent(MapColor.airColor)).setNoPushMobility();
public static final Material sand = new Material(MapColor.sandColor);
public static final Material circuits = (new MaterialLogic(MapColor.airColor)).setNoPushMobility();
public static final Material glass = (new Material(MapColor.airColor)).func_28129_i();
public static final Material tnt = (new Material(MapColor.tntColor)).setBurning().func_28129_i();
public static final Material wug = (new Material(MapColor.foliageColor)).setNoPushMobility();
public static final Material ice = (new Material(MapColor.iceColor)).func_28129_i();
public static final Material snow = (new MaterialLogic(MapColor.snowColor)).func_27089_f().func_28129_i().func_31058_n().setNoPushMobility();
public static final Material builtSnow = (new Material(MapColor.snowColor)).func_31058_n();
public static final Material cactus = (new Material(MapColor.foliageColor)).func_28129_i().setNoPushMobility();
public static final Material clay = new Material(MapColor.clayColor);
public static final Material pumpkin = (new Material(MapColor.foliageColor)).setNoPushMobility();
public static final Material portal = (new MaterialPortal(MapColor.airColor)).setImmovableMobility();
public static final Material cakeMaterial = (new Material(MapColor.airColor)).setNoPushMobility();
public static final Material web = (new Material(MapColor.clothColor)).func_31058_n().setNoPushMobility();
public static final Material piston = (new Material(MapColor.stoneColor)).setImmovableMobility();
private boolean canBurn;
private boolean field_27091_A;
private boolean isTranslucent;
public final MapColor field_28131_A;
private boolean field_31061_G = true;
private int mobilityFlag;
public Material(MapColor var1) {
this.field_28131_A = var1;
}
public Material(MapColor var1) {
this.field_28131_A = var1;
}
public boolean getIsLiquid() {
return false;
}
public boolean getIsLiquid() {
return false;
}
public boolean isSolid() {
return true;
}
public boolean isSolid() {
return true;
}
public boolean getCanBlockGrass() {
return true;
}
public boolean getCanBlockGrass() {
return true;
}
public boolean getIsSolid() {
return true;
}
public boolean getIsSolid() {
return true;
}
private Material func_28129_i() {
this.isTranslucent = true;
return this;
}
private Material func_28129_i() {
this.isTranslucent = true;
return this;
}
private Material func_31058_n() {
this.field_31061_G = false;
return this;
}
private Material func_31058_n() {
this.field_31061_G = false;
return this;
}
private Material setBurning() {
this.canBurn = true;
return this;
}
private Material setBurning() {
this.canBurn = true;
return this;
}
public boolean getBurning() {
return this.canBurn;
}
public boolean getBurning() {
return this.canBurn;
}
public Material func_27089_f() {
this.field_27091_A = true;
return this;
}
public Material func_27089_f() {
this.field_27091_A = true;
return this;
}
public boolean func_27090_g() {
return this.field_27091_A;
}
public boolean func_27090_g() {
return this.field_27091_A;
}
public boolean getIsOpaque() {
return this.isTranslucent ? false : this.getIsSolid();
}
public boolean getIsOpaque() {
return this.isTranslucent ? false : this.getIsSolid();
}
public boolean func_31055_i() {
return this.field_31061_G;
}
public boolean func_31055_i() {
return this.field_31061_G;
}
public int getMaterialMobility() {
return this.mobilityFlag;
}
public int getMaterialMobility() {
return this.mobilityFlag;
}
protected Material setNoPushMobility() {
this.mobilityFlag = 1;
return this;
}
protected Material setNoPushMobility() {
this.mobilityFlag = 1;
return this;
}
protected Material setImmovableMobility() {
this.mobilityFlag = 2;
return this;
}
protected Material setImmovableMobility() {
this.mobilityFlag = 2;
return this;
}
}

View file

@ -3,21 +3,21 @@ package net.minecraft.block.material;
import net.minecraft.item.map.MapColor;
public class MaterialLiquid extends Material {
public MaterialLiquid(MapColor var1) {
super(var1);
this.func_27089_f();
this.setNoPushMobility();
}
public MaterialLiquid(MapColor var1) {
super(var1);
this.func_27089_f();
this.setNoPushMobility();
}
public boolean getIsLiquid() {
return true;
}
public boolean getIsLiquid() {
return true;
}
public boolean getIsSolid() {
return false;
}
public boolean getIsSolid() {
return false;
}
public boolean isSolid() {
return false;
}
public boolean isSolid() {
return false;
}
}

View file

@ -3,19 +3,19 @@ package net.minecraft.block.material;
import net.minecraft.item.map.MapColor;
public class MaterialLogic extends Material {
public MaterialLogic(MapColor var1) {
super(var1);
}
public MaterialLogic(MapColor var1) {
super(var1);
}
public boolean isSolid() {
return false;
}
public boolean isSolid() {
return false;
}
public boolean getCanBlockGrass() {
return false;
}
public boolean getCanBlockGrass() {
return false;
}
public boolean getIsSolid() {
return false;
}
public boolean getIsSolid() {
return false;
}
}

View file

@ -3,19 +3,19 @@ package net.minecraft.block.material;
import net.minecraft.item.map.MapColor;
public class MaterialPortal extends Material {
public MaterialPortal(MapColor var1) {
super(var1);
}
public MaterialPortal(MapColor var1) {
super(var1);
}
public boolean isSolid() {
return false;
}
public boolean isSolid() {
return false;
}
public boolean getCanBlockGrass() {
return false;
}
public boolean getCanBlockGrass() {
return false;
}
public boolean getIsSolid() {
return false;
}
public boolean getIsSolid() {
return false;
}
}

View file

@ -3,20 +3,20 @@ package net.minecraft.block.material;
import net.minecraft.item.map.MapColor;
public class MaterialTransparent extends Material {
public MaterialTransparent(MapColor var1) {
super(var1);
this.func_27089_f();
}
public MaterialTransparent(MapColor var1) {
super(var1);
this.func_27089_f();
}
public boolean isSolid() {
return false;
}
public boolean isSolid() {
return false;
}
public boolean getCanBlockGrass() {
return false;
}
public boolean getCanBlockGrass() {
return false;
}
public boolean getIsSolid() {
return false;
}
public boolean getIsSolid() {
return false;
}
}

View file

@ -1,25 +1,25 @@
package net.minecraft.block.stepsound;
public class StepSound {
public final String field_1029_a;
public final float field_1028_b;
public final float field_1030_c;
public final String field_1029_a;
public final float field_1028_b;
public final float field_1030_c;
public StepSound(String var1, float var2, float var3) {
this.field_1029_a = var1;
this.field_1028_b = var2;
this.field_1030_c = var3;
}
public StepSound(String var1, float var2, float var3) {
this.field_1029_a = var1;
this.field_1028_b = var2;
this.field_1030_c = var3;
}
public float getVolume() {
return this.field_1028_b;
}
public float getVolume() {
return this.field_1028_b;
}
public float getPitch() {
return this.field_1030_c;
}
public float getPitch() {
return this.field_1030_c;
}
public String func_737_c() {
return "step." + this.field_1029_a;
}
public String func_737_c() {
return "step." + this.field_1029_a;
}
}

View file

@ -1,7 +1,7 @@
package net.minecraft.block.stepsound;
public final class StepSoundSand extends StepSound {
public StepSoundSand(String var1, float var2, float var3) {
super(var1, var2, var3);
}
public StepSoundSand(String var1, float var2, float var3) {
super(var1, var2, var3);
}
}

View file

@ -1,7 +1,7 @@
package net.minecraft.block.stepsound;
public final class StepSoundStone extends StepSound {
public StepSoundStone(String var1, float var2, float var3) {
super(var1, var2, var3);
}
public StepSoundStone(String var1, float var2, float var3) {
super(var1, var2, var3);
}
}

View file

@ -1,106 +1,107 @@
package net.minecraft.block.tile;
import java.util.HashMap;
import java.util.Map;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.packets.Packet;
import net.minecraft.world.World;
import java.util.HashMap;
import java.util.Map;
public class TileEntity {
private static Map nameToClassMap = new HashMap();
private static Map classToNameMap = new HashMap();
public World worldObj;
public int xCoord;
public int yCoord;
public int zCoord;
protected boolean tileEntityInvalid;
private static Map nameToClassMap = new HashMap();
private static Map classToNameMap = new HashMap();
public World worldObj;
public int xCoord;
public int yCoord;
public int zCoord;
protected boolean tileEntityInvalid;
private static void addMapping(Class var0, String var1) {
if(classToNameMap.containsKey(var1)) {
throw new IllegalArgumentException("Duplicate id: " + var1);
} else {
nameToClassMap.put(var1, var0);
classToNameMap.put(var0, var1);
}
}
private static void addMapping(Class var0, String var1) {
if (classToNameMap.containsKey(var1)) {
throw new IllegalArgumentException("Duplicate id: " + var1);
} else {
nameToClassMap.put(var1, var0);
classToNameMap.put(var0, var1);
}
}
public void readFromNBT(NBTTagCompound var1) {
this.xCoord = var1.getInteger("x");
this.yCoord = var1.getInteger("y");
this.zCoord = var1.getInteger("z");
}
public void readFromNBT(NBTTagCompound var1) {
this.xCoord = var1.getInteger("x");
this.yCoord = var1.getInteger("y");
this.zCoord = var1.getInteger("z");
}
public void writeToNBT(NBTTagCompound var1) {
String var2 = (String)classToNameMap.get(this.getClass());
if(var2 == null) {
throw new RuntimeException(this.getClass() + " is missing a mapping! This is a bug!");
} else {
var1.setString("id", var2);
var1.setInteger("x", this.xCoord);
var1.setInteger("y", this.yCoord);
var1.setInteger("z", this.zCoord);
}
}
public void writeToNBT(NBTTagCompound var1) {
String var2 = (String) classToNameMap.get(this.getClass());
if (var2 == null) {
throw new RuntimeException(this.getClass() + " is missing a mapping! This is a bug!");
} else {
var1.setString("id", var2);
var1.setInteger("x", this.xCoord);
var1.setInteger("y", this.yCoord);
var1.setInteger("z", this.zCoord);
}
}
public void updateEntity() {
}
public void updateEntity() {
}
public static TileEntity createAndLoadEntity(NBTTagCompound var0) {
TileEntity var1 = null;
public static TileEntity createAndLoadEntity(NBTTagCompound var0) {
TileEntity var1 = null;
try {
Class var2 = (Class)nameToClassMap.get(var0.getString("id"));
if(var2 != null) {
var1 = (TileEntity)var2.newInstance();
}
} catch (Exception var3) {
var3.printStackTrace();
}
try {
Class var2 = (Class) nameToClassMap.get(var0.getString("id"));
if (var2 != null) {
var1 = (TileEntity) var2.newInstance();
}
} catch (Exception var3) {
var3.printStackTrace();
}
if(var1 != null) {
var1.readFromNBT(var0);
} else {
System.out.println("Skipping TileEntity with id " + var0.getString("id"));
}
if (var1 != null) {
var1.readFromNBT(var0);
} else {
System.out.println("Skipping TileEntity with id " + var0.getString("id"));
}
return var1;
}
return var1;
}
public int func_31005_e() {
return this.worldObj.getBlockMetadata(this.xCoord, this.yCoord, this.zCoord);
}
public int func_31005_e() {
return this.worldObj.getBlockMetadata(this.xCoord, this.yCoord, this.zCoord);
}
public void onInventoryChanged() {
if(this.worldObj != null) {
this.worldObj.updateTileEntityChunkAndDoNothing(this.xCoord, this.yCoord, this.zCoord, this);
}
public void onInventoryChanged() {
if (this.worldObj != null) {
this.worldObj.updateTileEntityChunkAndDoNothing(this.xCoord, this.yCoord, this.zCoord, this);
}
}
}
public Packet getDescriptionPacket() {
return null;
}
public Packet getDescriptionPacket() {
return null;
}
public boolean isInvalid() {
return this.tileEntityInvalid;
}
public boolean isInvalid() {
return this.tileEntityInvalid;
}
public void invalidate() {
this.tileEntityInvalid = true;
}
public void invalidate() {
this.tileEntityInvalid = true;
}
public void validate() {
this.tileEntityInvalid = false;
}
public void validate() {
this.tileEntityInvalid = false;
}
static {
addMapping(TileEntityFurnace.class, "Furnace");
addMapping(TileEntityChest.class, "Chest");
addMapping(TileEntityRecordPlayer.class, "RecordPlayer");
addMapping(TileEntityDispenser.class, "Trap");
addMapping(TileEntitySign.class, "Sign");
addMapping(TileEntityMobSpawner.class, "MobSpawner");
addMapping(TileEntityNote.class, "Music");
addMapping(TileEntityPiston.class, "Piston");
}
static {
addMapping(TileEntityFurnace.class, "Furnace");
addMapping(TileEntityChest.class, "Chest");
addMapping(TileEntityRecordPlayer.class, "RecordPlayer");
addMapping(TileEntityDispenser.class, "Trap");
addMapping(TileEntitySign.class, "Sign");
addMapping(TileEntityMobSpawner.class, "MobSpawner");
addMapping(TileEntityNote.class, "Music");
addMapping(TileEntityPiston.class, "Piston");
}
}

View file

@ -7,87 +7,87 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
public class TileEntityChest extends TileEntity implements IInventory {
private ItemStack[] chestContents = new ItemStack[36];
private ItemStack[] chestContents = new ItemStack[36];
public int getSizeInventory() {
return 27;
}
public int getSizeInventory() {
return 27;
}
public ItemStack getStackInSlot(int var1) {
return this.chestContents[var1];
}
public ItemStack getStackInSlot(int var1) {
return this.chestContents[var1];
}
public ItemStack decrStackSize(int var1, int var2) {
if(this.chestContents[var1] != null) {
ItemStack var3;
if(this.chestContents[var1].stackSize <= var2) {
var3 = this.chestContents[var1];
this.chestContents[var1] = null;
this.onInventoryChanged();
return var3;
} else {
var3 = this.chestContents[var1].splitStack(var2);
if(this.chestContents[var1].stackSize == 0) {
this.chestContents[var1] = null;
}
public ItemStack decrStackSize(int var1, int var2) {
if (this.chestContents[var1] != null) {
ItemStack var3;
if (this.chestContents[var1].stackSize <= var2) {
var3 = this.chestContents[var1];
this.chestContents[var1] = null;
this.onInventoryChanged();
return var3;
} else {
var3 = this.chestContents[var1].splitStack(var2);
if (this.chestContents[var1].stackSize == 0) {
this.chestContents[var1] = null;
}
this.onInventoryChanged();
return var3;
}
} else {
return null;
}
}
this.onInventoryChanged();
return var3;
}
} else {
return null;
}
}
public void setInventorySlotContents(int var1, ItemStack var2) {
this.chestContents[var1] = var2;
if(var2 != null && var2.stackSize > this.getInventoryStackLimit()) {
var2.stackSize = this.getInventoryStackLimit();
}
public void setInventorySlotContents(int var1, ItemStack var2) {
this.chestContents[var1] = var2;
if (var2 != null && var2.stackSize > this.getInventoryStackLimit()) {
var2.stackSize = this.getInventoryStackLimit();
}
this.onInventoryChanged();
}
this.onInventoryChanged();
}
public String getInvName() {
return "Chest";
}
public String getInvName() {
return "Chest";
}
public void readFromNBT(NBTTagCompound var1) {
super.readFromNBT(var1);
NBTTagList var2 = var1.getTagList("Items");
this.chestContents = new ItemStack[this.getSizeInventory()];
public void readFromNBT(NBTTagCompound var1) {
super.readFromNBT(var1);
NBTTagList var2 = var1.getTagList("Items");
this.chestContents = new ItemStack[this.getSizeInventory()];
for(int var3 = 0; var3 < var2.tagCount(); ++var3) {
NBTTagCompound var4 = (NBTTagCompound)var2.tagAt(var3);
int var5 = var4.getByte("Slot") & 255;
if(var5 >= 0 && var5 < this.chestContents.length) {
this.chestContents[var5] = new ItemStack(var4);
}
}
for (int var3 = 0; var3 < var2.tagCount(); ++var3) {
NBTTagCompound var4 = (NBTTagCompound) var2.tagAt(var3);
int var5 = var4.getByte("Slot") & 255;
if (var5 >= 0 && var5 < this.chestContents.length) {
this.chestContents[var5] = new ItemStack(var4);
}
}
}
}
public void writeToNBT(NBTTagCompound var1) {
super.writeToNBT(var1);
NBTTagList var2 = new NBTTagList();
public void writeToNBT(NBTTagCompound var1) {
super.writeToNBT(var1);
NBTTagList var2 = new NBTTagList();
for(int var3 = 0; var3 < this.chestContents.length; ++var3) {
if(this.chestContents[var3] != null) {
NBTTagCompound var4 = new NBTTagCompound();
var4.setByte("Slot", (byte)var3);
this.chestContents[var3].writeToNBT(var4);
var2.setTag(var4);
}
}
for (int var3 = 0; var3 < this.chestContents.length; ++var3) {
if (this.chestContents[var3] != null) {
NBTTagCompound var4 = new NBTTagCompound();
var4.setByte("Slot", (byte) var3);
this.chestContents[var3].writeToNBT(var4);
var2.setTag(var4);
}
}
var1.setTag("Items", var2);
}
var1.setTag("Items", var2);
}
public int getInventoryStackLimit() {
return 64;
}
public int getInventoryStackLimit() {
return 64;
}
public boolean canInteractWith(EntityPlayer var1) {
return this.worldObj.getBlockTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : var1.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D;
}
public boolean canInteractWith(EntityPlayer var1) {
return this.worldObj.getBlockTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : var1.getDistanceSq((double) this.xCoord + 0.5D, (double) this.yCoord + 0.5D, (double) this.zCoord + 0.5D) <= 64.0D;
}
}

View file

@ -1,112 +1,113 @@
package net.minecraft.block.tile;
import java.util.Random;
import net.minecraft.container.inventory.IInventory;
import net.minecraft.entity.EntityPlayer;
import net.minecraft.item.crafting.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import java.util.Random;
public class TileEntityDispenser extends TileEntity implements IInventory {
private ItemStack[] dispenserContents = new ItemStack[9];
private Random dispenserRandom = new Random();
private ItemStack[] dispenserContents = new ItemStack[9];
private Random dispenserRandom = new Random();
public int getSizeInventory() {
return 9;
}
public int getSizeInventory() {
return 9;
}
public ItemStack getStackInSlot(int var1) {
return this.dispenserContents[var1];
}
public ItemStack getStackInSlot(int var1) {
return this.dispenserContents[var1];
}
public ItemStack decrStackSize(int var1, int var2) {
if(this.dispenserContents[var1] != null) {
ItemStack var3;
if(this.dispenserContents[var1].stackSize <= var2) {
var3 = this.dispenserContents[var1];
this.dispenserContents[var1] = null;
this.onInventoryChanged();
return var3;
} else {
var3 = this.dispenserContents[var1].splitStack(var2);
if(this.dispenserContents[var1].stackSize == 0) {
this.dispenserContents[var1] = null;
}
public ItemStack decrStackSize(int var1, int var2) {
if (this.dispenserContents[var1] != null) {
ItemStack var3;
if (this.dispenserContents[var1].stackSize <= var2) {
var3 = this.dispenserContents[var1];
this.dispenserContents[var1] = null;
this.onInventoryChanged();
return var3;
} else {
var3 = this.dispenserContents[var1].splitStack(var2);
if (this.dispenserContents[var1].stackSize == 0) {
this.dispenserContents[var1] = null;
}
this.onInventoryChanged();
return var3;
}
} else {
return null;
}
}
this.onInventoryChanged();
return var3;
}
} else {
return null;
}
}
public ItemStack getRandomStackFromInventory() {
int var1 = -1;
int var2 = 1;
public ItemStack getRandomStackFromInventory() {
int var1 = -1;
int var2 = 1;
for(int var3 = 0; var3 < this.dispenserContents.length; ++var3) {
if(this.dispenserContents[var3] != null && this.dispenserRandom.nextInt(var2++) == 0) {
var1 = var3;
}
}
for (int var3 = 0; var3 < this.dispenserContents.length; ++var3) {
if (this.dispenserContents[var3] != null && this.dispenserRandom.nextInt(var2++) == 0) {
var1 = var3;
}
}
if(var1 >= 0) {
return this.decrStackSize(var1, 1);
} else {
return null;
}
}
if (var1 >= 0) {
return this.decrStackSize(var1, 1);
} else {
return null;
}
}
public void setInventorySlotContents(int var1, ItemStack var2) {
this.dispenserContents[var1] = var2;
if(var2 != null && var2.stackSize > this.getInventoryStackLimit()) {
var2.stackSize = this.getInventoryStackLimit();
}
public void setInventorySlotContents(int var1, ItemStack var2) {
this.dispenserContents[var1] = var2;
if (var2 != null && var2.stackSize > this.getInventoryStackLimit()) {
var2.stackSize = this.getInventoryStackLimit();
}
this.onInventoryChanged();
}
this.onInventoryChanged();
}
public String getInvName() {
return "Trap";
}
public String getInvName() {
return "Trap";
}
public void readFromNBT(NBTTagCompound var1) {
super.readFromNBT(var1);
NBTTagList var2 = var1.getTagList("Items");
this.dispenserContents = new ItemStack[this.getSizeInventory()];
public void readFromNBT(NBTTagCompound var1) {
super.readFromNBT(var1);
NBTTagList var2 = var1.getTagList("Items");
this.dispenserContents = new ItemStack[this.getSizeInventory()];
for(int var3 = 0; var3 < var2.tagCount(); ++var3) {
NBTTagCompound var4 = (NBTTagCompound)var2.tagAt(var3);
int var5 = var4.getByte("Slot") & 255;
if(var5 >= 0 && var5 < this.dispenserContents.length) {
this.dispenserContents[var5] = new ItemStack(var4);
}
}
for (int var3 = 0; var3 < var2.tagCount(); ++var3) {
NBTTagCompound var4 = (NBTTagCompound) var2.tagAt(var3);
int var5 = var4.getByte("Slot") & 255;
if (var5 >= 0 && var5 < this.dispenserContents.length) {
this.dispenserContents[var5] = new ItemStack(var4);
}
}
}
}
public void writeToNBT(NBTTagCompound var1) {
super.writeToNBT(var1);
NBTTagList var2 = new NBTTagList();
public void writeToNBT(NBTTagCompound var1) {
super.writeToNBT(var1);
NBTTagList var2 = new NBTTagList();
for(int var3 = 0; var3 < this.dispenserContents.length; ++var3) {
if(this.dispenserContents[var3] != null) {
NBTTagCompound var4 = new NBTTagCompound();
var4.setByte("Slot", (byte)var3);
this.dispenserContents[var3].writeToNBT(var4);
var2.setTag(var4);
}
}
for (int var3 = 0; var3 < this.dispenserContents.length; ++var3) {
if (this.dispenserContents[var3] != null) {
NBTTagCompound var4 = new NBTTagCompound();
var4.setByte("Slot", (byte) var3);
this.dispenserContents[var3].writeToNBT(var4);
var2.setTag(var4);
}
}
var1.setTag("Items", var2);
}
var1.setTag("Items", var2);
}
public int getInventoryStackLimit() {
return 64;
}
public int getInventoryStackLimit() {
return 64;
}
public boolean canInteractWith(EntityPlayer var1) {
return this.worldObj.getBlockTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : var1.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D;
}
public boolean canInteractWith(EntityPlayer var1) {
return this.worldObj.getBlockTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : var1.getDistanceSq((double) this.xCoord + 0.5D, (double) this.yCoord + 0.5D, (double) this.zCoord + 0.5D) <= 64.0D;
}
}

View file

@ -12,175 +12,175 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
public class TileEntityFurnace extends TileEntity implements IInventory {
private ItemStack[] furnaceItemStacks = new ItemStack[3];
public int furnaceBurnTime = 0;
public int currentItemBurnTime = 0;
public int furnaceCookTime = 0;
private ItemStack[] furnaceItemStacks = new ItemStack[3];
public int furnaceBurnTime = 0;
public int currentItemBurnTime = 0;
public int furnaceCookTime = 0;
public int getSizeInventory() {
return this.furnaceItemStacks.length;
}
public int getSizeInventory() {
return this.furnaceItemStacks.length;
}
public ItemStack getStackInSlot(int var1) {
return this.furnaceItemStacks[var1];
}
public ItemStack getStackInSlot(int var1) {
return this.furnaceItemStacks[var1];
}
public ItemStack decrStackSize(int var1, int var2) {
if(this.furnaceItemStacks[var1] != null) {
ItemStack var3;
if(this.furnaceItemStacks[var1].stackSize <= var2) {
var3 = this.furnaceItemStacks[var1];
this.furnaceItemStacks[var1] = null;
return var3;
} else {
var3 = this.furnaceItemStacks[var1].splitStack(var2);
if(this.furnaceItemStacks[var1].stackSize == 0) {
this.furnaceItemStacks[var1] = null;
}
public ItemStack decrStackSize(int var1, int var2) {
if (this.furnaceItemStacks[var1] != null) {
ItemStack var3;
if (this.furnaceItemStacks[var1].stackSize <= var2) {
var3 = this.furnaceItemStacks[var1];
this.furnaceItemStacks[var1] = null;
return var3;
} else {
var3 = this.furnaceItemStacks[var1].splitStack(var2);
if (this.furnaceItemStacks[var1].stackSize == 0) {
this.furnaceItemStacks[var1] = null;
}
return var3;
}
} else {
return null;
}
}
return var3;
}
} else {
return null;
}
}
public void setInventorySlotContents(int var1, ItemStack var2) {
this.furnaceItemStacks[var1] = var2;
if(var2 != null && var2.stackSize > this.getInventoryStackLimit()) {
var2.stackSize = this.getInventoryStackLimit();
}
public void setInventorySlotContents(int var1, ItemStack var2) {
this.furnaceItemStacks[var1] = var2;
if (var2 != null && var2.stackSize > this.getInventoryStackLimit()) {
var2.stackSize = this.getInventoryStackLimit();
}
}
}
public String getInvName() {
return "Furnace";
}
public String getInvName() {
return "Furnace";
}
public void readFromNBT(NBTTagCompound var1) {
super.readFromNBT(var1);
NBTTagList var2 = var1.getTagList("Items");
this.furnaceItemStacks = new ItemStack[this.getSizeInventory()];
public void readFromNBT(NBTTagCompound var1) {
super.readFromNBT(var1);
NBTTagList var2 = var1.getTagList("Items");
this.furnaceItemStacks = new ItemStack[this.getSizeInventory()];
for(int var3 = 0; var3 < var2.tagCount(); ++var3) {
NBTTagCompound var4 = (NBTTagCompound)var2.tagAt(var3);
byte var5 = var4.getByte("Slot");
if(var5 >= 0 && var5 < this.furnaceItemStacks.length) {
this.furnaceItemStacks[var5] = new ItemStack(var4);
}
}
for (int var3 = 0; var3 < var2.tagCount(); ++var3) {
NBTTagCompound var4 = (NBTTagCompound) var2.tagAt(var3);
byte var5 = var4.getByte("Slot");
if (var5 >= 0 && var5 < this.furnaceItemStacks.length) {
this.furnaceItemStacks[var5] = new ItemStack(var4);
}
}
this.furnaceBurnTime = var1.getShort("BurnTime");
this.furnaceCookTime = var1.getShort("CookTime");
this.currentItemBurnTime = this.getItemBurnTime(this.furnaceItemStacks[1]);
}
this.furnaceBurnTime = var1.getShort("BurnTime");
this.furnaceCookTime = var1.getShort("CookTime");
this.currentItemBurnTime = this.getItemBurnTime(this.furnaceItemStacks[1]);
}
public void writeToNBT(NBTTagCompound var1) {
super.writeToNBT(var1);
var1.setShort("BurnTime", (short)this.furnaceBurnTime);
var1.setShort("CookTime", (short)this.furnaceCookTime);
NBTTagList var2 = new NBTTagList();
public void writeToNBT(NBTTagCompound var1) {
super.writeToNBT(var1);
var1.setShort("BurnTime", (short) this.furnaceBurnTime);
var1.setShort("CookTime", (short) this.furnaceCookTime);
NBTTagList var2 = new NBTTagList();
for(int var3 = 0; var3 < this.furnaceItemStacks.length; ++var3) {
if(this.furnaceItemStacks[var3] != null) {
NBTTagCompound var4 = new NBTTagCompound();
var4.setByte("Slot", (byte)var3);
this.furnaceItemStacks[var3].writeToNBT(var4);
var2.setTag(var4);
}
}
for (int var3 = 0; var3 < this.furnaceItemStacks.length; ++var3) {
if (this.furnaceItemStacks[var3] != null) {
NBTTagCompound var4 = new NBTTagCompound();
var4.setByte("Slot", (byte) var3);
this.furnaceItemStacks[var3].writeToNBT(var4);
var2.setTag(var4);
}
}
var1.setTag("Items", var2);
}
var1.setTag("Items", var2);
}
public int getInventoryStackLimit() {
return 64;
}
public int getInventoryStackLimit() {
return 64;
}
public boolean isBurning() {
return this.furnaceBurnTime > 0;
}
public boolean isBurning() {
return this.furnaceBurnTime > 0;
}
public void updateEntity() {
boolean var1 = this.furnaceBurnTime > 0;
boolean var2 = false;
if(this.furnaceBurnTime > 0) {
--this.furnaceBurnTime;
}
public void updateEntity() {
boolean var1 = this.furnaceBurnTime > 0;
boolean var2 = false;
if (this.furnaceBurnTime > 0) {
--this.furnaceBurnTime;
}
if(!this.worldObj.singleplayerWorld) {
if(this.furnaceBurnTime == 0 && this.canSmelt()) {
this.currentItemBurnTime = this.furnaceBurnTime = this.getItemBurnTime(this.furnaceItemStacks[1]);
if(this.furnaceBurnTime > 0) {
var2 = true;
if(this.furnaceItemStacks[1] != null) {
--this.furnaceItemStacks[1].stackSize;
if(this.furnaceItemStacks[1].stackSize == 0) {
this.furnaceItemStacks[1] = null;
}
}
}
}
if (!this.worldObj.singleplayerWorld) {
if (this.furnaceBurnTime == 0 && this.canSmelt()) {
this.currentItemBurnTime = this.furnaceBurnTime = this.getItemBurnTime(this.furnaceItemStacks[1]);
if (this.furnaceBurnTime > 0) {
var2 = true;
if (this.furnaceItemStacks[1] != null) {
--this.furnaceItemStacks[1].stackSize;
if (this.furnaceItemStacks[1].stackSize == 0) {
this.furnaceItemStacks[1] = null;
}
}
}
}
if(this.isBurning() && this.canSmelt()) {
++this.furnaceCookTime;
if(this.furnaceCookTime == 200) {
this.furnaceCookTime = 0;
this.smeltItem();
var2 = true;
}
} else {
this.furnaceCookTime = 0;
}
if (this.isBurning() && this.canSmelt()) {
++this.furnaceCookTime;
if (this.furnaceCookTime == 200) {
this.furnaceCookTime = 0;
this.smeltItem();
var2 = true;
}
} else {
this.furnaceCookTime = 0;
}
if(var1 != this.furnaceBurnTime > 0) {
var2 = true;
BlockFurnace.updateFurnaceBlockState(this.furnaceBurnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord);
}
}
if (var1 != this.furnaceBurnTime > 0) {
var2 = true;
BlockFurnace.updateFurnaceBlockState(this.furnaceBurnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord);
}
}
if(var2) {
this.onInventoryChanged();
}
if (var2) {
this.onInventoryChanged();
}
}
}
private boolean canSmelt() {
if(this.furnaceItemStacks[0] == null) {
return false;
} else {
ItemStack var1 = FurnaceRecipes.smelting().getSmeltingResult(this.furnaceItemStacks[0].getItem().shiftedIndex);
return var1 == null ? false : (this.furnaceItemStacks[2] == null ? true : (!this.furnaceItemStacks[2].isItemEqual(var1) ? false : (this.furnaceItemStacks[2].stackSize < this.getInventoryStackLimit() && this.furnaceItemStacks[2].stackSize < this.furnaceItemStacks[2].getMaxStackSize() ? true : this.furnaceItemStacks[2].stackSize < var1.getMaxStackSize())));
}
}
private boolean canSmelt() {
if (this.furnaceItemStacks[0] == null) {
return false;
} else {
ItemStack var1 = FurnaceRecipes.smelting().getSmeltingResult(this.furnaceItemStacks[0].getItem().shiftedIndex);
return var1 == null ? false : (this.furnaceItemStacks[2] == null ? true : (!this.furnaceItemStacks[2].isItemEqual(var1) ? false : (this.furnaceItemStacks[2].stackSize < this.getInventoryStackLimit() && this.furnaceItemStacks[2].stackSize < this.furnaceItemStacks[2].getMaxStackSize() ? true : this.furnaceItemStacks[2].stackSize < var1.getMaxStackSize())));
}
}
public void smeltItem() {
if(this.canSmelt()) {
ItemStack var1 = FurnaceRecipes.smelting().getSmeltingResult(this.furnaceItemStacks[0].getItem().shiftedIndex);
if(this.furnaceItemStacks[2] == null) {
this.furnaceItemStacks[2] = var1.copy();
} else if(this.furnaceItemStacks[2].itemID == var1.itemID) {
++this.furnaceItemStacks[2].stackSize;
}
public void smeltItem() {
if (this.canSmelt()) {
ItemStack var1 = FurnaceRecipes.smelting().getSmeltingResult(this.furnaceItemStacks[0].getItem().shiftedIndex);
if (this.furnaceItemStacks[2] == null) {
this.furnaceItemStacks[2] = var1.copy();
} else if (this.furnaceItemStacks[2].itemID == var1.itemID) {
++this.furnaceItemStacks[2].stackSize;
}
--this.furnaceItemStacks[0].stackSize;
if(this.furnaceItemStacks[0].stackSize <= 0) {
this.furnaceItemStacks[0] = null;
}
--this.furnaceItemStacks[0].stackSize;
if (this.furnaceItemStacks[0].stackSize <= 0) {
this.furnaceItemStacks[0] = null;
}
}
}
}
}
private int getItemBurnTime(ItemStack var1) {
if(var1 == null) {
return 0;
} else {
int var2 = var1.getItem().shiftedIndex;
return var2 < 256 && Block.blocksList[var2].blockMaterial == Material.wood ? 300 : (var2 == Item.stick.shiftedIndex ? 100 : (var2 == Item.coal.shiftedIndex ? 1600 : (var2 == Item.bucketLava.shiftedIndex ? 20000 : (var2 == Block.sapling.blockID ? 100 : 0))));
}
}
private int getItemBurnTime(ItemStack var1) {
if (var1 == null) {
return 0;
} else {
int var2 = var1.getItem().shiftedIndex;
return var2 < 256 && Block.blocksList[var2].blockMaterial == Material.wood ? 300 : (var2 == Item.stick.shiftedIndex ? 100 : (var2 == Item.coal.shiftedIndex ? 1600 : (var2 == Item.bucketLava.shiftedIndex ? 20000 : (var2 == Block.sapling.blockID ? 100 : 0))));
}
}
public boolean canInteractWith(EntityPlayer var1) {
return this.worldObj.getBlockTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : var1.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D;
}
public boolean canInteractWith(EntityPlayer var1) {
return this.worldObj.getBlockTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : var1.getDistanceSq((double) this.xCoord + 0.5D, (double) this.yCoord + 0.5D, (double) this.zCoord + 0.5D) <= 64.0D;
}
}

View file

@ -6,100 +6,100 @@ import net.minecraft.math.AxisAlignedBB;
import net.minecraft.nbt.NBTTagCompound;
public class TileEntityMobSpawner extends TileEntity {
public int delay = -1;
private String mobID = "Pig";
public double yaw;
public double yaw2 = 0.0D;
public int delay = -1;
private String mobID = "Pig";
public double yaw;
public double yaw2 = 0.0D;
public TileEntityMobSpawner() {
this.delay = 20;
}
public TileEntityMobSpawner() {
this.delay = 20;
}
public void setMobID(String var1) {
this.mobID = var1;
}
public void setMobID(String var1) {
this.mobID = var1;
}
public boolean anyPlayerInRange() {
return this.worldObj.getClosestPlayer((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D, 16.0D) != null;
}
public boolean anyPlayerInRange() {
return this.worldObj.getClosestPlayer((double) this.xCoord + 0.5D, (double) this.yCoord + 0.5D, (double) this.zCoord + 0.5D, 16.0D) != null;
}
public void updateEntity() {
this.yaw2 = this.yaw;
if(this.anyPlayerInRange()) {
double var1 = (double)((float)this.xCoord + this.worldObj.rand.nextFloat());
double var3 = (double)((float)this.yCoord + this.worldObj.rand.nextFloat());
double var5 = (double)((float)this.zCoord + this.worldObj.rand.nextFloat());
this.worldObj.spawnParticle("smoke", var1, var3, var5, 0.0D, 0.0D, 0.0D);
this.worldObj.spawnParticle("flame", var1, var3, var5, 0.0D, 0.0D, 0.0D);
public void updateEntity() {
this.yaw2 = this.yaw;
if (this.anyPlayerInRange()) {
double var1 = (double) ((float) this.xCoord + this.worldObj.rand.nextFloat());
double var3 = (double) ((float) this.yCoord + this.worldObj.rand.nextFloat());
double var5 = (double) ((float) this.zCoord + this.worldObj.rand.nextFloat());
this.worldObj.spawnParticle("smoke", var1, var3, var5, 0.0D, 0.0D, 0.0D);
this.worldObj.spawnParticle("flame", var1, var3, var5, 0.0D, 0.0D, 0.0D);
for(this.yaw += (double)(1000.0F / ((float)this.delay + 200.0F)); this.yaw > 360.0D; this.yaw2 -= 360.0D) {
this.yaw -= 360.0D;
}
for (this.yaw += (double) (1000.0F / ((float) this.delay + 200.0F)); this.yaw > 360.0D; this.yaw2 -= 360.0D) {
this.yaw -= 360.0D;
}
if(!this.worldObj.singleplayerWorld) {
if(this.delay == -1) {
this.updateDelay();
}
if (!this.worldObj.singleplayerWorld) {
if (this.delay == -1) {
this.updateDelay();
}
if(this.delay > 0) {
--this.delay;
return;
}
if (this.delay > 0) {
--this.delay;
return;
}
byte var7 = 4;
byte var7 = 4;
for(int var8 = 0; var8 < var7; ++var8) {
EntityLiving var9 = (EntityLiving)((EntityLiving)EntityList.createEntityInWorld(this.mobID, this.worldObj));
if(var9 == null) {
return;
}
for (int var8 = 0; var8 < var7; ++var8) {
EntityLiving var9 = (EntityLiving) ((EntityLiving) EntityList.createEntityInWorld(this.mobID, this.worldObj));
if (var9 == null) {
return;
}
int var10 = this.worldObj.getEntitiesWithinAABB(var9.getClass(), AxisAlignedBB.getBoundingBoxFromPool((double)this.xCoord, (double)this.yCoord, (double)this.zCoord, (double)(this.xCoord + 1), (double)(this.yCoord + 1), (double)(this.zCoord + 1)).expand(8.0D, 4.0D, 8.0D)).size();
if(var10 >= 6) {
this.updateDelay();
return;
}
int var10 = this.worldObj.getEntitiesWithinAABB(var9.getClass(), AxisAlignedBB.getBoundingBoxFromPool((double) this.xCoord, (double) this.yCoord, (double) this.zCoord, (double) (this.xCoord + 1), (double) (this.yCoord + 1), (double) (this.zCoord + 1)).expand(8.0D, 4.0D, 8.0D)).size();
if (var10 >= 6) {
this.updateDelay();
return;
}
if(var9 != null) {
double var11 = (double)this.xCoord + (this.worldObj.rand.nextDouble() - this.worldObj.rand.nextDouble()) * 4.0D;
double var13 = (double)(this.yCoord + this.worldObj.rand.nextInt(3) - 1);
double var15 = (double)this.zCoord + (this.worldObj.rand.nextDouble() - this.worldObj.rand.nextDouble()) * 4.0D;
var9.setLocationAndAngles(var11, var13, var15, this.worldObj.rand.nextFloat() * 360.0F, 0.0F);
if(var9.getCanSpawnHere()) {
this.worldObj.entityJoinedWorld(var9);
if (var9 != null) {
double var11 = (double) this.xCoord + (this.worldObj.rand.nextDouble() - this.worldObj.rand.nextDouble()) * 4.0D;
double var13 = (double) (this.yCoord + this.worldObj.rand.nextInt(3) - 1);
double var15 = (double) this.zCoord + (this.worldObj.rand.nextDouble() - this.worldObj.rand.nextDouble()) * 4.0D;
var9.setLocationAndAngles(var11, var13, var15, this.worldObj.rand.nextFloat() * 360.0F, 0.0F);
if (var9.getCanSpawnHere()) {
this.worldObj.entityJoinedWorld(var9);
for(int var17 = 0; var17 < 20; ++var17) {
var1 = (double)this.xCoord + 0.5D + ((double)this.worldObj.rand.nextFloat() - 0.5D) * 2.0D;
var3 = (double)this.yCoord + 0.5D + ((double)this.worldObj.rand.nextFloat() - 0.5D) * 2.0D;
var5 = (double)this.zCoord + 0.5D + ((double)this.worldObj.rand.nextFloat() - 0.5D) * 2.0D;
this.worldObj.spawnParticle("smoke", var1, var3, var5, 0.0D, 0.0D, 0.0D);
this.worldObj.spawnParticle("flame", var1, var3, var5, 0.0D, 0.0D, 0.0D);
}
for (int var17 = 0; var17 < 20; ++var17) {
var1 = (double) this.xCoord + 0.5D + ((double) this.worldObj.rand.nextFloat() - 0.5D) * 2.0D;
var3 = (double) this.yCoord + 0.5D + ((double) this.worldObj.rand.nextFloat() - 0.5D) * 2.0D;
var5 = (double) this.zCoord + 0.5D + ((double) this.worldObj.rand.nextFloat() - 0.5D) * 2.0D;
this.worldObj.spawnParticle("smoke", var1, var3, var5, 0.0D, 0.0D, 0.0D);
this.worldObj.spawnParticle("flame", var1, var3, var5, 0.0D, 0.0D, 0.0D);
}
var9.spawnExplosionParticle();
this.updateDelay();
}
}
}
}
var9.spawnExplosionParticle();
this.updateDelay();
}
}
}
}
super.updateEntity();
}
}
super.updateEntity();
}
}
private void updateDelay() {
this.delay = 200 + this.worldObj.rand.nextInt(600);
}
private void updateDelay() {
this.delay = 200 + this.worldObj.rand.nextInt(600);
}
public void readFromNBT(NBTTagCompound var1) {
super.readFromNBT(var1);
this.mobID = var1.getString("EntityId");
this.delay = var1.getShort("Delay");
}
public void readFromNBT(NBTTagCompound var1) {
super.readFromNBT(var1);
this.mobID = var1.getString("EntityId");
this.delay = var1.getShort("Delay");
}
public void writeToNBT(NBTTagCompound var1) {
super.writeToNBT(var1);
var1.setString("EntityId", this.mobID);
var1.setShort("Delay", (short)this.delay);
}
public void writeToNBT(NBTTagCompound var1) {
super.writeToNBT(var1);
var1.setString("EntityId", this.mobID);
var1.setShort("Delay", (short) this.delay);
}
}

View file

@ -5,53 +5,53 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
public class TileEntityNote extends TileEntity {
public byte note = 0;
public boolean previousRedstoneState = false;
public byte note = 0;
public boolean previousRedstoneState = false;
public void writeToNBT(NBTTagCompound var1) {
super.writeToNBT(var1);
var1.setByte("note", this.note);
}
public void writeToNBT(NBTTagCompound var1) {
super.writeToNBT(var1);
var1.setByte("note", this.note);
}
public void readFromNBT(NBTTagCompound var1) {
super.readFromNBT(var1);
this.note = var1.getByte("note");
if(this.note < 0) {
this.note = 0;
}
public void readFromNBT(NBTTagCompound var1) {
super.readFromNBT(var1);
this.note = var1.getByte("note");
if (this.note < 0) {
this.note = 0;
}
if(this.note > 24) {
this.note = 24;
}
if (this.note > 24) {
this.note = 24;
}
}
}
public void changePitch() {
this.note = (byte)((this.note + 1) % 25);
this.onInventoryChanged();
}
public void changePitch() {
this.note = (byte) ((this.note + 1) % 25);
this.onInventoryChanged();
}
public void triggerNote(World var1, int var2, int var3, int var4) {
if(var1.getBlockMaterial(var2, var3 + 1, var4) == Material.air) {
Material var5 = var1.getBlockMaterial(var2, var3 - 1, var4);
byte var6 = 0;
if(var5 == Material.rock) {
var6 = 1;
}
public void triggerNote(World var1, int var2, int var3, int var4) {
if (var1.getBlockMaterial(var2, var3 + 1, var4) == Material.air) {
Material var5 = var1.getBlockMaterial(var2, var3 - 1, var4);
byte var6 = 0;
if (var5 == Material.rock) {
var6 = 1;
}
if(var5 == Material.sand) {
var6 = 2;
}
if (var5 == Material.sand) {
var6 = 2;
}
if(var5 == Material.glass) {
var6 = 3;
}
if (var5 == Material.glass) {
var6 = 3;
}
if(var5 == Material.wood) {
var6 = 4;
}
if (var5 == Material.wood) {
var6 = 4;
}
var1.playNoteAt(var2, var3, var4, var6, this.note);
}
}
var1.playNoteAt(var2, var3, var4, var6, this.note);
}
}
}

View file

@ -1,134 +1,135 @@
package net.minecraft.block.tile;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
import net.minecraft.math.AxisAlignedBB;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.PistonBlockTextures;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class TileEntityPiston extends TileEntity {
private int storedBlockID;
private int storedMetadata;
private int storedOrientation;
private boolean isExtending;
private boolean field_31018_j;
private float progress;
private float lastProgress;
private static List field_31013_m = new ArrayList();
private int storedBlockID;
private int storedMetadata;
private int storedOrientation;
private boolean isExtending;
private boolean field_31018_j;
private float progress;
private float lastProgress;
private static List field_31013_m = new ArrayList();
public TileEntityPiston() {
}
public TileEntityPiston() {
}
public TileEntityPiston(int var1, int var2, int var3, boolean var4, boolean var5) {
this.storedBlockID = var1;
this.storedMetadata = var2;
this.storedOrientation = var3;
this.isExtending = var4;
this.field_31018_j = var5;
}
public TileEntityPiston(int var1, int var2, int var3, boolean var4, boolean var5) {
this.storedBlockID = var1;
this.storedMetadata = var2;
this.storedOrientation = var3;
this.isExtending = var4;
this.field_31018_j = var5;
}
public int getStoredBlockID() {
return this.storedBlockID;
}
public int getStoredBlockID() {
return this.storedBlockID;
}
public int func_31005_e() {
return this.storedMetadata;
}
public int func_31005_e() {
return this.storedMetadata;
}
public boolean func_31010_c() {
return this.isExtending;
}
public boolean func_31010_c() {
return this.isExtending;
}
public int func_31008_d() {
return this.storedOrientation;
}
public int func_31008_d() {
return this.storedOrientation;
}
public float func_31007_a(float var1) {
if(var1 > 1.0F) {
var1 = 1.0F;
}
public float func_31007_a(float var1) {
if (var1 > 1.0F) {
var1 = 1.0F;
}
return this.lastProgress + (this.progress - this.lastProgress) * var1;
}
return this.lastProgress + (this.progress - this.lastProgress) * var1;
}
private void func_31009_a(float var1, float var2) {
if(!this.isExtending) {
--var1;
} else {
var1 = 1.0F - var1;
}
private void func_31009_a(float var1, float var2) {
if (!this.isExtending) {
--var1;
} else {
var1 = 1.0F - var1;
}
AxisAlignedBB var3 = Block.pistonMoving.func_31032_a(this.worldObj, this.xCoord, this.yCoord, this.zCoord, this.storedBlockID, var1, this.storedOrientation);
if(var3 != null) {
List var4 = this.worldObj.getEntitiesWithinAABBExcludingEntity((Entity)null, var3);
if(!var4.isEmpty()) {
field_31013_m.addAll(var4);
Iterator var5 = field_31013_m.iterator();
AxisAlignedBB var3 = Block.pistonMoving.func_31032_a(this.worldObj, this.xCoord, this.yCoord, this.zCoord, this.storedBlockID, var1, this.storedOrientation);
if (var3 != null) {
List var4 = this.worldObj.getEntitiesWithinAABBExcludingEntity((Entity) null, var3);
if (!var4.isEmpty()) {
field_31013_m.addAll(var4);
Iterator var5 = field_31013_m.iterator();
while(var5.hasNext()) {
Entity var6 = (Entity)var5.next();
var6.moveEntity((double)(var2 * (float)PistonBlockTextures.field_31051_b[this.storedOrientation]), (double)(var2 * (float)PistonBlockTextures.field_31054_c[this.storedOrientation]), (double)(var2 * (float)PistonBlockTextures.field_31053_d[this.storedOrientation]));
}
while (var5.hasNext()) {
Entity var6 = (Entity) var5.next();
var6.moveEntity((double) (var2 * (float) PistonBlockTextures.field_31051_b[this.storedOrientation]), (double) (var2 * (float) PistonBlockTextures.field_31054_c[this.storedOrientation]), (double) (var2 * (float) PistonBlockTextures.field_31053_d[this.storedOrientation]));
}
field_31013_m.clear();
}
}
field_31013_m.clear();
}
}
}
}
public void clearPistonTileEntity() {
if(this.lastProgress < 1.0F) {
this.lastProgress = this.progress = 1.0F;
this.worldObj.removeBlockTileEntity(this.xCoord, this.yCoord, this.zCoord);
this.invalidate();
if(this.worldObj.getBlockId(this.xCoord, this.yCoord, this.zCoord) == Block.pistonMoving.blockID) {
this.worldObj.setBlockAndMetadataWithNotify(this.xCoord, this.yCoord, this.zCoord, this.storedBlockID, this.storedMetadata);
}
}
public void clearPistonTileEntity() {
if (this.lastProgress < 1.0F) {
this.lastProgress = this.progress = 1.0F;
this.worldObj.removeBlockTileEntity(this.xCoord, this.yCoord, this.zCoord);
this.invalidate();
if (this.worldObj.getBlockId(this.xCoord, this.yCoord, this.zCoord) == Block.pistonMoving.blockID) {
this.worldObj.setBlockAndMetadataWithNotify(this.xCoord, this.yCoord, this.zCoord, this.storedBlockID, this.storedMetadata);
}
}
}
}
public void updateEntity() {
this.lastProgress = this.progress;
if(this.lastProgress >= 1.0F) {
this.func_31009_a(1.0F, 0.25F);
this.worldObj.removeBlockTileEntity(this.xCoord, this.yCoord, this.zCoord);
this.invalidate();
if(this.worldObj.getBlockId(this.xCoord, this.yCoord, this.zCoord) == Block.pistonMoving.blockID) {
this.worldObj.setBlockAndMetadataWithNotify(this.xCoord, this.yCoord, this.zCoord, this.storedBlockID, this.storedMetadata);
}
public void updateEntity() {
this.lastProgress = this.progress;
if (this.lastProgress >= 1.0F) {
this.func_31009_a(1.0F, 0.25F);
this.worldObj.removeBlockTileEntity(this.xCoord, this.yCoord, this.zCoord);
this.invalidate();
if (this.worldObj.getBlockId(this.xCoord, this.yCoord, this.zCoord) == Block.pistonMoving.blockID) {
this.worldObj.setBlockAndMetadataWithNotify(this.xCoord, this.yCoord, this.zCoord, this.storedBlockID, this.storedMetadata);
}
} else {
this.progress += 0.5F;
if(this.progress >= 1.0F) {
this.progress = 1.0F;
}
} else {
this.progress += 0.5F;
if (this.progress >= 1.0F) {
this.progress = 1.0F;
}
if(this.isExtending) {
this.func_31009_a(this.progress, this.progress - this.lastProgress + 1.0F / 16.0F);
}
if (this.isExtending) {
this.func_31009_a(this.progress, this.progress - this.lastProgress + 1.0F / 16.0F);
}
}
}
}
}
public void readFromNBT(NBTTagCompound var1) {
super.readFromNBT(var1);
this.storedBlockID = var1.getInteger("blockId");
this.storedMetadata = var1.getInteger("blockData");
this.storedOrientation = var1.getInteger("facing");
this.lastProgress = this.progress = var1.getFloat("progress");
this.isExtending = var1.getBoolean("extending");
}
public void readFromNBT(NBTTagCompound var1) {
super.readFromNBT(var1);
this.storedBlockID = var1.getInteger("blockId");
this.storedMetadata = var1.getInteger("blockData");
this.storedOrientation = var1.getInteger("facing");
this.lastProgress = this.progress = var1.getFloat("progress");
this.isExtending = var1.getBoolean("extending");
}
public void writeToNBT(NBTTagCompound var1) {
super.writeToNBT(var1);
var1.setInteger("blockId", this.storedBlockID);
var1.setInteger("blockData", this.storedMetadata);
var1.setInteger("facing", this.storedOrientation);
var1.setFloat("progress", this.lastProgress);
var1.setBoolean("extending", this.isExtending);
}
public void writeToNBT(NBTTagCompound var1) {
super.writeToNBT(var1);
var1.setInteger("blockId", this.storedBlockID);
var1.setInteger("blockData", this.storedMetadata);
var1.setInteger("facing", this.storedOrientation);
var1.setFloat("progress", this.lastProgress);
var1.setBoolean("extending", this.isExtending);
}
}

View file

@ -3,18 +3,18 @@ package net.minecraft.block.tile;
import net.minecraft.nbt.NBTTagCompound;
public class TileEntityRecordPlayer extends TileEntity {
public int field_28009_a;
public int field_28009_a;
public void readFromNBT(NBTTagCompound var1) {
super.readFromNBT(var1);
this.field_28009_a = var1.getInteger("Record");
}
public void readFromNBT(NBTTagCompound var1) {
super.readFromNBT(var1);
this.field_28009_a = var1.getInteger("Record");
}
public void writeToNBT(NBTTagCompound var1) {
super.writeToNBT(var1);
if(this.field_28009_a > 0) {
var1.setInteger("Record", this.field_28009_a);
}
public void writeToNBT(NBTTagCompound var1) {
super.writeToNBT(var1);
if (this.field_28009_a > 0) {
var1.setInteger("Record", this.field_28009_a);
}
}
}
}

View file

@ -5,46 +5,46 @@ import net.minecraft.network.packets.Packet;
import net.minecraft.network.packets.Packet130UpdateSign;
public class TileEntitySign extends TileEntity {
public String[] signText = new String[]{"", "", "", ""};
public int lineBeingEdited = -1;
private boolean isEditAble = true;
public String[] signText = new String[]{"", "", "", ""};
public int lineBeingEdited = -1;
private boolean isEditAble = true;
public void writeToNBT(NBTTagCompound var1) {
super.writeToNBT(var1);
var1.setString("Text1", this.signText[0]);
var1.setString("Text2", this.signText[1]);
var1.setString("Text3", this.signText[2]);
var1.setString("Text4", this.signText[3]);
}
public void writeToNBT(NBTTagCompound var1) {
super.writeToNBT(var1);
var1.setString("Text1", this.signText[0]);
var1.setString("Text2", this.signText[1]);
var1.setString("Text3", this.signText[2]);
var1.setString("Text4", this.signText[3]);
}
public void readFromNBT(NBTTagCompound var1) {
this.isEditAble = false;
super.readFromNBT(var1);
public void readFromNBT(NBTTagCompound var1) {
this.isEditAble = false;
super.readFromNBT(var1);
for(int var2 = 0; var2 < 4; ++var2) {
this.signText[var2] = var1.getString("Text" + (var2 + 1));
if(this.signText[var2].length() > 15) {
this.signText[var2] = this.signText[var2].substring(0, 15);
}
}
for (int var2 = 0; var2 < 4; ++var2) {
this.signText[var2] = var1.getString("Text" + (var2 + 1));
if (this.signText[var2].length() > 15) {
this.signText[var2] = this.signText[var2].substring(0, 15);
}
}
}
}
public Packet getDescriptionPacket() {
String[] var1 = new String[4];
public Packet getDescriptionPacket() {
String[] var1 = new String[4];
for(int var2 = 0; var2 < 4; ++var2) {
var1[var2] = this.signText[var2];
}
for (int var2 = 0; var2 < 4; ++var2) {
var1[var2] = this.signText[var2];
}
return new Packet130UpdateSign(this.xCoord, this.yCoord, this.zCoord, var1);
}
return new Packet130UpdateSign(this.xCoord, this.yCoord, this.zCoord, var1);
}
public boolean getIsEditAble() {
return this.isEditAble;
}
public boolean getIsEditAble() {
return this.isEditAble;
}
public void func_32001_a(boolean var1) {
this.isEditAble = var1;
}
public void func_32001_a(boolean var1) {
this.isEditAble = var1;
}
}

View file

@ -1,9 +1,5 @@
package net.minecraft.container;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import net.minecraft.container.inventory.IInventory;
import net.minecraft.container.inventory.InventoryPlayer;
import net.minecraft.container.slot.Slot;
@ -11,268 +7,273 @@ import net.minecraft.entity.EntityPlayer;
import net.minecraft.item.crafting.ICrafting;
import net.minecraft.item.crafting.ItemStack;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public abstract class Container {
public List inventoryItemStacks = new ArrayList();
public List inventorySlots = new ArrayList();
public int windowId = 0;
private short field_20132_a = 0;
protected List crafters = new ArrayList();
private Set field_20131_b = new HashSet();
public List inventoryItemStacks = new ArrayList();
public List inventorySlots = new ArrayList();
public int windowId = 0;
private short field_20132_a = 0;
protected List crafters = new ArrayList();
private Set field_20131_b = new HashSet();
protected void addSlot(Slot var1) {
var1.id = this.inventorySlots.size();
this.inventorySlots.add(var1);
this.inventoryItemStacks.add((Object)null);
}
protected void addSlot(Slot var1) {
var1.id = this.inventorySlots.size();
this.inventorySlots.add(var1);
this.inventoryItemStacks.add((Object) null);
}
public void onCraftGuiOpened(ICrafting var1) {
if(this.crafters.contains(var1)) {
throw new IllegalArgumentException("Listener already listening");
} else {
this.crafters.add(var1);
var1.updateCraftingInventory(this, this.func_28127_b());
this.updateCraftingMatrix();
}
}
public void onCraftGuiOpened(ICrafting var1) {
if (this.crafters.contains(var1)) {
throw new IllegalArgumentException("Listener already listening");
} else {
this.crafters.add(var1);
var1.updateCraftingInventory(this, this.func_28127_b());
this.updateCraftingMatrix();
}
}
public List func_28127_b() {
ArrayList var1 = new ArrayList();
public List func_28127_b() {
ArrayList var1 = new ArrayList();
for(int var2 = 0; var2 < this.inventorySlots.size(); ++var2) {
var1.add(((Slot)this.inventorySlots.get(var2)).getStack());
}
for (int var2 = 0; var2 < this.inventorySlots.size(); ++var2) {
var1.add(((Slot) this.inventorySlots.get(var2)).getStack());
}
return var1;
}
return var1;
}
public void updateCraftingMatrix() {
for(int var1 = 0; var1 < this.inventorySlots.size(); ++var1) {
ItemStack var2 = ((Slot)this.inventorySlots.get(var1)).getStack();
ItemStack var3 = (ItemStack)this.inventoryItemStacks.get(var1);
if(!ItemStack.areItemStacksEqual(var3, var2)) {
var3 = var2 == null ? null : var2.copy();
this.inventoryItemStacks.set(var1, var3);
public void updateCraftingMatrix() {
for (int var1 = 0; var1 < this.inventorySlots.size(); ++var1) {
ItemStack var2 = ((Slot) this.inventorySlots.get(var1)).getStack();
ItemStack var3 = (ItemStack) this.inventoryItemStacks.get(var1);
if (!ItemStack.areItemStacksEqual(var3, var2)) {
var3 = var2 == null ? null : var2.copy();
this.inventoryItemStacks.set(var1, var3);
for(int var4 = 0; var4 < this.crafters.size(); ++var4) {
((ICrafting)this.crafters.get(var4)).updateCraftingInventorySlot(this, var1, var3);
}
}
}
for (int var4 = 0; var4 < this.crafters.size(); ++var4) {
((ICrafting) this.crafters.get(var4)).updateCraftingInventorySlot(this, var1, var3);
}
}
}
}
}
public Slot func_20127_a(IInventory var1, int var2) {
for(int var3 = 0; var3 < this.inventorySlots.size(); ++var3) {
Slot var4 = (Slot)this.inventorySlots.get(var3);
if(var4.isHere(var1, var2)) {
return var4;
}
}
public Slot func_20127_a(IInventory var1, int var2) {
for (int var3 = 0; var3 < this.inventorySlots.size(); ++var3) {
Slot var4 = (Slot) this.inventorySlots.get(var3);
if (var4.isHere(var1, var2)) {
return var4;
}
}
return null;
}
return null;
}
public Slot getSlot(int var1) {
return (Slot)this.inventorySlots.get(var1);
}
public Slot getSlot(int var1) {
return (Slot) this.inventorySlots.get(var1);
}
public ItemStack func_27086_a(int var1) {
Slot var2 = (Slot)this.inventorySlots.get(var1);
return var2 != null ? var2.getStack() : null;
}
public ItemStack func_27086_a(int var1) {
Slot var2 = (Slot) this.inventorySlots.get(var1);
return var2 != null ? var2.getStack() : null;
}
public ItemStack func_27085_a(int var1, int var2, boolean var3, EntityPlayer var4) {
ItemStack var5 = null;
if(var2 == 0 || var2 == 1) {
InventoryPlayer var6 = var4.inventory;
if(var1 == -999) {
if(var6.getItemStack() != null && var1 == -999) {
if(var2 == 0) {
var4.dropPlayerItem(var6.getItemStack());
var6.setItemStack((ItemStack)null);
}
public ItemStack func_27085_a(int var1, int var2, boolean var3, EntityPlayer var4) {
ItemStack var5 = null;
if (var2 == 0 || var2 == 1) {
InventoryPlayer var6 = var4.inventory;
if (var1 == -999) {
if (var6.getItemStack() != null && var1 == -999) {
if (var2 == 0) {
var4.dropPlayerItem(var6.getItemStack());
var6.setItemStack((ItemStack) null);
}
if(var2 == 1) {
var4.dropPlayerItem(var6.getItemStack().splitStack(1));
if(var6.getItemStack().stackSize == 0) {
var6.setItemStack((ItemStack)null);
}
}
}
} else {
int var10;
if(var3) {
ItemStack var7 = this.func_27086_a(var1);
if(var7 != null) {
int var8 = var7.stackSize;
var5 = var7.copy();
Slot var9 = (Slot)this.inventorySlots.get(var1);
if(var9 != null && var9.getStack() != null) {
var10 = var9.getStack().stackSize;
if(var10 < var8) {
this.func_27085_a(var1, var2, var3, var4);
}
}
}
} else {
Slot var12 = (Slot)this.inventorySlots.get(var1);
if(var12 != null) {
var12.onSlotChanged();
ItemStack var13 = var12.getStack();
ItemStack var14 = var6.getItemStack();
if(var13 != null) {
var5 = var13.copy();
}
if (var2 == 1) {
var4.dropPlayerItem(var6.getItemStack().splitStack(1));
if (var6.getItemStack().stackSize == 0) {
var6.setItemStack((ItemStack) null);
}
}
}
} else {
int var10;
if (var3) {
ItemStack var7 = this.func_27086_a(var1);
if (var7 != null) {
int var8 = var7.stackSize;
var5 = var7.copy();
Slot var9 = (Slot) this.inventorySlots.get(var1);
if (var9 != null && var9.getStack() != null) {
var10 = var9.getStack().stackSize;
if (var10 < var8) {
this.func_27085_a(var1, var2, var3, var4);
}
}
}
} else {
Slot var12 = (Slot) this.inventorySlots.get(var1);
if (var12 != null) {
var12.onSlotChanged();
ItemStack var13 = var12.getStack();
ItemStack var14 = var6.getItemStack();
if (var13 != null) {
var5 = var13.copy();
}
if(var13 == null) {
if(var14 != null && var12.isItemValid(var14)) {
var10 = var2 == 0 ? var14.stackSize : 1;
if(var10 > var12.getSlotStackLimit()) {
var10 = var12.getSlotStackLimit();
}
if (var13 == null) {
if (var14 != null && var12.isItemValid(var14)) {
var10 = var2 == 0 ? var14.stackSize : 1;
if (var10 > var12.getSlotStackLimit()) {
var10 = var12.getSlotStackLimit();
}
var12.putStack(var14.splitStack(var10));
if(var14.stackSize == 0) {
var6.setItemStack((ItemStack)null);
}
}
} else if(var14 == null) {
var10 = var2 == 0 ? var13.stackSize : (var13.stackSize + 1) / 2;
ItemStack var11 = var12.decrStackSize(var10);
var6.setItemStack(var11);
if(var13.stackSize == 0) {
var12.putStack((ItemStack)null);
}
var12.putStack(var14.splitStack(var10));
if (var14.stackSize == 0) {
var6.setItemStack((ItemStack) null);
}
}
} else if (var14 == null) {
var10 = var2 == 0 ? var13.stackSize : (var13.stackSize + 1) / 2;
ItemStack var11 = var12.decrStackSize(var10);
var6.setItemStack(var11);
if (var13.stackSize == 0) {
var12.putStack((ItemStack) null);
}
var12.onPickupFromSlot(var6.getItemStack());
} else if(var12.isItemValid(var14)) {
if(var13.itemID != var14.itemID || var13.getHasSubtypes() && var13.getItemDamage() != var14.getItemDamage()) {
if(var14.stackSize <= var12.getSlotStackLimit()) {
var12.putStack(var14);
var6.setItemStack(var13);
}
} else {
var10 = var2 == 0 ? var14.stackSize : 1;
if(var10 > var12.getSlotStackLimit() - var13.stackSize) {
var10 = var12.getSlotStackLimit() - var13.stackSize;
}
var12.onPickupFromSlot(var6.getItemStack());
} else if (var12.isItemValid(var14)) {
if (var13.itemID != var14.itemID || var13.getHasSubtypes() && var13.getItemDamage() != var14.getItemDamage()) {
if (var14.stackSize <= var12.getSlotStackLimit()) {
var12.putStack(var14);
var6.setItemStack(var13);
}
} else {
var10 = var2 == 0 ? var14.stackSize : 1;
if (var10 > var12.getSlotStackLimit() - var13.stackSize) {
var10 = var12.getSlotStackLimit() - var13.stackSize;
}
if(var10 > var14.getMaxStackSize() - var13.stackSize) {
var10 = var14.getMaxStackSize() - var13.stackSize;
}
if (var10 > var14.getMaxStackSize() - var13.stackSize) {
var10 = var14.getMaxStackSize() - var13.stackSize;
}
var14.splitStack(var10);
if(var14.stackSize == 0) {
var6.setItemStack((ItemStack)null);
}
var14.splitStack(var10);
if (var14.stackSize == 0) {
var6.setItemStack((ItemStack) null);
}
var13.stackSize += var10;
}
} else if(var13.itemID == var14.itemID && var14.getMaxStackSize() > 1 && (!var13.getHasSubtypes() || var13.getItemDamage() == var14.getItemDamage())) {
var10 = var13.stackSize;
if(var10 > 0 && var10 + var14.stackSize <= var14.getMaxStackSize()) {
var14.stackSize += var10;
var13.splitStack(var10);
if(var13.stackSize == 0) {
var12.putStack((ItemStack)null);
}
var13.stackSize += var10;
}
} else if (var13.itemID == var14.itemID && var14.getMaxStackSize() > 1 && (!var13.getHasSubtypes() || var13.getItemDamage() == var14.getItemDamage())) {
var10 = var13.stackSize;
if (var10 > 0 && var10 + var14.stackSize <= var14.getMaxStackSize()) {
var14.stackSize += var10;
var13.splitStack(var10);
if (var13.stackSize == 0) {
var12.putStack((ItemStack) null);
}
var12.onPickupFromSlot(var6.getItemStack());
}
}
}
}
}
}
var12.onPickupFromSlot(var6.getItemStack());
}
}
}
}
}
}
return var5;
}
return var5;
}
public void onCraftGuiClosed(EntityPlayer var1) {
InventoryPlayer var2 = var1.inventory;
if(var2.getItemStack() != null) {
var1.dropPlayerItem(var2.getItemStack());
var2.setItemStack((ItemStack)null);
}
public void onCraftGuiClosed(EntityPlayer var1) {
InventoryPlayer var2 = var1.inventory;
if (var2.getItemStack() != null) {
var1.dropPlayerItem(var2.getItemStack());
var2.setItemStack((ItemStack) null);
}
}
}
public void onCraftMatrixChanged(IInventory var1) {
this.updateCraftingMatrix();
}
public void onCraftMatrixChanged(IInventory var1) {
this.updateCraftingMatrix();
}
public boolean getCanCraft(EntityPlayer var1) {
return !this.field_20131_b.contains(var1);
}
public boolean getCanCraft(EntityPlayer var1) {
return !this.field_20131_b.contains(var1);
}
public void setCanCraft(EntityPlayer var1, boolean var2) {
if(var2) {
this.field_20131_b.remove(var1);
} else {
this.field_20131_b.add(var1);
}
public void setCanCraft(EntityPlayer var1, boolean var2) {
if (var2) {
this.field_20131_b.remove(var1);
} else {
this.field_20131_b.add(var1);
}
}
}
public abstract boolean canInteractWith(EntityPlayer var1);
public abstract boolean canInteractWith(EntityPlayer var1);
protected void func_28126_a(ItemStack var1, int var2, int var3, boolean var4) {
int var5 = var2;
if(var4) {
var5 = var3 - 1;
}
protected void func_28126_a(ItemStack var1, int var2, int var3, boolean var4) {
int var5 = var2;
if (var4) {
var5 = var3 - 1;
}
Slot var6;
ItemStack var7;
if(var1.func_21132_c()) {
while(var1.stackSize > 0 && (!var4 && var5 < var3 || var4 && var5 >= var2)) {
var6 = (Slot)this.inventorySlots.get(var5);
var7 = var6.getStack();
if(var7 != null && var7.itemID == var1.itemID && (!var1.getHasSubtypes() || var1.getItemDamage() == var7.getItemDamage())) {
int var8 = var7.stackSize + var1.stackSize;
if(var8 <= var1.getMaxStackSize()) {
var1.stackSize = 0;
var7.stackSize = var8;
var6.onSlotChanged();
} else if(var7.stackSize < var1.getMaxStackSize()) {
var1.stackSize -= var1.getMaxStackSize() - var7.stackSize;
var7.stackSize = var1.getMaxStackSize();
var6.onSlotChanged();
}
}
Slot var6;
ItemStack var7;
if (var1.func_21132_c()) {
while (var1.stackSize > 0 && (!var4 && var5 < var3 || var4 && var5 >= var2)) {
var6 = (Slot) this.inventorySlots.get(var5);
var7 = var6.getStack();
if (var7 != null && var7.itemID == var1.itemID && (!var1.getHasSubtypes() || var1.getItemDamage() == var7.getItemDamage())) {
int var8 = var7.stackSize + var1.stackSize;
if (var8 <= var1.getMaxStackSize()) {
var1.stackSize = 0;
var7.stackSize = var8;
var6.onSlotChanged();
} else if (var7.stackSize < var1.getMaxStackSize()) {
var1.stackSize -= var1.getMaxStackSize() - var7.stackSize;
var7.stackSize = var1.getMaxStackSize();
var6.onSlotChanged();
}
}
if(var4) {
--var5;
} else {
++var5;
}
}
}
if (var4) {
--var5;
} else {
++var5;
}
}
}
if(var1.stackSize > 0) {
if(var4) {
var5 = var3 - 1;
} else {
var5 = var2;
}
if (var1.stackSize > 0) {
if (var4) {
var5 = var3 - 1;
} else {
var5 = var2;
}
while(!var4 && var5 < var3 || var4 && var5 >= var2) {
var6 = (Slot)this.inventorySlots.get(var5);
var7 = var6.getStack();
if(var7 == null) {
var6.putStack(var1.copy());
var6.onSlotChanged();
var1.stackSize = 0;
break;
}
while (!var4 && var5 < var3 || var4 && var5 >= var2) {
var6 = (Slot) this.inventorySlots.get(var5);
var7 = var6.getStack();
if (var7 == null) {
var6.putStack(var1.copy());
var6.onSlotChanged();
var1.stackSize = 0;
break;
}
if(var4) {
--var5;
} else {
++var5;
}
}
}
if (var4) {
--var5;
} else {
++var5;
}
}
}
}
}
}

View file

@ -6,57 +6,57 @@ import net.minecraft.entity.EntityPlayer;
import net.minecraft.item.crafting.ItemStack;
public class ContainerChest extends Container {
private IInventory field_20137_a;
private int field_27088_b;
private IInventory field_20137_a;
private int field_27088_b;
public ContainerChest(IInventory var1, IInventory var2) {
this.field_20137_a = var2;
this.field_27088_b = var2.getSizeInventory() / 9;
int var3 = (this.field_27088_b - 4) * 18;
public ContainerChest(IInventory var1, IInventory var2) {
this.field_20137_a = var2;
this.field_27088_b = var2.getSizeInventory() / 9;
int var3 = (this.field_27088_b - 4) * 18;
int var4;
int var5;
for(var4 = 0; var4 < this.field_27088_b; ++var4) {
for(var5 = 0; var5 < 9; ++var5) {
this.addSlot(new Slot(var2, var5 + var4 * 9, 8 + var5 * 18, 18 + var4 * 18));
}
}
int var4;
int var5;
for (var4 = 0; var4 < this.field_27088_b; ++var4) {
for (var5 = 0; var5 < 9; ++var5) {
this.addSlot(new Slot(var2, var5 + var4 * 9, 8 + var5 * 18, 18 + var4 * 18));
}
}
for(var4 = 0; var4 < 3; ++var4) {
for(var5 = 0; var5 < 9; ++var5) {
this.addSlot(new Slot(var1, var5 + var4 * 9 + 9, 8 + var5 * 18, 103 + var4 * 18 + var3));
}
}
for (var4 = 0; var4 < 3; ++var4) {
for (var5 = 0; var5 < 9; ++var5) {
this.addSlot(new Slot(var1, var5 + var4 * 9 + 9, 8 + var5 * 18, 103 + var4 * 18 + var3));
}
}
for(var4 = 0; var4 < 9; ++var4) {
this.addSlot(new Slot(var1, var4, 8 + var4 * 18, 161 + var3));
}
for (var4 = 0; var4 < 9; ++var4) {
this.addSlot(new Slot(var1, var4, 8 + var4 * 18, 161 + var3));
}
}
}
public boolean canInteractWith(EntityPlayer var1) {
return this.field_20137_a.canInteractWith(var1);
}
public boolean canInteractWith(EntityPlayer var1) {
return this.field_20137_a.canInteractWith(var1);
}
public ItemStack func_27086_a(int var1) {
ItemStack var2 = null;
Slot var3 = (Slot)this.inventorySlots.get(var1);
if(var3 != null && var3.func_27006_b()) {
ItemStack var4 = var3.getStack();
var2 = var4.copy();
if(var1 < this.field_27088_b * 9) {
this.func_28126_a(var4, this.field_27088_b * 9, this.inventorySlots.size(), true);
} else {
this.func_28126_a(var4, 0, this.field_27088_b * 9, false);
}
public ItemStack func_27086_a(int var1) {
ItemStack var2 = null;
Slot var3 = (Slot) this.inventorySlots.get(var1);
if (var3 != null && var3.func_27006_b()) {
ItemStack var4 = var3.getStack();
var2 = var4.copy();
if (var1 < this.field_27088_b * 9) {
this.func_28126_a(var4, this.field_27088_b * 9, this.inventorySlots.size(), true);
} else {
this.func_28126_a(var4, 0, this.field_27088_b * 9, false);
}
if(var4.stackSize == 0) {
var3.putStack((ItemStack)null);
} else {
var3.onSlotChanged();
}
}
if (var4.stackSize == 0) {
var3.putStack((ItemStack) null);
} else {
var3.onSlotChanged();
}
}
return var2;
}
return var2;
}
}

View file

@ -6,32 +6,32 @@ import net.minecraft.container.slot.Slot;
import net.minecraft.entity.EntityPlayer;
public class ContainerDispenser extends Container {
private TileEntityDispenser field_21133_a;
private TileEntityDispenser field_21133_a;
public ContainerDispenser(IInventory var1, TileEntityDispenser var2) {
this.field_21133_a = var2;
public ContainerDispenser(IInventory var1, TileEntityDispenser var2) {
this.field_21133_a = var2;
int var3;
int var4;
for(var3 = 0; var3 < 3; ++var3) {
for(var4 = 0; var4 < 3; ++var4) {
this.addSlot(new Slot(var2, var4 + var3 * 3, 62 + var4 * 18, 17 + var3 * 18));
}
}
int var3;
int var4;
for (var3 = 0; var3 < 3; ++var3) {
for (var4 = 0; var4 < 3; ++var4) {
this.addSlot(new Slot(var2, var4 + var3 * 3, 62 + var4 * 18, 17 + var3 * 18));
}
}
for(var3 = 0; var3 < 3; ++var3) {
for(var4 = 0; var4 < 9; ++var4) {
this.addSlot(new Slot(var1, var4 + var3 * 9 + 9, 8 + var4 * 18, 84 + var3 * 18));
}
}
for (var3 = 0; var3 < 3; ++var3) {
for (var4 = 0; var4 < 9; ++var4) {
this.addSlot(new Slot(var1, var4 + var3 * 9 + 9, 8 + var4 * 18, 84 + var3 * 18));
}
}
for(var3 = 0; var3 < 9; ++var3) {
this.addSlot(new Slot(var1, var3, 8 + var3 * 18, 142));
}
for (var3 = 0; var3 < 9; ++var3) {
this.addSlot(new Slot(var1, var3, 8 + var3 * 18, 142));
}
}
}
public boolean canInteractWith(EntityPlayer var1) {
return this.field_21133_a.canInteractWith(var1);
}
public boolean canInteractWith(EntityPlayer var1) {
return this.field_21133_a.canInteractWith(var1);
}
}

View file

@ -9,93 +9,93 @@ import net.minecraft.item.crafting.ICrafting;
import net.minecraft.item.crafting.ItemStack;
public class ContainerFurnace extends Container {
private TileEntityFurnace furnace;
private int lastCookTime = 0;
private int lastBurnTime = 0;
private int lastItemBurnTime = 0;
private TileEntityFurnace furnace;
private int lastCookTime = 0;
private int lastBurnTime = 0;
private int lastItemBurnTime = 0;
public ContainerFurnace(InventoryPlayer var1, TileEntityFurnace var2) {
this.furnace = var2;
this.addSlot(new Slot(var2, 0, 56, 17));
this.addSlot(new Slot(var2, 1, 56, 53));
this.addSlot(new SlotFurnace(var1.player, var2, 2, 116, 35));
public ContainerFurnace(InventoryPlayer var1, TileEntityFurnace var2) {
this.furnace = var2;
this.addSlot(new Slot(var2, 0, 56, 17));
this.addSlot(new Slot(var2, 1, 56, 53));
this.addSlot(new SlotFurnace(var1.player, var2, 2, 116, 35));
int var3;
for(var3 = 0; var3 < 3; ++var3) {
for(int var4 = 0; var4 < 9; ++var4) {
this.addSlot(new Slot(var1, var4 + var3 * 9 + 9, 8 + var4 * 18, 84 + var3 * 18));
}
}
int var3;
for (var3 = 0; var3 < 3; ++var3) {
for (int var4 = 0; var4 < 9; ++var4) {
this.addSlot(new Slot(var1, var4 + var3 * 9 + 9, 8 + var4 * 18, 84 + var3 * 18));
}
}
for(var3 = 0; var3 < 9; ++var3) {
this.addSlot(new Slot(var1, var3, 8 + var3 * 18, 142));
}
for (var3 = 0; var3 < 9; ++var3) {
this.addSlot(new Slot(var1, var3, 8 + var3 * 18, 142));
}
}
}
public void onCraftGuiOpened(ICrafting var1) {
super.onCraftGuiOpened(var1);
var1.updateCraftingInventoryInfo(this, 0, this.furnace.furnaceCookTime);
var1.updateCraftingInventoryInfo(this, 1, this.furnace.furnaceBurnTime);
var1.updateCraftingInventoryInfo(this, 2, this.furnace.currentItemBurnTime);
}
public void onCraftGuiOpened(ICrafting var1) {
super.onCraftGuiOpened(var1);
var1.updateCraftingInventoryInfo(this, 0, this.furnace.furnaceCookTime);
var1.updateCraftingInventoryInfo(this, 1, this.furnace.furnaceBurnTime);
var1.updateCraftingInventoryInfo(this, 2, this.furnace.currentItemBurnTime);
}
public void updateCraftingMatrix() {
super.updateCraftingMatrix();
public void updateCraftingMatrix() {
super.updateCraftingMatrix();
for(int var1 = 0; var1 < this.crafters.size(); ++var1) {
ICrafting var2 = (ICrafting)this.crafters.get(var1);
if(this.lastCookTime != this.furnace.furnaceCookTime) {
var2.updateCraftingInventoryInfo(this, 0, this.furnace.furnaceCookTime);
}
for (int var1 = 0; var1 < this.crafters.size(); ++var1) {
ICrafting var2 = (ICrafting) this.crafters.get(var1);
if (this.lastCookTime != this.furnace.furnaceCookTime) {
var2.updateCraftingInventoryInfo(this, 0, this.furnace.furnaceCookTime);
}
if(this.lastBurnTime != this.furnace.furnaceBurnTime) {
var2.updateCraftingInventoryInfo(this, 1, this.furnace.furnaceBurnTime);
}
if (this.lastBurnTime != this.furnace.furnaceBurnTime) {
var2.updateCraftingInventoryInfo(this, 1, this.furnace.furnaceBurnTime);
}
if(this.lastItemBurnTime != this.furnace.currentItemBurnTime) {
var2.updateCraftingInventoryInfo(this, 2, this.furnace.currentItemBurnTime);
}
}
if (this.lastItemBurnTime != this.furnace.currentItemBurnTime) {
var2.updateCraftingInventoryInfo(this, 2, this.furnace.currentItemBurnTime);
}
}
this.lastCookTime = this.furnace.furnaceCookTime;
this.lastBurnTime = this.furnace.furnaceBurnTime;
this.lastItemBurnTime = this.furnace.currentItemBurnTime;
}
this.lastCookTime = this.furnace.furnaceCookTime;
this.lastBurnTime = this.furnace.furnaceBurnTime;
this.lastItemBurnTime = this.furnace.currentItemBurnTime;
}
public boolean canInteractWith(EntityPlayer var1) {
return this.furnace.canInteractWith(var1);
}
public boolean canInteractWith(EntityPlayer var1) {
return this.furnace.canInteractWith(var1);
}
public ItemStack func_27086_a(int var1) {
ItemStack var2 = null;
Slot var3 = (Slot)this.inventorySlots.get(var1);
if(var3 != null && var3.func_27006_b()) {
ItemStack var4 = var3.getStack();
var2 = var4.copy();
if(var1 == 2) {
this.func_28126_a(var4, 3, 39, true);
} else if(var1 >= 3 && var1 < 30) {
this.func_28126_a(var4, 30, 39, false);
} else if(var1 >= 30 && var1 < 39) {
this.func_28126_a(var4, 3, 30, false);
} else {
this.func_28126_a(var4, 3, 39, false);
}
public ItemStack func_27086_a(int var1) {
ItemStack var2 = null;
Slot var3 = (Slot) this.inventorySlots.get(var1);
if (var3 != null && var3.func_27006_b()) {
ItemStack var4 = var3.getStack();
var2 = var4.copy();
if (var1 == 2) {
this.func_28126_a(var4, 3, 39, true);
} else if (var1 >= 3 && var1 < 30) {
this.func_28126_a(var4, 30, 39, false);
} else if (var1 >= 30 && var1 < 39) {
this.func_28126_a(var4, 3, 30, false);
} else {
this.func_28126_a(var4, 3, 39, false);
}
if(var4.stackSize == 0) {
var3.putStack((ItemStack)null);
} else {
var3.onSlotChanged();
}
if (var4.stackSize == 0) {
var3.putStack((ItemStack) null);
} else {
var3.onSlotChanged();
}
if(var4.stackSize == var2.stackSize) {
return null;
}
if (var4.stackSize == var2.stackSize) {
return null;
}
var3.onPickupFromSlot(var4);
}
var3.onPickupFromSlot(var4);
}
return var2;
}
return var2;
}
}

View file

@ -12,96 +12,96 @@ import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.ItemStack;
public class ContainerPlayer extends Container {
public InventoryCrafting craftMatrix;
public IInventory craftResult;
public boolean isMP;
public InventoryCrafting craftMatrix;
public IInventory craftResult;
public boolean isMP;
public ContainerPlayer(InventoryPlayer var1) {
this(var1, true);
}
public ContainerPlayer(InventoryPlayer var1) {
this(var1, true);
}
public ContainerPlayer(InventoryPlayer var1, boolean var2) {
this.craftMatrix = new InventoryCrafting(this, 2, 2);
this.craftResult = new InventoryCraftResult();
this.isMP = false;
this.isMP = var2;
this.addSlot(new SlotCrafting(var1.player, this.craftMatrix, this.craftResult, 0, 144, 36));
public ContainerPlayer(InventoryPlayer var1, boolean var2) {
this.craftMatrix = new InventoryCrafting(this, 2, 2);
this.craftResult = new InventoryCraftResult();
this.isMP = false;
this.isMP = var2;
this.addSlot(new SlotCrafting(var1.player, this.craftMatrix, this.craftResult, 0, 144, 36));
int var3;
int var4;
for(var3 = 0; var3 < 2; ++var3) {
for(var4 = 0; var4 < 2; ++var4) {
this.addSlot(new Slot(this.craftMatrix, var4 + var3 * 2, 88 + var4 * 18, 26 + var3 * 18));
}
}
int var3;
int var4;
for (var3 = 0; var3 < 2; ++var3) {
for (var4 = 0; var4 < 2; ++var4) {
this.addSlot(new Slot(this.craftMatrix, var4 + var3 * 2, 88 + var4 * 18, 26 + var3 * 18));
}
}
for(var3 = 0; var3 < 4; ++var3) {
this.addSlot(new SlotArmor(this, var1, var1.getSizeInventory() - 1 - var3, 8, 8 + var3 * 18, var3));
}
for (var3 = 0; var3 < 4; ++var3) {
this.addSlot(new SlotArmor(this, var1, var1.getSizeInventory() - 1 - var3, 8, 8 + var3 * 18, var3));
}
for(var3 = 0; var3 < 3; ++var3) {
for(var4 = 0; var4 < 9; ++var4) {
this.addSlot(new Slot(var1, var4 + (var3 + 1) * 9, 8 + var4 * 18, 84 + var3 * 18));
}
}
for (var3 = 0; var3 < 3; ++var3) {
for (var4 = 0; var4 < 9; ++var4) {
this.addSlot(new Slot(var1, var4 + (var3 + 1) * 9, 8 + var4 * 18, 84 + var3 * 18));
}
}
for(var3 = 0; var3 < 9; ++var3) {
this.addSlot(new Slot(var1, var3, 8 + var3 * 18, 142));
}
for (var3 = 0; var3 < 9; ++var3) {
this.addSlot(new Slot(var1, var3, 8 + var3 * 18, 142));
}
this.onCraftMatrixChanged(this.craftMatrix);
}
this.onCraftMatrixChanged(this.craftMatrix);
}
public void onCraftMatrixChanged(IInventory var1) {
this.craftResult.setInventorySlotContents(0, CraftingManager.getInstance().findMatchingRecipe(this.craftMatrix));
}
public void onCraftMatrixChanged(IInventory var1) {
this.craftResult.setInventorySlotContents(0, CraftingManager.getInstance().findMatchingRecipe(this.craftMatrix));
}
public void onCraftGuiClosed(EntityPlayer var1) {
super.onCraftGuiClosed(var1);
public void onCraftGuiClosed(EntityPlayer var1) {
super.onCraftGuiClosed(var1);
for(int var2 = 0; var2 < 4; ++var2) {
ItemStack var3 = this.craftMatrix.getStackInSlot(var2);
if(var3 != null) {
var1.dropPlayerItem(var3);
this.craftMatrix.setInventorySlotContents(var2, (ItemStack)null);
}
}
for (int var2 = 0; var2 < 4; ++var2) {
ItemStack var3 = this.craftMatrix.getStackInSlot(var2);
if (var3 != null) {
var1.dropPlayerItem(var3);
this.craftMatrix.setInventorySlotContents(var2, (ItemStack) null);
}
}
}
}
public boolean canInteractWith(EntityPlayer var1) {
return true;
}
public boolean canInteractWith(EntityPlayer var1) {
return true;
}
public ItemStack func_27086_a(int var1) {
ItemStack var2 = null;
Slot var3 = (Slot)this.inventorySlots.get(var1);
if(var3 != null && var3.func_27006_b()) {
ItemStack var4 = var3.getStack();
var2 = var4.copy();
if(var1 == 0) {
this.func_28126_a(var4, 9, 45, true);
} else if(var1 >= 9 && var1 < 36) {
this.func_28126_a(var4, 36, 45, false);
} else if(var1 >= 36 && var1 < 45) {
this.func_28126_a(var4, 9, 36, false);
} else {
this.func_28126_a(var4, 9, 45, false);
}
public ItemStack func_27086_a(int var1) {
ItemStack var2 = null;
Slot var3 = (Slot) this.inventorySlots.get(var1);
if (var3 != null && var3.func_27006_b()) {
ItemStack var4 = var3.getStack();
var2 = var4.copy();
if (var1 == 0) {
this.func_28126_a(var4, 9, 45, true);
} else if (var1 >= 9 && var1 < 36) {
this.func_28126_a(var4, 36, 45, false);
} else if (var1 >= 36 && var1 < 45) {
this.func_28126_a(var4, 9, 36, false);
} else {
this.func_28126_a(var4, 9, 45, false);
}
if(var4.stackSize == 0) {
var3.putStack((ItemStack)null);
} else {
var3.onSlotChanged();
}
if (var4.stackSize == 0) {
var3.putStack((ItemStack) null);
} else {
var3.onSlotChanged();
}
if(var4.stackSize == var2.stackSize) {
return null;
}
if (var4.stackSize == var2.stackSize) {
return null;
}
var3.onPickupFromSlot(var4);
}
var3.onPickupFromSlot(var4);
}
return var2;
}
return var2;
}
}

Some files were not shown because too many files have changed in this diff Show more