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.
4.7 kB · 178 lines
C++
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178#include "stdafx.h"#include "..\..\..\Minecraft.World\StringHelpers.h"#include "XUI_DebugSchematicCreator.h"#include "..\..\..\Minecraft.World\ChunkSource.h"#include "..\..\..\Minecraft.World\net.minecraft.world.level.h"
#ifndef _CONTENT_PACKAGEHRESULT CScene_DebugSchematicCreator::OnInit( XUIMessageInit *pInitData, BOOL &bHandled ){ MapChildControls();
m_startX .SetKeyboardType(C_4JInput::EKeyboardMode_Numeric); m_startY .SetKeyboardType(C_4JInput::EKeyboardMode_Numeric); m_startZ .SetKeyboardType(C_4JInput::EKeyboardMode_Numeric); m_endX .SetKeyboardType(C_4JInput::EKeyboardMode_Numeric); m_endY .SetKeyboardType(C_4JInput::EKeyboardMode_Numeric); m_endZ .SetKeyboardType(C_4JInput::EKeyboardMode_Numeric);
m_data = new ConsoleSchematicFile::XboxSchematicInitParam();
return S_OK;}
HRESULT CScene_DebugSchematicCreator::OnNotifyPressEx(HXUIOBJ hObjPressed, XUINotifyPress* pNotifyPressData, BOOL& rfHandled){ // This assumes all buttons can only be pressed with the A button ui.AnimateKeyPress(pNotifyPressData->UserIndex, VK_PAD_A);
if ( hObjPressed == m_createButton ) { // We want the start to be even if(m_data->startX > 0 && m_data->startX%2 != 0) m_data->startX-=1; else if(m_data->startX < 0 && m_data->startX%2 !=0) m_data->startX-=1; if(m_data->startY < 0) m_data->startY = 0; else if(m_data->startY > 0 && m_data->startY%2 != 0) m_data->startY-=1; if(m_data->startZ > 0 && m_data->startZ%2 != 0) m_data->startZ-=1; else if(m_data->startZ < 0 && m_data->startZ%2 !=0) m_data->startZ-=1; // We want the end to be odd to have a total size that is even if(m_data->endX > 0 && m_data->endX%2 == 0) m_data->endX+=1; else if(m_data->endX < 0 && m_data->endX%2 ==0) m_data->endX+=1; if(m_data->endY > Level::maxBuildHeight) m_data->endY = Level::maxBuildHeight; else if(m_data->endY > 0 && m_data->endY%2 == 0) m_data->endY+=1; else if(m_data->endY < 0 && m_data->endY%2 ==0) m_data->endY+=1; if(m_data->endZ > 0 && m_data->endZ%2 == 0) m_data->endZ+=1; else if(m_data->endZ < 0 && m_data->endZ%2 ==0) m_data->endZ+=1;
wstring value = m_name.GetText(); if(!value.empty()) { swprintf(m_data->name,64,L"%ls", value.c_str()); } else { swprintf(m_data->name,64,L"schematic"); }
m_data->bSaveMobs = m_saveMobs.IsChecked();
#ifdef _XBOX if (m_useXboxCompr.IsChecked()) m_data->compressionType = Compression::eCompressionType_LZXRLE; else#endif m_data->compressionType = Compression::eCompressionType_RLE;
app.SetXuiServerAction(ProfileManager.GetPrimaryPad(), eXuiServerAction_ExportSchematic, (void *)m_data); NavigateBack(); rfHandled = TRUE; } return S_OK;}
HRESULT CScene_DebugSchematicCreator::OnKeyDown(XUIMessageInput* pInputData, BOOL& rfHandled){ ui.AnimateKeyPress(pInputData->UserIndex, pInputData->dwKeyCode);
switch(pInputData->dwKeyCode) {
case VK_PAD_B: case VK_PAD_START: case VK_PAD_BACK: NavigateBack();
rfHandled = TRUE;
break;
}
return S_OK;}
HRESULT CScene_DebugSchematicCreator::OnNotifyValueChanged( HXUIOBJ hObjSource, XUINotifyValueChanged *pNotifyValueChangedData, BOOL &bHandled){ if(hObjSource == m_startX) { int iVal = 0; wstring value = m_startX.GetText(); if(!value.empty()) iVal = _fromString<int>( value );
if( iVal >= (LEVEL_MAX_WIDTH * -16) || iVal < (LEVEL_MAX_WIDTH * 16)) { m_data->startX = iVal; } } else if(hObjSource == m_startY) { int iVal = 0; wstring value = m_startY.GetText(); if(!value.empty()) iVal = _fromString<int>( value );
if( iVal >= (LEVEL_MAX_WIDTH * -16) || iVal < (LEVEL_MAX_WIDTH * 16)) { m_data->startY = iVal; } } else if(hObjSource == m_startZ) { int iVal = 0; wstring value = m_startZ.GetText(); if(!value.empty()) iVal = _fromString<int>( value );
if( iVal >= (LEVEL_MAX_WIDTH * -16) || iVal < (LEVEL_MAX_WIDTH * 16)) { m_data->startZ = iVal; } } else if(hObjSource == m_endX) { int iVal = 0; wstring value = m_endX.GetText(); if(!value.empty()) iVal = _fromString<int>( value );
if( iVal >= (LEVEL_MAX_WIDTH * -16) || iVal < (LEVEL_MAX_WIDTH * 16)) { m_data->endX = iVal; } } else if(hObjSource == m_endY) { int iVal = 0; wstring value = m_endY.GetText(); if(!value.empty()) iVal = _fromString<int>( value );
if( iVal >= (LEVEL_MAX_WIDTH * -16) || iVal < (LEVEL_MAX_WIDTH * 16)) { m_data->endY = iVal; } } else if(hObjSource == m_endZ) { int iVal = 0; wstring value = m_endZ.GetText(); if(!value.empty()) iVal = _fromString<int>( value );
if( iVal >= (LEVEL_MAX_WIDTH * -16) || iVal < (LEVEL_MAX_WIDTH * 16)) { m_data->endZ = iVal; } } return S_OK;}#endif