diff --git a/src/main/java/WayofTime/bloodmagic/client/render/model/BakedCustomItemModel.java b/src/main/java/WayofTime/bloodmagic/client/render/model/BakedCustomItemModel.java deleted file mode 100644 index 4529d6f7..00000000 --- a/src/main/java/WayofTime/bloodmagic/client/render/model/BakedCustomItemModel.java +++ /dev/null @@ -1,205 +0,0 @@ -package WayofTime.bloodmagic.client.render.model; - -import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.block.BlockBloodTank; -import WayofTime.bloodmagic.client.render.block.RenderBloodTank; -import WayofTime.bloodmagic.tile.TileBloodTank; -import com.google.common.collect.ImmutableMap; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.VertexBuffer; -import net.minecraft.client.renderer.block.model.BakedQuad; -import net.minecraft.client.renderer.block.model.IBakedModel; -import net.minecraft.client.renderer.block.model.ItemCameraTransforms; -import net.minecraft.client.renderer.block.model.ItemCameraTransforms.TransformType; -import net.minecraft.client.renderer.block.model.ItemOverrideList; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; -import net.minecraft.client.renderer.vertex.VertexFormat; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.client.model.IPerspectiveAwareModel; -import net.minecraftforge.common.model.TRSRTransformation; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fml.relauncher.ReflectionHelper; -import org.apache.commons.lang3.tuple.Pair; - -import javax.vecmath.Matrix4f; -import javax.vecmath.Vector3f; -import java.util.List; -import java.util.Map; - -/** - * Shamelessly taken off of the Mekanism repository written by {@author aidancbrady} - * https://github.com/aidancbrady/Mekanism - */ -public class BakedCustomItemModel implements IPerspectiveAwareModel -{ - private IBakedModel baseModel; - private ItemStack stack; - - private TransformType prevTransform; - - private static VertexFormat prevFormat = null; - private static int prevMode = -1; - - private static final RenderBloodTank tankRenderer = (RenderBloodTank) TileEntityRendererDispatcher.instance.mapSpecialRenderers.get(TileBloodTank.class); - - public BakedCustomItemModel(IBakedModel model, ItemStack stack) - { - this.baseModel = model; - this.stack = stack; - } - - private void doRender(TransformType transformType) - { - Block block = Block.getBlockFromItem(stack.getItem()); - - if (transformType == TransformType.GUI) - { - GlStateManager.rotate(180F, 0.0F, 1.0F, 0.0F); - } - - if (block instanceof BlockBloodTank) - { - GlStateManager.pushMatrix(); - - FluidStack fluid = null; - float capacity = TileBloodTank.CAPACITIES[stack.getItemDamage()] * Fluid.BUCKET_VOLUME; - int amount = 0; - if (stack.hasTagCompound() && stack.getTagCompound().hasKey(Constants.NBT.TANK)) - { - NBTTagCompound tag = stack.getTagCompound().getCompoundTag(Constants.NBT.TANK); - fluid = FluidStack.loadFluidStackFromNBT(tag); - if (fluid != null) - amount = tag.getInteger("Amount"); - } - - if (fluid != null && amount > 0) - tankRenderer.renderFluid(amount / capacity, fluid.getFluid(), -0.498, -0.49, -0.498); - - GlStateManager.popMatrix(); - } - } - - @Override - public List getQuads(IBlockState state, EnumFacing side, long rand) - { - Tessellator tessellator = Tessellator.getInstance(); - pauseRenderer(tessellator); - - GlStateManager.pushMatrix(); - GlStateManager.translate(0.5F, 0.5F, 0.5F); - GlStateManager.rotate(180, 0.0F, 1.0F, 0.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); - doRender(prevTransform); - GlStateManager.enableLighting(); - GlStateManager.enableLight(0); - GlStateManager.enableLight(1); - GlStateManager.enableColorMaterial(); - GlStateManager.colorMaterial(1032, 5634); - GlStateManager.enableCull(); - GlStateManager.popMatrix(); - - resumeRenderer(tessellator); - - return baseModel.getQuads(state, side, rand); - } - - @Override - public boolean isAmbientOcclusion() - { - return baseModel.isAmbientOcclusion(); - } - - @Override - public boolean isGui3d() - { - return baseModel.isGui3d(); - } - - @Override - public boolean isBuiltInRenderer() - { - return baseModel.isBuiltInRenderer(); - } - - @Override - public TextureAtlasSprite getParticleTexture() - { - return baseModel.getParticleTexture(); - } - - @Override - public ItemCameraTransforms getItemCameraTransforms() - { - return baseModel.getItemCameraTransforms(); - } - - private static TRSRTransformation get(float tx, float ty, float tz, float ax, float ay, float az, float s) - { - return new TRSRTransformation(new Vector3f(tx / 16, ty / 16, tz / 16), TRSRTransformation.quatFromXYZDegrees(new Vector3f(ax, ay, az)), new Vector3f(s, s, s), null); - } - - public static Map transforms = ImmutableMap.builder() - .put(TransformType.GUI, get(0, 0, 0, 30F, 225F, 0, 0.625F)) - .put(TransformType.THIRD_PERSON_RIGHT_HAND, get(0, 2.5F, 0, 75F, 45F, 0, 0.375F)) - .put(TransformType.THIRD_PERSON_LEFT_HAND, get(0, 2.5F, 0, 75F, 45F, 0, 0.375F)) - .put(TransformType.FIRST_PERSON_RIGHT_HAND, get(0, 0, 0, 0, 45F, 0, 0.4f)) - .put(TransformType.FIRST_PERSON_LEFT_HAND, get(0, 0, 0, 0, 225F, 0, 0.4F)) - .put(TransformType.GROUND, get(0, 2F, 0, 0, 0, 0, 0.25F)) - .put(TransformType.HEAD, get(0, 0, 0, 0, 0, 0, 1F)) - .put(TransformType.FIXED, get(0, 0, 0, 0, 0, 0, 1F)) - .put(TransformType.NONE, get(0, 0, 0, 0, 0, 0, 0)) - .build(); - - @Override - public Pair handlePerspective(ItemCameraTransforms.TransformType cameraTransformType) - { - prevTransform = cameraTransformType; - return Pair.of(this, transforms.get(cameraTransformType).getMatrix()); - } - - @Override - public ItemOverrideList getOverrides() - { - return ItemOverrideList.NONE; - } - - public static void pauseRenderer(Tessellator tess) - { - if (isDrawing(tess)) - { - prevFormat = tess.getBuffer().getVertexFormat(); - prevMode = tess.getBuffer().getDrawMode(); - tess.draw(); - } - } - - public static void resumeRenderer(Tessellator tess) - { - if (prevFormat != null) - { - tess.getBuffer().begin(prevMode, prevFormat); - } - - prevFormat = null; - prevMode = -1; - } - - public static boolean isDrawing(Tessellator tess) - { - return isDrawing(tess.getBuffer()); - } - - public static boolean isDrawing(VertexBuffer buffer) - { - return (Boolean) ReflectionHelper.getPrivateValue(VertexBuffer.class, buffer, "isDrawing", "field_179010_r"); - } -} diff --git a/src/main/java/WayofTime/bloodmagic/client/render/model/CustomModelFactory.java b/src/main/java/WayofTime/bloodmagic/client/render/model/CustomModelFactory.java deleted file mode 100644 index cddd3773..00000000 --- a/src/main/java/WayofTime/bloodmagic/client/render/model/CustomModelFactory.java +++ /dev/null @@ -1,80 +0,0 @@ -package WayofTime.bloodmagic.client.render.model; - -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.renderer.block.model.*; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.world.World; - -import java.util.ArrayList; -import java.util.List; - -public class CustomModelFactory implements IBakedModel -{ - private IBakedModel baseModel; - - private BlockOverrideList override = new BlockOverrideList(); - - public CustomModelFactory(IBakedModel base) - { - baseModel = base; - } - - @Override - public ItemOverrideList getOverrides() - { - return override; - } - - @Override - public List getQuads(IBlockState state, EnumFacing facing, long rand) - { - throw new UnsupportedOperationException(); - } - - @Override - public boolean isAmbientOcclusion() - { - throw new UnsupportedOperationException(); - } - - @Override - public boolean isGui3d() - { - return baseModel.isGui3d(); - } - - @Override - public boolean isBuiltInRenderer() - { - throw new UnsupportedOperationException(); - } - - @Override - public TextureAtlasSprite getParticleTexture() - { - throw new UnsupportedOperationException(); - } - - @Override - public ItemCameraTransforms getItemCameraTransforms() - { - throw new UnsupportedOperationException(); - } - - private class BlockOverrideList extends ItemOverrideList - { - public BlockOverrideList() - { - super(new ArrayList()); - } - - @Override - public IBakedModel handleItemState(IBakedModel originalModel, ItemStack stack, World world, EntityLivingBase entity) - { - return new BakedCustomItemModel(baseModel, stack); - } - } -} diff --git a/src/main/java/WayofTime/bloodmagic/util/handler/event/ClientHandler.java b/src/main/java/WayofTime/bloodmagic/util/handler/event/ClientHandler.java index 84b699ea..80c825f4 100644 --- a/src/main/java/WayofTime/bloodmagic/util/handler/event/ClientHandler.java +++ b/src/main/java/WayofTime/bloodmagic/util/handler/event/ClientHandler.java @@ -7,7 +7,6 @@ import java.util.Map; import java.util.Set; import WayofTime.bloodmagic.client.key.KeyBindings; -import WayofTime.bloodmagic.client.render.model.CustomModelFactory; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.EntityPlayerSP; import net.minecraft.client.renderer.GlStateManager; @@ -218,12 +217,6 @@ public class ClientHandler @SubscribeEvent public void onModelBake(ModelBakeEvent event) { - ModelResourceLocation location = new ModelResourceLocation("bloodmagic:BlockBloodTank", "inventory"); - IBakedModel model = event.getModelRegistry().getObject(location); - - if (model != null) - event.getModelRegistry().putObject(location, new CustomModelFactory(model)); - if (BloodMagic.isDev() && SUPPRESS_ASSET_ERRORS) return; @@ -381,7 +374,7 @@ public class ClientHandler public static void renderRitualStones(TileMasterRitualStone masterRitualStone, float partialTicks) { EntityPlayerSP player = minecraft.player; - World world = player.world; + World world = player.getEntityWorld(); EnumFacing direction = mrsHoloDirection; Ritual ritual = mrsHoloRitual;