Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package destinyspork.appliedautomation.proxy;
- import java.io.IOException;
- import org.apache.commons.lang3.tuple.Pair;
- import com.google.common.collect.ImmutableMap;
- import destinyspork.appliedautomation.AppliedAutomation;
- import destinyspork.appliedautomation.client.render.blocks.BlockRenderRegister;
- import destinyspork.appliedautomation.client.render.items.ItemRenderRegister;
- import destinyspork.appliedautomation.machines.pumpjack.TEPumpJack;
- import destinyspork.appliedautomation.machines.pumpjack.TESRPumpJack;
- import destinyspork.appliedautomation.override.VanillaOverride;
- import destinyspork.appliedautomation.tileentity.EntityChest;
- import destinyspork.appliedautomation.tileentity.ITileEntityChest;
- import net.minecraft.client.renderer.entity.Render;
- import net.minecraft.client.renderer.entity.RenderLiving;
- import net.minecraft.client.renderer.entity.RenderManager;
- import net.minecraft.client.renderer.texture.TextureMap;
- import net.minecraft.util.ResourceLocation;
- import net.minecraftforge.client.model.IModel;
- import net.minecraftforge.client.model.IModelState;
- import net.minecraftforge.client.model.IRetexturableModel;
- import net.minecraftforge.client.model.ModelLoaderRegistry;
- import net.minecraftforge.client.model.MultiModel;
- import net.minecraftforge.client.model.TRSRTransformation;
- import net.minecraftforge.client.model.animation.Animation;
- import net.minecraftforge.client.model.animation.AnimationModelBase;
- import net.minecraftforge.client.model.animation.AnimationTESR;
- import net.minecraftforge.client.model.animation.Event;
- import net.minecraftforge.client.model.animation.ITimeValue;
- import net.minecraftforge.client.model.pipeline.VertexLighterSmoothAo;
- import net.minecraftforge.common.MinecraftForge;
- import net.minecraftforge.common.model.animation.IAnimationStateMachine;
- import net.minecraftforge.fml.client.registry.ClientRegistry;
- import net.minecraftforge.fml.client.registry.IRenderFactory;
- import net.minecraftforge.fml.client.registry.RenderingRegistry;
- import net.minecraftforge.fml.common.Mod.EventHandler;
- import net.minecraftforge.fml.common.event.FMLInitializationEvent;
- import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
- import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
- import net.minecraftforge.fml.common.registry.EntityRegistry;
- public class ClientProxy extends CommonProxy {
- @Override
- @EventHandler
- public void preInit(FMLPreInitializationEvent e) {
- super.preInit(e);
- ClientRegistry.bindTileEntitySpecialRenderer(ITileEntityChest.class, new AnimationTESR<ITileEntityChest>()
- {
- @Override
- public void handleEvents(ITileEntityChest chest, float time, Iterable<Event> pastEvents){
- chest.handleEvents(time, pastEvents);
- }
- }
- );
- String entityName = "appliedautomation:entity_chest";
- EntityRegistry.registerModEntity(EntityChest.class, entityName, 0, AppliedAutomation.instance, 64, 20, true, 0xFFAAAA00, 0xFFDDDD00);
- RenderingRegistry.registerEntityRenderingHandler(EntityChest.class, new IRenderFactory<EntityChest>(){
- public Render<EntityChest> createRenderFor(RenderManager manager){
- try {
- IModel base = ModelLoaderRegistry.getModel(new ResourceLocation("appliedautomation", "block/engine"));
- IModel ring = ModelLoaderRegistry.getModel(new ResourceLocation("appliedautomation", "block/engine_ring"));
- ImmutableMap<String, String> textures = ImmutableMap.of(
- "base", "blocks/stone",
- "front", "blocks/log_oak",
- "chamber", "blocks/redstone_block",
- "trunk", "blocks/end_stone"
- );
- if(base instanceof IRetexturableModel){
- base = ((IRetexturableModel)base).retexture(textures);
- }
- if(ring instanceof IRetexturableModel){
- ring = ((IRetexturableModel)ring).retexture(textures);
- }
- IModel model = new MultiModel(
- new ResourceLocation("appliedautomation", "builtin/engine"),
- ring,
- TRSRTransformation.identity(),
- ImmutableMap.of(
- "base", Pair.<IModel, IModelState>of(base, TRSRTransformation.identity())
- )
- );
- return new RenderLiving<EntityChest>(manager, new AnimationModelBase<EntityChest>(model, new VertexLighterSmoothAo()){
- @Override
- public void handleEvents(EntityChest chest, float time,Iterable<Event> pastEvents){
- chest.handleEvents(time, pastEvents);
- }
- }, 0.5f){
- protected ResourceLocation getEntityTexture(EntityChest entity){
- return TextureMap.locationBlocksTexture;
- }
- };
- }
- catch(IOException e){
- String i = new ResourceLocation("appliedautomation", "block/engine").getResourceDomain();
- System.out.println(i);
- throw new RuntimeException(e);
- }
- }
- });
- }
- public static IAnimationStateMachine load(ResourceLocation location, ImmutableMap<String, ITimeValue> parameters){
- return Animation.INSTANCE.load(location, parameters);
- }
- @Override
- public void init(FMLInitializationEvent e) {
- super.init(e);
- // register block & item registers
- ItemRenderRegister.registerItemRenderer();
- BlockRenderRegister.registerBlockRenderer();
- // register TileEntities
- ClientRegistry.bindTileEntitySpecialRenderer(TEPumpJack.class, new TESRPumpJack());
- MinecraftForge.EVENT_BUS.register(new VanillaOverride());
- }
- @Override
- public void postInit(FMLPostInitializationEvent e) {
- super.postInit(e);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement