From 0981d3106d4ddfb955ff10a6db61ed0acf4afd01 Mon Sep 17 00:00:00 2001 From: Christian Weeks Date: Fri, 11 May 2012 17:31:28 -0400 Subject: [PATCH] Fix missing ml.sendpacket, call in renderers --- .../cpw/mods/fml/client/FMLClientHandler.java | 22 +++++++++++++++++++ client/net/minecraft/src/BaseMod.java | 9 ++++++++ client/net/minecraft/src/ModLoader.java | 3 +++ .../cpw/mods/fml/common/FMLModContainer.java | 10 +++++++++ common/cpw/mods/fml/common/ModContainer.java | 5 +++++ .../modloader/ModLoaderModContainer.java | 9 ++++++++ .../minecraft/src/RenderManager.java.patch | 11 ++++++++++ server/net/minecraft/src/BaseMod.java | 8 +++++++ 8 files changed, 77 insertions(+) create mode 100644 patches/minecraft/net/minecraft/src/RenderManager.java.patch diff --git a/client/cpw/mods/fml/client/FMLClientHandler.java b/client/cpw/mods/fml/client/FMLClientHandler.java index 73380d49ba..e0b2d865dc 100644 --- a/client/cpw/mods/fml/client/FMLClientHandler.java +++ b/client/cpw/mods/fml/client/FMLClientHandler.java @@ -46,11 +46,14 @@ import net.minecraft.src.KeyBinding; import net.minecraft.src.ModTextureStatic; import net.minecraft.src.NetClientHandler; import net.minecraft.src.NetworkManager; +import net.minecraft.src.Packet; import net.minecraft.src.Packet1Login; import net.minecraft.src.Packet250CustomPayload; import net.minecraft.src.Packet3Chat; +import net.minecraft.src.Render; import net.minecraft.src.RenderBlocks; import net.minecraft.src.RenderEngine; +import net.minecraft.src.RenderManager; import net.minecraft.src.RenderPlayer; import net.minecraft.src.StringTranslate; import net.minecraft.src.TexturePackBase; @@ -109,6 +112,8 @@ public class FMLClientHandler implements IFMLSidedHandler private TexturePackBase fallbackTexturePack; + private NetClientHandler networkClient; + // Cached lookups private static HashMap> overrideInfo = new HashMap>(); private static HashMap blockModelIds = new HashMap(); @@ -164,6 +169,12 @@ public class FMLClientHandler implements IFMLSidedHandler public void onLoadComplete() { Loader.instance().initializeMods(); + for (ModContainer mod : Loader.getModList()) { + mod.gatherRenderers(RenderManager.field_1233_a.getRendererList()); + for (Render r : ((List)RenderManager.field_1233_a.getRendererList())) { + r.func_4009_a(RenderManager.field_1233_a); + } + } client.field_6304_y.loadModKeySettings(harvestKeyBindings()); onTexturePackChange(fallbackTexturePack); } @@ -406,6 +417,7 @@ public class FMLClientHandler implements IFMLSidedHandler public void handleServerLogin(Packet1Login loginPacket, NetClientHandler handler, NetworkManager networkManager) { + this.networkClient=handler; Packet250CustomPayload packet = new Packet250CustomPayload(); packet.field_44012_a = "REGISTER"; packet.field_44011_c = FMLCommonHandler.instance().getPacketRegistry(); @@ -747,4 +759,14 @@ public class FMLClientHandler implements IFMLSidedHandler onTexturePackChange(fallback); } } + + /** + * @param packet + */ + public void sendPacket(Packet packet) + { + if (this.networkClient!=null) { + this.networkClient.func_847_a(packet); + } + } } diff --git a/client/net/minecraft/src/BaseMod.java b/client/net/minecraft/src/BaseMod.java index a1874ea429..8797e1ced7 100644 --- a/client/net/minecraft/src/BaseMod.java +++ b/client/net/minecraft/src/BaseMod.java @@ -409,4 +409,13 @@ public abstract class BaseMod implements IWorldGenerator, IPickupNotifier, IDisp } + /** + * @param renderers + */ + public void onRenderHarvest(Map renderers) + { + addRenderer((Map,Render>)renderers); + + } + } diff --git a/client/net/minecraft/src/ModLoader.java b/client/net/minecraft/src/ModLoader.java index 739afe5f78..4a64777e62 100644 --- a/client/net/minecraft/src/ModLoader.java +++ b/client/net/minecraft/src/ModLoader.java @@ -676,6 +676,9 @@ public class ModLoader { } + public static void sendPacket(Packet packet) { + FMLClientHandler.instance().sendPacket(packet); + } /** * Send a chat message to the server * {@link FMLClientHandler#handleChatPacket(Packet3Chat, EntityPlayer)} diff --git a/common/cpw/mods/fml/common/FMLModContainer.java b/common/cpw/mods/fml/common/FMLModContainer.java index 0c87b0c93f..327b3cb127 100644 --- a/common/cpw/mods/fml/common/FMLModContainer.java +++ b/common/cpw/mods/fml/common/FMLModContainer.java @@ -15,6 +15,7 @@ package cpw.mods.fml.common; import java.io.File; import java.util.ArrayList; import java.util.List; +import java.util.Map; import net.minecraft.src.Block; import net.minecraft.src.IBlockAccess; @@ -373,4 +374,13 @@ public class FMLModContainer implements ModContainer // TODO Auto-generated method stub } + /* (non-Javadoc) + * @see cpw.mods.fml.common.ModContainer#gatherRenderers(java.util.Map) + */ + @Override + public void gatherRenderers(Map renderers) + { + // TODO Auto-generated method stub + + } } diff --git a/common/cpw/mods/fml/common/ModContainer.java b/common/cpw/mods/fml/common/ModContainer.java index c91f380f19..6fb57f2c32 100644 --- a/common/cpw/mods/fml/common/ModContainer.java +++ b/common/cpw/mods/fml/common/ModContainer.java @@ -15,6 +15,7 @@ package cpw.mods.fml.common; import java.io.File; import java.util.List; +import java.util.Map; import cpw.mods.fml.common.ModContainer.SourceType; @@ -216,4 +217,8 @@ public interface ModContainer ModMetadata getMetadata(); void setMetadata(ModMetadata meta); + /** + * + */ + void gatherRenderers(Map renderers); } diff --git a/common/cpw/mods/fml/common/modloader/ModLoaderModContainer.java b/common/cpw/mods/fml/common/modloader/ModLoaderModContainer.java index b9ee0da000..269949bcfc 100644 --- a/common/cpw/mods/fml/common/modloader/ModLoaderModContainer.java +++ b/common/cpw/mods/fml/common/modloader/ModLoaderModContainer.java @@ -642,4 +642,13 @@ public class ModLoaderModContainer implements ModContainer { this.metadata=meta; } + + /* (non-Javadoc) + * @see cpw.mods.fml.common.ModContainer#gatherRenderers(java.util.Map) + */ + @Override + public void gatherRenderers(Map renderers) + { + mod.onRenderHarvest(renderers); + } } diff --git a/patches/minecraft/net/minecraft/src/RenderManager.java.patch b/patches/minecraft/net/minecraft/src/RenderManager.java.patch new file mode 100644 index 0000000000..331ee22146 --- /dev/null +++ b/patches/minecraft/net/minecraft/src/RenderManager.java.patch @@ -0,0 +1,11 @@ +--- ../src-base/minecraft/net/minecraft/src/RenderManager.java 0000-00-00 00:00:00.000000000 -0000 ++++ ../src-work/minecraft/net/minecraft/src/RenderManager.java 0000-00-00 00:00:00.000000000 -0000 +@@ -183,4 +183,8 @@ + { + return this.field_1218_p; + } ++ ++ public Map, Render> getRendererList() { ++ return field_6501_o; ++ } + } diff --git a/server/net/minecraft/src/BaseMod.java b/server/net/minecraft/src/BaseMod.java index 356306f418..1501ff4079 100644 --- a/server/net/minecraft/src/BaseMod.java +++ b/server/net/minecraft/src/BaseMod.java @@ -388,6 +388,14 @@ public abstract class BaseMod implements IWorldGenerator, IPickupNotifier, IDisp } + /** + * @param renderers + */ + public void onRenderHarvest(Map renderers) + { + // NOOP + } + // Spare client junk // ------- // void addRenderer(Map, Render> renderers);