mirror of
https://github.com/kami-blue/client
synced 2025-02-19 06:37:35 +00:00
Co-authored-by: Dominika <sokolov.dominika@gmail.com>
This commit is contained in:
parent
f6456d6796
commit
2d82fcd72d
@ -31,7 +31,6 @@ import net.minecraft.util.FoodStats;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.client.GuiIngameForge;
|
||||
import net.minecraftforge.client.event.*;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
|
||||
import net.minecraftforge.event.entity.living.LivingDamageEvent;
|
||||
import net.minecraftforge.event.entity.living.LivingEntityUseItemEvent;
|
||||
|
@ -1,6 +1,7 @@
|
||||
package me.zeroeightsix.kami.mixin.client;
|
||||
|
||||
import me.zeroeightsix.kami.module.modules.render.CleanGUI;
|
||||
import me.zeroeightsix.kami.module.modules.render.MapPreview;
|
||||
import me.zeroeightsix.kami.module.modules.render.ShulkerPreview;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.FontRenderer;
|
||||
@ -8,10 +9,14 @@ import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.client.renderer.*;
|
||||
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
|
||||
import net.minecraft.inventory.ItemStackHelper;
|
||||
import net.minecraft.item.ItemMap;
|
||||
import net.minecraft.item.ItemShulkerBox;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.NonNullList;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.world.storage.MapData;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
@ -19,6 +24,7 @@ import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
import static me.zeroeightsix.kami.KamiMod.MODULE_MANAGER;
|
||||
import static org.lwjgl.opengl.GL11.glDepthRange;
|
||||
|
||||
/**
|
||||
* Created by 086 on 24/12/2017.
|
||||
@ -29,6 +35,7 @@ public class MixinGuiScreen {
|
||||
@Shadow public Minecraft mc;
|
||||
RenderItem itemRender = Minecraft.getMinecraft().getRenderItem();
|
||||
FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer;
|
||||
private static final ResourceLocation RES_MAP_BACKGROUND = new ResourceLocation("textures/map/map_background.png");
|
||||
|
||||
@Inject(method = "renderToolTip", at = @At("HEAD"), cancellable = true)
|
||||
public void renderToolTip(ItemStack stack, int x, int y, CallbackInfo info) {
|
||||
@ -92,6 +99,47 @@ public class MixinGuiScreen {
|
||||
GlStateManager.enableRescaleNormal();
|
||||
}
|
||||
}
|
||||
} else if (MODULE_MANAGER.isModuleEnabled(MapPreview.class) && stack.getItem() instanceof ItemMap) {
|
||||
MapData mapData = MapPreview.getMapData(stack);
|
||||
if (mapData == null) return;
|
||||
info.cancel();
|
||||
|
||||
MapPreview mp = MODULE_MANAGER.getModuleT(MapPreview.class);
|
||||
int xl = x + 6;
|
||||
int yl = y + 6;
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GlStateManager.color(1f, 1f, 1f); // this dumbass shit is needed for some fucking reason???? thanks tiger for figuring this one out
|
||||
|
||||
Tessellator tessellator = Tessellator.getInstance();
|
||||
BufferBuilder bufferbuilder = tessellator.getBuffer();
|
||||
|
||||
GlStateManager.translate(xl, yl, 0.0);
|
||||
GlStateManager.scale(mp.getScale().getValue() / 5.0, mp.getScale().getValue() / 5.0, 0.0);
|
||||
RenderHelper.enableGUIStandardItemLighting(); // needed to make lighting work inside non inventory containers
|
||||
mc.getTextureManager().bindTexture(RES_MAP_BACKGROUND);
|
||||
|
||||
/* taken from mc code, draw the maps frame */
|
||||
if (mp.getFrame().getValue()) {
|
||||
glDepthRange(0, 0.01); // fix drawing under other layers, just draw over everything
|
||||
bufferbuilder.begin(7, DefaultVertexFormats.POSITION_TEX);
|
||||
bufferbuilder.pos(-7.0D, 135.0D, 0.0D).tex(0.0D, 1.0D).endVertex();
|
||||
bufferbuilder.pos(135.0D, 135.0D, 0.0D).tex(1.0D, 1.0D).endVertex();
|
||||
bufferbuilder.pos(135.0D, -7.0D, 0.0D).tex(1.0D, 0.0D).endVertex();
|
||||
bufferbuilder.pos(-7.0D, -7.0D, 0.0D).tex(0.0D, 0.0D).endVertex();
|
||||
tessellator.draw();
|
||||
glDepthRange(0, 1.0); // undo changes to rendering order
|
||||
}
|
||||
|
||||
/* Draw the map */
|
||||
GlStateManager.disableDepth(); // needed to keep it on top of the frame
|
||||
glDepthRange(0, 0.01);
|
||||
mc.entityRenderer.getMapItemRenderer().renderMap(mapData, !mp.getFrame().getValue());
|
||||
glDepthRange(0, 1.0);
|
||||
GlStateManager.enableDepth(); // originally enabled
|
||||
|
||||
RenderHelper.disableStandardItemLighting(); // originally disabled
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,32 @@
|
||||
package me.zeroeightsix.kami.module.modules.render
|
||||
|
||||
import me.zeroeightsix.kami.module.Module
|
||||
import me.zeroeightsix.kami.setting.Setting
|
||||
import me.zeroeightsix.kami.setting.Settings
|
||||
import net.minecraft.item.ItemMap
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.minecraft.world.World
|
||||
import net.minecraft.world.storage.MapData
|
||||
|
||||
|
||||
/**
|
||||
* Created by fred41 on 27/05/2020.
|
||||
* Greatly updated by dominikaaaa on 01/06/20, fixed loads of bugs
|
||||
* @see me.zeroeightsix.kami.mixin.client.MixinGuiScreen
|
||||
*/
|
||||
@Module.Info(
|
||||
name = "MapPreview",
|
||||
category = Module.Category.RENDER,
|
||||
description = "Previews maps when hovering over them"
|
||||
)
|
||||
class MapPreview : Module() {
|
||||
val frame: Setting<Boolean> = register(Settings.b("Show Frame", true))
|
||||
val scale: Setting<Double> = register(Settings.doubleBuilder("Size").withRange(0.0, 10.0).withValue(5.0).build())
|
||||
|
||||
companion object MapPreview {
|
||||
@JvmStatic
|
||||
fun getMapData(itemStack: ItemStack): MapData? {
|
||||
return (itemStack.getItem() as ItemMap).getMapData(itemStack, mc.world as World)
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user