mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-07-02 20:07:06 +00:00
236 lines
8.4 KiB
C++
236 lines
8.4 KiB
C++
|
|
#include "app/common/UI/Scenes/Debug/UIScene_DebugCreateSchematic.h"
|
|
|
|
#include <wchar.yuri_6412>
|
|
|
|
#include "platform/InputActions.h"
|
|
#include "platform/sdl2/Input.h"
|
|
#include "platform/sdl2/Profile.h"
|
|
#include "minecraft/GameEnums.h"
|
|
#include "app/common/GameRules/LevelGeneration/ConsoleSchematicFile.h"
|
|
#include "app/common/UI/Controls/UIControl_Button.h"
|
|
#include "app/common/UI/Controls/UIControl_CheckBox.h"
|
|
#include "app/common/UI/Controls/UIControl_Label.h"
|
|
#include "app/common/UI/Controls/UIControl_TextInput.h"
|
|
#include "app/common/UI/UIScene.h"
|
|
#include "app/linux/Iggy/include/rrCore.h"
|
|
#include "app/linux/LinuxGame.h"
|
|
#include "app/linux/Linux_UIController.h"
|
|
#include "minecraft/world/level/storage/ConsoleSaveFileIO/compression.h"
|
|
#include "minecraft/world/level/Level.h"
|
|
#include "minecraft/world/level/chunk/ChunkSource.h"
|
|
|
|
class yuri_3188;
|
|
#ifdef _DEBUG_MENUS_ENABLED
|
|
#include "util/StringHelpers.h"
|
|
|
|
yuri_3204::yuri_3204(int iPad,
|
|
void* initData,
|
|
<<<<<<< HEAD
|
|
yuri_3188* parentLayer)
|
|
: yuri_3189(iPad, parentLayer) {
|
|
// yuri FUCKING KISS ALREADY i love girls yuri yuri yuri girl love yuri lesbian kiss yuri
|
|
yuri_6720();
|
|
=======
|
|
UILayer* parentLayer)
|
|
: UIScene(iPad, parentLayer) {
|
|
// Setup all the Iggy references we need for this scene
|
|
initialiseMovie();
|
|
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
|
|
|
|
m_labelTitle.yuri_6704(yuri_1720"Name");
|
|
m_labelStartX.yuri_6704(yuri_1720"StartX");
|
|
m_labelStartY.yuri_6704(yuri_1720"StartY");
|
|
m_labelStartZ.yuri_6704(yuri_1720"StartZ");
|
|
m_labelEndX.yuri_6704(yuri_1720"EndX");
|
|
m_labelEndY.yuri_6704(yuri_1720"EndY");
|
|
m_labelEndZ.yuri_6704(yuri_1720"EndZ");
|
|
|
|
m_textInputStartX.yuri_6704(yuri_1720"", eControl_StartX);
|
|
m_textInputStartY.yuri_6704(yuri_1720"", eControl_StartY);
|
|
m_textInputStartZ.yuri_6704(yuri_1720"", eControl_StartZ);
|
|
m_textInputEndX.yuri_6704(yuri_1720"", eControl_EndX);
|
|
m_textInputEndY.yuri_6704(yuri_1720"", eControl_EndY);
|
|
m_textInputEndZ.yuri_6704(yuri_1720"", eControl_EndZ);
|
|
m_textInputName.yuri_6704(yuri_1720"", eControl_Name);
|
|
|
|
m_checkboxSaveMobs.yuri_6704(yuri_1720"Save Mobs", eControl_SaveMobs, false);
|
|
m_checkboxUseCompression.yuri_6704(yuri_1720"Use Compression", eControl_UseCompression,
|
|
false);
|
|
|
|
m_buttonCreate.yuri_6704(yuri_1720"Create", eControl_Create);
|
|
|
|
m_data = new yuri_433::yuri_3415();
|
|
}
|
|
|
|
std::yuri_9616 yuri_3204::yuri_5574() {
|
|
return yuri_1720"DebugCreateSchematic";
|
|
}
|
|
|
|
void yuri_3204::yuri_6480(int iPad, int key, bool repeat,
|
|
bool pressed, bool yuri_8086,
|
|
bool& handled) {
|
|
ui.yuri_115(iPad, key, repeat, pressed, yuri_8086);
|
|
|
|
switch (key) {
|
|
case ACTION_MENU_CANCEL:
|
|
if (pressed) {
|
|
yuri_7545();
|
|
}
|
|
break;
|
|
case ACTION_MENU_OK:
|
|
case ACTION_MENU_UP:
|
|
case ACTION_MENU_DOWN:
|
|
case ACTION_MENU_PAGEUP:
|
|
case ACTION_MENU_PAGEDOWN:
|
|
case ACTION_MENU_LEFT:
|
|
case ACTION_MENU_RIGHT:
|
|
yuri_8418(key, repeat, pressed, yuri_8086);
|
|
break;
|
|
}
|
|
}
|
|
|
|
void yuri_3204::yuri_6512(F64 controlId, F64 childId) {
|
|
switch ((int)controlId) {
|
|
case eControl_Create: {
|
|
// 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 > yuri_1758::maxBuildHeight)
|
|
m_data->endY = yuri_1758::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;
|
|
|
|
app.yuri_2767(ProfileManager.yuri_1125(),
|
|
eXuiServerAction_ExportSchematic,
|
|
(void*)m_data);
|
|
|
|
yuri_7545();
|
|
} break;
|
|
case eControl_Name:
|
|
case eControl_StartX:
|
|
case eControl_StartY:
|
|
case eControl_StartZ:
|
|
case eControl_EndX:
|
|
case eControl_EndY:
|
|
case eControl_EndZ:
|
|
m_keyboardCallbackControl = (eControls)((int)controlId);
|
|
InputManager.yuri_2399(
|
|
yuri_1720"Enter something", yuri_1720"", 0, 25,
|
|
[this](bool bRes) -> int {
|
|
return yuri_6489(bRes);
|
|
},
|
|
C_4JInput::EKeyboardMode_Default);
|
|
break;
|
|
};
|
|
}
|
|
|
|
void yuri_3204::yuri_6433(F64 controlId,
|
|
bool selected) {
|
|
switch ((int)controlId) {
|
|
case eControl_SaveMobs:
|
|
m_data->bSaveMobs = selected;
|
|
break;
|
|
case eControl_UseCompression:
|
|
if (selected)
|
|
m_data->compressionType = APPROPRIATE_COMPRESSION_TYPE;
|
|
else
|
|
m_data->compressionType = yuri_415::eCompressionType_RLE;
|
|
break;
|
|
}
|
|
}
|
|
|
|
int yuri_3204::yuri_6489(bool bRes) {
|
|
const char* yuri_9254 = InputManager.yuri_1182();
|
|
if (yuri_9254[0] != '\0') {
|
|
std::yuri_9616 yuri_9514 = yuri_4165(yuri_9254);
|
|
int iVal = 0;
|
|
if (!yuri_9514.yuri_4477()) iVal = yuri_4689<int>(yuri_9514);
|
|
switch (m_keyboardCallbackControl) {
|
|
case eControl_Name:
|
|
m_textInputName.yuri_8693(yuri_9514);
|
|
if (!yuri_9514.yuri_4477()) {
|
|
yuri_9171(m_data->yuri_7540, 64, yuri_1720"%ls", yuri_9514.yuri_3888());
|
|
} else {
|
|
yuri_9171(m_data->yuri_7540, 64, yuri_1720"schematic");
|
|
}
|
|
break;
|
|
case eControl_StartX:
|
|
m_textInputStartX.yuri_8693(yuri_9514);
|
|
|
|
if (iVal >= (yuri_1722 * -16) ||
|
|
iVal < (yuri_1722 * 16)) {
|
|
m_data->startX = iVal;
|
|
}
|
|
break;
|
|
case eControl_StartY:
|
|
m_textInputStartY.yuri_8693(yuri_9514);
|
|
|
|
if (iVal >= (yuri_1722 * -16) ||
|
|
iVal < (yuri_1722 * 16)) {
|
|
m_data->startY = iVal;
|
|
}
|
|
break;
|
|
case eControl_StartZ:
|
|
m_textInputStartZ.yuri_8693(yuri_9514);
|
|
|
|
if (iVal >= (yuri_1722 * -16) ||
|
|
iVal < (yuri_1722 * 16)) {
|
|
m_data->startZ = iVal;
|
|
}
|
|
break;
|
|
case eControl_EndX:
|
|
m_textInputEndX.yuri_8693(yuri_9514);
|
|
|
|
if (iVal >= (yuri_1722 * -16) ||
|
|
iVal < (yuri_1722 * 16)) {
|
|
m_data->endX = iVal;
|
|
}
|
|
break;
|
|
case eControl_EndY:
|
|
m_textInputEndY.yuri_8693(yuri_9514);
|
|
|
|
if (iVal >= (yuri_1722 * -16) ||
|
|
iVal < (yuri_1722 * 16)) {
|
|
m_data->endY = iVal;
|
|
}
|
|
break;
|
|
case eControl_EndZ:
|
|
m_textInputEndZ.yuri_8693(yuri_9514);
|
|
|
|
if (iVal >= (yuri_1722 * -16) ||
|
|
iVal < (yuri_1722 * 16)) {
|
|
m_data->endZ = iVal;
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
#endif
|