forked from Kolyah35/minecraft-pe-0.6.1
Compare commits
1 Commits
main
...
feature/gr
| Author | SHA1 | Date | |
|---|---|---|---|
| 9367adcf2c |
Binary file not shown.
|
Before Width: | Height: | Size: 174 KiB After Width: | Height: | Size: 219 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 111 KiB After Width: | Height: | Size: 93 KiB |
@@ -229,12 +229,6 @@ options.fancyGraphics=Fancy graphics
|
|||||||
options.renderDebug=Debug render
|
options.renderDebug=Debug render
|
||||||
options.anaglyph3d=3D anaglyph
|
options.anaglyph3d=3D anaglyph
|
||||||
|
|
||||||
options.windowScale =Window Scaling
|
|
||||||
|
|
||||||
options.menuStyle =Menu Style
|
|
||||||
options.menuStyle.pocket =Pocket Edition
|
|
||||||
options.menuStyle.xperia =Xperia/Pi
|
|
||||||
options.menuStyle.java =Java Beta
|
|
||||||
|
|
||||||
performance.max=Max FPS
|
performance.max=Max FPS
|
||||||
performance.balanced=Balanced
|
performance.balanced=Balanced
|
||||||
|
|||||||
@@ -129,7 +129,6 @@ public class SoundPlayer
|
|||||||
new SoundId(R.raw.eat1, "random.eat"),
|
new SoundId(R.raw.eat1, "random.eat"),
|
||||||
new SoundId(R.raw.eat2, "random.eat"),
|
new SoundId(R.raw.eat2, "random.eat"),
|
||||||
new SoundId(R.raw.eat3, "random.eat"),
|
new SoundId(R.raw.eat3, "random.eat"),
|
||||||
new SoundId(R.raw.burp1, "random.burp"),
|
|
||||||
new SoundId(R.raw.fuse, "random.fuse"),
|
new SoundId(R.raw.fuse, "random.fuse"),
|
||||||
|
|
||||||
new SoundId(R.raw.zpig1, "mob.zombiepig.zpig"),
|
new SoundId(R.raw.zpig1, "mob.zombiepig.zpig"),
|
||||||
|
|||||||
@@ -843,7 +843,7 @@ void Minecraft::tickInput() {
|
|||||||
if (key == Keyboard::KEY_ESCAPE)
|
if (key == Keyboard::KEY_ESCAPE)
|
||||||
pauseGame(false);
|
pauseGame(false);
|
||||||
|
|
||||||
#ifdef PLATFORM_DESKTOP
|
#ifndef OPENGL_ES
|
||||||
if (key == Keyboard::KEY_P) {
|
if (key == Keyboard::KEY_P) {
|
||||||
static bool isWireFrame = false;
|
static bool isWireFrame = false;
|
||||||
isWireFrame = !isWireFrame;
|
isWireFrame = !isWireFrame;
|
||||||
@@ -864,7 +864,6 @@ void Minecraft::tickInput() {
|
|||||||
|
|
||||||
static bool prevMouseDownLeft = false;
|
static bool prevMouseDownLeft = false;
|
||||||
|
|
||||||
if (!useTouchscreen()) {
|
|
||||||
if (Mouse::getButtonState(MouseAction::ACTION_LEFT) == 0) {
|
if (Mouse::getButtonState(MouseAction::ACTION_LEFT) == 0) {
|
||||||
gameMode->stopDestroyBlock();
|
gameMode->stopDestroyBlock();
|
||||||
}
|
}
|
||||||
@@ -872,7 +871,6 @@ void Minecraft::tickInput() {
|
|||||||
if (!Mouse::isButtonDown(MouseAction::ACTION_RIGHT)) {
|
if (!Mouse::isButtonDown(MouseAction::ACTION_RIGHT)) {
|
||||||
gameMode->releaseUsingItem(player);
|
gameMode->releaseUsingItem(player);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (useTouchscreen()) {
|
if (useTouchscreen()) {
|
||||||
// Touch: gesture recognizer classifies the action type (turn/destroy/build)
|
// Touch: gesture recognizer classifies the action type (turn/destroy/build)
|
||||||
@@ -1144,8 +1142,7 @@ void Minecraft::init()
|
|||||||
textures->addDynamicTexture(new WaterSideTexture());
|
textures->addDynamicTexture(new WaterSideTexture());
|
||||||
textures->addDynamicTexture(new LavaTexture());
|
textures->addDynamicTexture(new LavaTexture());
|
||||||
textures->addDynamicTexture(new LavaSideTexture());
|
textures->addDynamicTexture(new LavaSideTexture());
|
||||||
textures->addDynamicTexture(new FireTexture(0));
|
textures->addDynamicTexture(new FireTexture());
|
||||||
textures->addDynamicTexture(new FireTexture(1));
|
|
||||||
gui.texturesLoaded(textures);
|
gui.texturesLoaded(textures);
|
||||||
|
|
||||||
levelRenderer = new LevelRenderer(this);
|
levelRenderer = new LevelRenderer(this);
|
||||||
@@ -1194,24 +1191,6 @@ void Minecraft::setSize(int w, int h) {
|
|||||||
|
|
||||||
width = w;
|
width = w;
|
||||||
height = h;
|
height = h;
|
||||||
int screenWidth;
|
|
||||||
int screenHeight;
|
|
||||||
//#ifdef PLATFORM_DESKTOP
|
|
||||||
if (options.getBooleanValue(OPTIONS_WINDOW_SCALE)){ // scales with resolution using a formula instead of having hardcoded if checks
|
|
||||||
int guiScale = options.getIntValue(OPTIONS_GUI_SCALE);
|
|
||||||
if (guiScale == 0) {
|
|
||||||
guiScale = 1000;
|
|
||||||
}
|
|
||||||
|
|
||||||
// determine gui scale, optionally overriding auto
|
|
||||||
|
|
||||||
|
|
||||||
Gui::GuiScale = (float)Mth::Min(guiScale, Mth::Max(1, Mth::Min(width / 320, height / 240)));
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
|
|
||||||
int guiScale = options.getIntValue(OPTIONS_GUI_SCALE);
|
int guiScale = options.getIntValue(OPTIONS_GUI_SCALE);
|
||||||
|
|
||||||
@@ -1248,7 +1227,9 @@ void Minecraft::setSize(int w, int h) {
|
|||||||
Gui::GuiScale = 1.0f;
|
Gui::GuiScale = 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Gui::InvGuiScale = 1.0f / Gui::GuiScale;
|
||||||
|
int screenWidth = (int)(width * Gui::InvGuiScale);
|
||||||
|
int screenHeight = (int)(height * Gui::InvGuiScale);
|
||||||
|
|
||||||
// if (platform()) {
|
// if (platform()) {
|
||||||
// float pixelsPerMillimeter = options.getProgressValue(&Option::PIXELS_PER_MILLIMETER);
|
// float pixelsPerMillimeter = options.getProgressValue(&Option::PIXELS_PER_MILLIMETER);
|
||||||
@@ -1256,13 +1237,6 @@ void Minecraft::setSize(int w, int h) {
|
|||||||
// pixelCalcUi.setPixelsPerMillimeter(pixelsPerMillimeter * Gui::InvGuiScale);
|
// pixelCalcUi.setPixelsPerMillimeter(pixelsPerMillimeter * Gui::InvGuiScale);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Gui::InvGuiScale = 1.0f / Gui::GuiScale;
|
|
||||||
screenWidth = (int)(width * Gui::InvGuiScale);
|
|
||||||
screenHeight = (int)(height * Gui::InvGuiScale);
|
|
||||||
|
|
||||||
Config config = createConfig(this);
|
Config config = createConfig(this);
|
||||||
gui.onConfigChanged(config);
|
gui.onConfigChanged(config);
|
||||||
|
|
||||||
|
|||||||
@@ -82,10 +82,6 @@ OptionBool restoredAnims("restoredAnims", true);
|
|||||||
|
|
||||||
OptionInt debugStyle("debugStyle", 0, 0, 1);
|
OptionInt debugStyle("debugStyle", 0, 0, 1);
|
||||||
|
|
||||||
OptionInt menuStyle("menuStyle",0, 0, 2);
|
|
||||||
|
|
||||||
OptionBool windowScale("windowScale", false);
|
|
||||||
|
|
||||||
OptionInt keyForward("key.forward", Keyboard::KEY_W);
|
OptionInt keyForward("key.forward", Keyboard::KEY_W);
|
||||||
OptionInt keyLeft("key.left", Keyboard::KEY_A);
|
OptionInt keyLeft("key.left", Keyboard::KEY_A);
|
||||||
OptionInt keyBack("key.back", Keyboard::KEY_S);
|
OptionInt keyBack("key.back", Keyboard::KEY_S);
|
||||||
@@ -138,7 +134,6 @@ void Options::initTable() {
|
|||||||
|
|
||||||
|
|
||||||
m_options[OPTIONS_GUI_SCALE] = &guiScale;
|
m_options[OPTIONS_GUI_SCALE] = &guiScale;
|
||||||
m_options[OPTIONS_WINDOW_SCALE] = &windowScale;
|
|
||||||
|
|
||||||
m_options[OPTIONS_SKIN] = &skin;
|
m_options[OPTIONS_SKIN] = &skin;
|
||||||
m_options[OPTIONS_USERNAME] = &username;
|
m_options[OPTIONS_USERNAME] = &username;
|
||||||
@@ -175,8 +170,6 @@ void Options::initTable() {
|
|||||||
|
|
||||||
m_options[OPTIONS_SERVER_VISIBLE] = &serverVisible;
|
m_options[OPTIONS_SERVER_VISIBLE] = &serverVisible;
|
||||||
|
|
||||||
m_options[OPTIONS_MENU_STYLE] = &menuStyle;
|
|
||||||
|
|
||||||
m_options[OPTIONS_KEY_FORWARD] = &keyForward;
|
m_options[OPTIONS_KEY_FORWARD] = &keyForward;
|
||||||
m_options[OPTIONS_KEY_LEFT] = &keyLeft;
|
m_options[OPTIONS_KEY_LEFT] = &keyLeft;
|
||||||
m_options[OPTIONS_KEY_BACK] = &keyBack;
|
m_options[OPTIONS_KEY_BACK] = &keyBack;
|
||||||
|
|||||||
@@ -37,7 +37,6 @@ enum OptionId {
|
|||||||
OPTIONS_BAR_ON_TOP,
|
OPTIONS_BAR_ON_TOP,
|
||||||
OPTIONS_ALLOW_SPRINT,
|
OPTIONS_ALLOW_SPRINT,
|
||||||
OPTIONS_AUTOJUMP,
|
OPTIONS_AUTOJUMP,
|
||||||
OPTIONS_WINDOW_SCALE,
|
|
||||||
|
|
||||||
// Graphics
|
// Graphics
|
||||||
OPTIONS_RENDER_DEBUG,
|
OPTIONS_RENDER_DEBUG,
|
||||||
@@ -52,7 +51,6 @@ enum OptionId {
|
|||||||
OPTIONS_FANCY_GRAPHICS,
|
OPTIONS_FANCY_GRAPHICS,
|
||||||
OPTIONS_NORMAL_LIGHTING,
|
OPTIONS_NORMAL_LIGHTING,
|
||||||
|
|
||||||
|
|
||||||
// Cheats / debug
|
// Cheats / debug
|
||||||
OPTIONS_FLY_SPEED,
|
OPTIONS_FLY_SPEED,
|
||||||
OPTIONS_CAMERA_SPEED,
|
OPTIONS_CAMERA_SPEED,
|
||||||
@@ -97,8 +95,6 @@ enum OptionId {
|
|||||||
OPTIONS_BEAUTIFUL_SKY,
|
OPTIONS_BEAUTIFUL_SKY,
|
||||||
OPTIONS_VIGNETTE,
|
OPTIONS_VIGNETTE,
|
||||||
OPTIONS_DEBUG_STYLE,
|
OPTIONS_DEBUG_STYLE,
|
||||||
OPTIONS_COMPLETE_LIGHTING,
|
|
||||||
OPTIONS_MENU_STYLE,
|
|
||||||
// Should be last!
|
// Should be last!
|
||||||
OPTIONS_COUNT
|
OPTIONS_COUNT
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -35,6 +35,17 @@ void GuiElementContainer::removeChild( GuiElement* element ) {
|
|||||||
children.erase(it);
|
children.erase(it);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool GuiElementContainer::containsPointInChildren(int x, int y) const {
|
||||||
|
for (std::vector<GuiElement*>::const_iterator it = children.begin(); it != children.end(); ++it) {
|
||||||
|
GuiElement* child = *it;
|
||||||
|
if (child == NULL || !child->visible) continue;
|
||||||
|
if (child->pointInside(x, y)) return true;
|
||||||
|
const GuiElementContainer* container = dynamic_cast<const GuiElementContainer*>(child);
|
||||||
|
if (container != NULL && container->containsPointInChildren(x, y)) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
void GuiElementContainer::tick( Minecraft* minecraft ) {
|
void GuiElementContainer::tick( Minecraft* minecraft ) {
|
||||||
for(std::vector<GuiElement*>::iterator it = children.begin(); it != children.end(); ++it) {
|
for(std::vector<GuiElement*>::iterator it = children.begin(); it != children.end(); ++it) {
|
||||||
(*it)->tick(minecraft);
|
(*it)->tick(minecraft);
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ public:
|
|||||||
virtual void setupPositions();
|
virtual void setupPositions();
|
||||||
virtual void addChild(GuiElement* element);
|
virtual void addChild(GuiElement* element);
|
||||||
virtual void removeChild(GuiElement* element);
|
virtual void removeChild(GuiElement* element);
|
||||||
|
bool containsPointInChildren(int x, int y) const;
|
||||||
|
|
||||||
virtual void tick( Minecraft* minecraft );
|
virtual void tick( Minecraft* minecraft );
|
||||||
|
|
||||||
|
|||||||
@@ -6,14 +6,36 @@
|
|||||||
#include "../../../locale/I18n.h"
|
#include "../../../locale/I18n.h"
|
||||||
#include "TextOption.h"
|
#include "TextOption.h"
|
||||||
#include "KeyOption.h"
|
#include "KeyOption.h"
|
||||||
|
#include <algorithm>
|
||||||
|
#include "../Gui.h"
|
||||||
|
#include "../Screen.h"
|
||||||
|
#include "../../../platform/input/Mouse.h"
|
||||||
|
#include "../../../util/Mth.h"
|
||||||
|
|
||||||
OptionsGroup::OptionsGroup( std::string labelID ) {
|
OptionsGroup::OptionsGroup( std::string labelID )
|
||||||
|
: contentHeight(0),
|
||||||
|
scrollOffsetY(0.0f),
|
||||||
|
maxScrollOffsetY(0.0f),
|
||||||
|
trackingScrollGesture(false),
|
||||||
|
scrollingGesture(false),
|
||||||
|
touchDispatched(false),
|
||||||
|
dragStartX(0),
|
||||||
|
dragStartY(0),
|
||||||
|
lastDragY(0),
|
||||||
|
touchStartX(0),
|
||||||
|
touchStartY(0) {
|
||||||
label = I18n::get(labelID);
|
label = I18n::get(labelID);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OptionsGroup::setupPositions() {
|
void OptionsGroup::setupPositions() {
|
||||||
|
const int labelHeight = 18;
|
||||||
|
const int bottomPadding = 36;
|
||||||
|
const float requestedScroll = scrollOffsetY;
|
||||||
|
const int scrollOffset = (int)requestedScroll;
|
||||||
|
int curY = y + labelHeight - scrollOffset;
|
||||||
|
const int contentStartY = y + labelHeight;
|
||||||
|
|
||||||
// First we write the header and then we add the items
|
// First we write the header and then we add the items
|
||||||
int curY = y + 18;
|
|
||||||
for(std::vector<GuiElement*>::iterator it = children.begin(); it != children.end(); ++it) {
|
for(std::vector<GuiElement*>::iterator it = children.begin(); it != children.end(); ++it) {
|
||||||
(*it)->width = width - 5;
|
(*it)->width = width - 5;
|
||||||
|
|
||||||
@@ -22,16 +44,109 @@ void OptionsGroup::setupPositions() {
|
|||||||
(*it)->setupPositions();
|
(*it)->setupPositions();
|
||||||
curY += (*it)->height + 3;
|
curY += (*it)->height + 3;
|
||||||
}
|
}
|
||||||
height = curY;
|
curY += bottomPadding;
|
||||||
|
contentHeight = std::max(0, curY - contentStartY + scrollOffset);
|
||||||
|
maxScrollOffsetY = std::max(0, contentHeight - (height - labelHeight));
|
||||||
|
const float clampedScroll = Mth::clamp(requestedScroll, 0.0f, maxScrollOffsetY);
|
||||||
|
if (clampedScroll != requestedScroll) {
|
||||||
|
scrollOffsetY = clampedScroll;
|
||||||
|
setupPositions();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OptionsGroup::render( Minecraft* minecraft, int xm, int ym ) {
|
void OptionsGroup::render( Minecraft* minecraft, int xm, int ym ) {
|
||||||
float padX = 10.0f;
|
float padX = 10.0f;
|
||||||
float padY = 5.0f;
|
float padY = 5.0f;
|
||||||
|
const int labelHeight = 18;
|
||||||
|
|
||||||
minecraft->font->draw(label, (float)x + padX, (float)y + padY, 0xffffffff, false);
|
minecraft->font->draw(label, (float)x + padX, (float)y + padY, 0xffffffff, false);
|
||||||
|
|
||||||
|
glEnable2(GL_SCISSOR_TEST);
|
||||||
|
glScissor(
|
||||||
|
Gui::GuiScale * x,
|
||||||
|
minecraft->height - Gui::GuiScale * (y + height),
|
||||||
|
Gui::GuiScale * width,
|
||||||
|
Gui::GuiScale * (height - labelHeight)
|
||||||
|
);
|
||||||
|
|
||||||
super::render(minecraft, xm, ym);
|
super::render(minecraft, xm, ym);
|
||||||
|
glDisable2(GL_SCISSOR_TEST);
|
||||||
|
}
|
||||||
|
|
||||||
|
void OptionsGroup::tick(Minecraft* minecraft) {
|
||||||
|
int xm = Mouse::getX();
|
||||||
|
int ym = Mouse::getY();
|
||||||
|
if (minecraft->screen != NULL) {
|
||||||
|
minecraft->screen->toGUICoordinate(xm, ym);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool leftDown = Mouse::isButtonDown(MouseAction::ACTION_LEFT);
|
||||||
|
|
||||||
|
if (trackingScrollGesture && leftDown) {
|
||||||
|
int dy = ym - lastDragY;
|
||||||
|
int dx = xm - dragStartX;
|
||||||
|
if (!scrollingGesture) {
|
||||||
|
int totalDx = xm - dragStartX;
|
||||||
|
int totalDy = ym - dragStartY;
|
||||||
|
if (std::abs(totalDx) >= ScrollStartThreshold || std::abs(totalDy) >= ScrollStartThreshold) {
|
||||||
|
if (std::abs(totalDy) >= std::abs(totalDx)) {
|
||||||
|
scrollingGesture = true;
|
||||||
|
} else if (!touchDispatched) {
|
||||||
|
super::mouseClicked(minecraft, touchStartX, touchStartY, MouseAction::ACTION_LEFT);
|
||||||
|
touchDispatched = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (scrollingGesture && dy != 0) {
|
||||||
|
scrollByPixels((float)dy);
|
||||||
|
}
|
||||||
|
lastDragY = ym;
|
||||||
|
}
|
||||||
|
super::tick(minecraft);
|
||||||
|
}
|
||||||
|
|
||||||
|
void OptionsGroup::mouseClicked(Minecraft* minecraft, int x, int y, int buttonNum) {
|
||||||
|
trackingScrollGesture = false;
|
||||||
|
scrollingGesture = false;
|
||||||
|
touchDispatched = false;
|
||||||
|
|
||||||
|
if (buttonNum == MouseAction::ACTION_LEFT && pointInside(x, y)) {
|
||||||
|
trackingScrollGesture = true;
|
||||||
|
dragStartX = x;
|
||||||
|
dragStartY = y;
|
||||||
|
lastDragY = y;
|
||||||
|
touchStartX = x;
|
||||||
|
touchStartY = y;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
super::mouseClicked(minecraft, x, y, buttonNum);
|
||||||
|
}
|
||||||
|
|
||||||
|
void OptionsGroup::mouseReleased(Minecraft* minecraft, int x, int y, int buttonNum) {
|
||||||
|
bool wasScrolling = scrollingGesture;
|
||||||
|
bool wasTracking = trackingScrollGesture;
|
||||||
|
trackingScrollGesture = false;
|
||||||
|
scrollingGesture = false;
|
||||||
|
if (buttonNum == MouseAction::ACTION_LEFT && wasTracking && !touchDispatched && pointInside(touchStartX, touchStartY)) {
|
||||||
|
super::mouseClicked(minecraft, touchStartX, touchStartY, buttonNum);
|
||||||
|
touchDispatched = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!wasScrolling) {
|
||||||
|
super::mouseReleased(minecraft, x, y, buttonNum);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void OptionsGroup::scrollByPixels(float deltaY) {
|
||||||
|
if (deltaY == 0.0f || maxScrollOffsetY <= 0.0f) return;
|
||||||
|
|
||||||
|
scrollOffsetY = Mth::clamp(scrollOffsetY - deltaY, 0.0f, maxScrollOffsetY);
|
||||||
|
setupPositions();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool OptionsGroup::isScrollingGestureActive() const {
|
||||||
|
return trackingScrollGesture || scrollingGesture;
|
||||||
}
|
}
|
||||||
|
|
||||||
OptionsGroup& OptionsGroup::addOptionItem(OptionId optId, Minecraft* minecraft ) {
|
OptionsGroup& OptionsGroup::addOptionItem(OptionId optId, Minecraft* minecraft ) {
|
||||||
|
|||||||
@@ -17,7 +17,12 @@ public:
|
|||||||
OptionsGroup(std::string labelID);
|
OptionsGroup(std::string labelID);
|
||||||
virtual void setupPositions();
|
virtual void setupPositions();
|
||||||
virtual void render(Minecraft* minecraft, int xm, int ym);
|
virtual void render(Minecraft* minecraft, int xm, int ym);
|
||||||
|
virtual void tick(Minecraft* minecraft);
|
||||||
|
virtual void mouseClicked(Minecraft* minecraft, int x, int y, int buttonNum);
|
||||||
|
virtual void mouseReleased(Minecraft* minecraft, int x, int y, int buttonNum);
|
||||||
OptionsGroup& addOptionItem(OptionId optId, Minecraft* minecraft);
|
OptionsGroup& addOptionItem(OptionId optId, Minecraft* minecraft);
|
||||||
|
void scrollByPixels(float deltaY);
|
||||||
|
bool isScrollingGestureActive() const;
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
void createToggle(OptionId optId, Minecraft* minecraft);
|
void createToggle(OptionId optId, Minecraft* minecraft);
|
||||||
@@ -27,6 +32,18 @@ protected:
|
|||||||
void createKey(OptionId optId, Minecraft* minecraft);
|
void createKey(OptionId optId, Minecraft* minecraft);
|
||||||
|
|
||||||
std::string label;
|
std::string label;
|
||||||
|
int contentHeight;
|
||||||
|
float scrollOffsetY;
|
||||||
|
float maxScrollOffsetY;
|
||||||
|
bool trackingScrollGesture;
|
||||||
|
bool scrollingGesture;
|
||||||
|
bool touchDispatched;
|
||||||
|
int dragStartX;
|
||||||
|
int dragStartY;
|
||||||
|
int lastDragY;
|
||||||
|
int touchStartX;
|
||||||
|
int touchStartY;
|
||||||
|
static const int ScrollStartThreshold = 5;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /*NET_MINECRAFT_CLIENT_GUI_COMPONENTS__OptionsGroup_H__*/
|
#endif /*NET_MINECRAFT_CLIENT_GUI_COMPONENTS__OptionsGroup_H__*/
|
||||||
|
|||||||
@@ -56,28 +56,6 @@ void OptionsItem::render( Minecraft* minecraft, int xm, int ym ) {
|
|||||||
}
|
}
|
||||||
text += ": " + scaleText;
|
text += ": " + scaleText;
|
||||||
}
|
}
|
||||||
if (m_optionId == OPTIONS_MENU_STYLE) {
|
|
||||||
int value = minecraft->options.getIntValue(OPTIONS_MENU_STYLE);
|
|
||||||
std::string scaleText;
|
|
||||||
switch (value) {
|
|
||||||
case 0: scaleText = I18n::get("options.menuStyle.pocket"); break;
|
|
||||||
case 1: scaleText = I18n::get("options.menuStyle.xperia"); break;
|
|
||||||
case 2: scaleText = I18n::get("options.menuStyle.java"); break;
|
|
||||||
}
|
|
||||||
text += ": " + scaleText;
|
|
||||||
}
|
|
||||||
if (m_optionId == OPTIONS_VIEW_DISTANCE) {
|
|
||||||
int value = minecraft->options.getIntValue(OPTIONS_VIEW_DISTANCE);
|
|
||||||
std::string scaleText;
|
|
||||||
switch (value) {
|
|
||||||
case 0: scaleText = I18n::get("options.renderDistance.far"); break;
|
|
||||||
case 1: scaleText = I18n::get("options.renderDistance.normal"); break;
|
|
||||||
case 2: scaleText = I18n::get("options.renderDistance.short"); break;
|
|
||||||
case 3: scaleText = I18n::get("options.renderDistance.tiny"); break;
|
|
||||||
default: scaleText = "Debug"; break;
|
|
||||||
}
|
|
||||||
text += ": " + scaleText;
|
|
||||||
}
|
|
||||||
|
|
||||||
minecraft->font->draw(text, (float)x, (float)y + yOffset, 0x909090, false);
|
minecraft->font->draw(text, (float)x, (float)y + yOffset, 0x909090, false);
|
||||||
super::render(minecraft, xm, ym);
|
super::render(minecraft, xm, ym);
|
||||||
|
|||||||
@@ -23,15 +23,12 @@ DeathScreen::~DeathScreen()
|
|||||||
|
|
||||||
void DeathScreen::init()
|
void DeathScreen::init()
|
||||||
{
|
{
|
||||||
if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 0) {
|
if (/* minecraft->useTouchscreen() */ true) {
|
||||||
bRespawn = new Touch::TButton(1, "Respawn!");
|
bRespawn = new Touch::TButton(1, "Respawn!");
|
||||||
bTitle = new Touch::TButton(2, "Main menu");
|
bTitle = new Touch::TButton(2, "Main menu");
|
||||||
} else if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 1) {
|
} else {
|
||||||
bRespawn = new Button(1, "Respawn!");
|
bRespawn = new Button(1, "Respawn!");
|
||||||
bTitle = new Button(2, "Main menu");
|
bTitle = new Button(2, "Main menu");
|
||||||
} else {
|
|
||||||
bRespawn = new Button(1, 0, 0, 200, 20, "Respawn");
|
|
||||||
bTitle = new Button(2, 0, 0, 200, 20, "Title menu");
|
|
||||||
}
|
}
|
||||||
buttons.push_back(bRespawn);
|
buttons.push_back(bRespawn);
|
||||||
buttons.push_back(bTitle);
|
buttons.push_back(bTitle);
|
||||||
@@ -42,23 +39,13 @@ void DeathScreen::init()
|
|||||||
|
|
||||||
void DeathScreen::setupPositions()
|
void DeathScreen::setupPositions()
|
||||||
{
|
{
|
||||||
if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 2){
|
|
||||||
bRespawn->width = 200;
|
|
||||||
bTitle->width = 200;
|
|
||||||
|
|
||||||
int centerX = (width / 2) - (bRespawn->width / 2);
|
|
||||||
bRespawn->x = centerX;
|
|
||||||
bTitle->x = centerX;
|
|
||||||
|
|
||||||
bRespawn->y = (height / 2);
|
|
||||||
bTitle->y = bRespawn->y + 24;
|
|
||||||
} else {
|
|
||||||
bRespawn->width = bTitle->width = width / 4;
|
bRespawn->width = bTitle->width = width / 4;
|
||||||
|
|
||||||
bRespawn->y = bTitle->y = height / 2;
|
bRespawn->y = bTitle->y = height / 2;
|
||||||
bRespawn->x = width/2 - bRespawn->width - 10;
|
bRespawn->x = width/2 - bRespawn->width - 10;
|
||||||
bTitle->x = width/2 + 10;
|
bTitle->x = width/2 + 10;
|
||||||
}
|
|
||||||
// LOGI("xyz: %d, %d (%d, %d)\n", bTitle->x, bTitle->y, width, height);
|
LOGI("xyz: %d, %d (%d, %d)\n", bTitle->x, bTitle->y, width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DeathScreen::tick() {
|
void DeathScreen::tick() {
|
||||||
@@ -69,20 +56,10 @@ void DeathScreen::render( int xm, int ym, float a )
|
|||||||
{
|
{
|
||||||
fillGradient(0, 0, width, height, 0x60500000, 0xa0803030);
|
fillGradient(0, 0, width, height, 0x60500000, 0xa0803030);
|
||||||
|
|
||||||
if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 2){
|
|
||||||
glPushMatrix2();
|
|
||||||
glScalef2(2, 2, 2);
|
|
||||||
drawCenteredString(font, "Game over!", width / 2 / 2, height / 8, 0xffffff);
|
|
||||||
glPopMatrix2();
|
|
||||||
std::stringstream ss;
|
|
||||||
ss << "Score: &e" << minecraft->player->getScore();
|
|
||||||
drawCenteredString(font, ss.str(), width / 2, (height / 4) + 32, 0xffffff);
|
|
||||||
} else {
|
|
||||||
glPushMatrix2();
|
glPushMatrix2();
|
||||||
glScalef2(2, 2, 2);
|
glScalef2(2, 2, 2);
|
||||||
drawCenteredString(font, "You died!", width / 2 / 2, height / 8, 0xffffff);
|
drawCenteredString(font, "You died!", width / 2 / 2, height / 8, 0xffffff);
|
||||||
glPopMatrix2();
|
glPopMatrix2();
|
||||||
}
|
|
||||||
|
|
||||||
if (_tick >= WAIT_TICKS)
|
if (_tick >= WAIT_TICKS)
|
||||||
Screen::render(xm, ym, a);
|
Screen::render(xm, ym, a);
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
#include "../../renderer/Textures.h"
|
#include "../../renderer/Textures.h"
|
||||||
#include "../../gamemode/GameMode.h"
|
#include "../../gamemode/GameMode.h"
|
||||||
#include "ArmorScreen.h"
|
#include "ArmorScreen.h"
|
||||||
#include "crafting/WorkbenchScreen.h"
|
|
||||||
#include "../components/Button.h"
|
#include "../components/Button.h"
|
||||||
|
|
||||||
#if defined(__APPLE__)
|
#if defined(__APPLE__)
|
||||||
@@ -28,8 +27,7 @@ IngameBlockSelectionScreen::IngameBlockSelectionScreen()
|
|||||||
InventoryRows(1),
|
InventoryRows(1),
|
||||||
InventoryCols(1),
|
InventoryCols(1),
|
||||||
InventorySize(1),
|
InventorySize(1),
|
||||||
bArmor(1, "Armor"),
|
bArmor(1, "Armor")
|
||||||
bCrafting(1, "Crafting")
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -45,19 +43,6 @@ void IngameBlockSelectionScreen::init()
|
|||||||
(float)getSlotPosX(InventoryCols) + 4,
|
(float)getSlotPosX(InventoryCols) + 4,
|
||||||
(float)getSlotPosY(InventoryRows) + 4);
|
(float)getSlotPosY(InventoryRows) + 4);
|
||||||
|
|
||||||
if (!minecraft->isCreativeMode()) {
|
|
||||||
bArmor.width = 42;
|
|
||||||
bCrafting.width = 42;
|
|
||||||
|
|
||||||
bArmor.x = 0;
|
|
||||||
bArmor.y = height - bArmor.height;
|
|
||||||
|
|
||||||
bCrafting.x = 0;
|
|
||||||
bCrafting.y = height - bCrafting.height - 30;
|
|
||||||
buttons.push_back(&bArmor);
|
|
||||||
buttons.push_back(&bCrafting);
|
|
||||||
}
|
|
||||||
|
|
||||||
ItemInstance* selected = inventory->getSelected();
|
ItemInstance* selected = inventory->getSelected();
|
||||||
if (!selected || selected->isNull()) {
|
if (!selected || selected->isNull()) {
|
||||||
selectedItem = 0;
|
selectedItem = 0;
|
||||||
@@ -73,6 +58,13 @@ void IngameBlockSelectionScreen::init()
|
|||||||
}
|
}
|
||||||
if (!isAllowed(selectedItem))
|
if (!isAllowed(selectedItem))
|
||||||
selectedItem = 0;
|
selectedItem = 0;
|
||||||
|
|
||||||
|
if (!minecraft->isCreativeMode()) {
|
||||||
|
bArmor.width = 42;
|
||||||
|
bArmor.x = 0;
|
||||||
|
bArmor.y = height - bArmor.height;
|
||||||
|
buttons.push_back(&bArmor);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void IngameBlockSelectionScreen::removed()
|
void IngameBlockSelectionScreen::removed()
|
||||||
@@ -132,7 +124,7 @@ void IngameBlockSelectionScreen::renderSlots()
|
|||||||
//w.printEvery(1000, "render-blocksel");
|
//w.printEvery(1000, "render-blocksel");
|
||||||
|
|
||||||
glDisable2(GL_RESCALE_NORMAL);
|
glDisable2(GL_RESCALE_NORMAL);
|
||||||
Lighting::turnOff();
|
Lighting::turnOn(minecraft);
|
||||||
}
|
}
|
||||||
|
|
||||||
int IngameBlockSelectionScreen::getSlotPosX(int slotX) {
|
int IngameBlockSelectionScreen::getSlotPosX(int slotX) {
|
||||||
@@ -257,7 +249,7 @@ void IngameBlockSelectionScreen::mouseClicked(int x, int y, int buttonNum)
|
|||||||
//minecraft->soundEngine->playUI("random.click", 1, 1);
|
//minecraft->soundEngine->playUI("random.click", 1, 1);
|
||||||
} else {
|
} else {
|
||||||
_pendingQuit = !_area.isInside((float)x, (float)y)
|
_pendingQuit = !_area.isInside((float)x, (float)y)
|
||||||
&& !bArmor.isInside(x, y) && !bCrafting.isInside(x, y);
|
&& !bArmor.isInside(x, y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!_pendingQuit)
|
if (!_pendingQuit)
|
||||||
@@ -346,8 +338,5 @@ void IngameBlockSelectionScreen::buttonClicked( Button* button )
|
|||||||
if (button == &bArmor) {
|
if (button == &bArmor) {
|
||||||
minecraft->setScreen(new ArmorScreen());
|
minecraft->setScreen(new ArmorScreen());
|
||||||
}
|
}
|
||||||
if (button == &bCrafting) {
|
|
||||||
minecraft->setScreen(new WorkbenchScreen(Recipe::SIZE_2X2));
|
|
||||||
}
|
|
||||||
super::buttonClicked(button);
|
super::buttonClicked(button);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,7 +52,6 @@ private:
|
|||||||
bool _pendingQuit;
|
bool _pendingQuit;
|
||||||
|
|
||||||
Button bArmor;
|
Button bArmor;
|
||||||
Button bCrafting;
|
|
||||||
|
|
||||||
RectangleArea _area;
|
RectangleArea _area;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -121,6 +121,7 @@ void OptionsScreen::setupPositions() {
|
|||||||
(*it)->x = categoryButtons[0]->width;
|
(*it)->x = categoryButtons[0]->width;
|
||||||
(*it)->y = bHeader->height;
|
(*it)->y = bHeader->height;
|
||||||
(*it)->width = width - categoryButtons[0]->width;
|
(*it)->width = width - categoryButtons[0]->width;
|
||||||
|
(*it)->height = height - bHeader->height;
|
||||||
|
|
||||||
(*it)->setupPositions();
|
(*it)->setupPositions();
|
||||||
}
|
}
|
||||||
@@ -197,7 +198,6 @@ void OptionsScreen::generateOptionScreens() {
|
|||||||
optionPanes[1]->addOptionItem(OPTIONS_DIFFICULTY, minecraft)
|
optionPanes[1]->addOptionItem(OPTIONS_DIFFICULTY, minecraft)
|
||||||
.addOptionItem(OPTIONS_SERVER_VISIBLE, minecraft)
|
.addOptionItem(OPTIONS_SERVER_VISIBLE, minecraft)
|
||||||
.addOptionItem(OPTIONS_THIRD_PERSON_VIEW, minecraft)
|
.addOptionItem(OPTIONS_THIRD_PERSON_VIEW, minecraft)
|
||||||
.addOptionItem(OPTIONS_WINDOW_SCALE, minecraft)
|
|
||||||
.addOptionItem(OPTIONS_GUI_SCALE, minecraft)
|
.addOptionItem(OPTIONS_GUI_SCALE, minecraft)
|
||||||
.addOptionItem(OPTIONS_SENSITIVITY, minecraft)
|
.addOptionItem(OPTIONS_SENSITIVITY, minecraft)
|
||||||
.addOptionItem(OPTIONS_MUSIC_VOLUME, minecraft)
|
.addOptionItem(OPTIONS_MUSIC_VOLUME, minecraft)
|
||||||
@@ -224,7 +224,6 @@ void OptionsScreen::generateOptionScreens() {
|
|||||||
// .addOptionItem(&Option::ANAGLYPH, minecraft)
|
// .addOptionItem(&Option::ANAGLYPH, minecraft)
|
||||||
.addOptionItem(OPTIONS_LIMIT_FRAMERATE, minecraft)
|
.addOptionItem(OPTIONS_LIMIT_FRAMERATE, minecraft)
|
||||||
.addOptionItem(OPTIONS_VSYNC, minecraft)
|
.addOptionItem(OPTIONS_VSYNC, minecraft)
|
||||||
.addOptionItem(OPTIONS_VIEW_DISTANCE, minecraft)
|
|
||||||
.addOptionItem(OPTIONS_RENDER_DEBUG, minecraft)
|
.addOptionItem(OPTIONS_RENDER_DEBUG, minecraft)
|
||||||
.addOptionItem(OPTIONS_ANAGLYPH_3D, minecraft)
|
.addOptionItem(OPTIONS_ANAGLYPH_3D, minecraft)
|
||||||
.addOptionItem(OPTIONS_VIEW_BOBBING, minecraft)
|
.addOptionItem(OPTIONS_VIEW_BOBBING, minecraft)
|
||||||
@@ -235,7 +234,6 @@ void OptionsScreen::generateOptionScreens() {
|
|||||||
|
|
||||||
optionPanes[4]->addOptionItem(OPTIONS_ALLOW_SPRINT, minecraft)
|
optionPanes[4]->addOptionItem(OPTIONS_ALLOW_SPRINT, minecraft)
|
||||||
.addOptionItem(OPTIONS_BAR_ON_TOP, minecraft)
|
.addOptionItem(OPTIONS_BAR_ON_TOP, minecraft)
|
||||||
.addOptionItem(OPTIONS_MENU_STYLE, minecraft)
|
|
||||||
.addOptionItem(OPTIONS_RPI_CURSOR, minecraft)
|
.addOptionItem(OPTIONS_RPI_CURSOR, minecraft)
|
||||||
.addOptionItem(OPTIONS_FOLIAGE_TINT, minecraft)
|
.addOptionItem(OPTIONS_FOLIAGE_TINT, minecraft)
|
||||||
.addOptionItem(OPTIONS_TINTED_SIDE, minecraft)
|
.addOptionItem(OPTIONS_TINTED_SIDE, minecraft)
|
||||||
@@ -261,6 +259,12 @@ void OptionsScreen::mouseReleased(int x, int y, int buttonNum) {
|
|||||||
super::mouseReleased(x, y, buttonNum);
|
super::mouseReleased(x, y, buttonNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OptionsScreen::mouseWheel(int dx, int dy, int xm, int ym) {
|
||||||
|
if (currentOptionsGroup != NULL && currentOptionsGroup->pointInside(xm, ym) && dy != 0) {
|
||||||
|
currentOptionsGroup->scrollByPixels((float)dy * 18.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void OptionsScreen::keyPressed(int eventKey) {
|
void OptionsScreen::keyPressed(int eventKey) {
|
||||||
if (currentOptionsGroup != NULL)
|
if (currentOptionsGroup != NULL)
|
||||||
currentOptionsGroup->keyPressed(minecraft, eventKey);
|
currentOptionsGroup->keyPressed(minecraft, eventKey);
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ public:
|
|||||||
|
|
||||||
virtual void mouseClicked(int x, int y, int buttonNum);
|
virtual void mouseClicked(int x, int y, int buttonNum);
|
||||||
virtual void mouseReleased(int x, int y, int buttonNum);
|
virtual void mouseReleased(int x, int y, int buttonNum);
|
||||||
|
virtual void mouseWheel(int dx, int dy, int xm, int ym);
|
||||||
virtual void keyPressed(int eventKey);
|
virtual void keyPressed(int eventKey);
|
||||||
virtual void charPressed(char inputChar);
|
virtual void charPressed(char inputChar);
|
||||||
|
|
||||||
|
|||||||
@@ -48,27 +48,20 @@ PauseScreen::~PauseScreen() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void PauseScreen::init() {
|
void PauseScreen::init() {
|
||||||
if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 0) {
|
if (/* minecraft->useTouchscreen() */ true) {
|
||||||
bContinue = new Touch::TButton(1, "Back to game");
|
bContinue = new Touch::TButton(1, "Back to game");
|
||||||
bOptions = new Touch::TButton(5, "Options");
|
bOptions = new Touch::TButton(5, "Options");
|
||||||
bQuit = new Touch::TButton(2, "Quit to title");
|
bQuit = new Touch::TButton(2, "Quit to title");
|
||||||
bQuitAndSaveLocally = new Touch::TButton(3, "Quit and copy map");
|
bQuitAndSaveLocally = new Touch::TButton(3, "Quit and copy map");
|
||||||
bServerVisibility = new Touch::TButton(4, "");
|
bServerVisibility = new Touch::TButton(4, "");
|
||||||
// bThirdPerson = new Touch::TButton(5, "Toggle 3:rd person view");
|
// bThirdPerson = new Touch::TButton(5, "Toggle 3:rd person view");
|
||||||
} else if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 1) {
|
} else {
|
||||||
bContinue = new Button(1, "Back to game");
|
bContinue = new Button(1, "Back to game");
|
||||||
bOptions = new Button(5, "Options");
|
bOptions = new Button(5, "Options");
|
||||||
bQuit = new Button(2, "Quit to title");
|
bQuit = new Button(2, "Quit to title");
|
||||||
bQuitAndSaveLocally = new Button(3, "Quit and copy map");
|
bQuitAndSaveLocally = new Button(3, "Quit and copy map");
|
||||||
bServerVisibility = new Button(4, "");
|
bServerVisibility = new Button(4, "");
|
||||||
// bThirdPerson = new Button(5, "Toggle 3:rd person view");
|
// bThirdPerson = new Button(5, "Toggle 3:rd person view");
|
||||||
} else {
|
|
||||||
bContinue = new Button(1, 0, 0, 200, 20, "Back to game");
|
|
||||||
bServerVisibility = new Button(4, 0, 0, 200, 20, "");
|
|
||||||
bOptions = new Button(5, 0, 0, 200, 20, "Options...");
|
|
||||||
bQuit = new Button(2, 0, 0, 200, 20, "Save and quit to title");
|
|
||||||
bQuitAndSaveLocally = new Button(3, 0, 0, 200, 20, "Copy and quit map");
|
|
||||||
// bThirdPerson = new Button(5, "Toggle 3:rd person view");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
buttons.push_back(bContinue);
|
buttons.push_back(bContinue);
|
||||||
@@ -112,25 +105,7 @@ void PauseScreen::init() {
|
|||||||
void PauseScreen::setupPositions() {
|
void PauseScreen::setupPositions() {
|
||||||
saveStep = 0;
|
saveStep = 0;
|
||||||
int yBase = 16;
|
int yBase = 16;
|
||||||
if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 2){
|
|
||||||
yBase = 50;
|
|
||||||
|
|
||||||
bContinue->width = bOptions->width = bQuit->width = /*bThirdPerson->w =*/ 200;
|
|
||||||
bQuitAndSaveLocally->width = bServerVisibility->width = 200;
|
|
||||||
|
|
||||||
bContinue->x = (width - bContinue->width) / 2;
|
|
||||||
bContinue->y = yBase + 24 * 1;
|
|
||||||
|
|
||||||
bQuitAndSaveLocally->x = bServerVisibility->x = (width - bQuitAndSaveLocally->width) / 2;
|
|
||||||
bQuitAndSaveLocally->y = bServerVisibility->y = yBase + 24 * 2;
|
|
||||||
|
|
||||||
bOptions->x = (width - bOptions->width) / 2;
|
|
||||||
bOptions->y = yBase + 24 * 3 + 24;
|
|
||||||
|
|
||||||
bQuit->x = (width - bQuit->width) / 2;
|
|
||||||
bQuit->y = yBase + 24 * 4 + 24;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
bContinue->width = bOptions->width = bQuit->width = /*bThirdPerson->w =*/ 160;
|
bContinue->width = bOptions->width = bQuit->width = /*bThirdPerson->w =*/ 160;
|
||||||
bQuitAndSaveLocally->width = bServerVisibility->width = 160;
|
bQuitAndSaveLocally->width = bServerVisibility->width = 160;
|
||||||
|
|
||||||
@@ -149,9 +124,6 @@ void PauseScreen::setupPositions() {
|
|||||||
|
|
||||||
bQuitAndSaveLocally->x = bServerVisibility->x = (width - bQuitAndSaveLocally->width) / 2;
|
bQuitAndSaveLocally->x = bServerVisibility->x = (width - bQuitAndSaveLocally->width) / 2;
|
||||||
bQuitAndSaveLocally->y = bServerVisibility->y = yBase + 32 * 4;
|
bQuitAndSaveLocally->y = bServerVisibility->y = yBase + 32 * 4;
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// bSound.y = bThirdPerson.y = 8;
|
// bSound.y = bThirdPerson.y = 8;
|
||||||
// bSound.x = 4;
|
// bSound.x = 4;
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ Screen* ScreenChooser::createScreen( ScreenId id )
|
|||||||
Screen* screen = NULL;
|
Screen* screen = NULL;
|
||||||
|
|
||||||
// :sob:
|
// :sob:
|
||||||
if (_mc->options.getIntValue(OPTIONS_MENU_STYLE) == 0) {
|
if (/* _mc->useTouchscreen() */ true) {
|
||||||
switch (id) {
|
switch (id) {
|
||||||
case SCREEN_STARTMENU: screen = new Touch::StartMenuScreen(); break;
|
case SCREEN_STARTMENU: screen = new Touch::StartMenuScreen(); break;
|
||||||
case SCREEN_SELECTWORLD: screen = new Touch::SelectWorldScreen();break;
|
case SCREEN_SELECTWORLD: screen = new Touch::SelectWorldScreen();break;
|
||||||
|
|||||||
@@ -23,62 +23,49 @@
|
|||||||
|
|
||||||
// Some kind of default settings, might be overridden in ::init
|
// Some kind of default settings, might be overridden in ::init
|
||||||
StartMenuScreen::StartMenuScreen()
|
StartMenuScreen::StartMenuScreen()
|
||||||
|
: bHost( 2, 0, 0, 160, 24, "Start Game"),
|
||||||
|
bJoin( 3, 0, 0, 160, 24, "Join Game"),
|
||||||
|
bOptions( 4, 0, 0, 160, 24, "Options"),
|
||||||
|
bQuit( 5, "")
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
StartMenuScreen::~StartMenuScreen()
|
StartMenuScreen::~StartMenuScreen()
|
||||||
{
|
{
|
||||||
delete bHost;
|
|
||||||
delete bJoin;
|
|
||||||
delete bOptions;
|
|
||||||
delete bQuit;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void StartMenuScreen::init()
|
void StartMenuScreen::init()
|
||||||
{
|
{
|
||||||
if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 2){
|
bJoin.active = bHost.active = bOptions.active = true;
|
||||||
bHost = new Button( 2, 0, 0, 200, 20, "Singleplayer");
|
|
||||||
bJoin = new Button( 3, 0, 0, 200, 20, "Multiplayer");
|
|
||||||
bOptions = new Button( 4, 0, 0, 200, 20, "Options...");
|
|
||||||
bQuit = new Button( 5, 0, 0, 200, 20, "Ouit Game");
|
|
||||||
} else {
|
|
||||||
bHost = new Button( 2, 0, 0, 160, 24, "Start Game");
|
|
||||||
bJoin = new Button( 3, 0, 0, 160, 24, "Join Game");
|
|
||||||
bOptions = new Button( 4, 0, 0, 160, 24, "Options");
|
|
||||||
bQuit = new Button( 5, 0, 0, 160, 24, "Ouit Game");
|
|
||||||
}
|
|
||||||
bJoin->active = bHost->active = bOptions->active = true;
|
|
||||||
|
|
||||||
if (minecraft->options.getStringValue(OPTIONS_USERNAME).empty()) {
|
if (minecraft->options.getStringValue(OPTIONS_USERNAME).empty()) {
|
||||||
return; // tick() will redirect to UsernameScreen
|
return; // tick() will redirect to UsernameScreen
|
||||||
}
|
}
|
||||||
|
|
||||||
buttons.push_back(bHost);
|
buttons.push_back(&bHost);
|
||||||
buttons.push_back(bJoin);
|
buttons.push_back(&bJoin);
|
||||||
//buttons.push_back(&bTest);
|
//buttons.push_back(&bTest);
|
||||||
buttons.push_back(bQuit);
|
|
||||||
|
|
||||||
tabButtons.push_back(bHost);
|
tabButtons.push_back(&bHost);
|
||||||
tabButtons.push_back(bJoin);
|
tabButtons.push_back(&bJoin);
|
||||||
tabButtons.push_back(bQuit);
|
|
||||||
|
|
||||||
#ifndef RPI
|
#ifndef RPI
|
||||||
buttons.push_back(bOptions);
|
buttons.push_back(&bOptions);
|
||||||
tabButtons.push_back(bOptions);
|
tabButtons.push_back(&bOptions);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//// add quit button (top right X icon) – match OptionsScreen style
|
// add quit button (top right X icon) – match OptionsScreen style
|
||||||
//{
|
{
|
||||||
// ImageDef def;
|
ImageDef def;
|
||||||
// def.name = "gui/touchgui.png";
|
def.name = "gui/touchgui.png";
|
||||||
// def.width = 34;
|
def.width = 34;
|
||||||
// def.height = 26;
|
def.height = 26;
|
||||||
// def.setSrc(IntRectangle(150, 0, (int)def.width, (int)def.height));
|
def.setSrc(IntRectangle(150, 0, (int)def.width, (int)def.height));
|
||||||
// bQuit.setImageDef(def, true);
|
bQuit.setImageDef(def, true);
|
||||||
// bQuit.scaleWhenPressed = false;
|
bQuit.scaleWhenPressed = false;
|
||||||
// buttons.push_back(&bQuit);
|
buttons.push_back(&bQuit);
|
||||||
// // don't include in tab navigation
|
// don't include in tab navigation
|
||||||
//}
|
}
|
||||||
|
|
||||||
copyright = "\xffMojang AB";//. Do not distribute!";
|
copyright = "\xffMojang AB";//. Do not distribute!";
|
||||||
|
|
||||||
@@ -106,30 +93,20 @@ void StartMenuScreen::init()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void StartMenuScreen::setupPositions() {
|
void StartMenuScreen::setupPositions() {
|
||||||
if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 2){
|
|
||||||
int yBase = (height / 2) - 20;
|
|
||||||
|
|
||||||
bHost->y = yBase;
|
|
||||||
bJoin->y = bHost->y + 24;
|
|
||||||
bOptions->y = bJoin->y + 24;
|
|
||||||
bQuit->y = bOptions->y + 24;
|
|
||||||
} else {
|
|
||||||
int yBase = height / 2;
|
int yBase = height / 2;
|
||||||
bHost->y = yBase;
|
|
||||||
bJoin->y = bHost->y + 24 + 4;
|
bHost.y = yBase;
|
||||||
bOptions->y = bJoin->y + 24 + 4;
|
bJoin.y = bHost.y + 24 + 4;
|
||||||
bQuit->y = bOptions->y + 24 + 4;
|
bOptions.y = bJoin.y + 24 + 4;
|
||||||
}
|
|
||||||
|
|
||||||
// Center buttons
|
// Center buttons
|
||||||
bHost->x = (width - bHost->width) / 2;
|
bHost.x = (width - bHost.width) / 2;
|
||||||
bJoin->x = (width - bJoin->width) / 2;
|
bJoin.x = (width - bJoin.width) / 2;
|
||||||
bOptions->x = (width - bOptions->width) / 2;
|
bOptions.x = (width - bOptions.width) / 2;
|
||||||
bQuit->x = (width - bQuit->width) / 2;
|
|
||||||
|
|
||||||
//// position quit icon at top-right (use image-defined size)
|
// position quit icon at top-right (use image-defined size)
|
||||||
//bQuit.x = width - bQuit.width;
|
bQuit.x = width - bQuit.width;
|
||||||
//bQuit.y = 0;
|
bQuit.y = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void StartMenuScreen::tick() {
|
void StartMenuScreen::tick() {
|
||||||
@@ -137,7 +114,7 @@ void StartMenuScreen::tick() {
|
|||||||
|
|
||||||
void StartMenuScreen::buttonClicked(Button* button) {
|
void StartMenuScreen::buttonClicked(Button* button) {
|
||||||
|
|
||||||
if (button->id == bHost->id)
|
if (button->id == bHost.id)
|
||||||
{
|
{
|
||||||
#if defined(DEMO_MODE) || defined(APPLE_DEMO_PROMOTION)
|
#if defined(DEMO_MODE) || defined(APPLE_DEMO_PROMOTION)
|
||||||
minecraft->setScreen( new SimpleChooseLevelScreen("_DemoLevel") );
|
minecraft->setScreen( new SimpleChooseLevelScreen("_DemoLevel") );
|
||||||
@@ -145,16 +122,16 @@ void StartMenuScreen::buttonClicked(Button* button) {
|
|||||||
minecraft->screenChooser.setScreen(SCREEN_SELECTWORLD);
|
minecraft->screenChooser.setScreen(SCREEN_SELECTWORLD);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
if (button->id == bJoin->id)
|
if (button->id == bJoin.id)
|
||||||
{
|
{
|
||||||
minecraft->locateMultiplayer();
|
minecraft->locateMultiplayer();
|
||||||
minecraft->screenChooser.setScreen(SCREEN_JOINGAME);
|
minecraft->screenChooser.setScreen(SCREEN_JOINGAME);
|
||||||
}
|
}
|
||||||
if (button->id == bOptions->id)
|
if (button->id == bOptions.id)
|
||||||
{
|
{
|
||||||
minecraft->setScreen(new OptionsScreen());
|
minecraft->setScreen(new OptionsScreen());
|
||||||
}
|
}
|
||||||
if (button->id == bQuit->id)
|
if (button == &bQuit)
|
||||||
{
|
{
|
||||||
minecraft->quit();
|
minecraft->quit();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,10 +23,10 @@ public:
|
|||||||
bool isInGameScreen();
|
bool isInGameScreen();
|
||||||
private:
|
private:
|
||||||
|
|
||||||
Button* bHost;
|
Button bHost;
|
||||||
Button* bJoin;
|
Button bJoin;
|
||||||
Button* bOptions;
|
Button bOptions;
|
||||||
Button* bQuit;
|
ImageButton bQuit; // X button in top-right corner
|
||||||
|
|
||||||
std::string copyright;
|
std::string copyright;
|
||||||
int copyrightPosX;
|
int copyrightPosX;
|
||||||
|
|||||||
@@ -101,15 +101,6 @@ void GameRenderer::setupCamera(float a, int eye) {
|
|||||||
|
|
||||||
float stereoScale = 0.07f;
|
float stereoScale = 0.07f;
|
||||||
if (mc->options.getBooleanValue(OPTIONS_ANAGLYPH_3D)) glTranslatef2(-(eye * 2 - 1) * stereoScale, 0, 0);
|
if (mc->options.getBooleanValue(OPTIONS_ANAGLYPH_3D)) glTranslatef2(-(eye * 2 - 1) * stereoScale, 0, 0);
|
||||||
if (mc->options.getBooleanValue(OPTIONS_BETA_SKY)){
|
|
||||||
if (zoom != 1) {
|
|
||||||
glTranslatef2((float) zoom_x, (float) -zoom_y, 0);
|
|
||||||
glScalef2(zoom, zoom, 1);
|
|
||||||
gluPerspective(_setupCameraFov = getFov(a, true), mc->width / (float) mc->height, 0.05f, renderDistance * 2.0f);
|
|
||||||
} else {
|
|
||||||
gluPerspective(_setupCameraFov = getFov(a, true), mc->width / (float) mc->height, 0.05f, renderDistance * 2.0f);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (zoom != 1) {
|
if (zoom != 1) {
|
||||||
glTranslatef2((float) zoom_x, (float) -zoom_y, 0);
|
glTranslatef2((float) zoom_x, (float) -zoom_y, 0);
|
||||||
glScalef2(zoom, zoom, 1);
|
glScalef2(zoom, zoom, 1);
|
||||||
@@ -117,7 +108,6 @@ void GameRenderer::setupCamera(float a, int eye) {
|
|||||||
} else {
|
} else {
|
||||||
gluPerspective(_setupCameraFov = getFov(a, true), mc->width / (float) mc->height, 0.05f, renderDistance);
|
gluPerspective(_setupCameraFov = getFov(a, true), mc->width / (float) mc->height, 0.05f, renderDistance);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
glMatrixMode(GL_MODELVIEW);
|
||||||
glLoadIdentity2();
|
glLoadIdentity2();
|
||||||
@@ -350,11 +340,9 @@ void GameRenderer::renderLevel(float a) {
|
|||||||
setupFog(0);
|
setupFog(0);
|
||||||
glEnable2(GL_BLEND);
|
glEnable2(GL_BLEND);
|
||||||
glDisable2(GL_CULL_FACE);
|
glDisable2(GL_CULL_FACE);
|
||||||
glDepthMask(GL_FALSE); // @TODO commenting this out fixes Ice transparency and clouds are no longer visilbe underwater like normal beta - shredder
|
glDepthMask(GL_FALSE);
|
||||||
glDisable2(GL_ALPHA_TEST);
|
glDisable2(GL_ALPHA_TEST);
|
||||||
mc->textures->loadAndBindTexture("terrain.png");
|
mc->textures->loadAndBindTexture("terrain.png");
|
||||||
// @TODO - below is a commented out double render system that fixes ice transparency, but probs harm performance, add it as an option - shredder
|
|
||||||
|
|
||||||
//if (mc->options.fancyGraphics) {
|
//if (mc->options.fancyGraphics) {
|
||||||
// glColorMask(false, false, false, false);
|
// glColorMask(false, false, false, false);
|
||||||
// int visibleWaterChunks = levelRenderer->render(cameraEntity, 1, a);
|
// int visibleWaterChunks = levelRenderer->render(cameraEntity, 1, a);
|
||||||
@@ -689,7 +677,7 @@ void GameRenderer::pick(float a) {
|
|||||||
float range = mc->gameMode->getPickRange();
|
float range = mc->gameMode->getPickRange();
|
||||||
bool isPicking = true;
|
bool isPicking = true;
|
||||||
|
|
||||||
bool freeform = mc->useTouchscreen() && !mc->options.getBooleanValue(OPTIONS_IS_JOY_TOUCH_AREA);
|
bool freeform = mc->useTouchscreen(); //&& !mc->options.getBooleanValue(OPTIONS_IS_JOY_TOUCH_AREA);
|
||||||
|
|
||||||
if (freeform) {
|
if (freeform) {
|
||||||
isPicking = updateFreeformPickDirection(a, pickDirection);
|
isPicking = updateFreeformPickDirection(a, pickDirection);
|
||||||
|
|||||||
@@ -26,7 +26,6 @@
|
|||||||
#include "../../client/player/LocalPlayer.h"
|
#include "../../client/player/LocalPlayer.h"
|
||||||
|
|
||||||
#include "../../world/level/GrassColor.h"
|
#include "../../world/level/GrassColor.h"
|
||||||
#include "Lighting.h"
|
|
||||||
|
|
||||||
#ifdef GFX_SMALLER_CHUNKS
|
#ifdef GFX_SMALLER_CHUNKS
|
||||||
/* static */ const int LevelRenderer::CHUNK_SIZE = 8;
|
/* static */ const int LevelRenderer::CHUNK_SIZE = 8;
|
||||||
@@ -576,7 +575,7 @@ void LevelRenderer::render(const AABB& b) const
|
|||||||
// t.color(255, 255, 255, 255); // again not needed, for some reason the vanilla source code tints it... white? maybe this was used for something else in MCPE's dev at one point? - shredder
|
// t.color(255, 255, 255, 255); // again not needed, for some reason the vanilla source code tints it... white? maybe this was used for something else in MCPE's dev at one point? - shredder
|
||||||
|
|
||||||
// t.offset(((Mob*)mc->player)->getPos(0).negated()); // why does this even exist normally, it just makes the thing... not render
|
// t.offset(((Mob*)mc->player)->getPos(0).negated()); // why does this even exist normally, it just makes the thing... not render
|
||||||
glLineWidth(2.0f); // make it more thick - shredder
|
|
||||||
t.begin(GL_LINE_STRIP);
|
t.begin(GL_LINE_STRIP);
|
||||||
t.vertex(b.x0, b.y0, b.z0);
|
t.vertex(b.x0, b.y0, b.z0);
|
||||||
t.vertex(b.x1, b.y0, b.z0);
|
t.vertex(b.x1, b.y0, b.z0);
|
||||||
@@ -1158,22 +1157,23 @@ void LevelRenderer::renderSky(float alpha) {
|
|||||||
glDisable(GL_FOG);
|
glDisable(GL_FOG);
|
||||||
glDisable(GL_ALPHA_TEST);
|
glDisable(GL_ALPHA_TEST);
|
||||||
|
|
||||||
// re ported this again from beta 1.6.6, thanks to the mcpe 0.1 decomp team's code for some bit of help about the void layer - shredder
|
// thanks to the mcpe 0.1 decomp project a bit for this part, was not getting the gl states correctly, gles is painful - shredder
|
||||||
|
|
||||||
// Sunrise
|
// Sunrise
|
||||||
if (mc->options.getBooleanValue(OPTIONS_BEAUTIFUL_SKY)) {
|
if (mc->options.getBooleanValue(OPTIONS_BEAUTIFUL_SKY)) {
|
||||||
glEnable(GL_BLEND);
|
glEnable(GL_BLEND);
|
||||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
Lighting::turnOff();
|
|
||||||
float* c = level->dimension->getSunriseColor(level->getTimeOfDay(alpha), alpha);
|
float* c = level->dimension->getSunriseColor(level->getTimeOfDay(alpha), alpha);
|
||||||
if (c != nullptr)
|
if (c != nullptr)
|
||||||
{
|
{
|
||||||
glDisable(GL_TEXTURE_2D);
|
glDisable(GL_TEXTURE_2D);
|
||||||
// glShadeModel(GL_SMOOTH); //
|
|
||||||
|
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glRotatef(90.0f, 1.0f, 0.0f, 0.0f);
|
glRotatef(90.0f, 1.0f, 0.0f, 0.0f);
|
||||||
glRotatef(level->getTimeOfDay(alpha) > 0.5f ? 180 : 0, 0.0f, 0.0f, 1.0f);
|
glRotatef(level->getTimeOfDay(alpha) > 0.5f ? 180 : 0, 0.0f, 0.0f, 1.0f);
|
||||||
|
|
||||||
t.begin(GL_TRIANGLE_FAN);
|
t.begin(GL_TRIANGLE_FAN);
|
||||||
t.color(c[0], c[1], c[2], c[3]);
|
t.color(c[0], c[1], c[2], c[3]);
|
||||||
t.vertex(0.0f, 100.0f, 0.0f);
|
t.vertex(0.0f, 100.0f, 0.0f);
|
||||||
@@ -1190,12 +1190,11 @@ void LevelRenderer::renderSky(float alpha) {
|
|||||||
|
|
||||||
t.draw();
|
t.draw();
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
// glShadeModel(GL_FLAT); //
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// gets the time of day and rotates the sun and moon png based on the time
|
// gets the time of day and rotates the sun and moon png based on the time
|
||||||
glEnable(GL_TEXTURE_2D);
|
glEnable(GL_TEXTURE_2D);
|
||||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
|
glBlendFunc(GL_ONE, GL_ONE);
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
|
|
||||||
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
|
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
|
||||||
@@ -1327,8 +1326,8 @@ void LevelRenderer::renderAdvancedClouds(float alpha) {
|
|||||||
|
|
||||||
float cloudTime = (float)ticks + alpha;
|
float cloudTime = (float)ticks + alpha;
|
||||||
|
|
||||||
float xo = (px + cloudTime * 0.03f) / ss;
|
double xo = (px + cloudTime * 0.03f) / ss;
|
||||||
float zo = pz / ss + 0.33f;
|
double zo = pz / ss + 0.33f;
|
||||||
|
|
||||||
float yy = 108.0f - py + 0.33f;
|
float yy = 108.0f - py + 0.33f;
|
||||||
|
|
||||||
|
|||||||
@@ -130,9 +130,10 @@ void EntityRenderer::postRender(Entity* entity, float x, float y, float z, float
|
|||||||
if (pow > 0) {
|
if (pow > 0) {
|
||||||
renderShadow(entity, x, y, z, pow, a);
|
renderShadow(entity, x, y, z, pow, a);
|
||||||
}
|
}
|
||||||
}
|
//}
|
||||||
if (entity->isOnFire()) renderFlame(entity, x, y, z, a);
|
if (entity->isOnFire()) renderFlame(entity, x, y, z, a);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
void EntityRenderer::renderFlame(Entity* e, float x, float y, float z, float a) {
|
void EntityRenderer::renderFlame(Entity* e, float x, float y, float z, float a) {
|
||||||
glDisable(GL_LIGHTING);
|
glDisable(GL_LIGHTING);
|
||||||
int tex = ((Tile*)Tile::fire)->tex;
|
int tex = ((Tile*)Tile::fire)->tex;
|
||||||
@@ -186,12 +187,8 @@ void EntityRenderer::renderShadow(Entity* e, float x, float y, float z, float po
|
|||||||
//Textures* textures = entityRenderDispatcher->textures;
|
//Textures* textures = entityRenderDispatcher->textures;
|
||||||
//textures->bind(textures->loadTexture("%clamp%/environment/shadow.png"));
|
//textures->bind(textures->loadTexture("%clamp%/environment/shadow.png"));
|
||||||
Textures* textures = entityRenderDispatcher->textures;
|
Textures* textures = entityRenderDispatcher->textures;
|
||||||
textures->loadAndBindTexture("/misc/shadow.png");
|
|
||||||
|
|
||||||
|
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Level* level = getLevel();
|
Level* level = getLevel();
|
||||||
@@ -224,6 +221,9 @@ void EntityRenderer::renderShadow(Entity* e, float x, float y, float z, float po
|
|||||||
renderTileShadow(Tile::tiles[t], x, y + e->getShadowHeightOffs(), z, xt, yt, zt, pow, r, xo, yo + e->getShadowHeightOffs(), zo);
|
renderTileShadow(Tile::tiles[t], x, y + e->getShadowHeightOffs(), z, xt, yt, zt, pow, r, xo, yo + e->getShadowHeightOffs(), zo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
textures->loadAndBindTexture(("/misc/shadow.png"));
|
||||||
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
||||||
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
||||||
tt.draw();
|
tt.draw();
|
||||||
|
|
||||||
glColor4f2(1, 1, 1, 1);
|
glColor4f2(1, 1, 1, 1);
|
||||||
|
|||||||
@@ -130,12 +130,13 @@ static const signed short _18[] = {79, 80, 81, -1, 79, 80, 81, -1, 79, 80, 81, -
|
|||||||
static const signed short _24[] = {11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
|
static const signed short _24[] = {11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
|
||||||
static const signed short _35[] = {52, 59, 58, 57, 56, 55, 54, 53, 67, 66, 65, 64, 63, 62, 61, 60};
|
static const signed short _35[] = {52, 59, 58, 57, 56, 55, 54, 53, 67, 66, 65, 64, 63, 62, 61, 60};
|
||||||
static const signed short _44[] = {28, 32, 30, 29, 31, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
|
static const signed short _44[] = {28, 32, 30, 29, 31, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
|
||||||
|
static const signed short _31[] = {37, 82, -1, 38, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
|
||||||
static const signed short _98[] = {1, 2, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
|
static const signed short _98[] = {1, 2, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
|
||||||
static const signed short _155[] = {34, 36, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
|
static const signed short _155[] = {34, 36, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
|
||||||
static const signed short _263[] = {230, 151, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
|
static const signed short _263[] = {230, 151, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
|
||||||
static const signed short _351[] = {-1, 152, 154, -1, 193, 215, 216, -1, -1, 217, 218, 219, 220, 221, 222, 144};
|
static const signed short _351[] = {-1, 152, 154, -1, 193, 215, 216, -1, -1, 217, 218, 219, 220, 221, 222, 144};
|
||||||
|
|
||||||
static const signed short _mapper[] = {-1, 7, 9, 8, 0, 5, -2, -1, -1, -1, -1, -1, 14, 15, 39, 38, 37, -2, -2, -1, 49, 41, 46, -1, -2, -1, -1, -1, -1, -1, 235, -1, -1, -1, -1, -2, -1, 134, 135, 136, 137, 43, 44, -1, -2, 6, 76, 71, 4, 47, 129, -1, -1, 22, 74, -1, 40, 45, 72, -1, -1, 75, -1, -1, -1, 128, -1, 21, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, 48, 77, 10, 236, -1, 69, -1, 20, -1, 50, -1, -1, -1, -1, -1, -1, 68, -1, -2, -1, -1, -1, 130, 78, -1, -1, -1, 70, 23, 25, -1, -1, 19, -1, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 73, -1, 51, -1, -1, -1, -1, -1, 82, -1, -1, 174, 173, 175, 231, 234, 147, 190, -2, 153, 150, 149, 146, 185, 166, 164, 167, 186, 170, 169, 171, 187, 177, 176, 178, 165, 195, 194, 188, 181, 180, 182, 189, 191, 228, 168, 172, 145, 179, 183, 142, 233, 232, 198, 200, 201, 202, -1, -1, -1, -1, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 192, 156, 157, 133, -1, 148, 131, -1, -1, -1, -1, -1, -1, -1, 226, -1, 199, -1, 159, 158, 138, 224, 225, -1, -1, -1, -1, -1, -1, -1, 227, -1, -1, -2, 223, 229, -1, 132, -1, -1, -1, 184, 196, -1, 143, 160, 161, 162, 163, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 155, 197};
|
static const signed short _mapper[] = {-1, 7, 9, 8, 0, 5, -2, -1, -1, -1, -1, -1, 14, 15, 39, 38, 37, -2, -2, -1, 49, 41, 46, -1, -2, -1, -1, -1, -1, -1, 235, -2, -1, -1, -1, -2, -1, 134, 135, 136, 137, 43, 44, -1, -2, 6, 76, 71, 4, 47, 129, -1, -1, 22, 74, -1, 40, 45, 72, -1, -1, 75, -1, -1, -1, 128, -1, 21, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, 48, 77, 10, 236, -1, 69, -1, 20, -1, 50, -1, -1, -1, -1, -1, -1, 68, -1, -2, -1, -1, -1, 130, 78, -1, -1, -1, 70, 23, 25, -1, -1, 19, -1, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 73, -1, 51, -1, -1, -1, -1, -1, 82, -1, -1, 174, 173, 175, 231, 234, 147, 190, -2, 153, 150, 149, 146, 185, 166, 164, 167, 186, 170, 169, 171, 187, 177, 176, 178, 165, 195, 194, 188, 181, 180, 182, 189, 191, 228, 168, 172, 145, 179, 183, 142, 233, 232, 198, 200, 201, 202, -1, -1, -1, -1, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 192, 156, 157, 133, -1, 148, 131, -1, -1, -1, -1, -1, -1, -1, 226, -1, 199, -1, 159, 158, 138, 224, 225, -1, -1, -1, -1, -1, -1, -1, 227, -1, -1, -2, 223, 229, -1, 132, -1, -1, -1, 184, 196, -1, 143, 160, 161, 162, 163, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 155, 197};
|
||||||
|
|
||||||
#define IRMAPCASE(x) case x: return _##x [item->getAuxValue() & 15]
|
#define IRMAPCASE(x) case x: return _##x [item->getAuxValue() & 15]
|
||||||
|
|
||||||
@@ -153,6 +154,7 @@ int ItemRenderer::getAtlasPos(const ItemInstance* item) {
|
|||||||
IRMAPCASE(17);
|
IRMAPCASE(17);
|
||||||
IRMAPCASE(18);
|
IRMAPCASE(18);
|
||||||
IRMAPCASE(24);
|
IRMAPCASE(24);
|
||||||
|
IRMAPCASE(31);
|
||||||
IRMAPCASE(35);
|
IRMAPCASE(35);
|
||||||
IRMAPCASE(44);
|
IRMAPCASE(44);
|
||||||
IRMAPCASE(98);
|
IRMAPCASE(98);
|
||||||
|
|||||||
@@ -393,8 +393,8 @@ void LavaSideTexture::tick() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FireTexture::FireTexture(int id)
|
FireTexture::FireTexture()
|
||||||
: super(((Tile*)Tile::fire)->tex + id * 16),
|
: super(((Tile*)Tile::fire)->tex),
|
||||||
_tick(0),
|
_tick(0),
|
||||||
_frame(0)
|
_frame(0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ class FireTexture: public DynamicTexture
|
|||||||
float* heata;
|
float* heata;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
FireTexture(int id);
|
FireTexture();
|
||||||
~FireTexture();
|
~FireTexture();
|
||||||
|
|
||||||
void tick();
|
void tick();
|
||||||
|
|||||||
@@ -111,7 +111,6 @@
|
|||||||
#include "data/eat1.pcm"
|
#include "data/eat1.pcm"
|
||||||
#include "data/eat2.pcm"
|
#include "data/eat2.pcm"
|
||||||
#include "data/eat3.pcm"
|
#include "data/eat3.pcm"
|
||||||
#include "data/burp1.pcm"
|
|
||||||
#include "data/fuse.pcm"
|
#include "data/fuse.pcm"
|
||||||
|
|
||||||
SoundDesc SA_cloth1((char*)PCM_cloth1);
|
SoundDesc SA_cloth1((char*)PCM_cloth1);
|
||||||
@@ -222,7 +221,6 @@ SoundDesc SA_creeperdeath((char*)PCM_creeperdeath);
|
|||||||
SoundDesc SA_eat1((char*)PCM_eat1);
|
SoundDesc SA_eat1((char*)PCM_eat1);
|
||||||
SoundDesc SA_eat2((char*)PCM_eat2);
|
SoundDesc SA_eat2((char*)PCM_eat2);
|
||||||
SoundDesc SA_eat3((char*)PCM_eat3);
|
SoundDesc SA_eat3((char*)PCM_eat3);
|
||||||
SoundDesc SA_burp1((char*)PCM_burp1);
|
|
||||||
SoundDesc SA_fuse((char*)PCM_fuse);
|
SoundDesc SA_fuse((char*)PCM_fuse);
|
||||||
|
|
||||||
#endif /*!PRE_ANDROID23 && !__APPLE__*/
|
#endif /*!PRE_ANDROID23 && !__APPLE__*/
|
||||||
|
|||||||
@@ -172,7 +172,6 @@ extern SoundDesc SA_creeperdeath;
|
|||||||
extern SoundDesc SA_eat1;
|
extern SoundDesc SA_eat1;
|
||||||
extern SoundDesc SA_eat2;
|
extern SoundDesc SA_eat2;
|
||||||
extern SoundDesc SA_eat3;
|
extern SoundDesc SA_eat3;
|
||||||
extern SoundDesc SA_burp1;
|
|
||||||
extern SoundDesc SA_fuse;
|
extern SoundDesc SA_fuse;
|
||||||
|
|
||||||
#endif /*!PRE_ANDROID23 && !__APPLE__*/
|
#endif /*!PRE_ANDROID23 && !__APPLE__*/
|
||||||
|
|||||||
@@ -144,7 +144,6 @@ void SoundEngine::init( Minecraft* mc, Options* options )
|
|||||||
sounds.add("random.eat", SA_eat1);
|
sounds.add("random.eat", SA_eat1);
|
||||||
sounds.add("random.eat", SA_eat2);
|
sounds.add("random.eat", SA_eat2);
|
||||||
sounds.add("random.eat", SA_eat3);
|
sounds.add("random.eat", SA_eat3);
|
||||||
sounds.add("random.burp", SA_burp1);
|
|
||||||
sounds.add("random.fuse", SA_fuse);
|
sounds.add("random.fuse", SA_fuse);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -227,7 +227,6 @@ void SoundEngine::init( Minecraft* mc, Options* options )
|
|||||||
sounds.add( "random.eat", _pp("eat1"));
|
sounds.add( "random.eat", _pp("eat1"));
|
||||||
sounds.add( "random.eat", _pp("eat2"));
|
sounds.add( "random.eat", _pp("eat2"));
|
||||||
sounds.add( "random.eat", _pp("eat3"));
|
sounds.add( "random.eat", _pp("eat3"));
|
||||||
sounds.add( "random.burp", _pp("burp1"));
|
|
||||||
sounds.add( "random.fuse", _pp("fuse"));
|
sounds.add( "random.fuse", _pp("fuse"));
|
||||||
|
|
||||||
sounds.add( "step.cloth", _pp("cloth1"));
|
sounds.add( "step.cloth", _pp("cloth1"));
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -51,13 +51,13 @@ void Chicken::aiStep()
|
|||||||
flap += flapping * 2;
|
flap += flapping * 2;
|
||||||
|
|
||||||
//@todo
|
//@todo
|
||||||
if (!isBaby()) {
|
//if (!isBaby()) {
|
||||||
if (!level->isClientSide && --eggTime <= 0) {
|
// if (!level->isClientSide && --eggTime <= 0) {
|
||||||
level->playSound(this, "mob.chickenplop", 1.0f, (random.nextFloat() - random.nextFloat()) * 0.2f + 1.0f);
|
// level->playSound(this, "mob.chickenplop", 1.0f, (random.nextFloat() - random.nextFloat()) * 0.2f + 1.0f);
|
||||||
spawnAtLocation(Item::egg->id, 1);
|
// spawnAtLocation(Item::egg->id, 1);
|
||||||
eggTime = random.nextInt(SharedConstants::TicksPerSecond * 60 * 5) + SharedConstants::TicksPerSecond * 60 * 5;
|
// eggTime = random.nextInt(SharedConstants::TicksPerSecond * 60 * 5) + SharedConstants::TicksPerSecond * 60 * 5;
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Chicken::addAdditonalSaveData( CompoundTag* tag )
|
void Chicken::addAdditonalSaveData( CompoundTag* tag )
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
#include "../../level/tile/QuartzBlockTile.h"
|
#include "../../level/tile/QuartzBlockTile.h"
|
||||||
#include "../../level/tile/TreeTile.h"
|
#include "../../level/tile/TreeTile.h"
|
||||||
#include "../../level/tile/StoneSlabTile.h"
|
#include "../../level/tile/StoneSlabTile.h"
|
||||||
|
#include "../../level/tile/TallGrass.h"
|
||||||
#include "../../item/DyePowderItem.h"
|
#include "../../item/DyePowderItem.h"
|
||||||
#include "../../item/crafting/Recipe.h"
|
#include "../../item/crafting/Recipe.h"
|
||||||
#include "../../item/CoalItem.h"
|
#include "../../item/CoalItem.h"
|
||||||
@@ -229,6 +230,7 @@ void Inventory::setupDefault() {
|
|||||||
|
|
||||||
addItem(new ItemInstance(((Tile*)Tile::flower)));
|
addItem(new ItemInstance(((Tile*)Tile::flower)));
|
||||||
addItem(new ItemInstance(((Tile*)Tile::rose)));
|
addItem(new ItemInstance(((Tile*)Tile::rose)));
|
||||||
|
addItem(new ItemInstance(Tile::tallgrass, 1, TallGrass::TALL_GRASS));
|
||||||
addItem(new ItemInstance(((Tile*)Tile::mushroom1)));
|
addItem(new ItemInstance(((Tile*)Tile::mushroom1)));
|
||||||
addItem(new ItemInstance(((Tile*)Tile::mushroom2)));
|
addItem(new ItemInstance(((Tile*)Tile::mushroom2)));
|
||||||
addItem(new ItemInstance(Tile::cactus));
|
addItem(new ItemInstance(Tile::cactus));
|
||||||
|
|||||||
@@ -285,6 +285,7 @@ void Tile::initTiles() {
|
|||||||
Item::items[sandStone->id] = (new AuxDataTileItem(sandStone->id - 256, sandStone))->setCategory(ItemCategory::Structures)->setDescriptionId("sandStone");
|
Item::items[sandStone->id] = (new AuxDataTileItem(sandStone->id - 256, sandStone))->setCategory(ItemCategory::Structures)->setDescriptionId("sandStone");
|
||||||
|
|
||||||
Item::items[quartzBlock->id] = (new AuxDataTileItem(quartzBlock->id - 256, quartzBlock))->setCategory(ItemCategory::Structures)->setDescriptionId("quartzBlock");
|
Item::items[quartzBlock->id] = (new AuxDataTileItem(quartzBlock->id - 256, quartzBlock))->setCategory(ItemCategory::Structures)->setDescriptionId("quartzBlock");
|
||||||
|
Item::items[tallgrass->id] = (new AuxDataTileItem(tallgrass->id - 256, tallgrass))->setCategory(ItemCategory::Decorations);
|
||||||
|
|
||||||
for (int i = 0; i < 256; i++) {
|
for (int i = 0; i < 256; i++) {
|
||||||
if (Tile::tiles[i] != NULL) {
|
if (Tile::tiles[i] != NULL) {
|
||||||
|
|||||||
Reference in New Issue
Block a user