/* * 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.tracks; import net.minecraft.entity.item.EntityMinecart; import net.minecraft.util.IIcon; import mods.railcraft.api.tracks.TrackInstanceBase; import mods.railcraft.api.tracks.TrackRegistry; import mods.railcraft.api.tracks.TrackSpec; import mods.railcraft.common.blocks.tracks.speedcontroller.SpeedController; /** * * @author CovertJaguar <http://www.railcraft.info> */ public abstract class TrackBaseRailcraft extends TrackInstanceBase { public SpeedController speedController; public abstract EnumTrack getTrackType(); @Override public float getRailMaxSpeed(EntityMinecart cart) { if (speedController == null) { speedController = SpeedController.getInstance(); } return speedController.getMaxSpeed(this, cart); } @Override public TrackSpec getTrackSpec() { return TrackRegistry.getTrackSpec(getTrackType().getTag()); } @Override public IIcon getIcon(){ return getIcon(0); } public IIcon getIcon(int index) { return TrackTextureLoader.INSTANCE.getTrackIcons(getTrackSpec())[index]; } public int getPowerPropagation() { return 0; } }