11package com .robotgryphon .compactcrafting .compat .jei ;
22
33import com .mojang .blaze3d .matrix .MatrixStack ;
4+ import com .mojang .blaze3d .systems .RenderSystem ;
45import com .robotgryphon .compactcrafting .CompactCrafting ;
56import com .robotgryphon .compactcrafting .client .render .RenderTickCounter ;
67import com .robotgryphon .compactcrafting .client .render .RenderTypesExtensions ;
1718import mezz .jei .api .recipe .category .IRecipeCategory ;
1819import net .minecraft .block .BlockState ;
1920import 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 ;
2025import net .minecraft .client .renderer .BlockRendererDispatcher ;
2126import net .minecraft .client .renderer .IRenderTypeBuffer ;
2227import net .minecraft .client .renderer .Tessellator ;
2530import net .minecraft .item .Item ;
2631import net .minecraft .item .ItemStack ;
2732import net .minecraft .util .ResourceLocation ;
33+ import net .minecraft .util .SoundEvents ;
2834import net .minecraft .util .math .AxisAlignedBB ;
2935import net .minecraft .util .math .BlockPos ;
3036import 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