Skip to content

Commit 268d5f1

Browse files
committed
Resize JEI controls for multiblock rendering
1 parent a4bf629 commit 268d5f1

1 file changed

Lines changed: 54 additions & 55 deletions

File tree

src/main/java/com/robotgryphon/compactcrafting/compat/jei/JeiMiniaturizationCraftingCategory.java

Lines changed: 54 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.robotgryphon.compactcrafting.compat.jei;
22

33
import com.mojang.blaze3d.matrix.MatrixStack;
4+
import com.mojang.blaze3d.systems.RenderSystem;
45
import com.robotgryphon.compactcrafting.CompactCrafting;
56
import com.robotgryphon.compactcrafting.client.render.RenderTickCounter;
67
import com.robotgryphon.compactcrafting.client.render.RenderTypesExtensions;
@@ -17,6 +18,10 @@
1718
import mezz.jei.api.recipe.category.IRecipeCategory;
1819
import net.minecraft.block.BlockState;
1920
import net.minecraft.client.Minecraft;
21+
import net.minecraft.client.audio.SimpleSound;
22+
import net.minecraft.client.audio.SoundHandler;
23+
import net.minecraft.client.gui.AbstractGui;
24+
import net.minecraft.client.gui.screen.Screen;
2025
import net.minecraft.client.renderer.BlockRendererDispatcher;
2126
import net.minecraft.client.renderer.IRenderTypeBuffer;
2227
import net.minecraft.client.renderer.Tessellator;
@@ -25,6 +30,7 @@
2530
import net.minecraft.item.Item;
2631
import net.minecraft.item.ItemStack;
2732
import net.minecraft.util.ResourceLocation;
33+
import net.minecraft.util.SoundEvents;
2834
import net.minecraft.util.math.AxisAlignedBB;
2935
import net.minecraft.util.math.BlockPos;
3036
import net.minecraft.util.math.vector.Quaternion;
@@ -51,10 +57,10 @@ public class JeiMiniaturizationCraftingCategory implements IRecipeCategory<Minia
5157
private int singleLayerOffset = 0;
5258
private boolean debugMode = false;
5359

54-
private Rectangle explodeToggle = new Rectangle(0, 0, 20, 20);
55-
private Rectangle layerUp = new Rectangle(0, 32, 20, 20);
56-
private Rectangle layerSwap = new Rectangle(0, 52, 20, 20);
57-
private Rectangle layerDown = new Rectangle(0, 72, 20, 20);
60+
private Rectangle explodeToggle = new Rectangle(0, 0, 10, 10);
61+
private Rectangle layerUp = new Rectangle(0, 25, 10, 10);
62+
private Rectangle layerSwap = new Rectangle(0, 37, 10, 10);
63+
private Rectangle layerDown = new Rectangle(0, 49, 10, 10);
5864

5965
/**
6066
* Whether or not the preview is exploded (expanded) or not.
@@ -215,98 +221,91 @@ private void addOutputSlots(MiniaturizationRecipe recipe, int GUTTER_X, int OFFS
215221
@Override
216222
public boolean handleClick(MiniaturizationRecipe recipe, double mouseX, double mouseY, int mouseButton) {
217223

224+
SoundHandler handler = Minecraft.getInstance().getSoundHandler();
225+
226+
218227
if (explodeToggle.contains(mouseX, mouseY)) {
219228
explodeMulti = exploded ? 1.0d : 1.6d;
220229
exploded = !exploded;
230+
handler.play(SimpleSound.master(SoundEvents.UI_BUTTON_CLICK, 1.0F));
221231
return true;
222232
}
223233

224234
if (layerSwap.contains(mouseX, mouseY)) {
225235
singleLayer = !singleLayer;
236+
handler.play(SimpleSound.master(SoundEvents.UI_BUTTON_CLICK, 1.0F));
226237
return true;
227238
}
228239

229240
if (layerUp.contains(mouseX, mouseY) && singleLayer) {
230-
if (singleLayerOffset < recipe.getDimensions().getYSize() - 1)
241+
if (singleLayerOffset < recipe.getDimensions().getYSize() - 1) {
242+
handler.play(SimpleSound.master(SoundEvents.UI_BUTTON_CLICK, 1.0F));
231243
singleLayerOffset++;
244+
}
232245

233246
return true;
234247
}
235248

236249
if (layerDown.contains(mouseX, mouseY) && singleLayer) {
237-
if (singleLayerOffset > 0)
250+
if (singleLayerOffset > 0) {
251+
handler.play(SimpleSound.master(SoundEvents.UI_BUTTON_CLICK, 1.0F));
238252
singleLayerOffset--;
253+
}
239254

240255
return true;
241256
}
242257

243258
return false;
244259
}
245260

261+
private void drawScaledTexture(
262+
MatrixStack matrixStack,
263+
ResourceLocation texture, Rectangle bounds,
264+
float u, float v,
265+
int uWidth, int vHeight,
266+
int textureWidth, int textureHeight) {
267+
268+
Minecraft minecraft = Minecraft.getInstance();
269+
minecraft.getTextureManager().bindTexture(texture);
270+
271+
RenderSystem.enableDepthTest();
272+
Screen curr = Minecraft.getInstance().currentScreen;
273+
AbstractGui.blit(matrixStack, bounds.x, bounds.y, bounds.width, bounds.height,
274+
u, v, uWidth, vHeight, textureWidth, textureHeight);
275+
// if (this.isHovered()) {
276+
// this.renderToolTip(matrixStack, mouseX, mouseY);
277+
// }
278+
}
279+
246280
@Override
247281
public void draw(MiniaturizationRecipe recipe, MatrixStack mx, double mouseX, double mouseY) {
248282
AxisAlignedBB dims = recipe.getDimensions();
249283

250284
//region JEI controls
251-
IDrawableStatic button;
252-
if(exploded) {
253-
button = guiHelper
254-
.drawableBuilder(
255-
new ResourceLocation(CompactCrafting.MOD_ID, "textures/gui/jei-sprites.png"),
256-
20, 0,
257-
20, 20
258-
).setTextureSize(120, 20).build();
285+
mx.push();
286+
mx.translate(0, 0, 500);
287+
288+
ResourceLocation sprites = new ResourceLocation(CompactCrafting.MOD_ID, "textures/gui/jei-sprites.png");
289+
290+
if (exploded) {
291+
drawScaledTexture(mx, sprites, explodeToggle, 20, 0, 20, 20, 120, 20);
259292
} else {
260-
button = guiHelper
261-
.drawableBuilder(
262-
new ResourceLocation(CompactCrafting.MOD_ID, "textures/gui/jei-sprites.png"),
263-
0, 0,
264-
20, 20
265-
).setTextureSize(120, 20).build();
293+
drawScaledTexture(mx, sprites, explodeToggle, 0, 0, 20, 20, 120, 20);
266294
}
267295

268-
IDrawableStatic layerUp = guiHelper
269-
.drawableBuilder(
270-
new ResourceLocation(CompactCrafting.MOD_ID, "textures/gui/jei-sprites.png"),
271-
80, 20,
272-
20, 20
273-
).setTextureSize(120, 20).build();
274-
275-
IDrawableStatic layerMode;
276-
if(singleLayer) {
277-
layerMode =guiHelper
278-
.drawableBuilder(
279-
new ResourceLocation(CompactCrafting.MOD_ID, "textures/gui/jei-sprites.png"),
280-
60, 20,
281-
20, 20
282-
).setTextureSize(120, 20).build();
296+
// Layer change buttons
297+
if (singleLayer) {
298+
drawScaledTexture(mx, sprites, layerSwap, 60, 0, 20, 20, 120, 20);
283299
} else {
284-
layerMode = guiHelper
285-
.drawableBuilder(
286-
new ResourceLocation(CompactCrafting.MOD_ID, "textures/gui/jei-sprites.png"),
287-
40, 20,
288-
20, 20
289-
).setTextureSize(120, 20).build();
300+
drawScaledTexture(mx, sprites, layerSwap, 40, 0, 20, 20, 120, 20);
290301
}
291302

292-
IDrawableStatic lDown = guiHelper
293-
.drawableBuilder(
294-
new ResourceLocation(CompactCrafting.MOD_ID, "textures/gui/jei-sprites.png"),
295-
100, 20,
296-
20, 20
297-
).setTextureSize(120, 20).build();
298-
299-
mx.push();
300-
301-
button.draw(mx, explodeToggle.x, explodeToggle.y);
302-
303-
layerMode.draw(mx, layerSwap.x, layerSwap.y);
304303
if (singleLayer) {
305304
if (singleLayerOffset < dims.getYSize() - 1)
306-
layerUp.draw(mx, this.layerUp.x, this.layerUp.y);
305+
drawScaledTexture(mx, sprites, layerUp, 80, 0, 20, 20, 120, 20);
307306

308307
if (singleLayerOffset > 0) {
309-
lDown.draw(mx, layerDown.x, layerDown.y);
308+
drawScaledTexture(mx, sprites, layerDown, 100, 0, 20, 20, 120, 20);
310309
}
311310
}
312311

0 commit comments

Comments
 (0)