Files
Rekkit/src/main/java/net/minecraft/server/BlockDaylightDetector.java
gjmcferrin@gmail.com 5ede9ce5f7 Add missing calls to BlockRedstoneEvent. Adds BUKKIT-3926
This adds calls to BlockRedstoneEvent for the new daylight sensor and
trapped chest blocks. Note that the redstone level for trapped chests
cannot be modified, as it is based on the number of players currently
viewing the chest's inventory.
2013-04-03 02:48:58 -05:00

73 lines
1.9 KiB
Java

package net.minecraft.server;
import java.util.Random;
public class BlockDaylightDetector extends BlockContainer {
private IIcon[] a = new IIcon[2];
public BlockDaylightDetector(int i) {
super(i, Material.WOOD);
this.a(0.0F, 0.0F, 0.0F, 1.0F, 0.375F, 1.0F);
this.a(CreativeModeTab.d);
}
public void updateShape(IBlockAccess iblockaccess, int i, int j, int k) {
this.a(0.0F, 0.0F, 0.0F, 1.0F, 0.375F, 1.0F);
}
public int b(IBlockAccess iblockaccess, int i, int j, int k, int l) {
return iblockaccess.getData(i, j, k);
}
public void a(World world, int i, int j, int k, Random random) {}
public void doPhysics(World world, int i, int j, int k, int l) {}
public void onPlace(World world, int i, int j, int k) {}
public void i_(World world, int i, int j, int k) {
if (!world.worldProvider.f) {
int l = world.getData(i, j, k);
int i1 = world.b(EnumSkyBlock.SKY, i, j, k) - world.j;
float f = world.d(1.0F);
if (f < 3.1415927F) {
f += (0.0F - f) * 0.2F;
} else {
f += (6.2831855F - f) * 0.2F;
}
i1 = Math.round((float) i1 * MathHelper.cos(f));
if (i1 < 0) {
i1 = 0;
}
if (i1 > 15) {
i1 = 15;
}
if (l != i1) {
i1 = org.bukkit.craftbukkit.event.CraftEventFactory.callRedstoneChange(world, i, j, k, l, i1).getNewCurrent(); // CraftBukkit - Call BlockRedstoneEvent
world.setData(i, j, k, i1, 3);
}
}
}
public boolean b() {
return false;
}
public boolean c() {
return false;
}
public boolean isPowerSource() {
return true;
}
public TileEntity b(World world) {
return new TileEntityLightDetector();
}
}