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.
73 lines
1.9 KiB
Java
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();
|
|
}
|
|
}
|