Beispiel #1
0
  /** Send and apply locally all pending BlockEvents to each player with 64m radius of the event. */
  private void sendAndApplyBlockEvents() {
    while (!this.blockEventCache[this.blockEventCacheIndex].isEmpty()) {
      int var1 = this.blockEventCacheIndex;
      this.blockEventCacheIndex ^= 1;
      Iterator var2 = this.blockEventCache[var1].iterator();

      while (var2.hasNext()) {
        BlockEventData var3 = (BlockEventData) var2.next();

        if (this.onBlockEventReceived(var3)) {
          this.mcServer
              .getConfigurationManager()
              .sendToAllNear(
                  (double) var3.getX(),
                  (double) var3.getY(),
                  (double) var3.getZ(),
                  64.0D,
                  this.provider.dimensionId,
                  new Packet54PlayNoteBlock(
                      var3.getX(),
                      var3.getY(),
                      var3.getZ(),
                      var3.getBlockID(),
                      var3.getEventID(),
                      var3.getEventParameter()));
        }
      }

      this.blockEventCache[var1].clear();
    }
  }
Beispiel #2
0
  /**
   * Adds a block event with the given Args to the blockEventCache. During the next tick(), the
   * block specified will have its onBlockEvent handler called with the given parameters. Args:
   * X,Y,Z, BlockID, EventID, EventParameter
   */
  public void addBlockEvent(int par1, int par2, int par3, int par4, int par5, int par6) {
    BlockEventData var7 = new BlockEventData(par1, par2, par3, par4, par5, par6);
    Iterator var8 = this.blockEventCache[this.blockEventCacheIndex].iterator();
    BlockEventData var9;

    do {
      if (!var8.hasNext()) {
        this.blockEventCache[this.blockEventCacheIndex].add(var7);
        return;
      }

      var9 = (BlockEventData) var8.next();
    } while (!var9.equals(var7));
  }
Beispiel #3
0
 /** Called to apply a pending BlockEvent to apply to the current world. */
 private boolean onBlockEventReceived(BlockEventData par1BlockEventData) {
   int var2 =
       this.getBlockId(
           par1BlockEventData.getX(), par1BlockEventData.getY(), par1BlockEventData.getZ());
   return var2 == par1BlockEventData.getBlockID()
       ? Block.blocksList[var2].onBlockEventReceived(
           this,
           par1BlockEventData.getX(),
           par1BlockEventData.getY(),
           par1BlockEventData.getZ(),
           par1BlockEventData.getEventID(),
           par1BlockEventData.getEventParameter())
       : false;
 }