diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ef54cb8 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +source/GooglePlayServices_gml/options/extensions/* \ No newline at end of file diff --git a/README.md b/README.md index ea8e2c7..da18695 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,8 @@ # GMEXT-GooglePlayServices Repository for GameMaker's GooglePlayServices Extension + +This repository was created with the intent of presenting users with the lastest version available of the extension (even previous to marketplace updates) and also provide a way for the community to contribute with bug fixes and feature implementation. + +This is an Android extension only. + +ANDROID SOURCE: `source/GooglePlayServices_gml/extensions/googleplayservices/AndroidSource/Java/` diff --git a/source/GooglePlayServices_gml/GooglePlayServices.yyp b/source/GooglePlayServices_gml/GooglePlayServices.yyp new file mode 100644 index 0000000..bc28ac5 --- /dev/null +++ b/source/GooglePlayServices_gml/GooglePlayServices.yyp @@ -0,0 +1,122 @@ +{ + "resourceType": "GMProject", + "resourceVersion": "1.6", + "name": "GooglePlayServices", + "resources": [ + {"id":{"name":"Obj_GooglePlayServices_GotoLeaderboardsAdvanced","path":"objects/Obj_GooglePlayServices_GotoLeaderboardsAdvanced/Obj_GooglePlayServices_GotoLeaderboardsAdvanced.yy",},"order":10,}, + {"id":{"name":"Sprite_GooglePlayServices_SavedGames_dataObj","path":"sprites/Sprite_GooglePlayServices_SavedGames_dataObj/Sprite_GooglePlayServices_SavedGames_dataObj.yy",},"order":2,}, + {"id":{"name":"Spr_YoYo_Background","path":"sprites/Spr_YoYo_Background/Spr_YoYo_Background.yy",},"order":0,}, + {"id":{"name":"README","path":"notes/README/README.yy",},"order":5,}, + {"id":{"name":"Spr_GooglePlayServices_SavedGames","path":"sprites/Spr_GooglePlayServices_SavedGames/Spr_GooglePlayServices_SavedGames.yy",},"order":3,}, + {"id":{"name":"sprite_save_w","path":"scripts/sprite_save_w/sprite_save_w.yy",},"order":2,}, + {"id":{"name":"Font_YoYo_30","path":"fonts/Font_YoYo_30/Font_YoYo_30.yy",},"order":1,}, + {"id":{"name":"Spr_YoYo_button","path":"sprites/Spr_YoYo_button/Spr_YoYo_button.yy",},"order":1,}, + {"id":{"name":"Obj_GooglePlayServices_SignIn","path":"objects/Obj_GooglePlayServices_SignIn/Obj_GooglePlayServices_SignIn.yy",},"order":0,}, + {"id":{"name":"Obj_GooglePlayServices_Revoke","path":"objects/Obj_GooglePlayServices_Revoke/Obj_GooglePlayServices_Revoke.yy",},"order":1,}, + {"id":{"name":"Obj_GooglePlayServices_GotoAchievements","path":"objects/Obj_GooglePlayServices_GotoAchievements/Obj_GooglePlayServices_GotoAchievements.yy",},"order":2,}, + {"id":{"name":"Obj_GooglePlayServices_GotoLeaderboards","path":"objects/Obj_GooglePlayServices_GotoLeaderboards/Obj_GooglePlayServices_GotoLeaderboards.yy",},"order":3,}, + {"id":{"name":"Obj_GooglePlayServices_GotoSavedGames","path":"objects/Obj_GooglePlayServices_GotoSavedGames/Obj_GooglePlayServices_GotoSavedGames.yy",},"order":4,}, + {"id":{"name":"Obj_GooglePlayServices_GotoMenu","path":"objects/Obj_GooglePlayServices_GotoMenu/Obj_GooglePlayServices_GotoMenu.yy",},"order":5,}, + {"id":{"name":"Obj_GooglePlayServices_Achievements_Incremental","path":"objects/Obj_GooglePlayServices_Achievements_Incremental/Obj_GooglePlayServices_Achievements_Incremental.yy",},"order":3,}, + {"id":{"name":"Obj_YoYo_button","path":"objects/Obj_YoYo_button/Obj_YoYo_button.yy",},"order":0,}, + {"id":{"name":"Obj_GooglePlayServices_Achievements_Unlock","path":"objects/Obj_GooglePlayServices_Achievements_Unlock/Obj_GooglePlayServices_Achievements_Unlock.yy",},"order":2,}, + {"id":{"name":"Obj_GooglePlayServices_Account","path":"objects/Obj_GooglePlayServices_Account/Obj_GooglePlayServices_Account.yy",},"order":6,}, + {"id":{"name":"Obj_GooglePlayServices_Player","path":"objects/Obj_GooglePlayServices_Player/Obj_GooglePlayServices_Player.yy",},"order":7,}, + {"id":{"name":"Obj_GooglePlayServices_Achievements_Show","path":"objects/Obj_GooglePlayServices_Achievements_Show/Obj_GooglePlayServices_Achievements_Show.yy",},"order":1,}, + {"id":{"name":"Obj_GooglePlayServices_Leaderboard_SubmitScore","path":"objects/Obj_GooglePlayServices_Leaderboard_SubmitScore/Obj_GooglePlayServices_Leaderboard_SubmitScore.yy",},"order":1,}, + {"id":{"name":"Obj_GooglePlayServices_Leaderboard_Show","path":"objects/Obj_GooglePlayServices_Leaderboard_Show/Obj_GooglePlayServices_Leaderboard_Show.yy",},"order":2,}, + {"id":{"name":"Room_GooglePlayServices_Leaderboards_Advanced","path":"rooms/Room_GooglePlayServices_Leaderboards_Advanced/Room_GooglePlayServices_Leaderboards_Advanced.yy",},"order":5,}, + {"id":{"name":"Obj_GooglePlayServices_Leaderboard_ShowAll","path":"objects/Obj_GooglePlayServices_Leaderboard_ShowAll/Obj_GooglePlayServices_Leaderboard_ShowAll.yy",},"order":3,}, + {"id":{"name":"Obj_GooglePlayServices_Achievements_GetStatus","path":"objects/Obj_GooglePlayServices_Achievements_GetStatus/Obj_GooglePlayServices_Achievements_GetStatus.yy",},"order":0,}, + {"id":{"name":"Obj_GooglePlayServices_SavedGames_Slot","path":"objects/Obj_GooglePlayServices_SavedGames_Slot/Obj_GooglePlayServices_SavedGames_Slot.yy",},"order":2,}, + {"id":{"name":"Obj_GooglePlayServices_SavedGames","path":"objects/Obj_GooglePlayServices_SavedGames/Obj_GooglePlayServices_SavedGames.yy",},"order":1,}, + {"id":{"name":"Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores","path":"objects/Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores/Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores.yy",},"order":1,}, + {"id":{"name":"Obj_GooglePlayServices_SavedGames_Show","path":"objects/Obj_GooglePlayServices_SavedGames_Show/Obj_GooglePlayServices_SavedGames_Show.yy",},"order":3,}, + {"id":{"name":"Obj_GooglePlayServices_Achievement_Entry","path":"objects/Obj_GooglePlayServices_Achievement_Entry/Obj_GooglePlayServices_Achievement_Entry.yy",},"order":1,}, + {"id":{"name":"Obj_GooglePlayServices_SavedGames_New","path":"objects/Obj_GooglePlayServices_SavedGames_New/Obj_GooglePlayServices_SavedGames_New.yy",},"order":4,}, + {"id":{"name":"Obj_GooglePlayServices","path":"objects/Obj_GooglePlayServices/Obj_GooglePlayServices.yy",},"order":8,}, + {"id":{"name":"Obj_GooglePlayServices_SavedGames_Save","path":"objects/Obj_GooglePlayServices_SavedGames_Save/Obj_GooglePlayServices_SavedGames_Save.yy",},"order":5,}, + {"id":{"name":"Obj_GooglePlayServices_Leaderboard_Entry","path":"objects/Obj_GooglePlayServices_Leaderboard_Entry/Obj_GooglePlayServices_Leaderboard_Entry.yy",},"order":2,}, + {"id":{"name":"Font_YoYo_50","path":"fonts/Font_YoYo_50/Font_YoYo_50.yy",},"order":2,}, + {"id":{"name":"Obj_GooglePlayServices_SavedGames_Delete","path":"objects/Obj_GooglePlayServices_SavedGames_Delete/Obj_GooglePlayServices_SavedGames_Delete.yy",},"order":6,}, + {"id":{"name":"Obj_GooglePlayServices_SavedGames_Discard","path":"objects/Obj_GooglePlayServices_SavedGames_Discard/Obj_GooglePlayServices_SavedGames_Discard.yy",},"order":7,}, + {"id":{"name":"Obj_GooglePlayServices_SavedGames_DataObj","path":"objects/Obj_GooglePlayServices_SavedGames_DataObj/Obj_GooglePlayServices_SavedGames_DataObj.yy",},"order":8,}, + {"id":{"name":"Obj_GooglePlayServices_SavedGames_Icon","path":"objects/Obj_GooglePlayServices_SavedGames_Icon/Obj_GooglePlayServices_SavedGames_Icon.yy",},"order":9,}, + {"id":{"name":"Obj_GooglePlayServices_VideoRecording","path":"objects/Obj_GooglePlayServices_VideoRecording/Obj_GooglePlayServices_VideoRecording.yy",},"order":3,}, + {"id":{"name":"Obj_GooglePlayServices_GotoAchievementsAdvanced","path":"objects/Obj_GooglePlayServices_GotoAchievementsAdvanced/Obj_GooglePlayServices_GotoAchievementsAdvanced.yy",},"order":9,}, + {"id":{"name":"Obj_GooglePlayServices_Achievements_Reveal","path":"objects/Obj_GooglePlayServices_Achievements_Reveal/Obj_GooglePlayServices_Achievements_Reveal.yy",},"order":4,}, + {"id":{"name":"Obj_YoYo_textbox","path":"objects/Obj_YoYo_textbox/Obj_YoYo_textbox.yy",},"order":2,}, + {"id":{"name":"__macros__","path":"scripts/__macros__/__macros__.yy",},"order":4,}, + {"id":{"name":"Room_GooglePlayServices","path":"rooms/Room_GooglePlayServices/Room_GooglePlayServices.yy",},"order":0,}, + {"id":{"name":"Spr_YoYo_textbox","path":"sprites/Spr_YoYo_textbox/Spr_YoYo_textbox.yy",},"order":2,}, + {"id":{"name":"Room_GooglePlayServices_SavedGames","path":"rooms/Room_GooglePlayServices_SavedGames/Room_GooglePlayServices_SavedGames.yy",},"order":3,}, + {"id":{"name":"Room_GooglePlayServices_Achievements","path":"rooms/Room_GooglePlayServices_Achievements/Room_GooglePlayServices_Achievements.yy",},"order":1,}, + {"id":{"name":"Room_GooglePlayServices_Achievements_Advanced","path":"rooms/Room_GooglePlayServices_Achievements_Advanced/Room_GooglePlayServices_Achievements_Advanced.yy",},"order":4,}, + {"id":{"name":"Room_GooglePlayServices_Leaderboards","path":"rooms/Room_GooglePlayServices_Leaderboards/Room_GooglePlayServices_Leaderboards.yy",},"order":2,}, + {"id":{"name":"Obj_YoYo_text","path":"objects/Obj_YoYo_text/Obj_YoYo_text.yy",},"order":1,}, + {"id":{"name":"Font_YoYo_20","path":"fonts/Font_YoYo_20/Font_YoYo_20.yy",},"order":0,}, + {"id":{"name":"GooglePlayServices","path":"extensions/GooglePlayServices/GooglePlayServices.yy",},"order":1,}, + ], + "Options": [ + {"name":"HTML5","path":"options/html5/options_html5.yy",}, + {"name":"iOS","path":"options/ios/options_ios.yy",}, + {"name":"Linux","path":"options/linux/options_linux.yy",}, + {"name":"tvOS","path":"options/tvos/options_tvos.yy",}, + {"name":"Windows","path":"options/windows/options_windows.yy",}, + {"name":"Android","path":"options/android/options_android.yy",}, + {"name":"macOS","path":"options/mac/options_mac.yy",}, + {"name":"Main","path":"options/main/options_main.yy",}, + {"name":"Amazon Fire","path":"options/amazonfire/options_amazonfire.yy",}, + {"name":"PlayStation 4","path":"options/ps4/options_ps4.yy",}, + {"name":"PlayStation 5","path":"options/ps5/options_ps5.yy",}, + {"name":"Xbox Series XS","path":"options/xboxseriesxs/options_xboxseriesxs.yy",}, + {"name":"operagx","path":"options/operagx/options_operagx.yy",}, + {"name":"Switch","path":"options/switch/options_switch.yy",}, + ], + "defaultScriptType": 1, + "isEcma": false, + "configs": { + "name": "Default", + "children": [], + }, + "RoomOrderNodes": [ + {"roomId":{"name":"Room_GooglePlayServices","path":"rooms/Room_GooglePlayServices/Room_GooglePlayServices.yy",},}, + {"roomId":{"name":"Room_GooglePlayServices_SavedGames","path":"rooms/Room_GooglePlayServices_SavedGames/Room_GooglePlayServices_SavedGames.yy",},}, + {"roomId":{"name":"Room_GooglePlayServices_Achievements","path":"rooms/Room_GooglePlayServices_Achievements/Room_GooglePlayServices_Achievements.yy",},}, + {"roomId":{"name":"Room_GooglePlayServices_Leaderboards","path":"rooms/Room_GooglePlayServices_Leaderboards/Room_GooglePlayServices_Leaderboards.yy",},}, + {"roomId":{"name":"Room_GooglePlayServices_Achievements_Advanced","path":"rooms/Room_GooglePlayServices_Achievements_Advanced/Room_GooglePlayServices_Achievements_Advanced.yy",},}, + {"roomId":{"name":"Room_GooglePlayServices_Leaderboards_Advanced","path":"rooms/Room_GooglePlayServices_Leaderboards_Advanced/Room_GooglePlayServices_Leaderboards_Advanced.yy",},}, + ], + "Folders": [ + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"GooglePlayServices Demo","folderPath":"folders/GooglePlayServices Demo.yy","order":2,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"Objects","folderPath":"folders/GooglePlayServices Demo/Objects.yy","order":0,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"Achievements","folderPath":"folders/GooglePlayServices Demo/Objects/Achievements.yy","order":3,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"Advanced","folderPath":"folders/GooglePlayServices Demo/Objects/Advanced.yy","order":7,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"Achievements","folderPath":"folders/GooglePlayServices Demo/Objects/Advanced/Achievements.yy","order":2,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"Leaderboards","folderPath":"folders/GooglePlayServices Demo/Objects/Advanced/Leaderboards.yy","order":1,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"Leaderboards","folderPath":"folders/GooglePlayServices Demo/Objects/Leaderboards.yy","order":4,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"Menu","folderPath":"folders/GooglePlayServices Demo/Objects/Menu.yy","order":2,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"SavedGames","folderPath":"folders/GooglePlayServices Demo/Objects/SavedGames.yy","order":5,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"VideoRecording","folderPath":"folders/GooglePlayServices Demo/Objects/VideoRecording.yy","order":6,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"Rooms","folderPath":"folders/GooglePlayServices Demo/Rooms.yy","order":2,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"Scripts","folderPath":"folders/GooglePlayServices Demo/Scripts.yy","order":4,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"Sprites","folderPath":"folders/GooglePlayServices Demo/Sprites.yy","order":5,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"GooglePlayServices","folderPath":"folders/GooglePlayServices.yy","order":6,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"YoYo Extensions Assets","folderPath":"folders/YoYo Extensions Assets.yy","order":3,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"Font","folderPath":"folders/YoYo Extensions Assets/Font.yy","order":1,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"Objects","folderPath":"folders/YoYo Extensions Assets/Objects.yy","order":2,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"Sprites","folderPath":"folders/YoYo Extensions Assets/Sprites.yy","order":3,}, + ], + "AudioGroups": [ + {"resourceType":"GMAudioGroup","resourceVersion":"1.3","name":"audiogroup_default","targets":-1,}, + ], + "TextureGroups": [ + {"resourceType":"GMTextureGroup","resourceVersion":"1.3","name":"Default","isScaled":true,"compressFormat":"bz2","loadType":"default","directory":"","autocrop":true,"border":2,"mipsToGenerate":0,"groupParent":null,"targets":-1,}, + ], + "IncludedFiles": [ + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"Google Play Services Extension.pdf","CopyToMask":0,"filePath":"datafiles",}, + ], + "MetaData": { + "IDEVersion": "2022.9.1.51", + }, +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/datafiles/Google Play Services Extension.pdf b/source/GooglePlayServices_gml/datafiles/Google Play Services Extension.pdf new file mode 100644 index 0000000..751e58a Binary files /dev/null and b/source/GooglePlayServices_gml/datafiles/Google Play Services Extension.pdf differ diff --git a/source/GooglePlayServices_gml/extensions/googleplayservices/AndroidSource/Java/YYGooglePlayServices.java b/source/GooglePlayServices_gml/extensions/googleplayservices/AndroidSource/Java/YYGooglePlayServices.java new file mode 100644 index 0000000..11a35b9 --- /dev/null +++ b/source/GooglePlayServices_gml/extensions/googleplayservices/AndroidSource/Java/YYGooglePlayServices.java @@ -0,0 +1,1497 @@ + +package ${YYAndroidPackageName}; + +import ${YYAndroidPackageName}.R; +import com.yoyogames.runner.RunnerJNILib; + +import android.os.Bundle; +import android.content.Context; +import android.app.Activity; +import android.util.Log; +import android.content.Intent; +import android.widget.AbsoluteLayout; +import android.view.ViewGroup; +import android.view.View; +import androidx.annotation.NonNull;//import android.support.annotation.NonNull; +import android.net.Uri; +import android.graphics.Bitmap; +import android.widget.ImageView; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.BitmapFactory; +import android.graphics.drawable.Drawable; +import android.content.ContextWrapper; +import android.os.Build; +import android.widget.Toast; +import android.os.Environment; + +import java.lang.Exception; +import java.lang.Boolean; +import java.lang.Void; +import java.io.File; +import java.io.FileOutputStream; +import java.util.HashMap; + + +import org.json.JSONObject; +import org.json.JSONArray; + +import java.util.ArrayList; + +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.Task; +import com.google.android.gms.tasks.OnFailureListener; +import com.google.android.gms.tasks.OnSuccessListener; + +import com.google.android.gms.auth.api.Auth; + +import com.google.android.gms.auth.api.signin.GoogleSignIn; +import com.google.android.gms.auth.api.signin.GoogleSignInClient; +import com.google.android.gms.auth.api.signin.GoogleSignInResult; +import com.google.android.gms.auth.api.signin.GoogleSignInAccount; +import com.google.android.gms.auth.api.signin.GoogleSignInOptions; + +import com.google.android.gms.games.Game; +import com.google.android.gms.games.Games; +import com.google.android.gms.games.AnnotatedData; +import com.google.android.gms.games.GamesClient; +import com.google.android.gms.games.Player; +import com.google.android.gms.games.PlayerBuffer; +import com.google.android.gms.games.PlayersClient; + +import com.google.android.gms.games.achievement.Achievement; +import com.google.android.gms.games.achievement.AchievementBuffer; + +import com.google.android.gms.games.LeaderboardsClient; +import com.google.android.gms.games.leaderboard.Leaderboard; +import com.google.android.gms.games.leaderboard.LeaderboardScore; +import com.google.android.gms.games.leaderboard.ScoreSubmissionData; +import com.google.android.gms.games.leaderboard.LeaderboardVariant; +import com.google.android.gms.games.leaderboard.LeaderboardScoreBuffer; + +import com.google.android.gms.games.SnapshotsClient; +import com.google.android.gms.games.SnapshotsClient.DataOrConflict; +import com.google.android.gms.games.SnapshotsClient.SnapshotConflict; +import com.google.android.gms.games.snapshot.SnapshotMetadata; +import com.google.android.gms.games.snapshot.Snapshot; +import com.google.android.gms.games.snapshot.SnapshotContents; +import com.google.android.gms.games.snapshot.SnapshotMetadataChange; +import com.google.android.gms.games.snapshot.SnapshotEntity; +import com.google.android.gms.games.snapshot.SnapshotMetadataBuffer; +import com.google.android.gms.games.snapshot.SnapshotMetadataChange; +import com.google.android.gms.games.snapshot.SnapshotMetadataEntity; + +import com.google.android.gms.common.images.ImageManager; +import com.google.android.gms.common.images.ImageManager.OnImageLoadedListener; + +import com.google.android.gms.common.api.Scope; + +import com.google.android.gms.drive.Drive; + +import com.google.android.gms.common.GoogleApiAvailability; +import com.google.android.gms.common.ConnectionResult; + +public class YYGooglePlayServices extends RunnerSocial +{ + private static final int EVENT_OTHER_SOCIAL = 70; + private GoogleSignInClient mGoogleSignInClient = null; + private GoogleSignInAccount signedInAccount = null; + private Player mPlayer = null; + private SnapshotsClient mSnapshotsClient; + private HashMap mapSnapshot; + + private static Activity activity; + private static final int RC_SIGN_IN = 328; + + + int Ind; + + public YYGooglePlayServices() + { + Ind = 1; + activity = RunnerActivity.CurrentActivity; + mapSnapshot = new HashMap(); + + int ms = 500; + if(Build.VERSION.SDK_INT <= 8) + ms = 3000;// 3 seconds + + if(GooglePlayServices_IsSignedIn() < 0.5)//if not signedin + { + new java.util.Timer().schedule( new java.util.TimerTask() + { + @Override + public void run() + { + GooglePlayServices_signInSilently(); + } + },ms); + } + } + + @Override + public void onResume() + { + int ms = 500; + if(Build.VERSION.SDK_INT <= 8) + ms = 3000;// 3 seconds + + if(GooglePlayServices_IsSignedIn() < 0.5)//if not signedin + { + new java.util.Timer().schedule( new java.util.TimerTask() + { + @Override + public void run() + { + GooglePlayServices_signInSilently(); + } + },ms); + } + } + + public double GooglePlayServices_IsAvailable() + { + return (double) GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(activity) == ConnectionResult.SUCCESS ?1.0:0.0; + } + + private void signin_success(GoogleSignInAccount GoogleSignInAccount_) + { + try + { + signedInAccount = GoogleSignInAccount_; + + if(GooglePlayServices_IsSignedIn() > 0.5) + { + GooglePlayServices_setViewForPopups(); + mSnapshotsClient = Games.getSnapshotsClient(activity,signedInAccount); + } + } + catch(Exception e) + { + Log.e("yoyo", e.getMessage(), e); + } + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) + { + + super.onActivityResult(requestCode, resultCode, data); + + int dsMapIndex; + + switch(requestCode) + { + + case RC_SIGN_IN: + + dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_SignIn" ); + + GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); + + boolean ok = false; + if(result != null) + if(result.isSuccess()) + ok = true; + + if(ok) + { + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 1 ); + signin_success(result.getSignInAccount()); + } + else + { + RunnerJNILib.DsMapAddString(dsMapIndex, "errorMessage:",result.getStatus().getStatusMessage()); + RunnerJNILib.DsMapAddDouble(dsMapIndex, "errorCode:",(double) resultCode); + RunnerJNILib.DsMapAddDouble(dsMapIndex, "success", 0 ); + } + + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + + + break; + + case RC_SAVED_GAMES: + + if(data == null) + { + dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_SavedGames_ShowSavedGamesUI_OnExit"); + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + else + { + if (data.hasExtra(SnapshotsClient.EXTRA_SNAPSHOT_METADATA)) + { + SnapshotMetadata snapshotMetadata = data.getParcelableExtra(SnapshotsClient.EXTRA_SNAPSHOT_METADATA); + dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_SavedGames_ShowSavedGamesUI_OnOpen"); + RunnerJNILib.DsMapAddString( dsMapIndex, "snapshotMetadata", SnapshotMetadataJSON(snapshotMetadata)); + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + GooglePlayServices_SavedGames_Open(snapshotMetadata.getUniqueName()); + } + else + if (data.hasExtra(SnapshotsClient.EXTRA_SNAPSHOT_NEW)) + { + dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_SavedGames_ShowSavedGamesUI_OnNew"); + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + } + + break; + + /* + case RC_GETPLAYERSEARCHINTENT: + break; + + case RC_ACHIEVEMENT_UI: + break; + + + case RC_LEADERBOARD_UI: + break; + */ + } + } + + ////////////////////////////////////////////////////////////////Sign In + + public double GooglePlayServices_IsSignedIn() + { + if(GoogleSignIn.getLastSignedInAccount(activity) != null && signedInAccount != null) + return 1.0; + else + return 0.0; + } + + + public void GooglePlayServices_signInSilently() + { + GoogleSignInClient signInClient = GooglePlayServices_signInClient(); + signInClient.silentSignIn().addOnCompleteListener(activity,new OnCompleteListener() + { + @Override + public void onComplete(@NonNull Task task) + { + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_SignIn" ); + + if (task.isSuccessful()) + { + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 1 ); + signin_success(task.getResult()); + } + else + { + Exception exception = task.getException(); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 0 ); + } + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + }); + } + + + public void GooglePlayServices_StartSignInIntent() + { + Log.i("yoyo","GooglePlayServices_StartSignInIntent"); + GoogleSignInClient signInClient = GooglePlayServices_signInClient(); + Intent intent = signInClient.getSignInIntent(); + activity.startActivityForResult(intent, RC_SIGN_IN); + } + + + public void GooglePlayServices_SignOut() + { + GoogleSignInClient signInClient = GooglePlayServices_signInClient(); + signInClient.signOut().addOnCompleteListener(activity,new OnCompleteListener() + { + @Override + public void onComplete(@NonNull Task task) + { + // at this point, the user is signed out. + + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_SignOut" ); + + if (task.isSuccessful()) + { + // Task completed successfully + task.getResult(); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 1 ); + } + else + { + // Task failed with an exception + Exception exception = task.getException(); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 0 ); + } + + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + }); + } + + public void GooglePlayServices_RevokeAccess() + { + GoogleSignInClient signInClient = GooglePlayServices_signInClient(); + signInClient.revokeAccess().addOnCompleteListener(activity,new OnCompleteListener() + { + @Override + public void onComplete(@NonNull Task task) + { + // at this point, the user is signed out. + + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_RevokeAccess" ); + + if (task.isSuccessful()) + { + // Task completed successfully + task.getResult(); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 1 ); + } + else + { + // Task failed with an exception + Exception exception = task.getException(); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 0 ); + } + + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + + } + }); + } + //////////////////////////////////////////////////////////// Account Info + + public String GooglePlayServices_GetAccount() + { + // https://developers.google.com/android/reference/com/google/android/gms/auth/api/signin/GoogleSignInAccount + HashMap map = new HashMap(); + + if(signedInAccount.getDisplayName()!=null) + map.put("displayName",signedInAccount.getDisplayName()); + if(signedInAccount.getEmail()!=null) + map.put("email",signedInAccount.getEmail()); + if(signedInAccount.getFamilyName()!=null) + map.put("familyName",signedInAccount.getFamilyName()); + if(signedInAccount.getGivenName()!=null) + map.put("givenName",signedInAccount.getGivenName()); + if(signedInAccount.getIdToken()!=null) + map.put("IdToken",signedInAccount.getIdToken()); + if(signedInAccount.getPhotoUrl()!=null) + map.put("photoUrl",signedInAccount.getPhotoUrl().toString()); + if(signedInAccount.getServerAuthCode()!=null) + map.put("serverAuthCode",signedInAccount.getServerAuthCode()); + + JSONObject obj = new JSONObject(map); + + return obj.toString(); + } + + //////////////////////////////////////////////////////////////////Player Info + + //https://developers.google.com/android/reference/com/google/android/gms/games/PlayersClient + public void GooglePlayServices_Player_Current() + { + PlayersClient playersClient = Games.getPlayersClient(activity, signedInAccount); + playersClient.getCurrentPlayer().addOnCompleteListener(new OnCompleteListener() + { + @Override + public void onComplete(@NonNull Task task) + { + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_Player_Current" ); + + if (task.isSuccessful()) + { + // Task completed successfully + Player mPlayer = task.getResult(); + + RunnerJNILib.DsMapAddString( dsMapIndex, "player", PlayerJSON(mPlayer) ); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 1 ); + } + else + { + // Task failed with an exception + Exception exception = task.getException(); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 0 ); + } + + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + }); + } + + + public void GooglePlayServices_Player_CurrentID() + { + PlayersClient playersClient = Games.getPlayersClient(activity, signedInAccount); + playersClient.getCurrentPlayerId().addOnCompleteListener(new OnCompleteListener() + { + @Override + public void onComplete(@NonNull Task task) + { + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString(dsMapIndex,"type", "GooglePlayServices_Player_CurrentID"); + + if (task.isSuccessful()) + { + String PlayerID = task.getResult(); + RunnerJNILib.DsMapAddString(dsMapIndex,"playerID",PlayerID); + RunnerJNILib.DsMapAddDouble(dsMapIndex,"success",1); + } + else + { + Exception exception = task.getException(); + RunnerJNILib.DsMapAddDouble(dsMapIndex,"success",0); + } + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex,EVENT_OTHER_SOCIAL); + } + }); + } + + + ////////////////////////////////////////////////////////////////////////////////Achievements + + private static final int RC_ACHIEVEMENT_UI = 9003; + public void GooglePlayServices_Achievements_Show() + { + + Games.getAchievementsClient(activity, signedInAccount).getAchievementsIntent().addOnSuccessListener(new OnSuccessListener() + { + @Override + public void onSuccess(Intent intent) + { + activity.startActivityForResult(intent,RC_ACHIEVEMENT_UI); + } + }); + + } + + public void GooglePlayServices_Achievements_Increment(final String arch_id,double steps) + { + Games.getAchievementsClient(activity, signedInAccount).incrementImmediate(arch_id, (int)steps).addOnCompleteListener(new OnCompleteListener() + { + @Override + public void onComplete(@NonNull Task task) + { + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_Achievements_Increment" ); + RunnerJNILib.DsMapAddString( dsMapIndex, "achievement_id", arch_id); + + if (task.isSuccessful()) + { + task.getResult(); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 1 ); + } + else + { + Exception exception = task.getException(); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 0 ); + } + + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + }); + } + + public void GooglePlayServices_Achievements_Reveal(final String arch_id) + { + Games.getAchievementsClient(activity, signedInAccount).revealImmediate(arch_id).addOnCompleteListener(new OnCompleteListener() + { + @Override + public void onComplete(@NonNull Task task) + { + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_Achievements_Reveal" ); + RunnerJNILib.DsMapAddString( dsMapIndex, "achievement_id", arch_id); + + if (task.isSuccessful()) + { + task.getResult(); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 1 ); + } + else + { + Exception exception = task.getException(); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 0 ); + } + + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + }); + } + + public void GooglePlayServices_Achievements_SetSteps(final String arch_id,double steps) + { + Games.getAchievementsClient(activity, signedInAccount).setStepsImmediate(arch_id, (int)steps).addOnCompleteListener(new OnCompleteListener() + { + @Override + public void onComplete(@NonNull Task task) + { + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_Achievements_SetSteps" ); + RunnerJNILib.DsMapAddString( dsMapIndex, "achievement_id", arch_id); + + if (task.isSuccessful()) + { + task.getResult(); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 1 ); + } + else + { + Exception exception = task.getException(); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 0 ); + } + + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + }); + } + + public void GooglePlayServices_Achievements_Unlock(final String arch_id) + { + Games.getAchievementsClient(activity, signedInAccount).unlockImmediate(arch_id).addOnCompleteListener(new OnCompleteListener() + { + @Override + public void onComplete(@NonNull Task task) + { + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_Achievements_Unlock" ); + RunnerJNILib.DsMapAddString( dsMapIndex, "achievement_id", arch_id); + + if (task.isSuccessful()) + { + task.getResult(); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 1 ); + } + else + { + Exception exception = task.getException(); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 0 ); + } + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + }); + } + + + public void GooglePlayServices_Achievements_GetStatus(double force_reload) + { + Games.getAchievementsClient(activity, signedInAccount).load(force_reload >= 0.5).addOnCompleteListener(new OnCompleteListener>() + { + @Override + public void onComplete(@NonNull Task> task) + { + AnnotatedData mAnnotated = task.getResult(); + AchievementBuffer mAchievementBuffer = mAnnotated.get(); + + try + { + JSONArray list = new JSONArray(); + + for(Achievement achievement : mAchievementBuffer) + { + //https://developers.google.com/android/reference/com/google/android/gms/games/achievement/Achievement + JSONObject map = new JSONObject(); + + map.put("id",achievement.getAchievementId()); + map.put("description",achievement.getDescription()); + map.put("lastUpdatedTimestamp",(double)achievement.getLastUpdatedTimestamp()); + map.put("name",achievement.getName()); + map.put("revealedImage",achievement.getRevealedImageUri().toString()); + map.put("state",(double)achievement.getState()); + map.put("typeAchievement",(double)achievement.getType()); + map.put("unlockedImage",achievement.getUnlockedImageUri().toString()); + map.put("xpValue",(double)achievement.getXpValue()); + + if(achievement.getType() == Achievement.TYPE_INCREMENTAL) + { + map.put("currentSteps",(double)achievement.getCurrentSteps()); + map.put("formattedCurrentSteps",achievement.getFormattedCurrentSteps()); + map.put("formattedTotalSteps",achievement.getFormattedTotalSteps()); + map.put("totalSteps",(double)achievement.getTotalSteps()); + } + + list.put(map); + } + + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_Achievements_GetStatus"); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", task.isSuccessful()? 1:0); + RunnerJNILib.DsMapAddString( dsMapIndex, "data", list.toString()); + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + catch(Exception e) + { + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_Achievements_GetStatus"); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success",0); + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + } + }); + } + + + ///////////////////////////////////////////////////////////////////////////////Learderboards + + private static final int RC_LEADERBOARD_UI = 9004; + + public void GooglePlayServices_Leaderboard_ShowAll() + { + Games.getLeaderboardsClient(activity,signedInAccount).getAllLeaderboardsIntent().addOnSuccessListener(new OnSuccessListener() + { + @Override + public void onSuccess(Intent intent) + { + activity.startActivityForResult(intent, RC_LEADERBOARD_UI); + } + }); + } + + public void GooglePlayServices_Leaderboard_Show(String leader_id) + { + Games.getLeaderboardsClient(activity,signedInAccount).getLeaderboardIntent(leader_id).addOnSuccessListener(new OnSuccessListener() + { + @Override + public void onSuccess(Intent intent) + { + activity.startActivityForResult(intent, RC_LEADERBOARD_UI); + } + }); + } + + static String PlayerJSON(Player mPlayer) + { + + //https://developers.google.com/android/reference/com/google/android/gms/games/Player + + HashMap map = new HashMap(); + + if(mPlayer.getBannerImageLandscapeUri() != null) + map.put("bannerImageLandscapeUri",mPlayer.getBannerImageLandscapeUri().toString()); + if(mPlayer.getBannerImagePortraitUri() != null) + map.put("bannerImagePortraitUri",mPlayer.getBannerImagePortraitUri().toString()); + if(mPlayer.getDisplayName() != null) + map.put("displayName",mPlayer.getDisplayName()); + if(mPlayer.getHiResImageUri() != null) + map.put("hiResImageUri",mPlayer.getHiResImageUri().toString()); + if(mPlayer.getIconImageUri() != null) + map.put("iconImageUri",mPlayer.getIconImageUri().toString()); + //if(mPlayer.getLastPlayedWithTimestamp() != null) + map.put("lastPlayedWithTimestamp",(double)mPlayer.getLastPlayedWithTimestamp()); + //if(mPlayer.getLevelInfo().getCurrentXpTotal() != null) + map.put("currentXpTotal",(double)mPlayer.getLevelInfo().getCurrentXpTotal()); + //if(mPlayer.getLevelInfo().getLastLevelUpTimestamp() != null) + map.put("lastLevelUpTimestamp",(double)mPlayer.getLevelInfo().getLastLevelUpTimestamp()); + //if(mPlayer.getLevelInfo().getCurrentLevel().getLevelNumber() != null) + map.put("currentLevelNumber",(double)mPlayer.getLevelInfo().getCurrentLevel().getLevelNumber()); + //if(mPlayer.getLevelInfo().getCurrentLevel().getMaxXp() != null) + map.put("currentMaxXp",(double)mPlayer.getLevelInfo().getCurrentLevel().getMaxXp()); + //if(mPlayer.getLevelInfo().getCurrentLevel().getMinXp() != null) + map.put("currentMinXp",(double)mPlayer.getLevelInfo().getCurrentLevel().getMinXp()); + //if(mPlayer.getLevelInfo().getNextLevel().getLevelNumber() != null) + map.put("nextLevelNumber",(double)mPlayer.getLevelInfo().getNextLevel().getLevelNumber()); + //if(mPlayer.getLevelInfo().getNextLevel().getMaxXp() != null) + map.put("nextMaxXp",(double)mPlayer.getLevelInfo().getNextLevel().getMaxXp()); + //if(mPlayer.getLevelInfo().getNextLevel().getMinXp() != null) + map.put("nextMinXp",(double)mPlayer.getLevelInfo().getNextLevel().getMinXp()); + if(mPlayer.getPlayerId() != null) + map.put("playerId",mPlayer.getPlayerId()); + //if(mPlayer.getRetrievedTimestamp() != null) + map.put("retrievedTimestamp",(double)mPlayer.getRetrievedTimestamp()); + if(mPlayer.getTitle() != null) + map.put("title",mPlayer.getTitle()); + + if(mPlayer.hasHiResImage()) + map.put("hasHiResImage",(double)1.0); + else + map.put("hasHiResImage",(double)0.0); + + if(mPlayer.hasIconImage()) + map.put("hasIconImage",(double)1.0); + else + map.put("hasIconImage",(double)0.0); + + JSONObject obj = new JSONObject(map); + + return obj.toString(); + + } + + public void GooglePlayServices_Leaderboard_SubmitScore(final String leader_id,final double score,final String scoreTag) + { + Games.getLeaderboardsClient(activity,signedInAccount).submitScoreImmediate(leader_id,(long) score, scoreTag).addOnCompleteListener(new OnCompleteListener() + { + @Override + public void onComplete(@NonNull Task task) + { + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString(dsMapIndex, "type", "GooglePlayServices_Leaderboard_SubmitScore" ); + + RunnerJNILib.DsMapAddString(dsMapIndex,"leaderboardId",leader_id); + RunnerJNILib.DsMapAddDouble(dsMapIndex,"score",score); + RunnerJNILib.DsMapAddString(dsMapIndex,"scoreTag",scoreTag); + + if (task.isSuccessful()) + { + task.getResult(); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 1 ); + + ScoreSubmissionData result = task.getResult(); + + HashMap map = new HashMap(); + + ScoreSubmissionData.Result resultDaily = result.getScoreResult(LeaderboardVariant.TIME_SPAN_DAILY); + if(resultDaily != null) + { + HashMap period_map = new HashMap(); + period_map.put("isNewBest",(double)(resultDaily.newBest ? 1 : 0)); + period_map.put("score",(double)resultDaily.rawScore); + period_map.put("scoreTag",resultDaily.scoreTag); + map.put("daily",period_map); + } + + ScoreSubmissionData.Result resultWeekly = result.getScoreResult(LeaderboardVariant.TIME_SPAN_WEEKLY); + if(resultWeekly != null) + { + HashMap period_map = new HashMap(); + period_map.put("isNewBest",(double)(resultDaily.newBest ? 1 : 0)); + period_map.put("score",(double)resultDaily.rawScore); + period_map.put("scoreTag",resultDaily.scoreTag); + map.put("weekly",period_map); + } + + ScoreSubmissionData.Result resultAllTime = result.getScoreResult(LeaderboardVariant.TIME_SPAN_ALL_TIME); + if(resultAllTime != null) + { + HashMap period_map = new HashMap(); + period_map.put("isNewBest",(double)(resultDaily.newBest ? 1 : 0)); + period_map.put("score",(double)resultDaily.rawScore); + period_map.put("scoreTag",resultDaily.scoreTag); + map.put("allTime",period_map); + } + + RunnerJNILib.DsMapAddString(dsMapIndex,"report",(new JSONObject(map)).toString()); + } + else + { + Exception exception = task.getException(); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 0 ); + } + + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + }); + } + + String mClientID = ""; + public void GooglePlayServices_SetClientID(String clientID) + { + mClientID = clientID; + } + + + public String GooglePlayServices_GetServerAuthCode() + { + if(signedInAccount.getServerAuthCode() == null) + return "NULL"; + + return signedInAccount.getServerAuthCode(); + } + + static JSONObject LeaderboardScoreJSON(LeaderboardScore mLeaderboardScore) throws Exception + { + //https://developers.google.com/android/reference/com/google/android/gms/games/leaderboard/LeaderboardScore + JSONObject map = new JSONObject(); + if(mLeaderboardScore.getDisplayRank() != null) + map.put("displayRank",mLeaderboardScore.getDisplayRank()); + if(mLeaderboardScore.getDisplayScore() != null) + map.put("displayScore",mLeaderboardScore.getDisplayScore()); + //if(mLeaderboardScore.getRank() != null) + map.put("rank",(double)mLeaderboardScore.getRank()); + //if(mLeaderboardScore.getRawScore() != null) + map.put("rawScore",(double)mLeaderboardScore.getRawScore()); + if(PlayerJSON(mLeaderboardScore.getScoreHolder()) != null) + map.put("scoreHolder",PlayerJSON(mLeaderboardScore.getScoreHolder())); + if(mLeaderboardScore.getScoreHolderDisplayName() != null) + map.put("scoreHolderDisplayName",mLeaderboardScore.getScoreHolderDisplayName()); + if(mLeaderboardScore.getScoreHolderHiResImageUri() != null) + map.put("scoreHolderHiResImageUri",mLeaderboardScore.getScoreHolderHiResImageUri().toString()); + if(mLeaderboardScore.getScoreHolderIconImageUri() != null) + map.put("scoreHolderIconImageUri",mLeaderboardScore.getScoreHolderIconImageUri().toString()); + if(mLeaderboardScore.getScoreTag() != null) + map.put("scoreTag",mLeaderboardScore.getScoreTag()); + //if(mLeaderboardScore.getTimestampMillis() != null) + map.put("timestampMillis",(double)mLeaderboardScore.getTimestampMillis()); + return map; + } + + static String LeaderboardJSON(Leaderboard mLeaderboard) + { + //https://developers.google.com/android/reference/com/google/android/gms/games/leaderboard/Leaderboard + HashMap map = new HashMap(); + if(mLeaderboard.getDisplayName() != null) + map.put("displayName", mLeaderboard.getDisplayName()); + if(mLeaderboard.getIconImageUri() != null) + map.put("iconImageUri", mLeaderboard.getIconImageUri().toString()); + if(mLeaderboard.getLeaderboardId() != null) + map.put("leaderboardId", mLeaderboard.getLeaderboardId()); + //if(mLeaderboard.getScoreOrder() != null) + map.put("scoreOrder", mLeaderboard.getScoreOrder()); + //getVariants()//Not today . . . . + JSONObject obj = new JSONObject(map); + return obj.toString(); + } + + public void GooglePlayServices_Leaderboard_LoadPlayerCenteredScores(String leaderboardId, double span, double leaderboardCollection, double maxResults, double forceReload) + { + Games.getLeaderboardsClient(activity,signedInAccount) + .loadPlayerCenteredScores(leaderboardId, (int) span, (int) leaderboardCollection, (int) maxResults, forceReload >= 0.5) + .addOnCompleteListener(new OnCompleteListener>() + { + @Override + public void onComplete(@NonNull Task> task) + { + try + { + // This can thrown an extension needs to be inside the try/catch + LeaderboardsClient.LeaderboardScores mLeaderboardScores = task.getResult().get(); + + JSONArray list = new JSONArray(); + + LeaderboardScoreBuffer mLeaderboardScoreBuffer = mLeaderboardScores.getScores(); + for(LeaderboardScore mLeaderboardScore : mLeaderboardScoreBuffer) + { + JSONObject map = LeaderboardScoreJSON(mLeaderboardScore); + list.put(map); + } + + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString(dsMapIndex, "type", "GooglePlayServices_Leaderboard_LoadPlayerCenteredScores" ); + RunnerJNILib.DsMapAddDouble(dsMapIndex, "success", task.isSuccessful()? 1:0); + if(task.isSuccessful()) + { + RunnerJNILib.DsMapAddString( dsMapIndex, "leaderboard", LeaderboardJSON(mLeaderboardScores.getLeaderboard())); + RunnerJNILib.DsMapAddString( dsMapIndex, "data", list.toString()); + } + + // LeaderboardsClient.LeaderboardScores is a releasable object that needs to be release after use (causes memory leaks otherwise) + mLeaderboardScores.release(); + + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + catch(Exception e) + { + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString(dsMapIndex, "type", "GooglePlayServices_Leaderboard_LoadPlayerCenteredScores" ); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success",0); + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + } + }); + } + + public void GooglePlayServices_Leaderboard_LoadTopScores(String leaderboardId, double span, double leaderboardCollection, double maxResults, double forceReload) + { + Games.getLeaderboardsClient(activity,signedInAccount) + .loadTopScores(leaderboardId, (int) span, (int) leaderboardCollection, (int) maxResults, forceReload >= 0.5) + .addOnCompleteListener(new OnCompleteListener>() + { + @Override + public void onComplete(@NonNull Task> task) + { + try + { + // This can thrown an extension needs to be inside the try/catch + LeaderboardsClient.LeaderboardScores mLeaderboardScores = task.getResult().get(); + + JSONArray list = new JSONArray(); + + LeaderboardScoreBuffer mLeaderboardScoreBuffer = mLeaderboardScores.getScores(); + for(LeaderboardScore mLeaderboardScore : mLeaderboardScoreBuffer) + { + JSONObject map = LeaderboardScoreJSON(mLeaderboardScore); + list.put(map); + } + + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString(dsMapIndex, "type", "GooglePlayServices_Leaderboard_LoadTopScores" ); + RunnerJNILib.DsMapAddDouble(dsMapIndex, "success", task.isSuccessful()? 1:0); + if(task.isSuccessful()) + { + RunnerJNILib.DsMapAddString( dsMapIndex, "leaderboard", LeaderboardJSON(mLeaderboardScores.getLeaderboard())); + RunnerJNILib.DsMapAddString( dsMapIndex, "data", list.toString()); + } + + // LeaderboardsClient.LeaderboardScores is a releasable object that needs to be release after use (causes memory leaks otherwise) + mLeaderboardScores.release(); + + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + catch(Exception e) + { + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString(dsMapIndex, "type", "GooglePlayServices_Leaderboard_LoadTopScores" ); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success",0); + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + } + }); + + } + +/////////////////////////////////////////////////////////////////// TOOLS + + private GoogleSignInClient GooglePlayServices_signInClient() + { + GoogleSignInOptions.Builder optionsBuilder = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN); + optionsBuilder.requestScopes(Games.SCOPE_GAMES); + if(IniBundle.DoSetupIniFile(activity,"GooglePlayServices").getBoolean("SavedGames")) + optionsBuilder.requestScopes(Drive.SCOPE_APPFOLDER); + + // optionsBuilder.requestProfile(); + // optionsBuilder.requestEmail(); + // optionsBuilder.requestId(); + + if(!mClientID.equals("")) + optionsBuilder.requestServerAuthCode(mClientID); + + //https://developers.google.com/android/reference/com/google/android/gms/auth/api/signin/GoogleSignInOptions.Builder + GoogleSignInOptions googleSignInOptions = optionsBuilder.build(); + + Scope[] mScoreArray = googleSignInOptions.getScopeArray(); + for(Scope mScope : mScoreArray) + Log.i("yoyo",mScope.toString()); + + return(GoogleSignIn.getClient(activity, googleSignInOptions)); + } + + private void GooglePlayServices_setViewForPopups() + { + View layout = (View)RunnerActivity.CurrentActivity.findViewById(R.layout.main); + ViewGroup vg = (ViewGroup)layout; + + GamesClient gamesClient = Games.getGamesClient(activity,signedInAccount); + gamesClient.setViewForPopups(vg); + } + + + public double GooglePlayServices_UriToPath(String uriString) + { + double ind = (double) Ind; + Ind++; + + (new Obj_UriToPath()).UriToPath(uriString,ind); + + return(ind); + } + + private class Obj_UriToPath + { + public void UriToPath(final String uriString,final double ind) + { + if (Build.VERSION.SDK_INT >= 11) + activity.runOnUiThread(new Runnable() + { + @Override + public void run() + { + Uri uri = Uri.parse(uriString); + try + { + ImageView mImageView = new ImageView(activity); + ImageManager mgr = ImageManager.create(activity); + mgr.loadImage(new OnImageLoadedListener() + { + @Override + public void onImageLoaded (Uri uri, Drawable drawable, boolean isRequestedDrawable) + { + try + { + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_UriToPath" ); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "ind", ind ); + + if(isRequestedDrawable) + { + Bitmap mBitmap = ((BitmapDrawable)drawable).getBitmap(); + + ContextWrapper cw = new ContextWrapper(activity.getApplicationContext()); + File directory = cw.getDir("profile", Context.MODE_PRIVATE); + + if (!directory.exists()) + directory.mkdir(); + + File mypath = new File(directory, "thumbnail"+String.valueOf(ind)+".png"); + + String path = mypath.getPath(); + + FileOutputStream fos = null; + + fos = new FileOutputStream(mypath); + mBitmap.compress(Bitmap.CompressFormat.PNG, 100, fos); + + fos.close(); + + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success",1); + RunnerJNILib.DsMapAddString( dsMapIndex, "path", path ); + + } + else + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success",0); + + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + + } + catch(Exception e) + { + Log.e("yoyo", "URI2PATH failed: " +e.getMessage()); + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_UriToPath" ); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "ind", ind ); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success",0); + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + } + },uri); + } + catch(Exception e) + { + Log.e("yoyo", "URI2PATH failed: " +e.getMessage()); + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_UriToPath" ); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "ind", ind ); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success",0); + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + } + }); + } + } + + ///////////////////////////////////////////Saved Games + + + private String SnapshotMetadataJSON(SnapshotMetadata mSnapshotMetadata) + { + return SnapshotMetadataJSONObj(mSnapshotMetadata).toString(); + } + + private JSONObject SnapshotMetadataJSONObj(SnapshotMetadata mSnapshotMetadata) + { + //https://developers.google.com/android/reference/com/google/android/gms/games/snapshot/SnapshotMetadata + HashMap map = new HashMap(); + + //if(mSnapshotMetadata.getCoverImageAspectRatio() != null) + map.put("coverImageAspectRatio",(double)mSnapshotMetadata.getCoverImageAspectRatio()); + if(mSnapshotMetadata.getCoverImageUri() != null) + map.put("coverImageUri",mSnapshotMetadata.getCoverImageUri().toString()); + if(mSnapshotMetadata.getDescription() != null) + map.put("description",mSnapshotMetadata.getDescription()); + if(mSnapshotMetadata.getDeviceName() != null) + map.put("deviceName",mSnapshotMetadata.getDeviceName()); + map.put("game",gameJSON(mSnapshotMetadata.getGame())); + //if(mSnapshotMetadata.getLastModifiedTimestamp() != null) + map.put("lastModifiedTimestamp",(double)mSnapshotMetadata.getLastModifiedTimestamp()); + //if( != null) + map.put("owner",PlayerJSON(mSnapshotMetadata.getOwner())); + //if(mSnapshotMetadata.getPlayedTime() != null) + map.put("playedTime",(double)mSnapshotMetadata.getPlayedTime()); + //if(mSnapshotMetadata.getProgressValue() != null) + map.put("progressValue",(double)mSnapshotMetadata.getProgressValue()); + if(mSnapshotMetadata.getUniqueName() != null) + map.put("uniqueName",mSnapshotMetadata.getUniqueName()); + + if(mSnapshotMetadata.hasChangePending()) + map.put("hasChangePending",(double) 1.0); + else + map.put("hasChangePending",(double) 0.0); + + JSONObject obj = new JSONObject(map); + + return obj; + } + + private static final int RC_SAVED_GAMES = 9009; + public void GooglePlayServices_SavedGames_ShowSavedGamesUI(String title, double button_add, double button_delete, double max) + { + try + { + boolean button_add_; + if(button_add > 0.5) + button_add_ = true; + else + button_add_ = false; + + boolean button_delete_; + if(button_delete > 0.5) + button_delete_ = true; + else + button_delete_ = false; + + mSnapshotsClient.getSelectSnapshotIntent(title, button_add_, button_delete_, (int)max).addOnSuccessListener(new OnSuccessListener() + { + @Override + public void onSuccess(Intent intent) + { + activity.startActivityForResult(intent, RC_SAVED_GAMES); + } + }); + } + catch(Exception e) + { + Log.e("yoyo", e.getMessage(), e); + } + } + + + public void GooglePlayServices_SavedGames_CommitAndClose(String name , final String desc, final String data,final String pathConverIamge) // Snapshot snapshot,byte[] data, Bitmap coverImage + { + boolean data_Ok; + byte[] data_; + try + { + data_ = data.getBytes("UTF-8"); + data_Ok = true; + } + catch(Exception e) + { + data_Ok = false; + data_ = null; + } + + if (data_Ok) + { + Snapshot snapshot = mapSnapshot.get(name); + snapshot.getSnapshotContents().writeBytes(data_); + + SnapshotMetadataChange.Builder metadataChange_builder = new SnapshotMetadataChange.Builder(); + + String localImgPath = activity.getFilesDir() + "/" + pathConverIamge; + File imgFile = new File(localImgPath); + + if(desc != "") + metadataChange_builder.setDescription(desc); + + if(imgFile.exists()) + { + Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath()); + if(myBitmap != null) + metadataChange_builder.setCoverImage(myBitmap); + } + + SnapshotMetadataChange metadataChange = metadataChange_builder.build(); + + mSnapshotsClient.commitAndClose(snapshot, metadataChange).addOnCompleteListener(new OnCompleteListener() + { + @Override + public void onComplete(@NonNull Task task) + { + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_SavedGames_CommitAndClose" ); + + if (task.isSuccessful()) + { + SnapshotMetadata snapshotMetadata = task.getResult(); + RunnerJNILib.DsMapAddString( dsMapIndex, "snapshotMetadata", SnapshotMetadataJSON(snapshotMetadata)); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 1 ); + } + else + { + Exception exception = task.getException(); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 0 ); + } + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + }); + + } + + } + + public void GooglePlayServices_SavedGames_CommitNew(String name, final String desc, final String data,final String pathConverIamge) // Snapshot snapshot,byte[] data, Bitmap coverImage + { + boolean createIfNotFound = true; + double conflictPolicy = 1; + + + mSnapshotsClient.open(name,createIfNotFound,(int)conflictPolicy).addOnCompleteListener(new OnCompleteListener >() + { + @Override + public void onComplete(@NonNull Task> task) + { + boolean data_Ok; + byte[] data_; + try + { + data_ = data.getBytes("UTF-8"); + data_Ok = true; + } + catch(Exception e) + { + data_Ok = false; + data_ = null; + } + + if(task.isSuccessful() && !task.getResult().isConflict() && data_Ok) + { + DataOrConflict mDataOrConflict = task.getResult(); + Snapshot snapshot = (Snapshot)mDataOrConflict.getData(); + mapSnapshot.put(snapshot.getMetadata().getUniqueName(),snapshot); + snapshot.getSnapshotContents().writeBytes(data_); + + SnapshotMetadataChange.Builder metadataChange_builder = new SnapshotMetadataChange.Builder(); + metadataChange_builder.setDescription(desc); + + if(pathConverIamge != "") + { + String localImgPath = activity.getFilesDir() + "/" + pathConverIamge; + File imgFile = new File(localImgPath); + + if(imgFile.exists()) + { + Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath()); + if(myBitmap != null) + metadataChange_builder.setCoverImage(myBitmap); + } + } + + SnapshotMetadataChange metadataChange = metadataChange_builder.build(); + + mSnapshotsClient.commitAndClose(snapshot, metadataChange).addOnCompleteListener(new OnCompleteListener() + { + @Override + public void onComplete(@NonNull Task task) + { + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_SavedGames_CommitNew" ); + + if (task.isSuccessful()) + { + SnapshotMetadata snapshotMetadata = task.getResult(); + RunnerJNILib.DsMapAddString( dsMapIndex, "snapshotMetadata", SnapshotMetadataJSON(snapshotMetadata)); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 1 ); + } + else + { + Exception exception = task.getException(); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 0 ); + Log.i("yoyo",exception.getMessage()); + } + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + }); + } + else + { + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_SavedGames_CommitNew" ); + + Exception exception = task.getException(); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 0 ); + + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + } + }); + } + + public void GooglePlayServices_SavedGames_Load(final double forceReload) + { + boolean forceReload_ = forceReload >= 0.5; + mSnapshotsClient.load(forceReload_).addOnCompleteListener(new OnCompleteListener>() + { + @Override + public void onComplete(@NonNull Task> task) + { + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_SavedGames_Load"); + + if(!task.isSuccessful()) + { + RunnerJNILib.DsMapAddDouble(dsMapIndex,"success",0.0); + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + return; + } + + RunnerJNILib.DsMapAddDouble(dsMapIndex,"success",1.0); + + AnnotatedData mAnnotatedData = task.getResult(); + SnapshotMetadataBuffer mSnapshotMetadataBuffer = (SnapshotMetadataBuffer) mAnnotatedData.get(); + + JSONArray snapshots = new JSONArray(); + for(SnapshotMetadata mSnapshotMetadata : mSnapshotMetadataBuffer) + snapshots.put(SnapshotMetadataJSONObj(mSnapshotMetadata)); + + RunnerJNILib.DsMapAddString(dsMapIndex,"snapshots", snapshots.toString()); + + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + }); + } + + public void GooglePlayServices_SavedGames_Open(String fileName) + { + double createIfNotFound = 0; + double conflictPolicy = 1; + + boolean createIfNotFound_; + + if(createIfNotFound >= 0.5) + createIfNotFound_ = true; + else + createIfNotFound_ = false; + + mSnapshotsClient.open(fileName,createIfNotFound_,(int) conflictPolicy).addOnCompleteListener(new OnCompleteListener>() + { + @Override + public void onComplete(@NonNull Task>task) + { + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_SavedGames_Open" ); + + if(!task.isSuccessful()) + { + Exception exception = task.getException(); + Log.i("yoyo","GooglePlayServices_SavedGames_Open ERROR:" + exception.getMessage()); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 0 ); + return; + } + + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success",1); + DataOrConflict mDataOrConflict = task.getResult(); + Snapshot mSnapshot = (Snapshot) mDataOrConflict.getData(); + mapSnapshot.put(mSnapshot.getMetadata().getUniqueName(),mSnapshot); + + RunnerJNILib.DsMapAddString( dsMapIndex, "snapshotMetadata", SnapshotMetadataJSON(mSnapshot.getMetadata())); + + try + { + SnapshotContents mSnapshotContents = mSnapshot.getSnapshotContents(); + byte[] mDataInBytes = mSnapshotContents.readFully(); + String dataString = new String(mDataInBytes, "UTF-8"); + RunnerJNILib.DsMapAddString( dsMapIndex, "data", dataString); + } + catch(Exception e) + {} + + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + }); + } + + public void GooglePlayServices_SavedGames_Delete(String fileName) + { + Snapshot mSnapshot = (Snapshot) mapSnapshot.get(fileName); + SnapshotMetadata mSnapshotMetadata = mSnapshot.getMetadata(); + + mSnapshotsClient.delete(mSnapshotMetadata).addOnCompleteListener(new OnCompleteListener() + { + @Override + public void onComplete(@NonNull Tasktask) + { + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_SavedGames_Delete" ); + + if (task.isSuccessful()) + { + String snapshotID = task.getResult(); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 1 ); + RunnerJNILib.DsMapAddString( dsMapIndex, "snapshotID.", snapshotID); + } + else + { + Exception exception = task.getException(); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 0 ); + Log.i("yoyo","GooglePlayServices_SavedGames_Delete FAIL: " + exception.getMessage()); + } + + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + }); + } + + + public void GooglePlayServices_SavedGames_DiscardAndClose(String fileName) + { + Snapshot mSnapshot = (Snapshot) mapSnapshot.get(fileName); + mSnapshotsClient.discardAndClose(mSnapshot).addOnCompleteListener(new OnCompleteListener() + { + @Override + public void onComplete(@NonNull Tasktask) + { + int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null); + RunnerJNILib.DsMapAddString( dsMapIndex, "type", "GooglePlayServices_SavedGames_DiscardAndClose" ); + + if (task.isSuccessful()) + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 1); + else + { + Exception exception = task.getException(); + Log.i("yoyo","GooglePlayServices_SavedGames_DiscardAndClose FAIL: " + exception.getMessage()); + RunnerJNILib.DsMapAddDouble( dsMapIndex, "success", 0 ); + } + + RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL); + } + }); + } + + static String gameJSON(Game mGame) + { + HashMap map = new HashMap(); + + if(mGame.areSnapshotsEnabled()) + map.put("areSnapshotsEnabled",(double) 1); + else + map.put("areSnapshotsEnabled",(double) 0); + + map.put("achievementTotalCount",(double)mGame.getAchievementTotalCount()); + map.put("applicationId",mGame.getApplicationId()); + map.put("description",mGame.getDescription()); + map.put("developerName",mGame.getDeveloperName()); + if(mGame.getDisplayName() != null) + map.put("displayName",mGame.getDisplayName()); + if(mGame.getFeaturedImageUri() != null) + map.put("featuredImageUri",mGame.getFeaturedImageUri().toString()); + if(mGame.getHiResImageUri() != null) + map.put("hiResImageUri",mGame.getHiResImageUri().toString()); + if(mGame.getIconImageUri() != null) + map.put("iconImageUri",mGame.getIconImageUri().toString()); + map.put("leaderboardCount",mGame.getLeaderboardCount()); + map.put("primaryCategory",mGame.getPrimaryCategory()); + map.put("secondaryCategory",mGame.getSecondaryCategory()); + map.put("themeColor",mGame.getThemeColor()); + + if(mGame.hasGamepadSupport()) + map.put("gamepadSupport", 1); + else + map.put("gamepadSupport", 0); + + JSONObject obj = new JSONObject(map); + + return obj.toString(); + } + + + // Video Recorder + + private static final int RC_VIDEO_OVERLAY = 9011; + public void GooglePlayServices_VideoRecording_ShowVideoOverlay() + { + Games.getVideosClient(activity, GoogleSignIn.getLastSignedInAccount(activity)).getCaptureOverlayIntent().addOnSuccessListener(new OnSuccessListener() + { + @Override + public void onSuccess(Intent intent) + { + activity.startActivityForResult(intent, RC_VIDEO_OVERLAY); + } + }); + } +} + diff --git a/source/GooglePlayServices_gml/extensions/googleplayservices/GooglePlayService.ext b/source/GooglePlayServices_gml/extensions/googleplayservices/GooglePlayService.ext new file mode 100644 index 0000000..e69de29 diff --git a/source/GooglePlayServices_gml/extensions/googleplayservices/googleplayservices.yy b/source/GooglePlayServices_gml/extensions/googleplayservices/googleplayservices.yy new file mode 100644 index 0000000..947c206 --- /dev/null +++ b/source/GooglePlayServices_gml/extensions/googleplayservices/googleplayservices.yy @@ -0,0 +1,200 @@ +{ + "resourceType": "GMExtension", + "resourceVersion": "1.2", + "name": "GooglePlayServices", + "optionsFile": "options.json", + "options": [ + {"resourceType":"GMExtensionOption","resourceVersion":"1.0","name":"AppID","extensionId":null,"guid":"2333e839-6686-4c10-a29b-851041b2e067","displayName":"","listItems":[],"description":"","defaultValue":"","exportToINI":false,"hidden":false,"optType":2,}, + {"resourceType":"GMExtensionOption","resourceVersion":"1.0","name":"SavedGames","extensionId":null,"guid":"9a1bc5e1-1f6a-4128-bb77-f352c42a5bad","displayName":"","listItems":[],"description":"","defaultValue":"True","exportToINI":true,"hidden":false,"optType":0,}, + ], + "exportToGame": true, + "supportedTargets": -1, + "extensionVersion": "1.1.0", + "packageId": "", + "productId": "", + "author": "", + "date": "2019-02-24T11:17:00", + "license": "", + "description": "", + "helpfile": "", + "iosProps": false, + "tvosProps": false, + "androidProps": true, + "installdir": "", + "files": [ + {"resourceType":"GMExtensionFile","resourceVersion":"1.0","name":"","filename":"GooglePlayService.ext","origname":"","init":"","final":"","kind":4,"uncompress":false,"functions":[ + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_StartSignInIntent","externalName":"GooglePlayServices_StartSignInIntent","kind":4,"help":"GooglePlayServices_StartSignInIntent()","hidden":false,"returnType":1,"argCount":0,"args":[],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_IsSignedIn","externalName":"GooglePlayServices_IsSignedIn","kind":4,"help":"GooglePlayServices_IsSignedIn()","hidden":false,"returnType":2,"argCount":0,"args":[],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_SignOut","externalName":"GooglePlayServices_SignOut","kind":4,"help":"GooglePlayServices_SignOut()","hidden":false,"returnType":1,"argCount":0,"args":[],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_Achievements_Show","externalName":"GooglePlayServices_Achievements_Show","kind":4,"help":"GooglePlayServices_Achievements_Show()","hidden":false,"returnType":1,"argCount":0,"args":[],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_Achievements_Increment","externalName":"GooglePlayServices_Achievements_Increment","kind":4,"help":"GooglePlayServices_Achievements_Increment(arch_id,steps)","hidden":false,"returnType":1,"argCount":0,"args":[ + 1, + 2, + ],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_Achievements_Reveal","externalName":"GooglePlayServices_Achievements_Reveal","kind":4,"help":"GooglePlayServices_Achievements_Reveal(id)","hidden":false,"returnType":1,"argCount":0,"args":[ + 1, + ],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_Achievements_SetSteps","externalName":"GooglePlayServices_Achievements_SetSteps","kind":4,"help":"GooglePlayServices_Achievements_SetSteps(id,steps)","hidden":false,"returnType":1,"argCount":0,"args":[ + 1, + 2, + ],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_Achievements_Unlock","externalName":"GooglePlayServices_Achievements_Unlock","kind":4,"help":"GooglePlayServices_Achievements_Unlock(id)","hidden":false,"returnType":1,"argCount":0,"args":[ + 1, + ],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_Leaderboard_ShowAll","externalName":"GooglePlayServices_Leaderboard_ShowAll","kind":4,"help":"GooglePlayServices_Leaderboard_ShowAll()","hidden":false,"returnType":1,"argCount":0,"args":[],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_Leaderboard_Show","externalName":"GooglePlayServices_Leaderboard_Show","kind":4,"help":"GooglePlayServices_Leaderboard_Show(id)","hidden":false,"returnType":1,"argCount":0,"args":[ + 1, + ],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_Leaderboard_SubmitScore","externalName":"GooglePlayServices_Leaderboard_SubmitScore","kind":4,"help":"GooglePlayServices_Leaderboard_SubmitScore(leader_id,score,scoreTag)","hidden":false,"returnType":1,"argCount":0,"args":[ + 1, + 2, + 1, + ],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_GetAccount","externalName":"GooglePlayServices_GetAccount","kind":4,"help":"GooglePlayServices_GetAccount()","hidden":false,"returnType":1,"argCount":0,"args":[],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_SavedGames_ShowSavedGamesUI","externalName":"GooglePlayServices_SavedGames_ShowSavedGamesUI","kind":4,"help":"GooglePlayServices_SavedGames_ShowSavedGamesUI(tittle,buttonAdd,buttonDelete,max)","hidden":false,"returnType":1,"argCount":0,"args":[ + 1, + 2, + 2, + 2, + ],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_SavedGames_CommitAndClose","externalName":"GooglePlayServices_SavedGames_CommitAndClose","kind":4,"help":"GooglePlayServices_SavedGames_CommitAndClose(name,descripction,data,pathImage)","hidden":false,"returnType":1,"argCount":0,"args":[ + 1, + 1, + 1, + 1, + ],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_RevokeAccess","externalName":"GooglePlayServices_RevokeAccess","kind":4,"help":"GooglePlayServices_RevokeAccess()","hidden":false,"returnType":1,"argCount":0,"args":[],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_SavedGames_Load","externalName":"GooglePlayServices_SavedGames_Load","kind":4,"help":"GooglePlayServices_SavedGames_Load(forced)","hidden":false,"returnType":1,"argCount":0,"args":[ + 2, + ],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_SavedGames_Delete","externalName":"GooglePlayServices_SavedGames_Delete","kind":4,"help":"GooglePlayServices_SavedGames_Delete(name)","hidden":false,"returnType":1,"argCount":0,"args":[ + 1, + ],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_SavedGames_DiscardAndClose","externalName":"GooglePlayServices_SavedGames_DiscardAndClose","kind":4,"help":"GooglePlayServices_SavedGames_DiscardAndClose(fileName)","hidden":false,"returnType":1,"argCount":0,"args":[ + 1, + ],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_SavedGames_Open","externalName":"GooglePlayServices_SavedGames_Open","kind":4,"help":"GooglePlayServices_SavedGames_Open(fileName)","hidden":false,"returnType":1,"argCount":0,"args":[ + 1, + ],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_SavedGames_ResolveConflict","externalName":"GooglePlayServices_SavedGames_ResolveConflict","kind":4,"help":"GooglePlayServices_SavedGames_ResolveConflict()","hidden":false,"returnType":1,"argCount":0,"args":[],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_SavedGames_CommitNew","externalName":"GooglePlayServices_SavedGames_CommitNew","kind":4,"help":"GooglePlayServices_SavedGames_CommitNew(name,description,data,pathImage)","hidden":false,"returnType":1,"argCount":0,"args":[ + 1, + 1, + 1, + 1, + ],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_UserMessage","externalName":"GooglePlayServices_UserMessage","kind":4,"help":"GooglePlayServices_UserMessage(text)","hidden":false,"returnType":1,"argCount":0,"args":[ + 1, + ],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_Player_Current","externalName":"GooglePlayServices_Player_Current","kind":4,"help":"GooglePlayServices_Player_Current()","hidden":false,"returnType":1,"argCount":0,"args":[],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_VideoRecording_ShowVideoOverlay","externalName":"GooglePlayServices_VideoRecording_ShowVideoOverlay","kind":4,"help":"GooglePlayServices_VideoRecording_ShowVideoOverlay()","hidden":false,"returnType":1,"argCount":0,"args":[],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_Player_CurrentID","externalName":"GooglePlayServices_Player_CurrentID","kind":4,"help":"GooglePlayServices_Player_CurrentID()","hidden":false,"returnType":1,"argCount":0,"args":[],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_SetClientID","externalName":"GooglePlayServices_SetClientID","kind":4,"help":"GooglePlayServices_SetClientID(string)","hidden":false,"returnType":1,"argCount":0,"args":[ + 1, + ],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_GetServerAuthCode","externalName":"GooglePlayServices_GetServerAuthCode","kind":4,"help":"GooglePlayServices_GetServerAuthCode()","hidden":false,"returnType":1,"argCount":0,"args":[],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_UriToPath","externalName":"GooglePlayServices_UriToPath","kind":4,"help":"GooglePlayServices_UriToPath(uri)","hidden":false,"returnType":2,"argCount":0,"args":[ + 1, + ],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_IsAvailable","externalName":"GooglePlayServices_IsAvailable","kind":4,"help":"GooglePlayServices_IsAvailable()","hidden":false,"returnType":2,"argCount":0,"args":[],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_Achievements_GetStatus","externalName":"GooglePlayServices_Achievements_GetStatus","kind":4,"help":"GooglePlayServices_Achievements_GetStatus(force_reload)","hidden":false,"returnType":1,"argCount":0,"args":[ + 2, + ],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_Leaderboard_LoadPlayerCenteredScores","externalName":"GooglePlayServices_Leaderboard_LoadPlayerCenteredScores","kind":4,"help":"GooglePlayServices_Leaderboard_LoadPlayerCenteredScores(leaderboardId, span, leaderboardCollection, maxResults, forceReload)","hidden":false,"returnType":1,"argCount":0,"args":[ + 1, + 2, + 2, + 2, + 2, + ],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"GooglePlayServices_Leaderboard_LoadTopScores","externalName":"GooglePlayServices_Leaderboard_LoadTopScores","kind":4,"help":"GooglePlayServices_Leaderboard_LoadTopScores(leaderboardId, span, leaderboardCollection, maxResults, forceReload)","hidden":false,"returnType":1,"argCount":0,"args":[ + 1, + 2, + 2, + 2, + 2, + ],"documentation":"",}, + ],"constants":[ + {"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"Achievement_STATE_HIDDEN","value":"2","hidden":false,}, + {"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"Achievement_STATE_REVEALED","value":"1","hidden":false,}, + {"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"Achievement_STATE_UNLOCKED","value":"0","hidden":false,}, + {"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"Achievement_TYPE_INCREMENTAL","value":"1","hidden":false,}, + {"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"Achievement_TYPE_STANDARD","value":"0","hidden":false,}, + {"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"Leaderboard_TIME_SPAN_DAILY","value":"0","hidden":false,}, + {"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"Leaderboard_TIME_SPAN_WEEKLY","value":"1","hidden":false,}, + {"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"Leaderboard_TIME_SPAN_ALL_TIME","value":"2","hidden":false,}, + {"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"Leaderboard_COLLECTION_PUBLIC","value":"0","hidden":false,}, + {"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"Leaderboard_COLLECTION_SOCIAL","value":"1","hidden":false,}, + ],"ProxyFiles":[],"copyToTargets":8,"usesRunnerInterface":false,"order":[ + {"name":"GooglePlayServices_StartSignInIntent","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_IsSignedIn","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_RevokeAccess","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_SignOut","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_SetClientID","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_GetServerAuthCode","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_UriToPath","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_GetAccount","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_UserMessage","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_Player_Current","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_Player_CurrentID","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_Achievements_Show","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_Achievements_Increment","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_Achievements_Reveal","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_Achievements_SetSteps","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_Achievements_Unlock","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_Leaderboard_ShowAll","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_Leaderboard_Show","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_Leaderboard_SubmitScore","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_SavedGames_ShowSavedGamesUI","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_SavedGames_CommitAndClose","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_SavedGames_Delete","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_SavedGames_DiscardAndClose","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_SavedGames_Open","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_SavedGames_Load","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_SavedGames_ResolveConflict","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_SavedGames_CommitNew","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_VideoRecording_ShowVideoOverlay","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_IsAvailable","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_Achievements_GetStatus","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_Leaderboard_LoadPlayerCenteredScores","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + {"name":"GooglePlayServices_Leaderboard_LoadTopScores","path":"extensions/GooglePlayServices/GooglePlayServices.yy",}, + ],}, + ], + "classname": "", + "tvosclassname": "", + "tvosdelegatename": "", + "iosdelegatename": "", + "androidclassname": "YYGooglePlayServices", + "sourcedir": "", + "androidsourcedir": "", + "macsourcedir": "", + "maccompilerflags": "", + "tvosmaccompilerflags": "", + "maclinkerflags": "", + "tvosmaclinkerflags": "", + "iosplistinject": "", + "tvosplistinject": "", + "androidinject": "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n", + "androidmanifestinject": "", + "androidactivityinject": "", + "gradleinject": "\r\nandroid {\r\n lintOptions {\r\n checkReleaseBuilds false\r\n abortOnError false\r\n }\r\n}\r\n\r\n//https://developers.google.com/android/guides/setup\r\ndependencies {\r\n//https://developers.google.com/android/guides/releases\r\n implementation 'com.google.android.gms:play-services-auth:20.1.0'\r\n implementation 'com.google.android.gms:play-services-games:22.0.1'\r\n}\r\n\r\n", + "androidcodeinjection": "\r\n${YYEXTOPT_GooglePlayServices_AppID}\r\n\r\n\r\n\r\nandroid {\r\n lintOptions {\r\n checkReleaseBuilds false\r\n abortOnError false\r\n }\r\n}\r\n\r\n//https://developers.google.com/android/guides/setup\r\ndependencies {\r\n//https://developers.google.com/android/guides/releases\r\n implementation 'com.google.android.gms:play-services-auth:20.1.0'\r\n implementation 'com.google.android.gms:play-services-games:22.0.1'\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n", + "hasConvertedCodeInjection": true, + "ioscodeinjection": "", + "tvoscodeinjection": "", + "iosSystemFrameworkEntries": [], + "tvosSystemFrameworkEntries": [], + "iosThirdPartyFrameworkEntries": [], + "tvosThirdPartyFrameworkEntries": [], + "IncludedResources": [], + "androidPermissions": [], + "copyToTargets": 8, + "iosCocoaPods": "", + "tvosCocoaPods": "", + "iosCocoaPodDependencies": "", + "tvosCocoaPodDependencies": "", + "parent": { + "name": "GooglePlayServices", + "path": "folders/GooglePlayServices.yy", + }, +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/fonts/Font_Yoyo_20/Font_Yoyo_20.old.png b/source/GooglePlayServices_gml/fonts/Font_Yoyo_20/Font_Yoyo_20.old.png new file mode 100644 index 0000000..ad570a1 Binary files /dev/null and b/source/GooglePlayServices_gml/fonts/Font_Yoyo_20/Font_Yoyo_20.old.png differ diff --git a/source/GooglePlayServices_gml/fonts/Font_Yoyo_20/Font_Yoyo_20.old.yy b/source/GooglePlayServices_gml/fonts/Font_Yoyo_20/Font_Yoyo_20.old.yy new file mode 100644 index 0000000..88cc864 --- /dev/null +++ b/source/GooglePlayServices_gml/fonts/Font_Yoyo_20/Font_Yoyo_20.old.yy @@ -0,0 +1,226 @@ +{ + "hinting": 0, + "glyphOperations": 0, + "interpreter": 0, + "pointRounding": 0, + "fontName": "Arial", + "styleName": "Regular", + "size": 20.0, + "bold": false, + "italic": false, + "charset": 0, + "AntiAlias": 1, + "first": 0, + "last": 0, + "sampleText": "abcdef ABCDEF\n0123456789 .,<>\"'&!?\nthe quick brown fox jumps over the lazy dog\nTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG\nDefault character: ▯ (9647)", + "includeTTF": false, + "TTFName": "", + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "ascenderOffset": 0, + "glyphs": { + "32": {"x":2,"y":2,"w":8,"h":31,"character":32,"shift":8,"offset":0,}, + "33": {"x":2,"y":134,"w":4,"h":31,"character":33,"shift":8,"offset":2,}, + "34": {"x":240,"y":101,"w":8,"h":31,"character":34,"shift":10,"offset":1,}, + "35": {"x":223,"y":101,"w":15,"h":31,"character":35,"shift":15,"offset":0,}, + "36": {"x":207,"y":101,"w":14,"h":31,"character":36,"shift":15,"offset":0,}, + "37": {"x":183,"y":101,"w":22,"h":31,"character":37,"shift":24,"offset":1,}, + "38": {"x":164,"y":101,"w":17,"h":31,"character":38,"shift":18,"offset":1,}, + "39": {"x":159,"y":101,"w":3,"h":31,"character":39,"shift":5,"offset":1,}, + "40": {"x":149,"y":101,"w":8,"h":31,"character":40,"shift":9,"offset":1,}, + "41": {"x":139,"y":101,"w":8,"h":31,"character":41,"shift":9,"offset":1,}, + "42": {"x":8,"y":134,"w":10,"h":31,"character":42,"shift":11,"offset":0,}, + "43": {"x":123,"y":101,"w":14,"h":31,"character":43,"shift":16,"offset":1,}, + "44": {"x":102,"y":101,"w":4,"h":31,"character":44,"shift":8,"offset":2,}, + "45": {"x":91,"y":101,"w":9,"h":31,"character":45,"shift":9,"offset":0,}, + "46": {"x":85,"y":101,"w":4,"h":31,"character":46,"shift":8,"offset":2,}, + "47": {"x":75,"y":101,"w":8,"h":31,"character":47,"shift":8,"offset":0,}, + "48": {"x":60,"y":101,"w":13,"h":31,"character":48,"shift":15,"offset":1,}, + "49": {"x":49,"y":101,"w":9,"h":31,"character":49,"shift":15,"offset":2,}, + "50": {"x":33,"y":101,"w":14,"h":31,"character":50,"shift":15,"offset":0,}, + "51": {"x":18,"y":101,"w":13,"h":31,"character":51,"shift":15,"offset":1,}, + "52": {"x":2,"y":101,"w":14,"h":31,"character":52,"shift":15,"offset":0,}, + "53": {"x":108,"y":101,"w":13,"h":31,"character":53,"shift":15,"offset":1,}, + "54": {"x":20,"y":134,"w":13,"h":31,"character":54,"shift":15,"offset":1,}, + "55": {"x":35,"y":134,"w":13,"h":31,"character":55,"shift":15,"offset":1,}, + "56": {"x":50,"y":134,"w":13,"h":31,"character":56,"shift":15,"offset":1,}, + "57": {"x":145,"y":167,"w":13,"h":31,"character":57,"shift":15,"offset":1,}, + "58": {"x":139,"y":167,"w":4,"h":31,"character":58,"shift":8,"offset":2,}, + "59": {"x":133,"y":167,"w":4,"h":31,"character":59,"shift":8,"offset":2,}, + "60": {"x":117,"y":167,"w":14,"h":31,"character":60,"shift":16,"offset":1,}, + "61": {"x":101,"y":167,"w":14,"h":31,"character":61,"shift":16,"offset":1,}, + "62": {"x":85,"y":167,"w":14,"h":31,"character":62,"shift":16,"offset":1,}, + "63": {"x":70,"y":167,"w":13,"h":31,"character":63,"shift":15,"offset":1,}, + "64": {"x":42,"y":167,"w":26,"h":31,"character":64,"shift":27,"offset":1,}, + "65": {"x":20,"y":167,"w":20,"h":31,"character":65,"shift":18,"offset":-1,}, + "66": {"x":2,"y":167,"w":16,"h":31,"character":66,"shift":18,"offset":1,}, + "67": {"x":232,"y":134,"w":18,"h":31,"character":67,"shift":20,"offset":1,}, + "68": {"x":213,"y":134,"w":17,"h":31,"character":68,"shift":20,"offset":2,}, + "69": {"x":196,"y":134,"w":15,"h":31,"character":69,"shift":18,"offset":2,}, + "70": {"x":180,"y":134,"w":14,"h":31,"character":70,"shift":17,"offset":2,}, + "71": {"x":159,"y":134,"w":19,"h":31,"character":71,"shift":21,"offset":1,}, + "72": {"x":141,"y":134,"w":16,"h":31,"character":72,"shift":20,"offset":2,}, + "73": {"x":135,"y":134,"w":4,"h":31,"character":73,"shift":8,"offset":2,}, + "74": {"x":121,"y":134,"w":12,"h":31,"character":74,"shift":14,"offset":0,}, + "75": {"x":102,"y":134,"w":17,"h":31,"character":75,"shift":18,"offset":1,}, + "76": {"x":86,"y":134,"w":14,"h":31,"character":76,"shift":15,"offset":1,}, + "77": {"x":65,"y":134,"w":19,"h":31,"character":77,"shift":22,"offset":2,}, + "78": {"x":237,"y":68,"w":16,"h":31,"character":78,"shift":20,"offset":2,}, + "79": {"x":216,"y":68,"w":19,"h":31,"character":79,"shift":21,"offset":1,}, + "80": {"x":199,"y":68,"w":15,"h":31,"character":80,"shift":18,"offset":2,}, + "81": {"x":105,"y":35,"w":20,"h":31,"character":81,"shift":21,"offset":1,}, + "82": {"x":76,"y":35,"w":18,"h":31,"character":82,"shift":20,"offset":2,}, + "83": {"x":58,"y":35,"w":16,"h":31,"character":83,"shift":18,"offset":1,}, + "84": {"x":40,"y":35,"w":16,"h":31,"character":84,"shift":17,"offset":0,}, + "85": {"x":22,"y":35,"w":16,"h":31,"character":85,"shift":20,"offset":2,}, + "86": {"x":2,"y":35,"w":18,"h":31,"character":86,"shift":18,"offset":0,}, + "87": {"x":218,"y":2,"w":26,"h":31,"character":87,"shift":25,"offset":0,}, + "88": {"x":198,"y":2,"w":18,"h":31,"character":88,"shift":18,"offset":0,}, + "89": {"x":178,"y":2,"w":18,"h":31,"character":89,"shift":18,"offset":0,}, + "90": {"x":160,"y":2,"w":16,"h":31,"character":90,"shift":17,"offset":0,}, + "91": {"x":96,"y":35,"w":7,"h":31,"character":91,"shift":8,"offset":1,}, + "92": {"x":150,"y":2,"w":8,"h":31,"character":92,"shift":8,"offset":0,}, + "93": {"x":131,"y":2,"w":6,"h":31,"character":93,"shift":8,"offset":0,}, + "94": {"x":117,"y":2,"w":12,"h":31,"character":94,"shift":13,"offset":0,}, + "95": {"x":98,"y":2,"w":17,"h":31,"character":95,"shift":15,"offset":-1,}, + "96": {"x":90,"y":2,"w":6,"h":31,"character":96,"shift":9,"offset":1,}, + "97": {"x":74,"y":2,"w":14,"h":31,"character":97,"shift":15,"offset":0,}, + "98": {"x":59,"y":2,"w":13,"h":31,"character":98,"shift":15,"offset":1,}, + "99": {"x":44,"y":2,"w":13,"h":31,"character":99,"shift":14,"offset":1,}, + "100": {"x":28,"y":2,"w":14,"h":31,"character":100,"shift":15,"offset":0,}, + "101": {"x":12,"y":2,"w":14,"h":31,"character":101,"shift":15,"offset":0,}, + "102": {"x":139,"y":2,"w":9,"h":31,"character":102,"shift":8,"offset":0,}, + "103": {"x":127,"y":35,"w":14,"h":31,"character":103,"shift":15,"offset":0,}, + "104": {"x":33,"y":68,"w":13,"h":31,"character":104,"shift":15,"offset":1,}, + "105": {"x":143,"y":35,"w":4,"h":31,"character":105,"shift":6,"offset":1,}, + "106": {"x":175,"y":68,"w":7,"h":31,"character":106,"shift":6,"offset":-2,}, + "107": {"x":160,"y":68,"w":13,"h":31,"character":107,"shift":14,"offset":1,}, + "108": {"x":154,"y":68,"w":4,"h":31,"character":108,"shift":6,"offset":1,}, + "109": {"x":132,"y":68,"w":20,"h":31,"character":109,"shift":22,"offset":1,}, + "110": {"x":117,"y":68,"w":13,"h":31,"character":110,"shift":15,"offset":1,}, + "111": {"x":100,"y":68,"w":15,"h":31,"character":111,"shift":15,"offset":0,}, + "112": {"x":85,"y":68,"w":13,"h":31,"character":112,"shift":15,"offset":1,}, + "113": {"x":69,"y":68,"w":14,"h":31,"character":113,"shift":15,"offset":0,}, + "114": {"x":58,"y":68,"w":9,"h":31,"character":114,"shift":9,"offset":1,}, + "115": {"x":184,"y":68,"w":13,"h":31,"character":115,"shift":14,"offset":0,}, + "116": {"x":48,"y":68,"w":8,"h":31,"character":116,"shift":8,"offset":0,}, + "117": {"x":18,"y":68,"w":13,"h":31,"character":117,"shift":15,"offset":1,}, + "118": {"x":2,"y":68,"w":14,"h":31,"character":118,"shift":14,"offset":0,}, + "119": {"x":223,"y":35,"w":20,"h":31,"character":119,"shift":20,"offset":0,}, + "120": {"x":207,"y":35,"w":14,"h":31,"character":120,"shift":14,"offset":0,}, + "121": {"x":191,"y":35,"w":14,"h":31,"character":121,"shift":14,"offset":0,}, + "122": {"x":176,"y":35,"w":13,"h":31,"character":122,"shift":14,"offset":0,}, + "123": {"x":165,"y":35,"w":9,"h":31,"character":123,"shift":9,"offset":0,}, + "124": {"x":160,"y":35,"w":3,"h":31,"character":124,"shift":7,"offset":2,}, + "125": {"x":149,"y":35,"w":9,"h":31,"character":125,"shift":9,"offset":0,}, + "126": {"x":160,"y":167,"w":14,"h":31,"character":126,"shift":16,"offset":1,}, + "9647": {"x":176,"y":167,"w":16,"h":31,"character":9647,"shift":26,"offset":5,}, + }, + "kerningPairs": [ + {"first":32,"second":65,"amount":-1,}, + {"first":32,"second":902,"amount":-1,}, + {"first":32,"second":913,"amount":-1,}, + {"first":32,"second":916,"amount":-1,}, + {"first":32,"second":923,"amount":-1,}, + {"first":49,"second":49,"amount":-2,}, + {"first":65,"second":32,"amount":-1,}, + {"first":65,"second":84,"amount":-2,}, + {"first":65,"second":86,"amount":-2,}, + {"first":65,"second":87,"amount":-1,}, + {"first":65,"second":89,"amount":-2,}, + {"first":65,"second":160,"amount":-1,}, + {"first":65,"second":8217,"amount":-2,}, + {"first":70,"second":44,"amount":-3,}, + {"first":70,"second":46,"amount":-3,}, + {"first":70,"second":65,"amount":-1,}, + {"first":76,"second":32,"amount":-1,}, + {"first":76,"second":84,"amount":-2,}, + {"first":76,"second":86,"amount":-2,}, + {"first":76,"second":87,"amount":-2,}, + {"first":76,"second":89,"amount":-2,}, + {"first":76,"second":121,"amount":-1,}, + {"first":76,"second":160,"amount":-1,}, + {"first":76,"second":8217,"amount":-1,}, + {"first":80,"second":44,"amount":-3,}, + {"first":80,"second":46,"amount":-3,}, + {"first":80,"second":65,"amount":-2,}, + {"first":84,"second":44,"amount":-3,}, + {"first":84,"second":45,"amount":-1,}, + {"first":84,"second":46,"amount":-3,}, + {"first":84,"second":58,"amount":-3,}, + {"first":84,"second":59,"amount":-3,}, + {"first":84,"second":65,"amount":-2,}, + {"first":84,"second":97,"amount":-3,}, + {"first":84,"second":99,"amount":-3,}, + {"first":84,"second":101,"amount":-3,}, + {"first":84,"second":105,"amount":-1,}, + {"first":84,"second":111,"amount":-3,}, + {"first":84,"second":114,"amount":-1,}, + {"first":84,"second":115,"amount":-3,}, + {"first":84,"second":117,"amount":-1,}, + {"first":84,"second":119,"amount":-1,}, + {"first":84,"second":121,"amount":-1,}, + {"first":84,"second":173,"amount":-1,}, + {"first":84,"second":894,"amount":-3,}, + {"first":86,"second":44,"amount":-2,}, + {"first":86,"second":45,"amount":-1,}, + {"first":86,"second":46,"amount":-2,}, + {"first":86,"second":58,"amount":-1,}, + {"first":86,"second":59,"amount":-1,}, + {"first":86,"second":65,"amount":-2,}, + {"first":86,"second":97,"amount":-2,}, + {"first":86,"second":101,"amount":-1,}, + {"first":86,"second":111,"amount":-1,}, + {"first":86,"second":114,"amount":-1,}, + {"first":86,"second":117,"amount":-1,}, + {"first":86,"second":121,"amount":-1,}, + {"first":86,"second":173,"amount":-1,}, + {"first":86,"second":894,"amount":-1,}, + {"first":87,"second":44,"amount":-1,}, + {"first":87,"second":46,"amount":-1,}, + {"first":87,"second":65,"amount":-1,}, + {"first":87,"second":97,"amount":-1,}, + {"first":89,"second":44,"amount":-3,}, + {"first":89,"second":45,"amount":-2,}, + {"first":89,"second":46,"amount":-3,}, + {"first":89,"second":58,"amount":-1,}, + {"first":89,"second":59,"amount":-2,}, + {"first":89,"second":65,"amount":-2,}, + {"first":89,"second":97,"amount":-2,}, + {"first":89,"second":101,"amount":-2,}, + {"first":89,"second":105,"amount":-1,}, + {"first":89,"second":111,"amount":-2,}, + {"first":89,"second":112,"amount":-2,}, + {"first":89,"second":113,"amount":-2,}, + {"first":89,"second":117,"amount":-1,}, + {"first":89,"second":118,"amount":-1,}, + {"first":89,"second":173,"amount":-2,}, + {"first":89,"second":894,"amount":-2,}, + {"first":114,"second":44,"amount":-1,}, + {"first":114,"second":46,"amount":-1,}, + {"first":114,"second":8217,"amount":1,}, + {"first":118,"second":44,"amount":-2,}, + {"first":118,"second":46,"amount":-2,}, + {"first":119,"second":44,"amount":-1,}, + {"first":119,"second":46,"amount":-1,}, + {"first":121,"second":44,"amount":-2,}, + {"first":121,"second":46,"amount":-2,}, + ], + "ranges": [ + {"lower":32,"upper":127,}, + {"lower":9647,"upper":9647,}, + ], + "regenerateBitmap": false, + "canGenerateBitmap": true, + "maintainGms1Font": false, + "parent": { + "name": "Font", + "path": "folders/YoYo Extensions Assets/Font.yy", + }, + "resourceVersion": "1.0", + "name": "Font_YoYo_20", + "tags": [], + "resourceType": "GMFont", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/fonts/Font_Yoyo_20/Font_Yoyo_20.png b/source/GooglePlayServices_gml/fonts/Font_Yoyo_20/Font_Yoyo_20.png new file mode 100644 index 0000000..ad570a1 Binary files /dev/null and b/source/GooglePlayServices_gml/fonts/Font_Yoyo_20/Font_Yoyo_20.png differ diff --git a/source/GooglePlayServices_gml/fonts/Font_Yoyo_20/Font_Yoyo_20.yy b/source/GooglePlayServices_gml/fonts/Font_Yoyo_20/Font_Yoyo_20.yy new file mode 100644 index 0000000..edc340e --- /dev/null +++ b/source/GooglePlayServices_gml/fonts/Font_Yoyo_20/Font_Yoyo_20.yy @@ -0,0 +1,225 @@ +{ + "hinting": 0, + "glyphOperations": 0, + "interpreter": 0, + "pointRounding": 0, + "applyKerning": 0, + "fontName": "Arial", + "styleName": "Regular", + "size": 20.0, + "bold": false, + "italic": false, + "charset": 0, + "AntiAlias": 1, + "first": 0, + "last": 0, + "sampleText": "abcdef ABCDEF\n0123456789 .,<>\"'&!?\nthe quick brown fox jumps over the lazy dog\nTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG\nDefault character: ▯ (9647)", + "includeTTF": false, + "TTFName": "", + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "ascenderOffset": 0, + "ascender": 0, + "glyphs": { + "32": {"x":2,"y":2,"w":8,"h":31,"character":32,"shift":8,"offset":0,}, + "33": {"x":2,"y":134,"w":4,"h":31,"character":33,"shift":8,"offset":2,}, + "34": {"x":240,"y":101,"w":8,"h":31,"character":34,"shift":10,"offset":1,}, + "35": {"x":223,"y":101,"w":15,"h":31,"character":35,"shift":15,"offset":0,}, + "36": {"x":207,"y":101,"w":14,"h":31,"character":36,"shift":15,"offset":0,}, + "37": {"x":183,"y":101,"w":22,"h":31,"character":37,"shift":24,"offset":1,}, + "38": {"x":164,"y":101,"w":17,"h":31,"character":38,"shift":18,"offset":1,}, + "39": {"x":159,"y":101,"w":3,"h":31,"character":39,"shift":5,"offset":1,}, + "40": {"x":149,"y":101,"w":8,"h":31,"character":40,"shift":9,"offset":1,}, + "41": {"x":139,"y":101,"w":8,"h":31,"character":41,"shift":9,"offset":1,}, + "42": {"x":8,"y":134,"w":10,"h":31,"character":42,"shift":11,"offset":0,}, + "43": {"x":123,"y":101,"w":14,"h":31,"character":43,"shift":16,"offset":1,}, + "44": {"x":102,"y":101,"w":4,"h":31,"character":44,"shift":8,"offset":2,}, + "45": {"x":91,"y":101,"w":9,"h":31,"character":45,"shift":9,"offset":0,}, + "46": {"x":85,"y":101,"w":4,"h":31,"character":46,"shift":8,"offset":2,}, + "47": {"x":75,"y":101,"w":8,"h":31,"character":47,"shift":8,"offset":0,}, + "48": {"x":60,"y":101,"w":13,"h":31,"character":48,"shift":15,"offset":1,}, + "49": {"x":49,"y":101,"w":9,"h":31,"character":49,"shift":15,"offset":2,}, + "50": {"x":33,"y":101,"w":14,"h":31,"character":50,"shift":15,"offset":0,}, + "51": {"x":18,"y":101,"w":13,"h":31,"character":51,"shift":15,"offset":1,}, + "52": {"x":2,"y":101,"w":14,"h":31,"character":52,"shift":15,"offset":0,}, + "53": {"x":108,"y":101,"w":13,"h":31,"character":53,"shift":15,"offset":1,}, + "54": {"x":20,"y":134,"w":13,"h":31,"character":54,"shift":15,"offset":1,}, + "55": {"x":35,"y":134,"w":13,"h":31,"character":55,"shift":15,"offset":1,}, + "56": {"x":50,"y":134,"w":13,"h":31,"character":56,"shift":15,"offset":1,}, + "57": {"x":145,"y":167,"w":13,"h":31,"character":57,"shift":15,"offset":1,}, + "58": {"x":139,"y":167,"w":4,"h":31,"character":58,"shift":8,"offset":2,}, + "59": {"x":133,"y":167,"w":4,"h":31,"character":59,"shift":8,"offset":2,}, + "60": {"x":117,"y":167,"w":14,"h":31,"character":60,"shift":16,"offset":1,}, + "61": {"x":101,"y":167,"w":14,"h":31,"character":61,"shift":16,"offset":1,}, + "62": {"x":85,"y":167,"w":14,"h":31,"character":62,"shift":16,"offset":1,}, + "63": {"x":70,"y":167,"w":13,"h":31,"character":63,"shift":15,"offset":1,}, + "64": {"x":42,"y":167,"w":26,"h":31,"character":64,"shift":27,"offset":1,}, + "65": {"x":20,"y":167,"w":20,"h":31,"character":65,"shift":18,"offset":-1,}, + "66": {"x":2,"y":167,"w":16,"h":31,"character":66,"shift":18,"offset":1,}, + "67": {"x":232,"y":134,"w":18,"h":31,"character":67,"shift":20,"offset":1,}, + "68": {"x":213,"y":134,"w":17,"h":31,"character":68,"shift":20,"offset":2,}, + "69": {"x":196,"y":134,"w":15,"h":31,"character":69,"shift":18,"offset":2,}, + "70": {"x":180,"y":134,"w":14,"h":31,"character":70,"shift":17,"offset":2,}, + "71": {"x":159,"y":134,"w":19,"h":31,"character":71,"shift":21,"offset":1,}, + "72": {"x":141,"y":134,"w":16,"h":31,"character":72,"shift":20,"offset":2,}, + "73": {"x":135,"y":134,"w":4,"h":31,"character":73,"shift":8,"offset":2,}, + "74": {"x":121,"y":134,"w":12,"h":31,"character":74,"shift":14,"offset":0,}, + "75": {"x":102,"y":134,"w":17,"h":31,"character":75,"shift":18,"offset":1,}, + "76": {"x":86,"y":134,"w":14,"h":31,"character":76,"shift":15,"offset":1,}, + "77": {"x":65,"y":134,"w":19,"h":31,"character":77,"shift":22,"offset":2,}, + "78": {"x":237,"y":68,"w":16,"h":31,"character":78,"shift":20,"offset":2,}, + "79": {"x":216,"y":68,"w":19,"h":31,"character":79,"shift":21,"offset":1,}, + "80": {"x":199,"y":68,"w":15,"h":31,"character":80,"shift":18,"offset":2,}, + "81": {"x":105,"y":35,"w":20,"h":31,"character":81,"shift":21,"offset":1,}, + "82": {"x":76,"y":35,"w":18,"h":31,"character":82,"shift":20,"offset":2,}, + "83": {"x":58,"y":35,"w":16,"h":31,"character":83,"shift":18,"offset":1,}, + "84": {"x":40,"y":35,"w":16,"h":31,"character":84,"shift":17,"offset":0,}, + "85": {"x":22,"y":35,"w":16,"h":31,"character":85,"shift":20,"offset":2,}, + "86": {"x":2,"y":35,"w":18,"h":31,"character":86,"shift":18,"offset":0,}, + "87": {"x":218,"y":2,"w":26,"h":31,"character":87,"shift":25,"offset":0,}, + "88": {"x":198,"y":2,"w":18,"h":31,"character":88,"shift":18,"offset":0,}, + "89": {"x":178,"y":2,"w":18,"h":31,"character":89,"shift":18,"offset":0,}, + "90": {"x":160,"y":2,"w":16,"h":31,"character":90,"shift":17,"offset":0,}, + "91": {"x":96,"y":35,"w":7,"h":31,"character":91,"shift":8,"offset":1,}, + "92": {"x":150,"y":2,"w":8,"h":31,"character":92,"shift":8,"offset":0,}, + "93": {"x":131,"y":2,"w":6,"h":31,"character":93,"shift":8,"offset":0,}, + "94": {"x":117,"y":2,"w":12,"h":31,"character":94,"shift":13,"offset":0,}, + "95": {"x":98,"y":2,"w":17,"h":31,"character":95,"shift":15,"offset":-1,}, + "96": {"x":90,"y":2,"w":6,"h":31,"character":96,"shift":9,"offset":1,}, + "97": {"x":74,"y":2,"w":14,"h":31,"character":97,"shift":15,"offset":0,}, + "98": {"x":59,"y":2,"w":13,"h":31,"character":98,"shift":15,"offset":1,}, + "99": {"x":44,"y":2,"w":13,"h":31,"character":99,"shift":14,"offset":1,}, + "100": {"x":28,"y":2,"w":14,"h":31,"character":100,"shift":15,"offset":0,}, + "101": {"x":12,"y":2,"w":14,"h":31,"character":101,"shift":15,"offset":0,}, + "102": {"x":139,"y":2,"w":9,"h":31,"character":102,"shift":8,"offset":0,}, + "103": {"x":127,"y":35,"w":14,"h":31,"character":103,"shift":15,"offset":0,}, + "104": {"x":33,"y":68,"w":13,"h":31,"character":104,"shift":15,"offset":1,}, + "105": {"x":143,"y":35,"w":4,"h":31,"character":105,"shift":6,"offset":1,}, + "106": {"x":175,"y":68,"w":7,"h":31,"character":106,"shift":6,"offset":-2,}, + "107": {"x":160,"y":68,"w":13,"h":31,"character":107,"shift":14,"offset":1,}, + "108": {"x":154,"y":68,"w":4,"h":31,"character":108,"shift":6,"offset":1,}, + "109": {"x":132,"y":68,"w":20,"h":31,"character":109,"shift":22,"offset":1,}, + "110": {"x":117,"y":68,"w":13,"h":31,"character":110,"shift":15,"offset":1,}, + "111": {"x":100,"y":68,"w":15,"h":31,"character":111,"shift":15,"offset":0,}, + "112": {"x":85,"y":68,"w":13,"h":31,"character":112,"shift":15,"offset":1,}, + "113": {"x":69,"y":68,"w":14,"h":31,"character":113,"shift":15,"offset":0,}, + "114": {"x":58,"y":68,"w":9,"h":31,"character":114,"shift":9,"offset":1,}, + "115": {"x":184,"y":68,"w":13,"h":31,"character":115,"shift":14,"offset":0,}, + "116": {"x":48,"y":68,"w":8,"h":31,"character":116,"shift":8,"offset":0,}, + "117": {"x":18,"y":68,"w":13,"h":31,"character":117,"shift":15,"offset":1,}, + "118": {"x":2,"y":68,"w":14,"h":31,"character":118,"shift":14,"offset":0,}, + "119": {"x":223,"y":35,"w":20,"h":31,"character":119,"shift":20,"offset":0,}, + "120": {"x":207,"y":35,"w":14,"h":31,"character":120,"shift":14,"offset":0,}, + "121": {"x":191,"y":35,"w":14,"h":31,"character":121,"shift":14,"offset":0,}, + "122": {"x":176,"y":35,"w":13,"h":31,"character":122,"shift":14,"offset":0,}, + "123": {"x":165,"y":35,"w":9,"h":31,"character":123,"shift":9,"offset":0,}, + "124": {"x":160,"y":35,"w":3,"h":31,"character":124,"shift":7,"offset":2,}, + "125": {"x":149,"y":35,"w":9,"h":31,"character":125,"shift":9,"offset":0,}, + "126": {"x":160,"y":167,"w":14,"h":31,"character":126,"shift":16,"offset":1,}, + "9647": {"x":176,"y":167,"w":16,"h":31,"character":9647,"shift":26,"offset":5,}, + }, + "kerningPairs": [ + {"first":32,"second":65,"amount":-1,}, + {"first":32,"second":902,"amount":-1,}, + {"first":32,"second":913,"amount":-1,}, + {"first":32,"second":916,"amount":-1,}, + {"first":32,"second":923,"amount":-1,}, + {"first":49,"second":49,"amount":-2,}, + {"first":65,"second":32,"amount":-1,}, + {"first":65,"second":84,"amount":-2,}, + {"first":65,"second":86,"amount":-2,}, + {"first":65,"second":87,"amount":-1,}, + {"first":65,"second":89,"amount":-2,}, + {"first":65,"second":160,"amount":-1,}, + {"first":65,"second":8217,"amount":-2,}, + {"first":70,"second":44,"amount":-3,}, + {"first":70,"second":46,"amount":-3,}, + {"first":70,"second":65,"amount":-1,}, + {"first":76,"second":32,"amount":-1,}, + {"first":76,"second":84,"amount":-2,}, + {"first":76,"second":86,"amount":-2,}, + {"first":76,"second":87,"amount":-2,}, + {"first":76,"second":89,"amount":-2,}, + {"first":76,"second":121,"amount":-1,}, + {"first":76,"second":160,"amount":-1,}, + {"first":76,"second":8217,"amount":-1,}, + {"first":80,"second":44,"amount":-3,}, + {"first":80,"second":46,"amount":-3,}, + {"first":80,"second":65,"amount":-2,}, + {"first":84,"second":44,"amount":-3,}, + {"first":84,"second":45,"amount":-1,}, + {"first":84,"second":46,"amount":-3,}, + {"first":84,"second":58,"amount":-3,}, + {"first":84,"second":59,"amount":-3,}, + {"first":84,"second":65,"amount":-2,}, + {"first":84,"second":97,"amount":-3,}, + {"first":84,"second":99,"amount":-3,}, + {"first":84,"second":101,"amount":-3,}, + {"first":84,"second":105,"amount":-1,}, + {"first":84,"second":111,"amount":-3,}, + {"first":84,"second":114,"amount":-1,}, + {"first":84,"second":115,"amount":-3,}, + {"first":84,"second":117,"amount":-1,}, + {"first":84,"second":119,"amount":-1,}, + {"first":84,"second":121,"amount":-1,}, + {"first":84,"second":173,"amount":-1,}, + {"first":84,"second":894,"amount":-3,}, + {"first":86,"second":44,"amount":-2,}, + {"first":86,"second":45,"amount":-1,}, + {"first":86,"second":46,"amount":-2,}, + {"first":86,"second":58,"amount":-1,}, + {"first":86,"second":59,"amount":-1,}, + {"first":86,"second":65,"amount":-2,}, + {"first":86,"second":97,"amount":-2,}, + {"first":86,"second":101,"amount":-1,}, + {"first":86,"second":111,"amount":-1,}, + {"first":86,"second":114,"amount":-1,}, + {"first":86,"second":117,"amount":-1,}, + {"first":86,"second":121,"amount":-1,}, + {"first":86,"second":173,"amount":-1,}, + {"first":86,"second":894,"amount":-1,}, + {"first":87,"second":44,"amount":-1,}, + {"first":87,"second":46,"amount":-1,}, + {"first":87,"second":65,"amount":-1,}, + {"first":87,"second":97,"amount":-1,}, + {"first":89,"second":44,"amount":-3,}, + {"first":89,"second":45,"amount":-2,}, + {"first":89,"second":46,"amount":-3,}, + {"first":89,"second":58,"amount":-1,}, + {"first":89,"second":59,"amount":-2,}, + {"first":89,"second":65,"amount":-2,}, + {"first":89,"second":97,"amount":-2,}, + {"first":89,"second":101,"amount":-2,}, + {"first":89,"second":105,"amount":-1,}, + {"first":89,"second":111,"amount":-2,}, + {"first":89,"second":112,"amount":-2,}, + {"first":89,"second":113,"amount":-2,}, + {"first":89,"second":117,"amount":-1,}, + {"first":89,"second":118,"amount":-1,}, + {"first":89,"second":173,"amount":-2,}, + {"first":89,"second":894,"amount":-2,}, + {"first":114,"second":44,"amount":-1,}, + {"first":114,"second":46,"amount":-1,}, + {"first":114,"second":8217,"amount":1,}, + {"first":118,"second":44,"amount":-2,}, + {"first":118,"second":46,"amount":-2,}, + {"first":119,"second":44,"amount":-1,}, + {"first":119,"second":46,"amount":-1,}, + {"first":121,"second":44,"amount":-2,}, + {"first":121,"second":46,"amount":-2,}, + ], + "ranges": [], + "regenerateBitmap": false, + "canGenerateBitmap": true, + "maintainGms1Font": false, + "parent": { + "name": "Font", + "path": "folders/YoYo Extensions Assets/Font.yy", + }, + "resourceVersion": "1.0", + "name": "Font_YoYo_20", + "tags": [], + "resourceType": "GMFont", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/fonts/Font_Yoyo_30/Font_Yoyo_20.png b/source/GooglePlayServices_gml/fonts/Font_Yoyo_30/Font_Yoyo_20.png new file mode 100644 index 0000000..87fbfea Binary files /dev/null and b/source/GooglePlayServices_gml/fonts/Font_Yoyo_30/Font_Yoyo_20.png differ diff --git a/source/GooglePlayServices_gml/fonts/Font_Yoyo_30/Font_Yoyo_20.yy b/source/GooglePlayServices_gml/fonts/Font_Yoyo_30/Font_Yoyo_20.yy new file mode 100644 index 0000000..f6a6f6c --- /dev/null +++ b/source/GooglePlayServices_gml/fonts/Font_Yoyo_30/Font_Yoyo_20.yy @@ -0,0 +1,209 @@ +{ + "hinting": 0, + "glyphOperations": 0, + "interpreter": 0, + "pointRounding": 0, + "fontName": "Arial", + "styleName": "Regular", + "size": 12.0, + "bold": false, + "italic": false, + "charset": 0, + "AntiAlias": 1, + "first": 0, + "last": 0, + "sampleText": "abcdef ABCDEF\n0123456789 .,<>\"'&!?\nthe quick brown fox jumps over the lazy dog\nTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG\nDefault character: ▯ (9647)", + "includeTTF": false, + "TTFName": "", + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "ascenderOffset": 0, + "glyphs": { + "32": {"x":2,"y":2,"w":4,"h":18,"character":32,"shift":4,"offset":0,}, + "33": {"x":165,"y":42,"w":3,"h":18,"character":33,"shift":4,"offset":1,}, + "34": {"x":158,"y":42,"w":5,"h":18,"character":34,"shift":6,"offset":0,}, + "35": {"x":147,"y":42,"w":9,"h":18,"character":35,"shift":9,"offset":0,}, + "36": {"x":136,"y":42,"w":9,"h":18,"character":36,"shift":9,"offset":0,}, + "37": {"x":120,"y":42,"w":14,"h":18,"character":37,"shift":14,"offset":0,}, + "38": {"x":107,"y":42,"w":11,"h":18,"character":38,"shift":11,"offset":0,}, + "39": {"x":102,"y":42,"w":3,"h":18,"character":39,"shift":3,"offset":0,}, + "40": {"x":95,"y":42,"w":5,"h":18,"character":40,"shift":5,"offset":0,}, + "41": {"x":88,"y":42,"w":5,"h":18,"character":41,"shift":5,"offset":0,}, + "42": {"x":170,"y":42,"w":6,"h":18,"character":42,"shift":6,"offset":0,}, + "43": {"x":77,"y":42,"w":9,"h":18,"character":43,"shift":9,"offset":0,}, + "44": {"x":61,"y":42,"w":3,"h":18,"character":44,"shift":4,"offset":1,}, + "45": {"x":54,"y":42,"w":5,"h":18,"character":45,"shift":5,"offset":0,}, + "46": {"x":49,"y":42,"w":3,"h":18,"character":46,"shift":4,"offset":1,}, + "47": {"x":42,"y":42,"w":5,"h":18,"character":47,"shift":4,"offset":0,}, + "48": {"x":31,"y":42,"w":9,"h":18,"character":48,"shift":9,"offset":0,}, + "49": {"x":24,"y":42,"w":5,"h":18,"character":49,"shift":9,"offset":1,}, + "50": {"x":13,"y":42,"w":9,"h":18,"character":50,"shift":9,"offset":0,}, + "51": {"x":2,"y":42,"w":9,"h":18,"character":51,"shift":9,"offset":0,}, + "52": {"x":240,"y":22,"w":9,"h":18,"character":52,"shift":9,"offset":0,}, + "53": {"x":66,"y":42,"w":9,"h":18,"character":53,"shift":9,"offset":0,}, + "54": {"x":178,"y":42,"w":9,"h":18,"character":54,"shift":9,"offset":0,}, + "55": {"x":189,"y":42,"w":9,"h":18,"character":55,"shift":9,"offset":0,}, + "56": {"x":200,"y":42,"w":9,"h":18,"character":56,"shift":9,"offset":0,}, + "57": {"x":186,"y":62,"w":9,"h":18,"character":57,"shift":9,"offset":0,}, + "58": {"x":181,"y":62,"w":3,"h":18,"character":58,"shift":4,"offset":1,}, + "59": {"x":176,"y":62,"w":3,"h":18,"character":59,"shift":4,"offset":1,}, + "60": {"x":165,"y":62,"w":9,"h":18,"character":60,"shift":9,"offset":0,}, + "61": {"x":154,"y":62,"w":9,"h":18,"character":61,"shift":9,"offset":0,}, + "62": {"x":143,"y":62,"w":9,"h":18,"character":62,"shift":9,"offset":0,}, + "63": {"x":132,"y":62,"w":9,"h":18,"character":63,"shift":9,"offset":0,}, + "64": {"x":114,"y":62,"w":16,"h":18,"character":64,"shift":16,"offset":0,}, + "65": {"x":100,"y":62,"w":12,"h":18,"character":65,"shift":11,"offset":-1,}, + "66": {"x":89,"y":62,"w":9,"h":18,"character":66,"shift":11,"offset":1,}, + "67": {"x":76,"y":62,"w":11,"h":18,"character":67,"shift":12,"offset":0,}, + "68": {"x":64,"y":62,"w":10,"h":18,"character":68,"shift":12,"offset":1,}, + "69": {"x":53,"y":62,"w":9,"h":18,"character":69,"shift":11,"offset":1,}, + "70": {"x":42,"y":62,"w":9,"h":18,"character":70,"shift":10,"offset":1,}, + "71": {"x":28,"y":62,"w":12,"h":18,"character":71,"shift":12,"offset":0,}, + "72": {"x":16,"y":62,"w":10,"h":18,"character":72,"shift":12,"offset":1,}, + "73": {"x":11,"y":62,"w":3,"h":18,"character":73,"shift":4,"offset":1,}, + "74": {"x":2,"y":62,"w":7,"h":18,"character":74,"shift":8,"offset":0,}, + "75": {"x":235,"y":42,"w":10,"h":18,"character":75,"shift":11,"offset":1,}, + "76": {"x":225,"y":42,"w":8,"h":18,"character":76,"shift":9,"offset":1,}, + "77": {"x":211,"y":42,"w":12,"h":18,"character":77,"shift":13,"offset":1,}, + "78": {"x":228,"y":22,"w":10,"h":18,"character":78,"shift":12,"offset":1,}, + "79": {"x":214,"y":22,"w":12,"h":18,"character":79,"shift":12,"offset":0,}, + "80": {"x":203,"y":22,"w":9,"h":18,"character":80,"shift":11,"offset":1,}, + "81": {"x":232,"y":2,"w":12,"h":18,"character":81,"shift":12,"offset":0,}, + "82": {"x":213,"y":2,"w":11,"h":18,"character":82,"shift":12,"offset":1,}, + "83": {"x":201,"y":2,"w":10,"h":18,"character":83,"shift":11,"offset":0,}, + "84": {"x":189,"y":2,"w":10,"h":18,"character":84,"shift":10,"offset":0,}, + "85": {"x":177,"y":2,"w":10,"h":18,"character":85,"shift":12,"offset":1,}, + "86": {"x":164,"y":2,"w":11,"h":18,"character":86,"shift":11,"offset":0,}, + "87": {"x":147,"y":2,"w":15,"h":18,"character":87,"shift":15,"offset":0,}, + "88": {"x":134,"y":2,"w":11,"h":18,"character":88,"shift":11,"offset":0,}, + "89": {"x":121,"y":2,"w":11,"h":18,"character":89,"shift":11,"offset":0,}, + "90": {"x":109,"y":2,"w":10,"h":18,"character":90,"shift":10,"offset":0,}, + "91": {"x":226,"y":2,"w":4,"h":18,"character":91,"shift":4,"offset":1,}, + "92": {"x":102,"y":2,"w":5,"h":18,"character":92,"shift":4,"offset":0,}, + "93": {"x":89,"y":2,"w":4,"h":18,"character":93,"shift":4,"offset":0,}, + "94": {"x":79,"y":2,"w":8,"h":18,"character":94,"shift":8,"offset":0,}, + "95": {"x":66,"y":2,"w":11,"h":18,"character":95,"shift":9,"offset":-1,}, + "96": {"x":60,"y":2,"w":4,"h":18,"character":96,"shift":5,"offset":0,}, + "97": {"x":49,"y":2,"w":9,"h":18,"character":97,"shift":9,"offset":0,}, + "98": {"x":39,"y":2,"w":8,"h":18,"character":98,"shift":9,"offset":1,}, + "99": {"x":29,"y":2,"w":8,"h":18,"character":99,"shift":8,"offset":0,}, + "100": {"x":19,"y":2,"w":8,"h":18,"character":100,"shift":9,"offset":0,}, + "101": {"x":8,"y":2,"w":9,"h":18,"character":101,"shift":9,"offset":0,}, + "102": {"x":95,"y":2,"w":5,"h":18,"character":102,"shift":4,"offset":0,}, + "103": {"x":2,"y":22,"w":8,"h":18,"character":103,"shift":9,"offset":0,}, + "104": {"x":97,"y":22,"w":7,"h":18,"character":104,"shift":9,"offset":1,}, + "105": {"x":12,"y":22,"w":2,"h":18,"character":105,"shift":4,"offset":1,}, + "106": {"x":187,"y":22,"w":4,"h":18,"character":106,"shift":4,"offset":-1,}, + "107": {"x":178,"y":22,"w":7,"h":18,"character":107,"shift":8,"offset":1,}, + "108": {"x":174,"y":22,"w":2,"h":18,"character":108,"shift":4,"offset":1,}, + "109": {"x":160,"y":22,"w":12,"h":18,"character":109,"shift":13,"offset":1,}, + "110": {"x":151,"y":22,"w":7,"h":18,"character":110,"shift":9,"offset":1,}, + "111": {"x":140,"y":22,"w":9,"h":18,"character":111,"shift":9,"offset":0,}, + "112": {"x":130,"y":22,"w":8,"h":18,"character":112,"shift":9,"offset":1,}, + "113": {"x":120,"y":22,"w":8,"h":18,"character":113,"shift":9,"offset":0,}, + "114": {"x":113,"y":22,"w":5,"h":18,"character":114,"shift":5,"offset":1,}, + "115": {"x":193,"y":22,"w":8,"h":18,"character":115,"shift":8,"offset":0,}, + "116": {"x":106,"y":22,"w":5,"h":18,"character":116,"shift":4,"offset":0,}, + "117": {"x":88,"y":22,"w":7,"h":18,"character":117,"shift":9,"offset":1,}, + "118": {"x":78,"y":22,"w":8,"h":18,"character":118,"shift":8,"offset":0,}, + "119": {"x":64,"y":22,"w":12,"h":18,"character":119,"shift":12,"offset":0,}, + "120": {"x":54,"y":22,"w":8,"h":18,"character":120,"shift":8,"offset":0,}, + "121": {"x":44,"y":22,"w":8,"h":18,"character":121,"shift":8,"offset":0,}, + "122": {"x":34,"y":22,"w":8,"h":18,"character":122,"shift":8,"offset":0,}, + "123": {"x":27,"y":22,"w":5,"h":18,"character":123,"shift":5,"offset":0,}, + "124": {"x":23,"y":22,"w":2,"h":18,"character":124,"shift":4,"offset":1,}, + "125": {"x":16,"y":22,"w":5,"h":18,"character":125,"shift":5,"offset":0,}, + "126": {"x":197,"y":62,"w":9,"h":18,"character":126,"shift":9,"offset":0,}, + "9647": {"x":208,"y":62,"w":10,"h":18,"character":9647,"shift":16,"offset":3,}, + }, + "kerningPairs": [ + {"first":32,"second":65,"amount":-1,}, + {"first":32,"second":902,"amount":-1,}, + {"first":32,"second":913,"amount":-1,}, + {"first":32,"second":916,"amount":-1,}, + {"first":32,"second":923,"amount":-1,}, + {"first":49,"second":49,"amount":-1,}, + {"first":65,"second":32,"amount":-1,}, + {"first":65,"second":84,"amount":-1,}, + {"first":65,"second":86,"amount":-1,}, + {"first":65,"second":89,"amount":-1,}, + {"first":65,"second":160,"amount":-1,}, + {"first":65,"second":8217,"amount":-1,}, + {"first":70,"second":44,"amount":-1,}, + {"first":70,"second":46,"amount":-1,}, + {"first":70,"second":65,"amount":-1,}, + {"first":76,"second":84,"amount":-1,}, + {"first":76,"second":86,"amount":-1,}, + {"first":76,"second":87,"amount":-1,}, + {"first":76,"second":89,"amount":-1,}, + {"first":76,"second":8217,"amount":-1,}, + {"first":80,"second":44,"amount":-1,}, + {"first":80,"second":46,"amount":-1,}, + {"first":80,"second":65,"amount":-1,}, + {"first":84,"second":44,"amount":-1,}, + {"first":84,"second":45,"amount":-1,}, + {"first":84,"second":46,"amount":-1,}, + {"first":84,"second":58,"amount":-1,}, + {"first":84,"second":59,"amount":-1,}, + {"first":84,"second":65,"amount":-1,}, + {"first":84,"second":97,"amount":-1,}, + {"first":84,"second":99,"amount":-1,}, + {"first":84,"second":101,"amount":-1,}, + {"first":84,"second":111,"amount":-1,}, + {"first":84,"second":115,"amount":-1,}, + {"first":84,"second":119,"amount":-1,}, + {"first":84,"second":121,"amount":-1,}, + {"first":84,"second":173,"amount":-1,}, + {"first":84,"second":894,"amount":-1,}, + {"first":86,"second":44,"amount":-1,}, + {"first":86,"second":45,"amount":-1,}, + {"first":86,"second":46,"amount":-1,}, + {"first":86,"second":65,"amount":-1,}, + {"first":86,"second":97,"amount":-1,}, + {"first":86,"second":101,"amount":-1,}, + {"first":86,"second":111,"amount":-1,}, + {"first":86,"second":173,"amount":-1,}, + {"first":87,"second":44,"amount":-1,}, + {"first":87,"second":46,"amount":-1,}, + {"first":89,"second":44,"amount":-1,}, + {"first":89,"second":45,"amount":-1,}, + {"first":89,"second":46,"amount":-1,}, + {"first":89,"second":58,"amount":-1,}, + {"first":89,"second":59,"amount":-1,}, + {"first":89,"second":65,"amount":-1,}, + {"first":89,"second":97,"amount":-1,}, + {"first":89,"second":101,"amount":-1,}, + {"first":89,"second":111,"amount":-1,}, + {"first":89,"second":112,"amount":-1,}, + {"first":89,"second":113,"amount":-1,}, + {"first":89,"second":117,"amount":-1,}, + {"first":89,"second":118,"amount":-1,}, + {"first":89,"second":173,"amount":-1,}, + {"first":89,"second":894,"amount":-1,}, + {"first":114,"second":44,"amount":-1,}, + {"first":114,"second":46,"amount":-1,}, + {"first":118,"second":44,"amount":-1,}, + {"first":118,"second":46,"amount":-1,}, + {"first":119,"second":44,"amount":-1,}, + {"first":119,"second":46,"amount":-1,}, + {"first":121,"second":44,"amount":-1,}, + {"first":121,"second":46,"amount":-1,}, + ], + "ranges": [ + {"lower":32,"upper":127,}, + {"lower":9647,"upper":9647,}, + ], + "regenerateBitmap": false, + "canGenerateBitmap": true, + "maintainGms1Font": false, + "parent": { + "name": "Font", + "path": "folders/YoyoAsset/Font.yy", + }, + "resourceVersion": "1.0", + "name": "Font_Yoyo_20", + "tags": [], + "resourceType": "GMFont", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/fonts/Font_Yoyo_30/Font_Yoyo_30.old.png b/source/GooglePlayServices_gml/fonts/Font_Yoyo_30/Font_Yoyo_30.old.png new file mode 100644 index 0000000..fd04968 Binary files /dev/null and b/source/GooglePlayServices_gml/fonts/Font_Yoyo_30/Font_Yoyo_30.old.png differ diff --git a/source/GooglePlayServices_gml/fonts/Font_Yoyo_30/Font_Yoyo_30.old.yy b/source/GooglePlayServices_gml/fonts/Font_Yoyo_30/Font_Yoyo_30.old.yy new file mode 100644 index 0000000..1aad473 --- /dev/null +++ b/source/GooglePlayServices_gml/fonts/Font_Yoyo_30/Font_Yoyo_30.old.yy @@ -0,0 +1,258 @@ +{ + "hinting": 0, + "glyphOperations": 0, + "interpreter": 0, + "pointRounding": 0, + "fontName": "Arial", + "styleName": "Regular", + "size": 50.0, + "bold": false, + "italic": false, + "charset": 0, + "AntiAlias": 1, + "first": 0, + "last": 0, + "sampleText": "abcdef ABCDEF\n0123456789 .,<>\"'&!?\nthe quick brown fox jumps over the lazy dog\nTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG\nDefault character: ▯ (9647)", + "includeTTF": false, + "TTFName": "", + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "ascenderOffset": 0, + "glyphs": { + "32": {"x":2,"y":2,"w":19,"h":77,"character":32,"shift":19,"offset":0,}, + "33": {"x":151,"y":160,"w":9,"h":77,"character":33,"shift":19,"offset":5,}, + "34": {"x":131,"y":160,"w":18,"h":77,"character":34,"shift":24,"offset":3,}, + "35": {"x":92,"y":160,"w":37,"h":77,"character":35,"shift":37,"offset":0,}, + "36": {"x":57,"y":160,"w":33,"h":77,"character":36,"shift":37,"offset":2,}, + "37": {"x":2,"y":160,"w":53,"h":77,"character":37,"shift":60,"offset":3,}, + "38": {"x":929,"y":81,"w":42,"h":77,"character":38,"shift":45,"offset":2,}, + "39": {"x":919,"y":81,"w":8,"h":77,"character":39,"shift":13,"offset":2,}, + "40": {"x":901,"y":81,"w":16,"h":77,"character":40,"shift":22,"offset":4,}, + "41": {"x":883,"y":81,"w":16,"h":77,"character":41,"shift":22,"offset":4,}, + "42": {"x":162,"y":160,"w":22,"h":77,"character":42,"shift":26,"offset":2,}, + "43": {"x":848,"y":81,"w":33,"h":77,"character":43,"shift":39,"offset":3,}, + "44": {"x":803,"y":81,"w":8,"h":77,"character":44,"shift":19,"offset":5,}, + "45": {"x":782,"y":81,"w":19,"h":77,"character":45,"shift":22,"offset":2,}, + "46": {"x":773,"y":81,"w":7,"h":77,"character":46,"shift":19,"offset":6,}, + "47": {"x":752,"y":81,"w":19,"h":77,"character":47,"shift":19,"offset":0,}, + "48": {"x":717,"y":81,"w":33,"h":77,"character":48,"shift":37,"offset":2,}, + "49": {"x":697,"y":81,"w":18,"h":77,"character":49,"shift":37,"offset":7,}, + "50": {"x":662,"y":81,"w":33,"h":77,"character":50,"shift":37,"offset":1,}, + "51": {"x":627,"y":81,"w":33,"h":77,"character":51,"shift":37,"offset":2,}, + "52": {"x":590,"y":81,"w":35,"h":77,"character":52,"shift":37,"offset":0,}, + "53": {"x":813,"y":81,"w":33,"h":77,"character":53,"shift":37,"offset":2,}, + "54": {"x":186,"y":160,"w":33,"h":77,"character":54,"shift":37,"offset":2,}, + "55": {"x":221,"y":160,"w":32,"h":77,"character":55,"shift":37,"offset":3,}, + "56": {"x":255,"y":160,"w":33,"h":77,"character":56,"shift":37,"offset":2,}, + "57": {"x":2,"y":239,"w":33,"h":77,"character":57,"shift":37,"offset":2,}, + "58": {"x":1004,"y":160,"w":7,"h":77,"character":58,"shift":19,"offset":6,}, + "59": {"x":994,"y":160,"w":8,"h":77,"character":59,"shift":19,"offset":5,}, + "60": {"x":959,"y":160,"w":33,"h":77,"character":60,"shift":39,"offset":3,}, + "61": {"x":924,"y":160,"w":33,"h":77,"character":61,"shift":39,"offset":3,}, + "62": {"x":889,"y":160,"w":33,"h":77,"character":62,"shift":39,"offset":3,}, + "63": {"x":855,"y":160,"w":32,"h":77,"character":63,"shift":37,"offset":2,}, + "64": {"x":790,"y":160,"w":63,"h":77,"character":64,"shift":68,"offset":3,}, + "65": {"x":742,"y":160,"w":46,"h":77,"character":65,"shift":45,"offset":-1,}, + "66": {"x":702,"y":160,"w":38,"h":77,"character":66,"shift":45,"offset":4,}, + "67": {"x":657,"y":160,"w":43,"h":77,"character":67,"shift":48,"offset":3,}, + "68": {"x":615,"y":160,"w":40,"h":77,"character":68,"shift":48,"offset":5,}, + "69": {"x":576,"y":160,"w":37,"h":77,"character":69,"shift":45,"offset":5,}, + "70": {"x":541,"y":160,"w":33,"h":77,"character":70,"shift":41,"offset":5,}, + "71": {"x":494,"y":160,"w":45,"h":77,"character":71,"shift":52,"offset":3,}, + "72": {"x":454,"y":160,"w":38,"h":77,"character":72,"shift":48,"offset":5,}, + "73": {"x":445,"y":160,"w":7,"h":77,"character":73,"shift":19,"offset":6,}, + "74": {"x":415,"y":160,"w":28,"h":77,"character":74,"shift":34,"offset":1,}, + "75": {"x":372,"y":160,"w":41,"h":77,"character":75,"shift":45,"offset":4,}, + "76": {"x":339,"y":160,"w":31,"h":77,"character":76,"shift":37,"offset":4,}, + "77": {"x":290,"y":160,"w":47,"h":77,"character":77,"shift":56,"offset":4,}, + "78": {"x":550,"y":81,"w":38,"h":77,"character":78,"shift":48,"offset":5,}, + "79": {"x":501,"y":81,"w":47,"h":77,"character":79,"shift":52,"offset":3,}, + "80": {"x":462,"y":81,"w":37,"h":77,"character":80,"shift":45,"offset":5,}, + "81": {"x":772,"y":2,"w":48,"h":77,"character":81,"shift":52,"offset":2,}, + "82": {"x":711,"y":2,"w":43,"h":77,"character":82,"shift":48,"offset":5,}, + "83": {"x":670,"y":2,"w":39,"h":77,"character":83,"shift":45,"offset":3,}, + "84": {"x":629,"y":2,"w":39,"h":77,"character":84,"shift":41,"offset":1,}, + "85": {"x":589,"y":2,"w":38,"h":77,"character":85,"shift":48,"offset":5,}, + "86": {"x":542,"y":2,"w":45,"h":77,"character":86,"shift":45,"offset":0,}, + "87": {"x":477,"y":2,"w":63,"h":77,"character":87,"shift":63,"offset":0,}, + "88": {"x":430,"y":2,"w":45,"h":77,"character":88,"shift":45,"offset":0,}, + "89": {"x":383,"y":2,"w":45,"h":77,"character":89,"shift":45,"offset":0,}, + "90": {"x":342,"y":2,"w":39,"h":77,"character":90,"shift":41,"offset":1,}, + "91": {"x":756,"y":2,"w":14,"h":77,"character":91,"shift":19,"offset":4,}, + "92": {"x":321,"y":2,"w":19,"h":77,"character":92,"shift":19,"offset":0,}, + "93": {"x":282,"y":2,"w":14,"h":77,"character":93,"shift":19,"offset":1,}, + "94": {"x":251,"y":2,"w":29,"h":77,"character":94,"shift":31,"offset":1,}, + "95": {"x":208,"y":2,"w":41,"h":77,"character":95,"shift":37,"offset":-2,}, + "96": {"x":192,"y":2,"w":14,"h":77,"character":96,"shift":22,"offset":2,}, + "97": {"x":157,"y":2,"w":33,"h":77,"character":97,"shift":37,"offset":2,}, + "98": {"x":124,"y":2,"w":31,"h":77,"character":98,"shift":37,"offset":4,}, + "99": {"x":91,"y":2,"w":31,"h":77,"character":99,"shift":34,"offset":2,}, + "100": {"x":58,"y":2,"w":31,"h":77,"character":100,"shift":37,"offset":2,}, + "101": {"x":23,"y":2,"w":33,"h":77,"character":101,"shift":37,"offset":2,}, + "102": {"x":298,"y":2,"w":21,"h":77,"character":102,"shift":19,"offset":0,}, + "103": {"x":822,"y":2,"w":31,"h":77,"character":103,"shift":37,"offset":2,}, + "104": {"x":118,"y":81,"w":29,"h":77,"character":104,"shift":37,"offset":4,}, + "105": {"x":855,"y":2,"w":7,"h":77,"character":105,"shift":15,"offset":4,}, + "106": {"x":414,"y":81,"w":15,"h":77,"character":106,"shift":15,"offset":-4,}, + "107": {"x":382,"y":81,"w":30,"h":77,"character":107,"shift":34,"offset":4,}, + "108": {"x":373,"y":81,"w":7,"h":77,"character":108,"shift":15,"offset":4,}, + "109": {"x":323,"y":81,"w":48,"h":77,"character":109,"shift":56,"offset":4,}, + "110": {"x":292,"y":81,"w":29,"h":77,"character":110,"shift":37,"offset":4,}, + "111": {"x":257,"y":81,"w":33,"h":77,"character":111,"shift":37,"offset":2,}, + "112": {"x":224,"y":81,"w":31,"h":77,"character":112,"shift":37,"offset":4,}, + "113": {"x":191,"y":81,"w":31,"h":77,"character":113,"shift":37,"offset":2,}, + "114": {"x":169,"y":81,"w":20,"h":77,"character":114,"shift":22,"offset":4,}, + "115": {"x":431,"y":81,"w":29,"h":77,"character":115,"shift":34,"offset":2,}, + "116": {"x":149,"y":81,"w":18,"h":77,"character":116,"shift":19,"offset":1,}, + "117": {"x":87,"y":81,"w":29,"h":77,"character":117,"shift":37,"offset":4,}, + "118": {"x":52,"y":81,"w":33,"h":77,"character":118,"shift":34,"offset":0,}, + "119": {"x":2,"y":81,"w":48,"h":77,"character":119,"shift":48,"offset":0,}, + "120": {"x":984,"y":2,"w":34,"h":77,"character":120,"shift":34,"offset":0,}, + "121": {"x":950,"y":2,"w":32,"h":77,"character":121,"shift":34,"offset":1,}, + "122": {"x":916,"y":2,"w":32,"h":77,"character":122,"shift":34,"offset":1,}, + "123": {"x":894,"y":2,"w":20,"h":77,"character":123,"shift":22,"offset":1,}, + "124": {"x":886,"y":2,"w":6,"h":77,"character":124,"shift":17,"offset":6,}, + "125": {"x":864,"y":2,"w":20,"h":77,"character":125,"shift":22,"offset":1,}, + "126": {"x":37,"y":239,"w":35,"h":77,"character":126,"shift":39,"offset":2,}, + "9647": {"x":74,"y":239,"w":39,"h":77,"character":9647,"shift":65,"offset":13,}, + }, + "kerningPairs": [ + {"first":32,"second":65,"amount":-4,}, + {"first":32,"second":84,"amount":-1,}, + {"first":32,"second":89,"amount":-1,}, + {"first":32,"second":902,"amount":-4,}, + {"first":32,"second":913,"amount":-4,}, + {"first":32,"second":916,"amount":-4,}, + {"first":32,"second":923,"amount":-4,}, + {"first":32,"second":932,"amount":-1,}, + {"first":32,"second":933,"amount":-1,}, + {"first":32,"second":939,"amount":-1,}, + {"first":49,"second":49,"amount":-5,}, + {"first":65,"second":32,"amount":-4,}, + {"first":65,"second":84,"amount":-5,}, + {"first":65,"second":86,"amount":-5,}, + {"first":65,"second":87,"amount":-2,}, + {"first":65,"second":89,"amount":-5,}, + {"first":65,"second":118,"amount":-1,}, + {"first":65,"second":119,"amount":-1,}, + {"first":65,"second":121,"amount":-1,}, + {"first":65,"second":160,"amount":-4,}, + {"first":65,"second":8217,"amount":-5,}, + {"first":70,"second":44,"amount":-7,}, + {"first":70,"second":46,"amount":-7,}, + {"first":70,"second":65,"amount":-4,}, + {"first":76,"second":32,"amount":-2,}, + {"first":76,"second":84,"amount":-5,}, + {"first":76,"second":86,"amount":-5,}, + {"first":76,"second":87,"amount":-5,}, + {"first":76,"second":89,"amount":-5,}, + {"first":76,"second":121,"amount":-2,}, + {"first":76,"second":160,"amount":-2,}, + {"first":76,"second":8217,"amount":-4,}, + {"first":80,"second":32,"amount":-1,}, + {"first":80,"second":44,"amount":-9,}, + {"first":80,"second":46,"amount":-9,}, + {"first":80,"second":65,"amount":-5,}, + {"first":80,"second":160,"amount":-1,}, + {"first":82,"second":84,"amount":-1,}, + {"first":82,"second":86,"amount":-1,}, + {"first":82,"second":87,"amount":-1,}, + {"first":82,"second":89,"amount":-1,}, + {"first":84,"second":32,"amount":-1,}, + {"first":84,"second":44,"amount":-7,}, + {"first":84,"second":45,"amount":-4,}, + {"first":84,"second":46,"amount":-7,}, + {"first":84,"second":58,"amount":-7,}, + {"first":84,"second":59,"amount":-7,}, + {"first":84,"second":65,"amount":-5,}, + {"first":84,"second":79,"amount":-1,}, + {"first":84,"second":97,"amount":-7,}, + {"first":84,"second":99,"amount":-7,}, + {"first":84,"second":101,"amount":-7,}, + {"first":84,"second":105,"amount":-2,}, + {"first":84,"second":111,"amount":-7,}, + {"first":84,"second":114,"amount":-2,}, + {"first":84,"second":115,"amount":-7,}, + {"first":84,"second":117,"amount":-2,}, + {"first":84,"second":119,"amount":-4,}, + {"first":84,"second":121,"amount":-4,}, + {"first":84,"second":160,"amount":-1,}, + {"first":84,"second":173,"amount":-4,}, + {"first":84,"second":894,"amount":-7,}, + {"first":86,"second":44,"amount":-6,}, + {"first":86,"second":45,"amount":-4,}, + {"first":86,"second":46,"amount":-6,}, + {"first":86,"second":58,"amount":-2,}, + {"first":86,"second":59,"amount":-2,}, + {"first":86,"second":65,"amount":-5,}, + {"first":86,"second":97,"amount":-5,}, + {"first":86,"second":101,"amount":-4,}, + {"first":86,"second":105,"amount":-1,}, + {"first":86,"second":111,"amount":-4,}, + {"first":86,"second":114,"amount":-2,}, + {"first":86,"second":117,"amount":-2,}, + {"first":86,"second":121,"amount":-2,}, + {"first":86,"second":173,"amount":-4,}, + {"first":86,"second":894,"amount":-2,}, + {"first":87,"second":44,"amount":-4,}, + {"first":87,"second":45,"amount":-1,}, + {"first":87,"second":46,"amount":-4,}, + {"first":87,"second":58,"amount":-1,}, + {"first":87,"second":59,"amount":-1,}, + {"first":87,"second":65,"amount":-2,}, + {"first":87,"second":97,"amount":-2,}, + {"first":87,"second":101,"amount":-1,}, + {"first":87,"second":111,"amount":-1,}, + {"first":87,"second":114,"amount":-1,}, + {"first":87,"second":117,"amount":-1,}, + {"first":87,"second":121,"amount":-1,}, + {"first":87,"second":173,"amount":-1,}, + {"first":87,"second":894,"amount":-1,}, + {"first":89,"second":32,"amount":-1,}, + {"first":89,"second":44,"amount":-9,}, + {"first":89,"second":45,"amount":-6,}, + {"first":89,"second":46,"amount":-9,}, + {"first":89,"second":58,"amount":-4,}, + {"first":89,"second":59,"amount":-4,}, + {"first":89,"second":65,"amount":-5,}, + {"first":89,"second":97,"amount":-5,}, + {"first":89,"second":101,"amount":-6,}, + {"first":89,"second":105,"amount":-2,}, + {"first":89,"second":111,"amount":-6,}, + {"first":89,"second":112,"amount":-5,}, + {"first":89,"second":113,"amount":-6,}, + {"first":89,"second":117,"amount":-4,}, + {"first":89,"second":118,"amount":-4,}, + {"first":89,"second":160,"amount":-1,}, + {"first":89,"second":173,"amount":-6,}, + {"first":89,"second":894,"amount":-4,}, + {"first":102,"second":102,"amount":-1,}, + {"first":102,"second":8217,"amount":1,}, + {"first":114,"second":44,"amount":-4,}, + {"first":114,"second":46,"amount":-4,}, + {"first":114,"second":8217,"amount":2,}, + {"first":118,"second":44,"amount":-5,}, + {"first":118,"second":46,"amount":-5,}, + {"first":119,"second":44,"amount":-4,}, + {"first":119,"second":46,"amount":-4,}, + {"first":121,"second":44,"amount":-5,}, + {"first":121,"second":46,"amount":-5,}, + ], + "ranges": [ + {"lower":32,"upper":127,}, + {"lower":9647,"upper":9647,}, + ], + "regenerateBitmap": false, + "canGenerateBitmap": true, + "maintainGms1Font": false, + "parent": { + "name": "Font", + "path": "folders/YoyoAsset/Font.yy", + }, + "resourceVersion": "1.0", + "name": "Font_Yoyo_30", + "tags": [], + "resourceType": "GMFont", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/fonts/Font_Yoyo_30/Font_Yoyo_30.png b/source/GooglePlayServices_gml/fonts/Font_Yoyo_30/Font_Yoyo_30.png new file mode 100644 index 0000000..ffcaf01 Binary files /dev/null and b/source/GooglePlayServices_gml/fonts/Font_Yoyo_30/Font_Yoyo_30.png differ diff --git a/source/GooglePlayServices_gml/fonts/Font_Yoyo_30/Font_Yoyo_30.yy b/source/GooglePlayServices_gml/fonts/Font_Yoyo_30/Font_Yoyo_30.yy new file mode 100644 index 0000000..a19b89e --- /dev/null +++ b/source/GooglePlayServices_gml/fonts/Font_Yoyo_30/Font_Yoyo_30.yy @@ -0,0 +1,259 @@ +{ + "hinting": 0, + "glyphOperations": 0, + "interpreter": 0, + "pointRounding": 0, + "applyKerning": 0, + "fontName": "Arial", + "styleName": "Regular", + "size": 30.0, + "bold": false, + "italic": false, + "charset": 0, + "AntiAlias": 1, + "first": 0, + "last": 0, + "sampleText": "abcdef ABCDEF\n0123456789 .,<>\"'&!?\nthe quick brown fox jumps over the lazy dog\nTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG\nDefault character: ▯ (9647)", + "includeTTF": false, + "TTFName": "", + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "ascenderOffset": 0, + "ascender": 0, + "glyphs": { + "32": {"x":2,"y":2,"w":11,"h":46,"character":32,"shift":11,"offset":0,}, + "33": {"x":367,"y":98,"w":5,"h":46,"character":33,"shift":11,"offset":3,}, + "34": {"x":353,"y":98,"w":12,"h":46,"character":34,"shift":14,"offset":1,}, + "35": {"x":329,"y":98,"w":22,"h":46,"character":35,"shift":22,"offset":0,}, + "36": {"x":307,"y":98,"w":20,"h":46,"character":36,"shift":22,"offset":1,}, + "37": {"x":273,"y":98,"w":32,"h":46,"character":37,"shift":36,"offset":2,}, + "38": {"x":246,"y":98,"w":25,"h":46,"character":38,"shift":27,"offset":1,}, + "39": {"x":239,"y":98,"w":5,"h":46,"character":39,"shift":8,"offset":1,}, + "40": {"x":227,"y":98,"w":10,"h":46,"character":40,"shift":13,"offset":2,}, + "41": {"x":215,"y":98,"w":10,"h":46,"character":41,"shift":13,"offset":2,}, + "42": {"x":374,"y":98,"w":14,"h":46,"character":42,"shift":16,"offset":1,}, + "43": {"x":193,"y":98,"w":20,"h":46,"character":43,"shift":23,"offset":2,}, + "44": {"x":164,"y":98,"w":5,"h":46,"character":44,"shift":11,"offset":3,}, + "45": {"x":150,"y":98,"w":12,"h":46,"character":45,"shift":13,"offset":1,}, + "46": {"x":143,"y":98,"w":5,"h":46,"character":46,"shift":11,"offset":3,}, + "47": {"x":129,"y":98,"w":12,"h":46,"character":47,"shift":11,"offset":0,}, + "48": {"x":107,"y":98,"w":20,"h":46,"character":48,"shift":22,"offset":1,}, + "49": {"x":94,"y":98,"w":11,"h":46,"character":49,"shift":22,"offset":4,}, + "50": {"x":72,"y":98,"w":20,"h":46,"character":50,"shift":22,"offset":1,}, + "51": {"x":50,"y":98,"w":20,"h":46,"character":51,"shift":22,"offset":1,}, + "52": {"x":27,"y":98,"w":21,"h":46,"character":52,"shift":22,"offset":0,}, + "53": {"x":171,"y":98,"w":20,"h":46,"character":53,"shift":22,"offset":1,}, + "54": {"x":390,"y":98,"w":20,"h":46,"character":54,"shift":22,"offset":1,}, + "55": {"x":412,"y":98,"w":20,"h":46,"character":55,"shift":22,"offset":1,}, + "56": {"x":434,"y":98,"w":20,"h":46,"character":56,"shift":22,"offset":1,}, + "57": {"x":405,"y":146,"w":20,"h":46,"character":57,"shift":22,"offset":1,}, + "58": {"x":398,"y":146,"w":5,"h":46,"character":58,"shift":11,"offset":3,}, + "59": {"x":391,"y":146,"w":5,"h":46,"character":59,"shift":11,"offset":3,}, + "60": {"x":369,"y":146,"w":20,"h":46,"character":60,"shift":23,"offset":2,}, + "61": {"x":347,"y":146,"w":20,"h":46,"character":61,"shift":23,"offset":2,}, + "62": {"x":325,"y":146,"w":20,"h":46,"character":62,"shift":23,"offset":2,}, + "63": {"x":303,"y":146,"w":20,"h":46,"character":63,"shift":22,"offset":1,}, + "64": {"x":263,"y":146,"w":38,"h":46,"character":64,"shift":41,"offset":2,}, + "65": {"x":233,"y":146,"w":28,"h":46,"character":65,"shift":27,"offset":-1,}, + "66": {"x":208,"y":146,"w":23,"h":46,"character":66,"shift":27,"offset":2,}, + "67": {"x":180,"y":146,"w":26,"h":46,"character":67,"shift":29,"offset":2,}, + "68": {"x":154,"y":146,"w":24,"h":46,"character":68,"shift":29,"offset":3,}, + "69": {"x":130,"y":146,"w":22,"h":46,"character":69,"shift":27,"offset":3,}, + "70": {"x":108,"y":146,"w":20,"h":46,"character":70,"shift":24,"offset":3,}, + "71": {"x":79,"y":146,"w":27,"h":46,"character":71,"shift":31,"offset":2,}, + "72": {"x":54,"y":146,"w":23,"h":46,"character":72,"shift":29,"offset":3,}, + "73": {"x":47,"y":146,"w":5,"h":46,"character":73,"shift":11,"offset":3,}, + "74": {"x":29,"y":146,"w":16,"h":46,"character":74,"shift":20,"offset":1,}, + "75": {"x":2,"y":146,"w":25,"h":46,"character":75,"shift":27,"offset":2,}, + "76": {"x":487,"y":98,"w":19,"h":46,"character":76,"shift":22,"offset":2,}, + "77": {"x":456,"y":98,"w":29,"h":46,"character":77,"shift":33,"offset":2,}, + "78": {"x":2,"y":98,"w":23,"h":46,"character":78,"shift":29,"offset":3,}, + "79": {"x":479,"y":50,"w":29,"h":46,"character":79,"shift":31,"offset":1,}, + "80": {"x":455,"y":50,"w":22,"h":46,"character":80,"shift":27,"offset":3,}, + "81": {"x":2,"y":50,"w":29,"h":46,"character":81,"shift":31,"offset":1,}, + "82": {"x":448,"y":2,"w":26,"h":46,"character":82,"shift":29,"offset":3,}, + "83": {"x":422,"y":2,"w":24,"h":46,"character":83,"shift":27,"offset":1,}, + "84": {"x":396,"y":2,"w":24,"h":46,"character":84,"shift":24,"offset":0,}, + "85": {"x":371,"y":2,"w":23,"h":46,"character":85,"shift":29,"offset":3,}, + "86": {"x":342,"y":2,"w":27,"h":46,"character":86,"shift":27,"offset":0,}, + "87": {"x":302,"y":2,"w":38,"h":46,"character":87,"shift":38,"offset":0,}, + "88": {"x":273,"y":2,"w":27,"h":46,"character":88,"shift":27,"offset":0,}, + "89": {"x":244,"y":2,"w":27,"h":46,"character":89,"shift":27,"offset":0,}, + "90": {"x":218,"y":2,"w":24,"h":46,"character":90,"shift":24,"offset":0,}, + "91": {"x":476,"y":2,"w":9,"h":46,"character":91,"shift":11,"offset":2,}, + "92": {"x":204,"y":2,"w":12,"h":46,"character":92,"shift":11,"offset":0,}, + "93": {"x":178,"y":2,"w":9,"h":46,"character":93,"shift":11,"offset":0,}, + "94": {"x":159,"y":2,"w":17,"h":46,"character":94,"shift":19,"offset":1,}, + "95": {"x":133,"y":2,"w":24,"h":46,"character":95,"shift":22,"offset":-1,}, + "96": {"x":122,"y":2,"w":9,"h":46,"character":96,"shift":13,"offset":1,}, + "97": {"x":100,"y":2,"w":20,"h":46,"character":97,"shift":22,"offset":1,}, + "98": {"x":79,"y":2,"w":19,"h":46,"character":98,"shift":22,"offset":2,}, + "99": {"x":58,"y":2,"w":19,"h":46,"character":99,"shift":20,"offset":1,}, + "100": {"x":37,"y":2,"w":19,"h":46,"character":100,"shift":22,"offset":1,}, + "101": {"x":15,"y":2,"w":20,"h":46,"character":101,"shift":22,"offset":1,}, + "102": {"x":189,"y":2,"w":13,"h":46,"character":102,"shift":11,"offset":0,}, + "103": {"x":33,"y":50,"w":19,"h":46,"character":103,"shift":22,"offset":1,}, + "104": {"x":235,"y":50,"w":18,"h":46,"character":104,"shift":22,"offset":2,}, + "105": {"x":54,"y":50,"w":5,"h":46,"character":105,"shift":9,"offset":2,}, + "106": {"x":424,"y":50,"w":9,"h":46,"character":106,"shift":9,"offset":-2,}, + "107": {"x":404,"y":50,"w":18,"h":46,"character":107,"shift":20,"offset":2,}, + "108": {"x":397,"y":50,"w":5,"h":46,"character":108,"shift":9,"offset":2,}, + "109": {"x":366,"y":50,"w":29,"h":46,"character":109,"shift":33,"offset":2,}, + "110": {"x":346,"y":50,"w":18,"h":46,"character":110,"shift":22,"offset":2,}, + "111": {"x":324,"y":50,"w":20,"h":46,"character":111,"shift":22,"offset":1,}, + "112": {"x":303,"y":50,"w":19,"h":46,"character":112,"shift":22,"offset":2,}, + "113": {"x":282,"y":50,"w":19,"h":46,"character":113,"shift":22,"offset":1,}, + "114": {"x":268,"y":50,"w":12,"h":46,"character":114,"shift":13,"offset":2,}, + "115": {"x":435,"y":50,"w":18,"h":46,"character":115,"shift":20,"offset":1,}, + "116": {"x":255,"y":50,"w":11,"h":46,"character":116,"shift":11,"offset":0,}, + "117": {"x":215,"y":50,"w":18,"h":46,"character":117,"shift":22,"offset":2,}, + "118": {"x":193,"y":50,"w":20,"h":46,"character":118,"shift":20,"offset":0,}, + "119": {"x":162,"y":50,"w":29,"h":46,"character":119,"shift":29,"offset":0,}, + "120": {"x":140,"y":50,"w":20,"h":46,"character":120,"shift":20,"offset":0,}, + "121": {"x":118,"y":50,"w":20,"h":46,"character":121,"shift":20,"offset":0,}, + "122": {"x":96,"y":50,"w":20,"h":46,"character":122,"shift":20,"offset":0,}, + "123": {"x":82,"y":50,"w":12,"h":46,"character":123,"shift":13,"offset":1,}, + "124": {"x":76,"y":50,"w":4,"h":46,"character":124,"shift":10,"offset":3,}, + "125": {"x":61,"y":50,"w":13,"h":46,"character":125,"shift":13,"offset":0,}, + "126": {"x":427,"y":146,"w":21,"h":46,"character":126,"shift":23,"offset":1,}, + "9647": {"x":450,"y":146,"w":23,"h":46,"character":9647,"shift":39,"offset":8,}, + }, + "kerningPairs": [ + {"first":32,"second":65,"amount":-2,}, + {"first":32,"second":84,"amount":-1,}, + {"first":32,"second":89,"amount":-1,}, + {"first":32,"second":902,"amount":-2,}, + {"first":32,"second":913,"amount":-2,}, + {"first":32,"second":916,"amount":-2,}, + {"first":32,"second":923,"amount":-2,}, + {"first":32,"second":932,"amount":-1,}, + {"first":32,"second":933,"amount":-1,}, + {"first":32,"second":939,"amount":-1,}, + {"first":49,"second":49,"amount":-3,}, + {"first":65,"second":32,"amount":-2,}, + {"first":65,"second":84,"amount":-3,}, + {"first":65,"second":86,"amount":-3,}, + {"first":65,"second":87,"amount":-1,}, + {"first":65,"second":89,"amount":-3,}, + {"first":65,"second":118,"amount":-1,}, + {"first":65,"second":119,"amount":-1,}, + {"first":65,"second":121,"amount":-1,}, + {"first":65,"second":160,"amount":-2,}, + {"first":65,"second":8217,"amount":-3,}, + {"first":70,"second":44,"amount":-4,}, + {"first":70,"second":46,"amount":-4,}, + {"first":70,"second":65,"amount":-2,}, + {"first":76,"second":32,"amount":-1,}, + {"first":76,"second":84,"amount":-3,}, + {"first":76,"second":86,"amount":-3,}, + {"first":76,"second":87,"amount":-3,}, + {"first":76,"second":89,"amount":-3,}, + {"first":76,"second":121,"amount":-1,}, + {"first":76,"second":160,"amount":-1,}, + {"first":76,"second":8217,"amount":-2,}, + {"first":80,"second":32,"amount":-1,}, + {"first":80,"second":44,"amount":-5,}, + {"first":80,"second":46,"amount":-5,}, + {"first":80,"second":65,"amount":-3,}, + {"first":80,"second":160,"amount":-1,}, + {"first":82,"second":84,"amount":-1,}, + {"first":82,"second":86,"amount":-1,}, + {"first":82,"second":87,"amount":-1,}, + {"first":82,"second":89,"amount":-1,}, + {"first":84,"second":32,"amount":-1,}, + {"first":84,"second":44,"amount":-4,}, + {"first":84,"second":45,"amount":-2,}, + {"first":84,"second":46,"amount":-4,}, + {"first":84,"second":58,"amount":-4,}, + {"first":84,"second":59,"amount":-4,}, + {"first":84,"second":65,"amount":-3,}, + {"first":84,"second":79,"amount":-1,}, + {"first":84,"second":97,"amount":-4,}, + {"first":84,"second":99,"amount":-4,}, + {"first":84,"second":101,"amount":-4,}, + {"first":84,"second":105,"amount":-1,}, + {"first":84,"second":111,"amount":-4,}, + {"first":84,"second":114,"amount":-1,}, + {"first":84,"second":115,"amount":-4,}, + {"first":84,"second":117,"amount":-1,}, + {"first":84,"second":119,"amount":-2,}, + {"first":84,"second":121,"amount":-2,}, + {"first":84,"second":160,"amount":-1,}, + {"first":84,"second":173,"amount":-2,}, + {"first":84,"second":894,"amount":-4,}, + {"first":86,"second":44,"amount":-4,}, + {"first":86,"second":45,"amount":-2,}, + {"first":86,"second":46,"amount":-4,}, + {"first":86,"second":58,"amount":-1,}, + {"first":86,"second":59,"amount":-1,}, + {"first":86,"second":65,"amount":-3,}, + {"first":86,"second":97,"amount":-3,}, + {"first":86,"second":101,"amount":-2,}, + {"first":86,"second":105,"amount":-1,}, + {"first":86,"second":111,"amount":-2,}, + {"first":86,"second":114,"amount":-1,}, + {"first":86,"second":117,"amount":-1,}, + {"first":86,"second":121,"amount":-1,}, + {"first":86,"second":173,"amount":-2,}, + {"first":86,"second":894,"amount":-1,}, + {"first":87,"second":44,"amount":-2,}, + {"first":87,"second":45,"amount":-1,}, + {"first":87,"second":46,"amount":-2,}, + {"first":87,"second":58,"amount":-1,}, + {"first":87,"second":59,"amount":-1,}, + {"first":87,"second":65,"amount":-1,}, + {"first":87,"second":97,"amount":-1,}, + {"first":87,"second":101,"amount":-1,}, + {"first":87,"second":111,"amount":-1,}, + {"first":87,"second":114,"amount":-1,}, + {"first":87,"second":117,"amount":-1,}, + {"first":87,"second":173,"amount":-1,}, + {"first":87,"second":894,"amount":-1,}, + {"first":89,"second":32,"amount":-1,}, + {"first":89,"second":44,"amount":-5,}, + {"first":89,"second":45,"amount":-4,}, + {"first":89,"second":46,"amount":-5,}, + {"first":89,"second":58,"amount":-2,}, + {"first":89,"second":59,"amount":-3,}, + {"first":89,"second":65,"amount":-3,}, + {"first":89,"second":97,"amount":-3,}, + {"first":89,"second":101,"amount":-4,}, + {"first":89,"second":105,"amount":-1,}, + {"first":89,"second":111,"amount":-4,}, + {"first":89,"second":112,"amount":-3,}, + {"first":89,"second":113,"amount":-4,}, + {"first":89,"second":117,"amount":-2,}, + {"first":89,"second":118,"amount":-2,}, + {"first":89,"second":160,"amount":-1,}, + {"first":89,"second":173,"amount":-4,}, + {"first":89,"second":894,"amount":-3,}, + {"first":102,"second":102,"amount":-1,}, + {"first":102,"second":8217,"amount":1,}, + {"first":114,"second":44,"amount":-2,}, + {"first":114,"second":46,"amount":-2,}, + {"first":114,"second":8217,"amount":1,}, + {"first":118,"second":44,"amount":-3,}, + {"first":118,"second":46,"amount":-3,}, + {"first":119,"second":44,"amount":-2,}, + {"first":119,"second":46,"amount":-2,}, + {"first":121,"second":44,"amount":-3,}, + {"first":121,"second":46,"amount":-3,}, + ], + "ranges": [ + {"lower":32,"upper":127,}, + {"lower":9647,"upper":9647,}, + ], + "regenerateBitmap": false, + "canGenerateBitmap": true, + "maintainGms1Font": false, + "parent": { + "name": "Font", + "path": "folders/YoYo Extensions Assets/Font.yy", + }, + "resourceVersion": "1.0", + "name": "Font_YoYo_30", + "tags": [], + "resourceType": "GMFont", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/fonts/Font_Yoyo_50/Font_Yoyo_20.png b/source/GooglePlayServices_gml/fonts/Font_Yoyo_50/Font_Yoyo_20.png new file mode 100644 index 0000000..87fbfea Binary files /dev/null and b/source/GooglePlayServices_gml/fonts/Font_Yoyo_50/Font_Yoyo_20.png differ diff --git a/source/GooglePlayServices_gml/fonts/Font_Yoyo_50/Font_Yoyo_20.yy b/source/GooglePlayServices_gml/fonts/Font_Yoyo_50/Font_Yoyo_20.yy new file mode 100644 index 0000000..f6a6f6c --- /dev/null +++ b/source/GooglePlayServices_gml/fonts/Font_Yoyo_50/Font_Yoyo_20.yy @@ -0,0 +1,209 @@ +{ + "hinting": 0, + "glyphOperations": 0, + "interpreter": 0, + "pointRounding": 0, + "fontName": "Arial", + "styleName": "Regular", + "size": 12.0, + "bold": false, + "italic": false, + "charset": 0, + "AntiAlias": 1, + "first": 0, + "last": 0, + "sampleText": "abcdef ABCDEF\n0123456789 .,<>\"'&!?\nthe quick brown fox jumps over the lazy dog\nTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG\nDefault character: ▯ (9647)", + "includeTTF": false, + "TTFName": "", + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "ascenderOffset": 0, + "glyphs": { + "32": {"x":2,"y":2,"w":4,"h":18,"character":32,"shift":4,"offset":0,}, + "33": {"x":165,"y":42,"w":3,"h":18,"character":33,"shift":4,"offset":1,}, + "34": {"x":158,"y":42,"w":5,"h":18,"character":34,"shift":6,"offset":0,}, + "35": {"x":147,"y":42,"w":9,"h":18,"character":35,"shift":9,"offset":0,}, + "36": {"x":136,"y":42,"w":9,"h":18,"character":36,"shift":9,"offset":0,}, + "37": {"x":120,"y":42,"w":14,"h":18,"character":37,"shift":14,"offset":0,}, + "38": {"x":107,"y":42,"w":11,"h":18,"character":38,"shift":11,"offset":0,}, + "39": {"x":102,"y":42,"w":3,"h":18,"character":39,"shift":3,"offset":0,}, + "40": {"x":95,"y":42,"w":5,"h":18,"character":40,"shift":5,"offset":0,}, + "41": {"x":88,"y":42,"w":5,"h":18,"character":41,"shift":5,"offset":0,}, + "42": {"x":170,"y":42,"w":6,"h":18,"character":42,"shift":6,"offset":0,}, + "43": {"x":77,"y":42,"w":9,"h":18,"character":43,"shift":9,"offset":0,}, + "44": {"x":61,"y":42,"w":3,"h":18,"character":44,"shift":4,"offset":1,}, + "45": {"x":54,"y":42,"w":5,"h":18,"character":45,"shift":5,"offset":0,}, + "46": {"x":49,"y":42,"w":3,"h":18,"character":46,"shift":4,"offset":1,}, + "47": {"x":42,"y":42,"w":5,"h":18,"character":47,"shift":4,"offset":0,}, + "48": {"x":31,"y":42,"w":9,"h":18,"character":48,"shift":9,"offset":0,}, + "49": {"x":24,"y":42,"w":5,"h":18,"character":49,"shift":9,"offset":1,}, + "50": {"x":13,"y":42,"w":9,"h":18,"character":50,"shift":9,"offset":0,}, + "51": {"x":2,"y":42,"w":9,"h":18,"character":51,"shift":9,"offset":0,}, + "52": {"x":240,"y":22,"w":9,"h":18,"character":52,"shift":9,"offset":0,}, + "53": {"x":66,"y":42,"w":9,"h":18,"character":53,"shift":9,"offset":0,}, + "54": {"x":178,"y":42,"w":9,"h":18,"character":54,"shift":9,"offset":0,}, + "55": {"x":189,"y":42,"w":9,"h":18,"character":55,"shift":9,"offset":0,}, + "56": {"x":200,"y":42,"w":9,"h":18,"character":56,"shift":9,"offset":0,}, + "57": {"x":186,"y":62,"w":9,"h":18,"character":57,"shift":9,"offset":0,}, + "58": {"x":181,"y":62,"w":3,"h":18,"character":58,"shift":4,"offset":1,}, + "59": {"x":176,"y":62,"w":3,"h":18,"character":59,"shift":4,"offset":1,}, + "60": {"x":165,"y":62,"w":9,"h":18,"character":60,"shift":9,"offset":0,}, + "61": {"x":154,"y":62,"w":9,"h":18,"character":61,"shift":9,"offset":0,}, + "62": {"x":143,"y":62,"w":9,"h":18,"character":62,"shift":9,"offset":0,}, + "63": {"x":132,"y":62,"w":9,"h":18,"character":63,"shift":9,"offset":0,}, + "64": {"x":114,"y":62,"w":16,"h":18,"character":64,"shift":16,"offset":0,}, + "65": {"x":100,"y":62,"w":12,"h":18,"character":65,"shift":11,"offset":-1,}, + "66": {"x":89,"y":62,"w":9,"h":18,"character":66,"shift":11,"offset":1,}, + "67": {"x":76,"y":62,"w":11,"h":18,"character":67,"shift":12,"offset":0,}, + "68": {"x":64,"y":62,"w":10,"h":18,"character":68,"shift":12,"offset":1,}, + "69": {"x":53,"y":62,"w":9,"h":18,"character":69,"shift":11,"offset":1,}, + "70": {"x":42,"y":62,"w":9,"h":18,"character":70,"shift":10,"offset":1,}, + "71": {"x":28,"y":62,"w":12,"h":18,"character":71,"shift":12,"offset":0,}, + "72": {"x":16,"y":62,"w":10,"h":18,"character":72,"shift":12,"offset":1,}, + "73": {"x":11,"y":62,"w":3,"h":18,"character":73,"shift":4,"offset":1,}, + "74": {"x":2,"y":62,"w":7,"h":18,"character":74,"shift":8,"offset":0,}, + "75": {"x":235,"y":42,"w":10,"h":18,"character":75,"shift":11,"offset":1,}, + "76": {"x":225,"y":42,"w":8,"h":18,"character":76,"shift":9,"offset":1,}, + "77": {"x":211,"y":42,"w":12,"h":18,"character":77,"shift":13,"offset":1,}, + "78": {"x":228,"y":22,"w":10,"h":18,"character":78,"shift":12,"offset":1,}, + "79": {"x":214,"y":22,"w":12,"h":18,"character":79,"shift":12,"offset":0,}, + "80": {"x":203,"y":22,"w":9,"h":18,"character":80,"shift":11,"offset":1,}, + "81": {"x":232,"y":2,"w":12,"h":18,"character":81,"shift":12,"offset":0,}, + "82": {"x":213,"y":2,"w":11,"h":18,"character":82,"shift":12,"offset":1,}, + "83": {"x":201,"y":2,"w":10,"h":18,"character":83,"shift":11,"offset":0,}, + "84": {"x":189,"y":2,"w":10,"h":18,"character":84,"shift":10,"offset":0,}, + "85": {"x":177,"y":2,"w":10,"h":18,"character":85,"shift":12,"offset":1,}, + "86": {"x":164,"y":2,"w":11,"h":18,"character":86,"shift":11,"offset":0,}, + "87": {"x":147,"y":2,"w":15,"h":18,"character":87,"shift":15,"offset":0,}, + "88": {"x":134,"y":2,"w":11,"h":18,"character":88,"shift":11,"offset":0,}, + "89": {"x":121,"y":2,"w":11,"h":18,"character":89,"shift":11,"offset":0,}, + "90": {"x":109,"y":2,"w":10,"h":18,"character":90,"shift":10,"offset":0,}, + "91": {"x":226,"y":2,"w":4,"h":18,"character":91,"shift":4,"offset":1,}, + "92": {"x":102,"y":2,"w":5,"h":18,"character":92,"shift":4,"offset":0,}, + "93": {"x":89,"y":2,"w":4,"h":18,"character":93,"shift":4,"offset":0,}, + "94": {"x":79,"y":2,"w":8,"h":18,"character":94,"shift":8,"offset":0,}, + "95": {"x":66,"y":2,"w":11,"h":18,"character":95,"shift":9,"offset":-1,}, + "96": {"x":60,"y":2,"w":4,"h":18,"character":96,"shift":5,"offset":0,}, + "97": {"x":49,"y":2,"w":9,"h":18,"character":97,"shift":9,"offset":0,}, + "98": {"x":39,"y":2,"w":8,"h":18,"character":98,"shift":9,"offset":1,}, + "99": {"x":29,"y":2,"w":8,"h":18,"character":99,"shift":8,"offset":0,}, + "100": {"x":19,"y":2,"w":8,"h":18,"character":100,"shift":9,"offset":0,}, + "101": {"x":8,"y":2,"w":9,"h":18,"character":101,"shift":9,"offset":0,}, + "102": {"x":95,"y":2,"w":5,"h":18,"character":102,"shift":4,"offset":0,}, + "103": {"x":2,"y":22,"w":8,"h":18,"character":103,"shift":9,"offset":0,}, + "104": {"x":97,"y":22,"w":7,"h":18,"character":104,"shift":9,"offset":1,}, + "105": {"x":12,"y":22,"w":2,"h":18,"character":105,"shift":4,"offset":1,}, + "106": {"x":187,"y":22,"w":4,"h":18,"character":106,"shift":4,"offset":-1,}, + "107": {"x":178,"y":22,"w":7,"h":18,"character":107,"shift":8,"offset":1,}, + "108": {"x":174,"y":22,"w":2,"h":18,"character":108,"shift":4,"offset":1,}, + "109": {"x":160,"y":22,"w":12,"h":18,"character":109,"shift":13,"offset":1,}, + "110": {"x":151,"y":22,"w":7,"h":18,"character":110,"shift":9,"offset":1,}, + "111": {"x":140,"y":22,"w":9,"h":18,"character":111,"shift":9,"offset":0,}, + "112": {"x":130,"y":22,"w":8,"h":18,"character":112,"shift":9,"offset":1,}, + "113": {"x":120,"y":22,"w":8,"h":18,"character":113,"shift":9,"offset":0,}, + "114": {"x":113,"y":22,"w":5,"h":18,"character":114,"shift":5,"offset":1,}, + "115": {"x":193,"y":22,"w":8,"h":18,"character":115,"shift":8,"offset":0,}, + "116": {"x":106,"y":22,"w":5,"h":18,"character":116,"shift":4,"offset":0,}, + "117": {"x":88,"y":22,"w":7,"h":18,"character":117,"shift":9,"offset":1,}, + "118": {"x":78,"y":22,"w":8,"h":18,"character":118,"shift":8,"offset":0,}, + "119": {"x":64,"y":22,"w":12,"h":18,"character":119,"shift":12,"offset":0,}, + "120": {"x":54,"y":22,"w":8,"h":18,"character":120,"shift":8,"offset":0,}, + "121": {"x":44,"y":22,"w":8,"h":18,"character":121,"shift":8,"offset":0,}, + "122": {"x":34,"y":22,"w":8,"h":18,"character":122,"shift":8,"offset":0,}, + "123": {"x":27,"y":22,"w":5,"h":18,"character":123,"shift":5,"offset":0,}, + "124": {"x":23,"y":22,"w":2,"h":18,"character":124,"shift":4,"offset":1,}, + "125": {"x":16,"y":22,"w":5,"h":18,"character":125,"shift":5,"offset":0,}, + "126": {"x":197,"y":62,"w":9,"h":18,"character":126,"shift":9,"offset":0,}, + "9647": {"x":208,"y":62,"w":10,"h":18,"character":9647,"shift":16,"offset":3,}, + }, + "kerningPairs": [ + {"first":32,"second":65,"amount":-1,}, + {"first":32,"second":902,"amount":-1,}, + {"first":32,"second":913,"amount":-1,}, + {"first":32,"second":916,"amount":-1,}, + {"first":32,"second":923,"amount":-1,}, + {"first":49,"second":49,"amount":-1,}, + {"first":65,"second":32,"amount":-1,}, + {"first":65,"second":84,"amount":-1,}, + {"first":65,"second":86,"amount":-1,}, + {"first":65,"second":89,"amount":-1,}, + {"first":65,"second":160,"amount":-1,}, + {"first":65,"second":8217,"amount":-1,}, + {"first":70,"second":44,"amount":-1,}, + {"first":70,"second":46,"amount":-1,}, + {"first":70,"second":65,"amount":-1,}, + {"first":76,"second":84,"amount":-1,}, + {"first":76,"second":86,"amount":-1,}, + {"first":76,"second":87,"amount":-1,}, + {"first":76,"second":89,"amount":-1,}, + {"first":76,"second":8217,"amount":-1,}, + {"first":80,"second":44,"amount":-1,}, + {"first":80,"second":46,"amount":-1,}, + {"first":80,"second":65,"amount":-1,}, + {"first":84,"second":44,"amount":-1,}, + {"first":84,"second":45,"amount":-1,}, + {"first":84,"second":46,"amount":-1,}, + {"first":84,"second":58,"amount":-1,}, + {"first":84,"second":59,"amount":-1,}, + {"first":84,"second":65,"amount":-1,}, + {"first":84,"second":97,"amount":-1,}, + {"first":84,"second":99,"amount":-1,}, + {"first":84,"second":101,"amount":-1,}, + {"first":84,"second":111,"amount":-1,}, + {"first":84,"second":115,"amount":-1,}, + {"first":84,"second":119,"amount":-1,}, + {"first":84,"second":121,"amount":-1,}, + {"first":84,"second":173,"amount":-1,}, + {"first":84,"second":894,"amount":-1,}, + {"first":86,"second":44,"amount":-1,}, + {"first":86,"second":45,"amount":-1,}, + {"first":86,"second":46,"amount":-1,}, + {"first":86,"second":65,"amount":-1,}, + {"first":86,"second":97,"amount":-1,}, + {"first":86,"second":101,"amount":-1,}, + {"first":86,"second":111,"amount":-1,}, + {"first":86,"second":173,"amount":-1,}, + {"first":87,"second":44,"amount":-1,}, + {"first":87,"second":46,"amount":-1,}, + {"first":89,"second":44,"amount":-1,}, + {"first":89,"second":45,"amount":-1,}, + {"first":89,"second":46,"amount":-1,}, + {"first":89,"second":58,"amount":-1,}, + {"first":89,"second":59,"amount":-1,}, + {"first":89,"second":65,"amount":-1,}, + {"first":89,"second":97,"amount":-1,}, + {"first":89,"second":101,"amount":-1,}, + {"first":89,"second":111,"amount":-1,}, + {"first":89,"second":112,"amount":-1,}, + {"first":89,"second":113,"amount":-1,}, + {"first":89,"second":117,"amount":-1,}, + {"first":89,"second":118,"amount":-1,}, + {"first":89,"second":173,"amount":-1,}, + {"first":89,"second":894,"amount":-1,}, + {"first":114,"second":44,"amount":-1,}, + {"first":114,"second":46,"amount":-1,}, + {"first":118,"second":44,"amount":-1,}, + {"first":118,"second":46,"amount":-1,}, + {"first":119,"second":44,"amount":-1,}, + {"first":119,"second":46,"amount":-1,}, + {"first":121,"second":44,"amount":-1,}, + {"first":121,"second":46,"amount":-1,}, + ], + "ranges": [ + {"lower":32,"upper":127,}, + {"lower":9647,"upper":9647,}, + ], + "regenerateBitmap": false, + "canGenerateBitmap": true, + "maintainGms1Font": false, + "parent": { + "name": "Font", + "path": "folders/YoyoAsset/Font.yy", + }, + "resourceVersion": "1.0", + "name": "Font_Yoyo_20", + "tags": [], + "resourceType": "GMFont", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/fonts/Font_Yoyo_50/Font_Yoyo_50.old.png b/source/GooglePlayServices_gml/fonts/Font_Yoyo_50/Font_Yoyo_50.old.png new file mode 100644 index 0000000..ad570a1 Binary files /dev/null and b/source/GooglePlayServices_gml/fonts/Font_Yoyo_50/Font_Yoyo_50.old.png differ diff --git a/source/GooglePlayServices_gml/fonts/Font_Yoyo_50/Font_Yoyo_50.old.yy b/source/GooglePlayServices_gml/fonts/Font_Yoyo_50/Font_Yoyo_50.old.yy new file mode 100644 index 0000000..695451c --- /dev/null +++ b/source/GooglePlayServices_gml/fonts/Font_Yoyo_50/Font_Yoyo_50.old.yy @@ -0,0 +1,226 @@ +{ + "hinting": 0, + "glyphOperations": 0, + "interpreter": 0, + "pointRounding": 0, + "fontName": "Arial", + "styleName": "Regular", + "size": 20.0, + "bold": false, + "italic": false, + "charset": 0, + "AntiAlias": 1, + "first": 0, + "last": 0, + "sampleText": "abcdef ABCDEF\n0123456789 .,<>\"'&!?\nthe quick brown fox jumps over the lazy dog\nTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG\nDefault character: ▯ (9647)", + "includeTTF": false, + "TTFName": "", + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "ascenderOffset": 0, + "glyphs": { + "32": {"x":2,"y":2,"w":8,"h":31,"character":32,"shift":8,"offset":0,}, + "33": {"x":2,"y":134,"w":4,"h":31,"character":33,"shift":8,"offset":2,}, + "34": {"x":240,"y":101,"w":8,"h":31,"character":34,"shift":10,"offset":1,}, + "35": {"x":223,"y":101,"w":15,"h":31,"character":35,"shift":15,"offset":0,}, + "36": {"x":207,"y":101,"w":14,"h":31,"character":36,"shift":15,"offset":0,}, + "37": {"x":183,"y":101,"w":22,"h":31,"character":37,"shift":24,"offset":1,}, + "38": {"x":164,"y":101,"w":17,"h":31,"character":38,"shift":18,"offset":1,}, + "39": {"x":159,"y":101,"w":3,"h":31,"character":39,"shift":5,"offset":1,}, + "40": {"x":149,"y":101,"w":8,"h":31,"character":40,"shift":9,"offset":1,}, + "41": {"x":139,"y":101,"w":8,"h":31,"character":41,"shift":9,"offset":1,}, + "42": {"x":8,"y":134,"w":10,"h":31,"character":42,"shift":11,"offset":0,}, + "43": {"x":123,"y":101,"w":14,"h":31,"character":43,"shift":16,"offset":1,}, + "44": {"x":102,"y":101,"w":4,"h":31,"character":44,"shift":8,"offset":2,}, + "45": {"x":91,"y":101,"w":9,"h":31,"character":45,"shift":9,"offset":0,}, + "46": {"x":85,"y":101,"w":4,"h":31,"character":46,"shift":8,"offset":2,}, + "47": {"x":75,"y":101,"w":8,"h":31,"character":47,"shift":8,"offset":0,}, + "48": {"x":60,"y":101,"w":13,"h":31,"character":48,"shift":15,"offset":1,}, + "49": {"x":49,"y":101,"w":9,"h":31,"character":49,"shift":15,"offset":2,}, + "50": {"x":33,"y":101,"w":14,"h":31,"character":50,"shift":15,"offset":0,}, + "51": {"x":18,"y":101,"w":13,"h":31,"character":51,"shift":15,"offset":1,}, + "52": {"x":2,"y":101,"w":14,"h":31,"character":52,"shift":15,"offset":0,}, + "53": {"x":108,"y":101,"w":13,"h":31,"character":53,"shift":15,"offset":1,}, + "54": {"x":20,"y":134,"w":13,"h":31,"character":54,"shift":15,"offset":1,}, + "55": {"x":35,"y":134,"w":13,"h":31,"character":55,"shift":15,"offset":1,}, + "56": {"x":50,"y":134,"w":13,"h":31,"character":56,"shift":15,"offset":1,}, + "57": {"x":145,"y":167,"w":13,"h":31,"character":57,"shift":15,"offset":1,}, + "58": {"x":139,"y":167,"w":4,"h":31,"character":58,"shift":8,"offset":2,}, + "59": {"x":133,"y":167,"w":4,"h":31,"character":59,"shift":8,"offset":2,}, + "60": {"x":117,"y":167,"w":14,"h":31,"character":60,"shift":16,"offset":1,}, + "61": {"x":101,"y":167,"w":14,"h":31,"character":61,"shift":16,"offset":1,}, + "62": {"x":85,"y":167,"w":14,"h":31,"character":62,"shift":16,"offset":1,}, + "63": {"x":70,"y":167,"w":13,"h":31,"character":63,"shift":15,"offset":1,}, + "64": {"x":42,"y":167,"w":26,"h":31,"character":64,"shift":27,"offset":1,}, + "65": {"x":20,"y":167,"w":20,"h":31,"character":65,"shift":18,"offset":-1,}, + "66": {"x":2,"y":167,"w":16,"h":31,"character":66,"shift":18,"offset":1,}, + "67": {"x":232,"y":134,"w":18,"h":31,"character":67,"shift":20,"offset":1,}, + "68": {"x":213,"y":134,"w":17,"h":31,"character":68,"shift":20,"offset":2,}, + "69": {"x":196,"y":134,"w":15,"h":31,"character":69,"shift":18,"offset":2,}, + "70": {"x":180,"y":134,"w":14,"h":31,"character":70,"shift":17,"offset":2,}, + "71": {"x":159,"y":134,"w":19,"h":31,"character":71,"shift":21,"offset":1,}, + "72": {"x":141,"y":134,"w":16,"h":31,"character":72,"shift":20,"offset":2,}, + "73": {"x":135,"y":134,"w":4,"h":31,"character":73,"shift":8,"offset":2,}, + "74": {"x":121,"y":134,"w":12,"h":31,"character":74,"shift":14,"offset":0,}, + "75": {"x":102,"y":134,"w":17,"h":31,"character":75,"shift":18,"offset":1,}, + "76": {"x":86,"y":134,"w":14,"h":31,"character":76,"shift":15,"offset":1,}, + "77": {"x":65,"y":134,"w":19,"h":31,"character":77,"shift":22,"offset":2,}, + "78": {"x":237,"y":68,"w":16,"h":31,"character":78,"shift":20,"offset":2,}, + "79": {"x":216,"y":68,"w":19,"h":31,"character":79,"shift":21,"offset":1,}, + "80": {"x":199,"y":68,"w":15,"h":31,"character":80,"shift":18,"offset":2,}, + "81": {"x":105,"y":35,"w":20,"h":31,"character":81,"shift":21,"offset":1,}, + "82": {"x":76,"y":35,"w":18,"h":31,"character":82,"shift":20,"offset":2,}, + "83": {"x":58,"y":35,"w":16,"h":31,"character":83,"shift":18,"offset":1,}, + "84": {"x":40,"y":35,"w":16,"h":31,"character":84,"shift":17,"offset":0,}, + "85": {"x":22,"y":35,"w":16,"h":31,"character":85,"shift":20,"offset":2,}, + "86": {"x":2,"y":35,"w":18,"h":31,"character":86,"shift":18,"offset":0,}, + "87": {"x":218,"y":2,"w":26,"h":31,"character":87,"shift":25,"offset":0,}, + "88": {"x":198,"y":2,"w":18,"h":31,"character":88,"shift":18,"offset":0,}, + "89": {"x":178,"y":2,"w":18,"h":31,"character":89,"shift":18,"offset":0,}, + "90": {"x":160,"y":2,"w":16,"h":31,"character":90,"shift":17,"offset":0,}, + "91": {"x":96,"y":35,"w":7,"h":31,"character":91,"shift":8,"offset":1,}, + "92": {"x":150,"y":2,"w":8,"h":31,"character":92,"shift":8,"offset":0,}, + "93": {"x":131,"y":2,"w":6,"h":31,"character":93,"shift":8,"offset":0,}, + "94": {"x":117,"y":2,"w":12,"h":31,"character":94,"shift":13,"offset":0,}, + "95": {"x":98,"y":2,"w":17,"h":31,"character":95,"shift":15,"offset":-1,}, + "96": {"x":90,"y":2,"w":6,"h":31,"character":96,"shift":9,"offset":1,}, + "97": {"x":74,"y":2,"w":14,"h":31,"character":97,"shift":15,"offset":0,}, + "98": {"x":59,"y":2,"w":13,"h":31,"character":98,"shift":15,"offset":1,}, + "99": {"x":44,"y":2,"w":13,"h":31,"character":99,"shift":14,"offset":1,}, + "100": {"x":28,"y":2,"w":14,"h":31,"character":100,"shift":15,"offset":0,}, + "101": {"x":12,"y":2,"w":14,"h":31,"character":101,"shift":15,"offset":0,}, + "102": {"x":139,"y":2,"w":9,"h":31,"character":102,"shift":8,"offset":0,}, + "103": {"x":127,"y":35,"w":14,"h":31,"character":103,"shift":15,"offset":0,}, + "104": {"x":33,"y":68,"w":13,"h":31,"character":104,"shift":15,"offset":1,}, + "105": {"x":143,"y":35,"w":4,"h":31,"character":105,"shift":6,"offset":1,}, + "106": {"x":175,"y":68,"w":7,"h":31,"character":106,"shift":6,"offset":-2,}, + "107": {"x":160,"y":68,"w":13,"h":31,"character":107,"shift":14,"offset":1,}, + "108": {"x":154,"y":68,"w":4,"h":31,"character":108,"shift":6,"offset":1,}, + "109": {"x":132,"y":68,"w":20,"h":31,"character":109,"shift":22,"offset":1,}, + "110": {"x":117,"y":68,"w":13,"h":31,"character":110,"shift":15,"offset":1,}, + "111": {"x":100,"y":68,"w":15,"h":31,"character":111,"shift":15,"offset":0,}, + "112": {"x":85,"y":68,"w":13,"h":31,"character":112,"shift":15,"offset":1,}, + "113": {"x":69,"y":68,"w":14,"h":31,"character":113,"shift":15,"offset":0,}, + "114": {"x":58,"y":68,"w":9,"h":31,"character":114,"shift":9,"offset":1,}, + "115": {"x":184,"y":68,"w":13,"h":31,"character":115,"shift":14,"offset":0,}, + "116": {"x":48,"y":68,"w":8,"h":31,"character":116,"shift":8,"offset":0,}, + "117": {"x":18,"y":68,"w":13,"h":31,"character":117,"shift":15,"offset":1,}, + "118": {"x":2,"y":68,"w":14,"h":31,"character":118,"shift":14,"offset":0,}, + "119": {"x":223,"y":35,"w":20,"h":31,"character":119,"shift":20,"offset":0,}, + "120": {"x":207,"y":35,"w":14,"h":31,"character":120,"shift":14,"offset":0,}, + "121": {"x":191,"y":35,"w":14,"h":31,"character":121,"shift":14,"offset":0,}, + "122": {"x":176,"y":35,"w":13,"h":31,"character":122,"shift":14,"offset":0,}, + "123": {"x":165,"y":35,"w":9,"h":31,"character":123,"shift":9,"offset":0,}, + "124": {"x":160,"y":35,"w":3,"h":31,"character":124,"shift":7,"offset":2,}, + "125": {"x":149,"y":35,"w":9,"h":31,"character":125,"shift":9,"offset":0,}, + "126": {"x":160,"y":167,"w":14,"h":31,"character":126,"shift":16,"offset":1,}, + "9647": {"x":176,"y":167,"w":16,"h":31,"character":9647,"shift":26,"offset":5,}, + }, + "kerningPairs": [ + {"first":32,"second":65,"amount":-1,}, + {"first":32,"second":902,"amount":-1,}, + {"first":32,"second":913,"amount":-1,}, + {"first":32,"second":916,"amount":-1,}, + {"first":32,"second":923,"amount":-1,}, + {"first":49,"second":49,"amount":-2,}, + {"first":65,"second":32,"amount":-1,}, + {"first":65,"second":84,"amount":-2,}, + {"first":65,"second":86,"amount":-2,}, + {"first":65,"second":87,"amount":-1,}, + {"first":65,"second":89,"amount":-2,}, + {"first":65,"second":160,"amount":-1,}, + {"first":65,"second":8217,"amount":-2,}, + {"first":70,"second":44,"amount":-3,}, + {"first":70,"second":46,"amount":-3,}, + {"first":70,"second":65,"amount":-1,}, + {"first":76,"second":32,"amount":-1,}, + {"first":76,"second":84,"amount":-2,}, + {"first":76,"second":86,"amount":-2,}, + {"first":76,"second":87,"amount":-2,}, + {"first":76,"second":89,"amount":-2,}, + {"first":76,"second":121,"amount":-1,}, + {"first":76,"second":160,"amount":-1,}, + {"first":76,"second":8217,"amount":-1,}, + {"first":80,"second":44,"amount":-3,}, + {"first":80,"second":46,"amount":-3,}, + {"first":80,"second":65,"amount":-2,}, + {"first":84,"second":44,"amount":-3,}, + {"first":84,"second":45,"amount":-1,}, + {"first":84,"second":46,"amount":-3,}, + {"first":84,"second":58,"amount":-3,}, + {"first":84,"second":59,"amount":-3,}, + {"first":84,"second":65,"amount":-2,}, + {"first":84,"second":97,"amount":-3,}, + {"first":84,"second":99,"amount":-3,}, + {"first":84,"second":101,"amount":-3,}, + {"first":84,"second":105,"amount":-1,}, + {"first":84,"second":111,"amount":-3,}, + {"first":84,"second":114,"amount":-1,}, + {"first":84,"second":115,"amount":-3,}, + {"first":84,"second":117,"amount":-1,}, + {"first":84,"second":119,"amount":-1,}, + {"first":84,"second":121,"amount":-1,}, + {"first":84,"second":173,"amount":-1,}, + {"first":84,"second":894,"amount":-3,}, + {"first":86,"second":44,"amount":-2,}, + {"first":86,"second":45,"amount":-1,}, + {"first":86,"second":46,"amount":-2,}, + {"first":86,"second":58,"amount":-1,}, + {"first":86,"second":59,"amount":-1,}, + {"first":86,"second":65,"amount":-2,}, + {"first":86,"second":97,"amount":-2,}, + {"first":86,"second":101,"amount":-1,}, + {"first":86,"second":111,"amount":-1,}, + {"first":86,"second":114,"amount":-1,}, + {"first":86,"second":117,"amount":-1,}, + {"first":86,"second":121,"amount":-1,}, + {"first":86,"second":173,"amount":-1,}, + {"first":86,"second":894,"amount":-1,}, + {"first":87,"second":44,"amount":-1,}, + {"first":87,"second":46,"amount":-1,}, + {"first":87,"second":65,"amount":-1,}, + {"first":87,"second":97,"amount":-1,}, + {"first":89,"second":44,"amount":-3,}, + {"first":89,"second":45,"amount":-2,}, + {"first":89,"second":46,"amount":-3,}, + {"first":89,"second":58,"amount":-1,}, + {"first":89,"second":59,"amount":-2,}, + {"first":89,"second":65,"amount":-2,}, + {"first":89,"second":97,"amount":-2,}, + {"first":89,"second":101,"amount":-2,}, + {"first":89,"second":105,"amount":-1,}, + {"first":89,"second":111,"amount":-2,}, + {"first":89,"second":112,"amount":-2,}, + {"first":89,"second":113,"amount":-2,}, + {"first":89,"second":117,"amount":-1,}, + {"first":89,"second":118,"amount":-1,}, + {"first":89,"second":173,"amount":-2,}, + {"first":89,"second":894,"amount":-2,}, + {"first":114,"second":44,"amount":-1,}, + {"first":114,"second":46,"amount":-1,}, + {"first":114,"second":8217,"amount":1,}, + {"first":118,"second":44,"amount":-2,}, + {"first":118,"second":46,"amount":-2,}, + {"first":119,"second":44,"amount":-1,}, + {"first":119,"second":46,"amount":-1,}, + {"first":121,"second":44,"amount":-2,}, + {"first":121,"second":46,"amount":-2,}, + ], + "ranges": [ + {"lower":32,"upper":127,}, + {"lower":9647,"upper":9647,}, + ], + "regenerateBitmap": false, + "canGenerateBitmap": true, + "maintainGms1Font": false, + "parent": { + "name": "Font", + "path": "folders/YoyoAsset/Font.yy", + }, + "resourceVersion": "1.0", + "name": "Font_Yoyo_50", + "tags": [], + "resourceType": "GMFont", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/fonts/Font_Yoyo_50/Font_Yoyo_50.png b/source/GooglePlayServices_gml/fonts/Font_Yoyo_50/Font_Yoyo_50.png new file mode 100644 index 0000000..fd04968 Binary files /dev/null and b/source/GooglePlayServices_gml/fonts/Font_Yoyo_50/Font_Yoyo_50.png differ diff --git a/source/GooglePlayServices_gml/fonts/Font_Yoyo_50/Font_Yoyo_50.yy b/source/GooglePlayServices_gml/fonts/Font_Yoyo_50/Font_Yoyo_50.yy new file mode 100644 index 0000000..0dade7d --- /dev/null +++ b/source/GooglePlayServices_gml/fonts/Font_Yoyo_50/Font_Yoyo_50.yy @@ -0,0 +1,260 @@ +{ + "hinting": 0, + "glyphOperations": 0, + "interpreter": 0, + "pointRounding": 0, + "applyKerning": 0, + "fontName": "Arial", + "styleName": "Regular", + "size": 50.0, + "bold": false, + "italic": false, + "charset": 0, + "AntiAlias": 1, + "first": 0, + "last": 0, + "sampleText": "abcdef ABCDEF\n0123456789 .,<>\"'&!?\nthe quick brown fox jumps over the lazy dog\nTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG\nDefault character: ▯ (9647)", + "includeTTF": false, + "TTFName": "", + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "ascenderOffset": 0, + "ascender": 0, + "glyphs": { + "32": {"x":2,"y":2,"w":19,"h":77,"character":32,"shift":19,"offset":0,}, + "33": {"x":151,"y":160,"w":9,"h":77,"character":33,"shift":19,"offset":5,}, + "34": {"x":131,"y":160,"w":18,"h":77,"character":34,"shift":24,"offset":3,}, + "35": {"x":92,"y":160,"w":37,"h":77,"character":35,"shift":37,"offset":0,}, + "36": {"x":57,"y":160,"w":33,"h":77,"character":36,"shift":37,"offset":2,}, + "37": {"x":2,"y":160,"w":53,"h":77,"character":37,"shift":60,"offset":3,}, + "38": {"x":929,"y":81,"w":42,"h":77,"character":38,"shift":45,"offset":2,}, + "39": {"x":919,"y":81,"w":8,"h":77,"character":39,"shift":13,"offset":2,}, + "40": {"x":901,"y":81,"w":16,"h":77,"character":40,"shift":22,"offset":4,}, + "41": {"x":883,"y":81,"w":16,"h":77,"character":41,"shift":22,"offset":4,}, + "42": {"x":162,"y":160,"w":22,"h":77,"character":42,"shift":26,"offset":2,}, + "43": {"x":848,"y":81,"w":33,"h":77,"character":43,"shift":39,"offset":3,}, + "44": {"x":803,"y":81,"w":8,"h":77,"character":44,"shift":19,"offset":5,}, + "45": {"x":782,"y":81,"w":19,"h":77,"character":45,"shift":22,"offset":2,}, + "46": {"x":773,"y":81,"w":7,"h":77,"character":46,"shift":19,"offset":6,}, + "47": {"x":752,"y":81,"w":19,"h":77,"character":47,"shift":19,"offset":0,}, + "48": {"x":717,"y":81,"w":33,"h":77,"character":48,"shift":37,"offset":2,}, + "49": {"x":697,"y":81,"w":18,"h":77,"character":49,"shift":37,"offset":7,}, + "50": {"x":662,"y":81,"w":33,"h":77,"character":50,"shift":37,"offset":1,}, + "51": {"x":627,"y":81,"w":33,"h":77,"character":51,"shift":37,"offset":2,}, + "52": {"x":590,"y":81,"w":35,"h":77,"character":52,"shift":37,"offset":0,}, + "53": {"x":813,"y":81,"w":33,"h":77,"character":53,"shift":37,"offset":2,}, + "54": {"x":186,"y":160,"w":33,"h":77,"character":54,"shift":37,"offset":2,}, + "55": {"x":221,"y":160,"w":32,"h":77,"character":55,"shift":37,"offset":3,}, + "56": {"x":255,"y":160,"w":33,"h":77,"character":56,"shift":37,"offset":2,}, + "57": {"x":2,"y":239,"w":33,"h":77,"character":57,"shift":37,"offset":2,}, + "58": {"x":1004,"y":160,"w":7,"h":77,"character":58,"shift":19,"offset":6,}, + "59": {"x":994,"y":160,"w":8,"h":77,"character":59,"shift":19,"offset":5,}, + "60": {"x":959,"y":160,"w":33,"h":77,"character":60,"shift":39,"offset":3,}, + "61": {"x":924,"y":160,"w":33,"h":77,"character":61,"shift":39,"offset":3,}, + "62": {"x":889,"y":160,"w":33,"h":77,"character":62,"shift":39,"offset":3,}, + "63": {"x":855,"y":160,"w":32,"h":77,"character":63,"shift":37,"offset":2,}, + "64": {"x":790,"y":160,"w":63,"h":77,"character":64,"shift":68,"offset":3,}, + "65": {"x":742,"y":160,"w":46,"h":77,"character":65,"shift":45,"offset":-1,}, + "66": {"x":702,"y":160,"w":38,"h":77,"character":66,"shift":45,"offset":4,}, + "67": {"x":657,"y":160,"w":43,"h":77,"character":67,"shift":48,"offset":3,}, + "68": {"x":615,"y":160,"w":40,"h":77,"character":68,"shift":48,"offset":5,}, + "69": {"x":576,"y":160,"w":37,"h":77,"character":69,"shift":45,"offset":5,}, + "70": {"x":541,"y":160,"w":33,"h":77,"character":70,"shift":41,"offset":5,}, + "71": {"x":494,"y":160,"w":45,"h":77,"character":71,"shift":52,"offset":3,}, + "72": {"x":454,"y":160,"w":38,"h":77,"character":72,"shift":48,"offset":5,}, + "73": {"x":445,"y":160,"w":7,"h":77,"character":73,"shift":19,"offset":6,}, + "74": {"x":415,"y":160,"w":28,"h":77,"character":74,"shift":34,"offset":1,}, + "75": {"x":372,"y":160,"w":41,"h":77,"character":75,"shift":45,"offset":4,}, + "76": {"x":339,"y":160,"w":31,"h":77,"character":76,"shift":37,"offset":4,}, + "77": {"x":290,"y":160,"w":47,"h":77,"character":77,"shift":56,"offset":4,}, + "78": {"x":550,"y":81,"w":38,"h":77,"character":78,"shift":48,"offset":5,}, + "79": {"x":501,"y":81,"w":47,"h":77,"character":79,"shift":52,"offset":3,}, + "80": {"x":462,"y":81,"w":37,"h":77,"character":80,"shift":45,"offset":5,}, + "81": {"x":772,"y":2,"w":48,"h":77,"character":81,"shift":52,"offset":2,}, + "82": {"x":711,"y":2,"w":43,"h":77,"character":82,"shift":48,"offset":5,}, + "83": {"x":670,"y":2,"w":39,"h":77,"character":83,"shift":45,"offset":3,}, + "84": {"x":629,"y":2,"w":39,"h":77,"character":84,"shift":41,"offset":1,}, + "85": {"x":589,"y":2,"w":38,"h":77,"character":85,"shift":48,"offset":5,}, + "86": {"x":542,"y":2,"w":45,"h":77,"character":86,"shift":45,"offset":0,}, + "87": {"x":477,"y":2,"w":63,"h":77,"character":87,"shift":63,"offset":0,}, + "88": {"x":430,"y":2,"w":45,"h":77,"character":88,"shift":45,"offset":0,}, + "89": {"x":383,"y":2,"w":45,"h":77,"character":89,"shift":45,"offset":0,}, + "90": {"x":342,"y":2,"w":39,"h":77,"character":90,"shift":41,"offset":1,}, + "91": {"x":756,"y":2,"w":14,"h":77,"character":91,"shift":19,"offset":4,}, + "92": {"x":321,"y":2,"w":19,"h":77,"character":92,"shift":19,"offset":0,}, + "93": {"x":282,"y":2,"w":14,"h":77,"character":93,"shift":19,"offset":1,}, + "94": {"x":251,"y":2,"w":29,"h":77,"character":94,"shift":31,"offset":1,}, + "95": {"x":208,"y":2,"w":41,"h":77,"character":95,"shift":37,"offset":-2,}, + "96": {"x":192,"y":2,"w":14,"h":77,"character":96,"shift":22,"offset":2,}, + "97": {"x":157,"y":2,"w":33,"h":77,"character":97,"shift":37,"offset":2,}, + "98": {"x":124,"y":2,"w":31,"h":77,"character":98,"shift":37,"offset":4,}, + "99": {"x":91,"y":2,"w":31,"h":77,"character":99,"shift":34,"offset":2,}, + "100": {"x":58,"y":2,"w":31,"h":77,"character":100,"shift":37,"offset":2,}, + "101": {"x":23,"y":2,"w":33,"h":77,"character":101,"shift":37,"offset":2,}, + "102": {"x":298,"y":2,"w":21,"h":77,"character":102,"shift":19,"offset":0,}, + "103": {"x":822,"y":2,"w":31,"h":77,"character":103,"shift":37,"offset":2,}, + "104": {"x":118,"y":81,"w":29,"h":77,"character":104,"shift":37,"offset":4,}, + "105": {"x":855,"y":2,"w":7,"h":77,"character":105,"shift":15,"offset":4,}, + "106": {"x":414,"y":81,"w":15,"h":77,"character":106,"shift":15,"offset":-4,}, + "107": {"x":382,"y":81,"w":30,"h":77,"character":107,"shift":34,"offset":4,}, + "108": {"x":373,"y":81,"w":7,"h":77,"character":108,"shift":15,"offset":4,}, + "109": {"x":323,"y":81,"w":48,"h":77,"character":109,"shift":56,"offset":4,}, + "110": {"x":292,"y":81,"w":29,"h":77,"character":110,"shift":37,"offset":4,}, + "111": {"x":257,"y":81,"w":33,"h":77,"character":111,"shift":37,"offset":2,}, + "112": {"x":224,"y":81,"w":31,"h":77,"character":112,"shift":37,"offset":4,}, + "113": {"x":191,"y":81,"w":31,"h":77,"character":113,"shift":37,"offset":2,}, + "114": {"x":169,"y":81,"w":20,"h":77,"character":114,"shift":22,"offset":4,}, + "115": {"x":431,"y":81,"w":29,"h":77,"character":115,"shift":34,"offset":2,}, + "116": {"x":149,"y":81,"w":18,"h":77,"character":116,"shift":19,"offset":1,}, + "117": {"x":87,"y":81,"w":29,"h":77,"character":117,"shift":37,"offset":4,}, + "118": {"x":52,"y":81,"w":33,"h":77,"character":118,"shift":34,"offset":0,}, + "119": {"x":2,"y":81,"w":48,"h":77,"character":119,"shift":48,"offset":0,}, + "120": {"x":984,"y":2,"w":34,"h":77,"character":120,"shift":34,"offset":0,}, + "121": {"x":950,"y":2,"w":32,"h":77,"character":121,"shift":34,"offset":1,}, + "122": {"x":916,"y":2,"w":32,"h":77,"character":122,"shift":34,"offset":1,}, + "123": {"x":894,"y":2,"w":20,"h":77,"character":123,"shift":22,"offset":1,}, + "124": {"x":886,"y":2,"w":6,"h":77,"character":124,"shift":17,"offset":6,}, + "125": {"x":864,"y":2,"w":20,"h":77,"character":125,"shift":22,"offset":1,}, + "126": {"x":37,"y":239,"w":35,"h":77,"character":126,"shift":39,"offset":2,}, + "9647": {"x":74,"y":239,"w":39,"h":77,"character":9647,"shift":65,"offset":13,}, + }, + "kerningPairs": [ + {"first":32,"second":65,"amount":-4,}, + {"first":32,"second":84,"amount":-1,}, + {"first":32,"second":89,"amount":-1,}, + {"first":32,"second":902,"amount":-4,}, + {"first":32,"second":913,"amount":-4,}, + {"first":32,"second":916,"amount":-4,}, + {"first":32,"second":923,"amount":-4,}, + {"first":32,"second":932,"amount":-1,}, + {"first":32,"second":933,"amount":-1,}, + {"first":32,"second":939,"amount":-1,}, + {"first":49,"second":49,"amount":-5,}, + {"first":65,"second":32,"amount":-4,}, + {"first":65,"second":84,"amount":-5,}, + {"first":65,"second":86,"amount":-5,}, + {"first":65,"second":87,"amount":-2,}, + {"first":65,"second":89,"amount":-5,}, + {"first":65,"second":118,"amount":-1,}, + {"first":65,"second":119,"amount":-1,}, + {"first":65,"second":121,"amount":-1,}, + {"first":65,"second":160,"amount":-4,}, + {"first":65,"second":8217,"amount":-5,}, + {"first":70,"second":44,"amount":-7,}, + {"first":70,"second":46,"amount":-7,}, + {"first":70,"second":65,"amount":-4,}, + {"first":76,"second":32,"amount":-2,}, + {"first":76,"second":84,"amount":-5,}, + {"first":76,"second":86,"amount":-5,}, + {"first":76,"second":87,"amount":-5,}, + {"first":76,"second":89,"amount":-5,}, + {"first":76,"second":121,"amount":-2,}, + {"first":76,"second":160,"amount":-2,}, + {"first":76,"second":8217,"amount":-4,}, + {"first":80,"second":32,"amount":-1,}, + {"first":80,"second":44,"amount":-9,}, + {"first":80,"second":46,"amount":-9,}, + {"first":80,"second":65,"amount":-5,}, + {"first":80,"second":160,"amount":-1,}, + {"first":82,"second":84,"amount":-1,}, + {"first":82,"second":86,"amount":-1,}, + {"first":82,"second":87,"amount":-1,}, + {"first":82,"second":89,"amount":-1,}, + {"first":84,"second":32,"amount":-1,}, + {"first":84,"second":44,"amount":-7,}, + {"first":84,"second":45,"amount":-4,}, + {"first":84,"second":46,"amount":-7,}, + {"first":84,"second":58,"amount":-7,}, + {"first":84,"second":59,"amount":-7,}, + {"first":84,"second":65,"amount":-5,}, + {"first":84,"second":79,"amount":-1,}, + {"first":84,"second":97,"amount":-7,}, + {"first":84,"second":99,"amount":-7,}, + {"first":84,"second":101,"amount":-7,}, + {"first":84,"second":105,"amount":-2,}, + {"first":84,"second":111,"amount":-7,}, + {"first":84,"second":114,"amount":-2,}, + {"first":84,"second":115,"amount":-7,}, + {"first":84,"second":117,"amount":-2,}, + {"first":84,"second":119,"amount":-4,}, + {"first":84,"second":121,"amount":-4,}, + {"first":84,"second":160,"amount":-1,}, + {"first":84,"second":173,"amount":-4,}, + {"first":84,"second":894,"amount":-7,}, + {"first":86,"second":44,"amount":-6,}, + {"first":86,"second":45,"amount":-4,}, + {"first":86,"second":46,"amount":-6,}, + {"first":86,"second":58,"amount":-2,}, + {"first":86,"second":59,"amount":-2,}, + {"first":86,"second":65,"amount":-5,}, + {"first":86,"second":97,"amount":-5,}, + {"first":86,"second":101,"amount":-4,}, + {"first":86,"second":105,"amount":-1,}, + {"first":86,"second":111,"amount":-4,}, + {"first":86,"second":114,"amount":-2,}, + {"first":86,"second":117,"amount":-2,}, + {"first":86,"second":121,"amount":-2,}, + {"first":86,"second":173,"amount":-4,}, + {"first":86,"second":894,"amount":-2,}, + {"first":87,"second":44,"amount":-4,}, + {"first":87,"second":45,"amount":-1,}, + {"first":87,"second":46,"amount":-4,}, + {"first":87,"second":58,"amount":-1,}, + {"first":87,"second":59,"amount":-1,}, + {"first":87,"second":65,"amount":-2,}, + {"first":87,"second":97,"amount":-2,}, + {"first":87,"second":101,"amount":-1,}, + {"first":87,"second":111,"amount":-1,}, + {"first":87,"second":114,"amount":-1,}, + {"first":87,"second":117,"amount":-1,}, + {"first":87,"second":121,"amount":-1,}, + {"first":87,"second":173,"amount":-1,}, + {"first":87,"second":894,"amount":-1,}, + {"first":89,"second":32,"amount":-1,}, + {"first":89,"second":44,"amount":-9,}, + {"first":89,"second":45,"amount":-6,}, + {"first":89,"second":46,"amount":-9,}, + {"first":89,"second":58,"amount":-4,}, + {"first":89,"second":59,"amount":-4,}, + {"first":89,"second":65,"amount":-5,}, + {"first":89,"second":97,"amount":-5,}, + {"first":89,"second":101,"amount":-6,}, + {"first":89,"second":105,"amount":-2,}, + {"first":89,"second":111,"amount":-6,}, + {"first":89,"second":112,"amount":-5,}, + {"first":89,"second":113,"amount":-6,}, + {"first":89,"second":117,"amount":-4,}, + {"first":89,"second":118,"amount":-4,}, + {"first":89,"second":160,"amount":-1,}, + {"first":89,"second":173,"amount":-6,}, + {"first":89,"second":894,"amount":-4,}, + {"first":102,"second":102,"amount":-1,}, + {"first":102,"second":8217,"amount":1,}, + {"first":114,"second":44,"amount":-4,}, + {"first":114,"second":46,"amount":-4,}, + {"first":114,"second":8217,"amount":2,}, + {"first":118,"second":44,"amount":-5,}, + {"first":118,"second":46,"amount":-5,}, + {"first":119,"second":44,"amount":-4,}, + {"first":119,"second":46,"amount":-4,}, + {"first":121,"second":44,"amount":-5,}, + {"first":121,"second":46,"amount":-5,}, + ], + "ranges": [ + {"lower":32,"upper":127,}, + {"lower":9647,"upper":9647,}, + ], + "regenerateBitmap": false, + "canGenerateBitmap": true, + "maintainGms1Font": false, + "parent": { + "name": "Font", + "path": "folders/YoYo Extensions Assets/Font.yy", + }, + "resourceVersion": "1.0", + "name": "Font_YoYo_50", + "tags": [], + "resourceType": "GMFont", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/notes/README/README.txt b/source/GooglePlayServices_gml/notes/README/README.txt new file mode 100644 index 0000000..bf11fef --- /dev/null +++ b/source/GooglePlayServices_gml/notes/README/README.txt @@ -0,0 +1,12 @@ + +[IMPORTANT] before using this extension make sure to correctly set up your Android application +by following these steps: + + - https://help.yoyogames.com/hc/en-us/articles/360004274212-Google-Play-Services-How-To-Use-This-In-Your-Games + +It’s also important to note that this is a REFERENCE demo meaning it is intended for you to +understand how you can use the extension; and cannot be played as is since it would need +our personal .keystore file and our Google Services ID which cannot be included with the package. + +After setting up your application use the "__macros__" script to quickly edit the leaderboard/achievement +references and start using this demo. \ No newline at end of file diff --git a/source/GooglePlayServices_gml/notes/README/README.yy b/source/GooglePlayServices_gml/notes/README/README.yy new file mode 100644 index 0000000..c7e736b --- /dev/null +++ b/source/GooglePlayServices_gml/notes/README/README.yy @@ -0,0 +1,10 @@ +{ + "parent": { + "name": "GooglePlayServices", + "path": "GooglePlayServices.yyp", + }, + "resourceVersion": "1.1", + "name": "README", + "tags": [], + "resourceType": "GMNotes", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices/Alarm_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices/Alarm_0.gml new file mode 100644 index 0000000..0811b80 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices/Alarm_0.gml @@ -0,0 +1,5 @@ +/// @description Set Mode (delay) + +// At the start of the room we call the function to set the mode and pass in +// whether or not we are signed in so it can lock/unlock the buttons for us. +setSignedInMode(GooglePlayServices_IsSignedIn()); diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices/Create_0.gml new file mode 100644 index 0000000..921311a --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices/Create_0.gml @@ -0,0 +1,19 @@ +/// @description Initialize variables + +randomize(); + +// This is a helper function that will enabled and disable the +// room buttons according to the player being signed in to google play. +function setSignedInMode(enable) +{ + with (Obj_GooglePlayServices_Revoke) locked = !enable; + + with (Obj_GooglePlayServices_GotoAchievements) locked = !enable; + with (Obj_GooglePlayServices_GotoLeaderboards) locked = !enable; + with (Obj_GooglePlayServices_GotoSavedGames) locked = !enable; + + with (Obj_GooglePlayServices_VideoRecording) locked = !enable; +} + +// This alarm will delay the check for signin until all buttons are created. +alarm[0] = 2; \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices/Obj_GooglePlayServices.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices/Obj_GooglePlayServices.yy new file mode 100644 index 0000000..0ee9db6 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices/Obj_GooglePlayServices.yy @@ -0,0 +1,36 @@ +{ + "spriteId": null, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": null, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 1, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":70,"eventType":7,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":2,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Menu", + "path": "folders/GooglePlayServices Demo/Objects/Menu.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices/Other_70.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices/Other_70.gml new file mode 100644 index 0000000..f0ac996 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices/Other_70.gml @@ -0,0 +1,18 @@ +/// @description Update buttons + +switch(async_load[?"type"]) +{ + // @triggered by GooglePlayServices_StartSignInIntent() + case "GooglePlayServices_SignIn": + // At this point we are now signed in to the google play account. + setSignedInMode(true); + break; + + // @triggered by GooglePlayServices_RevokeAccess() + case "GooglePlayServices_RevokeAccess": + // @triggered by GooglePlayServices_SignOut() + case "GooglePlayServices_SignOut": + // At this point we are now signed out of the google play account. + setSignedInMode(false); + break; +} diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Account/CleanUp_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Account/CleanUp_0.gml new file mode 100644 index 0000000..f88d3ab --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Account/CleanUp_0.gml @@ -0,0 +1,9 @@ +/// @description Delete sprite + +// We need to check if the sprite exists and delete it +// otherwise we will have memory leaks. +if(sprite_exists(sprite)) +{ + sprite_delete(sprite) + sprite = noone +} diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Account/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Account/Create_0.gml new file mode 100644 index 0000000..badfbdc --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Account/Create_0.gml @@ -0,0 +1,42 @@ +/// @description Initialize variables + +// These variables will be used to store account information. +accountInfo = undefined; +sprite = noone//undefined; + +// This is a help function that will reset the account information. +function accounInfoReset() +{ + accountInfo = undefined; + + // We need to check if the sprite exists and delete it + // otherwise we will have memory leaks. + if (sprite_exists(sprite)) { + sprite_delete(sprite); + sprite = undefined; + } +} + +// This is a help function that will get the account information. +function accountInfoGet() +{ + // This function call will return a json string with account information. + var accountJson = GooglePlayServices_GetAccount(); + + // We can parse the string into a struct + accountInfo = json_parse(accountJson) + + // We can check if there is a photoUrl and if we have, + // we go ahead and create a sprite out or it. + var photoUrl = accountInfo[$ "photoUrl"]; + if (photoUrl != undefined) { + sprite = sprite_add(photoUrl, 0, 0, 0, 0, 0); + } +} + +// We check to see if we are signed in and if so we proceed to getting acount info. +if(GooglePlayServices_IsSignedIn()) +{ + accountInfoGet(); +} + diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Account/Draw_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Account/Draw_0.gml new file mode 100644 index 0000000..6947219 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Account/Draw_0.gml @@ -0,0 +1,38 @@ +/// @description Draw account info + +// Early exit if we are not signed in. +if (! GooglePlayServices_IsSignedIn()) return; + +// We check if the sprite variable has a valid sprite and draw it. +if (sprite_exists(sprite)) +{ + draw_sprite_stretched(sprite, 0, x, y, 150, 150); +} +else +{ + // If we don't have a valid sprite we draw a simple white frame. + draw_rectangle(x, y, x + 150, y + 150, true) +} + +// Here we set font properties to draw text. +draw_set_font(Font_YoYo_20) +draw_set_halign(fa_left) +draw_set_valign(fa_top) + +// We proceed to draw the iaccount info. +draw_text(x + 160, y, "Account Info:"); + +var info = accountInfo; + +// We check if 'info' is a valid struct +// NOTE: Data is retreived in function call 'accountInfoGet' +if (!is_struct(info)) exit; + +// We loop through all the properties inside the struct and draw them to screen. +var properties = variable_struct_get_names(info); +var count = array_length(properties); +for (var i = 0; i < count; i++) +{ + var property = properties[i]; + draw_text(x + 160, y + (i + 1)*30, property + ": " + string(info[$ property])); +} diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Account/Obj_GooglePlayServices_Account.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Account/Obj_GooglePlayServices_Account.yy new file mode 100644 index 0000000..dbef19b --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Account/Obj_GooglePlayServices_Account.yy @@ -0,0 +1,36 @@ +{ + "resourceType": "GMObject", + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_Account", + "spriteId": null, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": null, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","isDnD":false,"eventNum":0,"eventType":8,"collisionObjectId":null,}, + {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,}, + {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","isDnD":false,"eventNum":70,"eventType":7,"collisionObjectId":null,}, + {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","isDnD":false,"eventNum":0,"eventType":12,"collisionObjectId":null,}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Menu", + "path": "folders/GooglePlayServices Demo/Objects/Menu.yy", + }, +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Account/Other_70.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Account/Other_70.gml new file mode 100644 index 0000000..ae898a6 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Account/Other_70.gml @@ -0,0 +1,28 @@ +/// @description Update account info + +switch(async_load[?"type"]) +{ + // @triggered by GooglePlayServices_StartSignInIntent() + case "GooglePlayServices_SignIn": + // At this point we received a callback signIn intent. + // But we still need to check if the signIn was successful or not + if(async_load[?"success"]) + { + // The sign in was successfull (get user information). + accountInfoGet(); + } + else + { + // The sign in was not successful (reset user information). + accounInfoReset(); + } + break; + + // @triggered by GooglePlayServices_RevokeAccess() + case "GooglePlayServices_RevokeAccess": + // @triggered by GooglePlayServices_SignOut() + case "GooglePlayServices_SignOut": + // We just signed out so the user information is now reset. + accounInfoReset(); + break; +} diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievement_Entry/Alarm_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievement_Entry/Alarm_0.gml new file mode 100644 index 0000000..460f0fa --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievement_Entry/Alarm_0.gml @@ -0,0 +1,16 @@ + +switch(state) +{ + case Achievement_STATE_HIDDEN: + + break + + case Achievement_STATE_REVEALED: + UriToPath_request = GooglePlayServices_UriToPath(revealedImage) + break + + case Achievement_STATE_UNLOCKED: + UriToPath_request = GooglePlayServices_UriToPath(unlockedImage) + break +} + diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievement_Entry/CleanUp_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievement_Entry/CleanUp_0.gml new file mode 100644 index 0000000..7d63673 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievement_Entry/CleanUp_0.gml @@ -0,0 +1,3 @@ + +if(sprite_exists(sprite)) + sprite_delete(sprite) diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievement_Entry/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievement_Entry/Create_0.gml new file mode 100644 index 0000000..a5c13c7 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievement_Entry/Create_0.gml @@ -0,0 +1,20 @@ + +sprite = noone +UriToPath_request = noone + +ID = "" +description = "" +lastUpdatedTimestamp = noone +name = "" +revealedImage = "" +unlockedImage = "" +state = noone +typeAchievement = noone +xpValue = noone + +currentSteps = noone +formattedCurrentSteps = "" +formattedTotalSteps = "" +totalSteps = noone + +alarm[0] = 1 diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievement_Entry/Draw_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievement_Entry/Draw_0.gml new file mode 100644 index 0000000..617429d --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievement_Entry/Draw_0.gml @@ -0,0 +1,37 @@ + +draw_set_halign(fa_center) +draw_set_valign(fa_middle) + +switch(state) +{ + case Achievement_STATE_HIDDEN: + + draw_text(x,y-120,"Hidden") + + draw_rectangle(x-100,y-100,x+100,y+100,true) + break + + case Achievement_STATE_REVEALED: + case Achievement_STATE_UNLOCKED: + + draw_text(x,y-120,name) + + if(sprite_exists(sprite)) + draw_sprite_stretched(sprite,0,x-100,y-100,200,200) + + + switch(typeAchievement) + { + case Achievement_TYPE_INCREMENTAL: + draw_text(x,y+120,formattedCurrentSteps + "/" + formattedTotalSteps) + + break + + case Achievement_TYPE_STANDARD: + + break + } + + break +} + diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievement_Entry/Obj_GooglePlayServices_Achievement_Entry.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievement_Entry/Obj_GooglePlayServices_Achievement_Entry.yy new file mode 100644 index 0000000..ea58916 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievement_Entry/Obj_GooglePlayServices_Achievement_Entry.yy @@ -0,0 +1,39 @@ +{ + "spriteId": null, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": null, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 1, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":70,"eventType":7,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":2,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":8,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":12,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Achievements", + "path": "folders/GooglePlayServices Demo/Objects/Advanced/Achievements.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_Achievement_Entry", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievement_Entry/Other_70.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievement_Entry/Other_70.gml new file mode 100644 index 0000000..b22ab9f --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievement_Entry/Other_70.gml @@ -0,0 +1,10 @@ + +if(async_load[?"type"] == "GooglePlayServices_UriToPath") +{ + // We need to check the id of the request to make sure it matches the current request + if(async_load[?"ind"] == UriToPath_request) + { + // At this point we matched the request id and can load the sprite using the retreived path. + sprite = sprite_add(async_load[?"path"], 0, 0, 0, 0, 0); + } +} diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievement_Entry/Step_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievement_Entry/Step_0.gml new file mode 100644 index 0000000..d0517ec --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievement_Entry/Step_0.gml @@ -0,0 +1,28 @@ + +if(mouse_check_button_pressed(mb_left)) +if(point_in_circle(mouse_x,mouse_y,x,y,100)) +switch(state) +{ + case Achievement_STATE_HIDDEN: + GooglePlayServices_Achievements_Reveal() + break + + case Achievement_STATE_REVEALED: + + switch(typeAchievement) + { + case Achievement_TYPE_INCREMENTAL: + GooglePlayServices_Achievements_Increment(ID,1) + break + + case Achievement_TYPE_STANDARD: + GooglePlayServices_Achievements_Unlock(ID) + break + } + + break + + case Achievement_STATE_UNLOCKED: + //Noting... DONE + break +} diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_GetStatus/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_GetStatus/Create_0.gml new file mode 100644 index 0000000..b8bab5d --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_GetStatus/Create_0.gml @@ -0,0 +1,7 @@ +/// @description Initialize variables + +event_inherited(); + +text = "Refresh" + +event_user(0) diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_GetStatus/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_GetStatus/Mouse_7.gml new file mode 100644 index 0000000..f1a3689 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_GetStatus/Mouse_7.gml @@ -0,0 +1,2 @@ + +event_user(0) diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_GetStatus/Obj_GooglePlayServices_Achievement.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_GetStatus/Obj_GooglePlayServices_Achievement.yy new file mode 100644 index 0000000..14ab240 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_GetStatus/Obj_GooglePlayServices_Achievement.yy @@ -0,0 +1,31 @@ +{ + "spriteId": null, + "solid": false, + "visible": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": null, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 1, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Achievements", + "path": "folders/GooglePlayServices/Objects/Achievements.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_Achievement", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_GetStatus/Obj_GooglePlayServices_Achievement_incremental.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_GetStatus/Obj_GooglePlayServices_Achievement_incremental.yy new file mode 100644 index 0000000..efe1cc5 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_GetStatus/Obj_GooglePlayServices_Achievement_incremental.yy @@ -0,0 +1,31 @@ +{ + "spriteId": null, + "solid": false, + "visible": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": null, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 1, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Achievements", + "path": "folders/GooglePlayServices/Objects/Achievements.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_Achievement_incremental", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_GetStatus/Obj_GooglePlayServices_Achievements_GetStatus.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_GetStatus/Obj_GooglePlayServices_Achievements_GetStatus.yy new file mode 100644 index 0000000..c008455 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_GetStatus/Obj_GooglePlayServices_Achievements_GetStatus.yy @@ -0,0 +1,43 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 1, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":70,"eventType":7,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":10,"eventType":7,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Achievements", + "path": "folders/GooglePlayServices Demo/Objects/Advanced/Achievements.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_Achievements_GetStatus", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_GetStatus/Other_10.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_GetStatus/Other_10.gml new file mode 100644 index 0000000..5d4b206 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_GetStatus/Other_10.gml @@ -0,0 +1,4 @@ + +instance_destroy(Obj_GooglePlayServices_Achievement_Entry); + +GooglePlayServices_Achievements_GetStatus(true) diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_GetStatus/Other_70.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_GetStatus/Other_70.gml new file mode 100644 index 0000000..22b86b1 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_GetStatus/Other_70.gml @@ -0,0 +1,32 @@ + +if(async_load[?"type"] == "GooglePlayServices_Achievements_GetStatus") +{ + var array = json_parse(async_load[?"data"]) + + array_sort(array, function(_ach1, _ach2) { return _ach1.name < _ach2.name ? -1 : 1 }); + for(var a = 0 ; a < array_length(array) ; a++) + { + var struct = array[a]; + + show_debug_message(struct); + + var ins = instance_create_depth(150+a*300,room_height/2-50,0,Obj_GooglePlayServices_Achievement_Entry) + ins.ID = struct.id + ins.description = struct.description + ins.lastUpdatedTimestamp = struct.lastUpdatedTimestamp + ins.name = struct.name + ins.revealedImage = struct.revealedImage + ins.state = struct.state + ins.typeAchievement = struct.typeAchievement + ins.unlockedImage = struct.unlockedImage + ins.xpValue = struct.xpValue + + if(ins.typeAchievement == Achievement_TYPE_INCREMENTAL) + { + ins.currentSteps = struct.currentSteps + ins.formattedCurrentSteps = struct.formattedCurrentSteps + ins.formattedTotalSteps = struct.formattedTotalSteps + ins.totalSteps = struct.totalSteps + } + } +} diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Incremental/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Incremental/Create_0.gml new file mode 100644 index 0000000..0bbb620 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Incremental/Create_0.gml @@ -0,0 +1,5 @@ +/// @description Initialize variables + +event_inherited(); + +text = "Ach #2 (Increment)"; diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Incremental/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Incremental/Mouse_7.gml new file mode 100644 index 0000000..b9eb3fc --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Incremental/Mouse_7.gml @@ -0,0 +1,6 @@ +/// @description Increment achievement + +// This function will work for incremental achievements and allows the developer to +// increase the user progression on a given achievement. +// It requires you to use the unique achievement id string. +GooglePlayServices_Achievements_Increment(Achievement1, 1); diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Incremental/Obj_GooglePlayServices_Achievement.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Incremental/Obj_GooglePlayServices_Achievement.yy new file mode 100644 index 0000000..14ab240 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Incremental/Obj_GooglePlayServices_Achievement.yy @@ -0,0 +1,31 @@ +{ + "spriteId": null, + "solid": false, + "visible": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": null, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 1, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Achievements", + "path": "folders/GooglePlayServices/Objects/Achievements.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_Achievement", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Incremental/Obj_GooglePlayServices_Achievements_Incremental.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Incremental/Obj_GooglePlayServices_Achievements_Incremental.yy new file mode 100644 index 0000000..6838ba2 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Incremental/Obj_GooglePlayServices_Achievements_Incremental.yy @@ -0,0 +1,41 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 1, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Achievements", + "path": "folders/GooglePlayServices Demo/Objects/Achievements.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_Achievements_Incremental", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Reveal/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Reveal/Create_0.gml new file mode 100644 index 0000000..2121a3c --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Reveal/Create_0.gml @@ -0,0 +1,5 @@ +/// @description Initialize variables + +event_inherited(); + +text = "Ach #3 (Reveal)" diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Reveal/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Reveal/Mouse_7.gml new file mode 100644 index 0000000..80ed484 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Reveal/Mouse_7.gml @@ -0,0 +1,5 @@ +/// @description Reveal achievement + +// This function will reveal a hidden achievement in the achievement board. +// it requires you to use the unique achievement id string. +GooglePlayServices_Achievements_Reveal(Achievement2); diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Reveal/Obj_GooglePlayServices_Achievement.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Reveal/Obj_GooglePlayServices_Achievement.yy new file mode 100644 index 0000000..14ab240 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Reveal/Obj_GooglePlayServices_Achievement.yy @@ -0,0 +1,31 @@ +{ + "spriteId": null, + "solid": false, + "visible": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": null, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 1, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Achievements", + "path": "folders/GooglePlayServices/Objects/Achievements.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_Achievement", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Reveal/Obj_GooglePlayServices_Achievement_incremental.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Reveal/Obj_GooglePlayServices_Achievement_incremental.yy new file mode 100644 index 0000000..efe1cc5 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Reveal/Obj_GooglePlayServices_Achievement_incremental.yy @@ -0,0 +1,31 @@ +{ + "spriteId": null, + "solid": false, + "visible": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": null, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 1, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Achievements", + "path": "folders/GooglePlayServices/Objects/Achievements.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_Achievement_incremental", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Reveal/Obj_GooglePlayServices_Achievements_Reveal.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Reveal/Obj_GooglePlayServices_Achievements_Reveal.yy new file mode 100644 index 0000000..93d9906 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Reveal/Obj_GooglePlayServices_Achievements_Reveal.yy @@ -0,0 +1,41 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 1, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Achievements", + "path": "folders/GooglePlayServices Demo/Objects/Achievements.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_Achievements_Reveal", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Unlock/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Unlock/Create_0.gml new file mode 100644 index 0000000..917cd47 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Unlock/Create_0.gml @@ -0,0 +1,5 @@ +/// @description Initialize variables + +event_inherited() + +text = "Ach #1 (Unlock)" \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Unlock/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Unlock/Mouse_7.gml new file mode 100644 index 0000000..1672341 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Unlock/Mouse_7.gml @@ -0,0 +1,5 @@ +/// @description Unlock achievement + +// This function will unlock a new achievement in the achievement board and mark it as cleared +// it requires you to use the unique achievement id string. +GooglePlayServices_Achievements_Unlock(Achievement3); diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Unlock/Obj_GooglePlayServices_Achievements_Unlock.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Unlock/Obj_GooglePlayServices_Achievements_Unlock.yy new file mode 100644 index 0000000..4280122 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_Unlock/Obj_GooglePlayServices_Achievements_Unlock.yy @@ -0,0 +1,41 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 1, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Achievements", + "path": "folders/GooglePlayServices Demo/Objects/Achievements.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_Achievements_Unlock", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_show/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_show/Create_0.gml new file mode 100644 index 0000000..cda2106 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_show/Create_0.gml @@ -0,0 +1,6 @@ +/// @description Initialize variables + +// Inherit the parent event +event_inherited(); + +text = "Show" diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_show/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_show/Mouse_7.gml new file mode 100644 index 0000000..41eaafc --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_show/Mouse_7.gml @@ -0,0 +1,4 @@ +/// @description Show board + +// This function will show the achievement board in a google play popup still. +GooglePlayServices_Achievements_Show(); diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_show/Obj_GooglePlayServices_Achievements_show.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_show/Obj_GooglePlayServices_Achievements_show.yy new file mode 100644 index 0000000..f83f3b4 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Achievements_show/Obj_GooglePlayServices_Achievements_show.yy @@ -0,0 +1,41 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Achievements", + "path": "folders/GooglePlayServices Demo/Objects/Achievements.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_Achievements_Show", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_GotoAchievementsAdvanced/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_GotoAchievementsAdvanced/Create_0.gml new file mode 100644 index 0000000..8c3fb1c --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_GotoAchievementsAdvanced/Create_0.gml @@ -0,0 +1,6 @@ +/// @description Initialize variables + +// Inherit the parent event +event_inherited(); + +text = "Advanced" diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_GotoAchievementsAdvanced/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_GotoAchievementsAdvanced/Mouse_7.gml new file mode 100644 index 0000000..fb8cd7d --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_GotoAchievementsAdvanced/Mouse_7.gml @@ -0,0 +1,7 @@ +/// @description Go to saved games + +// Early exit on locked +if (locked) exit; + +// Go to savedgames room +room_goto(Room_GooglePlayServices_Achievements_Advanced); diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_GotoAchievementsAdvanced/Obj_GooglePlayServices_GotoAchievementsAdvanced.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_GotoAchievementsAdvanced/Obj_GooglePlayServices_GotoAchievementsAdvanced.yy new file mode 100644 index 0000000..e749f32 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_GotoAchievementsAdvanced/Obj_GooglePlayServices_GotoAchievementsAdvanced.yy @@ -0,0 +1,41 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Menu", + "path": "folders/GooglePlayServices Demo/Objects/Menu.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_GotoAchievementsAdvanced", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_GotoLeaderboardsAdvanced/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_GotoLeaderboardsAdvanced/Create_0.gml new file mode 100644 index 0000000..8c3fb1c --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_GotoLeaderboardsAdvanced/Create_0.gml @@ -0,0 +1,6 @@ +/// @description Initialize variables + +// Inherit the parent event +event_inherited(); + +text = "Advanced" diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_GotoLeaderboardsAdvanced/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_GotoLeaderboardsAdvanced/Mouse_7.gml new file mode 100644 index 0000000..6dbd8dc --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_GotoLeaderboardsAdvanced/Mouse_7.gml @@ -0,0 +1,7 @@ +/// @description Go to saved games + +// Early exit on locked +if (locked) exit; + +// Go to savedgames room +room_goto(Room_GooglePlayServices_Leaderboards_Advanced); diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_GotoLeaderboardsAdvanced/Obj_GooglePlayServices_GotoLeaderboardsAdvanced.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_GotoLeaderboardsAdvanced/Obj_GooglePlayServices_GotoLeaderboardsAdvanced.yy new file mode 100644 index 0000000..3f82235 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_GotoLeaderboardsAdvanced/Obj_GooglePlayServices_GotoLeaderboardsAdvanced.yy @@ -0,0 +1,41 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Menu", + "path": "folders/GooglePlayServices Demo/Objects/Menu.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_GotoLeaderboardsAdvanced", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_Entry/Alarm_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_Entry/Alarm_0.gml new file mode 100644 index 0000000..82229be --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_Entry/Alarm_0.gml @@ -0,0 +1,2 @@ + +UriToPath_request = GooglePlayServices_UriToPath(scoreHolderHiResImageUri) diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_Entry/CleanUp_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_Entry/CleanUp_0.gml new file mode 100644 index 0000000..7d63673 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_Entry/CleanUp_0.gml @@ -0,0 +1,3 @@ + +if(sprite_exists(sprite)) + sprite_delete(sprite) diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_Entry/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_Entry/Create_0.gml new file mode 100644 index 0000000..5262405 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_Entry/Create_0.gml @@ -0,0 +1,18 @@ +/// @description Initialize variables + +sprite = noone +UriToPath_request = noone + +displayRank = "" +displayScore = "" +rank = noone +rawScore = noone +scoreHolder = "" +scoreHolderDisplayName = "" +scoreHolderHiResImageUri = "" +scoreHolderIconImageUri = "" +scoreTag = "" +timestampMillis = noone + +alarm[0] = 1 + \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_Entry/Draw_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_Entry/Draw_0.gml new file mode 100644 index 0000000..67fab9d --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_Entry/Draw_0.gml @@ -0,0 +1,13 @@ + +if(sprite_exists(sprite)) + draw_sprite_stretched(sprite,0,x-30,y-30,60,60) +else + draw_rectangle(x-30,y-30,x+30,y+30,true) + +draw_set_valign(fa_middle) + +draw_set_halign(fa_right) +draw_text(x-70,y,displayRank) +draw_set_halign(fa_left) +draw_text(x+70,y-15,scoreHolderDisplayName) +draw_text(x+70,y+15,displayScore) diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_Entry/Obj_GooglePlayServices_Leaderboard_Entry.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_Entry/Obj_GooglePlayServices_Leaderboard_Entry.yy new file mode 100644 index 0000000..a60a3b3 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_Entry/Obj_GooglePlayServices_Leaderboard_Entry.yy @@ -0,0 +1,37 @@ +{ + "resourceType": "GMObject", + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_Leaderboard_Entry", + "spriteId": null, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": null, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,}, + {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","isDnD":false,"eventNum":70,"eventType":7,"collisionObjectId":null,}, + {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","isDnD":false,"eventNum":0,"eventType":2,"collisionObjectId":null,}, + {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","isDnD":false,"eventNum":0,"eventType":8,"collisionObjectId":null,}, + {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","isDnD":false,"eventNum":0,"eventType":12,"collisionObjectId":null,}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Leaderboards", + "path": "folders/GooglePlayServices Demo/Objects/Advanced/Leaderboards.yy", + }, +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_Entry/Other_70.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_Entry/Other_70.gml new file mode 100644 index 0000000..b22ab9f --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_Entry/Other_70.gml @@ -0,0 +1,10 @@ + +if(async_load[?"type"] == "GooglePlayServices_UriToPath") +{ + // We need to check the id of the request to make sure it matches the current request + if(async_load[?"ind"] == UriToPath_request) + { + // At this point we matched the request id and can load the sprite using the retreived path. + sprite = sprite_add(async_load[?"path"], 0, 0, 0, 0, 0); + } +} diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores/Create_0.gml new file mode 100644 index 0000000..3db8342 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores/Create_0.gml @@ -0,0 +1,10 @@ +/// @description Initialize variables + +event_inherited(); + +text = "Refresh" + +sprite = noone +UriToPath_request = noone + +event_user(0) diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores/Mouse_7.gml new file mode 100644 index 0000000..6cacc8d --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores/Mouse_7.gml @@ -0,0 +1,3 @@ + +event_user(0) + \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores/Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores/Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores.yy new file mode 100644 index 0000000..ff35d0d --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores/Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores.yy @@ -0,0 +1,43 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":70,"eventType":7,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":10,"eventType":7,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Leaderboards", + "path": "folders/GooglePlayServices Demo/Objects/Advanced/Leaderboards.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores/Other_10.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores/Other_10.gml new file mode 100644 index 0000000..965b9b7 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores/Other_10.gml @@ -0,0 +1,12 @@ + +instance_destroy(Obj_GooglePlayServices_Leaderboard_Entry); + +GooglePlayServices_Leaderboard_LoadPlayerCenteredScores( + Leaderboard1, + Leaderboard_TIME_SPAN_ALL_TIME, + Leaderboard_COLLECTION_PUBLIC, + 5, + true + ) + + diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores/Other_70.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores/Other_70.gml new file mode 100644 index 0000000..6782aa9 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores/Other_70.gml @@ -0,0 +1,23 @@ + +if(async_load[?"type"] == "GooglePlayServices_Leaderboard_LoadPlayerCenteredScores") +{ + var array = json_parse(async_load[?"data"]) + for(var a = 0 ; a < array_length(array) ; a ++) + { + var struct = array[a] + var ins = instance_create_depth(800,200+a*75,00,Obj_GooglePlayServices_Leaderboard_Entry) + ins.displayRank = struct.displayRank; + ins.displayScore = struct.displayScore; + ins.rank = struct.rank; + ins.rawScore = struct.rawScore; + ins.scoreHolder = struct.scoreHolder; + ins.scoreHolderDisplayName = struct.scoreHolderDisplayName; + ins.scoreHolderHiResImageUri = struct.scoreHolderHiResImageUri; + ins.scoreHolderIconImageUri = struct.scoreHolderIconImageUri; + + // This is an options parameter and is only present if a scoreTag was provided. + ins.scoreTag = struct[$ "scoreTag"]; + + ins.timestampMillis = struct.timestampMillis; + } +} diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_show/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_show/Create_0.gml new file mode 100644 index 0000000..032b831 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_show/Create_0.gml @@ -0,0 +1,6 @@ +/// @description Initialize variables + +event_inherited(); + +text = "Show" +leaderboard_id = "" diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_show/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_show/Mouse_7.gml new file mode 100644 index 0000000..7c55718 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_show/Mouse_7.gml @@ -0,0 +1,5 @@ +/// @description Show leaderboard + +// This function show the leaderboard with a given id. +// This id is the leaderboard unique identifier string. +GooglePlayServices_Leaderboard_Show(leaderboard_id) diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_show/Obj_GooglePlayServices_Leaderboard_show.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_show/Obj_GooglePlayServices_Leaderboard_show.yy new file mode 100644 index 0000000..31b8808 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_show/Obj_GooglePlayServices_Leaderboard_show.yy @@ -0,0 +1,41 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Leaderboards", + "path": "folders/GooglePlayServices Demo/Objects/Leaderboards.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_Leaderboard_Show", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_showAll/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_showAll/Create_0.gml new file mode 100644 index 0000000..e722330 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_showAll/Create_0.gml @@ -0,0 +1,5 @@ +/// @description Initialize variables + +event_inherited(); + +text = "Show All" diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_showAll/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_showAll/Mouse_7.gml new file mode 100644 index 0000000..cc59b10 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_showAll/Mouse_7.gml @@ -0,0 +1,4 @@ +/// @description Show all leaderboards + +// This function shows all the available leaderboards +GooglePlayServices_Leaderboard_ShowAll() diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_showAll/Obj_GooglePlayServices_Leaderboard_showAll.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_showAll/Obj_GooglePlayServices_Leaderboard_showAll.yy new file mode 100644 index 0000000..d6f73b1 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_showAll/Obj_GooglePlayServices_Leaderboard_showAll.yy @@ -0,0 +1,41 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Leaderboards", + "path": "folders/GooglePlayServices Demo/Objects/Leaderboards.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_Leaderboard_ShowAll", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_submitScore/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_submitScore/Create_0.gml new file mode 100644 index 0000000..1eaf440 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_submitScore/Create_0.gml @@ -0,0 +1,6 @@ +/// @description Initialize variables + +event_inherited(); + +text = "Post Score" +leaderboard_id = "" \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_submitScore/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_submitScore/Mouse_7.gml new file mode 100644 index 0000000..dd395cf --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_submitScore/Mouse_7.gml @@ -0,0 +1,10 @@ +/// @description Show leaderboard + +var newScore = irandom_range(1, 100000); + +show_message_async("Your Score: " + string(newScore)); + +// This function submits a new value to the leaderboard with a given id and allows to set a tag. +// This id is the leaderboard unique identifier string. +GooglePlayServices_Leaderboard_SubmitScore(leaderboard_id, newScore, "test"); + diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_submitScore/Obj_GooglePlayServices_Leaderboard_submitScore.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_submitScore/Obj_GooglePlayServices_Leaderboard_submitScore.yy new file mode 100644 index 0000000..6b28752 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_submitScore/Obj_GooglePlayServices_Leaderboard_submitScore.yy @@ -0,0 +1,42 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":70,"eventType":7,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Leaderboards", + "path": "folders/GooglePlayServices Demo/Objects/Leaderboards.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_Leaderboard_SubmitScore", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_submitScore/Other_70.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_submitScore/Other_70.gml new file mode 100644 index 0000000..f3ae235 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Leaderboard_submitScore/Other_70.gml @@ -0,0 +1,4 @@ + +if(async_load[?"type"] == "GooglePlayServices_Leaderboard_SubmitScore") +if(async_load[?"leaderboardId"] == leaderboard_id) + show_debug_message("GooglePlayServices_Leaderboard_SubmitScore: " + json_encode(async_load)) diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Player/CleanUp_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Player/CleanUp_0.gml new file mode 100644 index 0000000..f88d3ab --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Player/CleanUp_0.gml @@ -0,0 +1,9 @@ +/// @description Delete sprite + +// We need to check if the sprite exists and delete it +// otherwise we will have memory leaks. +if(sprite_exists(sprite)) +{ + sprite_delete(sprite) + sprite = noone +} diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Player/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Player/Create_0.gml new file mode 100644 index 0000000..d1fa8e6 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Player/Create_0.gml @@ -0,0 +1,30 @@ +/// @description Initialize variables + +// These variables will be used to store player information. +playerInfo = noone; +sprite = noone + +// Variable to identify the uriToPath request +UriToPath_request = noone + +// This is a help function that will reset the player information. +function playerInfoReset() +{ + playerInfo = noone; + + // We need to check if the sprite exists and delete it + // otherwise we will have memory leaks. + if (sprite_exists(sprite)) + { + sprite_delete(sprite); + sprite = undefined; + } +} + +// We check to see if we are signed in and if so we proceed to getting player info. +if (GooglePlayServices_IsSignedIn()) +{ + // This is a method that triggers a Social Async event callback + // returning the player information (check social async event). + GooglePlayServices_Player_Current() +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Player/Draw_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Player/Draw_0.gml new file mode 100644 index 0000000..c0067ed --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Player/Draw_0.gml @@ -0,0 +1,38 @@ +/// @description Draw player info + +// Early exit if we are not signed in. +if (!GooglePlayServices_IsSignedIn()) exit; + +// We check if the sprite variable has a valid sprite and draw it. +if(sprite_exists(sprite)) +{ + draw_sprite_stretched(sprite, 0, x, y, 150, 150); +} +else +{ + // If we don't have a valid sprite we draw a simple white frame. + draw_rectangle(x, y, x+150, y+150, true); +} + +// Here we set font properties to draw text. +draw_set_font(Font_YoYo_20); +draw_set_halign(fa_left); +draw_set_valign(fa_top); + +// We proceed to draw the iaccount info. +draw_text(x + 160, y, "Player Info:"); + +var info = playerInfo; + +// We check if 'info' is a valid struct +// NOTE: Data is retreived in callback Async Social 'GooglePlayServices_Player_Current' +if (!is_struct(info)) exit; + +// We loop through all the properties inside the struct and draw them to screen. +var properties = variable_struct_get_names(info); +var count = array_length(properties); +for (var i = 0; i < count; i++) +{ + var property = properties[i]; + draw_text(x + 160, y + (i + 1)*30, property + ": " + string(info[$ property])); +} diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Player/Obj_GooglePlayServices_Player.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Player/Obj_GooglePlayServices_Player.yy new file mode 100644 index 0000000..7ca34ac --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Player/Obj_GooglePlayServices_Player.yy @@ -0,0 +1,37 @@ +{ + "spriteId": null, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": null, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":8,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":70,"eventType":7,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":12,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Menu", + "path": "folders/GooglePlayServices Demo/Objects/Menu.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_Player", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Player/Other_70.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Player/Other_70.gml new file mode 100644 index 0000000..954e1e5 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_Player/Other_70.gml @@ -0,0 +1,65 @@ +/// @description Update account info + +switch(async_load[?"type"]) +{ + // @triggered by GooglePlayServices_StartSignInIntent() + case "GooglePlayServices_SignIn": + + // If we succeeded to get the player info + if(async_load[?"success"]) + { + GooglePlayServices_Player_Current(); + } + break; + + // @triggered by GooglePlayServices_Player_Current() + case "GooglePlayServices_Player_Current": + + // If we succeeded to get the player info + if(async_load[?"success"]) + { + + // We can parse the infomation into a struct + playerInfo = json_parse(async_load[? "player"]); + + // Check if the player has a HiRes image or an icon. + // Either way this retrieved variable is an URI and needs to be converted to a path + // for the sprite to be loaded from so we need to call 'GooglePlayServices_UriToPath' + // which will trigger an Async Social event with the sprite path. + if (playerInfo.hasHiResImage) + { + UriToPath_request = GooglePlayServices_UriToPath(playerInfo.hiResImageUri); + } + else if (playerInfo.hasIconImage) + { + UriToPath_request = GooglePlayServices_UriToPath(playerInfo.hasIconImage); + } + } + else + { + // At this point we were not successful to retreive user data so + // we proceed to reset any previously cached information. + playerInfoReset(); + } + break; + + // @triggered by GooglePlayServices_RevokeAccess() + case "GooglePlayServices_RevokeAccess": + // @triggered by GooglePlayServices_SignOut() + case "GooglePlayServices_SignOut": + // We proceed to reset any previously cached information. + playerInfoReset(); + break; + + // @triggered by GooglePlayServices_UriToPath() + case "GooglePlayServices_UriToPath": + + // We need to check the id of the request to make sure it matches the current request + if(async_load[?"ind"] == UriToPath_request) + { + // At this point we matched the request id and can load the sprite using the retreived path. + sprite = sprite_add(async_load[?"path"], 0, 0, 0, 0, 0); + } + break; +} + diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames/Alarm_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames/Alarm_0.gml new file mode 100644 index 0000000..98a2efc --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames/Alarm_0.gml @@ -0,0 +1,5 @@ +/// @description Reload the slots + +// We use this event to reload all the saves slots to properly display them +// since we could have deleted or edited a slot +GooglePlayServices_SavedGames_Load(true); \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames/Create_0.gml new file mode 100644 index 0000000..6cf6c9a --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames/Create_0.gml @@ -0,0 +1,31 @@ +/// @description Initialize variables + +// Opened slot name/description +opened_uniqueName = "" +opened_description = "" + +// Dialog async identifier +dialog_ind = -1; + +// This is an helper function for setting the application in slot edit +// mode this function will lock and unlock the respective buttons. +function setSlotEditMode(enable) +{ + // In slot edit mode the Save/Delete/Discard buttons should be unlocked + with (Obj_GooglePlayServices_SavedGames_Save) locked = !enable; + with (Obj_GooglePlayServices_SavedGames_Delete) locked = !enable; + with (Obj_GooglePlayServices_SavedGames_Discard) locked = !enable; + + // The other buttons should be locked + with (Obj_GooglePlayServices_SavedGames_New) locked = enable; + with (Obj_GooglePlayServices_SavedGames_Show) locked = enable; + with (Obj_GooglePlayServices_SavedGames_Slot) + { + locked = enable; + } +} + +// Load the current saved games. +// The boolean flagged passed onto the function will force the load. +GooglePlayServices_SavedGames_Load(true); + diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames/Draw_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames/Draw_0.gml new file mode 100644 index 0000000..98ccc86 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames/Draw_0.gml @@ -0,0 +1,9 @@ +/// @description Draw the current opened slot + +// Here we set font properties to draw text. +draw_set_valign(fa_middle); +draw_set_halign(fa_center); +draw_set_font(Font_YoYo_30); + +// Now we draw the opened slot description for debug. +draw_text(x, y, "[" + opened_description + "]"); \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames/Obj_GooglePlayServices_SavedGames.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames/Obj_GooglePlayServices_SavedGames.yy new file mode 100644 index 0000000..d985ca6 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames/Obj_GooglePlayServices_SavedGames.yy @@ -0,0 +1,38 @@ +{ + "spriteId": null, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": null, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":70,"eventType":7,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":8,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":63,"eventType":7,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":2,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "SavedGames", + "path": "folders/GooglePlayServices Demo/Objects/SavedGames.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_SavedGames", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames/Other_63.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames/Other_63.gml new file mode 100644 index 0000000..54b4d56 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames/Other_63.gml @@ -0,0 +1,55 @@ +/// @description Handle dialog callback + +// Early exit if sync identification doesn't match +if (async_load[?"id"] != dialog_ind) exit; + +// Early exit if status if false (Cancel button was pressed) +if (!async_load[?"status"]) exit; + +// Early exit if result is empty string. +if (async_load[?"result"] == "") exit; + +// Temporary path to save the saved game icon. +var path = "save_thumbnail.png" + +sprite_save_w(Spr_GooglePlayServices_SavedGames, 0, path); + +// Create initial position/image data to save +var objsArray = []; +for (var i = 0 ; i < 3; i++) +{ + var objData = {}; + objData.x = 700 + i*125; + objData.y = 250; + objData.image_index = 0; + + array_push(objsArray, objData); +} + +// Pack the data into a struct with object data and default icon index +var data = {}; +data.objs = objsArray; +data.icon_index = 0; + +// Convert the struct into a string to be saved +var jsonData = json_stringify(data); + +// Generate a unique slot identifier name +// This is not the perfect way for generating unique identifiers +// Use your own unique id generation logic. +var name = "slotUniqueName_" + string(irandom_range(0, 99999)) // This should be unique + +// Get the description from the dialog result +var description = async_load[? "result"]; + +// Create a new save game commit, this function allows the developer to commit a new data slot to be saved. +// TYhe user can pass in a: +// - name: an unique slot identification id +// - description: this is a tag that appears when showing saved games using 'GooglePlayServices_SavedGames_ShowSavedGamesUI' +// - jsonData: The data being saved to the slot (this must be a string and should probably be a json) +// - path: the path for the save game thumbnail image. +// This function triggers a Social Async callback (check: "GooglePlayServices_SavedGames_CommitNew") +GooglePlayServices_SavedGames_CommitNew(name, description, jsonData, path); + +// This function ca be used to display a google play message overlay on the application. +GooglePlayServices_UserMessage("New Slot"); diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames/Other_70.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames/Other_70.gml new file mode 100644 index 0000000..d751827 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames/Other_70.gml @@ -0,0 +1,166 @@ +/// @description Sloat loading/editing + +switch(async_load[? "type"]) +{ + // @triggered by the button (+) button on the ShowSavedGamesUI + case "GooglePlayServices_SavedGames_ShowSavedGamesUI_OnNew": + // At this point we want to create a new slot so we request the user for a new + // description name and handle slot creation under the Async Dialog event. + dialog_ind = get_string_async("Description: ","Slot #0"); + break; + + // @triggered by the button (Select) button on the ShowSavedGamesUI + case "GooglePlayServices_SavedGames_ShowSavedGamesUI_OnOpen": + + // At point we just requested a slot to be opened. + // The selected slot (snapshot) metadata is returned inside the 'snapshotMetadata' key + // amough other properties we have access to the 'uniqueName' identifier that we need + // to call the function 'GooglePlayServices_SavedGames_Open' to query the saved data. + var snapshotMeta = json_parse(async_load[? "snapshotMetadata"]); + var uniqueName = snapshotMeta.uniqueName; + + // This function uses the unique identifier name of the slot to query its data. + // Note that this will trigger an Async Social event - "GooglePlayServices_SavedGames_Open" + GooglePlayServices_SavedGames_Open(uniqueName); + break; + + // @triggered by closing the ShowSavedGamesUI + case "GooglePlayServices_SavedGames_ShowSavedGamesUI_OnExit": + // At this point we just closed the ShowSavedGames google play UI. + // We use this event to reload all the saves slots to properly display them + // since we could have deleted a slot through the 'ShowSavedGamesUI'. + GooglePlayServices_SavedGames_Load(true); + break; + + // @triggered by GooglePlayServices_SavedGames_CommitNew() + case "GooglePlayServices_SavedGames_CommitNew": + + // Early exit if the callback "success" flag is not true. + if (!async_load[? "success"]) exit; + + // Upon creating a new game save slot we refresh the current UI + // by destroying all previous slots and reloading the data. + instance_destroy(Obj_GooglePlayServices_SavedGames_Slot); + GooglePlayServices_SavedGames_Load(true); + break; + + // @triggered by GooglePlayServices_SavedGames_Load() + case "GooglePlayServices_SavedGames_Load": + + // Early exit if the callback "success" flag is not true. + if(!async_load[?"success"]) exit + + // At this point we just loaded all the game save data we are ready to refresh the UI + + // We destroy all previously used Slots and DataObj + instance_destroy(Obj_GooglePlayServices_SavedGames_DataObj); + instance_destroy(Obj_GooglePlayServices_SavedGames_Icon); + instance_destroy(Obj_GooglePlayServices_SavedGames_Slot); + + // We loop through all the queried snapshots and recreate the new slot data. + var snapshots = json_parse(async_load[?"snapshots"]); + var count = array_length(snapshots); + for(var i = 0; i < count; i++) + { + // Snapshots contain the metadata of the queried saved games all properties can + // be consulted on the providede documentation. + var snapshot = snapshots[i]; + + var ins = instance_create_depth(300, 250 + 85*i, depth, Obj_GooglePlayServices_SavedGames_Slot) + ins.coverImageUri = snapshot.coverImageUri; + ins.uniqueName = snapshot.uniqueName; + ins.description = snapshot.description; + ins.text = snapshot.description; + } + + // We just finished a reload so we are not editing any slot + // we can set the edit mode to false. + // This is a helper function defined inside the Create event. + setSlotEditMode(false); + break; + + // @triggered by GooglePlayServices_SavedGames_Open() + case "GooglePlayServices_SavedGames_Open": + + // Early exit if the callback "success" flag is not true. + if (!async_load[? "success"]) + { + GooglePlayServices_SavedGames_Load(true); + return; + } + + // Ad this point we successfully queried the save data slot so we get access + // to its 'metadata' and 'data' to + var snapshotMeta = json_parse(async_load[? "snapshotMetadata"]); + opened_uniqueName = snapshotMeta.uniqueName; + opened_description = snapshotMeta.description; + + // We set edit mode to true (this is an helper function defined on the Create event) + setSlotEditMode(true); + + // We can now parse the data from the callback, the saved data will be in the async_load + // dictionary on a key named "data". + var data = json_parse(async_load[? "data"]); + + // We destroy previously exiting Icon and DataObj if existing. + instance_destroy(Obj_GooglePlayServices_SavedGames_Icon); + instance_destroy(Obj_GooglePlayServices_SavedGames_DataObj); + + // We create a new icon with the 'image_index' set to the store icon_index (inside the saved data) + var ins = instance_create_depth(room_width - 120, 150, depth, Obj_GooglePlayServices_SavedGames_Icon); + ins.image_index = data.icon_index; + + // We now looped through all object related data (inside the saved data) and created the respective + // 'DataObj' with the corresponding position and image_index. + var objects = data.objs; + var count = array_length(objects); + for (var i = 0; i < count; i++) { + var properties = objects[i]; + + var ins = instance_create_depth(properties.x, properties.y, depth, Obj_GooglePlayServices_SavedGames_DataObj); + ins.image_index = properties.image_index; + } + break; + + // @triggered by GooglePlayServices_SavedGames_Delete() + case "GooglePlayServices_SavedGames_Delete": + // @triggered by GooglePlayServices_SavedGames_CommitAndClose() + case "GooglePlayServices_SavedGames_CommitAndClose": + + // Early exit if the callback "success" flag is not true. + if(!async_load[? "success"]) exit; + + // At this point we successfully commited data or deleted a slot. + // We will proceed to refresh the UI but since Google Play Services can have some delay + // we should place the reload call in an alarm to ensure the action has completly finished. + // + // NOTE: This shouldn't be necessary but it's a bug from Google side + alarm[0] = 90; + opened_uniqueName = ""; + opened_description = ""; + break; + + // @triggered by GooglePlayServices_SavedGames_DiscardAndClose() + case "GooglePlayServices_SavedGames_DiscardAndClose": + + // Early exit if the callback "success" flag is not true. + if (!async_load[? "success"]) exit; + + // At this point we just discarded the current changes. + + // We can now clean the objects used during slot edit mode + instance_destroy(Obj_GooglePlayServices_SavedGames_DataObj) + instance_destroy(Obj_GooglePlayServices_SavedGames_Icon) + + // We clear the local variables for opened slot + opened_uniqueName = ""; + opened_description = ""; + + // We set the slot edit mode to false + // This is a helper function defined inside the Create event. + setSlotEditMode(false); + + break + +} + diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_Save/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_Save/Create_0.gml new file mode 100644 index 0000000..9798219 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_Save/Create_0.gml @@ -0,0 +1,6 @@ +/// @description Initialize variables + +event_inherited(); + +text = "Save" +locked = true; diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_Save/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_Save/Mouse_7.gml new file mode 100644 index 0000000..805799c --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_Save/Mouse_7.gml @@ -0,0 +1,46 @@ +/// @description Save slot + +// Early exit if locked +if (locked) exit; + +// We create a temporary path for the thumbnail to be saved to. +var path = "save_thumbnail.png" + +// We have this thumbnail to the given path +var sprite = Obj_GooglePlayServices_SavedGames_Icon.sprite_index; +var subimage = Obj_GooglePlayServices_SavedGames_Icon.image_index; +sprite_save_w(sprite, subimage, path); + +// Now we need to handle the DataObjs for that we loop through them and +// store position and image_index information into a struct and push +// that struct into an array. +var objsArray = []; +with(Obj_GooglePlayServices_SavedGames_DataObj) +{ + var objData = {}; + objData.x = x; + objData.y = y; + objData.image_index = image_index; + + array_push(objsArray, objData); +} + +// We pack the final game data using the icon information and the objects information. +var data = {}; +data.objs = objsArray; +data.icon_index = Obj_GooglePlayServices_SavedGames_Icon.image_index; + +// We need to convert the data to string +var jsonData = json_stringify(data); + +//We get the currently opened slot uniqueName and description +var name = Obj_GooglePlayServices_SavedGames.opened_uniqueName; +var description = Obj_GooglePlayServices_SavedGames.opened_description; + +// Finally we can commit the changes and close the slot using the function +// below the requires the 'name' (unique id) the 'description' tag, the 'jsonData' +// in string format (it can be any data as long as it is a string) and the path to the +// thumbnail being used for the save. +// This function call will trigger an Social Async event callback of the same name +// "GooglePlayServices_SavedGames_CommitAndClose" +GooglePlayServices_SavedGames_CommitAndClose(name, description, jsonData, path); \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_Save/Obj_GooglePlayServices_SavedGames_Save.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_Save/Obj_GooglePlayServices_SavedGames_Save.yy new file mode 100644 index 0000000..fafe52f --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_Save/Obj_GooglePlayServices_SavedGames_Save.yy @@ -0,0 +1,41 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "SavedGames", + "path": "folders/GooglePlayServices Demo/Objects/SavedGames.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_SavedGames_Save", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_dataObj/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_dataObj/Create_0.gml new file mode 100644 index 0000000..761dde4 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_dataObj/Create_0.gml @@ -0,0 +1,6 @@ +/// @description Initialize variables + +// This is a test object that represents the data being saved to the +// save slot. We want to save information regarding position and 'image_index' + +image_speed = 0; \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_dataObj/Mouse_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_dataObj/Mouse_0.gml new file mode 100644 index 0000000..91ea9f6 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_dataObj/Mouse_0.gml @@ -0,0 +1,4 @@ +/// @description Move instance + +x = mouse_x; +y = mouse_y; \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_dataObj/Mouse_4.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_dataObj/Mouse_4.gml new file mode 100644 index 0000000..2de48ca --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_dataObj/Mouse_4.gml @@ -0,0 +1,3 @@ +/// @description Change image_index + +image_index++; \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_dataObj/Obj_GooglePlayServices_SavedGames_dataObj.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_dataObj/Obj_GooglePlayServices_SavedGames_dataObj.yy new file mode 100644 index 0000000..72ae63e --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_dataObj/Obj_GooglePlayServices_SavedGames_dataObj.yy @@ -0,0 +1,39 @@ +{ + "spriteId": { + "name": "Sprite_GooglePlayServices_SavedGames_dataObj", + "path": "sprites/Sprite_GooglePlayServices_SavedGames_dataObj/Sprite_GooglePlayServices_SavedGames_dataObj.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": null, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":4,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "SavedGames", + "path": "folders/GooglePlayServices Demo/Objects/SavedGames.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_SavedGames_DataObj", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_delete/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_delete/Create_0.gml new file mode 100644 index 0000000..83f1ad6 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_delete/Create_0.gml @@ -0,0 +1,7 @@ +/// £Initialize variables + +// Inherit the parent event +event_inherited(); + +text = "Delete" +locked = true; diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_delete/Draw_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_delete/Draw_0.gml new file mode 100644 index 0000000..2492fd3 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_delete/Draw_0.gml @@ -0,0 +1,10 @@ + + + +// Inherit the parent event +event_inherited(); + +if(Obj_GooglePlayServices_SavedGames_Controller.opened_uniqueName != "") + image_alpha = 1 +else + image_alpha = .5 diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_delete/Mouse_4.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_delete/Mouse_4.gml new file mode 100644 index 0000000..6010fdb --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_delete/Mouse_4.gml @@ -0,0 +1,10 @@ + + + +if(Obj_GooglePlayServices_SavedGames_Controller.opened_uniqueName != "") +{ + + GooglePlayServices_SavedGames_Delete( + Obj_GooglePlayServices_SavedGames_Controller.opened_uniqueName) + +} diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_delete/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_delete/Mouse_7.gml new file mode 100644 index 0000000..2116615 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_delete/Mouse_7.gml @@ -0,0 +1,11 @@ +/// @description Delete game slot + +// Early exit if locked +if (locked) exit; + +// Delete the game slot with a specific name id. +// This method requires the unique name identifier of the slot and deletes it from the +// Google Play Services. Note that this function triggers a Social Async event callback +// of the same name "GooglePlayServices_SavedGames_Delete". +GooglePlayServices_SavedGames_Delete(Obj_GooglePlayServices_SavedGames.opened_uniqueName); + diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_delete/Obj_GooglePlayServices_SavedGames_delete.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_delete/Obj_GooglePlayServices_SavedGames_delete.yy new file mode 100644 index 0000000..b527c6f --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_delete/Obj_GooglePlayServices_SavedGames_delete.yy @@ -0,0 +1,41 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "SavedGames", + "path": "folders/GooglePlayServices Demo/Objects/SavedGames.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_SavedGames_Delete", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_discard/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_discard/Create_0.gml new file mode 100644 index 0000000..1e96d3e --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_discard/Create_0.gml @@ -0,0 +1,8 @@ +/// @description Initialize variables + + +// Inherit the parent event +event_inherited(); + +text = "Discard" +locked = true; \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_discard/Draw_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_discard/Draw_0.gml new file mode 100644 index 0000000..6ad1f27 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_discard/Draw_0.gml @@ -0,0 +1,11 @@ + + + +// Inherit the parent event +event_inherited(); + + +if(Obj_GooglePlayServices_SavedGames_Controller.opened_uniqueName != "") + image_alpha = 1 +else + image_alpha = .5 diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_discard/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_discard/Mouse_7.gml new file mode 100644 index 0000000..c574753 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_discard/Mouse_7.gml @@ -0,0 +1,10 @@ +/// @description Discard changes + +// Early exit if locked +if (locked) exit; + +// Discard the changes and close save slot with a specific name id. +// This method requires the unique name identifier of the slot and closes it without +// commiting changes. Note that this function triggers a Social Async event callback +// of the same name "GooglePlayServices_SavedGames_DiscardAndClose". +GooglePlayServices_SavedGames_DiscardAndClose(Obj_GooglePlayServices_SavedGames.opened_uniqueName); diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_discard/Obj_GooglePlayServices_SavedGames_discard.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_discard/Obj_GooglePlayServices_SavedGames_discard.yy new file mode 100644 index 0000000..bdcef0a --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_discard/Obj_GooglePlayServices_SavedGames_discard.yy @@ -0,0 +1,41 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "SavedGames", + "path": "folders/GooglePlayServices Demo/Objects/SavedGames.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_SavedGames_Discard", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_icon/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_icon/Create_0.gml new file mode 100644 index 0000000..d304b08 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_icon/Create_0.gml @@ -0,0 +1,8 @@ +/// @description Initialize variales + +// This is a debug object that represents the icon data being stored on the +// Google Play Services cloud. + +image_xscale = 0.3; +image_yscale = 0.3; +image_speed = 0; \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_icon/Draw_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_icon/Draw_0.gml new file mode 100644 index 0000000..f8a49f8 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_icon/Draw_0.gml @@ -0,0 +1,4 @@ +/// @description Draw to screen + +draw_self(); +draw_text(x, bbox_top - 20,"tap me") diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_icon/Mouse_4.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_icon/Mouse_4.gml new file mode 100644 index 0000000..83444f2 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_icon/Mouse_4.gml @@ -0,0 +1,5 @@ + + + +if(Obj_GooglePlayServices_SavedGames_Controller.opened_uniqueName != "") + image_index ++ diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_icon/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_icon/Mouse_7.gml new file mode 100644 index 0000000..2de48ca --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_icon/Mouse_7.gml @@ -0,0 +1,3 @@ +/// @description Change image_index + +image_index++; \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_icon/Obj_GooglePlayServices_SavedGames_icon.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_icon/Obj_GooglePlayServices_SavedGames_icon.yy new file mode 100644 index 0000000..f2ea4c7 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_icon/Obj_GooglePlayServices_SavedGames_icon.yy @@ -0,0 +1,39 @@ +{ + "spriteId": { + "name": "Spr_GooglePlayServices_SavedGames", + "path": "sprites/Spr_GooglePlayServices_SavedGames/Spr_GooglePlayServices_SavedGames.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": null, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":8,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "SavedGames", + "path": "folders/GooglePlayServices Demo/Objects/SavedGames.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_SavedGames_Icon", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_new/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_new/Create_0.gml new file mode 100644 index 0000000..f83ee10 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_new/Create_0.gml @@ -0,0 +1,6 @@ +/// @description Initialize variables + +// Inherit the parent event +event_inherited(); + +text = "New Save Slot" diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_new/Draw_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_new/Draw_0.gml new file mode 100644 index 0000000..77776a1 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_new/Draw_0.gml @@ -0,0 +1,12 @@ + + + +// Inherit the parent event +event_inherited(); + +if(Obj_GooglePlayServices_SavedGames_Controller.opened_uniqueName == "" and +instance_number(Obj_GooglePlayServices_SavedGames_Slot) < 3) + image_alpha = 1 +else + image_alpha = .5 + diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_new/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_new/Mouse_7.gml new file mode 100644 index 0000000..fc31978 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_new/Mouse_7.gml @@ -0,0 +1,17 @@ +/// @description Create save slot + +// Early exit if locked +if (locked) exit; + +// The intent of the object is to create a new save slot. +// So it checks if the number of existing slots exceeds the maximum allowded +// NOTE: this max value can be any value. +if(instance_number(Obj_GooglePlayServices_SavedGames_Slot) < 3) +{ + // After checking that the slot number didn't reach it's maximum value + // We proceed to asking the user for the description of the new slot + // This async call will be handled in the 'Obj_GooglePlayServices_SavedData' Async Dialog Event + var dialog_ind = get_string_async("Description: ", "Slot #0"); + Obj_GooglePlayServices_SavedGames.dialog_ind = dialog_ind; +} + diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_new/Obj_GooglePlayServices_SavedGames_new.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_new/Obj_GooglePlayServices_SavedGames_new.yy new file mode 100644 index 0000000..224e919 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_new/Obj_GooglePlayServices_SavedGames_new.yy @@ -0,0 +1,41 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "SavedGames", + "path": "folders/GooglePlayServices Demo/Objects/SavedGames.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_SavedGames_New", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_show/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_show/Create_0.gml new file mode 100644 index 0000000..56632ce --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_show/Create_0.gml @@ -0,0 +1,6 @@ +/// @description Initialize variables + +// Inherit the parent event +event_inherited(); + +text = "Show Save Slots" diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_show/Draw_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_show/Draw_0.gml new file mode 100644 index 0000000..a516ad6 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_show/Draw_0.gml @@ -0,0 +1,11 @@ + + + +// Inherit the parent event +event_inherited(); + +if(Obj_GooglePlayServices_SavedGames_Controller.opened_uniqueName == "") + image_alpha = 1 +else + image_alpha = 0.5 + \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_show/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_show/Mouse_7.gml new file mode 100644 index 0000000..d7ae6a2 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_show/Mouse_7.gml @@ -0,0 +1,12 @@ +/// @description Show SavedGamesUI + +// Earlt exit on locked +if (locked) exit; + +// This function call will show the Google Play Services, Saved Games UI popup. +// You can: +// - give it a title +// - allow add +// - allow delete +// - provide a max number of allowed save slots +GooglePlayServices_SavedGames_ShowSavedGamesUI("YoYo Games SavedGames", true, true, 3); diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_show/Obj_GooglePlayServices_SavedGames_show.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_show/Obj_GooglePlayServices_SavedGames_show.yy new file mode 100644 index 0000000..9b0e97b --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_show/Obj_GooglePlayServices_SavedGames_show.yy @@ -0,0 +1,41 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "SavedGames", + "path": "folders/GooglePlayServices Demo/Objects/SavedGames.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_SavedGames_Show", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_slot/CleanUp_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_slot/CleanUp_0.gml new file mode 100644 index 0000000..b16a487 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_slot/CleanUp_0.gml @@ -0,0 +1,7 @@ +/// @description Delete sprite + +if(sprite_exists(sprite)) { + sprite_delete(sprite) + sprite = noone; +} + diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_slot/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_slot/Create_0.gml new file mode 100644 index 0000000..1e695fd --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_slot/Create_0.gml @@ -0,0 +1,10 @@ +/// @description Initialize variables + +event_inherited(); + +sprite = noone +UriToPath_ind = noone + +image_xscale = 5 + +coverImageUri = undefined diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_slot/Draw_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_slot/Draw_0.gml new file mode 100644 index 0000000..20f6c83 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_slot/Draw_0.gml @@ -0,0 +1,19 @@ +/// @description Draw slot + +event_inherited(); + +// If there is a sprite to draw draw the sprite next to +// the save slot button. +if(sprite_exists(sprite)) +{ + draw_sprite_stretched(sprite, 0, bbox_left-40, y-40, 80, 80); +} +// Else fi there is an 'coverImageUri' we need to convert it to a path +else if (!is_undefined(coverImageUri)) { + // The function call below will take in a URI (unique resource identifier) + // and query it's path. The function returns an Async call id, that you can match + // using the Async Social Event callback of type "GooglePlayServices_UriToPath". + UriToPath_ind = GooglePlayServices_UriToPath(coverImageUri); + + coverImageUri = undefined; +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_slot/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_slot/Mouse_7.gml new file mode 100644 index 0000000..8f9d15f --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_slot/Mouse_7.gml @@ -0,0 +1,9 @@ +/// @description Open saved game + +// Early exit if locked +if (locked) exit; + +// This function call will open a save slot and retrieve its information +// It requires the unique name id to be provided and triggers an Async Social +// event callback with the same name "GooglePlayServices_SavedGames_Open" +GooglePlayServices_SavedGames_Open(uniqueName) diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_slot/Obj_GooglePlayServices_SavedGames_slot.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_slot/Obj_GooglePlayServices_SavedGames_slot.yy new file mode 100644 index 0000000..da983f1 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_slot/Obj_GooglePlayServices_SavedGames_slot.yy @@ -0,0 +1,44 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":8,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":70,"eventType":7,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":12,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "SavedGames", + "path": "folders/GooglePlayServices Demo/Objects/SavedGames.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_SavedGames_Slot", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_slot/Other_70.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_slot/Other_70.gml new file mode 100644 index 0000000..09486a8 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_SavedGames_slot/Other_70.gml @@ -0,0 +1,21 @@ + +switch(async_load[?"type"]) +{ + // @triggered by GooglePlayServices_UriToPath() + case "GooglePlayServices_UriToPath": + + // At this point we received a callback from a UriToPath request. + // However we still need to check if the identification matches + // and if the query was a success. + if (async_load[?"ind"] != UriToPath_ind) exit; + + if (!async_load[?"success"]) exit; + + // At this point both checks above passed so we have a path that we can use to + // load the sprite. + var path = async_load[?"path"] + sprite = sprite_add(path, 0, 0, 0, 0, 0); + + break +} + diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_VideoRecording/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_VideoRecording/Create_0.gml new file mode 100644 index 0000000..08bdf35 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_VideoRecording/Create_0.gml @@ -0,0 +1,5 @@ +/// @description Initialize variables + +event_inherited(); + +text = "Screen Recording" diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_VideoRecording/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_VideoRecording/Mouse_7.gml new file mode 100644 index 0000000..c96f6b7 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_VideoRecording/Mouse_7.gml @@ -0,0 +1,10 @@ +/// @description Show video overlay + +// Early exit on locked +if (locked) exit; + +// This method will enable the video recording overlay. +// With this feature the user will be able to record his screen +// and save the recordings to the phone memory. +// Front camera and microphone can also be recorded. +GooglePlayServices_VideoRecording_ShowVideoOverlay(); diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_VideoRecording/Obj_GooglePlayServices_VideoRecording.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_VideoRecording/Obj_GooglePlayServices_VideoRecording.yy new file mode 100644 index 0000000..f711261 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_VideoRecording/Obj_GooglePlayServices_VideoRecording.yy @@ -0,0 +1,41 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "VideoRecording", + "path": "folders/GooglePlayServices Demo/Objects/VideoRecording.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_VideoRecording", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoAchievements/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoAchievements/Create_0.gml new file mode 100644 index 0000000..9937e34 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoAchievements/Create_0.gml @@ -0,0 +1,5 @@ +/// @description Initialize variables + +event_inherited() + +text = "Achievements" diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoAchievements/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoAchievements/Mouse_7.gml new file mode 100644 index 0000000..eaad76a --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoAchievements/Mouse_7.gml @@ -0,0 +1,7 @@ +/// @description Go to archievements + +// Early exit if locked +if (locked) exit; + +// Goto Achievements room +room_goto(Room_GooglePlayServices_Achievements); diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoAchievements/Obj_GooglePlayServices_gotoAchievements.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoAchievements/Obj_GooglePlayServices_gotoAchievements.yy new file mode 100644 index 0000000..13468c8 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoAchievements/Obj_GooglePlayServices_gotoAchievements.yy @@ -0,0 +1,41 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Menu", + "path": "folders/GooglePlayServices Demo/Objects/Menu.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_GotoAchievements", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoLeaderboards/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoLeaderboards/Create_0.gml new file mode 100644 index 0000000..af48538 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoLeaderboards/Create_0.gml @@ -0,0 +1,6 @@ +/// @description Initialize variables + +// Inherit the parent event +event_inherited(); + +text = "Leaderboards" diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoLeaderboards/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoLeaderboards/Mouse_7.gml new file mode 100644 index 0000000..740c2b9 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoLeaderboards/Mouse_7.gml @@ -0,0 +1,7 @@ +/// @description Go to leaderboards + +// Early exit if locked. +if (locked) exit; + +// Go to leaderboards room +room_goto(Room_GooglePlayServices_Leaderboards); \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoLeaderboards/Obj_GooglePlayServices_gotoLeaderboards.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoLeaderboards/Obj_GooglePlayServices_gotoLeaderboards.yy new file mode 100644 index 0000000..3bc59ed --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoLeaderboards/Obj_GooglePlayServices_gotoLeaderboards.yy @@ -0,0 +1,41 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Menu", + "path": "folders/GooglePlayServices Demo/Objects/Menu.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_GotoLeaderboards", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoMenu/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoMenu/Create_0.gml new file mode 100644 index 0000000..b747bb9 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoMenu/Create_0.gml @@ -0,0 +1,5 @@ +/// @description Initialize variables + +event_inherited(); + +text = "Main Menu" diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoMenu/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoMenu/Mouse_7.gml new file mode 100644 index 0000000..f3d5b74 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoMenu/Mouse_7.gml @@ -0,0 +1,4 @@ +/// @description Return to main room + +room_goto(Room_GooglePlayServices) + diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoMenu/Obj_GooglePlayServices_gotoMenu.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoMenu/Obj_GooglePlayServices_gotoMenu.yy new file mode 100644 index 0000000..494bc89 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoMenu/Obj_GooglePlayServices_gotoMenu.yy @@ -0,0 +1,41 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Menu", + "path": "folders/GooglePlayServices Demo/Objects/Menu.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_GotoMenu", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoSavedGames/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoSavedGames/Create_0.gml new file mode 100644 index 0000000..54b8bab --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoSavedGames/Create_0.gml @@ -0,0 +1,6 @@ +/// @description Initialize variables + +// Inherit the parent event +event_inherited(); + +text = "Saved Games" diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoSavedGames/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoSavedGames/Mouse_7.gml new file mode 100644 index 0000000..9cc9fd6 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoSavedGames/Mouse_7.gml @@ -0,0 +1,7 @@ +/// @description Go to saved games + +// Early exit on locked +if (locked) exit; + +// Go to savedgames room +room_goto(Room_GooglePlayServices_SavedGames); diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoSavedGames/Obj_GooglePlayServices_gotoSavedGames.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoSavedGames/Obj_GooglePlayServices_gotoSavedGames.yy new file mode 100644 index 0000000..160a8bd --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_gotoSavedGames/Obj_GooglePlayServices_gotoSavedGames.yy @@ -0,0 +1,41 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Menu", + "path": "folders/GooglePlayServices Demo/Objects/Menu.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_GotoSavedGames", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_revoke/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_revoke/Create_0.gml new file mode 100644 index 0000000..ecbcda4 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_revoke/Create_0.gml @@ -0,0 +1,5 @@ +/// @description Initialize variables + +event_inherited(); + +text = "Revoke" diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_revoke/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_revoke/Mouse_7.gml new file mode 100644 index 0000000..3bc840d --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_revoke/Mouse_7.gml @@ -0,0 +1,9 @@ +/// @description Revoke access + +// Early exit if locked +if (locked) exit; + +// This function call will revoke the access right from this phone. +// It will not auto login on startup and will require to sign in again. +// Generates a Social Async callback 'GooglePlayServices_RevokeAccess' +GooglePlayServices_RevokeAccess(); \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_revoke/Obj_GooglePlayServices_revoke.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_revoke/Obj_GooglePlayServices_revoke.yy new file mode 100644 index 0000000..05b337f --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_revoke/Obj_GooglePlayServices_revoke.yy @@ -0,0 +1,41 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Menu", + "path": "folders/GooglePlayServices Demo/Objects/Menu.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_Revoke", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_signIn/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_signIn/Create_0.gml new file mode 100644 index 0000000..8ef3c21 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_signIn/Create_0.gml @@ -0,0 +1,5 @@ +/// @description Initialize variables + +event_inherited(); + +text = "Sign In"; diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_signIn/Draw_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_signIn/Draw_0.gml new file mode 100644 index 0000000..5514af0 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_signIn/Draw_0.gml @@ -0,0 +1,10 @@ + +event_inherited(); + +draw_set_font(Font_YoYo_20) +draw_set_valign(fa_top) +draw_set_halign(fa_left) +draw_set_color(c_white) + +draw_text(bbox_left,bbox_top-30,"GooglePlayServices_IsAvailable: " + string(GooglePlayServices_IsAvailable())) + diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_signIn/Mouse_7.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_signIn/Mouse_7.gml new file mode 100644 index 0000000..7039117 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_signIn/Mouse_7.gml @@ -0,0 +1,15 @@ +/// @description Sign in/out + +if (GooglePlayServices_IsSignedIn()) +{ + // This function call will sign out from the google play account. + // Generates a Social Async callback 'GooglePlayServices_SignOut' + GooglePlayServices_SignOut(); +} +else +{ + // This function call will express an intent to login to the user account. + // It will present the user with a window to select account (can succeed or fail) + // Generates a Social Async callback 'GooglePlayServices_SignIn' + GooglePlayServices_StartSignInIntent(); +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_signIn/Obj_GooglePlayServices_signIn.yy b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_signIn/Obj_GooglePlayServices_signIn.yy new file mode 100644 index 0000000..f9accf3 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_signIn/Obj_GooglePlayServices_signIn.yy @@ -0,0 +1,43 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_button", + "path": "objects/Obj_YoYo_button/Obj_YoYo_button.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":7,"eventType":6,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":8,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Menu", + "path": "folders/GooglePlayServices Demo/Objects/Menu.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_GooglePlayServices_SignIn", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_signIn/Step_0.gml b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_signIn/Step_0.gml new file mode 100644 index 0000000..231464d --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_GooglePlayServices_signIn/Step_0.gml @@ -0,0 +1,12 @@ +/// @description Update text + +event_inherited() + +if (GooglePlayServices_IsSignedIn()) +{ + text = "Sign Out"; +} +else +{ + text = "Sign In"; +} diff --git a/source/GooglePlayServices_gml/objects/Obj_Yoyo_button/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_Yoyo_button/Create_0.gml new file mode 100644 index 0000000..73d8a8c --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_Yoyo_button/Create_0.gml @@ -0,0 +1,5 @@ + +image_speed = 0 +event_inherited(); + +locked = false diff --git a/source/GooglePlayServices_gml/objects/Obj_Yoyo_button/Obj_Yoyo_button.yy b/source/GooglePlayServices_gml/objects/Obj_Yoyo_button/Obj_Yoyo_button.yy new file mode 100644 index 0000000..453de4e --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_Yoyo_button/Obj_Yoyo_button.yy @@ -0,0 +1,41 @@ +{ + "spriteId": { + "name": "Spr_YoYo_button", + "path": "sprites/Spr_YoYo_button/Spr_YoYo_button.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_text", + "path": "objects/Obj_YoYo_text/Obj_YoYo_text.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 1, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Objects", + "path": "folders/YoYo Extensions Assets/Objects.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_YoYo_button", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_Yoyo_button/Step_0.gml b/source/GooglePlayServices_gml/objects/Obj_Yoyo_button/Step_0.gml new file mode 100644 index 0000000..ed776b9 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_Yoyo_button/Step_0.gml @@ -0,0 +1,8 @@ + +if(locked) + image_index = 2 +else +if(mouse_check_button(mb_left) and point_in_rectangle(mouse_x,mouse_y,bbox_left,bbox_top,bbox_right,bbox_bottom)) + image_index = 0 +else + image_index = 1 diff --git a/source/GooglePlayServices_gml/objects/Obj_Yoyo_text/Create_0.gml b/source/GooglePlayServices_gml/objects/Obj_Yoyo_text/Create_0.gml new file mode 100644 index 0000000..8cf1f42 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_Yoyo_text/Create_0.gml @@ -0,0 +1,4 @@ + +text = "" +font = Font_YoYo_30 +color = c_white diff --git a/source/GooglePlayServices_gml/objects/Obj_Yoyo_text/Draw_0.gml b/source/GooglePlayServices_gml/objects/Obj_Yoyo_text/Draw_0.gml new file mode 100644 index 0000000..eb47666 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_Yoyo_text/Draw_0.gml @@ -0,0 +1,10 @@ + +draw_set_valign(fa_middle); +draw_set_halign(fa_center); +draw_set_font(font); +draw_set_color(color); + +if (sprite_exists(sprite_index)) draw_self(); + +draw_text(x,y,text); + diff --git a/source/GooglePlayServices_gml/objects/Obj_Yoyo_text/Obj_Yoyo_text.yy b/source/GooglePlayServices_gml/objects/Obj_Yoyo_text/Obj_Yoyo_text.yy new file mode 100644 index 0000000..3e7e303 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_Yoyo_text/Obj_Yoyo_text.yy @@ -0,0 +1,35 @@ +{ + "spriteId": null, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": null, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 1, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":8,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Objects", + "path": "folders/YoYo Extensions Assets/Objects.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_YoYo_text", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/objects/Obj_Yoyo_textbox/Draw_0.gml b/source/GooglePlayServices_gml/objects/Obj_Yoyo_textbox/Draw_0.gml new file mode 100644 index 0000000..cc9fde7 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_Yoyo_textbox/Draw_0.gml @@ -0,0 +1,8 @@ +draw_set_valign(fa_top) +draw_set_halign(fa_left) +draw_set_font(font) +draw_set_color(color) + +draw_self() + +draw_text_ext(bbox_left+10,bbox_top+10,text,font_get_size(font),sprite_width-20) diff --git a/source/GooglePlayServices_gml/objects/Obj_Yoyo_textbox/Obj_Yoyo_textbox.yy b/source/GooglePlayServices_gml/objects/Obj_Yoyo_textbox/Obj_Yoyo_textbox.yy new file mode 100644 index 0000000..f474033 --- /dev/null +++ b/source/GooglePlayServices_gml/objects/Obj_Yoyo_textbox/Obj_Yoyo_textbox.yy @@ -0,0 +1,40 @@ +{ + "spriteId": { + "name": "Spr_YoYo_textbox", + "path": "sprites/Spr_YoYo_textbox/Spr_YoYo_textbox.yy", + }, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "Obj_YoYo_text", + "path": "objects/Obj_YoYo_text/Obj_YoYo_text.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 1, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":8,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Objects", + "path": "folders/YoYo Extensions Assets/Objects.yy", + }, + "resourceVersion": "1.0", + "name": "Obj_YoYo_textbox", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/options/amazonfire/icons/hdpi.png b/source/GooglePlayServices_gml/options/amazonfire/icons/hdpi.png new file mode 100644 index 0000000..94a9ccd Binary files /dev/null and b/source/GooglePlayServices_gml/options/amazonfire/icons/hdpi.png differ diff --git a/source/GooglePlayServices_gml/options/amazonfire/icons/ldpi.png b/source/GooglePlayServices_gml/options/amazonfire/icons/ldpi.png new file mode 100644 index 0000000..0c3835a Binary files /dev/null and b/source/GooglePlayServices_gml/options/amazonfire/icons/ldpi.png differ diff --git a/source/GooglePlayServices_gml/options/amazonfire/icons/mdpi.png b/source/GooglePlayServices_gml/options/amazonfire/icons/mdpi.png new file mode 100644 index 0000000..d00a8cc Binary files /dev/null and b/source/GooglePlayServices_gml/options/amazonfire/icons/mdpi.png differ diff --git a/source/GooglePlayServices_gml/options/amazonfire/icons/xhdpi.png b/source/GooglePlayServices_gml/options/amazonfire/icons/xhdpi.png new file mode 100644 index 0000000..e4674fb Binary files /dev/null and b/source/GooglePlayServices_gml/options/amazonfire/icons/xhdpi.png differ diff --git a/source/GooglePlayServices_gml/options/amazonfire/icons/xxhdpi.png b/source/GooglePlayServices_gml/options/amazonfire/icons/xxhdpi.png new file mode 100644 index 0000000..bcfad10 Binary files /dev/null and b/source/GooglePlayServices_gml/options/amazonfire/icons/xxhdpi.png differ diff --git a/source/GooglePlayServices_gml/options/amazonfire/icons/xxxhdpi.png b/source/GooglePlayServices_gml/options/amazonfire/icons/xxxhdpi.png new file mode 100644 index 0000000..3d2a097 Binary files /dev/null and b/source/GooglePlayServices_gml/options/amazonfire/icons/xxxhdpi.png differ diff --git a/source/GooglePlayServices_gml/options/amazonfire/options_amazonfire.yy b/source/GooglePlayServices_gml/options/amazonfire/options_amazonfire.yy new file mode 100644 index 0000000..6c3eaef --- /dev/null +++ b/source/GooglePlayServices_gml/options/amazonfire/options_amazonfire.yy @@ -0,0 +1,49 @@ +{ + "option_amazonfire_sync_android": false, + "option_amazonfire_display_name": "Created with GameMaker Studio 2", + "option_amazonfire_version": "1.0.0.0", + "option_amazonfire_tools_from_version": false, + "option_amazonfire_build_tools": "", + "option_amazonfire_support_lib": "", + "option_amazonfire_target_sdk": "", + "option_amazonfire_minimum_sdk": "", + "option_amazonfire_compile_sdk": "", + "option_amazonfire_package_domain": "com", + "option_amazonfire_package_company": "company", + "option_amazonfire_package_product": "game", + "option_amazonfire_orient_portrait": true, + "option_amazonfire_orient_portrait_flipped": true, + "option_amazonfire_orient_landscape": true, + "option_amazonfire_orient_landscape_flipped": true, + "option_amazonfire_gamepad_support": true, + "option_amazonfire_lint": false, + "option_amazonfire_install_location": 0, + "option_amazonfire_sleep_margin": 4, + "option_amazonfire_splash_screens_landscape": "${base_options_dir}/amazonfire/splash/landscape.png", + "option_amazonfire_splash_screens_portrait": "${base_options_dir}/amazonfire/splash/portrait.png", + "option_amazonfire_splash_time": 0, + "option_amazonfire_launchscreen_fill": 0, + "option_amazonfire_splashscreen_background_colour": 4278190080, + "option_amazonfire_tv_banner": "${base_options_dir}/amazonfire/tv_banner.png", + "option_amazonfire_interpolate_pixels": false, + "option_amazonfire_screen_depth": 0, + "option_amazonfire_scale": 0, + "option_amazonfire_texture_page": "2048x2048", + "option_amazonfire_icon_ldpi": "icons/ldpi.png", + "option_amazonfire_icon_mdpi": "icons/mdpi.png", + "option_amazonfire_icon_hdpi": "icons/hdpi.png", + "option_amazonfire_icon_xhdpi": "icons/xhdpi.png", + "option_amazonfire_icon_xxhdpi": "icons/xxhdpi.png", + "option_amazonfire_icon_xxxhdpi": "icons/xxxhdpi.png", + "option_amazonfire_permission_write_external_storage": false, + "option_amazonfire_permission_read_phone_state": false, + "option_amazonfire_permission_network_state": false, + "option_amazonfire_permission_internet": true, + "option_amazonfire_permission_bluetooth": true, + "option_amazonfire_permission_record_audio": false, + "option_amazonfire_application_tag_inject": "", + "resourceVersion": "1.0", + "name": "Amazon Fire", + "tags": [], + "resourceType": "GMAmazonFireOptions", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/options/android/icons/hdpi.png b/source/GooglePlayServices_gml/options/android/icons/hdpi.png new file mode 100644 index 0000000..94a9ccd Binary files /dev/null and b/source/GooglePlayServices_gml/options/android/icons/hdpi.png differ diff --git a/source/GooglePlayServices_gml/options/android/icons/ldpi.png b/source/GooglePlayServices_gml/options/android/icons/ldpi.png new file mode 100644 index 0000000..0c3835a Binary files /dev/null and b/source/GooglePlayServices_gml/options/android/icons/ldpi.png differ diff --git a/source/GooglePlayServices_gml/options/android/icons/mdpi.png b/source/GooglePlayServices_gml/options/android/icons/mdpi.png new file mode 100644 index 0000000..d00a8cc Binary files /dev/null and b/source/GooglePlayServices_gml/options/android/icons/mdpi.png differ diff --git a/source/GooglePlayServices_gml/options/android/icons/xhdpi.png b/source/GooglePlayServices_gml/options/android/icons/xhdpi.png new file mode 100644 index 0000000..e4674fb Binary files /dev/null and b/source/GooglePlayServices_gml/options/android/icons/xhdpi.png differ diff --git a/source/GooglePlayServices_gml/options/android/icons/xxhdpi.png b/source/GooglePlayServices_gml/options/android/icons/xxhdpi.png new file mode 100644 index 0000000..bcfad10 Binary files /dev/null and b/source/GooglePlayServices_gml/options/android/icons/xxhdpi.png differ diff --git a/source/GooglePlayServices_gml/options/android/icons/xxxhdpi.png b/source/GooglePlayServices_gml/options/android/icons/xxxhdpi.png new file mode 100644 index 0000000..3d2a097 Binary files /dev/null and b/source/GooglePlayServices_gml/options/android/icons/xxxhdpi.png differ diff --git a/source/GooglePlayServices_gml/options/android/options_android.yy b/source/GooglePlayServices_gml/options/android/options_android.yy new file mode 100644 index 0000000..1e61758 --- /dev/null +++ b/source/GooglePlayServices_gml/options/android/options_android.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMAndroidOptions", + "resourceVersion": "1.0", + "name": "Android", + "option_android_sync_amazon": false, + "option_android_display_name": "YoyoPlayServices", + "option_android_version": "1.0.3.0", + "option_android_tools_from_version": false, + "option_android_build_tools": "", + "option_android_support_lib": "31.0.0", + "option_android_target_sdk": "31", + "option_android_minimum_sdk": "16", + "option_android_compile_sdk": "31", + "option_android_package_domain": "com", + "option_android_package_company": "yoyogames", + "option_android_package_product": "YoyoPlayServices", + "option_android_arch_armv7": true, + "option_android_arch_arm64": true, + "option_android_arch_x86_64": true, + "option_android_orient_portrait": false, + "option_android_orient_portrait_flipped": false, + "option_android_orient_landscape": true, + "option_android_orient_landscape_flipped": false, + "option_android_gamepad_support": false, + "option_android_lint": false, + "option_android_install_location": 0, + "option_android_sleep_margin": 4, + "option_android_splash_screens_landscape": "${base_options_dir}/android/splash/landscape.png", + "option_android_splash_screens_portrait": "${base_options_dir}/android/splash/portrait.png", + "option_android_splash_time": 0, + "option_android_launchscreen_fill": 0, + "option_android_splashscreen_background_colour": 4278190080, + "option_android_tv_banner": "${base_options_dir}/android/tv_banner.png", + "option_android_interpolate_pixels": false, + "option_android_screen_depth": 0, + "option_android_device_support": 0, + "option_android_scale": 0, + "option_android_texture_page": "2048x2048", + "option_android_icon_ldpi": "icons/ldpi.png", + "option_android_icon_mdpi": "icons/mdpi.png", + "option_android_icon_hdpi": "icons/hdpi.png", + "option_android_icon_xhdpi": "icons/xhdpi.png", + "option_android_icon_xxhdpi": "icons/xxhdpi.png", + "option_android_icon_xxxhdpi": "icons/xxxhdpi.png", + "option_android_icon_adaptive_generate": true, + "option_android_icon_adaptive_ldpi": "${base_options_dir}/android/icons_adaptive/ldpi.png", + "option_android_icon_adaptive_mdpi": "${base_options_dir}/android/icons_adaptive/mdpi.png", + "option_android_icon_adaptive_hdpi": "${base_options_dir}/android/icons_adaptive/hdpi.png", + "option_android_icon_adaptive_xhdpi": "${base_options_dir}/android/icons_adaptive/xhdpi.png", + "option_android_icon_adaptive_xxhdpi": "${base_options_dir}/android/icons_adaptive/xxhdpi.png", + "option_android_icon_adaptive_xxxhdpi": "${base_options_dir}/android/icons_adaptive/xxxhdpi.png", + "option_android_icon_adaptivebg_ldpi": "${base_options_dir}/android/icons_adaptivebg/ldpi.png", + "option_android_icon_adaptivebg_mdpi": "${base_options_dir}/android/icons_adaptivebg/mdpi.png", + "option_android_icon_adaptivebg_hdpi": "${base_options_dir}/android/icons_adaptivebg/hdpi.png", + "option_android_icon_adaptivebg_xhdpi": "${base_options_dir}/android/icons_adaptivebg/xhdpi.png", + "option_android_icon_adaptivebg_xxhdpi": "${base_options_dir}/android/icons_adaptivebg/xxhdpi.png", + "option_android_icon_adaptivebg_xxxhdpi": "${base_options_dir}/android/icons_adaptivebg/xxxhdpi.png", + "option_android_use_facebook": false, + "option_android_facebook_id": "", + "option_android_facebook_app_display_name": "", + "option_android_permission_write_external_storage": false, + "option_android_permission_read_phone_state": false, + "option_android_permission_network_state": false, + "option_android_permission_internet": true, + "option_android_permission_bluetooth": false, + "option_android_permission_record_audio": false, + "option_android_application_tag_inject": "", + "option_android_google_apk_expansion": false, + "option_android_google_dynamic_asset_delivery": false, + "option_android_google_licensing_public_key": "", + "option_android_tv_isgame": true, + "option_android_proguard_minifying": false, + "option_android_proguard_shrinking": false, +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/options/html5/fav.ico b/source/GooglePlayServices_gml/options/html5/fav.ico new file mode 100644 index 0000000..3aee3ec Binary files /dev/null and b/source/GooglePlayServices_gml/options/html5/fav.ico differ diff --git a/source/GooglePlayServices_gml/options/html5/options_html5.yy b/source/GooglePlayServices_gml/options/html5/options_html5.yy new file mode 100644 index 0000000..9a208a3 --- /dev/null +++ b/source/GooglePlayServices_gml/options/html5/options_html5.yy @@ -0,0 +1,34 @@ +{ + "option_html5_browser_title": "Made in GameMaker Studio 2", + "option_html5_version": "1.0.0.0", + "option_html5_foldername": "html5game", + "option_html5_outputname": "index.html", + "option_html5_splash_png": "${base_options_dir}/html5/splash.png", + "option_html5_usesplash": false, + "option_html5_outputdebugtoconsole": true, + "option_html5_display_cursor": true, + "option_html5_localrunalert": true, + "option_html5_index": "", + "option_html5_loadingbar": "", + "option_html5_jsprepend": "", + "option_html5_icon": "fav.ico", + "option_html5_allow_fullscreen": true, + "option_html5_interpolate_pixels": false, + "option_html5_centregame": false, + "option_html5_usebuiltinparticles": true, + "option_html5_usebuiltinfont": true, + "option_html5_webgl": 2, + "option_html5_scale": 0, + "option_html5_texture_page": "2048x2048", + "option_html5_use_facebook": false, + "option_html5_facebook_id": "", + "option_html5_facebook_app_display_name": "", + "option_html5_flurry_enable": false, + "option_html5_flurry_id": "", + "option_html5_google_analytics_enable": false, + "option_html5_google_tracking_id": "", + "resourceVersion": "1.0", + "name": "HTML5", + "tags": [], + "resourceType": "GMHtml5Options", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/options/ios/icons/app/ipad_152.png b/source/GooglePlayServices_gml/options/ios/icons/app/ipad_152.png new file mode 100644 index 0000000..ff87391 Binary files /dev/null and b/source/GooglePlayServices_gml/options/ios/icons/app/ipad_152.png differ diff --git a/source/GooglePlayServices_gml/options/ios/icons/app/ipad_76.png b/source/GooglePlayServices_gml/options/ios/icons/app/ipad_76.png new file mode 100644 index 0000000..43b0834 Binary files /dev/null and b/source/GooglePlayServices_gml/options/ios/icons/app/ipad_76.png differ diff --git a/source/GooglePlayServices_gml/options/ios/icons/app/ipad_pro_167.png b/source/GooglePlayServices_gml/options/ios/icons/app/ipad_pro_167.png new file mode 100644 index 0000000..d7761a5 Binary files /dev/null and b/source/GooglePlayServices_gml/options/ios/icons/app/ipad_pro_167.png differ diff --git a/source/GooglePlayServices_gml/options/ios/icons/app/iphone_120.png b/source/GooglePlayServices_gml/options/ios/icons/app/iphone_120.png new file mode 100644 index 0000000..b7a562d Binary files /dev/null and b/source/GooglePlayServices_gml/options/ios/icons/app/iphone_120.png differ diff --git a/source/GooglePlayServices_gml/options/ios/icons/app/iphone_180.png b/source/GooglePlayServices_gml/options/ios/icons/app/iphone_180.png new file mode 100644 index 0000000..12bce0c Binary files /dev/null and b/source/GooglePlayServices_gml/options/ios/icons/app/iphone_180.png differ diff --git a/source/GooglePlayServices_gml/options/ios/icons/itunes/itunes_1024.png b/source/GooglePlayServices_gml/options/ios/icons/itunes/itunes_1024.png new file mode 100644 index 0000000..bb30086 Binary files /dev/null and b/source/GooglePlayServices_gml/options/ios/icons/itunes/itunes_1024.png differ diff --git a/source/GooglePlayServices_gml/options/ios/icons/notification/ipad_20.png b/source/GooglePlayServices_gml/options/ios/icons/notification/ipad_20.png new file mode 100644 index 0000000..cdda012 Binary files /dev/null and b/source/GooglePlayServices_gml/options/ios/icons/notification/ipad_20.png differ diff --git a/source/GooglePlayServices_gml/options/ios/icons/notification/ipad_40.png b/source/GooglePlayServices_gml/options/ios/icons/notification/ipad_40.png new file mode 100644 index 0000000..2fd2b1e Binary files /dev/null and b/source/GooglePlayServices_gml/options/ios/icons/notification/ipad_40.png differ diff --git a/source/GooglePlayServices_gml/options/ios/icons/notification/iphone_40.png b/source/GooglePlayServices_gml/options/ios/icons/notification/iphone_40.png new file mode 100644 index 0000000..2fd2b1e Binary files /dev/null and b/source/GooglePlayServices_gml/options/ios/icons/notification/iphone_40.png differ diff --git a/source/GooglePlayServices_gml/options/ios/icons/notification/iphone_60.png b/source/GooglePlayServices_gml/options/ios/icons/notification/iphone_60.png new file mode 100644 index 0000000..0f43da9 Binary files /dev/null and b/source/GooglePlayServices_gml/options/ios/icons/notification/iphone_60.png differ diff --git a/source/GooglePlayServices_gml/options/ios/icons/settings/ipad_29.png b/source/GooglePlayServices_gml/options/ios/icons/settings/ipad_29.png new file mode 100644 index 0000000..ddc5e1a Binary files /dev/null and b/source/GooglePlayServices_gml/options/ios/icons/settings/ipad_29.png differ diff --git a/source/GooglePlayServices_gml/options/ios/icons/settings/ipad_58.png b/source/GooglePlayServices_gml/options/ios/icons/settings/ipad_58.png new file mode 100644 index 0000000..c10d79c Binary files /dev/null and b/source/GooglePlayServices_gml/options/ios/icons/settings/ipad_58.png differ diff --git a/source/GooglePlayServices_gml/options/ios/icons/settings/iphone_58.png b/source/GooglePlayServices_gml/options/ios/icons/settings/iphone_58.png new file mode 100644 index 0000000..c10d79c Binary files /dev/null and b/source/GooglePlayServices_gml/options/ios/icons/settings/iphone_58.png differ diff --git a/source/GooglePlayServices_gml/options/ios/icons/settings/iphone_87.png b/source/GooglePlayServices_gml/options/ios/icons/settings/iphone_87.png new file mode 100644 index 0000000..819a44e Binary files /dev/null and b/source/GooglePlayServices_gml/options/ios/icons/settings/iphone_87.png differ diff --git a/source/GooglePlayServices_gml/options/ios/icons/spotlight/ipad_40.png b/source/GooglePlayServices_gml/options/ios/icons/spotlight/ipad_40.png new file mode 100644 index 0000000..2fd2b1e Binary files /dev/null and b/source/GooglePlayServices_gml/options/ios/icons/spotlight/ipad_40.png differ diff --git a/source/GooglePlayServices_gml/options/ios/icons/spotlight/ipad_80.png b/source/GooglePlayServices_gml/options/ios/icons/spotlight/ipad_80.png new file mode 100644 index 0000000..ff3b9f2 Binary files /dev/null and b/source/GooglePlayServices_gml/options/ios/icons/spotlight/ipad_80.png differ diff --git a/source/GooglePlayServices_gml/options/ios/icons/spotlight/iphone_120.png b/source/GooglePlayServices_gml/options/ios/icons/spotlight/iphone_120.png new file mode 100644 index 0000000..b7a562d Binary files /dev/null and b/source/GooglePlayServices_gml/options/ios/icons/spotlight/iphone_120.png differ diff --git a/source/GooglePlayServices_gml/options/ios/icons/spotlight/iphone_80.png b/source/GooglePlayServices_gml/options/ios/icons/spotlight/iphone_80.png new file mode 100644 index 0000000..ff3b9f2 Binary files /dev/null and b/source/GooglePlayServices_gml/options/ios/icons/spotlight/iphone_80.png differ diff --git a/source/GooglePlayServices_gml/options/ios/options_ios.yy b/source/GooglePlayServices_gml/options/ios/options_ios.yy new file mode 100644 index 0000000..a1d16af --- /dev/null +++ b/source/GooglePlayServices_gml/options/ios/options_ios.yy @@ -0,0 +1,45 @@ +{ + "option_ios_display_name": "Made in GameMaker Studio 2", + "option_ios_bundle_name": "com.company.game", + "option_ios_version": "1.0.0.0", + "option_ios_output_dir": "~/GameMakerStudio2/iOS", + "option_ios_team_id": "", + "option_ios_orientation_portrait": true, + "option_ios_orientation_portrait_flipped": true, + "option_ios_orientation_landscape": true, + "option_ios_orientation_landscape_flipped": true, + "option_ios_devices": 2, + "option_ios_defer_home_indicator": false, + "option_ios_icon_iphone_app_120": "icons/app/iphone_120.png", + "option_ios_icon_iphone_app_180": "icons/app/iphone_180.png", + "option_ios_icon_ipad_app_76": "icons/app/ipad_76.png", + "option_ios_icon_ipad_app_152": "icons/app/ipad_152.png", + "option_ios_icon_ipad_pro_app_167": "icons/app/ipad_pro_167.png", + "option_ios_icon_iphone_notification_40": "icons/notification/iphone_40.png", + "option_ios_icon_iphone_notification_60": "icons/notification/iphone_60.png", + "option_ios_icon_ipad_notification_20": "icons/notification/ipad_20.png", + "option_ios_icon_ipad_notification_40": "icons/notification/ipad_40.png", + "option_ios_icon_iphone_spotlight_80": "icons/spotlight/iphone_80.png", + "option_ios_icon_iphone_spotlight_120": "icons/spotlight/iphone_120.png", + "option_ios_icon_ipad_spotlight_40": "icons/spotlight/ipad_40.png", + "option_ios_icon_ipad_spotlight_80": "icons/spotlight/ipad_80.png", + "option_ios_icon_iphone_settings_58": "icons/settings/iphone_58.png", + "option_ios_icon_iphone_settings_87": "icons/settings/iphone_87.png", + "option_ios_icon_ipad_settings_29": "icons/settings/ipad_29.png", + "option_ios_icon_ipad_settings_58": "icons/settings/ipad_58.png", + "option_ios_icon_itunes_artwork_1024": "icons/itunes/itunes_1024.png", + "option_ios_splashscreen_background_colour": 4278190080, + "option_ios_launchscreen_image": "${base_options_dir}/ios/splash/launchscreen.png", + "option_ios_launchscreen_image_landscape": "${base_options_dir}/ios/splash/launchscreen-landscape.png", + "option_ios_launchscreen_fill": 0, + "option_ios_interpolate_pixels": false, + "option_ios_half_ipad1_textures": false, + "option_ios_scale": 0, + "option_ios_texture_page": "2048x2048", + "option_ios_podfile_path": "${options_dir}/ios/Podfile", + "option_ios_podfile_lock_path": "${options_dir}/ios/Podfile.lock", + "resourceVersion": "1.3", + "name": "iOS", + "tags": [], + "resourceType": "GMiOSOptions", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/options/linux/icons/64.png b/source/GooglePlayServices_gml/options/linux/icons/64.png new file mode 100644 index 0000000..2b23ba7 Binary files /dev/null and b/source/GooglePlayServices_gml/options/linux/icons/64.png differ diff --git a/source/GooglePlayServices_gml/options/linux/options_linux.yy b/source/GooglePlayServices_gml/options/linux/options_linux.yy new file mode 100644 index 0000000..c89b653 --- /dev/null +++ b/source/GooglePlayServices_gml/options/linux/options_linux.yy @@ -0,0 +1,25 @@ +{ + "option_linux_display_name": "Made in GameMaker Studio 2", + "option_linux_version": "1.0.0.0", + "option_linux_maintainer_email": "", + "option_linux_homepage": "http://www.yoyogames.com", + "option_linux_short_desc": "", + "option_linux_long_desc": "", + "option_linux_splash_screen": "${base_options_dir}/linux/splash/splash.png", + "option_linux_display_splash": false, + "option_linux_icon": "icons/64.png", + "option_linux_start_fullscreen": false, + "option_linux_allow_fullscreen": false, + "option_linux_interpolate_pixels": false, + "option_linux_display_cursor": true, + "option_linux_sync": false, + "option_linux_resize_window": false, + "option_linux_scale": 0, + "option_linux_texture_page": "2048x2048", + "option_linux_enable_steam": false, + "option_linux_disable_sandbox": false, + "resourceVersion": "1.0", + "name": "Linux", + "tags": [], + "resourceType": "GMLinuxOptions", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/options/mac/icons/1024.png b/source/GooglePlayServices_gml/options/mac/icons/1024.png new file mode 100644 index 0000000..bb30086 Binary files /dev/null and b/source/GooglePlayServices_gml/options/mac/icons/1024.png differ diff --git a/source/GooglePlayServices_gml/options/mac/options_mac.yy b/source/GooglePlayServices_gml/options/mac/options_mac.yy new file mode 100644 index 0000000..ab25a68 --- /dev/null +++ b/source/GooglePlayServices_gml/options/mac/options_mac.yy @@ -0,0 +1,35 @@ +{ + "option_mac_display_name": "Made in GameMaker Studio 2", + "option_mac_app_id": "com.company.game", + "option_mac_version": "1.0.0.0", + "option_mac_output_dir": "~/GameMakerStudio2/Mac", + "option_mac_team_id": null, + "option_mac_signing_identity": "Developer ID Application:", + "option_mac_copyright": "(c) 2018 CompanyName", + "option_mac_splash_png": "${base_options_dir}/mac/splash/splash.png", + "option_mac_icon_png": "icons/1024.png", + "option_mac_installer_background_png": "splash/installer_background.png", + "option_mac_menu_dock": false, + "option_mac_display_cursor": true, + "option_mac_start_fullscreen": false, + "option_mac_allow_fullscreen": false, + "option_mac_interpolate_pixels": false, + "option_mac_vsync": false, + "option_mac_resize_window": false, + "option_mac_enable_retina": false, + "option_mac_scale": 0, + "option_mac_texture_page": "2048x2048", + "option_mac_build_app_store": false, + "option_mac_allow_incoming_network": false, + "option_mac_allow_outgoing_network": false, + "option_mac_app_category": "Games", + "option_mac_enable_steam": false, + "option_mac_disable_sandbox": false, + "option_mac_x86_64": true, + "option_mac_arm64": true, + "option_mac_apple_sign_in": false, + "resourceVersion": "1.0", + "name": "macOS", + "tags": [], + "resourceType": "GMMacOptions", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/options/mac/splash/installer_background.png b/source/GooglePlayServices_gml/options/mac/splash/installer_background.png new file mode 100644 index 0000000..0868d79 Binary files /dev/null and b/source/GooglePlayServices_gml/options/mac/splash/installer_background.png differ diff --git a/source/GooglePlayServices_gml/options/main/inherited/options_main.inherited.yy b/source/GooglePlayServices_gml/options/main/inherited/options_main.inherited.yy new file mode 100644 index 0000000..00b9b28 --- /dev/null +++ b/source/GooglePlayServices_gml/options/main/inherited/options_main.inherited.yy @@ -0,0 +1,8 @@ +1.0.0←ed6a955d-5826-4f98-a450-10b414266c27←ed6a955d-5826-4f98-a450-10b414266c27|{ + "option_gameguid": "632be5f1-69b5-48f3-b535-222e8fe27837", + "option_game_speed": 60 +}←1225f6b0-ac20-43bd-a82e-be73fa0b6f4f|{ + "targets": 461609314234257646 +}←7b2c4976-1e09-44e5-8256-c527145e03bb|{ + "targets": 461609314234257646 +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/options/main/options_main.yy b/source/GooglePlayServices_gml/options/main/options_main.yy new file mode 100644 index 0000000..1112371 --- /dev/null +++ b/source/GooglePlayServices_gml/options/main/options_main.yy @@ -0,0 +1,21 @@ +{ + "option_gameguid": "632be5f1-69b5-48f3-b535-222e8fe27837", + "option_gameid": "0", + "option_game_speed": 60, + "option_mips_for_3d_textures": false, + "option_draw_colour": 4294967295, + "option_window_colour": 255, + "option_steam_app_id": "0", + "option_sci_usesci": false, + "option_author": "", + "option_collision_compatibility": true, + "option_copy_on_write_enabled": true, + "option_spine_licence": false, + "option_template_image": "${base_options_dir}/main/template_image.png", + "option_template_icon": "template_icon.png", + "option_template_description": null, + "resourceVersion": "1.4", + "name": "Main", + "tags": [], + "resourceType": "GMMainOptions", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/options/main/template_icon.png b/source/GooglePlayServices_gml/options/main/template_icon.png new file mode 100644 index 0000000..4efa591 Binary files /dev/null and b/source/GooglePlayServices_gml/options/main/template_icon.png differ diff --git a/source/GooglePlayServices_gml/options/operagx/options_operagx.yy b/source/GooglePlayServices_gml/options/operagx/options_operagx.yy new file mode 100644 index 0000000..9c97310 --- /dev/null +++ b/source/GooglePlayServices_gml/options/operagx/options_operagx.yy @@ -0,0 +1,19 @@ +{ + "option_operagx_version": "1.0.0.0", + "option_operagx_next_version": "1.0.0.0", + "option_operagx_game_name": "${project_name}", + "option_operagx_interpolate_pixels": true, + "option_operagx_scale": 0, + "option_operagx_texture_page": "2048x2048", + "option_operagx_display_cursor": true, + "option_operagx_guid": "", + "option_operagx_team_name": "", + "option_operagx_team_id": "", + "option_operagx_editUrl": "", + "option_operagx_internalShareUrl": "", + "option_operagx_publicShareUrl": "", + "resourceVersion": "1.0", + "name": "operagx", + "tags": [], + "resourceType": "GMOperaGXOptions", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/options/ps4/options_ps4.yy b/source/GooglePlayServices_gml/options/ps4/options_ps4.yy new file mode 100644 index 0000000..4504a02 --- /dev/null +++ b/source/GooglePlayServices_gml/options/ps4/options_ps4.yy @@ -0,0 +1,36 @@ +{ + "option_ps4_package_id": "IV0002-NPXS29129_00-APP0990000000022", + "option_ps4_passcode": "GvE6xCpZxd96scOUGuLPbuLp8O800B0s", + "option_ps4_nptitleid": "", + "option_ps4_nptitlesecret": "", + "option_ps4_paramsfo": "", + "option_ps4_nptitledat": "", + "option_ps4_trophyedit": "", + "option_ps4_shareparam": "", + "option_ps4_pronunciation": "", + "option_ps4_splash_screen": "${base_options_dir}/ps4/sce_sys/pic1.png", + "option_ps4_save_data_icon": "sce_sys/save_data.png", + "option_ps4_trophy_screen": "${base_options_dir}/ps4/sce_sys/pic0.png", + "option_ps4_interpolate_pixels": true, + "option_ps4_display_cursor": false, + "option_ps4_scale": 0, + "option_ps4_texture_page": "2048x2048", + "option_ps4_max_display_width": -1, + "option_ps4_max_display_height": -1, + "option_ps4_icon": "sce_sys/icon0.png", + "option_ps4_shareoverlay_image": "sce_sys/shareoverlayimage.png", + "option_ps4_nptitledat_file": "${options_dir}\\ps4\\sce_sys\\nptitle.dat", + "option_ps4_paramsfo_file": "${options_dir}\\ps4\\sce_sys\\param.sfo", + "option_ps4_trophy00trp_file": "${options_dir}\\ps4\\sce_sys\\trophy\\trophy00.trp", + "option_ps4_shareparam_file": "${options_dir}\\ps4\\sce_sys\\shareparam.json", + "option_ps4_pronunciation_file": "${options_dir}\\ps4\\sce_sys\\pronunciation.xml", + "option_ps4_pronunciation_sig": "${options_dir}\\ps4\\sce_sys\\pronunciation.sig", + "option_ps4_onion": 2048, + "option_ps4_garlic": 1024, + "option_ps4_neo_onion": 2048, + "option_ps4_neo_garlic": 1536, + "resourceVersion": "1.0", + "name": "PlayStation 4", + "tags": [], + "resourceType": "GMPS4Options", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/options/ps4/sce_sys/icon0.png b/source/GooglePlayServices_gml/options/ps4/sce_sys/icon0.png new file mode 100644 index 0000000..4f0dd30 Binary files /dev/null and b/source/GooglePlayServices_gml/options/ps4/sce_sys/icon0.png differ diff --git a/source/GooglePlayServices_gml/options/ps4/sce_sys/save_data.png b/source/GooglePlayServices_gml/options/ps4/sce_sys/save_data.png new file mode 100644 index 0000000..11dd167 Binary files /dev/null and b/source/GooglePlayServices_gml/options/ps4/sce_sys/save_data.png differ diff --git a/source/GooglePlayServices_gml/options/ps4/sce_sys/shareoverlayimage.png b/source/GooglePlayServices_gml/options/ps4/sce_sys/shareoverlayimage.png new file mode 100644 index 0000000..5d5d3fb Binary files /dev/null and b/source/GooglePlayServices_gml/options/ps4/sce_sys/shareoverlayimage.png differ diff --git a/source/GooglePlayServices_gml/options/ps5/options_ps5.yy b/source/GooglePlayServices_gml/options/ps5/options_ps5.yy new file mode 100644 index 0000000..a6435ee --- /dev/null +++ b/source/GooglePlayServices_gml/options/ps5/options_ps5.yy @@ -0,0 +1,38 @@ +{ + "option_ps5_package_id": "IV0002-NPXS29129_00-APP0990000000022", + "option_ps5_passcode": "GvE6xCpZxd96scOUGuLPbuLp8O800B0s", + "option_ps5_nptitleid": "", + "option_ps5_nptitlesecret": "", + "option_ps5_sharedbinarysubconfigs": "", + "option_ps5_paramsfo": "", + "option_ps5_nptitledat": "", + "option_ps5_trophyedit": "", + "option_ps5_shareparam": "", + "option_ps5_pronunciation": "", + "option_ps5_splash_screen": "${base_options_dir}/ps5/sce_sys/pic1.png", + "option_ps5_foreground_screen": "${base_options_dir}/ps5/sce_sys/pic2.png", + "option_ps5_save_data_icon": "sce_sys/save_data.png", + "option_ps5_trophy_screen": "${base_options_dir}/ps5/sce_sys/pic0.png", + "option_ps5_interpolate_pixels": true, + "option_ps5_display_cursor": false, + "option_ps5_scale": 0, + "option_ps5_texture_page": "2048x2048", + "option_ps5_max_display_width": -1, + "option_ps5_max_display_height": -1, + "option_ps5_icon": "sce_sys/icon0.png", + "option_ps5_shareoverlay_image": "sce_sys/shareoverlayimage.png", + "option_ps5_nptitledat_file": "${options_dir}\\ps5\\sce_sys\\nptitle.dat", + "option_ps5_paramsfo_file": "${options_dir}\\ps5\\sce_sys\\param.sfo", + "option_ps5_trophy00trp_file": "${options_dir}\\ps5\\sce_sys\\trophy\\trophy00.trp", + "option_ps5_shareparam_file": "${options_dir}\\ps5\\sce_sys\\shareparam.json", + "option_ps5_pronunciation_file": "${options_dir}\\ps5\\sce_sys\\pronunciation.xml", + "option_ps5_pronunciation_sig": "${options_dir}\\ps5\\sce_sys\\pronunciation.sig", + "option_ps5_onion": 2048, + "option_ps5_garlic": 1024, + "option_ps5_neo_onion": 2048, + "option_ps5_neo_garlic": 1536, + "resourceVersion": "1.0", + "name": "PlayStation 5", + "tags": [], + "resourceType": "GMPS5Options", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/options/ps5/sce_sys/icon0.png b/source/GooglePlayServices_gml/options/ps5/sce_sys/icon0.png new file mode 100644 index 0000000..4f0dd30 Binary files /dev/null and b/source/GooglePlayServices_gml/options/ps5/sce_sys/icon0.png differ diff --git a/source/GooglePlayServices_gml/options/ps5/sce_sys/save_data.png b/source/GooglePlayServices_gml/options/ps5/sce_sys/save_data.png new file mode 100644 index 0000000..ecf020c Binary files /dev/null and b/source/GooglePlayServices_gml/options/ps5/sce_sys/save_data.png differ diff --git a/source/GooglePlayServices_gml/options/ps5/sce_sys/shareoverlayimage.png b/source/GooglePlayServices_gml/options/ps5/sce_sys/shareoverlayimage.png new file mode 100644 index 0000000..5d5d3fb Binary files /dev/null and b/source/GooglePlayServices_gml/options/ps5/sce_sys/shareoverlayimage.png differ diff --git a/source/GooglePlayServices_gml/options/switch/options_switch.yy b/source/GooglePlayServices_gml/options/switch/options_switch.yy new file mode 100644 index 0000000..a3bd2ca --- /dev/null +++ b/source/GooglePlayServices_gml/options/switch/options_switch.yy @@ -0,0 +1,16 @@ +{ + "option_switch_project_nmeta": "${options_dir}/switch/application.nmeta", + "option_switch_enable_nex_libraries": false, + "option_switch_interpolate_pixels": true, + "option_switch_scale": 0, + "option_switch_texture_page": "2048x2048", + "option_switch_check_nsp_publish_errors": true, + "option_switch_enable_fileaccess_checking": true, + "option_switch_splash_screen": "${base_options_dir}/switch/splash.png", + "option_switch_use_splash": false, + "option_switch_allow_debug_output": false, + "resourceVersion": "1.0", + "name": "Switch", + "tags": [], + "resourceType": "GMSwitchOptions", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/options/tvos/icons/1280.png b/source/GooglePlayServices_gml/options/tvos/icons/1280.png new file mode 100644 index 0000000..61b63e0 Binary files /dev/null and b/source/GooglePlayServices_gml/options/tvos/icons/1280.png differ diff --git a/source/GooglePlayServices_gml/options/tvos/icons/400.png b/source/GooglePlayServices_gml/options/tvos/icons/400.png new file mode 100644 index 0000000..e410c01 Binary files /dev/null and b/source/GooglePlayServices_gml/options/tvos/icons/400.png differ diff --git a/source/GooglePlayServices_gml/options/tvos/icons/400_2x.png b/source/GooglePlayServices_gml/options/tvos/icons/400_2x.png new file mode 100644 index 0000000..fccaeac Binary files /dev/null and b/source/GooglePlayServices_gml/options/tvos/icons/400_2x.png differ diff --git a/source/GooglePlayServices_gml/options/tvos/options_tvos.yy b/source/GooglePlayServices_gml/options/tvos/options_tvos.yy new file mode 100644 index 0000000..902332b --- /dev/null +++ b/source/GooglePlayServices_gml/options/tvos/options_tvos.yy @@ -0,0 +1,27 @@ +{ + "option_tvos_display_name": "Made in GameMaker Studio 2", + "option_tvos_bundle_name": "com.company.game", + "option_tvos_version": "1.0.0.0", + "option_tvos_output_dir": "~/GameMakerStudio2/tvOS", + "option_tvos_team_id": "", + "option_tvos_icon_400": "icons/400.png", + "option_tvos_icon_400_2x": "icons/400_2x.png", + "option_tvos_icon_1280": "icons/1280.png", + "option_tvos_topshelf": "${base_options_dir}/tvos/topshelf/topshelf.png", + "option_tvos_topshelf_2x": "${base_options_dir}/tvos/topshelf/topshelf_2x.png", + "option_tvos_topshelf_wide": "${base_options_dir}/tvos/topshelf/topshelf_wide.png", + "option_tvos_topshelf_wide_2x": "${base_options_dir}/tvos/topshelf/topshelf_wide_2x.png", + "option_tvos_splashscreen": "${base_options_dir}/tvos/splash/splash.png", + "option_tvos_splashscreen_2x": "${base_options_dir}/tvos/splash/splash_2x.png", + "option_tvos_splash_time": 10, + "option_tvos_interpolate_pixels": true, + "option_tvos_scale": 0, + "option_tvos_texture_page": "2048x2048", + "option_tvos_display_cursor": false, + "option_tvos_podfile_path": "${options_dir}\\tvos\\Podfile", + "option_tvos_podfile_lock_path": "${options_dir}\\tvos\\Podfile.lock", + "resourceVersion": "1.3", + "name": "tvOS", + "tags": [], + "resourceType": "GMtvOSOptions", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/options/windows/icons/icon.ico b/source/GooglePlayServices_gml/options/windows/icons/icon.ico new file mode 100644 index 0000000..3aee3ec Binary files /dev/null and b/source/GooglePlayServices_gml/options/windows/icons/icon.ico differ diff --git a/source/GooglePlayServices_gml/options/windows/options_windows.yy b/source/GooglePlayServices_gml/options/windows/options_windows.yy new file mode 100644 index 0000000..6720e18 --- /dev/null +++ b/source/GooglePlayServices_gml/options/windows/options_windows.yy @@ -0,0 +1,35 @@ +{ + "option_windows_display_name": "Made in GameMaker Studio 2", + "option_windows_executable_name": "${project_name}", + "option_windows_version": "1.0.0.0", + "option_windows_company_info": "YoYo Games Ltd", + "option_windows_product_info": "Made in GameMaker Studio 2", + "option_windows_copyright_info": "(c) 2018 CompanyName", + "option_windows_description_info": "A GameMaker Studio 2 Game", + "option_windows_display_cursor": true, + "option_windows_icon": "icons/icon.ico", + "option_windows_save_location": 0, + "option_windows_splash_screen": "${base_options_dir}/windows/splash/splash.png", + "option_windows_use_splash": false, + "option_windows_start_fullscreen": false, + "option_windows_allow_fullscreen_switching": false, + "option_windows_interpolate_pixels": false, + "option_windows_vsync": false, + "option_windows_resize_window": false, + "option_windows_borderless": false, + "option_windows_scale": 0, + "option_windows_copy_exe_to_dest": false, + "option_windows_sleep_margin": 10, + "option_windows_texture_page": "2048x2048", + "option_windows_installer_finished": "${base_options_dir}/windows/installer/finished.bmp", + "option_windows_installer_header": "${base_options_dir}/windows/installer/header.bmp", + "option_windows_license": "${base_options_dir}/windows/installer/license.txt", + "option_windows_nsis_file": "${base_options_dir}/windows/installer/nsis_script.nsi", + "option_windows_enable_steam": false, + "option_windows_disable_sandbox": false, + "option_windows_steam_use_alternative_launcher": false, + "resourceVersion": "1.1", + "name": "Windows", + "tags": [], + "resourceType": "GMWindowsOptions", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/options/xboxseriesxs/logos/LargeLogo.png b/source/GooglePlayServices_gml/options/xboxseriesxs/logos/LargeLogo.png new file mode 100644 index 0000000..5625a3d Binary files /dev/null and b/source/GooglePlayServices_gml/options/xboxseriesxs/logos/LargeLogo.png differ diff --git a/source/GooglePlayServices_gml/options/xboxseriesxs/logos/Logo.png b/source/GooglePlayServices_gml/options/xboxseriesxs/logos/Logo.png new file mode 100644 index 0000000..a3a7de9 Binary files /dev/null and b/source/GooglePlayServices_gml/options/xboxseriesxs/logos/Logo.png differ diff --git a/source/GooglePlayServices_gml/options/xboxseriesxs/logos/SmallLogo.png b/source/GooglePlayServices_gml/options/xboxseriesxs/logos/SmallLogo.png new file mode 100644 index 0000000..69f4a79 Binary files /dev/null and b/source/GooglePlayServices_gml/options/xboxseriesxs/logos/SmallLogo.png differ diff --git a/source/GooglePlayServices_gml/options/xboxseriesxs/logos/StoreLogo.png b/source/GooglePlayServices_gml/options/xboxseriesxs/logos/StoreLogo.png new file mode 100644 index 0000000..5937905 Binary files /dev/null and b/source/GooglePlayServices_gml/options/xboxseriesxs/logos/StoreLogo.png differ diff --git a/source/GooglePlayServices_gml/options/xboxseriesxs/options_xboxseriesxs.yy b/source/GooglePlayServices_gml/options/xboxseriesxs/options_xboxseriesxs.yy new file mode 100644 index 0000000..6bbd84c --- /dev/null +++ b/source/GooglePlayServices_gml/options/xboxseriesxs/options_xboxseriesxs.yy @@ -0,0 +1,42 @@ +{ + "option_xboxseriesxs_display_name": "Created with GameMaker Studio 2", + "option_xboxseriesxs_description": "Your Description", + "option_xboxseriesxs_publisher": "Company Name", + "option_xboxseriesxs_publisher_display_name": "Company Display Name", + "option_xboxseriesxs_version": "1.0.0.0", + "option_xboxseriesxs_product_id": "", + "option_xboxseriesxs_title_id": "01234567", + "option_xboxseriesxs_service_config_id": "00000000-0000-0000-0000-000000000000", + "option_xboxseriesxs_program_id": "A149997C-9864-464E-9E03-8E06832F4CFF", + "option_xboxseriesxs_store_id": "", + "option_xboxseriesxs_msaappid": "", + "option_xboxseriesxs_content_id": "", + "option_xboxseriesxs_ekbid": "", + "option_xboxseriesxs_playfab_party_id": "00000", + "option_xboxseriesxs_simplified_user_model": false, + "option_xboxseriesxs_require_xbox_live": false, + "option_xboxseriesxs_require_game_chat": false, + "option_xboxseriesxs_game_chat_slots": 4, + "option_xboxseriesxs_require_audio_recording": false, + "option_xboxseriesxs_stats_system": 0, + "option_xboxseriesxs_service_config_manifest": "", + "option_xboxseriesxs_network_config_manifest": "", + "option_xboxseriesxs_splash_screen": "${base_options_dir}/xboxseriesxs/SplashScreen.png", + "option_xboxseriesxs_splash_screen_colour": 4282795590, + "option_xboxseriesxs_logo_store": "logos/StoreLogo.png", + "option_xboxseriesxs_logo_small": "logos/SmallLogo.png", + "option_xboxseriesxs_logo_medium": "logos/Logo.png", + "option_xboxseriesxs_logo_large": "logos/LargeLogo.png", + "option_xboxseriesxs_logo_background_colour": 4282795590, + "option_xboxseriesxs_foreground_text": 0, + "option_xboxseriesxs_interpolate_pixels": false, + "option_xboxseriesxs_scale": 0, + "option_xboxseriesxs_texture_page": "2048x2048", + "option_xboxseriesxs_support_4k_one_x": false, + "option_xboxseriesxs_support_4k_one_s": false, + "option_xboxseriesxs_languages": "\n \n \n \n ", + "resourceVersion": "1.1", + "name": "Xbox Series XS", + "tags": [], + "resourceType": "GMXboxSeriesXSOptions", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices/Room_GooglePlayServices.yy b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices/Room_GooglePlayServices.yy new file mode 100644 index 0000000..1b534a2 --- /dev/null +++ b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices/Room_GooglePlayServices.yy @@ -0,0 +1,72 @@ +{ + "isDnd": false, + "volume": 1.0, + "parentRoom": null, + "views": [ + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + ], + "layers": [ + {"instances":[ + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices","path":"objects/Obj_GooglePlayServices/Obj_GooglePlayServices.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":1.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":0.0,"y":0.0,"resourceVersion":"1.0","name":"inst_63A5807F","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_SignIn","path":"objects/Obj_GooglePlayServices_SignIn/Obj_GooglePlayServices_SignIn.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":256.0,"y":160.0,"resourceVersion":"1.0","name":"inst_5AAAEE22","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_GotoAchievements","path":"objects/Obj_GooglePlayServices_GotoAchievements/Obj_GooglePlayServices_GotoAchievements.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":254.0,"y":448.0,"resourceVersion":"1.0","name":"inst_3D087431","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_GotoLeaderboards","path":"objects/Obj_GooglePlayServices_GotoLeaderboards/Obj_GooglePlayServices_GotoLeaderboards.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":256.0,"y":352.0,"resourceVersion":"1.0","name":"inst_3C8DEE57","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_Account","path":"objects/Obj_GooglePlayServices_Account/Obj_GooglePlayServices_Account.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":1.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":576.0,"y":128.0,"resourceVersion":"1.0","name":"inst_68A40B51","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_Player","path":"objects/Obj_GooglePlayServices_Player/Obj_GooglePlayServices_Player.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":1.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":576.0,"y":352.0,"resourceVersion":"1.0","name":"inst_56ED602A","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_GotoSavedGames","path":"objects/Obj_GooglePlayServices_GotoSavedGames/Obj_GooglePlayServices_GotoSavedGames.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":254.0,"y":544.0,"resourceVersion":"1.0","name":"inst_264A8628","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_Revoke","path":"objects/Obj_GooglePlayServices_Revoke/Obj_GooglePlayServices_Revoke.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":256.0,"y":256.0,"resourceVersion":"1.0","name":"inst_75AA3DC8","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_VideoRecording","path":"objects/Obj_GooglePlayServices_VideoRecording/Obj_GooglePlayServices_VideoRecording.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":256.0,"y":640.0,"resourceVersion":"1.0","name":"inst_6F3609E6","tags":[],"resourceType":"GMRInstance",}, + ],"visible":true,"depth":0,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],"resourceVersion":"1.0","name":"Instances","tags":[],"resourceType":"GMRInstanceLayer",}, + {"spriteId":{"name":"Spr_YoYo_Background","path":"sprites/Spr_YoYo_Background/Spr_YoYo_Background.yy",},"colour":4294967295,"x":0,"y":0,"htiled":false,"vtiled":false,"hspeed":0.0,"vspeed":0.0,"stretch":false,"animationFPS":30.0,"animationSpeedType":0,"userdefinedAnimFPS":false,"visible":true,"depth":100,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],"resourceVersion":"1.0","name":"Background","tags":[],"resourceType":"GMRBackgroundLayer",}, + ], + "inheritLayers": false, + "creationCodeFile": "", + "inheritCode": false, + "instanceCreationOrder": [ + {"name":"inst_5AAAEE22","path":"rooms/Room_GooglePlayServices/Room_GooglePlayServices.yy",}, + {"name":"inst_3D087431","path":"rooms/Room_GooglePlayServices/Room_GooglePlayServices.yy",}, + {"name":"inst_3C8DEE57","path":"rooms/Room_GooglePlayServices/Room_GooglePlayServices.yy",}, + {"name":"inst_68A40B51","path":"rooms/Room_GooglePlayServices/Room_GooglePlayServices.yy",}, + {"name":"inst_56ED602A","path":"rooms/Room_GooglePlayServices/Room_GooglePlayServices.yy",}, + {"name":"inst_264A8628","path":"rooms/Room_GooglePlayServices/Room_GooglePlayServices.yy",}, + {"name":"inst_75AA3DC8","path":"rooms/Room_GooglePlayServices/Room_GooglePlayServices.yy",}, + {"name":"inst_6F3609E6","path":"rooms/Room_GooglePlayServices/Room_GooglePlayServices.yy",}, + {"name":"inst_63A5807F","path":"rooms/Room_GooglePlayServices/Room_GooglePlayServices.yy",}, + ], + "inheritCreationOrder": false, + "sequenceId": null, + "roomSettings": { + "inheritRoomSettings": false, + "Width": 1280, + "Height": 720, + "persistent": false, + }, + "viewSettings": { + "inheritViewSettings": false, + "enableViews": false, + "clearViewBackground": false, + "clearDisplayBuffer": true, + }, + "physicsSettings": { + "inheritPhysicsSettings": false, + "PhysicsWorld": false, + "PhysicsWorldGravityX": 0.0, + "PhysicsWorldGravityY": 10.0, + "PhysicsWorldPixToMetres": 0.1, + }, + "parent": { + "name": "Rooms", + "path": "folders/GooglePlayServices Demo/Rooms.yy", + }, + "resourceVersion": "1.0", + "name": "Room_GooglePlayServices", + "tags": [], + "resourceType": "GMRoom", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Achievements/Room_GooglePlayServices_Achievements.yy b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Achievements/Room_GooglePlayServices_Achievements.yy new file mode 100644 index 0000000..2ace79c --- /dev/null +++ b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Achievements/Room_GooglePlayServices_Achievements.yy @@ -0,0 +1,66 @@ +{ + "isDnd": false, + "volume": 1.0, + "parentRoom": null, + "views": [ + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + ], + "layers": [ + {"instances":[ + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_GotoMenu","path":"objects/Obj_GooglePlayServices_GotoMenu/Obj_GooglePlayServices_GotoMenu.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":416.0,"y":608.0,"resourceVersion":"1.0","name":"inst_68F862AC","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_Achievements_Show","path":"objects/Obj_GooglePlayServices_Achievements_Show/Obj_GooglePlayServices_Achievements_Show.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":640.0,"y":448.0,"resourceVersion":"1.0","name":"inst_340CA989","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_Achievements_Unlock","path":"objects/Obj_GooglePlayServices_Achievements_Unlock/Obj_GooglePlayServices_Achievements_Unlock.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":640.0,"y":160.0,"resourceVersion":"1.0","name":"inst_1D7E97F3","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_Achievements_Incremental","path":"objects/Obj_GooglePlayServices_Achievements_Incremental/Obj_GooglePlayServices_Achievements_Incremental.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":5.000001,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":640.0,"y":256.0,"resourceVersion":"1.0","name":"inst_124154BD","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_Achievements_Reveal","path":"objects/Obj_GooglePlayServices_Achievements_Reveal/Obj_GooglePlayServices_Achievements_Reveal.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":4.9999995,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":640.0,"y":352.0,"resourceVersion":"1.0","name":"inst_70565F77","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_GotoAchievementsAdvanced","path":"objects/Obj_GooglePlayServices_GotoAchievementsAdvanced/Obj_GooglePlayServices_GotoAchievementsAdvanced.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":5.1558447,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":864.0,"y":608.0,"resourceVersion":"1.0","name":"inst_4DC9F87D","tags":[],"resourceType":"GMRInstance",}, + ],"visible":true,"depth":0,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],"resourceVersion":"1.0","name":"Instances","tags":[],"resourceType":"GMRInstanceLayer",}, + {"spriteId":{"name":"Spr_YoYo_Background","path":"sprites/Spr_YoYo_Background/Spr_YoYo_Background.yy",},"colour":4294967295,"x":0,"y":0,"htiled":false,"vtiled":false,"hspeed":0.0,"vspeed":0.0,"stretch":false,"animationFPS":30.0,"animationSpeedType":0,"userdefinedAnimFPS":false,"visible":true,"depth":100,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],"resourceVersion":"1.0","name":"Background","tags":[],"resourceType":"GMRBackgroundLayer",}, + ], + "inheritLayers": false, + "creationCodeFile": "", + "inheritCode": false, + "instanceCreationOrder": [ + {"name":"inst_68F862AC","path":"rooms/Room_GooglePlayServices_Achievements/Room_GooglePlayServices_Achievements.yy",}, + {"name":"inst_340CA989","path":"rooms/Room_GooglePlayServices_Achievements/Room_GooglePlayServices_Achievements.yy",}, + {"name":"inst_1D7E97F3","path":"rooms/Room_GooglePlayServices_Achievements/Room_GooglePlayServices_Achievements.yy",}, + {"name":"inst_124154BD","path":"rooms/Room_GooglePlayServices_Achievements/Room_GooglePlayServices_Achievements.yy",}, + {"name":"inst_70565F77","path":"rooms/Room_GooglePlayServices_Achievements/Room_GooglePlayServices_Achievements.yy",}, + {"name":"inst_4DC9F87D","path":"rooms/Room_GooglePlayServices_Achievements/Room_GooglePlayServices_Achievements.yy",}, + ], + "inheritCreationOrder": false, + "sequenceId": null, + "roomSettings": { + "inheritRoomSettings": false, + "Width": 1280, + "Height": 720, + "persistent": false, + }, + "viewSettings": { + "inheritViewSettings": false, + "enableViews": false, + "clearViewBackground": false, + "clearDisplayBuffer": true, + }, + "physicsSettings": { + "inheritPhysicsSettings": false, + "PhysicsWorld": false, + "PhysicsWorldGravityX": 0.0, + "PhysicsWorldGravityY": 10.0, + "PhysicsWorldPixToMetres": 0.1, + }, + "parent": { + "name": "Rooms", + "path": "folders/GooglePlayServices Demo/Rooms.yy", + }, + "resourceVersion": "1.0", + "name": "Room_GooglePlayServices_Achievements", + "tags": [], + "resourceType": "GMRoom", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Achievements_Advanced/Room_GooglePlayServices_Achievements_Advanced.yy b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Achievements_Advanced/Room_GooglePlayServices_Achievements_Advanced.yy new file mode 100644 index 0000000..136ac6b --- /dev/null +++ b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Achievements_Advanced/Room_GooglePlayServices_Achievements_Advanced.yy @@ -0,0 +1,58 @@ +{ + "isDnd": false, + "volume": 1.0, + "parentRoom": null, + "views": [ + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + ], + "layers": [ + {"instances":[ + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_GotoMenu","path":"objects/Obj_GooglePlayServices_GotoMenu/Obj_GooglePlayServices_GotoMenu.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":640.0,"y":608.0,"resourceVersion":"1.0","name":"inst_68F862AC_1","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_Achievements_GetStatus","path":"objects/Obj_GooglePlayServices_Achievements_GetStatus/Obj_GooglePlayServices_Achievements_GetStatus.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":640.0,"y":512.0,"resourceVersion":"1.0","name":"inst_2FC17A69","tags":[],"resourceType":"GMRInstance",}, + ],"visible":true,"depth":0,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],"resourceVersion":"1.0","name":"Instances","tags":[],"resourceType":"GMRInstanceLayer",}, + {"spriteId":{"name":"Spr_YoYo_Background","path":"sprites/Spr_YoYo_Background/Spr_YoYo_Background.yy",},"colour":4294967295,"x":0,"y":0,"htiled":false,"vtiled":false,"hspeed":0.0,"vspeed":0.0,"stretch":false,"animationFPS":30.0,"animationSpeedType":0,"userdefinedAnimFPS":false,"visible":true,"depth":100,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],"resourceVersion":"1.0","name":"Background","tags":[],"resourceType":"GMRBackgroundLayer",}, + ], + "inheritLayers": false, + "creationCodeFile": "", + "inheritCode": false, + "instanceCreationOrder": [ + {"name":"inst_68F862AC_1","path":"rooms/Room_GooglePlayServices_Achievements_Advanced/Room_GooglePlayServices_Achievements_Advanced.yy",}, + {"name":"inst_2FC17A69","path":"rooms/Room_GooglePlayServices_Achievements_Advanced/Room_GooglePlayServices_Achievements_Advanced.yy",}, + ], + "inheritCreationOrder": false, + "sequenceId": null, + "roomSettings": { + "inheritRoomSettings": false, + "Width": 1280, + "Height": 720, + "persistent": false, + }, + "viewSettings": { + "inheritViewSettings": false, + "enableViews": false, + "clearViewBackground": false, + "clearDisplayBuffer": true, + }, + "physicsSettings": { + "inheritPhysicsSettings": false, + "PhysicsWorld": false, + "PhysicsWorldGravityX": 0.0, + "PhysicsWorldGravityY": 10.0, + "PhysicsWorldPixToMetres": 0.1, + }, + "parent": { + "name": "Rooms", + "path": "folders/GooglePlayServices Demo/Rooms.yy", + }, + "resourceVersion": "1.0", + "name": "Room_GooglePlayServices_Achievements_Advanced", + "tags": [], + "resourceType": "GMRoom", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards/InstanceCreationCode_inst_34F03FD7.gml b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards/InstanceCreationCode_inst_34F03FD7.gml new file mode 100644 index 0000000..7a99b22 --- /dev/null +++ b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards/InstanceCreationCode_inst_34F03FD7.gml @@ -0,0 +1 @@ +leaderboard_id = Leaderboard1; \ No newline at end of file diff --git a/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards/InstanceCreationCode_inst_552D621E.gml b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards/InstanceCreationCode_inst_552D621E.gml new file mode 100644 index 0000000..b0c0cb4 --- /dev/null +++ b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards/InstanceCreationCode_inst_552D621E.gml @@ -0,0 +1,2 @@ + +leaderboard_id = Leaderboard1; \ No newline at end of file diff --git a/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards/InstanceCreationCode_inst_64F9DE9A.gml b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards/InstanceCreationCode_inst_64F9DE9A.gml new file mode 100644 index 0000000..6114b64 --- /dev/null +++ b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards/InstanceCreationCode_inst_64F9DE9A.gml @@ -0,0 +1 @@ +leaderboard_id = Leaderboard2; \ No newline at end of file diff --git a/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards/InstanceCreationCode_inst_66769332.gml b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards/InstanceCreationCode_inst_66769332.gml new file mode 100644 index 0000000..748b063 --- /dev/null +++ b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards/InstanceCreationCode_inst_66769332.gml @@ -0,0 +1 @@ +text = "Leaderboard 2"; \ No newline at end of file diff --git a/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards/InstanceCreationCode_inst_71672AB6.gml b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards/InstanceCreationCode_inst_71672AB6.gml new file mode 100644 index 0000000..6d169d4 --- /dev/null +++ b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards/InstanceCreationCode_inst_71672AB6.gml @@ -0,0 +1 @@ +text = "Leaderboard 1"; \ No newline at end of file diff --git a/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards/InstanceCreationCode_inst_750C7D47.gml b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards/InstanceCreationCode_inst_750C7D47.gml new file mode 100644 index 0000000..6114b64 --- /dev/null +++ b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards/InstanceCreationCode_inst_750C7D47.gml @@ -0,0 +1 @@ +leaderboard_id = Leaderboard2; \ No newline at end of file diff --git a/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards/Room_GooglePlayServices_Leaderboards.yy b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards/Room_GooglePlayServices_Leaderboards.yy new file mode 100644 index 0000000..06f46bb --- /dev/null +++ b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards/Room_GooglePlayServices_Leaderboards.yy @@ -0,0 +1,72 @@ +{ + "isDnd": false, + "volume": 1.0, + "parentRoom": null, + "views": [ + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + ], + "layers": [ + {"instances":[ + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_GotoMenu","path":"objects/Obj_GooglePlayServices_GotoMenu/Obj_GooglePlayServices_GotoMenu.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":640.0,"y":640.0,"resourceVersion":"1.0","name":"inst_36413245","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_Leaderboard_ShowAll","path":"objects/Obj_GooglePlayServices_Leaderboard_ShowAll/Obj_GooglePlayServices_Leaderboard_ShowAll.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":640.0,"y":448.0,"resourceVersion":"1.0","name":"inst_F2D496F","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_Leaderboard_SubmitScore","path":"objects/Obj_GooglePlayServices_Leaderboard_SubmitScore/Obj_GooglePlayServices_Leaderboard_SubmitScore.yy",},"inheritCode":false,"hasCreationCode":true,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":320.0,"y":224.0,"resourceVersion":"1.0","name":"inst_552D621E","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_Leaderboard_Show","path":"objects/Obj_GooglePlayServices_Leaderboard_Show/Obj_GooglePlayServices_Leaderboard_Show.yy",},"inheritCode":false,"hasCreationCode":true,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":320.0,"y":320.0,"resourceVersion":"1.0","name":"inst_34F03FD7","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_Leaderboard_SubmitScore","path":"objects/Obj_GooglePlayServices_Leaderboard_SubmitScore/Obj_GooglePlayServices_Leaderboard_SubmitScore.yy",},"inheritCode":false,"hasCreationCode":true,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":960.0,"y":224.0,"resourceVersion":"1.0","name":"inst_64F9DE9A","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_Leaderboard_Show","path":"objects/Obj_GooglePlayServices_Leaderboard_Show/Obj_GooglePlayServices_Leaderboard_Show.yy",},"inheritCode":false,"hasCreationCode":true,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":960.0,"y":320.0,"resourceVersion":"1.0","name":"inst_750C7D47","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_YoYo_text","path":"objects/Obj_YoYo_text/Obj_YoYo_text.yy",},"inheritCode":false,"hasCreationCode":true,"colour":4294967295,"rotation":0.0,"scaleX":1.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":320.0,"y":160.0,"resourceVersion":"1.0","name":"inst_71672AB6","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_YoYo_text","path":"objects/Obj_YoYo_text/Obj_YoYo_text.yy",},"inheritCode":false,"hasCreationCode":true,"colour":4294967295,"rotation":0.0,"scaleX":1.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":960.0,"y":160.0,"resourceVersion":"1.0","name":"inst_66769332","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_GotoLeaderboardsAdvanced","path":"objects/Obj_GooglePlayServices_GotoLeaderboardsAdvanced/Obj_GooglePlayServices_GotoLeaderboardsAdvanced.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":5.012987,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":641.49347,"y":544.0,"resourceVersion":"1.0","name":"inst_4CF55A70","tags":[],"resourceType":"GMRInstance",}, + ],"visible":true,"depth":0,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],"resourceVersion":"1.0","name":"Instances","tags":[],"resourceType":"GMRInstanceLayer",}, + {"spriteId":{"name":"Spr_YoYo_Background","path":"sprites/Spr_YoYo_Background/Spr_YoYo_Background.yy",},"colour":4294967295,"x":0,"y":0,"htiled":false,"vtiled":false,"hspeed":0.0,"vspeed":0.0,"stretch":false,"animationFPS":30.0,"animationSpeedType":0,"userdefinedAnimFPS":false,"visible":true,"depth":100,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],"resourceVersion":"1.0","name":"Background","tags":[],"resourceType":"GMRBackgroundLayer",}, + ], + "inheritLayers": false, + "creationCodeFile": "${project_dir}/rooms/Room_GooglePlayServices_Leaderboards/RoomCreationCode.gml", + "inheritCode": false, + "instanceCreationOrder": [ + {"name":"inst_36413245","path":"rooms/Room_GooglePlayServices_Leaderboards/Room_GooglePlayServices_Leaderboards.yy",}, + {"name":"inst_F2D496F","path":"rooms/Room_GooglePlayServices_Leaderboards/Room_GooglePlayServices_Leaderboards.yy",}, + {"name":"inst_552D621E","path":"rooms/Room_GooglePlayServices_Leaderboards/Room_GooglePlayServices_Leaderboards.yy",}, + {"name":"inst_34F03FD7","path":"rooms/Room_GooglePlayServices_Leaderboards/Room_GooglePlayServices_Leaderboards.yy",}, + {"name":"inst_64F9DE9A","path":"rooms/Room_GooglePlayServices_Leaderboards/Room_GooglePlayServices_Leaderboards.yy",}, + {"name":"inst_750C7D47","path":"rooms/Room_GooglePlayServices_Leaderboards/Room_GooglePlayServices_Leaderboards.yy",}, + {"name":"inst_71672AB6","path":"rooms/Room_GooglePlayServices_Leaderboards/Room_GooglePlayServices_Leaderboards.yy",}, + {"name":"inst_66769332","path":"rooms/Room_GooglePlayServices_Leaderboards/Room_GooglePlayServices_Leaderboards.yy",}, + {"name":"inst_4CF55A70","path":"rooms/Room_GooglePlayServices_Leaderboards/Room_GooglePlayServices_Leaderboards.yy",}, + ], + "inheritCreationOrder": false, + "sequenceId": null, + "roomSettings": { + "inheritRoomSettings": false, + "Width": 1280, + "Height": 720, + "persistent": false, + }, + "viewSettings": { + "inheritViewSettings": false, + "enableViews": false, + "clearViewBackground": false, + "clearDisplayBuffer": true, + }, + "physicsSettings": { + "inheritPhysicsSettings": false, + "PhysicsWorld": false, + "PhysicsWorldGravityX": 0.0, + "PhysicsWorldGravityY": 10.0, + "PhysicsWorldPixToMetres": 0.1, + }, + "parent": { + "name": "Rooms", + "path": "folders/GooglePlayServices Demo/Rooms.yy", + }, + "resourceVersion": "1.0", + "name": "Room_GooglePlayServices_Leaderboards", + "tags": [], + "resourceType": "GMRoom", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards_Advanced/InstanceCreationCode_inst_552D621E_1.gml b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards_Advanced/InstanceCreationCode_inst_552D621E_1.gml new file mode 100644 index 0000000..b0c0cb4 --- /dev/null +++ b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards_Advanced/InstanceCreationCode_inst_552D621E_1.gml @@ -0,0 +1,2 @@ + +leaderboard_id = Leaderboard1; \ No newline at end of file diff --git a/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards_Advanced/Room_GooglePlayServices_Leaderboards_Advanced.yy b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards_Advanced/Room_GooglePlayServices_Leaderboards_Advanced.yy new file mode 100644 index 0000000..72bfc49 --- /dev/null +++ b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_Leaderboards_Advanced/Room_GooglePlayServices_Leaderboards_Advanced.yy @@ -0,0 +1,60 @@ +{ + "isDnd": false, + "volume": 1.0, + "parentRoom": null, + "views": [ + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + ], + "layers": [ + {"instances":[ + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_GotoMenu","path":"objects/Obj_GooglePlayServices_GotoMenu/Obj_GooglePlayServices_GotoMenu.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":256.0,"y":608.0,"resourceVersion":"1.0","name":"inst_36413245_1","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_Leaderboard_SubmitScore","path":"objects/Obj_GooglePlayServices_Leaderboard_SubmitScore/Obj_GooglePlayServices_Leaderboard_SubmitScore.yy",},"inheritCode":false,"hasCreationCode":true,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":254.0,"y":326.0,"resourceVersion":"1.0","name":"inst_552D621E_1","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores","path":"objects/Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores/Obj_GooglePlayServices_Leaderboard_LoadPlayerCenteredScores.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":256.0,"y":230.0,"resourceVersion":"1.0","name":"inst_7C745125","tags":[],"resourceType":"GMRInstance",}, + ],"visible":true,"depth":0,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],"resourceVersion":"1.0","name":"Instances","tags":[],"resourceType":"GMRInstanceLayer",}, + {"spriteId":{"name":"Spr_YoYo_Background","path":"sprites/Spr_YoYo_Background/Spr_YoYo_Background.yy",},"colour":4294967295,"x":0,"y":0,"htiled":false,"vtiled":false,"hspeed":0.0,"vspeed":0.0,"stretch":false,"animationFPS":30.0,"animationSpeedType":0,"userdefinedAnimFPS":false,"visible":true,"depth":100,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],"resourceVersion":"1.0","name":"Background","tags":[],"resourceType":"GMRBackgroundLayer",}, + ], + "inheritLayers": false, + "creationCodeFile": "${project_dir}/rooms/Room_GooglePlayServices_Leaderboards/RoomCreationCode.gml", + "inheritCode": false, + "instanceCreationOrder": [ + {"name":"inst_36413245_1","path":"rooms/Room_GooglePlayServices_Leaderboards_Advanced/Room_GooglePlayServices_Leaderboards_Advanced.yy",}, + {"name":"inst_552D621E_1","path":"rooms/Room_GooglePlayServices_Leaderboards_Advanced/Room_GooglePlayServices_Leaderboards_Advanced.yy",}, + {"name":"inst_7C745125","path":"rooms/Room_GooglePlayServices_Leaderboards_Advanced/Room_GooglePlayServices_Leaderboards_Advanced.yy",}, + ], + "inheritCreationOrder": false, + "sequenceId": null, + "roomSettings": { + "inheritRoomSettings": false, + "Width": 1280, + "Height": 720, + "persistent": false, + }, + "viewSettings": { + "inheritViewSettings": false, + "enableViews": false, + "clearViewBackground": false, + "clearDisplayBuffer": true, + }, + "physicsSettings": { + "inheritPhysicsSettings": false, + "PhysicsWorld": false, + "PhysicsWorldGravityX": 0.0, + "PhysicsWorldGravityY": 10.0, + "PhysicsWorldPixToMetres": 0.1, + }, + "parent": { + "name": "Rooms", + "path": "folders/GooglePlayServices Demo/Rooms.yy", + }, + "resourceVersion": "1.0", + "name": "Room_GooglePlayServices_Leaderboards_Advanced", + "tags": [], + "resourceType": "GMRoom", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_SavedGames/InstanceCreationCode_inst_3CEBDB88.gml b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_SavedGames/InstanceCreationCode_inst_3CEBDB88.gml new file mode 100644 index 0000000..5bcc2c6 --- /dev/null +++ b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_SavedGames/InstanceCreationCode_inst_3CEBDB88.gml @@ -0,0 +1,2 @@ + +font = Font_YoYo_30; \ No newline at end of file diff --git a/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_SavedGames/Room_GooglePlayServices_SavedGames.yy b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_SavedGames/Room_GooglePlayServices_SavedGames.yy new file mode 100644 index 0000000..725261c --- /dev/null +++ b/source/GooglePlayServices_gml/rooms/Room_GooglePlayServices_SavedGames/Room_GooglePlayServices_SavedGames.yy @@ -0,0 +1,68 @@ +{ + "isDnd": false, + "volume": 1.0, + "parentRoom": null, + "views": [ + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1024,"hview":768,"xport":0,"yport":0,"wport":1024,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + ], + "layers": [ + {"instances":[ + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_SavedGames_Show","path":"objects/Obj_GooglePlayServices_SavedGames_Show/Obj_GooglePlayServices_SavedGames_Show.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":288.0,"y":544.0,"resourceVersion":"1.0","name":"inst_5765D21F","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_GotoMenu","path":"objects/Obj_GooglePlayServices_GotoMenu/Obj_GooglePlayServices_GotoMenu.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":288.0,"y":640.0,"resourceVersion":"1.0","name":"inst_74E862E2","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_SavedGames","path":"objects/Obj_GooglePlayServices_SavedGames/Obj_GooglePlayServices_SavedGames.yy",},"inheritCode":false,"hasCreationCode":true,"colour":4294967295,"rotation":0.0,"scaleX":1.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":768.0,"y":128.0,"resourceVersion":"1.0","name":"inst_3CEBDB88","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_SavedGames_Save","path":"objects/Obj_GooglePlayServices_SavedGames_Save/Obj_GooglePlayServices_SavedGames_Save.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":3.3376622,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":1088.8312,"y":448.0,"resourceVersion":"1.0","name":"inst_64C114B1","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_SavedGames_Discard","path":"objects/Obj_GooglePlayServices_SavedGames_Discard/Obj_GooglePlayServices_SavedGames_Discard.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":3.3376622,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":1088.8312,"y":544.0,"resourceVersion":"1.0","name":"inst_231ADC04","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_SavedGames_Delete","path":"objects/Obj_GooglePlayServices_SavedGames_Delete/Obj_GooglePlayServices_SavedGames_Delete.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":3.3376622,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":1088.8312,"y":640.0,"resourceVersion":"1.0","name":"inst_5664BAD4","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"Obj_GooglePlayServices_SavedGames_New","path":"objects/Obj_GooglePlayServices_SavedGames_New/Obj_GooglePlayServices_SavedGames_New.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":5.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":288.0,"y":160.0,"resourceVersion":"1.0","name":"inst_2650E770","tags":[],"resourceType":"GMRInstance",}, + ],"visible":true,"depth":0,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],"resourceVersion":"1.0","name":"Instances","tags":[],"resourceType":"GMRInstanceLayer",}, + {"spriteId":{"name":"Spr_YoYo_Background","path":"sprites/Spr_YoYo_Background/Spr_YoYo_Background.yy",},"colour":4294967295,"x":0,"y":0,"htiled":false,"vtiled":false,"hspeed":0.0,"vspeed":0.0,"stretch":false,"animationFPS":30.0,"animationSpeedType":0,"userdefinedAnimFPS":false,"visible":true,"depth":100,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],"resourceVersion":"1.0","name":"Background","tags":[],"resourceType":"GMRBackgroundLayer",}, + ], + "inheritLayers": false, + "creationCodeFile": "", + "inheritCode": false, + "instanceCreationOrder": [ + {"name":"inst_5765D21F","path":"rooms/Room_GooglePlayServices_SavedGames/Room_GooglePlayServices_SavedGames.yy",}, + {"name":"inst_74E862E2","path":"rooms/Room_GooglePlayServices_SavedGames/Room_GooglePlayServices_SavedGames.yy",}, + {"name":"inst_3CEBDB88","path":"rooms/Room_GooglePlayServices_SavedGames/Room_GooglePlayServices_SavedGames.yy",}, + {"name":"inst_64C114B1","path":"rooms/Room_GooglePlayServices_SavedGames/Room_GooglePlayServices_SavedGames.yy",}, + {"name":"inst_231ADC04","path":"rooms/Room_GooglePlayServices_SavedGames/Room_GooglePlayServices_SavedGames.yy",}, + {"name":"inst_5664BAD4","path":"rooms/Room_GooglePlayServices_SavedGames/Room_GooglePlayServices_SavedGames.yy",}, + {"name":"inst_2650E770","path":"rooms/Room_GooglePlayServices_SavedGames/Room_GooglePlayServices_SavedGames.yy",}, + ], + "inheritCreationOrder": false, + "sequenceId": null, + "roomSettings": { + "inheritRoomSettings": false, + "Width": 1280, + "Height": 720, + "persistent": false, + }, + "viewSettings": { + "inheritViewSettings": false, + "enableViews": false, + "clearViewBackground": false, + "clearDisplayBuffer": true, + }, + "physicsSettings": { + "inheritPhysicsSettings": false, + "PhysicsWorld": false, + "PhysicsWorldGravityX": 0.0, + "PhysicsWorldGravityY": 10.0, + "PhysicsWorldPixToMetres": 0.1, + }, + "parent": { + "name": "Rooms", + "path": "folders/GooglePlayServices Demo/Rooms.yy", + }, + "resourceVersion": "1.0", + "name": "Room_GooglePlayServices_SavedGames", + "tags": [], + "resourceType": "GMRoom", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/scripts/__macros__/__macros__.gml b/source/GooglePlayServices_gml/scripts/__macros__/__macros__.gml new file mode 100644 index 0000000..e554801 --- /dev/null +++ b/source/GooglePlayServices_gml/scripts/__macros__/__macros__.gml @@ -0,0 +1,18 @@ + +/// NOTE: After setting up your project replace the ids with your own to test this demo + +// ############### LEADERBOARDS ############### + +#macro Leaderboard1 "CggI47itmU0QAhAD" +#macro Leaderboard2 "CggI47itmU0QAhAE" + +// ############### ACHIEVEMENTS ############### + +// Incremental achievement +#macro Achievement1 "CggI47itmU0QAhAC" + +// Hidden achievement +#macro Achievement2 "CggI47itmU0QAhAF" + +// Achievement locked (unlock example) +#macro Achievement3 "CggI47itmU0QAhAB" \ No newline at end of file diff --git a/source/GooglePlayServices_gml/scripts/__macros__/__macros__.yy b/source/GooglePlayServices_gml/scripts/__macros__/__macros__.yy new file mode 100644 index 0000000..4261c98 --- /dev/null +++ b/source/GooglePlayServices_gml/scripts/__macros__/__macros__.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "GooglePlayServices", + "path": "GooglePlayServices.yyp", + }, + "resourceVersion": "1.0", + "name": "__macros__", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/scripts/sprite_save_w/sprite_save_w.gml b/source/GooglePlayServices_gml/scripts/sprite_save_w/sprite_save_w.gml new file mode 100644 index 0000000..d6d219f --- /dev/null +++ b/source/GooglePlayServices_gml/scripts/sprite_save_w/sprite_save_w.gml @@ -0,0 +1,22 @@ + +/// @function sprite_save_w(sprite, subimg, path) +function sprite_save_w(sprite, subimg, path) { + + //https://forum.yoyogames.com/index.php?threads/is-there-any-function-that-can-replace-sprite_save.38439/ + + var q = sprite; + var qw = sprite_get_width(q); + var qh = sprite_get_height(q); + var qx = sprite_get_xoffset(q); + var qy = sprite_get_yoffset(q); + + var t = surface_create(qw, qh); + surface_set_target(t); + //draw_clear_alpha(c_black, 0); + //gpu_set_blendmode(bm_add); + draw_sprite(q, subimg, qx, qy); + //gpu_set_blendmode(bm_normal); + surface_reset_target(); + surface_save(t, path); + surface_free(t); +} diff --git a/source/GooglePlayServices_gml/scripts/sprite_save_w/sprite_save_w.yy b/source/GooglePlayServices_gml/scripts/sprite_save_w/sprite_save_w.yy new file mode 100644 index 0000000..cab5c18 --- /dev/null +++ b/source/GooglePlayServices_gml/scripts/sprite_save_w/sprite_save_w.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "Scripts", + "path": "folders/GooglePlayServices Demo/Scripts.yy", + }, + "resourceVersion": "1.0", + "name": "sprite_save_w", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/4a8ade78-da52-4568-a92b-14ea68da6549.png b/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/4a8ade78-da52-4568-a92b-14ea68da6549.png new file mode 100644 index 0000000..45191b7 Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/4a8ade78-da52-4568-a92b-14ea68da6549.png differ diff --git a/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/4cfb234f-e6c6-47a7-9807-fbd967ee6a2d.png b/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/4cfb234f-e6c6-47a7-9807-fbd967ee6a2d.png new file mode 100644 index 0000000..175f1ff Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/4cfb234f-e6c6-47a7-9807-fbd967ee6a2d.png differ diff --git a/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/Spr_GooglePlayServices_SavedGames.yy b/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/Spr_GooglePlayServices_SavedGames.yy new file mode 100644 index 0000000..f4180cc --- /dev/null +++ b/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/Spr_GooglePlayServices_SavedGames.yy @@ -0,0 +1,78 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "Spr_GooglePlayServices_SavedGames", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 0, + "bbox_right": 511, + "bbox_top": 0, + "bbox_bottom": 511, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 512, + "height": 512, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"f57d7a61-307c-49c6-85c8-0654447ce6a3",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"4cfb234f-e6c6-47a7-9807-fbd967ee6a2d",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"4a8ade78-da52-4568-a92b-14ea68da6549",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "Spr_GooglePlayServices_SavedGames", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 15.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 3.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"6a78f437-f4e6-4e6e-8540-dc5a5459706b","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"f57d7a61-307c-49c6-85c8-0654447ce6a3","path":"sprites/Spr_GooglePlayServices_SavedGames/Spr_GooglePlayServices_SavedGames.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"4d9f27ac-5d0a-40e6-a92c-837d993d4e2b","Key":1.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"4cfb234f-e6c6-47a7-9807-fbd967ee6a2d","path":"sprites/Spr_GooglePlayServices_SavedGames/Spr_GooglePlayServices_SavedGames.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"9a22eefe-9b93-4763-a8f5-e7e88265ddad","Key":2.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"4a8ade78-da52-4568-a92b-14ea68da6549","path":"sprites/Spr_GooglePlayServices_SavedGames/Spr_GooglePlayServices_SavedGames.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1920, + "backdropHeight": 1080, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 256, + "yorigin": 256, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"50b658e4-9abb-43e3-9a26-8704cb0468a1","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "Sprites", + "path": "folders/GooglePlayServices Demo/Sprites.yy", + }, +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/d7752b24-65b3-4f8b-998b-9038e9cc01af.png b/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/d7752b24-65b3-4f8b-998b-9038e9cc01af.png new file mode 100644 index 0000000..62a2bbc Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/d7752b24-65b3-4f8b-998b-9038e9cc01af.png differ diff --git a/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/f57d7a61-307c-49c6-85c8-0654447ce6a3.png b/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/f57d7a61-307c-49c6-85c8-0654447ce6a3.png new file mode 100644 index 0000000..62a2bbc Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/f57d7a61-307c-49c6-85c8-0654447ce6a3.png differ diff --git a/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/layers/4a8ade78-da52-4568-a92b-14ea68da6549/50b658e4-9abb-43e3-9a26-8704cb0468a1.png b/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/layers/4a8ade78-da52-4568-a92b-14ea68da6549/50b658e4-9abb-43e3-9a26-8704cb0468a1.png new file mode 100644 index 0000000..effab3d Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/layers/4a8ade78-da52-4568-a92b-14ea68da6549/50b658e4-9abb-43e3-9a26-8704cb0468a1.png differ diff --git a/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/layers/4cfb234f-e6c6-47a7-9807-fbd967ee6a2d/50b658e4-9abb-43e3-9a26-8704cb0468a1.png b/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/layers/4cfb234f-e6c6-47a7-9807-fbd967ee6a2d/50b658e4-9abb-43e3-9a26-8704cb0468a1.png new file mode 100644 index 0000000..175f1ff Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/layers/4cfb234f-e6c6-47a7-9807-fbd967ee6a2d/50b658e4-9abb-43e3-9a26-8704cb0468a1.png differ diff --git a/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/layers/d7752b24-65b3-4f8b-998b-9038e9cc01af/53baaa89-8913-4dc4-885c-fdd33ef012b5.png b/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/layers/d7752b24-65b3-4f8b-998b-9038e9cc01af/53baaa89-8913-4dc4-885c-fdd33ef012b5.png new file mode 100644 index 0000000..62a2bbc Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/layers/d7752b24-65b3-4f8b-998b-9038e9cc01af/53baaa89-8913-4dc4-885c-fdd33ef012b5.png differ diff --git a/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/layers/f57d7a61-307c-49c6-85c8-0654447ce6a3/50b658e4-9abb-43e3-9a26-8704cb0468a1.png b/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/layers/f57d7a61-307c-49c6-85c8-0654447ce6a3/50b658e4-9abb-43e3-9a26-8704cb0468a1.png new file mode 100644 index 0000000..62a2bbc Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Spr_GooglePlayServices_SavedGames/layers/f57d7a61-307c-49c6-85c8-0654447ce6a3/50b658e4-9abb-43e3-9a26-8704cb0468a1.png differ diff --git a/source/GooglePlayServices_gml/sprites/Spr_Yoyo_Background/Spr_Yoyo_Background.yy b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_Background/Spr_Yoyo_Background.yy new file mode 100644 index 0000000..5fcf226 --- /dev/null +++ b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_Background/Spr_Yoyo_Background.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "Spr_YoYo_Background", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 0, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 0, + "bbox_right": 1365, + "bbox_top": 0, + "bbox_bottom": 767, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 1366, + "height": 768, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"c3f379b0-5a59-4f2d-a405-482ad85060a5",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "Spr_YoYo_Background", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"4913e5ee-8db7-4201-a537-ad2989034a70","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"c3f379b0-5a59-4f2d-a405-482ad85060a5","path":"sprites/Spr_YoYo_Background/Spr_YoYo_Background.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 0, + "yorigin": 0, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"6f89315b-439b-4995-9206-9dc7674be0df","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "Sprites", + "path": "folders/YoYo Extensions Assets/Sprites.yy", + }, +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/sprites/Spr_Yoyo_Background/c3f379b0-5a59-4f2d-a405-482ad85060a5.png b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_Background/c3f379b0-5a59-4f2d-a405-482ad85060a5.png new file mode 100644 index 0000000..f30d11b Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_Background/c3f379b0-5a59-4f2d-a405-482ad85060a5.png differ diff --git a/source/GooglePlayServices_gml/sprites/Spr_Yoyo_Background/layers/c3f379b0-5a59-4f2d-a405-482ad85060a5/6f89315b-439b-4995-9206-9dc7674be0df.png b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_Background/layers/c3f379b0-5a59-4f2d-a405-482ad85060a5/6f89315b-439b-4995-9206-9dc7674be0df.png new file mode 100644 index 0000000..f30d11b Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_Background/layers/c3f379b0-5a59-4f2d-a405-482ad85060a5/6f89315b-439b-4995-9206-9dc7674be0df.png differ diff --git a/source/GooglePlayServices_gml/sprites/Spr_Yoyo_button/012d4e38-d855-40d4-8775-d877304847fd.png b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_button/012d4e38-d855-40d4-8775-d877304847fd.png new file mode 100644 index 0000000..372543a Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_button/012d4e38-d855-40d4-8775-d877304847fd.png differ diff --git a/source/GooglePlayServices_gml/sprites/Spr_Yoyo_button/Spr_Yoyo_button.yy b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_button/Spr_Yoyo_button.yy new file mode 100644 index 0000000..a34eee0 --- /dev/null +++ b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_button/Spr_Yoyo_button.yy @@ -0,0 +1,102 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "Spr_YoYo_button", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 0, + "bbox_right": 76, + "bbox_top": 0, + "bbox_bottom": 76, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 77, + "height": 77, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"012d4e38-d855-40d4-8775-d877304847fd",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"c7e6e482-9118-46e9-af5a-aaee1f9aa8e7",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"acb1e226-988d-469f-a81d-5f63e7cf012d",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "Spr_YoYo_button", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 3.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"d490e245-2a78-444e-8f8c-8c9e2a71de6f","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"012d4e38-d855-40d4-8775-d877304847fd","path":"sprites/Spr_YoYo_button/Spr_YoYo_button.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"9c983f94-7ea3-4f0d-a55f-ec6e08dbfbe3","Key":1.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"c7e6e482-9118-46e9-af5a-aaee1f9aa8e7","path":"sprites/Spr_YoYo_button/Spr_YoYo_button.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"cf3fd2bc-2fcd-4f87-ab33-5042c925de32","Key":2.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"acb1e226-988d-469f-a81d-5f63e7cf012d","path":"sprites/Spr_YoYo_button/Spr_YoYo_button.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 38, + "yorigin": 38, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"2bcd6097-0126-4c78-95b8-74cf466c4de5","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": { + "left": 15, + "top": 15, + "right": 15, + "bottom": 15, + "guideColour": [ + 4294902015, + 4294902015, + 4294902015, + 4294902015, + ], + "highlightColour": 1728023040, + "highlightStyle": 0, + "enabled": true, + "tileMode": [ + 0, + 0, + 0, + 0, + 0, + ], + "resourceVersion": "1.0", + "loadedVersion": null, + "resourceType": "GMNineSliceData", + }, + "parent": { + "name": "Sprites", + "path": "folders/YoYo Extensions Assets/Sprites.yy", + }, +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/sprites/Spr_Yoyo_button/acb1e226-988d-469f-a81d-5f63e7cf012d.png b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_button/acb1e226-988d-469f-a81d-5f63e7cf012d.png new file mode 100644 index 0000000..6c3d2d7 Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_button/acb1e226-988d-469f-a81d-5f63e7cf012d.png differ diff --git a/source/GooglePlayServices_gml/sprites/Spr_Yoyo_button/c7e6e482-9118-46e9-af5a-aaee1f9aa8e7.png b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_button/c7e6e482-9118-46e9-af5a-aaee1f9aa8e7.png new file mode 100644 index 0000000..34b84db Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_button/c7e6e482-9118-46e9-af5a-aaee1f9aa8e7.png differ diff --git a/source/GooglePlayServices_gml/sprites/Spr_Yoyo_button/layers/012d4e38-d855-40d4-8775-d877304847fd/2bcd6097-0126-4c78-95b8-74cf466c4de5.png b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_button/layers/012d4e38-d855-40d4-8775-d877304847fd/2bcd6097-0126-4c78-95b8-74cf466c4de5.png new file mode 100644 index 0000000..92dcb75 Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_button/layers/012d4e38-d855-40d4-8775-d877304847fd/2bcd6097-0126-4c78-95b8-74cf466c4de5.png differ diff --git a/source/GooglePlayServices_gml/sprites/Spr_Yoyo_button/layers/acb1e226-988d-469f-a81d-5f63e7cf012d/2bcd6097-0126-4c78-95b8-74cf466c4de5.png b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_button/layers/acb1e226-988d-469f-a81d-5f63e7cf012d/2bcd6097-0126-4c78-95b8-74cf466c4de5.png new file mode 100644 index 0000000..3789579 Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_button/layers/acb1e226-988d-469f-a81d-5f63e7cf012d/2bcd6097-0126-4c78-95b8-74cf466c4de5.png differ diff --git a/source/GooglePlayServices_gml/sprites/Spr_Yoyo_button/layers/c7e6e482-9118-46e9-af5a-aaee1f9aa8e7/2bcd6097-0126-4c78-95b8-74cf466c4de5.png b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_button/layers/c7e6e482-9118-46e9-af5a-aaee1f9aa8e7/2bcd6097-0126-4c78-95b8-74cf466c4de5.png new file mode 100644 index 0000000..d410dc4 Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_button/layers/c7e6e482-9118-46e9-af5a-aaee1f9aa8e7/2bcd6097-0126-4c78-95b8-74cf466c4de5.png differ diff --git a/source/GooglePlayServices_gml/sprites/Spr_Yoyo_textbox/24631523-3bf7-4305-b9b7-81445881d83e.png b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_textbox/24631523-3bf7-4305-b9b7-81445881d83e.png new file mode 100644 index 0000000..1289e20 Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_textbox/24631523-3bf7-4305-b9b7-81445881d83e.png differ diff --git a/source/GooglePlayServices_gml/sprites/Spr_Yoyo_textbox/Spr_Yoyo_textbox.yy b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_textbox/Spr_Yoyo_textbox.yy new file mode 100644 index 0000000..0b28b17 --- /dev/null +++ b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_textbox/Spr_Yoyo_textbox.yy @@ -0,0 +1,98 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "Spr_YoYo_textbox", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 0, + "bbox_right": 48, + "bbox_top": 0, + "bbox_bottom": 48, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 49, + "height": 49, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"24631523-3bf7-4305-b9b7-81445881d83e",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "Spr_YoYo_textbox", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"2eaf4c8f-a19e-4088-85cc-a08047e543e8","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"24631523-3bf7-4305-b9b7-81445881d83e","path":"sprites/Spr_YoYo_textbox/Spr_YoYo_textbox.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 24, + "yorigin": 24, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"5144ea37-721c-4e86-9b03-228323c0c2b3","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": { + "left": 15, + "top": 15, + "right": 15, + "bottom": 15, + "guideColour": [ + 4294902015, + 4294902015, + 4294902015, + 4294902015, + ], + "highlightColour": 1728023040, + "highlightStyle": 0, + "enabled": true, + "tileMode": [ + 0, + 0, + 0, + 0, + 0, + ], + "resourceVersion": "1.0", + "loadedVersion": null, + "resourceType": "GMNineSliceData", + }, + "parent": { + "name": "Sprites", + "path": "folders/YoYo Extensions Assets/Sprites.yy", + }, +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/sprites/Spr_Yoyo_textbox/layers/24631523-3bf7-4305-b9b7-81445881d83e/5144ea37-721c-4e86-9b03-228323c0c2b3.png b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_textbox/layers/24631523-3bf7-4305-b9b7-81445881d83e/5144ea37-721c-4e86-9b03-228323c0c2b3.png new file mode 100644 index 0000000..1eb663a Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Spr_Yoyo_textbox/layers/24631523-3bf7-4305-b9b7-81445881d83e/5144ea37-721c-4e86-9b03-228323c0c2b3.png differ diff --git a/source/GooglePlayServices_gml/sprites/Sprite_GooglePlayServices_SavedGames_dataObj/24e7e26f-5efd-4e97-8a02-58be4e584000.png b/source/GooglePlayServices_gml/sprites/Sprite_GooglePlayServices_SavedGames_dataObj/24e7e26f-5efd-4e97-8a02-58be4e584000.png new file mode 100644 index 0000000..ef1bdf0 Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Sprite_GooglePlayServices_SavedGames_dataObj/24e7e26f-5efd-4e97-8a02-58be4e584000.png differ diff --git a/source/GooglePlayServices_gml/sprites/Sprite_GooglePlayServices_SavedGames_dataObj/670d8546-a067-47ed-8930-2aed775e7b99.png b/source/GooglePlayServices_gml/sprites/Sprite_GooglePlayServices_SavedGames_dataObj/670d8546-a067-47ed-8930-2aed775e7b99.png new file mode 100644 index 0000000..dd9524d Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Sprite_GooglePlayServices_SavedGames_dataObj/670d8546-a067-47ed-8930-2aed775e7b99.png differ diff --git a/source/GooglePlayServices_gml/sprites/Sprite_GooglePlayServices_SavedGames_dataObj/847908f8-d80d-4e9b-8939-7f51cde3fa05.png b/source/GooglePlayServices_gml/sprites/Sprite_GooglePlayServices_SavedGames_dataObj/847908f8-d80d-4e9b-8939-7f51cde3fa05.png new file mode 100644 index 0000000..046f045 Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Sprite_GooglePlayServices_SavedGames_dataObj/847908f8-d80d-4e9b-8939-7f51cde3fa05.png differ diff --git a/source/GooglePlayServices_gml/sprites/Sprite_GooglePlayServices_SavedGames_dataObj/Sprite_GooglePlayServices_SavedGames_dataObj.yy b/source/GooglePlayServices_gml/sprites/Sprite_GooglePlayServices_SavedGames_dataObj/Sprite_GooglePlayServices_SavedGames_dataObj.yy new file mode 100644 index 0000000..bdc660f --- /dev/null +++ b/source/GooglePlayServices_gml/sprites/Sprite_GooglePlayServices_SavedGames_dataObj/Sprite_GooglePlayServices_SavedGames_dataObj.yy @@ -0,0 +1,78 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "Sprite_GooglePlayServices_SavedGames_dataObj", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 4, + "bbox_right": 93, + "bbox_top": 3, + "bbox_bottom": 93, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 96, + "height": 96, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"847908f8-d80d-4e9b-8939-7f51cde3fa05",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"24e7e26f-5efd-4e97-8a02-58be4e584000",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"670d8546-a067-47ed-8930-2aed775e7b99",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 15.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 3.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"9853c2d5-8fe3-463a-aff0-8ccb320d08e1","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"847908f8-d80d-4e9b-8939-7f51cde3fa05","path":"sprites/Sprite_GooglePlayServices_SavedGames_dataObj/Sprite_GooglePlayServices_SavedGames_dataObj.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"76b7e788-e4ab-4577-b2be-7abb4554c140","Key":1.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"24e7e26f-5efd-4e97-8a02-58be4e584000","path":"sprites/Sprite_GooglePlayServices_SavedGames_dataObj/Sprite_GooglePlayServices_SavedGames_dataObj.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"a0275acf-ed06-4681-af86-6f931d7c696f","Key":2.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"670d8546-a067-47ed-8930-2aed775e7b99","path":"sprites/Sprite_GooglePlayServices_SavedGames_dataObj/Sprite_GooglePlayServices_SavedGames_dataObj.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": {"x":0.0,"y":0.0,}, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1920, + "backdropHeight": 1080, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 48, + "yorigin": 48, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"6eff7b9d-0e08-42bd-9b55-d72bd361a300","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "Sprites", + "path": "folders/GooglePlayServices Demo/Sprites.yy", + }, +} \ No newline at end of file diff --git a/source/GooglePlayServices_gml/sprites/Sprite_GooglePlayServices_SavedGames_dataObj/layers/24e7e26f-5efd-4e97-8a02-58be4e584000/6eff7b9d-0e08-42bd-9b55-d72bd361a300.png b/source/GooglePlayServices_gml/sprites/Sprite_GooglePlayServices_SavedGames_dataObj/layers/24e7e26f-5efd-4e97-8a02-58be4e584000/6eff7b9d-0e08-42bd-9b55-d72bd361a300.png new file mode 100644 index 0000000..ef1bdf0 Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Sprite_GooglePlayServices_SavedGames_dataObj/layers/24e7e26f-5efd-4e97-8a02-58be4e584000/6eff7b9d-0e08-42bd-9b55-d72bd361a300.png differ diff --git a/source/GooglePlayServices_gml/sprites/Sprite_GooglePlayServices_SavedGames_dataObj/layers/670d8546-a067-47ed-8930-2aed775e7b99/6eff7b9d-0e08-42bd-9b55-d72bd361a300.png b/source/GooglePlayServices_gml/sprites/Sprite_GooglePlayServices_SavedGames_dataObj/layers/670d8546-a067-47ed-8930-2aed775e7b99/6eff7b9d-0e08-42bd-9b55-d72bd361a300.png new file mode 100644 index 0000000..dd9524d Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Sprite_GooglePlayServices_SavedGames_dataObj/layers/670d8546-a067-47ed-8930-2aed775e7b99/6eff7b9d-0e08-42bd-9b55-d72bd361a300.png differ diff --git a/source/GooglePlayServices_gml/sprites/Sprite_GooglePlayServices_SavedGames_dataObj/layers/847908f8-d80d-4e9b-8939-7f51cde3fa05/6eff7b9d-0e08-42bd-9b55-d72bd361a300.png b/source/GooglePlayServices_gml/sprites/Sprite_GooglePlayServices_SavedGames_dataObj/layers/847908f8-d80d-4e9b-8939-7f51cde3fa05/6eff7b9d-0e08-42bd-9b55-d72bd361a300.png new file mode 100644 index 0000000..046f045 Binary files /dev/null and b/source/GooglePlayServices_gml/sprites/Sprite_GooglePlayServices_SavedGames_dataObj/layers/847908f8-d80d-4e9b-8939-7f51cde3fa05/6eff7b9d-0e08-42bd-9b55-d72bd361a300.png differ