Inital 1.8 patch update. 'It compiles!'
This commit is contained in:
parent
ebb91ba280
commit
1ac0c5d87f
104 changed files with 1300 additions and 1790 deletions
|
@ -1,27 +1,21 @@
|
|||
--- ../src-base/minecraft/net/minecraft/block/Block.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/Block.java
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.minecraft.block;
|
||||
|
||||
+import cpw.mods.fml.common.registry.GameData;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.util.Iterator;
|
||||
@@ -32,7 +33,7 @@
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
public class Block
|
||||
{
|
||||
- public static final RegistryNamespaced field_149771_c = new RegistryNamespacedDefaultedByKey("air");
|
||||
+ public static final RegistryNamespaced field_149771_c = GameData.getBlockRegistry();
|
||||
private static final ResourceLocation field_176230_a = new ResourceLocation("air");
|
||||
- public static final RegistryNamespacedDefaultedByKey field_149771_c = new RegistryNamespacedDefaultedByKey(field_176230_a);
|
||||
+ public static final RegistryNamespacedDefaultedByKey field_149771_c = cpw.mods.fml.common.registry.GameData.getBlockRegistry();
|
||||
public static final ObjectIntIdentityMap field_176229_d = new ObjectIntIdentityMap();
|
||||
private CreativeTabs field_149772_a;
|
||||
protected String field_149768_d;
|
||||
public static final Block.SoundType field_149769_e = new Block.SoundType("stone", 1.0F, 1.0F);
|
||||
@@ -102,6 +103,8 @@
|
||||
protected IIcon field_149761_L;
|
||||
@@ -124,6 +124,9 @@
|
||||
private String field_149770_b;
|
||||
private static final String __OBFID = "CL_00000199";
|
||||
|
||||
+ public final cpw.mods.fml.common.registry.RegistryDelegate<Block> delegate =
|
||||
+ public final cpw.mods.fml.common.registry.RegistryDelegate<Block> delegate =
|
||||
+ ((cpw.mods.fml.common.registry.FMLControlledNamespacedRegistry)field_149771_c).getDelegate(this, Block.class);
|
||||
+
|
||||
public static int func_149682_b(Block p_149682_0_)
|
||||
{
|
||||
return field_149771_c.func_148757_b(p_149682_0_);
|
||||
|
|
|
@ -1,17 +1,10 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/ClientBrandRetriever.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/ClientBrandRetriever.java
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.minecraft.client;
|
||||
|
||||
+import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
@@ -10,6 +11,6 @@
|
||||
@@ -10,6 +10,6 @@
|
||||
|
||||
public static String getClientModName()
|
||||
{
|
||||
- return "vanilla";
|
||||
+ return FMLCommonHandler.instance().getModName();
|
||||
+ return cpw.mods.fml.common.FMLCommonHandler.instance().getModName();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/LoadingScreenRenderer.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/LoadingScreenRenderer.java
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.minecraft.client;
|
||||
|
||||
+import cpw.mods.fml.client.FMLClientHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.gui.Gui;
|
||||
@@ -138,6 +139,8 @@
|
||||
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
|
||||
@@ -139,6 +139,10 @@
|
||||
GlStateManager.func_179086_m(16640);
|
||||
}
|
||||
|
||||
+ if (!FMLClientHandler.instance().handleLoadingScreen(scaledresolution))
|
||||
+ try
|
||||
+ {
|
||||
Tessellator tessellator = Tessellator.field_78398_a;
|
||||
+ if (!cpw.mods.fml.client.FMLClientHandler.instance().handleLoadingScreen(scaledresolution)) //FML Don't render while FML's pre-screen is rendering
|
||||
+ {
|
||||
Tessellator tessellator = Tessellator.func_178181_a();
|
||||
WorldRenderer worldrenderer = tessellator.func_178180_c();
|
||||
this.field_73725_b.func_110434_K().func_110577_a(Gui.field_110325_k);
|
||||
float f = 32.0F;
|
||||
@@ -175,6 +178,7 @@
|
||||
OpenGlHelper.func_148821_a(770, 771, 1, 0);
|
||||
this.field_73725_b.field_71466_p.func_78261_a(this.field_73726_c, (l - this.field_73725_b.field_71466_p.func_78256_a(this.field_73726_c)) / 2, i1 / 2 - 4 - 16, 16777215);
|
||||
this.field_73725_b.field_71466_p.func_78261_a(this.field_73727_a, (l - this.field_73725_b.field_71466_p.func_78256_a(this.field_73727_a)) / 2, i1 / 2 - 4 + 8, 16777215);
|
||||
@@ -177,6 +181,12 @@
|
||||
GlStateManager.func_179120_a(770, 771, 1, 0);
|
||||
this.field_73725_b.field_71466_p.func_175063_a(this.field_73726_c, (float)((l - this.field_73725_b.field_71466_p.func_78256_a(this.field_73726_c)) / 2), (float)(i1 / 2 - 4 - 16), 16777215);
|
||||
this.field_73725_b.field_71466_p.func_175063_a(this.field_73727_a, (float)((l - this.field_73725_b.field_71466_p.func_78256_a(this.field_73727_a)) / 2), (float)(i1 / 2 - 4 + 8), 16777215);
|
||||
+ }
|
||||
+ }
|
||||
+ catch (java.io.IOException e)
|
||||
+ {
|
||||
+ com.google.common.base.Throwables.propagate(e);
|
||||
+ } //FML End
|
||||
this.field_146588_g.func_147609_e();
|
||||
|
||||
if (OpenGlHelper.func_148822_b())
|
||||
|
|
|
@ -1,125 +1,106 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/Minecraft.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/Minecraft.java
|
||||
@@ -9,6 +9,9 @@
|
||||
import com.google.common.util.concurrent.ListenableFutureTask;
|
||||
import com.mojang.authlib.minecraft.MinecraftSessionService;
|
||||
import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
|
||||
+import cpw.mods.fml.client.FMLClientHandler;
|
||||
+import cpw.mods.fml.common.FMLCommonHandler;
|
||||
+import cpw.mods.fml.common.StartupQuery;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import io.netty.util.concurrent.GenericFutureListener;
|
||||
@@ -169,6 +172,8 @@
|
||||
import org.lwjgl.opengl.PixelFormat;
|
||||
import org.lwjgl.util.glu.GLU;
|
||||
|
||||
+import com.google.common.collect.MapDifference;
|
||||
+
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class Minecraft implements IPlayerUsage
|
||||
{
|
||||
@@ -344,21 +349,23 @@
|
||||
File file2 = new File(file1, "crash-" + (new SimpleDateFormat("yyyy-MM-dd_HH.mm.ss")).format(new Date()) + "-client.txt");
|
||||
System.out.println(p_71377_1_.func_71502_e());
|
||||
|
||||
+ int retVal;
|
||||
if (p_71377_1_.func_71497_f() != null)
|
||||
{
|
||||
System.out.println("#@!@# Game crashed! Crash report saved to: #@!@# " + p_71377_1_.func_71497_f());
|
||||
- System.exit(-1);
|
||||
+ retVal = -1;
|
||||
}
|
||||
else if (p_71377_1_.func_147149_a(file2))
|
||||
{
|
||||
System.out.println("#@!@# Game crashed! Crash report saved to: #@!@# " + file2.getAbsolutePath());
|
||||
- System.exit(-1);
|
||||
+ retVal = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
System.out.println("#@?@# Game crashed! Crash report could not be saved. #@?@#");
|
||||
- System.exit(-2);
|
||||
+ retVal = -2;
|
||||
}
|
||||
+ FMLCommonHandler.instance().handleExit(retVal);
|
||||
}
|
||||
|
||||
public void func_71367_a(String p_71367_1_, int p_71367_2_)
|
||||
@@ -471,7 +478,7 @@
|
||||
@@ -410,7 +410,7 @@
|
||||
this.field_110451_am = new SimpleReloadableResourceManager(this.field_110452_an);
|
||||
this.field_135017_as = new LanguageManager(this.field_110452_an, this.field_71474_y.field_74363_ab);
|
||||
this.field_110451_am.func_110542_a(this.field_135017_as);
|
||||
- this.func_110436_a();
|
||||
+ FMLClientHandler.instance().beginMinecraftLoading(this, this.field_110449_ao, this.field_110451_am);
|
||||
+ cpw.mods.fml.client.FMLClientHandler.instance().beginMinecraftLoading(this, this.field_110449_ao, this.field_110451_am);
|
||||
this.field_71446_o = new TextureManager(this.field_110451_am);
|
||||
this.field_110451_am.func_110542_a(this.field_71446_o);
|
||||
this.field_152350_aA = new SkinManager(this.field_71446_o, new File(this.field_110446_Y, "skins"), this.field_152355_az);
|
||||
@@ -532,12 +539,13 @@
|
||||
this.field_71446_o.func_130088_a(TextureMap.field_110576_c, new TextureMap(1, "textures/items"));
|
||||
GL11.glViewport(0, 0, this.field_71443_c, this.field_71440_d);
|
||||
this.func_180510_a(this.field_71446_o);
|
||||
@@ -482,12 +482,13 @@
|
||||
this.field_71458_u = new GuiAchievement(this);
|
||||
GlStateManager.func_179083_b(0, 0, this.field_71443_c, this.field_71440_d);
|
||||
this.field_71452_i = new EffectRenderer(this.field_71441_e, this.field_71446_o);
|
||||
+ FMLClientHandler.instance().finishMinecraftLoading();
|
||||
+ cpw.mods.fml.client.FMLClientHandler.instance().finishMinecraftLoading();
|
||||
this.func_71361_d("Post startup");
|
||||
this.field_71456_v = new GuiIngame(this);
|
||||
|
||||
if (this.field_71475_ae != null)
|
||||
{
|
||||
- this.func_147108_a(new GuiConnecting(new GuiMainMenu(), this, this.field_71475_ae, this.field_71477_af));
|
||||
+ FMLClientHandler.instance().connectToServerAtStartup(this.field_71475_ae, this.field_71477_af);
|
||||
+ cpw.mods.fml.client.FMLClientHandler.instance().connectToServerAtStartup(this.field_71475_ae, this.field_71477_af);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -553,6 +561,7 @@
|
||||
@@ -503,6 +504,7 @@
|
||||
this.func_71352_k();
|
||||
}
|
||||
|
||||
+ FMLClientHandler.instance().onInitializationComplete();
|
||||
+ cpw.mods.fml.client.FMLClientHandler.instance().onInitializationComplete();
|
||||
try
|
||||
{
|
||||
Display.setVSyncEnabled(this.field_71474_y.field_74352_v);
|
||||
@@ -971,9 +980,11 @@
|
||||
@@ -681,21 +683,23 @@
|
||||
File file2 = new File(file1, "crash-" + (new SimpleDateFormat("yyyy-MM-dd_HH.mm.ss")).format(new Date()) + "-client.txt");
|
||||
Bootstrap.func_179870_a(p_71377_1_.func_71502_e());
|
||||
|
||||
+ int retVal;
|
||||
if (p_71377_1_.func_71497_f() != null)
|
||||
{
|
||||
Bootstrap.func_179870_a("#@!@# Game crashed! Crash report saved to: #@!@# " + p_71377_1_.func_71497_f());
|
||||
- System.exit(-1);
|
||||
+ retVal = -1;
|
||||
}
|
||||
else if (p_71377_1_.func_147149_a(file2))
|
||||
{
|
||||
Bootstrap.func_179870_a("#@!@# Game crashed! Crash report saved to: #@!@# " + file2.getAbsolutePath());
|
||||
- System.exit(-1);
|
||||
+ retVal = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
Bootstrap.func_179870_a("#@?@# Game crashed! Crash report could not be saved. #@?@#");
|
||||
- System.exit(-2);
|
||||
+ retVal = -2;
|
||||
}
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().handleExit(retVal);
|
||||
}
|
||||
|
||||
public boolean func_152349_b()
|
||||
@@ -1034,9 +1038,11 @@
|
||||
|
||||
if (!this.field_71454_w)
|
||||
{
|
||||
+ FMLCommonHandler.instance().onRenderTickStart(this.field_71428_T.field_74281_c);
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().onRenderTickStart(this.field_71428_T.field_74281_c);
|
||||
this.field_71424_I.func_76318_c("gameRenderer");
|
||||
this.field_71460_t.func_78480_b(this.field_71428_T.field_74281_c);
|
||||
this.field_71424_I.func_76319_b();
|
||||
+ FMLCommonHandler.instance().onRenderTickEnd(this.field_71428_T.field_74281_c);
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().onRenderTickEnd(this.field_71428_T.field_74281_c);
|
||||
}
|
||||
|
||||
GL11.glFlush();
|
||||
@@ -1555,6 +1566,8 @@
|
||||
this.field_71424_I.func_76319_b();
|
||||
@@ -1591,6 +1597,8 @@
|
||||
--this.field_71467_ac;
|
||||
}
|
||||
|
||||
+ FMLCommonHandler.instance().onPreClientTick();
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().onPreClientTick();
|
||||
+
|
||||
this.field_71424_I.func_76320_a("gui");
|
||||
|
||||
if (!this.field_71445_n)
|
||||
@@ -1699,6 +1712,7 @@
|
||||
@@ -1744,6 +1752,7 @@
|
||||
this.field_71462_r.func_146274_d();
|
||||
}
|
||||
}
|
||||
+ FMLCommonHandler.instance().fireMouseInput();
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().fireMouseInput();
|
||||
}
|
||||
|
||||
if (this.field_71429_W > 0)
|
||||
@@ -1836,6 +1850,7 @@
|
||||
@@ -1920,6 +1929,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
+ FMLCommonHandler.instance().fireKeyInput();
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().fireKeyInput();
|
||||
}
|
||||
|
||||
for (j = 0; j < 9; ++j)
|
||||
@@ -2026,12 +2041,15 @@
|
||||
for (i = 0; i < 9; ++i)
|
||||
@@ -2120,12 +2130,15 @@
|
||||
this.field_71453_ak.func_74428_b();
|
||||
}
|
||||
|
||||
+ FMLCommonHandler.instance().onPostClientTick();
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().onPostClientTick();
|
||||
+
|
||||
this.field_71424_I.func_76319_b();
|
||||
this.field_71423_H = func_71386_F();
|
||||
|
@ -127,15 +108,15 @@
|
|||
|
||||
public void func_71371_a(String p_71371_1_, String p_71371_2_, WorldSettings p_71371_3_)
|
||||
{
|
||||
+ FMLClientHandler.instance().startIntegratedServer(p_71371_1_, p_71371_2_, p_71371_3_);
|
||||
+ cpw.mods.fml.client.FMLClientHandler.instance().startIntegratedServer(p_71371_1_, p_71371_2_, p_71371_3_);
|
||||
this.func_71403_a((WorldClient)null);
|
||||
System.gc();
|
||||
ISaveHandler isavehandler = this.field_71469_aa.func_75804_a(p_71371_1_, false);
|
||||
@@ -2067,6 +2085,12 @@
|
||||
@@ -2161,6 +2174,12 @@
|
||||
|
||||
while (!this.field_71437_Z.func_71200_ad())
|
||||
{
|
||||
+ if (!StartupQuery.check())
|
||||
+ if (!cpw.mods.fml.common.StartupQuery.check())
|
||||
+ {
|
||||
+ func_71403_a(null);
|
||||
+ func_147108_a(null);
|
||||
|
@ -144,11 +125,20 @@
|
|||
String s2 = this.field_71437_Z.func_71195_b_();
|
||||
|
||||
if (s2 != null)
|
||||
@@ -2142,6 +2166,7 @@
|
||||
this.field_110448_aq.func_148529_f();
|
||||
@@ -2186,7 +2205,7 @@
|
||||
SocketAddress socketaddress = this.field_71437_Z.func_147137_ag().func_151270_a();
|
||||
NetworkManager networkmanager = NetworkManager.func_150722_a(socketaddress);
|
||||
networkmanager.func_150719_a(new NetHandlerLoginClient(networkmanager, this, (GuiScreen)null));
|
||||
- networkmanager.func_179290_a(new C00Handshake(47, socketaddress.toString(), 0, EnumConnectionState.LOGIN));
|
||||
+ networkmanager.func_179290_a(new C00Handshake(47, socketaddress.toString(), 0, EnumConnectionState.LOGIN, true));
|
||||
networkmanager.func_179290_a(new C00PacketLoginStart(this.func_110432_I().func_148256_e()));
|
||||
this.field_71453_ak = networkmanager;
|
||||
}
|
||||
@@ -2237,6 +2256,7 @@
|
||||
|
||||
this.func_71351_a((ServerData)null);
|
||||
this.field_71455_al = false;
|
||||
+ FMLClientHandler.instance().handleClientWorldClosing(this.field_71441_e);
|
||||
+ cpw.mods.fml.client.FMLClientHandler.instance().handleClientWorldClosing(this.field_71441_e);
|
||||
}
|
||||
|
||||
this.field_147127_av.func_147690_c();
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/gui/GuiButton.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiButton.java
|
||||
@@ -23,6 +23,7 @@
|
||||
@@ -22,6 +22,7 @@
|
||||
public boolean field_146125_m;
|
||||
protected boolean field_146123_n;
|
||||
private static final String __OBFID = "CL_00000668";
|
||||
+ public int packedFGColour;
|
||||
+ public int packedFGColour; //FML
|
||||
|
||||
public GuiButton(int p_i1020_1_, int p_i1020_2_, int p_i1020_3_, String p_i1020_4_)
|
||||
{
|
||||
@@ -76,8 +77,12 @@
|
||||
@@ -75,8 +76,12 @@
|
||||
this.func_146119_b(p_146112_1_, p_146112_2_, p_146112_3_);
|
||||
int l = 14737632;
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/gui/GuiCreateWorld.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiCreateWorld.java
|
||||
@@ -211,6 +211,8 @@
|
||||
@@ -213,6 +213,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/gui/GuiIngame.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiIngame.java
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.minecraft.client.gui;
|
||||
|
||||
+import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.awt.Color;
|
||||
@@ -314,6 +315,11 @@
|
||||
this.func_73731_b(fontrenderer, s, k - fontrenderer.func_78256_a(s) - 2, 2, 14737632);
|
||||
s = "Allocated memory: " + j5 * 100L / i5 + "% (" + j5 / 1024L / 1024L + "MB)";
|
||||
this.func_73731_b(fontrenderer, s, k - fontrenderer.func_78256_a(s) - 2, 12, 14737632);
|
||||
+ int offset = 22;
|
||||
+ for (String brd : FMLCommonHandler.instance().getBrandings(false))
|
||||
+ {
|
||||
+ this.func_73731_b(fontrenderer, brd, k - fontrenderer.func_78256_a(brd) - 2, offset+=10, 14737632);
|
||||
+ }
|
||||
j3 = MathHelper.func_76128_c(this.field_73839_d.field_71439_g.field_70165_t);
|
||||
k3 = MathHelper.func_76128_c(this.field_73839_d.field_71439_g.field_70163_u);
|
||||
int l3 = MathHelper.func_76128_c(this.field_73839_d.field_71439_g.field_70161_v);
|
|
@ -1,30 +1,23 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/gui/GuiIngameMenu.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiIngameMenu.java
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.minecraft.client.gui;
|
||||
|
||||
+import cpw.mods.fml.client.FMLClientHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.gui.achievement.GuiAchievements;
|
||||
@@ -29,8 +30,9 @@
|
||||
@@ -30,8 +30,9 @@
|
||||
|
||||
this.field_146292_n.add(new GuiButton(4, this.field_146294_l / 2 - 100, this.field_146295_m / 4 + 24 + b0, I18n.func_135052_a("menu.returnToGame", new Object[0])));
|
||||
this.field_146292_n.add(new GuiButton(0, this.field_146294_l / 2 - 100, this.field_146295_m / 4 + 96 + b0, 98, 20, I18n.func_135052_a("menu.options", new Object[0])));
|
||||
+ this.field_146292_n.add(new GuiButton(12, this.field_146294_l / 2 + 2, this.field_146295_m / 4 + 96 + b0, 98, 20, "Mod Options..."));
|
||||
+ this.field_146292_n.add(new GuiButton(12, this.field_146294_l / 2 + 2, this.field_146295_m / 4 + 96 + b0, 98, 20, I18n.func_135052_a("fml.menu.modoptions")));
|
||||
GuiButton guibutton;
|
||||
- this.field_146292_n.add(guibutton = new GuiButton(7, this.field_146294_l / 2 + 2, this.field_146295_m / 4 + 96 + b0, 98, 20, I18n.func_135052_a("menu.shareToLan", new Object[0])));
|
||||
+ this.field_146292_n.add(guibutton = new GuiButton(7, this.field_146294_l / 2 - 100, this.field_146295_m / 4 + 72 + b0, 200, 20, I18n.func_135052_a("menu.shareToLan", new Object[0])));
|
||||
this.field_146292_n.add(new GuiButton(5, this.field_146294_l / 2 - 100, this.field_146295_m / 4 + 48 + b0, 98, 20, I18n.func_135052_a("gui.achievements", new Object[0])));
|
||||
this.field_146292_n.add(new GuiButton(6, this.field_146294_l / 2 + 2, this.field_146295_m / 4 + 48 + b0, 98, 20, I18n.func_135052_a("gui.stats", new Object[0])));
|
||||
guibutton.field_146124_l = this.field_146297_k.func_71356_B() && !this.field_146297_k.func_71401_C().func_71344_c();
|
||||
@@ -64,6 +66,10 @@
|
||||
@@ -65,6 +66,10 @@
|
||||
break;
|
||||
case 7:
|
||||
this.field_146297_k.func_147108_a(new GuiShareToLan(this));
|
||||
+ break;
|
||||
+ case 12:
|
||||
+ FMLClientHandler.instance().showInGameModOptions(this);
|
||||
+ cpw.mods.fml.client.FMLClientHandler.instance().showInGameModOptions(this);
|
||||
+ break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,68 +1,39 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/gui/GuiMainMenu.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiMainMenu.java
|
||||
@@ -1,5 +1,7 @@
|
||||
package net.minecraft.client.gui;
|
||||
|
||||
+import cpw.mods.fml.client.GuiModList;
|
||||
+import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.io.BufferedReader;
|
||||
@@ -9,6 +11,7 @@
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
+import java.util.List;
|
||||
import java.util.Random;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.OpenGlHelper;
|
||||
@@ -29,6 +32,9 @@
|
||||
import org.lwjgl.opengl.GLContext;
|
||||
import org.lwjgl.util.glu.Project;
|
||||
|
||||
+import com.google.common.base.Strings;
|
||||
+import com.google.common.collect.Lists;
|
||||
+
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class GuiMainMenu extends GuiScreen implements GuiYesNoCallback
|
||||
{
|
||||
@@ -190,7 +196,13 @@
|
||||
{
|
||||
@@ -198,6 +198,11 @@
|
||||
this.field_146292_n.add(new GuiButton(1, this.field_146294_l / 2 - 100, p_73969_1_, I18n.func_135052_a("menu.singleplayer", new Object[0])));
|
||||
this.field_146292_n.add(new GuiButton(2, this.field_146294_l / 2 - 100, p_73969_1_ + p_73969_2_ * 1, I18n.func_135052_a("menu.multiplayer", new Object[0])));
|
||||
- this.field_146292_n.add(new GuiButton(14, this.field_146294_l / 2 - 100, p_73969_1_ + p_73969_2_ * 2, I18n.func_135052_a("menu.online", new Object[0])));
|
||||
+ GuiButton realmsButton = new GuiButton(14, this.field_146294_l / 2 - 100, p_73969_1_ + p_73969_2_ * 2, I18n.func_135052_a("menu.online", new Object[0]));
|
||||
+ GuiButton fmlModButton = new GuiButton(6, this.field_146294_l / 2 - 100, p_73969_1_ + p_73969_2_ * 2, "Mods");
|
||||
this.field_146292_n.add(this.field_175372_K = new GuiButton(14, this.field_146294_l / 2 - 100, p_73969_1_ + p_73969_2_ * 2, I18n.func_135052_a("menu.online", new Object[0])));
|
||||
+ GuiButton fmlModButton = new GuiButton(6, this.field_146294_l / 2 - 100, p_73969_1_ + p_73969_2_ * 2, I18n.func_135052_a("fml.menu.mods"));
|
||||
+ fmlModButton.field_146128_h = this.field_146294_l / 2 + 2;
|
||||
+ realmsButton.field_146120_f = 98;
|
||||
+ field_175372_K.field_146120_f = 98;
|
||||
+ fmlModButton.field_146120_f = 98;
|
||||
+ this.field_146292_n.add(realmsButton);
|
||||
+ this.field_146292_n.add(fmlModButton);
|
||||
}
|
||||
|
||||
private void func_73972_b(int p_73972_1_, int p_73972_2_)
|
||||
@@ -238,6 +250,11 @@
|
||||
@@ -245,6 +250,11 @@
|
||||
this.field_146297_k.func_71400_g();
|
||||
}
|
||||
|
||||
+ if (p_146284_1_.field_146127_k == 6)
|
||||
+ {
|
||||
+ this.field_146297_k.func_147108_a(new GuiModList(this));
|
||||
+ this.field_146297_k.func_147108_a(new cpw.mods.fml.client.GuiModList(this));
|
||||
+ }
|
||||
+
|
||||
if (p_146284_1_.field_146127_k == 11)
|
||||
{
|
||||
this.field_146297_k.func_71371_a("Demo_World", "Demo_World", DemoWorldServer.field_73071_a);
|
||||
@@ -481,7 +498,15 @@
|
||||
@@ -492,7 +502,15 @@
|
||||
s = s + " Demo";
|
||||
}
|
||||
|
||||
- this.func_73731_b(this.field_146289_q, s, 2, this.field_146295_m - 10, -1);
|
||||
+ List<String> brandings = Lists.reverse(FMLCommonHandler.instance().getBrandings(true));
|
||||
+ java.util.List<String> brandings = com.google.common.collect.Lists.reverse(cpw.mods.fml.common.FMLCommonHandler.instance().getBrandings(true));
|
||||
+ for (int i = 0; i < brandings.size(); i++)
|
||||
+ {
|
||||
+ String brd = brandings.get(i);
|
||||
+ if (!Strings.isNullOrEmpty(brd))
|
||||
+ if (!com.google.common.base.Strings.isNullOrEmpty(brd))
|
||||
+ {
|
||||
+ this.func_73731_b(this.field_146289_q, brd, 2, this.field_146295_m - ( 10 + i * (this.field_146289_q.field_78288_b + 1)), 16777215);
|
||||
+ }
|
||||
|
|
|
@ -1,27 +1,19 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/gui/GuiMultiplayer.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiMultiplayer.java
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
import com.google.common.base.Splitter;
|
||||
import com.google.common.collect.Lists;
|
||||
+import cpw.mods.fml.client.FMLClientHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.util.List;
|
||||
@@ -40,6 +41,7 @@
|
||||
@@ -41,6 +41,7 @@
|
||||
public GuiMultiplayer(GuiScreen p_i1040_1_)
|
||||
{
|
||||
this.field_146798_g = p_i1040_1_;
|
||||
+ FMLClientHandler.instance().setupServerList();
|
||||
+ cpw.mods.fml.client.FMLClientHandler.instance().setupServerList();
|
||||
}
|
||||
|
||||
public void func_73866_w_()
|
||||
@@ -366,7 +368,7 @@
|
||||
@@ -373,7 +374,7 @@
|
||||
|
||||
private void func_146791_a(ServerData p_146791_1_)
|
||||
{
|
||||
- this.field_146297_k.func_147108_a(new GuiConnecting(this, this.field_146297_k, p_146791_1_));
|
||||
+ FMLClientHandler.instance().connectToServer(this, p_146791_1_);
|
||||
+ cpw.mods.fml.client.FMLClientHandler.instance().connectToServer(this, p_146791_1_);
|
||||
}
|
||||
|
||||
public void func_146790_a(int p_146790_1_)
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/gui/GuiOverlayDebug.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiOverlayDebug.java
|
||||
@@ -170,6 +170,9 @@
|
||||
long l = j - k;
|
||||
ArrayList arraylist = Lists.newArrayList(new String[] {String.format("Java: %s %dbit", new Object[]{System.getProperty("java.version"), Integer.valueOf(this.field_175242_a.func_147111_S() ? 64 : 32)}), String.format("Mem: % 2d%% %03d/%03dMB", new Object[]{Long.valueOf(l * 100L / i), Long.valueOf(func_175240_a(l)), Long.valueOf(func_175240_a(i))}), String.format("Allocated: % 2d%% %03dMB", new Object[]{Long.valueOf(j * 100L / i), Long.valueOf(func_175240_a(j))}), "", String.format("Display: %dx%d (%s)", new Object[]{Integer.valueOf(Display.getWidth()), Integer.valueOf(Display.getHeight()), GL11.glGetString(GL11.GL_VENDOR)}), GL11.glGetString(GL11.GL_RENDERER), GL11.glGetString(GL11.GL_VERSION)});
|
||||
|
||||
+ arraylist.add("");
|
||||
+ arraylist.addAll(cpw.mods.fml.common.FMLCommonHandler.instance().getBrandings(false));
|
||||
+
|
||||
if (this.func_175236_d())
|
||||
{
|
||||
return arraylist;
|
|
@ -1,18 +1,11 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/gui/GuiSelectWorld.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiSelectWorld.java
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.minecraft.client.gui;
|
||||
|
||||
+import cpw.mods.fml.client.FMLClientHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.text.DateFormat;
|
||||
@@ -179,7 +180,7 @@
|
||||
@@ -187,7 +187,7 @@
|
||||
|
||||
if (this.field_146297_k.func_71359_d().func_90033_f(s))
|
||||
{
|
||||
- this.field_146297_k.func_71371_a(s, s1, (WorldSettings)null);
|
||||
+ FMLClientHandler.instance().tryLoadExistingWorld(this, s, s1);
|
||||
+ cpw.mods.fml.client.FMLClientHandler.instance().tryLoadExistingWorld(this, s, s1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,31 +1,23 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/gui/ServerListEntryNormal.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/gui/ServerListEntryNormal.java
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
import com.google.common.base.Charsets;
|
||||
import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
||||
+import cpw.mods.fml.client.FMLClientHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
@@ -83,7 +84,7 @@
|
||||
boolean flag2 = this.field_148301_e.field_82821_f < 5;
|
||||
@@ -84,7 +84,7 @@
|
||||
boolean flag2 = this.field_148301_e.field_82821_f < 47;
|
||||
boolean flag3 = flag1 || flag2;
|
||||
this.field_148300_d.field_71466_p.func_78276_b(this.field_148301_e.field_78847_a, p_148279_2_ + 32 + 3, p_148279_3_ + 1, 16777215);
|
||||
- List list = this.field_148300_d.field_71466_p.func_78271_c(this.field_148301_e.field_78843_d, p_148279_4_ - 32 - 2);
|
||||
+ List list = this.field_148300_d.field_71466_p.func_78271_c(FMLClientHandler.instance().fixDescription(this.field_148301_e.field_78843_d), p_148279_4_ - 48 - 2);
|
||||
this.field_148300_d.field_71466_p.func_78276_b(this.field_148301_e.field_78847_a, p_180790_2_ + 32 + 3, p_180790_3_ + 1, 16777215);
|
||||
- List list = this.field_148300_d.field_71466_p.func_78271_c(this.field_148301_e.field_78843_d, p_180790_4_ - 32 - 2);
|
||||
+ List list = this.field_148300_d.field_71466_p.func_78271_c(cpw.mods.fml.client.FMLClientHandler.instance().fixDescription(this.field_148301_e.field_78843_d), p_180790_4_ - 48 - 2);
|
||||
|
||||
for (int l1 = 0; l1 < Math.min(list.size(), 2); ++l1)
|
||||
{
|
||||
@@ -174,6 +175,11 @@
|
||||
int k2 = p_148279_7_ - p_148279_2_;
|
||||
int l2 = p_148279_8_ - p_148279_3_;
|
||||
@@ -178,6 +178,11 @@
|
||||
int k2 = p_180790_6_ - p_180790_2_;
|
||||
int l2 = p_180790_7_ - p_180790_3_;
|
||||
|
||||
+ String tooltip = FMLClientHandler.instance().enhanceServerListEntry(this, this.field_148301_e, p_148279_2_, p_148279_4_, p_148279_3_, k2, l2);
|
||||
+ String tooltip = cpw.mods.fml.client.FMLClientHandler.instance().enhanceServerListEntry(this, this.field_148301_e, p_180790_2_, p_180790_4_, p_180790_3_, k2, l2);
|
||||
+ if (tooltip != null)
|
||||
+ {
|
||||
+ this.field_148303_c.func_146793_a(tooltip);
|
||||
+ } else
|
||||
if (k2 >= p_148279_4_ - 15 && k2 <= p_148279_4_ - 5 && l2 >= 0 && l2 <= 8)
|
||||
if (k2 >= p_180790_4_ - 15 && k2 <= p_180790_4_ - 5 && l2 >= 0 && l2 <= 8)
|
||||
{
|
||||
this.field_148303_c.func_146793_a(s1);
|
||||
|
|
|
@ -1,41 +1,14 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/network/NetHandlerLoginClient.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/network/NetHandlerLoginClient.java
|
||||
@@ -5,6 +5,9 @@
|
||||
import com.mojang.authlib.exceptions.InvalidCredentialsException;
|
||||
import com.mojang.authlib.minecraft.MinecraftSessionService;
|
||||
import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
|
||||
+
|
||||
+import cpw.mods.fml.client.FMLClientHandler;
|
||||
+import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import io.netty.util.concurrent.Future;
|
||||
@@ -23,6 +26,7 @@
|
||||
import net.minecraft.network.login.server.S00PacketDisconnect;
|
||||
import net.minecraft.network.login.server.S01PacketEncryptionRequest;
|
||||
import net.minecraft.network.login.server.S02PacketLoginSuccess;
|
||||
+import net.minecraft.network.play.client.C17PacketCustomPayload;
|
||||
import net.minecraft.util.ChatComponentTranslation;
|
||||
import net.minecraft.util.CryptManager;
|
||||
import net.minecraft.util.IChatComponent;
|
||||
@@ -100,7 +104,7 @@
|
||||
|
||||
public void func_147390_a(S02PacketLoginSuccess p_147390_1_)
|
||||
@@ -92,7 +92,10 @@
|
||||
{
|
||||
- this.field_147393_d.func_150723_a(EnumConnectionState.PLAY);
|
||||
+ FMLNetworkHandler.fmlClientHandshake(this.field_147393_d);
|
||||
this.field_175091_e = p_147390_1_.func_179730_a();
|
||||
this.field_147393_d.func_150723_a(EnumConnectionState.PLAY);
|
||||
- this.field_147393_d.func_150719_a(new NetHandlerPlayClient(this.field_147394_b, this.field_147395_c, this.field_147393_d, this.field_175091_e));
|
||||
+ cpw.mods.fml.common.network.internal.FMLNetworkHandler.fmlClientHandshake(this.field_147393_d);
|
||||
+ NetHandlerPlayClient nhpc = new NetHandlerPlayClient(this.field_147394_b, this.field_147395_c, this.field_147393_d, this.field_175091_e);
|
||||
+ this.field_147393_d.func_150719_a(nhpc);
|
||||
+ cpw.mods.fml.client.FMLClientHandler.instance().setPlayClient(nhpc);
|
||||
}
|
||||
|
||||
public void func_147231_a(IChatComponent p_147231_1_)
|
||||
@@ -114,7 +118,10 @@
|
||||
|
||||
if (p_147232_2_ == EnumConnectionState.PLAY)
|
||||
{
|
||||
- this.field_147393_d.func_150719_a(new NetHandlerPlayClient(this.field_147394_b, this.field_147395_c, this.field_147393_d));
|
||||
+ NetHandlerPlayClient nhpc = new NetHandlerPlayClient(this.field_147394_b, this.field_147395_c, this.field_147393_d);
|
||||
+ this.field_147393_d.func_150719_a(nhpc);
|
||||
+ FMLClientHandler.instance().setPlayClient(nhpc);
|
||||
+
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,18 +1,10 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/network/OldServerPinger.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/network/OldServerPinger.java
|
||||
@@ -4,6 +4,7 @@
|
||||
import com.google.common.base.Splitter;
|
||||
import com.google.common.collect.Iterables;
|
||||
import com.mojang.authlib.GameProfile;
|
||||
+import cpw.mods.fml.client.FMLClientHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import io.netty.bootstrap.Bootstrap;
|
||||
@@ -147,6 +148,7 @@
|
||||
@@ -148,6 +148,7 @@
|
||||
p_147224_1_.func_147407_a((String)null);
|
||||
}
|
||||
|
||||
+ FMLClientHandler.instance().bindServerListData(p_147224_1_, serverstatusresponse);
|
||||
networkmanager.func_150725_a(new C01PacketPing(Minecraft.func_71386_F()), new GenericFutureListener[0]);
|
||||
+ cpw.mods.fml.client.FMLClientHandler.instance().bindServerListData(p_147224_1_, serverstatusresponse);
|
||||
this.field_175092_e = Minecraft.func_71386_F();
|
||||
networkmanager.func_179290_a(new C01PacketPing(this.field_175092_e));
|
||||
this.field_147403_d = true;
|
||||
}
|
||||
|
|
|
@ -1,102 +0,0 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/renderer/RenderBlocks.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/renderer/RenderBlocks.java
|
||||
@@ -40,6 +40,7 @@
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
+import net.minecraft.src.FMLRenderAccessLibrary;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.tileentity.TileEntityFlowerPot;
|
||||
import net.minecraft.util.Direction;
|
||||
@@ -245,7 +246,53 @@
|
||||
{
|
||||
p_147805_1_.func_149719_a(this.field_147845_a, p_147805_2_, p_147805_3_, p_147805_4_);
|
||||
this.func_147775_a(p_147805_1_);
|
||||
- return l == 0 ? this.func_147784_q(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 4 ? this.func_147721_p(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 31 ? this.func_147742_r(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 1 ? this.func_147746_l(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 40 ? this.func_147774_a((BlockDoublePlant)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 2 ? this.func_147791_c(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 20 ? this.func_147726_j(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 11 ? this.func_147735_a((BlockFence)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 39 ? this.func_147779_s(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 5 ? this.func_147788_h(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 13 ? this.func_147755_t(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 9 ? this.func_147766_a((BlockRailBase)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 19 ? this.func_147724_m(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 23 ? this.func_147783_o(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 6 ? this.func_147796_n(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 3 ? this.func_147801_a((BlockFire)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 8 ? this.func_147794_i(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 7 ? this.func_147760_u(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 10 ? this.func_147722_a((BlockStairs)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 27 ? this.func_147802_a((BlockDragonEgg)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 32 ? this.func_147807_a((BlockWall)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 12 ? this.func_147790_e(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 29 ? this.func_147723_f(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 30 ? this.func_147756_g(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 14 ? this.func_147773_v(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 15 ? this.func_147759_a((BlockRedstoneRepeater)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 36 ? this.func_147748_a((BlockRedstoneDiode)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 37 ? this.func_147781_a((BlockRedstoneComparator)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 16 ? this.func_147731_b(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_, false) : (l == 17 ? this.func_147809_c(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_, true) : (l == 18 ? this.func_147767_a((BlockPane)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 41 ? this.func_147733_k(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 21 ? this.func_147776_a((BlockFenceGate)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 24 ? this.func_147785_a((BlockCauldron)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 33 ? this.func_147752_a((BlockFlowerPot)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 35 ? this.func_147725_a((BlockAnvil)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 25 ? this.func_147741_a((BlockBrewingStand)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 26 ? this.func_147743_a((BlockEndPortalFrame)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 28 ? this.func_147772_a((BlockCocoa)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 34 ? this.func_147797_a((BlockBeacon)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 38 ? this.func_147803_a((BlockHopper)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : false))))))))))))))))))))))))))))))))))))))));
|
||||
+
|
||||
+ switch (l)
|
||||
+ {
|
||||
+ //regex: ' : \(l == ([\d]+) \?' replace: ';\ncase \1: return' ::: IMPORTANT: REMEMBER THIS ON FIRST line!
|
||||
+ case 0 : return this.func_147784_q(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 4: return this.func_147721_p(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 31: return this.func_147742_r(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 1: return this.func_147746_l(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 40: return this.func_147774_a((BlockDoublePlant)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 2: return this.func_147791_c(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 20: return this.func_147726_j(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 11: return this.func_147735_a((BlockFence)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 39: return this.func_147779_s(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 5: return this.func_147788_h(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 13: return this.func_147755_t(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 9: return this.func_147766_a((BlockRailBase)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 19: return this.func_147724_m(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 23: return this.func_147783_o(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 6: return this.func_147796_n(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 3: return this.func_147801_a((BlockFire)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 8: return this.func_147794_i(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 7: return this.func_147760_u(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 10: return this.func_147722_a((BlockStairs)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 27: return this.func_147802_a((BlockDragonEgg)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 32: return this.func_147807_a((BlockWall)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 12: return this.func_147790_e(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 29: return this.func_147723_f(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 30: return this.func_147756_g(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 14: return this.func_147773_v(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 15: return this.func_147759_a((BlockRedstoneRepeater)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 36: return this.func_147748_a((BlockRedstoneDiode)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 37: return this.func_147781_a((BlockRedstoneComparator)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 16: return this.func_147731_b(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_, false) ;
|
||||
+ case 17: return this.func_147809_c(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_, true) ;
|
||||
+ case 18: return this.func_147767_a((BlockPane)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 41: return this.func_147733_k(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 21: return this.func_147776_a((BlockFenceGate)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 24: return this.func_147785_a((BlockCauldron)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 33: return this.func_147752_a((BlockFlowerPot)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 35: return this.func_147725_a((BlockAnvil)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 25: return this.func_147741_a((BlockBrewingStand)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 26: return this.func_147743_a((BlockEndPortalFrame)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 28: return this.func_147772_a((BlockCocoa)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 34: return this.func_147797_a((BlockBeacon)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
|
||||
+ case 38: return this.func_147803_a((BlockHopper)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_);
|
||||
+ default: return FMLRenderAccessLibrary.renderWorldBlock(this, field_147845_a, p_147805_2_, p_147805_3_, p_147805_4_, p_147805_1_, l);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8089,6 +8136,10 @@
|
||||
this.func_147799_a((BlockHopper)p_147800_1_, 0, 0, 0, 0, true);
|
||||
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
|
||||
}
|
||||
+ else
|
||||
+ {
|
||||
+ FMLRenderAccessLibrary.renderInventoryBlock(this, p_147800_1_, p_147800_2_, j);
|
||||
+ }
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -8147,7 +8198,24 @@
|
||||
|
||||
public static boolean func_147739_a(int p_147739_0_)
|
||||
{
|
||||
- return p_147739_0_ == 0 ? true : (p_147739_0_ == 31 ? true : (p_147739_0_ == 39 ? true : (p_147739_0_ == 13 ? true : (p_147739_0_ == 10 ? true : (p_147739_0_ == 11 ? true : (p_147739_0_ == 27 ? true : (p_147739_0_ == 22 ? true : (p_147739_0_ == 21 ? true : (p_147739_0_ == 16 ? true : (p_147739_0_ == 26 ? true : (p_147739_0_ == 32 ? true : (p_147739_0_ == 34 ? true : (p_147739_0_ == 35 ? true : (p_147739_0_ == -1 ? false : false))))))))))))));
|
||||
+ switch (p_147739_0_)
|
||||
+ {
|
||||
+ case 0 : return true ;
|
||||
+ case 31: return true ;
|
||||
+ case 39: return true ;
|
||||
+ case 13: return true ;
|
||||
+ case 10: return true ;
|
||||
+ case 11: return true ;
|
||||
+ case 27: return true ;
|
||||
+ case 22: return true ;
|
||||
+ case 21: return true ;
|
||||
+ case 16: return true ;
|
||||
+ case 26: return true ;
|
||||
+ case 32: return true ;
|
||||
+ case 34: return true ;
|
||||
+ case 35: return true ;
|
||||
+ default: return FMLRenderAccessLibrary.renderItemAsFull3DBlock(p_147739_0_);
|
||||
+ }
|
||||
}
|
||||
|
||||
public IIcon func_147793_a(Block p_147793_1_, IBlockAccess p_147793_2_, int p_147793_3_, int p_147793_4_, int p_147793_5_, int p_147793_6_)
|
|
@ -1,18 +1,11 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/renderer/entity/RenderVillager.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/renderer/entity/RenderVillager.java
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.minecraft.client.renderer.entity;
|
||||
|
||||
+import cpw.mods.fml.common.registry.VillagerRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.model.ModelVillager;
|
||||
@@ -53,7 +54,7 @@
|
||||
@@ -48,7 +48,7 @@
|
||||
case 4:
|
||||
return field_110906_m;
|
||||
default:
|
||||
- return field_110903_f;
|
||||
+ return VillagerRegistry.getVillagerSkin(p_110775_1_.func_70946_n(), field_110903_f);
|
||||
+ return cpw.mods.fml.common.registry.VillagerRegistry.getVillagerSkin(p_110775_1_.func_70946_n(), field_110903_f);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,19 +1,10 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/resources/LanguageManager.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/resources/LanguageManager.java
|
||||
@@ -3,6 +3,8 @@
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.common.collect.Sets;
|
||||
+
|
||||
+import cpw.mods.fml.common.registry.LanguageRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.io.IOException;
|
||||
@@ -83,6 +85,7 @@
|
||||
@@ -83,6 +83,7 @@
|
||||
}
|
||||
|
||||
field_135049_a.func_135022_a(p_110549_1_, arraylist);
|
||||
+ LanguageRegistry.instance().mergeLanguageTable(field_135049_a.field_135032_a, this.field_135048_c);
|
||||
+ cpw.mods.fml.common.registry.LanguageRegistry.instance().mergeLanguageTable(field_135049_a.field_135032_a, this.field_135048_c);
|
||||
StringTranslate.func_135063_a(field_135049_a.field_135032_a);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,19 +1,10 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/settings/GameSettings.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/settings/GameSettings.java
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.gson.Gson;
|
||||
+
|
||||
+import cpw.mods.fml.client.FMLClientHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.io.BufferedReader;
|
||||
@@ -1049,6 +1051,7 @@
|
||||
@@ -1067,6 +1067,7 @@
|
||||
|
||||
public void func_74303_b()
|
||||
{
|
||||
+ if (FMLClientHandler.instance().isLoading()) return;
|
||||
+ if (cpw.mods.fml.client.FMLClientHandler.instance().isLoading()) return;
|
||||
try
|
||||
{
|
||||
PrintWriter printwriter = new PrintWriter(new FileWriter(this.field_74354_ai));
|
||||
|
|
|
@ -1,17 +1,10 @@
|
|||
--- ../src-base/minecraft/net/minecraft/crash/CrashReport.java
|
||||
+++ ../src-work/minecraft/net/minecraft/crash/CrashReport.java
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.minecraft.crash;
|
||||
|
||||
+import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.io.File;
|
||||
@@ -140,6 +141,7 @@
|
||||
@@ -126,6 +126,7 @@
|
||||
return IntCache.func_85144_b();
|
||||
}
|
||||
});
|
||||
+ FMLCommonHandler.instance().enhanceCrashReport(this, this.field_85061_c);
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().enhanceCrashReport(this, this.field_85061_c);
|
||||
}
|
||||
|
||||
public String func_71501_a()
|
||||
|
|
|
@ -1,28 +1,6 @@
|
|||
--- ../src-base/minecraft/net/minecraft/entity/EntityList.java
|
||||
+++ ../src-work/minecraft/net/minecraft/entity/EntityList.java
|
||||
@@ -5,6 +5,7 @@
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
+
|
||||
import net.minecraft.entity.ai.EntityMinecartMobSpawner;
|
||||
import net.minecraft.entity.boss.EntityDragon;
|
||||
import net.minecraft.entity.boss.EntityWither;
|
||||
@@ -63,9 +64,13 @@
|
||||
import net.minecraft.stats.StatBase;
|
||||
import net.minecraft.stats.StatList;
|
||||
import net.minecraft.world.World;
|
||||
+
|
||||
+import org.apache.logging.log4j.Level;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
+import cpw.mods.fml.common.FMLLog;
|
||||
+
|
||||
public class EntityList
|
||||
{
|
||||
private static final Logger field_151516_b = LogManager.getLogger();
|
||||
@@ -145,9 +150,10 @@
|
||||
@@ -153,9 +153,10 @@
|
||||
p_75615_0_.func_82580_o("Type");
|
||||
}
|
||||
|
||||
|
@ -34,18 +12,17 @@
|
|||
|
||||
if (oclass != null)
|
||||
{
|
||||
@@ -161,7 +167,17 @@
|
||||
@@ -169,7 +170,17 @@
|
||||
|
||||
if (entity != null)
|
||||
{
|
||||
- entity.func_70020_e(p_75615_0_);
|
||||
+ try
|
||||
+ {
|
||||
+ entity.func_70020_e(p_75615_0_);
|
||||
entity.func_70020_e(p_75615_0_);
|
||||
+ }
|
||||
+ catch (Exception e)
|
||||
+ {
|
||||
+ FMLLog.log(Level.ERROR, e,
|
||||
+ cpw.mods.fml.common.FMLLog.log(org.apache.logging.log4j.Level.ERROR, e,
|
||||
+ "An Entity %s(%s) has thrown an exception during loading, its state cannot be restored. Report this to the mod author",
|
||||
+ p_75615_0_.func_74779_i("id"), oclass.getName());
|
||||
+ entity = null;
|
||||
|
|
|
@ -1,22 +1,10 @@
|
|||
--- ../src-base/minecraft/net/minecraft/entity/EntityTracker.java
|
||||
+++ ../src-work/minecraft/net/minecraft/entity/EntityTracker.java
|
||||
@@ -39,6 +39,8 @@
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
+import cpw.mods.fml.common.registry.EntityRegistry;
|
||||
+
|
||||
public class EntityTracker
|
||||
{
|
||||
private static final Logger field_151249_a = LogManager.getLogger();
|
||||
@@ -56,6 +58,11 @@
|
||||
@@ -58,6 +58,8 @@
|
||||
|
||||
public void func_72786_a(Entity p_72786_1_)
|
||||
{
|
||||
+ if (EntityRegistry.instance().tryTrackingEntity(this, p_72786_1_))
|
||||
+ {
|
||||
+ return;
|
||||
+ }
|
||||
+ if (cpw.mods.fml.common.registry.EntityRegistry.instance().tryTrackingEntity(this, p_72786_1_)) return;
|
||||
+
|
||||
if (p_72786_1_ instanceof EntityPlayerMP)
|
||||
{
|
||||
|
|
|
@ -1,15 +1,6 @@
|
|||
--- ../src-base/minecraft/net/minecraft/entity/EntityTrackerEntry.java
|
||||
+++ ../src-work/minecraft/net/minecraft/entity/EntityTrackerEntry.java
|
||||
@@ -57,6 +57,8 @@
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
+import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
+
|
||||
public class EntityTrackerEntry
|
||||
{
|
||||
private static final Logger field_151262_p = LogManager.getLogger();
|
||||
@@ -377,6 +379,14 @@
|
||||
@@ -388,6 +388,14 @@
|
||||
this.field_73138_k = this.field_73132_a.field_70181_x;
|
||||
this.field_73135_l = this.field_73132_a.field_70179_y;
|
||||
|
||||
|
@ -18,22 +9,19 @@
|
|||
+ int posZ = MathHelper.func_76128_c(this.field_73132_a.field_70161_v * 32.0D);
|
||||
+ if (posX != this.field_73128_d || posY != this.field_73129_e || posZ != this.field_73126_f)
|
||||
+ {
|
||||
+ FMLNetworkHandler.makeEntitySpawnAdjustment(this.field_73132_a, p_73117_1_, this.field_73128_d, this.field_73129_e, this.field_73126_f);
|
||||
+ cpw.mods.fml.common.network.internal.FMLNetworkHandler.makeEntitySpawnAdjustment(this.field_73132_a, p_73117_1_, this.field_73128_d, this.field_73129_e, this.field_73126_f);
|
||||
+ }
|
||||
+
|
||||
if (this.field_73143_t && !(packet instanceof S0FPacketSpawnMob))
|
||||
{
|
||||
p_73117_1_.field_71135_a.func_147359_a(new S12PacketEntityVelocity(this.field_73132_a.func_145782_y(), this.field_73132_a.field_70159_w, this.field_73132_a.field_70181_x, this.field_73132_a.field_70179_y));
|
||||
@@ -456,6 +466,12 @@
|
||||
@@ -474,6 +482,9 @@
|
||||
field_151262_p.warn("Fetching addPacket for removed entity");
|
||||
}
|
||||
|
||||
+ Packet pkt = FMLNetworkHandler.getEntitySpawningPacket(this.field_73132_a);
|
||||
+ Packet pkt = cpw.mods.fml.common.network.internal.FMLNetworkHandler.getEntitySpawningPacket(this.field_73132_a);
|
||||
+ if (pkt != null) return pkt;
|
||||
+
|
||||
+ if (pkt != null)
|
||||
+ {
|
||||
+ return pkt;
|
||||
+ }
|
||||
if (this.field_73132_a instanceof EntityItem)
|
||||
{
|
||||
return new S0EPacketSpawnObject(this.field_73132_a, 2, 1);
|
||||
|
|
|
@ -1,20 +1,10 @@
|
|||
--- ../src-base/minecraft/net/minecraft/entity/item/EntityItem.java
|
||||
+++ ../src-work/minecraft/net/minecraft/entity/item/EntityItem.java
|
||||
@@ -17,6 +17,8 @@
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
+import cpw.mods.fml.common.FMLCommonHandler;
|
||||
+
|
||||
public class EntityItem extends Entity
|
||||
{
|
||||
private static final Logger field_145803_d = LogManager.getLogger();
|
||||
@@ -325,6 +327,8 @@
|
||||
@@ -366,6 +366,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
+ FMLCommonHandler.instance().firePlayerItemPickupEvent(p_70100_1_, this);
|
||||
+
|
||||
this.field_70170_p.func_72956_a(p_70100_1_, "random.pop", 0.2F, ((this.field_70146_Z.nextFloat() - this.field_70146_Z.nextFloat()) * 0.7F + 1.0F) * 2.0F);
|
||||
p_70100_1_.func_71001_a(this, i);
|
||||
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().firePlayerItemPickupEvent(p_70100_1_, this);
|
||||
if (!this.func_174814_R())
|
||||
{
|
||||
this.field_70170_p.func_72956_a(p_70100_1_, "random.pop", 0.2F, ((this.field_70146_Z.nextFloat() - this.field_70146_Z.nextFloat()) * 0.7F + 1.0F) * 2.0F);
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
--- ../src-base/minecraft/net/minecraft/entity/monster/EntitySlime.java
|
||||
+++ ../src-work/minecraft/net/minecraft/entity/monster/EntitySlime.java
|
||||
@@ -247,7 +247,7 @@
|
||||
@@ -271,7 +271,7 @@
|
||||
{
|
||||
Chunk chunk = this.field_70170_p.func_72938_d(MathHelper.func_76128_c(this.field_70165_t), MathHelper.func_76128_c(this.field_70161_v));
|
||||
Chunk chunk = this.field_70170_p.func_175726_f(new BlockPos(MathHelper.func_76128_c(this.field_70165_t), 0, MathHelper.func_76128_c(this.field_70161_v)));
|
||||
|
||||
- if (this.field_70170_p.func_72912_H().func_76067_t() == WorldType.field_77138_c && this.field_70146_Z.nextInt(4) != 1)
|
||||
+ if (this.field_70170_p.func_72912_H().func_76067_t().handleSlimeSpawnReduction(field_70146_Z, field_70170_p))
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,40 +1,41 @@
|
|||
--- ../src-base/minecraft/net/minecraft/entity/player/EntityPlayer.java
|
||||
+++ ../src-work/minecraft/net/minecraft/entity/player/EntityPlayer.java
|
||||
@@ -2,6 +2,9 @@
|
||||
|
||||
import com.google.common.base.Charsets;
|
||||
import com.mojang.authlib.GameProfile;
|
||||
+
|
||||
+import cpw.mods.fml.common.FMLCommonHandler;
|
||||
+import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.util.Collection;
|
||||
@@ -193,6 +196,7 @@
|
||||
@@ -200,6 +200,7 @@
|
||||
|
||||
public void func_70071_h_()
|
||||
{
|
||||
+ FMLCommonHandler.instance().onPlayerPreTick(this);
|
||||
if (this.field_71074_e != null)
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().onPlayerPreTick(this);
|
||||
this.field_70145_X = this.func_175149_v();
|
||||
|
||||
if (this.func_175149_v())
|
||||
@@ -344,6 +345,7 @@
|
||||
{
|
||||
ItemStack itemstack = this.field_71071_by.func_70448_g();
|
||||
@@ -316,6 +320,7 @@
|
||||
this.field_71100_bB.func_75118_a(this);
|
||||
this.func_71064_a(StatList.field_75948_k, 1);
|
||||
this.func_70107_b(d3, this.field_70163_u, d4);
|
||||
}
|
||||
+ FMLCommonHandler.instance().onPlayerPostTick(this);
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().onPlayerPostTick(this);
|
||||
}
|
||||
|
||||
public int func_82145_z()
|
||||
@@ -2031,6 +2036,11 @@
|
||||
}
|
||||
@@ -2139,6 +2141,22 @@
|
||||
this.field_175153_bG = p_175150_1_;
|
||||
}
|
||||
|
||||
+ /**
|
||||
+ * Opens a GUI with this player, uses FML's IGuiHandler system.
|
||||
+ * Allows for extension by modders.
|
||||
+ *
|
||||
+ * @param mod The mod trying to open a GUI
|
||||
+ * @param modGuiId GUI ID
|
||||
+ * @param world Current World
|
||||
+ * @param x Passed directly to IGuiHandler, data meaningless Typically world X position
|
||||
+ * @param y Passed directly to IGuiHandler, data meaningless Typically world Y position
|
||||
+ * @param z Passed directly to IGuiHandler, data meaningless Typically world Z position
|
||||
+ */
|
||||
+ public void openGui(Object mod, int modGuiId, World world, int x, int y, int z)
|
||||
+ {
|
||||
+ FMLNetworkHandler.openGui(this, mod, modGuiId, world, x, y, z);
|
||||
+ cpw.mods.fml.common.network.internal.FMLNetworkHandler.openGui(this, mod, modGuiId, world, x, y, z);
|
||||
+ }
|
||||
+
|
||||
public static enum EnumStatus
|
||||
public static enum EnumChatVisibility
|
||||
{
|
||||
OK,
|
||||
FULL(0, "options.chat.visibility.full"),
|
||||
|
|
|
@ -1,17 +1,10 @@
|
|||
--- ../src-base/minecraft/net/minecraft/inventory/SlotCrafting.java
|
||||
+++ ../src-work/minecraft/net/minecraft/inventory/SlotCrafting.java
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.minecraft.inventory;
|
||||
|
||||
+import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.init.Items;
|
||||
@@ -103,6 +104,7 @@
|
||||
@@ -113,6 +113,7 @@
|
||||
|
||||
public void func_82870_a(EntityPlayer p_82870_1_, ItemStack p_82870_2_)
|
||||
{
|
||||
+ FMLCommonHandler.instance().firePlayerCraftingEvent(p_82870_1_, p_82870_2_, field_75239_a);
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().firePlayerCraftingEvent(p_82870_1_, p_82870_2_, field_75239_a);
|
||||
this.func_75208_c(p_82870_2_);
|
||||
ItemStack[] aitemstack = CraftingManager.func_77594_a().func_180303_b(this.field_75239_a, p_82870_1_.field_70170_p);
|
||||
|
||||
for (int i = 0; i < this.field_75239_a.func_70302_i_(); ++i)
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
--- ../src-base/minecraft/net/minecraft/inventory/SlotFurnace.java
|
||||
+++ ../src-work/minecraft/net/minecraft/inventory/SlotFurnace.java
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.minecraft.inventory;
|
||||
|
||||
+import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import net.minecraft.entity.item.EntityXPOrb;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Items;
|
||||
@@ -83,6 +84,8 @@
|
||||
|
||||
this.field_75228_b = 0;
|
||||
|
||||
+ FMLCommonHandler.instance().firePlayerSmeltedEvent(field_75229_a, p_75208_1_);
|
||||
+
|
||||
if (p_75208_1_.func_77973_b() == Items.field_151042_j)
|
||||
{
|
||||
this.field_75229_a.func_71064_a(AchievementList.field_76016_k, 1);
|
|
@ -0,0 +1,11 @@
|
|||
--- ../src-base/minecraft/net/minecraft/inventory/SlotFurnaceOutput.java
|
||||
+++ ../src-work/minecraft/net/minecraft/inventory/SlotFurnaceOutput.java
|
||||
@@ -83,6 +83,8 @@
|
||||
|
||||
this.field_75228_b = 0;
|
||||
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().firePlayerSmeltedEvent(field_75229_a, p_75208_1_);
|
||||
+
|
||||
if (p_75208_1_.func_77973_b() == Items.field_151042_j)
|
||||
{
|
||||
this.field_75229_a.func_71029_a(AchievementList.field_76016_k);
|
|
@ -1,29 +1,21 @@
|
|||
--- ../src-base/minecraft/net/minecraft/item/Item.java
|
||||
+++ ../src-work/minecraft/net/minecraft/item/Item.java
|
||||
@@ -3,6 +3,8 @@
|
||||
import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
import com.google.common.collect.Sets;
|
||||
+
|
||||
+import cpw.mods.fml.common.registry.GameData;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.util.HashSet;
|
||||
@@ -46,7 +48,7 @@
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
public class Item
|
||||
{
|
||||
- public static final RegistryNamespaced field_150901_e = new RegistryNamespaced();
|
||||
+ public static final RegistryNamespaced field_150901_e = GameData.getItemRegistry();
|
||||
+ public static final RegistryNamespaced field_150901_e = cpw.mods.fml.common.registry.GameData.getItemRegistry();
|
||||
private static final Map field_179220_a = Maps.newHashMap();
|
||||
protected static final UUID field_111210_e = UUID.fromString("CB3F55D3-645C-4F38-A497-9C13A33DB5CF");
|
||||
private CreativeTabs field_77701_a;
|
||||
protected static Random field_77697_d = new Random();
|
||||
@@ -62,6 +64,8 @@
|
||||
protected String field_111218_cA;
|
||||
@@ -61,6 +61,9 @@
|
||||
private String field_77774_bZ;
|
||||
private static final String __OBFID = "CL_00000041";
|
||||
|
||||
+ public final cpw.mods.fml.common.registry.RegistryDelegate<Item> delegate =
|
||||
+ public final cpw.mods.fml.common.registry.RegistryDelegate<Item> delegate =
|
||||
+ ((cpw.mods.fml.common.registry.FMLControlledNamespacedRegistry)field_150901_e).getDelegate(this, Item.class);
|
||||
+
|
||||
public static int func_150891_b(Item p_150891_0_)
|
||||
{
|
||||
return p_150891_0_ == null ? 0 : field_150901_e.func_148757_b(p_150891_0_);
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
--- ../src-base/minecraft/net/minecraft/item/ItemEmptyMap.java
|
||||
+++ ../src-work/minecraft/net/minecraft/item/ItemEmptyMap.java
|
||||
@@ -25,7 +25,7 @@
|
||||
int i = 128 * (1 << mapdata.field_76197_d);
|
||||
mapdata.field_76201_a = (int)(Math.round(p_77659_3_.field_70165_t / (double)i) * (long)i);
|
||||
mapdata.field_76199_b = (int)(Math.round(p_77659_3_.field_70161_v / (double)i) * (long)i);
|
||||
- mapdata.field_76200_c = (byte)p_77659_2_.field_73011_w.field_76574_g;
|
||||
+ mapdata.field_76200_c = p_77659_2_.field_73011_w.field_76574_g;
|
||||
@@ -24,7 +24,7 @@
|
||||
p_77659_2_.func_72823_a(s, mapdata);
|
||||
mapdata.field_76197_d = 0;
|
||||
mapdata.func_176054_a(p_77659_3_.field_70165_t, p_77659_3_.field_70161_v, mapdata.field_76197_d);
|
||||
- mapdata.field_76200_c = (byte)p_77659_2_.field_73011_w.func_177502_q();
|
||||
+ mapdata.field_76200_c = p_77659_2_.field_73011_w.func_177502_q();
|
||||
mapdata.func_76185_a();
|
||||
--p_77659_1_.field_77994_a;
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
--- ../src-base/minecraft/net/minecraft/item/ItemMap.java
|
||||
+++ ../src-work/minecraft/net/minecraft/item/ItemMap.java
|
||||
@@ -57,7 +57,7 @@
|
||||
int i = 128 * (1 << mapdata.field_76197_d);
|
||||
mapdata.field_76201_a = Math.round((float)p_77873_2_.func_72912_H().func_76079_c() / (float)i) * i;
|
||||
mapdata.field_76199_b = Math.round((float)(p_77873_2_.func_72912_H().func_76074_e() / i)) * i;
|
||||
- mapdata.field_76200_c = (byte)p_77873_2_.field_73011_w.field_76574_g;
|
||||
+ mapdata.field_76200_c = p_77873_2_.field_73011_w.field_76574_g;
|
||||
@@ -58,7 +58,7 @@
|
||||
mapdata = new MapData(s);
|
||||
mapdata.field_76197_d = 3;
|
||||
mapdata.func_176054_a((double)p_77873_2_.func_72912_H().func_76079_c(), (double)p_77873_2_.func_72912_H().func_76074_e(), mapdata.field_76197_d);
|
||||
- mapdata.field_76200_c = (byte)p_77873_2_.field_73011_w.func_177502_q();
|
||||
+ mapdata.field_76200_c = p_77873_2_.field_73011_w.func_177502_q();
|
||||
mapdata.func_76185_a();
|
||||
p_77873_2_.func_72823_a(s, mapdata);
|
||||
}
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
--- ../src-base/minecraft/net/minecraft/item/ItemStack.java
|
||||
+++ ../src-work/minecraft/net/minecraft/item/ItemStack.java
|
||||
@@ -45,6 +45,7 @@
|
||||
private EntityItemFrame field_82843_f;
|
||||
@@ -52,6 +52,7 @@
|
||||
private boolean field_179551_k;
|
||||
private static final String __OBFID = "CL_00000043";
|
||||
|
||||
+ private cpw.mods.fml.common.registry.RegistryDelegate<Item> delegate;
|
||||
public ItemStack(Block p_i1876_1_)
|
||||
{
|
||||
this(p_i1876_1_, 1);
|
||||
@@ -72,7 +73,7 @@
|
||||
|
||||
public ItemStack(Item p_i1881_1_, int p_i1881_2_, int p_i1881_3_)
|
||||
{
|
||||
@@ -83,7 +84,7 @@
|
||||
this.field_179553_i = false;
|
||||
this.field_179550_j = null;
|
||||
this.field_179551_k = false;
|
||||
- this.field_151002_e = p_i1881_1_;
|
||||
+ func_150996_a(p_i1881_1_);
|
||||
+ this.func_150996_a(p_i1881_1_);
|
||||
this.field_77994_a = p_i1881_2_;
|
||||
this.field_77991_e = p_i1881_3_;
|
||||
|
||||
@@ -106,7 +107,7 @@
|
||||
@@ -123,7 +124,7 @@
|
||||
|
||||
public Item func_77973_b()
|
||||
{
|
||||
|
@ -25,17 +25,22 @@
|
|||
+ return this.delegate != null ? this.delegate.get() : null;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@@ -164,7 +165,7 @@
|
||||
|
||||
public void func_77963_c(NBTTagCompound p_77963_1_)
|
||||
public boolean func_179546_a(EntityPlayer p_179546_1_, World p_179546_2_, BlockPos p_179546_3_, EnumFacing p_179546_4_, float p_179546_5_, float p_179546_6_, float p_179546_7_)
|
||||
@@ -172,11 +173,11 @@
|
||||
{
|
||||
- this.field_151002_e = Item.func_150899_d(p_77963_1_.func_74765_d("id"));
|
||||
+ func_150996_a(Item.func_150899_d(p_77963_1_.func_74765_d("id")));
|
||||
this.field_77994_a = p_77963_1_.func_74771_c("Count");
|
||||
this.field_77991_e = p_77963_1_.func_74765_d("Damage");
|
||||
if (p_77963_1_.func_150297_b("id", 8))
|
||||
{
|
||||
- this.field_151002_e = Item.func_111206_d(p_77963_1_.func_74779_i("id"));
|
||||
+ this.func_150996_a(Item.func_111206_d(p_77963_1_.func_74779_i("id")));
|
||||
}
|
||||
else
|
||||
{
|
||||
- this.field_151002_e = Item.func_150899_d(p_77963_1_.func_74765_d("id"));
|
||||
+ this.func_150996_a(Item.func_150899_d(p_77963_1_.func_74765_d("id")));
|
||||
}
|
||||
|
||||
@@ -744,6 +745,7 @@
|
||||
this.field_77994_a = p_77963_1_.func_74771_c("Count");
|
||||
@@ -870,6 +871,7 @@
|
||||
|
||||
public void func_150996_a(Item p_150996_1_)
|
||||
{
|
||||
|
|
|
@ -1,42 +1,33 @@
|
|||
--- ../src-base/minecraft/net/minecraft/network/NetworkManager.java
|
||||
+++ ../src-work/minecraft/net/minecraft/network/NetworkManager.java
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
import com.google.common.collect.Queues;
|
||||
import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
||||
+
|
||||
+import cpw.mods.fml.common.network.internal.FMLProxyPacket;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import io.netty.bootstrap.Bootstrap;
|
||||
@@ -142,7 +144,7 @@
|
||||
@@ -175,7 +175,7 @@
|
||||
final EnumConnectionState enumconnectionstate = EnumConnectionState.func_150752_a(p_150732_1_);
|
||||
final EnumConnectionState enumconnectionstate1 = (EnumConnectionState)this.field_150746_k.attr(field_150739_c).get();
|
||||
|
||||
- if (enumconnectionstate1 != enumconnectionstate)
|
||||
+ if (enumconnectionstate1 != enumconnectionstate && !( p_150732_1_ instanceof FMLProxyPacket))
|
||||
+ if (enumconnectionstate1 != enumconnectionstate && !( p_150732_1_ instanceof cpw.mods.fml.common.network.internal.FMLProxyPacket))
|
||||
{
|
||||
field_150735_g.debug("Disabled auto read");
|
||||
this.field_150746_k.config().setAutoRead(false);
|
||||
@@ -150,7 +152,7 @@
|
||||
@@ -183,7 +183,7 @@
|
||||
|
||||
if (this.field_150746_k.eventLoop().inEventLoop())
|
||||
{
|
||||
- if (enumconnectionstate != enumconnectionstate1)
|
||||
+ if (enumconnectionstate != enumconnectionstate1 && !( p_150732_1_ instanceof FMLProxyPacket))
|
||||
+ if (enumconnectionstate != enumconnectionstate1 && !( p_150732_1_ instanceof cpw.mods.fml.common.network.internal.FMLProxyPacket))
|
||||
{
|
||||
this.func_150723_a(enumconnectionstate);
|
||||
}
|
||||
@@ -164,7 +166,7 @@
|
||||
private static final String __OBFID = "CL_00001241";
|
||||
@@ -204,7 +204,7 @@
|
||||
private static final String __OBFID = "CL_00001243";
|
||||
public void run()
|
||||
{
|
||||
- if (enumconnectionstate != enumconnectionstate1)
|
||||
+ if (enumconnectionstate != enumconnectionstate1 && !( p_150732_1_ instanceof FMLProxyPacket))
|
||||
+ if (enumconnectionstate != enumconnectionstate1 && !( p_150732_1_ instanceof cpw.mods.fml.common.network.internal.FMLProxyPacket))
|
||||
{
|
||||
NetworkManager.this.func_150723_a(enumconnectionstate);
|
||||
}
|
||||
@@ -315,6 +317,11 @@
|
||||
@@ -409,6 +409,11 @@
|
||||
this.channelRead0(p_channelRead0_1_, (Packet)p_channelRead0_2_);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,20 +1,11 @@
|
|||
--- ../src-base/minecraft/net/minecraft/network/NetworkSystem.java
|
||||
+++ ../src-work/minecraft/net/minecraft/network/NetworkSystem.java
|
||||
@@ -1,6 +1,8 @@
|
||||
package net.minecraft.network;
|
||||
|
||||
import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
||||
+
|
||||
+import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import io.netty.bootstrap.ServerBootstrap;
|
||||
@@ -84,7 +86,7 @@
|
||||
@@ -110,7 +110,7 @@
|
||||
;
|
||||
}
|
||||
|
||||
- p_initChannel_1_.pipeline().addLast("timeout", new ReadTimeoutHandler(30)).addLast("legacy_query", new PingResponseHandler(NetworkSystem.this)).addLast("splitter", new MessageDeserializer2()).addLast("decoder", new MessageDeserializer(NetworkManager.field_152462_h)).addLast("prepender", new MessageSerializer2()).addLast("encoder", new MessageSerializer(NetworkManager.field_152462_h));
|
||||
+ p_initChannel_1_.pipeline().addLast("timeout", new ReadTimeoutHandler(FMLNetworkHandler.READ_TIMEOUT)).addLast("legacy_query", new PingResponseHandler(NetworkSystem.this)).addLast("splitter", new MessageDeserializer2()).addLast("decoder", new MessageDeserializer(NetworkManager.field_152462_h)).addLast("prepender", new MessageSerializer2()).addLast("encoder", new MessageSerializer(NetworkManager.field_152462_h));
|
||||
NetworkManager networkmanager = new NetworkManager(false);
|
||||
- p_initChannel_1_.pipeline().addLast("timeout", new ReadTimeoutHandler(30)).addLast("legacy_query", new PingResponseHandler(NetworkSystem.this)).addLast("splitter", new MessageDeserializer2()).addLast("decoder", new MessageDeserializer(EnumPacketDirection.SERVERBOUND)).addLast("prepender", new MessageSerializer2()).addLast("encoder", new MessageSerializer(EnumPacketDirection.CLIENTBOUND));
|
||||
+ p_initChannel_1_.pipeline().addLast("timeout", new ReadTimeoutHandler(cpw.mods.fml.common.network.internal.FMLNetworkHandler.READ_TIMEOUT)).addLast("legacy_query", new PingResponseHandler(NetworkSystem.this)).addLast("splitter", new MessageDeserializer2()).addLast("decoder", new MessageDeserializer(EnumPacketDirection.SERVERBOUND)).addLast("prepender", new MessageSerializer2()).addLast("encoder", new MessageSerializer(EnumPacketDirection.CLIENTBOUND));
|
||||
NetworkManager networkmanager = new NetworkManager(EnumPacketDirection.SERVERBOUND);
|
||||
NetworkSystem.this.field_151272_f.add(networkmanager);
|
||||
p_initChannel_1_.pipeline().addLast("packet_handler", networkmanager);
|
||||
|
|
|
@ -1,27 +1,18 @@
|
|||
--- ../src-base/minecraft/net/minecraft/network/ServerStatusResponse.java
|
||||
+++ ../src-work/minecraft/net/minecraft/network/ServerStatusResponse.java
|
||||
@@ -8,6 +8,8 @@
|
||||
import com.google.gson.JsonSerializationContext;
|
||||
import com.google.gson.JsonSerializer;
|
||||
import com.mojang.authlib.GameProfile;
|
||||
+import cpw.mods.fml.client.FMLClientHandler;
|
||||
+import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.UUID;
|
||||
import net.minecraft.util.IChatComponent;
|
||||
@@ -233,6 +235,7 @@
|
||||
@@ -233,6 +233,7 @@
|
||||
serverstatusresponse.func_151320_a(JsonUtils.func_151200_h(jsonobject, "favicon"));
|
||||
}
|
||||
|
||||
+ FMLClientHandler.instance().captureAdditionalData(serverstatusresponse, jsonobject);
|
||||
+ cpw.mods.fml.client.FMLClientHandler.instance().captureAdditionalData(serverstatusresponse, jsonobject);
|
||||
return serverstatusresponse;
|
||||
}
|
||||
|
||||
@@ -260,6 +263,7 @@
|
||||
@@ -260,6 +261,7 @@
|
||||
jsonobject.addProperty("favicon", p_serialize_1_.func_151316_d());
|
||||
}
|
||||
|
||||
+ FMLNetworkHandler.enhanceStatusQuery(jsonobject);
|
||||
+ cpw.mods.fml.common.network.internal.FMLNetworkHandler.enhanceStatusQuery(jsonobject);
|
||||
return jsonobject;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
--- ../src-base/minecraft/net/minecraft/network/play/server/S3FPacketCustomPayload.java
|
||||
+++ ../src-work/minecraft/net/minecraft/network/play/server/S3FPacketCustomPayload.java
|
||||
@@ -27,23 +27,24 @@
|
||||
this.field_149172_a = p_i45190_1_;
|
||||
this.field_149171_b = p_i45190_2_;
|
||||
|
||||
- if (p_i45190_2_.length >= 1048576)
|
||||
+ //TODO: Remove this when FML protocol is re-written. To restore vanilla compatibility.
|
||||
+ if (p_i45190_2_.length > 0x1FFF9A) // Max size of ANY MC packet is 0x1FFFFF minus max size of this packet (101)
|
||||
{
|
||||
- throw new IllegalArgumentException("Payload may not be larger than 1048576 bytes");
|
||||
+ throw new IllegalArgumentException("Payload may not be larger than 2097050 bytes");
|
||||
}
|
||||
}
|
||||
|
||||
public void func_148837_a(PacketBuffer p_148837_1_) throws IOException
|
||||
{
|
||||
this.field_149172_a = p_148837_1_.func_150789_c(20);
|
||||
- this.field_149171_b = new byte[p_148837_1_.readUnsignedShort()];
|
||||
+ this.field_149171_b = new byte[cpw.mods.fml.common.network.ByteBufUtils.readVarShort(p_148837_1_)];
|
||||
p_148837_1_.readBytes(this.field_149171_b);
|
||||
}
|
||||
|
||||
public void func_148840_b(PacketBuffer p_148840_1_) throws IOException
|
||||
{
|
||||
p_148840_1_.func_150785_a(this.field_149172_a);
|
||||
- p_148840_1_.writeShort(this.field_149171_b.length);
|
||||
+ cpw.mods.fml.common.network.ByteBufUtils.writeVarShort(p_148840_1_, this.field_149171_b.length);
|
||||
p_148840_1_.writeBytes(this.field_149171_b);
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src-base/minecraft/net/minecraft/realms/RealmsConnect.java
|
||||
+++ ../src-work/minecraft/net/minecraft/realms/RealmsConnect.java
|
||||
@@ -40,6 +40,7 @@
|
||||
@@ -39,6 +39,7 @@
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -8,3 +8,12 @@
|
|||
inetaddress = InetAddress.getByName(p_connect_1_);
|
||||
|
||||
if (RealmsConnect.this.aborted)
|
||||
@@ -60,7 +61,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
- RealmsConnect.this.connection.func_179290_a(new C00Handshake(47, p_connect_1_, p_connect_2_, EnumConnectionState.LOGIN));
|
||||
+ RealmsConnect.this.connection.func_179290_a(new C00Handshake(47, p_connect_1_, p_connect_2_, EnumConnectionState.LOGIN, true));
|
||||
|
||||
if (RealmsConnect.this.aborted)
|
||||
{
|
||||
|
|
|
@ -1,118 +1,106 @@
|
|||
--- ../src-base/minecraft/net/minecraft/server/MinecraftServer.java
|
||||
+++ ../src-work/minecraft/net/minecraft/server/MinecraftServer.java
|
||||
@@ -5,6 +5,11 @@
|
||||
import com.mojang.authlib.GameProfileRepository;
|
||||
import com.mojang.authlib.minecraft.MinecraftSessionService;
|
||||
import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
|
||||
+
|
||||
+import cpw.mods.fml.common.FMLCommonHandler;
|
||||
+import cpw.mods.fml.common.Loader;
|
||||
+import cpw.mods.fml.common.LoaderState;
|
||||
+import cpw.mods.fml.common.StartupQuery;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
@@ -343,7 +348,7 @@
|
||||
@@ -399,7 +399,7 @@
|
||||
|
||||
public void func_71260_j()
|
||||
{
|
||||
- if (!this.field_71290_O)
|
||||
+ if (!this.field_71290_O && Loader.instance().hasReachedState(LoaderState.SERVER_STARTED) && !field_71316_v) // make sure the save is valid and we don't save twice
|
||||
+ if (!this.field_71290_O && cpw.mods.fml.common.Loader.instance().hasReachedState(cpw.mods.fml.common.LoaderState.SERVER_STARTED) && !field_71316_v) // make sure the save is valid and we don't save twice
|
||||
{
|
||||
field_147145_h.info("Stopping server");
|
||||
|
||||
@@ -394,6 +399,7 @@
|
||||
@@ -456,6 +456,7 @@
|
||||
{
|
||||
if (this.func_71197_b())
|
||||
{
|
||||
+ FMLCommonHandler.instance().handleServerStarted();
|
||||
long i = func_130071_aq();
|
||||
long l = 0L;
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().handleServerStarted();
|
||||
this.field_175591_ab = func_130071_aq();
|
||||
long i = 0L;
|
||||
this.field_147147_p.func_151315_a(new ChatComponentText(this.field_71286_C));
|
||||
@@ -438,12 +444,20 @@
|
||||
Thread.sleep(Math.max(1L, 50L - l));
|
||||
@@ -500,12 +501,20 @@
|
||||
Thread.sleep(Math.max(1L, 50L - i));
|
||||
this.field_71296_Q = true;
|
||||
}
|
||||
+ FMLCommonHandler.instance().handleServerStopping();
|
||||
+ FMLCommonHandler.instance().expectServerStopped(); // has to come before finalTick to avoid race conditions
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().handleServerStopping();
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().expectServerStopped(); // has to come before finalTick to avoid race conditions
|
||||
}
|
||||
else
|
||||
{
|
||||
+ FMLCommonHandler.instance().expectServerStopped(); // has to come before finalTick to avoid race conditions
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().expectServerStopped(); // has to come before finalTick to avoid race conditions
|
||||
this.func_71228_a((CrashReport)null);
|
||||
}
|
||||
}
|
||||
+ catch (StartupQuery.AbortedException e)
|
||||
+ catch (cpw.mods.fml.common.StartupQuery.AbortedException e)
|
||||
+ {
|
||||
+ // ignore silently
|
||||
+ FMLCommonHandler.instance().expectServerStopped(); // has to come before finalTick to avoid race conditions
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().expectServerStopped(); // has to come before finalTick to avoid race conditions
|
||||
+ }
|
||||
catch (Throwable throwable1)
|
||||
{
|
||||
field_147145_h.error("Encountered an unexpected exception", throwable1);
|
||||
@@ -469,6 +483,7 @@
|
||||
@@ -531,6 +540,7 @@
|
||||
field_147145_h.error("We were unable to save this crash report to disk.");
|
||||
}
|
||||
|
||||
+ FMLCommonHandler.instance().expectServerStopped(); // has to come before finalTick to avoid race conditions
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().expectServerStopped(); // has to come before finalTick to avoid race conditions
|
||||
this.func_71228_a(crashreport);
|
||||
}
|
||||
finally
|
||||
@@ -484,6 +499,8 @@
|
||||
@@ -546,6 +556,8 @@
|
||||
}
|
||||
finally
|
||||
{
|
||||
+ FMLCommonHandler.instance().handleServerStopped();
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().handleServerStopped();
|
||||
+ this.field_71316_v = true;
|
||||
this.func_71240_o();
|
||||
}
|
||||
}
|
||||
@@ -529,6 +546,7 @@
|
||||
@@ -591,6 +603,7 @@
|
||||
public void func_71217_p()
|
||||
{
|
||||
long i = System.nanoTime();
|
||||
+ FMLCommonHandler.instance().onPreServerTick();
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().onPreServerTick();
|
||||
++this.field_71315_w;
|
||||
|
||||
if (this.field_71295_T)
|
||||
@@ -582,6 +600,7 @@
|
||||
@@ -644,6 +657,7 @@
|
||||
|
||||
this.field_71304_b.func_76319_b();
|
||||
this.field_71304_b.func_76319_b();
|
||||
+ FMLCommonHandler.instance().onPostServerTick();
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().onPostServerTick();
|
||||
}
|
||||
|
||||
public void func_71190_q()
|
||||
@@ -608,6 +627,7 @@
|
||||
@@ -686,6 +700,7 @@
|
||||
}
|
||||
|
||||
this.field_71304_b.func_76320_a("tick");
|
||||
+ FMLCommonHandler.instance().onPreWorldTick(worldserver);
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().onPreWorldTick(worldserver);
|
||||
CrashReport crashreport;
|
||||
|
||||
try
|
||||
@@ -632,6 +652,7 @@
|
||||
@@ -710,6 +725,7 @@
|
||||
throw new ReportedException(crashreport);
|
||||
}
|
||||
|
||||
+ FMLCommonHandler.instance().onPostWorldTick(worldserver);
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().onPostWorldTick(worldserver);
|
||||
this.field_71304_b.func_76319_b();
|
||||
this.field_71304_b.func_76320_a("tracker");
|
||||
worldserver.func_73039_n().func_72788_a();
|
||||
@@ -663,6 +684,7 @@
|
||||
@@ -741,6 +757,7 @@
|
||||
|
||||
public void func_71256_s()
|
||||
{
|
||||
+ StartupQuery.reset();
|
||||
(new Thread("Server thread")
|
||||
{
|
||||
private static final String __OBFID = "CL_00001418";
|
||||
@@ -715,7 +737,7 @@
|
||||
+ cpw.mods.fml.common.StartupQuery.reset();
|
||||
this.field_175590_aa = new Thread(this, "Server thread");
|
||||
this.field_175590_aa.start();
|
||||
}
|
||||
@@ -787,7 +804,7 @@
|
||||
|
||||
public String getServerModName()
|
||||
{
|
||||
- return "vanilla";
|
||||
+ return FMLCommonHandler.instance().getModName();
|
||||
+ return cpw.mods.fml.common.FMLCommonHandler.instance().getModName();
|
||||
}
|
||||
|
||||
public CrashReport func_71230_b(CrashReport p_71230_1_)
|
||||
|
|
|
@ -1,13 +1,6 @@
|
|||
--- ../src-base/minecraft/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
+++ ../src-work/minecraft/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.minecraft.server.dedicated;
|
||||
|
||||
+import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.io.BufferedReader;
|
||||
@@ -48,6 +49,7 @@
|
||||
@@ -49,6 +49,7 @@
|
||||
private boolean field_71338_p;
|
||||
private WorldSettings.GameType field_71337_q;
|
||||
private boolean field_71335_s;
|
||||
|
@ -15,37 +8,37 @@
|
|||
private static final String __OBFID = "CL_00001784";
|
||||
|
||||
public DedicatedServer(File p_i1508_1_)
|
||||
@@ -112,6 +114,8 @@
|
||||
@@ -113,6 +114,8 @@
|
||||
field_155771_h.warn("To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\"");
|
||||
}
|
||||
|
||||
+ FMLCommonHandler.instance().onServerStart(this);
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().onServerStart(this);
|
||||
+
|
||||
field_155771_h.info("Loading properties");
|
||||
this.field_71340_o = new PropertyManager(new File("server.properties"));
|
||||
this.field_154332_n = new ServerEula(new File("eula.txt"));
|
||||
@@ -203,6 +207,7 @@
|
||||
@@ -204,6 +207,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
+ FMLCommonHandler.instance().onServerStarted();
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().onServerStarted();
|
||||
this.func_152361_a(new DedicatedPlayerList(this));
|
||||
long j = System.nanoTime();
|
||||
|
||||
@@ -248,6 +253,7 @@
|
||||
@@ -250,6 +254,7 @@
|
||||
this.func_71191_d((this.func_71207_Z() + 8) / 16 * 16);
|
||||
this.func_71191_d(MathHelper.func_76125_a(this.func_71207_Z(), 64, 256));
|
||||
this.field_71340_o.func_73667_a("max-build-height", Integer.valueOf(this.func_71207_Z()));
|
||||
+ if (!FMLCommonHandler.instance().handleServerAboutToStart(this)) { return false; }
|
||||
+ if (!cpw.mods.fml.common.FMLCommonHandler.instance().handleServerAboutToStart(this)) return false;
|
||||
field_155771_h.info("Preparing level \"" + this.func_71270_I() + "\"");
|
||||
this.func_71247_a(this.func_71270_I(), this.func_71270_I(), k, worldtype, s2);
|
||||
long i1 = System.nanoTime() - j;
|
||||
@@ -268,7 +274,7 @@
|
||||
this.field_71339_n.func_72602_a();
|
||||
@@ -278,7 +283,7 @@
|
||||
thread1.start();
|
||||
}
|
||||
|
||||
- return true;
|
||||
+ return FMLCommonHandler.instance().handleServerStarting(this);
|
||||
+ return cpw.mods.fml.common.FMLCommonHandler.instance().handleServerStarting(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,14 +1,6 @@
|
|||
--- ../src-base/minecraft/net/minecraft/server/gui/MinecraftServerGui.java
|
||||
+++ ../src-work/minecraft/net/minecraft/server/gui/MinecraftServerGui.java
|
||||
@@ -13,6 +13,7 @@
|
||||
import java.awt.event.FocusEvent;
|
||||
import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
+import java.util.concurrent.CountDownLatch;
|
||||
import javax.swing.JComponent;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
@@ -79,6 +80,7 @@
|
||||
@@ -79,6 +79,7 @@
|
||||
System.exit(0);
|
||||
}
|
||||
});
|
||||
|
@ -16,19 +8,17 @@
|
|||
}
|
||||
|
||||
public MinecraftServerGui(DedicatedServer p_i2362_1_)
|
||||
@@ -164,8 +166,15 @@
|
||||
@@ -164,8 +165,13 @@
|
||||
return jpanel;
|
||||
}
|
||||
|
||||
+ private CountDownLatch latch = new CountDownLatch(1);
|
||||
+ private java.util.concurrent.CountDownLatch latch = new java.util.concurrent.CountDownLatch(1);
|
||||
public void func_164247_a(final JTextArea p_164247_1_, final JScrollPane p_164247_2_, final String p_164247_3_)
|
||||
{
|
||||
+ try
|
||||
+ {
|
||||
+ latch.await();
|
||||
+ } catch (InterruptedException e)
|
||||
+ {
|
||||
+ }
|
||||
+ } catch (InterruptedException e){} //Prevent logging until after constructor has ended.
|
||||
if (!SwingUtilities.isEventDispatchThread())
|
||||
{
|
||||
SwingUtilities.invokeLater(new Runnable()
|
||||
|
|
|
@ -1,21 +1,14 @@
|
|||
--- ../src-base/minecraft/net/minecraft/server/integrated/IntegratedServer.java
|
||||
+++ ../src-work/minecraft/net/minecraft/server/integrated/IntegratedServer.java
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.minecraft.server.integrated;
|
||||
|
||||
+import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.io.File;
|
||||
@@ -105,9 +106,10 @@
|
||||
@@ -144,9 +144,10 @@
|
||||
this.func_71245_h(true);
|
||||
field_147148_h.info("Generating keypair");
|
||||
this.func_71253_a(CryptManager.func_75891_b());
|
||||
+ if (!FMLCommonHandler.instance().handleServerAboutToStart(this)) { return false; }
|
||||
+ if (!cpw.mods.fml.common.FMLCommonHandler.instance().handleServerAboutToStart(this)) return false;
|
||||
this.func_71247_a(this.func_71270_I(), this.func_71221_J(), this.field_71350_m.func_77160_d(), this.field_71350_m.func_77165_h(), this.field_71350_m.func_82749_j());
|
||||
this.func_71205_p(this.func_71214_G() + " - " + this.field_71305_c[0].func_72912_H().func_76065_j());
|
||||
- return true;
|
||||
+ return FMLCommonHandler.instance().handleServerStarting(this);
|
||||
+ return cpw.mods.fml.common.FMLCommonHandler.instance().handleServerStarting(this);
|
||||
}
|
||||
|
||||
public void func_71217_p()
|
||||
|
|
|
@ -1,15 +1,6 @@
|
|||
--- ../src-base/minecraft/net/minecraft/server/management/ServerConfigurationManager.java
|
||||
+++ ../src-work/minecraft/net/minecraft/server/management/ServerConfigurationManager.java
|
||||
@@ -4,6 +4,8 @@
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.mojang.authlib.GameProfile;
|
||||
+
|
||||
+import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.io.File;
|
||||
@@ -98,7 +100,7 @@
|
||||
@@ -103,7 +103,7 @@
|
||||
this.field_72405_c = 8;
|
||||
}
|
||||
|
||||
|
@ -18,24 +9,24 @@
|
|||
{
|
||||
GameProfile gameprofile = p_72355_2_.func_146103_bH();
|
||||
PlayerProfileCache playerprofilecache = this.field_72400_f.func_152358_ax();
|
||||
@@ -119,7 +121,7 @@
|
||||
WorldServer worldserver = this.field_72400_f.func_71218_a(p_72355_2_.field_71093_bK);
|
||||
ChunkCoordinates chunkcoordinates = worldserver.func_72861_E();
|
||||
@@ -125,7 +125,7 @@
|
||||
WorldInfo worldinfo = worldserver.func_72912_H();
|
||||
BlockPos blockpos = worldserver.func_175694_M();
|
||||
this.func_72381_a(p_72355_2_, (EntityPlayerMP)null, worldserver);
|
||||
- NetHandlerPlayServer nethandlerplayserver = new NetHandlerPlayServer(this.field_72400_f, p_72355_1_, p_72355_2_);
|
||||
+ p_72355_2_.field_71135_a = nethandlerplayserver;
|
||||
nethandlerplayserver.func_147359_a(new S01PacketJoinGame(p_72355_2_.func_145782_y(), p_72355_2_.field_71134_c.func_73081_b(), worldserver.func_72912_H().func_76093_s(), worldserver.field_73011_w.field_76574_g, worldserver.field_73013_u, this.func_72352_l(), worldserver.func_72912_H().func_76067_t()));
|
||||
nethandlerplayserver.func_147359_a(new S3FPacketCustomPayload("MC|Brand", this.func_72365_p().getServerModName().getBytes(Charsets.UTF_8)));
|
||||
nethandlerplayserver.func_147359_a(new S05PacketSpawnPosition(chunkcoordinates.field_71574_a, chunkcoordinates.field_71572_b, chunkcoordinates.field_71573_c));
|
||||
@@ -161,6 +163,7 @@
|
||||
nethandlerplayserver.func_147359_a(new S01PacketJoinGame(p_72355_2_.func_145782_y(), p_72355_2_.field_71134_c.func_73081_b(), worldinfo.func_76093_s(), worldserver.field_73011_w.func_177502_q(), worldserver.func_175659_aa(), this.func_72352_l(), worldinfo.func_76067_t(), worldserver.func_82736_K().func_82766_b("reducedDebugInfo")));
|
||||
nethandlerplayserver.func_147359_a(new S3FPacketCustomPayload("MC|Brand", (new PacketBuffer(Unpooled.buffer())).func_180714_a(this.func_72365_p().getServerModName())));
|
||||
nethandlerplayserver.func_147359_a(new S41PacketServerDifficulty(worldinfo.func_176130_y(), worldinfo.func_176123_z()));
|
||||
@@ -168,6 +168,7 @@
|
||||
|
||||
p_72355_2_.func_71116_b();
|
||||
|
||||
+ FMLCommonHandler.instance().firePlayerLoggedIn(p_72355_2_);
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().firePlayerLoggedIn(p_72355_2_);
|
||||
if (nbttagcompound != null && nbttagcompound.func_150297_b("Riding", 10))
|
||||
{
|
||||
Entity entity = EntityList.func_75615_a(nbttagcompound.func_74775_l("Riding"), worldserver);
|
||||
@@ -250,6 +253,8 @@
|
||||
@@ -283,6 +284,8 @@
|
||||
|
||||
protected void func_72391_b(EntityPlayerMP p_72391_1_)
|
||||
{
|
||||
|
@ -44,27 +35,27 @@
|
|||
this.field_72412_k.func_75753_a(p_72391_1_);
|
||||
StatisticsFile statisticsfile = (StatisticsFile)this.field_148547_k.get(p_72391_1_.func_110124_au());
|
||||
|
||||
@@ -281,6 +286,7 @@
|
||||
@@ -315,6 +318,7 @@
|
||||
|
||||
public void func_72367_e(EntityPlayerMP p_72367_1_)
|
||||
{
|
||||
+ FMLCommonHandler.instance().firePlayerLoggedOut(p_72367_1_);
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().firePlayerLoggedOut(p_72367_1_);
|
||||
p_72367_1_.func_71029_a(StatList.field_75947_j);
|
||||
this.func_72391_b(p_72367_1_);
|
||||
WorldServer worldserver = p_72367_1_.func_71121_q();
|
||||
@@ -436,6 +442,7 @@
|
||||
this.field_72404_b.add(entityplayermp1);
|
||||
@@ -473,6 +477,7 @@
|
||||
this.field_177454_f.put(entityplayermp1.func_110124_au(), entityplayermp1);
|
||||
entityplayermp1.func_71116_b();
|
||||
entityplayermp1.func_70606_j(entityplayermp1.func_110143_aJ());
|
||||
+ FMLCommonHandler.instance().firePlayerRespawnEvent(entityplayermp1);
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().firePlayerRespawnEvent(entityplayermp1);
|
||||
return entityplayermp1;
|
||||
}
|
||||
|
||||
@@ -461,6 +468,7 @@
|
||||
@@ -498,6 +503,7 @@
|
||||
PotionEffect potioneffect = (PotionEffect)iterator.next();
|
||||
p_72356_1_.field_71135_a.func_147359_a(new S1DPacketEntityEffect(p_72356_1_.func_145782_y(), potioneffect));
|
||||
}
|
||||
+ FMLCommonHandler.instance().firePlayerChangedDimensionEvent(p_72356_1_, j, p_72356_2_);
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().firePlayerChangedDimensionEvent(p_72356_1_, j, p_72356_2_);
|
||||
}
|
||||
|
||||
public void func_82448_a(Entity p_82448_1_, int p_82448_2_, WorldServer p_82448_3_, WorldServer p_82448_4_)
|
||||
|
|
|
@ -1,20 +1,13 @@
|
|||
--- ../src-base/minecraft/net/minecraft/server/network/NetHandlerHandshakeTCP.java
|
||||
+++ ../src-work/minecraft/net/minecraft/server/network/NetHandlerHandshakeTCP.java
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.minecraft.server.network;
|
||||
|
||||
+import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import io.netty.util.concurrent.GenericFutureListener;
|
||||
import net.minecraft.network.EnumConnectionState;
|
||||
import net.minecraft.network.NetworkManager;
|
||||
@@ -24,6 +25,14 @@
|
||||
@@ -23,6 +23,14 @@
|
||||
|
||||
public void func_147383_a(C00Handshake p_147383_1_)
|
||||
{
|
||||
+ if (!FMLCommonHandler.instance().shouldAllowPlayerLogins())
|
||||
+ if (!cpw.mods.fml.common.FMLCommonHandler.instance().shouldAllowPlayerLogins())
|
||||
+ {
|
||||
+ ChatComponentText chatcomponenttext = new ChatComponentText("Server is still starting! Please wait before reconnecting.");
|
||||
+ this.field_147386_b.func_150725_a(new S00PacketDisconnect(chatcomponenttext), new GenericFutureListener[0]);
|
||||
+ this.field_147386_b.func_179290_a(new S00PacketDisconnect(chatcomponenttext));
|
||||
+ this.field_147386_b.func_150718_a(chatcomponenttext);
|
||||
+ return;
|
||||
+ }
|
||||
|
|
|
@ -1,29 +1,20 @@
|
|||
--- ../src-base/minecraft/net/minecraft/server/network/NetHandlerLoginServer.java
|
||||
+++ ../src-work/minecraft/net/minecraft/server/network/NetHandlerLoginServer.java
|
||||
@@ -3,6 +3,8 @@
|
||||
import com.google.common.base.Charsets;
|
||||
import com.mojang.authlib.GameProfile;
|
||||
import com.mojang.authlib.exceptions.AuthenticationUnavailableException;
|
||||
+
|
||||
+import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import io.netty.util.concurrent.GenericFutureListener;
|
||||
import java.math.BigInteger;
|
||||
import java.security.PrivateKey;
|
||||
@@ -58,7 +60,7 @@
|
||||
@@ -62,7 +62,7 @@
|
||||
this.func_147326_c();
|
||||
}
|
||||
|
||||
- if (this.field_147336_h++ == 600)
|
||||
+ if (this.field_147336_h++ == FMLNetworkHandler.LOGIN_TIMEOUT)
|
||||
+ if (this.field_147336_h++ == cpw.mods.fml.common.network.internal.FMLNetworkHandler.LOGIN_TIMEOUT)
|
||||
{
|
||||
this.func_147322_a("Took too long to log in");
|
||||
}
|
||||
@@ -96,7 +98,7 @@
|
||||
{
|
||||
this.field_147328_g = NetHandlerLoginServer.LoginState.ACCEPTED;
|
||||
this.field_147333_a.func_150725_a(new S02PacketLoginSuccess(this.field_147337_i), new GenericFutureListener[0]);
|
||||
@@ -113,7 +113,7 @@
|
||||
}
|
||||
|
||||
this.field_147333_a.func_179290_a(new S02PacketLoginSuccess(this.field_147337_i));
|
||||
- this.field_147327_f.func_71203_ab().func_72355_a(this.field_147333_a, this.field_147327_f.func_71203_ab().func_148545_a(this.field_147337_i));
|
||||
+ FMLNetworkHandler.fmlServerHandshake(this.field_147327_f.func_71203_ab(), this.field_147333_a, this.field_147327_f.func_71203_ab().func_148545_a(this.field_147337_i));
|
||||
+ cpw.mods.fml.common.network.internal.FMLNetworkHandler.fmlServerHandshake(this.field_147327_f.func_71203_ab(), this.field_147333_a, this.field_147327_f.func_71203_ab().func_148545_a(this.field_147337_i));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,28 +1,6 @@
|
|||
--- ../src-base/minecraft/net/minecraft/tileentity/TileEntity.java
|
||||
+++ ../src-work/minecraft/net/minecraft/tileentity/TileEntity.java
|
||||
@@ -1,10 +1,12 @@
|
||||
package net.minecraft.tileentity;
|
||||
|
||||
+import cpw.mods.fml.common.FMLLog;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.Callable;
|
||||
+
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockJukebox;
|
||||
import net.minecraft.crash.CrashReportCategory;
|
||||
@@ -12,6 +14,8 @@
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.Packet;
|
||||
import net.minecraft.world.World;
|
||||
+
|
||||
+import org.apache.logging.log4j.Level;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
@@ -87,9 +91,10 @@
|
||||
@@ -89,9 +89,10 @@
|
||||
{
|
||||
TileEntity tileentity = null;
|
||||
|
||||
|
@ -34,29 +12,29 @@
|
|||
|
||||
if (oclass != null)
|
||||
{
|
||||
@@ -103,7 +108,17 @@
|
||||
|
||||
if (tileentity != null)
|
||||
@@ -109,7 +110,17 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
+ try
|
||||
+ {
|
||||
tileentity.func_145839_a(p_145827_0_);
|
||||
field_145852_a.warn("Skipping BlockEntity with id " + p_145827_0_.func_74779_i("id"));
|
||||
+ }
|
||||
+ catch (Exception ex)
|
||||
+ {
|
||||
+ FMLLog.log(Level.ERROR, ex,
|
||||
+ cpw.mods.fml.common.FMLLog.log(org.apache.logging.log4j.Level.ERROR, ex,
|
||||
+ "A TileEntity %s(%s) has thrown an exception during loading, its state cannot be restored. Report this to the mod author",
|
||||
+ p_145827_0_.func_74779_i("id"), oclass.getName());
|
||||
+ tileentity = null;
|
||||
+ }
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -137,7 +152,6 @@
|
||||
|
||||
return tileentity;
|
||||
@@ -141,7 +152,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
- @SideOnly(Side.CLIENT)
|
||||
public double func_145835_a(double p_145835_1_, double p_145835_3_, double p_145835_5_)
|
||||
{
|
||||
double d3 = (double)this.field_145851_c + 0.5D - p_145835_1_;
|
||||
double d3 = (double)this.field_174879_c.func_177958_n() + 0.5D - p_145835_1_;
|
||||
|
|
|
@ -1,13 +1,6 @@
|
|||
--- ../src-base/minecraft/net/minecraft/tileentity/TileEntityFurnace.java
|
||||
+++ ../src-work/minecraft/net/minecraft/tileentity/TileEntityFurnace.java
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.minecraft.tileentity;
|
||||
|
||||
+import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
@@ -322,7 +323,15 @@
|
||||
@@ -348,7 +348,15 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -20,7 +13,7 @@
|
|||
+ if (item == Items.field_151129_at) return 20000;
|
||||
+ if (item == Item.func_150898_a(Blocks.field_150345_g)) return 100;
|
||||
+ if (item == Items.field_151072_bj) return 2400;
|
||||
+ return GameRegistry.getFuelValue(p_145952_0_);
|
||||
+ return cpw.mods.fml.common.registry.GameRegistry.getFuelValue(p_145952_0_);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
--- ../src-base/minecraft/net/minecraft/util/MessageSerializer.java
|
||||
+++ ../src-work/minecraft/net/minecraft/util/MessageSerializer.java
|
||||
@@ -49,7 +49,7 @@
|
||||
{
|
||||
if (p_encode_2_ instanceof S0CPacketSpawnPlayer)
|
||||
{
|
||||
- p_encode_2_ = p_encode_2_;
|
||||
+ //p_encode_2_ = p_encode_2_; FML: Kill warning
|
||||
}
|
||||
|
||||
p_encode_2_.func_148840_b(packetbuffer);
|
|
@ -1,13 +1,26 @@
|
|||
--- ../src-base/minecraft/net/minecraft/util/ResourceLocation.java
|
||||
+++ ../src-work/minecraft/net/minecraft/util/ResourceLocation.java
|
||||
@@ -1,10 +1,7 @@
|
||||
@@ -1,7 +1,5 @@
|
||||
package net.minecraft.util;
|
||||
|
||||
-import cpw.mods.fml.relauncher.Side;
|
||||
-import cpw.mods.fml.relauncher.SideOnly;
|
||||
import org.apache.commons.lang3.Validate;
|
||||
|
||||
-@SideOnly(Side.CLIENT)
|
||||
public class ResourceLocation
|
||||
{
|
||||
private final String field_110626_a;
|
||||
@@ -22,7 +20,6 @@
|
||||
this(0, func_177516_a(p_i1293_1_));
|
||||
}
|
||||
|
||||
- @SideOnly(Side.CLIENT)
|
||||
public ResourceLocation(String p_i1292_1_, String p_i1292_2_)
|
||||
{
|
||||
this(0, new String[] {p_i1292_1_, p_i1292_2_});
|
||||
@@ -51,7 +48,6 @@
|
||||
return this.field_110625_b;
|
||||
}
|
||||
|
||||
- @SideOnly(Side.CLIENT)
|
||||
public String func_110624_b()
|
||||
{
|
||||
return this.field_110626_a;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ../src-base/minecraft/net/minecraft/world/World.java
|
||||
+++ ../src-work/minecraft/net/minecraft/world/World.java
|
||||
@@ -1800,14 +1800,14 @@
|
||||
@@ -1626,8 +1626,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -8,16 +8,17 @@
|
|||
-
|
||||
if (!this.field_147483_b.isEmpty())
|
||||
{
|
||||
this.field_147482_g.removeAll(this.field_147483_b);
|
||||
this.field_175730_i.removeAll(this.field_147483_b);
|
||||
@@ -1635,6 +1633,8 @@
|
||||
this.field_147483_b.clear();
|
||||
}
|
||||
|
||||
+ this.field_147481_N = false;
|
||||
+ this.field_147481_N = false; //FML Move below remove to prevent CMEs
|
||||
+
|
||||
this.field_72984_F.func_76318_c("pendingBlockEntities");
|
||||
|
||||
if (!this.field_147484_a.isEmpty())
|
||||
@@ -3598,7 +3598,7 @@
|
||||
@@ -3429,7 +3429,7 @@
|
||||
@SideOnly(Side.CLIENT)
|
||||
public double func_72919_O()
|
||||
{
|
||||
|
@ -25,4 +26,4 @@
|
|||
+ return this.field_72986_A.func_76067_t().getHorizon(this);
|
||||
}
|
||||
|
||||
public CrashReportCategory func_72914_a(CrashReport p_72914_1_)
|
||||
public void func_175715_c(int p_175715_1_, BlockPos p_175715_2_, int p_175715_3_)
|
||||
|
|
|
@ -1,13 +1,19 @@
|
|||
--- ../src-base/minecraft/net/minecraft/world/WorldProvider.java
|
||||
+++ ../src-work/minecraft/net/minecraft/world/WorldProvider.java
|
||||
@@ -50,20 +50,12 @@
|
||||
@@ -52,26 +52,12 @@
|
||||
|
||||
protected void func_76572_b()
|
||||
{
|
||||
- if (this.field_76579_a.func_72912_H().func_76067_t() == WorldType.field_77138_c)
|
||||
- WorldType worldtype = this.field_76579_a.func_72912_H().func_76067_t();
|
||||
-
|
||||
- if (worldtype == WorldType.field_77138_c)
|
||||
- {
|
||||
- FlatGeneratorInfo flatgeneratorinfo = FlatGeneratorInfo.func_82651_a(this.field_76579_a.func_72912_H().func_82571_y());
|
||||
- this.field_76578_c = new WorldChunkManagerHell(BiomeGenBase.func_150568_d(flatgeneratorinfo.func_82648_a()), 0.5F);
|
||||
- this.field_76578_c = new WorldChunkManagerHell(BiomeGenBase.func_180276_a(flatgeneratorinfo.func_82648_a(), BiomeGenBase.field_180279_ad), 0.5F);
|
||||
- }
|
||||
- else if (worldtype == WorldType.field_180272_g)
|
||||
- {
|
||||
- this.field_76578_c = new WorldChunkManagerHell(BiomeGenBase.field_76772_c, 0.0F);
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
|
@ -18,12 +24,12 @@
|
|||
|
||||
public IChunkProvider func_76555_c()
|
||||
{
|
||||
- return (IChunkProvider)(this.field_76577_b == WorldType.field_77138_c ? new ChunkProviderFlat(this.field_76579_a, this.field_76579_a.func_72905_C(), this.field_76579_a.func_72912_H().func_76089_r(), this.field_82913_c) : new ChunkProviderGenerate(this.field_76579_a, this.field_76579_a.func_72905_C(), this.field_76579_a.func_72912_H().func_76089_r()));
|
||||
- return (IChunkProvider)(this.field_76577_b == WorldType.field_77138_c ? new ChunkProviderFlat(this.field_76579_a, this.field_76579_a.func_72905_C(), this.field_76579_a.func_72912_H().func_76089_r(), this.field_82913_c) : (this.field_76577_b == WorldType.field_180272_g ? new ChunkProviderDebug(this.field_76579_a) : (this.field_76577_b == WorldType.field_180271_f ? new ChunkProviderGenerate(this.field_76579_a, this.field_76579_a.func_72905_C(), this.field_76579_a.func_72912_H().func_76089_r(), this.field_82913_c) : new ChunkProviderGenerate(this.field_76579_a, this.field_76579_a.func_72905_C(), this.field_76579_a.func_72912_H().func_76089_r(), this.field_82913_c))));
|
||||
+ return field_76577_b.getChunkGenerator(field_76579_a, field_82913_c);
|
||||
}
|
||||
|
||||
public boolean func_76566_a(int p_76566_1_, int p_76566_2_)
|
||||
@@ -179,19 +171,19 @@
|
||||
@@ -177,13 +163,13 @@
|
||||
|
||||
public int func_76557_i()
|
||||
{
|
||||
|
@ -31,13 +37,6 @@
|
|||
+ return this.field_76577_b.getMinimumSpawnHeight(this.field_76579_a);
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public boolean func_76564_j()
|
||||
{
|
||||
- return this.field_76577_b != WorldType.field_77138_c && !this.field_76576_e;
|
||||
+ return this.field_76577_b.hasVoidParticles(this.field_76576_e);
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public double func_76565_k()
|
||||
{
|
||||
|
|
|
@ -1,41 +1,32 @@
|
|||
--- ../src-base/minecraft/net/minecraft/world/WorldType.java
|
||||
+++ ../src-work/minecraft/net/minecraft/world/WorldType.java
|
||||
@@ -1,5 +1,14 @@
|
||||
package net.minecraft.world;
|
||||
|
||||
+import java.util.Random;
|
||||
+
|
||||
+import net.minecraft.world.biome.BiomeGenBase;
|
||||
+import net.minecraft.world.biome.WorldChunkManager;
|
||||
+import net.minecraft.world.biome.WorldChunkManagerHell;
|
||||
+import net.minecraft.world.chunk.IChunkProvider;
|
||||
+import net.minecraft.world.gen.ChunkProviderFlat;
|
||||
+import net.minecraft.world.gen.ChunkProviderGenerate;
|
||||
+import net.minecraft.world.gen.FlatGeneratorInfo;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
@@ -112,4 +121,70 @@
|
||||
@@ -114,4 +114,53 @@
|
||||
this.field_151361_l = true;
|
||||
return this;
|
||||
}
|
||||
+
|
||||
+ public WorldChunkManager getChunkManager(World world)
|
||||
+ public net.minecraft.world.biome.WorldChunkManager getChunkManager(World world)
|
||||
+ {
|
||||
+ if (this == field_77138_c)
|
||||
+ {
|
||||
+ FlatGeneratorInfo flatgeneratorinfo = FlatGeneratorInfo.func_82651_a(world.func_72912_H().func_82571_y());
|
||||
+ return new WorldChunkManagerHell(BiomeGenBase.func_150568_d(flatgeneratorinfo.func_82648_a()), 0.5F);
|
||||
+ net.minecraft.world.gen.FlatGeneratorInfo flatgeneratorinfo = net.minecraft.world.gen.FlatGeneratorInfo.func_82651_a(world.func_72912_H().func_82571_y());
|
||||
+ return new net.minecraft.world.biome.WorldChunkManagerHell(net.minecraft.world.biome.BiomeGenBase.func_180276_a(flatgeneratorinfo.func_82648_a(), net.minecraft.world.biome.BiomeGenBase.field_180279_ad), 0.5F);
|
||||
+ }
|
||||
+ else if (this == field_180272_g)
|
||||
+ {
|
||||
+ return new net.minecraft.world.biome.WorldChunkManagerHell(net.minecraft.world.biome.BiomeGenBase.field_76772_c, 0.0F);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ return new WorldChunkManager(world);
|
||||
+ return new net.minecraft.world.biome.WorldChunkManager(world);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ public IChunkProvider getChunkGenerator(World world, String generatorOptions)
|
||||
+ public net.minecraft.world.chunk.IChunkProvider getChunkGenerator(World world, String generatorOptions)
|
||||
+ {
|
||||
+ return (this == field_77138_c ? new ChunkProviderFlat(world, world.func_72905_C(), world.func_72912_H().func_76089_r(), generatorOptions) : new ChunkProviderGenerate(world, world.func_72905_C(), world.func_72912_H().func_76089_r()));
|
||||
+ if (this == field_77138_c) return new net.minecraft.world.gen.ChunkProviderFlat(world, world.func_72905_C(), world.func_72912_H().func_76089_r(), generatorOptions);
|
||||
+ if (this == field_180272_g) return new net.minecraft.world.gen.ChunkProviderDebug(world);
|
||||
+ return new net.minecraft.world.gen.ChunkProviderGenerate(world, world.func_72905_C(), world.func_72912_H().func_76089_r(), generatorOptions);
|
||||
+ }
|
||||
+
|
||||
+ public int getMinimumSpawnHeight(World world)
|
||||
|
@ -48,35 +39,12 @@
|
|||
+ return this == field_77138_c ? 0.0D : 63.0D;
|
||||
+ }
|
||||
+
|
||||
+ public boolean hasVoidParticles(boolean flag)
|
||||
+ {
|
||||
+ return this != field_77138_c && !flag;
|
||||
+ }
|
||||
+
|
||||
+ public double voidFadeMagnitude()
|
||||
+ {
|
||||
+ return this == field_77138_c ? 1.0D : 0.03125D;
|
||||
+ }
|
||||
+
|
||||
+/* public BiomeGenBase[] getBiomesForWorldType() {
|
||||
+ return biomesForWorldType;
|
||||
+ }
|
||||
+
|
||||
+ public void addNewBiome(BiomeGenBase biome)
|
||||
+ {
|
||||
+ Set<BiomeGenBase> newBiomesForWorld = Sets.newLinkedHashSet(Arrays.asList(biomesForWorldType));
|
||||
+ newBiomesForWorld.add(biome);
|
||||
+ biomesForWorldType = newBiomesForWorld.toArray(new BiomeGenBase[0]);
|
||||
+ }
|
||||
+
|
||||
+ public void removeBiome(BiomeGenBase biome)
|
||||
+ {
|
||||
+ Set<BiomeGenBase> newBiomesForWorld = Sets.newLinkedHashSet(Arrays.asList(biomesForWorldType));
|
||||
+ newBiomesForWorld.remove(biome);
|
||||
+ biomesForWorldType = newBiomesForWorld.toArray(new BiomeGenBase[0]);
|
||||
+ }
|
||||
+*/
|
||||
+ public boolean handleSlimeSpawnReduction(Random random, World world)
|
||||
+ public boolean handleSlimeSpawnReduction(java.util.Random random, World world)
|
||||
+ {
|
||||
+ return this == field_77138_c ? random.nextInt(4) != 1 : false;
|
||||
+ }
|
||||
|
|
|
@ -1,65 +1,41 @@
|
|||
--- ../src-base/minecraft/net/minecraft/world/chunk/storage/AnvilChunkLoader.java
|
||||
+++ ../src-work/minecraft/net/minecraft/world/chunk/storage/AnvilChunkLoader.java
|
||||
@@ -9,6 +9,7 @@
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
+
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityList;
|
||||
@@ -24,9 +25,13 @@
|
||||
import net.minecraft.world.chunk.NibbleArray;
|
||||
import net.minecraft.world.storage.IThreadedFileIO;
|
||||
import net.minecraft.world.storage.ThreadedFileIOBase;
|
||||
+
|
||||
+import org.apache.logging.log4j.Level;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
+import cpw.mods.fml.common.FMLLog;
|
||||
+
|
||||
public class AnvilChunkLoader implements IChunkLoader, IThreadedFileIO
|
||||
{
|
||||
private static final Logger field_151505_a = LogManager.getLogger();
|
||||
@@ -260,11 +265,20 @@
|
||||
Entity entity = (Entity)iterator1.next();
|
||||
@@ -287,11 +287,20 @@
|
||||
Entity entity = (Entity)iterator.next();
|
||||
nbttagcompound1 = new NBTTagCompound();
|
||||
|
||||
- if (entity.func_70039_c(nbttagcompound1))
|
||||
+ try
|
||||
+ {
|
||||
if (entity.func_70039_c(nbttagcompound1))
|
||||
{
|
||||
- p_75820_1_.field_76644_m = true;
|
||||
- nbttaglist2.func_74742_a(nbttagcompound1);
|
||||
+ if (entity.func_70039_c(nbttagcompound1))
|
||||
+ {
|
||||
+ p_75820_1_.field_76644_m = true;
|
||||
+ nbttaglist2.func_74742_a(nbttagcompound1);
|
||||
+ }
|
||||
p_75820_1_.func_177409_g(true);
|
||||
nbttaglist1.func_74742_a(nbttagcompound1);
|
||||
}
|
||||
+ }
|
||||
+ catch (Exception e)
|
||||
+ {
|
||||
+ FMLLog.log(Level.ERROR, e,
|
||||
+ cpw.mods.fml.common.FMLLog.log(org.apache.logging.log4j.Level.ERROR, e,
|
||||
+ "An Entity type %s has thrown an exception trying to write state. It will not persist. Report this to the mod author",
|
||||
+ entity.getClass().getName());
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -276,8 +290,16 @@
|
||||
@@ -303,8 +312,17 @@
|
||||
{
|
||||
TileEntity tileentity = (TileEntity)iterator1.next();
|
||||
TileEntity tileentity = (TileEntity)iterator.next();
|
||||
nbttagcompound1 = new NBTTagCompound();
|
||||
+ try {
|
||||
+ try
|
||||
+ {
|
||||
tileentity.func_145841_b(nbttagcompound1);
|
||||
nbttaglist3.func_74742_a(nbttagcompound1);
|
||||
nbttaglist2.func_74742_a(nbttagcompound1);
|
||||
+ }
|
||||
+ catch (Exception e)
|
||||
+ {
|
||||
+ FMLLog.log(Level.ERROR, e,
|
||||
+ cpw.mods.fml.common.FMLLog.log(org.apache.logging.log4j.Level.ERROR, e,
|
||||
+ "A TileEntity type %s has throw an exception trying to write state. It will not persist. Report this to the mod author",
|
||||
+ tileentity.getClass().getName());
|
||||
+ }
|
||||
}
|
||||
|
||||
p_75820_3_.func_74782_a("TileEntities", nbttaglist3);
|
||||
p_75820_3_.func_74782_a("TileEntities", nbttaglist2);
|
||||
|
|
|
@ -1,18 +1,10 @@
|
|||
--- ../src-base/minecraft/net/minecraft/world/gen/ChunkProviderServer.java
|
||||
+++ ../src-work/minecraft/net/minecraft/world/gen/ChunkProviderServer.java
|
||||
@@ -1,6 +1,7 @@
|
||||
package net.minecraft.world.gen;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
+import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
@@ -216,6 +217,7 @@
|
||||
@@ -209,6 +209,7 @@
|
||||
if (this.field_73246_d != null)
|
||||
{
|
||||
this.field_73246_d.func_73153_a(p_73153_1_, p_73153_2_, p_73153_3_);
|
||||
+ GameRegistry.generateWorld(p_73153_2_, p_73153_3_, field_73251_h, field_73246_d, p_73153_1_);
|
||||
+ cpw.mods.fml.common.registry.GameRegistry.generateWorld(p_73153_2_, p_73153_3_, field_73251_h, field_73246_d, p_73153_1_);
|
||||
chunk.func_76630_e();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,30 +1,21 @@
|
|||
--- ../src-base/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java
|
||||
+++ ../src-work/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java
|
||||
@@ -4,6 +4,8 @@
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
+
|
||||
+import cpw.mods.fml.common.registry.VillagerRegistry;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.passive.EntityVillager;
|
||||
@@ -50,6 +52,8 @@
|
||||
@@ -59,6 +59,8 @@
|
||||
arraylist.add(new StructureVillagePieces.PieceWeight(StructureVillagePieces.Field2.class, 3, MathHelper.func_76136_a(p_75084_0_, 2 + p_75084_1_, 4 + p_75084_1_ * 2)));
|
||||
arraylist.add(new StructureVillagePieces.PieceWeight(StructureVillagePieces.House2.class, 15, MathHelper.func_76136_a(p_75084_0_, 0, 1 + p_75084_1_)));
|
||||
arraylist.add(new StructureVillagePieces.PieceWeight(StructureVillagePieces.House3.class, 8, MathHelper.func_76136_a(p_75084_0_, 0 + p_75084_1_, 3 + p_75084_1_ * 2)));
|
||||
+ VillagerRegistry.addExtraVillageComponents(arraylist, p_75084_0_, p_75084_1_);
|
||||
+ cpw.mods.fml.common.registry.VillagerRegistry.addExtraVillageComponents(arraylist, p_75084_0_, p_75084_1_);
|
||||
+
|
||||
Iterator iterator = arraylist.iterator();
|
||||
|
||||
while (iterator.hasNext())
|
||||
@@ -123,6 +127,10 @@
|
||||
@@ -132,6 +134,10 @@
|
||||
{
|
||||
object = StructureVillagePieces.House3.func_74921_a(p_75083_0_, p_75083_2_, p_75083_3_, p_75083_4_, p_75083_5_, p_75083_6_, p_75083_7_, p_75083_8_);
|
||||
object = StructureVillagePieces.House3.func_175849_a(p_176065_0_, p_176065_2_, p_176065_3_, p_176065_4_, p_176065_5_, p_176065_6_, p_176065_7_, p_176065_8_);
|
||||
}
|
||||
+ else
|
||||
+ {
|
||||
+ object = VillagerRegistry.getVillageComponent(p_75083_1_, p_75083_0_ , p_75083_2_, p_75083_3_, p_75083_4_, p_75083_5_, p_75083_6_, p_75083_7_, p_75083_8_);
|
||||
+ object = cpw.mods.fml.common.registry.VillagerRegistry.getVillageComponent(p_176065_1_, p_176065_0_ , p_176065_2_, p_176065_3_, p_176065_4_, p_176065_5_, p_176065_6_, p_176065_7_, p_176065_8_);
|
||||
+ }
|
||||
|
||||
return (StructureVillagePieces.Village)object;
|
||||
|
|
|
@ -1,43 +1,34 @@
|
|||
--- ../src-base/minecraft/net/minecraft/world/storage/MapData.java
|
||||
+++ ../src-work/minecraft/net/minecraft/world/storage/MapData.java
|
||||
@@ -10,7 +10,7 @@
|
||||
import java.util.Map;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
-import net.minecraft.nbt.NBTTagCompound;
|
||||
+import net.minecraft.nbt.*;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.WorldSavedData;
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
@@ -22,7 +22,7 @@
|
||||
{
|
||||
public int field_76201_a;
|
||||
public int field_76199_b;
|
||||
- public byte field_76200_c;
|
||||
+ public int field_76200_c;
|
||||
+ public int field_76200_c; //FML byte -> int
|
||||
public byte field_76197_d;
|
||||
public byte[] field_76198_e = new byte[16384];
|
||||
public List field_76196_g = new ArrayList();
|
||||
@@ -33,7 +33,17 @@
|
||||
public List field_76196_g = Lists.newArrayList();
|
||||
@@ -46,7 +46,17 @@
|
||||
|
||||
public void func_76184_a(NBTTagCompound p_76184_1_)
|
||||
{
|
||||
- this.field_76200_c = p_76184_1_.func_74771_c("dimension");
|
||||
+ NBTBase dimension = p_76184_1_.func_74781_a("dimension");
|
||||
+ net.minecraft.nbt.NBTBase dimension = p_76184_1_.func_74781_a("dimension");
|
||||
+
|
||||
+ if (dimension instanceof NBTTagByte)
|
||||
+ if (dimension instanceof net.minecraft.nbt.NBTTagByte)
|
||||
+ {
|
||||
+ this.field_76200_c = ((NBTTagByte)dimension).func_150290_f();
|
||||
+ this.field_76200_c = ((net.minecraft.nbt.NBTTagByte)dimension).func_150290_f();
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ this.field_76200_c = ((NBTTagInt)dimension).func_150287_d();
|
||||
+ this.field_76200_c = ((net.minecraft.nbt.NBTTagInt)dimension).func_150287_d();
|
||||
+ }
|
||||
+
|
||||
this.field_76201_a = p_76184_1_.func_74762_e("xCenter");
|
||||
this.field_76199_b = p_76184_1_.func_74762_e("zCenter");
|
||||
this.field_76197_d = p_76184_1_.func_74771_c("scale");
|
||||
@@ -84,7 +94,7 @@
|
||||
@@ -87,7 +97,7 @@
|
||||
|
||||
public void func_76187_b(NBTTagCompound p_76187_1_)
|
||||
{
|
||||
|
|
|
@ -1,16 +1,6 @@
|
|||
--- ../src-base/minecraft/net/minecraft/world/storage/SaveHandler.java
|
||||
+++ ../src-work/minecraft/net/minecraft/world/storage/SaveHandler.java
|
||||
@@ -6,6 +6,9 @@
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
+
|
||||
+import cpw.mods.fml.common.FMLCommonHandler;
|
||||
+import cpw.mods.fml.common.StartupQuery;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.nbt.CompressedStreamTools;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
@@ -107,20 +110,29 @@
|
||||
@@ -107,20 +107,29 @@
|
||||
NBTTagCompound nbttagcompound;
|
||||
NBTTagCompound nbttagcompound1;
|
||||
|
||||
|
@ -22,12 +12,11 @@
|
|||
{
|
||||
nbttagcompound = CompressedStreamTools.func_74796_a(new FileInputStream(file1));
|
||||
nbttagcompound1 = nbttagcompound.func_74775_l("Data");
|
||||
- return new WorldInfo(nbttagcompound1);
|
||||
+ worldInfo = new WorldInfo(nbttagcompound1);
|
||||
+ FMLCommonHandler.instance().handleWorldDataLoad(this, worldInfo, nbttagcompound);
|
||||
+ return worldInfo;
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().handleWorldDataLoad(this, worldInfo, nbttagcompound);
|
||||
return new WorldInfo(nbttagcompound1);
|
||||
}
|
||||
+ catch (StartupQuery.AbortedException e)
|
||||
+ catch (cpw.mods.fml.common.StartupQuery.AbortedException e)
|
||||
+ {
|
||||
+ throw e;
|
||||
+ }
|
||||
|
@ -37,40 +26,39 @@
|
|||
}
|
||||
}
|
||||
|
||||
+ FMLCommonHandler.instance().confirmBackupLevelDatUse(this);
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().confirmBackupLevelDatUse(this);
|
||||
file1 = new File(this.field_75770_b, "level.dat_old");
|
||||
|
||||
if (file1.exists())
|
||||
@@ -129,8 +141,14 @@
|
||||
@@ -129,7 +138,13 @@
|
||||
{
|
||||
nbttagcompound = CompressedStreamTools.func_74796_a(new FileInputStream(file1));
|
||||
nbttagcompound1 = nbttagcompound.func_74775_l("Data");
|
||||
- return new WorldInfo(nbttagcompound1);
|
||||
+ worldInfo = new WorldInfo(nbttagcompound1);
|
||||
+ FMLCommonHandler.instance().handleWorldDataLoad(this, worldInfo, nbttagcompound);
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().handleWorldDataLoad(this, worldInfo, nbttagcompound);
|
||||
+ return worldInfo;
|
||||
}
|
||||
+ catch (StartupQuery.AbortedException e)
|
||||
+ }
|
||||
+ catch (cpw.mods.fml.common.StartupQuery.AbortedException e)
|
||||
+ {
|
||||
+ throw e;
|
||||
+ }
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
exception.printStackTrace();
|
||||
@@ -146,6 +164,8 @@
|
||||
@@ -146,6 +161,8 @@
|
||||
NBTTagCompound nbttagcompound2 = new NBTTagCompound();
|
||||
nbttagcompound2.func_74782_a("Data", nbttagcompound1);
|
||||
|
||||
+ FMLCommonHandler.instance().handleWorldDataSave(this, p_75755_1_, nbttagcompound2);
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().handleWorldDataSave(this, p_75755_1_, nbttagcompound2);
|
||||
+
|
||||
try
|
||||
{
|
||||
File file1 = new File(this.field_75770_b, "level.dat_new");
|
||||
@@ -184,6 +204,8 @@
|
||||
@@ -184,6 +201,8 @@
|
||||
NBTTagCompound nbttagcompound1 = new NBTTagCompound();
|
||||
nbttagcompound1.func_74782_a("Data", nbttagcompound);
|
||||
|
||||
+ FMLCommonHandler.instance().handleWorldDataSave(this, p_75761_1_, nbttagcompound1);
|
||||
+ cpw.mods.fml.common.FMLCommonHandler.instance().handleWorldDataSave(this, p_75761_1_, nbttagcompound1);
|
||||
+
|
||||
try
|
||||
{
|
||||
|
|
|
@ -1,26 +1,14 @@
|
|||
--- ../src-base/minecraft/net/minecraft/world/storage/WorldInfo.java
|
||||
+++ ../src-work/minecraft/net/minecraft/world/storage/WorldInfo.java
|
||||
@@ -2,8 +2,11 @@
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
+
|
||||
+import java.util.Map;
|
||||
import java.util.concurrent.Callable;
|
||||
import net.minecraft.crash.CrashReportCategory;
|
||||
+import net.minecraft.nbt.NBTBase;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.world.GameRules;
|
||||
@@ -36,6 +39,7 @@
|
||||
private boolean field_76110_t;
|
||||
private boolean field_76109_u;
|
||||
@@ -52,6 +52,7 @@
|
||||
private int field_176155_J;
|
||||
private GameRules field_82577_x;
|
||||
+ private Map<String, NBTBase> additionalProperties;
|
||||
private static final String __OBFID = "CL_00000587";
|
||||
+ private java.util.Map<String, net.minecraft.nbt.NBTBase> additionalProperties;
|
||||
|
||||
protected WorldInfo()
|
||||
@@ -532,4 +536,24 @@
|
||||
{
|
||||
@@ -803,4 +804,24 @@
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -31,7 +19,7 @@
|
|||
+ * Used by Forge to store the dimensions available to a world
|
||||
+ * @param additionalProperties
|
||||
+ */
|
||||
+ public void setAdditionalProperties(Map<String,NBTBase> additionalProperties)
|
||||
+ public void setAdditionalProperties(java.util.Map<String,net.minecraft.nbt.NBTBase> additionalProperties)
|
||||
+ {
|
||||
+ // one time set for this
|
||||
+ if (this.additionalProperties == null)
|
||||
|
@ -40,7 +28,7 @@
|
|||
+ }
|
||||
+ }
|
||||
+
|
||||
+ public NBTBase getAdditionalProperty(String additionalProperty)
|
||||
+ public net.minecraft.nbt.NBTBase getAdditionalProperty(String additionalProperty)
|
||||
+ {
|
||||
+ return this.additionalProperties!=null? this.additionalProperties.get(additionalProperty) : null;
|
||||
+ }
|
||||
|
|
|
@ -14,6 +14,7 @@ package cpw.mods.fml.client;
|
|||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
@ -26,7 +27,7 @@ import java.util.concurrent.CountDownLatch;
|
|||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.entity.EntityClientPlayerMP;
|
||||
import net.minecraft.client.entity.EntityPlayerSP;
|
||||
import net.minecraft.client.gui.Gui;
|
||||
import net.minecraft.client.gui.GuiIngameMenu;
|
||||
import net.minecraft.client.gui.GuiMainMenu;
|
||||
|
@ -130,10 +131,8 @@ public class FMLClientHandler implements IFMLSidedHandler
|
|||
|
||||
private DummyModContainer optifineContainer;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private boolean guiLoaded;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private boolean serverIsRunning;
|
||||
|
||||
private MissingModsException modsMissing;
|
||||
|
@ -152,7 +151,6 @@ public class FMLClientHandler implements IFMLSidedHandler
|
|||
|
||||
private List<IResourcePack> resourcePackList;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private IReloadableResourceManager resourceManager;
|
||||
|
||||
private Map<String, IResourcePack> resourcePackMap;
|
||||
|
@ -301,7 +299,7 @@ public class FMLClientHandler implements IFMLSidedHandler
|
|||
|
||||
// Reload resources
|
||||
client.refreshResources();
|
||||
RenderingRegistry.instance().loadEntityRenderers((Map<Class<? extends Entity>, Render>)RenderManager.instance.entityRenderMap);
|
||||
//RenderingRegistry.instance().loadEntityRenderers((Map<Class<? extends Entity>, Render>)Minecraft.getMinecraft().func_175598_ae().entityRenderMap);
|
||||
guiFactories = HashBiMap.create();
|
||||
for (ModContainer mc : Loader.instance().getActiveModList())
|
||||
{
|
||||
|
@ -326,7 +324,6 @@ public class FMLClientHandler implements IFMLSidedHandler
|
|||
client.gameSettings.loadOptions(); //Reload options to load any mod added keybindings.
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public void extendModList()
|
||||
{
|
||||
@SuppressWarnings("unchecked")
|
||||
|
@ -463,16 +460,16 @@ public class FMLClientHandler implements IFMLSidedHandler
|
|||
{
|
||||
if (Thread.interrupted()) throw new InterruptedException();
|
||||
|
||||
client.loadingScreen.resetProgresAndWorkingMessage("");
|
||||
client.loadingScreen.displayLoadingString("");
|
||||
|
||||
Thread.sleep(50);
|
||||
}
|
||||
|
||||
client.loadingScreen.resetProgresAndWorkingMessage(""); // make sure the blank screen is being drawn at the end
|
||||
client.loadingScreen.displayLoadingString(""); // make sure the blank screen is being drawn at the end
|
||||
}
|
||||
}
|
||||
|
||||
public boolean handleLoadingScreen(ScaledResolution scaledResolution)
|
||||
public boolean handleLoadingScreen(ScaledResolution scaledResolution) throws IOException
|
||||
{
|
||||
if (client.currentScreen instanceof GuiNotification)
|
||||
{
|
||||
|
@ -497,7 +494,7 @@ public class FMLClientHandler implements IFMLSidedHandler
|
|||
return client.theWorld;
|
||||
}
|
||||
|
||||
public EntityClientPlayerMP getClientPlayerEntity()
|
||||
public EntityPlayerSP getClientPlayerEntity()
|
||||
{
|
||||
return client.thePlayer;
|
||||
}
|
||||
|
@ -630,7 +627,6 @@ public class FMLClientHandler implements IFMLSidedHandler
|
|||
|
||||
public void startIntegratedServer(String id, String name, WorldSettings settings)
|
||||
{
|
||||
playClientBlock = new CountDownLatch(1);
|
||||
}
|
||||
|
||||
public File getSavesDir()
|
||||
|
@ -774,10 +770,10 @@ public class FMLClientHandler implements IFMLSidedHandler
|
|||
return null;
|
||||
}
|
||||
this.client.getTextureManager().bindTexture(iconSheet);
|
||||
Gui.func_146110_a(x + width - 18, y + 10, 0, (float)idx, 16, 16, 256.0f, 256.0f);
|
||||
Gui.drawModalRectWithCustomSizedTexture(x + width - 18, y + 10, 0, (float)idx, 16, 16, 256.0f, 256.0f);
|
||||
if (blocked)
|
||||
{
|
||||
Gui.func_146110_a(x + width - 18, y + 10, 0, 80, 16, 16, 256.0f, 256.0f);
|
||||
Gui.drawModalRectWithCustomSizedTexture(x + width - 18, y + 10, 0, 80, 16, 16, 256.0f, 256.0f);
|
||||
}
|
||||
|
||||
return relativeMouseX > width - 15 && relativeMouseX < width && relativeMouseY > 10 && relativeMouseY < 26 ? tooltip : null;
|
||||
|
@ -795,7 +791,7 @@ public class FMLClientHandler implements IFMLSidedHandler
|
|||
ServerData serverData = new ServerData("Command Line", host+":"+port);
|
||||
try
|
||||
{
|
||||
osp.func_147224_a(serverData);
|
||||
osp.ping(serverData);
|
||||
startupConnectionData.await(30, TimeUnit.SECONDS);
|
||||
}
|
||||
catch (Exception e)
|
||||
|
@ -817,46 +813,20 @@ public class FMLClientHandler implements IFMLSidedHandler
|
|||
{
|
||||
showGuiScreen(new GuiConnecting(guiMultiplayer, client, serverEntry));
|
||||
}
|
||||
playClientBlock = new CountDownLatch(1);
|
||||
}
|
||||
|
||||
public void connectToRealmsServer(String host, int port)
|
||||
{
|
||||
playClientBlock = new CountDownLatch(1);
|
||||
}
|
||||
|
||||
private CountDownLatch playClientBlock;
|
||||
public void connectToRealmsServer(String host, int port){}
|
||||
|
||||
public void setPlayClient(NetHandlerPlayClient netHandlerPlayClient)
|
||||
{
|
||||
if (playClientBlock == null)
|
||||
playClientBlock = new CountDownLatch(1);
|
||||
playClientBlock.countDown();
|
||||
this.currentPlayClient = new WeakReference<NetHandlerPlayClient>(netHandlerPlayClient);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void waitForPlayClient()
|
||||
{
|
||||
boolean gotIt = false;
|
||||
try
|
||||
{
|
||||
gotIt = playClientBlock.await(5,TimeUnit.SECONDS);
|
||||
} catch (InterruptedException e)
|
||||
{
|
||||
}
|
||||
if (!gotIt)
|
||||
{
|
||||
throw new RuntimeException("Timeout waiting for client thread to catch up!");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fireNetRegistrationEvent(EventBus bus, NetworkManager manager, Set<String> channelSet, String channel, Side side)
|
||||
{
|
||||
if (side == Side.CLIENT)
|
||||
{
|
||||
waitForPlayClient();
|
||||
bus.post(new FMLNetworkEvent.CustomPacketRegistrationEvent<NetHandlerPlayClient>(manager, channelSet, channel, side, NetHandlerPlayClient.class));
|
||||
}
|
||||
else
|
||||
|
|
|
@ -27,6 +27,7 @@ import net.minecraft.client.gui.FontRenderer;
|
|||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.WorldRenderer;
|
||||
import net.minecraft.client.renderer.texture.DynamicTexture;
|
||||
import net.minecraft.client.renderer.texture.TextureManager;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
|
@ -106,7 +107,7 @@ public class GuiModList extends GuiScreen
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void actionPerformed(GuiButton button) {
|
||||
protected void actionPerformed(GuiButton button) throws IOException {
|
||||
if (button.enabled)
|
||||
{
|
||||
switch (button.id)
|
||||
|
@ -193,12 +194,13 @@ public class GuiModList extends GuiScreen
|
|||
cachedLogoDimensions.width *= scale;
|
||||
cachedLogoDimensions.height *= scale;
|
||||
int top = 32;
|
||||
Tessellator tess = Tessellator.instance;
|
||||
tess.startDrawingQuads();
|
||||
tess.addVertexWithUV(offset, top + cachedLogoDimensions.height, zLevel, 0, 1);
|
||||
tess.addVertexWithUV(offset + cachedLogoDimensions.width, top + cachedLogoDimensions.height, zLevel, 1, 1);
|
||||
tess.addVertexWithUV(offset + cachedLogoDimensions.width, top, zLevel, 1, 0);
|
||||
tess.addVertexWithUV(offset, top, zLevel, 0, 0);
|
||||
Tessellator tess = Tessellator.func_178181_a();
|
||||
WorldRenderer world = tess.func_178180_c();
|
||||
world.func_178970_b();
|
||||
world.func_178985_a(offset, top + cachedLogoDimensions.height, zLevel, 0, 1);
|
||||
world.func_178985_a(offset + cachedLogoDimensions.width, top + cachedLogoDimensions.height, zLevel, 1, 1);
|
||||
world.func_178985_a(offset + cachedLogoDimensions.width, top, zLevel, 1, 0);
|
||||
world.func_178985_a(offset, top, zLevel, 0, 0);
|
||||
tess.draw();
|
||||
|
||||
shifty += 65;
|
||||
|
@ -209,7 +211,7 @@ public class GuiModList extends GuiScreen
|
|||
;
|
||||
}
|
||||
}
|
||||
this.fontRendererObj.drawStringWithShadow(selectedMod.getMetadata().name, offset, shifty, 0xFFFFFF);
|
||||
this.fontRendererObj.func_175063_a(selectedMod.getMetadata().name, offset, shifty, 0xFFFFFF);
|
||||
shifty += 12;
|
||||
|
||||
shifty = drawLine(String.format("Version: %s (%s)", selectedMod.getDisplayVersion(), selectedMod.getVersion()), offset, shifty);
|
||||
|
|
|
@ -50,7 +50,7 @@ public class GuiOldSaveLoadConfirm extends GuiYesNo implements GuiYesNoCallback
|
|||
|
||||
for (k = 0; k < this.labelList.size(); ++k)
|
||||
{
|
||||
((GuiLabel)this.labelList.get(k)).func_146159_a(this.mc, p_73863_1_, p_73863_2_);
|
||||
((GuiLabel)this.labelList.get(k)).drawLabel(this.mc, p_73863_1_, p_73863_2_);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
|
|
|
@ -19,6 +19,7 @@ import net.minecraft.client.gui.Gui;
|
|||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.renderer.OpenGlHelper;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.WorldRenderer;
|
||||
|
||||
import org.lwjgl.input.Mouse;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
@ -263,7 +264,8 @@ public abstract class GuiScrollingList
|
|||
}
|
||||
|
||||
this.applyScrollLimits();
|
||||
Tessellator var18 = Tessellator.instance;
|
||||
Tessellator tess = Tessellator.func_178181_a();
|
||||
WorldRenderer worldr = tess.func_178180_c();
|
||||
if (this.client.theWorld != null)
|
||||
{
|
||||
this.drawGradientRect(this.left, this.top, this.right, this.bottom, -1072689136, -804253680);
|
||||
|
@ -275,20 +277,20 @@ public abstract class GuiScrollingList
|
|||
this.client.renderEngine.bindTexture(Gui.optionsBackground);
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
float var17 = 32.0F;
|
||||
var18.startDrawingQuads();
|
||||
var18.setColorOpaque_I(2105376);
|
||||
var18.addVertexWithUV((double)this.left, (double)this.bottom, 0.0D, (double)((float)this.left / var17), (double)((float)(this.bottom + (int)this.scrollDistance) / var17));
|
||||
var18.addVertexWithUV((double)this.right, (double)this.bottom, 0.0D, (double)((float)this.right / var17), (double)((float)(this.bottom + (int)this.scrollDistance) / var17));
|
||||
var18.addVertexWithUV((double)this.right, (double)this.top, 0.0D, (double)((float)this.right / var17), (double)((float)(this.top + (int)this.scrollDistance) / var17));
|
||||
var18.addVertexWithUV((double)this.left, (double)this.top, 0.0D, (double)((float)this.left / var17), (double)((float)(this.top + (int)this.scrollDistance) / var17));
|
||||
var18.draw();
|
||||
worldr.func_178970_b();
|
||||
worldr.func_178991_c(2105376);
|
||||
worldr.func_178985_a((double)this.left, (double)this.bottom, 0.0D, (double)((float)this.left / var17), (double)((float)(this.bottom + (int)this.scrollDistance) / var17));
|
||||
worldr.func_178985_a((double)this.right, (double)this.bottom, 0.0D, (double)((float)this.right / var17), (double)((float)(this.bottom + (int)this.scrollDistance) / var17));
|
||||
worldr.func_178985_a((double)this.right, (double)this.top, 0.0D, (double)((float)this.right / var17), (double)((float)(this.top + (int)this.scrollDistance) / var17));
|
||||
worldr.func_178985_a((double)this.left, (double)this.top, 0.0D, (double)((float)this.left / var17), (double)((float)(this.top + (int)this.scrollDistance) / var17));
|
||||
tess.draw();
|
||||
}
|
||||
// boxRight = this.listWidth / 2 - 92 - 16;
|
||||
var10 = this.top + 4 - (int)this.scrollDistance;
|
||||
|
||||
if (this.field_27262_q)
|
||||
{
|
||||
this.func_27260_a(boxRight, var10, var18);
|
||||
this.func_27260_a(boxRight, var10, tess);
|
||||
}
|
||||
|
||||
int var14;
|
||||
|
@ -306,22 +308,22 @@ public abstract class GuiScrollingList
|
|||
int var15 = boxRight;
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||
var18.startDrawingQuads();
|
||||
var18.setColorOpaque_I(8421504);
|
||||
var18.addVertexWithUV((double)var14, (double)(var19 + var13 + 2), 0.0D, 0.0D, 1.0D);
|
||||
var18.addVertexWithUV((double)var15, (double)(var19 + var13 + 2), 0.0D, 1.0D, 1.0D);
|
||||
var18.addVertexWithUV((double)var15, (double)(var19 - 2), 0.0D, 1.0D, 0.0D);
|
||||
var18.addVertexWithUV((double)var14, (double)(var19 - 2), 0.0D, 0.0D, 0.0D);
|
||||
var18.setColorOpaque_I(0);
|
||||
var18.addVertexWithUV((double)(var14 + 1), (double)(var19 + var13 + 1), 0.0D, 0.0D, 1.0D);
|
||||
var18.addVertexWithUV((double)(var15 - 1), (double)(var19 + var13 + 1), 0.0D, 1.0D, 1.0D);
|
||||
var18.addVertexWithUV((double)(var15 - 1), (double)(var19 - 1), 0.0D, 1.0D, 0.0D);
|
||||
var18.addVertexWithUV((double)(var14 + 1), (double)(var19 - 1), 0.0D, 0.0D, 0.0D);
|
||||
var18.draw();
|
||||
worldr.func_178970_b();
|
||||
worldr.func_178991_c(8421504);
|
||||
worldr.func_178985_a((double)var14, (double)(var19 + var13 + 2), 0.0D, 0.0D, 1.0D);
|
||||
worldr.func_178985_a((double)var15, (double)(var19 + var13 + 2), 0.0D, 1.0D, 1.0D);
|
||||
worldr.func_178985_a((double)var15, (double)(var19 - 2), 0.0D, 1.0D, 0.0D);
|
||||
worldr.func_178985_a((double)var14, (double)(var19 - 2), 0.0D, 0.0D, 0.0D);
|
||||
worldr.func_178991_c(0);
|
||||
worldr.func_178985_a((double)(var14 + 1), (double)(var19 + var13 + 1), 0.0D, 0.0D, 1.0D);
|
||||
worldr.func_178985_a((double)(var15 - 1), (double)(var19 + var13 + 1), 0.0D, 1.0D, 1.0D);
|
||||
worldr.func_178985_a((double)(var15 - 1), (double)(var19 - 1), 0.0D, 1.0D, 0.0D);
|
||||
worldr.func_178985_a((double)(var14 + 1), (double)(var19 - 1), 0.0D, 0.0D, 0.0D);
|
||||
tess.draw();
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
}
|
||||
|
||||
this.drawSlot(var11, boxRight, var19, var13, var18);
|
||||
this.drawSlot(var11, boxRight, var19, var13, tess);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -337,22 +339,22 @@ public abstract class GuiScrollingList
|
|||
GL11.glDisable(GL11.GL_ALPHA_TEST);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||
var18.startDrawingQuads();
|
||||
var18.setColorRGBA_I(0, 0);
|
||||
var18.addVertexWithUV((double)this.left, (double)(this.top + var20), 0.0D, 0.0D, 1.0D);
|
||||
var18.addVertexWithUV((double)this.right, (double)(this.top + var20), 0.0D, 1.0D, 1.0D);
|
||||
var18.setColorRGBA_I(0, 255);
|
||||
var18.addVertexWithUV((double)this.right, (double)this.top, 0.0D, 1.0D, 0.0D);
|
||||
var18.addVertexWithUV((double)this.left, (double)this.top, 0.0D, 0.0D, 0.0D);
|
||||
var18.draw();
|
||||
var18.startDrawingQuads();
|
||||
var18.setColorRGBA_I(0, 255);
|
||||
var18.addVertexWithUV((double)this.left, (double)this.bottom, 0.0D, 0.0D, 1.0D);
|
||||
var18.addVertexWithUV((double)this.right, (double)this.bottom, 0.0D, 1.0D, 1.0D);
|
||||
var18.setColorRGBA_I(0, 0);
|
||||
var18.addVertexWithUV((double)this.right, (double)(this.bottom - var20), 0.0D, 1.0D, 0.0D);
|
||||
var18.addVertexWithUV((double)this.left, (double)(this.bottom - var20), 0.0D, 0.0D, 0.0D);
|
||||
var18.draw();
|
||||
worldr.func_178970_b();
|
||||
worldr.func_178974_a(0, 0);
|
||||
worldr.func_178985_a((double)this.left, (double)(this.top + var20), 0.0D, 0.0D, 1.0D);
|
||||
worldr.func_178985_a((double)this.right, (double)(this.top + var20), 0.0D, 1.0D, 1.0D);
|
||||
worldr.func_178974_a(0, 255);
|
||||
worldr.func_178985_a((double)this.right, (double)this.top, 0.0D, 1.0D, 0.0D);
|
||||
worldr.func_178985_a((double)this.left, (double)this.top, 0.0D, 0.0D, 0.0D);
|
||||
tess.draw();
|
||||
worldr.func_178970_b();
|
||||
worldr.func_178974_a(0, 255);
|
||||
worldr.func_178985_a((double)this.left, (double)this.bottom, 0.0D, 0.0D, 1.0D);
|
||||
worldr.func_178985_a((double)this.right, (double)this.bottom, 0.0D, 1.0D, 1.0D);
|
||||
worldr.func_178974_a(0, 0);
|
||||
worldr.func_178985_a((double)this.right, (double)(this.bottom - var20), 0.0D, 1.0D, 0.0D);
|
||||
worldr.func_178985_a((double)this.left, (double)(this.bottom - var20), 0.0D, 0.0D, 0.0D);
|
||||
tess.draw();
|
||||
var19 = this.getContentHeight() - (this.bottom - this.top - 4);
|
||||
|
||||
if (var19 > 0)
|
||||
|
@ -376,27 +378,27 @@ public abstract class GuiScrollingList
|
|||
var14 = this.top;
|
||||
}
|
||||
|
||||
var18.startDrawingQuads();
|
||||
var18.setColorRGBA_I(0, 255);
|
||||
var18.addVertexWithUV((double)scrollBarXStart, (double)this.bottom, 0.0D, 0.0D, 1.0D);
|
||||
var18.addVertexWithUV((double)scrollBarXEnd, (double)this.bottom, 0.0D, 1.0D, 1.0D);
|
||||
var18.addVertexWithUV((double)scrollBarXEnd, (double)this.top, 0.0D, 1.0D, 0.0D);
|
||||
var18.addVertexWithUV((double)scrollBarXStart, (double)this.top, 0.0D, 0.0D, 0.0D);
|
||||
var18.draw();
|
||||
var18.startDrawingQuads();
|
||||
var18.setColorRGBA_I(8421504, 255);
|
||||
var18.addVertexWithUV((double)scrollBarXStart, (double)(var14 + var13), 0.0D, 0.0D, 1.0D);
|
||||
var18.addVertexWithUV((double)scrollBarXEnd, (double)(var14 + var13), 0.0D, 1.0D, 1.0D);
|
||||
var18.addVertexWithUV((double)scrollBarXEnd, (double)var14, 0.0D, 1.0D, 0.0D);
|
||||
var18.addVertexWithUV((double)scrollBarXStart, (double)var14, 0.0D, 0.0D, 0.0D);
|
||||
var18.draw();
|
||||
var18.startDrawingQuads();
|
||||
var18.setColorRGBA_I(12632256, 255);
|
||||
var18.addVertexWithUV((double)scrollBarXStart, (double)(var14 + var13 - 1), 0.0D, 0.0D, 1.0D);
|
||||
var18.addVertexWithUV((double)(scrollBarXEnd - 1), (double)(var14 + var13 - 1), 0.0D, 1.0D, 1.0D);
|
||||
var18.addVertexWithUV((double)(scrollBarXEnd - 1), (double)var14, 0.0D, 1.0D, 0.0D);
|
||||
var18.addVertexWithUV((double)scrollBarXStart, (double)var14, 0.0D, 0.0D, 0.0D);
|
||||
var18.draw();
|
||||
worldr.func_178970_b();
|
||||
worldr.func_178974_a(0, 255);
|
||||
worldr.func_178985_a((double)scrollBarXStart, (double)this.bottom, 0.0D, 0.0D, 1.0D);
|
||||
worldr.func_178985_a((double)scrollBarXEnd, (double)this.bottom, 0.0D, 1.0D, 1.0D);
|
||||
worldr.func_178985_a((double)scrollBarXEnd, (double)this.top, 0.0D, 1.0D, 0.0D);
|
||||
worldr.func_178985_a((double)scrollBarXStart, (double)this.top, 0.0D, 0.0D, 0.0D);
|
||||
tess.draw();
|
||||
worldr.func_178970_b();
|
||||
worldr.func_178974_a(8421504, 255);
|
||||
worldr.func_178985_a((double)scrollBarXStart, (double)(var14 + var13), 0.0D, 0.0D, 1.0D);
|
||||
worldr.func_178985_a((double)scrollBarXEnd, (double)(var14 + var13), 0.0D, 1.0D, 1.0D);
|
||||
worldr.func_178985_a((double)scrollBarXEnd, (double)var14, 0.0D, 1.0D, 0.0D);
|
||||
worldr.func_178985_a((double)scrollBarXStart, (double)var14, 0.0D, 0.0D, 0.0D);
|
||||
tess.draw();
|
||||
worldr.func_178970_b();
|
||||
worldr.func_178974_a(12632256, 255);
|
||||
worldr.func_178985_a((double)scrollBarXStart, (double)(var14 + var13 - 1), 0.0D, 0.0D, 1.0D);
|
||||
worldr.func_178985_a((double)(scrollBarXEnd - 1), (double)(var14 + var13 - 1), 0.0D, 1.0D, 1.0D);
|
||||
worldr.func_178985_a((double)(scrollBarXEnd - 1), (double)var14, 0.0D, 1.0D, 0.0D);
|
||||
worldr.func_178985_a((double)scrollBarXStart, (double)var14, 0.0D, 0.0D, 0.0D);
|
||||
tess.draw();
|
||||
}
|
||||
|
||||
this.func_27257_b(mouseX, mouseY);
|
||||
|
@ -408,17 +410,18 @@ public abstract class GuiScrollingList
|
|||
|
||||
private void overlayBackground(int p_22239_1_, int p_22239_2_, int p_22239_3_, int p_22239_4_)
|
||||
{
|
||||
Tessellator var5 = Tessellator.instance;
|
||||
Tessellator var5 = Tessellator.func_178181_a();
|
||||
WorldRenderer worldr = var5.func_178180_c();
|
||||
this.client.renderEngine.bindTexture(Gui.optionsBackground);
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
float var6 = 32.0F;
|
||||
var5.startDrawingQuads();
|
||||
var5.setColorRGBA_I(4210752, p_22239_4_);
|
||||
var5.addVertexWithUV(0.0D, (double)p_22239_2_, 0.0D, 0.0D, (double)((float)p_22239_2_ / var6));
|
||||
var5.addVertexWithUV((double)this.listWidth + 30, (double)p_22239_2_, 0.0D, (double)((float)(this.listWidth + 30) / var6), (double)((float)p_22239_2_ / var6));
|
||||
var5.setColorRGBA_I(4210752, p_22239_3_);
|
||||
var5.addVertexWithUV((double)this.listWidth + 30, (double)p_22239_1_, 0.0D, (double)((float)(this.listWidth + 30) / var6), (double)((float)p_22239_1_ / var6));
|
||||
var5.addVertexWithUV(0.0D, (double)p_22239_1_, 0.0D, 0.0D, (double)((float)p_22239_1_ / var6));
|
||||
worldr.func_178970_b();
|
||||
worldr.func_178974_a(4210752, p_22239_4_);
|
||||
worldr.func_178985_a(0.0D, (double)p_22239_2_, 0.0D, 0.0D, (double)((float)p_22239_2_ / var6));
|
||||
worldr.func_178985_a((double)this.listWidth + 30, (double)p_22239_2_, 0.0D, (double)((float)(this.listWidth + 30) / var6), (double)((float)p_22239_2_ / var6));
|
||||
worldr.func_178974_a(4210752, p_22239_3_);
|
||||
worldr.func_178985_a((double)this.listWidth + 30, (double)p_22239_1_, 0.0D, (double)((float)(this.listWidth + 30) / var6), (double)((float)p_22239_1_ / var6));
|
||||
worldr.func_178985_a(0.0D, (double)p_22239_1_, 0.0D, 0.0D, (double)((float)p_22239_1_ / var6));
|
||||
var5.draw();
|
||||
}
|
||||
|
||||
|
@ -437,14 +440,15 @@ public abstract class GuiScrollingList
|
|||
GL11.glDisable(GL11.GL_ALPHA_TEST);
|
||||
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
Tessellator tessellator = Tessellator.instance;
|
||||
tessellator.startDrawingQuads();
|
||||
tessellator.setColorRGBA_F(f1, f2, f3, f);
|
||||
tessellator.addVertex((double)par3, (double)par2, 0.0D);
|
||||
tessellator.addVertex((double)par1, (double)par2, 0.0D);
|
||||
tessellator.setColorRGBA_F(f5, f6, f7, f4);
|
||||
tessellator.addVertex((double)par1, (double)par4, 0.0D);
|
||||
tessellator.addVertex((double)par3, (double)par4, 0.0D);
|
||||
Tessellator tessellator = Tessellator.func_178181_a();
|
||||
WorldRenderer worldrenderer = tessellator.func_178180_c();
|
||||
worldrenderer.func_178970_b();
|
||||
worldrenderer.func_178960_a(f1, f2, f3, f);
|
||||
worldrenderer.func_178984_b((double)par3, (double)par2, 0.0D);
|
||||
worldrenderer.func_178984_b((double)par1, (double)par2, 0.0D);
|
||||
worldrenderer.func_178960_a(f5, f6, f7, f4);
|
||||
worldrenderer.func_178984_b((double)par1, (double)par4, 0.0D);
|
||||
worldrenderer.func_178984_b((double)par3, (double)par4, 0.0D);
|
||||
tessellator.draw();
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
GL11.glDisable(GL11.GL_BLEND);
|
||||
|
|
|
@ -17,12 +17,12 @@ import net.minecraft.client.gui.GuiButton;
|
|||
|
||||
/**
|
||||
* This class provides a button that fixes several bugs present in the vanilla GuiButton drawing code.
|
||||
* The gist of it is that it allows buttons of any size without gaps in the graphics and with the
|
||||
* The gist of it is that it allows buttons of any size without gaps in the graphics and with the
|
||||
* borders drawn properly. It also prevents button text from extending out of the sides of the button by
|
||||
* trimming the end of the string and adding an ellipsis.<br/><br/>
|
||||
*
|
||||
*
|
||||
* The code that handles drawing the button is in GuiUtils.
|
||||
*
|
||||
*
|
||||
* @author bspkrs
|
||||
*/
|
||||
public class GuiButtonExt extends GuiButton
|
||||
|
@ -31,12 +31,12 @@ public class GuiButtonExt extends GuiButton
|
|||
{
|
||||
super(id, xPos, yPos, displayString);
|
||||
}
|
||||
|
||||
|
||||
public GuiButtonExt(int id, int xPos, int yPos, int width, int height, String displayString)
|
||||
{
|
||||
super(id, xPos, yPos, width, height, displayString);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Draws this button to the screen.
|
||||
*/
|
||||
|
@ -45,12 +45,12 @@ public class GuiButtonExt extends GuiButton
|
|||
{
|
||||
if (this.visible)
|
||||
{
|
||||
this.field_146123_n = mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition + this.width && mouseY < this.yPosition + this.height;
|
||||
int k = this.getHoverState(this.field_146123_n);
|
||||
this.hovered = mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition + this.width && mouseY < this.yPosition + this.height;
|
||||
int k = this.getHoverState(this.hovered);
|
||||
GuiUtils.drawContinuousTexturedBox(buttonTextures, this.xPosition, this.yPosition, 0, 46 + k * 20, this.width, this.height, 200, 20, 2, 3, 2, 2, this.zLevel);
|
||||
this.mouseDragged(mc, mouseX, mouseY);
|
||||
int color = 14737632;
|
||||
|
||||
|
||||
if (packedFGColour != 0)
|
||||
{
|
||||
color = packedFGColour;
|
||||
|
@ -59,19 +59,19 @@ public class GuiButtonExt extends GuiButton
|
|||
{
|
||||
color = 10526880;
|
||||
}
|
||||
else if (this.field_146123_n)
|
||||
else if (this.hovered)
|
||||
{
|
||||
color = 16777120;
|
||||
}
|
||||
|
||||
|
||||
String buttonText = this.displayString;
|
||||
int strWidth = mc.fontRenderer.getStringWidth(buttonText);
|
||||
int ellipsisWidth = mc.fontRenderer.getStringWidth("...");
|
||||
|
||||
int strWidth = mc.fontRendererObj.getStringWidth(buttonText);
|
||||
int ellipsisWidth = mc.fontRendererObj.getStringWidth("...");
|
||||
|
||||
if (strWidth > width - 6 && strWidth > ellipsisWidth)
|
||||
buttonText = mc.fontRenderer.trimStringToWidth(buttonText, width - 6 - ellipsisWidth).trim() + "...";
|
||||
|
||||
this.drawCenteredString(mc.fontRenderer, buttonText, this.xPosition + this.width / 2, this.yPosition + (this.height - 8) / 2, color);
|
||||
buttonText = mc.fontRendererObj.trimStringToWidth(buttonText, width - 6 - ellipsisWidth).trim() + "...";
|
||||
|
||||
this.drawCenteredString(mc.fontRendererObj, buttonText, this.xPosition + this.width / 2, this.yPosition + (this.height - 8) / 2, color);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -17,33 +17,33 @@ import net.minecraft.client.gui.GuiButton;
|
|||
|
||||
/**
|
||||
* This class provides a checkbox style control.
|
||||
*
|
||||
*
|
||||
* @author bspkrs
|
||||
*/
|
||||
public class GuiCheckBox extends GuiButton
|
||||
{
|
||||
private boolean isChecked;
|
||||
private int boxWidth;
|
||||
|
||||
|
||||
public GuiCheckBox(int id, int xPos, int yPos, String displayString, boolean isChecked)
|
||||
{
|
||||
super(id, xPos, yPos, displayString);
|
||||
this.isChecked = isChecked;
|
||||
this.boxWidth = 11;
|
||||
this.height = 11;
|
||||
this.width = this.boxWidth + 2 + Minecraft.getMinecraft().fontRenderer.getStringWidth(displayString);
|
||||
this.width = this.boxWidth + 2 + Minecraft.getMinecraft().fontRendererObj.getStringWidth(displayString);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void drawButton(Minecraft mc, int mouseX, int mouseY)
|
||||
{
|
||||
if (this.visible)
|
||||
{
|
||||
this.field_146123_n = mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition + this.boxWidth && mouseY < this.yPosition + this.height;
|
||||
this.hovered = mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition + this.boxWidth && mouseY < this.yPosition + this.height;
|
||||
GuiUtils.drawContinuousTexturedBox(buttonTextures, this.xPosition, this.yPosition, 0, 46, this.boxWidth, this.height, 200, 20, 2, 3, 2, 2, this.zLevel);
|
||||
this.mouseDragged(mc, mouseX, mouseY);
|
||||
int color = 14737632;
|
||||
|
||||
|
||||
if (packedFGColour != 0)
|
||||
{
|
||||
color = packedFGColour;
|
||||
|
@ -52,14 +52,14 @@ public class GuiCheckBox extends GuiButton
|
|||
{
|
||||
color = 10526880;
|
||||
}
|
||||
|
||||
|
||||
if (this.isChecked)
|
||||
this.drawCenteredString(mc.fontRenderer, "x", this.xPosition + this.boxWidth / 2 + 1, this.yPosition + 1, 14737632);
|
||||
|
||||
this.drawString(mc.fontRenderer, displayString, xPosition + this.boxWidth + 2, yPosition + 2, color);
|
||||
this.drawCenteredString(mc.fontRendererObj, "x", this.xPosition + this.boxWidth / 2 + 1, this.yPosition + 1, 14737632);
|
||||
|
||||
this.drawString(mc.fontRendererObj, displayString, xPosition + this.boxWidth + 2, yPosition + 2, color);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean mousePressed(Minecraft p_146116_1_, int p_146116_2_, int p_146116_3_)
|
||||
{
|
||||
|
@ -68,15 +68,15 @@ public class GuiCheckBox extends GuiButton
|
|||
this.isChecked = !this.isChecked;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public boolean isChecked()
|
||||
{
|
||||
return this.isChecked;
|
||||
}
|
||||
|
||||
|
||||
public void setIsChecked(boolean isChecked)
|
||||
{
|
||||
this.isChecked = isChecked;
|
||||
|
|
|
@ -15,6 +15,7 @@ package cpw.mods.fml.client.config;
|
|||
import static cpw.mods.fml.client.config.GuiUtils.RESET_CHAR;
|
||||
import static cpw.mods.fml.client.config.GuiUtils.UNDO_CHAR;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -37,7 +38,7 @@ import cpw.mods.fml.common.eventhandler.Event.Result;
|
|||
/**
|
||||
* This class is the base GuiScreen for all config GUI screens. It can be extended by mods to provide the top-level config screen
|
||||
* that will be called when the Config button is clicked from the Main Menu Mods list.
|
||||
*
|
||||
*
|
||||
* @author bspkrs
|
||||
*/
|
||||
public class GuiConfig extends GuiScreen
|
||||
|
@ -74,13 +75,13 @@ public class GuiConfig extends GuiScreen
|
|||
/**
|
||||
* GuiConfig constructor that will use ConfigChangedEvent when editing is concluded. If a non-null value is passed for configID,
|
||||
* the OnConfigChanged and PostConfigChanged events will be posted when the Done button is pressed if any configElements were changed
|
||||
* (includes child screens). If configID is not defined, the events will be posted if the parent gui is null or if the parent gui
|
||||
* (includes child screens). If configID is not defined, the events will be posted if the parent gui is null or if the parent gui
|
||||
* is not an instance of GuiConfig.
|
||||
*
|
||||
* @param parentScreen the parent GuiScreen object
|
||||
* @param configElements a List of IConfigProperty objects
|
||||
* @param modID the mod ID for the mod whose config settings will be edited
|
||||
* @param configID an identifier that will be passed to the OnConfigChanged and PostConfigChanged events. Setting this value will force
|
||||
* @param configID an identifier that will be passed to the OnConfigChanged and PostConfigChanged events. Setting this value will force
|
||||
* the save action to be called when the Done button is pressed on this screen if any configElements were changed.
|
||||
* @param allRequireWorldRestart send true if all configElements on this screen require a world restart
|
||||
* @param allRequireMcRestart send true if all configElements on this screen require MC to be restarted
|
||||
|
@ -88,7 +89,7 @@ public class GuiConfig extends GuiScreen
|
|||
* edited.
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public GuiConfig(GuiScreen parentScreen, List<IConfigElement> configElements, String modID, String configID,
|
||||
public GuiConfig(GuiScreen parentScreen, List<IConfigElement> configElements, String modID, String configID,
|
||||
boolean allRequireWorldRestart, boolean allRequireMcRestart, String title)
|
||||
{
|
||||
this(parentScreen, configElements, modID, configID, allRequireWorldRestart, allRequireMcRestart, title, null);
|
||||
|
@ -107,7 +108,7 @@ public class GuiConfig extends GuiScreen
|
|||
* edited.
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public GuiConfig(GuiScreen parentScreen, List<IConfigElement> configElements, String modID,
|
||||
public GuiConfig(GuiScreen parentScreen, List<IConfigElement> configElements, String modID,
|
||||
boolean allRequireWorldRestart, boolean allRequireMcRestart, String title)
|
||||
{
|
||||
this(parentScreen, configElements, modID, null, allRequireWorldRestart, allRequireMcRestart, title, null);
|
||||
|
@ -128,7 +129,7 @@ public class GuiConfig extends GuiScreen
|
|||
* currently being edited.
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public GuiConfig(GuiScreen parentScreen, List<IConfigElement> configElements, String modID,
|
||||
public GuiConfig(GuiScreen parentScreen, List<IConfigElement> configElements, String modID,
|
||||
boolean allRequireWorldRestart, boolean allRequireMcRestart, String title, String titleLine2)
|
||||
{
|
||||
this(parentScreen, configElements, modID, null, allRequireWorldRestart, allRequireMcRestart, title, titleLine2);
|
||||
|
@ -136,8 +137,8 @@ public class GuiConfig extends GuiScreen
|
|||
|
||||
/**
|
||||
* GuiConfig constructor that will use ConfigChangedEvent when editing is concluded. titleLine2 is specified in this constructor.
|
||||
* If a non-null value is passed for configID, the OnConfigChanged and PostConfigChanged events will be posted when the Done button is
|
||||
* pressed if any configElements were changed (includes child screens). If configID is not defined, the events will be posted if the parent
|
||||
* If a non-null value is passed for configID, the OnConfigChanged and PostConfigChanged events will be posted when the Done button is
|
||||
* pressed if any configElements were changed (includes child screens). If configID is not defined, the events will be posted if the parent
|
||||
* gui is null or if the parent gui is not an instance of GuiConfig.
|
||||
*
|
||||
* @param parentScreen the parent GuiScreen object
|
||||
|
@ -152,7 +153,7 @@ public class GuiConfig extends GuiScreen
|
|||
* currently being edited.
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public GuiConfig(GuiScreen parentScreen, List<IConfigElement> configElements, String modID, String configID,
|
||||
public GuiConfig(GuiScreen parentScreen, List<IConfigElement> configElements, String modID, String configID,
|
||||
boolean allRequireWorldRestart, boolean allRequireMcRestart, String title, String titleLine2)
|
||||
{
|
||||
this.mc = Minecraft.getMinecraft();
|
||||
|
@ -193,12 +194,12 @@ public class GuiConfig extends GuiScreen
|
|||
this.needsRefresh = false;
|
||||
}
|
||||
|
||||
int undoGlyphWidth = mc.fontRenderer.getStringWidth(UNDO_CHAR) * 2;
|
||||
int resetGlyphWidth = mc.fontRenderer.getStringWidth(RESET_CHAR) * 2;
|
||||
int doneWidth = Math.max(mc.fontRenderer.getStringWidth(I18n.format("gui.done")) + 20, 100);
|
||||
int undoWidth = mc.fontRenderer.getStringWidth(" " + I18n.format("fml.configgui.tooltip.undoChanges")) + undoGlyphWidth + 20;
|
||||
int resetWidth = mc.fontRenderer.getStringWidth(" " + I18n.format("fml.configgui.tooltip.resetToDefault")) + resetGlyphWidth + 20;
|
||||
int checkWidth = mc.fontRenderer.getStringWidth(I18n.format("fml.configgui.applyGlobally")) + 13;
|
||||
int undoGlyphWidth = mc.fontRendererObj.getStringWidth(UNDO_CHAR) * 2;
|
||||
int resetGlyphWidth = mc.fontRendererObj.getStringWidth(RESET_CHAR) * 2;
|
||||
int doneWidth = Math.max(mc.fontRendererObj.getStringWidth(I18n.format("gui.done")) + 20, 100);
|
||||
int undoWidth = mc.fontRendererObj.getStringWidth(" " + I18n.format("fml.configgui.tooltip.undoChanges")) + undoGlyphWidth + 20;
|
||||
int resetWidth = mc.fontRendererObj.getStringWidth(" " + I18n.format("fml.configgui.tooltip.resetToDefault")) + resetGlyphWidth + 20;
|
||||
int checkWidth = mc.fontRendererObj.getStringWidth(I18n.format("fml.configgui.applyGlobally")) + 13;
|
||||
int buttonWidthHalf = (doneWidth + 5 + undoWidth + 5 + resetWidth + 5 + checkWidth) / 2;
|
||||
this.buttonList.add(new GuiButtonExt(2000, this.width / 2 - buttonWidthHalf, this.height - 29, doneWidth, 20, I18n.format("gui.done")));
|
||||
this.buttonList.add(this.btnDefaultAll = new GuiUnicodeGlyphButton(2001, this.width / 2 - buttonWidthHalf + doneWidth + 5 + undoWidth + 5,
|
||||
|
@ -218,14 +219,14 @@ public class GuiConfig extends GuiScreen
|
|||
public void onGuiClosed()
|
||||
{
|
||||
this.entryList.onGuiClosed();
|
||||
|
||||
|
||||
if (this.configID != null && this.parentScreen instanceof GuiConfig)
|
||||
{
|
||||
GuiConfig parentGuiConfig = (GuiConfig) this.parentScreen;
|
||||
parentGuiConfig.needsRefresh = true;
|
||||
parentGuiConfig.initGui();
|
||||
}
|
||||
|
||||
|
||||
if (!(this.parentScreen instanceof GuiConfig))
|
||||
Keyboard.enableRepeatEvents(false);
|
||||
}
|
||||
|
@ -238,7 +239,7 @@ public class GuiConfig extends GuiScreen
|
|||
boolean flag = true;
|
||||
try
|
||||
{
|
||||
if ((configID != null || this.parentScreen == null || !(this.parentScreen instanceof GuiConfig))
|
||||
if ((configID != null || this.parentScreen == null || !(this.parentScreen instanceof GuiConfig))
|
||||
&& (this.entryList.hasChangedEntry(true)))
|
||||
{
|
||||
boolean requiresMcRestart = this.entryList.saveConfigElements();
|
||||
|
@ -249,14 +250,14 @@ public class GuiConfig extends GuiScreen
|
|||
FMLCommonHandler.instance().bus().post(event);
|
||||
if (!event.getResult().equals(Result.DENY))
|
||||
FMLCommonHandler.instance().bus().post(new PostConfigChangedEvent(modID, configID, isWorldRunning, requiresMcRestart));
|
||||
|
||||
|
||||
if (requiresMcRestart)
|
||||
{
|
||||
flag = false;
|
||||
mc.displayGuiScreen(new GuiMessageDialog(parentScreen, "fml.configgui.gameRestartTitle",
|
||||
mc.displayGuiScreen(new GuiMessageDialog(parentScreen, "fml.configgui.gameRestartTitle",
|
||||
new ChatComponentText(I18n.format("fml.configgui.gameRestartRequired")), "fml.configgui.confirmRestartMessage"));
|
||||
}
|
||||
|
||||
|
||||
if (this.parentScreen instanceof GuiConfig)
|
||||
((GuiConfig) this.parentScreen).needsRefresh = true;
|
||||
}
|
||||
|
@ -266,7 +267,7 @@ public class GuiConfig extends GuiScreen
|
|||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
if (flag)
|
||||
this.mc.displayGuiScreen(this.parentScreen);
|
||||
}
|
||||
|
@ -281,7 +282,7 @@ public class GuiConfig extends GuiScreen
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void mouseClicked(int x, int y, int mouseEvent)
|
||||
protected void mouseClicked(int x, int y, int mouseEvent) throws IOException
|
||||
{
|
||||
if (mouseEvent != 0 || !this.entryList.func_148179_a(x, y, mouseEvent))
|
||||
{
|
||||
|
@ -291,11 +292,11 @@ public class GuiConfig extends GuiScreen
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void mouseMovedOrUp(int x, int y, int mouseEvent)
|
||||
protected void mouseReleased(int x, int y, int mouseEvent)
|
||||
{
|
||||
if (mouseEvent != 0 || !this.entryList.func_148181_b(x, y, mouseEvent))
|
||||
{
|
||||
super.mouseMovedOrUp(x, y, mouseEvent);
|
||||
super.mouseReleased(x, y, mouseEvent);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -325,10 +326,10 @@ public class GuiConfig extends GuiScreen
|
|||
|
||||
if (title2 != null)
|
||||
{
|
||||
int strWidth = mc.fontRenderer.getStringWidth(title2);
|
||||
int elipsisWidth = mc.fontRenderer.getStringWidth("...");
|
||||
int strWidth = mc.fontRendererObj.getStringWidth(title2);
|
||||
int elipsisWidth = mc.fontRendererObj.getStringWidth("...");
|
||||
if (strWidth > width - 6 && strWidth > elipsisWidth)
|
||||
title2 = mc.fontRenderer.trimStringToWidth(title2, width - 6 - elipsisWidth).trim() + "...";
|
||||
title2 = mc.fontRendererObj.trimStringToWidth(title2, width - 6 - elipsisWidth).trim() + "...";
|
||||
this.drawCenteredString(this.fontRendererObj, title2, this.width / 2, 18, 16777215);
|
||||
}
|
||||
|
||||
|
@ -337,16 +338,16 @@ public class GuiConfig extends GuiScreen
|
|||
super.drawScreen(mouseX, mouseY, partialTicks);
|
||||
this.entryList.drawScreenPost(mouseX, mouseY, partialTicks);
|
||||
if (this.undoHoverChecker.checkHover(mouseX, mouseY))
|
||||
this.drawToolTip(this.mc.fontRenderer.listFormattedStringToWidth(I18n.format("fml.configgui.tooltip.undoAll"), 300), mouseX, mouseY);
|
||||
this.drawToolTip(this.mc.fontRendererObj.listFormattedStringToWidth(I18n.format("fml.configgui.tooltip.undoAll"), 300), mouseX, mouseY);
|
||||
if (this.resetHoverChecker.checkHover(mouseX, mouseY))
|
||||
this.drawToolTip(this.mc.fontRenderer.listFormattedStringToWidth(I18n.format("fml.configgui.tooltip.resetAll"), 300), mouseX, mouseY);
|
||||
this.drawToolTip(this.mc.fontRendererObj.listFormattedStringToWidth(I18n.format("fml.configgui.tooltip.resetAll"), 300), mouseX, mouseY);
|
||||
if (this.checkBoxHoverChecker.checkHover(mouseX, mouseY))
|
||||
this.drawToolTip(this.mc.fontRenderer.listFormattedStringToWidth(I18n.format("fml.configgui.tooltip.applyGlobally"), 300), mouseX, mouseY);
|
||||
this.drawToolTip(this.mc.fontRendererObj.listFormattedStringToWidth(I18n.format("fml.configgui.tooltip.applyGlobally"), 300), mouseX, mouseY);
|
||||
}
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
public void drawToolTip(List stringList, int x, int y)
|
||||
{
|
||||
this.func_146283_a(stringList, x, y);
|
||||
this.drawHoveringText(stringList, x, y);
|
||||
}
|
||||
}
|
|
@ -96,9 +96,9 @@ public class GuiConfigEntries extends GuiListExtended
|
|||
|
||||
// protects against language keys that are not defined in the .lang file
|
||||
if (!I18n.format(configElement.getLanguageKey()).equals(configElement.getLanguageKey()))
|
||||
length = mc.fontRenderer.getStringWidth(I18n.format(configElement.getLanguageKey()));
|
||||
length = mc.fontRendererObj.getStringWidth(I18n.format(configElement.getLanguageKey()));
|
||||
else
|
||||
length = mc.fontRenderer.getStringWidth(configElement.getName());
|
||||
length = mc.fontRendererObj.getStringWidth(configElement.getName());
|
||||
|
||||
if (length > this.maxLabelTextWidth)
|
||||
this.maxLabelTextWidth = length;
|
||||
|
@ -575,10 +575,10 @@ public class GuiConfigEntries extends GuiListExtended
|
|||
}
|
||||
|
||||
@Override
|
||||
public void drawEntry(int slotIndex, int x, int y, int listWidth, int slotHeight, Tessellator tessellator, int mouseX, int mouseY, boolean isSelected)
|
||||
public void func_180790_a(int slotIndex, int x, int y, int listWidth, int slotHeight, int mouseX, int mouseY, boolean isSelected)
|
||||
{
|
||||
this.btnValue.packedFGColour = GuiUtils.getColorCode(this.configElement.getValidValues()[currentIndex].charAt(0), true);
|
||||
super.drawEntry(slotIndex, x, y, listWidth, slotHeight, tessellator, mouseX, mouseY, isSelected);
|
||||
super.func_180790_a(slotIndex, x, y, listWidth, slotHeight, mouseX, mouseY, isSelected);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -927,9 +927,9 @@ public class GuiConfigEntries extends GuiListExtended
|
|||
public abstract void valueButtonPressed(int slotIndex);
|
||||
|
||||
@Override
|
||||
public void drawEntry(int slotIndex, int x, int y, int listWidth, int slotHeight, Tessellator tessellator, int mouseX, int mouseY, boolean isSelected)
|
||||
public void func_180790_a(int slotIndex, int x, int y, int listWidth, int slotHeight, int mouseX, int mouseY, boolean isSelected)
|
||||
{
|
||||
super.drawEntry(slotIndex, x, y, listWidth, slotHeight, tessellator, mouseX, mouseY, isSelected);
|
||||
super.func_180790_a(slotIndex, x, y, listWidth, slotHeight, mouseX, mouseY, isSelected);
|
||||
this.btnValue.width = this.owningEntryList.controlWidth;
|
||||
this.btnValue.xPosition = this.owningScreen.entryList.controlX;
|
||||
this.btnValue.yPosition = y;
|
||||
|
@ -945,7 +945,7 @@ public class GuiConfigEntries extends GuiListExtended
|
|||
{
|
||||
if (this.btnValue.mousePressed(this.mc, x, y))
|
||||
{
|
||||
btnValue.func_146113_a(mc.getSoundHandler());
|
||||
btnValue.playPressSound(mc.getSoundHandler());
|
||||
valueButtonPressed(index);
|
||||
updateValueButtonText();
|
||||
return true;
|
||||
|
@ -1205,15 +1205,15 @@ public class GuiConfigEntries extends GuiListExtended
|
|||
{
|
||||
super(owningScreen, owningEntryList, configElement);
|
||||
beforeValue = configElement.get().toString();
|
||||
this.textFieldValue = new GuiTextField(this.mc.fontRenderer, this.owningEntryList.controlX + 1, 0, this.owningEntryList.controlWidth - 3, 16);
|
||||
this.textFieldValue = new GuiTextField(10, this.mc.fontRendererObj, this.owningEntryList.controlX + 1, 0, this.owningEntryList.controlWidth - 3, 16);
|
||||
this.textFieldValue.setMaxStringLength(10000);
|
||||
this.textFieldValue.setText(configElement.get().toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawEntry(int slotIndex, int x, int y, int listWidth, int slotHeight, Tessellator tessellator, int mouseX, int mouseY, boolean isSelected)
|
||||
public void func_180790_a(int slotIndex, int x, int y, int listWidth, int slotHeight, int mouseX, int mouseY, boolean isSelected)
|
||||
{
|
||||
super.drawEntry(slotIndex, x, y, listWidth, slotHeight, tessellator, mouseX, mouseY, isSelected);
|
||||
super.func_180790_a(slotIndex, x, y, listWidth, slotHeight, mouseX, mouseY, isSelected);
|
||||
this.textFieldValue.xPosition = this.owningEntryList.controlX + 2;
|
||||
this.textFieldValue.yPosition = y + 1;
|
||||
this.textFieldValue.width = this.owningEntryList.controlWidth - 4;
|
||||
|
@ -1350,14 +1350,14 @@ public class GuiConfigEntries extends GuiListExtended
|
|||
}
|
||||
|
||||
@Override
|
||||
public void drawEntry(int slotIndex, int x, int y, int listWidth, int slotHeight, Tessellator tessellator, int mouseX, int mouseY, boolean isSelected)
|
||||
public void func_180790_a(int slotIndex, int x, int y, int listWidth, int slotHeight, int mouseX, int mouseY, boolean isSelected)
|
||||
{
|
||||
this.btnSelectCategory.xPosition = listWidth / 2 - 150;
|
||||
this.btnSelectCategory.yPosition = y;
|
||||
this.btnSelectCategory.enabled = enabled();
|
||||
this.btnSelectCategory.drawButton(this.mc, mouseX, mouseY);
|
||||
|
||||
super.drawEntry(slotIndex, x, y, listWidth, slotHeight, tessellator, mouseX, mouseY, isSelected);
|
||||
super.func_180790_a(slotIndex, x, y, listWidth, slotHeight, mouseX, mouseY, isSelected);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1376,7 +1376,7 @@ public class GuiConfigEntries extends GuiListExtended
|
|||
{
|
||||
if (this.btnSelectCategory.mousePressed(this.mc, x, y))
|
||||
{
|
||||
btnSelectCategory.func_146113_a(mc.getSoundHandler());
|
||||
btnSelectCategory.playPressSound(mc.getSoundHandler());
|
||||
Minecraft.getMinecraft().displayGuiScreen(childScreen);
|
||||
return true;
|
||||
}
|
||||
|
@ -1532,30 +1532,30 @@ public class GuiConfigEntries extends GuiListExtended
|
|||
comment = I18n.format(configElement.getLanguageKey() + ".tooltip").replace("\\n", "\n");
|
||||
|
||||
if (!comment.equals(configElement.getLanguageKey() + ".tooltip"))
|
||||
toolTip = new ArrayList<String>(this.mc.fontRenderer.listFormattedStringToWidth(
|
||||
toolTip = new ArrayList<String>(this.mc.fontRendererObj.listFormattedStringToWidth(
|
||||
EnumChatFormatting.GREEN + name + "\n" + EnumChatFormatting.YELLOW + comment, 300));
|
||||
else if (configElement.getComment() != null && !configElement.getComment().trim().isEmpty())
|
||||
toolTip = new ArrayList<String>(this.mc.fontRenderer.listFormattedStringToWidth(
|
||||
toolTip = new ArrayList<String>(this.mc.fontRendererObj.listFormattedStringToWidth(
|
||||
EnumChatFormatting.GREEN + name + "\n" + EnumChatFormatting.YELLOW + configElement.getComment(), 300));
|
||||
else
|
||||
toolTip = new ArrayList<String>(this.mc.fontRenderer.listFormattedStringToWidth(
|
||||
toolTip = new ArrayList<String>(this.mc.fontRendererObj.listFormattedStringToWidth(
|
||||
EnumChatFormatting.GREEN + name + "\n" + EnumChatFormatting.RED + "No tooltip defined.", 300));
|
||||
|
||||
if ((configElement.getType() == ConfigGuiType.INTEGER
|
||||
&& (Integer.valueOf(configElement.getMinValue().toString()) != Integer.MIN_VALUE || Integer.valueOf(configElement.getMaxValue().toString()) != Integer.MAX_VALUE))
|
||||
|| (configElement.getType() == ConfigGuiType.DOUBLE
|
||||
&& (Double.valueOf(configElement.getMinValue().toString()) != -Double.MAX_VALUE || Double.valueOf(configElement.getMaxValue().toString()) != Double.MAX_VALUE)))
|
||||
toolTip.addAll(this.mc.fontRenderer.listFormattedStringToWidth(
|
||||
toolTip.addAll(this.mc.fontRendererObj.listFormattedStringToWidth(
|
||||
EnumChatFormatting.AQUA + I18n.format("fml.configgui.tooltip.defaultNumeric", configElement.getMinValue(), configElement.getMaxValue(), configElement.getDefault()), 300));
|
||||
else if (configElement.getType() != ConfigGuiType.CONFIG_CATEGORY)
|
||||
toolTip.addAll(this.mc.fontRenderer.listFormattedStringToWidth(EnumChatFormatting.AQUA + I18n.format("fml.configgui.tooltip.default", configElement.getDefault()),300));
|
||||
toolTip.addAll(this.mc.fontRendererObj.listFormattedStringToWidth(EnumChatFormatting.AQUA + I18n.format("fml.configgui.tooltip.default", configElement.getDefault()),300));
|
||||
|
||||
if (configElement.requiresMcRestart() || owningScreen.allRequireMcRestart)
|
||||
toolTip.add(EnumChatFormatting.RED + "[" + I18n.format("fml.configgui.gameRestartTitle") + "]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawEntry(int slotIndex, int x, int y, int listWidth, int slotHeight, Tessellator tessellator, int mouseX, int mouseY, boolean isSelected)
|
||||
public void func_180790_a(int slotIndex, int x, int y, int listWidth, int slotHeight, int mouseX, int mouseY, boolean isSelected)
|
||||
{
|
||||
boolean isChanged = isChanged();
|
||||
|
||||
|
@ -1564,10 +1564,10 @@ public class GuiConfigEntries extends GuiListExtended
|
|||
String label = (!isValidValue ? EnumChatFormatting.RED.toString() :
|
||||
(isChanged ? EnumChatFormatting.WHITE.toString() : EnumChatFormatting.GRAY.toString()))
|
||||
+ (isChanged ? EnumChatFormatting.ITALIC.toString() : "") + this.name;
|
||||
this.mc.fontRenderer.drawString(
|
||||
this.mc.fontRendererObj.drawString(
|
||||
label,
|
||||
this.owningScreen.entryList.labelX,
|
||||
y + slotHeight / 2 - this.mc.fontRenderer.FONT_HEIGHT / 2,
|
||||
y + slotHeight / 2 - this.mc.fontRendererObj.FONT_HEIGHT / 2,
|
||||
16777215);
|
||||
}
|
||||
|
||||
|
@ -1609,13 +1609,13 @@ public class GuiConfigEntries extends GuiListExtended
|
|||
{
|
||||
if (this.btnDefault.mousePressed(this.mc, x, y))
|
||||
{
|
||||
btnDefault.func_146113_a(mc.getSoundHandler());
|
||||
btnDefault.playPressSound(mc.getSoundHandler());
|
||||
setToDefault();
|
||||
return true;
|
||||
}
|
||||
else if (this.btnUndoChanges.mousePressed(this.mc, x, y))
|
||||
{
|
||||
btnUndoChanges.func_146113_a(mc.getSoundHandler());
|
||||
btnUndoChanges.playPressSound(mc.getSoundHandler());
|
||||
undoChanges();
|
||||
return true;
|
||||
}
|
||||
|
@ -1652,6 +1652,9 @@ public class GuiConfigEntries extends GuiListExtended
|
|||
@Override
|
||||
public abstract boolean saveConfigElement();
|
||||
|
||||
@Override
|
||||
public void func_178011_a(int p_178011_1_, int p_178011_2_, int p_178011_3_){}
|
||||
|
||||
@Override
|
||||
public boolean enabled()
|
||||
{
|
||||
|
@ -1661,7 +1664,7 @@ public class GuiConfigEntries extends GuiListExtended
|
|||
@Override
|
||||
public int getLabelWidth()
|
||||
{
|
||||
return this.mc.fontRenderer.getStringWidth(this.name);
|
||||
return this.mc.fontRendererObj.getStringWidth(this.name);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
|
||||
package cpw.mods.fml.client.config;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
@ -21,7 +22,6 @@ import net.minecraft.client.gui.GuiButton;
|
|||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
|
||||
import static cpw.mods.fml.client.config.GuiUtils.RESET_CHAR;
|
||||
import static cpw.mods.fml.client.config.GuiUtils.UNDO_CHAR;
|
||||
|
||||
|
@ -30,7 +30,7 @@ import org.lwjgl.input.Keyboard;
|
|||
/**
|
||||
* This class is the base screen used for editing an array-type property. It provides a list of array entries for the user to edit.
|
||||
* This screen is invoked from a GuiConfig screen by controls that use the EditListPropEntry IGuiConfigListEntry object.
|
||||
*
|
||||
*
|
||||
* @author bspkrs
|
||||
*/
|
||||
public class GuiEditArray extends GuiScreen
|
||||
|
@ -50,7 +50,7 @@ public class GuiEditArray extends GuiScreen
|
|||
@SuppressWarnings("rawtypes")
|
||||
private List toolTip;
|
||||
protected boolean enabled;
|
||||
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
public GuiEditArray(GuiScreen parentScreen, IConfigElement configElement, int slotIndex, Object[] currentValues, boolean enabled)
|
||||
{
|
||||
|
@ -64,20 +64,20 @@ public class GuiEditArray extends GuiScreen
|
|||
this.enabled = enabled;
|
||||
String propName = I18n.format(configElement.getLanguageKey());
|
||||
String comment;
|
||||
|
||||
|
||||
comment = I18n.format(configElement.getLanguageKey() + ".tooltip",
|
||||
"\n" + EnumChatFormatting.AQUA, configElement.getDefault(), configElement.getMinValue(), configElement.getMaxValue());
|
||||
|
||||
|
||||
if (!comment.equals(configElement.getLanguageKey() + ".tooltip"))
|
||||
toolTip = mc.fontRenderer.listFormattedStringToWidth(
|
||||
toolTip = mc.fontRendererObj.listFormattedStringToWidth(
|
||||
EnumChatFormatting.GREEN + propName + "\n" + EnumChatFormatting.YELLOW + comment, 300);
|
||||
else if (configElement.getComment() != null && !configElement.getComment().trim().isEmpty())
|
||||
toolTip = mc.fontRenderer.listFormattedStringToWidth(
|
||||
toolTip = mc.fontRendererObj.listFormattedStringToWidth(
|
||||
EnumChatFormatting.GREEN + propName + "\n" + EnumChatFormatting.YELLOW + configElement.getComment(), 300);
|
||||
else
|
||||
toolTip = mc.fontRenderer.listFormattedStringToWidth(
|
||||
toolTip = mc.fontRendererObj.listFormattedStringToWidth(
|
||||
EnumChatFormatting.GREEN + propName + "\n" + EnumChatFormatting.RED + "No tooltip defined.", 300);
|
||||
|
||||
|
||||
if (parentScreen instanceof GuiConfig)
|
||||
{
|
||||
this.title = ((GuiConfig) parentScreen).title;
|
||||
|
@ -96,18 +96,18 @@ public class GuiEditArray extends GuiScreen
|
|||
this.tooltipHoverChecker = new HoverChecker(8, 17, 0, parentScreen.width, 800);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public void initGui()
|
||||
{
|
||||
this.entryList = new GuiEditArrayEntries(this, this.mc, this.configElement, this.beforeValues, this.currentValues);
|
||||
|
||||
int undoGlyphWidth = mc.fontRenderer.getStringWidth(UNDO_CHAR) * 2;
|
||||
int resetGlyphWidth = mc.fontRenderer.getStringWidth(RESET_CHAR) * 2;
|
||||
int doneWidth = Math.max(mc.fontRenderer.getStringWidth(I18n.format("gui.done")) + 20, 100);
|
||||
int undoWidth = mc.fontRenderer.getStringWidth(" " + I18n.format("fml.configgui.tooltip.undoChanges")) + undoGlyphWidth + 20;
|
||||
int resetWidth = mc.fontRenderer.getStringWidth(" " + I18n.format("fml.configgui.tooltip.resetToDefault")) + resetGlyphWidth + 20;
|
||||
int undoGlyphWidth = mc.fontRendererObj.getStringWidth(UNDO_CHAR) * 2;
|
||||
int resetGlyphWidth = mc.fontRendererObj.getStringWidth(RESET_CHAR) * 2;
|
||||
int doneWidth = Math.max(mc.fontRendererObj.getStringWidth(I18n.format("gui.done")) + 20, 100);
|
||||
int undoWidth = mc.fontRendererObj.getStringWidth(" " + I18n.format("fml.configgui.tooltip.undoChanges")) + undoGlyphWidth + 20;
|
||||
int resetWidth = mc.fontRendererObj.getStringWidth(" " + I18n.format("fml.configgui.tooltip.resetToDefault")) + resetGlyphWidth + 20;
|
||||
int buttonWidthHalf = (doneWidth + 5 + undoWidth + 5 + resetWidth) / 2;
|
||||
this.buttonList.add(btnDone = new GuiButtonExt(2000, this.width / 2 - buttonWidthHalf, this.height - 29, doneWidth, 20, I18n.format("gui.done")));
|
||||
this.buttonList.add(btnDefault = new GuiUnicodeGlyphButton(2001, this.width / 2 - buttonWidthHalf + doneWidth + 5 + undoWidth + 5,
|
||||
|
@ -115,7 +115,7 @@ public class GuiEditArray extends GuiScreen
|
|||
this.buttonList.add(btnUndoChanges = new GuiUnicodeGlyphButton(2002, this.width / 2 - buttonWidthHalf + doneWidth + 5,
|
||||
this.height - 29, undoWidth, 20, " " + I18n.format("fml.configgui.tooltip.undoChanges"), UNDO_CHAR, 2.0F));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void actionPerformed(GuiButton button)
|
||||
{
|
||||
|
@ -142,9 +142,9 @@ public class GuiEditArray extends GuiScreen
|
|||
this.entryList = new GuiEditArrayEntries(this, this.mc, this.configElement, this.beforeValues, this.currentValues);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void mouseClicked(int x, int y, int mouseEvent)
|
||||
protected void mouseClicked(int x, int y, int mouseEvent) throws IOException
|
||||
{
|
||||
if (mouseEvent != 0 || !this.entryList.func_148179_a(x, y, mouseEvent))
|
||||
{
|
||||
|
@ -152,16 +152,16 @@ public class GuiEditArray extends GuiScreen
|
|||
super.mouseClicked(x, y, mouseEvent);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void mouseMovedOrUp(int x, int y, int mouseEvent)
|
||||
protected void mouseReleased(int x, int y, int mouseEvent)
|
||||
{
|
||||
if (mouseEvent != 0 || !this.entryList.func_148181_b(x, y, mouseEvent))
|
||||
{
|
||||
super.mouseMovedOrUp(x, y, mouseEvent);
|
||||
super.mouseReleased(x, y, mouseEvent);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void keyTyped(char eventChar, int eventKey)
|
||||
{
|
||||
|
@ -170,40 +170,40 @@ public class GuiEditArray extends GuiScreen
|
|||
else
|
||||
this.entryList.keyTyped(eventChar, eventKey);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void updateScreen()
|
||||
{
|
||||
super.updateScreen();
|
||||
this.entryList.updateScreen();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void drawScreen(int par1, int par2, float par3)
|
||||
{
|
||||
this.drawDefaultBackground();
|
||||
this.entryList.drawScreen(par1, par2, par3);
|
||||
this.drawCenteredString(this.fontRendererObj, this.title, this.width / 2, 8, 16777215);
|
||||
|
||||
|
||||
if (this.titleLine2 != null)
|
||||
this.drawCenteredString(this.fontRendererObj, this.titleLine2, this.width / 2, 18, 16777215);
|
||||
|
||||
|
||||
if (this.titleLine3 != null)
|
||||
this.drawCenteredString(this.fontRendererObj, this.titleLine3, this.width / 2, 28, 16777215);
|
||||
|
||||
|
||||
this.btnDone.enabled = this.entryList.isListSavable();
|
||||
this.btnDefault.enabled = enabled && !this.entryList.isDefault();
|
||||
this.btnUndoChanges.enabled = enabled && this.entryList.isChanged();
|
||||
super.drawScreen(par1, par2, par3);
|
||||
this.entryList.drawScreenPost(par1, par2, par3);
|
||||
|
||||
|
||||
if (this.tooltipHoverChecker != null && this.tooltipHoverChecker.checkHover(par1, par2))
|
||||
drawToolTip(this.toolTip, par1, par2);
|
||||
}
|
||||
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
public void drawToolTip(List stringList, int x, int y)
|
||||
{
|
||||
this.func_146283_a(stringList, x, y);
|
||||
this.drawHoveringText(stringList, x, y);
|
||||
}
|
||||
}
|
|
@ -34,7 +34,7 @@ import cpw.mods.fml.common.FMLLog;
|
|||
/**
|
||||
* This class implements the scrolling list functionality of the GuiEditList screen. It also provides all the default controls
|
||||
* for editing array-type properties.
|
||||
*
|
||||
*
|
||||
* @author bspkrs
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
|
@ -68,7 +68,7 @@ public class GuiEditArrayEntries extends GuiListExtended
|
|||
listEntries = new ArrayList<IArrayEntry>();
|
||||
|
||||
controlWidth = (parent.width / 2) - (configElement.isListLengthFixed() ? 0 : 48);
|
||||
|
||||
|
||||
if (configElement.isList() && configElement.getArrayEntryClass() != null)
|
||||
{
|
||||
Class<? extends IArrayEntry> clazz = configElement.getArrayEntryClass();
|
||||
|
@ -141,7 +141,7 @@ public class GuiEditArrayEntries extends GuiListExtended
|
|||
listEntries.add(index, new DoubleEntry(this.owningGui, this, this.configElement, 0.0D));
|
||||
else if (configElement.isList())
|
||||
listEntries.add(index, new StringEntry(this.owningGui, this, this.configElement, ""));
|
||||
this.canAddMoreEntries = !configElement.isListLengthFixed()
|
||||
this.canAddMoreEntries = !configElement.isListLengthFixed()
|
||||
&& (configElement.getMaxListLength() == -1 || this.listEntries.size() - 1 < configElement.getMaxListLength());
|
||||
keyTyped((char) Keyboard.CHAR_NONE, Keyboard.KEY_END);
|
||||
}
|
||||
|
@ -149,7 +149,7 @@ public class GuiEditArrayEntries extends GuiListExtended
|
|||
public void removeEntry(int index)
|
||||
{
|
||||
this.listEntries.remove(index);
|
||||
this.canAddMoreEntries = !configElement.isListLengthFixed()
|
||||
this.canAddMoreEntries = !configElement.isListLengthFixed()
|
||||
&& (configElement.getMaxListLength() == -1 || this.listEntries.size() - 1 < configElement.getMaxListLength());
|
||||
keyTyped((char) Keyboard.CHAR_NONE, Keyboard.KEY_END);
|
||||
}
|
||||
|
@ -343,7 +343,7 @@ public class GuiEditArrayEntries extends GuiListExtended
|
|||
}
|
||||
|
||||
public static class IntegerEntry extends StringEntry
|
||||
{
|
||||
{
|
||||
public IntegerEntry(GuiEditArray owningScreen, GuiEditArrayEntries owningEntryList, IConfigElement configElement, Integer value)
|
||||
{
|
||||
super(owningScreen, owningEntryList, configElement, value);
|
||||
|
@ -405,7 +405,7 @@ public class GuiEditArrayEntries extends GuiListExtended
|
|||
public StringEntry(GuiEditArray owningScreen, GuiEditArrayEntries owningEntryList, IConfigElement configElement, Object value)
|
||||
{
|
||||
super(owningScreen, owningEntryList, configElement);
|
||||
this.textFieldValue = new GuiTextField(owningEntryList.mc.fontRenderer, owningEntryList.width / 4 + 1, 0, owningEntryList.controlWidth - 3, 16);
|
||||
this.textFieldValue = new GuiTextField(0, owningEntryList.mc.fontRendererObj, owningEntryList.width / 4 + 1, 0, owningEntryList.controlWidth - 3, 16);
|
||||
this.textFieldValue.setMaxStringLength(10000);
|
||||
this.textFieldValue.setText(value.toString());
|
||||
this.isValidated = configElement.getValidationPattern() != null;
|
||||
|
@ -420,9 +420,9 @@ public class GuiEditArrayEntries extends GuiListExtended
|
|||
}
|
||||
|
||||
@Override
|
||||
public void drawEntry(int slotIndex, int x, int y, int listWidth, int slotHeight, Tessellator tessellator, int mouseX, int mouseY, boolean isSelected)
|
||||
public void func_180790_a(int slotIndex, int x, int y, int listWidth, int slotHeight, int mouseX, int mouseY, boolean isSelected)
|
||||
{
|
||||
super.drawEntry(slotIndex, x, y, listWidth, slotHeight, tessellator, mouseX, mouseY, isSelected);
|
||||
super.func_180790_a(slotIndex, x, y, listWidth, slotHeight, mouseX, mouseY, isSelected);
|
||||
if (configElement.isListLengthFixed() || slotIndex != owningEntryList.listEntries.size() - 1)
|
||||
{
|
||||
this.textFieldValue.setVisible(true);
|
||||
|
@ -486,9 +486,9 @@ public class GuiEditArrayEntries extends GuiListExtended
|
|||
}
|
||||
|
||||
@Override
|
||||
public void drawEntry(int slotIndex, int x, int y, int listWidth, int slotHeight, Tessellator tessellator, int mouseX, int mouseY, boolean isSelected)
|
||||
public void func_180790_a(int slotIndex, int x, int y, int listWidth, int slotHeight, int mouseX, int mouseY, boolean isSelected)
|
||||
{
|
||||
super.drawEntry(slotIndex, x, y, listWidth, slotHeight, tessellator, mouseX, mouseY, isSelected);
|
||||
super.func_180790_a(slotIndex, x, y, listWidth, slotHeight, mouseX, mouseY, isSelected);
|
||||
this.btnValue.xPosition = listWidth / 4;
|
||||
this.btnValue.yPosition = y;
|
||||
|
||||
|
@ -507,7 +507,7 @@ public class GuiEditArrayEntries extends GuiListExtended
|
|||
{
|
||||
if (this.btnValue.mousePressed(owningEntryList.mc, x, y))
|
||||
{
|
||||
btnValue.func_146113_a(owningEntryList.mc.getSoundHandler());
|
||||
btnValue.playPressSound(owningEntryList.mc.getSoundHandler());
|
||||
value = !value;
|
||||
owningEntryList.recalculateState();
|
||||
return true;
|
||||
|
@ -564,13 +564,13 @@ public class GuiEditArrayEntries extends GuiListExtended
|
|||
}
|
||||
|
||||
@Override
|
||||
public void drawEntry(int slotIndex, int x, int y, int listWidth, int slotHeight, Tessellator tessellator, int mouseX, int mouseY, boolean isSelected)
|
||||
public void func_180790_a(int slotIndex, int x, int y, int listWidth, int slotHeight, int mouseX, int mouseY, boolean isSelected)
|
||||
{
|
||||
if (this.getValue() != null && this.isValidated)
|
||||
owningEntryList.mc.fontRenderer.drawString(
|
||||
owningEntryList.mc.fontRendererObj.drawString(
|
||||
isValidValue ? EnumChatFormatting.GREEN + VALID : EnumChatFormatting.RED + INVALID,
|
||||
listWidth / 4 - owningEntryList.mc.fontRenderer.getStringWidth(VALID) - 2,
|
||||
y + slotHeight / 2 - owningEntryList.mc.fontRenderer.FONT_HEIGHT / 2,
|
||||
listWidth / 4 - owningEntryList.mc.fontRendererObj.getStringWidth(VALID) - 2,
|
||||
y + slotHeight / 2 - owningEntryList.mc.fontRendererObj.FONT_HEIGHT / 2,
|
||||
16777215);
|
||||
|
||||
int half = listWidth / 2;
|
||||
|
@ -610,14 +610,14 @@ public class GuiEditArrayEntries extends GuiListExtended
|
|||
{
|
||||
if (this.btnAddNewEntryAbove.mousePressed(owningEntryList.mc, x, y))
|
||||
{
|
||||
btnAddNewEntryAbove.func_146113_a(owningEntryList.mc.getSoundHandler());
|
||||
btnAddNewEntryAbove.playPressSound(owningEntryList.mc.getSoundHandler());
|
||||
owningEntryList.addNewEntry(index);
|
||||
owningEntryList.recalculateState();
|
||||
return true;
|
||||
}
|
||||
else if (this.btnRemoveEntry.mousePressed(owningEntryList.mc, x, y))
|
||||
{
|
||||
btnRemoveEntry.func_146113_a(owningEntryList.mc.getSoundHandler());
|
||||
btnRemoveEntry.playPressSound(owningEntryList.mc.getSoundHandler());
|
||||
owningEntryList.removeEntry(index);
|
||||
owningEntryList.recalculateState();
|
||||
return true;
|
||||
|
@ -656,6 +656,9 @@ public class GuiEditArrayEntries extends GuiListExtended
|
|||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void func_178011_a(int p_178011_1_, int p_178011_2_, int p_178011_3_){}
|
||||
}
|
||||
|
||||
public static interface IArrayEntry extends GuiListExtended.IGuiListEntry
|
||||
|
|
|
@ -27,7 +27,7 @@ import static cpw.mods.fml.client.config.GuiUtils.UNDO_CHAR;
|
|||
|
||||
/**
|
||||
* This class provides a screen that allows the user to select a value from a list.
|
||||
*
|
||||
*
|
||||
* @author bspkrs
|
||||
*/
|
||||
public class GuiSelectString extends GuiScreen
|
||||
|
@ -68,13 +68,13 @@ public class GuiSelectString extends GuiScreen
|
|||
"\n" + EnumChatFormatting.AQUA, configElement.getDefault(), configElement.getMinValue(), configElement.getMaxValue());
|
||||
|
||||
if (!comment.equals(configElement.getLanguageKey() + ".tooltip"))
|
||||
toolTip = mc.fontRenderer.listFormattedStringToWidth(
|
||||
toolTip = mc.fontRendererObj.listFormattedStringToWidth(
|
||||
EnumChatFormatting.GREEN + propName + "\n" + EnumChatFormatting.YELLOW + comment, 300);
|
||||
else if (configElement.getComment() != null && !configElement.getComment().trim().isEmpty())
|
||||
toolTip = mc.fontRenderer.listFormattedStringToWidth(
|
||||
toolTip = mc.fontRendererObj.listFormattedStringToWidth(
|
||||
EnumChatFormatting.GREEN + propName + "\n" + EnumChatFormatting.YELLOW + configElement.getComment(), 300);
|
||||
else
|
||||
toolTip = mc.fontRenderer.listFormattedStringToWidth(
|
||||
toolTip = mc.fontRendererObj.listFormattedStringToWidth(
|
||||
EnumChatFormatting.GREEN + propName + "\n" + EnumChatFormatting.RED + "No tooltip defined.", 300);
|
||||
|
||||
if (parentScreen instanceof GuiConfig)
|
||||
|
@ -98,11 +98,11 @@ public class GuiSelectString extends GuiScreen
|
|||
{
|
||||
this.entriesList = new GuiSelectStringEntries(this, this.mc, this.configElement, this.selectableValues);
|
||||
|
||||
int undoGlyphWidth = mc.fontRenderer.getStringWidth(UNDO_CHAR) * 2;
|
||||
int resetGlyphWidth = mc.fontRenderer.getStringWidth(RESET_CHAR) * 2;
|
||||
int doneWidth = Math.max(mc.fontRenderer.getStringWidth(I18n.format("gui.done")) + 20, 100);
|
||||
int undoWidth = mc.fontRenderer.getStringWidth(" " + I18n.format("fml.configgui.tooltip.undoChanges")) + undoGlyphWidth + 20;
|
||||
int resetWidth = mc.fontRenderer.getStringWidth(" " + I18n.format("fml.configgui.tooltip.resetToDefault")) + resetGlyphWidth + 20;
|
||||
int undoGlyphWidth = mc.fontRendererObj.getStringWidth(UNDO_CHAR) * 2;
|
||||
int resetGlyphWidth = mc.fontRendererObj.getStringWidth(RESET_CHAR) * 2;
|
||||
int doneWidth = Math.max(mc.fontRendererObj.getStringWidth(I18n.format("gui.done")) + 20, 100);
|
||||
int undoWidth = mc.fontRendererObj.getStringWidth(" " + I18n.format("fml.configgui.tooltip.undoChanges")) + undoGlyphWidth + 20;
|
||||
int resetWidth = mc.fontRendererObj.getStringWidth(" " + I18n.format("fml.configgui.tooltip.resetToDefault")) + resetGlyphWidth + 20;
|
||||
int buttonWidthHalf = (doneWidth + 5 + undoWidth + 5 + resetWidth) / 2;
|
||||
this.buttonList.add(btnDone = new GuiButtonExt(2000, this.width / 2 - buttonWidthHalf, this.height - 29, doneWidth, 20, I18n.format("gui.done")));
|
||||
this.buttonList.add(btnDefault = new GuiUnicodeGlyphButton(2001, this.width / 2 - buttonWidthHalf + doneWidth + 5 + undoWidth + 5,
|
||||
|
@ -139,11 +139,11 @@ public class GuiSelectString extends GuiScreen
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void mouseMovedOrUp(int x, int y, int mouseEvent)
|
||||
protected void mouseReleased(int x, int y, int mouseEvent)
|
||||
{
|
||||
if (mouseEvent != 0 || !this.entriesList.func_148181_b(x, y, mouseEvent))
|
||||
{
|
||||
super.mouseMovedOrUp(x, y, mouseEvent);
|
||||
super.mouseReleased(x, y, mouseEvent);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -172,6 +172,6 @@ public class GuiSelectString extends GuiScreen
|
|||
@SuppressWarnings("rawtypes")
|
||||
public void drawToolTip(List stringList, int x, int y)
|
||||
{
|
||||
this.func_146283_a(stringList, x, y);
|
||||
this.drawHoveringText(stringList, x, y);
|
||||
}
|
||||
}
|
|
@ -27,7 +27,7 @@ import cpw.mods.fml.client.config.GuiConfigEntries.SelectValueEntry;
|
|||
|
||||
/**
|
||||
* This class implements the scrolling list functionality of the GuiSelectString screen.
|
||||
*
|
||||
*
|
||||
* @author bspkrs
|
||||
*/
|
||||
public class GuiSelectStringEntries extends GuiListExtended
|
||||
|
@ -40,53 +40,53 @@ public class GuiSelectStringEntries extends GuiListExtended
|
|||
public final Map<Object, String> selectableValues;
|
||||
public int selectedIndex = -1;
|
||||
public int maxEntryWidth = 0;
|
||||
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
public GuiSelectStringEntries(GuiSelectString owningScreen, Minecraft mc, IConfigElement configElement, Map<Object, String> selectableValues)
|
||||
{
|
||||
super(mc, owningScreen.width, owningScreen.height, owningScreen.titleLine2 != null ? (owningScreen.titleLine3 != null ? 43 : 33) : 23,
|
||||
super(mc, owningScreen.width, owningScreen.height, owningScreen.titleLine2 != null ? (owningScreen.titleLine3 != null ? 43 : 33) : 23,
|
||||
owningScreen.height - 32, 11);
|
||||
this.owningScreen = owningScreen;
|
||||
this.mc = mc;
|
||||
this.configElement = configElement;
|
||||
this.selectableValues = selectableValues;
|
||||
this.setShowSelectionBox(true);
|
||||
|
||||
|
||||
listEntries = new ArrayList<IGuiSelectStringListEntry>();
|
||||
|
||||
|
||||
int index = 0;
|
||||
List<Entry<Object, String>> sortedList = new ArrayList<Entry<Object, String>>(selectableValues.entrySet());
|
||||
Collections.sort(sortedList, new EntryComparator());
|
||||
|
||||
|
||||
for (Entry<Object, String> entry : sortedList)
|
||||
{
|
||||
listEntries.add(new ListEntry(this, entry));
|
||||
if (mc.fontRenderer.getStringWidth(entry.getValue()) > maxEntryWidth)
|
||||
maxEntryWidth = mc.fontRenderer.getStringWidth(entry.getValue());
|
||||
|
||||
if (mc.fontRendererObj.getStringWidth(entry.getValue()) > maxEntryWidth)
|
||||
maxEntryWidth = mc.fontRendererObj.getStringWidth(entry.getValue());
|
||||
|
||||
if (owningScreen.currentValue.equals(entry.getKey()))
|
||||
{
|
||||
this.selectedIndex = index;
|
||||
}
|
||||
|
||||
|
||||
index++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static class EntryComparator implements Comparator<Entry<Object, String>>
|
||||
{
|
||||
@Override
|
||||
public int compare(Entry<Object, String> o1, Entry<Object, String> o2)
|
||||
{
|
||||
int compare = o1.getValue().toLowerCase(Locale.US).compareTo(o2.getValue().toLowerCase(Locale.US));
|
||||
|
||||
|
||||
if (compare == 0)
|
||||
compare = o1.getKey().toString().toLowerCase(Locale.US).compareTo(o2.getKey().toString().toLowerCase(Locale.US));
|
||||
|
||||
|
||||
return compare;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* The element in the slot that was clicked, boolean for whether it was double clicked or not
|
||||
*/
|
||||
|
@ -96,7 +96,7 @@ public class GuiSelectStringEntries extends GuiListExtended
|
|||
selectedIndex = index;
|
||||
owningScreen.currentValue = listEntries.get(index).getValue();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns true if the element passed in is currently selected
|
||||
*/
|
||||
|
@ -105,13 +105,13 @@ public class GuiSelectStringEntries extends GuiListExtended
|
|||
{
|
||||
return index == selectedIndex;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected int getScrollBarX()
|
||||
{
|
||||
return width / 2 + this.maxEntryWidth / 2 + 5;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the width of the list
|
||||
*/
|
||||
|
@ -120,29 +120,29 @@ public class GuiSelectStringEntries extends GuiListExtended
|
|||
{
|
||||
return maxEntryWidth + 5;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public IGuiSelectStringListEntry getListEntry(int index)
|
||||
{
|
||||
return listEntries.get(index);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected int getSize()
|
||||
{
|
||||
return listEntries.size();
|
||||
}
|
||||
|
||||
|
||||
public boolean isChanged()
|
||||
{
|
||||
return owningScreen.beforeValue != null ? !owningScreen.beforeValue.equals(owningScreen.currentValue) : owningScreen.currentValue != null;
|
||||
}
|
||||
|
||||
|
||||
public boolean isDefault()
|
||||
{
|
||||
return owningScreen.currentValue != null ? owningScreen.currentValue.equals(configElement.getDefault()) : configElement.getDefault() == null;
|
||||
}
|
||||
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public void saveChanges()
|
||||
{
|
||||
|
@ -151,47 +151,50 @@ public class GuiSelectStringEntries extends GuiListExtended
|
|||
&& ((GuiConfig) owningScreen.parentScreen).entryList.getListEntry(owningScreen.slotIndex) instanceof SelectValueEntry)
|
||||
{
|
||||
SelectValueEntry entry = (SelectValueEntry) ((GuiConfig) owningScreen.parentScreen).entryList.getListEntry(owningScreen.slotIndex);
|
||||
|
||||
|
||||
entry.setValueFromChildScreen(owningScreen.currentValue);
|
||||
}
|
||||
else
|
||||
configElement.set(owningScreen.currentValue);
|
||||
}
|
||||
|
||||
|
||||
public static class ListEntry implements IGuiSelectStringListEntry
|
||||
{
|
||||
protected final GuiSelectStringEntries owningList;
|
||||
protected final Entry<Object, String> value;
|
||||
|
||||
|
||||
public ListEntry(GuiSelectStringEntries owningList, Entry<Object, String> value)
|
||||
{
|
||||
this.owningList = owningList;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void drawEntry(int slotIndex, int x, int y, int listWidth, int slotHeight, Tessellator tessellator, int mouseX, int mouseY, boolean isSelected)
|
||||
public void func_180790_a(int slotIndex, int x, int y, int listWidth, int slotHeight, int mouseX, int mouseY, boolean isSelected)
|
||||
{
|
||||
owningList.mc.fontRenderer.drawString(value.getValue(), x + 1, y, slotIndex == owningList.selectedIndex ? 16777215 : 14737632);
|
||||
owningList.mc.fontRendererObj.drawString(value.getValue(), x + 1, y, slotIndex == owningList.selectedIndex ? 16777215 : 14737632);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean mousePressed(int index, int x, int y, int mouseEvent, int relativeX, int relativeY)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void mouseReleased(int index, int x, int y, int mouseEvent, int relativeX, int relativeY)
|
||||
{}
|
||||
|
||||
|
||||
@Override
|
||||
public Object getValue()
|
||||
{
|
||||
return value.getKey();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void func_178011_a(int p_178011_1_, int p_178011_2_, int p_178011_3_){}
|
||||
}
|
||||
|
||||
|
||||
public static interface IGuiSelectStringListEntry extends GuiListExtended.IGuiListEntry
|
||||
{
|
||||
public Object getValue();
|
||||
|
|
|
@ -18,32 +18,32 @@ import org.lwjgl.opengl.GL11;
|
|||
|
||||
/**
|
||||
* This class provides a button that shows a string glyph at the beginning. The glyph can be scaled using the glyphScale parameter.
|
||||
*
|
||||
*
|
||||
* @author bspkrs
|
||||
*/
|
||||
public class GuiUnicodeGlyphButton extends GuiButtonExt
|
||||
{
|
||||
public String glyph;
|
||||
public float glyphScale;
|
||||
|
||||
|
||||
public GuiUnicodeGlyphButton(int id, int xPos, int yPos, int width, int height, String displayString, String glyph, float glyphScale)
|
||||
{
|
||||
super(id, xPos, yPos, width, height, displayString);
|
||||
this.glyph = glyph;
|
||||
this.glyphScale = glyphScale;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void drawButton(Minecraft mc, int mouseX, int mouseY)
|
||||
{
|
||||
if (this.visible)
|
||||
{
|
||||
this.field_146123_n = mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition + this.width && mouseY < this.yPosition + this.height;
|
||||
int k = this.getHoverState(this.field_146123_n);
|
||||
this.hovered = mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition + this.width && mouseY < this.yPosition + this.height;
|
||||
int k = this.getHoverState(this.hovered);
|
||||
GuiUtils.drawContinuousTexturedBox(buttonTextures, this.xPosition, this.yPosition, 0, 46 + k * 20, this.width, this.height, 200, 20, 2, 3, 2, 2, this.zLevel);
|
||||
this.mouseDragged(mc, mouseX, mouseY);
|
||||
int color = 14737632;
|
||||
|
||||
|
||||
if (packedFGColour != 0)
|
||||
{
|
||||
color = packedFGColour;
|
||||
|
@ -52,31 +52,31 @@ public class GuiUnicodeGlyphButton extends GuiButtonExt
|
|||
{
|
||||
color = 10526880;
|
||||
}
|
||||
else if (this.field_146123_n)
|
||||
else if (this.hovered)
|
||||
{
|
||||
color = 16777120;
|
||||
}
|
||||
|
||||
|
||||
String buttonText = this.displayString;
|
||||
int glyphWidth = (int) (mc.fontRenderer.getStringWidth(glyph) * glyphScale);
|
||||
int strWidth = mc.fontRenderer.getStringWidth(buttonText);
|
||||
int elipsisWidth = mc.fontRenderer.getStringWidth("...");
|
||||
int glyphWidth = (int) (mc.fontRendererObj.getStringWidth(glyph) * glyphScale);
|
||||
int strWidth = mc.fontRendererObj.getStringWidth(buttonText);
|
||||
int elipsisWidth = mc.fontRendererObj.getStringWidth("...");
|
||||
int totalWidth = strWidth + glyphWidth;
|
||||
|
||||
|
||||
if (totalWidth > width - 6 && totalWidth > elipsisWidth)
|
||||
buttonText = mc.fontRenderer.trimStringToWidth(buttonText, width - 6 - elipsisWidth).trim() + "...";
|
||||
|
||||
strWidth = mc.fontRenderer.getStringWidth(buttonText);
|
||||
buttonText = mc.fontRendererObj.trimStringToWidth(buttonText, width - 6 - elipsisWidth).trim() + "...";
|
||||
|
||||
strWidth = mc.fontRendererObj.getStringWidth(buttonText);
|
||||
totalWidth = glyphWidth + strWidth;
|
||||
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glScalef(glyphScale, glyphScale, 1.0F);
|
||||
this.drawCenteredString(mc.fontRenderer, glyph,
|
||||
this.drawCenteredString(mc.fontRendererObj, glyph,
|
||||
(int) (((this.xPosition + (this.width / 2) - (strWidth / 2)) / glyphScale) - (glyphWidth / (2 * glyphScale)) + 2),
|
||||
(int) (((this.yPosition + ((this.height - 8) / glyphScale) / 2) - 1) / glyphScale), color);
|
||||
GL11.glPopMatrix();
|
||||
|
||||
this.drawCenteredString(mc.fontRenderer, buttonText, (int) (this.xPosition + (this.width / 2) + (glyphWidth / glyphScale)),
|
||||
|
||||
this.drawCenteredString(mc.fontRendererObj, buttonText, (int) (this.xPosition + (this.width / 2) + (glyphWidth / glyphScale)),
|
||||
this.yPosition + (this.height - 8) / 2, color);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,22 +15,23 @@ package cpw.mods.fml.client.config;
|
|||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.OpenGlHelper;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.WorldRenderer;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
/**
|
||||
* This class provides several methods and constants used by the Config GUI classes.
|
||||
*
|
||||
*
|
||||
* @author bspkrs
|
||||
*/
|
||||
public class GuiUtils
|
||||
public class GuiUtils
|
||||
{
|
||||
public static final String UNDO_CHAR = "\u21B6";
|
||||
public static final String RESET_CHAR = "\u2604";
|
||||
public static final String VALID = "\u2714";
|
||||
public static final String INVALID = "\u2715";
|
||||
|
||||
|
||||
private static int[] colorCodes = new int[] { 0, 170, 43520, 43690, 11141120, 11141290, 16755200, 11184810, 5592405, 5592575, 5635925, 5636095, 16733525, 16733695, 16777045, 16777215,
|
||||
0, 42, 10752, 10794, 2752512, 2752554, 2763264, 2763306, 1381653, 1381695, 1392405, 1392447, 4134165, 4134207, 4144917, 4144959 };
|
||||
|
||||
|
@ -42,7 +43,7 @@ public class GuiUtils
|
|||
* Draws a textured box of any size (smallest size is borderSize * 2 square) based on a fixed size textured box with continuous borders
|
||||
* and filler. It is assumed that the desired texture ResourceLocation object has been bound using
|
||||
* Minecraft.getMinecraft().getTextureManager().bindTexture(resourceLocation).
|
||||
*
|
||||
*
|
||||
* @param x x axis offset
|
||||
* @param y y axis offset
|
||||
* @param u bound resource location image x offset
|
||||
|
@ -59,12 +60,12 @@ public class GuiUtils
|
|||
{
|
||||
drawContinuousTexturedBox(x, y, u, v, width, height, textureWidth, textureHeight, borderSize, borderSize, borderSize, borderSize, zLevel);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Draws a textured box of any size (smallest size is borderSize * 2 square) based on a fixed size textured box with continuous borders
|
||||
* and filler. The provided ResourceLocation object will be bound using
|
||||
* Minecraft.getMinecraft().getTextureManager().bindTexture(resourceLocation).
|
||||
*
|
||||
*
|
||||
* @param res the ResourceLocation object that contains the desired image
|
||||
* @param x x axis offset
|
||||
* @param y y axis offset
|
||||
|
@ -82,12 +83,12 @@ public class GuiUtils
|
|||
{
|
||||
drawContinuousTexturedBox(res, x, y, u, v, width, height, textureWidth, textureHeight, borderSize, borderSize, borderSize, borderSize, zLevel);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Draws a textured box of any size (smallest size is borderSize * 2 square) based on a fixed size textured box with continuous borders
|
||||
* and filler. The provided ResourceLocation object will be bound using
|
||||
* Minecraft.getMinecraft().getTextureManager().bindTexture(resourceLocation).
|
||||
*
|
||||
*
|
||||
* @param res the ResourceLocation object that contains the desired image
|
||||
* @param x x axis offset
|
||||
* @param y y axis offset
|
||||
|
@ -109,12 +110,12 @@ public class GuiUtils
|
|||
Minecraft.getMinecraft().getTextureManager().bindTexture(res);
|
||||
drawContinuousTexturedBox(x, y, u, v, width, height, textureWidth, textureHeight, topBorder, bottomBorder, leftBorder, rightBorder, zLevel);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Draws a textured box of any size (smallest size is borderSize * 2 square) based on a fixed size textured box with continuous borders
|
||||
* and filler. It is assumed that the desired texture ResourceLocation object has been bound using
|
||||
* Minecraft.getMinecraft().getTextureManager().bindTexture(resourceLocation).
|
||||
*
|
||||
*
|
||||
* @param x x axis offset
|
||||
* @param y y axis offset
|
||||
* @param u bound resource location image x offset
|
||||
|
@ -136,7 +137,7 @@ public class GuiUtils
|
|||
GL11.glEnable(GL11.GL_BLEND);
|
||||
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
|
||||
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
|
||||
|
||||
|
||||
int fillerWidth = textureWidth - leftBorder - rightBorder;
|
||||
int fillerHeight = textureHeight - topBorder - bottomBorder;
|
||||
int canvasWidth = width - leftBorder - rightBorder;
|
||||
|
@ -145,7 +146,7 @@ public class GuiUtils
|
|||
int remainderWidth = canvasWidth % fillerWidth;
|
||||
int yPasses = canvasHeight / fillerHeight;
|
||||
int remainderHeight = canvasHeight % fillerHeight;
|
||||
|
||||
|
||||
// Draw Border
|
||||
// Top Left
|
||||
drawTexturedModalRect(x, y, u, v, leftBorder, topBorder, zLevel);
|
||||
|
@ -155,19 +156,19 @@ public class GuiUtils
|
|||
drawTexturedModalRect(x, y + topBorder + canvasHeight, u, v + topBorder + fillerHeight, leftBorder, bottomBorder, zLevel);
|
||||
// Bottom Right
|
||||
drawTexturedModalRect(x + leftBorder + canvasWidth, y + topBorder + canvasHeight, u + leftBorder + fillerWidth, v + topBorder + fillerHeight, rightBorder, bottomBorder, zLevel);
|
||||
|
||||
|
||||
for (int i = 0; i < xPasses + (remainderWidth > 0 ? 1 : 0); i++)
|
||||
{
|
||||
// Top Border
|
||||
drawTexturedModalRect(x + leftBorder + (i * fillerWidth), y, u + leftBorder, v, (i == xPasses ? remainderWidth : fillerWidth), topBorder, zLevel);
|
||||
// Bottom Border
|
||||
drawTexturedModalRect(x + leftBorder + (i * fillerWidth), y + topBorder + canvasHeight, u + leftBorder, v + topBorder + fillerHeight, (i == xPasses ? remainderWidth : fillerWidth), bottomBorder, zLevel);
|
||||
|
||||
|
||||
// Throw in some filler for good measure
|
||||
for (int j = 0; j < yPasses + (remainderHeight > 0 ? 1 : 0); j++)
|
||||
drawTexturedModalRect(x + leftBorder + (i * fillerWidth), y + topBorder + (j * fillerHeight), u + leftBorder, v + topBorder, (i == xPasses ? remainderWidth : fillerWidth), (j == yPasses ? remainderHeight : fillerHeight), zLevel);
|
||||
}
|
||||
|
||||
|
||||
// Side Borders
|
||||
for (int j = 0; j < yPasses + (remainderHeight > 0 ? 1 : 0); j++)
|
||||
{
|
||||
|
@ -177,17 +178,18 @@ public class GuiUtils
|
|||
drawTexturedModalRect(x + leftBorder + canvasWidth, y + topBorder + (j * fillerHeight), u + leftBorder + fillerWidth, v + topBorder, rightBorder, (j == yPasses ? remainderHeight : fillerHeight), zLevel);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void drawTexturedModalRect(int x, int y, int u, int v, int width, int height, float zLevel)
|
||||
{
|
||||
float var7 = 0.00390625F;
|
||||
float var8 = 0.00390625F;
|
||||
Tessellator tessellator = Tessellator.instance;
|
||||
tessellator.startDrawingQuads();
|
||||
tessellator.addVertexWithUV((x + 0), (y + height), zLevel, ((u + 0) * var7), ((v + height) * var8));
|
||||
tessellator.addVertexWithUV((x + width), (y + height), zLevel, ((u + width) * var7), ((v + height) * var8));
|
||||
tessellator.addVertexWithUV((x + width), (y + 0), zLevel, ((u + width) * var7), ((v + 0) * var8));
|
||||
tessellator.addVertexWithUV((x + 0), (y + 0), zLevel, ((u + 0) * var7), ((v + 0) * var8));
|
||||
Tessellator tessellator = Tessellator.func_178181_a();
|
||||
WorldRenderer worldr = tessellator.func_178180_c();
|
||||
worldr.func_178970_b();
|
||||
worldr.func_178985_a((x + 0), (y + height), zLevel, ((u + 0) * var7), ((v + height) * var8));
|
||||
worldr.func_178985_a((x + width), (y + height), zLevel, ((u + width) * var7), ((v + height) * var8));
|
||||
worldr.func_178985_a((x + width), (y + 0), zLevel, ((u + width) * var7), ((v + 0) * var8));
|
||||
worldr.func_178985_a((x + 0), (y + 0), zLevel, ((u + 0) * var7), ((v + 0) * var8));
|
||||
tessellator.draw();
|
||||
}
|
||||
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
/*
|
||||
* Forge Mod Loader
|
||||
* Copyright (c) 2012-2013 cpw.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the GNU Lesser Public License v2.1
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
*
|
||||
* Contributors:
|
||||
* cpw - implementation
|
||||
*/
|
||||
|
||||
package cpw.mods.fml.client.registry;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
|
||||
public interface ISimpleBlockRenderingHandler
|
||||
{
|
||||
public abstract void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer);
|
||||
|
||||
public abstract boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer);
|
||||
|
||||
public abstract boolean shouldRender3DInInventory(int modelId);
|
||||
|
||||
public abstract int getRenderId();
|
||||
}
|
|
@ -16,7 +16,7 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.entity.Render;
|
||||
import net.minecraft.client.renderer.entity.RenderBiped;
|
||||
import net.minecraft.client.renderer.entity.RenderManager;
|
||||
|
@ -35,23 +35,8 @@ public class RenderingRegistry
|
|||
{
|
||||
private static final RenderingRegistry INSTANCE = new RenderingRegistry();
|
||||
|
||||
private int nextRenderId = 42;
|
||||
|
||||
private Map<Integer, ISimpleBlockRenderingHandler> blockRenderers = Maps.newHashMap();
|
||||
|
||||
private List<EntityRendererInfo> entityRenderers = Lists.newArrayList();
|
||||
|
||||
/**
|
||||
* Add a new armour prefix to the RenderPlayer
|
||||
*
|
||||
* @param armor
|
||||
*/
|
||||
public static int addNewArmourRendererPrefix(String armor)
|
||||
{
|
||||
RenderBiped.bipedArmorFilenamePrefix = ObjectArrays.concat(RenderBiped.bipedArmorFilenamePrefix, armor);
|
||||
return RenderBiped.bipedArmorFilenamePrefix.length - 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Register an entity rendering handler. This will, after mod initialization, be inserted into the main
|
||||
* render map for entities
|
||||
|
@ -64,37 +49,6 @@ public class RenderingRegistry
|
|||
instance().entityRenderers.add(new EntityRendererInfo(entityClass, renderer));
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a simple block rendering handler
|
||||
*
|
||||
* @param handler
|
||||
*/
|
||||
public static void registerBlockHandler(ISimpleBlockRenderingHandler handler)
|
||||
{
|
||||
instance().blockRenderers.put(handler.getRenderId(), handler);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the simple block rendering handler
|
||||
* This version will not call getRenderId on the passed in handler, instead using the supplied ID, so you
|
||||
* can easily re-use the same rendering handler for multiple IDs
|
||||
*
|
||||
* @param renderId
|
||||
* @param handler
|
||||
*/
|
||||
public static void registerBlockHandler(int renderId, ISimpleBlockRenderingHandler handler)
|
||||
{
|
||||
instance().blockRenderers.put(renderId, handler);
|
||||
}
|
||||
/**
|
||||
* Get the next available renderId from the block render ID list
|
||||
*/
|
||||
public static int getNextAvailableRenderId()
|
||||
{
|
||||
return instance().nextRenderId++;
|
||||
}
|
||||
|
||||
|
||||
@Deprecated public static RenderingRegistry instance()
|
||||
{
|
||||
return INSTANCE;
|
||||
|
@ -111,32 +65,13 @@ public class RenderingRegistry
|
|||
private Render renderer;
|
||||
}
|
||||
|
||||
public boolean renderWorldBlock(RenderBlocks renderer, IBlockAccess world, int x, int y, int z, Block block, int modelId)
|
||||
{
|
||||
if (!blockRenderers.containsKey(modelId)) { return false; }
|
||||
ISimpleBlockRenderingHandler bri = blockRenderers.get(modelId);
|
||||
return bri.renderWorldBlock(world, x, y, z, block, modelId, renderer);
|
||||
}
|
||||
|
||||
public void renderInventoryBlock(RenderBlocks renderer, Block block, int metadata, int modelID)
|
||||
{
|
||||
if (!blockRenderers.containsKey(modelID)) { return; }
|
||||
ISimpleBlockRenderingHandler bri = blockRenderers.get(modelID);
|
||||
bri.renderInventoryBlock(block, metadata, modelID, renderer);
|
||||
}
|
||||
|
||||
public boolean renderItemAsFull3DBlock(int modelId)
|
||||
{
|
||||
ISimpleBlockRenderingHandler bri = blockRenderers.get(modelId);
|
||||
return bri != null && bri.shouldRender3DInInventory(modelId);
|
||||
}
|
||||
|
||||
/*
|
||||
public void loadEntityRenderers(Map<Class<? extends Entity>, Render> rendererMap)
|
||||
{
|
||||
for (EntityRendererInfo info : entityRenderers)
|
||||
{
|
||||
rendererMap.put(info.target, info.renderer);
|
||||
info.renderer.setRenderManager(RenderManager.instance);
|
||||
info.renderer.setRenderManager(Minecraft.getMinecraft().func_175598_ae());
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
|
|
@ -580,11 +580,6 @@ public class FMLCommonHandler
|
|||
return sidedDelegate.getClientPlayHandler();
|
||||
}
|
||||
|
||||
public void waitForPlayClient()
|
||||
{
|
||||
sidedDelegate.waitForPlayClient();
|
||||
}
|
||||
|
||||
public void fireNetRegistrationEvent(NetworkManager manager, Set<String> channelSet, String channel, Side side)
|
||||
{
|
||||
sidedDelegate.fireNetRegistrationEvent(bus(), manager, channelSet, channel, side);
|
||||
|
|
|
@ -54,8 +54,6 @@ public interface IFMLSidedHandler
|
|||
|
||||
INetHandler getClientPlayHandler();
|
||||
|
||||
void waitForPlayClient();
|
||||
|
||||
void fireNetRegistrationEvent(EventBus bus, NetworkManager manager, Set<String> channelSet, String channel, Side side);
|
||||
|
||||
boolean shouldAllowPlayerLogins();
|
||||
|
|
|
@ -105,7 +105,7 @@ import cpw.mods.fml.relauncher.Side;
|
|||
*/
|
||||
public class Loader
|
||||
{
|
||||
public static final String MC_VERSION = "1.7.10";
|
||||
public static final String MC_VERSION = "1.8";
|
||||
private static final Splitter DEPENDENCYPARTSPLITTER = Splitter.on(":").omitEmptyStrings().trimResults();
|
||||
private static final Splitter DEPENDENCYSPLITTER = Splitter.on(";").omitEmptyStrings().trimResults();
|
||||
/**
|
||||
|
|
|
@ -49,7 +49,6 @@ public enum LoaderState
|
|||
|
||||
|
||||
private Class<? extends FMLStateEvent> eventClass;
|
||||
@SuppressWarnings("unused")
|
||||
private String name;
|
||||
|
||||
private LoaderState(String name, Class<? extends FMLStateEvent> event)
|
||||
|
|
|
@ -34,7 +34,6 @@ import cpw.mods.fml.common.versioning.VersionParser;
|
|||
|
||||
public class MetadataCollection
|
||||
{
|
||||
@SuppressWarnings("unused")
|
||||
private String modListVersion;
|
||||
private ModMetadata[] modList;
|
||||
private Map<String, ModMetadata> metadatas = Maps.newHashMap();
|
||||
|
|
|
@ -22,7 +22,6 @@ import cpw.mods.fml.common.versioning.VersionParser;
|
|||
|
||||
public class ModAPIManager {
|
||||
public static final ModAPIManager INSTANCE = new ModAPIManager();
|
||||
@SuppressWarnings("unused")
|
||||
private ModAPITransformer transformer;
|
||||
private ASMDataTable dataTable;
|
||||
private Map<String,APIContainer> apiContainers;
|
||||
|
|
|
@ -27,9 +27,7 @@ public class ModAnnotation
|
|||
{
|
||||
public class EnumHolder
|
||||
{
|
||||
@SuppressWarnings("unused")
|
||||
private String desc;
|
||||
@SuppressWarnings("unused")
|
||||
private String value;
|
||||
|
||||
public EnumHolder(String desc, String value)
|
||||
|
|
|
@ -19,7 +19,6 @@ public class ModAnnotationVisitor extends AnnotationVisitor
|
|||
{
|
||||
private ASMModParser discoverer;
|
||||
private boolean array;
|
||||
@SuppressWarnings("unused")
|
||||
private String name;
|
||||
private boolean isSubAnnotation;
|
||||
|
||||
|
|
|
@ -33,7 +33,6 @@ public class EventBus implements IEventExceptionHandler
|
|||
{
|
||||
ListenerList.resize(busID + 1);
|
||||
exceptionHandler = this;
|
||||
register(this);
|
||||
}
|
||||
|
||||
public EventBus(@Nonnull IEventExceptionHandler handler)
|
||||
|
|
|
@ -144,14 +144,7 @@ public class ByteBufUtils {
|
|||
public static void writeItemStack(ByteBuf to, ItemStack stack)
|
||||
{
|
||||
PacketBuffer pb = new PacketBuffer(to);
|
||||
try
|
||||
{
|
||||
pb.writeItemStackToBuffer(stack);
|
||||
} catch (IOException e)
|
||||
{
|
||||
// Unpossible?
|
||||
throw Throwables.propagate(e);
|
||||
}
|
||||
pb.writeItemStackToBuffer(stack);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -182,14 +175,7 @@ public class ByteBufUtils {
|
|||
public static void writeTag(ByteBuf to, NBTTagCompound tag)
|
||||
{
|
||||
PacketBuffer pb = new PacketBuffer(to);
|
||||
try
|
||||
{
|
||||
pb.writeNBTTagCompoundToBuffer(tag);
|
||||
} catch (IOException e)
|
||||
{
|
||||
// Unpossible?
|
||||
throw Throwables.propagate(e);
|
||||
}
|
||||
pb.writeNBTTagCompoundToBuffer(tag);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -42,7 +42,7 @@ public class FMLEventChannel {
|
|||
if (msg.handler() instanceof NetHandlerPlayServer)
|
||||
{
|
||||
NetHandlerPlayServer server = (NetHandlerPlayServer) msg.handler();
|
||||
event = new FMLNetworkEvent.ServerCustomPacketEvent(server.func_147362_b(), msg);
|
||||
event = new FMLNetworkEvent.ServerCustomPacketEvent(server.getNetworkManager(), msg);
|
||||
}
|
||||
return event;
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ public class FMLEventChannel {
|
|||
else if (msg.handler() instanceof NetHandlerPlayServer)
|
||||
{
|
||||
NetHandlerPlayServer server = (NetHandlerPlayServer) msg.handler();
|
||||
event = new FMLNetworkEvent.ServerCustomPacketEvent(server.func_147362_b(), msg);
|
||||
event = new FMLNetworkEvent.ServerCustomPacketEvent(server.getNetworkManager(), msg);
|
||||
}
|
||||
return event;
|
||||
}
|
||||
|
|
|
@ -8,9 +8,14 @@ import io.netty.channel.ChannelHandler.Sharable;
|
|||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.MessageToMessageCodec;
|
||||
import io.netty.util.AttributeKey;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.network.PacketBuffer;
|
||||
|
||||
import org.apache.logging.log4j.Level;
|
||||
|
||||
import cpw.mods.fml.common.FMLLog;
|
||||
import cpw.mods.fml.common.network.internal.FMLProxyPacket;
|
||||
|
||||
|
@ -43,13 +48,13 @@ public abstract class FMLIndexedMessageToMessageCodec<A> extends MessageToMessag
|
|||
@Override
|
||||
protected final void encode(ChannelHandlerContext ctx, A msg, List<Object> out) throws Exception
|
||||
{
|
||||
ByteBuf buffer = Unpooled.buffer();
|
||||
PacketBuffer buffer = new PacketBuffer(Unpooled.buffer());
|
||||
@SuppressWarnings("unchecked") // Stupid unnecessary cast I can't seem to kill
|
||||
Class<? extends A> clazz = (Class<? extends A>) msg.getClass();
|
||||
byte discriminator = types.get(clazz);
|
||||
buffer.writeByte(discriminator);
|
||||
encodeInto(ctx, msg, buffer);
|
||||
FMLProxyPacket proxy = new FMLProxyPacket(buffer.copy(), ctx.channel().attr(NetworkRegistry.FML_CHANNEL).get());
|
||||
FMLProxyPacket proxy = new FMLProxyPacket(buffer/*.copy()*/, ctx.channel().attr(NetworkRegistry.FML_CHANNEL).get());
|
||||
WeakReference<FMLProxyPacket> ref = ctx.attr(INBOUNDPACKETTRACKER).get().get();
|
||||
FMLProxyPacket old = ref == null ? null : ref.get();
|
||||
if (old != null)
|
||||
|
|
|
@ -13,7 +13,6 @@ import cpw.mods.fml.relauncher.Side;
|
|||
public class FMLNetworkEvent<T extends INetHandler> extends Event {
|
||||
public final T handler;
|
||||
public final NetworkManager manager;
|
||||
@SuppressWarnings("unused")
|
||||
private final Class<T> type;
|
||||
|
||||
FMLNetworkEvent(T thing, Class<T> type, NetworkManager manager)
|
||||
|
|
|
@ -9,6 +9,8 @@ import java.util.Map;
|
|||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
|
||||
import net.minecraft.network.PacketBuffer;
|
||||
|
||||
import com.google.common.base.Charsets;
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.collect.Iterables;
|
||||
|
@ -25,7 +27,7 @@ public abstract class FMLHandshakeMessage {
|
|||
public static FMLProxyPacket makeCustomChannelRegistration(Set<String> channels)
|
||||
{
|
||||
String salutation = Joiner.on('\0').join(Iterables.concat(Arrays.asList("FML|HS","FML"),channels));
|
||||
FMLProxyPacket proxy = new FMLProxyPacket(Unpooled.wrappedBuffer(salutation.getBytes(Charsets.UTF_8)), "REGISTER");
|
||||
FMLProxyPacket proxy = new FMLProxyPacket(new PacketBuffer(Unpooled.wrappedBuffer(salutation.getBytes(Charsets.UTF_8))), "REGISTER");
|
||||
return proxy;
|
||||
}
|
||||
public static class ServerHello extends FMLHandshakeMessage {
|
||||
|
|
|
@ -151,7 +151,7 @@ public class NetworkDispatcher extends SimpleChannelInboundHandler<Packet> imple
|
|||
void clientListenForServerHandshake()
|
||||
{
|
||||
manager.setConnectionState(EnumConnectionState.PLAY);
|
||||
FMLCommonHandler.instance().waitForPlayClient();
|
||||
//FMLCommonHandler.instance().waitForPlayClient();
|
||||
this.netHandler = FMLCommonHandler.instance().getClientPlayHandler();
|
||||
this.state = ConnectionState.AWAITING_HANDSHAKE;
|
||||
}
|
||||
|
@ -235,7 +235,7 @@ public class NetworkDispatcher extends SimpleChannelInboundHandler<Packet> imple
|
|||
}
|
||||
else
|
||||
{
|
||||
manager.scheduleOutboundPacket(new S40PacketDisconnect(chatcomponenttext), new GenericFutureListener<Future<?>>()
|
||||
manager.func_179288_a(new S40PacketDisconnect(chatcomponenttext), new GenericFutureListener<Future<?>>()
|
||||
{
|
||||
@Override
|
||||
public void operationComplete(Future<?> result)
|
||||
|
@ -345,7 +345,7 @@ public class NetworkDispatcher extends SimpleChannelInboundHandler<Packet> imple
|
|||
|
||||
public void sendProxy(FMLProxyPacket msg)
|
||||
{
|
||||
manager.scheduleOutboundPacket(msg);
|
||||
manager.func_179290_a(msg);
|
||||
}
|
||||
|
||||
public void rejectHandshake(String result)
|
||||
|
@ -455,7 +455,7 @@ public class NetworkDispatcher extends SimpleChannelInboundHandler<Packet> imple
|
|||
public void abortClientHandshake(String type)
|
||||
{
|
||||
FMLLog.log(Level.INFO, "Aborting client handshake \"%s\"", type);
|
||||
FMLCommonHandler.instance().waitForPlayClient();
|
||||
//FMLCommonHandler.instance().waitForPlayClient();
|
||||
completeClientSideConnection(ConnectionType.valueOf(type));
|
||||
}
|
||||
|
||||
|
|
|
@ -4,9 +4,10 @@ import io.netty.channel.ChannelHandlerContext;
|
|||
import io.netty.channel.SimpleChannelInboundHandler;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.logging.log4j.Level;
|
||||
|
||||
import net.minecraft.client.entity.EntityClientPlayerMP;
|
||||
import net.minecraft.client.entity.EntityPlayerSP;
|
||||
import net.minecraft.client.multiplayer.WorldClient;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
|
@ -93,7 +94,7 @@ public class EntitySpawnHandler extends SimpleChannelInboundHandler<FMLMessage.E
|
|||
entity.serverPosY = spawnMsg.rawY;
|
||||
entity.serverPosZ = spawnMsg.rawZ;
|
||||
|
||||
EntityClientPlayerMP clientPlayer = FMLClientHandler.instance().getClientPlayerEntity();
|
||||
EntityPlayerSP clientPlayer = FMLClientHandler.instance().getClientPlayerEntity();
|
||||
if (entity instanceof IThrowableEntity)
|
||||
{
|
||||
Entity thrower = clientPlayer.getEntityId() == spawnMsg.throwerId ? clientPlayer : wc.getEntityByID(spawnMsg.throwerId);
|
||||
|
|
|
@ -85,7 +85,7 @@ public class FMLNetworkHandler
|
|||
embeddedChannel.writeOutbound(openGui);
|
||||
entityPlayerMP.openContainer = remoteGuiContainer;
|
||||
entityPlayerMP.openContainer.windowId = windowId;
|
||||
entityPlayerMP.openContainer.addCraftingToCrafters(entityPlayerMP);
|
||||
entityPlayerMP.openContainer.onCraftGuiOpened(entityPlayerMP);
|
||||
}
|
||||
}
|
||||
else if (FMLCommonHandler.instance().getSide().equals(Side.CLIENT))
|
||||
|
|
|
@ -22,32 +22,28 @@ import cpw.mods.fml.common.network.NetworkRegistry;
|
|||
import cpw.mods.fml.common.network.handshake.NetworkDispatcher;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
|
||||
public class FMLProxyPacket extends Packet {
|
||||
public class FMLProxyPacket implements Packet {
|
||||
final String channel;
|
||||
private Side target;
|
||||
private final ByteBuf payload;
|
||||
private final PacketBuffer payload;
|
||||
private INetHandler netHandler;
|
||||
private NetworkDispatcher dispatcher;
|
||||
private static Multiset<String> badPackets = ConcurrentHashMultiset.create();
|
||||
private static int packetCountWarning = Integers.parseInt(System.getProperty("fml.badPacketCounter", "100"), 100);
|
||||
private FMLProxyPacket(byte[] payload, String channel)
|
||||
{
|
||||
this(Unpooled.wrappedBuffer(payload), channel);
|
||||
}
|
||||
|
||||
public FMLProxyPacket(S3FPacketCustomPayload original)
|
||||
{
|
||||
this(original.func_149168_d(), original.func_149169_c());
|
||||
this(original.func_180735_b(), original.func_149169_c());
|
||||
this.target = Side.CLIENT;
|
||||
}
|
||||
|
||||
public FMLProxyPacket(C17PacketCustomPayload original)
|
||||
{
|
||||
this(original.func_149558_e(), original.func_149559_c());
|
||||
this(original.func_180760_b(), original.func_149559_c());
|
||||
this.target = Side.SERVER;
|
||||
}
|
||||
|
||||
public FMLProxyPacket(ByteBuf payload, String channel)
|
||||
public FMLProxyPacket(PacketBuffer payload, String channel)
|
||||
{
|
||||
this.channel = channel;
|
||||
this.payload = payload;
|
||||
|
@ -117,12 +113,12 @@ public class FMLProxyPacket extends Packet {
|
|||
}
|
||||
public Packet toC17Packet()
|
||||
{
|
||||
return new C17PacketCustomPayload(channel, payload.array());
|
||||
return new C17PacketCustomPayload(channel, payload);
|
||||
}
|
||||
|
||||
public Packet toS3FPacket()
|
||||
{
|
||||
return new S3FPacketCustomPayload(channel, payload.array());
|
||||
return new S3FPacketCustomPayload(channel, payload);
|
||||
}
|
||||
|
||||
public void setTarget(Side target)
|
||||
|
|
|
@ -8,10 +8,14 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.lang3.Validate;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.util.ObjectIntIdentityMap;
|
||||
import net.minecraft.util.RegistryNamespaced;
|
||||
import net.minecraft.util.RegistryNamespacedDefaultedByKey;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
import com.google.common.collect.BiMap;
|
||||
import com.google.common.collect.HashBiMap;
|
||||
|
@ -20,9 +24,9 @@ import com.google.common.collect.ImmutableMap;
|
|||
import cpw.mods.fml.common.FMLLog;
|
||||
import cpw.mods.fml.common.functions.GenericIterableFactory;
|
||||
|
||||
public class FMLControlledNamespacedRegistry<I> extends RegistryNamespaced {
|
||||
public class FMLControlledNamespacedRegistry<I> extends RegistryNamespacedDefaultedByKey {
|
||||
private final Class<I> superType;
|
||||
private String optionalDefaultName;
|
||||
private Object optionalDefaultKey;
|
||||
private I optionalDefaultObject;
|
||||
private int maxId;
|
||||
private int minId;
|
||||
|
@ -33,11 +37,12 @@ public class FMLControlledNamespacedRegistry<I> extends RegistryNamespaced {
|
|||
private BiMap<String, I> persistentSubstitutions;
|
||||
private BiMap<String, I> activeSubstitutions = HashBiMap.create();
|
||||
|
||||
FMLControlledNamespacedRegistry(String optionalDefault, int maxIdValue, int minIdValue, Class<I> type, char discriminator)
|
||||
FMLControlledNamespacedRegistry(Object defaultKey, int maxIdValue, int minIdValue, Class<I> type, char discriminator)
|
||||
{
|
||||
super(defaultKey);
|
||||
this.superType = type;
|
||||
this.discriminator = discriminator;
|
||||
this.optionalDefaultName = optionalDefault;
|
||||
this.optionalDefaultKey = defaultKey;
|
||||
this.maxId = maxIdValue;
|
||||
this.minId = minIdValue;
|
||||
}
|
||||
|
@ -47,24 +52,29 @@ public class FMLControlledNamespacedRegistry<I> extends RegistryNamespaced {
|
|||
for (I obj : typeSafeIterable())
|
||||
{
|
||||
int id = getId(obj);
|
||||
String name = getNameForObject(obj);
|
||||
Object name = func_177774_c(obj);
|
||||
|
||||
// name lookup failed -> obj is not in the obj<->name map
|
||||
if (name == null) throw new IllegalStateException(String.format("Registry entry for %s %s, id %d, doesn't yield a name.", type, obj, id));
|
||||
|
||||
ResourceLocation loc = (name instanceof ResourceLocation) ? (ResourceLocation)name : null;
|
||||
String nameS = (name instanceof String) ? (String)name : (loc != null ? name.toString() : null);
|
||||
if (loc == null && nameS == null) throw new IllegalStateException(String.format("Registry entry for %s %s name is invalid, must be a String or ResourceLocation %s", type, obj, name));
|
||||
|
||||
// id lookup failed -> obj is not in the obj<->id map
|
||||
if (id < 0) throw new IllegalStateException(String.format("Registry entry for %s %s, name %s, doesn't yield an id.", type, obj, name));
|
||||
// id is too high
|
||||
if (id > maxId) throw new IllegalStateException(String.format("Registry entry for %s %s, name %s uses the too large id %d.", type, obj, name));
|
||||
// name lookup failed -> obj is not in the obj<->name map
|
||||
if (name == null) throw new IllegalStateException(String.format("Registry entry for %s %s, id %d, doesn't yield a name.", type, obj, id));
|
||||
// empty name
|
||||
if (name.isEmpty()) throw new IllegalStateException(String.format("Registry entry for %s %s, id %d, yields an empty name.", type, obj, id));
|
||||
if (name.toString().isEmpty()) throw new IllegalStateException(String.format("Registry entry for %s %s, id %d, yields an empty name.", type, obj, id));
|
||||
// non-prefixed name
|
||||
if (name.indexOf(':') == -1) throw new IllegalStateException(String.format("Registry entry for %s %s, id %d, has the non-prefixed name %s.", type, obj, id, name));
|
||||
if (name.toString().indexOf(':') == -1) throw new IllegalStateException(String.format("Registry entry for %s %s, id %d, has the non-prefixed name %s.", type, obj, id, name));
|
||||
// id -> obj lookup is inconsistent
|
||||
if (getRaw(id) != obj) throw new IllegalStateException(String.format("Registry entry for id %d, name %s, doesn't yield the expected %s %s.", id, name, type, obj));
|
||||
// name -> obj lookup is inconsistent
|
||||
if (!(activeSubstitutions.containsKey(name) || activeSubstitutions.containsValue(name)) && getRaw(name) != obj ) throw new IllegalStateException(String.format("Registry entry for name %s, id %d, doesn't yield the expected %s %s.", name, id, type, obj));
|
||||
if (!(activeSubstitutions.containsKey(name) || activeSubstitutions.containsValue(name)) && getRaw(nameS) != obj ) throw new IllegalStateException(String.format("Registry entry for name %s, id %d, doesn't yield the expected %s %s.", name, id, type, obj));
|
||||
// name -> id lookup is inconsistent
|
||||
if (!(activeSubstitutions.containsKey(name) || activeSubstitutions.containsValue(name)) && getId(name) != id) throw new IllegalStateException(String.format("Registry entry for name %s doesn't yield the expected id %d.", name, id));
|
||||
if (!(activeSubstitutions.containsKey(name) || activeSubstitutions.containsValue(name)) && getId(nameS) != id) throw new IllegalStateException(String.format("Registry entry for name %s doesn't yield the expected id %d.", name, id));
|
||||
// id isn't marked as unavailable
|
||||
if (!availabilityMap.get(id)) throw new IllegalStateException(String.format("Registry entry for %s %s, id %d, name %s, marked as empty.", type, obj, id, name));
|
||||
// entry is blocked, thus should be empty
|
||||
|
@ -72,7 +82,7 @@ public class FMLControlledNamespacedRegistry<I> extends RegistryNamespaced {
|
|||
|
||||
if (obj instanceof ItemBlock)
|
||||
{
|
||||
Block block = ((ItemBlock) obj).field_150939_a;
|
||||
Block block = ((ItemBlock) obj).blockInstance;
|
||||
|
||||
// verify matching block entry
|
||||
if (iBlockRegistry.getId(block) != id)
|
||||
|
@ -90,7 +100,7 @@ public class FMLControlledNamespacedRegistry<I> extends RegistryNamespaced {
|
|||
if (this.superType != registry.superType) throw new IllegalArgumentException("incompatible registry");
|
||||
|
||||
this.discriminator = registry.discriminator;
|
||||
this.optionalDefaultName = registry.optionalDefaultName;
|
||||
this.optionalDefaultKey = registry.optionalDefaultKey;
|
||||
this.maxId = registry.maxId;
|
||||
this.minId = registry.minId;
|
||||
this.aliases.clear();
|
||||
|
@ -100,7 +110,7 @@ public class FMLControlledNamespacedRegistry<I> extends RegistryNamespaced {
|
|||
|
||||
for (I thing : registry.typeSafeIterable())
|
||||
{
|
||||
addObjectRaw(registry.getId(thing), registry.getNameForObject(thing), thing);
|
||||
addObjectRaw(registry.getId(thing), registry.func_177774_c(thing), thing);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -113,9 +123,10 @@ public class FMLControlledNamespacedRegistry<I> extends RegistryNamespaced {
|
|||
*/
|
||||
@Override
|
||||
@Deprecated
|
||||
public void addObject(int id, String name, Object thing)
|
||||
public void func_177775_a(int id, Object name, Object thing)
|
||||
{
|
||||
GameData.getMain().register(thing, name, id);
|
||||
Validate.isInstanceOf(ResourceLocation.class, name);
|
||||
GameData.getMain().register(thing, name.toString(), id);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -127,15 +138,15 @@ public class FMLControlledNamespacedRegistry<I> extends RegistryNamespaced {
|
|||
@Deprecated
|
||||
public void putObject(Object objName, Object obj)
|
||||
{
|
||||
String name = (String) objName;
|
||||
String name = objName.toString();
|
||||
I thing = superType.cast(obj);
|
||||
|
||||
if (name == null) throw new NullPointerException("Can't use a null-name for the registry.");
|
||||
if (name.isEmpty()) throw new IllegalArgumentException("Can't use an empty name for the registry.");
|
||||
if (thing == null) throw new NullPointerException("Can't add null-object to the registry.");
|
||||
|
||||
name = ensureNamespaced(name);
|
||||
String existingName = getNameForObject(thing);
|
||||
name = new ResourceLocation(name).toString();
|
||||
Object existingName = func_177774_c(thing);
|
||||
|
||||
if (existingName == null)
|
||||
{
|
||||
|
@ -148,7 +159,7 @@ public class FMLControlledNamespacedRegistry<I> extends RegistryNamespaced {
|
|||
else
|
||||
{
|
||||
FMLLog.bigWarning("Ignoring putObject(%s, %s), adding alias to %s instead", name, thing, existingName);
|
||||
addAlias(name, existingName);
|
||||
addAlias(name, existingName.toString());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -161,9 +172,11 @@ public class FMLControlledNamespacedRegistry<I> extends RegistryNamespaced {
|
|||
* @return Registered object of the default object if it wasn't found-
|
||||
*/
|
||||
@Override
|
||||
public I getObject(String name)
|
||||
public I getObject(Object name)
|
||||
{
|
||||
I object = getRaw(name);
|
||||
I object = null;
|
||||
if (name instanceof ResourceLocation) object = getRaw((ResourceLocation)name);
|
||||
if (name instanceof String) object = getRaw((String)name);
|
||||
return object == null ? this.optionalDefaultObject : object;
|
||||
}
|
||||
|
||||
|
@ -235,11 +248,22 @@ public class FMLControlledNamespacedRegistry<I> extends RegistryNamespaced {
|
|||
*/
|
||||
public I getRaw(String name)
|
||||
{
|
||||
I ret = superType.cast(super.getObject(name));
|
||||
return getRaw(new ResourceLocation(name));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the object identified by the specified name.
|
||||
*
|
||||
* @param name Block/Item name.
|
||||
* @return Block/Item object or null if it wasn't found.
|
||||
*/
|
||||
private I getRaw(ResourceLocation loc)
|
||||
{
|
||||
I ret = superType.cast(super.getObject(loc));
|
||||
|
||||
if (ret == null) // no match, try aliases recursively
|
||||
{
|
||||
name = aliases.get(name);
|
||||
String name = aliases.get(loc.toString());
|
||||
|
||||
if (name != null) return getRaw(name);
|
||||
}
|
||||
|
@ -256,7 +280,7 @@ public class FMLControlledNamespacedRegistry<I> extends RegistryNamespaced {
|
|||
* @return true if a matching entry was found.
|
||||
*/
|
||||
@Override
|
||||
public boolean containsKey(String name)
|
||||
public boolean containsKey(Object name)
|
||||
{
|
||||
boolean ret = super.containsKey(name);
|
||||
|
||||
|
@ -310,7 +334,7 @@ public class FMLControlledNamespacedRegistry<I> extends RegistryNamespaced {
|
|||
{
|
||||
for (I thing : this.typeSafeIterable())
|
||||
{
|
||||
idMapping.put(discriminator+getNameForObject(thing), getId(thing));
|
||||
idMapping.put(discriminator+func_177774_c(thing).toString(), getId(thing));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -334,7 +358,7 @@ public class FMLControlledNamespacedRegistry<I> extends RegistryNamespaced {
|
|||
if (name.isEmpty()) throw new IllegalArgumentException(String.format("Can't use an empty name for the registry, object %s.", thing));
|
||||
if (name.indexOf(':') == -1) throw new IllegalArgumentException(String.format("Can't add the name (%s) without a prefix, object %s", name, thing));
|
||||
if (thing == null) throw new NullPointerException(String.format("Can't add null-object to the registry, name %s.", name));
|
||||
if (name.equals(optionalDefaultName) && this.optionalDefaultObject == null)
|
||||
if (optionalDefaultKey != null && optionalDefaultKey.toString().equals(name) && this.optionalDefaultObject == null)
|
||||
{
|
||||
this.optionalDefaultObject = thing;
|
||||
}
|
||||
|
@ -365,7 +389,7 @@ public class FMLControlledNamespacedRegistry<I> extends RegistryNamespaced {
|
|||
{
|
||||
int foundId = getId(thing);
|
||||
Object otherThing = getRaw(foundId);
|
||||
throw new IllegalArgumentException(String.format("The object %s{%x} has been registered twice, using the names %s and %s. (Other object at this id is %s{%x})", thing, System.identityHashCode(thing), getNameForObject(thing), name, otherThing, System.identityHashCode(otherThing)));
|
||||
throw new IllegalArgumentException(String.format("The object %s{%x} has been registered twice, using the names %s and %s. (Other object at this id is %s{%x})", thing, System.identityHashCode(thing), func_177774_c(thing), name, otherThing, System.identityHashCode(otherThing)));
|
||||
}
|
||||
if (GameData.isFrozen(this))
|
||||
{
|
||||
|
@ -376,7 +400,7 @@ public class FMLControlledNamespacedRegistry<I> extends RegistryNamespaced {
|
|||
{
|
||||
thing = activeSubstitutions.get(name);
|
||||
}
|
||||
addObjectRaw(idToUse, name, thing);
|
||||
addObjectRaw(idToUse, new ResourceLocation(name), thing);
|
||||
|
||||
FMLLog.finer("Registry add: %s %d %s (req. id %d)", name, idToUse, thing, id);
|
||||
return idToUse;
|
||||
|
@ -396,9 +420,9 @@ public class FMLControlledNamespacedRegistry<I> extends RegistryNamespaced {
|
|||
{
|
||||
if (!registry.field_148758_b.containsKey(thing))
|
||||
{
|
||||
if (!registry.activeSubstitutions.containsKey(getNameForObject(thing)))
|
||||
if (!registry.activeSubstitutions.containsKey(func_177774_c(thing).toString()))
|
||||
{
|
||||
ret.put(getNameForObject(thing), getId(thing));
|
||||
ret.put(func_177774_c(thing).toString(), getId(thing));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -421,14 +445,14 @@ public class FMLControlledNamespacedRegistry<I> extends RegistryNamespaced {
|
|||
for (int id : ids)
|
||||
{
|
||||
I thing = getRaw(id);
|
||||
FMLLog.finer("Registry: %s %d %s", getNameForObject(thing), id, thing);
|
||||
FMLLog.finer("Registry: %s %d %s", func_177774_c(thing), id, thing);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Version of addObject not using the API restricting overrides.
|
||||
*/
|
||||
private void addObjectRaw(int id, String name, I thing)
|
||||
private void addObjectRaw(int id, Object name, I thing)
|
||||
{
|
||||
if (name == null) throw new NullPointerException("The name to be added to the registry is null. This can only happen with a corrupted registry state. Reflection/ASM hackery? Registry bug?");
|
||||
if (thing == null) throw new NullPointerException("The object to be added to the registry is null. This can only happen with a corrupted registry state. Reflection/ASM hackery? Registry bug?");
|
||||
|
@ -494,4 +518,11 @@ public class FMLControlledNamespacedRegistry<I> extends RegistryNamespaced {
|
|||
}
|
||||
return persistentSubstitutions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void func_177776_a()
|
||||
{
|
||||
if (this.optionalDefaultKey != null)
|
||||
Validate.notNull(this.optionalDefaultObject);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@ import net.minecraft.block.Block;
|
|||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
import org.apache.logging.log4j.Level;
|
||||
|
||||
|
@ -221,7 +222,7 @@ public class GameData {
|
|||
static UniqueIdentifier getUniqueName(Block block)
|
||||
{
|
||||
if (block == null) return null;
|
||||
String name = getMain().iBlockRegistry.getNameForObject(block);
|
||||
Object name = getMain().iBlockRegistry.func_177774_c(block);
|
||||
UniqueIdentifier ui = new UniqueIdentifier(name);
|
||||
if (customItemStacks.contains(ui.modId, ui.name))
|
||||
{
|
||||
|
@ -234,7 +235,7 @@ public class GameData {
|
|||
static UniqueIdentifier getUniqueName(Item item)
|
||||
{
|
||||
if (item == null) return null;
|
||||
String name = getMain().iItemRegistry.getNameForObject(item);
|
||||
Object name = getMain().iItemRegistry.func_177774_c(item);
|
||||
UniqueIdentifier ui = new UniqueIdentifier(name);
|
||||
if (customItemStacks.contains(ui.modId, ui.name))
|
||||
{
|
||||
|
@ -260,7 +261,6 @@ public class GameData {
|
|||
for (Entry<String, Integer> entry : dataList.entrySet())
|
||||
{
|
||||
String itemName = entry.getKey();
|
||||
@SuppressWarnings("unused")
|
||||
String realName = itemName.substring(1);
|
||||
|
||||
if (itemName.charAt(0) == '\u0001') // is a block
|
||||
|
@ -608,7 +608,7 @@ public class GameData {
|
|||
if (remap.type == Type.BLOCK)
|
||||
{
|
||||
currId = getMain().iBlockRegistry.getId((Block) remap.getTarget());
|
||||
newName = getMain().iBlockRegistry.getNameForObject(remap.getTarget());
|
||||
newName = getMain().iBlockRegistry.func_177774_c(remap.getTarget()).toString();
|
||||
FMLLog.fine("The Block %s is being remapped to %s.", remap.name, newName);
|
||||
|
||||
newId = gameData.registerBlock((Block) remap.getTarget(), newName, remap.id);
|
||||
|
@ -617,7 +617,7 @@ public class GameData {
|
|||
else
|
||||
{
|
||||
currId = getMain().iItemRegistry.getId((Item) remap.getTarget());
|
||||
newName = getMain().iItemRegistry.getNameForObject(remap.getTarget());
|
||||
newName = getMain().iItemRegistry.func_177774_c(remap.getTarget()).toString();
|
||||
FMLLog.fine("The Item %s is being remapped to %s.", remap.name, newName);
|
||||
|
||||
newId = gameData.registerItem((Item) remap.getTarget(), newName, remap.id);
|
||||
|
@ -752,7 +752,7 @@ public class GameData {
|
|||
|
||||
private GameData()
|
||||
{
|
||||
iBlockRegistry = new FMLControlledNamespacedRegistry<Block>("minecraft:air", MAX_BLOCK_ID, MIN_BLOCK_ID, Block.class,'\u0001');
|
||||
iBlockRegistry = new FMLControlledNamespacedRegistry<Block>(new ResourceLocation("minecraft:air"), MAX_BLOCK_ID, MIN_BLOCK_ID, Block.class,'\u0001');
|
||||
iItemRegistry = new FMLControlledNamespacedRegistry<Item>(null, MAX_ITEM_ID, MIN_ITEM_ID, Item.class,'\u0002');
|
||||
availabilityMap = new BitSet(MAX_ITEM_ID + 1);
|
||||
blockedIds = new HashSet<Integer>();
|
||||
|
@ -806,7 +806,7 @@ public class GameData {
|
|||
{
|
||||
if (item instanceof ItemBlock) // ItemBlock, adjust id and clear the slot already occupied by the corresponding block
|
||||
{
|
||||
Block block = ((ItemBlock) item).field_150939_a;
|
||||
Block block = ((ItemBlock) item).blockInstance;
|
||||
if (idHint != -1 && getMain().blockSubstitutions.containsKey(name))
|
||||
{
|
||||
block = getMain().blockSubstitutions.get(name);
|
||||
|
@ -865,7 +865,7 @@ public class GameData {
|
|||
|
||||
for (Item item : iItemRegistry.typeSafeIterable()) // find matching ItemBlock
|
||||
{
|
||||
if (item instanceof ItemBlock && ((ItemBlock) item).field_150939_a == block)
|
||||
if (item instanceof ItemBlock && ((ItemBlock) item).blockInstance == block)
|
||||
{
|
||||
itemBlock = (ItemBlock) item;
|
||||
break;
|
||||
|
@ -967,8 +967,8 @@ public class GameData {
|
|||
|
||||
private void verifyItemBlockName(ItemBlock item)
|
||||
{
|
||||
String blockName = iBlockRegistry.getNameForObject(item.field_150939_a);
|
||||
String itemName = iItemRegistry.getNameForObject(item);
|
||||
Object blockName = iBlockRegistry.func_177774_c(item.blockInstance);
|
||||
Object itemName = iItemRegistry.func_177774_c(item);
|
||||
|
||||
if (blockName != null && !blockName.equals(itemName))
|
||||
{
|
||||
|
|
|
@ -33,6 +33,7 @@ import net.minecraft.item.crafting.CraftingManager;
|
|||
import net.minecraft.item.crafting.FurnaceRecipes;
|
||||
import net.minecraft.item.crafting.IRecipe;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.chunk.IChunkProvider;
|
||||
|
||||
|
@ -257,17 +258,17 @@ public class GameRegistry
|
|||
|
||||
public static void addSmelting(Block input, ItemStack output, float xp)
|
||||
{
|
||||
FurnaceRecipes.smelting().func_151393_a(input, output, xp);
|
||||
FurnaceRecipes.instance().addSmeltingRecipeForBlock(input, output, xp);
|
||||
}
|
||||
|
||||
public static void addSmelting(Item input, ItemStack output, float xp)
|
||||
{
|
||||
FurnaceRecipes.smelting().func_151396_a(input, output, xp);
|
||||
FurnaceRecipes.instance().addSmelting(input, output, xp);
|
||||
}
|
||||
|
||||
public static void addSmelting(ItemStack input, ItemStack output, float xp)
|
||||
{
|
||||
FurnaceRecipes.smelting().func_151394_a(input, output, xp);
|
||||
FurnaceRecipes.instance().addSmeltingRecipe(input, output, xp);
|
||||
}
|
||||
|
||||
public static void registerTileEntity(Class<? extends TileEntity> tileEntityClass, String id)
|
||||
|
@ -385,6 +386,25 @@ public class GameRegistry
|
|||
this.name = parts[1];
|
||||
}
|
||||
|
||||
public UniqueIdentifier(Object obj)
|
||||
{
|
||||
if (obj instanceof String)
|
||||
{
|
||||
String[] parts = ((String)obj).split(":");
|
||||
this.modId = parts[0];
|
||||
this.name = parts[1];
|
||||
}
|
||||
else if (obj instanceof ResourceLocation)
|
||||
{
|
||||
this.modId = ((ResourceLocation)obj).getResourceDomain();
|
||||
this.name = ((ResourceLocation)obj).getResourcePath();
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new IllegalArgumentException("UniqueIdentifier must be a String or ResourceLocation, was " + obj.getClass());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
|
|
|
@ -46,8 +46,9 @@ class ObjectHolderRef {
|
|||
}
|
||||
else
|
||||
{
|
||||
this.injectedObject = isBlock ? GameData.getBlockRegistry().getNameForObject(existing) :
|
||||
isItem ? GameData.getItemRegistry().getNameForObject(existing) : null;
|
||||
Object tmp = isBlock ? GameData.getBlockRegistry().func_177774_c(existing) :
|
||||
isItem ? GameData.getItemRegistry().func_177774_c(existing) : null;
|
||||
this.injectedObject = tmp != null ? tmp.toString() : null;
|
||||
}
|
||||
} catch (Exception e)
|
||||
{
|
||||
|
|
|
@ -12,6 +12,8 @@
|
|||
|
||||
package cpw.mods.fml.common.registry;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
|
@ -19,8 +21,16 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
|
||||
import org.apache.commons.lang3.Validate;
|
||||
|
||||
import net.minecraft.entity.passive.EntityVillager;
|
||||
import net.minecraft.entity.passive.EntityVillager.*;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.EnumDyeColor;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.Tuple;
|
||||
import net.minecraft.village.MerchantRecipeList;
|
||||
|
@ -45,12 +55,16 @@ public class VillagerRegistry
|
|||
{
|
||||
private static final VillagerRegistry INSTANCE = new VillagerRegistry();
|
||||
|
||||
private Multimap<Integer, IVillageTradeHandler> tradeHandlers = ArrayListMultimap.create();
|
||||
private Map<Class<?>, IVillageCreationHandler> villageCreationHandlers = Maps.newHashMap();
|
||||
private List<Integer> newVillagerIds = Lists.newArrayList();
|
||||
@SideOnly(Side.CLIENT)
|
||||
private Map<Integer, ResourceLocation> newVillagers;
|
||||
|
||||
private VillagerRegistry()
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
||||
/**
|
||||
* Allow access to the {@link net.minecraft.world.gen.structure.StructureVillagePieces} array controlling new village
|
||||
* creation so you can insert your own new village pieces
|
||||
|
@ -83,29 +97,11 @@ public class VillagerRegistry
|
|||
* @param p1
|
||||
* @param p2
|
||||
* @param p3
|
||||
* @param p4
|
||||
* @param facing
|
||||
* @param p5
|
||||
*/
|
||||
Object buildComponent(StructureVillagePieces.PieceWeight villagePiece, StructureVillagePieces.Start startPiece, @SuppressWarnings("rawtypes") List pieces, Random random, int p1,
|
||||
int p2, int p3, int p4, int p5);
|
||||
}
|
||||
|
||||
/**
|
||||
* Allow access to the {@link MerchantRecipeList} for a villager type for manipulation
|
||||
*
|
||||
* @author cpw
|
||||
*
|
||||
*/
|
||||
public interface IVillageTradeHandler
|
||||
{
|
||||
/**
|
||||
* Called to allow changing the content of the {@link MerchantRecipeList} for the villager
|
||||
* supplied during creation
|
||||
*
|
||||
* @param villager
|
||||
* @param recipeList
|
||||
*/
|
||||
void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random);
|
||||
int p2, int p3, EnumFacing facing, int p5);
|
||||
}
|
||||
|
||||
public static VillagerRegistry instance()
|
||||
|
@ -152,17 +148,6 @@ public class VillagerRegistry
|
|||
villageCreationHandlers.put(handler.getComponentClass(), handler);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a new villager trading handler for the specified villager type
|
||||
*
|
||||
* @param villagerId
|
||||
* @param handler
|
||||
*/
|
||||
public void registerVillageTradeHandler(int villagerId, IVillageTradeHandler handler)
|
||||
{
|
||||
tradeHandlers.put(villagerId, handler);
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback to setup new villager types
|
||||
*
|
||||
|
@ -188,21 +173,6 @@ public class VillagerRegistry
|
|||
{
|
||||
return Collections.unmodifiableCollection(instance().newVillagerIds);
|
||||
}
|
||||
/**
|
||||
* Callback to handle trade setup for villagers
|
||||
*
|
||||
* @param recipeList
|
||||
* @param villager
|
||||
* @param villagerType
|
||||
* @param random
|
||||
*/
|
||||
public static void manageVillagerTrades(MerchantRecipeList recipeList, EntityVillager villager, int villagerType, Random random)
|
||||
{
|
||||
for (IVillageTradeHandler handler : instance().tradeHandlers.get(villagerType))
|
||||
{
|
||||
handler.manipulateTradesForVillager(villager, recipeList, random);
|
||||
}
|
||||
}
|
||||
|
||||
public static void addExtraVillageComponents(@SuppressWarnings("rawtypes") ArrayList components, Random random, int i)
|
||||
{
|
||||
|
@ -215,36 +185,311 @@ public class VillagerRegistry
|
|||
}
|
||||
|
||||
public static Object getVillageComponent(StructureVillagePieces.PieceWeight villagePiece, StructureVillagePieces.Start startPiece, @SuppressWarnings("rawtypes") List pieces, Random random,
|
||||
int p1, int p2, int p3, int p4, int p5)
|
||||
int p1, int p2, int p3, EnumFacing facing, int p5)
|
||||
{
|
||||
return instance().villageCreationHandlers.get(villagePiece.villagePieceClass).buildComponent(villagePiece, startPiece, pieces, random, p1, p2, p3, p4, p5);
|
||||
return instance().villageCreationHandlers.get(villagePiece.villagePieceClass).buildComponent(villagePiece, startPiece, pieces, random, p1, p2, p3, facing, p5);
|
||||
}
|
||||
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static void addEmeraldBuyRecipe(EntityVillager villager, MerchantRecipeList list, Random random, Item item, float chance, int min, int max)
|
||||
public void register(VillagerProfession prof)
|
||||
{
|
||||
//blah
|
||||
}
|
||||
|
||||
private boolean hasInit = false;
|
||||
private List<VillagerProfession> professions = Lists.newArrayList();
|
||||
|
||||
//This field is moved from EntityVillager over to here.
|
||||
//It is nasty I know but it's vanilla.
|
||||
private static final ITradeList[][][][] vanillaTrades =
|
||||
{
|
||||
if (min > 0 && max > 0)
|
||||
{
|
||||
EntityVillager.villagersSellingList.put(item, new Tuple(min, max));
|
||||
}
|
||||
EntityVillager.func_146091_a(list, item, random, chance);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static void addEmeraldSellRecipe(EntityVillager villager, MerchantRecipeList list, Random random, Item item, float chance, int min, int max)
|
||||
{
|
||||
if (min > 0 && max > 0)
|
||||
{
|
||||
{
|
||||
new EmeraldForItems(Items.wheat, new PriceInfo(18, 22)),
|
||||
new EmeraldForItems(Items.potato, new PriceInfo(15, 19)),
|
||||
new EmeraldForItems(Items.carrot, new PriceInfo(15, 19)),
|
||||
new ListItemForEmeralds(Items.bread, new PriceInfo(-4, -2))
|
||||
},
|
||||
{
|
||||
new EmeraldForItems(Item.getItemFromBlock(Blocks.pumpkin), new PriceInfo(8, 13)),
|
||||
new ListItemForEmeralds(Items.pumpkin_pie, new PriceInfo(-3, -2))
|
||||
},
|
||||
{
|
||||
new EmeraldForItems(Item.getItemFromBlock(Blocks.melon_block), new PriceInfo(7, 12)),
|
||||
new ListItemForEmeralds(Items.apple, new PriceInfo(-5, -7))
|
||||
},
|
||||
{
|
||||
new ListItemForEmeralds(Items.cookie, new PriceInfo(-6, -10)),
|
||||
new ListItemForEmeralds(Items.cake, new PriceInfo(1, 1))
|
||||
}
|
||||
},
|
||||
{
|
||||
{
|
||||
new EmeraldForItems(Items.string, new PriceInfo(15, 20)),
|
||||
new EmeraldForItems(Items.coal, new PriceInfo(16, 24)),
|
||||
new ItemAndEmeraldToItem(Items.fish, new PriceInfo(6, 6), Items.field_179566_aV, new PriceInfo(6, 6))
|
||||
},
|
||||
{
|
||||
new ListEnchantedItemForEmeralds(Items.fishing_rod, new PriceInfo(7, 8))
|
||||
}
|
||||
},
|
||||
{
|
||||
{
|
||||
new EmeraldForItems(Item.getItemFromBlock(Blocks.wool), new PriceInfo(16, 22)),
|
||||
new ListItemForEmeralds(Items.shears, new PriceInfo(3, 4))
|
||||
},
|
||||
{
|
||||
new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 0), new PriceInfo(1, 2)),
|
||||
new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 1), new PriceInfo(1, 2)),
|
||||
new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 2), new PriceInfo(1, 2)),
|
||||
new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 3), new PriceInfo(1, 2)),
|
||||
new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 4), new PriceInfo(1, 2)),
|
||||
new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 5), new PriceInfo(1, 2)),
|
||||
new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 6), new PriceInfo(1, 2)),
|
||||
new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 7), new PriceInfo(1, 2)),
|
||||
new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 8), new PriceInfo(1, 2)),
|
||||
new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 9), new PriceInfo(1, 2)),
|
||||
new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 10), new PriceInfo(1, 2)),
|
||||
new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 11), new PriceInfo(1, 2)),
|
||||
new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 12), new PriceInfo(1, 2)),
|
||||
new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 13), new PriceInfo(1, 2)),
|
||||
new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 14), new PriceInfo(1, 2)),
|
||||
new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 15), new PriceInfo(1, 2))
|
||||
}
|
||||
},
|
||||
{
|
||||
{
|
||||
new EmeraldForItems(Items.string, new PriceInfo(15, 20)),
|
||||
new ListItemForEmeralds(Items.arrow, new PriceInfo(-12, -8))
|
||||
},
|
||||
{
|
||||
new ListItemForEmeralds(Items.bow, new PriceInfo(2, 3)),
|
||||
new ItemAndEmeraldToItem(Item.getItemFromBlock(Blocks.gravel), new PriceInfo(10, 10), Items.flint, new PriceInfo(6, 10))
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
EntityVillager.blacksmithSellingList.put(item, new Tuple(min, max));
|
||||
{
|
||||
{
|
||||
new EmeraldForItems(Items.paper, new PriceInfo(24, 36)),
|
||||
new ListEnchantedBookForEmeralds()
|
||||
},
|
||||
{
|
||||
new EmeraldForItems(Items.book, new PriceInfo(8, 10)),
|
||||
new ListItemForEmeralds(Items.compass, new PriceInfo(10, 12)),
|
||||
new ListItemForEmeralds(Item.getItemFromBlock(Blocks.bookshelf), new PriceInfo(3, 4))
|
||||
},
|
||||
{
|
||||
new EmeraldForItems(Items.written_book, new PriceInfo(2, 2)),
|
||||
new ListItemForEmeralds(Items.clock, new PriceInfo(10, 12)),
|
||||
new ListItemForEmeralds(Item.getItemFromBlock(Blocks.glass), new PriceInfo(-5, -3))
|
||||
},
|
||||
{
|
||||
new ListEnchantedBookForEmeralds()
|
||||
},
|
||||
{
|
||||
new ListEnchantedBookForEmeralds()
|
||||
},
|
||||
{
|
||||
new ListItemForEmeralds(Items.name_tag, new PriceInfo(20, 22))
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
{
|
||||
{
|
||||
new EmeraldForItems(Items.rotten_flesh, new PriceInfo(36, 40)),
|
||||
new EmeraldForItems(Items.gold_ingot, new PriceInfo(8, 10))
|
||||
},
|
||||
{
|
||||
new ListItemForEmeralds(Items.redstone, new PriceInfo(-4, -1)),
|
||||
new ListItemForEmeralds(new ItemStack(Items.dye, 1, EnumDyeColor.BLUE.func_176767_b()),
|
||||
new PriceInfo(-2, -1))
|
||||
},
|
||||
{
|
||||
new ListItemForEmeralds(Items.ender_eye, new PriceInfo(7, 11)),
|
||||
new ListItemForEmeralds(Item.getItemFromBlock(Blocks.glowstone), new PriceInfo(-3, -1))
|
||||
},
|
||||
{
|
||||
new ListItemForEmeralds(Items.experience_bottle, new PriceInfo(3, 11))
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
{
|
||||
{
|
||||
new EmeraldForItems(Items.coal, new PriceInfo(16, 24)),
|
||||
new ListItemForEmeralds(Items.iron_helmet, new PriceInfo(4, 6))
|
||||
},
|
||||
{
|
||||
new EmeraldForItems(Items.iron_ingot, new PriceInfo(7, 9)),
|
||||
new ListItemForEmeralds(Items.iron_chestplate, new PriceInfo(10, 14))
|
||||
},
|
||||
{
|
||||
new EmeraldForItems(Items.diamond, new PriceInfo(3, 4)),
|
||||
new ListEnchantedItemForEmeralds(Items.diamond_chestplate, new PriceInfo(16, 19))
|
||||
},
|
||||
{
|
||||
new ListItemForEmeralds(Items.chainmail_boots, new PriceInfo(5, 7)),
|
||||
new ListItemForEmeralds(Items.chainmail_leggings, new PriceInfo(9, 11)),
|
||||
new ListItemForEmeralds(Items.chainmail_helmet, new PriceInfo(5, 7)),
|
||||
new ListItemForEmeralds(Items.chainmail_chestplate, new PriceInfo(11, 15))
|
||||
}
|
||||
},
|
||||
{
|
||||
{
|
||||
new EmeraldForItems(Items.coal, new PriceInfo(16, 24)),
|
||||
new ListItemForEmeralds(Items.iron_axe, new PriceInfo(6, 8))
|
||||
},
|
||||
{
|
||||
new EmeraldForItems(Items.iron_ingot, new PriceInfo(7, 9)),
|
||||
new ListEnchantedItemForEmeralds(Items.iron_sword, new PriceInfo(9, 10))
|
||||
},
|
||||
{
|
||||
new EmeraldForItems(Items.diamond, new PriceInfo(3, 4)),
|
||||
new ListEnchantedItemForEmeralds(Items.diamond_sword, new PriceInfo(12, 15)),
|
||||
new ListEnchantedItemForEmeralds(Items.diamond_axe, new PriceInfo(9, 12))
|
||||
}
|
||||
},
|
||||
{
|
||||
{
|
||||
new EmeraldForItems(Items.coal, new PriceInfo(16, 24)),
|
||||
new ListEnchantedItemForEmeralds(Items.iron_shovel, new PriceInfo(5, 7))
|
||||
},
|
||||
{
|
||||
new EmeraldForItems(Items.iron_ingot, new PriceInfo(7, 9)),
|
||||
new ListEnchantedItemForEmeralds(Items.iron_pickaxe, new PriceInfo(9, 11))
|
||||
},
|
||||
{
|
||||
new EmeraldForItems(Items.diamond, new PriceInfo(3, 4)),
|
||||
new ListEnchantedItemForEmeralds(Items.diamond_pickaxe, new PriceInfo(12, 15))
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
{
|
||||
{
|
||||
new EmeraldForItems(Items.porkchop, new PriceInfo(14, 18)),
|
||||
new EmeraldForItems(Items.chicken, new PriceInfo(14, 18))
|
||||
},
|
||||
{
|
||||
new EmeraldForItems(Items.coal, new PriceInfo(16, 24)),
|
||||
new ListItemForEmeralds(Items.cooked_porkchop, new PriceInfo(-7, -5)),
|
||||
new ListItemForEmeralds(Items.cooked_chicken, new PriceInfo(-8, -6))
|
||||
}
|
||||
},
|
||||
{
|
||||
{
|
||||
new EmeraldForItems(Items.leather, new PriceInfo(9, 12)),
|
||||
new ListItemForEmeralds(Items.leather_leggings, new PriceInfo(2, 4))
|
||||
},
|
||||
{
|
||||
new ListEnchantedItemForEmeralds(Items.leather_chestplate, new PriceInfo(7, 12))
|
||||
},
|
||||
{
|
||||
new ListItemForEmeralds(Items.saddle, new PriceInfo(8, 10))
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private void init()
|
||||
{
|
||||
if (hasInit)
|
||||
return;
|
||||
|
||||
VillagerProfession prof = new VillagerProfession("minecraft:farmer", "minecraft:textures/entity/villager/farmer.png");
|
||||
{
|
||||
register(prof);
|
||||
(new VillagerCareer(prof, "farmer" )).init(vanillaTrades[0][0]);
|
||||
(new VillagerCareer(prof, "fisherman" )).init(vanillaTrades[0][1]);
|
||||
(new VillagerCareer(prof, "shepherd" )).init(vanillaTrades[0][2]);
|
||||
(new VillagerCareer(prof, "fletcher" )).init(vanillaTrades[0][3]);
|
||||
}
|
||||
prof = new VillagerProfession("minecraft:librarian", "minecraft:textures/entity/villager/librarian.png");
|
||||
{
|
||||
register(prof);
|
||||
(new VillagerCareer(prof, "librarian")).init(vanillaTrades[1][0]);
|
||||
}
|
||||
prof = new VillagerProfession("minecraft:priest", "minecraft:textures/entity/villager/priest.png");
|
||||
{
|
||||
register(prof);
|
||||
(new VillagerCareer(prof, "cleric")).init(vanillaTrades[2][0]);
|
||||
}
|
||||
prof = new VillagerProfession("minecraft:smith", "minecraft:textures/entity/villager/smith.png");
|
||||
{
|
||||
register(prof);
|
||||
(new VillagerCareer(prof, "armor" )).init(vanillaTrades[3][0]);
|
||||
(new VillagerCareer(prof, "weapon")).init(vanillaTrades[3][1]);
|
||||
(new VillagerCareer(prof, "tool" )).init(vanillaTrades[3][2]);
|
||||
}
|
||||
prof = new VillagerProfession("minecraft:butcher", "minecraft:textures/entity/villager/butcher.png");
|
||||
{
|
||||
register(prof);
|
||||
(new VillagerCareer(prof, "butcher")).init(vanillaTrades[4][0]);
|
||||
(new VillagerCareer(prof, "leather")).init(vanillaTrades[4][1]);
|
||||
}
|
||||
EntityVillager.func_146089_b(list, item, random, chance);
|
||||
}
|
||||
|
||||
public static void applyRandomTrade(EntityVillager villager, Random rand)
|
||||
public static class VillagerProfession
|
||||
{
|
||||
int extra = instance().newVillagerIds.size();
|
||||
int trade = rand.nextInt(5 + extra);
|
||||
villager.setProfession(trade < 5 ? trade : instance().newVillagerIds.get(trade - 5));
|
||||
private ResourceLocation name;
|
||||
private ResourceLocation texture;
|
||||
private List<VillagerCareer> careers = Lists.newArrayList();
|
||||
|
||||
public VillagerProfession(String name, String texture)
|
||||
{
|
||||
this.name = new ResourceLocation(name);
|
||||
this.texture = new ResourceLocation(texture);
|
||||
}
|
||||
|
||||
private void register(VillagerCareer career)
|
||||
{
|
||||
Validate.isTrue(!careers.contains(career), "Attempted to register career that is already registered.");
|
||||
Validate.isTrue(career.profession == this, "Attempted to register career for the wrong profession.");
|
||||
career.id = careers.size();
|
||||
careers.add(career);
|
||||
}
|
||||
}
|
||||
|
||||
public static class VillagerCareer
|
||||
{
|
||||
private VillagerProfession profession;
|
||||
private String name;
|
||||
private int id;
|
||||
public VillagerCareer(VillagerProfession parent, String name)
|
||||
{
|
||||
this.profession = parent;
|
||||
this.name = name;
|
||||
parent.register(this);
|
||||
}
|
||||
|
||||
private VillagerCareer init(EntityVillager.ITradeList[][] traids)
|
||||
{
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o)
|
||||
{
|
||||
if (o == this) return true;
|
||||
if (!(o instanceof VillagerCareer)) return false;
|
||||
VillagerCareer oc = (VillagerCareer)o;
|
||||
return name.equals(oc.name) && profession == oc.profession;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Hook called when spawning a Villager, sets it's profession to a random registered profession.
|
||||
*
|
||||
* @param entity The new entity
|
||||
* @param rand The world's RNG
|
||||
*/
|
||||
public static void setRandomProfession(EntityVillager entity, Random rand)
|
||||
{
|
||||
//TODO: Grab id range from internal registry
|
||||
entity.setProfession(rand.nextInt(5));
|
||||
}
|
||||
|
||||
//TODO: Figure out a good generic system for this. Put on hold for Patches.
|
||||
}
|
||||
|
|
|
@ -489,7 +489,6 @@ public class CoreModManager {
|
|||
return null;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static void sortCoreMods()
|
||||
{
|
||||
TopologicalSort.DirectedGraph<FMLPluginWrapper> sortGraph = new TopologicalSort.DirectedGraph<FMLPluginWrapper>();
|
||||
|
|
|
@ -25,7 +25,6 @@ public class ReflectionHelper
|
|||
public static class UnableToFindMethodException extends RuntimeException
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
@SuppressWarnings("unused")
|
||||
private String[] methodNames;
|
||||
|
||||
public UnableToFindMethodException(String[] methodNames, Exception failed)
|
||||
|
@ -39,7 +38,6 @@ public class ReflectionHelper
|
|||
public static class UnableToFindClassException extends RuntimeException
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
@SuppressWarnings("unused")
|
||||
private String[] classNames;
|
||||
|
||||
public UnableToFindClassException(String[] classNames, Exception err)
|
||||
|
@ -53,7 +51,6 @@ public class ReflectionHelper
|
|||
public static class UnableToAccessFieldException extends RuntimeException
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
@SuppressWarnings("unused")
|
||||
private String[] fieldNameList;
|
||||
|
||||
public UnableToAccessFieldException(String[] fieldNames, Exception e)
|
||||
|
@ -66,7 +63,6 @@ public class ReflectionHelper
|
|||
public static class UnableToFindFieldException extends RuntimeException
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
@SuppressWarnings("unused")
|
||||
private String[] fieldNameList;
|
||||
public UnableToFindFieldException(String[] fieldNameList, Exception e)
|
||||
{
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue