aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/DemoMode.cpp
blob: 2a5664e4708cd0184b952a2449b09a0508897739 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#include "stdafx.h"
#include "DemoMode.h"
#include "..\Minecraft.World\net.minecraft.world.level.h"

DemoMode::DemoMode(Minecraft *minecraft) : SurvivalMode(minecraft)
{
	demoHasEnded = false;
    demoEndedReminder = 0;
}

void DemoMode::tick()
{
    SurvivalMode::tick();

/* 4J - TODO - seems unlikely we need this demo mode anyway
    int64_t time = minecraft->level->getTime();
    int64_t day = (time / Level::TICKS_PER_DAY) + 1;

    demoHasEnded = (time > (500 + Level::TICKS_PER_DAY * DEMO_DAYS));
    if (demoHasEnded)
	{
        demoEndedReminder++;
    }

    if ((time % Level::TICKS_PER_DAY) == 500)
	{
        if (day <= (DEMO_DAYS + 1))
		{
            minecraft->gui->displayClientMessage(L"demo.day." + std::to_wstring(day));
        }
    }
	else if (day == 1)
	{
        Options *options = minecraft->options;
        wstring message;

        if (time == 100) {
            minecraft.gui.addMessage("Seed: " + minecraft.level.getSeed());
            message = language.getElement("demo.help.movement");
            message = String.format(message, Keyboard.getKeyName(options.keyUp.key), Keyboard.getKeyName(options.keyLeft.key), Keyboard.getKeyName(options.keyDown.key),
                    Keyboard.getKeyName(options.keyRight.key));
        } else if (time == 175) {
            message = language.getElement("demo.help.jump");
            message = String.format(message, Keyboard.getKeyName(options.keyJump.key));
        } else if (time == 250) {
            message = language.getElement("demo.help.inventory");
            message = String.format(message, Keyboard.getKeyName(options.keyBuild.key));
        }
        if (message != null) {
            minecraft.gui.addMessage(message);
        }
    } else if (day == DEMO_DAYS) {
        if ((time % Level.TICKS_PER_DAY) == 22000) {
            minecraft.gui.displayClientMessage("demo.day.warning");
        }
    }
*/
}

void DemoMode::outputDemoReminder()
{
/* 4J - TODO
    if (demoEndedReminder > 100) {
        minecraft.gui.displayClientMessage("demo.reminder");
        demoEndedReminder = 0;
    }
	*/
}

void DemoMode::startDestroyBlock(int x, int y, int z, int face)
{
    if (demoHasEnded)
	{
        outputDemoReminder();
        return;
    }
    SurvivalMode::startDestroyBlock(x, y, z, face);
}

void DemoMode::continueDestroyBlock(int x, int y, int z, int face)
{
    if (demoHasEnded)
	{
        return;
    }
    SurvivalMode::continueDestroyBlock(x, y, z, face);
}

bool DemoMode::destroyBlock(int x, int y, int z, int face)
{
    if (demoHasEnded)
	{
        return false;
    }
    return SurvivalMode::destroyBlock(x, y, z, face);
}

bool DemoMode::useItem(shared_ptr<Player> player, Level *level, shared_ptr<ItemInstance> item)
{
    if (demoHasEnded)
	{
        outputDemoReminder();
        return false;
    }
    return SurvivalMode::useItem(player, level, item);
}

bool DemoMode::useItemOn(shared_ptr<Player> player, Level *level, shared_ptr<ItemInstance> item, int x, int y, int z, int face)
{
    if (demoHasEnded) {
        outputDemoReminder();
        return false;
    }
    return SurvivalMode::useItemOn(player, level, item, x, y, z, face);
}

void DemoMode::attack(shared_ptr<Player> player, shared_ptr<Entity> entity)
{
    if (demoHasEnded)
	{
        outputDemoReminder();
        return;
    }
    SurvivalMode::attack(player, entity);
}