generated from tilera/1710mod
feat: view item aspects without scanning
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
8a6def104b
commit
b36c725d26
|
@ -13,6 +13,10 @@ public class Config {
|
|||
public static boolean replaceSilverwood = true;
|
||||
public static boolean knowAllAspects = true;
|
||||
|
||||
public static boolean noScanning() {
|
||||
return knowAllAspects;
|
||||
}
|
||||
|
||||
public static void load() {
|
||||
config.load();
|
||||
nodeRarity = config.get("worldgen", "nodeRarity", nodeRarity).getInt(nodeRarity);
|
||||
|
|
|
@ -0,0 +1,120 @@
|
|||
package dev.tilera.auracore.mixins;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.lwjgl.input.Mouse;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Overwrite;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
|
||||
import cpw.mods.fml.client.FMLClientHandler;
|
||||
import dev.tilera.auracore.Config;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.ScaledResolution;
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.Slot;
|
||||
import thaumcraft.api.aspects.Aspect;
|
||||
import thaumcraft.api.aspects.AspectList;
|
||||
import thaumcraft.client.lib.ClientTickEventsFML;
|
||||
import thaumcraft.client.lib.UtilsFX;
|
||||
import thaumcraft.common.Thaumcraft;
|
||||
import thaumcraft.common.lib.crafting.ThaumcraftCraftingManager;
|
||||
import thaumcraft.common.lib.research.ScanManager;
|
||||
|
||||
@Mixin(ClientTickEventsFML.class)
|
||||
public abstract class MixinClientTickEventsFML {
|
||||
|
||||
@Shadow(remap = false)
|
||||
protected abstract boolean isMouseOverSlot(Slot par1Slot, int par2, int par3, int par4, int par5);
|
||||
|
||||
/**
|
||||
* @author tilera
|
||||
* @reason Show aspects without scanning
|
||||
*/
|
||||
@Overwrite(remap = false)
|
||||
public void renderAspectsInGui(GuiContainer gui, EntityPlayer player) {
|
||||
Minecraft mc = FMLClientHandler.instance().getClient();
|
||||
ScaledResolution var13 = new ScaledResolution(Minecraft.getMinecraft(), mc.displayWidth, mc.displayHeight);
|
||||
int var14 = var13.getScaledWidth();
|
||||
int var15 = var13.getScaledHeight();
|
||||
int var16 = Mouse.getX() * var14 / mc.displayWidth;
|
||||
int var17 = var15 - Mouse.getY() * var15 / mc.displayHeight - 1;
|
||||
GL11.glPushMatrix();
|
||||
GL11.glPushAttrib(1048575);
|
||||
GL11.glDisable(2896);
|
||||
|
||||
for(int var20 = 0; var20 < gui.inventorySlots.inventorySlots.size(); ++var20) {
|
||||
int xs = UtilsFX.getGuiXSize(gui);
|
||||
int ys = UtilsFX.getGuiYSize(gui);
|
||||
int shift = 0;
|
||||
int shift2 = 0;
|
||||
int shiftx = -8;
|
||||
int shifty = -8;
|
||||
if (Thaumcraft.instance.aspectShift) {
|
||||
shiftx -= 8;
|
||||
shifty -= 8;
|
||||
}
|
||||
|
||||
Slot var23 = (Slot)gui.inventorySlots.inventorySlots.get(var20);
|
||||
int guiLeft = shift + (gui.width - xs - shift2) / 2;
|
||||
int guiTop = (gui.height - ys) / 2;
|
||||
if (this.isMouseOverSlot(var23, var16, var17, guiLeft, guiTop) && var23.getStack() != null) {
|
||||
int h = ScanManager.generateItemHash(var23.getStack().getItem(), var23.getStack().getItemDamage());
|
||||
List<String> list = (List)Thaumcraft.proxy.getScannedObjects().get(player.getCommandSenderName());
|
||||
if (Config.noScanning() || (list != null && (list.contains("@" + h) || list.contains("#" + h)))) {
|
||||
AspectList tags = ThaumcraftCraftingManager.getObjectTags(var23.getStack());
|
||||
tags = ThaumcraftCraftingManager.getBonusTags(var23.getStack(), tags);
|
||||
if (tags != null) {
|
||||
int x = var16 + 17;
|
||||
int y = var17 + 7 - 33;
|
||||
GL11.glDisable(2929);
|
||||
int index = 0;
|
||||
if (tags.size() > 0) {
|
||||
Aspect[] arr$ = tags.getAspectsSortedAmount();
|
||||
int len$ = arr$.length;
|
||||
|
||||
for(int i$ = 0; i$ < len$; ++i$) {
|
||||
Aspect tag = arr$[i$];
|
||||
if (tag != null) {
|
||||
x = var16 + 17 + index * 18;
|
||||
y = var17 + 7 - 33;
|
||||
UtilsFX.bindTexture("textures/aspects/_back.png");
|
||||
GL11.glPushMatrix();
|
||||
GL11.glEnable(3042);
|
||||
GL11.glBlendFunc(770, 771);
|
||||
GL11.glTranslated((double)(x + shiftx - 2), (double)(y + shifty - 2), 0.0D);
|
||||
GL11.glScaled(1.25D, 1.25D, 0.0D);
|
||||
UtilsFX.drawTexturedQuadFull(0, 0, (double)UtilsFX.getGuiZLevel(gui));
|
||||
GL11.glDisable(3042);
|
||||
GL11.glPopMatrix();
|
||||
if (Thaumcraft.proxy.playerKnowledge.hasDiscoveredAspect(player.getCommandSenderName(), tag)) {
|
||||
UtilsFX.drawTag(x + shiftx, y + shifty, tag, (float)tags.getAmount(tag), 0, (double)UtilsFX.getGuiZLevel(gui));
|
||||
} else {
|
||||
UtilsFX.bindTexture("textures/aspects/_unknown.png");
|
||||
GL11.glPushMatrix();
|
||||
GL11.glEnable(3042);
|
||||
GL11.glBlendFunc(770, 771);
|
||||
GL11.glTranslated((double)(x + shiftx), (double)(y + shifty), 0.0D);
|
||||
UtilsFX.drawTexturedQuadFull(0, 0, (double)UtilsFX.getGuiZLevel(gui));
|
||||
GL11.glDisable(3042);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
++index;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GL11.glEnable(2929);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GL11.glPopAttrib();
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
}
|
|
@ -24,7 +24,8 @@
|
|||
"MixinBlockCustomOreRenderer",
|
||||
"MixinTileArcaneWorkbenchRenderer",
|
||||
"MixinTileCrystalRenderer",
|
||||
"MixinBlockCrystalRenderer"
|
||||
"MixinBlockCrystalRenderer",
|
||||
"MixinClientTickEventsFML"
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
|
|
Loading…
Reference in New Issue