Something went wrong. Try again.
the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
Something went wrong. Try again.
3.3 kB · 142 lines
C++
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143#include "stdafx.h"#include <string>#include <unordered_map>#include "..\..\Minecraft.h"#include "..\..\MultiplayerLocalPlayer.h"#include "Tutorial.h"#include "TutorialConstraints.h"#include "InfoTask.h"#include "..\..\..\Minecraft.World\Material.h"#include "..\..\KeyboardMouseInput.h"
InfoTask::InfoTask(Tutorial *tutorial, int descriptionId, int promptId /*= -1*/, bool requiresUserInput /*= false*/, int iMapping /*= 0*/, ETelemetryChallenges telemetryEvent /*= eTelemetryTutorial_NoEvent*/) : TutorialTask( tutorial, descriptionId, false, NULL, true, false, false ){ if(requiresUserInput == true) { constraints.push_back( new InputConstraint( iMapping ) ); } completedMappings[iMapping]=false;
m_promptId = promptId; tutorial->addMessage( m_promptId );
m_eTelemetryEvent = telemetryEvent;}
bool InfoTask::isCompleted(){ if( bIsCompleted ) return true;
if( tutorial->m_hintDisplayed ) return false;
if( !bHasBeenActivated || !m_bShownForMinimumTime ) return false;
bool bAllComplete = true; Minecraft *pMinecraft = Minecraft::GetInstance();
// If the player is under water then allow all keypresses so they can jump out if( pMinecraft->localplayers[tutorial->getPad()]->isUnderLiquid(Material::water) ) return false;
if(ui.GetMenuDisplayed(tutorial->getPad())) { // If a menu is displayed, then we use the handleUIInput to complete the task bAllComplete = true; for(AUTO_VAR(it, completedMappings.begin()); it != completedMappings.end(); ++it) { bool current = (*it).second; if(!current) { bAllComplete = false; break; } } } else { int iCurrent=0;
for(AUTO_VAR(it, completedMappings.begin()); it != completedMappings.end(); ++it) { bool current = (*it).second; if(!current) {#ifdef _WINDOWS64 if (InputManager.GetValue(pMinecraft->player->GetXboxPad(), (*it).first) > 0 || KMInput.IsKeyDown(VK_SPACE))#else if( InputManager.GetValue(pMinecraft->player->GetXboxPad(), (*it).first) > 0)#endif { (*it).second = true; bAllComplete=true; } else { bAllComplete = false; } } iCurrent++; } }
if(bAllComplete==true) { sendTelemetry(); enableConstraints(false, true); } bIsCompleted = bAllComplete; return bAllComplete;}
int InfoTask::getPromptId(){ if( m_bShownForMinimumTime ) return m_promptId; else return -1;}
void InfoTask::setAsCurrentTask(bool active /*= true*/){ enableConstraints( active ); TutorialTask::setAsCurrentTask(active);}
void InfoTask::handleUIInput(int iAction){ if(bHasBeenActivated) { for(AUTO_VAR(it, completedMappings.begin()); it != completedMappings.end(); ++it) { if( iAction == (*it).first ) { (*it).second = true; } } }}
void InfoTask::sendTelemetry(){ Minecraft *pMinecraft = Minecraft::GetInstance();
if( m_eTelemetryEvent != eTelemetryChallenges_Unknown ) { bool firstPlay = true; // We only store first play for some of the events switch(m_eTelemetryEvent) { case eTelemetryTutorial_Complete: firstPlay = !tutorial->getCompleted( eTutorial_Telemetry_Complete ); tutorial->setCompleted( eTutorial_Telemetry_Complete ); break; }; TelemetryManager->RecordEnemyKilledOrOvercome(pMinecraft->player->GetXboxPad(), 0, 0, 0, 0, 0, 0, m_eTelemetryEvent); }}