|
|
|
--- ../src-base/minecraft/net/minecraft/block/BlockRedstoneTorch.java
|
|
|
|
+++ ../src-work/minecraft/net/minecraft/block/BlockRedstoneTorch.java
|
|
|
|
@@ -13,6 +13,8 @@
|
|
|
|
import net.minecraft.world.IBlockAccess;
|
|
|
|
import net.minecraft.world.World;
|
|
|
|
|
|
|
|
+import org.bukkit.event.block.BlockRedstoneEvent; // CraftBukkit
|
|
|
|
+
|
|
|
|
public class BlockRedstoneTorch extends BlockTorch
|
|
|
|
{
|
|
|
|
private boolean field_150113_a;
|
|
|
|
@@ -114,6 +116,7 @@
|
|
|
|
int l = p_150110_1_.getBlockMetadata(p_150110_2_, p_150110_3_, p_150110_4_);
|
|
|
|
return l == 5 && p_150110_1_.getIndirectPowerOutput(p_150110_2_, p_150110_3_ - 1, p_150110_4_, 0) ? true : (l == 3 && p_150110_1_.getIndirectPowerOutput(p_150110_2_, p_150110_3_, p_150110_4_ - 1, 2) ? true : (l == 4 && p_150110_1_.getIndirectPowerOutput(p_150110_2_, p_150110_3_, p_150110_4_ + 1, 3) ? true : (l == 1 && p_150110_1_.getIndirectPowerOutput(p_150110_2_ - 1, p_150110_3_, p_150110_4_, 4) ? true : l == 2 && p_150110_1_.getIndirectPowerOutput(p_150110_2_ + 1, p_150110_3_, p_150110_4_, 5))));
|
|
|
|
}
|
|
|
|
+long last = 0L;
|
|
|
|
|
|
|
|
public void updateTick(World p_149674_1_, int p_149674_2_, int p_149674_3_, int p_149674_4_, Random p_149674_5_)
|
|
|
|
{
|
|
|
|
@@ -125,11 +128,33 @@
|
|
|
|
list.remove(0);
|
|
|
|
}
|
|
|
|
|
|
|
|
+ // CraftBukkit start
|
|
|
|
+ org.bukkit.plugin.PluginManager manager = p_149674_1_.getServer().getPluginManager();
|
|
|
|
+ org.bukkit.block.Block block = p_149674_1_.getWorld().getBlockAt(p_149674_2_, p_149674_3_, p_149674_4_);
|
|
|
|
+ int oldCurrent = this.field_150113_a ? 15 : 0;
|
|
|
|
+ BlockRedstoneEvent event = new BlockRedstoneEvent(block, oldCurrent, oldCurrent);
|
|
|
|
+ // CraftBukkit end
|
|
|
|
+
|
|
|
|
if (this.field_150113_a)
|
|
|
|
{
|
|
|
|
if (flag)
|
|
|
|
{
|
|
|
|
+ // CraftBukkit start
|
|
|
|
+ if (oldCurrent != 0)
|
|
|
|
+ {
|
|
|
|
+ event.setNewCurrent(0);
|
|
|
|
+ manager.callEvent(event);
|
|
|
|
+
|
|
|
|
+ if (event.getNewCurrent() != 0)
|
|
|
|
+ {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // CraftBukkit end
|
|
|
|
+ if(System.currentTimeMillis() - last <= 150) return;
|
|
|
|
p_149674_1_.setBlock(p_149674_2_, p_149674_3_, p_149674_4_, Blocks.unlit_redstone_torch, p_149674_1_.getBlockMetadata(p_149674_2_, p_149674_3_, p_149674_4_), 3);
|
|
|
|
+ last = System.currentTimeMillis();
|
|
|
|
|
|
|
|
if (this.func_150111_a(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_, true))
|
|
|
|
{
|
|
|
|
@@ -147,7 +172,22 @@
|
|
|
|
}
|
|
|
|
else if (!flag && !this.func_150111_a(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_, false))
|
|
|
|
{
|
|
|
|
+ // CraftBukkit start
|
|
|
|
+ if (oldCurrent != 15)
|
|
|
|
+ {
|
|
|
|
+ event.setNewCurrent(15);
|
|
|
|
+ manager.callEvent(event);
|
|
|
|
+
|
|
|
|
+ if (event.getNewCurrent() != 15)
|
|
|
|
+ {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // CraftBukkit end
|
|
|
|
+ if(System.currentTimeMillis() - last <= 150) return;
|
|
|
|
p_149674_1_.setBlock(p_149674_2_, p_149674_3_, p_149674_4_, Blocks.redstone_torch, p_149674_1_.getBlockMetadata(p_149674_2_, p_149674_3_, p_149674_4_), 3);
|
|
|
|
+ last = System.currentTimeMillis();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@@ -241,4 +281,4 @@
|
|
|
|
this.field_150844_d = p_i45422_4_;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
-}
|
|
|
|
+}
|