equivalent-exchange-3/src/main/java/com/pahimar/ee3/proxy/ClientProxy.java

157 lines
6.0 KiB
Java

package com.pahimar.ee3.proxy;
import com.pahimar.ee3.client.handler.DrawBlockHighlightEventHandler;
import com.pahimar.ee3.client.handler.HUDTickHandler;
import com.pahimar.ee3.client.handler.ItemTooltipEventHandler;
import com.pahimar.ee3.client.handler.KeyInputEventHandler;
import com.pahimar.ee3.client.renderer.item.*;
import com.pahimar.ee3.client.renderer.tileentity.*;
import com.pahimar.ee3.client.settings.Keybindings;
import com.pahimar.ee3.client.util.ClientParticleHelper;
import com.pahimar.ee3.client.util.ClientSoundHelper;
import com.pahimar.ee3.init.ModBlocks;
import com.pahimar.ee3.network.PacketHandler;
import com.pahimar.ee3.network.message.MessageTransmutateEvent;
import com.pahimar.ee3.reference.RenderIds;
import com.pahimar.ee3.settings.ChalkSettings;
import com.pahimar.ee3.tileentity.*;
import com.pahimar.ee3.util.TransmutationHelper;
import cpw.mods.fml.client.registry.ClientRegistry;
import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Loader;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.client.MinecraftForgeClient;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.util.ForgeDirection;
public class ClientProxy extends CommonProxy {
public ChalkSettings chalkSettings = new ChalkSettings();
@Override
public void registerEventHandlers() {
super.registerEventHandlers();
FMLCommonHandler.instance().bus().register(new KeyInputEventHandler());
FMLCommonHandler.instance().bus().register(new HUDTickHandler());
MinecraftForge.EVENT_BUS.register(new ItemTooltipEventHandler(Loader.isModLoaded("ProjectE")));
MinecraftForge.EVENT_BUS.register(new DrawBlockHighlightEventHandler());
}
@Override
public void registerKeybindings() {
ClientRegistry.registerKeyBinding(Keybindings.charge);
ClientRegistry.registerKeyBinding(Keybindings.extra);
ClientRegistry.registerKeyBinding(Keybindings.release);
ClientRegistry.registerKeyBinding(Keybindings.toggle);
}
@Override
public void playSound(
String soundName,
float xCoord,
float yCoord,
float zCoord,
float volume,
float pitch
) {
ClientSoundHelper.playSound(soundName, xCoord, yCoord, zCoord, volume, pitch);
}
@Override
public void spawnParticle(
String particleName,
double xCoord,
double yCoord,
double zCoord,
double xVelocity,
double yVelocity,
double zVelocity
) {
ClientParticleHelper.spawnParticleAtLocation(
particleName, xCoord, yCoord, zCoord, xVelocity, yVelocity, zVelocity
);
}
@Override
public ClientProxy getClientProxy() {
return this;
}
@Override
public void initRenderingAndTextures() {
RenderIds.calcinator = RenderingRegistry.getNextAvailableRenderId();
RenderIds.aludel = RenderingRegistry.getNextAvailableRenderId();
RenderIds.alchemicalChest = RenderingRegistry.getNextAvailableRenderId();
RenderIds.glassBell = RenderingRegistry.getNextAvailableRenderId();
RenderIds.researchStation = RenderingRegistry.getNextAvailableRenderId();
RenderIds.augmentationTable = RenderingRegistry.getNextAvailableRenderId();
RenderIds.alchemyArray = RenderingRegistry.getNextAvailableRenderId();
RenderIds.dummyArray = RenderingRegistry.getNextAvailableRenderId();
RenderIds.tabletSlab = RenderingRegistry.getNextAvailableRenderId();
MinecraftForgeClient.registerItemRenderer(
Item.getItemFromBlock(ModBlocks.alchemicalChest),
new ItemRendererAlchemicalChest()
);
MinecraftForgeClient.registerItemRenderer(
Item.getItemFromBlock(ModBlocks.aludel), new ItemRendererAludel()
);
MinecraftForgeClient.registerItemRenderer(
Item.getItemFromBlock(ModBlocks.calcinator), new ItemRendererCalcinator()
);
MinecraftForgeClient.registerItemRenderer(
Item.getItemFromBlock(ModBlocks.glassBell), new ItemRendererGlassBell()
);
MinecraftForgeClient.registerItemRenderer(
Item.getItemFromBlock(ModBlocks.researchStation),
new ItemRendererResearchStation()
);
ClientRegistry.bindTileEntitySpecialRenderer(
TileEntityAlchemicalChest.class, new TileEntityRendererAlchemicalChest()
);
ClientRegistry.bindTileEntitySpecialRenderer(
TileEntityCalcinator.class, new TileEntityRendererCalcinator()
);
ClientRegistry.bindTileEntitySpecialRenderer(
TileEntityAludel.class, new TileEntityRendererAludel()
);
ClientRegistry.bindTileEntitySpecialRenderer(
TileEntityGlassBell.class, new TileEntityRendererGlassBell()
);
ClientRegistry.bindTileEntitySpecialRenderer(
TileEntityResearchStation.class, new TileEntityRendererResearchStation()
);
ClientRegistry.bindTileEntitySpecialRenderer(
TileEntityAlchemyArray.class, new TileEntityRendererAlchemyArray()
);
ClientRegistry.bindTileEntitySpecialRenderer(
TileEntityTransmutationTablet.class,
new TileEntityRendererTransmutationTablet()
);
}
@Override
public void transmuteBlock(
ItemStack itemStack,
EntityPlayer player,
World world,
int x,
int y,
int z,
ForgeDirection sideHit
) {
if (TransmutationHelper.targetBlockStack != null && itemStack != null) {
ItemStack stack = TransmutationHelper.targetBlockStack;
Block targetBlock = Block.getBlockFromItem(stack.getItem());
PacketHandler.INSTANCE.sendToServer(new MessageTransmutateEvent(
x, y, z, sideHit, targetBlock, stack.getItemDamage()
));
}
}
}