    001    package net.minecraft.client.gui;
    002
    003    import cpw.mods.fml.relauncher.Side;
    004    import cpw.mods.fml.relauncher.SideOnly;
    005    import net.minecraft.client.renderer.entity.RenderItem;
    006    import net.minecraft.util.StatCollector;
    007    import net.minecraft.world.gen.FlatGeneratorInfo;
    008
    009    @SideOnly(Side.CLIENT)
    010    public class GuiCreateFlatWorld extends GuiScreen
    011    {
    012        private static RenderItem theRenderItem = new RenderItem();
    013        private final GuiCreateWorld createWorldGui;
    014        private FlatGeneratorInfo theFlatGeneratorInfo = FlatGeneratorInfo.getDefaultFlatGenerator();
    015        private String customizationTitle;
    016        private String layerMaterialLabel;
    017        private String heightLabel;
    018        private GuiCreateFlatWorldListSlot createFlatWorldListSlotGui;
    019        private GuiButton buttonAddLayer;
    020        private GuiButton buttonEditLayer;
    021        private GuiButton buttonRemoveLayer;
    022
    023        public GuiCreateFlatWorld(GuiCreateWorld par1, String par2Str)
    024        {
    025            this.createWorldGui = par1;
    026            this.setFlatGeneratorInfo(par2Str);
    027        }
    028
    029        public String getFlatGeneratorInfo()
    030        {
    031            return this.theFlatGeneratorInfo.toString();
    032        }
    033
    034        public void setFlatGeneratorInfo(String par1Str)
    035        {
    036            this.theFlatGeneratorInfo = FlatGeneratorInfo.createFlatGeneratorFromString(par1Str);
    037        }
    038
    039        /**
    040         * Adds the buttons (and other controls) to the screen in question.
    041         */
    042        public void initGui()
    043        {
    044            this.controlList.clear();
    045            this.customizationTitle = StatCollector.translateToLocal("createWorld.customize.flat.title");
    046            this.layerMaterialLabel = StatCollector.translateToLocal("createWorld.customize.flat.tile");
    047            this.heightLabel = StatCollector.translateToLocal("createWorld.customize.flat.height");
    048            this.createFlatWorldListSlotGui = new GuiCreateFlatWorldListSlot(this);
    049            this.controlList.add(this.buttonAddLayer = new GuiButton(2, this.width / 2 - 154, this.height - 52, 100, 20, StatCollector.translateToLocal("createWorld.customize.flat.addLayer") + " (NYI)"));
    050            this.controlList.add(this.buttonEditLayer = new GuiButton(3, this.width / 2 - 50, this.height - 52, 100, 20, StatCollector.translateToLocal("createWorld.customize.flat.editLayer") + " (NYI)"));
    051            this.controlList.add(this.buttonRemoveLayer = new GuiButton(4, this.width / 2 - 155, this.height - 52, 150, 20, StatCollector.translateToLocal("createWorld.customize.flat.removeLayer")));
    052            this.controlList.add(new GuiButton(0, this.width / 2 - 155, this.height - 28, 150, 20, StatCollector.translateToLocal("gui.done")));
    053            this.controlList.add(new GuiButton(5, this.width / 2 + 5, this.height - 52, 150, 20, StatCollector.translateToLocal("createWorld.customize.presets")));
    054            this.controlList.add(new GuiButton(1, this.width / 2 + 5, this.height - 28, 150, 20, StatCollector.translateToLocal("gui.cancel")));
    055            this.buttonAddLayer.drawButton = this.buttonEditLayer.drawButton = false;
    056            this.theFlatGeneratorInfo.func_82645_d();
    057            this.func_82270_g();
    058        }
    059
    060        /**
    061         * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e).
    062         */
    063        protected void actionPerformed(GuiButton par1GuiButton)
    064        {
    065            int var2 = this.theFlatGeneratorInfo.getFlatLayers().size() - this.createFlatWorldListSlotGui.field_82454_a - 1;
    066
    067            if (par1GuiButton.id == 1)
    068            {
    069                this.mc.displayGuiScreen(this.createWorldGui);
    070            }
    071            else if (par1GuiButton.id == 0)
    072            {
    073                this.createWorldGui.field_82290_a = this.getFlatGeneratorInfo();
    074                this.mc.displayGuiScreen(this.createWorldGui);
    075            }
    076            else if (par1GuiButton.id == 5)
    077            {
    078                this.mc.displayGuiScreen(new GuiFlatPresets(this));
    079            }
    080            else if (par1GuiButton.id == 4 && this.func_82272_i())
    081            {
    082                this.theFlatGeneratorInfo.getFlatLayers().remove(var2);
    083                this.createFlatWorldListSlotGui.field_82454_a = Math.min(this.createFlatWorldListSlotGui.field_82454_a, this.theFlatGeneratorInfo.getFlatLayers().size() - 1);
    084            }
    085
    086            this.theFlatGeneratorInfo.func_82645_d();
    087            this.func_82270_g();
    088        }
    089
    090        public void func_82270_g()
    091        {
    092            boolean var1 = this.func_82272_i();
    093            this.buttonRemoveLayer.enabled = var1;
    094            this.buttonEditLayer.enabled = var1;
    095            this.buttonEditLayer.enabled = false;
    096            this.buttonAddLayer.enabled = false;
    097        }
    098
    099        private boolean func_82272_i()
    100        {
    101            return this.createFlatWorldListSlotGui.field_82454_a > -1 && this.createFlatWorldListSlotGui.field_82454_a < this.theFlatGeneratorInfo.getFlatLayers().size();
    102        }
    103
    104        /**
    105         * Draws the screen and all the components in it.
    106         */
    107        public void drawScreen(int par1, int par2, float par3)
    108        {
    109            this.drawDefaultBackground();
    110            this.createFlatWorldListSlotGui.drawScreen(par1, par2, par3);
    111            this.drawCenteredString(this.fontRenderer, this.customizationTitle, this.width / 2, 8, 16777215);
    112            int var4 = this.width / 2 - 92 - 16;
    113            this.drawString(this.fontRenderer, this.layerMaterialLabel, var4, 32, 16777215);
    114            this.drawString(this.fontRenderer, this.heightLabel, var4 + 2 + 213 - this.fontRenderer.getStringWidth(this.heightLabel), 32, 16777215);
    115            super.drawScreen(par1, par2, par3);
    116        }
    117
    118        static RenderItem getRenderItem()
    119        {
    120            return theRenderItem;
    121        }
    122
    123        static FlatGeneratorInfo func_82271_a(GuiCreateFlatWorld par0GuiCreateFlatWorld)
    124        {
    125            return par0GuiCreateFlatWorld.theFlatGeneratorInfo;
    126        }
    127    }