Package mods.railcraft.common.blocks.detector.types

Source Code of mods.railcraft.common.blocks.detector.types.DetectorTrain

/*
* Copyright (c) CovertJaguar, 2014 http://railcraft.info
*
* This code is the property of CovertJaguar
* and may only be used with explicit written
* permission unless otherwise specified on the
* license page at http://railcraft.info/wiki/info:license.
*/
package mods.railcraft.common.blocks.detector.types;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.List;
import mods.railcraft.api.carts.ILinkageManager;
import mods.railcraft.common.blocks.detector.Detector;
import mods.railcraft.common.blocks.detector.EnumDetector;
import mods.railcraft.common.carts.LinkageManager;
import mods.railcraft.common.gui.EnumGui;

import static mods.railcraft.common.plugins.forge.PowerPlugin.*;
import net.minecraft.entity.item.EntityMinecart;
import net.minecraft.entity.player.EntityPlayer;

import net.minecraft.nbt.NBTTagCompound;

/**
*
* @author CovertJaguar <http://www.railcraft.info/>
*/
public class DetectorTrain extends Detector {

    @Override
    public EnumDetector getType() {
        return EnumDetector.TRAIN;
    }

    private short trainSize = 5;

    @Override
    public int testCarts(List<EntityMinecart> carts) {
        ILinkageManager lm = LinkageManager.instance();
        for (EntityMinecart cart : carts) {
            int count = lm.countCartsInTrain(cart);
            int size = getTrainSize();
            if (count >= size) {
                return FULL_POWER;
            }
        }
        return NO_POWER;
    }

    @Override
    protected short updateInterval() {
        return 4;
    }

    @Override
    public boolean blockActivated(EntityPlayer player) {
        openGui(EnumGui.DETECTOR_TRAIN, player);
        return true;
    }

    @Override
    public void writeToNBT(NBTTagCompound data) {
        super.writeToNBT(data);
        data.setShort("size", getTrainSize());
    }

    @Override
    public void readFromNBT(NBTTagCompound data) {
        super.readFromNBT(data);
        setTrainSize(data.getShort("size"));
    }

    @Override
    public void writePacketData(DataOutputStream data) throws IOException {
        super.writePacketData(data);
        data.writeShort(getTrainSize());
    }

    @Override
    public void readPacketData(DataInputStream data) throws IOException {
        super.readPacketData(data);
        setTrainSize(data.readShort());
    }

    @Override
    public void writeGuiData(DataOutputStream data) throws IOException {
        data.writeShort(getTrainSize());
    }

    @Override
    public void readGuiData(DataInputStream data, EntityPlayer sender) throws IOException {
        setTrainSize(data.readShort());
    }

    public short getTrainSize() {
        return trainSize;
    }

    public void setTrainSize(short trainSize) {
        this.trainSize = trainSize;
    }

}
TOP

Related Classes of mods.railcraft.common.blocks.detector.types.DetectorTrain

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.