the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#include "stdafx.h"
2#include "DemoMode.h"
3#include "..\Minecraft.World\net.minecraft.world.level.h"
4
5DemoMode::DemoMode(Minecraft *minecraft) : SurvivalMode(minecraft)
6{
7 demoHasEnded = false;
8 demoEndedReminder = 0;
9}
10
11void DemoMode::tick()
12{
13 SurvivalMode::tick();
14
15/* 4J - TODO - seems unlikely we need this demo mode anyway
16 __int64 time = minecraft->level->getTime();
17 __int64 day = (time / Level::TICKS_PER_DAY) + 1;
18
19 demoHasEnded = (time > (500 + Level::TICKS_PER_DAY * DEMO_DAYS));
20 if (demoHasEnded)
21 {
22 demoEndedReminder++;
23 }
24
25 if ((time % Level::TICKS_PER_DAY) == 500)
26 {
27 if (day <= (DEMO_DAYS + 1))
28 {
29 minecraft->gui->displayClientMessage(L"demo.day." + _toString<__int64>(day));
30 }
31 }
32 else if (day == 1)
33 {
34 Options *options = minecraft->options;
35 wstring message;
36
37 if (time == 100) {
38 minecraft.gui.addMessage("Seed: " + minecraft.level.getSeed());
39 message = language.getElement("demo.help.movement");
40 message = String.format(message, Keyboard.getKeyName(options.keyUp.key), Keyboard.getKeyName(options.keyLeft.key), Keyboard.getKeyName(options.keyDown.key),
41 Keyboard.getKeyName(options.keyRight.key));
42 } else if (time == 175) {
43 message = language.getElement("demo.help.jump");
44 message = String.format(message, Keyboard.getKeyName(options.keyJump.key));
45 } else if (time == 250) {
46 message = language.getElement("demo.help.inventory");
47 message = String.format(message, Keyboard.getKeyName(options.keyBuild.key));
48 }
49 if (message != null) {
50 minecraft.gui.addMessage(message);
51 }
52 } else if (day == DEMO_DAYS) {
53 if ((time % Level.TICKS_PER_DAY) == 22000) {
54 minecraft.gui.displayClientMessage("demo.day.warning");
55 }
56 }
57*/
58}
59
60void DemoMode::outputDemoReminder()
61{
62/* 4J - TODO
63 if (demoEndedReminder > 100) {
64 minecraft.gui.displayClientMessage("demo.reminder");
65 demoEndedReminder = 0;
66 }
67 */
68}
69
70void DemoMode::startDestroyBlock(int x, int y, int z, int face)
71{
72 if (demoHasEnded)
73 {
74 outputDemoReminder();
75 return;
76 }
77 SurvivalMode::startDestroyBlock(x, y, z, face);
78}
79
80void DemoMode::continueDestroyBlock(int x, int y, int z, int face)
81{
82 if (demoHasEnded)
83 {
84 return;
85 }
86 SurvivalMode::continueDestroyBlock(x, y, z, face);
87}
88
89bool DemoMode::destroyBlock(int x, int y, int z, int face)
90{
91 if (demoHasEnded)
92 {
93 return false;
94 }
95 return SurvivalMode::destroyBlock(x, y, z, face);
96}
97
98bool DemoMode::useItem(shared_ptr<Player> player, Level *level, shared_ptr<ItemInstance> item)
99{
100 if (demoHasEnded)
101 {
102 outputDemoReminder();
103 return false;
104 }
105 return SurvivalMode::useItem(player, level, item);
106}
107
108bool DemoMode::useItemOn(shared_ptr<Player> player, Level *level, shared_ptr<ItemInstance> item, int x, int y, int z, int face)
109{
110 if (demoHasEnded) {
111 outputDemoReminder();
112 return false;
113 }
114 return SurvivalMode::useItemOn(player, level, item, x, y, z, face);
115}
116
117void DemoMode::attack(shared_ptr<Player> player, shared_ptr<Entity> entity)
118{
119 if (demoHasEnded)
120 {
121 outputDemoReminder();
122 return;
123 }
124 SurvivalMode::attack(player, entity);
125}