Search in sources :

Example 6 with TrainPacket

use of club.nsdn.nyasamarailway.network.TrainPacket in project NyaSamaRailway by NSDN.

the class ItemNTP8Bit method onCreated.

@Override
public void onCreated(ItemStack itemStack, World world, EntityPlayer player) {
    power.set(itemStack, 0);
    brake.set(itemStack, 5);
    dir.set(itemStack, 0);
    cart.set(itemStack, -1);
    if (player instanceof EntityPlayerMP) {
        TrainPacket packet = new TrainPacket();
        packet.fromStack(itemStack);
        NetworkWrapper.instance.sendTo(packet, (EntityPlayerMP) player);
    }
}
Also used : EntityPlayerMP(net.minecraft.entity.player.EntityPlayerMP) TrainPacket(club.nsdn.nyasamarailway.network.TrainPacket)

Example 7 with TrainPacket

use of club.nsdn.nyasamarailway.network.TrainPacket in project NyaSamaRailway by NSDN.

the class ItemNTP8Bit method onUpdate.

@Override
public void onUpdate(ItemStack itemStack, World world, Entity entity, int index, boolean inHand) {
    if (!world.isRemote && inHand) {
        if (entity instanceof EntityPlayer) {
            EntityPlayer player = (EntityPlayer) entity;
            TrainPacket packet = new TrainPacket();
            packet.P = this.power.get(itemStack);
            packet.R = this.brake.get(itemStack);
            packet.Dir = this.dir.get(itemStack);
            packet.dimensionID = player.dimension;
            EntityMinecart cart = packet.getCartInServer(this.cart.get(itemStack));
            if (cart != null) {
                if (cart instanceof LocoBase) {
                    ((LocoBase) cart).setTrainPacket(packet);
                    return;
                }
                if (Traincraft.getInstance() != null) {
                    if (Traincraft.instance.isLocomotive(cart)) {
                        Traincraft.instance.Locomotive_setIsLocoTurnedOn(cart, true);
                    }
                }
                packet.Velocity = Dynamics.vel(cart.motionX, cart.motionZ);
                TrainController.doMotion(packet, cart);
            }
        }
    }
}
Also used : LocoBase(club.nsdn.nyasamarailway.entity.LocoBase) EntityPlayer(net.minecraft.entity.player.EntityPlayer) EntityMinecart(net.minecraft.entity.item.EntityMinecart) TrainPacket(club.nsdn.nyasamarailway.network.TrainPacket)

Example 8 with TrainPacket

use of club.nsdn.nyasamarailway.network.TrainPacket in project NyaSamaRailway by NSDN.

the class NSPCT4 method applyDrag.

@Override
protected void applyDrag() {
    if (this.motorState) {
        TrainPacket tmpPacket = new TrainPacket(getMotorPower(), getMotorBrake(), getMotorDir());
        // High speed
        tmpPacket.highSpeed = true;
        tmpPacket.Velocity = this.Velocity;
        if (this.maxVelocity > 0) {
            if (this.Velocity > this.maxVelocity && tmpMotorBrake == -1) {
                tmpMotorBrake = getMotorBrake();
                setMotorBrake(1);
            } else if (this.Velocity > this.maxVelocity && tmpMotorBrake != -1) {
                setMotorBrake(1);
            } else if (this.Velocity <= this.maxVelocity && tmpMotorBrake != -1) {
                setMotorBrake(tmpMotorBrake);
                tmpMotorBrake = -1;
            }
        }
        TrainController.doMotionWithAir(tmpPacket, this);
        setMotorVel((float) tmpPacket.Velocity);
    } else {
        if (this.motionX != 0)
            setMotorDir((int) Math.signum(this.motionX / Math.cos(TrainController.calcYaw(this) * Math.PI / 180.0)));
        else if (this.motionZ != 0)
            setMotorDir((int) Math.signum(this.motionZ / -Math.sin(TrainController.calcYaw(this) * Math.PI / 180.0)));
        else
            setMotorDir(0);
        setMotorVel((float) Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ));
    }
    super.applyDrag();
}
Also used : TrainPacket(club.nsdn.nyasamarailway.network.TrainPacket)

Example 9 with TrainPacket

use of club.nsdn.nyasamarailway.network.TrainPacket in project NyaSamaRailway by NSDN.

the class NSPCT8 method applyDrag.

@Override
protected void applyDrag() {
    if (this.motorState) {
        TrainPacket tmpPacket = new TrainPacket(getMotorPower(), getMotorBrake(), getMotorDir());
        // High speed
        tmpPacket.highSpeed = true;
        tmpPacket.Velocity = this.Velocity;
        if (this.maxVelocity > 0) {
            if (this.Velocity > this.maxVelocity && tmpMotorBrake == -1) {
                tmpMotorBrake = getMotorBrake();
                setMotorBrake(1);
            } else if (this.Velocity > this.maxVelocity && tmpMotorBrake != -1) {
                setMotorBrake(1);
            } else if (this.Velocity <= this.maxVelocity && tmpMotorBrake != -1) {
                setMotorBrake(tmpMotorBrake);
                tmpMotorBrake = -1;
            }
        }
        TrainController.doMotionWithAir(tmpPacket, this);
        setMotorVel((float) tmpPacket.Velocity);
    } else {
        if (this.motionX != 0)
            setMotorDir((int) Math.signum(this.motionX / Math.cos(TrainController.calcYaw(this) * Math.PI / 180.0)));
        else if (this.motionZ != 0)
            setMotorDir((int) Math.signum(this.motionZ / -Math.sin(TrainController.calcYaw(this) * Math.PI / 180.0)));
        else
            setMotorDir(0);
        setMotorVel((float) Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ));
    }
    super.applyDrag();
}
Also used : TrainPacket(club.nsdn.nyasamarailway.network.TrainPacket)

Example 10 with TrainPacket

use of club.nsdn.nyasamarailway.network.TrainPacket in project NyaSamaRailway by NSDN.

the class NSPCT8W method applyDrag.

@Override
protected void applyDrag() {
    if (this.motorState) {
        TrainPacket tmpPacket = new TrainPacket(getMotorPower(), getMotorBrake(), getMotorDir());
        // High speed
        tmpPacket.highSpeed = true;
        tmpPacket.Velocity = this.Velocity;
        if (this.maxVelocity > 0) {
            if (this.Velocity > this.maxVelocity && tmpMotorBrake == -1) {
                tmpMotorBrake = getMotorBrake();
                setMotorBrake(1);
            } else if (this.Velocity > this.maxVelocity && tmpMotorBrake != -1) {
                setMotorBrake(1);
            } else if (this.Velocity <= this.maxVelocity && tmpMotorBrake != -1) {
                setMotorBrake(tmpMotorBrake);
                tmpMotorBrake = -1;
            }
        }
        TrainController.doMotionWithAir(tmpPacket, this);
        setMotorVel((float) tmpPacket.Velocity);
    } else {
        if (this.motionX != 0)
            setMotorDir((int) Math.signum(this.motionX / Math.cos(TrainController.calcYaw(this) * Math.PI / 180.0)));
        else if (this.motionZ != 0)
            setMotorDir((int) Math.signum(this.motionZ / -Math.sin(TrainController.calcYaw(this) * Math.PI / 180.0)));
        else
            setMotorDir(0);
        setMotorVel((float) Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ));
    }
    super.applyDrag();
}
Also used : TrainPacket(club.nsdn.nyasamarailway.network.TrainPacket)

Aggregations

TrainPacket (club.nsdn.nyasamarailway.network.TrainPacket)23 EntityPlayerMP (net.minecraft.entity.player.EntityPlayerMP)5 LocoBase (club.nsdn.nyasamarailway.entity.LocoBase)3 EntityMinecart (net.minecraft.entity.item.EntityMinecart)3 EntityPlayer (net.minecraft.entity.player.EntityPlayer)3 ChatComponentTranslation (net.minecraft.util.ChatComponentTranslation)3 ItemNTP32Bit (club.nsdn.nyasamarailway.item.tool.ItemNTP32Bit)1 ItemNTP8Bit (club.nsdn.nyasamarailway.item.tool.ItemNTP8Bit)1 SubscribeEvent (cpw.mods.fml.common.eventhandler.SubscribeEvent)1 GuiChat (net.minecraft.client.gui.GuiChat)1 ItemStack (net.minecraft.item.ItemStack)1