|
|
- namespace Oculus.Platform.Samples.SimplePlatformSample
- {
- using UnityEngine;
- using UnityEngine.UI;
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using Oculus.Platform;
- using Oculus.Platform.Models;
-
- public class DataEntry : MonoBehaviour
- {
-
- public Text dataOutput;
-
- void Start()
- {
- Core.Initialize();
- checkEntitlement();
- }
-
- // Update is called once per frame
- void Update()
- {
- string currentText = GetComponent<InputField>().text;
-
- if (Input.GetKey(KeyCode.Return))
- {
- if (currentText != "")
- {
- SubmitCommand(currentText);
- }
-
- GetComponent<InputField>().text = "";
- }
-
- // Handle all messages being returned
- Request.RunCallbacks();
- }
-
- private void SubmitCommand(string command)
- {
- string[] commandParams = command.Split(' ');
-
- if (commandParams.Length > 0)
- {
- switch (commandParams[0])
- {
- case "p":
- if (commandParams.Length > 2)
- {
- createAndJoinPrivateRoom(commandParams[1], commandParams[2]);
- }
- break;
- case "c":
- getCurrentRoom();
- break;
- case "g":
- if (commandParams.Length > 1)
- {
- getRoom(commandParams[1]);
- }
- break;
- case "j":
- if (commandParams.Length > 1)
- {
- joinRoom(commandParams[1]);
- }
- break;
- case "l":
- if (commandParams.Length > 1)
- {
- leaveRoom(commandParams[1]);
- }
- break;
- case "k":
- if (commandParams.Length > 2)
- {
- kickUser(commandParams[1], commandParams[2]);
- }
- break;
- case "m":
- getLoggedInUser();
- break;
- case "u":
- if (commandParams.Length > 1)
- {
- getUser(commandParams[1]);
- }
- break;
- case "d":
- getLoggedInFriends();
- break;
- case "i":
- getInvitableUsers();
- break;
- case "o":
- if (commandParams.Length > 2)
- {
- inviteUser(commandParams[1], commandParams[2]);
- }
- break;
- case "s":
- if (commandParams.Length > 2)
- {
- setRoomDescription(commandParams[1], commandParams[2]);
- }
- break;
- case "w":
- if (commandParams.Length > 3)
- {
- updateRoomDataStore(commandParams[1], commandParams[2], commandParams[3]);
- }
- break;
- case "n":
- getUserNonce();
- break;
- case "e":
- checkEntitlement();
- break;
- case "a":
- if (commandParams.Length > 1)
- {
- getAchievementDefinition(commandParams[1]);
- }
- break;
- case "b":
- if (commandParams.Length > 1)
- {
- getAchievementProgress(commandParams[1]);
- }
- break;
- case "3":
- if (commandParams.Length > 1)
- {
- unlockAchievement(commandParams[1]);
- }
- break;
- case "4":
- if (commandParams.Length > 2)
- {
- addCountAchievement(commandParams[1], commandParams[2]);
- }
- break;
- case "5":
- if (commandParams.Length > 2)
- {
- addFieldsAchievement(commandParams[1], commandParams[2]);
- }
- break;
- case "1":
- if (commandParams.Length > 2)
- {
- writeLeaderboardEntry(commandParams[1], commandParams[2]);
- }
- break;
- case "2":
- if (commandParams.Length > 1)
- {
- getLeaderboardEntries(commandParams[1]);
- }
- break;
- default:
- printOutputLine("Invalid Command");
- break;
- }
- }
- }
-
- void getLeaderboardEntries(string leaderboardName)
- {
- Leaderboards.GetEntries(leaderboardName, 10, LeaderboardFilterType.None, LeaderboardStartAt.Top).OnComplete(leaderboardGetCallback);
- }
-
- void writeLeaderboardEntry(string leaderboardName, string value)
- {
- byte[] extraData = new byte[] { 0x54, 0x65, 0x73, 0x74 };
-
- Leaderboards.WriteEntry(leaderboardName, Convert.ToInt32(value), extraData, false).OnComplete(leaderboardWriteCallback);
- }
-
- void addFieldsAchievement(string achievementName, string fields)
- {
- Achievements.AddFields(achievementName, fields).OnComplete(achievementFieldsCallback);
- }
-
- void addCountAchievement(string achievementName, string count)
- {
- Achievements.AddCount(achievementName, Convert.ToUInt64(count)).OnComplete(achievementCountCallback);
- }
-
- void unlockAchievement(string achievementName)
- {
- Achievements.Unlock(achievementName).OnComplete(achievementUnlockCallback);
- }
-
- void getAchievementProgress(string achievementName)
- {
- string[] Names = new string[1];
- Names[0] = achievementName;
-
- Achievements.GetProgressByName(Names).OnComplete(achievementProgressCallback);
- }
-
- void getAchievementDefinition(string achievementName)
- {
- string[] Names = new string[1];
- Names[0] = achievementName;
-
- Achievements.GetDefinitionsByName(Names).OnComplete(achievementDefinitionCallback);
- }
-
- void checkEntitlement()
- {
- Entitlements.IsUserEntitledToApplication().OnComplete(getEntitlementCallback);
- }
-
- void getUserNonce()
- {
- printOutputLine("Trying to get user nonce");
-
- Users.GetUserProof().OnComplete(userProofCallback);
- }
-
- void createAndJoinPrivateRoom(string joinPolicy, string maxUsers)
- {
- printOutputLine("Trying to create and join private room");
- Rooms.CreateAndJoinPrivate((RoomJoinPolicy)Convert.ToUInt32(joinPolicy), Convert.ToUInt32(maxUsers)).OnComplete(createAndJoinPrivateRoomCallback);
- }
-
- void getCurrentRoom()
- {
- printOutputLine("Trying to get current room");
- Rooms.GetCurrent().OnComplete(getCurrentRoomCallback);
- }
-
- void getRoom(string roomID)
- {
- printOutputLine("Trying to get room " + roomID);
- Rooms.Get(Convert.ToUInt64(roomID)).OnComplete(getCurrentRoomCallback);
- }
-
- void joinRoom(string roomID)
- {
- printOutputLine("Trying to join room " + roomID);
- Rooms.Join(Convert.ToUInt64(roomID), true).OnComplete(joinRoomCallback);
- }
-
- void leaveRoom(string roomID)
- {
- printOutputLine("Trying to leave room " + roomID);
- Rooms.Leave(Convert.ToUInt64(roomID)).OnComplete(leaveRoomCallback);
- }
-
- void kickUser(string roomID, string userID)
- {
- printOutputLine("Trying to kick user " + userID + " from room " + roomID);
- Rooms.KickUser(Convert.ToUInt64(roomID), Convert.ToUInt64(userID), 10 /*kick duration */).OnComplete(getCurrentRoomCallback);
- }
-
- void getLoggedInUser()
- {
- printOutputLine("Trying to get currently logged in user");
- Users.GetLoggedInUser().OnComplete(getUserCallback);
- }
-
- void getUser(string userID)
- {
- printOutputLine("Trying to get user " + userID);
- Users.Get(Convert.ToUInt64(userID)).OnComplete(getUserCallback);
- }
-
- void getLoggedInFriends()
- {
- printOutputLine("Trying to get friends of logged in user");
- Users.GetLoggedInUserFriends().OnComplete(getFriendsCallback);
- }
-
- void getInvitableUsers()
- {
- printOutputLine("Trying to get invitable users");
- Rooms.GetInvitableUsers().OnComplete(getInvitableUsersCallback);
- }
-
- void inviteUser(string roomID, string inviteToken)
- {
- printOutputLine("Trying to invite token " + inviteToken + " to room " + roomID);
- Rooms.InviteUser(Convert.ToUInt64(roomID), inviteToken).OnComplete(inviteUserCallback);
- }
-
- void setRoomDescription(string roomID, string description)
- {
- printOutputLine("Trying to set description " + description + " to room " + roomID);
- Rooms.SetDescription(Convert.ToUInt64(roomID), description).OnComplete(getCurrentRoomCallback);
- }
-
- void updateRoomDataStore(string roomID, string key, string value)
- {
- Dictionary<string, string> kvPairs = new Dictionary<string, string>();
- kvPairs.Add(key, value);
-
- printOutputLine("Trying to set k=" + key + " v=" + value + " for room " + roomID);
- Rooms.UpdateDataStore(Convert.ToUInt64(roomID), kvPairs).OnComplete(getCurrentRoomCallback);
- }
-
- void printOutputLine(String newLine)
- {
- dataOutput.text = "> " + newLine + System.Environment.NewLine + dataOutput.text;
- }
-
- void outputRoomDetails(Room room)
- {
- printOutputLine("Room ID: " + room.ID + ", AppID: " + room.ApplicationID + ", Description: " + room.Description);
- int numUsers = (room.UsersOptional != null) ? room.UsersOptional.Count : 0;
- printOutputLine("MaxUsers: " + room.MaxUsers.ToString() + " Users in room: " + numUsers);
- if (room.OwnerOptional != null)
- {
- printOutputLine("Room owner: " + room.OwnerOptional.ID + " " + room.OwnerOptional.OculusID);
- }
- printOutputLine("Join Policy: " + room.JoinPolicy.ToString());
- printOutputLine("Room Type: " + room.Type.ToString());
-
- Message.MessageType.Matchmaking_Enqueue.GetHashCode();
-
- }
-
- void outputUserArray(UserList users)
- {
- foreach (User user in users)
- {
- printOutputLine("User: " + user.ID + " " + user.OculusID + " " + user.Presence + " " + user.InviteToken);
- }
- }
-
-
- // Callbacks
- void userProofCallback(Message<UserProof> msg)
- {
- if (!msg.IsError)
- {
- printOutputLine("Received user nonce generation success");
- UserProof userNonce = msg.Data;
- printOutputLine("Nonce: " + userNonce.Value);
- }
- else
- {
- printOutputLine("Received user nonce generation error");
- Error error = msg.GetError();
- printOutputLine("Error: " + error.Message);
- }
-
- }
-
- void getEntitlementCallback(Message msg)
- {
- if (!msg.IsError)
- {
- printOutputLine("You are entitled to use this app.");
- }
- else
- {
- printOutputLine("You are NOT entitled to use this app.");
- }
- }
-
- void leaderboardGetCallback(Message<LeaderboardEntryList> msg)
- {
- if (!msg.IsError)
- {
- printOutputLine("Leaderboard entry get success.");
- var entries = msg.Data;
-
- foreach (var entry in entries)
- {
- printOutputLine(entry.Rank + ". " + entry.User.OculusID + " " + entry.Score + " " + entry.Timestamp);
- }
- }
- else
- {
- printOutputLine("Received leaderboard get error");
- Error error = msg.GetError();
- printOutputLine("Error: " + error.Message);
- }
- }
-
- void leaderboardWriteCallback(Message msg)
- {
- if (!msg.IsError)
- {
- printOutputLine("Leaderboard entry write success.");
- var didUpdate = (Message<bool>)msg;
-
- if (didUpdate.Data)
- {
- printOutputLine("Score updated.");
- }
- else
- {
- printOutputLine("Score NOT updated.");
- }
- }
- else
- {
- printOutputLine("Received leaderboard write error");
- Error error = msg.GetError();
- printOutputLine("Error: " + error.Message);
- }
- }
-
- void achievementFieldsCallback(Message msg)
- {
- if (!msg.IsError)
- {
- printOutputLine("Achievement fields added.");
- }
- else
- {
- printOutputLine("Received achievement fields add error");
- Error error = msg.GetError();
- printOutputLine("Error: " + error.Message);
- }
- }
-
- void achievementCountCallback(Message msg)
- {
- if (!msg.IsError)
- {
- printOutputLine("Achievement count added.");
- }
- else
- {
- printOutputLine("Received achievement count add error");
- Error error = msg.GetError();
- printOutputLine("Error: " + error.Message);
- }
- }
-
- void achievementUnlockCallback(Message msg)
- {
- if (!msg.IsError)
- {
- printOutputLine("Achievement unlocked");
- }
- else
- {
- printOutputLine("Received achievement unlock error");
- Error error = msg.GetError();
- printOutputLine("Error: " + error.Message);
- }
- }
-
- void achievementProgressCallback(Message<AchievementProgressList> msg)
- {
- if (!msg.IsError)
- {
- printOutputLine("Received achievement progress success");
- AchievementProgressList progressList = msg.GetAchievementProgressList();
-
- foreach (var progress in progressList)
- {
- if (progress.IsUnlocked)
- {
- printOutputLine("Achievement Unlocked");
- }
- else
- {
- printOutputLine("Achievement Locked");
- }
- printOutputLine("Current Bitfield: " + progress.Bitfield.ToString());
- printOutputLine("Current Count: " + progress.Count.ToString());
- }
- }
- else
- {
- printOutputLine("Received achievement progress error");
- Error error = msg.GetError();
- printOutputLine("Error: " + error.Message);
- }
- }
-
- void achievementDefinitionCallback(Message<AchievementDefinitionList> msg)
- {
- if (!msg.IsError)
- {
- printOutputLine("Received achievement definitions success");
- AchievementDefinitionList definitionList = msg.GetAchievementDefinitions();
-
- foreach (var definition in definitionList)
- {
- switch (definition.Type)
- {
- case AchievementType.Simple:
- printOutputLine("Achievement Type: Simple");
- break;
- case AchievementType.Bitfield:
- printOutputLine("Achievement Type: Bitfield");
- printOutputLine("Bitfield Length: " + definition.BitfieldLength.ToString());
- printOutputLine("Target: " + definition.Target.ToString());
- break;
- case AchievementType.Count:
- printOutputLine("Achievement Type: Count");
- printOutputLine("Target: " + definition.Target.ToString());
- break;
- case AchievementType.Unknown:
- default:
- printOutputLine("Achievement Type: Unknown");
- break;
- }
- }
- }
- else
- {
- printOutputLine("Received achievement definitions error");
- Error error = msg.GetError();
- printOutputLine("Error: " + error.Message);
- }
- }
-
- void createAndJoinPrivateRoomCallback(Message<Room> msg)
- {
- if (!msg.IsError)
- {
- printOutputLine("Received create and join room success");
- outputRoomDetails(msg.Data);
- }
- else
- {
- printOutputLine("Received create and join room error");
- Error error = msg.GetError();
- printOutputLine("Error: " + error.Message);
- }
- }
-
- void getCurrentRoomCallback(Message<Room> msg)
- {
- if (!msg.IsError)
- {
- printOutputLine("Received get room success");
- outputRoomDetails(msg.Data);
- }
- else
- {
- printOutputLine("Received get room error");
- Error error = msg.GetError();
- printOutputLine("Error: " + error.Message);
- }
- }
-
- void joinRoomCallback(Message<Room> msg)
- {
- if (!msg.IsError)
- {
- printOutputLine("Received join room success");
- outputRoomDetails(msg.Data);
- }
- else
- {
- printOutputLine("Received join room error");
- Error error = msg.GetError();
- printOutputLine("Error: " + error.Message);
- }
- }
-
- void leaveRoomCallback(Message<Room> msg)
- {
- if (!msg.IsError)
- {
- printOutputLine("Received leave room success");
- outputRoomDetails(msg.Data);
- }
- else
- {
- printOutputLine("Received leave room error");
- Error error = msg.GetError();
- printOutputLine("Error: " + error.Message);
- }
- }
-
- void getUserCallback(Message<User> msg)
- {
- if (!msg.IsError)
- {
- printOutputLine("Received get user success");
- User user = msg.Data;
- printOutputLine("User: " + user.ID + " " + user.OculusID + " " + user.Presence + " " + user.InviteToken);
- }
- else
- {
- printOutputLine("Received get user error");
- Error error = msg.GetError();
- printOutputLine("Error: " + error.Message);
- }
- }
-
- void getFriendsCallback(Message<UserList> msg)
- {
- if (!msg.IsError)
- {
- printOutputLine("Received get friends success");
- UserList users = msg.Data;
- outputUserArray(users);
- }
- else
- {
- printOutputLine("Received get friends error");
- Error error = msg.GetError();
- printOutputLine("Error: " + error.Message);
- }
- }
-
- void getInvitableUsersCallback(Message<UserList> msg)
- {
- if (!msg.IsError)
- {
- printOutputLine("Received get invitable users success");
- UserList users = msg.Data;
- outputUserArray(users);
- }
- else
- {
- printOutputLine("Received get invitable users error");
- Error error = msg.GetError();
- printOutputLine("Error: " + error.Message);
- }
- }
-
- void inviteUserCallback(Message msg)
- {
- if (!msg.IsError)
- {
- printOutputLine("Received invite user success");
- }
- else
- {
- printOutputLine("Received invite user error");
- Error error = msg.GetError();
- printOutputLine("Error: " + error.Message);
- }
- }
- }
- }
|