Package mods.railcraft.client.gui

Source Code of mods.railcraft.client.gui.GuiDetectorVillager

/*
* 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.client.gui;

import cpw.mods.fml.common.registry.VillagerRegistry;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.entity.passive.EntityVillager;
import mods.railcraft.client.gui.buttons.GuiToggleButtonSmall;
import mods.railcraft.common.blocks.detector.TileDetector;
import mods.railcraft.common.blocks.detector.types.DetectorVillager;
import mods.railcraft.common.blocks.detector.types.DetectorVillager.Mode;
import mods.railcraft.common.core.RailcraftConstants;
import mods.railcraft.common.plugins.forge.LocalizationPlugin;
import mods.railcraft.common.util.misc.Game;
import mods.railcraft.common.util.collections.RevolvingList;
import mods.railcraft.common.util.network.PacketDispatcher;
import mods.railcraft.common.util.network.PacketGuiReturn;

public class GuiDetectorVillager extends GuiBasic {

    private final TileDetector tile;
    private final DetectorVillager detector;
    private final EntityVillager villager;
    private Mode mode;
    private GuiToggleButtonSmall any;
    private GuiToggleButtonSmall none;
    private GuiToggleButtonSmall equals;
    private GuiToggleButtonSmall not;
    private final RevolvingList<Integer> professions = new RevolvingList<Integer>();

    public GuiDetectorVillager(TileDetector t) {
        super(t.getName(), RailcraftConstants.GUI_TEXTURE_FOLDER + "gui_detector_villager.png", 176, 105);
        this.tile = t;
        this.detector = (DetectorVillager) tile.getDetector();
        villager = new EntityVillager(tile.getWorld());
        mode = detector.getMode();

        for (int prof = 0; prof < 5; prof++) {
            professions.add(prof);
        }
        professions.addAll(VillagerRegistry.getRegisteredVillagers());

        professions.setCurrent(detector.getProfession());
        villager.setProfession(professions.getCurrent());
    }

    @Override
    public void initGui() {
        if (tile == null) {
            return;
        }
        buttonList.clear();
        int w = (width - xSize) / 2;
        int h = (height - ySize) / 2;

        buttonList.add(new GuiButton(0, w + 10, h + 25, 30, 20, "<"));
        buttonList.add(new GuiButton(1, w + 135, h + 25, 30, 20, ">"));

        buttonList.add(any = new GuiToggleButtonSmall(2, w + 10, h + 55, 45, LocalizationPlugin.translate("railcraft.gui.detector.villager.any"), mode == Mode.ANY));
        buttonList.add(none = new GuiToggleButtonSmall(3, w + 10, h + 75, 45, LocalizationPlugin.translate("railcraft.gui.detector.villager.none"), mode == Mode.NONE));
        buttonList.add(equals = new GuiToggleButtonSmall(4, w + 122, h + 55, 45, LocalizationPlugin.translate("railcraft.gui.detector.villager.equals"), mode == Mode.EQUALS));
        buttonList.add(not = new GuiToggleButtonSmall(5, w + 122, h + 75, 45, LocalizationPlugin.translate("railcraft.gui.detector.villager.not"), mode == Mode.NOT));
    }

    @Override
    protected void drawExtras(int x, int y, float f) {
        int guiLeft = (width - xSize) / 2;
        int guiTop = (height - ySize) / 2;
        GuiTools.drawVillager(villager, 87, 91, 30, (float) (guiLeft + 87) - x, (float) (guiTop + 91 - 50) - y);
    }

    @Override
    protected void actionPerformed(GuiButton button) {
        if (tile == null) {
            return;
        }
        switch (button.id) {
            case 0:
                professions.rotateLeft();
                break;
            case 1:
                professions.rotateRight();
                break;
            case 2:
                mode = Mode.ANY;
                break;
            case 3:
                mode = Mode.NONE;
                break;
            case 4:
                mode = Mode.EQUALS;
                break;
            case 5:
                mode = Mode.NOT;
                break;
        }

        any.active = mode == Mode.ANY;
        none.active = mode == Mode.NONE;
        equals.active = mode == Mode.EQUALS;
        not.active = mode == Mode.NOT;

        villager.setProfession(professions.getCurrent());
    }

    @Override
    public void onGuiClosed() {
        if (Game.isNotHost(tile.getWorld())) {
            detector.setProfession(professions.getCurrent());
            detector.setMode(mode);
            PacketGuiReturn pkt = new PacketGuiReturn(tile);
            PacketDispatcher.sendToServer(pkt);
        }
    }

}
TOP

Related Classes of mods.railcraft.client.gui.GuiDetectorVillager

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.