2012-05-08 15:41:55 +02:00
|
|
|
package ee3.client;
|
2012-04-26 17:52:46 +02:00
|
|
|
|
|
|
|
import java.io.File;
|
2012-05-08 18:59:43 +02:00
|
|
|
import java.lang.reflect.Field;
|
2012-04-26 17:52:46 +02:00
|
|
|
|
2012-05-08 15:41:55 +02:00
|
|
|
import ee3.core.interfaces.IProxy;
|
2012-04-26 17:52:46 +02:00
|
|
|
import net.minecraft.client.Minecraft;
|
2012-04-27 18:38:54 +02:00
|
|
|
import net.minecraft.src.EntityPlayer;
|
2012-04-26 17:52:46 +02:00
|
|
|
import net.minecraft.src.ModLoader;
|
|
|
|
import net.minecraft.src.NetworkManager;
|
|
|
|
import net.minecraft.src.World;
|
2012-04-27 18:38:54 +02:00
|
|
|
import net.minecraft.src.forge.MinecraftForgeClient;
|
2012-04-26 17:52:46 +02:00
|
|
|
|
|
|
|
public class EEProxy implements IProxy {
|
|
|
|
|
|
|
|
public EEProxy() { }
|
|
|
|
|
2012-05-08 18:59:43 +02:00
|
|
|
@SuppressWarnings("unchecked")
|
|
|
|
public <T, E> T getPrivateValue(Class <? super E > classToAccess, E instance, int fieldIndex) {
|
|
|
|
try {
|
|
|
|
Field f = classToAccess.getDeclaredFields()[fieldIndex];
|
|
|
|
f.setAccessible(true);
|
|
|
|
return (T) f.get(instance);
|
|
|
|
}
|
|
|
|
catch (Exception e) {
|
|
|
|
ModLoader.getLogger().severe(String.format("There was a problem getting field %d from %s", fieldIndex, classToAccess.getName()));
|
|
|
|
ModLoader.getLogger().throwing("ReflectionHelper", "getPrivateValue", e);
|
|
|
|
throw new RuntimeException(e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
|
|
public <T, E> T getPrivateValue(Class <? super E > classToAccess, E instance, String fieldName) {
|
|
|
|
try {
|
|
|
|
Field f = classToAccess.getDeclaredField(fieldName);
|
|
|
|
f.setAccessible(true);
|
|
|
|
return (T) f.get(instance);
|
|
|
|
}
|
|
|
|
catch (Exception e) {
|
|
|
|
ModLoader.getLogger().severe(String.format("There was a problem getting field %s from %s", fieldName, classToAccess.getName()));
|
|
|
|
ModLoader.getLogger().throwing("ReflectionHelper", "getPrivateValue", e);
|
|
|
|
throw new RuntimeException(e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2012-04-26 17:52:46 +02:00
|
|
|
@Override
|
|
|
|
public void registerRenderInformation() {
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void registerTileEntities() {
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void registerTranslations() {
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public File getMinecraftDir() {
|
|
|
|
return Minecraft.getMinecraftDir();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean isRemote() {
|
|
|
|
return ModLoader.getMinecraftInstance().theWorld.isRemote;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public World getCurrentWorld() {
|
|
|
|
return ModLoader.getMinecraftInstance().theWorld;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String getMinecraftVersion() {
|
|
|
|
return ModLoader.getMinecraftInstance().getVersion();
|
|
|
|
}
|
|
|
|
|
|
|
|
public void handleControl(NetworkManager network, int key) { }
|
|
|
|
public void handlePedestalPacket(int x, int y, int z, int itemId, boolean activated) { }
|
|
|
|
public void handleTEPacket(int x, int y, int z, byte direction, String player) { }
|
2012-04-27 18:38:54 +02:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public void registerSoundHandler() {
|
|
|
|
MinecraftForgeClient.registerSoundHandler(new SoundHandler());
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
// TODO Client side: Handle GUI call
|
|
|
|
public Object handleGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
2012-05-01 04:11:14 +02:00
|
|
|
@Override
|
|
|
|
public void playSound(String soundName, float x, float y, float z, float volume, float pitch) {
|
|
|
|
ModLoader.getMinecraftInstance().sndManager.playSound(soundName, x, y, z, volume, pitch);
|
|
|
|
}
|
|
|
|
|
2012-04-26 17:52:46 +02:00
|
|
|
}
|