package advancedsystemsmanager.flow.menus; import advancedsystemsmanager.flow.FlowComponent; import advancedsystemsmanager.flow.execution.CraftingDummy; import advancedsystemsmanager.flow.setting.CraftingSetting; import advancedsystemsmanager.flow.setting.Setting; import advancedsystemsmanager.client.gui.GuiManager; import advancedsystemsmanager.helpers.CollisionHelper; import advancedsystemsmanager.reference.Names; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.item.ItemStack; public class MenuCrafting extends MenuItem { public CraftingSetting resultItem; public CraftingDummy dummy; public MenuCrafting(FlowComponent parent) { super(parent); resultItem = new CraftingSetting(9) { @Override public boolean canChangeMetaData() { return false; } @Override public void delete() { for (Setting setting : settings) { setting.clear(); } } }; settings.add(resultItem); dummy = new CraftingDummy(this); scrollControllerSelected.setItemsPerRow(3); scrollControllerSelected.setVisibleRows(3); scrollControllerSelected.setItemUpperLimit(2); scrollControllerSelected.setDisabledScroll(true); } @Override public Setting<ItemStack> getSetting(int id) { return new CraftingSetting(id); } @SideOnly(Side.CLIENT) @Override public void onClick(int mX, int mY, int button) { super.onClick(mX, mY, button); if (!isEditing() && !isSearching() && resultItem.getItem() != null) { if (button == 1 && CollisionHelper.inBounds(getResultX(), getResultY(), ITEM_SIZE, ITEM_SIZE, mX, mY)) { scrollControllerSelected.onClick(resultItem, mX, mY, 1); } } } @Override public String getName() { return Names.CRAFTING_MENU; } public int getResultX() { return ITEM_X + ITEM_SIZE_WITH_MARGIN * 3; } public int getResultY() { return scrollControllerSelected.getScrollingStartY() + ITEM_SIZE_WITH_MARGIN; } @Override public int getSettingCount() { return 9; } @Override public void initRadioButtons() { } @SideOnly(Side.CLIENT) @Override public void draw(GuiManager gui, int mX, int mY) { super.draw(gui, mX, mY); if (!isEditing() && !isSearching() && resultItem.getItem() != null) { drawResultObject(gui, resultItem.getItem(), getResultX(), getResultY()); // gui.drawItemAmount(resultItem.getItem(), getResultX(), getResultY()); } } @SideOnly(Side.CLIENT) @Override public void drawMouseOver(GuiManager gui, int mX, int mY) { super.drawMouseOver(gui, mX, mY); if (!isEditing() && !isSearching() && resultItem.getItem() != null) { if (CollisionHelper.inBounds(getResultX(), getResultY(), ITEM_SIZE, ITEM_SIZE, mX, mY)) { gui.drawMouseOver(getResultObjectMouseOver(resultItem.getItem()), mX, mY); } } } @Override public void onSettingContentChange() { resultItem.setContent(dummy.getResult()); } public CraftingDummy getDummy() { return dummy; } public CraftingSetting getResultItem() { return resultItem; } }