Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port/Rework Crafting Station to MUI2 #2455

Open
wants to merge 152 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 147 commits
Commits
Show all changes
152 commits
Select commit Hold shift + click to select a range
038b268
initial work on workbench port
ghzdude Jan 26, 2024
0937104
make crafting logic not server only
ghzdude Jan 26, 2024
3acd0e3
fix crafting output slot
ghzdude Jan 26, 2024
4363a18
add class for jei recipe transfer
ghzdude Jan 26, 2024
e2f9ae1
update recipe appropriately
ghzdude Jan 26, 2024
9fc9a8e
more work on ui
ghzdude Jan 26, 2024
ec22458
wrap InventoryCrafting
ghzdude Jan 26, 2024
71a3b66
more work on output crafting slot
ghzdude Jan 26, 2024
ebd88df
test extending modularslot
ghzdude Jan 26, 2024
e732e90
more work on crafting logic
ghzdude Jan 26, 2024
74b92db
add method to get inventory
ghzdude Jan 26, 2024
5b9400f
implement method
ghzdude Jan 26, 2024
56e7a4b
sync crafting matrix
ghzdude Jan 26, 2024
50624a1
fix some issues with the output slot
ghzdude Jan 26, 2024
51a279a
more work on crafting logic woo
ghzdude Jan 26, 2024
ecce71f
crafting logic mostly done now?
ghzdude Jan 26, 2024
ba8857a
work on workbench ui
ghzdude Jan 26, 2024
2417953
make handlerlist nonfinal
ghzdude Jan 26, 2024
2edbafc
add method to update cache handler
ghzdude Jan 26, 2024
6207fc2
even more ui work
ghzdude Jan 26, 2024
f97a9b9
the great commenting of 2024
ghzdude Jan 26, 2024
ee3304c
update stack index
ghzdude Jan 27, 2024
0ed6d7e
revert change to itemCrafting
ghzdude Jan 27, 2024
a05dd05
simplify crafting logic slightly
ghzdude Jan 28, 2024
d4c0347
more work on recipe logic
ghzdude Jan 28, 2024
5123332
move logic/fields in CachedRecipeData to CraftingRecipeLogic
ghzdude Jan 31, 2024
37e7d14
fix sync issue
ghzdude Jan 31, 2024
bc857c2
properly fix sync issues
ghzdude Jan 31, 2024
b0d714b
remove GregTechGuiTransferrableScreen.java and usages
ghzdude Feb 1, 2024
125d674
implement jei compat directly
ghzdude Feb 1, 2024
19ff620
add slot group for crafting matrix
ghzdude Feb 1, 2024
6bb5e75
uncomment a portion of code
ghzdude Feb 1, 2024
f59bdd0
add recipe transferring from JEI
ghzdude Feb 1, 2024
b14764d
remove todo
ghzdude Feb 1, 2024
54dd165
update handler on client
ghzdude Feb 1, 2024
e97a609
remove available item map
ghzdude Feb 2, 2024
764ffff
unique sync codes
ghzdude Feb 2, 2024
3879d17
try implement storage view
ghzdude Feb 2, 2024
989eea3
fully implement storage view
ghzdude Feb 2, 2024
23e2bcf
add method to get result stack
ghzdude Feb 3, 2024
c210058
fix issues with tools being damages
ghzdude Feb 3, 2024
8140c03
more work on ui
ghzdude Feb 3, 2024
7e5c6a5
help me
ghzdude Feb 3, 2024
7d79d71
only set stack if item is different from current
ghzdude Feb 3, 2024
a7d046f
don't throw exception
ghzdude Feb 3, 2024
4bbea34
notify neighbors on slot change
ghzdude Feb 3, 2024
7ab4294
make handler modifiable
ghzdude Feb 3, 2024
3fdbd22
sync on contents change
ghzdude Feb 3, 2024
45def91
don't call change on init
ghzdude Feb 3, 2024
b5ceb78
start work on recipe memorization
ghzdude Feb 4, 2024
c8206a1
small work
ghzdude Feb 15, 2024
ab9c9a1
add handler wrapper to handle incorrect slot gracefully
ghzdude Feb 23, 2024
f1bc271
spotless
ghzdude Apr 17, 2024
ea1ee98
add bogosorter as api
ghzdude Apr 17, 2024
e2d9cbf
remove commented out code
ghzdude Apr 17, 2024
706c75c
ui testing
ghzdude Apr 18, 2024
037ab09
more ui testing
ghzdude Apr 18, 2024
e529cf0
fixed(?) the grid
ghzdude Apr 19, 2024
f5d2a30
grid fixed
ghzdude Apr 19, 2024
e10a620
more work on syncing and recipe logic
ghzdude Apr 19, 2024
f93e80e
more work on syncing and recipe logic part 2 + spotless
ghzdude Apr 20, 2024
7977dbc
simplify client syncing
ghzdude Apr 20, 2024
708a839
move crafting output slot into own class
ghzdude Apr 22, 2024
4ba7bb8
we do a little refactoring
ghzdude Apr 22, 2024
bf2bb21
remove unused class
ghzdude Apr 22, 2024
e29f315
move inventory wrapper class
ghzdude Apr 22, 2024
eff13d0
collect items before each craft
ghzdude Apr 22, 2024
ecd7a13
small fixes
ghzdude Apr 22, 2024
96e8704
small fixes part 2
ghzdude Apr 22, 2024
4490b41
small fixes part 3
ghzdude Apr 23, 2024
c887610
initial work on recipe memory
ghzdude Apr 24, 2024
819729c
make memory a sync handler
ghzdude Apr 24, 2024
11e8abc
more syncing fixes
ghzdude Apr 25, 2024
195c39a
just crafting station things
ghzdude Apr 25, 2024
03184d4
improve crafting logic
ghzdude May 3, 2024
2a8631c
small rendering changes and other fixes
ghzdude May 3, 2024
7c20265
fix rendering issues
ghzdude May 3, 2024
d4233dd
add locking rendering to memory slots
ghzdude May 3, 2024
f99dde1
spotless
ghzdude May 3, 2024
e7bed88
add crafting input slot
ghzdude May 3, 2024
9fe4db5
work on various custom slots
ghzdude May 4, 2024
c258ff8
display and sync recipe memory times used
ghzdude May 4, 2024
a96d5aa
fix tooltips for output and memory slots
ghzdude May 5, 2024
2498d17
sbobl
ghzdude May 5, 2024
37c0979
move changes to item handler list
ghzdude May 8, 2024
27eeb2c
collect shift click slots manually
ghzdude May 11, 2024
d4598dd
integrate input slots with JEI
ghzdude Jun 4, 2024
bbc385d
delete unused classes
ghzdude Jun 4, 2024
13fa0a6
sboblss
ghzdude Jun 4, 2024
ccd41a4
handle buckets properly
ghzdude Jun 4, 2024
4278d0a
imrove wrapper and some javadocs
ghzdude Jun 4, 2024
c45ad6b
Tinting (#2)
bruberu Jun 6, 2024
06c81a7
fix overlay
ghzdude Jun 6, 2024
809596c
casually rewrite recipe logic a bit :handsom:
ghzdude Jun 8, 2024
1abd515
even more work on recipe logic
ghzdude Jun 9, 2024
a9702b5
update todo
ghzdude Jun 9, 2024
f14f4c6
make sure to use copy
ghzdude Jun 9, 2024
2963bcd
try and fail at shift transfer
ghzdude Jun 9, 2024
af7fc40
consume items correctly
ghzdude Jun 9, 2024
d8a0adc
sbobless
ghzdude Jun 9, 2024
e27d620
small fixes
ghzdude Jun 9, 2024
be88e55
add jei support for output slot
ghzdude Jun 9, 2024
0e6d154
remove comment
ghzdude Jun 9, 2024
94d092c
make strategy ignore tag
ghzdude Jun 9, 2024
c296eed
remove the recipe on client
ghzdude Jun 9, 2024
e83f40a
mostly fix recipe memory
ghzdude Jun 9, 2024
0dd7249
add metadata to hash strategy
ghzdude Jun 9, 2024
2b5c151
minor fixes
ghzdude Jun 10, 2024
26f2c74
fix: all the bugs (#3)
bruberu Jun 26, 2024
67f0cb4
fix rebase
ghzdude Jul 20, 2024
9123ddd
sootless
ghzdude Jul 20, 2024
3e10b99
epic rebase + spotless
ghzdude Aug 25, 2024
0a7d0dc
improve recipe logic slightly
ghzdude Aug 25, 2024
bb6fdbc
a few more optimizations
ghzdude Aug 28, 2024
73f8bb4
spblss
ghzdude Aug 28, 2024
55b29c8
allow cache miss to set any stack it comes across, instead of just th…
ghzdude Oct 17, 2024
0e20b05
remove stack key if int set is empty
ghzdude Oct 17, 2024
3548eaf
fix rebase
ghzdude Jan 10, 2025
64fec77
fix crafting widgets
ghzdude Jan 10, 2025
35aed6e
missed a column
ghzdude Jan 10, 2025
88c2492
use mui2 methods to draw item
ghzdude Jan 20, 2025
e217b29
remove unneeded method
ghzdude Jan 20, 2025
c06c1d8
add todo lang
ghzdude Jan 29, 2025
c8960c8
cleanup CraftingOutputSlot
ghzdude Jan 29, 2025
f42df8c
spotless
ghzdude Jan 29, 2025
a3ee25f
remove workbench from JEI module
ghzdude Jan 29, 2025
58328de
remove unneeded override
ghzdude Jan 29, 2025
f1b262d
name internal ids
ghzdude Jan 29, 2025
b545de7
make constructor private
ghzdude Jan 29, 2025
647a14f
rename and cleanup
ghzdude Jan 29, 2025
87b8c48
cleanup and sort inventory list
ghzdude Jan 29, 2025
492286f
fix lock not syncing
ghzdude Jan 29, 2025
478a54d
oops
ghzdude Jan 29, 2025
876b785
add button to clear grid
ghzdude Jan 30, 2025
8d92a30
implement multi-crafting with shift
ghzdude Jan 30, 2025
9dda6ae
fix off by one crafting
ghzdude Jan 30, 2025
e3039a6
use modified draw item method
ghzdude Jan 30, 2025
e59aebd
reset ingredients
ghzdude Jan 30, 2025
585bdd4
improve recipe memory offsetting
ghzdude Jan 30, 2025
f84a3a9
no need to move recipes at index 0
ghzdude Jan 30, 2025
e7a875d
check and simulate if output can be inserted
ghzdude Jan 30, 2025
6dacf63
clear and refresh the lookup map every tick
ghzdude Jan 30, 2025
445c94c
fix issue with output slot not crafting when not holding shift
ghzdude Jan 30, 2025
fb29c8f
more lang, remove todo
ghzdude Jan 30, 2025
eb43be9
implement dragging for input slots
ghzdude Jan 31, 2025
4d8b07f
add todo
ghzdude Jan 31, 2025
0852124
fix toolbelt slot group
ghzdude Feb 1, 2025
367ea78
fix tools not making crafting sounds
ghzdude Feb 1, 2025
8f42a8e
fix item overlay rendering
ghzdude Feb 1, 2025
a0cb66b
don't transfer if not in workbench
ghzdude Feb 1, 2025
09a8ee5
make RecipeMemorySlot a jei ingredient provider
ghzdude Feb 1, 2025
6162861
fix duplicate recipe memory
ghzdude Feb 1, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ dependencies {
api("codechicken:codechickenlib:3.2.3.358")
api("com.cleanroommc:modularui:2.5.0-rc2") { transitive = false }
api("com.cleanroommc:groovyscript:1.2.0-hotfix1") { transitive = false }
api("curse.maven:inventory-bogosorter-632327:4951607-deobf-4951608-sources-4951609")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is added as a dep, but nothing is done with it in this PR that I can see, do we still need it?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is required due to ModularContainer implementing a bogosorter interface, which is loaded from GregTechGuiTransferHandler

api("CraftTweaker2:CraftTweaker2-MC1120-Main:1.12-4.1.20.700")
api("appeng:ae2-uel:v0.56.4") { transitive = false }
api rfg.deobf("curse.maven:ctm-267602:2915363") // CTM 1.0.2.31
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ public static int assignId() {
// Misc TEs (Transformer, World Accelerator)
public static final int SYNC_TILE_MODE = assignId();

// Crafting Station
public static final int UPDATE_CLIENT_HANDLER = assignId();

// Clipboard
public static final int CREATE_FAKE_UI = assignId();
public static final int MOUSE_POSITION = assignId();
Expand Down
19 changes: 15 additions & 4 deletions src/main/java/gregtech/api/capability/impl/ItemHandlerList.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,36 +40,43 @@ public int getSlots() {

@Override
public void setStackInSlot(int slot, @NotNull ItemStack stack) {
if (invalidSlot(slot)) return;
IItemHandler itemHandler = handlerBySlotIndex.get(slot);
if (!(itemHandler instanceof IItemHandlerModifiable))
throw new UnsupportedOperationException("Handler " + itemHandler + " does not support this method");
((IItemHandlerModifiable) itemHandler).setStackInSlot(slot - baseIndexOffset.get(itemHandler), stack);
if (itemHandler instanceof IItemHandlerModifiable modifiable) {
modifiable.setStackInSlot(slot - baseIndexOffset.get(itemHandler), stack);
} else {
itemHandler.extractItem(slot, Integer.MAX_VALUE, false);
itemHandler.insertItem(slot, stack, false);
}
}

@NotNull
@Override
public ItemStack getStackInSlot(int slot) {
if (invalidSlot(slot)) return ItemStack.EMPTY;
IItemHandler itemHandler = handlerBySlotIndex.get(slot);
int realSlot = slot - baseIndexOffset.get(itemHandler);
return itemHandler.getStackInSlot(slot - baseIndexOffset.get(itemHandler));
}

@Override
public int getSlotLimit(int slot) {
if (invalidSlot(slot)) return 0;
IItemHandler itemHandler = handlerBySlotIndex.get(slot);
return itemHandler.getSlotLimit(slot - baseIndexOffset.get(itemHandler));
}

@NotNull
@Override
public ItemStack insertItem(int slot, @NotNull ItemStack stack, boolean simulate) {
if (invalidSlot(slot)) return stack;
IItemHandler itemHandler = handlerBySlotIndex.get(slot);
return itemHandler.insertItem(slot - baseIndexOffset.get(itemHandler), stack, simulate);
}

@NotNull
@Override
public ItemStack extractItem(int slot, int amount, boolean simulate) {
if (invalidSlot(slot)) return ItemStack.EMPTY;
IItemHandler itemHandler = handlerBySlotIndex.get(slot);
return itemHandler.extractItem(slot - baseIndexOffset.get(itemHandler), amount, simulate);
}
Expand All @@ -78,4 +85,8 @@ public ItemStack extractItem(int slot, int amount, boolean simulate) {
public Collection<IItemHandler> getBackingHandlers() {
return Collections.unmodifiableCollection(handlerBySlotIndex.values());
}

private boolean invalidSlot(int slot) {
return slot < 0 && slot >= this.getSlots();
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,16 @@ public GTItemStackHandler(MetaTileEntity metaTileEntity, NonNullList<ItemStack>
this.metaTileEntity = metaTileEntity;
}

@Override
public void setStackInSlot(int slot, ItemStack stack) {
if (ItemStack.areItemStacksEqual(stack, getStackInSlot(slot)))
return;

super.setStackInSlot(slot, stack);
}

@Override
public void onContentsChanged(int slot) {
super.onContentsChanged(slot);
metaTileEntity.markDirty();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ public ModularPanel buildUI(HandGuiData guiData, PanelSyncManager guiSyncManager

int heightBonus = (handler.getSlots() / 9) * 18;

SlotGroup group = new SlotGroup("toolbelt_inventory", 9);
SlotGroup group = new SlotGroup("toolbelt_inventory", Math.min(handler.getSlots(), 9));
guiSyncManager.registerSlotGroup(group);

List<ItemSlot> slots = new ArrayList<>();
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/gregtech/api/mui/GTGuiTextures.java
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,8 @@ public static class IDs {

public static final UITexture MENU_OVERLAY = fullImage("textures/gui/overlay/menu_overlay.png");

public static final UITexture RECIPE_LOCK = fullImage("textures/gui/widget/lock.png");

// todo bronze/steel/primitive fluid slots?

// SLOT OVERLAYS
Expand Down Expand Up @@ -355,6 +357,7 @@ public static class IDs {
public static final UITexture BUTTON_AUTO_COLLAPSE = fullImage(
"textures/gui/widget/button_auto_collapse_overlay.png");
public static final UITexture BUTTON_X = fullImage("textures/gui/widget/button_x_overlay.png", true);
public static final UITexture BUTTON_CLEAR_GRID = fullImage("textures/gui/widget/button_clear_grid.png", false);

public static final UITexture BUTTON_CROSS = fullImage("textures/gui/widget/button_cross.png");
public static final UITexture BUTTON_REDSTONE_ON = fullImage("textures/gui/widget/button_redstone_on.png");
Expand Down
66 changes: 66 additions & 0 deletions src/main/java/gregtech/api/mui/GregTechGuiTransferHandler.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package gregtech.api.mui;

import gregtech.common.metatileentities.storage.CraftingRecipeLogic;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.ItemStack;
import net.minecraft.network.PacketBuffer;

import com.cleanroommc.modularui.network.NetworkUtils;
import com.cleanroommc.modularui.screen.ModularContainer;
import com.cleanroommc.modularui.value.sync.PanelSyncManager;
import mezz.jei.api.gui.IRecipeLayout;
import mezz.jei.api.recipe.transfer.IRecipeTransferError;
import mezz.jei.api.recipe.transfer.IRecipeTransferHandler;
import mezz.jei.api.recipe.transfer.IRecipeTransferHandlerHelper;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public class GregTechGuiTransferHandler implements IRecipeTransferHandler<ModularContainer> {

private final IRecipeTransferHandlerHelper handlerHelper;
private InventoryCrafting craftingMatrix;

public GregTechGuiTransferHandler(IRecipeTransferHandlerHelper handlerHelper) {
this.handlerHelper = handlerHelper;
}

@Override
public @NotNull Class<ModularContainer> getContainerClass() {
return ModularContainer.class;
}

@Override
public @Nullable IRecipeTransferError transferRecipe(ModularContainer container, IRecipeLayout recipeLayout,
EntityPlayer player, boolean maxTransfer, boolean doTransfer) {
String key = PanelSyncManager.makeSyncKey("recipe_logic", 0);
CraftingRecipeLogic recipeLogic = (CraftingRecipeLogic) container.getSyncManager()
.getSyncHandler("workbench", key);

if (!doTransfer) {
// todo highlighting in JEI?
return null;
}

var ingredients = recipeLayout.getItemStacks().getGuiIngredients();
this.craftingMatrix = recipeLogic.getCraftingMatrix();

for (int i = 0; i < craftingMatrix.getSizeInventory(); i++) {
var ing = ingredients.get(i + 1).getDisplayedIngredient();
this.craftingMatrix.setInventorySlotContents(i, ing == null ? ItemStack.EMPTY : ing);
}

recipeLogic.syncToServer(CraftingRecipeLogic.UPDATE_MATRIX, this::writeCraftingMatrix);
recipeLogic.updateCurrentRecipe();
return null;
}

private void writeCraftingMatrix(PacketBuffer buffer) {
buffer.writeVarInt(this.craftingMatrix.getSizeInventory());
for (int i = 0; i < this.craftingMatrix.getSizeInventory(); i++) {
var stack = this.craftingMatrix.getStackInSlot(i);
NetworkUtils.writeItemStack(buffer, stack);
}
}
}
15 changes: 0 additions & 15 deletions src/main/java/gregtech/api/storage/ICraftingStorage.java

This file was deleted.

17 changes: 15 additions & 2 deletions src/main/java/gregtech/api/util/ItemStackHashStrategy.java
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ static ItemStackHashStrategy comparingItemDamageCount() {
*/
class ItemStackHashStrategyBuilder {

private boolean item, count, damage, tag;
private boolean item, count, damage, tag, meta;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is damage not enough?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

iirc because of GT Tools or something like that, i made this change a long time ago.


/**
* Defines whether the Item type should be considered for equality.
Expand Down Expand Up @@ -93,6 +93,17 @@ public ItemStackHashStrategyBuilder compareDamage(boolean choice) {
return this;
}

/**
* Defines whether metadata values should be considered for equality.
*
* @param choice {@code true} to consider this property, {@code false} to ignore it.
* @return {@code this}
*/
public ItemStackHashStrategyBuilder compareMetadata(boolean choice) {
meta = choice;
return this;
}

/**
* Defines whether NBT Tags should be considered for equality.
*
Expand All @@ -116,7 +127,8 @@ public int hashCode(@Nullable ItemStack o) {
item ? o.getItem() : null,
count ? o.getCount() : null,
damage ? o.getItemDamage() : null,
tag ? o.getTagCompound() : null);
tag ? o.getTagCompound() : null,
meta ? o.getMetadata() : null);
}

@Override
Expand All @@ -127,6 +139,7 @@ public boolean equals(@Nullable ItemStack a, @Nullable ItemStack b) {
return (!item || a.getItem() == b.getItem()) &&
(!count || a.getCount() == b.getCount()) &&
(!damage || a.getItemDamage() == b.getItemDamage()) &&
(!meta || a.getMetadata() == b.getMetadata()) &&
(!tag || Objects.equals(a.getTagCompound(), b.getTagCompound()));
}
};
Expand Down
21 changes: 21 additions & 0 deletions src/main/java/gregtech/client/utils/RenderUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import net.minecraftforge.fml.relauncher.SideOnly;

import codechicken.lib.vec.Matrix4;
import com.cleanroommc.modularui.api.MCHelper;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.lwjgl.opengl.GL11;
Expand Down Expand Up @@ -384,6 +385,26 @@ public static void renderItemOverLay(float x, float y, float z, float scale, Ite
net.minecraft.client.renderer.RenderHelper.disableStandardItemLighting();
}

// adapted from com.cleanroommc.modularui.drawable.GuiDraw.java
// todo merge this with the method from the qstorage mui2 port
public static void renderItem(ItemStack item, int x, int y, float width, float height) {
if (item.isEmpty()) return;
GlStateManager.pushMatrix();
RenderHelper.enableGUIStandardItemLighting();
GlStateManager.enableDepth();
GlStateManager.translate(x, y, 0);
GlStateManager.scale(width / 16f, height / 16f, 1);
RenderItem renderItem = MCHelper.getMc().getRenderItem();
renderItem.zLevel = 200;
renderItem.renderItemAndEffectIntoGUI(MCHelper.getPlayer(), item, 0, 0);
renderItem.renderItemOverlayIntoGUI(MCHelper.getFontRenderer(), item, x, y, null);
renderItem.zLevel = 0;
GlStateManager.disableDepth();
RenderHelper.enableStandardItemLighting();
GlStateManager.disableLighting();
GlStateManager.popMatrix();
}

public static void renderFluidOverLay(float x, float y, float width, float height, float z, FluidStack fluidStack,
float alpha) {
if (fluidStack != null) {
Expand Down
Loading