the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 205 lines 8.3 kB view raw
1#pragma once 2using namespace std; 3 4#include "../media/xuiscene_craftingpanel_2x2.h" 5#include "XUI_Ctrl_MinecraftSlot.h" 6#include "..\..\..\Minecraft.World\Recipy.h" 7#include "XUI_Ctrl_CraftIngredientSlot.h" 8#include "..\..\..\Minecraft.World\Item.h" 9#include "XUI_CustomMessages.h" 10#include "..\..\Common\Tutorial\TutorialEnum.h" 11#include "..\UI\IUIScene_CraftingMenu.h" 12 13class CXuiCtrlSlotList; 14 15class CXuiSceneCraftingPanel : public CXuiSceneImpl, public IUIScene_CraftingMenu 16{ 17public: 18 // Define the class. The class name must match the ClassOverride property 19 // set for the scene in the UI Authoring tool. 20 XUI_IMPLEMENT_CLASS( CXuiSceneCraftingPanel, L"CXuiSceneCraftingPanel", XUI_CLASS_SCENE ) 21 22 protected: 23 // Control and Element wrapper objects. 24 25 CXuiImageElement m_hPanel; 26 CXuiImageElement m_hHighlight; 27 CXuiImageElement m_hScrollBar3; 28 CXuiImageElement m_hScrollBar2; 29 CXuiControl m_GroupName; 30 CXuiHtmlControl m_DescriptionText; 31 CXuiControl m_ItemName,m_InventoryText; 32 CXuiElement m_Group; 33 CXuiElement m_hGrid; 34 CXuiElement m_hGridInventory; 35 CXuiImageElement m_hTabGroupA[m_iMaxGroup3x3]; 36 CXuiControl m_hGroupIconA[m_iMaxGroup3x3]; 37 CXuiControl m_pHSlotsCraftingCursors[m_iMaxHCraftingSlotC]; 38 CXuiControl m_pHSlotsCraftingTableCursors[m_iMaxHSlotC]; 39 CXuiControl *m_pCursors; 40 CXuiControl m_hCraftIngredientA[m_iIngredients3x3SlotC]; 41 CXuiControl m_hCraftIngredientDescA[4]; // Max ingredients is 4 for bread 42 CXuiControl m_hCraftOutput; 43 CXuiControl m_sceneGroup; 44 45 CXuiCtrlSlotList* m_inventoryControl; 46 CXuiCtrlSlotList* m_useRowControl; 47 48 // Message map. Here we tie messages to message handlers. 49 XUI_BEGIN_MSG_MAP() 50 XUI_ON_XM_INIT( OnInit ) 51 XUI_ON_XM_TRANSITION_END( OnTransitionEnd) 52 XUI_ON_XM_KEYDOWN(OnKeyDown) 53 XUI_ON_XM_GET_SOURCE_IMAGE(OnGetSourceImage) 54 XUI_ON_XM_DESTROY( OnDestroy ) 55 XUI_ON_XM_SPLITSCREENPLAYER_MESSAGE(OnCustomMessage_Splitscreenplayer) 56 XUI_ON_XM_TIMER( OnTimer ) 57 XUI_ON_XM_KILL_FOCUS( OnKillFocus) 58 XUI_ON_XM_INVENTORYUPDATED_MESSAGE( OnCustomMessage_InventoryUpdated ) 59 XUI_END_MSG_MAP() 60 61 // Control mapping to objects 62 BEGIN_CONTROL_MAP() 63 MAP_CONTROL(IDC_Group, m_sceneGroup) 64 BEGIN_MAP_CHILD_CONTROLS(m_sceneGroup) 65 MAP_CONTROL(IDC_MainPanel,m_hPanel) 66 MAP_CONTROL(IDC_XuiGroupName,m_GroupName) 67 68 MAP_CONTROL(IDC_SceneCraftScrollGroup, m_Group) 69 BEGIN_MAP_CHILD_CONTROLS(m_Group) 70 MAP_CONTROL(IDC_XuiHighlight,m_hHighlight) 71 MAP_CONTROL(IDC_XuiImageScrollBar,m_hScrollBar3) 72 MAP_CONTROL(IDC_XuiImageScrollBar2Slot,m_hScrollBar2) 73 MAP_OVERRIDE(IDC_XuiHSlot0, m_pHSlotsBrushImageControl[0]) 74 MAP_OVERRIDE(IDC_XuiHSlot1, m_pHSlotsBrushImageControl[1]) 75 MAP_OVERRIDE(IDC_XuiHSlot2, m_pHSlotsBrushImageControl[2]) 76 MAP_OVERRIDE(IDC_XuiHSlot3, m_pHSlotsBrushImageControl[3]) 77 MAP_OVERRIDE(IDC_XuiHSlot4, m_pHSlotsBrushImageControl[4]) 78 MAP_OVERRIDE(IDC_XuiHSlot5, m_pHSlotsBrushImageControl[5]) 79 MAP_OVERRIDE(IDC_XuiHSlot6, m_pHSlotsBrushImageControl[6]) 80 MAP_OVERRIDE(IDC_XuiHSlot7, m_pHSlotsBrushImageControl[7]) 81 MAP_OVERRIDE(IDC_XuiHSlot8, m_pHSlotsBrushImageControl[8]) 82 MAP_OVERRIDE(IDC_XuiHSlot9, m_pHSlotsBrushImageControl[9]) 83 MAP_OVERRIDE(IDC_XuiHSlot10, m_pHSlotsBrushImageControl[10]) 84 MAP_OVERRIDE(IDC_XuiHSlot11, m_pHSlotsBrushImageControl[11]) 85 86 87 MAP_OVERRIDE(IDC_XuiVSlot0, m_pVSlotsBrushImageControl[0]) 88 MAP_OVERRIDE(IDC_XuiVSlot1, m_pVSlotsBrushImageControl[1]) 89 MAP_OVERRIDE(IDC_XuiVSlot2, m_pVSlotsBrushImageControl[2]) 90 91 END_MAP_CHILD_CONTROLS() 92 93 MAP_CONTROL(IDC_Group_Tab_Icons, m_Group) 94 BEGIN_MAP_CHILD_CONTROLS(m_Group) 95 MAP_CONTROL(IDC_Icon_1,m_hGroupIconA[0]) 96 MAP_CONTROL(IDC_Icon_2,m_hGroupIconA[1]) 97 MAP_CONTROL(IDC_Icon_3,m_hGroupIconA[2]) 98 MAP_CONTROL(IDC_Icon_4,m_hGroupIconA[3]) 99 MAP_CONTROL(IDC_Icon_5,m_hGroupIconA[4]) 100 MAP_CONTROL(IDC_Icon_6,m_hGroupIconA[5]) 101 MAP_CONTROL(IDC_Icon_7,m_hGroupIconA[6]) 102 103 END_MAP_CHILD_CONTROLS() 104 105 106 MAP_CONTROL(IDC_Group_Tab_Images, m_Group) 107 BEGIN_MAP_CHILD_CONTROLS(m_Group) 108 MAP_CONTROL(IDC_TabImage1,m_hTabGroupA[0]) 109 MAP_CONTROL(IDC_TabImage2,m_hTabGroupA[1]) 110 MAP_CONTROL(IDC_TabImage3,m_hTabGroupA[2]) 111 MAP_CONTROL(IDC_TabImage4,m_hTabGroupA[3]) 112 MAP_CONTROL(IDC_TabImage5,m_hTabGroupA[4]) 113 MAP_CONTROL(IDC_TabImage6,m_hTabGroupA[5]) 114 MAP_CONTROL(IDC_TabImage7,m_hTabGroupA[6]) 115 116 END_MAP_CHILD_CONTROLS() 117 118 119 MAP_CONTROL(IDC_Grid, m_hGrid) 120 BEGIN_MAP_CHILD_CONTROLS(m_hGrid) 121 MAP_CONTROL(IDC_XuiHTMLText,m_DescriptionText) 122 MAP_CONTROL(IDC_Inventory,m_InventoryText) 123 MAP_CONTROL(IDC_XuiItemName,m_ItemName) 124 MAP_CONTROL(IDC_CraftingInput1,m_hCraftIngredientA[0]) 125 MAP_CONTROL(IDC_CraftingInput2,m_hCraftIngredientA[1]) 126 MAP_CONTROL(IDC_CraftingInput3,m_hCraftIngredientA[2]) 127 MAP_CONTROL(IDC_CraftingInput4,m_hCraftIngredientA[3]) 128 MAP_CONTROL(IDC_CraftingInput5,m_hCraftIngredientA[4]) 129 MAP_CONTROL(IDC_CraftingInput6,m_hCraftIngredientA[5]) 130 MAP_CONTROL(IDC_CraftingInput7,m_hCraftIngredientA[6]) 131 MAP_CONTROL(IDC_CraftingInput8,m_hCraftIngredientA[7]) 132 MAP_CONTROL(IDC_CraftingInput9,m_hCraftIngredientA[8]) 133 MAP_CONTROL(IDC_Ingredient1,m_hCraftIngredientDescA[0]) 134 MAP_CONTROL(IDC_Ingredient2,m_hCraftIngredientDescA[1]) 135 MAP_CONTROL(IDC_Ingredient3,m_hCraftIngredientDescA[2]) 136 MAP_CONTROL(IDC_Ingredient4,m_hCraftIngredientDescA[3]) 137 138 MAP_CONTROL(IDC_CraftingOutputRed,m_hCraftOutput) 139 END_MAP_CHILD_CONTROLS() 140 141 MAP_CONTROL(IDC_InventoryGrid, m_hGridInventory) 142 BEGIN_MAP_CHILD_CONTROLS(m_hGridInventory) 143 MAP_OVERRIDE(IDC_Inventory, m_inventoryControl) 144 MAP_OVERRIDE(IDC_UseRow, m_useRowControl) 145 END_MAP_CHILD_CONTROLS() 146 END_MAP_CHILD_CONTROLS() 147 END_CONTROL_MAP() 148 149 HRESULT OnInit( XUIMessageInit* pInitData, BOOL& bHandled ); 150 HRESULT OnKeyDown(XUIMessageInput* pInputData, BOOL& rfHandled); 151 HRESULT OnTransitionEnd( XUIMessageTransition *pTransData, BOOL& bHandled); 152 HRESULT OnGetSourceImage(XUIMessageGetSourceImage* pData, BOOL& rfHandled); 153 HRESULT OnDestroy(); 154 HRESULT OnCustomMessage_Splitscreenplayer(bool bJoining, BOOL& bHandled); 155 HRESULT OnTimer(XUIMessageTimer *pData,BOOL& rfHandled); 156 HRESULT OnKillFocus(HXUIOBJ hObjGettingFocus, BOOL& bHandled); 157 HRESULT OnCustomMessage_InventoryUpdated(); 158 159 CXuiSceneCraftingPanel(); 160 ~CXuiSceneCraftingPanel() { } 161 162private: 163 float m_fSlotSize; 164 D3DXVECTOR3 m_vSlot0Pos; 165 D3DXVECTOR3 m_vSlot0HighlightPos; 166 D3DXVECTOR3 m_vSlot0V2ScrollPos; 167 D3DXVECTOR3 m_vSlot0V3ScrollPos; 168 169 CXuiCtrlCraftIngredientSlot *m_pCraftingOutput; 170 CXuiCtrlCraftIngredientSlot *m_pCraftingIngredientA[m_iIngredients3x3SlotC]; 171 CXuiCtrlCraftIngredientSlot *m_pCraftIngredientDescA[4]; 172 CXuiCtrlMinecraftSlot *m_pHSlotsBrushImageControl[m_iMaxHSlotC]; 173 CXuiCtrlMinecraftSlot *m_pVSlotsBrushImageControl[m_iMaxDisplayedVSlotC]; 174 CXuiControl *GroupTypeIconA[Recipy::eGroupType_Max]; 175 int m_iPad; 176 D3DXVECTOR3 m_OriginalPosition; 177 178 int mapVKToAction(int vk); 179 180protected: 181 virtual int getPad(); 182 virtual void hideAllHSlots(); 183 virtual void hideAllVSlots(); 184 virtual void hideAllIngredientsSlots(); 185 virtual void setCraftHSlotItem(int iPad, int iIndex, shared_ptr<ItemInstance> item, unsigned int uiAlpha); 186 virtual void setCraftVSlotItem(int iPad, int iIndex, shared_ptr<ItemInstance> item, unsigned int uiAlpha); 187 virtual void setCraftingOutputSlotItem(int iPad, shared_ptr<ItemInstance> item); 188 virtual void setCraftingOutputSlotRedBox(bool show); 189 virtual void setIngredientSlotItem(int iPad, int index, shared_ptr<ItemInstance> item); 190 virtual void setIngredientSlotRedBox(int index, bool show); 191 virtual void setIngredientDescriptionItem(int iPad, int index, shared_ptr<ItemInstance> item); 192 virtual void setIngredientDescriptionRedBox(int index, bool show); 193 virtual void setIngredientDescriptionText(int index, LPCWSTR text); 194 virtual void setShowCraftHSlot(int iIndex, bool show); 195 virtual void showTabHighlight(int iIndex, bool show); 196 virtual void setGroupText(LPCWSTR text); 197 virtual void setDescriptionText(LPCWSTR text); 198 virtual void setItemText(LPCWSTR text); 199 virtual void scrollDescriptionUp(); 200 virtual void scrollDescriptionDown(); 201 virtual void updateHighlightAndScrollPositions(); 202 virtual void updateVSlotPositions(int iSlots, int i); 203 204 virtual void UpdateMultiPanel(); 205};