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 }