Something went wrong. Try again.
the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
Something went wrong. Try again.
5.2 kB · 251 lines
C++
at master
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251#include "stdafx.h"#include "IUIScene_HorseInventoryMenu.h"#include "..\..\..\Minecraft.World\net.minecraft.world.entity.animal.h"
IUIScene_AbstractContainerMenu::ESceneSection IUIScene_HorseInventoryMenu::GetSectionAndSlotInDirection( ESceneSection eSection, ETapState eTapDirection, int *piTargetX, int *piTargetY ){ ESceneSection newSection = eSection;
int xOffset = 0; int yOffset = 0;
// Find the new section if there is one switch( eSection ) { case eSectionHorseUsing: if(eTapDirection == eTapStateDown) { if(m_horse->isChestedHorse() && *piTargetX >= 4) { newSection = eSectionHorseChest; xOffset = 4; } else { newSection = eSectionHorseSaddle; } } else if(eTapDirection == eTapStateUp) { newSection = eSectionHorseInventory; } break; case eSectionHorseInventory: if(eTapDirection == eTapStateDown) { newSection = eSectionHorseUsing; } else if(eTapDirection == eTapStateUp) { if(m_horse->isChestedHorse() && *piTargetX >= 4) { xOffset = 4; newSection = eSectionHorseChest; } else if(m_horse->canWearArmor()) { newSection = eSectionHorseArmor; } else { newSection = eSectionHorseSaddle; } } break; case eSectionHorseChest: if(eTapDirection == eTapStateDown) { xOffset = -4; newSection = eSectionHorseInventory; } else if(eTapDirection == eTapStateUp) { xOffset = -4; newSection = eSectionHorseUsing; } else if(eTapDirection == eTapStateLeft) { if(*piTargetX < 0) { if(m_horse->canWearArmor() && *piTargetY == 1) { newSection = eSectionHorseArmor; } else if( *piTargetY == 0) { newSection = eSectionHorseSaddle; } } } else if(eTapDirection == eTapStateRight) { if(*piTargetX >= getSectionColumns(eSectionHorseChest)) { if(m_horse->canWearArmor() && *piTargetY == 1) { newSection = eSectionHorseArmor; } else if( *piTargetY == 0) { newSection = eSectionHorseSaddle; } } } break; case eSectionHorseArmor: if(eTapDirection == eTapStateDown) { if(m_horse->isChestedHorse()) { newSection = eSectionHorseChest; } else { newSection = eSectionHorseInventory; } } else if(eTapDirection == eTapStateUp) { newSection = eSectionHorseSaddle; } else if(eTapDirection == eTapStateRight) { if(m_horse->isChestedHorse()) { yOffset = -1; *piTargetX = 0; newSection = eSectionHorseChest; } } else if(eTapDirection == eTapStateLeft) { if(m_horse->isChestedHorse()) { yOffset = -1; *piTargetX = getSectionColumns(eSectionHorseChest); newSection = eSectionHorseChest; } } break; case eSectionHorseSaddle: if(eTapDirection == eTapStateDown) { if(m_horse->canWearArmor()) { newSection = eSectionHorseArmor; } else { newSection = eSectionHorseInventory; } } else if(eTapDirection == eTapStateUp) { newSection = eSectionHorseUsing; } else if(eTapDirection == eTapStateRight) { if(m_horse->isChestedHorse()) { *piTargetX = 0; newSection = eSectionHorseChest; } } else if(eTapDirection == eTapStateLeft) { if(m_horse->isChestedHorse()) { *piTargetX = getSectionColumns(eSectionHorseChest); newSection = eSectionHorseChest; } } break; default: assert(false); break; }
updateSlotPosition(eSection, newSection, eTapDirection, piTargetX, piTargetY, xOffset, yOffset);
return newSection;}
// TODO: Offset will vary by type of horse, add in once horse menu and horse entity are implementedint IUIScene_HorseInventoryMenu::getSectionStartOffset(ESceneSection eSection){ int offset = 0; switch( eSection ) { case eSectionHorseSaddle: offset = EntityHorse::INV_SLOT_SADDLE; break; case eSectionHorseArmor: offset = EntityHorse::INV_SLOT_ARMOR; break; case eSectionHorseChest: offset = EntityHorse::INV_BASE_COUNT; break; case eSectionHorseInventory: offset = EntityHorse::INV_BASE_COUNT; if(m_horse->isChestedHorse()) { offset += EntityHorse::INV_DONKEY_CHEST_COUNT; } break; case eSectionHorseUsing: offset = EntityHorse::INV_BASE_COUNT + 27; if(m_horse->isChestedHorse()) { offset += EntityHorse::INV_DONKEY_CHEST_COUNT; } break; default: assert( false ); break; } return offset;}
bool IUIScene_HorseInventoryMenu::IsSectionSlotList( ESceneSection eSection ){ switch( eSection ) { case eSectionHorseChest: if(!m_horse->isChestedHorse()) return false; else return true; case eSectionHorseArmor: if(!m_horse->canWearArmor()) return false; else return true; case eSectionHorseSaddle: case eSectionHorseInventory: case eSectionHorseUsing: return true; } return false;}
bool IUIScene_HorseInventoryMenu::IsVisible( ESceneSection eSection ){ switch( eSection ) { case eSectionHorseChest: if(!m_horse->isChestedHorse()) return false; else return true; case eSectionHorseArmor: if(!m_horse->canWearArmor()) return false; else return true; case eSectionHorseSaddle: case eSectionHorseInventory: case eSectionHorseUsing: return true; } return false;}