mirror of
https://gitea.sffempire.ru/Kolyah35/minecraft-pe-0.6.1.git
synced 2026-03-22 07:53:30 +00:00
FIX: Now we're using useTouchsceen() right way!!!!
This commit is contained in:
@@ -130,7 +130,7 @@ public:
|
||||
|
||||
virtual float getPixelsPerMillimeter() override;
|
||||
|
||||
virtual bool supportsTouchscreen() override { return true; }
|
||||
virtual bool supportsTouchscreen() override { return false; /* glfw supports only mouse and keyboard */ }
|
||||
|
||||
virtual void hideCursor(bool hide) override {
|
||||
int isHide = hide ? GLFW_CURSOR_NORMAL : GLFW_CURSOR_HIDDEN;
|
||||
@@ -143,6 +143,8 @@ public:
|
||||
#elif __linux__
|
||||
std::string command = "xdg-open " + url;
|
||||
system(command.c_str());
|
||||
#elif __EMSCRIPTEN__
|
||||
emscripten_run_script(std::string("window.open('" + url + "', '_blank')").c_str());
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "Minecraft.h"
|
||||
#include "Options.h"
|
||||
#include "client/Options.h"
|
||||
#include "client/player/input/IBuildInput.h"
|
||||
#include "platform/input/Keyboard.h"
|
||||
@@ -640,13 +641,11 @@ void Minecraft::tickInput() {
|
||||
|
||||
const MouseAction& e = Mouse::getEvent();
|
||||
|
||||
#ifdef RPI // If clicked when not having focus, get focus @keyboard
|
||||
if (!mouseGrabbed) {
|
||||
if (!useTouchscreen() && !mouseGrabbed) {
|
||||
if (!screen && e.data == MouseAction::DATA_DOWN) {
|
||||
grabMouse();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (allowGuiClicks && e.action == MouseAction::ACTION_LEFT && e.data == MouseAction::DATA_DOWN) {
|
||||
gui.handleClick(MouseAction::ACTION_LEFT, Mouse::getX(), Mouse::getY());
|
||||
@@ -660,9 +659,7 @@ void Minecraft::tickInput() {
|
||||
Inventory* v = player->inventory;
|
||||
|
||||
int numSlots = gui.getNumSlots();
|
||||
#ifndef PLATFORM_DESKTOP
|
||||
numSlots--;
|
||||
#endif
|
||||
if (!useTouchscreen()) numSlots--;
|
||||
|
||||
int slot = (v->selected - e.dy + numSlots) % numSlots;
|
||||
v->selectSlot(slot);
|
||||
@@ -691,155 +688,147 @@ void Minecraft::tickInput() {
|
||||
if (isPressed) {
|
||||
gui.handleKeyPressed(key);
|
||||
|
||||
#if defined(WIN32) || defined(RPI) || defined (PLATFORM_DESKTOP)//|| defined(_DEBUG) || defined(DEBUG)
|
||||
if (key >= '0' && key <= '9') {
|
||||
int digit = key - '0';
|
||||
int slot = digit - 1;
|
||||
if (key >= '0' && key <= '9') {
|
||||
int digit = key - '0';
|
||||
int slot = digit - 1;
|
||||
|
||||
if (slot >= 0 && slot < gui.getNumSlots())
|
||||
player->inventory->selectSlot(slot);
|
||||
if (slot >= 0 && slot < gui.getNumSlots())
|
||||
player->inventory->selectSlot(slot);
|
||||
|
||||
#if defined(WIN32)
|
||||
if (digit >= 1 && GetAsyncKeyState(VK_CONTROL) < 0) {
|
||||
// Set adventure settings here!
|
||||
AdventureSettingsPacket p(level->adventureSettings);
|
||||
p.toggle((AdventureSettingsPacket::Flags)(1 << slot));
|
||||
p.fillIn(level->adventureSettings);
|
||||
raknetInstance->send(p);
|
||||
}
|
||||
if (digit == 0) {
|
||||
Pos pos((int)player->x, (int)player->y-1, (int)player->z);
|
||||
SetSpawnPositionPacket p(pos);
|
||||
raknetInstance->send(p);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
#if defined(PLATFORM_DESKTOP)
|
||||
if (key == Keyboard::KEY_LEFT_CTRL) {
|
||||
player->setSprinting(true);
|
||||
#if defined(WIN32)
|
||||
if (digit >= 1 && GetAsyncKeyState(VK_CONTROL) < 0) {
|
||||
// Set adventure settings here!
|
||||
AdventureSettingsPacket p(level->adventureSettings);
|
||||
p.toggle((AdventureSettingsPacket::Flags)(1 << slot));
|
||||
p.fillIn(level->adventureSettings);
|
||||
raknetInstance->send(p);
|
||||
}
|
||||
if (digit == 0) {
|
||||
Pos pos((int)player->x, (int)player->y-1, (int)player->z);
|
||||
SetSpawnPositionPacket p(pos);
|
||||
raknetInstance->send(p);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
if (key == Keyboard::KEY_LEFT_CTRL) {
|
||||
player->setSprinting(true);
|
||||
}
|
||||
|
||||
if (key == Keyboard::KEY_E) {
|
||||
screenChooser.setScreen(SCREEN_BLOCKSELECTION);
|
||||
}
|
||||
|
||||
if (!screen && key == Keyboard::KEY_T && level) {
|
||||
setScreen(new ConsoleScreen());
|
||||
}
|
||||
|
||||
if (key == Keyboard::KEY_F3) {
|
||||
options.toggle(OPTIONS_RENDER_DEBUG);
|
||||
}
|
||||
|
||||
if (key == Keyboard::KEY_F5) {
|
||||
options.toggle(OPTIONS_THIRD_PERSON_VIEW);
|
||||
/*
|
||||
ImprovedNoise noise;
|
||||
for (int i = 0; i < 16; ++i)
|
||||
printf("%d\t%f\n", i, noise.grad2(i, 3, 8));
|
||||
*/
|
||||
}
|
||||
|
||||
if (!screen && key == Keyboard::KEY_O || key == 250) {
|
||||
releaseMouse();
|
||||
}
|
||||
|
||||
if (key == Keyboard::KEY_F) {
|
||||
int dst = options.getIntValue(OPTIONS_VIEW_DISTANCE);
|
||||
options.set(OPTIONS_VIEW_DISTANCE, (dst + 1) % 4);
|
||||
}
|
||||
#ifdef CHEATS
|
||||
if (key == Keyboard::KEY_U) {
|
||||
onGraphicsReset();
|
||||
player->heal(100);
|
||||
}
|
||||
|
||||
if (key == Keyboard::KEY_E) {
|
||||
screenChooser.setScreen(SCREEN_BLOCKSELECTION);
|
||||
}
|
||||
if (key == Keyboard::KEY_B || key == 108) // Toggle the game mode
|
||||
setIsCreativeMode(!isCreativeMode());
|
||||
|
||||
if (!screen && key == Keyboard::KEY_T && level) {
|
||||
setScreen(new ConsoleScreen());
|
||||
}
|
||||
if (key == Keyboard::KEY_P) // Step forward in time
|
||||
level->setTime( level->getTime() + 1000);
|
||||
|
||||
if (key == Keyboard::KEY_F3) {
|
||||
options.toggle(OPTIONS_RENDER_DEBUG);
|
||||
}
|
||||
|
||||
if (key == Keyboard::KEY_F5) {
|
||||
options.toggle(OPTIONS_THIRD_PERSON_VIEW);
|
||||
if (key == Keyboard::KEY_G) {
|
||||
setScreen(new ArmorScreen());
|
||||
/*
|
||||
ImprovedNoise noise;
|
||||
for (int i = 0; i < 16; ++i)
|
||||
printf("%d\t%f\n", i, noise.grad2(i, 3, 8));
|
||||
std::vector<AABB>& boxs = level->getCubes(NULL, AABB(128.1f, 73, 128.1f, 128.9f, 74.9f, 128.9f));
|
||||
LOGI("boxes: %d\n", (int)boxs.size());
|
||||
*/
|
||||
}
|
||||
|
||||
if (!screen && key == Keyboard::KEY_O || key == 250) {
|
||||
releaseMouse();
|
||||
if (key == Keyboard::KEY_Y) {
|
||||
textures->reloadAll();
|
||||
player->hurtTo(2);
|
||||
}
|
||||
if (key == Keyboard::KEY_Z || key == 108) {
|
||||
for (int i = 0; i < 1; ++i) {
|
||||
Mob* mob = NULL;
|
||||
int forceId = 0;//MobTypes::Sheep;
|
||||
|
||||
int types[] = {
|
||||
MobTypes::Sheep,
|
||||
MobTypes::Pig,
|
||||
MobTypes::Chicken,
|
||||
MobTypes::Cow,
|
||||
};
|
||||
|
||||
int mobType = (forceId > 0)? forceId : types[Mth::random(sizeof(types) / sizeof(int))];
|
||||
mob = MobFactory::CreateMob(mobType, level);
|
||||
|
||||
//((Animal*)mob)->setAge(-1000);
|
||||
float dx = 4 - 8 * Mth::random() + 4 * Mth::sin(Mth::DEGRAD * player->yRot);
|
||||
float dz = 4 - 8 * Mth::random() + 4 * Mth::cos(Mth::DEGRAD * player->yRot);
|
||||
if (mob && !MobSpawner::addMob(level, mob, player->x + dx, player->y, player->z + dz, Mth::random()*360, 0, true))
|
||||
delete mob;
|
||||
}
|
||||
}
|
||||
|
||||
if (key == Keyboard::KEY_F) {
|
||||
int dst = options.getIntValue(OPTIONS_VIEW_DISTANCE);
|
||||
options.set(OPTIONS_VIEW_DISTANCE, (dst + 1) % 4);
|
||||
if (key == Keyboard::KEY_X) {
|
||||
const EntityList& entities = level->getAllEntities();
|
||||
for (int i = entities.size()-1; i >= 0; --i) {
|
||||
Entity* e = entities[i];
|
||||
if (!e->isPlayer())
|
||||
level->removeEntity(e);
|
||||
}
|
||||
}
|
||||
#ifdef CHEATS
|
||||
if (key == Keyboard::KEY_U) {
|
||||
onGraphicsReset();
|
||||
player->heal(100);
|
||||
|
||||
if (key == Keyboard::KEY_C /*|| key == 4*/) {
|
||||
player->inventory->clearInventoryWithDefault();
|
||||
// @todo: Add saving here for benchmarking
|
||||
}
|
||||
if (key == Keyboard::KEY_H) {
|
||||
setScreen( new PrerenderTilesScreen() );
|
||||
}
|
||||
|
||||
if (key == Keyboard::KEY_O) {
|
||||
for (int i = Inventory::MAX_SELECTION_SIZE; i < player->inventory->getContainerSize(); ++i)
|
||||
if (player->inventory->getItem(i))
|
||||
player->inventory->dropSlot(i, false);
|
||||
}
|
||||
if (key == Keyboard::KEY_M) {
|
||||
Difficulty difficulty = (Difficulty)options.getIntValue(OPTIONS_DIFFICULTY);
|
||||
options.set(OPTIONS_DIFFICULTY, (difficulty == Difficulty::PEACEFUL)?
|
||||
Difficulty::NORMAL : Difficulty::PEACEFUL);
|
||||
//setIsCreativeMode( !isCreativeMode() );
|
||||
}
|
||||
|
||||
if (options.getBooleanValue(OPTIONS_RENDER_DEBUG)) {
|
||||
if (key >= '0' && key <= '9') {
|
||||
_perfRenderer->debugFpsMeterKeyPress(key - '0');
|
||||
}
|
||||
|
||||
if (key == Keyboard::KEY_B || key == 108) // Toggle the game mode
|
||||
setIsCreativeMode(!isCreativeMode());
|
||||
|
||||
if (key == Keyboard::KEY_P) // Step forward in time
|
||||
level->setTime( level->getTime() + 1000);
|
||||
|
||||
if (key == Keyboard::KEY_G) {
|
||||
setScreen(new ArmorScreen());
|
||||
/*
|
||||
std::vector<AABB>& boxs = level->getCubes(NULL, AABB(128.1f, 73, 128.1f, 128.9f, 74.9f, 128.9f));
|
||||
LOGI("boxes: %d\n", (int)boxs.size());
|
||||
*/
|
||||
}
|
||||
|
||||
if (key == Keyboard::KEY_Y) {
|
||||
textures->reloadAll();
|
||||
player->hurtTo(2);
|
||||
}
|
||||
if (key == Keyboard::KEY_Z || key == 108) {
|
||||
for (int i = 0; i < 1; ++i) {
|
||||
Mob* mob = NULL;
|
||||
int forceId = 0;//MobTypes::Sheep;
|
||||
|
||||
int types[] = {
|
||||
MobTypes::Sheep,
|
||||
MobTypes::Pig,
|
||||
MobTypes::Chicken,
|
||||
MobTypes::Cow,
|
||||
};
|
||||
|
||||
int mobType = (forceId > 0)? forceId : types[Mth::random(sizeof(types) / sizeof(int))];
|
||||
mob = MobFactory::CreateMob(mobType, level);
|
||||
|
||||
//((Animal*)mob)->setAge(-1000);
|
||||
float dx = 4 - 8 * Mth::random() + 4 * Mth::sin(Mth::DEGRAD * player->yRot);
|
||||
float dz = 4 - 8 * Mth::random() + 4 * Mth::cos(Mth::DEGRAD * player->yRot);
|
||||
if (mob && !MobSpawner::addMob(level, mob, player->x + dx, player->y, player->z + dz, Mth::random()*360, 0, true))
|
||||
delete mob;
|
||||
}
|
||||
}
|
||||
|
||||
if (key == Keyboard::KEY_X) {
|
||||
const EntityList& entities = level->getAllEntities();
|
||||
for (int i = entities.size()-1; i >= 0; --i) {
|
||||
Entity* e = entities[i];
|
||||
if (!e->isPlayer())
|
||||
level->removeEntity(e);
|
||||
}
|
||||
}
|
||||
|
||||
if (key == Keyboard::KEY_C /*|| key == 4*/) {
|
||||
player->inventory->clearInventoryWithDefault();
|
||||
// @todo: Add saving here for benchmarking
|
||||
}
|
||||
if (key == Keyboard::KEY_H) {
|
||||
setScreen( new PrerenderTilesScreen() );
|
||||
}
|
||||
|
||||
if (key == Keyboard::KEY_O) {
|
||||
for (int i = Inventory::MAX_SELECTION_SIZE; i < player->inventory->getContainerSize(); ++i)
|
||||
if (player->inventory->getItem(i))
|
||||
player->inventory->dropSlot(i, false);
|
||||
}
|
||||
if (key == Keyboard::KEY_M) {
|
||||
Difficulty difficulty = (Difficulty)options.getIntValue(OPTIONS_DIFFICULTY);
|
||||
options.set(OPTIONS_DIFFICULTY, (difficulty == Difficulty::PEACEFUL)?
|
||||
Difficulty::NORMAL : Difficulty::PEACEFUL);
|
||||
//setIsCreativeMode( !isCreativeMode() );
|
||||
}
|
||||
|
||||
if (options.getBooleanValue(OPTIONS_RENDER_DEBUG)) {
|
||||
if (key >= '0' && key <= '9') {
|
||||
_perfRenderer->debugFpsMeterKeyPress(key - '0');
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef PLATFORM_DESKTOP
|
||||
if (key == 82)
|
||||
pauseGame(false);
|
||||
#else
|
||||
if (key == Keyboard::KEY_ESCAPE)
|
||||
pauseGame(false);
|
||||
#endif
|
||||
if (key == Keyboard::KEY_ESCAPE)
|
||||
pauseGame(false);
|
||||
|
||||
#ifndef OPENGL_ES
|
||||
if (key == Keyboard::KEY_P) {
|
||||
@@ -1112,7 +1101,7 @@ bool Minecraft::useTouchscreen() {
|
||||
#ifdef RPI
|
||||
return false;
|
||||
#endif
|
||||
return options.getBooleanValue(OPTIONS_USE_TOUCHSCREEN) || !_supportsNonTouchscreen;
|
||||
return options.getBooleanValue(OPTIONS_USE_TOUCHSCREEN) && !_supportsNonTouchscreen;
|
||||
}
|
||||
bool Minecraft::supportNonTouchScreen() {
|
||||
return _supportsNonTouchscreen;
|
||||
@@ -1241,11 +1230,7 @@ void Minecraft::_reloadInput() {
|
||||
#ifndef STANDALONE_SERVER
|
||||
delete inputHolder;
|
||||
|
||||
#ifdef PLATFORM_DESKTOP
|
||||
const bool useTouchHolder = false;
|
||||
#else
|
||||
const bool useTouchHolder = useTouchscreen();
|
||||
#endif
|
||||
if (useTouchHolder) {
|
||||
inputHolder = new TouchInputHolder(this, &options);
|
||||
} else {
|
||||
@@ -1570,6 +1555,8 @@ void Minecraft::optionUpdated(OptionId option, bool value ) {
|
||||
if(netCallback != NULL && option == OPTIONS_SERVER_VISIBLE) {
|
||||
ServerSideNetworkHandler* ss = (ServerSideNetworkHandler*) netCallback;
|
||||
ss->allowIncomingConnections(value);
|
||||
} else if (option == OPTIONS_USE_TOUCHSCREEN) {
|
||||
_reloadInput();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include <SDL/SDL.h>
|
||||
#endif
|
||||
|
||||
#ifdef PLATFORM_DESKTOP
|
||||
#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_WEB)
|
||||
#include <GLFW/glfw3.h>
|
||||
#endif
|
||||
|
||||
@@ -34,7 +34,7 @@ void MouseHandler::grab() {
|
||||
SDL_ShowCursor(0);
|
||||
#endif
|
||||
|
||||
#ifdef PLATFORM_DESKTOP
|
||||
#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_WEB)
|
||||
glfwSetInputMode(glfwGetCurrentContext(), GLFW_CURSOR, GLFW_CURSOR_DISABLED);
|
||||
#endif
|
||||
}
|
||||
@@ -46,7 +46,7 @@ void MouseHandler::release() {
|
||||
SDL_ShowCursor(1);
|
||||
#endif
|
||||
|
||||
#ifdef PLATFORM_DESKTOP
|
||||
#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_WEB)
|
||||
glfwSetInputMode(glfwGetCurrentContext(), GLFW_CURSOR, GLFW_CURSOR_NORMAL);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@ OptionsFile::OptionsFile() {
|
||||
settingsPath = "./Documents/options.txt";
|
||||
#elif defined(ANDROID)
|
||||
settingsPath = "options.txt";
|
||||
#elif defined(__EMSCRIPTEN__)
|
||||
settingsPath = "/games/com.mojang/options.txt";
|
||||
#else
|
||||
settingsPath = "options.txt";
|
||||
#endif
|
||||
|
||||
@@ -51,7 +51,8 @@ Gui::Gui(Minecraft* minecraft)
|
||||
_currentDropTicks(-1),
|
||||
_currentDropSlot(-1),
|
||||
MAX_MESSAGE_WIDTH(240),
|
||||
itemNameOverlayTime(2)
|
||||
itemNameOverlayTime(2),
|
||||
_openInventorySlot(minecraft->useTouchscreen())
|
||||
{
|
||||
glGenBuffers2(1, &_inventoryRc.vboId);
|
||||
glGenBuffers2(1, &rcFeedbackInner.vboId);
|
||||
@@ -75,11 +76,8 @@ void Gui::render(float a, bool mouseFree, int xMouse, int yMouse) {
|
||||
//minecraft->gameRenderer->setupGuiScreen();
|
||||
Font* font = minecraft->font;
|
||||
|
||||
#ifdef PLATFORM_DESKTOP
|
||||
const bool isTouchInterface = false;
|
||||
#else
|
||||
const bool isTouchInterface = minecraft->useTouchscreen();
|
||||
#endif
|
||||
|
||||
const int screenWidth = (int)(minecraft->width * InvGuiScale);
|
||||
const int screenHeight = (int)(minecraft->height * InvGuiScale);
|
||||
blitOffset = -90;
|
||||
@@ -206,16 +204,10 @@ void Gui::handleClick(int button, int x, int y) {
|
||||
if (button != MouseAction::ACTION_LEFT) return;
|
||||
|
||||
int slot = getSlotIdAt(x, y);
|
||||
if (slot != -1)
|
||||
{
|
||||
#ifndef PLATFORM_DESKTOP
|
||||
if (slot == (getNumSlots()-1))
|
||||
{
|
||||
if (slot != -1) {
|
||||
if (_openInventorySlot && slot == (getNumSlots()-1)) {
|
||||
minecraft->screenChooser.setScreen(SCREEN_BLOCKSELECTION);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
} else {
|
||||
minecraft->player->inventory->selectSlot(slot);
|
||||
itemNameOverlayTime = 0;
|
||||
}
|
||||
@@ -537,11 +529,7 @@ void Gui::tickItemDrop()
|
||||
static bool isCurrentlyActive = false;
|
||||
isCurrentlyActive = false;
|
||||
|
||||
int slots = getNumSlots();
|
||||
|
||||
#ifndef PLATFORM_DESKTOP
|
||||
slots--;
|
||||
#endif
|
||||
int slots = getNumSlots() - _openInventorySlot;
|
||||
|
||||
if (Mouse::isButtonDown(MouseAction::ACTION_LEFT)) {
|
||||
int slot = getSlotIdAt(Mouse::getX(), Mouse::getY());
|
||||
@@ -1083,13 +1071,7 @@ void Gui::renderToolBar( float a, int ySlot, const int screenWidth ) {
|
||||
|
||||
float x = baseItemX;
|
||||
|
||||
int slots = getNumSlots();
|
||||
|
||||
// TODO: if using touchscreen
|
||||
|
||||
#ifndef PLATFORM_DESKTOP
|
||||
slots--;
|
||||
#endif
|
||||
int slots = getNumSlots() - _openInventorySlot;
|
||||
|
||||
for (int i = 0; i < slots; i++) {
|
||||
renderSlot(i, (int)x, ySlot, a);
|
||||
@@ -1097,9 +1079,10 @@ void Gui::renderToolBar( float a, int ySlot, const int screenWidth ) {
|
||||
}
|
||||
_inventoryNeedsUpdate = false;
|
||||
|
||||
#ifndef PLATFORM_DESKTOP
|
||||
blit(screenWidth / 2 + 10 * getNumSlots() - 20 + 4, ySlot + 6, 242, 252, 14, 4, 14, 4);
|
||||
#endif
|
||||
|
||||
if (_openInventorySlot) {
|
||||
blit(screenWidth / 2 + 10 * getNumSlots() - 20 + 4, ySlot + 6, 242, 252, 14, 4, 14, 4);
|
||||
}
|
||||
|
||||
minecraft->textures->loadAndBindTexture("gui/gui_blocks.png");
|
||||
t.endOverrideAndDraw();
|
||||
|
||||
@@ -127,6 +127,8 @@ private:
|
||||
static const float DropTicks;
|
||||
float _currentDropTicks;
|
||||
int _currentDropSlot;
|
||||
|
||||
bool _openInventorySlot;
|
||||
};
|
||||
|
||||
#endif /*NET_MINECRAFT_CLIENT_GUI__Gui_H__*/
|
||||
|
||||
@@ -177,9 +177,11 @@ void Screen::keyPressed( int eventKey )
|
||||
textbox->keyPressed(minecraft, eventKey);
|
||||
}
|
||||
|
||||
#ifdef TABBING
|
||||
if (minecraft->useTouchscreen())
|
||||
return;
|
||||
|
||||
|
||||
// "Tabbing" the buttons (walking with keys)
|
||||
const int tabButtonCount = tabButtons.size();
|
||||
if (!tabButtonCount)
|
||||
@@ -199,6 +201,7 @@ void Screen::keyPressed( int eventKey )
|
||||
}
|
||||
|
||||
updateTabButtonSelection();
|
||||
#endif
|
||||
}
|
||||
|
||||
void Screen::charPressed(char inputChar) {
|
||||
@@ -209,11 +212,13 @@ void Screen::charPressed(char inputChar) {
|
||||
|
||||
void Screen::updateTabButtonSelection()
|
||||
{
|
||||
#ifdef TABBING
|
||||
if (minecraft->useTouchscreen())
|
||||
return;
|
||||
|
||||
for (unsigned int i = 0; i < tabButtons.size(); ++i)
|
||||
tabButtons[i]->selected = (i == tabButtonIndex);
|
||||
#endif
|
||||
}
|
||||
|
||||
void Screen::mouseClicked( int x, int y, int buttonNum )
|
||||
|
||||
@@ -95,7 +95,7 @@ void Button::renderBg( Minecraft* minecraft, int xm, int ym )
|
||||
}
|
||||
|
||||
bool Button::hovered(Minecraft* minecraft, int xm , int ym) {
|
||||
return minecraft->useTouchscreen()? (_currentlyDown && isInside(xm, ym)) : false;
|
||||
return minecraft->useTouchscreen()? (_currentlyDown && isInside(xm, ym)) : isInside(xm, ym);
|
||||
}
|
||||
|
||||
bool Button::isInside( int xm, int ym ) {
|
||||
@@ -143,7 +143,8 @@ TButton::TButton( int id, int x, int y, int w, int h, const std::string& msg )
|
||||
|
||||
void TButton::renderBg( Minecraft* minecraft, int xm, int ym )
|
||||
{
|
||||
bool hovered = active && (minecraft->useTouchscreen()? (_currentlyDown && xm >= x && ym >= y && xm < x + width && ym < y + height) : false);
|
||||
bool hovered = active && (minecraft->useTouchscreen()? (_currentlyDown && xm >= x && ym >= y && xm < x + width && ym < y + height) : isInside(xm, ym));
|
||||
// bool hovered = active && (_currentlyDown && isInside(xm, ym));
|
||||
|
||||
minecraft->textures->loadAndBindTexture("gui/touchgui.png");
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ void ImageButton::render(Minecraft* minecraft, int xm, int ym) {
|
||||
//minecraft->textures->loadAndBindTexture("gui/gui.png");
|
||||
glColor4f2(1, 1, 1, 1);
|
||||
|
||||
bool hovered = active && (minecraft->useTouchscreen()? (_currentlyDown && xm >= x && ym >= y && xm < x + width && ym < y + height) : false);
|
||||
bool hovered = active && (minecraft->useTouchscreen()? (_currentlyDown && xm >= x && ym >= y && xm < x + width && ym < y + height) : isInside(xm, ym));
|
||||
bool IsSecondImage = isSecondImage(hovered);
|
||||
|
||||
//printf("ButtonId: %d - Hovered? %d (cause: %d, %d, %d, %d, <> %d, %d)\n", id, hovered, x, y, x+w, y+h, xm, ym);
|
||||
|
||||
@@ -33,7 +33,7 @@ void LargeImageButton::render(Minecraft* minecraft, int xm, int ym) {
|
||||
|
||||
//minecraft->textures->loadAndBindTexture("gui/gui.png");
|
||||
glColor4f2(1, 1, 1, 1);
|
||||
bool hovered = active && (minecraft->useTouchscreen()? (_currentlyDown && xm >= x && ym >= y && xm < x + width && ym < y + height) : false);
|
||||
bool hovered = active && (minecraft->useTouchscreen()? (_currentlyDown && xm >= x && ym >= y && xm < x + width && ym < y + height) : isInside(xm, ym));
|
||||
|
||||
//printf("ButtonId: %d - Hovered? %d (cause: %d, %d, %d, %d, <> %d, %d)\n", id, hovered, x, y, x+w, y+h, xm, ym);
|
||||
//int yImage = getYImage(hovered || selected);
|
||||
|
||||
@@ -31,7 +31,7 @@ ConfirmScreen::~ConfirmScreen() {
|
||||
|
||||
void ConfirmScreen::init()
|
||||
{
|
||||
if (minecraft->useTouchscreen()) {
|
||||
if (/* minecraft->useTouchscreen() */ true) {
|
||||
yesButton = new Touch::TButton(0, 0, 0, yesButtonText),
|
||||
noButton = new Touch::TButton(1, 0, 0, noButtonText);
|
||||
} else {
|
||||
|
||||
@@ -23,7 +23,7 @@ DeathScreen::~DeathScreen()
|
||||
|
||||
void DeathScreen::init()
|
||||
{
|
||||
if (minecraft->useTouchscreen()) {
|
||||
if (/* minecraft->useTouchscreen() */ true) {
|
||||
bRespawn = new Touch::TButton(1, "Respawn!");
|
||||
bTitle = new Touch::TButton(2, "Main menu");
|
||||
} else {
|
||||
|
||||
@@ -21,7 +21,7 @@ public:
|
||||
}
|
||||
|
||||
void init() {
|
||||
if (minecraft->useTouchscreen())
|
||||
if (/* minecraft->useTouchscreen() */ true)
|
||||
_back = new Touch::TButton(1, "Ok");
|
||||
else
|
||||
_back = new Button(1, "Ok");
|
||||
|
||||
@@ -17,7 +17,7 @@ InBedScreen::~InBedScreen() {
|
||||
}
|
||||
|
||||
void InBedScreen::init() {
|
||||
if (minecraft->useTouchscreen()) {
|
||||
if (/* minecraft->useTouchscreen() */ true) {
|
||||
bWakeUp = new Touch::TButton(1, "Leave Bed");
|
||||
} else {
|
||||
bWakeUp = new Button(1, "Leave Bed");
|
||||
|
||||
@@ -48,7 +48,7 @@ PauseScreen::~PauseScreen() {
|
||||
}
|
||||
|
||||
void PauseScreen::init() {
|
||||
if (minecraft->useTouchscreen()) {
|
||||
if (/* minecraft->useTouchscreen() */ true) {
|
||||
bContinue = new Touch::TButton(1, "Back to game");
|
||||
bOptions = new Touch::TButton(5, "Options");
|
||||
bQuit = new Touch::TButton(2, "Quit to title");
|
||||
|
||||
@@ -11,6 +11,8 @@ public:
|
||||
void render(int xm, int ym, float a);
|
||||
bool isInGameScreen();
|
||||
|
||||
virtual void keyPressed(int eventKey) {}
|
||||
|
||||
void tick();
|
||||
private:
|
||||
int ticks;
|
||||
|
||||
@@ -21,7 +21,7 @@ Screen* ScreenChooser::createScreen( ScreenId id )
|
||||
Screen* screen = NULL;
|
||||
|
||||
// :sob:
|
||||
if (_mc->useTouchscreen()) {
|
||||
if (/* _mc->useTouchscreen() */ true) {
|
||||
switch (id) {
|
||||
case SCREEN_STARTMENU: screen = new Touch::StartMenuScreen(); break;
|
||||
case SCREEN_SELECTWORLD: screen = new Touch::SelectWorldScreen();break;
|
||||
|
||||
@@ -56,7 +56,7 @@ void SimpleChooseLevelScreen::init()
|
||||
def.setSrc(IntRectangle(150, 0, (int)def.width, (int)def.height));
|
||||
bBack->setImageDef(def, true);
|
||||
}
|
||||
if (minecraft->useTouchscreen()) {
|
||||
if (/* minecraft->useTouchscreen() */ true) {
|
||||
bGamemode = new Touch::TButton(1, "Survival mode");
|
||||
bCheats = new Touch::TButton(4, "Cheats: Off");
|
||||
bCreate = new Touch::TButton(3, "Create");
|
||||
|
||||
@@ -41,7 +41,7 @@ public:
|
||||
//fill(x+1, y+1, x+w-1, y+h-1, 0xff999999);
|
||||
|
||||
bool hovered = active && (minecraft->useTouchscreen()?
|
||||
(_currentlyDown && xm >= x && ym >= y && xm < x + width && ym < y + height) : false);
|
||||
(_currentlyDown && xm >= x && ym >= y && xm < x + width && ym < y + height) : isInside(xm, ym));
|
||||
|
||||
if (hovered || *selectedPtr == this)
|
||||
statePressed->draw(Tesselator::instance, (float)x, (float)y);
|
||||
@@ -547,7 +547,7 @@ void CraftButton::renderBg(Minecraft* minecraft, int xm, int ym) {
|
||||
//fill(x+1, y+1, x+w-1, y+h-1, 0xff999999);
|
||||
|
||||
bool hovered = active && (minecraft->useTouchscreen()?
|
||||
(_currentlyDown && xm >= x && ym >= y && xm < x + width && ym < y + height) : false);
|
||||
(_currentlyDown && xm >= x && ym >= y && xm < x + width && ym < y + height) : isInside(xm, ym));
|
||||
|
||||
if (hovered || selected)
|
||||
bgSelected->draw(Tesselator::instance, (float)x, (float)y);
|
||||
|
||||
@@ -50,10 +50,8 @@ void KeyboardInput::tick( Player* player )
|
||||
ya *= 0.3f;
|
||||
}
|
||||
|
||||
#if defined(RPI) || defined(PLATFORM_DESKTOP)
|
||||
wantUp = jumping;
|
||||
wantDown = sneaking;
|
||||
#endif
|
||||
wantUp = jumping;
|
||||
wantDown = sneaking;
|
||||
|
||||
if (keys[KEY_CRAFT])
|
||||
player->startCrafting((int)player->x, (int)player->y, (int)player->z, Recipe::SIZE_2X2);
|
||||
|
||||
@@ -153,7 +153,7 @@ void GameRenderer::render(float a) {
|
||||
|
||||
int xMouse = (int)(Mouse::getX() * Gui::InvGuiScale);
|
||||
int yMouse = (int)(Mouse::getY() * Gui::InvGuiScale);
|
||||
#ifndef PLATFORM_DESKTOP
|
||||
|
||||
if (mc->useTouchscreen()) {
|
||||
const int pid = Multitouch::getFirstActivePointerIdExThisUpdate();
|
||||
if (pid >= 0) {
|
||||
@@ -164,7 +164,6 @@ void GameRenderer::render(float a) {
|
||||
yMouse = -9999;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
TIMER_POP();
|
||||
|
||||
bool hasClearedColorBuffer = false;
|
||||
@@ -361,9 +360,9 @@ void GameRenderer::renderLevel(float a) {
|
||||
if (mc->hitResult.isHit() && !cameraEntity->isUnderLiquid(Material::water)) {
|
||||
TIMER_POP_PUSH("select");
|
||||
Player* player = (Player*) cameraEntity;
|
||||
if (mc->useTouchscreen()) {
|
||||
// if (mc->useTouchscreen()) {
|
||||
levelRenderer->renderHitSelect(player, mc->hitResult, 0, NULL, a); //player.inventory->getSelected(), a);
|
||||
}
|
||||
// }
|
||||
levelRenderer->renderHit(player, mc->hitResult, 0, NULL, a);//player->inventory.getSelected(), a);
|
||||
}
|
||||
}
|
||||
@@ -657,11 +656,9 @@ void GameRenderer::pick(float a) {
|
||||
|
||||
float range = mc->gameMode->getPickRange();
|
||||
bool isPicking = true;
|
||||
#ifndef PLATFORM_DESKTOP
|
||||
bool freeform = mc->useTouchscreen() && !mc->options.getBooleanValue(OPTIONS_IS_JOY_TOUCH_AREA);
|
||||
#else
|
||||
bool freeform = false;
|
||||
#endif
|
||||
|
||||
bool freeform = mc->useTouchscreen(); //&& !mc->options.getBooleanValue(OPTIONS_IS_JOY_TOUCH_AREA);
|
||||
|
||||
if (freeform) {
|
||||
isPicking = updateFreeformPickDirection(a, pickDirection);
|
||||
} else {
|
||||
|
||||
@@ -139,12 +139,14 @@ int main(void) {
|
||||
#ifndef STANDALONE_SERVER
|
||||
// Platform init.
|
||||
appContext.platform = new AppPlatform_glfw();
|
||||
#if defined(DEBUG) && defined(__EMSCRIPTEN__)
|
||||
EM_ASM({
|
||||
console.log(FS.readdir("/"));
|
||||
console.log(FS.readdir("/data"));
|
||||
console.log(FS.readdir("/data/images"));
|
||||
});
|
||||
#if defined(__EMSCRIPTEN__)
|
||||
EM_ASM(
|
||||
FS.mkdir('/games');
|
||||
FS.mkdir('/games/com.mojang');
|
||||
FS.mkdir('/games/com.mojang/minecraftWorlds');
|
||||
FS.mount(IDBFS, {}, '/games');
|
||||
FS.syncfs(true, function (err) {});
|
||||
);
|
||||
#endif
|
||||
|
||||
glfwSetErrorCallback(error_callback);
|
||||
|
||||
Reference in New Issue
Block a user