mirror of
https://github.com/MinecraftForge/MinecraftForge.git
synced 2026-11-14 09:05:17 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2140cd8cb6 | ||
|
|
4a6245a215 | ||
|
|
48544db690 | ||
|
|
2c89b3def3 | ||
|
|
5689182088 | ||
|
|
4a1f4b90fd | ||
|
|
f2d42d1134 | ||
|
|
51e7606e74 | ||
|
|
723c2d98eb | ||
|
|
7dee072e1a | ||
|
|
3e18c4160f | ||
|
|
513ad19187 | ||
|
|
eabede2203 | ||
|
|
b22dbc12a2 | ||
|
|
708e86adfb | ||
|
|
6f1b762c9d | ||
|
|
d9bfb29d6c | ||
|
|
6fc7bc4941 | ||
|
|
fb701cdc5e | ||
|
|
f7cc50b521 | ||
|
|
1a232cf766 | ||
|
|
853f54bcc2 | ||
|
|
127be2237d | ||
|
|
7e6456d7cd | ||
|
|
664ebda599 | ||
|
|
9b4a225ad2 | ||
|
|
6c59fa2d2c | ||
|
|
5736d850f0 | ||
|
|
127d6ee8ac | ||
|
|
2055543042 | ||
|
|
40e57a26a9 | ||
|
|
d604e44195 | ||
|
|
8b7778ccb6 | ||
|
|
7e30814ecb | ||
|
|
e5b1dfb74c | ||
|
|
27bc77363e | ||
|
|
506b73d0a0 |
No files matched your search
@@ -140,7 +140,7 @@ public class FMLClientHandler implements IFMLSidedHandler
|
||||
loading = true;
|
||||
client = minecraft;
|
||||
ObfuscationReflectionHelper.detectObfuscation(World.class);
|
||||
TextureFXManager.instance().setClient(client);
|
||||
// TextureFXManager.instance().setClient(client);
|
||||
FMLCommonHandler.instance().beginLoading(this);
|
||||
new ModLoaderClientHelper(client);
|
||||
try
|
||||
@@ -244,7 +244,7 @@ public class FMLClientHandler implements IFMLSidedHandler
|
||||
}
|
||||
else
|
||||
{
|
||||
TextureFXManager.instance().loadTextures(client.field_71418_C.func_77292_e());
|
||||
// TextureFXManager.instance().loadTextures(client.field_71418_C.func_77292_e());
|
||||
}
|
||||
}
|
||||
/**
|
||||
|
||||
@@ -1,70 +0,0 @@
|
||||
/*
|
||||
* The FML Forge Mod Loader suite.
|
||||
* Copyright (C) 2012 cpw
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
|
||||
* Software Foundation; either version 2.1 of the License, or any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
|
||||
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
package cpw.mods.fml.client;
|
||||
|
||||
import java.awt.Dimension;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import net.minecraft.client.renderer.RenderEngine;
|
||||
import net.minecraft.client.renderer.texturefx.TextureFX;
|
||||
import net.minecraft.client.texturepacks.ITexturePack;
|
||||
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.common.FMLLog;
|
||||
|
||||
public class FMLTextureFX extends TextureFX implements ITextureFX
|
||||
{
|
||||
public int tileSizeBase = 16;
|
||||
public int tileSizeSquare = 256;
|
||||
public int tileSizeMask = 15;
|
||||
public int tileSizeSquareMask = 255;
|
||||
public boolean errored = false;
|
||||
protected Logger log = FMLLog.getLogger();
|
||||
|
||||
public FMLTextureFX(int icon)
|
||||
{
|
||||
super(icon);
|
||||
}
|
||||
|
||||
@Override public void setErrored(boolean err){ errored = err; }
|
||||
@Override public boolean getErrored(){ return errored; }
|
||||
@Override
|
||||
public void onTexturePackChanged(RenderEngine engine, ITexturePack texturepack, Dimension dimensions)
|
||||
{
|
||||
onTextureDimensionsUpdate(dimensions.width, dimensions.height);
|
||||
}
|
||||
@Override
|
||||
public void onTextureDimensionsUpdate(int width, int height)
|
||||
{
|
||||
tileSizeBase = width >> 4;
|
||||
tileSizeSquare = tileSizeBase * tileSizeBase;
|
||||
tileSizeMask = tileSizeBase - 1;
|
||||
tileSizeSquareMask = tileSizeSquare - 1;
|
||||
setErrored(false);
|
||||
setup();
|
||||
}
|
||||
|
||||
protected void setup()
|
||||
{
|
||||
field_76852_a = new byte[tileSizeSquare << 2];
|
||||
}
|
||||
|
||||
public boolean unregister(RenderEngine engine, List<TextureFX> effects)
|
||||
{
|
||||
effects.remove(this);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -16,6 +16,7 @@ package cpw.mods.fml.client;
|
||||
|
||||
import java.awt.Dimension;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.FontRenderer;
|
||||
@@ -23,6 +24,8 @@ import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.client.gui.GuiSmallButton;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.texture.Texture;
|
||||
import net.minecraft.client.renderer.texture.TextureManager;
|
||||
import net.minecraft.util.StringTranslate;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
@@ -118,17 +121,16 @@ public class GuiModList extends GuiScreen
|
||||
int shifty = 35;
|
||||
if (!selectedMod.getMetadata().logoFile.isEmpty())
|
||||
{
|
||||
int texture = this.field_73882_e.field_71446_o.func_78341_b(selectedMod.getMetadata().logoFile);
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
this.field_73882_e.field_71446_o.func_78342_b(texture);
|
||||
Dimension dim = TextureFXManager.instance().getTextureDimensions(texture);
|
||||
List<Texture> texList = TextureManager.func_94267_b().func_94266_e(selectedMod.getMetadata().logoFile);
|
||||
Texture texture = texList.get(0);
|
||||
texture.func_94277_a(0);
|
||||
int top = 32;
|
||||
Tessellator tess = Tessellator.field_78398_a;
|
||||
tess.func_78382_b();
|
||||
tess.func_78374_a(offset, top + dim.height, field_73735_i, 0, 1);
|
||||
tess.func_78374_a(offset + dim.width, top + dim.height, field_73735_i, 1, 1);
|
||||
tess.func_78374_a(offset + dim.width, top, field_73735_i, 1, 0);
|
||||
tess.func_78374_a(offset, top, field_73735_i, 0, 0);
|
||||
tess.func_78374_a(offset, top + texture.func_94284_b(), field_73735_i, 0, 1);
|
||||
tess.func_78374_a(offset + texture.func_94282_c(), top + texture.func_94284_b(), field_73735_i, 1, 1);
|
||||
tess.func_78374_a(offset + texture.func_94282_c(), top, field_73735_i, 1, 0);
|
||||
tess.func_78374_a(offset, top, field_73735_i, 0, 0);
|
||||
tess.func_78381_a();
|
||||
|
||||
shifty += 65;
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
/*
|
||||
* The FML Forge Mod Loader suite.
|
||||
* Copyright (C) 2012 cpw
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
|
||||
* Software Foundation; either version 2.1 of the License, or any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
|
||||
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
package cpw.mods.fml.client;
|
||||
|
||||
import net.minecraft.client.renderer.texturefx.TextureFX;
|
||||
|
||||
class OverrideInfo
|
||||
{
|
||||
public String texture;
|
||||
public String override;
|
||||
public int index;
|
||||
public int imageIndex;
|
||||
public TextureFX textureFX;
|
||||
public boolean added;
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
try {
|
||||
OverrideInfo inf=(OverrideInfo) obj;
|
||||
return index==inf.index && imageIndex==inf.imageIndex;
|
||||
} catch (Exception e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
return index+imageIndex;
|
||||
}
|
||||
}
|
||||
@@ -1,302 +1,24 @@
|
||||
package cpw.mods.fml.client;
|
||||
|
||||
import static org.lwjgl.opengl.GL11.GL_TEXTURE_2D;
|
||||
import static org.lwjgl.opengl.GL11.GL_TEXTURE_BINDING_2D;
|
||||
|
||||
import java.awt.Dimension;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.IdentityHashMap;
|
||||
import java.util.List;
|
||||
import java.util.ListIterator;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.RenderEngine;
|
||||
import net.minecraft.client.renderer.texturefx.TextureFX;
|
||||
import net.minecraft.client.texturepacks.ITexturePack;
|
||||
import net.minecraft.src.ModTextureStatic;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.google.common.collect.ArrayListMultimap;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.common.collect.Multimap;
|
||||
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.common.FMLLog;
|
||||
import cpw.mods.fml.common.ModContainer;
|
||||
|
||||
public class TextureFXManager
|
||||
{
|
||||
private static final TextureFXManager INSTANCE = new TextureFXManager();
|
||||
|
||||
private class TextureProperties
|
||||
{
|
||||
private int textureId;
|
||||
private Dimension dim;
|
||||
}
|
||||
|
||||
private Map<Integer,TextureProperties> textureProperties = Maps.newHashMap();
|
||||
private Multimap<String, OverrideInfo> overrideInfo = ArrayListMultimap.create();
|
||||
private HashSet<OverrideInfo> animationSet = new HashSet<OverrideInfo>();
|
||||
|
||||
private List<TextureFX> addedTextureFX = new ArrayList<TextureFX>();
|
||||
|
||||
private Minecraft client;
|
||||
|
||||
void setClient(Minecraft client)
|
||||
{
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
public boolean onUpdateTextureEffect(TextureFX effect)
|
||||
{
|
||||
ITextureFX ifx = (effect instanceof ITextureFX ? ((ITextureFX)effect) : null);
|
||||
|
||||
if (ifx != null && ifx.getErrored())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
String name = effect.getClass().getSimpleName();
|
||||
client.field_71424_I.func_76320_a(name);
|
||||
try
|
||||
{
|
||||
if (!FMLClientHandler.instance().hasOptifine())
|
||||
{
|
||||
effect.func_76846_a();
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
FMLLog.warning("Texture FX %s has failed to animate. Likely caused by a texture pack change that they did not respond correctly to", name);
|
||||
if (ifx != null)
|
||||
{
|
||||
ifx.setErrored(true);
|
||||
}
|
||||
client.field_71424_I.func_76319_b();
|
||||
return false;
|
||||
}
|
||||
client.field_71424_I.func_76319_b();
|
||||
|
||||
if (ifx != null)
|
||||
{
|
||||
Dimension dim = getTextureDimensions(effect);
|
||||
int target = ((dim.width >> 4) * (dim.height >> 4)) << 2;
|
||||
if (effect.field_76852_a.length != target)
|
||||
{
|
||||
FMLLog.warning("Detected a texture FX sizing discrepancy in %s (%d, %d)", name, effect.field_76852_a.length, target);
|
||||
ifx.setErrored(true);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//Quick and dirty image scaling, no smoothing or fanciness, meant for speed as it will be called every tick.
|
||||
public void scaleTextureFXData(byte[] data, ByteBuffer buf, int target, int length)
|
||||
{
|
||||
int sWidth = (int)Math.sqrt(data.length / 4);
|
||||
int factor = target / sWidth;
|
||||
byte[] tmp = new byte[4];
|
||||
|
||||
buf.clear();
|
||||
|
||||
if (factor > 1)
|
||||
{
|
||||
for (int y = 0; y < sWidth; y++)
|
||||
{
|
||||
int sRowOff = sWidth * y;
|
||||
int tRowOff = target * y * factor;
|
||||
for (int x = 0; x < sWidth; x++)
|
||||
{
|
||||
int sPos = (x + sRowOff) * 4;
|
||||
tmp[0] = data[sPos + 0];
|
||||
tmp[1] = data[sPos + 1];
|
||||
tmp[2] = data[sPos + 2];
|
||||
tmp[3] = data[sPos + 3];
|
||||
|
||||
int tPosTop = (x * factor) + tRowOff;
|
||||
for (int y2 = 0; y2 < factor; y2++)
|
||||
{
|
||||
buf.position((tPosTop + (y2 * target)) * 4);
|
||||
for (int x2 = 0; x2 < factor; x2++)
|
||||
{
|
||||
buf.put(tmp);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buf.position(0).limit(length);
|
||||
}
|
||||
|
||||
public void onPreRegisterEffect(TextureFX effect)
|
||||
{
|
||||
Dimension dim = getTextureDimensions(effect);
|
||||
if (effect instanceof ITextureFX)
|
||||
{
|
||||
((ITextureFX)effect).onTextureDimensionsUpdate(dim.width, dim.height);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public int getEffectTexture(TextureFX effect)
|
||||
{
|
||||
Integer id = effectTextures.get(effect);
|
||||
if (id != null)
|
||||
{
|
||||
return id;
|
||||
}
|
||||
|
||||
int old = GL11.glGetInteger(GL_TEXTURE_BINDING_2D);
|
||||
effect.func_76845_a(client.field_71446_o);
|
||||
id = GL11.glGetInteger(GL_TEXTURE_BINDING_2D);
|
||||
GL11.glBindTexture(GL_TEXTURE_2D, old);
|
||||
effectTextures.put(effect, id);
|
||||
effect.field_76848_d = id;
|
||||
return id;
|
||||
}
|
||||
|
||||
public void onTexturePackChange(RenderEngine engine, ITexturePack texturepack, List<TextureFX> effects)
|
||||
{
|
||||
pruneOldTextureFX(texturepack, effects);
|
||||
|
||||
for (TextureFX tex : effects)
|
||||
{
|
||||
if (tex instanceof ITextureFX)
|
||||
{
|
||||
((ITextureFX)tex).onTexturePackChanged(engine, texturepack, getTextureDimensions(tex));
|
||||
}
|
||||
}
|
||||
|
||||
loadTextures(texturepack);
|
||||
}
|
||||
|
||||
private HashMap<Integer, Dimension> textureDims = new HashMap<Integer, Dimension>();
|
||||
private IdentityHashMap<TextureFX, Integer> effectTextures = new IdentityHashMap<TextureFX, Integer>();
|
||||
private ITexturePack earlyTexturePack;
|
||||
public void setTextureDimensions(int id, int width, int height, List<TextureFX> effects)
|
||||
{
|
||||
Dimension dim = new Dimension(width, height);
|
||||
textureDims.put(id, dim);
|
||||
|
||||
for (TextureFX tex : effects)
|
||||
{
|
||||
if (getEffectTexture(tex) == id && tex instanceof ITextureFX)
|
||||
{
|
||||
((ITextureFX)tex).onTextureDimensionsUpdate(width, height);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Dimension getTextureDimensions(TextureFX effect)
|
||||
{
|
||||
return getTextureDimensions(getEffectTexture(effect));
|
||||
}
|
||||
|
||||
public Dimension getTextureDimensions(int id)
|
||||
{
|
||||
return textureDims.get(id);
|
||||
}
|
||||
|
||||
public void addAnimation(TextureFX anim)
|
||||
{
|
||||
OverrideInfo info=new OverrideInfo();
|
||||
info.index=anim.field_76850_b;
|
||||
info.imageIndex=anim.field_76847_f;
|
||||
info.textureFX=anim;
|
||||
if (animationSet.contains(info)) {
|
||||
animationSet.remove(info);
|
||||
}
|
||||
animationSet.add(info);
|
||||
}
|
||||
|
||||
|
||||
public void loadTextures(ITexturePack texturePack)
|
||||
{
|
||||
registerTextureOverrides(client.field_71446_o);
|
||||
}
|
||||
|
||||
|
||||
public void registerTextureOverrides(RenderEngine renderer) {
|
||||
for (OverrideInfo animationOverride : animationSet) {
|
||||
renderer.func_78355_a(animationOverride.textureFX);
|
||||
addedTextureFX.add(animationOverride.textureFX);
|
||||
FMLCommonHandler.instance().getFMLLogger().finer(String.format("Registered texture override %d (%d) on %s (%d)", animationOverride.index, animationOverride.textureFX.field_76850_b, animationOverride.textureFX.getClass().getSimpleName(), animationOverride.textureFX.field_76847_f));
|
||||
}
|
||||
|
||||
for (String fileToOverride : overrideInfo.keySet()) {
|
||||
for (OverrideInfo override : overrideInfo.get(fileToOverride)) {
|
||||
try
|
||||
{
|
||||
BufferedImage image=loadImageFromTexturePack(renderer, override.override);
|
||||
ModTextureStatic mts=new ModTextureStatic(override.index, 1, override.texture, image);
|
||||
renderer.func_78355_a(mts);
|
||||
addedTextureFX.add(mts);
|
||||
FMLCommonHandler.instance().getFMLLogger().finer(String.format("Registered texture override %d (%d) on %s (%d)", override.index, mts.field_76850_b, override.texture, mts.field_76847_f));
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
FMLCommonHandler.instance().getFMLLogger().throwing("FMLClientHandler", "registerTextureOverrides", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void registerAnimatedTexturesFor(ModContainer mod)
|
||||
{
|
||||
}
|
||||
|
||||
public void onEarlyTexturePackLoad(ITexturePack fallback)
|
||||
{
|
||||
if (client==null) {
|
||||
// We're far too early- let's wait
|
||||
this.earlyTexturePack = fallback;
|
||||
} else {
|
||||
loadTextures(fallback);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void pruneOldTextureFX(ITexturePack var1, List<TextureFX> effects)
|
||||
{
|
||||
ListIterator<TextureFX> li = addedTextureFX.listIterator();
|
||||
while (li.hasNext())
|
||||
{
|
||||
TextureFX tex = li.next();
|
||||
if (tex instanceof FMLTextureFX)
|
||||
{
|
||||
if (((FMLTextureFX)tex).unregister(client.field_71446_o, effects))
|
||||
{
|
||||
li.remove();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
effects.remove(tex);
|
||||
li.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
public void addNewTextureOverride(String textureToOverride, String overridingTexturePath, int location) {
|
||||
OverrideInfo info = new OverrideInfo();
|
||||
info.index = location;
|
||||
info.override = overridingTexturePath;
|
||||
info.texture = textureToOverride;
|
||||
overrideInfo.put(textureToOverride, info);
|
||||
FMLLog.fine("Overriding %s @ %d with %s. %d slots remaining",textureToOverride, location, overridingTexturePath, SpriteHelper.freeSlotCount(textureToOverride));
|
||||
}
|
||||
|
||||
public BufferedImage loadImageFromTexturePack(RenderEngine renderEngine, String path) throws IOException
|
||||
{
|
||||
InputStream image=client.field_71418_C.func_77292_e().func_77532_a(path);
|
||||
|
||||
@@ -106,7 +106,7 @@ public class RenderingRegistry
|
||||
*/
|
||||
public static void addTextureOverride(String path, String overlayPath, int index)
|
||||
{
|
||||
TextureFXManager.instance().addNewTextureOverride(path, overlayPath, index);
|
||||
// TextureFXManager.instance().addNewTextureOverride(path, overlayPath, index);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -22,7 +22,6 @@ import java.util.logging.Logger;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.client.renderer.RenderEngine;
|
||||
import net.minecraft.client.renderer.texturefx.TextureFX;
|
||||
import net.minecraft.client.texturepacks.ITexturePack;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
|
||||
@@ -54,31 +53,6 @@ public class FMLRenderAccessLibrary
|
||||
FMLLog.log(level, throwable, message);
|
||||
}
|
||||
|
||||
public static void setTextureDimensions(int textureId, int width, int height, List<TextureFX> textureFXList)
|
||||
{
|
||||
TextureFXManager.instance().setTextureDimensions(textureId, width, height, textureFXList);
|
||||
}
|
||||
|
||||
public static void preRegisterEffect(TextureFX textureFX)
|
||||
{
|
||||
TextureFXManager.instance().onPreRegisterEffect(textureFX);
|
||||
}
|
||||
|
||||
public static boolean onUpdateTextureEffect(TextureFX textureFX)
|
||||
{
|
||||
return TextureFXManager.instance().onUpdateTextureEffect(textureFX);
|
||||
}
|
||||
|
||||
public static Dimension getTextureDimensions(TextureFX textureFX)
|
||||
{
|
||||
return TextureFXManager.instance().getTextureDimensions(textureFX);
|
||||
}
|
||||
|
||||
public static void onTexturePackChange(RenderEngine engine, ITexturePack texturePack, List<TextureFX> textureFXList)
|
||||
{
|
||||
TextureFXManager.instance().onTexturePackChange(engine, texturePack, textureFXList);
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public static boolean renderWorldBlock(RenderBlocks renderer, IBlockAccess world, int x, int y, int z, Block block, int modelId)
|
||||
{
|
||||
|
||||
@@ -28,7 +28,6 @@ import net.minecraft.client.multiplayer.NetClientHandler;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.client.renderer.RenderEngine;
|
||||
import net.minecraft.client.renderer.entity.Render;
|
||||
import net.minecraft.client.renderer.texturefx.TextureFX;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.client.settings.KeyBinding;
|
||||
import net.minecraft.command.ICommand;
|
||||
@@ -120,12 +119,6 @@ public class ModLoader
|
||||
{
|
||||
}
|
||||
|
||||
@SideOnly(CLIENT)
|
||||
public static void addAnimation(TextureFX anim)
|
||||
{
|
||||
TextureFXManager.instance().addAnimation(anim);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a new prefix to the armor texture list
|
||||
*
|
||||
|
||||
@@ -1,141 +0,0 @@
|
||||
/*
|
||||
* The FML Forge Mod Loader suite.
|
||||
* Copyright (C) 2012 cpw
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
|
||||
* Software Foundation; either version 2.1 of the License, or any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
|
||||
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
package net.minecraft.src;
|
||||
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.awt.image.ImageObserver;
|
||||
|
||||
import net.minecraft.client.renderer.RenderEngine;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import cpw.mods.fml.client.FMLClientHandler;
|
||||
import cpw.mods.fml.client.FMLTextureFX;
|
||||
|
||||
/**
|
||||
* A texture override for animations, it takes a vertical image of
|
||||
* texture frames and constantly rotates them in the texture.
|
||||
*/
|
||||
public class ModTextureAnimation extends FMLTextureFX
|
||||
{
|
||||
private final int tickRate;
|
||||
private byte[][] images;
|
||||
private int index = 0;
|
||||
private int ticks = 0;
|
||||
|
||||
private String targetTex = null;
|
||||
private BufferedImage imgData = null;
|
||||
|
||||
public ModTextureAnimation(int icon, int target, BufferedImage image, int tickCount)
|
||||
{
|
||||
this(icon, 1, target, image, tickCount);
|
||||
}
|
||||
|
||||
public ModTextureAnimation(int icon, int size, int target, BufferedImage image, int tickCount)
|
||||
{
|
||||
this(icon, size, (target == 0 ? "/terrain.png" : "/gui/items.png"), image, tickCount);
|
||||
}
|
||||
|
||||
public ModTextureAnimation(int icon, int size, String target, BufferedImage image, int tickCount)
|
||||
{
|
||||
super(icon);
|
||||
RenderEngine re = FMLClientHandler.instance().getClient().field_71446_o;
|
||||
|
||||
targetTex = target;
|
||||
field_76849_e = size;
|
||||
field_76847_f = re.func_78341_b(target);
|
||||
|
||||
tickRate = tickCount;
|
||||
ticks = tickCount;
|
||||
imgData = image;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setup()
|
||||
{
|
||||
super.setup();
|
||||
|
||||
int sWidth = imgData.getWidth();
|
||||
int sHeight = imgData.getHeight();
|
||||
int tWidth = tileSizeBase;
|
||||
int tHeight = tileSizeBase;
|
||||
|
||||
|
||||
int frames = (int)Math.floor((double)(sHeight / sWidth));
|
||||
|
||||
if (frames < 1)
|
||||
{
|
||||
throw new IllegalArgumentException(String.format("Attempted to create a TextureAnimation with no complete frames: %dx%d", sWidth, sHeight));
|
||||
}
|
||||
else
|
||||
{
|
||||
images = new byte[frames][];
|
||||
BufferedImage image = imgData;
|
||||
|
||||
if (sWidth != tWidth)
|
||||
{
|
||||
BufferedImage b = new BufferedImage(tWidth, tHeight * frames, 6);
|
||||
Graphics2D g = b.createGraphics();
|
||||
g.drawImage(imgData, 0, 0, tWidth, tHeight * frames, 0, 0, sWidth, sHeight, (ImageObserver)null);
|
||||
g.dispose();
|
||||
image = b;
|
||||
}
|
||||
|
||||
for (int frame = 0; frame < frames; frame++)
|
||||
{
|
||||
int[] pixels = new int[tileSizeSquare];
|
||||
image.getRGB(0, tHeight * frame, tWidth, tHeight, pixels, 0, tWidth);
|
||||
images[frame] = new byte[tileSizeSquare << 2];
|
||||
|
||||
for (int i = 0; i < pixels.length; i++)
|
||||
{
|
||||
int i4 = i * 4;
|
||||
images[frame][i4 + 0] = (byte)(pixels[i] >> 16 & 255);
|
||||
images[frame][i4 + 1] = (byte)(pixels[i] >> 8 & 255);
|
||||
images[frame][i4 + 2] = (byte)(pixels[i] >> 0 & 255);
|
||||
images[frame][i4 + 3] = (byte)(pixels[i] >> 24 & 255);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void func_76846_a()
|
||||
{
|
||||
if (++ticks >= tickRate)
|
||||
{
|
||||
if (++index >= images.length)
|
||||
{
|
||||
index = 0;
|
||||
}
|
||||
|
||||
field_76852_a = images[index];
|
||||
ticks = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public void func_76845_a(RenderEngine renderEngine)
|
||||
{
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, field_76847_f);
|
||||
}
|
||||
|
||||
// TODO: REMOVE THIS - just for you dan200
|
||||
@Deprecated
|
||||
public void func_783_a()
|
||||
{
|
||||
func_76846_a();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,183 +0,0 @@
|
||||
/*
|
||||
* The FML Forge Mod Loader suite.
|
||||
* Copyright (C) 2012 cpw
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
|
||||
* Software Foundation; either version 2.1 of the License, or any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
|
||||
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
package net.minecraft.src;
|
||||
|
||||
import static org.lwjgl.opengl.GL11.GL_TEXTURE_2D;
|
||||
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.awt.image.ImageObserver;
|
||||
|
||||
import net.minecraft.client.renderer.RenderEngine;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import cpw.mods.fml.client.FMLClientHandler;
|
||||
import cpw.mods.fml.client.FMLTextureFX;
|
||||
|
||||
public class ModTextureStatic extends FMLTextureFX
|
||||
{
|
||||
private boolean oldanaglyph = false;
|
||||
private int[] pixels = null;
|
||||
private String targetTex = null;
|
||||
private int storedSize;
|
||||
private BufferedImage overrideData = null;
|
||||
private int needApply = 10;
|
||||
|
||||
|
||||
public ModTextureStatic(int icon, int target, BufferedImage image)
|
||||
{
|
||||
this(icon, 1, target, image);
|
||||
}
|
||||
|
||||
public ModTextureStatic(int icon, int size, int target, BufferedImage image)
|
||||
{
|
||||
this(icon, size, (target == 0 ? "/terrain.png" : "/gui/items.png"), image);
|
||||
}
|
||||
|
||||
public ModTextureStatic(int icon, int size, String target, BufferedImage image)
|
||||
{
|
||||
super(icon);
|
||||
RenderEngine re = FMLClientHandler.instance().getClient().field_71446_o;
|
||||
|
||||
targetTex = target;
|
||||
storedSize = size;
|
||||
field_76849_e = size;
|
||||
field_76847_f = re.func_78341_b(target);
|
||||
overrideData = image;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setup()
|
||||
{
|
||||
super.setup();
|
||||
int sWidth = overrideData.getWidth();
|
||||
int sHeight = overrideData.getHeight();
|
||||
|
||||
pixels = new int[tileSizeSquare];
|
||||
if (tileSizeBase == sWidth && tileSizeBase == sHeight)
|
||||
{
|
||||
overrideData.getRGB(0, 0, sWidth, sHeight, pixels, 0, sWidth);
|
||||
}
|
||||
else
|
||||
{
|
||||
BufferedImage tmp = new BufferedImage(tileSizeBase, tileSizeBase, 6);
|
||||
Graphics2D gfx = tmp.createGraphics();
|
||||
gfx.drawImage(overrideData, 0, 0, tileSizeBase, tileSizeBase, 0, 0, sWidth, sHeight, (ImageObserver)null);
|
||||
tmp.getRGB(0, 0, tileSizeBase, tileSizeBase, pixels, 0, tileSizeBase);
|
||||
gfx.dispose();
|
||||
}
|
||||
|
||||
update();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void func_76846_a()
|
||||
{
|
||||
if (oldanaglyph != field_76851_c)
|
||||
{
|
||||
update();
|
||||
}
|
||||
// This makes it so we only apply the texture to the target texture when we need to,
|
||||
//due to the fact that update is called when the Effect is first registered, we actually
|
||||
//need to wait for the next one.
|
||||
field_76849_e = (needApply == 0 ? 0 : storedSize);
|
||||
if (needApply > 0)
|
||||
{
|
||||
needApply--;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void func_76845_a(RenderEngine p_76845_1_)
|
||||
{
|
||||
GL11.glBindTexture(GL_TEXTURE_2D, p_76845_1_.func_78341_b(targetTex));
|
||||
}
|
||||
|
||||
public void update()
|
||||
{
|
||||
needApply = 10;
|
||||
for (int idx = 0; idx < pixels.length; idx++)
|
||||
{
|
||||
int i = idx * 4;
|
||||
int a = pixels[idx] >> 24 & 255;
|
||||
int r = pixels[idx] >> 16 & 255;
|
||||
int g = pixels[idx] >> 8 & 255;
|
||||
int b = pixels[idx] >> 0 & 255;
|
||||
|
||||
if (field_76851_c)
|
||||
{
|
||||
r = g = b = (r + g + b) / 3;
|
||||
}
|
||||
|
||||
field_76852_a[i + 0] = (byte)r;
|
||||
field_76852_a[i + 1] = (byte)g;
|
||||
field_76852_a[i + 2] = (byte)b;
|
||||
field_76852_a[i + 3] = (byte)a;
|
||||
}
|
||||
|
||||
oldanaglyph = field_76851_c;
|
||||
}
|
||||
|
||||
//Implementation of http://scale2x.sourceforge.net/algorithm.html
|
||||
public static BufferedImage scale2x(BufferedImage image)
|
||||
{
|
||||
int w = image.getWidth();
|
||||
int h = image.getHeight();
|
||||
BufferedImage tmp = new BufferedImage(w * 2, h * 2, 2);
|
||||
|
||||
for (int x = 0; x < h; ++x)
|
||||
{
|
||||
int x2 = x * 2;
|
||||
for (int y = 0; y < w; ++y)
|
||||
{
|
||||
int y2 = y * 2;
|
||||
int E = image.getRGB(y, x);
|
||||
int D = (x == 0 ? E : image.getRGB(y, x - 1));
|
||||
int B = (y == 0 ? E : image.getRGB(y - 1, x ));
|
||||
int H = (y >= w - 1 ? E : image.getRGB(y + 1, x ));
|
||||
int F = (x >= h - 1 ? E : image.getRGB(y, x + 1));
|
||||
|
||||
int e0, e1, e2, e3;
|
||||
|
||||
if (B != H && D != F)
|
||||
{
|
||||
e0 = D == B ? D : E;
|
||||
e1 = B == F ? F : E;
|
||||
e2 = D == H ? D : E;
|
||||
e3 = H == F ? F : E;
|
||||
}
|
||||
else
|
||||
{
|
||||
e0 = e1 = e2 = e3 = E;
|
||||
}
|
||||
|
||||
tmp.setRGB(y2, x2, e0);
|
||||
tmp.setRGB(y2 + 1, x2, e1);
|
||||
tmp.setRGB(y2, x2 + 1, e2);
|
||||
tmp.setRGB(y2 + 1, x2 + 1, e3);
|
||||
}
|
||||
}
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return String.format("ModTextureStatic %s @ %d", targetTex, field_76850_b);
|
||||
}
|
||||
}
|
||||
+46
-4
@@ -34,10 +34,19 @@
|
||||
|
||||
def startserver(self):
|
||||
- classpath = [self.binserver] + self.cpathserver
|
||||
+ classpath = [self.binclient] + self.cpathserver
|
||||
+ classpath = [self.binclient, self.srcclient] + self.cpathserver
|
||||
classpath = [os.path.join('..', p) for p in classpath]
|
||||
classpath = os.pathsep.join(classpath)
|
||||
os.chdir(self.dirjars)
|
||||
@@ -1070,7 +1078,7 @@
|
||||
self.runmc(forkcmd)
|
||||
|
||||
def startclient(self):
|
||||
- classpath = [self.binclient] + self.cpathclient
|
||||
+ classpath = [self.binclient, self.srcclient] + self.cpathclient
|
||||
classpath = [os.path.join('..', p) for p in classpath]
|
||||
classpath = os.pathsep.join(classpath)
|
||||
natives = os.path.join('..', self.dirnatives)
|
||||
@@ -1197,20 +1205,20 @@
|
||||
with open(self.csvmethods, 'rb') as fh:
|
||||
methodsreader = csv.DictReader(fh)
|
||||
@@ -97,7 +106,40 @@
|
||||
for class_file in fnmatch.filter(filelist, '*.class'):
|
||||
class_name = class_path + os.path.splitext(class_file)[0]
|
||||
bin_file = os.path.normpath(os.path.join(path, class_file))
|
||||
@@ -1594,6 +1605,9 @@
|
||||
@@ -1535,6 +1546,8 @@
|
||||
if not os.path.exists(outpathlk[side]):
|
||||
os.makedirs(outpathlk[side])
|
||||
|
||||
+ reserved = ['CON', 'PRN', 'AUX', 'NUL', 'COM1', 'COM2', 'COM3', 'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9', 'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6', 'LPT7', 'LPT8', 'LPT9']
|
||||
+
|
||||
# HINT: We extract the modified class files
|
||||
with closing(zipfile.ZipFile(jarlk[side])) as zipjar:
|
||||
for in_class in trgclasses:
|
||||
@@ -1548,6 +1561,23 @@
|
||||
out_class = out_class.replace(self.nullpkg, '')
|
||||
if out_class[0] == '/':
|
||||
out_class = out_class[1:]
|
||||
+
|
||||
+ rename = False
|
||||
+ for res in reserved:
|
||||
+ if out_class.upper().startswith(res):
|
||||
+ rename = True
|
||||
+ break
|
||||
+
|
||||
+ if rename:
|
||||
+ try:
|
||||
+ f = open(os.path.join(outpathlk[side], '_' + out_class), 'wb')
|
||||
+ f.write(zipjar.read(out_class))
|
||||
+ f.close()
|
||||
+ self.logger.info('> Outputted %s to %s as %s', in_class.ljust(35), outpathlk[side], '_' + out_class)
|
||||
+ except IOError:
|
||||
+ self.logger.error('* File %s failed extracting for %s', out_class, in_class)
|
||||
+ continue
|
||||
+
|
||||
try:
|
||||
zipjar.extract(out_class, outpathlk[side])
|
||||
self.logger.info('> Outputted %s to %s as %s', in_class.ljust(35), outpathlk[side], out_class)
|
||||
@@ -1594,6 +1624,9 @@
|
||||
sys.exit(1)
|
||||
|
||||
for entry in newfiles:
|
||||
@@ -107,7 +149,7 @@
|
||||
if entry[3] == 'U':
|
||||
self.logger.info('Retrieving file from server : %s', entry[0])
|
||||
cur_file = os.path.normpath(entry[0])
|
||||
@@ -1614,6 +1628,9 @@
|
||||
@@ -1614,6 +1647,9 @@
|
||||
md5reoblk = {CLIENT: self.md5reobfclient, SERVER: self.md5reobfserver}
|
||||
outpathlk = {CLIENT: self.srcmodclient, SERVER: self.srcmodserver}
|
||||
src = {CLIENT: self.srcclient, SERVER: self.srcserver}
|
||||
@@ -117,7 +159,7 @@
|
||||
|
||||
# HINT: We need a table for the old md5 and the new ones
|
||||
md5table = {}
|
||||
@@ -1656,3 +1673,6 @@
|
||||
@@ -1656,3 +1692,6 @@
|
||||
except IOError:
|
||||
self.logger.error('* File %s copy failed', in_class)
|
||||
|
||||
|
||||
@@ -453,4 +453,9 @@ public class FMLCommonHandler
|
||||
{
|
||||
sidedDelegate.disconnectIDMismatch(serverDifference, toKill, network);
|
||||
}
|
||||
|
||||
public void handleServerStopped()
|
||||
{
|
||||
Loader.instance().serverStopped();
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
package cpw.mods.fml.common;
|
||||
|
||||
import java.security.cert.Certificate;
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
@@ -116,4 +117,11 @@ public class FMLDummyContainer extends DummyModContainer implements WorldAccessC
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Certificate getSigningCertificate()
|
||||
{
|
||||
Certificate[] certificates = getClass().getProtectionDomain().getCodeSource().getCertificates();
|
||||
return certificates != null ? certificates[0] : null;
|
||||
}
|
||||
}
|
||||
@@ -60,6 +60,7 @@ import cpw.mods.fml.common.event.FMLPostInitializationEvent;
|
||||
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
|
||||
import cpw.mods.fml.common.event.FMLServerStartedEvent;
|
||||
import cpw.mods.fml.common.event.FMLServerStartingEvent;
|
||||
import cpw.mods.fml.common.event.FMLServerStoppedEvent;
|
||||
import cpw.mods.fml.common.event.FMLServerStoppingEvent;
|
||||
import cpw.mods.fml.common.event.FMLStateEvent;
|
||||
import cpw.mods.fml.common.network.FMLNetworkHandler;
|
||||
@@ -92,6 +93,7 @@ public class FMLModContainer implements ModContainer
|
||||
.put(FMLServerStartingEvent.class, Mod.ServerStarting.class)
|
||||
.put(FMLServerStartedEvent.class, Mod.ServerStarted.class)
|
||||
.put(FMLServerStoppingEvent.class, Mod.ServerStopping.class)
|
||||
.put(FMLServerStoppedEvent.class, Mod.ServerStopped.class)
|
||||
.put(IMCEvent.class,Mod.IMCCallback.class)
|
||||
.put(FMLFingerprintViolationEvent.class, Mod.FingerprintWarning.class)
|
||||
.build();
|
||||
@@ -430,25 +432,32 @@ public class FMLModContainer implements ModContainer
|
||||
|
||||
String expectedFingerprint = (String) descriptor.get("certificateFingerprint");
|
||||
|
||||
if (expectedFingerprint != "" && !sourceFingerprints.contains(expectedFingerprint))
|
||||
fingerprintNotPresent = true;
|
||||
|
||||
if (expectedFingerprint != null && !expectedFingerprint.isEmpty())
|
||||
{
|
||||
Level warnLevel = Level.SEVERE;
|
||||
if (source.isDirectory())
|
||||
if (!sourceFingerprints.contains(expectedFingerprint))
|
||||
{
|
||||
warnLevel = Level.FINER;
|
||||
Level warnLevel = Level.SEVERE;
|
||||
if (source.isDirectory())
|
||||
{
|
||||
warnLevel = Level.FINER;
|
||||
}
|
||||
FMLLog.log(warnLevel, "The mod %s is expecting signature %s for source %s, however there is no signature matching that description", getModId(), expectedFingerprint, source.getName());
|
||||
}
|
||||
else
|
||||
{
|
||||
certificate = certificates[certList.indexOf(expectedFingerprint)];
|
||||
fingerprintNotPresent = false;
|
||||
}
|
||||
FMLLog.log(warnLevel, "The mod %s is expecting signature %s for source %s, however there is no signature matching that description", getModId(), expectedFingerprint, source.getName());
|
||||
}
|
||||
else
|
||||
{
|
||||
certificate = certificates[certList.indexOf(expectedFingerprint)];
|
||||
}
|
||||
|
||||
annotations = gatherAnnotations(clazz);
|
||||
isNetworkMod = FMLNetworkHandler.instance().registerNetworkMod(this, clazz, event.getASMHarvestedData());
|
||||
modInstance = clazz.newInstance();
|
||||
if (fingerprintNotPresent)
|
||||
{
|
||||
handleModStateEvent(new FMLFingerprintViolationEvent(source.isDirectory(), source, ImmutableSet.copyOf(this.sourceFingerprints)));
|
||||
eventBus.post(new FMLFingerprintViolationEvent(source.isDirectory(), source, ImmutableSet.copyOf(this.sourceFingerprints), expectedFingerprint));
|
||||
}
|
||||
ProxyInjector.inject(this, event.getASMHarvestedData(), FMLCommonHandler.instance().getSide());
|
||||
processFieldAnnotations(event.getASMHarvestedData());
|
||||
|
||||
@@ -27,6 +27,7 @@ import java.util.concurrent.Callable;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import net.minecraft.crash.CallableMinecraftVersion;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
|
||||
import com.google.common.base.CharMatcher;
|
||||
import com.google.common.base.Function;
|
||||
@@ -710,8 +711,6 @@ public class Loader
|
||||
{
|
||||
modController.distributeStateMessage(LoaderState.SERVER_STOPPING);
|
||||
modController.transition(LoaderState.SERVER_STOPPING);
|
||||
modController.transition(LoaderState.AVAILABLE);
|
||||
|
||||
}
|
||||
|
||||
public BiMap<ModContainer, Object> getModObjectList()
|
||||
@@ -746,4 +745,11 @@ public class Loader
|
||||
public String getMCPVersionString() {
|
||||
return String.format("MCP v%s", mcpversion);
|
||||
}
|
||||
|
||||
public void serverStopped()
|
||||
{
|
||||
modController.distributeStateMessage(LoaderState.SERVER_STOPPED);
|
||||
modController.transition(LoaderState.SERVER_STOPPED);
|
||||
modController.transition(LoaderState.AVAILABLE);
|
||||
}
|
||||
}
|
||||
@@ -10,6 +10,7 @@ import cpw.mods.fml.common.event.FMLPostInitializationEvent;
|
||||
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
|
||||
import cpw.mods.fml.common.event.FMLServerStartedEvent;
|
||||
import cpw.mods.fml.common.event.FMLServerStartingEvent;
|
||||
import cpw.mods.fml.common.event.FMLServerStoppedEvent;
|
||||
import cpw.mods.fml.common.event.FMLServerStoppingEvent;
|
||||
import cpw.mods.fml.common.event.FMLStateEvent;
|
||||
|
||||
@@ -30,6 +31,7 @@ public enum LoaderState
|
||||
SERVER_STARTING("Server starting", FMLServerStartingEvent.class),
|
||||
SERVER_STARTED("Server started", FMLServerStartedEvent.class),
|
||||
SERVER_STOPPING("Server stopping", FMLServerStoppingEvent.class),
|
||||
SERVER_STOPPED("Server stopped", FMLServerStoppedEvent.class),
|
||||
ERRORED("Mod Loading errored",null);
|
||||
|
||||
|
||||
@@ -49,7 +51,7 @@ public enum LoaderState
|
||||
return ERRORED;
|
||||
}
|
||||
// stopping -> available
|
||||
if (this == SERVER_STOPPING)
|
||||
if (this == SERVER_STOPPED)
|
||||
{
|
||||
return AVAILABLE;
|
||||
}
|
||||
|
||||
@@ -168,6 +168,14 @@ public @interface Mod
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.METHOD)
|
||||
public @interface ServerStopping {}
|
||||
/**
|
||||
* Mark the designated method as being called at the "server-stopped" phase
|
||||
* @author cpw
|
||||
*
|
||||
*/
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.METHOD)
|
||||
public @interface ServerStopped {}
|
||||
/**
|
||||
* Mark the designated method as the receiver for {@link FMLInterModComms} messages
|
||||
* Called between {@link Init} and {@link PostInit}
|
||||
|
||||
@@ -12,12 +12,14 @@ public class FMLFingerprintViolationEvent extends FMLEvent {
|
||||
public final boolean isDirectory;
|
||||
public final Set<String> fingerprints;
|
||||
public final File source;
|
||||
public final String expectedFingerprint;
|
||||
|
||||
public FMLFingerprintViolationEvent(boolean isDirectory, File source, ImmutableSet<String> fingerprints)
|
||||
public FMLFingerprintViolationEvent(boolean isDirectory, File source, ImmutableSet<String> fingerprints, String expectedFingerprint)
|
||||
{
|
||||
super();
|
||||
this.isDirectory = isDirectory;
|
||||
this.source = source;
|
||||
this.fingerprints = fingerprints;
|
||||
this.expectedFingerprint = expectedFingerprint;
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,9 @@ package cpw.mods.fml.common.event;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
import com.google.common.base.Functions;
|
||||
import com.google.common.base.Predicate;
|
||||
@@ -13,80 +16,197 @@ import com.google.common.collect.ImmutableListMultimap;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.common.collect.Multimaps;
|
||||
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.common.FMLLog;
|
||||
import cpw.mods.fml.common.Loader;
|
||||
import cpw.mods.fml.common.LoaderState;
|
||||
import cpw.mods.fml.common.Mod.Instance;
|
||||
import cpw.mods.fml.common.ModContainer;
|
||||
import cpw.mods.fml.common.Mod.Init;
|
||||
import cpw.mods.fml.common.Mod.PostInit;
|
||||
|
||||
|
||||
/**
|
||||
* Simple intermod communications to receive simple messages directed at you from
|
||||
* other mods
|
||||
* Simple intermod communications to receive simple messages directed at you
|
||||
* from other mods
|
||||
*
|
||||
* @author cpw
|
||||
*
|
||||
*/
|
||||
public class FMLInterModComms {
|
||||
private static ArrayListMultimap<String, IMCMessage> modMessages = ArrayListMultimap.create();
|
||||
/**
|
||||
* Subscribe to this event to receive your messages (they are sent between {@link Init} and {@link PostInit})
|
||||
*
|
||||
* @author cpw
|
||||
*
|
||||
*/
|
||||
public static class IMCEvent extends FMLEvent {
|
||||
@Override
|
||||
public void applyModContainer(ModContainer activeContainer) {
|
||||
currentList = ImmutableList.copyOf(modMessages.get(activeContainer.getModId()));
|
||||
}
|
||||
private ImmutableList<IMCMessage> currentList;
|
||||
private static final ImmutableList<IMCMessage> emptyIMCList = ImmutableList.<IMCMessage>of();
|
||||
private static ArrayListMultimap<String, IMCMessage> modMessages = ArrayListMultimap.create();
|
||||
|
||||
public ImmutableList<IMCMessage> getMessages()
|
||||
{
|
||||
return currentList;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Subscribe to this event to receive your messages (they are sent between
|
||||
* {@link Init} and {@link PostInit})
|
||||
*
|
||||
* @author cpw
|
||||
*
|
||||
*/
|
||||
public static class IMCEvent extends FMLEvent {
|
||||
@Override
|
||||
public void applyModContainer(ModContainer activeContainer)
|
||||
{
|
||||
currentList = ImmutableList.copyOf(modMessages.removeAll(activeContainer.getModId()));
|
||||
FMLLog.finest("Attempting to deliver %d IMC messages to mod %s", currentList.size(), activeContainer.getModId());
|
||||
}
|
||||
|
||||
/**
|
||||
* You will receive an instance of this for each message sent
|
||||
* @author cpw
|
||||
*
|
||||
*/
|
||||
public static final class IMCMessage {
|
||||
/**
|
||||
* This is the modid of the mod that sent you the message
|
||||
*/
|
||||
public final String sender;
|
||||
private ImmutableList<IMCMessage> currentList;
|
||||
|
||||
/**
|
||||
* This field, and {@link #value} are both at the mod's discretion
|
||||
*/
|
||||
public final String key;
|
||||
/**
|
||||
* This field, and {@link #key} are both at the mod's discretion
|
||||
*/
|
||||
public final String value;
|
||||
public ImmutableList<IMCMessage> getMessages()
|
||||
{
|
||||
return currentList;
|
||||
}
|
||||
}
|
||||
|
||||
private IMCMessage(String sender, String key, String value)
|
||||
{
|
||||
this.key = key;
|
||||
this.value = value;
|
||||
this.sender = sender;
|
||||
}
|
||||
@Override
|
||||
public String toString() {
|
||||
return sender;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* You will receive an instance of this for each message sent
|
||||
*
|
||||
* @author cpw
|
||||
*
|
||||
*/
|
||||
public static final class IMCMessage {
|
||||
/**
|
||||
* This is the modid of the mod that sent you the message
|
||||
*/
|
||||
private String sender;
|
||||
/**
|
||||
* This field, and {@link #value} are both at the mod's discretion
|
||||
*/
|
||||
public final String key;
|
||||
/**
|
||||
* This field, and {@link #key} are both at the mod's discretion
|
||||
*/
|
||||
private Object value;
|
||||
|
||||
public static boolean sendMessage(String modId, String key, String value)
|
||||
{
|
||||
if (Loader.instance().activeModContainer()==null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
modMessages.put(modId, new IMCMessage(Loader.instance().activeModContainer().getModId(), key, value));
|
||||
return Loader.isModLoaded(modId) && !Loader.instance().hasReachedState(LoaderState.POSTINITIALIZATION);
|
||||
}
|
||||
private IMCMessage(String key, Object value)
|
||||
{
|
||||
this.key = key;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return sender;
|
||||
}
|
||||
|
||||
public String getSender()
|
||||
{
|
||||
return this.sender;
|
||||
}
|
||||
|
||||
void setSender(ModContainer activeModContainer)
|
||||
{
|
||||
this.sender = activeModContainer.getModId();
|
||||
}
|
||||
|
||||
public String getStringValue()
|
||||
{
|
||||
return (String) value;
|
||||
}
|
||||
|
||||
public NBTTagCompound getNBTValue()
|
||||
{
|
||||
return (NBTTagCompound) value;
|
||||
}
|
||||
|
||||
public ItemStack getItemStackValue()
|
||||
{
|
||||
return (ItemStack) value;
|
||||
}
|
||||
|
||||
public Class<?> getMessageType()
|
||||
{
|
||||
return value.getClass();
|
||||
}
|
||||
|
||||
public boolean isStringMessage()
|
||||
{
|
||||
return String.class.isAssignableFrom(getMessageType());
|
||||
}
|
||||
|
||||
public boolean isItemStackMessage()
|
||||
{
|
||||
return ItemStack.class.isAssignableFrom(getMessageType());
|
||||
}
|
||||
|
||||
public boolean isNBTMessage()
|
||||
{
|
||||
return NBTTagCompound.class.isAssignableFrom(getMessageType());
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean sendMessage(String modId, String key, NBTTagCompound value)
|
||||
{
|
||||
return enqueueStartupMessage(modId, new IMCMessage(key, value));
|
||||
}
|
||||
public static boolean sendMessage(String modId, String key, ItemStack value)
|
||||
{
|
||||
return enqueueStartupMessage(modId, new IMCMessage(key, value));
|
||||
}
|
||||
public static boolean sendMessage(String modId, String key, String value)
|
||||
{
|
||||
return enqueueStartupMessage(modId, new IMCMessage(key, value));
|
||||
}
|
||||
|
||||
public static void sendRuntimeMessage(Object sourceMod, String modId, String key, NBTTagCompound value)
|
||||
{
|
||||
enqueueMessage(sourceMod, modId, new IMCMessage(key, value));
|
||||
}
|
||||
|
||||
public static void sendRuntimeMessage(Object sourceMod, String modId, String key, ItemStack value)
|
||||
{
|
||||
enqueueMessage(sourceMod, modId, new IMCMessage(key, value));
|
||||
}
|
||||
|
||||
public static void sendRuntimeMessage(Object sourceMod, String modId, String key, String value)
|
||||
{
|
||||
enqueueMessage(sourceMod, modId, new IMCMessage(key, value));
|
||||
}
|
||||
|
||||
private static boolean enqueueStartupMessage(String modTarget, IMCMessage message)
|
||||
{
|
||||
if (Loader.instance().activeModContainer() == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
enqueueMessage(Loader.instance().activeModContainer(), modTarget, message);
|
||||
return Loader.isModLoaded(modTarget) && !Loader.instance().hasReachedState(LoaderState.POSTINITIALIZATION);
|
||||
|
||||
}
|
||||
private static void enqueueMessage(Object sourceMod, String modTarget, IMCMessage message)
|
||||
{
|
||||
ModContainer mc;
|
||||
if (sourceMod instanceof ModContainer) {
|
||||
mc = (ModContainer) sourceMod;
|
||||
}
|
||||
else
|
||||
{
|
||||
mc = FMLCommonHandler.instance().findContainerFor(sourceMod);
|
||||
}
|
||||
if (mc != null && Loader.isModLoaded(modTarget))
|
||||
{
|
||||
message.setSender(mc);
|
||||
modMessages.put(modTarget, message);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve any pending runtime messages for the mod
|
||||
* @param forMod The {@link Instance} of the Mod to fetch messages for
|
||||
* @return any messages - the collection will never be null
|
||||
*/
|
||||
public static ImmutableList<IMCMessage> fetchRuntimeMessages(Object forMod)
|
||||
{
|
||||
ModContainer mc = FMLCommonHandler.instance().findContainerFor(forMod);
|
||||
if (mc != null)
|
||||
{
|
||||
return ImmutableList.copyOf(modMessages.removeAll(mc));
|
||||
}
|
||||
else
|
||||
{
|
||||
return emptyIMCList;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -96,8 +96,12 @@ public class FMLPreInitializationEvent extends FMLStateEvent
|
||||
* Retrieve the FML signing certificates, if any. Validate these against the
|
||||
* published FML certificates in your mod, if you wish.
|
||||
*
|
||||
* Deprecated because mods should <b>NOT</b> trust this code. Rather
|
||||
* they should copy this, or something like this, into their own mods.
|
||||
*
|
||||
* @return Certificates used to sign FML and Forge
|
||||
*/
|
||||
@Deprecated
|
||||
public Certificate[] getFMLSigningCertificates()
|
||||
{
|
||||
CodeSource codeSource = getClass().getClassLoader().getParent().getClass().getProtectionDomain().getCodeSource();
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package cpw.mods.fml.common.event;
|
||||
|
||||
import cpw.mods.fml.common.LoaderState;
|
||||
import cpw.mods.fml.common.LoaderState.ModState;
|
||||
|
||||
public class FMLServerStoppedEvent extends FMLStateEvent {
|
||||
|
||||
public FMLServerStoppedEvent(Object... data)
|
||||
{
|
||||
super(data);
|
||||
}
|
||||
@Override
|
||||
public ModState getModState()
|
||||
{
|
||||
return ModState.AVAILABLE;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,21 +1,27 @@
|
||||
package cpw.mods.fml.common.modloader;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import com.google.common.collect.Sets;
|
||||
|
||||
import cpw.mods.fml.common.network.IGuiHandler;
|
||||
|
||||
public class ModLoaderGuiHelper implements IGuiHandler
|
||||
{
|
||||
|
||||
private BaseModProxy mod;
|
||||
private int id;
|
||||
private Set<Integer> ids;
|
||||
private Container container;
|
||||
private int currentID;
|
||||
|
||||
ModLoaderGuiHelper(BaseModProxy mod, int id)
|
||||
ModLoaderGuiHelper(BaseModProxy mod)
|
||||
{
|
||||
this.mod = mod;
|
||||
this.id = id;
|
||||
this.ids = Sets.newHashSet();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -30,9 +36,10 @@ public class ModLoaderGuiHelper implements IGuiHandler
|
||||
return ModLoaderHelper.getClientSideGui(mod, player, ID, x, y, z);
|
||||
}
|
||||
|
||||
public void injectContainer(Container container)
|
||||
public void injectContainerAndID(Container container, int ID)
|
||||
{
|
||||
this.container = container;
|
||||
this.currentID = ID;
|
||||
}
|
||||
|
||||
public Object getMod()
|
||||
@@ -40,4 +47,9 @@ public class ModLoaderGuiHelper implements IGuiHandler
|
||||
return mod;
|
||||
}
|
||||
|
||||
public void associateId(int additionalID)
|
||||
{
|
||||
this.ids.add(additionalID);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -20,8 +20,10 @@ import java.util.Map;
|
||||
import java.util.concurrent.Callable;
|
||||
|
||||
import com.google.common.collect.ArrayListMultimap;
|
||||
import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.ListMultimap;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.common.collect.SetMultimap;
|
||||
|
||||
import net.minecraft.command.ICommand;
|
||||
import net.minecraft.entity.Entity;
|
||||
@@ -60,7 +62,8 @@ public class ModLoaderHelper
|
||||
{
|
||||
public static IModLoaderSidedHelper sidedHelper;
|
||||
|
||||
private static Map<Integer, ModLoaderGuiHelper> guiHelpers = Maps.newHashMap();
|
||||
private static Map<BaseModProxy, ModLoaderGuiHelper> guiHelpers = Maps.newHashMap();
|
||||
private static Map<Integer, ModLoaderGuiHelper> guiIDs = Maps.newHashMap();
|
||||
|
||||
public static void updateStandardTicks(BaseModProxy mod, boolean enable, boolean useClock)
|
||||
{
|
||||
@@ -161,15 +164,21 @@ public class ModLoaderHelper
|
||||
|
||||
public static void buildGuiHelper(BaseModProxy mod, int id)
|
||||
{
|
||||
ModLoaderGuiHelper handler = new ModLoaderGuiHelper(mod, id);
|
||||
guiHelpers.put(id, handler);
|
||||
NetworkRegistry.instance().registerGuiHandler(mod, handler);
|
||||
ModLoaderGuiHelper handler = guiHelpers.get(mod);
|
||||
if (handler == null)
|
||||
{
|
||||
handler = new ModLoaderGuiHelper(mod);
|
||||
guiHelpers.put(mod,handler);
|
||||
NetworkRegistry.instance().registerGuiHandler(mod, handler);
|
||||
}
|
||||
handler.associateId(id);
|
||||
guiIDs.put(id, handler);
|
||||
}
|
||||
|
||||
public static void openGui(int id, EntityPlayer player, Container container, int x, int y, int z)
|
||||
{
|
||||
ModLoaderGuiHelper helper = guiHelpers.get(id);
|
||||
helper.injectContainer(container);
|
||||
ModLoaderGuiHelper helper = guiIDs.get(id);
|
||||
helper.injectContainerAndID(container, id);
|
||||
player.openGui(helper.getMod(), id, player.field_70170_p, x, y, z);
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ public class ModLoaderPickupNotifier implements IPickupNotifier
|
||||
@Override
|
||||
public void notifyPickup(EntityItem item, EntityPlayer player)
|
||||
{
|
||||
mod.onItemPickup(player, item.func_92014_d());
|
||||
mod.onItemPickup(player, item.func_92059_d());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -110,7 +110,7 @@ public abstract class FMLPacket
|
||||
for (int i = 0; i < packetData.length / 32000 + 1; i++)
|
||||
{
|
||||
int len = Math.min(32000, packetData.length - i* 32000);
|
||||
chunks[i] = Bytes.concat(new byte[] { UnsignedBytes.checkedCast(type.ordinal()), UnsignedBytes.checkedCast(i), UnsignedBytes.checkedCast(chunks.length)}, Ints.toByteArray(len), Arrays.copyOfRange(packetData, i * 32000, len));
|
||||
chunks[i] = Bytes.concat(new byte[] { UnsignedBytes.checkedCast(type.ordinal()), UnsignedBytes.checkedCast(i), UnsignedBytes.checkedCast(chunks.length)}, Ints.toByteArray(len), Arrays.copyOfRange(packetData, i * 32000, len + i * 32000));
|
||||
}
|
||||
return chunks;
|
||||
}
|
||||
|
||||
@@ -1,15 +1,24 @@
|
||||
package cpw.mods.fml.common.registry;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagList;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
import com.google.common.base.Throwables;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.collect.MapDifference;
|
||||
import com.google.common.collect.MapDifference.ValueDifference;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.common.collect.Sets;
|
||||
|
||||
@@ -25,6 +34,39 @@ public class GameData {
|
||||
private static MapDifference<Integer, ItemData> difference;
|
||||
private static boolean shouldContinue = true;
|
||||
private static boolean isSaveValid = true;
|
||||
private static Map<String,String> ignoredMods;
|
||||
|
||||
private static boolean isModIgnoredForIdValidation(String modId)
|
||||
{
|
||||
if (ignoredMods == null)
|
||||
{
|
||||
File f = new File(Loader.instance().getConfigDir(),"fmlIDChecking.properties");
|
||||
if (f.exists())
|
||||
{
|
||||
Properties p = new Properties();
|
||||
try
|
||||
{
|
||||
p.load(new FileInputStream(f));
|
||||
ignoredMods = Maps.fromProperties(p);
|
||||
if (ignoredMods.size()>0)
|
||||
{
|
||||
FMLLog.warning("Using non-empty ignored mods configuration file %s", ignoredMods.keySet());
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Throwables.propagateIfPossible(e);
|
||||
FMLLog.log(Level.SEVERE, e, "Failed to read ignored ID checker mods properties file");
|
||||
ignoredMods = ImmutableMap.<String, String>of();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ignoredMods = ImmutableMap.<String, String>of();
|
||||
}
|
||||
}
|
||||
return ignoredMods.containsKey(modId);
|
||||
}
|
||||
|
||||
public static void newItemAdded(Item item)
|
||||
{
|
||||
@@ -42,10 +84,13 @@ public class GameData {
|
||||
if (idMap.containsKey(item.field_77779_bT))
|
||||
{
|
||||
ItemData id = idMap.get(item.field_77779_bT);
|
||||
FMLLog.warning("[ItemTracker] The mod %s is attempting to overwrite existing item at %d (%s from %s) with %s", mc.getModId(), id.getItemId(), id.getItemType(), id.getModId(), itemType);
|
||||
FMLLog.info("[ItemTracker] The mod %s is overwriting existing item at %d (%s from %s) with %s", mc.getModId(), id.getItemId(), id.getItemType(), id.getModId(), itemType);
|
||||
}
|
||||
idMap.put(item.field_77779_bT, itemData);
|
||||
FMLLog.fine("[ItemTracker] Adding item %s(%d) owned by %s", item.getClass().getName(), item.field_77779_bT, mc.getModId());
|
||||
if (!"Minecraft".equals(mc.getModId()))
|
||||
{
|
||||
FMLLog.fine("[ItemTracker] Adding item %s(%d) owned by %s", item.getClass().getName(), item.field_77779_bT, mc.getModId());
|
||||
}
|
||||
}
|
||||
|
||||
public static void validateWorldSave(Set<ItemData> worldSaveItems)
|
||||
@@ -80,7 +125,26 @@ public class GameData {
|
||||
FMLLog.severe("FML has detected item discrepancies");
|
||||
FMLLog.severe("Missing items : %s", difference.entriesOnlyOnLeft());
|
||||
FMLLog.severe("Mismatched items : %s", difference.entriesDiffering());
|
||||
isSaveValid = false;
|
||||
boolean foundNonIgnored = false;
|
||||
for (ItemData diff : difference.entriesOnlyOnLeft().values())
|
||||
{
|
||||
if (!isModIgnoredForIdValidation(diff.getModId()))
|
||||
{
|
||||
foundNonIgnored = true;
|
||||
}
|
||||
}
|
||||
for (ValueDifference<ItemData> diff : difference.entriesDiffering().values())
|
||||
{
|
||||
if (! ( isModIgnoredForIdValidation(diff.leftValue().getModId()) || isModIgnoredForIdValidation(diff.rightValue().getModId()) ) )
|
||||
{
|
||||
foundNonIgnored = true;
|
||||
}
|
||||
}
|
||||
if (!foundNonIgnored)
|
||||
{
|
||||
FMLLog.severe("FML is ignoring these ID discrepancies because of configuration. YOUR GAME WILL NOW PROBABLY CRASH. HOPEFULLY YOU WON'T HAVE CORRUPTED YOUR WORLD. BLAME %s", ignoredMods.keySet());
|
||||
}
|
||||
isSaveValid = !foundNonIgnored;
|
||||
serverValidationLatch.countDown();
|
||||
}
|
||||
else
|
||||
@@ -162,7 +226,4 @@ public class GameData {
|
||||
ItemData itemData = idMap.get(id);
|
||||
itemData.setName(name,modId);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -250,7 +250,7 @@ public class GameRegistry
|
||||
|
||||
public static void addRecipe(ItemStack output, Object... params)
|
||||
{
|
||||
CraftingManager.func_77594_a().func_92051_a(output, params);
|
||||
CraftingManager.func_77594_a().func_92103_a(output, params);
|
||||
}
|
||||
|
||||
public static void addShapelessRecipe(ItemStack output, Object... params)
|
||||
|
||||
@@ -2,11 +2,14 @@ package cpw.mods.fml.common.registry;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.URL;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
|
||||
import com.google.common.base.Charsets;
|
||||
|
||||
import cpw.mods.fml.common.FMLLog;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
@@ -77,8 +80,7 @@ public class LanguageRegistry
|
||||
{
|
||||
// reload language table by forcing lang to null and reloading the properties file
|
||||
String lang = StringTranslate.func_74808_a().func_74811_c();
|
||||
StringTranslate.func_74808_a().field_74813_d = null;
|
||||
StringTranslate.func_74808_a().func_74810_a(lang);
|
||||
StringTranslate.func_74808_a().func_74810_a(lang, true);
|
||||
}
|
||||
|
||||
|
||||
@@ -133,7 +135,7 @@ public class LanguageRegistry
|
||||
langPack.loadFromXML(langStream);
|
||||
}
|
||||
else {
|
||||
langPack.load(langStream);
|
||||
langPack.load(new InputStreamReader(langStream,Charsets.UTF_8));
|
||||
}
|
||||
|
||||
addStringLocalization(langPack, lang);
|
||||
|
||||
@@ -4,6 +4,8 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
|
||||
import net.minecraft.entity.passive.EntityVillager;
|
||||
import net.minecraft.item.Item;
|
||||
@@ -148,7 +150,16 @@ public class VillagerRegistry
|
||||
}
|
||||
return defaultSkin;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns a list of all added villager types
|
||||
*
|
||||
* @return newVillagerIds
|
||||
*/
|
||||
public static Collection<Integer> getRegisteredVillagers()
|
||||
{
|
||||
return Collections.unmodifiableCollection(instance().newVillagerIds);
|
||||
}
|
||||
/**
|
||||
* Callback to handle trade setup for villagers
|
||||
*
|
||||
|
||||
@@ -15,6 +15,7 @@ import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.jar.Attributes.Name;
|
||||
@@ -41,6 +42,10 @@ public class RelaunchClassLoader extends URLClassLoader
|
||||
|
||||
private static Manifest EMPTY = new Manifest();
|
||||
|
||||
private static final String[] RESERVED = {"CON", "PRN", "AUX", "NUL", "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", "LPT9"};
|
||||
|
||||
private static final boolean DEBUG_CLASSLOADING = Boolean.parseBoolean(System.getProperty("fml.debugClassLoading", "false"));
|
||||
|
||||
public RelaunchClassLoader(URL[] sources)
|
||||
{
|
||||
super(sources, null);
|
||||
@@ -173,6 +178,10 @@ public class RelaunchClassLoader extends URLClassLoader
|
||||
catch (Throwable e)
|
||||
{
|
||||
invalidClasses.add(name);
|
||||
if (DEBUG_CLASSLOADING)
|
||||
{
|
||||
FMLLog.log(Level.FINEST, e, "Exception encountered attempting classloading of %s", name);
|
||||
}
|
||||
throw new ClassNotFoundException(name, e);
|
||||
}
|
||||
}
|
||||
@@ -249,7 +258,7 @@ public class RelaunchClassLoader extends URLClassLoader
|
||||
}
|
||||
catch (Throwable t)
|
||||
{
|
||||
/// HMMM
|
||||
FMLLog.log(Level.WARNING, t, "Problem loading class");
|
||||
return new byte[0];
|
||||
}
|
||||
}
|
||||
@@ -271,15 +280,38 @@ public class RelaunchClassLoader extends URLClassLoader
|
||||
|
||||
public byte[] getClassBytes(String name) throws IOException
|
||||
{
|
||||
if (name.indexOf('.') == -1)
|
||||
{
|
||||
for (String res : RESERVED)
|
||||
{
|
||||
if (name.toUpperCase(Locale.ENGLISH).startsWith(res))
|
||||
{
|
||||
byte[] data = getClassBytes("_" + name);
|
||||
if (data != null)
|
||||
{
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
InputStream classStream = null;
|
||||
try
|
||||
{
|
||||
URL classResource = findResource(name.replace('.', '/').concat(".class"));
|
||||
if (classResource == null)
|
||||
{
|
||||
if (DEBUG_CLASSLOADING)
|
||||
{
|
||||
FMLLog.finest("Failed to find class resource %s", name.replace('.', '/').concat(".class"));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
classStream = classResource.openStream();
|
||||
if (DEBUG_CLASSLOADING)
|
||||
{
|
||||
FMLLog.finest("Loading class %s from resource %s", name, classResource.toString());
|
||||
}
|
||||
return readFully(classStream);
|
||||
}
|
||||
finally
|
||||
|
||||
+37
-37
@@ -1,32 +1,32 @@
|
||||
#Main FML Access Transformer configuration file
|
||||
# TileEntity addMapping
|
||||
public any.a(Ljava/lang/Class;Ljava/lang/String;)V #MD:TileEntity/func_70306_a
|
||||
public aox.a(Ljava/lang/Class;Ljava/lang/String;)V #MD:TileEntity/func_70306_a
|
||||
# EntityList addMappings
|
||||
public lv.a(Ljava/lang/Class;Ljava/lang/String;I)V #MD:EntityList/func_75618_a
|
||||
public lv.a(Ljava/lang/Class;Ljava/lang/String;III)V #MD:EntityList/func_75614_a
|
||||
public lv.b #FD:EntityList/field_75625_b #nameToClassMap
|
||||
public lv.c #FD:EntityList/field_75626_c #classToNameMap
|
||||
public lv.d #FD:EntityList/field_75623_d #idToClassMap
|
||||
public ma.a(Ljava/lang/Class;Ljava/lang/String;I)V #MD:EntityList/func_75618_a
|
||||
public ma.a(Ljava/lang/Class;Ljava/lang/String;III)V #MD:EntityList/func_75614_a
|
||||
public ma.b #FD:EntityList/field_75625_b #nameToClassMap
|
||||
public ma.c #FD:EntityList/field_75626_c #classToNameMap
|
||||
public ma.d #FD:EntityList/field_75623_d #idToClassMap
|
||||
# RenderEngine
|
||||
public bba.h #FD:RenderEngine/field_78367_h #textureList
|
||||
public bba.k #FD:RenderEngine/field_78366_k #texturePack
|
||||
#public bba.h #FD:RenderEngine/field_78367_h #textureList # -- MISSING MAPPING # -- MISSING MAPPING
|
||||
public bcd.j #FD:RenderEngine/field_78366_k #texturePack
|
||||
# RenderManager
|
||||
public bbu.p #FD:RenderManager/field_78729_o #renderers
|
||||
public bcx.p #FD:RenderManager/field_78729_o #renderers
|
||||
# RenderBlocks - everything
|
||||
public bbb.* #FD:RenderBlocks/*
|
||||
public bbb.*() #MD:RenderBlocks/*
|
||||
public bce.* #FD:RenderBlocks/*
|
||||
public bce.*() #MD:RenderBlocks/*
|
||||
#RenderPlayer
|
||||
public-f bco.h #FD:RenderPlayer/field_77110_j #armorlist
|
||||
public-f bdr.h #FD:RenderPlayer/field_77110_j #armorlist
|
||||
#RenderBiped
|
||||
public-f bcc.k #FD:RenderBiped/field_82424_k #armorlist
|
||||
public-f bdf.k #FD:RenderBiped/field_82424_k #armorlist
|
||||
#StringTranslate
|
||||
public bn.b #FD:StringTranslate/field_74815_b
|
||||
public bn.d #FD:StringTranslate/field_74813_d
|
||||
public bn.e #FD:StringTranslate/field_74813_d
|
||||
# TileEntityRenderer
|
||||
public bdw.m #FD:TileEntityRenderer/field_76966_m
|
||||
public bfa.m #FD:TileEntityRenderer/field_76966_m
|
||||
# CraftingManager - make the add recipe methods public
|
||||
public wn.a(Lur;[Ljava/lang/Object;)Lwq; #MD:CraftingManager/func_92051_a
|
||||
public wn.b(Lur;[Ljava/lang/Object;)V #MD:CraftingManager/func_77596_b
|
||||
public wy.a(Lvc;[Ljava/lang/Object;)Lxb; #MD:CraftingManager/func_92103_a
|
||||
public wy.b(Lvc;[Ljava/lang/Object;)V #MD:CraftingManager/func_77596_b
|
||||
# WeightedRandomItem
|
||||
public kv.a #FD:WeightedRandomItem/field_76292_a #probability
|
||||
# ItemStack
|
||||
@@ -37,37 +37,37 @@ public jl.a #FD:StatBase/field_75978_a #statName
|
||||
public it.a(Lit;Z)Z #MD:NetLoginHandler/func_72531_a #'complete connection'
|
||||
public it.h #FD:NetLoginHandler/field_72543_h #userName
|
||||
# EntityPlayerMP getNextWindowId
|
||||
public iq.cg()V #MD:EntityPlayerMP/func_71117_bO
|
||||
public iq.ct #FD:EntityPlayerMP/field_71139_cq
|
||||
public iq.cl()V #MD:EntityPlayerMP/func_71117_bO
|
||||
public iq.cu #FD:EntityPlayerMP/field_71139_cq
|
||||
# EntityAITaskEntry
|
||||
public ne #CL:EntityAITaskEntry
|
||||
public nk #CL:EntityAITaskEntry
|
||||
# EntityAITasks
|
||||
public nd.a #FD:EntityAITasks/field_75782_a #taskList
|
||||
public nj.a #FD:EntityAITasks/field_75782_a #taskList
|
||||
# BlockChest
|
||||
public ajk.n(Lyc;III)Z #MD:BlockChest/func_72292_n #isOcelotBlockingChest
|
||||
public ajy.m(Lyn;III)Z #MD:BlockChest/func_72292_n #isOcelotBlockingChest
|
||||
# EntityLiving
|
||||
public md.aT #FD:EntityLiving/field_70736_aM #carryoverDamage
|
||||
public md.bn #FD:EntityLiving/field_70714_bg #tasks
|
||||
public md.bF #FD:EntityLiving/field_70703_bu #isJumping
|
||||
public mj.aT #FD:EntityLiving/field_70736_aM #carryoverDamage
|
||||
public mj.bn #FD:EntityLiving/field_70714_bg #tasks
|
||||
public mj.bG #FD:EntityLiving/field_70703_bu #isJumping
|
||||
# EntityAIOcelotSit
|
||||
protected nq.a(Lyc;III)Z #MD:EntityAIOcelotSit/func_75398_a #nearestSittableBlock
|
||||
protected nq.f()Z #MD:EntityAIOcelotSit/func_75399_f #isblocksittable
|
||||
protected nw.a(Lyn;III)Z #MD:EntityAIOcelotSit/func_75398_a #nearestSittableBlock
|
||||
protected nw.f()Z #MD:EntityAIOcelotSit/func_75399_f #isblocksittable
|
||||
# CallableMinecraftVersion - sanity check the MC version
|
||||
public b #CL:CallableMinecraftVersion
|
||||
public b.<init>(La;)V #MD:CallableMinecraftVersion/<init>(Lnet/minecraft/src/CrashReport;) #constructor
|
||||
# EntityAnimal
|
||||
public ox.d #FD:EntityAnimal/field_70881_d #inLove
|
||||
public pd.d #FD:EntityAnimal/field_70881_d #inLove
|
||||
# WorldType
|
||||
public yn.<init>(ILjava/lang/String;)V #MD:WorldType/<init>(ILjava/lang/String;)
|
||||
public yn.<init>(ILjava/lang/String;I)V #MD:WorldType/<init>(ILjava/lang/String;I)
|
||||
public yx.<init>(ILjava/lang/String;)V #MD:WorldType/<init>(ILjava/lang/String;)
|
||||
public yx.<init>(ILjava/lang/String;I)V #MD:WorldType/<init>(ILjava/lang/String;I)
|
||||
# ComponentVillage
|
||||
public afs #CL:ComponentVillage
|
||||
public agc #CL:ComponentVillage
|
||||
# EntityVillager - minmax lists
|
||||
public qu.a(Lxu;ILjava/util/Random;F)V #MD:EntityVillager/func_70948_a #addBuy
|
||||
public qu.b(Lxu;ILjava/util/Random;F)V #MD:EntityVillager/func_70949_b #addSell
|
||||
public qu.bO #FD:EntityVillager/field_70958_bB
|
||||
public qu.bP #FD:EntityVillager/field_70960_bC
|
||||
public re.a(Lyf;ILjava/util/Random;F)V #MD:EntityVillager/func_70948_a #addBuy
|
||||
public re.b(Lyf;ILjava/util/Random;F)V #MD:EntityVillager/func_70949_b #addSell
|
||||
public re.bP #FD:EntityVillager/field_70958_bB
|
||||
public re.bQ #FD:EntityVillager/field_70960_bC
|
||||
# GuiButtonMerchant
|
||||
public awb #CL:GuiButtonMerchant
|
||||
public axd #CL:GuiButtonMerchant
|
||||
|
||||
protected atf.a #FD:GuiYesNo/field_73942_a #guiScreen
|
||||
protected aug.a #FD:GuiYesNo/field_73942_a #guiScreen
|
||||
@@ -2,11 +2,11 @@
|
||||
# Only runs at runtime because it's not necessary at compile time
|
||||
# has deobf and obf mappings so it runs OK in mcp
|
||||
# entityplayer -> network/player
|
||||
qx cpw/mods/fml/common/network/Player
|
||||
rh cpw/mods/fml/common/network/Player
|
||||
net.minecraft.entity.player.EntityPlayer cpw/mods/fml/common/network/Player
|
||||
# block -> blockproxy
|
||||
amq cpw/mods/fml/common/registry/BlockProxy
|
||||
ank cpw/mods/fml/common/registry/BlockProxy
|
||||
net.minecraft.block.Block cpw/mods/fml/common/registry/BlockProxy
|
||||
# item -> itemproxy
|
||||
up cpw/mods/fml/common/registry/ItemProxy
|
||||
va cpw/mods/fml/common/registry/ItemProxy
|
||||
net.minecraft.item.Item cpw/mods/fml/common/registry/ItemProxy
|
||||
+2
-2
@@ -3,8 +3,8 @@
|
||||
"modid": "mcp",
|
||||
"name": "Minecraft Coder Pack",
|
||||
"description": "Modding toolkit to decompile and deobfuscate the Minecraft client and server files.",
|
||||
"version": "7.25",
|
||||
"mcversion": "1.4.6",
|
||||
"version": "7.26",
|
||||
"mcversion": "1.4.7",
|
||||
"logoFile": "/mcp.png",
|
||||
"url": "http://mcp.ocean-labs.de/",
|
||||
"updateUrl": "",
|
||||
|
||||
+309
-36
@@ -149,7 +149,6 @@ field_70290_d,hoverStart,2,The EntityItem's random initial float height.
|
||||
field_70291_e,health,2,"The health of this EntityItem. (For example, damage for tools)"
|
||||
field_70292_b,age,2,The age of this EntityItem (used to animate it up and down as well as expire it)
|
||||
field_70293_c,delayBeforeCanPickup,2,
|
||||
field_70294_a,item,2,The item stack of this EntityItem.
|
||||
field_70323_b,classToNameMap,2,A HashMap storing the classes and mapping to the string names (reverse of nameToClassMap).
|
||||
field_70324_q,blockType,2,the Block type that this TileEntity is contained within
|
||||
field_70325_p,blockMetadata,2,
|
||||
@@ -239,6 +238,8 @@ field_70482_c,inventoryContents,2,
|
||||
field_70483_a,inventoryTitle,2,
|
||||
field_70484_a,container,2,The brewing stand this slot belongs to.
|
||||
field_70488_a,associatedChest,2,
|
||||
field_70499_f,isInReverse,2,
|
||||
field_70500_g,matrix,2,Minecart rotational logic matrix
|
||||
field_70501_d,cargoItems,2,Array of item stacks stored in minecart (for storage minecarts).
|
||||
field_70502_e,fuel,2,
|
||||
field_70503_b,pushX,2,
|
||||
@@ -297,6 +298,7 @@ field_70585_a,noteParticleScale,2,
|
||||
field_70586_a,lavaParticleScale,2,
|
||||
field_70587_a,smokeParticleScale,2,
|
||||
field_70588_a,snowDigParticleScale,2,
|
||||
field_70590_a,baseSpellTextureIndex,2,Base spell texture index
|
||||
field_70591_a,entityToPickUp,2,
|
||||
field_70592_at,yOffs,2,renamed from yOffset to fix shadowing Entity.yOffset
|
||||
field_70593_as,maxAge,2,
|
||||
@@ -685,6 +687,154 @@ field_71585_d,offsetsZForSide,2,gives the offset required for this axis to get t
|
||||
field_71586_b,offsetsXForSide,2,gives the offset required for this axis to get the block at that side.
|
||||
field_71587_c,offsetsYForSide,2,gives the offset required for this axis to get the block at that side.
|
||||
field_71588_a,faceToSide,2,Converts a face to a side.
|
||||
field_71589_f,bc_pbe_sha512,2,
|
||||
field_71590_g,bc_pbe_sha224,2,
|
||||
field_71591_d,bc_pbe_sha256,2,
|
||||
field_71592_e,bc_pbe_sha384,2,
|
||||
field_71593_b,bc_pbe,2,
|
||||
field_71594_c,bc_pbe_sha1,2,
|
||||
field_71595_a,bc,2,
|
||||
field_71596_n,bc_pbe_sha1_pkcs12_aes256_cbc,2,
|
||||
field_71597_o,bc_pbe_sha256_pkcs12_aes128_cbc,2,
|
||||
field_71598_l,bc_pbe_sha1_pkcs12_aes128_cbc,2,
|
||||
field_71599_m,bc_pbe_sha1_pkcs12_aes192_cbc,2,
|
||||
field_71600_j,bc_pbe_sha256_pkcs5,2,
|
||||
field_71601_k,bc_pbe_sha256_pkcs12,2,
|
||||
field_71602_h,bc_pbe_sha1_pkcs5,2,
|
||||
field_71603_i,bc_pbe_sha1_pkcs12,2,
|
||||
field_71604_q,bc_pbe_sha256_pkcs12_aes256_cbc,2,
|
||||
field_71605_p,bc_pbe_sha256_pkcs12_aes192_cbc,2,
|
||||
field_71610_b,cache,2,
|
||||
field_71611_a,identifier,2,
|
||||
field_71613_D,digestAlgorithm,2,
|
||||
field_71614_E,md2,2,
|
||||
field_71615_F,md4,2,
|
||||
field_71616_G,md5,2,
|
||||
field_71617_A,encryptionAlgorithm,2,
|
||||
field_71618_B,des_EDE3_CBC,2,
|
||||
field_71619_C,RC2_CBC,2,
|
||||
field_71620_L,id_hmacWithSHA512,2,
|
||||
field_71621_M,data,2,
|
||||
field_71622_N,signedData,2,
|
||||
field_71623_O,envelopedData,2,
|
||||
field_71624_H,id_hmacWithSHA1,2,
|
||||
field_71625_I,id_hmacWithSHA224,2,
|
||||
field_71626_J,id_hmacWithSHA256,2,
|
||||
field_71627_K,id_hmacWithSHA384,2,
|
||||
field_71628_U,pkcs_9_at_unstructuredName,2,
|
||||
field_71629_T,pkcs_9_at_emailAddress,2,
|
||||
field_71630_W,pkcs_9_at_messageDigest,2,
|
||||
field_71631_V,pkcs_9_at_contentType,2,
|
||||
field_71632_Q,digestedData,2,
|
||||
field_71633_P,signedAndEnvelopedData,2,
|
||||
field_71634_S,pkcs_9,2,
|
||||
field_71635_R,encryptedData,2,
|
||||
field_71636_Y,pkcs_9_at_counterSignature,2,
|
||||
field_71637_X,pkcs_9_at_signingTime,2,
|
||||
field_71638_Z,pkcs_9_at_challengePassword,2,
|
||||
field_71639_f,sha1WithRSAEncryption,2,
|
||||
field_71640_g,srsaOAEPEncryptionSET,2,
|
||||
field_71641_d,md4WithRSAEncryption,2,
|
||||
field_71642_e,md5WithRSAEncryption,2,
|
||||
field_71643_b,rsaEncryption,2,
|
||||
field_71644_c,md2WithRSAEncryption,2,
|
||||
field_71645_a,pkcs_1,2,
|
||||
field_71646_n,sha512WithRSAEncryption,2,
|
||||
field_71647_o,sha224WithRSAEncryption,2,
|
||||
field_71648_l,sha256WithRSAEncryption,2,
|
||||
field_71649_m,sha384WithRSAEncryption,2,
|
||||
field_71650_j,id_pSpecified,2,
|
||||
field_71651_k,id_RSASSA_PSS,2,
|
||||
field_71652_h,id_RSAES_OAEP,2,
|
||||
field_71653_i,id_mgf1,2,
|
||||
field_71654_w,pbeWithSHA1AndDES_CBC,2,
|
||||
field_71655_v,pbeWithMD5AndRC2_CBC,2,
|
||||
field_71656_u,pbeWithMD5AndDES_CBC,2,
|
||||
field_71657_t,pbeWithMD2AndRC2_CBC,2,
|
||||
field_71658_s,pbeWithMD2AndDES_CBC,2,
|
||||
field_71659_r,pkcs_5,2,
|
||||
field_71660_q,dhKeyAgreement,2,
|
||||
field_71661_p,pkcs_3,2,
|
||||
field_71662_z,id_PBKDF2,2,
|
||||
field_71663_y,id_PBES2,2,
|
||||
field_71664_x,pbeWithSHA1AndRC2_CBC,2,
|
||||
field_71665_bw,pbewithSHAAnd40BitRC2_CBC,2,
|
||||
field_71666_bv,pbeWithSHAAnd40BitRC2_CBC,2,
|
||||
field_71667_by,id_alg_CMSRC2wrap,2,
|
||||
field_71668_bx,id_alg_CMS3DESwrap,2,
|
||||
field_71669_bs,pbeWithSHAAnd3_KeyTripleDES_CBC,2,
|
||||
field_71670_br,pbeWithSHAAnd40BitRC4,2,
|
||||
field_71671_bu,pbeWithSHAAnd128BitRC2_CBC,2,
|
||||
field_71672_bt,pbeWithSHAAnd2_KeyTripleDES_CBC,2,
|
||||
field_71673_bn,secretBag,2,
|
||||
field_71674_bo,safeContentsBag,2,
|
||||
field_71675_bp,pkcs_12PbeIds,2,
|
||||
field_71676_bq,pbeWithSHAAnd128BitRC4,2,
|
||||
field_71677_bj,keyBag,2,
|
||||
field_71678_bk,pkcs8ShroudedKeyBag,2,
|
||||
field_71679_bl,certBag,2,
|
||||
field_71680_bm,crlBag,2,
|
||||
field_71681_bf,id_spq_ets_uri,2,
|
||||
field_71682_bg,id_spq_ets_unotice,2,
|
||||
field_71683_bh,pkcs_12,2,
|
||||
field_71684_bi,bagtypes,2,
|
||||
field_71685_bb,id_aa_sigPolicyId,2,
|
||||
field_71686_bc,id_aa_commitmentType,2,
|
||||
field_71687_bd,id_aa_signerLocation,2,
|
||||
field_71688_be,id_aa_otherSigCert,2,
|
||||
field_71689_aZ,id_aa_ets_certCRLTimestamp,2,
|
||||
field_71690_aY,id_aa_ets_escTimeStamp,2,
|
||||
field_71691_aR,id_aa_ets_signerAttr,2,
|
||||
field_71692_aQ,id_aa_ets_signerLocation,2,
|
||||
field_71693_aT,id_aa_ets_contentTimestamp,2,
|
||||
field_71694_aS,id_aa_ets_otherSigCert,2,
|
||||
field_71695_aV,id_aa_ets_revocationRefs,2,
|
||||
field_71696_aU,id_aa_ets_certificateRefs,2,
|
||||
field_71697_aX,id_aa_ets_revocationValues,2,
|
||||
field_71698_aW,id_aa_ets_certValues,2,
|
||||
field_71699_aI,id_aa_contentReference,2,
|
||||
field_71700_aJ,id_aa_encrypKeyPref,2,
|
||||
field_71701_aK,id_aa_signingCertificate,2,
|
||||
field_71702_aL,id_aa_signingCertificateV2,2,
|
||||
field_71703_aM,id_aa_contentIdentifier,2,
|
||||
field_71704_aN,id_aa_signatureTimeStampToken,2,
|
||||
field_71705_aO,id_aa_ets_sigPolicyId,2,
|
||||
field_71706_aP,id_aa_ets_commitmentType,2,
|
||||
field_71707_aA,id_cti_ets_proofOfDelivery,2,
|
||||
field_71708_aB,id_cti_ets_proofOfSender,2,
|
||||
field_71709_aC,id_cti_ets_proofOfApproval,2,
|
||||
field_71710_aD,id_cti_ets_proofOfCreation,2,
|
||||
field_71711_aE,id_aa,2,
|
||||
field_71712_aF,id_aa_receiptRequest,2,
|
||||
field_71713_aG,id_aa_contentHint,2,
|
||||
field_71714_aH,id_aa_msgSigDigest,2,
|
||||
field_71715_az,id_cti_ets_proofOfReceipt,2,
|
||||
field_71716_ay,id_cti_ets_proofOfOrigin,2,
|
||||
field_71717_ba,id_aa_ets_archiveTimestamp,2,
|
||||
field_71718_at,id_ct_TSTInfo,2,
|
||||
field_71719_as,id_ct_authData,2,
|
||||
field_71720_ar,id_ct,2,
|
||||
field_71721_aq,sMIMECapabilitiesVersions,2,
|
||||
field_71722_ax,id_cti,2,
|
||||
field_71723_aw,id_ct_timestampedData,2,
|
||||
field_71724_av,id_ct_authEnvelopedData,2,
|
||||
field_71725_au,id_ct_compressedData,2,
|
||||
field_71726_ak,sdsiCertificate,2,
|
||||
field_71727_al,crlTypes,2,
|
||||
field_71728_ai,certTypes,2,
|
||||
field_71729_aj,x509Certificate,2,
|
||||
field_71730_ao,preferSignedData,2,
|
||||
field_71731_ap,canNotDecryptAny,2,
|
||||
field_71732_am,x509Crl,2,
|
||||
field_71733_an,id_alg_PWRI_KEK,2,
|
||||
field_71734_ac,pkcs_9_at_signingDescription,2,
|
||||
field_71735_ad,pkcs_9_at_extensionRequest,2,
|
||||
field_71736_aa,pkcs_9_at_unstructuredAddress,2,
|
||||
field_71737_ab,pkcs_9_at_extendedCertificateAttributes,2,
|
||||
field_71738_ag,pkcs_9_at_localKeyId,2,
|
||||
field_71739_ah,x509certType,2,
|
||||
field_71740_ae,pkcs_9_at_smimeCapabilities,2,
|
||||
field_71741_af,pkcs_9_at_friendlyName,2,
|
||||
field_71743_a,theDecitatedServer,2,Reference to the DecitatedServer object.
|
||||
field_71748_d,connections,2,
|
||||
field_71749_b,isListening,2,Whether the network listener object is listening.
|
||||
@@ -707,6 +857,36 @@ field_71782_a,iv,2,
|
||||
field_71784_a,key,2,
|
||||
field_71787_b,strength,2,
|
||||
field_71788_a,random,2,
|
||||
field_71796_f,pgpCFB,2,
|
||||
field_71797_d,cipher,2,
|
||||
field_71798_e,partialBlockOkay,2,
|
||||
field_71799_b,bufOff,2,
|
||||
field_71800_c,forEncryption,2,
|
||||
field_71801_a,buf,2,
|
||||
field_71809_f,encrypting,2,
|
||||
field_71810_d,blockSize,2,
|
||||
field_71811_e,cipher,2,
|
||||
field_71812_b,cfbV,2,
|
||||
field_71813_c,cfbOutV,2,
|
||||
field_71814_a,IV,2,
|
||||
field_71824_f,T2,2,
|
||||
field_71825_g,T3,2,
|
||||
field_71826_d,T0,2,
|
||||
field_71827_e,T1,2,
|
||||
field_71828_b,Si,2,
|
||||
field_71829_c,rcon,2,
|
||||
field_71830_a,S,2,
|
||||
field_71831_n,C0,2,
|
||||
field_71832_o,C1,2,
|
||||
field_71833_l,ROUNDS,2,
|
||||
field_71834_m,WorkingKey,2,
|
||||
field_71835_j,Tinv2,2,
|
||||
field_71836_k,Tinv3,2,
|
||||
field_71837_h,Tinv0,2,
|
||||
field_71838_i,Tinv1,2,
|
||||
field_71839_r,forEncryption,2,
|
||||
field_71840_q,C3,2,
|
||||
field_71841_p,C2,2,
|
||||
field_71844_b,strength,2,
|
||||
field_71845_a,random,2,
|
||||
field_71938_D,lavaStill,2,Stationary lava source block
|
||||
@@ -853,7 +1033,7 @@ field_72078_bL,redstoneLampIdle,2,
|
||||
field_72079_ak,stoneSingleSlab,2,stoneSingleSlab
|
||||
field_72080_bM,redstoneLampActive,2,
|
||||
field_72081_al,brick,2,
|
||||
field_72082_bJ,whiteStone,2,
|
||||
field_72082_bJ,whiteStone,2,The rock found in The End.
|
||||
field_72083_ai,blockSteel,2,
|
||||
field_72084_bK,dragonEgg,2,
|
||||
field_72085_aj,stoneDoubleSlab,2,stoneDoubleSlab
|
||||
@@ -982,11 +1162,13 @@ field_72450_a,xCoord,2,X coordinate of Vec3D
|
||||
field_72451_a,theDecitatedServer,2,Instance of the DecitatedServer.
|
||||
field_72534_f,mcServer,2,Reference to the MinecraftServer object.
|
||||
field_72535_g,connectionTimer,2,
|
||||
field_72536_d,verifyToken,2,The 4 byte verify token read from a Packet252SharedKey
|
||||
field_72537_e,rand,2,The Random object used to generate serverId hex strings.
|
||||
field_72538_b,myTCPConnection,2,
|
||||
field_72539_c,connectionComplete,2,
|
||||
field_72540_a,logger,2,The Minecraft logger.
|
||||
field_72541_j,loginServerId,2,server ID that is randomly generated by this login handler.
|
||||
field_72542_k,sharedKey,2,Secret AES key obtained from the client's Packet252SharedKey
|
||||
field_72543_h,clientUsername,2,
|
||||
field_72554_f,disconnected,2,True if kicked or disconnected from the server.
|
||||
field_72555_g,netManager,2,Reference to the NetworkManager object.
|
||||
@@ -1133,7 +1315,7 @@ field_72991_N,entitiesWithinAABBExcludingEntity,2,"entities within AxisAlignedBB
|
||||
field_72992_H,spawnPeacefulMobs,2,A flag indicating whether we should spawn peaceful mobs.
|
||||
field_72993_I,activeChunkSet,2,Positions to update
|
||||
field_72994_J,lightUpdateBlockList,2,"is a temporary list of blocks and light values used when updating light levels. Holds up to 32x32x32 blocks (the maximum influence of a light source.) Every element is a packed bit value: 0000000000LLLLzzzzzzyyyyyyxxxxxx. The 4-bit L is a light level used when darkening blocks. 6-bit numbers x, y and z represent the block's offset from the original block, plus 32 (i.e. value of 31 would mean a -1 offset"
|
||||
field_72995_K,isRemote,2,"This is set to true when you are a client connected to a multiplayer world, false otherwise. As of Minecraft 1.3 and the integrated server, this will always return true."
|
||||
field_72995_K,isRemote,2,"This is set to true for client worlds, and false for server worlds."
|
||||
field_72996_f,loadedEntityList,2,A list of all Entities in all currently-loaded chunks
|
||||
field_72997_g,unloadedEntityList,2,
|
||||
field_72998_d,collidingBoundingBoxes,2,
|
||||
@@ -1153,7 +1335,6 @@ field_73011_w,provider,2,The WorldProvider instance that World uses.
|
||||
field_73012_v,rand,2,RNG for World.
|
||||
field_73013_u,difficultySetting,2,Option > Difficulty setting (0 - 3)
|
||||
field_73014_t,editingBlocks,2,true while the world is editing blocks
|
||||
field_73015_s,lightningFlash,2,"If > 0, the sky and skylight colors are illuminated by a lightning flash"
|
||||
field_73016_r,lastLightningBolt,2,Set to 2 whenever a lightning bolt is generated in SSP. Decrements if > 0 in updateWeather(). Value appears to be unused.
|
||||
field_73017_q,thunderingStrength,2,
|
||||
field_73018_p,prevThunderingStrength,2,
|
||||
@@ -1204,7 +1385,7 @@ field_73126_f,lastScaledZPosition,2,
|
||||
field_73127_g,lastYaw,2,
|
||||
field_73128_d,lastScaledXPosition,2,
|
||||
field_73129_e,lastScaledYPosition,2,
|
||||
field_73130_b,BlocksDistanceThreshold,2,
|
||||
field_73130_b,blocksDistanceThreshold,2,
|
||||
field_73131_c,updateFrequency,2,check for sync when ticks % updateFrequency==0
|
||||
field_73132_a,myEntity,2,
|
||||
field_73133_n,playerEntitiesUpdated,2,
|
||||
@@ -1294,7 +1475,7 @@ field_73247_e,currentChunkLoader,2,
|
||||
field_73248_b,chunksToUnload,2,"used by unload100OldestChunks to iterate the loadedChunkHashMap for unload (underlying assumption, first in, first out)"
|
||||
field_73249_c,defaultEmptyChunk,2,
|
||||
field_73250_a,loadChunkOnProvideRequest,2,"if this is false, the defaultEmptyChunk will be returned by the provider"
|
||||
field_73251_h,currentServer,2,
|
||||
field_73251_h,worldObj,2,
|
||||
field_73261_d,locationOfBlockChange,2,
|
||||
field_73262_e,numberOfTilesToUpdate,2,
|
||||
field_73263_b,playersInChunk,2,
|
||||
@@ -1317,6 +1498,7 @@ field_73299_c,zPosition,2,Z coordinate of spawn.
|
||||
field_73300_a,xPosition,2,X coordinate of spawn.
|
||||
field_73301_a,time,2,The world time in minutes.
|
||||
field_73305_b,verifyToken,2,
|
||||
field_73306_c,sharedKey,2,Secret AES key decrypted from sharedSecret via the server's private RSA key
|
||||
field_73307_a,sharedSecret,2,
|
||||
field_73308_d,signLines,2,
|
||||
field_73309_b,yPosition,2,
|
||||
@@ -1448,15 +1630,8 @@ field_73471_b,amount,2,
|
||||
field_73472_a,statisticId,2,
|
||||
field_73474_a,text,2,Sent by the client containing the text to be autocompleted. Sent by the server with possible completions separated by null (two bytes in UTF-16)
|
||||
field_73476_b,message,2,The message being sent.
|
||||
field_73477_c,isServer,2,
|
||||
field_73478_a,maxChatLength,2,Maximum number of characters allowed in chat string in each packet.
|
||||
field_73479_f,pitch,2,The item pitch.
|
||||
field_73480_g,roll,2,The item roll.
|
||||
field_73481_d,zPosition,2,The item Z position.
|
||||
field_73482_e,rotation,2,The item rotation.
|
||||
field_73483_b,xPosition,2,The item X position.
|
||||
field_73484_c,yPosition,2,The item Y position.
|
||||
field_73485_a,entityId,2,Unique entity ID.
|
||||
field_73487_h,itemID,2,
|
||||
field_73490_f,velocityX,2,
|
||||
field_73491_g,velocityY,2,
|
||||
field_73492_d,yPosition,2,The Y position of the entity.
|
||||
@@ -1539,8 +1714,14 @@ field_73576_e,volume,2,1 is 100%. Can be more.
|
||||
field_73577_b,effectX,2,Effect X multiplied by 8
|
||||
field_73578_c,effectY,2,Effect Y multiplied by 8
|
||||
field_73579_a,soundName,2,e.g. step.grass
|
||||
field_73585_g,dataLength,2,total size of the compressed data
|
||||
field_73586_d,chunkPosZ,2,
|
||||
field_73587_e,chunkDataBuffer,2,The compressed chunk data buffer
|
||||
field_73589_c,chunkPostX,2,
|
||||
field_73591_h,chunkDataNotCompressed,2,
|
||||
field_73592_a,randomId,2,
|
||||
field_73595_f,chunkData,2,"The transmitted chunk data, decompressed."
|
||||
field_73596_g,compressedChunkData,2,The compressed chunk data
|
||||
field_73597_d,yChMax,2,"The y-position of the highest chunk Section in the transmitted chunk, in chunk coordinates."
|
||||
field_73598_e,includeInitialize,2,Whether to initialize the Chunk before applying the effect of the Packet51MapChunk.
|
||||
field_73599_b,zCh,2,"The z-position of the transmitted chunk, in chunk coordinates."
|
||||
@@ -1556,9 +1737,9 @@ field_73613_e,chunkPositionRecords,2,
|
||||
field_73614_b,explosionY,2,
|
||||
field_73615_c,explosionZ,2,
|
||||
field_73616_a,explosionX,2,
|
||||
field_73618_b,bedState,2,"Either 1 or 2. 1 indicates to begin raining, 2 indicates to stop raining."
|
||||
field_73619_c,gameMode,2,"Used only when reason = 3. 0 is survival, 1 is creative."
|
||||
field_73620_a,bedChat,2,
|
||||
field_73618_b,eventType,2,"0: Invalid bed, 1: Rain starts, 2: Rain stops, 3: Game mode changed."
|
||||
field_73619_c,gameMode,2,"When reason==3, the game mode to set. See EnumGameType for a list of values."
|
||||
field_73620_a,clientMessage,2,The client prints clientMessage[eventType] to chat when this packet is received.
|
||||
field_73621_d,bedZ,2,
|
||||
field_73623_b,bedX,2,
|
||||
field_73624_c,bedY,2,
|
||||
@@ -1635,6 +1816,7 @@ field_73812_e,height,2,
|
||||
field_73813_b,xPos,2,
|
||||
field_73814_c,yPos,2,
|
||||
field_73815_a,fontRenderer,2,Have the font renderer from GuiScreen to render the textbox text into the screen.
|
||||
field_73816_n,lineScrollOffset,2,The current character index that should be used as start of the rendered text.
|
||||
field_73817_o,cursorPosition,2,
|
||||
field_73818_l,isFocused,2,"If this value is true along isEnabled, keyTyped will process the keys."
|
||||
field_73819_m,isEnabled,2,"If this value is true along isFocused, keyTyped will process the keys."
|
||||
@@ -1715,8 +1897,6 @@ field_73943_n,worldNumber,2,World number to be deleted.
|
||||
field_73944_m,message2,2,Second line of text.
|
||||
field_73946_b,copyLinkButtonText,2,Label for the Copy to Clipboard button.
|
||||
field_73947_a,openLinkWarning,2,Text to warn players from opening unsafe links.
|
||||
field_73948_b,chatGui,2,
|
||||
field_73949_a,theChatClickData,2,Instance of ChatClickData.
|
||||
field_73964_d,guiTexturePackSlot,2,the GuiTexturePackSlot that contains all the texture packs and their descriptions
|
||||
field_73965_b,refreshTimer,2,
|
||||
field_73966_c,fileLocation,2,the absolute location of this texture pack
|
||||
@@ -1866,6 +2046,7 @@ field_74219_p,lowerChestInventory,2,
|
||||
field_74220_o,upperChestInventory,2,
|
||||
field_74224_p,ySize_lo,2,"y size of the inventory window in pixels. Defined as float, passed as int."
|
||||
field_74225_o,xSize_lo,2,"x size of the inventory window in pixels. Defined as float, passed as int"
|
||||
field_74236_u,backupContainerSlots,2,Used to back up the ContainerCreative's inventory slots before filling it with the player's inventory slots for the inventory tab.
|
||||
field_74237_t,searchField,2,
|
||||
field_74238_s,wasClicking,2,True if the left mouse button was held down last time drawScreen was called.
|
||||
field_74239_r,isScrolling,2,True if the scrollbar is being dragged
|
||||
@@ -1885,7 +2066,7 @@ field_74263_b,workingMessage,2,
|
||||
field_74264_c,currentProgress,2,
|
||||
field_74265_a,progressMessage,2,
|
||||
field_74267_a,mcServer,2,Reference to the MinecraftServer object.
|
||||
field_74268_a,simpleDateFormatLogFormatter,2,Date Formatter of Log/Console.
|
||||
field_74268_a,dateFormat,2,The date format to use in the console log.
|
||||
field_74270_a,mcServer,2,Reference to the MinecraftServer object.
|
||||
field_74272_a,mcServer,2,Reference to the MinecraftServer object.
|
||||
field_74274_a,mcServer,2,Reference to the MinecraftServer object.
|
||||
@@ -1980,6 +2161,7 @@ field_74442_b,readPacketCache,2,
|
||||
field_74443_c,pairedConnection,2,
|
||||
field_74444_a,mySocketAddress,2,
|
||||
field_74445_h,gamePaused,2,
|
||||
field_74464_B,chunkDataPacketsDelay,2,Delay for sending pending chunk data packets (as opposed to pending non-chunk data packets)
|
||||
field_74465_f,isInputBeingDecrypted,2,
|
||||
field_74466_g,isOutputEncrypted,2,
|
||||
field_74472_n,isTerminating,2,Whether this network manager is currently terminating (and should ignore further errors).
|
||||
@@ -2014,7 +2196,7 @@ field_74522_a,colorBuffer,2,Float buffer used to set OpenGL material colors
|
||||
field_74532_a,mc,2,A reference to the Minecraft object.
|
||||
field_74534_a,arguments,2,"Arguments that were passed to Minecraft.jar (username, sessionid etc)"
|
||||
field_74536_a,mc,2,Minecraft instance
|
||||
field_74537_a,logo,2,BufferedImage object containing the Majong logo.
|
||||
field_74537_a,logo,2,BufferedImage containing the Mojang logo.
|
||||
field_74541_b,lineString,2,
|
||||
field_74542_c,chatLineID,2,"int value to refer to existing Chat Lines, can be 0 which means unreferrable"
|
||||
field_74543_a,updateCounterCreated,2,GUI Update Counter value this Line was created at
|
||||
@@ -2025,6 +2207,9 @@ field_74571_a,pushbackReader,2,
|
||||
field_74577_b,mc,2,A reference to the Minecraft object.
|
||||
field_74578_c,closing,2,Set to true when Minecraft is closing down.
|
||||
field_74579_a,resourcesFolder,2,The folder to store the resources in.
|
||||
field_74580_b,chunkExistFlag,2,
|
||||
field_74581_c,chunkHasAddSectionFlag,2,
|
||||
field_74582_a,compressedData,2,
|
||||
field_74586_f,rotationZ,2,The Z component of the entity's yaw rotation
|
||||
field_74587_g,rotationYZ,2,The Y component (scaled along the Z axis) of the entity's pitch rotation
|
||||
field_74588_d,rotationX,2,The X component of the entity's yaw rotation
|
||||
@@ -2087,15 +2272,20 @@ field_74756_a,data,2,The byte value for the tag.
|
||||
field_74784_a,tagMap,2,"The key-value pairs for the tag. Each key is a UTF string, each value is a tag."
|
||||
field_74790_a,enumJsonNodeTypeMappingArray,2,A mapping helper array for EnumJsonNodeType's values.
|
||||
field_74791_a,escapedString,2,
|
||||
field_74801_a,theBouncyCastleProvider,2,
|
||||
field_74813_d,currentLanguage,2,
|
||||
field_74814_e,isUnicode,2,
|
||||
field_74815_b,translateTable,2,Contains all key/value pairs to be translated - is loaded from '/lang/en_US.lang' when the StringTranslate is created.
|
||||
field_74816_c,languageList,2,
|
||||
field_74817_a,instance,2,Is the private singleton instance of StringTranslate.
|
||||
field_74822_f,ASYMMETRIC_GENERIC,2,
|
||||
field_74823_g,ASYMMETRIC_CIPHERS,2,
|
||||
field_74824_d,keyInfoConverters,2,
|
||||
field_74825_e,SYMMETRIC_CIPHERS,2,
|
||||
field_74826_b,CONFIGURATION,2,
|
||||
field_74827_c,info,2,
|
||||
field_74828_a,PROVIDER_NAME,2,
|
||||
field_74829_h,DIGESTS,2,
|
||||
field_74831_f,dhThreadSpec,2,
|
||||
field_74832_d,BC_DH_PERMISSION,2,
|
||||
field_74833_e,ecThreadSpec,2,
|
||||
@@ -2106,6 +2296,17 @@ field_74839_a,localizedName,2,
|
||||
field_74842_b,permissionMask,2,
|
||||
field_74843_a,actions,2,
|
||||
field_74845_a,errorObjects,2,
|
||||
field_74846_d,buf,2,
|
||||
field_74847_b,theStreamCipher,2,
|
||||
field_74848_c,oneByte,2,
|
||||
field_74849_a,theBufferedBlockCipher,2,
|
||||
field_74853_f,maxBuf,2,
|
||||
field_74854_g,finalized,2,
|
||||
field_74855_d,inBuf,2,
|
||||
field_74856_e,bufOff,2,
|
||||
field_74857_b,theStreamCipher,2,
|
||||
field_74858_c,buf,2,
|
||||
field_74859_a,theBufferedBlockCipher,2,
|
||||
field_74885_f,coordBaseMode,2,switches the Coordinate System base off the Bounding Box
|
||||
field_74886_g,componentType,2,The type ID of this component.
|
||||
field_74887_e,boundingBox,2,
|
||||
@@ -2445,6 +2646,8 @@ field_75518_j,canPassOpenWoodenDoors,2,"Specifically, if a wooden door block is
|
||||
field_75519_k,canPassClosedWoodenDoors,2,If door blocks are considered passable even when closed
|
||||
field_75520_h,ticksAtLastPos,2,The time when the last position check was done (to detect successful movement)
|
||||
field_75521_i,lastPosCheck,2,Coordinates of the entity's position last time a check was done (part of monitoring getting 'stuck')
|
||||
field_75524_b,seenEntities,2,Cache of entities which we can see
|
||||
field_75525_c,unseenEntities,2,Cache of entities which we cannot see
|
||||
field_75526_a,entityObj,2,
|
||||
field_75531_f,theVillage,2,Instance of Village.
|
||||
field_75537_a,worldObj,2,
|
||||
@@ -2479,6 +2682,7 @@ field_75624_e,classToIDMapping,2,provides a mapping between an Entity Class and
|
||||
field_75625_b,stringToClassMapping,2,Provides a mapping between entity classes and a string
|
||||
field_75626_c,classToStringMapping,2,Provides a mapping between a string and an entity classes
|
||||
field_75627_a,entityEggs,2,This is a HashMap of the Creative Entity Eggs/Spawners.
|
||||
field_75643_f,update,2,
|
||||
field_75644_d,posZ,2,
|
||||
field_75645_e,speed,2,The speed at which the entity should move
|
||||
field_75646_b,posX,2,
|
||||
@@ -2498,6 +2702,7 @@ field_75675_d,watched,2,
|
||||
field_75676_b,dataValueId,2,id of max 31
|
||||
field_75677_c,watchedObject,2,
|
||||
field_75678_a,objectType,2,
|
||||
field_75694_d,lock,2,
|
||||
field_75695_b,watchedObjects,2,
|
||||
field_75696_c,objectChanged,2,true if one or more object was changed
|
||||
field_75697_a,dataTypes,2,
|
||||
@@ -2761,6 +2966,7 @@ field_76257_i,leaves,2,
|
||||
field_76258_w,craftedSnow,2,The material for crafted snow.
|
||||
field_76259_v,snow,2,
|
||||
field_76260_u,ice,2,
|
||||
field_76261_t,coral,2,
|
||||
field_76262_s,tnt,2,
|
||||
field_76263_r,redstoneLight,2,
|
||||
field_76264_q,glass,2,
|
||||
@@ -2789,7 +2995,6 @@ field_76292_a,itemWeight,2,The Weight is how often the item is chosen(higher num
|
||||
field_76295_d,theMinimumChanceToGenerateItem,2,The minimum chance of item generating.
|
||||
field_76296_e,theMaximumChanceToGenerateItem,2,The maximum chance of item generating.
|
||||
field_76297_b,theItemId,2,The Item/Block ID to generate in the Chest.
|
||||
field_76298_c,theItemDamage,2,The Item damage/metadata.
|
||||
field_76299_d,maxGroupCount,2,
|
||||
field_76300_b,entityClass,2,Holds the class of the entity to be spawned.
|
||||
field_76301_c,minGroupCount,2,
|
||||
@@ -2819,11 +3024,13 @@ field_76371_c,lava,2,
|
||||
field_76372_a,inFire,2,
|
||||
field_76373_n,damageType,2,
|
||||
field_76374_o,isUnblockable,2,This kind of damage can be blocked or not.
|
||||
field_76375_l,explosion2,2,
|
||||
field_76376_m,magic,2,
|
||||
field_76377_j,generic,2,
|
||||
field_76378_k,explosion,2,
|
||||
field_76379_h,fall,2,
|
||||
field_76380_i,outOfWorld,2,
|
||||
field_76381_t,difficultyScaled,2,Whether this damage source will have its damage amount scaled based on the current difficulty.
|
||||
field_76382_s,projectile,2,This kind of damage is based on a projectile or not.
|
||||
field_76383_r,fireDamage,2,This kind of damage is based on fire or not.
|
||||
field_76384_q,hungerDamage,2,
|
||||
@@ -3139,9 +3346,9 @@ field_76990_c,renderManager,2,
|
||||
field_76991_a,modelBase,2,
|
||||
field_76993_a,blockRenderer,2,
|
||||
field_76998_a,modelBoat,2,instance of ModelBoat for rendering
|
||||
field_77004_a,renderBlocks,2,
|
||||
field_77004_a,sandRenderBlocks,2,
|
||||
field_77013_a,modelMinecart,2,instance of ModelMinecart for rendering
|
||||
field_77022_g,renderBlocks,2,
|
||||
field_77022_g,itemRenderBlocks,2,
|
||||
field_77023_b,zLevel,2,Defines the zLevel of rendering of item on GUI.
|
||||
field_77025_h,random,2,The RNG used in RenderItem (for bobbing itemstacks on the ground)
|
||||
field_77027_a,itemIconIndex,2,"Have the icon index (in items.png) that will be used to render the image. Currently, eggs and snowballs uses this classes."
|
||||
@@ -3475,7 +3682,7 @@ field_77775_ay,bucketLava,2,
|
||||
field_77776_ba,bed,2,
|
||||
field_77777_bU,maxStackSize,2,Maximum size of the stack.
|
||||
field_77778_at,appleGold,2,
|
||||
field_77779_bT,shiftedIndex,2,Item index + 256
|
||||
field_77779_bT,itemID,2,The ID of this item.
|
||||
field_77780_as,painting,2,
|
||||
field_77781_bS,record11,2,
|
||||
field_77782_ar,porkCooked,2,
|
||||
@@ -3569,6 +3776,7 @@ field_77922_b,sugarEffect,2,
|
||||
field_77923_c,ghastTearEffect,2,
|
||||
field_77926_o,potionPrefixes,2,"An array of possible potion prefix names, as translation IDs."
|
||||
field_77927_l,potionRequirements,2,
|
||||
field_77928_m,potionAmplifiers,2,Potion effect amplifier map
|
||||
field_77929_j,glowstoneEffect,2,
|
||||
field_77930_k,gunpowderEffect,2,
|
||||
field_77931_h,magmaCreamEffect,2,
|
||||
@@ -4165,6 +4373,7 @@ field_79027_a,textField,2,Text field.
|
||||
field_79028_a,mcServerGui,2,Reference to the ServerGui object.
|
||||
field_79029_a,outputHandler,2,Reference to the GuiLogOutputHandler.
|
||||
field_80001_f,closestPlayer,2,The closest EntityPlayer to this orb.
|
||||
field_80002_g,xpTargetColor,2,Threshold color for tracking players
|
||||
field_80004_Q,updateEntityTick,2,
|
||||
field_80005_w,hideServerAddress,2,
|
||||
field_82121_b,skullRotation,2,The skull's rotation.
|
||||
@@ -4175,8 +4384,11 @@ field_82134_g,secondaryEffect,2,Secondary potion effect given by this beacon.
|
||||
field_82136_e,levels,2,Level of this beacon's pyramid.
|
||||
field_82139_a,effectsList,2,List of effects that Beacon can apply
|
||||
field_82140_h,payment,2,Item given to this beacon as payment.
|
||||
field_82153_h,timeInPortal,2,
|
||||
field_82155_f,isAnvil,2,
|
||||
field_82156_g,fallHurtMax,2,Maximum amount of damage dealt to entities hit by falling block
|
||||
field_82157_e,isBreakingAnvil,2,
|
||||
field_82158_h,fallHurtAmount,2,Actual damage dealt to entities hit by falling block
|
||||
field_82172_bs,canPickUpLoot,2,Whether this entity can pick up items from the ground.
|
||||
field_82173_br,swingProgressInt,2,
|
||||
field_82174_bp,equipmentDropChances,2,Chances for each equipment piece from dropping when this entity dies.
|
||||
@@ -4228,14 +4440,23 @@ field_82320_o,theSlot,2,
|
||||
field_82321_q,buttonsNotDrawn,2,
|
||||
field_82322_p,beaconConfirmButton,2,
|
||||
field_82323_o,beacon,2,
|
||||
field_82326_p,itemNameField,2,
|
||||
field_82327_o,repairContainer,2,
|
||||
field_82332_a,hangingDirection,2,
|
||||
field_82337_e,itemDropChance,2,Chance for this item frame's item to drop from the frame.
|
||||
field_82339_as,particleAlpha,2,Particle alpha
|
||||
field_82346_a,theContainer,2,Container of this anvil's block.
|
||||
field_82348_s,spawnRange,2,Range for spawning new entities with mob spawners
|
||||
field_82349_r,requiredPlayerRange,2,Required player range for mob spawning to occur
|
||||
field_82350_j,maxNearbyEntities,2,Maximum number of entities for limiting mob spawning
|
||||
field_82354_a,command,2,The command this block will execute when powered.
|
||||
field_82365_a,difficulties,2,
|
||||
field_82373_c,directions,2,
|
||||
field_82374_e,facings,2,
|
||||
field_82387_b,intListPattern,2,"This matches things like ""-1,,4"", and is used for getting x,y,z,range from the token's argument list."
|
||||
field_82388_c,keyValueListPattern,2,"This matches things like ""rm=4,c=2"" and is used for handling named token arguments."
|
||||
field_82389_a,tokenPattern,2,"This matches the at-tokens introduced for command blocks, including their arguments, if any."
|
||||
field_82391_c,instance,2,
|
||||
field_82397_a,skullRenderer,2,
|
||||
field_82401_a,skeletonHeadModel,2,The Skeleton's head model.
|
||||
field_82405_a,renderBlocksInstance,2,
|
||||
@@ -4244,13 +4465,20 @@ field_82446_a,renderedBatSize,2,"not actually sure this is size, is not used as
|
||||
field_82453_b,createFlatWorldGui,2,
|
||||
field_82458_b,flatPresetsGui,2,
|
||||
field_82470_g,playingSounds,2,Identifiers of all currently playing sounds. Type: HashSet<String>
|
||||
field_82471_f,minecartIsMoving,2,
|
||||
field_82472_g,silent,2,
|
||||
field_82473_d,playerSPRidingMinecart,2,
|
||||
field_82474_e,minecartIsDead,2,
|
||||
field_82475_b,theMinecart,2,Minecart which sound is being updated.
|
||||
field_82476_c,thePlayer,2,The player that is getting the minecart sound updates.
|
||||
field_82477_a,theSoundManager,2,
|
||||
field_82478_j,minecartRideSoundVolume,2,
|
||||
field_82479_k,minecartSpeed,2,
|
||||
field_82480_h,minecartSoundPitch,2,
|
||||
field_82481_i,minecartMoveSoundVolume,2,
|
||||
field_82483_a,itemDispenseBehaviorProvider,2,
|
||||
field_82484_c,defaultItemDispenseBehavior,2,Reference to the BehaviorDefaultDispenseItem object.
|
||||
field_82490_b,mcServer,2,
|
||||
field_82491_c,defaultItemDispenseBehavior,2,Reference to the BehaviorDefaultDispenseItem object.
|
||||
field_82492_b,mcServer,2,
|
||||
field_82493_c,defaultItemDispenseBehavior,2,Reference to the BehaviorDefaultDispenseItem object.
|
||||
field_82494_b,mcServer,2,Reference to the MinecraftServer object.
|
||||
@@ -4279,11 +4507,10 @@ field_82537_a,sensible,2,"Whether this button is sensible to arrows, used by woo
|
||||
field_82539_a,types,2,The types of the wall.
|
||||
field_82548_a,theChunkCoordinates,2,
|
||||
field_82552_a,mcServer,2,
|
||||
field_82553_a,mcServer,2,
|
||||
field_82555_a,mcServer,2,
|
||||
field_82557_a,mcServer,2,Reference to the MinecraftServer object.
|
||||
field_82564_f,showCape,2,
|
||||
field_82575_g,dayTime,2,Total time for this world.
|
||||
field_82575_g,totalTime,2,Total time for this world.
|
||||
field_82576_c,generatorOptions,2,
|
||||
field_82577_x,theGameRules,2,
|
||||
field_82578_b,NBTTypes,2,
|
||||
@@ -4292,10 +4519,16 @@ field_82587_b,theNBTTagCompound,2,
|
||||
field_82592_a,vec3dPool,2,
|
||||
field_82596_a,registryObjects,2,Objects registered on this registry.
|
||||
field_82597_b,defaultObject,2,"Default object for this registry, returned when an object is not found."
|
||||
field_82611_j,frontOffsetY,2,
|
||||
field_82612_k,frontOffsetZ,2,
|
||||
field_82614_i,frontOffsetX,2,
|
||||
field_82624_d,zPos,2,
|
||||
field_82625_b,xPos,2,
|
||||
field_82626_c,yPos,2,
|
||||
field_82627_a,worldObj,2,
|
||||
field_82628_b,y,2,
|
||||
field_82629_c,z,2,
|
||||
field_82630_a,x,2,
|
||||
field_82635_f,maxSpeedBoostTime,2,Maximum time the entity's speed should be boosted for.
|
||||
field_82636_d,speedBoosted,2,Whether the entity's speed is boosted.
|
||||
field_82637_e,speedBoostTime,2,"Counter for speed boosting, upon reaching maxSpeedBoostTime the speed boost will be disabled"
|
||||
@@ -4318,8 +4551,14 @@ field_82680_c,cropTypeB,2,Second crop type for this field.
|
||||
field_82681_h,cropTypeD,2,Fourth crop type for this field.
|
||||
field_82682_h,hasWitch,2,Whether this swamp hut has a witch.
|
||||
field_82693_j,playerReputation,2,List of player reputations with this village
|
||||
field_82694_i,noBreedTicks,2,Timestamp of tick count when villager last bred
|
||||
field_82696_f,structureGenerators,2,
|
||||
field_82701_j,lavaLakeGenerator,2,
|
||||
field_82703_i,waterLakeGenerator,2,
|
||||
field_82707_i,isAnimal,2,Whether this creature type is an animal.
|
||||
field_82717_g,anvil,2,
|
||||
field_82723_d,isSplashPotion,2,Whether the potion is a splash potion
|
||||
field_82724_e,isAmbient,2,Whether the potion effect came from a beacon
|
||||
field_82727_n,wither,2,
|
||||
field_82728_o,anvil,2,
|
||||
field_82729_p,fallingBlock,2,
|
||||
@@ -4354,7 +4593,7 @@ field_82809_c,soilId,2,Block ID of the soil this seed food should be planted on.
|
||||
field_82811_a,hangingEntityClass,2,
|
||||
field_82822_g,gameVersion,2,Game version for this server.
|
||||
field_82823_k,hideAddress,2,Whether to hide the IP address for this server.
|
||||
field_82826_b,statusBarLenght,2,
|
||||
field_82826_b,statusBarLength,2,
|
||||
field_82827_c,bossName,2,
|
||||
field_82828_a,healthScale,2,
|
||||
field_82843_f,itemFrame,2,"Item frame this stack is on, or null if not on an item frame."
|
||||
@@ -4362,11 +4601,16 @@ field_82852_f,outputSlot,2,Here comes out item you merged and/or renamed.
|
||||
field_82853_g,inputSlots,2,The 2slots where you put your items in that you want to merge and/or rename.
|
||||
field_82854_e,maximumCost,2,The maximum cost of repairing/renaming in the anvil.
|
||||
field_82855_n,thePlayer,2,The player that has this container open.
|
||||
field_82856_l,stackSizeToBeUsedInRepair,2,determined by damage of input item and stackSize of repair materials
|
||||
field_82857_m,repairedItemName,2,
|
||||
field_82860_h,theWorld,2,
|
||||
field_82862_h,thePlayer,2,
|
||||
field_82864_f,beaconSlot,2,"This beacon's slot where you put in Emerald, Diamond, Gold or Iron Ingot."
|
||||
field_82866_e,theBeacon,2,
|
||||
field_82871_d,blockPosZ,2,
|
||||
field_82872_e,anvil,2,The anvil this slot belongs to.
|
||||
field_82873_b,blockPosX,2,
|
||||
field_82874_c,blockPosY,2,
|
||||
field_82875_a,theWorld,2,
|
||||
field_82876_a,beacon,2,The beacon this slot belongs to.
|
||||
field_82880_z,showCape,2,Whether to show your cape
|
||||
@@ -4384,21 +4628,50 @@ field_82909_b,presetName,2,Name for this preset.
|
||||
field_82910_c,presetData,2,Data for this preset.
|
||||
field_82911_a,iconId,2,ID for the item used as icon for this preset.
|
||||
field_82915_S,theWorldGenerator,2,
|
||||
field_83001_bt,invulnerable,2,
|
||||
field_83004_a,theCrashReport,2,
|
||||
field_83016_L,theCalendar,2,
|
||||
field_83021_g,customMinX,2,Custom minimum X for rendering
|
||||
field_83022_l,customMaxZ,2,Custom maximum Z for rendering
|
||||
field_83023_m,useCustomBlockBounds,2,Use custom block bounds for the rendering
|
||||
field_83024_j,customMaxY,2,Custom maximum Y for rendering
|
||||
field_83025_k,customMinZ,2,Custom minimum Z for rendering
|
||||
field_83026_h,customMaxX,2,Custom maximum X for rendering
|
||||
field_83027_i,customMinY,2,Custom minimum Y for rendering
|
||||
field_83021_g,renderMinX,2,The minimum X value for rendering (default 0.0).
|
||||
field_83022_l,renderMaxZ,2,The maximum Z value for rendering (default 1.0).
|
||||
field_83023_m,lockBlockBounds,2,"Set by overrideBlockBounds, to keep this class from changing the visual bounding box."
|
||||
field_83024_j,renderMaxY,2,The maximum Y value for rendering (default 1.0).
|
||||
field_83025_k,renderMinZ,2,The minimum Z value for rendering (default 0.0).
|
||||
field_83026_h,renderMaxX,2,The maximum X value for rendering (default 1.0).
|
||||
field_83027_i,renderMinY,2,The minimum Y value for rendering (default 0.0).
|
||||
field_85037_d,aiArrowAttack,2,
|
||||
field_85038_e,aiAttackOnCollide,2,
|
||||
field_85045_v,returningStack,2,Used when touchscreen is enabled
|
||||
field_85046_u,returningStackTime,2,
|
||||
field_85047_t,returningStackDestSlot,2,
|
||||
field_85050_q,draggedStack,2,Used when touchscreen is enabled
|
||||
field_85051_p,clickedSlot,2,Used when touchscreen is enabled
|
||||
field_85053_h,throwerName,2,
|
||||
field_85075_d,stackTrace,2,
|
||||
field_85109_a,worldInfoInstance,2,
|
||||
field_85111_a,worldInfoInstance,2,
|
||||
field_85113_a,worldInfoInstance,2,
|
||||
field_85115_a,worldInfoInstance,2,
|
||||
field_85135_a,worldInfoInstance,2,
|
||||
field_85137_a,worldInfoInstance,2,
|
||||
field_85139_a,worldInfoInstance,2,
|
||||
field_85141_a,worldInfoInstance,2,
|
||||
field_85143_a,worldInfoInstance,2,
|
||||
field_85180_cf,recordWait,2,
|
||||
field_85185_A,touchscreen,2,
|
||||
field_85192_a,worldServerInstance,2,
|
||||
field_90017_e,isMacOs,2,
|
||||
field_90018_r,isRightMouseClick,2,Used when touchscreen is enabled
|
||||
field_90044_b,records,2,List of all record items and their names.
|
||||
field_92009_j,explosionStrength,2,The explosion radius of spawned fireballs.
|
||||
field_92010_b,lifetime,2,The lifetime of the firework in ticks. When the age reaches the lifetime the firework explodes.
|
||||
field_92011_a,fireworkAge,2,The age of the firework in ticks.
|
||||
field_92014_j,explosionStrength,2,The explosion radius of spawned fireballs.
|
||||
field_92017_j,spawnedMob,2,
|
||||
field_92052_bU,firework,2,
|
||||
field_92053_bW,enchantedBook,2,
|
||||
field_92054_bV,fireworkCharge,2,
|
||||
field_92055_b,lifetime,2,The lifetime of the firework in ticks. When the age reaches the lifetime the firework explodes.
|
||||
field_92056_a,fireworkAge,2,The age of the firework in ticks.
|
||||
field_92104_bU,firework,2,
|
||||
field_92105_bW,enchantedBook,2,
|
||||
field_92106_bV,fireworkCharge,2,
|
||||
|
+649
-339
File diff suppressed because it is too large.
Load diff
+13913
-13177
File diff suppressed because it is too large.
Load diff
+2
-2
@@ -36,8 +36,8 @@ DirNatives = %(DirJars)s/bin/natives
|
||||
Client = %(DirJars)s/bin/minecraft.jar
|
||||
Server = %(DirJars)s/minecraft_server.jar
|
||||
LWJGL = %(DirJars)s/bin/jinput.jar,%(DirJars)s/bin/lwjgl.jar,%(DirJars)s/bin/lwjgl_util.jar
|
||||
MD5Client = 48677dc4c2b98c29918722b5ab27b4fd
|
||||
MD5Server = b0700fa969dbf0ff085082cde87384d2
|
||||
MD5Client = 8e80fb01b321c6b3c7efca397a3eea35
|
||||
MD5Server = f69ac4bfce2dfbce03fe872518f75a05
|
||||
|
||||
[RETROGUARD]
|
||||
Location = %(DirRuntime)s/bin/retroguard.jar
|
||||
|
||||
+157
-32
@@ -177,6 +177,7 @@ func_70352_b,getPotionResult,2,The result of brewing a potion of the specified d
|
||||
func_70353_r,brewPotions,2,
|
||||
func_70354_c,setBrewTime,2,
|
||||
func_70355_t_,getBrewTime,2,
|
||||
func_70360_a,addItem,2,Add item stack in first available inventory slot
|
||||
func_70361_i,getRandomStackFromInventory,2,
|
||||
func_70364_a,openChest,2,
|
||||
func_70365_a,isUseableByPlayer,2,
|
||||
@@ -220,6 +221,7 @@ func_70447_i,getFirstEmptyStack,2,Returns the first item stack that is empty.
|
||||
func_70448_g,getCurrentItem,2,Returns the item stack currently held by the player.
|
||||
func_70449_g,damageArmor,2,Damages armor in each slot by the specified amount.
|
||||
func_70450_e,hasItem,2,Get if a specifiied item id is inside the inventory.
|
||||
func_70451_h,getHotbarSize,2,Get the size of the player hotbar inventory
|
||||
func_70452_e,storePartialItemStack,2,This function stores as many items of an ItemStack as possible in a matching slot and returns the quantity of left over items.
|
||||
func_70453_c,changeCurrentItem,2,Switch the current item to the next one or the previous one
|
||||
func_70454_b,canHarvestBlock,2,Returns whether the current item (tool) can harvest from the specified block (actually get a result).
|
||||
@@ -235,6 +237,10 @@ func_70487_g,saveInventoryToNBT,2,
|
||||
func_70490_h,isMinecartPowered,2,Is this minecart powered (Fuel > 0)
|
||||
func_70491_i,getDamage,2,Gets the current amount of damage the minecart has taken. Decreases over time. The cart breaks when this is over 40.
|
||||
func_70492_c,setDamage,2,Sets the current amount of damage the minecart has taken. Decreases over time. The cart breaks when this is over 40.
|
||||
func_70493_k,getRollingDirection,2,Gets the rolling direction the cart rolls while being attacked. Can be 1 or -1.
|
||||
func_70494_i,setRollingDirection,2,Sets the rolling direction the cart rolls while being attacked. Can be 1 or -1.
|
||||
func_70496_j,getRollingAmplitude,2,Gets the rolling amplitude the cart rolls while being attacked.
|
||||
func_70497_h,setRollingAmplitude,2,Sets the rolling amplitude the cart rolls while being attacked.
|
||||
func_70498_d,setMinecartPowered,2,Set if this minecart is powered (Fuel > 0)
|
||||
func_70515_d,explode,2,
|
||||
func_70518_d,onValidSurface,2,checks to make sure painting can be placed there
|
||||
@@ -251,6 +257,7 @@ func_70540_h,getParticleTextureIndex,2,
|
||||
func_70541_f,multipleParticleScaleBy,2,
|
||||
func_70542_f,getGreenColorF,2,
|
||||
func_70543_e,multiplyVelocity,2,
|
||||
func_70589_b,setBaseSpellTextureIndex,2,Sets the base spell texture index
|
||||
func_70598_b,setHomeArea,2,
|
||||
func_70599_aP,getSoundVolume,2,Returns the volume for the sounds this mob makes.
|
||||
func_70600_l,dropRareDrop,2,
|
||||
@@ -281,7 +288,7 @@ func_70624_b,setAttackTarget,2,Sets the active target the Task system uses for t
|
||||
func_70625_a,faceEntity,2,Changes pitch and yaw so that the entity calling the function is facing the entity provided as an argument.
|
||||
func_70626_be,updateEntityActionState,2,
|
||||
func_70627_aG,getTalkInterval,2,"Get number of ticks, at least during which the living entity will be silent."
|
||||
func_70628_a,dropFewItems,2,Drop 0-2 items of this living's type
|
||||
func_70628_a,dropFewItems,2,Drop 0-2 items of this living's type. @param par1 - Whether this entity has recently been hit by a player. @param par2 - Level of Looting used to kill this mob.
|
||||
func_70629_bd,updateAITick,2,"main AI tick function, replaces updateEntityActionState"
|
||||
func_70630_aN,getHealth,2,
|
||||
func_70631_g_,isChild,2,"If Animal, checks if the age timer is negative"
|
||||
@@ -373,9 +380,11 @@ func_70814_o,isValidLightLevel,2,Checks to make sure the light is not too bright
|
||||
func_70816_c,teleportToEntity,2,Teleport the enderman to another entity
|
||||
func_70817_b,setCarryingData,2,Set the metadata of the block an enderman carries
|
||||
func_70818_a,setCarried,2,Set the id of the block an enderman carries
|
||||
func_70819_e,setScreaming,2,
|
||||
func_70820_n,teleportRandomly,2,Teleport the enderman to a random nearby position
|
||||
func_70821_d,shouldAttackPlayer,2,Checks to see if this enderman should be attacking this player
|
||||
func_70822_p,getCarried,2,Get the id of the block an enderman carries
|
||||
func_70823_r,isScreaming,2,
|
||||
func_70824_q,getCarryingData,2,Get the metadata of the block an enderman carries
|
||||
func_70825_j,teleportTo,2,Teleport the enderman
|
||||
func_70829_a,setCreeperState,2,"Sets the state of creeper, -1 to idle and 1 to be 'in fuse'"
|
||||
@@ -487,7 +496,7 @@ func_71027_c,travelToDimension,2,Teleports the entity to another dimension. Para
|
||||
func_71028_bD,destroyCurrentEquippedItem,2,Destroys the currently equipped item from the player's inventory.
|
||||
func_71029_a,triggerAchievement,2,Will trigger the specified trigger.
|
||||
func_71030_a,displayGUIMerchant,2,
|
||||
func_71033_a,sendGameTypeToPlayer,2,
|
||||
func_71033_a,setGameType,2,Sets the player's game mode and sends it to them.
|
||||
func_71034_by,stopUsingItem,2,
|
||||
func_71035_c,addChatMessage,2,Add a chat message to the player
|
||||
func_71036_o,onItemUseFinish,2,"Used for when item use count runs out, ie: eating completed"
|
||||
@@ -629,7 +638,7 @@ func_71269_o,setTexturePack,2,
|
||||
func_71270_I,getFolderName,2,
|
||||
func_71272_O,deleteWorldAndStopServer,2,WARNING : directly calls getActiveAnvilConverter().deleteWorldDirectory(theWorldServer[0].getSaveHandler().getSaveDirectoryName());
|
||||
func_71273_Y,getMOTD,2,
|
||||
func_71274_v,getServerMOTD,2,minecraftServer.getMOTD is used in 2 places instead (it is a non-virtual function which returns the same thing)
|
||||
func_71274_v,getServerMOTD,2,Returns the server message of the day
|
||||
func_71275_y,getMaxPlayers,2,Returns the maximum number of players allowed on the server.
|
||||
func_71276_C,getServer,2,Gets mcServer.
|
||||
func_71277_t,getHostname,2,Returns the server's hostname.
|
||||
@@ -638,7 +647,7 @@ func_71279_ae,getGuiEnabled,2,
|
||||
func_71326_a,saveProperties,2,Saves all of the server properties to the properties file.
|
||||
func_71327_a,getIntProperty,2,"Gets an integer property. If it does not exist, set it to the specified value."
|
||||
func_71328_a,setProperty,2,Saves an Object with the given property name.
|
||||
func_71329_c,getSettingsFilePath,2,
|
||||
func_71329_c,getSettingsFilename,2,Returns the filename where server properties are stored
|
||||
func_71330_a,getStringProperty,2,"Gets a string property. If it does not exist, set it to the specified value."
|
||||
func_71331_a,addPendingCommand,2,
|
||||
func_71332_a,getBooleanProperty,2,"Gets a boolean property. If it does not exist, set it to the specified value."
|
||||
@@ -776,6 +785,9 @@ func_71571_b,set,2,
|
||||
func_71575_a,getCrashReport,2,Gets the CrashReport wrapped by this exception.
|
||||
func_71606_a,toASN1Primitive,2,
|
||||
func_71607_a,asn1Equals,2,
|
||||
func_71608_a,isValidIdentifier,2,
|
||||
func_71609_b,getId,2,
|
||||
func_71612_a,branch,2,
|
||||
func_71742_a,getType,2,
|
||||
func_71744_a,stopListening,2,
|
||||
func_71745_a,addPlayer,2,adds this connection to the list of currently connected players
|
||||
@@ -792,8 +804,28 @@ func_71770_b,isLocalHost,2,
|
||||
func_71779_a,getIV,2,
|
||||
func_71780_b,getParameters,2,
|
||||
func_71783_a,getKey,2,
|
||||
func_71789_b,getOutputSize,2,
|
||||
func_71790_a,doFinal,2,
|
||||
func_71791_a,processByte,2,
|
||||
func_71792_a,getBlockSize,2,
|
||||
func_71793_a,getUpdateOutputSize,2,
|
||||
func_71794_b,reset,2,
|
||||
func_71802_a,getAlgorithmName,2,Return the name of the algorithm the cipher implements.
|
||||
func_71803_c,reset,2,
|
||||
func_71804_b,getBlockSize,2,Return the block size for this cipher (in bytes).
|
||||
func_71805_a,init,2,
|
||||
func_71806_a,processBlock,2,
|
||||
func_71807_b,encryptBlock,2,
|
||||
func_71808_c,decryptBlock,2,
|
||||
func_71815_c,subWord,2,
|
||||
func_71816_a,unpackBlock,2,
|
||||
func_71817_a,FFmulX,2,
|
||||
func_71818_a,encryptBlock,2,
|
||||
func_71819_a,shift,2,
|
||||
func_71820_b,inv_mcol,2,
|
||||
func_71821_b,packBlock,2,
|
||||
func_71822_b,decryptBlock,2,
|
||||
func_71823_a,generateWorkingKey,2,
|
||||
func_71842_b,getStrength,2,Return the bit strength for keys produced by this generator.
|
||||
func_71843_a,getRandom,2,Return the random source associated with this generator.
|
||||
func_71846_a,onBlockHarvested,2,Called when the block is attempted to be harvested
|
||||
@@ -805,7 +837,7 @@ func_71851_a,getBlockTextureFromSide,2,Returns the block texture based on the si
|
||||
func_71852_a,breakBlock,2,"ejects contained items into the world, and notifies neighbours of an update, as appropriate"
|
||||
func_71853_i,canProvidePower,2,Can this block provide power. Only wire currently seems to have this change based on its state.
|
||||
func_71854_d,canBlockStay,2,Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants.
|
||||
func_71855_c,isProvidingStrongPower,2,"Returns true if the block is emitting direct/strong redstone power on the specified side. Args: World, X, Y, Z, side"
|
||||
func_71855_c,isProvidingStrongPower,2,"Returns true if the block is emitting direct/strong redstone power on the specified side. Args: World, X, Y, Z, side. Note that the side is reversed - eg it is 1 (up) when checking the bottom of the block."
|
||||
func_71856_s_,getRenderBlockPass,2,Returns which pass should this block be rendered on. 0 for solids and 1 for alpha
|
||||
func_71857_b,getRenderType,2,The type of render function that is called for this block
|
||||
func_71858_a,getBlockTextureFromSideAndMetadata,2,"From the specified side and block metadata retrieves the blocks texture. Args: side, metadata"
|
||||
@@ -815,7 +847,7 @@ func_71861_g,onBlockAdded,2,"Called whenever the block is added into the world.
|
||||
func_71862_a,randomDisplayTick,2,A randomly called display update to be able to add particles or other items for display
|
||||
func_71863_a,onNeighborBlockChange,2,"Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are their own) Args: x, y, z, neighbor blockID"
|
||||
func_71864_b,setBlockName,2,set name of block from language file
|
||||
func_71865_a,isProvidingWeakPower,2,"Returns true if the block is emitting indirect/weak redstone power on the specified side. If isBlockNormalCube returns true, standard redstone propagation rules will apply instead and this will not be called. Args: World, X, Y, Z, side"
|
||||
func_71865_a,isProvidingWeakPower,2,"Returns true if the block is emitting indirect/weak redstone power on the specified side. If isBlockNormalCube returns true, standard redstone propagation rules will apply instead and this will not be called. Args: World, X, Y, Z, side. Note that the side is reversed - eg it is 1 (up) when checking the bottom of the block."
|
||||
func_71866_a,onFallenUpon,2,Block's chance to react to an entity falling on it.
|
||||
func_71867_k,onBlockDestroyedByExplosion,2,Called upon the block being destroyed by an explosion
|
||||
func_71868_h,setLightOpacity,2,Sets how much light is blocked going through this block. Returns the object for convenience in constructing.
|
||||
@@ -926,7 +958,7 @@ func_72169_f,isPoweredOrRepeater,2,"Returns true if the block coordinate passed
|
||||
func_72170_e,getMaxCurrentStrength,2,"Returns the current strength at the specified block if it is greater than the passed value, or the passed value otherwise. Signature: (world, x, y, z, strength)"
|
||||
func_72171_a,calculateCurrentChanges,2,
|
||||
func_72172_n,notifyWireNeighborsOfNeighborChange,2,"Calls World.notifyBlocksOfNeighborChange() for all neighboring blocks, but only if the given block is a redstone wire."
|
||||
func_72173_e,isPowerProviderOrWire,2,"Returns true if the block coordinate passed can provide power, or is a redstone wire."
|
||||
func_72173_e,isPowerProviderOrWire,2,"Returns true if redstone wire can connect to the specified block. Params: World, X, Y, Z, side (not a normal notch-side, this can be 0, 1, 2, 3 or -1)"
|
||||
func_72176_l,glow,2,The redstone ore glows.
|
||||
func_72177_n,sparkle,2,The redstone ore sparkles.
|
||||
func_72179_a,isPoweredBlockRail,2,Return true if the blocks passed is a power related rail.
|
||||
@@ -1115,7 +1147,6 @@ func_72455_a,handleLogin,2,
|
||||
func_72456_a,handleBlockChange,2,
|
||||
func_72457_a,handleLevelSound,2,
|
||||
func_72458_a,handleClientCommand,2,
|
||||
func_72459_a,handlePickupSpawn,2,
|
||||
func_72460_a,handleSleep,2,
|
||||
func_72461_a,handleAutoComplete,2,
|
||||
func_72462_a,handleDoorChange,2,
|
||||
@@ -1125,7 +1156,7 @@ func_72465_a,handleBlockDestroy,2,
|
||||
func_72466_a,handleSpawnPosition,2,
|
||||
func_72467_a,handleServerPing,2,Handle a server ping packet.
|
||||
func_72468_a,handleTileEntityData,2,
|
||||
func_72469_b,canProcessPackets,2,packet.processPacket is only called if this returns true
|
||||
func_72469_b,canProcessPacketsAsync,2,"If this returns false, all packets will be queued for the main thread to handle, even if they would otherwise be processed asynchronously. Used to avoid processing packets on the client before the world has been downloaded (which happens on the main thread)"
|
||||
func_72470_a,handleServerAuthData,2,
|
||||
func_72471_a,handlePlayerAbilities,2,Handle a player abilities packet.
|
||||
func_72472_a,handlePlace,2,
|
||||
@@ -1144,7 +1175,7 @@ func_72484_a,handleAttachEntity,2,Packet handler
|
||||
func_72485_a,handleEntityStatus,2,Packet handler
|
||||
func_72486_a,handleWindowItems,2,
|
||||
func_72487_a,handleUpdateSign,2,Updates Client side signs
|
||||
func_72488_a,handleBed,2,
|
||||
func_72488_a,handleGameEvent,2,
|
||||
func_72489_a,isServerHandler,2,determine if it is a server handler
|
||||
func_72490_a,handleSetSlot,2,
|
||||
func_72491_a,handleDestroyEntity,2,
|
||||
@@ -1181,6 +1212,7 @@ func_72521_a,handleUpdateHealth,2,Recieves player health from the server and the
|
||||
func_72522_a,handleExperience,2,Handle an experience packet.
|
||||
func_72523_a,handleWindowClick,2,
|
||||
func_72524_a,handleAnimation,2,
|
||||
func_72525_c,getSharedKey,2,Return the secret AES sharedKey
|
||||
func_72526_a,getServerId,2,Returns the server Id randomly generated by this login handler.
|
||||
func_72527_a,raiseErrorAndDisconnect,2,
|
||||
func_72528_e,getUsernameAndAddress,2,
|
||||
@@ -1193,6 +1225,7 @@ func_72546_b,quitWithPacket,2,
|
||||
func_72547_c,cleanup,2,sets netManager and worldClient to null
|
||||
func_72548_f,getNetManager,2,Return the NetworkManager instance used by this NetClientHandler
|
||||
func_72549_a,urlEncode,2,Encode the given string for insertion into a URL
|
||||
func_72550_a,sendSessionRequest,2,Send request to http://session.minecraft.net with user's sessionId and serverId hash
|
||||
func_72551_d,processReadPackets,2,Processes the packets that have been read since the last call to this function.
|
||||
func_72552_c,addToSendQueue,2,Adds the packet to the send queue
|
||||
func_72553_e,disconnect,2,Disconnects the network connection.
|
||||
@@ -1224,7 +1257,7 @@ func_72621_a,parseIncomingPacket,2,"Parses an incoming DatagramPacket, returning
|
||||
func_72622_d,sendAuthChallenge,2,Sends an auth challenge DatagramPacket to the client and adds the client to the queryClients map
|
||||
func_72623_a,stopWithException,2,Stops the query server and reports the given Exception
|
||||
func_72624_b,createQueryResponse,2,Creates a query response as a byte array for the specified query DatagramPacket
|
||||
func_72625_a,getRequestId,2,Returns the request ID provided by the authorized client
|
||||
func_72625_a,getRequestID,2,Returns the request ID provided by the authorized client
|
||||
func_72626_g,initQuerySystem,2,Initializes the query system by binding it to a port
|
||||
func_72627_c,verifyClientAuth,2,"Returns true if the client has a valid auth, otherwise false"
|
||||
func_72628_f,cleanQueryClientsMap,2,Removes all clients whose auth is no longer valid
|
||||
@@ -1252,6 +1285,7 @@ func_72678_c,getPitch,2,
|
||||
func_72682_c,getChunkWatchersWithPlayers,2,
|
||||
func_72683_a,addPlayer,2,Adds an EntityPlayerMP to the PlayerManager.
|
||||
func_72685_d,updateMountedMovingPlayer,2,"update chunks around a player being moved by server logic (e.g. cart, boat)"
|
||||
func_72686_a,getFurthestViewableBlock,2,Get the furthest viewable block given player's view distance
|
||||
func_72687_a,flagChunkForUpdate,2,"the ""PlayerInstance""/ chunkWatcher will send this chunk to all players who are in line of sight"
|
||||
func_72688_a,getWorldServer,2,
|
||||
func_72689_b,getChunkWatchers,2,
|
||||
@@ -1287,6 +1321,7 @@ func_72724_a,renderSortedRenderers,2,"Renders the sorted renders for the specifi
|
||||
func_72725_b,markBlocksForUpdate,2,Marks the blocks in the given range for update
|
||||
func_72726_b,doSpawnParticle,2,"Spawns a particle. Arg: particleType, x, y, z, velX, velY, velZ"
|
||||
func_72727_a,drawBlockBreaking,2,
|
||||
func_72728_f,deleteAllDisplayLists,2,Deletes all display lists
|
||||
func_72729_a,clipRenderersByFrustum,2,"Checks all renderers that previously weren't in the frustum and 1/16th of those that previously were in the frustum for frustum clipping Args: frustum, partialTickTime"
|
||||
func_72730_g,renderStars,2,
|
||||
func_72731_b,drawSelectionBox,2,"Draws the selection box for the player. Args: entityPlayer, rayTraceHit, i, itemStack, partialTickTime"
|
||||
@@ -1402,7 +1437,7 @@ func_72896_J,isRaining,2,Returns true if the current rain strength is greater th
|
||||
func_72897_h,joinEntityInSurroundings,2,spwans an entity and loads surrounding chunks
|
||||
func_72898_h,notifyBlocksOfNeighborChange,2,"Notifies neighboring blocks that this specified block changed Args: x, y, z, blockID"
|
||||
func_72899_e,blockExists,2,"Returns whether a block exists at world coordinates x, y, z"
|
||||
func_72900_e,setEntityDead,2,"Dismounts the entity (and anything riding the entity), sets the dead flag, and removes the player entity from the player entity list. Called by the playerLoggedOut function."
|
||||
func_72900_e,removeEntity,2,Schedule the entity for removal during the next tick. Marks the entity dead in anticipation.
|
||||
func_72901_a,rayTraceBlocks_do,2,
|
||||
func_72902_n,markBlockForRenderUpdate,2,"On the client, re-renders this block. On the server, does nothing. Used for lighting updates."
|
||||
func_72903_x,setActivePlayerChunksAndCheckLight,2,
|
||||
@@ -1472,8 +1507,9 @@ func_72966_v,calculateInitialSkylight,2,Called on construction of the World clas
|
||||
func_72967_a,calculateSkylightSubtracted,2,Returns the amount of skylight subtracted for the current time
|
||||
func_72969_x,updateAllLightTypes,2,
|
||||
func_72970_h,createChunkProvider,2,Creates the chunk provider for this world. Called in the constructor. Retrieves provider from worldProvider?
|
||||
func_72971_b,getSunBrightness,2,"Returns the sun brightness - checks time of day, rain and thunder"
|
||||
func_72972_b,getSavedLightValue,2,Returns saved light value without taking into account the time of day. Either looks in the sky light map or block light map based on the enumSkyBlock arg.
|
||||
func_72973_f,removeEntity,2,remove dat player from dem servers
|
||||
func_72973_f,removePlayerEntityDangerously,2,Do NOT use this method to remove normal entities- use normal removeEntity
|
||||
func_72974_f,setSpawnLocation,2,"Sets a new spawn location by finding an uncovered block at a random (x,z) location in the chunk."
|
||||
func_72975_g,markBlocksDirtyVertical,2,marks a vertical line of blocks as dirty
|
||||
func_72976_f,getHeightValue,2,"Returns the y coordinate with a block in it at this x, z coordinate"
|
||||
@@ -1514,7 +1550,7 @@ func_73075_a,updateBlockRemoving,2,
|
||||
func_73076_a,setGameType,2,
|
||||
func_73077_b,initializeGameType,2,if the gameType is currently NOT_SET then change it to par1
|
||||
func_73078_a,activateBlockOrUseItem,2,"Activate the clicked on block, otherwise use the held item. Args: player, world, itemStack, x, y, z, side, xOffset, yOffset, zOffset"
|
||||
func_73079_d,removeBlock,2,Removes a block and triggers the appropriate events
|
||||
func_73079_d,removeBlock,2,Removes a block and triggers the appropriate events
|
||||
func_73080_a,setWorld,2,Sets the world instance.
|
||||
func_73081_b,getGameType,2,
|
||||
func_73082_a,uncheckedTryHarvestBlock,2,
|
||||
@@ -1582,7 +1618,7 @@ func_73273_a,writePacketData,2,Abstract. Writes the raw packet data to the data
|
||||
func_73274_a,writeByteArray,2,Writes a byte array to the DataOutputStream
|
||||
func_73275_a,writeNBTTagCompound,2,Writes a compressed NBTTagCompound to the OutputStream
|
||||
func_73276_c,readItemStack,2,Reads a ItemStack from the InputStream
|
||||
func_73277_a_,isWritePacket,2,"if this returns false, processPacket is deffered for processReadPackets to handle"
|
||||
func_73277_a_,canProcessAsync,2,"If this returns true, the packet may be processed on any thread; otherwise it is queued for the main thread to handle."
|
||||
func_73278_e,isRealPacket,2,"only false for the abstract Packet class, all real packets return true"
|
||||
func_73279_a,processPacket,2,Passes this Packet on to the NetHandler for processing.
|
||||
func_73280_b,readBytesFromStream,2,the first short in the stream indicates the number of bytes to read
|
||||
@@ -1591,6 +1627,9 @@ func_73282_a,readString,2,Reads a string from a packet
|
||||
func_73283_d,readNBTTagCompound,2,Reads a compressed NBTTagCompound from the InputStream
|
||||
func_73284_a,getPacketSize,2,Abstract. Return the size of the packet (not counting the header).
|
||||
func_73285_a,addIdClassMapping,2,Adds a two way mapping between the packet ID and packet class.
|
||||
func_73302_b,getVerifyToken,2,Return verifyToken
|
||||
func_73303_a,getSharedKey,2,"Return secretKey, decrypting it from the sharedSecret byte array if needed"
|
||||
func_73304_d,getSharedKey,2,Return the secret AES sharedKey (used by client only)
|
||||
func_73320_h,getPosZ,2,Gets the Z position of the block
|
||||
func_73321_f,getPosX,2,Gets the X position of the block
|
||||
func_73322_d,getEntityId,2,Gets the ID of the entity breaking the block
|
||||
@@ -1628,6 +1667,7 @@ func_73461_f,getRenderDistance,2,
|
||||
func_73462_i,getDifficulty,2,
|
||||
func_73463_g,getChatVisibility,2,
|
||||
func_73473_d,getText,2,
|
||||
func_73475_d,getIsServer,2,Get whether this is a server
|
||||
func_73489_c,getMetadata,2,
|
||||
func_73568_g,getEffectY,2,
|
||||
func_73569_h,getEffectZ,2,
|
||||
@@ -1635,6 +1675,10 @@ func_73570_d,getSoundName,2,
|
||||
func_73571_i,getVolume,2,
|
||||
func_73572_f,getEffectX,2,
|
||||
func_73573_j,getPitch,2,Gets the pitch divided by 63 (63 is 100%)
|
||||
func_73580_b,getChunkPosZ,2,
|
||||
func_73581_d,getNumberOfChunkInPacket,2,
|
||||
func_73582_a,getChunkPosX,2,
|
||||
func_73583_c,getChunkCompressedData,2,
|
||||
func_73594_a,getMapChunkData,2,
|
||||
func_73641_d,connectToNeighbor,2,"The specified neighbor has just formed a new connection, so update accordingly"
|
||||
func_73642_a,isMinecartTrack,2,
|
||||
@@ -1645,7 +1689,7 @@ func_73646_c,canConnectTo,2,Determines whether or not the track can bend to meet
|
||||
func_73647_b,isConnectedTo,2,
|
||||
func_73648_a,getMinecartTrackLogic,2,
|
||||
func_73649_b,isInTrack,2,Returns true if the specified block is in the same railway.
|
||||
func_73650_a,getAdjacentTracks,2,Get the number of adjacent tracks
|
||||
func_73650_a,getAdjacentTrackCount,2,Get the number of adjacent tracks.
|
||||
func_73651_b,getAdjacentTracks,2,
|
||||
func_73652_a,refreshTrackShape,2,Completely recalculates the track shape based on neighboring tracks and power state
|
||||
func_73660_a,update,2,Updates the JList with a new model.
|
||||
@@ -1690,7 +1734,7 @@ func_73730_a,drawHorizontalLine,2,
|
||||
func_73731_b,drawString,2,Renders the specified text to the screen.
|
||||
func_73732_a,drawCenteredString,2,"Renders the specified text to the screen, center-aligned."
|
||||
func_73733_a,drawGradientRect,2,Draws a rectangle with a vertical gradient between the specified colors.
|
||||
func_73734_a,drawRect,2,Draws a solid color rectangle with the specified coordinates and color.
|
||||
func_73734_a,drawRect,2,"Draws a solid color rectangle with the specified coordinates and color. Args: x1, y1, x2, y2, color"
|
||||
func_73736_c,mousePressed,2,Returns true if the mouse has been pressed on this control. Equivalent of MouseListener.mousePressed(MouseEvent e).
|
||||
func_73737_a,drawButton,2,Draws this button to the screen.
|
||||
func_73738_a,getHoverState,2,"Returns 0 if the button is disabled, 1 if the mouse is NOT hovering over this button and 2 if it IS hovering over this button."
|
||||
@@ -1844,13 +1888,16 @@ func_74184_a,drawItemStackTooltip,2,
|
||||
func_74185_a,drawGuiContainerBackgroundLayer,2,Draw the background layer for the GuiContainer (everything behind the items)
|
||||
func_74186_a,isMouseOverSlot,2,Returns if the passed mouse position is over the specified slot.
|
||||
func_74187_b,getSlotAtPosition,2,Returns the slot at the given coordinates or null if there is none.
|
||||
func_74188_c,isPointInRegion,2,"Args: left, top, width, height, pointX, pointY. Note: left, top are local to Gui, pointX, pointY are local to screen"
|
||||
func_74189_g,drawGuiContainerForegroundLayer,2,Draw the foreground layer for the GuiContainer (everything in front of the items)
|
||||
func_74190_a,drawCreativeTabHoveringText,2,"Draws the text when mouse is over creative inventory tab. Params: current creative tab to be checked, current mouse x position, current mouse y position."
|
||||
func_74191_a,handleMouseClick,2,
|
||||
func_74192_a,drawSlotInventory,2,Draws an inventory slot
|
||||
func_74199_h,getIMerchant,2,Gets the Instance of IMerchant interface.
|
||||
func_74221_h,displayDebuffEffects,2,Displays debuff/potion effects that are currently being applied to the player
|
||||
func_74223_a,drawPlayerOnGui,2,
|
||||
func_74226_k,needsScrollBars,2,returns (if you are not on the inventoryTab) and (the flag isn't set) and( you have more than 1 page of items)
|
||||
func_74227_b,setCurrentCreativeTab,2,
|
||||
func_74228_j,updateCreativeSearch,2,
|
||||
func_74229_i,getInventory,2,Returns the creative inventory
|
||||
func_74231_b,renderCreativeInventoryHoveringText,2,"Renders the creative inventory hovering text if mouse is over it. Returns true if did render or false otherwise. Params: current creative tab to be checked, current mouse x position, current mouse y position."
|
||||
@@ -2095,13 +2142,19 @@ func_74809_c,translateNamedKey,2,"Translate a key with a extra '.name' at end ad
|
||||
func_74810_a,setLanguage,2,
|
||||
func_74811_c,getCurrentLanguage,2,
|
||||
func_74812_a,loadLanguage,2,
|
||||
func_74818_a,setup,2,
|
||||
func_74819_a,loadAlgorithms,2,
|
||||
func_74820_b,addMacAlgorithms,2,
|
||||
func_74821_a,doSetup,2,
|
||||
func_74830_a,toLowerCase,2,A locale independent version of toLowerCase that returns a US ASCII lowercase String.
|
||||
func_74837_a,translateToLocalFormatted,2,Translates a Stat name with format args
|
||||
func_74838_a,translateToLocal,2,Translates a Stat name
|
||||
func_74840_a,configure,2,
|
||||
func_74841_a,calculateMask,2,
|
||||
func_74844_a,getErrorOjbects,2,
|
||||
func_74850_a,processBytes,2,
|
||||
func_74851_a,returnByte,2,"Encrypt/decrypt a single byte, returning the result."
|
||||
func_74852_a,nextChunk,2,
|
||||
func_74860_a,isLiquidInStructureBoundingBox,2,checks the entire StructureBoundingBox for Liquids
|
||||
func_74861_a,buildComponent,2,"Initiates construction of the Structure Component picked, at the current Location of StructGen"
|
||||
func_74862_a,getYWithOffset,2,
|
||||
@@ -2238,7 +2291,7 @@ func_75138_a,getInventory,2,"returns a list if itemStacks, for each slot."
|
||||
func_75139_a,getSlot,2,
|
||||
func_75140_a,enchantItem,2,enchants the item on the table using the specified slot; also deducts XP from player
|
||||
func_75141_a,putStackInSlot,2,"args: slotID, itemStack to put in slot"
|
||||
func_75142_b,updateCraftingResults,2,Updates crafting matrix; called from onCraftMatrixChanged. Args: none
|
||||
func_75142_b,detectAndSendChanges,2,"Looks for changes made in the container, sends them to every listener."
|
||||
func_75144_a,slotClick,2,
|
||||
func_75145_c,canInteractWith,2,
|
||||
func_75146_a,addSlotToContainer,2,the slot is assumed empty
|
||||
@@ -2286,7 +2339,7 @@ func_75366_f,findPossibleShelter,2,
|
||||
func_75382_a,hasPlayerGotBoneInHand,2,Gets if the Player has the Bone in the hand.
|
||||
func_75388_i,spawnBaby,2,Spawns a baby animal of the same type.
|
||||
func_75389_f,getNearbyMate,2,Loops through nearby animals and finds another animal of the same type that can be mated with. Returns the first valid mate found.
|
||||
func_75398_a,isSittableBlock,2,Determines wheter the Ocelot wants to sit on the block at given coordinate
|
||||
func_75398_a,isSittableBlock,2,Determines whether the Ocelot wants to sit on the block at given coordinate
|
||||
func_75399_f,getNearbySitableBlockDistance,2,"Searches for a block to sit on within a 8 block range, returns 0 if none found"
|
||||
func_75446_f,checkSufficientDoorsPresentForNewVillager,2,
|
||||
func_75447_i,giveBirth,2,
|
||||
@@ -2383,6 +2436,8 @@ func_75620_a,createEntityByName,2,Create a new instance of an entity in the worl
|
||||
func_75621_b,getEntityString,2,Gets the string representation of a specific entity.
|
||||
func_75630_a,multiplyBy32AndRound,2,
|
||||
func_75638_b,getSpeed,2,
|
||||
func_75639_a,limitAngle,2,Limits the given angle to a upper and lower limit.
|
||||
func_75640_a,isUpdating,2,
|
||||
func_75641_c,onUpdateMoveHelper,2,
|
||||
func_75642_a,setMoveTo,2,Sets the speed and location to move to
|
||||
func_75649_a,onUpdateLook,2,Updates look
|
||||
@@ -2502,9 +2557,18 @@ func_75878_a,getPosition,2,returns the current PathEntity target node as Vec3D
|
||||
func_75879_b,isFinished,2,Returns true if this path has reached the end
|
||||
func_75880_b,isDestinationSame,2,Returns true if the final PathPoint in the PathEntity is equal to Vec3D coords.
|
||||
func_75881_a,getVectorFromIndex,2,Gets the vector of the PathPoint associated with the given index.
|
||||
func_75886_a,createTheChiperInstance,2,Creates the Chiper Instance.
|
||||
func_75885_a,cipherOperation,2,Encrypt or decrypt byte[] data using the specified key
|
||||
func_75886_a,createTheCipherInstance,2,Creates the Cipher Instance.
|
||||
func_75887_a,decryptSharedKey,2,Decrypt shared secret AES key using RSA private key
|
||||
func_75888_a,decryptInputStream,2,
|
||||
func_75889_b,decryptData,2,Decrypt byte[] data with RSA private key
|
||||
func_75890_a,createNewSharedKey,2,Generate a new shared secret AES key from a secure random source
|
||||
func_75891_b,createNewKeyPair,2,
|
||||
func_75892_a,createBufferedBlockCipher,2,Create a new BufferedBlockCipher instance
|
||||
func_75893_a,digestOperation,2,Compute a message digest on arbitrary byte[] data
|
||||
func_75894_a,encryptData,2,Encrypt byte[] data with RSA public key
|
||||
func_75895_a,getServerIdHash,2,Compute a serverId hash for use by sendSessionRequest()
|
||||
func_75896_a,decodePublicKey,2,Create a new PublicKey from encoded X.509 data
|
||||
func_75897_a,encryptOuputStream,2,
|
||||
func_75899_a,getMD5String,2,Gets the MD5 string
|
||||
func_75901_a,initializeAllBiomeGenerators,2,"the first array item is a linked list of the bioms, the second is the zoom function, the third is the same as the first."
|
||||
@@ -2514,6 +2578,7 @@ func_75904_a,getInts,2,"Returns a list of integer values generated by this layer
|
||||
func_75905_a,initWorldGenSeed,2,Initialize layer's local worldGenSeed based on its own baseSeed and the world's global seed (passed in as an argument).
|
||||
func_75912_b,choose,2,randomly choose between the four args
|
||||
func_75913_a,choose,2,randomly choose between the two args
|
||||
func_75916_b,modeOrRandom,2,returns the mode (most frequently occuring number) or a random number from the 4 integers provided
|
||||
func_75917_a,choose,2,Chooses one of the two inputs randomly.
|
||||
func_75918_d,initCraftableStats,2,Initializes statistics related to craftable items. Is only called after both block and item stats have been initialized.
|
||||
func_75919_a,nopInit,2,This method simply NOPs. It is presumably used to call the static constructors on server start.
|
||||
@@ -2645,6 +2710,7 @@ func_76187_b,writeToNBT,2,"write data to NBTTagCompound from this MapDataBase, s
|
||||
func_76188_b,isDirty,2,Whether this MapDataBase needs saving to disk.
|
||||
func_76191_a,updateVisiblePlayers,2,Adds the player passed to the list of visible players and checks to see which players are visible
|
||||
func_76192_a,updateMPMapData,2,Updates the client's map with information from other players in MP
|
||||
func_76193_a,getUpdatePacketData,2,Get byte array of packet data to send to players on map for updating map data
|
||||
func_76194_a,setColumnDirty,2,"Marks a vertical range of pixels as being modified so they will be resent to clients. Parameters: X, lowest Y, highest Y"
|
||||
func_76204_a,getPlayersOnMap,2,"returns a 1+players*3 array, of x,y, and color . the name of this function may be partially wrong, as there is a second branch to the code here"
|
||||
func_76217_h,getCanBurn,2,Returns if the block can burn or not.
|
||||
@@ -2682,6 +2748,7 @@ func_76319_b,endSection,2,End section
|
||||
func_76320_a,startSection,2,Start section
|
||||
func_76321_b,getProfilingData,2,Get profiling data
|
||||
func_76322_c,getNameOfLastSection,2,
|
||||
func_76333_a,smooth,2,Smooths mouse input
|
||||
func_76337_a,ticksToElapsedTime,2,"Returns the time elapsed for the given number of ticks, in ""mm:ss"" format."
|
||||
func_76338_a,stripControlCodes,2,
|
||||
func_76340_b,getSecond,2,Get the second Object in the Tuple
|
||||
@@ -2691,6 +2758,8 @@ func_76346_g,getEntity,2,
|
||||
func_76347_k,isFireDamage,2,Returns true if the damage is fire based.
|
||||
func_76348_h,setDamageBypassesArmor,2,
|
||||
func_76349_b,setProjectile,2,Define the damage type as projectile based.
|
||||
func_76350_n,isDifficultyScaled,2,Return whether this damage source will have its damage amount scaled based on the current difficulty.
|
||||
func_76351_m,setDifficultyScaled,2,Set whether this damage source will have its damage amount scaled based on the current difficulty.
|
||||
func_76352_a,isProjectile,2,Returns true if the damage is projectile based.
|
||||
func_76353_a,causeArrowDamage,2,returns EntityDamageSourceIndirect of an arrow
|
||||
func_76354_b,causeIndirectMagicDamage,2,
|
||||
@@ -3192,7 +3261,6 @@ func_77489_c,updateLastSeen,2,Updates the time this LanServer was last seen.
|
||||
func_77493_a,calculateModifier,2,Generic method use to calculate modifiers of offensive or defensive enchantment values.
|
||||
func_77501_a,getRespiration,2,Returns the 'Water Breathing' modifier of enchantments on player equipped armors.
|
||||
func_77502_d,getSilkTouchModifier,2,Returns the silk touch status of enchantments on current equipped item of player.
|
||||
func_77503_c,getUnbreakingModifier,2,Returns the unbreaking enchantment modifier on current equipped item of player.
|
||||
func_77504_a,addRandomEnchantment,2,"Adds a random enchantment to the specified item. Args: random, itemStack, enchantabilityLevel"
|
||||
func_77505_b,mapEnchantmentData,2,Creates a 'Map' of EnchantmentData (enchantments) possible to add on the ItemStack and the enchantability level passed.
|
||||
func_77506_a,getEnchantmentLevel,2,Returns the level of enchantment on the ItemStack passed.
|
||||
@@ -3239,7 +3307,6 @@ func_77589_a,addRecipes,2,Adds the crafting recipes to the CraftingManager.
|
||||
func_77590_a,addRecipes,2,Adds the ingot recipes to the CraftingManager.
|
||||
func_77592_b,getRecipeList,2,returns the List<> of all recipes
|
||||
func_77594_a,getInstance,2,Returns the static instance of this class
|
||||
func_77595_a,addRecipe,2,Adds a recipe. See spreadsheet on first page for details.
|
||||
func_77596_b,addShapelessRecipe,2,
|
||||
func_77599_b,getSmeltingList,2,
|
||||
func_77600_a,addSmelting,2,Adds a smelting recipe.
|
||||
@@ -3283,7 +3350,7 @@ func_77642_a,setContainerItem,2,
|
||||
func_77643_m_,isMap,2,false for all Items except sub-classes of ItemMapBase
|
||||
func_77644_a,hitEntity,2,Current implementations of this method in child classes do not use the entry argument beside ev. They just raise the damage on the stack.
|
||||
func_77645_m,isDamageable,2,
|
||||
func_77646_a,itemInteractionForEntity,2,"dye sheep, place saddles, etc ..."
|
||||
func_77646_a,itemInteractionForEntity,2,Called when a player right clicks an entity with an item.
|
||||
func_77647_b,getMetadata,2,Returns the metadata of the block which this Item (ItemBlock) can place
|
||||
func_77648_a,onItemUse,2,"Callback for item usage. If the item does something special on right clicking, he will have one of those. Return True if something happen and false if it don't. This is for ITEMS, not BLOCKS"
|
||||
func_77649_a,getDamageVsEntity,2,Returns the damage against a given entity.
|
||||
@@ -3305,6 +3372,7 @@ func_77665_c,setIconIndex,2,Sets the icon index for this item. Returns the item.
|
||||
func_77666_t,getPotionEffect,2,Returns a string representing what this item does to a potion.
|
||||
func_77667_c,getItemNameIS,2,
|
||||
func_77668_q,getContainerItem,2,
|
||||
func_77825_f,getToolMaterialName,2,Return the name for this tool's material.
|
||||
func_77828_a,validBookTagContents,2,
|
||||
func_77829_a,validBookTagPages,2,
|
||||
func_77831_g,isSplash,2,returns wether or not a potion is a throwable splash potion based on damage value
|
||||
@@ -3506,6 +3574,8 @@ func_78440_a,renderItemInFirstPerson,2,Renders the active item in the player's h
|
||||
func_78441_a,updateEquippedItem,2,
|
||||
func_78442_d,renderFireInFirstPerson,2,Renders the fire on the screen for first person mode. Arg: partialTickTime
|
||||
func_78443_a,renderItem,2,Renders the item stack for being in an entity's hand Args: itemStack
|
||||
func_78444_b,resetEquippedProgress,2,Resets equippedProgress
|
||||
func_78445_c,resetEquippedProgress2,2,Resets equippedProgress
|
||||
func_78446_a,renderInsideOfBlock,2,"Renders the texture of the block the player is inside as an overlay. Args: partialTickTime, blockTextureIndex"
|
||||
func_78447_b,renderOverlays,2,Renders all the overlays that are in first person mode. Args: partialTickTime
|
||||
func_78448_c,renderWarpedTextureOverlay,2,Renders a texture that warps around based on the direction the player is looking. Texture needs to be bound before being called. Used for the water overlay. Args: parialTickTime
|
||||
@@ -3707,11 +3777,16 @@ func_79006_b,getStatsComponent,2,Returns a new JPanel with a new GuiStatsCompone
|
||||
func_79007_c,getPlayerListComponent,2,Returns a new JScrollPane with a new PlayerListBox inside.
|
||||
func_79013_a,update,2,Public static accessor to call updateStats.
|
||||
func_79014_a,updateStats,2,Updates the stat values and calls paint to redraw the component.
|
||||
func_79015_a,calcArrayAverage,2,Calculates the avarage value of the given long array.
|
||||
func_80003_ah,getPlayerUsageSnooper,2,
|
||||
func_80006_f,getUniqueID,2,
|
||||
func_80007_l,getDimensionName,2,"Returns the dimension's name, e.g. ""The End"", ""Nether"", or ""Overworld""."
|
||||
func_82011_an,enableGui,2,
|
||||
func_82114_b,getPlayerCoordinates,2,Return the coordinates for this player as ChunkCoordinates.
|
||||
func_82114_b,getPlayerCoordinates,2,Return the position for this command sender.
|
||||
func_82116_a,setSkullRotation,2,Set the skull's rotation
|
||||
func_82117_a,getSkullType,2,Get the entity type for the skull
|
||||
func_82118_a,setSkullType,2,Set the entity type for the skull
|
||||
func_82120_c,getExtraType,2,"Get the extra data foor this skull, used as player username by player heads"
|
||||
func_82126_i,getPrimaryEffect,2,Return the primary potion effect given by this beacon.
|
||||
func_82129_c,setLevels,2,Set the levels of this beacon's pyramid.
|
||||
func_82130_k,getLevels,2,Return the levels of this beacon's pyramid.
|
||||
@@ -3746,7 +3821,8 @@ func_82203_t,getWatchedTargetId,2,"Returns the target entity ID if present, or -
|
||||
func_82205_o,isArmored,2,Returns whether the wither is armored with its boss armor or not by checking whether its health is below half of its maximum.
|
||||
func_82227_f,setChild,2,Set whether this zombie is a child.
|
||||
func_82228_a,startConversion,2,Starts converting this zombie into a villager. The zombie converts into a villager after the specified time in ticks.
|
||||
func_82229_g,setIsVillager,2,Set whether this zombie is a villager.
|
||||
func_82229_g,setVillager,2,Set whether this zombie is a villager.
|
||||
func_82230_o,isConverting,2,Returns whether this zombie is in the process of converting to a villager
|
||||
func_82231_m,isVillager,2,Return whether this zombie is a villager.
|
||||
func_82232_p,convertToVillager,2,Convert this zombie into a villager.
|
||||
func_82233_q,getConversionTimeBoost,2,Return the amount of time decremented from conversionTime every tick.
|
||||
@@ -3768,6 +3844,7 @@ func_82294_a,addPreset,2,Add a flat world preset.
|
||||
func_82295_i,getPresets,2,Return the list of defined flat world presets.
|
||||
func_82297_a,addPresetNoFeatures,2,Add a flat world preset with no world features.
|
||||
func_82299_h,getPresetIconRenderer,2,Return the RenderItem instance used to render preset icons.
|
||||
func_82319_a,checkHotbarKeys,2,This function is what controls the hotbar shortcut check when you press a number key when hovering a stack.
|
||||
func_82328_a,setDirection,2,
|
||||
func_82331_h,dropItemStack,2,Drop the item currently on this item frame.
|
||||
func_82333_j,getRotation,2,Return the rotation of the item currently on this frame.
|
||||
@@ -3793,6 +3870,20 @@ func_82366_d,getGameRules,2,Return the game rule set this command should be able
|
||||
func_82369_d,getAllOnlineUsernames,2,Return all usernames currently connected to the server.
|
||||
func_82370_a,getUsernameIndex,2,Return a command's first parameter index containing a valid username.
|
||||
func_82371_e,getDistanceSquaredToChunkCoordinates,2,Return the squared distance between this coordinates and the ChunkCoordinates given as argument.
|
||||
func_82372_a,getMovementDirection,2,Returns the movement direction from a velocity vector.
|
||||
func_82375_f,getDefaultMinimumLevel,2,Gets the default minimum experience level (argument lm)
|
||||
func_82376_e,getDefaultMaximumLevel,2,Gets the default maximum experience level (argument l)
|
||||
func_82377_a,matchesMultiplePlayers,2,Returns whether the given pattern can match more than one player.
|
||||
func_82378_b,hasArguments,2,Returns whether the given token has any arguments set.
|
||||
func_82379_d,getDefaultMaximumRange,2,Gets the default maximum range (argument r).
|
||||
func_82380_c,matchPlayers,2,Returns an array of all players matched by the given at-token.
|
||||
func_82381_h,getArgumentMap,2,"Parses the given argument string, turning it into a HashMap<String, String> of name->value."
|
||||
func_82382_g,getDefaultCount,2,"Gets the default number of players to return (argument c, 0 for infinite)"
|
||||
func_82383_a,hasTheseArguments,2,Returns whether the given token (parameter 1) has exactly the given arguments (parameter 2).
|
||||
func_82384_c,getDefaultMinimumRange,2,Gets the default minimum range (argument rm).
|
||||
func_82385_b,matchPlayersAsString,2,Returns a nicely-formatted string listing the matching players.
|
||||
func_82386_a,matchOnePlayer,2,Returns the one player that matches the given at-token. Returns null if more than one player matches.
|
||||
func_82392_a,bindTextureByURL,2,"Binds a texture that Minecraft will attempt to load from the given URL. (arguments: url, localFallback)"
|
||||
func_82394_a,renderTileEntitySkullAt,2,Render a skull tile entity.
|
||||
func_82398_a,renderTileEntityBeaconAt,2,Render a beacon tile entity.
|
||||
func_82403_a,renderFrameItemAsBlock,2,Render the item frame's item as a block.
|
||||
@@ -3823,8 +3914,10 @@ func_82531_c,getPlantForMeta,2,Return the item associated with the specified flo
|
||||
func_82532_h,getSeedItem,2,Generate a seed ItemStack for this crop.
|
||||
func_82533_j,getCropItem,2,Generate a crop produce ItemStack for this crop.
|
||||
func_82538_d,canConnectWallTo,2,Return whether an adjacent block can connect to a wall.
|
||||
func_82543_e,isBlockStairsID,2,Checks if supplied ID is one of a BlockStairs
|
||||
func_82547_a,comparePlayers,2,Compare the position of two players.
|
||||
func_82563_j,getShowCape,2,
|
||||
func_82571_y,getGeneratorOptions,2,
|
||||
func_82572_b,incrementTotalWorldTime,2,
|
||||
func_82573_f,getWorldTotalTime,2,
|
||||
func_82574_x,getGameRulesInstance,2,Gets the GameRules class Instance.
|
||||
@@ -3835,6 +3928,9 @@ func_82582_d,hasNoTags,2,Return whether this compound has no tags.
|
||||
func_82591_c,getPoolSize,2,
|
||||
func_82593_b,getPlaceSound,2,Used when a player places a block.
|
||||
func_82595_a,putObject,2,Register an object on this registry.
|
||||
func_82599_e,getFrontOffsetZ,2,Returns a offset that addresses the block in front of this facing.
|
||||
func_82600_a,getFront,2,Returns the facing that represents the block in front of it.
|
||||
func_82601_c,getFrontOffsetX,2,Returns a offset that addresses the block in front of this facing.
|
||||
func_82615_a,getX,2,
|
||||
func_82616_c,getZ,2,
|
||||
func_82617_b,getY,2,
|
||||
@@ -3858,12 +3954,14 @@ func_82659_b,getFillBlock,2,Return the block type used on this set of layers.
|
||||
func_82660_d,setMinY,2,Set the minimum Y coordinate for this layer.
|
||||
func_82667_a,getScatteredFeatureSpawnList,2,returns possible spawns for scattered features
|
||||
func_82674_a,pickRandomCrop,2,Returns a crop type to be planted on this field.
|
||||
func_82677_a,pickRandomCrop,2,Returns a crop type to be planted on this field.
|
||||
func_82677_a,getRandomCrop,2,Returns a crop type to be planted on this field.
|
||||
func_82684_a,getReputationForPlayer,2,Return the village reputation for a player
|
||||
func_82686_i,isMatingSeason,2,Return whether villagers mating refractory period has passed
|
||||
func_82687_d,isPlayerReputationTooLow,2,Return whether this player has a too low reputation with this village.
|
||||
func_82688_a,setReputationForPlayer,2,Set the village reputation for a player
|
||||
func_82688_a,setReputationForPlayer,2,Set the village reputation for a player.
|
||||
func_82689_b,writeVillageDataToNBT,2,Write this village's data to NBT.
|
||||
func_82690_a,readVillageDataFromNBT,2,Read this village's data from NBT.
|
||||
func_82692_h,endMatingSeason,2,Prevent villager breeding for a fixed interval of time
|
||||
func_82695_e,recreateStructures,2,
|
||||
func_82704_a,isEntityApplicable,2,Return whether the specified entity is applicable to this filter.
|
||||
func_82705_e,getAnimal,2,Return whether this creature type is an animal.
|
||||
@@ -3875,18 +3973,20 @@ func_82714_a,parseIntWithDefaultAndMax,2,parses the string as integer or returns
|
||||
func_82715_a,parseIntWithDefault,2,parses the string as integer or returns the second parameter if it fails
|
||||
func_82716_a,getRandomDoubleInRange,2,
|
||||
func_82719_a,writeCustomPotionEffectToNBT,2,Write a custom potion effect to a potion item's NBT data.
|
||||
func_82720_e,getIsAmbient,2,Gets whether this potion effect originated from a beacon
|
||||
func_82721_a,setSplashPotion,2,Set whether this potion is a splash potion.
|
||||
func_82722_b,readCustomPotionEffectFromNBT,2,Read a custom potion effect from a potion item's NBT data.
|
||||
func_82725_o,isMagicDamage,2,Returns true if the damage is magic based.
|
||||
func_82726_p,setMagicDamage,2,Define the damage type as magic based.
|
||||
func_82732_R,getWorldVec3Pool,2,Return the Vec3Pool object for this world.
|
||||
func_82733_a,selectEntitiesWithinAABB,2,
|
||||
func_82736_K,getGameRules,2,Gets the GameRules instance
|
||||
func_82736_K,getGameRules,2,Gets the GameRules instance.
|
||||
func_82737_E,getTotalWorldTime,2,
|
||||
func_82742_i,resetUpdateEntityTick,2,Resets the updateEntityTick field to 0
|
||||
func_82743_f,getCreationCloudUpdateTick,2,retrieves the 'date' at which the PartiallyDestroyedBlock was created
|
||||
func_82744_b,setCloudUpdateTick,2,saves the current Cloud update tick into the PartiallyDestroyedBlock
|
||||
func_82746_a,broadcastSound,2,
|
||||
func_82747_f,getWorldTypeID,2,
|
||||
func_82752_c,isAdventure,2,Returns true if this is the ADVENTURE game type
|
||||
func_82756_a,getGameRuleStringValue,2,Gets the GameRule's value as String.
|
||||
func_82757_a,setValue,2,Set this game rule value.
|
||||
@@ -3920,6 +4020,7 @@ func_82815_c,removeColor,2,Remove the color from the specified armor ItemStack.
|
||||
func_82816_b_,hasColor,2,Return whether the specified armor ItemStack has a color.
|
||||
func_82819_b,setHideAddress,2,
|
||||
func_82820_d,isHidingAddress,2,
|
||||
func_82829_a,renderCloudsCheck,2,Render clouds if enabled
|
||||
func_82830_a,getNightVisionBrightness,2,Gets the night vision brightness
|
||||
func_82833_r,getDisplayName,2,returns the display name of the itemstack
|
||||
func_82834_c,setItemName,2,Sets the item's name (used by anvil to rename the items).
|
||||
@@ -3934,6 +4035,10 @@ func_82844_f,getToolCraftingMaterial,2,"Return the crafting material for this to
|
||||
func_82845_b,getArmorCraftingMaterial,2,"Return the crafting material for this armor material, used to determine the item that can be used to repair an armor piece with an anvil"
|
||||
func_82846_b,transferStackInSlot,2,Called when a player shift-clicks on a slot. You must override this or you will crash when someone does that.
|
||||
func_82847_b,removeCraftingFromCrafters,2,Remove this crafting listener from the listener list.
|
||||
func_82848_d,updateRepairOutput,2,"called when the Anvil Input Slot changes, calculates the new result and puts it in the output slot"
|
||||
func_82849_b,getStackSizeUsedInRepair,2,
|
||||
func_82850_a,updateItemName,2,used by the Anvil GUI to update the Item Name being typed by the player
|
||||
func_82851_a,getRepairInputInventory,2,
|
||||
func_82863_d,getBeacon,2,Returns the Tile Entity behind this beacon inventory / container
|
||||
func_82869_a,canTakeStack,2,Return whether this slot's stack can be taken from this slot.
|
||||
func_82870_a,onPickupFromSlot,2,
|
||||
@@ -3949,26 +4054,39 @@ func_83010_y,getBlockBoundsMaxY,2,returns the block bounderies maxY value
|
||||
func_83012_d,getnextPoolIndex,2,
|
||||
func_83013_c,getlistAABBsize,2,
|
||||
func_83015_S,getCurrentDate,2,returns a calendar object containing the current date
|
||||
func_83017_b,resetCustomBlockBounds,2,Reset customBlockBounds
|
||||
func_83018_a,updateCustomBlockBounds,2,Updates the custom block bounds with the bounds of the given block
|
||||
func_83019_b,setCustomBlockBounds,2,Sets the custom block bounds for rendering
|
||||
func_83020_a,setRenderMinMax,2,"Sets the size and offset of the block to be rendered, ie: half size and rendered center block: 0.25D, 0.75D"
|
||||
func_83017_b,unlockBlockBounds,2,Unlocks the visual bounding box so that RenderBlocks can change it again.
|
||||
func_83018_a,setRenderBoundsFromBlock,2,"Like setRenderBounds, but automatically pulling the bounds from the given Block."
|
||||
func_83019_b,overrideBlockBounds,2,"Like setRenderBounds, but locks the values so that RenderBlocks won't change them. If you use this, you must call unlockBlockBounds after you finish rendering!"
|
||||
func_83020_a,setRenderBounds,2,"Sets the bounding box for the block to draw in, e.g. 0.25-0.75 on all axes for a half-size, centered block."
|
||||
func_85030_a,playSound,2,
|
||||
func_85032_ar,isEntityInvulnerable,2,Return whether this entity is invulnerable to damage.
|
||||
func_85034_r,setArrowCountInEntity,2,sets the amount of arrows stuck in the entity. used for rendering those
|
||||
func_85035_bI,getArrowCountInEntity,2,"counts the amount of arrows stuck in the entity. getting hit by arrows increases this, used in rendering"
|
||||
func_85039_t,addScore,2,Add to player's score
|
||||
func_85040_s,setScore,2,Set player's score
|
||||
func_85044_b,drawItemStack,2,
|
||||
func_85052_h,getThrower,2,
|
||||
func_85055_a,makeCrashReport,2,Creates a crash report for the exception
|
||||
func_85057_a,makeCategoryDepth,2,Creates a CrashReportCategory for the given stack trace depth
|
||||
func_85058_a,makeCategory,2,Creates a CrashReportCategory
|
||||
func_85093_e,renderArrowsStuckInEntity,2,"renders arrows the Entity has been attacked with, attached to it"
|
||||
func_85096_a,renderBlockAnvilMetadata,2,Renders anvil block with metadata
|
||||
func_85102_a,playSoundToNearExcept,2,Plays sound to all near players except the player reference given
|
||||
func_85103_a,canDropFromExplosion,2,Return whether this block can drop from an explosion.
|
||||
func_85104_a,onBlockPlaced,2,"Called when a block is placed using its ItemBlock. Args: World, X, Y, Z, side, hitX, hitY, hitZ, block metadata"
|
||||
func_85105_g,onPostBlockPlaced,2,Called after a block is placed
|
||||
func_85106_a,insertRecord,2,Insert the specified music disc in the jukebox at the given coordinates
|
||||
func_85107_d,updateLadderBounds,2,Update the ladder block bounds based on the given metadata value.
|
||||
func_85118_a,addToCrashReport,2,Adds this WorldInfo instance to the crash report.
|
||||
func_85128_b,getMapFeaturesEnabled,2,Return the map feautures enabled of a world
|
||||
func_85132_a,getTerrainTypeOfWorld,2,Return the terrain type of a world
|
||||
func_85151_d,getLowerChestInventory,2,Return this chest container's lower chest inventory.
|
||||
func_85173_a,playSoundToNearExcept,2,Plays sound to all near players except the player reference given
|
||||
func_85175_e,blockGetRenderType,2,Returns the render type of the block at the given coordinate.
|
||||
func_85187_a,drawString,2,"Draws the specified string. Args: string, x, y, color, dropShadow"
|
||||
func_90010_a,isPartOfLargeChest,2,Return whether the given inventory is part of this large chest.
|
||||
func_90011_a,createChild,2,
|
||||
func_90019_g,applyRenderColor,2,Creates a new EntityDiggingFX with the block render color applied to the base particle color
|
||||
func_90022_d,getListOfPlayers,2,
|
||||
func_90030_a,getRendererMinecraft,2,Get minecraft reference from the EntityRenderer
|
||||
func_90033_f,canLoadWorld,2,Return whether the given world can be loaded.
|
||||
@@ -3977,3 +4095,10 @@ func_90036_a,getFireAspectModifier,2,
|
||||
func_90042_d,getRecord,2,Return the record item corresponding to the given name.
|
||||
func_90043_g,getRecordTitle,2,Return the title for this record.
|
||||
func_90999_ad,canRenderOnFire,2,Return whether this entity should be rendered as on fire.
|
||||
func_92013_a,setEntityItem,2,Sets the ItemStack corresponding to this Entity (and updates the DataWatcher for it)
|
||||
func_92014_d,getEntityItem,2,"Returns the ItemStack corresponding to the Entity (Note: if no item exists, will log an error but still return an ItemStack containing Block.stone)"
|
||||
func_92015_a,getMobID,2,
|
||||
func_92027_k,sendChatMsg,2,Sends the given string to every player as chat message.
|
||||
func_92059_d,getEntityItem,2,"Returns the ItemStack corresponding to the Entity (Note: if no item exists, will log an error but still return an ItemStack containing Block.stone)"
|
||||
func_92062_k,sendChatMsg,2,Sends the given string to every player as chat message.
|
||||
func_92103_a,addRecipe,2,
|
||||
|
+54
-13
@@ -1,17 +1,45 @@
|
||||
class,package
|
||||
EntityFireworkOverlayFX,net/minecraft/client/particle
|
||||
EntityFireworkSparkFX,net/minecraft/client/particle
|
||||
EntityFireworkStarterFX,net/minecraft/client/particle
|
||||
ScheduledSound,net/minecraft/client/audio
|
||||
BehaviorDispenseFirework,net/minecraft/dispenser
|
||||
EnchantmentThorns,net/minecraft/enchantment
|
||||
EntityFireworkRocket,net/minecraft/entity/item
|
||||
ItemBook,net/minecraft/item
|
||||
ItemEnchantedBook,net/minecraft/item
|
||||
ItemFirework,net/minecraft/item
|
||||
ItemFireworkCharge,net/minecraft/item
|
||||
RecipeFireworks,net/minecraft/item/crafting
|
||||
TileEntityMobSpawnerSpawnData,net/minecraft/tileentity
|
||||
IconRegister,net/minecraft/client/renderer/texture
|
||||
Rect2i,net/minecraft/client/renderer/texture
|
||||
RenderTntMinecart,net/minecraft/client/renderer/entity
|
||||
ScreenHopper,net/minecraft/client/gui
|
||||
StitchHolder,net/minecraft/client/renderer/texture
|
||||
StitchSlot,net/minecraft/client/renderer/texture
|
||||
Stitcher,net/minecraft/client/renderer/texture
|
||||
Texture,net/minecraft/client/renderer/texture
|
||||
TextureClock,net/minecraft/client/renderer/texture
|
||||
TextureCompass,net/minecraft/client/renderer/texture
|
||||
TextureManager,net/minecraft/client/renderer/texture
|
||||
TextureMap,net/minecraft/client/renderer/texture
|
||||
TextureStitched,net/minecraft/client/renderer/texture
|
||||
BlockBasePressurePlate,net/minecraft/block
|
||||
BlockBaseRail,net/minecraft/block
|
||||
BlockBaseRailLogic,net/minecraft/block
|
||||
BlockComparator,net/minecraft/block
|
||||
BlockDaylightDetector,net/minecraft/block
|
||||
BlockHopper,net/minecraft/block
|
||||
BlockPoweredMetal,net/minecraft/block
|
||||
BlockPoweredRail,net/minecraft/block
|
||||
BlockQuartz,net/minecraft/block
|
||||
BlockRepeater,net/minecraft/block
|
||||
BlockStoneButton,net/minecraft/block
|
||||
BlockWeightedPressurePlate,net/minecraft/block
|
||||
BlockWoodButton,net/minecraft/block
|
||||
CallableTileEntityData,net/minecraft/tileentity
|
||||
CallableTileEntityID,net/minecraft/tileentity
|
||||
CombatEntry,net/minecraft/util
|
||||
CombatTracker,net/minecraft/util
|
||||
ContainerWorldly,net/minecraft/inventory
|
||||
EntitySelectorAlive,net/minecraft/command
|
||||
EntitySelectorHopperInventory,net/minecraft/tileentity
|
||||
Icon,net/minecraft/util
|
||||
ItemChestMinecart,net/minecraft/entity
|
||||
ItemFurnaceMinecart,net/minecraft/entity
|
||||
ItemRideableMinecart,net/minecraft/entity
|
||||
ItemTntMinecart,net/minecraft/entity
|
||||
MenuHopper,net/minecraft/inventory
|
||||
TileEntityDaylightDetector,net/minecraft/tileentity
|
||||
TileEntityHopper,net/minecraft/tileentity
|
||||
Block,net/minecraft/block
|
||||
BlockAnvil,net/minecraft/block
|
||||
BlockBeacon,net/minecraft/block
|
||||
@@ -158,6 +186,7 @@ ThreadClientSleep,net/minecraft/client
|
||||
ThreadShutdown,net/minecraft/client
|
||||
CodecMus,net/minecraft/client/audio
|
||||
MusInputStream,net/minecraft/client/audio
|
||||
ScheduledSound,net/minecraft/client/audio
|
||||
SoundManager,net/minecraft/client/audio
|
||||
SoundPool,net/minecraft/client/audio
|
||||
SoundPoolEntry,net/minecraft/client/audio
|
||||
@@ -325,6 +354,9 @@ EntityDropParticleFX,net/minecraft/client/particle
|
||||
EntityEnchantmentTableParticleFX,net/minecraft/client/particle
|
||||
EntityExplodeFX,net/minecraft/client/particle
|
||||
EntityFX,net/minecraft/client/particle
|
||||
EntityFireworkOverlayFX,net/minecraft/client/particle
|
||||
EntityFireworkSparkFX,net/minecraft/client/particle
|
||||
EntityFireworkStarterFX,net/minecraft/client/particle
|
||||
EntityFlameFX,net/minecraft/client/particle
|
||||
EntityFootStepFX,net/minecraft/client/particle
|
||||
EntityHeartFX,net/minecraft/client/particle
|
||||
@@ -538,6 +570,7 @@ BehaviorBucketFullDispense,net/minecraft/dispenser
|
||||
BehaviorDefaultDispenseItem,net/minecraft/dispenser
|
||||
BehaviorDispenseBoat,net/minecraft/dispenser
|
||||
BehaviorDispenseFireball,net/minecraft/dispenser
|
||||
BehaviorDispenseFirework,net/minecraft/dispenser
|
||||
BehaviorDispenseItemProvider,net/minecraft/dispenser
|
||||
BehaviorDispenseMinecart,net/minecraft/dispenser
|
||||
BehaviorEggDispense,net/minecraft/dispenser
|
||||
@@ -574,6 +607,7 @@ EnchantmentModifierDamage,net/minecraft/enchantment
|
||||
EnchantmentModifierLiving,net/minecraft/enchantment
|
||||
EnchantmentOxygen,net/minecraft/enchantment
|
||||
EnchantmentProtection,net/minecraft/enchantment
|
||||
EnchantmentThorns,net/minecraft/enchantment
|
||||
EnchantmentUntouching,net/minecraft/enchantment
|
||||
EnchantmentWaterWorker,net/minecraft/enchantment
|
||||
EnumEnchantmentType,net/minecraft/enchantment
|
||||
@@ -669,6 +703,7 @@ EntityEnderEye,net/minecraft/entity/item
|
||||
EntityEnderPearl,net/minecraft/entity/item
|
||||
EntityExpBottle,net/minecraft/entity/item
|
||||
EntityFallingSand,net/minecraft/entity/item
|
||||
EntityFireworkRocket,net/minecraft/entity/item
|
||||
EntityItem,net/minecraft/entity/item
|
||||
EntityItemFrame,net/minecraft/entity/item
|
||||
EntityMinecart,net/minecraft/entity/item
|
||||
@@ -771,6 +806,7 @@ ItemAxe,net/minecraft/item
|
||||
ItemBed,net/minecraft/item
|
||||
ItemBlock,net/minecraft/item
|
||||
ItemBoat,net/minecraft/item
|
||||
ItemBook,net/minecraft/item
|
||||
ItemBow,net/minecraft/item
|
||||
ItemBucket,net/minecraft/item
|
||||
ItemBucketMilk,net/minecraft/item
|
||||
@@ -783,10 +819,13 @@ ItemDye,net/minecraft/item
|
||||
ItemEditableBook,net/minecraft/item
|
||||
ItemEgg,net/minecraft/item
|
||||
ItemEmptyMap,net/minecraft/item
|
||||
ItemEnchantedBook,net/minecraft/item
|
||||
ItemEnderEye,net/minecraft/item
|
||||
ItemEnderPearl,net/minecraft/item
|
||||
ItemExpBottle,net/minecraft/item
|
||||
ItemFireball,net/minecraft/item
|
||||
ItemFirework,net/minecraft/item
|
||||
ItemFireworkCharge,net/minecraft/item
|
||||
ItemFishingRod,net/minecraft/item
|
||||
ItemFlintAndSteel,net/minecraft/item
|
||||
ItemFood,net/minecraft/item
|
||||
@@ -825,6 +864,7 @@ ItemWritableBook,net/minecraft/item
|
||||
CraftingManager,net/minecraft/item/crafting
|
||||
FurnaceRecipes,net/minecraft/item/crafting
|
||||
IRecipe,net/minecraft/item/crafting
|
||||
RecipeFireworks,net/minecraft/item/crafting
|
||||
RecipeSorter,net/minecraft/item/crafting
|
||||
RecipesArmor,net/minecraft/item/crafting
|
||||
RecipesArmorDyes,net/minecraft/item/crafting
|
||||
@@ -1034,6 +1074,7 @@ TileEntityEndPortal,net/minecraft/tileentity
|
||||
TileEntityEnderChest,net/minecraft/tileentity
|
||||
TileEntityFurnace,net/minecraft/tileentity
|
||||
TileEntityMobSpawner,net/minecraft/tileentity
|
||||
TileEntityMobSpawnerSpawnData,net/minecraft/tileentity
|
||||
TileEntityNote,net/minecraft/tileentity
|
||||
TileEntityPiston,net/minecraft/tileentity
|
||||
TileEntitySign,net/minecraft/tileentity
|
||||
|
||||
|
+694
-383
File diff suppressed because it is too large.
Load diff
@@ -1,7 +1,7 @@
|
||||
diff -r -U 3 minecraft\net\minecraft\client\Minecraft.java minecraft_patched\net\minecraft\client\Minecraft.java
|
||||
--- minecraft\net\minecraft\client\Minecraft.java Mon Dec 17 22:49:48 2012
|
||||
+++ minecraft_patched\net\minecraft\client\Minecraft.java Mon Dec 17 22:51:37 2012
|
||||
@@ -546,9 +546,8 @@
|
||||
--- minecraft\net\minecraft\client\Minecraft.java Sat Jan 12 02:17:55 2013
|
||||
+++ minecraft_patched\net\minecraft\client\Minecraft.java Sat Jan 12 02:24:09 2013
|
||||
@@ -532,9 +532,8 @@
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ diff -r -U 3 minecraft\net\minecraft\client\Minecraft.java minecraft_patched\net
|
||||
if(this.field_71434_R && this.field_71433_S != null) {
|
||||
this.func_71377_b(this.field_71433_S);
|
||||
return;
|
||||
@@ -566,7 +565,6 @@
|
||||
@@ -552,7 +551,6 @@
|
||||
this.func_71373_a(new GuiMemoryErrorScreen());
|
||||
System.gc();
|
||||
}
|
||||
@@ -20,7 +20,7 @@ diff -r -U 3 minecraft\net\minecraft\client\Minecraft.java minecraft_patched\net
|
||||
}
|
||||
} catch (MinecraftError var12) {
|
||||
;
|
||||
@@ -584,8 +582,6 @@
|
||||
@@ -570,8 +568,6 @@
|
||||
this.func_71405_e();
|
||||
}
|
||||
|
||||
@@ -30,8 +30,8 @@ diff -r -U 3 minecraft\net\minecraft\client\Minecraft.java minecraft_patched\net
|
||||
|
||||
private void func_71411_J() {
|
||||
diff -r -U 3 minecraft\net\minecraft\src\CallableSuspiciousClasses.java minecraft_patched\net\minecraft\src\CallableSuspiciousClasses.java
|
||||
--- minecraft\net\minecraft\src\CallableSuspiciousClasses.java Mon Dec 17 22:49:49 2012
|
||||
+++ minecraft_patched\net\minecraft\src\CallableSuspiciousClasses.java Mon Dec 17 22:51:37 2012
|
||||
--- minecraft\net\minecraft\src\CallableSuspiciousClasses.java Sat Jan 12 02:17:56 2013
|
||||
+++ minecraft_patched\net\minecraft\src\CallableSuspiciousClasses.java Sat Jan 12 02:24:09 2013
|
||||
@@ -21,9 +21,14 @@
|
||||
|
||||
public String func_85085_a() {
|
||||
@@ -51,8 +51,8 @@ diff -r -U 3 minecraft\net\minecraft\src\CallableSuspiciousClasses.java minecraf
|
||||
boolean var5 = !CrashReport.class.getCanonicalName().equals("net.minecraft.CrashReport");
|
||||
HashMap var6 = new HashMap();
|
||||
diff -r -U 3 minecraft\net\minecraft\src\CodecMus.java minecraft_patched\net\minecraft\src\CodecMus.java
|
||||
--- minecraft\net\minecraft\src\CodecMus.java Mon Dec 17 22:49:49 2012
|
||||
+++ minecraft_patched\net\minecraft\src\CodecMus.java Mon Dec 17 22:51:37 2012
|
||||
--- minecraft\net\minecraft\src\CodecMus.java Sat Jan 12 02:17:56 2013
|
||||
+++ minecraft_patched\net\minecraft\src\CodecMus.java Sat Jan 12 02:24:09 2013
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.minecraft.src;
|
||||
|
||||
@@ -73,8 +73,8 @@ diff -r -U 3 minecraft\net\minecraft\src\CodecMus.java minecraft_patched\net\min
|
||||
}
|
||||
}
|
||||
diff -r -U 3 minecraft\net\minecraft\src\ComponentStrongholdRightTurn.java minecraft_patched\net\minecraft\src\ComponentStrongholdRightTurn.java
|
||||
--- minecraft\net\minecraft\src\ComponentStrongholdRightTurn.java Mon Dec 17 22:49:49 2012
|
||||
+++ minecraft_patched\net\minecraft\src\ComponentStrongholdRightTurn.java Mon Dec 17 22:51:37 2012
|
||||
--- minecraft\net\minecraft\src\ComponentStrongholdRightTurn.java Sat Jan 12 02:17:57 2013
|
||||
+++ minecraft_patched\net\minecraft\src\ComponentStrongholdRightTurn.java Sat Jan 12 02:24:09 2013
|
||||
@@ -11,6 +11,10 @@
|
||||
|
||||
public class ComponentStrongholdRightTurn extends ComponentStrongholdLeftTurn {
|
||||
@@ -87,8 +87,8 @@ diff -r -U 3 minecraft\net\minecraft\src\ComponentStrongholdRightTurn.java minec
|
||||
if(this.field_74885_f != 2 && this.field_74885_f != 3) {
|
||||
this.func_74989_b((ComponentStrongholdStairs2)p_74861_1_, p_74861_2_, p_74861_3_, 1, 1);
|
||||
diff -r -U 3 minecraft\net\minecraft\src\DedicatedServer.java minecraft_patched\net\minecraft\src\DedicatedServer.java
|
||||
--- minecraft\net\minecraft\src\DedicatedServer.java Mon Dec 17 22:49:49 2012
|
||||
+++ minecraft_patched\net\minecraft\src\DedicatedServer.java Mon Dec 17 22:51:37 2012
|
||||
--- minecraft\net\minecraft\src\DedicatedServer.java Sat Jan 12 02:17:57 2013
|
||||
+++ minecraft_patched\net\minecraft\src\DedicatedServer.java Sat Jan 12 02:24:09 2013
|
||||
@@ -202,7 +202,7 @@
|
||||
System.exit(0);
|
||||
}
|
||||
@@ -98,27 +98,9 @@ diff -r -U 3 minecraft\net\minecraft\src\DedicatedServer.java minecraft_patched\
|
||||
super.func_71190_q();
|
||||
this.func_71333_ah();
|
||||
}
|
||||
diff -r -U 3 minecraft\net\minecraft\src\EntityMooshroom.java minecraft_patched\net\minecraft\src\EntityMooshroom.java
|
||||
--- minecraft\net\minecraft\src\EntityMooshroom.java Mon Dec 17 22:49:50 2012
|
||||
+++ minecraft_patched\net\minecraft\src\EntityMooshroom.java Mon Dec 17 22:51:37 2012
|
||||
@@ -56,10 +56,10 @@
|
||||
return new EntityMooshroom(this.field_70170_p);
|
||||
}
|
||||
|
||||
- // $FF: synthetic method
|
||||
- public EntityCow func_70879_a(EntityAgeable p_70879_1_) {
|
||||
- return this.func_70879_a(p_70879_1_);
|
||||
- }
|
||||
+// // $FF: synthetic method
|
||||
+// public EntityCow func_70879_a(EntityAgeable p_70879_1_) {
|
||||
+// return this.func_70879_a(p_70879_1_);
|
||||
+// }
|
||||
|
||||
// $FF: synthetic method
|
||||
public EntityAgeable func_90011_a(EntityAgeable p_90011_1_) {
|
||||
diff -r -U 3 minecraft\net\minecraft\src\FontRenderer.java minecraft_patched\net\minecraft\src\FontRenderer.java
|
||||
--- minecraft\net\minecraft\src\FontRenderer.java Mon Dec 17 22:49:50 2012
|
||||
+++ minecraft_patched\net\minecraft\src\FontRenderer.java Mon Dec 17 22:51:37 2012
|
||||
--- minecraft\net\minecraft\src\FontRenderer.java Sat Jan 12 02:17:58 2013
|
||||
+++ minecraft_patched\net\minecraft\src\FontRenderer.java Sat Jan 12 02:24:09 2013
|
||||
@@ -611,8 +611,6 @@
|
||||
case 10:
|
||||
--var5;
|
||||
@@ -138,8 +120,8 @@ diff -r -U 3 minecraft\net\minecraft\src\FontRenderer.java minecraft_patched\net
|
||||
var4 += this.func_78263_a(var8);
|
||||
if(var7) {
|
||||
diff -r -U 3 minecraft\net\minecraft\src\IntegratedServer.java minecraft_patched\net\minecraft\src\IntegratedServer.java
|
||||
--- minecraft\net\minecraft\src\IntegratedServer.java Mon Dec 17 22:49:50 2012
|
||||
+++ minecraft_patched\net\minecraft\src\IntegratedServer.java Mon Dec 17 22:51:37 2012
|
||||
--- minecraft\net\minecraft\src\IntegratedServer.java Sat Jan 12 02:17:58 2013
|
||||
+++ minecraft_patched\net\minecraft\src\IntegratedServer.java Sat Jan 12 02:24:09 2013
|
||||
@@ -98,7 +98,7 @@
|
||||
return true;
|
||||
}
|
||||
@@ -150,9 +132,9 @@ diff -r -U 3 minecraft\net\minecraft\src\IntegratedServer.java minecraft_patched
|
||||
this.field_71348_o = this.field_71347_n.func_71752_f();
|
||||
if(!var1 && this.field_71348_o) {
|
||||
diff -r -U 3 minecraft\net\minecraft\src\RenderGlobal.java minecraft_patched\net\minecraft\src\RenderGlobal.java
|
||||
--- minecraft\net\minecraft\src\RenderGlobal.java Mon Dec 17 22:49:52 2012
|
||||
+++ minecraft_patched\net\minecraft\src\RenderGlobal.java Mon Dec 17 22:51:37 2012
|
||||
@@ -1447,7 +1447,7 @@
|
||||
--- minecraft\net\minecraft\src\RenderGlobal.java Sat Jan 12 02:17:59 2013
|
||||
+++ minecraft_patched\net\minecraft\src\RenderGlobal.java Sat Jan 12 02:24:09 2013
|
||||
@@ -1450,7 +1450,7 @@
|
||||
double var15 = this.field_72777_q.field_71451_h.field_70165_t - p_72726_2_;
|
||||
double var17 = this.field_72777_q.field_71451_h.field_70163_u - p_72726_4_;
|
||||
double var19 = this.field_72777_q.field_71451_h.field_70161_v - p_72726_6_;
|
||||
@@ -162,8 +144,8 @@ diff -r -U 3 minecraft\net\minecraft\src\RenderGlobal.java minecraft_patched\net
|
||||
this.field_72777_q.field_71452_i.func_78873_a(var21 = new EntityHugeExplodeFX(this.field_72769_h, p_72726_2_, p_72726_4_, p_72726_6_, p_72726_8_, p_72726_10_, p_72726_12_));
|
||||
} else if(p_72726_1_.equals("largeexplode")) {
|
||||
diff -r -U 3 minecraft\net\minecraft\src\TcpMasterThread.java minecraft_patched\net\minecraft\src\TcpMasterThread.java
|
||||
--- minecraft\net\minecraft\src\TcpMasterThread.java Mon Dec 17 22:49:52 2012
|
||||
+++ minecraft_patched\net\minecraft\src\TcpMasterThread.java Mon Dec 17 22:51:37 2012
|
||||
--- minecraft\net\minecraft\src\TcpMasterThread.java Sat Jan 12 02:18:00 2013
|
||||
+++ minecraft_patched\net\minecraft\src\TcpMasterThread.java Sat Jan 12 02:24:09 2013
|
||||
@@ -11,6 +11,7 @@
|
||||
this.field_74504_a = p_i3285_1_;
|
||||
}
|
||||
@@ -173,8 +155,8 @@ diff -r -U 3 minecraft\net\minecraft\src\TcpMasterThread.java minecraft_patched\
|
||||
try {
|
||||
Thread.sleep(5000L);
|
||||
diff -r -U 3 minecraft\net\minecraft\src\ThreadedFileIOBase.java minecraft_patched\net\minecraft\src\ThreadedFileIOBase.java
|
||||
--- minecraft\net\minecraft\src\ThreadedFileIOBase.java Mon Dec 17 22:49:52 2012
|
||||
+++ minecraft_patched\net\minecraft\src\ThreadedFileIOBase.java Mon Dec 17 22:51:37 2012
|
||||
--- minecraft\net\minecraft\src\ThreadedFileIOBase.java Sat Jan 12 02:18:00 2013
|
||||
+++ minecraft_patched\net\minecraft\src\ThreadedFileIOBase.java Sat Jan 12 02:24:09 2013
|
||||
@@ -20,7 +20,8 @@
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
diff -r -U 3 minecraft_server\net\minecraft\src\CallableSuspiciousClasses.java minecraft_server_patched\net\minecraft\src\CallableSuspiciousClasses.java
|
||||
--- minecraft_server\net\minecraft\src\CallableSuspiciousClasses.java Mon Dec 17 22:50:59 2012
|
||||
+++ minecraft_server_patched\net\minecraft\src\CallableSuspiciousClasses.java Mon Dec 17 22:52:18 2012
|
||||
--- minecraft_server\net\minecraft\src\CallableSuspiciousClasses.java Sat Jan 12 02:19:06 2013
|
||||
+++ minecraft_server_patched\net\minecraft\src\CallableSuspiciousClasses.java Sat Jan 12 02:24:29 2013
|
||||
@@ -21,9 +21,14 @@
|
||||
|
||||
public String func_85085_a() {
|
||||
@@ -20,8 +20,8 @@ diff -r -U 3 minecraft_server\net\minecraft\src\CallableSuspiciousClasses.java m
|
||||
boolean var5 = !CrashReport.class.getCanonicalName().equals("net.minecraft.CrashReport");
|
||||
HashMap var6 = new HashMap();
|
||||
diff -r -U 3 minecraft_server\net\minecraft\src\ComponentStrongholdRightTurn.java minecraft_server_patched\net\minecraft\src\ComponentStrongholdRightTurn.java
|
||||
--- minecraft_server\net\minecraft\src\ComponentStrongholdRightTurn.java Mon Dec 17 22:50:59 2012
|
||||
+++ minecraft_server_patched\net\minecraft\src\ComponentStrongholdRightTurn.java Mon Dec 17 22:52:18 2012
|
||||
--- minecraft_server\net\minecraft\src\ComponentStrongholdRightTurn.java Sat Jan 12 02:19:06 2013
|
||||
+++ minecraft_server_patched\net\minecraft\src\ComponentStrongholdRightTurn.java Sat Jan 12 02:24:29 2013
|
||||
@@ -11,6 +11,10 @@
|
||||
|
||||
public class ComponentStrongholdRightTurn extends ComponentStrongholdLeftTurn {
|
||||
@@ -34,8 +34,8 @@ diff -r -U 3 minecraft_server\net\minecraft\src\ComponentStrongholdRightTurn.jav
|
||||
if(this.field_74885_f != 2 && this.field_74885_f != 3) {
|
||||
this.func_74989_b((ComponentStrongholdStairs2)p_74861_1_, p_74861_2_, p_74861_3_, 1, 1);
|
||||
diff -r -U 3 minecraft_server\net\minecraft\src\DedicatedServer.java minecraft_server_patched\net\minecraft\src\DedicatedServer.java
|
||||
--- minecraft_server\net\minecraft\src\DedicatedServer.java Mon Dec 17 22:50:59 2012
|
||||
+++ minecraft_server_patched\net\minecraft\src\DedicatedServer.java Mon Dec 17 22:52:18 2012
|
||||
--- minecraft_server\net\minecraft\src\DedicatedServer.java Sat Jan 12 02:19:06 2013
|
||||
+++ minecraft_server_patched\net\minecraft\src\DedicatedServer.java Sat Jan 12 02:24:29 2013
|
||||
@@ -203,7 +203,7 @@
|
||||
System.exit(0);
|
||||
}
|
||||
@@ -45,27 +45,9 @@ diff -r -U 3 minecraft_server\net\minecraft\src\DedicatedServer.java minecraft_s
|
||||
super.func_71190_q();
|
||||
this.func_71333_ah();
|
||||
}
|
||||
diff -r -U 3 minecraft_server\net\minecraft\src\EntityMooshroom.java minecraft_server_patched\net\minecraft\src\EntityMooshroom.java
|
||||
--- minecraft_server\net\minecraft\src\EntityMooshroom.java Mon Dec 17 22:51:00 2012
|
||||
+++ minecraft_server_patched\net\minecraft\src\EntityMooshroom.java Mon Dec 17 22:52:18 2012
|
||||
@@ -56,10 +56,10 @@
|
||||
return new EntityMooshroom(this.field_70170_p);
|
||||
}
|
||||
|
||||
- // $FF: synthetic method
|
||||
- public EntityCow func_70879_a(EntityAgeable p_70879_1_) {
|
||||
- return this.func_70879_a(p_70879_1_);
|
||||
- }
|
||||
+// // $FF: synthetic method
|
||||
+// public EntityCow func_70879_a(EntityAgeable p_70879_1_) {
|
||||
+// return this.func_70879_a(p_70879_1_);
|
||||
+// }
|
||||
|
||||
// $FF: synthetic method
|
||||
public EntityAgeable func_90011_a(EntityAgeable p_90011_1_) {
|
||||
diff -r -U 3 minecraft_server\net\minecraft\src\TcpMasterThread.java minecraft_server_patched\net\minecraft\src\TcpMasterThread.java
|
||||
--- minecraft_server\net\minecraft\src\TcpMasterThread.java Mon Dec 17 22:51:01 2012
|
||||
+++ minecraft_server_patched\net\minecraft\src\TcpMasterThread.java Mon Dec 17 22:52:18 2012
|
||||
--- minecraft_server\net\minecraft\src\TcpMasterThread.java Sat Jan 12 02:19:08 2013
|
||||
+++ minecraft_server_patched\net\minecraft\src\TcpMasterThread.java Sat Jan 12 02:24:29 2013
|
||||
@@ -11,6 +11,7 @@
|
||||
this.field_74504_a = p_i3285_1_;
|
||||
}
|
||||
@@ -75,8 +57,8 @@ diff -r -U 3 minecraft_server\net\minecraft\src\TcpMasterThread.java minecraft_s
|
||||
try {
|
||||
Thread.sleep(5000L);
|
||||
diff -r -U 3 minecraft_server\net\minecraft\src\ThreadedFileIOBase.java minecraft_server_patched\net\minecraft\src\ThreadedFileIOBase.java
|
||||
--- minecraft_server\net\minecraft\src\ThreadedFileIOBase.java Mon Dec 17 22:51:01 2012
|
||||
+++ minecraft_server_patched\net\minecraft\src\ThreadedFileIOBase.java Mon Dec 17 22:52:18 2012
|
||||
--- minecraft_server\net\minecraft\src\ThreadedFileIOBase.java Sat Jan 12 02:19:08 2013
|
||||
+++ minecraft_server_patched\net\minecraft\src\ThreadedFileIOBase.java Sat Jan 12 02:24:29 2013
|
||||
@@ -20,7 +20,8 @@
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
[VERSION]
|
||||
MCPVersion = 7.25
|
||||
ClientVersion = 1.4.6
|
||||
ServerVersion = 1.4.6
|
||||
MCPVersion = 7.30
|
||||
ClientVersion = 13w02b
|
||||
ServerVersion = 13w02b
|
||||
Binary file not shown.
@@ -38,8 +38,6 @@ def write_changed(fh, pre, post, name):
|
||||
if clazz.startswith("net/minecraft/src/"):
|
||||
clazz=clazz[len("net/minecraft/src/"):]
|
||||
fh.write("%s/%s.class\n" %(name,clazz))
|
||||
fh.write("%s/cpw/mods/fml/common/asm/SideOnly.class\n" % name)
|
||||
fh.write("%s/cpw/mods/fml/common/Side.class\n" % name)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
+8
-4
@@ -190,6 +190,7 @@ def reset_logger():
|
||||
|
||||
count = 0
|
||||
def cleanup_source(path):
|
||||
from rename_vars import rename_class
|
||||
path = os.path.normpath(path)
|
||||
regex_cases_before = re.compile(r'((case|default).+\r?\n)\r?\n', re.MULTILINE) #Fixes newline after case before case body
|
||||
regex_cases_after = re.compile(r'\r?\n(\r?\n[ \t]+(case|default))', re.MULTILINE) #Fixes newline after case body before new case
|
||||
@@ -205,10 +206,13 @@ def cleanup_source(path):
|
||||
global count
|
||||
count += 1
|
||||
return match.group(1)
|
||||
|
||||
|
||||
buf = regex_cases_before.sub(fix_cases, buf)
|
||||
buf = regex_cases_after.sub(fix_cases, buf)
|
||||
if count > 0:
|
||||
old = buf.replace('\r', '')
|
||||
buf = rename_class(old, MCP=True)
|
||||
|
||||
if count > 0 or buf != old:
|
||||
with open(tmp_file, 'w') as fh:
|
||||
fh.write(buf)
|
||||
shutil.move(tmp_file, src_file)
|
||||
@@ -268,14 +272,14 @@ def setup_fml(fml_dir, mcp_dir):
|
||||
sys.exit(1)
|
||||
|
||||
self.logger.info('> Running MCPMerger')
|
||||
forkcmd = ('%s -classpath "{classpath}" cpw.mods.fml.common.asm.transformers.MCPMerger "{mergecfg}" "{client}" "{server}"' % self.cmdjava).format(
|
||||
forkcmd = ('"%s" -classpath "{classpath}" cpw.mods.fml.common.asm.transformers.MCPMerger "{mergecfg}" "{client}" "{server}"' % self.cmdjava).format(
|
||||
classpath=class_path, mergecfg=os.path.join(fml_dir, 'mcp_merge.cfg'), client=jars[CLIENT], server=jars[SERVER])
|
||||
|
||||
if not runcmd(self, forkcmd):
|
||||
sys.exit(1)
|
||||
|
||||
self.logger.info('> Running AccessTransformer')
|
||||
forkcmd = ('%s -classpath "{classpath}" cpw.mods.fml.common.asm.transformers.AccessTransformer "{jar}" "{fmlconfig}"' % self.cmdjava).format(
|
||||
forkcmd = ('"%s" -classpath "{classpath}" cpw.mods.fml.common.asm.transformers.AccessTransformer "{jar}" "{fmlconfig}"' % self.cmdjava).format(
|
||||
classpath=class_path, jar=jars[side], fmlconfig=os.path.join(fml_dir, 'common', 'fml_at.cfg'))
|
||||
|
||||
forge_cfg = os.path.join(fml_dir, '..', 'common', 'forge_at.cfg')
|
||||
|
||||
@@ -0,0 +1,167 @@
|
||||
import os, os.path, sys, csv, re, fnmatch, shutil, zipfile, pprint
|
||||
from optparse import OptionParser
|
||||
from pprint import pprint
|
||||
|
||||
#This script attempts to rename local variables in a Fernflower decompiled Java source file to jad style names.
|
||||
#Script originally written by Grum in perl, Converted to Python by monoxide, and bug fixes/cleanup by LexManos
|
||||
|
||||
class VarNamer:
|
||||
# Seems this is needed to keep these variables confined to the instance
|
||||
def __init__(self):
|
||||
self.last = {
|
||||
'byte': [0, 0, ['b']],
|
||||
'char': [0, 0, ['c']],
|
||||
'short': [1, 0, ['short']],
|
||||
'int': [0, 1, ['i', 'j', 'k', 'l']],
|
||||
'boolean': [0, 1, ['flag']],
|
||||
'double': [0, 0, ['d']],
|
||||
'float': [0, 1, ['f']],
|
||||
'File': [1, 1, ['file']],
|
||||
'String': [0, 1, ['s']],
|
||||
'Class': [0, 1, ['oclass']],
|
||||
'Long': [0, 1, ['olong']],
|
||||
'Byte': [0, 1, ['obyte']],
|
||||
'Short': [0, 1, ['oshort']],
|
||||
'Boolean': [0, 1, ['obool']],
|
||||
'Package': [0, 1, ['opackage']]
|
||||
}
|
||||
self.remap = {
|
||||
'long': 'int',
|
||||
}
|
||||
|
||||
def get_name(self, type, var):
|
||||
index = type if self.last.has_key(type) else (self.remap[type] if self.remap.has_key(type) else None)
|
||||
if (not index) and (re.search('^[A-Z]', type) or re.search(r'(\[|\.\.\.)', type)):
|
||||
type = type.replace('...', '[]')
|
||||
while type.find('[][]') != -1:
|
||||
type = type.replace('[][]', '[]')
|
||||
|
||||
name = type.lower()
|
||||
skip = 1
|
||||
|
||||
if re.search(r'\[', type):
|
||||
skip = 1
|
||||
name = "a" + name
|
||||
name = name.replace('[', '').replace(']', '').replace('...', '')
|
||||
|
||||
self.last[type] = [0, skip, [name]]
|
||||
index = type
|
||||
|
||||
if not index:
|
||||
print "No data for type: %s '%s'\n" % (type, var)
|
||||
return type
|
||||
|
||||
id = self.last[index][0]
|
||||
skip_zero = self.last[index][1]
|
||||
data = self.last[index][2]
|
||||
self.last[index][0] += 1
|
||||
|
||||
amount = len(data)
|
||||
|
||||
if amount == 1:
|
||||
return data[0] + ('' if ((not id) and skip_zero) else ('%d' % id))
|
||||
else:
|
||||
num = id / amount
|
||||
return data[id % amount] + ('' if ((not num) and skip_zero) else ('%d' % num))
|
||||
|
||||
def rename_file(file, indent='3', MCP=False):
|
||||
tmp = file + '.tmp'
|
||||
with open(file, 'rb') as in_file:
|
||||
data = rename_class(in_file.read().replace('\r', ''), indent, MCP)
|
||||
with open(tmp, 'wb') as out_file:
|
||||
out_file.write(data)
|
||||
shutil.move(tmp, file)
|
||||
|
||||
def rename_class(data, indent='3', MCP=False):
|
||||
METHOD_REG = r'^ {%s}(\w+\s+\S.*\.*(|static )(?:\{|\);|})$' % indent
|
||||
CATCH_REG = r'catch \((.*)\) {'
|
||||
if MCP:
|
||||
if indent == '3':
|
||||
indent = '4'
|
||||
METHOD_REG = r'^ {%s}(\w+\s+\S.*\(.*|static)$' % indent
|
||||
CATCH_REG = r'catch \((.*)\)$'
|
||||
|
||||
lines = data.split('\n')
|
||||
output = ''
|
||||
|
||||
inside_method = False
|
||||
method = ''
|
||||
method_variables = []
|
||||
skip = False
|
||||
|
||||
for line in lines:
|
||||
line += '\n'
|
||||
if re.search(METHOD_REG, line) and not re.search('=', line) and not re.search(r'\(.*\(', line):
|
||||
if re.search(r'\(.+\)', line):
|
||||
method_variables += [s.strip() for s in re.search(r'\((.+)\)', line).group(1).split(',')]
|
||||
|
||||
method += line
|
||||
|
||||
# Could be a single-line method
|
||||
skip = True
|
||||
if not re.search(r'(}|\);|throws .+?;)$', line):
|
||||
inside_method = True
|
||||
|
||||
elif re.search(r'^ {%s}}$' % indent, line):
|
||||
inside_method = False
|
||||
|
||||
if inside_method:
|
||||
if skip:
|
||||
skip = False
|
||||
continue
|
||||
|
||||
method += line
|
||||
|
||||
m = re.search(CATCH_REG, line)
|
||||
if m:
|
||||
method_variables += [m.group(1)]
|
||||
else:
|
||||
method_variables += map(lambda x: x.group(0), filter(
|
||||
lambda x: not re.match(r'^(return)', x.group(0)) and not re.match(r'^(throw)', x.group(0)),
|
||||
re.finditer(r'([a-z_$][a-z0-9_\[\]]+ var\d+)', line, re.I)))
|
||||
|
||||
else:
|
||||
if method:
|
||||
namer = VarNamer()
|
||||
todo = map(lambda x: [x, namer.get_name(x.split(' ')[0], x)], method_variables)
|
||||
|
||||
todo.reverse()
|
||||
for mapping in todo:
|
||||
if not ' ' in mapping[0]:
|
||||
continue
|
||||
original = mapping[0].split(' ')[1]
|
||||
to = mapping[1]
|
||||
|
||||
#Don't rename already renamed things.
|
||||
if not re.match('var\d+', original):
|
||||
continue
|
||||
|
||||
method = method.replace(original, to)
|
||||
|
||||
output += method
|
||||
|
||||
method = ''
|
||||
method_variables = []
|
||||
|
||||
if skip:
|
||||
skip = False
|
||||
continue
|
||||
|
||||
output += line
|
||||
|
||||
return output[:-1]
|
||||
|
||||
def main(options, args):
|
||||
for arg in args:
|
||||
for path, _, filelist in os.walk(arg, followlinks=True):
|
||||
for cur_file in fnmatch.filter(filelist, '*.java'):
|
||||
file = os.path.normpath(os.path.join(path, cur_file))
|
||||
rename_file(file, options.indent, options.mcp)
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = OptionParser()
|
||||
parser.add_option('-m', '--mcp', action='store_true', dest='mcp', help='Use MCP regexs', default=False)
|
||||
parser.add_option('-i', '--indent', action='store', dest='indent', help='Custom indent to use', default='3')
|
||||
options, args = parser.parse_args()
|
||||
|
||||
main(options, args)
|
||||
@@ -0,0 +1,90 @@
|
||||
import os, os.path, sys, csv, re, fnmatch, shutil, zipfile, pprint
|
||||
from optparse import OptionParser
|
||||
from zipfile import ZipFile
|
||||
from subprocess import Popen, PIPE, STDOUT
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = OptionParser()
|
||||
parser.add_option('-j', '--jar', action='store', dest='jar', help='Jar to sign', default=None)
|
||||
parser.add_option('-c', '--command', action='store', dest='command', help='Path to jar signer command, will be invoked on temp jar to sign', default=None)
|
||||
parser.add_option('-a', '--alias', action='store', dest='alias', help='Optional: The keystore alias to use when siging the jar, it will be passed in as para 2 to the command', default='')
|
||||
#This is kept as a seperate file so that if you integrate this into a build system, you are not publically displaying any private passwords
|
||||
#Typically the format of this file will be:
|
||||
#
|
||||
#jarsigner -keystore my_key_store -storepass key_store_pass -keypass key_pass %1 alias
|
||||
|
||||
#The rest of the parameters are used as regxs to determine what parts of the file will be signed, a file will be signed if it matches ANY of the regexs
|
||||
options, args = parser.parse_args()
|
||||
|
||||
if options.jar is None:
|
||||
print 'You must supply the jar to sign using --jar <jar>'
|
||||
sys.exit(1)
|
||||
|
||||
if options.command is None:
|
||||
print 'You must supply a command to be called using --command <command>, See the comments in the python for details on this'
|
||||
sys.exit(1)
|
||||
|
||||
if not os.path.isfile(options.jar):
|
||||
print 'The specified jar "%s" could not be found' % options.jar
|
||||
sys.exit(1)
|
||||
|
||||
regs = []
|
||||
for reg in args:
|
||||
regs.append(re.compile(reg))
|
||||
|
||||
shutil.copy(options.jar, options.jar + '.bak')
|
||||
tmp_1 = options.jar + '.tmp1'
|
||||
tmp_2 = options.jar + '.tmp2'
|
||||
|
||||
zip_in = ZipFile(options.jar, mode='r')
|
||||
zip_tmp_1 = ZipFile(tmp_1, mode='w')
|
||||
zip_tmp_2 = ZipFile(tmp_2, mode='w')
|
||||
for i in zip_in.filelist:
|
||||
matched = False
|
||||
for reg in regs:
|
||||
if not reg.match(i.filename) is None:
|
||||
matched = True
|
||||
break
|
||||
|
||||
data = zip_in.read(i.filename)
|
||||
if matched:
|
||||
print 'Matched: ' + i.filename
|
||||
zip_tmp_1.writestr(i, data)
|
||||
else:
|
||||
if i.filename.startswith('META-INF'):
|
||||
print 'Detected skipped META-INF File, it will not be copied to new jar, if you wish to keep this data, include it in the signed info: %s' % i.filename
|
||||
else:
|
||||
print 'Skipped: ' + i.filename
|
||||
zip_tmp_2.writestr(i, data)
|
||||
|
||||
zip_in.close()
|
||||
zip_tmp_1.close()
|
||||
zip_tmp_2.close()
|
||||
|
||||
try:
|
||||
process = Popen([options.command, os.path.abspath(tmp_1), options.alias], stdout=PIPE, stderr=STDOUT, bufsize=-1)
|
||||
out, _ = process.communicate()
|
||||
print out
|
||||
except OSError as e:
|
||||
print "Error creating signed tmp jar: %s" % e.strerror
|
||||
sys.exit(1)
|
||||
|
||||
os.remove(options.jar)
|
||||
|
||||
zip_out = ZipFile(options.jar, mode='w')
|
||||
|
||||
for tmp in [tmp_1, tmp_2]:
|
||||
zip_in = ZipFile(tmp, mode='r')
|
||||
|
||||
for i in zip_in.filelist:
|
||||
zip_out.writestr(i, zip_in.read(i.filename))
|
||||
|
||||
zip_in.close()
|
||||
|
||||
zip_out.close()
|
||||
|
||||
os.remove(tmp_1)
|
||||
os.remove(tmp_2)
|
||||
|
||||
print 'Signing jar complete'
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
import os, os.path, sys, csv, re, fnmatch, shutil
|
||||
from optparse import OptionParser
|
||||
|
||||
replaced = 0
|
||||
|
||||
def main(mcp_dir, targets):
|
||||
global replaced
|
||||
packages_csv = os.path.join(mcp_dir, 'conf', 'packages.csv')
|
||||
|
||||
if not os.path.isfile(packages_csv):
|
||||
print 'Could not find Packages.csv, please specify a location of a MCP directory setup with FML using --mcp-dir <path>'
|
||||
sys.exit(1)
|
||||
|
||||
pkgs = {}
|
||||
with open(packages_csv) as fh:
|
||||
reader = csv.DictReader(fh)
|
||||
for line in reader:
|
||||
pkgs[line['class']] = line['package']
|
||||
|
||||
if len(targets) == 0:
|
||||
print 'You must specify atleast one target directory to repackage'
|
||||
sys.exit(1)
|
||||
|
||||
regnms = re.compile(r'net.minecraft.src.(\w+)')
|
||||
total_r = 0
|
||||
total_f = 0
|
||||
|
||||
for target in targets:
|
||||
for path, _, filelist in os.walk(target, followlinks=True):
|
||||
for cur_file in fnmatch.filter(filelist, '*.java'):
|
||||
file_name = os.path.join(path, cur_file)
|
||||
buf = ''
|
||||
replaced = 0
|
||||
|
||||
with open(file_name, 'rb') as fh:
|
||||
data = fh.read()
|
||||
def mapname(match):
|
||||
global replaced
|
||||
cls = match.group(0)
|
||||
tmp = cls[18:]
|
||||
if tmp in pkgs.keys():
|
||||
replaced += 1
|
||||
return ('%s/%s' % (pkgs[tmp], tmp)).replace('/', '.')
|
||||
return cls
|
||||
data = regnms.sub(mapname, data)
|
||||
|
||||
if replaced > 0:
|
||||
total_r += replaced
|
||||
total_f += 1
|
||||
|
||||
print '%s: %d' % (os.path.relpath(file_name), replaced)
|
||||
|
||||
with open(file_name + '.tmp', 'wb') as fh:
|
||||
fh.write(data)
|
||||
shutil.move(file_name + '.tmp', file_name)
|
||||
|
||||
print 'Fixed %d references in %d files' % (total_r, total_f)
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = OptionParser()
|
||||
parser.add_option('-m', '--mcp-dir', action='store', dest='mcp_dir', help='MCP Directory', default='mcp')
|
||||
options, args = parser.parse_args()
|
||||
|
||||
main(os.path.abspath(options.mcp_dir), args)
|
||||
+21
-3
@@ -1,5 +1,5 @@
|
||||
[default]
|
||||
current_ver = 1.4.6
|
||||
current_ver = s13w02b
|
||||
base_url = http://s3.amazonaws.com/MinecraftDownload/
|
||||
libraries = lwjgl.jar lwjgl_util.jar jinput.jar
|
||||
natives = windows_natives.jar macosx_natives.jar linux_natives.jar
|
||||
@@ -28,6 +28,24 @@ server_url = http://assets.minecraft.net/1_4_6/minecraft_server.jar
|
||||
client_md5 = 48677dc4c2b98c29918722b5ab27b4fd
|
||||
server_md5 = b0700fa969dbf0ff085082cde87384d2
|
||||
mcp_ver = 7.25
|
||||
mcp_url = http://files.minecraftforge.net/mcpmirror/mcp725pre1.zip
|
||||
mcp_md5 = d33dadec14762196ecaa17d74462d90e
|
||||
mcp_url = http://mcp.ocean-labs.de/files/archive/mcp725.zip
|
||||
mcp_md5 = a7276589fca4974d40eb4e27ba41ba16
|
||||
|
||||
[1.4.7]
|
||||
client_url = http://assets.minecraft.net/1_4_7/minecraft.jar
|
||||
server_url = http://assets.minecraft.net/1_4_7/minecraft_server.jar
|
||||
client_md5 = 8e80fb01b321c6b3c7efca397a3eea35
|
||||
server_md5 = f69ac4bfce2dfbce03fe872518f75a05
|
||||
mcp_ver = 7.26
|
||||
mcp_url = http://mcp.ocean-labs.de/files/archive/mcp726.zip
|
||||
mcp_md5 = 5320353829c2906bd032649085721d1d
|
||||
|
||||
[s13w02b]
|
||||
client_url = http://assets.minecraft.net/13w02b/minecraft.jar
|
||||
server_url = http://assets.minecraft.net/13w02b/minecraft_server.jar
|
||||
client_md5 = 13891f6610b6739ac79f40147cca31d5
|
||||
server_md5 = b2200cfa5d6535f177d291066d2ed3a8
|
||||
mcp_ver = 7.30
|
||||
mcp_url = http://files.minecraftforge.net/mcpmirror/mcp730.zip
|
||||
mcp_md5 = d89c2cd4db5cfafe4049c082c1d3349c
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
!ber #net/minecraft/src/CodecMus
|
||||
!bfv #net/minecraft/src/CodecMus
|
||||
@@ -1,20 +0,0 @@
|
||||
--- ../src-base/common/net/minecraft/src/Item.java
|
||||
+++ ../src-work/common/net/minecraft/src/Item.java
|
||||
@@ -2,6 +2,9 @@
|
||||
|
||||
import cpw.mods.fml.common.Side;
|
||||
import cpw.mods.fml.common.asm.SideOnly;
|
||||
+import cpw.mods.fml.common.registry.GameData;
|
||||
+import cpw.mods.fml.common.registry.GameRegistry;
|
||||
+
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
@@ -187,6 +190,7 @@
|
||||
}
|
||||
|
||||
field_77698_e[256 + p_i3659_1_] = this;
|
||||
+ GameData.newItemAdded(this);
|
||||
}
|
||||
|
||||
public Item func_77665_c(int p_77665_1_)
|
||||
@@ -12,7 +12,7 @@
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.awt.BorderLayout;
|
||||
@@ -120,6 +126,8 @@
|
||||
@@ -114,6 +120,8 @@
|
||||
import org.lwjgl.opengl.PixelFormat;
|
||||
import org.lwjgl.util.glu.GLU;
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
@SideOnly(Side.CLIENT)
|
||||
public abstract class Minecraft implements Runnable, IPlayerUsage
|
||||
{
|
||||
@@ -302,6 +310,8 @@
|
||||
@@ -296,6 +304,8 @@
|
||||
this.field_71466_p = new FontRenderer(this.field_71474_y, "/font/default.png", this.field_71446_o, false);
|
||||
this.field_71464_q = new FontRenderer(this.field_71474_y, "/font/alternate.png", this.field_71446_o, false);
|
||||
|
||||
@@ -29,8 +29,8 @@
|
||||
+
|
||||
if (this.field_71474_y.field_74363_ab != null)
|
||||
{
|
||||
StringTranslate.func_74808_a().func_74810_a(this.field_71474_y.field_74363_ab);
|
||||
@@ -346,6 +356,8 @@
|
||||
StringTranslate.func_74808_a().func_74810_a(this.field_71474_y.field_74363_ab, false);
|
||||
@@ -332,6 +342,8 @@
|
||||
GL11.glViewport(0, 0, this.field_71443_c, this.field_71440_d);
|
||||
this.field_71452_i = new EffectRenderer(this.field_71441_e, this.field_71446_o);
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
try
|
||||
{
|
||||
this.field_71430_V = new ThreadDownloadResources(this.field_71412_D, this);
|
||||
@@ -374,6 +386,8 @@
|
||||
@@ -360,6 +372,8 @@
|
||||
{
|
||||
this.func_71352_k();
|
||||
}
|
||||
@@ -48,7 +48,7 @@
|
||||
}
|
||||
|
||||
private void func_71357_I() throws LWJGLException
|
||||
@@ -738,9 +752,11 @@
|
||||
@@ -724,9 +738,11 @@
|
||||
|
||||
if (!this.field_71454_w)
|
||||
{
|
||||
@@ -60,7 +60,7 @@
|
||||
}
|
||||
|
||||
GL11.glFlush();
|
||||
@@ -1270,10 +1286,14 @@
|
||||
@@ -1256,10 +1272,14 @@
|
||||
|
||||
public void func_71407_l()
|
||||
{
|
||||
@@ -75,7 +75,7 @@
|
||||
|
||||
this.field_71424_I.func_76320_a("stats");
|
||||
this.field_71413_E.func_77449_e();
|
||||
@@ -1730,6 +1750,8 @@
|
||||
@@ -1717,6 +1737,8 @@
|
||||
this.field_71453_ak.func_74428_b();
|
||||
}
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
this.field_71424_I.func_76319_b();
|
||||
this.field_71423_H = func_71386_F();
|
||||
}
|
||||
@@ -1768,8 +1790,27 @@
|
||||
@@ -1755,8 +1777,27 @@
|
||||
}
|
||||
|
||||
this.field_71413_E.func_77450_a(StatList.field_75936_f, 1);
|
||||
@@ -112,7 +112,7 @@
|
||||
this.field_71455_al = true;
|
||||
this.field_71461_s.func_73720_a(StatCollector.func_74838_a("menu.loadingLevel"));
|
||||
|
||||
@@ -1984,6 +2025,12 @@
|
||||
@@ -1978,6 +2019,12 @@
|
||||
|
||||
public static void main(String[] p_main_0_)
|
||||
{
|
||||
@@ -122,6 +122,6 @@
|
||||
+ public static void fmlReentry(ArgsWrapper wrapper)
|
||||
+ {
|
||||
+ String[] p_main_0_ = wrapper.args;
|
||||
HashMap var1 = new HashMap();
|
||||
boolean var2 = false;
|
||||
boolean var3 = true;
|
||||
HashMap hashmap = new HashMap();
|
||||
boolean flag = false;
|
||||
boolean flag1 = true;
|
||||
@@ -18,7 +18,7 @@
|
||||
+ public void fmlInitReentry()
|
||||
{
|
||||
this.field_71483_a = new CanvasMinecraftApplet(this);
|
||||
boolean var1 = "true".equalsIgnoreCase(this.getParameter("fullscreen"));
|
||||
boolean flag = "true".equalsIgnoreCase(this.getParameter("fullscreen"));
|
||||
@@ -62,6 +68,11 @@
|
||||
|
||||
public void start()
|
||||
|
||||
@@ -6,6 +6,6 @@
|
||||
|
||||
+ WorldType.field_77139_a[this.field_73916_E].onGUICreateWorldPress();
|
||||
+
|
||||
EnumGameType var8 = EnumGameType.func_77142_a(this.field_73927_m);
|
||||
WorldSettings var6 = new WorldSettings(var2, var8, this.field_73925_n, this.field_73933_r, WorldType.field_77139_a[this.field_73916_E]);
|
||||
var6.func_82750_a(this.field_82290_a);
|
||||
EnumGameType enumgametype = EnumGameType.func_77142_a(this.field_73927_m);
|
||||
WorldSettings worldsettings = new WorldSettings(i, enumgametype, this.field_73925_n, this.field_73933_r, WorldType.field_77139_a[this.field_73916_E]);
|
||||
worldsettings.func_82750_a(this.field_82290_a);
|
||||
@@ -27,12 +27,12 @@
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class GuiMainMenu extends GuiScreen
|
||||
@@ -140,7 +146,8 @@
|
||||
this.func_73969_a(var4, 24, var2);
|
||||
this.func_73969_a(i, 24, stringtranslate);
|
||||
}
|
||||
|
||||
- this.field_73887_h.add(new GuiButton(3, this.field_73880_f / 2 - 100, var4 + 48, var2.func_74805_b("menu.mods")));
|
||||
+ this.field_73887_h.add(new GuiButton(3, this.field_73880_f / 2 - 100, var4 + 48, 98, 20, var2.func_74805_b("menu.mods")));
|
||||
+ this.field_73887_h.add(new GuiButton(6, this.field_73880_f / 2 + 2, var4 + 48, 98, 20, "Mods"));
|
||||
- this.field_73887_h.add(new GuiButton(3, this.field_73880_f / 2 - 100, i + 48, stringtranslate.func_74805_b("menu.mods")));
|
||||
+ this.field_73887_h.add(new GuiButton(3, this.field_73880_f / 2 - 100, i + 48, 98, 20, stringtranslate.func_74805_b("menu.mods")));
|
||||
+ this.field_73887_h.add(new GuiButton(6, this.field_73880_f / 2 + 2, i + 48, 98, 20, "Mods"));
|
||||
|
||||
if (this.field_73882_e.field_71448_m)
|
||||
{
|
||||
@@ -49,10 +49,10 @@
|
||||
|
||||
if (p_73875_1_.field_73741_f == 11)
|
||||
@@ -460,7 +472,16 @@
|
||||
var9 = var9 + " Demo";
|
||||
s = s + " Demo";
|
||||
}
|
||||
|
||||
- this.func_73731_b(this.field_73886_k, var9, 2, this.field_73881_g - 10, 16777215);
|
||||
- this.func_73731_b(this.field_73886_k, s, 2, this.field_73881_g - 10, 16777215);
|
||||
+ List<String> brandings = Lists.reverse(FMLCommonHandler.instance().getBrandings());
|
||||
+ for (int i = 0; i < brandings.size(); i++)
|
||||
+ {
|
||||
@@ -63,6 +63,6 @@
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
String var10 = "Copyright Mojang AB. Do not distribute!";
|
||||
this.func_73731_b(this.field_73886_k, var10, this.field_73880_f - this.field_73886_k.func_78256_a(var10) - 2, this.field_73881_g - 10, 16777215);
|
||||
String s1 = "Copyright Mojang AB. Do not distribute!";
|
||||
this.func_73731_b(this.field_73886_k, s1, this.field_73880_f - this.field_73886_k.func_78256_a(s1) - 2, this.field_73881_g - 10, 16777215);
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.io.BufferedReader;
|
||||
@@ -174,11 +175,14 @@
|
||||
@@ -175,11 +176,14 @@
|
||||
public int field_72556_d = 20;
|
||||
Random field_72557_e = new Random();
|
||||
|
||||
@@ -16,13 +16,13 @@
|
||||
public NetClientHandler(Minecraft p_i3103_1_, String p_i3103_2_, int p_i3103_3_) throws IOException
|
||||
{
|
||||
this.field_72563_h = p_i3103_1_;
|
||||
Socket var4 = new Socket(InetAddress.getByName(p_i3103_2_), p_i3103_3_);
|
||||
this.field_72555_g = new TcpConnection(var4, "Client", this);
|
||||
Socket socket = new Socket(InetAddress.getByName(p_i3103_2_), p_i3103_3_);
|
||||
this.field_72555_g = new TcpConnection(socket, "Client", this);
|
||||
+ FMLNetworkHandler.onClientConnectionToRemoteServer(this, p_i3103_2_, p_i3103_3_, this.field_72555_g);
|
||||
}
|
||||
|
||||
public NetClientHandler(Minecraft p_i3104_1_, IntegratedServer p_i3104_2_) throws IOException
|
||||
@@ -186,6 +190,7 @@
|
||||
@@ -187,6 +191,7 @@
|
||||
this.field_72563_h = p_i3104_1_;
|
||||
this.field_72555_g = new MemoryConnection(this);
|
||||
p_i3104_2_.func_71343_a().func_71754_a((MemoryConnection)this.field_72555_g, p_i3104_1_.field_71449_j.field_74286_b);
|
||||
@@ -30,7 +30,7 @@
|
||||
}
|
||||
|
||||
public void func_72547_c()
|
||||
@@ -256,6 +261,7 @@
|
||||
@@ -257,6 +262,7 @@
|
||||
|
||||
public void func_72513_a(Packet252SharedKey p_72513_1_)
|
||||
{
|
||||
@@ -38,7 +38,7 @@
|
||||
this.func_72552_c(new Packet205ClientCommand(0));
|
||||
}
|
||||
|
||||
@@ -271,6 +277,7 @@
|
||||
@@ -272,6 +278,7 @@
|
||||
this.field_72563_h.field_71439_g.field_70157_k = p_72455_1_.field_73561_a;
|
||||
this.field_72556_d = p_72455_1_.field_73562_h;
|
||||
this.field_72563_h.field_71442_b.func_78746_a(p_72455_1_.field_73557_d);
|
||||
@@ -46,15 +46,23 @@
|
||||
this.field_72563_h.field_71474_y.func_82879_c();
|
||||
}
|
||||
|
||||
@@ -750,6 +757,7 @@
|
||||
@@ -704,6 +711,7 @@
|
||||
{
|
||||
this.field_72555_g.func_74429_a(p_72546_1_);
|
||||
this.field_72555_g.func_74423_d();
|
||||
+ FMLNetworkHandler.onConnectionClosed(this.field_72555_g, this.getPlayer());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -743,6 +751,7 @@
|
||||
|
||||
public void func_72481_a(Packet3Chat p_72481_1_)
|
||||
{
|
||||
+ FMLNetworkHandler.onConnectionClosed(this.field_72555_g, this.getPlayer());
|
||||
+ p_72481_1_ = FMLNetworkHandler.handleChatMessage(this, p_72481_1_);
|
||||
this.field_72563_h.field_71456_v.func_73827_b().func_73765_a(p_72481_1_.field_73476_b);
|
||||
}
|
||||
|
||||
@@ -1243,6 +1251,11 @@
|
||||
@@ -1268,6 +1277,11 @@
|
||||
|
||||
public void func_72494_a(Packet131MapData p_72494_1_)
|
||||
{
|
||||
@@ -66,7 +74,7 @@
|
||||
if (p_72494_1_.field_73438_a == Item.field_77744_bd.field_77779_bT)
|
||||
{
|
||||
ItemMap.func_77874_a(p_72494_1_.field_73436_b, this.field_72563_h.field_71441_e).func_76192_a(p_72494_1_.field_73437_c);
|
||||
@@ -1352,6 +1365,11 @@
|
||||
@@ -1377,6 +1391,11 @@
|
||||
|
||||
public void func_72501_a(Packet250CustomPayload p_72501_1_)
|
||||
{
|
||||
@@ -77,8 +85,8 @@
|
||||
+ {
|
||||
if ("MC|TPack".equals(p_72501_1_.field_73630_a))
|
||||
{
|
||||
String[] var2 = (new String(p_72501_1_.field_73629_c)).split("\u0000");
|
||||
@@ -1396,4 +1414,20 @@
|
||||
String[] astring = (new String(p_72501_1_.field_73629_c)).split("\u0000");
|
||||
@@ -1421,4 +1440,20 @@
|
||||
{
|
||||
return this.field_72555_g;
|
||||
}
|
||||
|
||||
@@ -7,88 +7,3 @@
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
@@ -40,7 +41,12 @@
|
||||
public void func_78443_a(EntityLiving p_78443_1_, ItemStack p_78443_2_, int p_78443_3_)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
- Block var4 = Block.field_71973_m[p_78443_2_.field_77993_c];
|
||||
+
|
||||
+ Block var4 = null;
|
||||
+ if (p_78443_2_.field_77993_c < Block.field_71973_m.length)
|
||||
+ {
|
||||
+ var4 = Block.field_71973_m[p_78443_2_.field_77993_c];
|
||||
+ }
|
||||
|
||||
if (var4 != null && RenderBlocks.func_78597_b(var4.func_71857_b()))
|
||||
{
|
||||
@@ -136,10 +142,17 @@
|
||||
float var9;
|
||||
float var10;
|
||||
|
||||
- for (var7 = 0; var7 < 16; ++var7)
|
||||
- {
|
||||
- var8 = (float)var7 / 16.0F;
|
||||
- var9 = p_78439_1_ + (p_78439_3_ - p_78439_1_) * var8 - 0.001953125F;
|
||||
+ /* Gets the width/16 of the currently bound texture, used
|
||||
+ * to fix the side rendering issues on textures != 16 */
|
||||
+ int tileSize = TextureFXManager.instance().getTextureDimensions(GL11.glGetInteger(GL11.GL_TEXTURE_BINDING_2D)).width / 16;
|
||||
+
|
||||
+ float tx = 1.0f / (32 * tileSize);
|
||||
+ float tz = 1.0f / tileSize;
|
||||
+
|
||||
+ for (var7 = 0; var7 < tileSize; ++var7)
|
||||
+ {
|
||||
+ var8 = (float)var7 / tileSize;
|
||||
+ var9 = p_78439_1_ + (p_78439_3_ - p_78439_1_) * var8 - tx;
|
||||
var10 = var6 * var8;
|
||||
p_78439_0_.func_78374_a((double)var10, 0.0D, (double)(0.0F - p_78439_5_), (double)var9, (double)p_78439_4_);
|
||||
p_78439_0_.func_78374_a((double)var10, 0.0D, 0.0D, (double)var9, (double)p_78439_4_);
|
||||
@@ -151,11 +164,11 @@
|
||||
p_78439_0_.func_78382_b();
|
||||
p_78439_0_.func_78375_b(1.0F, 0.0F, 0.0F);
|
||||
|
||||
- for (var7 = 0; var7 < 16; ++var7)
|
||||
- {
|
||||
- var8 = (float)var7 / 16.0F;
|
||||
- var9 = p_78439_1_ + (p_78439_3_ - p_78439_1_) * var8 - 0.001953125F;
|
||||
- var10 = var6 * var8 + 0.0625F;
|
||||
+ for (var7 = 0; var7 < tileSize; ++var7)
|
||||
+ {
|
||||
+ var8 = (float)var7 / tileSize;
|
||||
+ var9 = p_78439_1_ + (p_78439_3_ - p_78439_1_) * var8 - tx;
|
||||
+ var10 = var6 * var8 + tz;
|
||||
p_78439_0_.func_78374_a((double)var10, 1.0D, (double)(0.0F - p_78439_5_), (double)var9, (double)p_78439_2_);
|
||||
p_78439_0_.func_78374_a((double)var10, 1.0D, 0.0D, (double)var9, (double)p_78439_2_);
|
||||
p_78439_0_.func_78374_a((double)var10, 0.0D, 0.0D, (double)var9, (double)p_78439_4_);
|
||||
@@ -166,11 +179,11 @@
|
||||
p_78439_0_.func_78382_b();
|
||||
p_78439_0_.func_78375_b(0.0F, 1.0F, 0.0F);
|
||||
|
||||
- for (var7 = 0; var7 < 16; ++var7)
|
||||
- {
|
||||
- var8 = (float)var7 / 16.0F;
|
||||
- var9 = p_78439_4_ + (p_78439_2_ - p_78439_4_) * var8 - 0.001953125F;
|
||||
- var10 = var6 * var8 + 0.0625F;
|
||||
+ for (var7 = 0; var7 < tileSize; ++var7)
|
||||
+ {
|
||||
+ var8 = (float)var7 / tileSize;
|
||||
+ var9 = p_78439_4_ + (p_78439_2_ - p_78439_4_) * var8 - tx;
|
||||
+ var10 = var6 * var8 + tz;
|
||||
p_78439_0_.func_78374_a(0.0D, (double)var10, 0.0D, (double)p_78439_1_, (double)var9);
|
||||
p_78439_0_.func_78374_a((double)var6, (double)var10, 0.0D, (double)p_78439_3_, (double)var9);
|
||||
p_78439_0_.func_78374_a((double)var6, (double)var10, (double)(0.0F - p_78439_5_), (double)p_78439_3_, (double)var9);
|
||||
@@ -181,10 +194,10 @@
|
||||
p_78439_0_.func_78382_b();
|
||||
p_78439_0_.func_78375_b(0.0F, -1.0F, 0.0F);
|
||||
|
||||
- for (var7 = 0; var7 < 16; ++var7)
|
||||
- {
|
||||
- var8 = (float)var7 / 16.0F;
|
||||
- var9 = p_78439_4_ + (p_78439_2_ - p_78439_4_) * var8 - 0.001953125F;
|
||||
+ for (var7 = 0; var7 < tileSize; ++var7)
|
||||
+ {
|
||||
+ var8 = (float)var7 / tileSize;
|
||||
+ var9 = p_78439_4_ + (p_78439_2_ - p_78439_4_) * var8 - tx;
|
||||
var10 = var6 * var8;
|
||||
p_78439_0_.func_78374_a((double)var6, (double)var10, 0.0D, (double)p_78439_3_, (double)var9);
|
||||
p_78439_0_.func_78374_a(0.0D, (double)var10, 0.0D, (double)p_78439_1_, (double)var9);
|
||||
@@ -1,20 +1,20 @@
|
||||
--- ../src-base/minecraft/net/minecraft/client/renderer/RenderBlocks.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/renderer/RenderBlocks.java
|
||||
@@ -29,6 +29,7 @@
|
||||
@@ -34,6 +34,7 @@
|
||||
import net.minecraft.block.BlockWall;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.Minecraft;
|
||||
+import net.minecraft.src.FMLRenderAccessLibrary;
|
||||
import net.minecraft.util.Direction;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.Vec3;
|
||||
@@ -215,7 +216,82 @@
|
||||
int var5 = p_78612_1_.func_71857_b();
|
||||
@@ -231,7 +232,84 @@
|
||||
int l = p_78612_1_.func_71857_b();
|
||||
p_78612_1_.func_71902_a(this.field_78669_a, p_78612_2_, p_78612_3_, p_78612_4_);
|
||||
this.func_83018_a(p_78612_1_);
|
||||
- return var5 == 0 ? this.func_78570_q(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 31 ? this.func_78581_r(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 4 ? this.func_78621_p(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 13 ? this.func_78584_s(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 1 ? this.func_78620_l(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 19 ? this.func_78603_m(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 23 ? this.func_78566_o(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 6 ? this.func_78614_n(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 2 ? this.func_78572_c(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 3 ? this.func_78590_h(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 5 ? this.func_78589_i(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 8 ? this.func_78576_j(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 7 ? this.func_78601_u(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 9 ? this.func_78586_a((BlockRail)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 10 ? this.func_78565_t((BlockStairs)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 27 ? this.func_78618_a((BlockDragonEgg)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 11 ? this.func_78582_a((BlockFence)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 32 ? this.func_82779_a((BlockWall)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 12 ? this.func_78594_e(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 29 ? this.func_78577_f(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 30 ? this.func_78619_g(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 14 ? this.func_78574_w(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 15 ? this.func_78610_x(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 16 ? this.func_78593_b(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_, false) : (var5 == 17 ? this.func_78608_c(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_, true) : (var5 == 18 ? this.func_78592_a((BlockPane)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 20 ? this.func_78598_k(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 21 ? this.func_78580_a((BlockFenceGate)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 24 ? this.func_78615_a((BlockCauldron)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 33 ? this.func_82780_a((BlockFlowerPot)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 35 ? this.func_82775_a((BlockAnvil)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 25 ? this.func_78585_a((BlockBrewingStand)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 26 ? this.func_78567_v(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 28 ? this.func_78616_a((BlockCocoa)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 34 ? this.func_82778_a((BlockBeacon)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : false))))))))))))))))))))))))))))))))));
|
||||
- return l == 0 ? this.func_78570_q(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 31 ? this.func_78581_r(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 4 ? this.func_78621_p(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 13 ? this.func_78584_s(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 1 ? this.func_78620_l(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 19 ? this.func_78603_m(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 23 ? this.func_78566_o(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 6 ? this.func_78614_n(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 2 ? this.func_78572_c(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 3 ? this.func_78590_h((BlockFire)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 5 ? this.func_78589_i(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 8 ? this.func_78576_j(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 7 ? this.func_78601_u(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 9 ? this.func_78586_a((BlockBaseRail)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 10 ? this.func_78565_t((BlockStairs)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 27 ? this.func_78618_a((BlockDragonEgg)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 11 ? this.func_78582_a((BlockFence)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 32 ? this.func_82779_a((BlockWall)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 12 ? this.func_78594_e(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 29 ? this.func_78577_f(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 30 ? this.func_78619_g(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 14 ? this.func_78574_w(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 15 ? this.func_94176_a((BlockRepeater)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 36 ? this.func_78610_x((BlockRedstoneRepeater)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 37 ? this.func_94171_a((BlockComparator)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 16 ? this.func_78593_b(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_, false) : (l == 17 ? this.func_78608_c(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_, true) : (l == 18 ? this.func_78592_a((BlockPane)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 20 ? this.func_78598_k(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 21 ? this.func_78580_a((BlockFenceGate)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 24 ? this.func_78615_a((BlockCauldron)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 33 ? this.func_82780_a((BlockFlowerPot)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 35 ? this.func_82775_a((BlockAnvil)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 25 ? this.func_78585_a((BlockBrewingStand)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 26 ? this.func_94168_a((BlockEndPortalFrame)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 28 ? this.func_78616_a((BlockCocoa)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 34 ? this.func_82778_a((BlockBeacon)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 38 ? this.func_94172_a((BlockHopper)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : false)))))))))))))))))))))))))))))))))))));
|
||||
+
|
||||
+ switch (var5)
|
||||
+ switch (l)
|
||||
+ {
|
||||
+ case 0:
|
||||
+ return this.func_78570_q(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
|
||||
@@ -35,7 +35,7 @@
|
||||
+ case 2:
|
||||
+ return this.func_78572_c(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
|
||||
+ case 3:
|
||||
+ return this.func_78590_h(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
|
||||
+ return this.func_78590_h((BlockFire)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
|
||||
+ case 5:
|
||||
+ return this.func_78589_i(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
|
||||
+ case 8:
|
||||
@@ -43,7 +43,7 @@
|
||||
+ case 7:
|
||||
+ return this.func_78601_u(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
|
||||
+ case 9:
|
||||
+ return this.func_78586_a((BlockRail)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
|
||||
+ return this.func_78586_a((BlockBaseRail)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
|
||||
+ case 10:
|
||||
+ return this.func_78565_t((BlockStairs)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
|
||||
+ case 27:
|
||||
@@ -61,7 +61,7 @@
|
||||
+ case 14:
|
||||
+ return this.func_78574_w(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
|
||||
+ case 15:
|
||||
+ return this.func_78610_x(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
|
||||
+ return this.func_94176_a((BlockRepeater)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
|
||||
+ case 16:
|
||||
+ return this.func_78593_b(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_, false);
|
||||
+ case 17:
|
||||
@@ -81,29 +81,31 @@
|
||||
+ case 25:
|
||||
+ return this.func_78585_a((BlockBrewingStand)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
|
||||
+ case 26:
|
||||
+ return this.func_78567_v(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
|
||||
+ return this.func_94168_a((BlockEndPortalFrame)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
|
||||
+ case 28:
|
||||
+ return this.func_78616_a((BlockCocoa)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
|
||||
+ case 34:
|
||||
+ return this.func_82778_a((BlockBeacon)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
|
||||
+ case 38:
|
||||
+ return this.func_94172_a((BlockHopper)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
|
||||
+ default:
|
||||
+ return FMLRenderAccessLibrary.renderWorldBlock(this, field_78669_a, p_78612_2_, p_78612_3_, p_78612_4_, p_78612_1_, var5);
|
||||
+ return FMLRenderAccessLibrary.renderWorldBlock(this, field_78669_a, p_78612_2_, p_78612_3_, p_78612_4_, p_78612_1_, l);
|
||||
+ }
|
||||
}
|
||||
|
||||
public boolean func_78567_v(Block p_78567_1_, int p_78567_2_, int p_78567_3_, int p_78567_4_)
|
||||
@@ -6541,6 +6617,10 @@
|
||||
public boolean func_94168_a(BlockEndPortalFrame p_94168_1_, int p_94168_2_, int p_94168_3_, int p_94168_4_)
|
||||
@@ -6623,6 +6701,10 @@
|
||||
this.func_83020_a(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
|
||||
this.func_78595_a();
|
||||
}
|
||||
+ else
|
||||
+ {
|
||||
+ FMLRenderAccessLibrary.renderInventoryBlock(this, p_78600_1_, p_78600_2_, var6);
|
||||
+ FMLRenderAccessLibrary.renderInventoryBlock(this, p_78600_1_, p_78600_2_, j);
|
||||
+ }
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -6599,6 +6679,36 @@
|
||||
@@ -6681,7 +6763,37 @@
|
||||
|
||||
public static boolean func_78597_b(int p_78597_0_)
|
||||
{
|
||||
@@ -140,4 +142,5 @@
|
||||
+ return FMLRenderAccessLibrary.renderItemAsFull3DBlock(p_78597_0_);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
public Icon func_94170_a(Block p_94170_1_, IBlockAccess p_94170_2_, int p_94170_3_, int p_94170_4_, int p_94170_5_, int p_94170_6_)
|
||||
@@ -12,128 +12,58 @@
|
||||
import java.awt.Graphics;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.awt.image.ImageObserver;
|
||||
@@ -15,6 +18,9 @@
|
||||
@@ -13,6 +16,9 @@
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
+import java.util.logging.Level;
|
||||
+import java.util.logging.Logger;
|
||||
+
|
||||
import javax.imageio.ImageIO;
|
||||
import net.minecraft.client.renderer.texturefx.TextureFX;
|
||||
import net.minecraft.client.renderer.texture.TextureMap;
|
||||
import net.minecraft.client.settings.GameSettings;
|
||||
@@ -39,6 +45,8 @@
|
||||
public TexturePackList field_78366_k;
|
||||
private BufferedImage field_78364_l = new BufferedImage(64, 64, 2);
|
||||
private final TextureMap field_94155_m;
|
||||
private int field_94153_n;
|
||||
|
||||
+ public static Logger log = FMLLog.getLogger();
|
||||
+
|
||||
public RenderEngine(TexturePackList p_i3192_1_, GameSettings p_i3192_2_)
|
||||
{
|
||||
this.field_78366_k = p_i3192_1_;
|
||||
@@ -102,8 +110,9 @@
|
||||
this.field_78359_d.put(p_78346_1_, var7);
|
||||
return var7;
|
||||
@@ -117,8 +125,9 @@
|
||||
this.field_78359_d.put(p_78346_1_, aint1);
|
||||
return aint1;
|
||||
}
|
||||
- catch (IOException var6)
|
||||
- catch (IOException ioexception)
|
||||
- {
|
||||
+ catch (Exception var6)
|
||||
+ catch (Exception ioexception)
|
||||
+ {
|
||||
+ log.log(Level.INFO, String.format("An error occured reading texture file %s (getTexture)", p_78346_1_), var6);
|
||||
var6.printStackTrace();
|
||||
int[] var5 = this.func_78348_b(this.field_78364_l);
|
||||
this.field_78359_d.put(p_78346_1_, var5);
|
||||
@@ -250,6 +259,7 @@
|
||||
|
||||
int var3 = p_78351_1_.getWidth();
|
||||
int var4 = p_78351_1_.getHeight();
|
||||
+ TextureFXManager.instance().setTextureDimensions(p_78351_2_, var3, var4, (List<TextureFX>)field_78367_h);
|
||||
int[] var5 = new int[var3 * var4];
|
||||
byte[] var6 = new byte[var3 * var4 * 4];
|
||||
p_78351_1_.getRGB(0, 0, var3, var4, var5, 0, var3);
|
||||
@@ -410,6 +420,7 @@
|
||||
|
||||
public void func_78355_a(TextureFX p_78355_1_)
|
||||
{
|
||||
+ TextureFXManager.instance().onPreRegisterEffect(p_78355_1_);
|
||||
this.field_78367_h.add(p_78355_1_);
|
||||
p_78355_1_.func_76846_a();
|
||||
}
|
||||
@@ -422,28 +433,44 @@
|
||||
{
|
||||
TextureFX var3 = (TextureFX)this.field_78367_h.get(var2);
|
||||
var3.field_76851_c = this.field_78365_j.field_74337_g;
|
||||
- var3.func_76846_a();
|
||||
- var1 = this.func_82772_a(var3, var1);
|
||||
+ if (TextureFXManager.instance().onUpdateTextureEffect(var3))
|
||||
+ {
|
||||
+ var1 = this.func_82772_a(var3, var1);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
public int func_82772_a(TextureFX p_82772_1_, int p_82772_2_)
|
||||
{
|
||||
- this.field_78358_g.clear();
|
||||
- this.field_78358_g.put(p_82772_1_.field_76852_a);
|
||||
- this.field_78358_g.position(0).limit(p_82772_1_.field_76852_a.length);
|
||||
-
|
||||
- if (p_82772_1_.field_76850_b != p_82772_2_)
|
||||
+ Dimension dim = TextureFXManager.instance().getTextureDimensions(p_82772_1_);
|
||||
+ int tWidth = dim.width >> 4;
|
||||
+ int tHeight = dim.height >> 4;
|
||||
+ int tLen = tWidth * tHeight << 2;
|
||||
+
|
||||
+ if (p_82772_1_.field_76852_a.length == tLen)
|
||||
+ {
|
||||
+ this.field_78358_g.clear();
|
||||
+ this.field_78358_g.put(p_82772_1_.field_76852_a);
|
||||
+ this.field_78358_g.position(0).limit(p_82772_1_.field_76852_a.length);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ TextureFXManager.instance().scaleTextureFXData(p_82772_1_.field_76852_a, field_78358_g, tWidth, tLen);
|
||||
+ }
|
||||
+
|
||||
+ if (p_82772_1_.field_76848_d != p_82772_2_)
|
||||
{
|
||||
p_82772_1_.func_76845_a(this);
|
||||
- p_82772_2_ = p_82772_1_.field_76850_b;
|
||||
+ p_82772_2_ = p_82772_1_.field_76848_d;
|
||||
}
|
||||
|
||||
for (int var3 = 0; var3 < p_82772_1_.field_76849_e; ++var3)
|
||||
{
|
||||
+ int xOffset = p_82772_1_.field_76850_b % 16 * tWidth + var3 * tWidth;
|
||||
for (int var4 = 0; var4 < p_82772_1_.field_76849_e; ++var4)
|
||||
{
|
||||
- GL11.glTexSubImage2D(GL11.GL_TEXTURE_2D, 0, p_82772_1_.field_76850_b % 16 * 16 + var3 * 16, p_82772_1_.field_76850_b / 16 * 16 + var4 * 16, 16, 16, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, this.field_78358_g);
|
||||
+ int yOffset = p_82772_1_.field_76850_b / 16 * tHeight + var4 * tHeight;
|
||||
+ GL11.glTexSubImage2D(GL11.GL_TEXTURE_2D, 0, xOffset, yOffset, tWidth, tHeight, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, this.field_78358_g);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -509,8 +536,9 @@
|
||||
+ log.log(Level.INFO, String.format("An error occured reading texture file %s (getTexture)", p_78346_1_), ioexception);
|
||||
ioexception.printStackTrace();
|
||||
int[] aint2 = this.func_78348_b(this.field_78364_l);
|
||||
this.field_78359_d.put(p_78346_1_, aint2);
|
||||
@@ -505,8 +514,9 @@
|
||||
this.field_78361_b = false;
|
||||
this.field_78363_a = false;
|
||||
}
|
||||
- catch (IOException var7)
|
||||
- catch (IOException ioexception)
|
||||
- {
|
||||
+ catch (Exception var7)
|
||||
+ catch (Exception ioexception)
|
||||
+ {
|
||||
+ log.log(Level.INFO,String.format("An error occured reading texture file %s (refreshTexture)", var9), var7);
|
||||
var7.printStackTrace();
|
||||
+ log.log(Level.INFO,String.format("An error occured reading texture file %s (refreshTexture)", s), ioexception);
|
||||
ioexception.printStackTrace();
|
||||
}
|
||||
}
|
||||
@@ -546,8 +574,9 @@
|
||||
@@ -542,8 +552,9 @@
|
||||
this.field_78361_b = false;
|
||||
this.field_78363_a = false;
|
||||
}
|
||||
- catch (IOException var6)
|
||||
- catch (IOException ioexception1)
|
||||
- {
|
||||
+ catch (Exception var6)
|
||||
+ catch (Exception ioexception1)
|
||||
+ {
|
||||
+ log.log(Level.INFO,String.format("An error occured reading texture file data %s (refreshTexture)", var9), var6);
|
||||
var6.printStackTrace();
|
||||
+ log.log(Level.INFO,String.format("An error occured reading texture file data %s (refreshTexture)", s), ioexception1);
|
||||
ioexception1.printStackTrace();
|
||||
}
|
||||
}
|
||||
-102
@@ -1,102 +0,0 @@
|
||||
--- ../src-base/minecraft/net/minecraft/client/renderer/texturefx/TextureCompassFX.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/renderer/texturefx/TextureCompassFX.java
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.minecraft.client.renderer.texturefx;
|
||||
|
||||
+import cpw.mods.fml.client.FMLTextureFX;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.awt.image.BufferedImage;
|
||||
@@ -10,13 +11,17 @@
|
||||
import net.minecraft.util.ChunkCoordinates;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
-public class TextureCompassFX extends TextureFX
|
||||
+public class TextureCompassFX extends FMLTextureFX
|
||||
{
|
||||
private Minecraft field_76865_g;
|
||||
private int[] field_76867_h = new int[256];
|
||||
public double field_76868_i;
|
||||
public double field_76866_j;
|
||||
public static TextureCompassFX field_82391_c;
|
||||
+ public static int stileSizeBase = 16;
|
||||
+ public static int stileSizeSquare = 256;
|
||||
+ public static int stileSizeMask = 15;
|
||||
+ public static int stileSizeSquareMask = 255;
|
||||
|
||||
public TextureCompassFX(Minecraft p_i3212_1_)
|
||||
{
|
||||
@@ -24,12 +29,25 @@
|
||||
this.field_76865_g = p_i3212_1_;
|
||||
this.field_76847_f = 1;
|
||||
|
||||
+ setup();
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void setup()
|
||||
+ {
|
||||
+ super.setup();
|
||||
+ stileSizeBase = tileSizeBase;
|
||||
+ stileSizeSquare = tileSizeSquare;
|
||||
+ stileSizeMask = tileSizeMask;
|
||||
+ stileSizeSquareMask = tileSizeSquareMask;
|
||||
+ field_76867_h = new int[tileSizeSquare];
|
||||
+
|
||||
try
|
||||
{
|
||||
- BufferedImage var2 = ImageIO.read(Minecraft.class.getResource("/gui/items.png"));
|
||||
- int var3 = this.field_76850_b % 16 * 16;
|
||||
- int var4 = this.field_76850_b / 16 * 16;
|
||||
- var2.getRGB(var3, var4, 16, 16, this.field_76867_h, 0, 16);
|
||||
+ BufferedImage var2 = ImageIO.read(field_76865_g.field_71418_C.func_77292_e().func_77532_a("/gui/items.png"));
|
||||
+ int var3 = this.field_76850_b % 16 * tileSizeBase;
|
||||
+ int var4 = this.field_76850_b / 16 * tileSizeBase;
|
||||
+ var2.getRGB(var3, var4, tileSizeBase, tileSizeBase, this.field_76867_h, 0, tileSizeBase);
|
||||
}
|
||||
catch (IOException var5)
|
||||
{
|
||||
@@ -58,7 +76,7 @@
|
||||
int var17;
|
||||
int var16;
|
||||
|
||||
- for (int var10 = 0; var10 < 256; ++var10)
|
||||
+ for (int var10 = 0; var10 < stileSizeSquare; ++var10)
|
||||
{
|
||||
int var11 = var8[var10] >> 24 & 255;
|
||||
int var12 = var8[var10] >> 16 & 255;
|
||||
@@ -141,11 +159,11 @@
|
||||
int var24;
|
||||
int var26;
|
||||
|
||||
- for (var16 = -4; var16 <= 4; ++var16)
|
||||
- {
|
||||
- var17 = (int)(8.5D + var31 * (double)var16 * 0.3D);
|
||||
- var18 = (int)(7.5D - var30 * (double)var16 * 0.3D * 0.5D);
|
||||
- var19 = var18 * 16 + var17;
|
||||
+ for (var16 = -(stileSizeBase >> 2); var16 <= (stileSizeBase >> 2); ++var16)
|
||||
+ {
|
||||
+ var17 = (int)((stileSizeBase >> 1) + 0.5D + var31 * (double)var16 * 0.3D);
|
||||
+ var18 = (int)((stileSizeBase >> 1) - 0.5D - var30 * (double)var16 * 0.3D * 0.5D);
|
||||
+ var19 = var18 * stileSizeBase + var17;
|
||||
var20 = 100;
|
||||
var21 = 100;
|
||||
var22 = 100;
|
||||
@@ -167,11 +185,12 @@
|
||||
var9[var19 * 4 + 3] = (byte)var23;
|
||||
}
|
||||
|
||||
- for (var16 = -8; var16 <= 16; ++var16)
|
||||
- {
|
||||
- var17 = (int)(8.5D + var30 * (double)var16 * 0.3D);
|
||||
- var18 = (int)(7.5D + var31 * (double)var16 * 0.3D * 0.5D);
|
||||
- var19 = var18 * 16 + var17;
|
||||
+
|
||||
+ for (var16 = -(stileSizeBase>>2); var16 <= stileSizeBase; ++var16)
|
||||
+ {
|
||||
+ var17 = (int)((stileSizeBase >> 1) + 0.5D + var30 * (double)var16 * 0.3D);
|
||||
+ var18 = (int)((stileSizeBase >> 1) - 0.5D + var31 * (double)var16 * 0.3D * 0.5D);
|
||||
+ var19 = var18 * stileSizeBase + var17;
|
||||
var20 = var16 >= 0 ? 255 : 100;
|
||||
var21 = var16 >= 0 ? 20 : 100;
|
||||
var22 = var16 >= 0 ? 20 : 100;
|
||||
@@ -1,89 +0,0 @@
|
||||
--- ../src-base/minecraft/net/minecraft/client/renderer/texturefx/TextureFlamesFX.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/renderer/texturefx/TextureFlamesFX.java
|
||||
@@ -1,18 +1,32 @@
|
||||
package net.minecraft.client.renderer.texturefx;
|
||||
|
||||
+import cpw.mods.fml.client.FMLTextureFX;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
-public class TextureFlamesFX extends TextureFX
|
||||
+public class TextureFlamesFX extends FMLTextureFX
|
||||
{
|
||||
protected float[] field_76869_g = new float[320];
|
||||
protected float[] field_76870_h = new float[320];
|
||||
+ private int fireTileSize = 20;
|
||||
+ private int fireGridSize = 320;
|
||||
|
||||
public TextureFlamesFX(int p_i3215_1_)
|
||||
{
|
||||
super(Block.field_72067_ar.field_72059_bZ + p_i3215_1_ * 16);
|
||||
+ setup();
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void setup()
|
||||
+ {
|
||||
+ super.setup();
|
||||
+ fireTileSize = tileSizeBase + (tileSizeBase >> 2);
|
||||
+ fireGridSize = fireTileSize * tileSizeBase;
|
||||
+ field_76869_g = new float[fireGridSize];
|
||||
+ field_76870_h = new float[fireGridSize];
|
||||
}
|
||||
|
||||
public void func_76846_a()
|
||||
@@ -20,32 +34,34 @@
|
||||
int var3;
|
||||
float var4;
|
||||
int var6;
|
||||
+ float fireFactor1 = 3.0F + (float)(tileSizeBase >> 4);
|
||||
+ float fireFactor2 = 1.01F + (0.8F / tileSizeBase);
|
||||
|
||||
- for (int var1 = 0; var1 < 16; ++var1)
|
||||
+ for (int var1 = 0; var1 < tileSizeBase; ++var1)
|
||||
{
|
||||
- for (int var2 = 0; var2 < 20; ++var2)
|
||||
+ for (int var2 = 0; var2 < fireTileSize; ++var2)
|
||||
{
|
||||
- var3 = 18;
|
||||
- var4 = this.field_76869_g[var1 + (var2 + 1) % 20 * 16] * (float)var3;
|
||||
+ var3 = fireTileSize - (tileSizeBase >> 3);
|
||||
+ var4 = this.field_76869_g[var1 + (var2 + 1) % fireTileSize * tileSizeBase] * (float)var3;
|
||||
|
||||
for (int var5 = var1 - 1; var5 <= var1 + 1; ++var5)
|
||||
{
|
||||
for (var6 = var2; var6 <= var2 + 1; ++var6)
|
||||
{
|
||||
- if (var5 >= 0 && var6 >= 0 && var5 < 16 && var6 < 20)
|
||||
+ if (var5 >= 0 && var6 >= 0 && var5 < tileSizeBase && var6 < fireTileSize)
|
||||
{
|
||||
- var4 += this.field_76869_g[var5 + var6 * 16];
|
||||
+ var4 += this.field_76869_g[var5 + var6 * tileSizeBase];
|
||||
}
|
||||
|
||||
++var3;
|
||||
}
|
||||
}
|
||||
|
||||
- this.field_76870_h[var1 + var2 * 16] = var4 / ((float)var3 * 1.0600001F);
|
||||
+ this.field_76870_h[var1 + var2 * tileSizeBase] = var4 / ((float)var3 * fireFactor2);
|
||||
|
||||
- if (var2 >= 19)
|
||||
+ if (var2 >= fireTileSize - (tileSizeBase >> 4))
|
||||
{
|
||||
- this.field_76870_h[var1 + var2 * 16] = (float)(Math.random() * Math.random() * Math.random() * 4.0D + Math.random() * 0.10000000149011612D + 0.20000000298023224D);
|
||||
+ this.field_76870_h[var1 + var2 * tileSizeBase] = (float)(Math.random() * Math.random() * Math.random() * fireFactor1 + Math.random() * 0.1F + 0.2F);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -54,7 +70,7 @@
|
||||
this.field_76870_h = this.field_76869_g;
|
||||
this.field_76869_g = var13;
|
||||
|
||||
- for (var3 = 0; var3 < 256; ++var3)
|
||||
+ for (var3 = 0; var3 < tileSizeSquare; ++var3)
|
||||
{
|
||||
var4 = this.field_76869_g[var3] * 1.8F;
|
||||
|
||||
@@ -1,91 +0,0 @@
|
||||
--- ../src-base/minecraft/net/minecraft/client/renderer/texturefx/TextureLavaFX.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/renderer/texturefx/TextureLavaFX.java
|
||||
@@ -1,12 +1,13 @@
|
||||
package net.minecraft.client.renderer.texturefx;
|
||||
|
||||
+import cpw.mods.fml.client.FMLTextureFX;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.util.MathHelper;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
-public class TextureLavaFX extends TextureFX
|
||||
+public class TextureLavaFX extends FMLTextureFX
|
||||
{
|
||||
protected float[] field_76876_g = new float[256];
|
||||
protected float[] field_76878_h = new float[256];
|
||||
@@ -16,6 +17,17 @@
|
||||
public TextureLavaFX()
|
||||
{
|
||||
super(Block.field_71944_C.field_72059_bZ);
|
||||
+ setup();
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void setup()
|
||||
+ {
|
||||
+ super.setup();
|
||||
+ field_76876_g = new float[tileSizeSquare];
|
||||
+ field_76878_h = new float[tileSizeSquare];
|
||||
+ field_76879_i = new float[tileSizeSquare];
|
||||
+ field_76877_j = new float[tileSizeSquare];
|
||||
}
|
||||
|
||||
public void func_76846_a()
|
||||
@@ -28,9 +40,9 @@
|
||||
int var8;
|
||||
int var9;
|
||||
|
||||
- for (int var1 = 0; var1 < 16; ++var1)
|
||||
+ for (int var1 = 0; var1 < tileSizeBase; ++var1)
|
||||
{
|
||||
- for (var2 = 0; var2 < 16; ++var2)
|
||||
+ for (var2 = 0; var2 < tileSizeBase; ++var2)
|
||||
{
|
||||
var3 = 0.0F;
|
||||
int var4 = (int)(MathHelper.func_76126_a((float)var2 * (float)Math.PI * 2.0F / 16.0F) * 1.2F);
|
||||
@@ -40,25 +52,25 @@
|
||||
{
|
||||
for (var7 = var2 - 1; var7 <= var2 + 1; ++var7)
|
||||
{
|
||||
- var8 = var6 + var4 & 15;
|
||||
- var9 = var7 + var5 & 15;
|
||||
- var3 += this.field_76876_g[var8 + var9 * 16];
|
||||
+ var8 = var6 + var4 & tileSizeMask;
|
||||
+ var9 = var7 + var5 & tileSizeMask;
|
||||
+ var3 += this.field_76876_g[var8 + var9 * tileSizeBase];
|
||||
}
|
||||
}
|
||||
|
||||
- this.field_76878_h[var1 + var2 * 16] = var3 / 10.0F + (this.field_76879_i[(var1 + 0 & 15) + (var2 + 0 & 15) * 16] + this.field_76879_i[(var1 + 1 & 15) + (var2 + 0 & 15) * 16] + this.field_76879_i[(var1 + 1 & 15) + (var2 + 1 & 15) * 16] + this.field_76879_i[(var1 + 0 & 15) + (var2 + 1 & 15) * 16]) / 4.0F * 0.8F;
|
||||
- this.field_76879_i[var1 + var2 * 16] += this.field_76877_j[var1 + var2 * 16] * 0.01F;
|
||||
+ this.field_76878_h[var1 + var2 * tileSizeBase] = var3 / 10.0F + (this.field_76879_i[(var1 + 0 & tileSizeMask) + (var2 + 0 & tileSizeMask) * tileSizeBase] + this.field_76879_i[(var1 + 1 & tileSizeMask) + (var2 + 0 & tileSizeMask) * tileSizeBase] + this.field_76879_i[(var1 + 1 & tileSizeMask) + (var2 + 1 & tileSizeMask) * tileSizeBase] + this.field_76879_i[(var1 + 0 & tileSizeMask) + (var2 + 1 & tileSizeMask) * tileSizeBase]) / 4.0F * 0.8F;
|
||||
+ this.field_76879_i[var1 + var2 * tileSizeBase] += this.field_76877_j[var1 + var2 * tileSizeBase] * 0.01F;
|
||||
|
||||
- if (this.field_76879_i[var1 + var2 * 16] < 0.0F)
|
||||
+ if (this.field_76879_i[var1 + var2 * tileSizeBase] < 0.0F)
|
||||
{
|
||||
- this.field_76879_i[var1 + var2 * 16] = 0.0F;
|
||||
+ this.field_76879_i[var1 + var2 * tileSizeBase] = 0.0F;
|
||||
}
|
||||
|
||||
- this.field_76877_j[var1 + var2 * 16] -= 0.06F;
|
||||
+ this.field_76877_j[var1 + var2 * tileSizeBase] -= 0.06F;
|
||||
|
||||
if (Math.random() < 0.005D)
|
||||
{
|
||||
- this.field_76877_j[var1 + var2 * 16] = 1.5F;
|
||||
+ this.field_76877_j[var1 + var2 * tileSizeBase] = 1.5F;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -67,7 +79,7 @@
|
||||
this.field_76878_h = this.field_76876_g;
|
||||
this.field_76876_g = var11;
|
||||
|
||||
- for (var2 = 0; var2 < 256; ++var2)
|
||||
+ for (var2 = 0; var2 < tileSizeSquare; ++var2)
|
||||
{
|
||||
var3 = this.field_76876_g[var2] * 2.0F;
|
||||
|
||||
-95
@@ -1,95 +0,0 @@
|
||||
--- ../src-base/minecraft/net/minecraft/client/renderer/texturefx/TextureLavaFlowFX.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/renderer/texturefx/TextureLavaFlowFX.java
|
||||
@@ -1,12 +1,13 @@
|
||||
package net.minecraft.client.renderer.texturefx;
|
||||
|
||||
+import cpw.mods.fml.client.FMLTextureFX;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.util.MathHelper;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
-public class TextureLavaFlowFX extends TextureFX
|
||||
+public class TextureLavaFlowFX extends FMLTextureFX
|
||||
{
|
||||
protected float[] field_76871_g = new float[256];
|
||||
protected float[] field_76874_h = new float[256];
|
||||
@@ -18,6 +19,18 @@
|
||||
{
|
||||
super(Block.field_71944_C.field_72059_bZ + 1);
|
||||
this.field_76849_e = 2;
|
||||
+ setup();
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void setup()
|
||||
+ {
|
||||
+ super.setup();
|
||||
+ field_76871_g = new float[tileSizeSquare];
|
||||
+ field_76874_h = new float[tileSizeSquare];
|
||||
+ field_76875_i = new float[tileSizeSquare];
|
||||
+ field_76872_j = new float[tileSizeSquare];
|
||||
+ field_76873_k = 0;
|
||||
}
|
||||
|
||||
public void func_76846_a()
|
||||
@@ -31,9 +44,9 @@
|
||||
int var8;
|
||||
int var9;
|
||||
|
||||
- for (int var1 = 0; var1 < 16; ++var1)
|
||||
+ for (int var1 = 0; var1 < tileSizeBase; ++var1)
|
||||
{
|
||||
- for (var2 = 0; var2 < 16; ++var2)
|
||||
+ for (var2 = 0; var2 < tileSizeBase; ++var2)
|
||||
{
|
||||
var3 = 0.0F;
|
||||
int var4 = (int)(MathHelper.func_76126_a((float)var2 * (float)Math.PI * 2.0F / 16.0F) * 1.2F);
|
||||
@@ -43,25 +56,25 @@
|
||||
{
|
||||
for (var7 = var2 - 1; var7 <= var2 + 1; ++var7)
|
||||
{
|
||||
- var8 = var6 + var4 & 15;
|
||||
- var9 = var7 + var5 & 15;
|
||||
- var3 += this.field_76871_g[var8 + var9 * 16];
|
||||
+ var8 = var6 + var4 & tileSizeMask;
|
||||
+ var9 = var7 + var5 & tileSizeMask;
|
||||
+ var3 += this.field_76871_g[var8 + var9 * tileSizeBase];
|
||||
}
|
||||
}
|
||||
|
||||
- this.field_76874_h[var1 + var2 * 16] = var3 / 10.0F + (this.field_76875_i[(var1 + 0 & 15) + (var2 + 0 & 15) * 16] + this.field_76875_i[(var1 + 1 & 15) + (var2 + 0 & 15) * 16] + this.field_76875_i[(var1 + 1 & 15) + (var2 + 1 & 15) * 16] + this.field_76875_i[(var1 + 0 & 15) + (var2 + 1 & 15) * 16]) / 4.0F * 0.8F;
|
||||
- this.field_76875_i[var1 + var2 * 16] += this.field_76872_j[var1 + var2 * 16] * 0.01F;
|
||||
+ this.field_76874_h[var1 + var2 * tileSizeBase] = var3 / 10.0F + (this.field_76875_i[(var1 + 0 & tileSizeMask) + (var2 + 0 & tileSizeMask) * tileSizeBase] + this.field_76875_i[(var1 + 1 & tileSizeMask) + (var2 + 0 & tileSizeMask) * tileSizeBase] + this.field_76875_i[(var1 + 1 & tileSizeMask) + (var2 + 1 & tileSizeMask) * tileSizeBase] + this.field_76875_i[(var1 + 0 & tileSizeMask) + (var2 + 1 & tileSizeMask) * tileSizeBase]) / 4.0F * 0.8F;
|
||||
+ this.field_76875_i[var1 + var2 * tileSizeBase] += this.field_76872_j[var1 + var2 * tileSizeBase] * 0.01F;
|
||||
|
||||
- if (this.field_76875_i[var1 + var2 * 16] < 0.0F)
|
||||
+ if (this.field_76875_i[var1 + var2 * tileSizeBase] < 0.0F)
|
||||
{
|
||||
- this.field_76875_i[var1 + var2 * 16] = 0.0F;
|
||||
+ this.field_76875_i[var1 + var2 * tileSizeBase] = 0.0F;
|
||||
}
|
||||
|
||||
- this.field_76872_j[var1 + var2 * 16] -= 0.06F;
|
||||
+ this.field_76872_j[var1 + var2 * tileSizeBase] -= 0.06F;
|
||||
|
||||
if (Math.random() < 0.005D)
|
||||
{
|
||||
- this.field_76872_j[var1 + var2 * 16] = 1.5F;
|
||||
+ this.field_76872_j[var1 + var2 * tileSizeBase] = 1.5F;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -70,9 +83,9 @@
|
||||
this.field_76874_h = this.field_76871_g;
|
||||
this.field_76871_g = var11;
|
||||
|
||||
- for (var2 = 0; var2 < 256; ++var2)
|
||||
+ for (var2 = 0; var2 < tileSizeSquare; ++var2)
|
||||
{
|
||||
- var3 = this.field_76871_g[var2 - this.field_76873_k / 3 * 16 & 255] * 2.0F;
|
||||
+ var3 = this.field_76871_g[(var2 - this.field_76873_k / 3 * tileSizeBase) & tileSizeSquareMask] * 2.0F;
|
||||
|
||||
if (var3 > 1.0F)
|
||||
{
|
||||
@@ -1,75 +0,0 @@
|
||||
--- ../src-base/minecraft/net/minecraft/client/renderer/texturefx/TexturePortalFX.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/renderer/texturefx/TexturePortalFX.java
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.minecraft.client.renderer.texturefx;
|
||||
|
||||
+import cpw.mods.fml.client.FMLTextureFX;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.util.Random;
|
||||
@@ -7,31 +8,39 @@
|
||||
import net.minecraft.util.MathHelper;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
-public class TexturePortalFX extends TextureFX
|
||||
+public class TexturePortalFX extends FMLTextureFX
|
||||
{
|
||||
private int field_76853_g = 0;
|
||||
- private byte[][] field_76854_h = new byte[32][1024];
|
||||
+ private byte[][] field_76854_h;
|
||||
|
||||
public TexturePortalFX()
|
||||
{
|
||||
super(Block.field_72015_be.field_72059_bZ);
|
||||
+ setup();
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void setup()
|
||||
+ {
|
||||
+ super.setup();
|
||||
+ field_76854_h = new byte[32][tileSizeSquare << 4];
|
||||
Random var1 = new Random(100L);
|
||||
|
||||
for (int var2 = 0; var2 < 32; ++var2)
|
||||
{
|
||||
- for (int var3 = 0; var3 < 16; ++var3)
|
||||
+ for (int var3 = 0; var3 < tileSizeBase; ++var3)
|
||||
{
|
||||
- for (int var4 = 0; var4 < 16; ++var4)
|
||||
+ for (int var4 = 0; var4 < tileSizeBase; ++var4)
|
||||
{
|
||||
float var5 = 0.0F;
|
||||
int var6;
|
||||
|
||||
for (var6 = 0; var6 < 2; ++var6)
|
||||
{
|
||||
- float var7 = (float)(var6 * 16) * 0.5F;
|
||||
- float var8 = (float)(var6 * 16) * 0.5F;
|
||||
- float var9 = ((float)var3 - var7) / 16.0F * 2.0F;
|
||||
- float var10 = ((float)var4 - var8) / 16.0F * 2.0F;
|
||||
+ float var7 = (float)(var6 * tileSizeBase) * 0.5F;
|
||||
+ float var8 = (float)(var6 * tileSizeBase) * 0.5F;
|
||||
+ float var9 = ((float)var3 - var7) / (float)tileSizeBase * 2.0F;
|
||||
+ float var10 = ((float)var4 - var8) / (float)tileSizeBase * 2.0F;
|
||||
|
||||
if (var9 < -1.0F)
|
||||
{
|
||||
@@ -65,7 +74,7 @@
|
||||
int var13 = (int)(var5 * var5 * 200.0F + 55.0F);
|
||||
int var14 = (int)(var5 * var5 * var5 * var5 * 255.0F);
|
||||
int var15 = (int)(var5 * 100.0F + 155.0F);
|
||||
- int var16 = var4 * 16 + var3;
|
||||
+ int var16 = var4 * tileSizeBase + var3;
|
||||
this.field_76854_h[var2][var16 * 4 + 0] = (byte)var13;
|
||||
this.field_76854_h[var2][var16 * 4 + 1] = (byte)var14;
|
||||
this.field_76854_h[var2][var16 * 4 + 2] = (byte)var6;
|
||||
@@ -80,7 +89,7 @@
|
||||
++this.field_76853_g;
|
||||
byte[] var1 = this.field_76854_h[this.field_76853_g & 31];
|
||||
|
||||
- for (int var2 = 0; var2 < 256; ++var2)
|
||||
+ for (int var2 = 0; var2 < tileSizeSquare; ++var2)
|
||||
{
|
||||
int var3 = var1[var2 * 4 + 0] & 255;
|
||||
int var4 = var1[var2 * 4 + 1] & 255;
|
||||
@@ -1,99 +0,0 @@
|
||||
--- ../src-base/minecraft/net/minecraft/client/renderer/texturefx/TextureWatchFX.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/renderer/texturefx/TextureWatchFX.java
|
||||
@@ -1,15 +1,21 @@
|
||||
package net.minecraft.client.renderer.texturefx;
|
||||
|
||||
+import cpw.mods.fml.client.FMLTextureFX;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
+
|
||||
+import java.awt.Graphics2D;
|
||||
import java.awt.image.BufferedImage;
|
||||
+import java.awt.image.ImageObserver;
|
||||
import java.io.IOException;
|
||||
+import java.util.logging.Level;
|
||||
+
|
||||
import javax.imageio.ImageIO;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.item.Item;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
-public class TextureWatchFX extends TextureFX
|
||||
+public class TextureWatchFX extends FMLTextureFX
|
||||
{
|
||||
private Minecraft field_76860_g;
|
||||
private int[] field_76863_h = new int[256];
|
||||
@@ -22,19 +28,39 @@
|
||||
super(Item.field_77752_aS.func_77617_a(0));
|
||||
this.field_76860_g = p_i3214_1_;
|
||||
this.field_76847_f = 1;
|
||||
+ setup();
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void setup()
|
||||
+ {
|
||||
+ super.setup();
|
||||
+ field_76863_h = new int[tileSizeSquare];
|
||||
+ field_76864_i = new int[tileSizeSquare];
|
||||
|
||||
try
|
||||
{
|
||||
- BufferedImage var2 = ImageIO.read(Minecraft.class.getResource("/gui/items.png"));
|
||||
- int var3 = this.field_76850_b % 16 * 16;
|
||||
- int var4 = this.field_76850_b / 16 * 16;
|
||||
- var2.getRGB(var3, var4, 16, 16, this.field_76863_h, 0, 16);
|
||||
- var2 = ImageIO.read(Minecraft.class.getResource("/misc/dial.png"));
|
||||
- var2.getRGB(0, 0, 16, 16, this.field_76864_i, 0, 16);
|
||||
+ BufferedImage var2 = ImageIO.read(field_76860_g.field_71418_C.func_77292_e().func_77532_a("/gui/items.png"));
|
||||
+ int var3 = this.field_76850_b % 16 * tileSizeBase;
|
||||
+ int var4 = this.field_76850_b / 16 * tileSizeBase;
|
||||
+ var2.getRGB(var3, var4, tileSizeBase, tileSizeBase, this.field_76863_h, 0, tileSizeBase);
|
||||
+ var2 = ImageIO.read(field_76860_g.field_71418_C.func_77292_e().func_77532_a("/misc/dial.png"));
|
||||
+ if (var2.getWidth() != tileSizeBase)
|
||||
+ {
|
||||
+ BufferedImage tmp = new BufferedImage(tileSizeBase, tileSizeBase, 6);
|
||||
+ Graphics2D gfx = tmp.createGraphics();
|
||||
+ gfx.drawImage(var2, 0, 0, tileSizeBase, tileSizeBase, 0, 0, var2.getWidth(), var2.getHeight(), (ImageObserver)null);
|
||||
+ gfx.dispose();
|
||||
+ var2 = tmp;
|
||||
+ }
|
||||
+
|
||||
+ var2.getRGB(0, 0, tileSizeBase, tileSizeBase, this.field_76864_i, 0, tileSizeBase);
|
||||
}
|
||||
- catch (IOException var5)
|
||||
+ catch (Exception var5)
|
||||
{
|
||||
var5.printStackTrace();
|
||||
+ log.log(Level.WARNING, String.format("A problem occurred with the watch texture: animation will be disabled"), var5);
|
||||
+ setErrored(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,7 +107,7 @@
|
||||
double var5 = Math.sin(this.field_76861_j);
|
||||
double var7 = Math.cos(this.field_76861_j);
|
||||
|
||||
- for (int var9 = 0; var9 < 256; ++var9)
|
||||
+ for (int var9 = 0; var9 < tileSizeSquare; ++var9)
|
||||
{
|
||||
int var10 = this.field_76863_h[var9] >> 24 & 255;
|
||||
int var11 = this.field_76863_h[var9] >> 16 & 255;
|
||||
@@ -90,12 +116,12 @@
|
||||
|
||||
if (var11 == var13 && var12 == 0 && var13 > 0)
|
||||
{
|
||||
- double var14 = -((double)(var9 % 16) / 15.0D - 0.5D);
|
||||
- double var16 = (double)(var9 / 16) / 15.0D - 0.5D;
|
||||
+ double var14 = -((double)(var9 % tileSizeBase) / tileSizeMask - 0.5D);
|
||||
+ double var16 = (double)(var9 / tileSizeBase) / tileSizeMask - 0.5D;
|
||||
int var18 = var11;
|
||||
- int var19 = (int)((var14 * var7 + var16 * var5 + 0.5D) * 16.0D);
|
||||
- int var20 = (int)((var16 * var7 - var14 * var5 + 0.5D) * 16.0D);
|
||||
- int var21 = (var19 & 15) + (var20 & 15) * 16;
|
||||
+ int var19 = (int)((var14 * var7 + var16 * var5 + 0.5D) * tileSizeBase);
|
||||
+ int var20 = (int)((var16 * var7 - var14 * var5 + 0.5D) * tileSizeBase);
|
||||
+ int var21 = (var19 & tileSizeMask) + (var20 & tileSizeMask) * tileSizeBase;
|
||||
var10 = this.field_76864_i[var21] >> 24 & 255;
|
||||
var11 = (this.field_76864_i[var21] >> 16 & 255) * var11 / 255;
|
||||
var12 = (this.field_76864_i[var21] >> 8 & 255) * var18 / 255;
|
||||
@@ -1,97 +0,0 @@
|
||||
--- ../src-base/minecraft/net/minecraft/client/renderer/texturefx/TextureWaterFX.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/renderer/texturefx/TextureWaterFX.java
|
||||
@@ -1,11 +1,12 @@
|
||||
package net.minecraft.client.renderer.texturefx;
|
||||
|
||||
+import cpw.mods.fml.client.FMLTextureFX;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
-public class TextureWaterFX extends TextureFX
|
||||
+public class TextureWaterFX extends FMLTextureFX
|
||||
{
|
||||
protected float[] field_76855_g = new float[256];
|
||||
protected float[] field_76858_h = new float[256];
|
||||
@@ -16,6 +17,18 @@
|
||||
public TextureWaterFX()
|
||||
{
|
||||
super(Block.field_71942_A.field_72059_bZ);
|
||||
+ setup();
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void setup()
|
||||
+ {
|
||||
+ super.setup();
|
||||
+ field_76855_g = new float[tileSizeSquare];
|
||||
+ field_76858_h = new float[tileSizeSquare];
|
||||
+ field_76859_i = new float[tileSizeSquare];
|
||||
+ field_76856_j = new float[tileSizeSquare];
|
||||
+ field_76857_k = 0;
|
||||
}
|
||||
|
||||
public void func_76846_a()
|
||||
@@ -27,39 +40,39 @@
|
||||
int var5;
|
||||
int var6;
|
||||
|
||||
- for (var1 = 0; var1 < 16; ++var1)
|
||||
+ for (var1 = 0; var1 < tileSizeBase; ++var1)
|
||||
{
|
||||
- for (var2 = 0; var2 < 16; ++var2)
|
||||
+ for (var2 = 0; var2 < tileSizeBase; ++var2)
|
||||
{
|
||||
var3 = 0.0F;
|
||||
|
||||
for (int var4 = var1 - 1; var4 <= var1 + 1; ++var4)
|
||||
{
|
||||
- var5 = var4 & 15;
|
||||
- var6 = var2 & 15;
|
||||
- var3 += this.field_76855_g[var5 + var6 * 16];
|
||||
+ var5 = var4 & tileSizeMask;
|
||||
+ var6 = var2 & tileSizeMask;
|
||||
+ var3 += this.field_76855_g[var5 + var6 * tileSizeBase];
|
||||
}
|
||||
|
||||
- this.field_76858_h[var1 + var2 * 16] = var3 / 3.3F + this.field_76859_i[var1 + var2 * 16] * 0.8F;
|
||||
+ this.field_76858_h[var1 + var2 * tileSizeBase] = var3 / 3.3F + this.field_76859_i[var1 + var2 * tileSizeBase] * 0.8F;
|
||||
}
|
||||
}
|
||||
|
||||
- for (var1 = 0; var1 < 16; ++var1)
|
||||
+ for (var1 = 0; var1 < tileSizeBase; ++var1)
|
||||
{
|
||||
- for (var2 = 0; var2 < 16; ++var2)
|
||||
+ for (var2 = 0; var2 < tileSizeBase; ++var2)
|
||||
{
|
||||
- this.field_76859_i[var1 + var2 * 16] += this.field_76856_j[var1 + var2 * 16] * 0.05F;
|
||||
+ this.field_76859_i[var1 + var2 * tileSizeBase] += this.field_76856_j[var1 + var2 * tileSizeBase] * 0.05F;
|
||||
|
||||
- if (this.field_76859_i[var1 + var2 * 16] < 0.0F)
|
||||
+ if (this.field_76859_i[var1 + var2 * tileSizeBase] < 0.0F)
|
||||
{
|
||||
- this.field_76859_i[var1 + var2 * 16] = 0.0F;
|
||||
+ this.field_76859_i[var1 + var2 * tileSizeBase] = 0.0F;
|
||||
}
|
||||
|
||||
- this.field_76856_j[var1 + var2 * 16] -= 0.1F;
|
||||
+ this.field_76856_j[var1 + var2 * tileSizeBase] -= 0.1F;
|
||||
|
||||
if (Math.random() < 0.05D)
|
||||
{
|
||||
- this.field_76856_j[var1 + var2 * 16] = 0.5F;
|
||||
+ this.field_76856_j[var1 + var2 * tileSizeBase] = 0.5F;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -68,7 +81,7 @@
|
||||
this.field_76858_h = this.field_76855_g;
|
||||
this.field_76855_g = var12;
|
||||
|
||||
- for (var2 = 0; var2 < 256; ++var2)
|
||||
+ for (var2 = 0; var2 < tileSizeSquare; ++var2)
|
||||
{
|
||||
var3 = this.field_76855_g[var2];
|
||||
|
||||
-100
@@ -1,100 +0,0 @@
|
||||
--- ../src-base/minecraft/net/minecraft/client/renderer/texturefx/TextureWaterFlowFX.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/renderer/texturefx/TextureWaterFlowFX.java
|
||||
@@ -1,11 +1,12 @@
|
||||
package net.minecraft.client.renderer.texturefx;
|
||||
|
||||
+import cpw.mods.fml.client.FMLTextureFX;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
-public class TextureWaterFlowFX extends TextureFX
|
||||
+public class TextureWaterFlowFX extends FMLTextureFX
|
||||
{
|
||||
protected float[] field_76880_g = new float[256];
|
||||
protected float[] field_76883_h = new float[256];
|
||||
@@ -17,6 +18,18 @@
|
||||
{
|
||||
super(Block.field_71942_A.field_72059_bZ + 1);
|
||||
this.field_76849_e = 2;
|
||||
+ setup();
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void setup()
|
||||
+ {
|
||||
+ super.setup();
|
||||
+ field_76880_g = new float[tileSizeSquare];
|
||||
+ field_76883_h = new float[tileSizeSquare];
|
||||
+ field_76884_i = new float[tileSizeSquare];
|
||||
+ field_76881_j = new float[tileSizeSquare];
|
||||
+ field_76882_k = 0;
|
||||
}
|
||||
|
||||
public void func_76846_a()
|
||||
@@ -28,39 +41,39 @@
|
||||
int var5;
|
||||
int var6;
|
||||
|
||||
- for (var1 = 0; var1 < 16; ++var1)
|
||||
+ for (var1 = 0; var1 < tileSizeBase; ++var1)
|
||||
{
|
||||
- for (var2 = 0; var2 < 16; ++var2)
|
||||
+ for (var2 = 0; var2 < tileSizeBase; ++var2)
|
||||
{
|
||||
var3 = 0.0F;
|
||||
|
||||
for (int var4 = var2 - 2; var4 <= var2; ++var4)
|
||||
{
|
||||
- var5 = var1 & 15;
|
||||
- var6 = var4 & 15;
|
||||
- var3 += this.field_76880_g[var5 + var6 * 16];
|
||||
+ var5 = var1 & tileSizeMask;
|
||||
+ var6 = var4 & tileSizeMask;
|
||||
+ var3 += this.field_76880_g[var5 + var6 * tileSizeBase];
|
||||
}
|
||||
|
||||
- this.field_76883_h[var1 + var2 * 16] = var3 / 3.2F + this.field_76884_i[var1 + var2 * 16] * 0.8F;
|
||||
+ this.field_76883_h[var1 + var2 * tileSizeBase] = var3 / 3.2F + this.field_76884_i[var1 + var2 * tileSizeBase] * 0.8F;
|
||||
}
|
||||
}
|
||||
|
||||
- for (var1 = 0; var1 < 16; ++var1)
|
||||
+ for (var1 = 0; var1 < tileSizeBase; ++var1)
|
||||
{
|
||||
- for (var2 = 0; var2 < 16; ++var2)
|
||||
+ for (var2 = 0; var2 < tileSizeBase; ++var2)
|
||||
{
|
||||
- this.field_76884_i[var1 + var2 * 16] += this.field_76881_j[var1 + var2 * 16] * 0.05F;
|
||||
+ this.field_76884_i[var1 + var2 * tileSizeBase] += this.field_76881_j[var1 + var2 * tileSizeBase] * 0.05F;
|
||||
|
||||
- if (this.field_76884_i[var1 + var2 * 16] < 0.0F)
|
||||
+ if (this.field_76884_i[var1 + var2 * tileSizeBase] < 0.0F)
|
||||
{
|
||||
- this.field_76884_i[var1 + var2 * 16] = 0.0F;
|
||||
+ this.field_76884_i[var1 + var2 * tileSizeBase] = 0.0F;
|
||||
}
|
||||
|
||||
- this.field_76881_j[var1 + var2 * 16] -= 0.3F;
|
||||
+ this.field_76881_j[var1 + var2 * tileSizeBase] -= 0.3F;
|
||||
|
||||
if (Math.random() < 0.2D)
|
||||
{
|
||||
- this.field_76881_j[var1 + var2 * 16] = 0.5F;
|
||||
+ this.field_76881_j[var1 + var2 * tileSizeBase] = 0.5F;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -69,9 +82,9 @@
|
||||
this.field_76883_h = this.field_76880_g;
|
||||
this.field_76880_g = var12;
|
||||
|
||||
- for (var2 = 0; var2 < 256; ++var2)
|
||||
+ for (var2 = 0; var2 < tileSizeSquare; ++var2)
|
||||
{
|
||||
- var3 = this.field_76880_g[var2 - this.field_76882_k * 16 & 255];
|
||||
+ var3 = this.field_76880_g[var2 - this.field_76882_k * tileSizeBase & tileSizeSquareMask];
|
||||
|
||||
if (var3 > 1.0F)
|
||||
{
|
||||
@@ -14,4 +14,4 @@
|
||||
+ if (FMLClientHandler.instance().isLoading()) return;
|
||||
try
|
||||
{
|
||||
PrintWriter var1 = new PrintWriter(new FileWriter(this.field_74354_ai));
|
||||
PrintWriter printwriter = new PrintWriter(new FileWriter(this.field_74354_ai));
|
||||
@@ -10,33 +10,33 @@
|
||||
import net.minecraft.entity.boss.EntityDragon;
|
||||
import net.minecraft.entity.boss.EntityWither;
|
||||
import net.minecraft.entity.item.EntityBoat;
|
||||
@@ -103,9 +106,10 @@
|
||||
{
|
||||
Entity var2 = null;
|
||||
@@ -119,9 +122,10 @@
|
||||
p_75615_0_.func_82580_o("Type");
|
||||
}
|
||||
|
||||
+ Class var3 = null;
|
||||
+ Class oclass = null;
|
||||
try
|
||||
{
|
||||
- Class var3 = (Class)field_75625_b.get(p_75615_0_.func_74779_i("id"));
|
||||
+ var3 = (Class)field_75625_b.get(p_75615_0_.func_74779_i("id"));
|
||||
- Class oclass = (Class)field_75625_b.get(p_75615_0_.func_74779_i("id"));
|
||||
+ oclass = (Class)field_75625_b.get(p_75615_0_.func_74779_i("id"));
|
||||
|
||||
if (var3 != null)
|
||||
if (oclass != null)
|
||||
{
|
||||
@@ -119,7 +123,17 @@
|
||||
@@ -135,7 +139,17 @@
|
||||
|
||||
if (var2 != null)
|
||||
if (entity != null)
|
||||
{
|
||||
- var2.func_70020_e(p_75615_0_);
|
||||
- entity.func_70020_e(p_75615_0_);
|
||||
+ try
|
||||
+ {
|
||||
+ var2.func_70020_e(p_75615_0_);
|
||||
+ entity.func_70020_e(p_75615_0_);
|
||||
+ }
|
||||
+ catch (Exception e)
|
||||
+ {
|
||||
+ FMLLog.log(Level.SEVERE, 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"), var3.getName());
|
||||
+ var2 = null;
|
||||
+ p_75615_0_.func_74779_i("id"), oclass.getName());
|
||||
+ entity = null;
|
||||
+ }
|
||||
}
|
||||
else
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
+ FMLNetworkHandler.makeEntitySpawnAdjustment(this.field_73132_a.field_70157_k, p_73117_1_, this.field_73128_d, this.field_73129_e, this.field_73126_f);
|
||||
+ }
|
||||
|
||||
if (this.field_73143_t && !(var6 instanceof Packet24MobSpawn))
|
||||
if (this.field_73143_t && !(packet instanceof Packet24MobSpawn))
|
||||
{
|
||||
@@ -424,6 +434,13 @@
|
||||
if (this.field_73132_a.field_70128_L)
|
||||
|
||||
@@ -16,5 +16,5 @@
|
||||
+ GameRegistry.onPickupNotification(p_70100_1_, this);
|
||||
+
|
||||
this.func_85030_a("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, var3);
|
||||
p_70100_1_.func_71001_a(this, i);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+++ ../src-work/minecraft/net/minecraft/entity/monster/EntitySlime.java
|
||||
@@ -242,7 +242,7 @@
|
||||
{
|
||||
Chunk var1 = 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_72938_d(MathHelper.func_76128_c(this.field_70165_t), 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))
|
||||
|
||||
@@ -18,10 +18,10 @@
|
||||
|
||||
@@ -422,6 +423,7 @@
|
||||
|
||||
MerchantRecipeList var2;
|
||||
var2 = new MerchantRecipeList();
|
||||
+ VillagerRegistry.manageVillagerTrades(var2, this, this.func_70946_n(), this.field_70146_Z);
|
||||
int var6;
|
||||
MerchantRecipeList merchantrecipelist;
|
||||
merchantrecipelist = new MerchantRecipeList();
|
||||
+ VillagerRegistry.manageVillagerTrades(merchantrecipelist, this, this.func_70946_n(), this.field_70146_Z);
|
||||
int j;
|
||||
label50:
|
||||
|
||||
@@ -637,7 +639,7 @@
|
||||
|
||||
@@ -8,15 +8,15 @@
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.util.Iterator;
|
||||
@@ -173,6 +175,7 @@
|
||||
@@ -175,6 +177,7 @@
|
||||
|
||||
public void func_70071_h_()
|
||||
{
|
||||
+ FMLCommonHandler.instance().onPlayerPreTick(this);
|
||||
if (this.field_71074_e != null)
|
||||
{
|
||||
ItemStack var1 = this.field_71071_by.func_70448_g();
|
||||
@@ -296,6 +299,7 @@
|
||||
ItemStack itemstack = this.field_71071_by.func_70448_g();
|
||||
@@ -298,6 +301,7 @@
|
||||
{
|
||||
this.field_71100_bB.func_75118_a(this);
|
||||
}
|
||||
@@ -24,7 +24,7 @@
|
||||
}
|
||||
|
||||
public int func_82145_z()
|
||||
@@ -1822,4 +1826,9 @@
|
||||
@@ -1839,4 +1843,9 @@
|
||||
{
|
||||
return this.func_82241_s(1);
|
||||
}
|
||||
|
||||
@@ -14,4 +14,4 @@
|
||||
+ GameRegistry.onItemCrafted(p_82870_1_, p_82870_2_, field_75239_a);
|
||||
this.func_75208_c(p_82870_2_);
|
||||
|
||||
for (int var3 = 0; var3 < this.field_75239_a.func_70302_i_(); ++var3)
|
||||
for (int i = 0; i < this.field_75239_a.func_70302_i_(); ++i)
|
||||
@@ -7,7 +7,7 @@
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.util.List;
|
||||
@@ -207,6 +208,8 @@
|
||||
@@ -214,6 +215,8 @@
|
||||
}
|
||||
|
||||
field_77698_e[256 + p_i3659_1_] = this;
|
||||
@@ -15,4 +15,4 @@
|
||||
+ GameData.newItemAdded(this);
|
||||
}
|
||||
|
||||
public Item func_77665_c(int p_77665_1_)
|
||||
public Item func_77625_d(int p_77625_1_)
|
||||
@@ -1,11 +1,11 @@
|
||||
--- ../src-base/minecraft/net/minecraft/item/ItemMap.java
|
||||
+++ ../src-work/minecraft/net/minecraft/item/ItemMap.java
|
||||
@@ -52,7 +52,7 @@
|
||||
int var5 = 128 * (1 << var4.field_76197_d);
|
||||
var4.field_76201_a = Math.round((float)p_77873_2_.func_72912_H().func_76079_c() / (float)var5) * var5;
|
||||
var4.field_76199_b = Math.round((float)(p_77873_2_.func_72912_H().func_76074_e() / var5)) * var5;
|
||||
- var4.field_76200_c = (byte)p_77873_2_.field_73011_w.field_76574_g;
|
||||
+ var4.field_76200_c = p_77873_2_.field_73011_w.field_76574_g;
|
||||
var4.func_76185_a();
|
||||
p_77873_2_.func_72823_a(var3, var4);
|
||||
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;
|
||||
mapdata.func_76185_a();
|
||||
p_77873_2_.func_72823_a(s, mapdata);
|
||||
}
|
||||
@@ -37,16 +37,16 @@
|
||||
|
||||
public void func_72529_d()
|
||||
{
|
||||
- String var1 = this.field_72534_f.func_71203_ab().func_72399_a(this.field_72538_b.func_74430_c(), this.field_72543_h);
|
||||
- String s = this.field_72534_f.func_71203_ab().func_72399_a(this.field_72538_b.func_74430_c(), this.field_72543_h);
|
||||
+ FMLNetworkHandler.onConnectionReceivedFromClient(this, this.field_72534_f, this.field_72538_b.func_74430_c(), this.field_72543_h);
|
||||
+ }
|
||||
+
|
||||
+ public void completeConnection(String var1)
|
||||
+ public void completeConnection(String s)
|
||||
+ {
|
||||
|
||||
if (var1 != null)
|
||||
if (s != null)
|
||||
{
|
||||
@@ -272,4 +283,21 @@
|
||||
@@ -272,4 +283,22 @@
|
||||
{
|
||||
return p_72531_0_.field_72544_i = p_72531_1_;
|
||||
}
|
||||
@@ -63,8 +63,9 @@
|
||||
+ // NOOP for login
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public EntityPlayer getPlayer()
|
||||
+ {
|
||||
+ return null;
|
||||
+ };
|
||||
+ }
|
||||
}
|
||||
@@ -35,8 +35,8 @@
|
||||
+
|
||||
+ public void handleVanilla250Packet(Packet250CustomPayload p_72501_1_)
|
||||
{
|
||||
DataInputStream var2;
|
||||
ItemStack var3;
|
||||
DataInputStream datainputstream;
|
||||
ItemStack itemstack;
|
||||
@@ -1156,4 +1165,18 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,10 +10,10 @@
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.util.ReportedException;
|
||||
@@ -51,6 +53,7 @@
|
||||
throw new ReportedException(var4);
|
||||
throw new ReportedException(crashreport);
|
||||
}
|
||||
|
||||
+ FMLLog.log(Level.SEVERE, var5, "A critical server error occured handling a packet, kicking %s", var2.getPlayer().field_70157_k);
|
||||
field_71751_a.log(Level.WARNING, "Failed to handle packet for " + var2.field_72574_e.func_70023_ak() + "/" + var2.field_72574_e.func_71114_r() + ": " + var5, var5);
|
||||
var2.func_72565_c("Internal server error");
|
||||
+ FMLLog.log(Level.SEVERE, exception, "A critical server error occured handling a packet, kicking %s", netserverhandler.getPlayer().field_70157_k);
|
||||
field_71751_a.log(Level.WARNING, "Failed to handle packet for " + netserverhandler.field_72574_e.func_70023_ak() + "/" + netserverhandler.field_72574_e.func_71114_r() + ": " + exception, exception);
|
||||
netserverhandler.func_72565_c("Internal server error");
|
||||
}
|
||||
@@ -32,9 +32,9 @@
|
||||
|
||||
public void func_73267_a(DataInputStream p_73267_1_) throws IOException
|
||||
@@ -46,7 +54,16 @@
|
||||
this.field_73560_c = (var3 & 8) == 8;
|
||||
int var4 = var3 & -9;
|
||||
this.field_73557_d = EnumGameType.func_77146_a(var4);
|
||||
this.field_73560_c = (b0 & 8) == 8;
|
||||
int i = b0 & -9;
|
||||
this.field_73557_d = EnumGameType.func_77146_a(i);
|
||||
- this.field_73558_e = p_73267_1_.readByte();
|
||||
+
|
||||
+ if (vanillaCompatible)
|
||||
@@ -52,7 +52,7 @@
|
||||
@@ -64,7 +81,16 @@
|
||||
}
|
||||
|
||||
p_73273_1_.writeByte(var2);
|
||||
p_73273_1_.writeByte(i);
|
||||
- p_73273_1_.writeByte(this.field_73558_e);
|
||||
+
|
||||
+ if (vanillaCompatible)
|
||||
@@ -68,10 +68,10 @@
|
||||
p_73273_1_.writeByte(this.field_73556_g);
|
||||
p_73273_1_.writeByte(this.field_73562_h);
|
||||
@@ -84,6 +110,6 @@
|
||||
var1 = this.field_73559_b.func_77127_a().length();
|
||||
i = this.field_73559_b.func_77127_a().length();
|
||||
}
|
||||
|
||||
- return 6 + 2 * var1 + 4 + 4 + 1 + 1 + 1;
|
||||
+ return 6 + 2 * var1 + 4 + 4 + 1 + 1 + 1 + (vanillaCompatible ? 0 : 3);
|
||||
- return 6 + 2 * i + 4 + 4 + 1 + 1 + 1;
|
||||
+ return 6 + 2 * i + 4 + 4 + 1 + 1 + 1 + (vanillaCompatible ? 0 : 3);
|
||||
}
|
||||
}
|
||||
@@ -9,19 +9,19 @@
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.awt.GraphicsEnvironment;
|
||||
@@ -378,7 +381,11 @@
|
||||
@@ -379,7 +382,11 @@
|
||||
{
|
||||
if (this.func_71197_b())
|
||||
{
|
||||
+ FMLCommonHandler.instance().handleServerStarted();
|
||||
+
|
||||
long var1 = System.currentTimeMillis();
|
||||
long i = System.currentTimeMillis();
|
||||
+
|
||||
+ FMLCommonHandler.instance().onWorldLoadTick(field_71305_c);
|
||||
|
||||
for (long var50 = 0L; this.field_71317_u; this.field_71296_Q = true)
|
||||
for (long k0 = 0L; this.field_71317_u; this.field_71296_Q = true)
|
||||
{
|
||||
@@ -417,6 +424,7 @@
|
||||
@@ -418,6 +425,7 @@
|
||||
|
||||
Thread.sleep(1L);
|
||||
}
|
||||
@@ -29,18 +29,18 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -425,6 +433,10 @@
|
||||
@@ -426,6 +434,10 @@
|
||||
}
|
||||
catch (Throwable var48)
|
||||
catch (Throwable throwable)
|
||||
{
|
||||
+ if (FMLCommonHandler.instance().shouldServerBeKilledQuietly())
|
||||
+ {
|
||||
+ return;
|
||||
+ }
|
||||
var48.printStackTrace();
|
||||
field_71306_a.log(Level.SEVERE, "Encountered an unexpected exception " + var48.getClass().getSimpleName(), var48);
|
||||
CrashReport var2 = null;
|
||||
@@ -455,6 +467,10 @@
|
||||
throwable.printStackTrace();
|
||||
field_71306_a.log(Level.SEVERE, "Encountered an unexpected exception " + throwable.getClass().getSimpleName(), throwable);
|
||||
CrashReport crashreport = null;
|
||||
@@ -456,6 +468,10 @@
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -51,18 +51,26 @@
|
||||
this.func_71260_j();
|
||||
this.field_71316_v = true;
|
||||
}
|
||||
@@ -480,8 +496,10 @@
|
||||
@@ -465,6 +481,7 @@
|
||||
}
|
||||
finally
|
||||
{
|
||||
+ FMLCommonHandler.instance().handleServerStopped();
|
||||
this.func_71240_o();
|
||||
}
|
||||
}
|
||||
@@ -481,8 +498,10 @@
|
||||
|
||||
public void func_71217_p()
|
||||
{
|
||||
+ FMLCommonHandler.instance().rescheduleTicks(Side.SERVER);
|
||||
long var1 = System.nanoTime();
|
||||
long i = System.nanoTime();
|
||||
AxisAlignedBB.func_72332_a().func_72298_a();
|
||||
+ FMLCommonHandler.instance().onPreServerTick();
|
||||
++this.field_71315_w;
|
||||
|
||||
if (this.field_71295_T)
|
||||
@@ -527,6 +545,7 @@
|
||||
@@ -528,6 +547,7 @@
|
||||
|
||||
this.field_71304_b.func_76319_b();
|
||||
this.field_71304_b.func_76319_b();
|
||||
@@ -70,23 +78,23 @@
|
||||
}
|
||||
|
||||
public void func_71190_q()
|
||||
@@ -554,6 +573,7 @@
|
||||
@@ -555,6 +575,7 @@
|
||||
}
|
||||
|
||||
this.field_71304_b.func_76320_a("tick");
|
||||
+ FMLCommonHandler.instance().onPreWorldTick(var4);
|
||||
CrashReport var6;
|
||||
+ FMLCommonHandler.instance().onPreWorldTick(worldserver);
|
||||
CrashReport crashreport;
|
||||
|
||||
try
|
||||
@@ -578,6 +598,7 @@
|
||||
throw new ReportedException(var6);
|
||||
@@ -579,6 +600,7 @@
|
||||
throw new ReportedException(crashreport);
|
||||
}
|
||||
|
||||
+ FMLCommonHandler.instance().onPostWorldTick(var4);
|
||||
+ FMLCommonHandler.instance().onPostWorldTick(worldserver);
|
||||
this.field_71304_b.func_76319_b();
|
||||
this.field_71304_b.func_76320_a("tracker");
|
||||
var4.func_73039_n().func_72788_a();
|
||||
@@ -705,7 +726,7 @@
|
||||
worldserver.func_73039_n().func_72788_a();
|
||||
@@ -706,7 +728,7 @@
|
||||
|
||||
public String getServerModName()
|
||||
{
|
||||
@@ -95,7 +103,7 @@
|
||||
}
|
||||
|
||||
public CrashReport func_71230_b(CrashReport p_71230_1_)
|
||||
@@ -1146,6 +1167,13 @@
|
||||
@@ -1147,6 +1169,13 @@
|
||||
@SideOnly(Side.SERVER)
|
||||
public static void main(String[] p_main_0_)
|
||||
{
|
||||
|
||||
@@ -8,10 +8,10 @@
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.io.IOException;
|
||||
@@ -53,6 +54,7 @@
|
||||
catch (Exception var6)
|
||||
catch (Exception exception)
|
||||
{
|
||||
var3.func_72527_a("Internal server error");
|
||||
+ FMLLog.log(Level.SEVERE, var6, "Error handling login related packet - connection from %s refused", var3.func_72528_e());
|
||||
field_71777_a.log(Level.WARNING, "Failed to handle packet for " + var3.func_72528_e() + ": " + var6, var6);
|
||||
netloginhandler.func_72527_a("Internal server error");
|
||||
+ FMLLog.log(Level.SEVERE, exception, "Error handling login related packet - connection from %s refused", netloginhandler.func_72528_e());
|
||||
field_71777_a.log(Level.WARNING, "Failed to handle packet for " + netloginhandler.func_72528_e() + ": " + exception, exception);
|
||||
}
|
||||
|
||||
@@ -12,11 +12,11 @@
|
||||
@@ -12,10 +14,7 @@
|
||||
public static void func_73699_a()
|
||||
{
|
||||
ConsoleLogFormatter var0 = new ConsoleLogFormatter();
|
||||
ConsoleLogFormatter consolelogformatter = new ConsoleLogFormatter();
|
||||
- field_73700_a.setUseParentHandlers(false);
|
||||
- ConsoleHandler var1 = new ConsoleHandler();
|
||||
- var1.setFormatter(var0);
|
||||
- field_73700_a.addHandler(var1);
|
||||
- ConsoleHandler consolehandler = new ConsoleHandler();
|
||||
- consolehandler.setFormatter(consolelogformatter);
|
||||
- field_73700_a.addHandler(consolehandler);
|
||||
+ field_73700_a.setParent(FMLLog.getLogger());
|
||||
|
||||
try
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
+ FMLCommonHandler.instance().onServerStarted();
|
||||
|
||||
this.func_71210_a(new DedicatedPlayerList(this));
|
||||
long var4 = System.nanoTime();
|
||||
long j = System.nanoTime();
|
||||
@@ -187,6 +192,8 @@
|
||||
this.field_71339_n.func_72602_a();
|
||||
}
|
||||
|
||||
+10
-10
@@ -13,7 +13,7 @@
|
||||
|
||||
p_72355_2_.func_71116_b();
|
||||
+
|
||||
+ FMLNetworkHandler.handlePlayerLogin(p_72355_2_, var6, p_72355_1_);
|
||||
+ FMLNetworkHandler.handlePlayerLogin(p_72355_2_, netserverhandler, p_72355_1_);
|
||||
}
|
||||
|
||||
public void func_72364_a(WorldServer[] p_72364_1_)
|
||||
@@ -23,19 +23,19 @@
|
||||
{
|
||||
+ GameRegistry.onPlayerLogout(p_72367_1_);
|
||||
this.func_72391_b(p_72367_1_);
|
||||
WorldServer var2 = p_72367_1_.func_71121_q();
|
||||
var2.func_72900_e(p_72367_1_);
|
||||
WorldServer worldserver = p_72367_1_.func_71121_q();
|
||||
worldserver.func_72900_e(p_72367_1_);
|
||||
@@ -324,6 +329,7 @@
|
||||
var8.func_72838_d(var7);
|
||||
this.field_72404_b.add(var7);
|
||||
var7.func_71116_b();
|
||||
+ GameRegistry.onPlayerRespawn(var7);
|
||||
return var7;
|
||||
worldserver.func_72838_d(entityplayermp1);
|
||||
this.field_72404_b.add(entityplayermp1);
|
||||
entityplayermp1.func_71116_b();
|
||||
+ GameRegistry.onPlayerRespawn(entityplayermp1);
|
||||
return entityplayermp1;
|
||||
}
|
||||
|
||||
@@ -349,6 +355,8 @@
|
||||
PotionEffect var7 = (PotionEffect)var6.next();
|
||||
p_72356_1_.field_71135_a.func_72567_b(new Packet41EntityEffect(p_72356_1_.field_70157_k, var7));
|
||||
PotionEffect potioneffect = (PotionEffect)iterator.next();
|
||||
p_72356_1_.field_71135_a.func_72567_b(new Packet41EntityEffect(p_72356_1_.field_70157_k, potioneffect));
|
||||
}
|
||||
+
|
||||
+ GameRegistry.onPlayerChangedDimension(p_72356_1_);
|
||||
|
||||
@@ -15,42 +15,33 @@
|
||||
import net.minecraft.crash.CrashReportCategory;
|
||||
@@ -82,9 +85,11 @@
|
||||
{
|
||||
TileEntity var1 = null;
|
||||
TileEntity tileentity = null;
|
||||
|
||||
+ Class var2 = null;
|
||||
+ Class oclass = null;
|
||||
+
|
||||
try
|
||||
{
|
||||
- Class var2 = (Class)field_70326_a.get(p_70317_0_.func_74779_i("id"));
|
||||
+ var2 = (Class)field_70326_a.get(p_70317_0_.func_74779_i("id"));
|
||||
- Class oclass = (Class)field_70326_a.get(p_70317_0_.func_74779_i("id"));
|
||||
+ oclass = (Class)field_70326_a.get(p_70317_0_.func_74779_i("id"));
|
||||
|
||||
if (var2 != null)
|
||||
if (oclass != null)
|
||||
{
|
||||
@@ -98,7 +103,17 @@
|
||||
|
||||
if (var1 != null)
|
||||
if (tileentity != null)
|
||||
{
|
||||
- var1.func_70307_a(p_70317_0_);
|
||||
- tileentity.func_70307_a(p_70317_0_);
|
||||
+ try
|
||||
+ {
|
||||
+ var1.func_70307_a(p_70317_0_);
|
||||
+ tileentity.func_70307_a(p_70317_0_);
|
||||
+ }
|
||||
+ catch (Exception e)
|
||||
+ {
|
||||
+ FMLLog.log(Level.SEVERE, e,
|
||||
+ "A TileEntity %s(%s) has thrown an exception during loading, its state cannot be restored. Report this to the mod author",
|
||||
+ p_70317_0_.func_74779_i("id"), var2.getName());
|
||||
+ var1 = null;
|
||||
+ p_70317_0_.func_74779_i("id"), oclass.getName());
|
||||
+ tileentity = null;
|
||||
+ }
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -183,7 +198,7 @@
|
||||
public void func_85027_a(CrashReportCategory p_85027_1_)
|
||||
{
|
||||
p_85027_1_.func_71500_a("Name", new CallableTileEntityName(this));
|
||||
- CrashReportCategory.func_85068_a(p_85027_1_, this.field_70329_l, this.field_70330_m, this.field_70327_n, this.field_70324_q.field_71990_ca, this.field_70325_p);
|
||||
+ CrashReportCategory.func_85068_a(p_85027_1_, this.field_70329_l, this.field_70330_m, this.field_70327_n, this.field_70324_q != null ? this.field_70324_q.field_71990_ca : 0, this.field_70325_p);
|
||||
}
|
||||
|
||||
static Map func_85028_t()
|
||||
@@ -7,19 +7,19 @@
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
@@ -287,7 +288,15 @@
|
||||
@@ -308,7 +309,15 @@
|
||||
}
|
||||
}
|
||||
|
||||
- return var2 instanceof ItemTool && ((ItemTool)var2).func_77861_e().equals("WOOD") ? 200 : (var2 instanceof ItemSword && ((ItemSword)var2).func_77825_f().equals("WOOD") ? 200 : (var2 instanceof ItemHoe && ((ItemHoe)var2).func_77842_f().equals("WOOD") ? 200 : (var1 == Item.field_77669_D.field_77779_bT ? 100 : (var1 == Item.field_77705_m.field_77779_bT ? 1600 : (var1 == Item.field_77775_ay.field_77779_bT ? 20000 : (var1 == Block.field_71987_y.field_71990_ca ? 100 : (var1 == Item.field_77731_bo.field_77779_bT ? 2400 : 0)))))));
|
||||
+ if (var2 instanceof ItemTool && ((ItemTool) var2).func_77861_e().equals("WOOD")) return 200;
|
||||
+ if (var2 instanceof ItemSword && ((ItemSword) var2).func_77825_f().equals("WOOD")) return 200;
|
||||
+ if (var2 instanceof ItemHoe && ((ItemHoe) var2).func_77842_f().equals("WOOD")) return 200;
|
||||
+ if (var1 == Item.field_77669_D.field_77779_bT) return 100;
|
||||
+ if (var1 == Item.field_77705_m.field_77779_bT) return 1600;
|
||||
+ if (var1 == Item.field_77775_ay.field_77779_bT) return 20000;
|
||||
+ if (var1 == Block.field_71987_y.field_71990_ca) return 100;
|
||||
+ if (var1 == Item.field_77731_bo.field_77779_bT) return 2400;
|
||||
- return item instanceof ItemTool && ((ItemTool)item).func_77861_e().equals("WOOD") ? 200 : (item instanceof ItemSword && ((ItemSword)item).func_77825_f().equals("WOOD") ? 200 : (item instanceof ItemHoe && ((ItemHoe)item).func_77842_f().equals("WOOD") ? 200 : (i == Item.field_77669_D.field_77779_bT ? 100 : (i == Item.field_77705_m.field_77779_bT ? 1600 : (i == Item.field_77775_ay.field_77779_bT ? 20000 : (i == Block.field_71987_y.field_71990_ca ? 100 : (i == Item.field_77731_bo.field_77779_bT ? 2400 : 0)))))));
|
||||
+ if (item instanceof ItemTool && ((ItemTool) item).func_77861_e().equals("WOOD")) return 200;
|
||||
+ if (item instanceof ItemSword && ((ItemSword) item).func_77825_f().equals("WOOD")) return 200;
|
||||
+ if (item instanceof ItemHoe && ((ItemHoe) item).func_77842_f().equals("WOOD")) return 200;
|
||||
+ if (i == Item.field_77669_D.field_77779_bT) return 100;
|
||||
+ if (i == Item.field_77705_m.field_77779_bT) return 1600;
|
||||
+ if (i == Item.field_77775_ay.field_77779_bT) return 20000;
|
||||
+ if (i == Block.field_71987_y.field_71990_ca) return 100;
|
||||
+ if (i == Item.field_77731_bo.field_77779_bT) return 2400;
|
||||
+ return GameRegistry.getFuelValue(p_70398_0_);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,15 +7,15 @@
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.io.BufferedReader;
|
||||
@@ -80,6 +81,7 @@
|
||||
@@ -93,6 +94,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
+ LanguageRegistry.instance().loadLanguageTable(p_74812_1_, p_74812_2_);
|
||||
}
|
||||
|
||||
public void func_74810_a(String p_74810_1_)
|
||||
@@ -138,7 +140,6 @@
|
||||
public synchronized void func_74810_a(String p_74810_1_, boolean p_74810_2_)
|
||||
@@ -170,7 +172,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- ../src-base/minecraft/net/minecraft/world/World.java
|
||||
+++ ../src-work/minecraft/net/minecraft/world/World.java
|
||||
@@ -1797,13 +1797,14 @@
|
||||
@@ -1754,13 +1754,14 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
this.field_72984_F.func_76318_c("pendingTileEntities");
|
||||
|
||||
@@ -3637,7 +3638,7 @@
|
||||
@@ -3673,7 +3674,7 @@
|
||||
@SideOnly(Side.CLIENT)
|
||||
public double func_72919_O()
|
||||
{
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
{
|
||||
- if (this.field_76579_a.func_72912_H().func_76067_t() == WorldType.field_77138_c)
|
||||
- {
|
||||
- FlatGeneratorInfo var1 = FlatGeneratorInfo.func_82651_a(this.field_76579_a.func_72912_H().func_82571_y());
|
||||
- this.field_76578_c = new WorldChunkManagerHell(BiomeGenBase.field_76773_a[var1.func_82648_a()], 0.5F, 0.5F);
|
||||
- FlatGeneratorInfo flatgeneratorinfo = FlatGeneratorInfo.func_82651_a(this.field_76579_a.func_72912_H().func_82571_y());
|
||||
- this.field_76578_c = new WorldChunkManagerHell(BiomeGenBase.field_76773_a[flatgeneratorinfo.func_82648_a()], 0.5F, 0.5F);
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
|
||||
@@ -58,8 +58,8 @@
|
||||
+ {
|
||||
+ if (this == field_77138_c)
|
||||
+ {
|
||||
+ FlatGeneratorInfo var1 = FlatGeneratorInfo.func_82651_a(world.func_72912_H().func_82571_y());
|
||||
+ return new WorldChunkManagerHell(BiomeGenBase.field_76773_a[var1.func_82648_a()], 0.5F, 0.5F);
|
||||
+ FlatGeneratorInfo flatgeneratorinfo = FlatGeneratorInfo.func_82651_a(world.func_72912_H().func_82571_y());
|
||||
+ return new WorldChunkManagerHell(BiomeGenBase.field_76773_a[flatgeneratorinfo.func_82648_a()], 0.5F, 0.5F);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
@@ -82,9 +82,9 @@
|
||||
+ return this == field_77138_c ? 0.0D : 63.0D;
|
||||
+ }
|
||||
+
|
||||
+ public boolean hasVoidParticles(boolean var1)
|
||||
+ public boolean hasVoidParticles(boolean flag)
|
||||
+ {
|
||||
+ return this != field_77138_c && !var1;
|
||||
+ return this != field_77138_c && !flag;
|
||||
+ }
|
||||
+
|
||||
+ public double voidFadeMagnitude()
|
||||
|
||||
@@ -13,46 +13,46 @@
|
||||
import net.minecraft.nbt.CompressedStreamTools;
|
||||
@@ -247,10 +251,20 @@
|
||||
p_75820_1_.field_76644_m = true;
|
||||
var11 = new NBTTagCompound();
|
||||
nbttagcompound1 = new NBTTagCompound();
|
||||
|
||||
- if (var21.func_70039_c(var11))
|
||||
- if (entity.func_70039_c(nbttagcompound1))
|
||||
- {
|
||||
- var16.func_74742_a(var11);
|
||||
- nbttaglist1.func_74742_a(nbttagcompound1);
|
||||
- }
|
||||
+
|
||||
+ try
|
||||
+ {
|
||||
+ if (var21.func_70039_c(var11))
|
||||
+ if (entity.func_70039_c(nbttagcompound1))
|
||||
+ {
|
||||
+ var16.func_74742_a(var11);
|
||||
+ nbttaglist1.func_74742_a(nbttagcompound1);
|
||||
+ }
|
||||
+ }
|
||||
+ catch (Exception e)
|
||||
+ {
|
||||
+ FMLLog.log(Level.SEVERE, e,
|
||||
+ "An Entity type %s has thrown an exception trying to write state. It will not persist. Report this to the mod author",
|
||||
+ var21.getClass().getName());
|
||||
+ entity.getClass().getName());
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -262,8 +276,17 @@
|
||||
{
|
||||
TileEntity var22 = (TileEntity)var18.next();
|
||||
var11 = new NBTTagCompound();
|
||||
- var22.func_70310_b(var11);
|
||||
- var17.func_74742_a(var11);
|
||||
TileEntity tileentity = (TileEntity)iterator.next();
|
||||
nbttagcompound1 = new NBTTagCompound();
|
||||
- tileentity.func_70310_b(nbttagcompound1);
|
||||
- nbttaglist2.func_74742_a(nbttagcompound1);
|
||||
+ try
|
||||
+ {
|
||||
+ var22.func_70310_b(var11);
|
||||
+ var17.func_74742_a(var11);
|
||||
+ tileentity.func_70310_b(nbttagcompound1);
|
||||
+ nbttaglist2.func_74742_a(nbttagcompound1);
|
||||
+ }
|
||||
+ catch (Exception e)
|
||||
+ {
|
||||
+ FMLLog.log(Level.SEVERE, e,
|
||||
+ "A TileEntity type %s has throw an exception trying to write state. It will not persist. Report this to the mod author",
|
||||
+ var22.getClass().getName());
|
||||
+ tileentity.getClass().getName());
|
||||
+ }
|
||||
}
|
||||
|
||||
p_75820_3_.func_74782_a("TileEntities", var17);
|
||||
p_75820_3_.func_74782_a("TileEntities", nbttaglist2);
|
||||
@@ -14,6 +14,6 @@
|
||||
{
|
||||
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_);
|
||||
var4.func_76630_e();
|
||||
chunk.func_76630_e();
|
||||
}
|
||||
}
|
||||
+10
-10
@@ -10,22 +10,22 @@
|
||||
|
||||
public class StructureVillagePieces
|
||||
@@ -20,6 +22,8 @@
|
||||
var2.add(new StructureVillagePieceWeight(ComponentVillageField2.class, 3, MathHelper.func_76136_a(p_75084_0_, 2 + p_75084_1_, 4 + p_75084_1_ * 2)));
|
||||
var2.add(new StructureVillagePieceWeight(ComponentVillageHouse2.class, 15, MathHelper.func_76136_a(p_75084_0_, 0, 1 + p_75084_1_)));
|
||||
var2.add(new StructureVillagePieceWeight(ComponentVillageHouse3.class, 8, MathHelper.func_76136_a(p_75084_0_, 0 + p_75084_1_, 3 + p_75084_1_ * 2)));
|
||||
+ VillagerRegistry.addExtraVillageComponents(var2, p_75084_0_, p_75084_1_);
|
||||
arraylist.add(new StructureVillagePieceWeight(ComponentVillageField2.class, 3, MathHelper.func_76136_a(p_75084_0_, 2 + p_75084_1_, 4 + p_75084_1_ * 2)));
|
||||
arraylist.add(new StructureVillagePieceWeight(ComponentVillageHouse2.class, 15, MathHelper.func_76136_a(p_75084_0_, 0, 1 + p_75084_1_)));
|
||||
arraylist.add(new StructureVillagePieceWeight(ComponentVillageHouse3.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_);
|
||||
+
|
||||
Iterator var3 = var2.iterator();
|
||||
Iterator iterator = arraylist.iterator();
|
||||
|
||||
while (var3.hasNext())
|
||||
while (iterator.hasNext())
|
||||
@@ -92,6 +96,10 @@
|
||||
else if (var9 == ComponentVillageHouse3.class)
|
||||
else if (oclass == ComponentVillageHouse3.class)
|
||||
{
|
||||
var10 = ComponentVillageHouse3.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 = ComponentVillageHouse3.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_);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ var10 = 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 = 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_);
|
||||
}
|
||||
|
||||
return (ComponentVillage)var10;
|
||||
return (ComponentVillage)object;
|
||||
@@ -10,57 +10,57 @@
|
||||
import net.minecraft.nbt.CompressedStreamTools;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
@@ -104,16 +106,24 @@
|
||||
NBTTagCompound var2;
|
||||
NBTTagCompound var3;
|
||||
NBTTagCompound nbttagcompound;
|
||||
NBTTagCompound nbttagcompound1;
|
||||
|
||||
+ WorldInfo worldInfo = null;
|
||||
+
|
||||
if (var1.exists())
|
||||
if (file1.exists())
|
||||
{
|
||||
try
|
||||
{
|
||||
var2 = CompressedStreamTools.func_74796_a(new FileInputStream(var1));
|
||||
var3 = var2.func_74775_l("Data");
|
||||
- return new WorldInfo(var3);
|
||||
+ worldInfo = new WorldInfo(var3);
|
||||
+ FMLCommonHandler.instance().handleWorldDataLoad(this, worldInfo, var2);
|
||||
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;
|
||||
}
|
||||
catch (Exception var5)
|
||||
catch (Exception exception)
|
||||
{
|
||||
+ if (FMLCommonHandler.instance().shouldServerBeKilledQuietly())
|
||||
+ {
|
||||
+ throw (RuntimeException)var5;
|
||||
+ throw (RuntimeException)exception;
|
||||
+ }
|
||||
var5.printStackTrace();
|
||||
exception.printStackTrace();
|
||||
}
|
||||
}
|
||||
@@ -126,7 +136,9 @@
|
||||
{
|
||||
var2 = CompressedStreamTools.func_74796_a(new FileInputStream(var1));
|
||||
var3 = var2.func_74775_l("Data");
|
||||
- return new WorldInfo(var3);
|
||||
+ worldInfo = new WorldInfo(var3);
|
||||
+ FMLCommonHandler.instance().handleWorldDataLoad(this, worldInfo, var2);
|
||||
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;
|
||||
}
|
||||
catch (Exception var4)
|
||||
catch (Exception exception1)
|
||||
{
|
||||
@@ -142,6 +154,8 @@
|
||||
NBTTagCompound var3 = p_75755_1_.func_76082_a(p_75755_2_);
|
||||
NBTTagCompound var4 = new NBTTagCompound();
|
||||
var4.func_74782_a("Data", var3);
|
||||
NBTTagCompound nbttagcompound1 = p_75755_1_.func_76082_a(p_75755_2_);
|
||||
NBTTagCompound nbttagcompound2 = new NBTTagCompound();
|
||||
nbttagcompound2.func_74782_a("Data", nbttagcompound1);
|
||||
+
|
||||
+ FMLCommonHandler.instance().handleWorldDataSave(this, p_75755_1_, var4);
|
||||
+ FMLCommonHandler.instance().handleWorldDataSave(this, p_75755_1_, nbttagcompound2);
|
||||
|
||||
try
|
||||
{
|
||||
@@ -180,6 +194,8 @@
|
||||
NBTTagCompound var2 = p_75761_1_.func_76066_a();
|
||||
NBTTagCompound var3 = new NBTTagCompound();
|
||||
var3.func_74782_a("Data", var2);
|
||||
NBTTagCompound nbttagcompound = p_75761_1_.func_76066_a();
|
||||
NBTTagCompound nbttagcompound1 = new NBTTagCompound();
|
||||
nbttagcompound1.func_74782_a("Data", nbttagcompound);
|
||||
+
|
||||
+ FMLCommonHandler.instance().handleWorldDataSave(this, p_75761_1_, var3);
|
||||
+ FMLCommonHandler.instance().handleWorldDataSave(this, p_75761_1_, nbttagcompound1);
|
||||
|
||||
try
|
||||
{
|
||||
Reference in new issue
Block a user