Package com.bergerkiller.bukkit.tc.rails.type

Source Code of com.bergerkiller.bukkit.tc.rails.type.RailTypeCrossing

package com.bergerkiller.bukkit.tc.rails.type;

import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;

import com.bergerkiller.bukkit.common.utils.FaceUtil;
import com.bergerkiller.bukkit.common.utils.MaterialUtil;
import com.bergerkiller.bukkit.tc.Util;
import com.bergerkiller.bukkit.tc.controller.MinecartMember;
import com.bergerkiller.bukkit.tc.rails.logic.RailLogic;
import com.bergerkiller.bukkit.tc.rails.logic.RailLogicHorizontal;

public class RailTypeCrossing extends RailTypeHorizontal {

  @Override
  public boolean isRail(Material type, int data) {
    return MaterialUtil.ISPRESSUREPLATE.get(type);
  }

  @Override
  public BlockFace[] getPossibleDirections(Block trackBlock) {
    BlockFace dir = getDirection(trackBlock);
    if (dir == BlockFace.SELF) {
      return FaceUtil.RADIAL;
    } else {
      return RailTypeRegular.getPossibleDirections(dir);
    }
  }

  @Override
  public Block getNextPos(Block currentTrack, BlockFace currentDirection) {
    return currentTrack.getRelative(currentDirection);
  }

  @Override
  public BlockFace getDirection(Block railsBlock) {
    return Util.getPlateDirection(railsBlock);
  }

  @Override
  public RailLogic getLogic(MinecartMember<?> member, Block railsBlock) {
    // Get the direction of the rails to find out the logic to use
    BlockFace dir = Util.getPlateDirection(railsBlock);
    if (dir == BlockFace.SELF) {
      //set track direction based on direction of this cart
      dir = FaceUtil.toRailsDirection(member.getDirectionTo());
    }
    return RailLogicHorizontal.get(dir);
  }

  @Override
  public void onPostMove(MinecartMember<?> member) {
    super.onPostMove(member);
    member.getEntity().loc.y.add(0.17);
  }
}
TOP

Related Classes of com.bergerkiller.bukkit.tc.rails.type.RailTypeCrossing

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.