Package com.bergerkiller.bukkit.tc.signactions.detector

Source Code of com.bergerkiller.bukkit.tc.signactions.detector.DetectorSignPair

package com.bergerkiller.bukkit.tc.signactions.detector;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;

import org.bukkit.block.Block;

import com.bergerkiller.bukkit.common.bases.IntVector3;
import com.bergerkiller.bukkit.tc.controller.MinecartGroup;
import com.bergerkiller.bukkit.tc.controller.MinecartMember;
import com.bergerkiller.bukkit.tc.detector.DetectorListener;
import com.bergerkiller.bukkit.tc.detector.DetectorRegion;

public class DetectorSignPair implements DetectorListener {

  public DetectorSignPair(Block sign1, Block sign2) {
    this.sign1 = new DetectorSign(this, sign1);
    this.sign2 = new DetectorSign(this, sign2);
  }

  public DetectorSignPair(IntVector3 sign1, IntVector3 sign2) {
    this.sign1 = new DetectorSign(this, sign1);
    this.sign2 = new DetectorSign(this, sign2);
  }

  public DetectorSign sign1, sign2;
  public DetectorRegion region;

  public static DetectorSignPair read(DataInputStream stream) throws IOException {
    IntVector3 sign1 = IntVector3.read(stream);
    IntVector3 sign2 = IntVector3.read(stream);
    DetectorSignPair detector = new DetectorSignPair(sign1, sign2);
    detector.sign1.wasDown = stream.readBoolean();
    detector.sign2.wasDown = stream.readBoolean();
    return detector;
  }

  public void write(DataOutputStream stream) throws IOException {
    this.sign1.getLocation().write(stream);
    this.sign2.getLocation().write(stream);
    stream.writeBoolean(this.sign1.wasDown);
    stream.writeBoolean(this.sign2.wasDown);
  }

  @Override
  public void onRegister(DetectorRegion region) {
    this.region = region;
  }

  @Override
  public void onUnregister(DetectorRegion region) {
    if (this.region == region) this.region = null;
  }

  @Override
  public void onLeave(MinecartMember<?> member) {
    this.sign1.onLeave(member);
    this.sign2.onLeave(member);
  }

  @Override
  public void onEnter(MinecartMember<?> member) {
    this.sign1.onEnter(member);
    this.sign2.onEnter(member);
  }

  @Override
  public void onLeave(MinecartGroup group) {
    this.sign1.onLeave(group);
    this.sign2.onLeave(group);
  }

  @Override
  public void onEnter(MinecartGroup group) {
    this.sign1.onEnter(group);
    this.sign2.onEnter(group);
  }

  @Override
  public void onUpdate(MinecartMember<?> member) {
    this.sign1.onUpdate(member);
    this.sign2.onUpdate(member);
  }

  @Override
  public void onUpdate(MinecartGroup group) {
    this.sign1.onUpdate(group);
    this.sign2.onUpdate(group);
  }

  @Override
  public void onUnload(MinecartGroup group) {
    //TODO: Unloaded group storage system
    this.onLeave(group);
  }
}
TOP

Related Classes of com.bergerkiller.bukkit.tc.signactions.detector.DetectorSignPair

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.